diff --git a/.env.dev b/.env.dev
index f13026e2615327d574325d16672719a9c2867baa..39f64d03fd5aa335668f7c58e936e3d7dfcc663d 100644
--- a/.env.dev
+++ b/.env.dev
@@ -12,3 +12,9 @@ MUSIC_DIRECTORY_PATH=/music
 BROWSABLE_API_ENABLED=True
 FORWARDED_PROTO=http
 LDAP_ENABLED=False
+
+# Uncomment this if you're using traefik/https
+# FORCE_HTTPS_URLS=True
+
+# Customize to your needs
+POSTGRES_VERSION=11
diff --git a/.gitignore b/.gitignore
index 3983381664a8bb1981f013c945ca42d9aea65f7a..e62b1ce6207902054342af6503f9773ca926f611 100644
--- a/.gitignore
+++ b/.gitignore
@@ -93,4 +93,6 @@ po/*.po
 docs/swagger
 _build
 front/src/translations.json
+front/src/translations/*.json
 front/locales/en_US/LC_MESSAGES/app.po
+*.prof
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index e930ccc76703563a4ed21bb3035484466a53ad1a..bbe1bd02f201ab915520d5125316084bed48ad16 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,7 +1,8 @@
 variables:
   IMAGE_NAME: funkwhale/funkwhale
   IMAGE: $IMAGE_NAME:$CI_COMMIT_REF_NAME
-  IMAGE_LATEST: $IMAGE_NAME:latest
+  ALL_IN_ONE_IMAGE_NAME: funkwhale/all-in-one
+  ALL_IN_ONE_IMAGE: $ALL_IN_ONE_IMAGE_NAME:$CI_COMMIT_REF_NAME
   PIP_CACHE_DIR: "$CI_PROJECT_DIR/pip-cache"
   PYTHONDONTWRITEBYTECODE: "true"
   REVIEW_DOMAIN: preview.funkwhale.audio
@@ -131,16 +132,15 @@ flake8:
 
 test_api:
   services:
-    - postgres:9.4
+    - postgres:11
     - redis:3
   stage: test
-  image: funkwhale/funkwhale:latest
+  image: funkwhale/funkwhale:develop
   cache:
     key: "$CI_PROJECT_ID__pip_cache"
     paths:
       - "$PIP_CACHE_DIR"
   variables:
-    DJANGO_ALLOWED_HOSTS: "localhost"
     DATABASE_URL: "postgresql://postgres@postgres/postgres"
     FUNKWHALE_URL: "https://funkwhale.ci"
     DJANGO_SETTINGS_MODULE: config.settings.local
@@ -148,11 +148,10 @@ test_api:
     - branches
   before_script:
     - cd api
-    - apt-get update
-    - grep "^[^#;]" requirements.apt | grep -Fv "python3-dev" | xargs apt-get install -y --no-install-recommends
-    - pip install -r requirements/base.txt
-    - pip install -r requirements/local.txt
-    - pip install -r requirements/test.txt
+    - sed -i '/Pillow/d' requirements/base.txt
+    - pip3 install -r requirements/base.txt
+    - pip3 install -r requirements/local.txt
+    - pip3 install -r requirements/test.txt
   script:
     - pytest --cov=funkwhale_api tests/
   tags:
@@ -166,7 +165,7 @@ test_front:
   only:
     - branches
   script:
-    - yarn install
+    - yarn install --check-files
     - yarn test:unit
   cache:
     key: "funkwhale__front_dependencies"
@@ -194,11 +193,6 @@ build_front:
     # cf https://dev.funkwhale.audio/funkwhale/funkwhale/issues/169
     - yarn build | tee /dev/stderr | (! grep -i 'ERROR in')
     - chmod -R 755 dist
-  cache:
-    key: "funkwhale__front_dependencies"
-    paths:
-      - front/node_modules
-      - front/yarn.lock
   artifacts:
     name: "front_${CI_COMMIT_REF_NAME}"
     paths:
@@ -207,6 +201,7 @@ build_front:
     - tags@funkwhale/funkwhale
     - master@funkwhale/funkwhale
     - develop@funkwhale/funkwhale
+
   tags:
     - docker
 
@@ -236,9 +231,11 @@ pages:
 
 docker_release:
   stage: deploy
+  image: bash
   before_script:
     - docker login -u $DOCKER_LOGIN -p $DOCKER_PASSWORD
     - cp -r front/dist api/frontend
+    - (if [ "$CI_COMMIT_REF_NAME" == "develop" ]; then ./scripts/set-api-build-metadata.sh $(echo $CI_COMMIT_SHA | cut -c 1-8); fi);
     - cd api
   script:
     - docker build -t $IMAGE .
@@ -249,15 +246,42 @@ docker_release:
   tags:
     - docker-build
 
+docker_all_in_one_release:
+  stage: deploy
+  image: bash
+  variables:
+    ALL_IN_ONE_REF: master
+    ALL_IN_ONE_ARTIFACT_URL: https://github.com/thetarkus/docker-funkwhale/archive/$ALL_IN_ONE_REF.zip
+    BUILD_PATH: all_in_one
+  before_script:
+    - docker login -u $DOCKER_LOGIN -p $DOCKER_PASSWORD
+    - (if [ "$CI_COMMIT_REF_NAME" == "develop" ]; then ./scripts/set-api-build-metadata.sh $(echo $CI_COMMIT_SHA | cut -c 1-8); fi);
+  script:
+    - wget $ALL_IN_ONE_ARTIFACT_URL -O all_in_one.zip
+    - unzip -o all_in_one.zip -d tmpdir
+    - mv tmpdir/docker-funkwhale-$ALL_IN_ONE_REF $BUILD_PATH && rmdir tmpdir
+    - cp -r api $BUILD_PATH/src/api
+    - cp -r front $BUILD_PATH/src/front
+    - cd $BUILD_PATH
+    - ./scripts/download-nginx-template.sh src/ $CI_COMMIT_REF_NAME
+    - docker build -t $ALL_IN_ONE_IMAGE .
+    - docker push $ALL_IN_ONE_IMAGE
+  only:
+    - develop@funkwhale/funkwhale
+    - tags@funkwhale/funkwhale
+  tags:
+    - docker-build
+
 build_api:
   # Simply publish a zip containing api/ directory
   stage: deploy
-  image: busybox
+  image: bash
   artifacts:
     name: "api_${CI_COMMIT_REF_NAME}"
     paths:
       - api
   script:
+    - (if [ "$CI_COMMIT_REF_NAME" == "develop" ]; then ./scripts/set-api-build-metadata.sh $(echo $CI_COMMIT_SHA | cut -c 1-8); fi);
     - chmod -R 750 api
     - echo Done!
   only:
diff --git a/.gitlab/issue_templates/Bug.md b/.gitlab/issue_templates/Bug.md
index 967186030e460a9fe4cd1b9607cfb287b8470f8b..aa8893527488c342268623718bca5189b30102e7 100644
--- a/.gitlab/issue_templates/Bug.md
+++ b/.gitlab/issue_templates/Bug.md
@@ -34,6 +34,12 @@ Describe the expected behaviour.
 
 ## Context
 
+<!--
+The version of your instance can be found on the footer : Source code (x.y)
+-->
+
+**Funkwhale version(s) affected**: x.y
+
 <!--
 If relevant, share additional context here like:
 
diff --git a/CHANGELOG b/CHANGELOG
index caef7fc67cfd6628b37fb540c7bc6b616f0243f8..5bd9ef31233d91baedebe3b4aa1d15b027bbf335 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -10,6 +10,297 @@ This changelog is viewable on the web at https://docs.funkwhale.audio/changelog.
 
 .. towncrier
 
+0.18 "Naomi" (2019-01-22)
+-------------------------
+
+This release is dedicated to Naomi, an early contributor and beta tester of Funkwhale.
+Her positivity, love and support have been incredibly helpful and helped shape the project
+as you can enjoy it today. Thank you so much Naomi <3
+
+Upgrade instructions are available at
+https://docs.funkwhale.audio/index.html, ensure you also execute the intructions
+marked with ``[manual action required]`` and ``[manual action suggested]``.
+
+See ``Full changelog`` below for an exhaustive list of changes!
+
+Audio transcoding is back!
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+After removal of our first, buggy transcoding implementation, we're proud to announce
+that this feature is back. It is enabled by default, and can be configured/disabled
+in your instance settings!
+
+This feature works in the browser, with federated/non-federated tracks and using Subsonic clients.
+Transcoded tracks are generated on the fly, and cached for a configurable amount of time,
+to reduce the load on the server.
+
+
+Licensing and copyright information
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Funkwhale is now able to parse copyright and license data from file and store
+this information. Apart from displaying it on each track detail page,
+no additional behaviour is currently implemented to use this new data, but this
+will change in future releases.
+
+License and copyright data is also broadcasted over federation.
+
+License matching is done on the content of the ``License`` tag in the files,
+with a fallback on the ``Copyright`` tag.
+
+Funkwhale will successfully extract licensing data for the following licenses:
+
+- Creative Commons 0 (Public Domain)
+- Creative Commons 1.0 (All declinations)
+- Creative Commons 2.0 (All declinations)
+- Creative Commons 2.5 (All declinations and countries)
+- Creative Commons 3.0 (All declinations and countries)
+- Creative Commons 4.0 (All declinations)
+
+Support for other licenses such as Art Libre or WTFPL will be added in future releases.
+
+
+Instance-level moderation tools
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+This release includes a first set of moderation tools that will give more control
+to admins about the way their instance federate with other instance and accounts on the network.
+Using these tools, it's now possible to:
+
+- Browse known accounts and domains, and associated data (storage size, software version, etc.)
+- Purge data belonging to given accounts and domains
+- Block or partially restrict interactions with any account or domain
+
+All those features are usable using a brand new "moderation" permission, meaning
+you can appoints one or nultiple moderators to help with this task.
+
+I'd like to thank all Mastodon contributors, because some of the these tools are heavily
+inspired from what's being done in Mastodon. Thank you so much!
+
+
+Iframe widget to embed public tracks and albums [manual action required]
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Funkwhale now support embedding a lightweight audio player on external websites
+for album and tracks that are available in public libraries. Important pages,
+such as artist, album and track pages also include OpenGraph tags that will
+enable previews on compatible apps (like sharing a Funkwhale track link on Mastodon
+or Twitter).
+
+To achieve that, we had to tweak the way Funkwhale front-end is served. You'll have
+to modify your nginx configuration when upgrading to keep your instance working.
+
+**On docker setups**, edit your ``/srv/funkwhale/nginx/funkwhale.template`` and replace
+the ``location /api/`` and `location /` blocks by the following snippets::
+
+    location / {
+        include /etc/nginx/funkwhale_proxy.conf;
+        # this is needed if you have file import via upload enabled
+        client_max_body_size ${NGINX_MAX_BODY_SIZE};
+        proxy_pass   http://funkwhale-api/;
+    }
+
+    location /front/ {
+        alias /frontend/;
+    }
+
+The change of configuration will be picked when restarting your nginx container.
+
+**On non-docker setups**, edit your ``/etc/nginx/sites-available/funkwhale.conf`` file,
+and replace the ``location /api/`` and `location /` blocks by the following snippets::
+
+
+    location / {
+        include /etc/nginx/funkwhale_proxy.conf;
+        # this is needed if you have file import via upload enabled
+        client_max_body_size ${NGINX_MAX_BODY_SIZE};
+        proxy_pass   http://funkwhale-api/;
+    }
+
+    location /front/ {
+        alias ${FUNKWHALE_FRONTEND_PATH}/;
+    }
+
+Replace ``${FUNKWHALE_FRONTEND_PATH}`` by the corresponding variable from your .env file,
+which should be ``/srv/funkwhale/front/dist`` by default, then reload your nginx process with
+``sudo systemctl reload nginx``.
+
+
+Alternative docker deployment method
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Thanks to the awesome done by @thetarkus at https://github.com/thetarkus/docker-funkwhale,
+we're now able to provide an alternative and easier Docker deployment method!
+
+In contrast with our current, multi-container offer, this method integrates
+all Funkwhale processes and services (database, redis, etc.) into a single, easier to deploy container.
+
+Both method will coexist in parallel, as each one has pros and cons. You can learn more
+about this exciting new deployment option by visiting https://docs.funkwhale.audio/installation/docker.html!
+
+Automatically load .env file
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+On non-docker deployments, earlier versions required you to source
+the config/.env file before launching any Funkwhale command, with ``export $(cat config/.env | grep -v ^# | xargs)``
+This led to more complex and error prode deployment / setup.
+
+This is not the case anymore, and Funkwhale will automatically load this file if it's available.
+
+
+Delete pre 0.17 federated tracks [manual action suggested]
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+If you were using Funkwhale before the 0.17 release and federated with other instances,
+it's possible that you still have some unplayable federated files in the database.
+
+To purge the database of those entries, you can run the following command:
+
+On docker setups::
+
+    docker-compose run --rm api python manage.py script delete_pre_017_federated_uploads --no-input
+
+On non-docker setups::
+
+    python manage.py script delete_pre_017_federated_uploads --no-input
+
+
+Enable gzip compression [manual action suggested]
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Gzip compression will be enabled on new instances by default
+and will reduce the amount of bandwidth consumed by your instance.
+
+If you with to benefit from gzip compression on your instance,
+edit your reverse proxy virtualhost file (located at ``/etc/nginx/sites-available/funkwhale.conf``) and add the following snippet
+in the server block, then reload your nginx server::
+
+    server {
+        # ... exiting configuration
+
+        # compression settings
+        gzip on;
+        gzip_comp_level    5;
+        gzip_min_length    256;
+        gzip_proxied       any;
+        gzip_vary          on;
+
+        gzip_types
+            application/atom+xml
+            application/javascript
+            application/json
+            application/ld+json
+            application/activity+json
+            application/manifest+json
+            application/rss+xml
+            application/vnd.geo+json
+            application/vnd.ms-fontobject
+            application/x-font-ttf
+            application/x-web-app-manifest+json
+            application/xhtml+xml
+            application/xml
+            font/opentype
+            image/bmp
+            image/svg+xml
+            image/x-icon
+            text/cache-manifest
+            text/css
+            text/plain
+            text/vcard
+            text/vnd.rim.location.xloc
+            text/vtt
+            text/x-component
+            text/x-cross-domain-policy;
+        # end of compression settings
+    }
+
+Full changelog
+^^^^^^^^^^^^^^
+
+Features:
+
+- Allow embedding of albums and tracks available in public libraries via an <iframe> (#578)
+- Audio transcoding is back! (#272)
+- First set of instance level moderation tools (#580, !521)
+- Store licensing and copyright information from file metadata, if available (#308)
+
+
+Enhancements:
+
+- Add UI elements for multi-disc albums (#631)
+- Added alternative funkwhale/all-in-one docker image (#614)
+- Broadcast library updates (name, description, visibility) over federation
+- Based Docker image on alpine to have a smaller (and faster to build) image
+- Improved front-end performance by stripping unused dependencies, reducing bundle size
+  and enabling gzip compression
+- Improved accessibility by using main/section/nav tags and aria-labels in most critical places (#612)
+- The progress bar in the player now display loading state / buffer loading (#586)
+- Added "type: funkwhale" and "funkwhale-version" in Subsonic responses (#573)
+- Documented keyboard shortcuts, list is now available by pressing "h" or in the footer (#611)
+- Documented which Subsonic endpoints are implemented (#575)
+- Hide invitation code field during signup when it's not required (#410)
+- Importer will now pick embedded images in files with OTHER type if no COVER_FRONT is present
+- Improved keyboard accessibility on player, queue and various controls (#576)
+- Improved performance when listing playable tracks, albums and artists
+- Increased default upload limit from 30 to 100MB (#654)
+- Load env file in config/.env automatically to avoid sourcing it by hand (#626)
+- More resilient date parsing during audio import, will not crash anymore on
+  invalid dates (#622)
+- Now start radios immediatly, skipping any existing tracks in queue (#585)
+- Officially support connecting to a password protected redis server, with
+  the redis://:password@localhost:6379/0 scheme (#640)
+- Performance improvement when fetching favorites, down to a single, small http request
+- Removed "Activity" page, since all the data is available on the "Browse" page (#600)
+- Removed the need to specify the DJANGO_ALLOWED_HOSTS variable
+- Restructured the footer, added useful links and removed unused content
+- Show short entries first in search results to improve UX
+- Store disc number and order tracks by disc number / position) (#507)
+- Strip EXIF metadata from uploaded avatars to avoid leaking private data (#374)
+- Support blind key rotation in HTTP Signatures (#658)
+- Support setting a server URL in settings.json (#650)
+- Updated default docker postgres version from 9.4 to 11 (#656)
+- Updated lots of dependencies (especially django 2.0->2.1), and removed unused dependencies (#657)
+- Improved test suite speed by reducing / disabling expensive operations (#648)
+
+
+Bugfixes:
+
+- Fixed parsing of embedded file cover for ogg files tagged with MusicBrainz (#469)
+- Upgraded core dependencies to fix websocket/messaging issues and possible memory leaks (#643)
+- Fix ".None" extension when downloading Flac file (#473)
+- Fixed None extension when downloading an in-place imported file (#621)
+- Added a script to prune pre 0.17 federated tracks (#564)
+- Advertise public libraries properly in ActivityPub representations (#553)
+- Allow opus file upload (#598)
+- Do not display "view on MusicBrainz" button if we miss the mbid (#422)
+- Do not try to create unaccent extension if it's already present (#663)
+- Ensure admin links in sidebar are displayed for users with relavant permissions, and only them (#597)
+- Fix broken websocket connexion under Chrome browser (#589)
+- Fix play button not starting playback with empty queue (#632)
+- Fixed a styling inconsistency on about page when instance description was missing (#659)
+- Fixed a UI discrepency in playlist tracks count (#647)
+- Fixed greyed tracks in radio builder and detail page (#637)
+- Fixed inconsistencies in subsonic error responses (#616)
+- Fixed incorrect icon for "next track" in player control (#613)
+- Fixed malformed search string when redirecting to LyricsWiki (#608)
+- Fixed missing track count on various library cards (#581)
+- Fixed skipped track when appending multiple tracks to the queue under certain conditions (#209)
+- Fixed wrong album/track count on artist page (#599)
+- Hide unplayable/emtpy playlists in "Browse playlist" pages (#424)
+- Initial UI render using correct language from browser (#644)
+- Invalid URI for reverse proxy websocket with apache (#617)
+- Properly encode Wikipedia and lyrics search urls (#470)
+- Refresh profile after user settings update to avoid cache issues (#606)
+- Use role=button instead of empty links for player controls (#610)
+
+
+Documentation:
+
+- Deploy documentation from the master branch instead of the develop branch to avoid inconsistencies (#642)
+- Document how to find and use library id when importing files in CLI (#562)
+- Fix documentation typos (#645)
+
+
 0.17 (2018-10-07)
 -----------------
 
@@ -120,7 +411,7 @@ Then, add the following block at the end of your docker-compose.yml file::
         - .env
       environment:
         # Override those variables in your .env file if needed
-        - "NGINX_MAX_BODY_SIZE=${NGINX_MAX_BODY_SIZE-30M}"
+        - "NGINX_MAX_BODY_SIZE=${NGINX_MAX_BODY_SIZE-100M}"
       volumes:
         - "./nginx/funkwhale.template:/etc/nginx/conf.d/funkwhale.template:ro"
         - "./nginx/funkwhale_proxy.conf:/etc/nginx/funkwhale_proxy.conf:ro"
diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst
index 35cd5894ce027aa1c5ae008c3184b46b55f8904a..9c59fd4bec8d6e3c0c2c22aed0f2cb3f90bca8aa 100644
--- a/CONTRIBUTING.rst
+++ b/CONTRIBUTING.rst
@@ -35,18 +35,20 @@ Setup front-end only development environment
     cd funkwhale
     cd front
 
-2. Install [nodejs](https://nodejs.org/en/download/package-manager/) and [yarn](https://yarnpkg.com/lang/en/docs/install/#debian-stable)
+2. Install `nodejs <https://nodejs.org/en/download/package-manager/>`_ and `yarn <https://yarnpkg.com/lang/en/docs/install/#debian-stable>`_
+
 3. Install the dependencies::
 
     yarn install
 
 4. Launch the development server::
 
-    # this will serve the front-end on http://localhost:8000
+    # this will serve the front-end on http://localhost:8000/front/
     VUE_PORT=8000 yarn serve
 
 5. Make the front-end talk with an existing server (like https://demo.funkwhale.audio),
    by clicking on the corresponding link in the footer
+
 6. Start hacking!
 
 Setup your development environment
@@ -307,7 +309,7 @@ A typical fragment looks like that:
     Fixed broken audio player on Chrome 42 for ogg files (#567)
 
 If the work fixes one or more issues, the issue number should be included at the
-end of the fragment (``(#567)`` is the issue number in the previous example.
+end of the fragment (``(#567)`` is the issue number in the previous example).
 
 If your work is not related to a specific issue, use the merge request
 identifier instead, like this:
@@ -389,7 +391,7 @@ This is regular pytest, so you can use any arguments/options that pytest usually
     # Stop on first failure
     docker-compose -f dev.yml run --rm api pytest -x
     # Run a specific test file
-    docker-compose -f dev.yml run --rm api pytest tests/test_acoustid.py
+    docker-compose -f dev.yml run --rm api pytest tests/music/test_models.py
 
 Writing tests
 ^^^^^^^^^^^^^
@@ -507,7 +509,7 @@ useful when testing components that depend on each other:
         # here, we ensure no email was sent
         mocked_notify.assert_not_called()
 
-Views: you can find some readable views tests in :file:`tests/users/test_views.py`
+Views: you can find some readable views tests in file: ``api/tests/users/test_views.py``
 
 .. note::
 
diff --git a/api/Dockerfile b/api/Dockerfile
index 6acdaac56a6fa024917f60ac0629217d93813dc4..92a4d7f499624b5038fec3b4d13c3433834a7d6d 100644
--- a/api/Dockerfile
+++ b/api/Dockerfile
@@ -1,27 +1,47 @@
-FROM python:3.6
+FROM alpine:3.8
 
-ENV PYTHONUNBUFFERED 1
+RUN \
+    echo 'installing dependencies' && \
+    apk add                \
+    bash             \
+    git             \
+    gettext            \
+    musl-dev           \
+    gcc \
+    postgresql-dev \
+    python3-dev        \
+    py3-psycopg2       \
+    py3-pillow         \
+    libldap            \
+    ffmpeg             \
+    libpq              \
+    libmagic           \
+    libffi-dev         \
+    zlib-dev           \
+    openldap-dev && \
+    \
+    \
+    ln -s /usr/bin/python3 /usr/bin/python
 
-# Requirements have to be pulled and installed here, otherwise caching won't work
-RUN echo 'deb http://httpredir.debian.org/debian/ jessie-backports main' > /etc/apt/sources.list.d/ffmpeg.list
-COPY ./requirements.apt /requirements.apt
-RUN apt-get update; \
-    grep "^[^#;]" requirements.apt | \
-    grep -Fv "python3-dev" | \
-    xargs apt-get install -y --no-install-recommends; \
-    rm -rf /usr/share/doc/* /usr/share/locale/*
-RUN curl -L https://github.com/acoustid/chromaprint/releases/download/v1.4.2/chromaprint-fpcalc-1.4.2-linux-x86_64.tar.gz | tar -xz -C /usr/local/bin --strip 1
+RUN mkdir /requirements
 COPY ./requirements/base.txt /requirements/base.txt
-RUN pip install -r /requirements/base.txt
-COPY ./requirements/production.txt /requirements/production.txt
-RUN pip install -r /requirements/production.txt
+RUN \
+    echo 'fixing requirements file for alpine' && \
+    sed -i '/Pillow/d' /requirements/base.txt && \
+    \
+    \
+    echo 'installing pip requirements' && \
+    pip3 install --no-cache-dir --upgrade pip && \
+    pip3 install --no-cache-dir setuptools wheel && \
+    pip3 install --no-cache-dir -r /requirements/base.txt
 
-COPY . /app
-
-# Since youtube-dl code is updated fairly often, we split it here
-RUN pip install --upgrade youtube-dl
-
-WORKDIR /app
+ARG install_dev_deps=0
+COPY ./requirements/*.txt /requirements/
+RUN \
+    if [ "$install_dev_deps" = "1" ] ; then echo "Installing dev dependencies" && pip3 install --no-cache-dir -r /requirements/local.txt -r /requirements/test.txt ; else echo "Skipping dev deps installation" ; fi
 
 ENTRYPOINT ["./compose/django/entrypoint.sh"]
 CMD ["./compose/django/daphne.sh"]
+
+COPY . /app
+WORKDIR /app
diff --git a/api/compose/django/daphne.sh b/api/compose/django/daphne.sh
index 3ceb19e96edc67a2d744a749be605ebd04a2279a..b99cb18720ccda9923ae4071707f3cf209d843b7 100755
--- a/api/compose/django/daphne.sh
+++ b/api/compose/django/daphne.sh
@@ -1,3 +1,3 @@
 #!/bin/bash -eux
 python /app/manage.py collectstatic --noinput
-/usr/local/bin/daphne -b 0.0.0.0 -p 5000 config.asgi:application --proxy-headers
+daphne -b 0.0.0.0 -p 5000 config.asgi:application --proxy-headers
diff --git a/api/compose/django/dev-entrypoint.sh b/api/compose/django/dev-entrypoint.sh
index 6deeebb0085ede8bd696d59fb78af1d6d778a41e..4ba1611481d01b7c11427fbd0b6b2e7ac0d92a08 100755
--- a/api/compose/django/dev-entrypoint.sh
+++ b/api/compose/django/dev-entrypoint.sh
@@ -1,3 +1,3 @@
-#!/bin/bash
+#!/bin/sh
 set -e
 exec "$@"
diff --git a/api/compose/django/entrypoint.sh b/api/compose/django/entrypoint.sh
index ac85f1164320d4a5f18c542a6aa44e0c4ef9511e..3fc06a4165676ccdeafcf0d7b09769c8a27df9f0 100755
--- a/api/compose/django/entrypoint.sh
+++ b/api/compose/django/entrypoint.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
 set -e
 # This entrypoint is used to play nicely with the current cookiecutter configuration.
 # Since docker-compose relies heavily on environment variables itself for configuration, we'd have to define multiple
diff --git a/api/config/api_urls.py b/api/config/api_urls.py
index fd076c8e2304e3314ed067734c9f2d8c7a3ae8f1..3cb7ec36daf2b7b9f564c7c3d33df1dd58e7303a 100644
--- a/api/config/api_urls.py
+++ b/api/config/api_urls.py
@@ -10,7 +10,7 @@ from funkwhale_api.playlists import views as playlists_views
 from funkwhale_api.subsonic.views import SubsonicViewSet
 
 router = routers.SimpleRouter()
-router.register(r"settings", GlobalPreferencesViewSet, base_name="settings")
+router.register(r"settings", GlobalPreferencesViewSet, basename="settings")
 router.register(r"activity", activity_views.ActivityViewSet, "activity")
 router.register(r"tags", views.TagViewSet, "tags")
 router.register(r"tracks", views.TrackViewSet, "tracks")
@@ -19,6 +19,7 @@ router.register(r"libraries", views.LibraryViewSet, "libraries")
 router.register(r"listen", views.ListenViewSet, "listen")
 router.register(r"artists", views.ArtistViewSet, "artists")
 router.register(r"albums", views.AlbumViewSet, "albums")
+router.register(r"licenses", views.LicenseViewSet, "licenses")
 router.register(r"playlists", playlists_views.PlaylistViewSet, "playlists")
 router.register(
     r"playlist-tracks", playlists_views.PlaylistTrackViewSet, "playlist-tracks"
@@ -26,10 +27,11 @@ router.register(
 v1_patterns = router.urls
 
 subsonic_router = routers.SimpleRouter(trailing_slash=False)
-subsonic_router.register(r"subsonic/rest", SubsonicViewSet, base_name="subsonic")
+subsonic_router.register(r"subsonic/rest", SubsonicViewSet, basename="subsonic")
 
 
 v1_patterns += [
+    url(r"^oembed/$", views.OembedView.as_view(), name="oembed"),
     url(
         r"^instance/",
         include(("funkwhale_api.instance.urls", "instance"), namespace="instance"),
diff --git a/api/config/settings/common.py b/api/config/settings/common.py
index eb102954e8534d999410b9d3470a7367faa96539..45480c9ea356f861c972a2867340099ffce60e91 100644
--- a/api/config/settings/common.py
+++ b/api/config/settings/common.py
@@ -13,7 +13,7 @@ from __future__ import absolute_import, unicode_literals
 import datetime
 import logging
 
-from urllib.parse import urlparse, urlsplit
+from urllib.parse import urlsplit
 
 import environ
 from celery.schedules import crontab
@@ -69,12 +69,23 @@ else:
         FUNKWHALE_HOSTNAME = _parsed.netloc
         FUNKWHALE_PROTOCOL = _parsed.scheme
 
+FUNKWHALE_PROTOCOL = FUNKWHALE_PROTOCOL.lower()
+FUNKWHALE_HOSTNAME = FUNKWHALE_HOSTNAME.lower()
 FUNKWHALE_URL = "{}://{}".format(FUNKWHALE_PROTOCOL, FUNKWHALE_HOSTNAME)
-
+FUNKWHALE_SPA_HTML_ROOT = env(
+    "FUNKWHALE_SPA_HTML_ROOT", default=FUNKWHALE_URL + "/front/"
+)
+FUNKWHALE_SPA_HTML_CACHE_DURATION = env.int(
+    "FUNKWHALE_SPA_HTML_CACHE_DURATION", default=60 * 15
+)
+FUNKWHALE_EMBED_URL = env(
+    "FUNKWHALE_EMBED_URL", default=FUNKWHALE_SPA_HTML_ROOT + "embed.html"
+)
+APP_NAME = "Funkwhale"
 
 # XXX: deprecated, see #186
 FEDERATION_ENABLED = env.bool("FEDERATION_ENABLED", default=True)
-FEDERATION_HOSTNAME = env("FEDERATION_HOSTNAME", default=FUNKWHALE_HOSTNAME)
+FEDERATION_HOSTNAME = env("FEDERATION_HOSTNAME", default=FUNKWHALE_HOSTNAME).lower()
 # XXX: deprecated, see #186
 FEDERATION_COLLECTION_PAGE_SIZE = env.int("FEDERATION_COLLECTION_PAGE_SIZE", default=50)
 # XXX: deprecated, see #186
@@ -83,7 +94,7 @@ FEDERATION_MUSIC_NEEDS_APPROVAL = env.bool(
 )
 # XXX: deprecated, see #186
 FEDERATION_ACTOR_FETCH_DELAY = env.int("FEDERATION_ACTOR_FETCH_DELAY", default=60 * 12)
-ALLOWED_HOSTS = env.list("DJANGO_ALLOWED_HOSTS")
+ALLOWED_HOSTS = env.list("DJANGO_ALLOWED_HOSTS", default=[]) + [FUNKWHALE_HOSTNAME]
 
 # APP CONFIGURATION
 # ------------------------------------------------------------------------------
@@ -145,10 +156,10 @@ LOCAL_APPS = (
     "funkwhale_api.requests",
     "funkwhale_api.favorites",
     "funkwhale_api.federation",
+    "funkwhale_api.moderation",
     "funkwhale_api.radios",
     "funkwhale_api.history",
     "funkwhale_api.playlists",
-    "funkwhale_api.providers.acoustid",
     "funkwhale_api.subsonic",
 )
 
@@ -159,7 +170,7 @@ INSTALLED_APPS = DJANGO_APPS + THIRD_PARTY_APPS + LOCAL_APPS
 # MIDDLEWARE CONFIGURATION
 # ------------------------------------------------------------------------------
 MIDDLEWARE = (
-    # Make sure djangosecure.middleware.SecurityMiddleware is listed first
+    "funkwhale_api.common.middleware.SPAFallbackMiddleware",
     "django.contrib.sessions.middleware.SessionMiddleware",
     "corsheaders.middleware.CorsMiddleware",
     "django.middleware.common.CommonMiddleware",
@@ -305,8 +316,7 @@ FILE_UPLOAD_PERMISSIONS = 0o644
 # URL Configuration
 # ------------------------------------------------------------------------------
 ROOT_URLCONF = "config.urls"
-# See: https://docs.djangoproject.com/en/dev/ref/settings/#wsgi-application
-WSGI_APPLICATION = "config.wsgi.application"
+SPA_URLCONF = "config.spa_urls"
 ASGI_APPLICATION = "config.routing.application"
 
 # This ensures that Django will be able to detect a secure connection
@@ -315,7 +325,7 @@ SECURE_PROXY_SSL_HEADER = ("HTTP_X_FORWARDED_PROTO", "https")
 # AUTHENTICATION CONFIGURATION
 # ------------------------------------------------------------------------------
 AUTHENTICATION_BACKENDS = (
-    "django.contrib.auth.backends.ModelBackend",
+    "funkwhale_api.users.auth_backends.ModelBackend",
     "allauth.account.auth_backends.AuthenticationBackend",
 )
 SESSION_COOKIE_HTTPONLY = False
@@ -400,15 +410,20 @@ if AUTH_LDAP_ENABLED:
 AUTOSLUG_SLUGIFY_FUNCTION = "slugify.slugify"
 
 CACHE_DEFAULT = "redis://127.0.0.1:6379/0"
-CACHES = {"default": env.cache_url("CACHE_URL", default=CACHE_DEFAULT)}
+CACHES = {
+    "default": env.cache_url("CACHE_URL", default=CACHE_DEFAULT),
+    "local": {
+        "BACKEND": "django.core.cache.backends.locmem.LocMemCache",
+        "LOCATION": "local-cache",
+    },
+}
 
 CACHES["default"]["BACKEND"] = "django_redis.cache.RedisCache"
 
-cache_url = urlparse(CACHES["default"]["LOCATION"])
 CHANNEL_LAYERS = {
     "default": {
         "BACKEND": "channels_redis.core.RedisChannelLayer",
-        "CONFIG": {"hosts": [(cache_url.hostname, cache_url.port)]},
+        "CONFIG": {"hosts": [CACHES["default"]["LOCATION"]]},
     }
 }
 
@@ -435,7 +450,12 @@ CELERY_BEAT_SCHEDULE = {
         "task": "federation.clean_music_cache",
         "schedule": crontab(hour="*/2"),
         "options": {"expires": 60 * 2},
-    }
+    },
+    "music.clean_transcoding_cache": {
+        "task": "music.clean_transcoding_cache",
+        "schedule": crontab(hour="*"),
+        "options": {"expires": 60 * 2},
+    },
 }
 
 JWT_AUTH = {
@@ -516,6 +536,7 @@ MUSICBRAINZ_HOSTNAME = env("MUSICBRAINZ_HOSTNAME", default="musicbrainz.org")
 # Custom Admin URL, use {% url 'admin:index' %}
 ADMIN_URL = env("DJANGO_ADMIN_URL", default="^api/admin/")
 CSRF_USE_SESSIONS = True
+SESSION_ENGINE = "django.contrib.sessions.backends.cache"
 
 # Playlist settings
 # XXX: deprecated, see #186
@@ -570,3 +591,9 @@ VERSATILEIMAGEFIELD_RENDITION_KEY_SETS = {
     ]
 }
 VERSATILEIMAGEFIELD_SETTINGS = {"create_images_on_demand": False}
+RSA_KEY_SIZE = 2048
+# for performance gain in tests, since we don't need to actually create the
+# thumbnails
+CREATE_IMAGE_THUMBNAILS = env.bool("CREATE_IMAGE_THUMBNAILS", default=True)
+# we rotate actor keys at most every two days by default
+ACTOR_KEY_ROTATION_DELAY = env.int("ACTOR_KEY_ROTATION_DELAY", default=3600 * 48)
diff --git a/api/config/settings/local.py b/api/config/settings/local.py
index f639fabd8f5e7601aa11b4e34324d3247f4ab5c6..d6a8ce484caf782cdd8e9ed2ea66efbdb816fc31 100644
--- a/api/config/settings/local.py
+++ b/api/config/settings/local.py
@@ -14,6 +14,7 @@ from .common import *  # noqa
 # DEBUG
 # ------------------------------------------------------------------------------
 DEBUG = env.bool("DJANGO_DEBUG", default=True)
+FORCE_HTTPS_URLS = env.bool("FORCE_HTTPS_URLS", default=False)
 TEMPLATES[0]["OPTIONS"]["debug"] = DEBUG
 
 # SECRET CONFIGURATION
@@ -31,7 +32,6 @@ EMAIL_PORT = 1025
 
 # django-debug-toolbar
 # ------------------------------------------------------------------------------
-MIDDLEWARE += ("debug_toolbar.middleware.DebugToolbarMiddleware",)
 
 # INTERNAL_IPS = ('127.0.0.1', '10.0.2.2',)
 
@@ -39,20 +39,24 @@ DEBUG_TOOLBAR_CONFIG = {
     "DISABLE_PANELS": ["debug_toolbar.panels.redirects.RedirectsPanel"],
     "SHOW_TEMPLATE_CONTEXT": True,
     "SHOW_TOOLBAR_CALLBACK": lambda request: True,
-    "JQUERY_URL": "",
+    "JQUERY_URL": "/staticfiles/admin/js/vendor/jquery/jquery.js",
 }
 
 # django-extensions
 # ------------------------------------------------------------------------------
 # INSTALLED_APPS += ('django_extensions', )
-INSTALLED_APPS += ("debug_toolbar",)
+
+# Debug toolbar is slow, we disable it for tests
+DEBUG_TOOLBAR_ENABLED = env.bool("DEBUG_TOOLBAR_ENABLED", default=DEBUG)
+if DEBUG_TOOLBAR_ENABLED:
+    MIDDLEWARE += ("debug_toolbar.middleware.DebugToolbarMiddleware",)
+    INSTALLED_APPS += ("debug_toolbar",)
 
 # TESTING
 # ------------------------------------------------------------------------------
 TEST_RUNNER = "django.test.runner.DiscoverRunner"
 
 # CELERY
-# In development, all tasks will be executed locally by blocking until the task returns
 CELERY_TASK_ALWAYS_EAGER = False
 # END CELERY
 
@@ -72,3 +76,10 @@ LOGGING = {
     },
 }
 CSRF_TRUSTED_ORIGINS = [o for o in ALLOWED_HOSTS]
+
+
+if env.bool("WEAK_PASSWORDS", default=False):
+    # Faster during tests
+    PASSWORD_HASHERS = ("django.contrib.auth.hashers.MD5PasswordHasher",)
+
+MIDDLEWARE = ("funkwhale_api.common.middleware.DevHttpsMiddleware",) + MIDDLEWARE
diff --git a/api/config/spa_urls.py b/api/config/spa_urls.py
new file mode 100644
index 0000000000000000000000000000000000000000..071965b048b30ffb9aaf15c80d63cc5249389d10
--- /dev/null
+++ b/api/config/spa_urls.py
@@ -0,0 +1,18 @@
+from django import urls
+
+from funkwhale_api.music import spa_views
+
+
+urlpatterns = [
+    urls.re_path(
+        r"^library/tracks/(?P<pk>\d+)/?$", spa_views.library_track, name="library_track"
+    ),
+    urls.re_path(
+        r"^library/albums/(?P<pk>\d+)/?$", spa_views.library_album, name="library_album"
+    ),
+    urls.re_path(
+        r"^library/artists/(?P<pk>\d+)/?$",
+        spa_views.library_artist,
+        name="library_artist",
+    ),
+]
diff --git a/api/config/wsgi.py b/api/config/wsgi.py
deleted file mode 100644
index 8e843eb4d29c4f162fe23e1a1a2ea3c0ed622fc5..0000000000000000000000000000000000000000
--- a/api/config/wsgi.py
+++ /dev/null
@@ -1,39 +0,0 @@
-"""
-WSGI config for funkwhale_api project.
-
-This module contains the WSGI application used by Django's development server
-and any production WSGI deployments. It should expose a module-level variable
-named ``application``. Django's ``runserver`` and ``runfcgi`` commands discover
-this application via the ``WSGI_APPLICATION`` setting.
-
-Usually you will have the standard Django WSGI application here, but it also
-might make sense to replace the whole Django WSGI application with a custom one
-that later delegates to the Django one. For example, you could introduce WSGI
-middleware here, or combine a Django application with an application of another
-framework.
-
-"""
-import os
-
-from django.core.wsgi import get_wsgi_application
-from whitenoise.django import DjangoWhiteNoise
-
-# We defer to a DJANGO_SETTINGS_MODULE already in the environment. This breaks
-# if running multiple sites in the same mod_wsgi process. To fix this, use
-# mod_wsgi daemon mode with each site in its own daemon process, or use
-# os.environ["DJANGO_SETTINGS_MODULE"] = "config.settings.production"
-os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings.production")
-
-# This application object is used by any WSGI server configured to use this
-# file. This includes Django's development server, if the WSGI_APPLICATION
-# setting points here.
-application = get_wsgi_application()
-
-# Use Whitenoise to serve static files
-# See: https://whitenoise.readthedocs.org/
-application = DjangoWhiteNoise(application)
-
-
-# Apply WSGI middleware here.
-# from helloworld.wsgi import HelloWorldApplication
-# application = HelloWorldApplication(application)
diff --git a/api/docker/Dockerfile.test b/api/docker/Dockerfile.test
deleted file mode 100644
index 963e3ab20e4f114a96a176b4a9a1cb5c91f6023c..0000000000000000000000000000000000000000
--- a/api/docker/Dockerfile.test
+++ /dev/null
@@ -1,26 +0,0 @@
-FROM python:3.6
-
-ENV PYTHONUNBUFFERED 1
-
-# Requirements have to be pulled and installed here, otherwise caching won't work
-RUN echo 'deb http://httpredir.debian.org/debian/ jessie-backports main' > /etc/apt/sources.list.d/ffmpeg.list
-COPY ./requirements.apt /requirements.apt
-RUN apt-get update; \
-    grep "^[^#;]" requirements.apt | \
-    grep -Fv "python3-dev" | \
-    xargs apt-get install -y --no-install-recommends; \
-    rm -rf /usr/share/doc/* /usr/share/locale/*
-
-RUN curl -L https://github.com/acoustid/chromaprint/releases/download/v1.4.2/chromaprint-fpcalc-1.4.2-linux-x86_64.tar.gz | tar -xz -C /usr/local/bin --strip 1
-
-RUN mkdir /requirements
-COPY ./requirements/base.txt /requirements/base.txt
-RUN pip install -r /requirements/base.txt
-COPY ./requirements/local.txt /requirements/local.txt
-RUN pip install -r /requirements/local.txt
-COPY ./requirements/test.txt /requirements/test.txt
-RUN pip install -r /requirements/test.txt
-
-COPY . /app
-WORKDIR /app
-ENTRYPOINT ["compose/django/dev-entrypoint.sh"]
diff --git a/api/funkwhale_api/__init__.py b/api/funkwhale_api/__init__.py
index 7ad37d53d6cf358d4d1bc02595cbbe57ced11b82..b6e74547810ecf92c68ba32f16c2b4324770dc70 100644
--- a/api/funkwhale_api/__init__.py
+++ b/api/funkwhale_api/__init__.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-__version__ = "0.17"
+__version__ = "0.18"
 __version_info__ = tuple(
     [
         int(num) if num.isdigit() else num
diff --git a/api/funkwhale_api/common/channels.py b/api/funkwhale_api/common/channels.py
index b8106bef49f4c377c7af28f4993038e8a9a03309..d9422f6fa4285faa2ae4b12bc991810ab6f73a15 100644
--- a/api/funkwhale_api/common/channels.py
+++ b/api/funkwhale_api/common/channels.py
@@ -5,7 +5,7 @@ from asgiref.sync import async_to_sync
 from channels.layers import get_channel_layer
 from django.core.serializers.json import DjangoJSONEncoder
 
-logger = logging.getLogger(__file__)
+logger = logging.getLogger(__name__)
 channel_layer = get_channel_layer()
 group_add = async_to_sync(channel_layer.group_add)
 
diff --git a/api/funkwhale_api/common/decorators.py b/api/funkwhale_api/common/decorators.py
new file mode 100644
index 0000000000000000000000000000000000000000..71992eff3f9eacfe546df84d77a8faf4924138c2
--- /dev/null
+++ b/api/funkwhale_api/common/decorators.py
@@ -0,0 +1,14 @@
+from rest_framework import response
+from rest_framework import decorators
+
+
+def action_route(serializer_class):
+    @decorators.action(methods=["post"], detail=False)
+    def action(self, request, *args, **kwargs):
+        queryset = self.get_queryset()
+        serializer = serializer_class(request.data, queryset=queryset)
+        serializer.is_valid(raise_exception=True)
+        result = serializer.save()
+        return response.Response(result, status=200)
+
+    return action
diff --git a/api/funkwhale_api/common/middleware.py b/api/funkwhale_api/common/middleware.py
new file mode 100644
index 0000000000000000000000000000000000000000..96e9c45a667dbda91800c443b08a4b5191c7baa5
--- /dev/null
+++ b/api/funkwhale_api/common/middleware.py
@@ -0,0 +1,159 @@
+import html
+import requests
+
+from django import http
+from django.conf import settings
+from django.core.cache import caches
+from django import urls
+
+from . import preferences
+from . import utils
+
+EXCLUDED_PATHS = ["/api", "/federation", "/.well-known"]
+
+
+def should_fallback_to_spa(path):
+    if path == "/":
+        return True
+    return not any([path.startswith(m) for m in EXCLUDED_PATHS])
+
+
+def serve_spa(request):
+    html = get_spa_html(settings.FUNKWHALE_SPA_HTML_ROOT)
+    head, tail = html.split("</head>", 1)
+    if not preferences.get("common__api_authentication_required"):
+        try:
+            request_tags = get_request_head_tags(request) or []
+        except urls.exceptions.Resolver404:
+            # we don't have any custom tags for this route
+            request_tags = []
+    else:
+        # API is not open, we don't expose any custom data
+        request_tags = []
+    default_tags = get_default_head_tags(request.path)
+    unique_attributes = ["name", "property"]
+
+    final_tags = request_tags
+    skip = []
+
+    for t in final_tags:
+        for attr in unique_attributes:
+            if attr in t:
+                skip.append(t[attr])
+    for t in default_tags:
+        existing = False
+        for attr in unique_attributes:
+            if t.get(attr) in skip:
+                existing = True
+                break
+        if not existing:
+            final_tags.append(t)
+
+    # let's inject our meta tags in the HTML
+    head += "\n" + "\n".join(render_tags(final_tags)) + "\n</head>"
+
+    return http.HttpResponse(head + tail)
+
+
+def get_spa_html(spa_url):
+    cache_key = "spa-html:{}".format(spa_url)
+    cached = caches["local"].get(cache_key)
+    if cached:
+        return cached
+
+    response = requests.get(
+        utils.join_url(spa_url, "index.html"),
+        verify=settings.EXTERNAL_REQUESTS_VERIFY_SSL,
+    )
+    response.raise_for_status()
+    content = response.text
+    caches["local"].set(cache_key, content, settings.FUNKWHALE_SPA_HTML_CACHE_DURATION)
+    return content
+
+
+def get_default_head_tags(path):
+    instance_name = preferences.get("instance__name")
+    short_description = preferences.get("instance__short_description")
+    app_name = settings.APP_NAME
+
+    parts = [instance_name, app_name]
+
+    return [
+        {"tag": "meta", "property": "og:type", "content": "website"},
+        {
+            "tag": "meta",
+            "property": "og:site_name",
+            "content": " - ".join([p for p in parts if p]),
+        },
+        {"tag": "meta", "property": "og:description", "content": short_description},
+        {
+            "tag": "meta",
+            "property": "og:image",
+            "content": utils.join_url(settings.FUNKWHALE_URL, "/front/favicon.png"),
+        },
+        {
+            "tag": "meta",
+            "property": "og:url",
+            "content": utils.join_url(settings.FUNKWHALE_URL, path),
+        },
+    ]
+
+
+def render_tags(tags):
+    """
+    Given a dict like {'tag': 'meta', 'hello': 'world'}
+    return a html ready tag like
+    <meta hello="world" />
+    """
+    for tag in tags:
+
+        yield "<{tag} {attrs} />".format(
+            tag=tag.pop("tag"),
+            attrs=" ".join(
+                [
+                    '{}="{}"'.format(a, html.escape(str(v)))
+                    for a, v in sorted(tag.items())
+                    if v
+                ]
+            ),
+        )
+
+
+def get_request_head_tags(request):
+    match = urls.resolve(request.path, urlconf=settings.SPA_URLCONF)
+    return match.func(request, *match.args, **match.kwargs)
+
+
+class SPAFallbackMiddleware:
+    def __init__(self, get_response):
+        self.get_response = get_response
+
+    def __call__(self, request):
+        response = self.get_response(request)
+
+        if response.status_code == 404 and should_fallback_to_spa(request.path):
+            return serve_spa(request)
+
+        return response
+
+
+class DevHttpsMiddleware:
+    """
+    In development, it's sometimes difficult to have django use HTTPS
+    when we have django behind nginx behind traefix.
+
+    We thus use a simple setting (in dev ONLY) to control that.
+    """
+
+    def __init__(self, get_response):
+        self.get_response = get_response
+
+    def __call__(self, request):
+        if settings.FORCE_HTTPS_URLS:
+            setattr(request.__class__, "scheme", "https")
+            setattr(
+                request,
+                "get_host",
+                lambda: request.__class__.get_host(request).replace(":80", ":443"),
+            )
+        return self.get_response(request)
diff --git a/api/funkwhale_api/common/migrations/0001_initial.py b/api/funkwhale_api/common/migrations/0001_initial.py
index a362855b8c2bb44983128d99aa211a1268f1d7dd..2460f74bade6df6b3be5bbf7f28bab818fbf0831 100644
--- a/api/funkwhale_api/common/migrations/0001_initial.py
+++ b/api/funkwhale_api/common/migrations/0001_initial.py
@@ -3,8 +3,20 @@ from django.db import migrations
 from django.contrib.postgres.operations import UnaccentExtension
 
 
+class CustomUnaccentExtension(UnaccentExtension):
+    def database_forwards(self, app_label, schema_editor, from_state, to_state):
+        check_sql = "SELECT 1 FROM pg_extension WHERE extname = 'unaccent'"
+        with schema_editor.connection.cursor() as cursor:
+            cursor.execute(check_sql)
+            result = cursor.fetchall()
+
+        if result:
+            return
+        return super().database_forwards(app_label, schema_editor, from_state, to_state)
+
+
 class Migration(migrations.Migration):
 
     dependencies = []
 
-    operations = [UnaccentExtension()]
+    operations = [CustomUnaccentExtension()]
diff --git a/api/funkwhale_api/common/scripts/__init__.py b/api/funkwhale_api/common/scripts/__init__.py
index c1fd39e619a016708dd629962e8a6411a8e31714..7c468d9849c9c801c08cece808e85de44118ef25 100644
--- a/api/funkwhale_api/common/scripts/__init__.py
+++ b/api/funkwhale_api/common/scripts/__init__.py
@@ -2,6 +2,7 @@ from . import create_actors
 from . import create_image_variations
 from . import django_permissions_to_user_permissions
 from . import migrate_to_user_libraries
+from . import delete_pre_017_federated_uploads
 from . import test
 
 
@@ -10,5 +11,6 @@ __all__ = [
     "create_image_variations",
     "django_permissions_to_user_permissions",
     "migrate_to_user_libraries",
+    "delete_pre_017_federated_uploads",
     "test",
 ]
diff --git a/api/funkwhale_api/common/scripts/delete_pre_017_federated_uploads.py b/api/funkwhale_api/common/scripts/delete_pre_017_federated_uploads.py
new file mode 100644
index 0000000000000000000000000000000000000000..527b5c7b2fb3cb9f0e6c7ca046db3200370fbc1f
--- /dev/null
+++ b/api/funkwhale_api/common/scripts/delete_pre_017_federated_uploads.py
@@ -0,0 +1,14 @@
+"""
+Compute different sizes of image used for Album covers and User avatars
+"""
+
+from funkwhale_api.music.models import Upload
+
+
+def main(command, **kwargs):
+    queryset = Upload.objects.filter(
+        source__startswith="http", source__contains="/federation/music/file/"
+    ).exclude(source__contains="youtube")
+    total = queryset.count()
+    command.stdout.write("{} uploads found".format(total))
+    queryset.delete()
diff --git a/api/funkwhale_api/common/scripts/django_permissions_to_user_permissions.py b/api/funkwhale_api/common/scripts/django_permissions_to_user_permissions.py
index 48144f8ea7f737a39d94a1f1b96573557109300d..0a07fa7fee83e32b546d6229c066df59d8b8795d 100644
--- a/api/funkwhale_api/common/scripts/django_permissions_to_user_permissions.py
+++ b/api/funkwhale_api/common/scripts/django_permissions_to_user_permissions.py
@@ -10,7 +10,6 @@ from funkwhale_api.users import models
 mapping = {
     "dynamic_preferences.change_globalpreferencemodel": "settings",
     "music.add_importbatch": "library",
-    "federation.change_library": "federation",
 }
 
 
diff --git a/api/funkwhale_api/common/serializers.py b/api/funkwhale_api/common/serializers.py
index c94b08d0022ef2ac43f2320c94e1f0765fe10dd3..fafa6152d09edf95052f2346b16e3135756a6114 100644
--- a/api/funkwhale_api/common/serializers.py
+++ b/api/funkwhale_api/common/serializers.py
@@ -1,8 +1,12 @@
 import collections
+import io
+import PIL
+import os
 
 from rest_framework import serializers
 
 from django.core.exceptions import ObjectDoesNotExist
+from django.core.files.uploadedfile import SimpleUploadedFile
 from django.utils.encoding import smart_text
 from django.utils.translation import ugettext_lazy as _
 
@@ -119,7 +123,7 @@ class ActionSerializer(serializers.Serializer):
         if type(value) in [list, tuple]:
             return self.queryset.filter(
                 **{"{}__in".format(self.pk_field): value}
-            ).order_by("id")
+            ).order_by(self.pk_field)
 
         raise serializers.ValidationError(
             "{} is not a valid value for objects. You must provide either a "
@@ -159,3 +163,56 @@ class ActionSerializer(serializers.Serializer):
             "result": result,
         }
         return payload
+
+
+def track_fields_for_update(*fields):
+    """
+    Apply this decorator to serializer to call function when specific values
+    are updated on an object:
+
+    .. code-block:: python
+
+        @track_fields_for_update('privacy_level')
+        class LibrarySerializer(serializers.ModelSerializer):
+            def on_updated_privacy_level(self, obj, old_value, new_value):
+                print('Do someting')
+    """
+
+    def decorator(serializer_class):
+        original_update = serializer_class.update
+
+        def new_update(self, obj, validated_data):
+            tracked_fields_before = {f: getattr(obj, f) for f in fields}
+            obj = original_update(self, obj, validated_data)
+            tracked_fields_after = {f: getattr(obj, f) for f in fields}
+
+            if tracked_fields_before != tracked_fields_after:
+                self.on_updated_fields(obj, tracked_fields_before, tracked_fields_after)
+            return obj
+
+        serializer_class.update = new_update
+        return serializer_class
+
+    return decorator
+
+
+class StripExifImageField(serializers.ImageField):
+    def to_internal_value(self, data):
+        file_obj = super().to_internal_value(data)
+
+        image = PIL.Image.open(file_obj)
+        data = list(image.getdata())
+        image_without_exif = PIL.Image.new(image.mode, image.size)
+        image_without_exif.putdata(data)
+
+        with io.BytesIO() as output:
+            image_without_exif.save(
+                output,
+                format=PIL.Image.EXTENSION[os.path.splitext(file_obj.name)[-1]],
+                quality=100,
+            )
+            content = output.getvalue()
+
+        return SimpleUploadedFile(
+            file_obj.name, content, content_type=file_obj.content_type
+        )
diff --git a/api/funkwhale_api/common/utils.py b/api/funkwhale_api/common/utils.py
index deda2f5900e721db633fc52ea70b8da87bf5d6bb..bd9fd87c54de936f642cafc85e535cf7d8e50871 100644
--- a/api/funkwhale_api/common/utils.py
+++ b/api/funkwhale_api/common/utils.py
@@ -3,10 +3,13 @@ from django.utils.deconstruct import deconstructible
 import os
 import shutil
 import uuid
+import xml.etree.ElementTree as ET
 
 from urllib.parse import parse_qs, urlencode, urlsplit, urlunsplit
 
-from django.db import transaction
+from django.conf import settings
+from django import urls
+from django.db import models, transaction
 
 
 def rename_file(instance, field_name, new_name, allow_missing_file=False):
@@ -107,3 +110,40 @@ def chunk_queryset(source_qs, chunk_size):
 
         if nb_items < chunk_size:
             return
+
+
+def join_url(start, end):
+    if start.endswith("/") and end.startswith("/"):
+        return start + end[1:]
+
+    if not start.endswith("/") and not end.startswith("/"):
+        return start + "/" + end
+
+    return start + end
+
+
+def spa_reverse(name, args=[], kwargs={}):
+    return urls.reverse(name, urlconf=settings.SPA_URLCONF, args=args, kwargs=kwargs)
+
+
+def spa_resolve(path):
+    return urls.resolve(path, urlconf=settings.SPA_URLCONF)
+
+
+def parse_meta(html):
+    # dirty but this is only for testing so we don't really care,
+    # we convert the html string to xml so it can be parsed as xml
+    html = '<?xml version="1.0"?>' + html
+    tree = ET.fromstring(html)
+
+    meta = [elem for elem in tree.iter() if elem.tag in ["meta", "link"]]
+
+    return [dict([("tag", elem.tag)] + list(elem.items())) for elem in meta]
+
+
+def order_for_search(qs, field):
+    """
+    When searching, it's often more useful to have short results first,
+    this function will order the given qs based on the length of the given field
+    """
+    return qs.annotate(__size=models.functions.Length(field)).order_by("__size")
diff --git a/api/funkwhale_api/common/validators.py b/api/funkwhale_api/common/validators.py
index b5f26cac5421450fccaac039720e1238cf118ca8..78a4b4c7c4c3c9bf40d33616f4e0538ba7ca6ebc 100644
--- a/api/funkwhale_api/common/validators.py
+++ b/api/funkwhale_api/common/validators.py
@@ -1,6 +1,7 @@
 import mimetypes
 from os.path import splitext
 
+from django.core import validators
 from django.core.exceptions import ValidationError
 from django.core.files.images import get_image_dimensions
 from django.template.defaultfilters import filesizeformat
@@ -150,3 +151,17 @@ class FileValidator(object):
             }
 
             raise ValidationError(message)
+
+
+class DomainValidator(validators.URLValidator):
+    message = "Enter a valid domain name."
+
+    def __call__(self, value):
+        """
+        This is a bit hackish but since we don't have any built-in domain validator,
+        we use the url one, and prepend http:// in front of it.
+
+        If it fails, we know the domain is not valid.
+        """
+        super().__call__("http://{}".format(value))
+        return value
diff --git a/api/funkwhale_api/downloader/__init__.py b/api/funkwhale_api/downloader/__init__.py
deleted file mode 100644
index eca15e121d9be1167e0a72c65de662189242720c..0000000000000000000000000000000000000000
--- a/api/funkwhale_api/downloader/__init__.py
+++ /dev/null
@@ -1,3 +0,0 @@
-from .downloader import download
-
-__all__ = ["download"]
diff --git a/api/funkwhale_api/downloader/downloader.py b/api/funkwhale_api/downloader/downloader.py
deleted file mode 100644
index f2b7568cc5e992a4407edd86100cb73c15100587..0000000000000000000000000000000000000000
--- a/api/funkwhale_api/downloader/downloader.py
+++ /dev/null
@@ -1,19 +0,0 @@
-import os
-
-import youtube_dl
-from django.conf import settings
-
-
-def download(
-    url, target_directory=settings.MEDIA_ROOT, name="%(id)s.%(ext)s", bitrate=192
-):
-    target_path = os.path.join(target_directory, name)
-    ydl_opts = {
-        "quiet": True,
-        "outtmpl": target_path,
-        "postprocessors": [{"key": "FFmpegExtractAudio", "preferredcodec": "vorbis"}],
-    }
-    _downloader = youtube_dl.YoutubeDL(ydl_opts)
-    info = _downloader.extract_info(url)
-    info["audio_file_path"] = target_path % {"id": info["id"], "ext": "ogg"}
-    return info
diff --git a/api/funkwhale_api/factories.py b/api/funkwhale_api/factories.py
index 602037a065440bfde3fba2ff99821b2bebae1d91..5db75fd58d74756689fb48b7df072c635acc99f3 100644
--- a/api/funkwhale_api/factories.py
+++ b/api/funkwhale_api/factories.py
@@ -28,3 +28,14 @@ def ManyToManyFromList(field_name):
             field.add(*extracted)
 
     return inner
+
+
+class NoUpdateOnCreate:
+    """
+    Factory boy calls save after the initial create. In most case, this
+    is not needed, so we disable this behaviour
+    """
+
+    @classmethod
+    def _after_postgeneration(cls, instance, create, results=None):
+        return
diff --git a/api/funkwhale_api/favorites/factories.py b/api/funkwhale_api/favorites/factories.py
index d96ef1c15180c3c5d425585a3f2d562db015f139..fcc2f820425c80130a93b7c45c1dca7650da5c88 100644
--- a/api/funkwhale_api/favorites/factories.py
+++ b/api/funkwhale_api/favorites/factories.py
@@ -1,12 +1,12 @@
 import factory
 
-from funkwhale_api.factories import registry
+from funkwhale_api.factories import registry, NoUpdateOnCreate
 from funkwhale_api.music.factories import TrackFactory
 from funkwhale_api.users.factories import UserFactory
 
 
 @registry.register
-class TrackFavorite(factory.django.DjangoModelFactory):
+class TrackFavorite(NoUpdateOnCreate, factory.django.DjangoModelFactory):
     track = factory.SubFactory(TrackFactory)
     user = factory.SubFactory(UserFactory)
 
diff --git a/api/funkwhale_api/favorites/views.py b/api/funkwhale_api/favorites/views.py
index 7e30c28a6a7283e0c57d049961e617fb60aec3c4..d54b79cea376c6598012f707cbb50784adb6d33a 100644
--- a/api/funkwhale_api/favorites/views.py
+++ b/api/funkwhale_api/favorites/views.py
@@ -1,5 +1,5 @@
 from rest_framework import mixins, status, viewsets
-from rest_framework.decorators import list_route
+from rest_framework.decorators import action
 from rest_framework.permissions import IsAuthenticatedOrReadOnly
 from rest_framework.response import Response
 
@@ -20,7 +20,7 @@ class TrackFavoriteViewSet(
     viewsets.GenericViewSet,
 ):
 
-    filter_class = filters.TrackFavoriteFilter
+    filterset_class = filters.TrackFavoriteFilter
     serializer_class = serializers.UserTrackFavoriteSerializer
     queryset = models.TrackFavorite.objects.all().select_related("user")
     permission_classes = [
@@ -51,7 +51,7 @@ class TrackFavoriteViewSet(
         queryset = queryset.filter(
             fields.privacy_level_query(self.request.user, "user__privacy_level")
         )
-        tracks = Track.objects.annotate_playable_by_actor(
+        tracks = Track.objects.with_playable_uploads(
             music_utils.get_actor_from_request(self.request)
         ).select_related("artist", "album__artist")
         queryset = queryset.prefetch_related(Prefetch("track", queryset=tracks))
@@ -62,7 +62,7 @@ class TrackFavoriteViewSet(
         favorite = models.TrackFavorite.add(track=track, user=self.request.user)
         return favorite
 
-    @list_route(methods=["delete", "post"])
+    @action(methods=["delete", "post"], detail=False)
     def remove(self, request, *args, **kwargs):
         try:
             pk = int(request.data["track"])
@@ -71,3 +71,19 @@ class TrackFavoriteViewSet(
             return Response({}, status=400)
         favorite.delete()
         return Response([], status=status.HTTP_204_NO_CONTENT)
+
+    @action(methods=["get"], detail=False)
+    def all(self, request, *args, **kwargs):
+        """
+        Return all the favorites of the current user, with only limited data
+        to have a performant endpoint and avoid lots of queries just to display
+        favorites status in the UI
+        """
+        if not request.user.is_authenticated:
+            return Response({"results": [], "count": 0}, status=200)
+
+        favorites = list(
+            request.user.track_favorites.values("id", "track").order_by("id")
+        )
+        payload = {"results": favorites, "count": len(favorites)}
+        return Response(payload, status=200)
diff --git a/api/funkwhale_api/federation/activity.py b/api/funkwhale_api/federation/activity.py
index 498c76a99bff52dcacf2cf9ed4ea87aa222e49c8..b9f8ffd69292fe1868417e058ad81d3e094327c4 100644
--- a/api/funkwhale_api/federation/activity.py
+++ b/api/funkwhale_api/federation/activity.py
@@ -1,6 +1,8 @@
 import uuid
 import logging
 
+from django.core.cache import cache
+from django.conf import settings
 from django.db import transaction, IntegrityError
 from django.db.models import Q
 
@@ -42,28 +44,68 @@ ACTIVITY_TYPES = [
     "View",
 ]
 
-
-OBJECT_TYPES = [
-    "Article",
-    "Audio",
-    "Collection",
-    "Document",
-    "Event",
-    "Image",
-    "Note",
-    "OrderedCollection",
-    "Page",
-    "Place",
-    "Profile",
-    "Relationship",
-    "Tombstone",
-    "Video",
-] + ACTIVITY_TYPES
+FUNKWHALE_OBJECT_TYPES = [
+    ("Domain", "Domain"),
+    ("Artist", "Artist"),
+    ("Album", "Album"),
+    ("Track", "Track"),
+    ("Library", "Library"),
+]
+OBJECT_TYPES = (
+    [
+        "Application",
+        "Article",
+        "Audio",
+        "Collection",
+        "Document",
+        "Event",
+        "Group",
+        "Image",
+        "Note",
+        "Object",
+        "OrderedCollection",
+        "Organization",
+        "Page",
+        "Person",
+        "Place",
+        "Profile",
+        "Relationship",
+        "Service",
+        "Tombstone",
+        "Video",
+    ]
+    + ACTIVITY_TYPES
+    + FUNKWHALE_OBJECT_TYPES
+)
 
 
 BROADCAST_TO_USER_ACTIVITIES = ["Follow", "Accept"]
 
 
+def should_reject(id, actor_id=None, payload={}):
+    from funkwhale_api.moderation import models as moderation_models
+
+    policies = moderation_models.InstancePolicy.objects.active()
+
+    media_types = ["Audio", "Artist", "Album", "Track", "Library", "Image"]
+    relevant_values = [
+        recursive_gettattr(payload, "type", permissive=True),
+        recursive_gettattr(payload, "object.type", permissive=True),
+        recursive_gettattr(payload, "target.type", permissive=True),
+    ]
+    # if one of the payload types match our internal media types, then
+    # we apply policies that reject media
+    if set(media_types) & set(relevant_values):
+        policy_type = Q(block_all=True) | Q(reject_media=True)
+    else:
+        policy_type = Q(block_all=True)
+
+    query = policies.matching_url_query(id) & policy_type
+    if actor_id:
+        query |= policies.matching_url_query(actor_id) & policy_type
+    return policies.filter(query).exists()
+
+
 @transaction.atomic
 def receive(activity, on_behalf_of):
     from . import models
@@ -76,6 +118,16 @@ def receive(activity, on_behalf_of):
         data=activity, context={"actor": on_behalf_of, "local_recipients": True}
     )
     serializer.is_valid(raise_exception=True)
+    if should_reject(
+        id=serializer.validated_data["id"],
+        actor_id=serializer.validated_data["actor"].fid,
+        payload=activity,
+    ):
+        logger.info(
+            "[federation] Discarding activity due to instance policies %s",
+            serializer.validated_data.get("id"),
+        )
+        return
     try:
         copy = serializer.save()
     except IntegrityError:
@@ -186,6 +238,21 @@ class InboxRouter(Router):
                 return
 
 
+ACTOR_KEY_ROTATION_LOCK_CACHE_KEY = "federation:actor-key-rotation-lock:{}"
+
+
+def should_rotate_actor_key(actor_id):
+    lock = cache.get(ACTOR_KEY_ROTATION_LOCK_CACHE_KEY.format(actor_id))
+    return lock is None
+
+
+def schedule_key_rotation(actor_id, delay):
+    from . import tasks
+
+    cache.set(ACTOR_KEY_ROTATION_LOCK_CACHE_KEY.format(actor_id), True, timeout=delay)
+    tasks.rotate_actor_key.apply_async(kwargs={"actor_id": actor_id}, countdown=delay)
+
+
 class OutboxRouter(Router):
     @transaction.atomic
     def dispatch(self, routing, context):
@@ -206,6 +273,15 @@ class OutboxRouter(Router):
                 # a route can yield zero, one or more activity payloads
                 if e:
                     activities_data.append(e)
+            deletions = [
+                a["actor"].id
+                for a in activities_data
+                if a["payload"]["type"] == "Delete"
+            ]
+            for actor_id in deletions:
+                # we way need to triggers a blind key rotation
+                if should_rotate_actor_key(actor_id):
+                    schedule_key_rotation(actor_id, settings.ACTOR_KEY_ROTATION_DELAY)
             inbox_items_by_activity_uuid = {}
             deliveries_by_activity_uuid = {}
             prepared_activities = []
@@ -267,7 +343,7 @@ class OutboxRouter(Router):
             return activities
 
 
-def recursive_gettattr(obj, key):
+def recursive_gettattr(obj, key, permissive=False):
     """
     Given a dictionary such as {'user': {'name': 'Bob'}} and
     a dotted string such as user.name, returns 'Bob'.
@@ -276,7 +352,12 @@ def recursive_gettattr(obj, key):
     """
     v = obj
     for k in key.split("."):
-        v = v.get(k)
+        try:
+            v = v.get(k)
+        except (TypeError, AttributeError):
+            if not permissive:
+                raise
+            return
         if v is None:
             return
 
@@ -386,15 +467,3 @@ def get_actors_from_audience(urls):
     if not final_query:
         return models.Actor.objects.none()
     return models.Actor.objects.filter(final_query)
-
-
-def get_inbox_urls(actor_queryset):
-    """
-    Given an actor queryset, returns a deduplicated set containing
-    all inbox or shared inbox urls where we should deliver our payloads for
-    those actors
-    """
-    values = actor_queryset.values("inbox_url", "shared_inbox_url")
-
-    urls = set([actor["shared_inbox_url"] or actor["inbox_url"] for actor in values])
-    return sorted(urls)
diff --git a/api/funkwhale_api/federation/actors.py b/api/funkwhale_api/federation/actors.py
index f1b94809d779dcbd5f7963b591f8808f2aab9806..c7a0c7c6b61c0bdbe83253286b5cb156b0370ba0 100644
--- a/api/funkwhale_api/federation/actors.py
+++ b/api/funkwhale_api/federation/actors.py
@@ -25,17 +25,18 @@ def get_actor_data(actor_url):
         raise ValueError("Invalid actor payload: {}".format(response.text))
 
 
-def get_actor(fid):
-    try:
-        actor = models.Actor.objects.get(fid=fid)
-    except models.Actor.DoesNotExist:
-        actor = None
-    fetch_delta = datetime.timedelta(
-        minutes=preferences.get("federation__actor_fetch_delay")
-    )
-    if actor and actor.last_fetch_date > timezone.now() - fetch_delta:
-        # cache is hot, we can return as is
-        return actor
+def get_actor(fid, skip_cache=False):
+    if not skip_cache:
+        try:
+            actor = models.Actor.objects.get(fid=fid)
+        except models.Actor.DoesNotExist:
+            actor = None
+        fetch_delta = datetime.timedelta(
+            minutes=preferences.get("federation__actor_fetch_delay")
+        )
+        if actor and actor.last_fetch_date > timezone.now() - fetch_delta:
+            # cache is hot, we can return as is
+            return actor
     data = get_actor_data(fid)
     serializer = serializers.ActorSerializer(data=data)
     serializer.is_valid(raise_exception=True)
diff --git a/api/funkwhale_api/federation/admin.py b/api/funkwhale_api/federation/admin.py
index 98bc65247c9125d6548016ec540e2b1231a1fad2..acb2e5b67b33830e57550d9484516d0071c8c9df 100644
--- a/api/funkwhale_api/federation/admin.py
+++ b/api/funkwhale_api/federation/admin.py
@@ -24,6 +24,12 @@ def redeliver_activities(modeladmin, request, queryset):
 redeliver_activities.short_description = "Redeliver"
 
 
+@admin.register(models.Domain)
+class DomainAdmin(admin.ModelAdmin):
+    list_display = ["name", "creation_date"]
+    search_fields = ["name"]
+
+
 @admin.register(models.Activity)
 class ActivityAdmin(admin.ModelAdmin):
     list_display = ["type", "fid", "url", "actor", "creation_date"]
diff --git a/api/funkwhale_api/federation/api_views.py b/api/funkwhale_api/federation/api_views.py
index 75ffad0b221ddc7bf56c279d4e1ef369084c972c..2c7e2658223fe80db5fc3b65b38966e74b4bbbf8 100644
--- a/api/funkwhale_api/federation/api_views.py
+++ b/api/funkwhale_api/federation/api_views.py
@@ -13,6 +13,7 @@ from funkwhale_api.music import models as music_models
 
 from . import activity
 from . import api_serializers
+from . import exceptions
 from . import filters
 from . import models
 from . import routes
@@ -42,7 +43,7 @@ class LibraryFollowViewSet(
     )
     serializer_class = api_serializers.LibraryFollowSerializer
     permission_classes = [permissions.IsAuthenticated]
-    filter_class = filters.LibraryFollowFilter
+    filterset_class = filters.LibraryFollowFilter
     ordering_fields = ("creation_date",)
 
     def get_queryset(self):
@@ -65,7 +66,7 @@ class LibraryFollowViewSet(
         context["actor"] = self.request.user.actor
         return context
 
-    @decorators.detail_route(methods=["post"])
+    @decorators.action(methods=["post"], detail=True)
     def accept(self, request, *args, **kwargs):
         try:
             follow = self.queryset.get(
@@ -76,7 +77,7 @@ class LibraryFollowViewSet(
         update_follow(follow, approved=True)
         return response.Response(status=204)
 
-    @decorators.detail_route(methods=["post"])
+    @decorators.action(methods=["post"], detail=True)
     def reject(self, request, *args, **kwargs):
         try:
             follow = self.queryset.get(
@@ -104,7 +105,7 @@ class LibraryViewSet(mixins.RetrieveModelMixin, viewsets.GenericViewSet):
         qs = super().get_queryset()
         return qs.viewable_by(actor=self.request.user.actor)
 
-    @decorators.detail_route(methods=["post"])
+    @decorators.action(methods=["post"], detail=True)
     def scan(self, request, *args, **kwargs):
         library = self.get_object()
         if library.actor.get_user():
@@ -121,18 +122,23 @@ class LibraryViewSet(mixins.RetrieveModelMixin, viewsets.GenericViewSet):
             )
         return response.Response({"status": "skipped"}, 200)
 
-    @decorators.list_route(methods=["post"])
+    @decorators.action(methods=["post"], detail=False)
     def fetch(self, request, *args, **kwargs):
         try:
             fid = request.data["fid"]
         except KeyError:
             return response.Response({"fid": ["This field is required"]})
         try:
-            library = utils.retrieve(
+            library = utils.retrieve_ap_object(
                 fid,
                 queryset=self.queryset,
                 serializer_class=serializers.LibrarySerializer,
             )
+        except exceptions.BlockedActorOrDomain:
+            return response.Response(
+                {"detail": "This domain/account is blocked on your instance."},
+                status=400,
+            )
         except requests.exceptions.RequestException as e:
             return response.Response(
                 {"detail": "Error while fetching the library: {}".format(str(e))},
@@ -162,14 +168,14 @@ class InboxItemViewSet(
     )
     serializer_class = api_serializers.InboxItemSerializer
     permission_classes = [permissions.IsAuthenticated]
-    filter_class = filters.InboxItemFilter
+    filterset_class = filters.InboxItemFilter
     ordering_fields = ("activity__creation_date",)
 
     def get_queryset(self):
         qs = super().get_queryset()
         return qs.filter(actor=self.request.user.actor)
 
-    @decorators.list_route(methods=["post"])
+    @decorators.action(methods=["post"], detail=False)
     def action(self, request, *args, **kwargs):
         queryset = self.get_queryset()
         serializer = api_serializers.InboxItemActionSerializer(
diff --git a/api/funkwhale_api/federation/authentication.py b/api/funkwhale_api/federation/authentication.py
index f32c78ff30f00079d822bbf2921d2c4845fff5fc..dd7a142dfe483aa9ee51b1d50de72c4c52a3ce4c 100644
--- a/api/funkwhale_api/federation/authentication.py
+++ b/api/funkwhale_api/federation/authentication.py
@@ -1,8 +1,14 @@
 import cryptography
+import logging
+
 from django.contrib.auth.models import AnonymousUser
-from rest_framework import authentication, exceptions
+from rest_framework import authentication, exceptions as rest_exceptions
+
+from funkwhale_api.moderation import models as moderation_models
+from . import actors, exceptions, keys, signing, utils
 
-from . import actors, keys, signing, utils
+
+logger = logging.getLogger(__name__)
 
 
 class SignatureAuthentication(authentication.BaseAuthentication):
@@ -14,20 +20,42 @@ class SignatureAuthentication(authentication.BaseAuthentication):
         except KeyError:
             return
         except ValueError as e:
-            raise exceptions.AuthenticationFailed(str(e))
+            raise rest_exceptions.AuthenticationFailed(str(e))
 
         try:
-            actor = actors.get_actor(key_id.split("#")[0])
+            actor_url = key_id.split("#")[0]
+        except (TypeError, IndexError, AttributeError):
+            raise rest_exceptions.AuthenticationFailed("Invalid key id")
+
+        policies = (
+            moderation_models.InstancePolicy.objects.active()
+            .filter(block_all=True)
+            .matching_url(actor_url)
+        )
+        if policies.exists():
+            raise exceptions.BlockedActorOrDomain()
+
+        try:
+            actor = actors.get_actor(actor_url)
         except Exception as e:
-            raise exceptions.AuthenticationFailed(str(e))
+            logger.info(
+                "Discarding HTTP request from blocked actor/domain %s", actor_url
+            )
+            raise rest_exceptions.AuthenticationFailed(str(e))
 
         if not actor.public_key:
-            raise exceptions.AuthenticationFailed("No public key found")
+            raise rest_exceptions.AuthenticationFailed("No public key found")
 
         try:
             signing.verify_django(request, actor.public_key.encode("utf-8"))
         except cryptography.exceptions.InvalidSignature:
-            raise exceptions.AuthenticationFailed("Invalid signature")
+            # in case of invalid signature, we refetch the actor object
+            # to load a potentially new public key. This process is called
+            # Blind key rotation, and is described at
+            # https://blog.dereferenced.org/the-case-for-blind-key-rotation
+            # if signature verification fails after that, then we return a 403 error
+            actor = actors.get_actor(actor_url, skip_cache=True)
+            signing.verify_django(request, actor.public_key.encode("utf-8"))
 
         return actor
 
diff --git a/api/funkwhale_api/federation/exceptions.py b/api/funkwhale_api/federation/exceptions.py
index b3fb73ab8ee549d92250c48fd8bffff2667ee15e..eb2bd2161537b1498c8905de45476bf705b70e1c 100644
--- a/api/funkwhale_api/federation/exceptions.py
+++ b/api/funkwhale_api/federation/exceptions.py
@@ -1,6 +1,13 @@
+from rest_framework import exceptions
+
+
 class MalformedPayload(ValueError):
     pass
 
 
 class MissingSignature(KeyError):
     pass
+
+
+class BlockedActorOrDomain(exceptions.AuthenticationFailed):
+    pass
diff --git a/api/funkwhale_api/federation/factories.py b/api/funkwhale_api/federation/factories.py
index a52cf88becfafe72c8ed03190f75135af815456e..f54f6867861230e3b2bc7ffd4fcf1adbcd61fe3a 100644
--- a/api/funkwhale_api/federation/factories.py
+++ b/api/funkwhale_api/federation/factories.py
@@ -7,7 +7,7 @@ from django.conf import settings
 from django.utils import timezone
 from django.utils.http import http_date
 
-from funkwhale_api.factories import registry
+from funkwhale_api.factories import registry, NoUpdateOnCreate
 from funkwhale_api.users import factories as user_factories
 
 from . import keys, models
@@ -67,24 +67,40 @@ def create_user(actor):
 
 
 @registry.register
-class ActorFactory(factory.DjangoModelFactory):
+class DomainFactory(NoUpdateOnCreate, factory.django.DjangoModelFactory):
+    name = factory.Faker("domain_name")
+
+    class Meta:
+        model = "federation.Domain"
+        django_get_or_create = ("name",)
+
+
+@registry.register
+class ActorFactory(NoUpdateOnCreate, factory.DjangoModelFactory):
     public_key = None
     private_key = None
     preferred_username = factory.Faker("user_name")
     summary = factory.Faker("paragraph")
-    domain = factory.Faker("domain_name")
+    domain = factory.SubFactory(DomainFactory)
     fid = factory.LazyAttribute(
-        lambda o: "https://{}/users/{}".format(o.domain, o.preferred_username)
+        lambda o: "https://{}/users/{}".format(o.domain.name, o.preferred_username)
     )
     followers_url = factory.LazyAttribute(
-        lambda o: "https://{}/users/{}followers".format(o.domain, o.preferred_username)
+        lambda o: "https://{}/users/{}followers".format(
+            o.domain.name, o.preferred_username
+        )
     )
     inbox_url = factory.LazyAttribute(
-        lambda o: "https://{}/users/{}/inbox".format(o.domain, o.preferred_username)
+        lambda o: "https://{}/users/{}/inbox".format(
+            o.domain.name, o.preferred_username
+        )
     )
     outbox_url = factory.LazyAttribute(
-        lambda o: "https://{}/users/{}/outbox".format(o.domain, o.preferred_username)
+        lambda o: "https://{}/users/{}/outbox".format(
+            o.domain.name, o.preferred_username
+        )
     )
+    keys = factory.LazyFunction(keys.get_key_pair)
 
     class Meta:
         model = models.Actor
@@ -95,7 +111,9 @@ class ActorFactory(factory.DjangoModelFactory):
             return
         from funkwhale_api.users.factories import UserFactory
 
-        self.domain = settings.FEDERATION_HOSTNAME
+        self.domain = models.Domain.objects.get_or_create(
+            name=settings.FEDERATION_HOSTNAME
+        )[0]
         self.save(update_fields=["domain"])
         if not create:
             if extracted and hasattr(extracted, "pk"):
@@ -108,19 +126,9 @@ class ActorFactory(factory.DjangoModelFactory):
         else:
             self.user = UserFactory(actor=self, **kwargs)
 
-    @factory.post_generation
-    def keys(self, create, extracted, **kwargs):
-        if not create:
-            # Simple build, do nothing.
-            return
-        if not extracted:
-            private, public = keys.get_key_pair()
-            self.private_key = private.decode("utf-8")
-            self.public_key = public.decode("utf-8")
-
 
 @registry.register
-class FollowFactory(factory.DjangoModelFactory):
+class FollowFactory(NoUpdateOnCreate, factory.DjangoModelFactory):
     target = factory.SubFactory(ActorFactory)
     actor = factory.SubFactory(ActorFactory)
 
@@ -132,28 +140,23 @@ class FollowFactory(factory.DjangoModelFactory):
 
 
 @registry.register
-class MusicLibraryFactory(factory.django.DjangoModelFactory):
+class MusicLibraryFactory(NoUpdateOnCreate, factory.django.DjangoModelFactory):
     actor = factory.SubFactory(ActorFactory)
     privacy_level = "me"
     name = factory.Faker("sentence")
     description = factory.Faker("sentence")
     uploads_count = 0
     fid = factory.Faker("federation_url")
+    followers_url = factory.LazyAttribute(
+        lambda o: o.fid + "/followers" if o.fid else None
+    )
 
     class Meta:
         model = "music.Library"
 
-    @factory.post_generation
-    def followers_url(self, create, extracted, **kwargs):
-        if not create:
-            # Simple build, do nothing.
-            return
-
-        self.followers_url = extracted or self.fid + "/followers"
-
 
 @registry.register
-class LibraryScan(factory.django.DjangoModelFactory):
+class LibraryScan(NoUpdateOnCreate, factory.django.DjangoModelFactory):
     library = factory.SubFactory(MusicLibraryFactory)
     actor = factory.SubFactory(ActorFactory)
     total_files = factory.LazyAttribute(lambda o: o.library.uploads_count)
@@ -163,7 +166,7 @@ class LibraryScan(factory.django.DjangoModelFactory):
 
 
 @registry.register
-class ActivityFactory(factory.django.DjangoModelFactory):
+class ActivityFactory(NoUpdateOnCreate, factory.django.DjangoModelFactory):
     actor = factory.SubFactory(ActorFactory)
     url = factory.Faker("federation_url")
     payload = factory.LazyFunction(lambda: {"type": "Create"})
@@ -173,7 +176,7 @@ class ActivityFactory(factory.django.DjangoModelFactory):
 
 
 @registry.register
-class InboxItemFactory(factory.django.DjangoModelFactory):
+class InboxItemFactory(NoUpdateOnCreate, factory.django.DjangoModelFactory):
     actor = factory.SubFactory(ActorFactory, local=True)
     activity = factory.SubFactory(ActivityFactory)
     type = "to"
@@ -183,7 +186,7 @@ class InboxItemFactory(factory.django.DjangoModelFactory):
 
 
 @registry.register
-class DeliveryFactory(factory.django.DjangoModelFactory):
+class DeliveryFactory(NoUpdateOnCreate, factory.django.DjangoModelFactory):
     activity = factory.SubFactory(ActivityFactory)
     inbox_url = factory.Faker("url")
 
@@ -192,7 +195,7 @@ class DeliveryFactory(factory.django.DjangoModelFactory):
 
 
 @registry.register
-class LibraryFollowFactory(factory.DjangoModelFactory):
+class LibraryFollowFactory(NoUpdateOnCreate, factory.DjangoModelFactory):
     target = factory.SubFactory(MusicLibraryFactory)
     actor = factory.SubFactory(ActorFactory)
 
diff --git a/api/funkwhale_api/federation/fields.py b/api/funkwhale_api/federation/fields.py
new file mode 100644
index 0000000000000000000000000000000000000000..3523396dbceb86a2aa8c84c1767cad9b6f767db1
--- /dev/null
+++ b/api/funkwhale_api/federation/fields.py
@@ -0,0 +1,18 @@
+from rest_framework import serializers
+
+from . import models
+
+
+class ActorRelatedField(serializers.EmailField):
+    def to_representation(self, value):
+        return value.full_username
+
+    def to_internal_value(self, value):
+        value = super().to_internal_value(value)
+        username, domain = value.split("@")
+        try:
+            return models.Actor.objects.get(
+                preferred_username=username, domain_id=domain
+            )
+        except models.Actor.DoesNotExist:
+            raise serializers.ValidationError("Invalid actor name")
diff --git a/api/funkwhale_api/federation/keys.py b/api/funkwhale_api/federation/keys.py
index e7c30c50aefc866e4ad74b6ef18a2ebaab89cb10..780e149e2305ef2d41b2b941f21bf2e998df7194 100644
--- a/api/funkwhale_api/federation/keys.py
+++ b/api/funkwhale_api/federation/keys.py
@@ -1,6 +1,8 @@
 import re
 import urllib.parse
 
+from django.conf import settings
+
 from cryptography.hazmat.backends import default_backend as crypto_default_backend
 from cryptography.hazmat.primitives import serialization as crypto_serialization
 from cryptography.hazmat.primitives.asymmetric import rsa
@@ -8,7 +10,8 @@ from cryptography.hazmat.primitives.asymmetric import rsa
 KEY_ID_REGEX = re.compile(r"keyId=\"(?P<id>.*)\"")
 
 
-def get_key_pair(size=2048):
+def get_key_pair(size=None):
+    size = size or settings.RSA_KEY_SIZE
     key = rsa.generate_private_key(
         backend=crypto_default_backend(), public_exponent=65537, key_size=size
     )
diff --git a/api/funkwhale_api/federation/migrations/0013_auto_20181226_1935.py b/api/funkwhale_api/federation/migrations/0013_auto_20181226_1935.py
new file mode 100644
index 0000000000000000000000000000000000000000..98a481271c0c32d196763614641db53359fab58f
--- /dev/null
+++ b/api/funkwhale_api/federation/migrations/0013_auto_20181226_1935.py
@@ -0,0 +1,23 @@
+# Generated by Django 2.0.9 on 2018-12-26 19:35
+
+from django.db import migrations, models
+import django.db.models.deletion
+import django.utils.timezone
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [("federation", "0012_auto_20180920_1803")]
+
+    operations = [
+        migrations.AlterField(
+            model_name="actor",
+            name="private_key",
+            field=models.TextField(blank=True, max_length=5000, null=True),
+        ),
+        migrations.AlterField(
+            model_name="actor",
+            name="public_key",
+            field=models.TextField(blank=True, max_length=5000, null=True),
+        ),
+    ]
diff --git a/api/funkwhale_api/federation/migrations/0014_auto_20181205_0958.py b/api/funkwhale_api/federation/migrations/0014_auto_20181205_0958.py
new file mode 100644
index 0000000000000000000000000000000000000000..7be361f871dce7dd45857243108aa44faec6ca44
--- /dev/null
+++ b/api/funkwhale_api/federation/migrations/0014_auto_20181205_0958.py
@@ -0,0 +1,46 @@
+# Generated by Django 2.0.9 on 2018-12-05 09:58
+
+from django.db import migrations, models
+import django.db.models.deletion
+import django.utils.timezone
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [("federation", "0013_auto_20181226_1935")]
+
+    operations = [
+        migrations.CreateModel(
+            name="Domain",
+            fields=[
+                (
+                    "name",
+                    models.CharField(max_length=255, primary_key=True, serialize=False),
+                ),
+                (
+                    "creation_date",
+                    models.DateTimeField(default=django.utils.timezone.now),
+                ),
+            ],
+        ),
+        migrations.AlterField(
+            model_name="actor",
+            name="domain",
+            field=models.CharField(max_length=1000, null=True),
+        ),
+        migrations.RenameField("actor", "domain", "old_domain"),
+        migrations.AddField(
+            model_name="actor",
+            name="domain",
+            field=models.ForeignKey(
+                null=True,
+                on_delete=django.db.models.deletion.CASCADE,
+                related_name="actors",
+                to="federation.Domain",
+            ),
+        ),
+        migrations.AlterUniqueTogether(name="actor", unique_together=set()),
+        migrations.AlterUniqueTogether(
+            name="actor", unique_together={("domain", "preferred_username")}
+        ),
+    ]
diff --git a/api/funkwhale_api/federation/migrations/0015_populate_domains.py b/api/funkwhale_api/federation/migrations/0015_populate_domains.py
new file mode 100644
index 0000000000000000000000000000000000000000..0f0036c947fb3cf71ea1eb29062eb7059681d5c7
--- /dev/null
+++ b/api/funkwhale_api/federation/migrations/0015_populate_domains.py
@@ -0,0 +1,56 @@
+# Generated by Django 2.0.9 on 2018-11-14 08:55
+
+from django.db import migrations, models
+import django.db.models.deletion
+import django.utils.timezone
+
+
+def populate_domains(apps, schema_editor):
+    Domain = apps.get_model("federation", "Domain")
+    Actor = apps.get_model("federation", "Actor")
+
+    domains = set(
+        [v.lower() for v in Actor.objects.values_list("old_domain", flat=True)]
+    )
+    for domain in sorted(domains):
+        print("Populating domain {}...".format(domain))
+        first_actor = (
+            Actor.objects.order_by("creation_date")
+            .exclude(creation_date=None)
+            .filter(old_domain__iexact=domain)
+            .first()
+        )
+
+        if first_actor:
+            first_seen = first_actor.creation_date
+        else:
+            first_seen = django.utils.timezone.now()
+
+        Domain.objects.update_or_create(
+            name=domain, defaults={"creation_date": first_seen}
+        )
+
+    for domain in Domain.objects.all():
+        Actor.objects.filter(old_domain__iexact=domain.name).update(domain=domain)
+
+
+def skip(apps, schema_editor):
+    pass
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [("federation", "0014_auto_20181205_0958")]
+
+    operations = [
+        migrations.RunPython(populate_domains, skip),
+        migrations.AlterField(
+            model_name="actor",
+            name="domain",
+            field=models.ForeignKey(
+                on_delete=django.db.models.deletion.CASCADE,
+                related_name="actors",
+                to="federation.Domain",
+            ),
+        ),
+    ]
diff --git a/api/funkwhale_api/federation/migrations/0016_auto_20181227_1605.py b/api/funkwhale_api/federation/migrations/0016_auto_20181227_1605.py
new file mode 100644
index 0000000000000000000000000000000000000000..8b705e72f859a195283d16c97373f59b776cab51
--- /dev/null
+++ b/api/funkwhale_api/federation/migrations/0016_auto_20181227_1605.py
@@ -0,0 +1,25 @@
+# Generated by Django 2.0.9 on 2018-12-27 16:05
+
+import django.contrib.postgres.fields.jsonb
+from django.db import migrations, models
+import funkwhale_api.federation.models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [("federation", "0015_populate_domains")]
+
+    operations = [
+        migrations.AddField(
+            model_name="domain",
+            name="nodeinfo",
+            field=django.contrib.postgres.fields.jsonb.JSONField(
+                default=funkwhale_api.federation.models.empty_dict, max_length=50000
+            ),
+        ),
+        migrations.AddField(
+            model_name="domain",
+            name="nodeinfo_fetch_date",
+            field=models.DateTimeField(blank=True, default=None, null=True),
+        ),
+    ]
diff --git a/api/funkwhale_api/federation/models.py b/api/funkwhale_api/federation/models.py
index 058bb9c46f578336aaeb2a432c9e93a07d5e3c37..59360aea10374ff2d4e804008fb9f62aeecb156f 100644
--- a/api/funkwhale_api/federation/models.py
+++ b/api/funkwhale_api/federation/models.py
@@ -13,6 +13,7 @@ from django.urls import reverse
 
 from funkwhale_api.common import session
 from funkwhale_api.common import utils as common_utils
+from funkwhale_api.common import validators as common_validators
 from funkwhale_api.music import utils as music_utils
 
 from . import utils as federation_utils
@@ -61,6 +62,83 @@ class ActorQuerySet(models.QuerySet):
 
         return qs
 
+    def with_uploads_count(self):
+        return self.annotate(
+            uploads_count=models.Count("libraries__uploads", distinct=True)
+        )
+
+
+class DomainQuerySet(models.QuerySet):
+    def external(self):
+        return self.exclude(pk=settings.FEDERATION_HOSTNAME)
+
+    def with_actors_count(self):
+        return self.annotate(actors_count=models.Count("actors", distinct=True))
+
+    def with_outbox_activities_count(self):
+        return self.annotate(
+            outbox_activities_count=models.Count(
+                "actors__outbox_activities", distinct=True
+            )
+        )
+
+
+class Domain(models.Model):
+    name = models.CharField(
+        primary_key=True,
+        max_length=255,
+        validators=[common_validators.DomainValidator()],
+    )
+    creation_date = models.DateTimeField(default=timezone.now)
+    nodeinfo_fetch_date = models.DateTimeField(default=None, null=True, blank=True)
+    nodeinfo = JSONField(default=empty_dict, max_length=50000, blank=True)
+
+    objects = DomainQuerySet.as_manager()
+
+    def __str__(self):
+        return self.name
+
+    def save(self, **kwargs):
+        lowercase_fields = ["name"]
+        for field in lowercase_fields:
+            v = getattr(self, field, None)
+            if v:
+                setattr(self, field, v.lower())
+
+        super().save(**kwargs)
+
+    def get_stats(self):
+        from funkwhale_api.music import models as music_models
+
+        data = Domain.objects.filter(pk=self.pk).aggregate(
+            actors=models.Count("actors", distinct=True),
+            outbox_activities=models.Count("actors__outbox_activities", distinct=True),
+            libraries=models.Count("actors__libraries", distinct=True),
+            received_library_follows=models.Count(
+                "actors__libraries__received_follows", distinct=True
+            ),
+            emitted_library_follows=models.Count(
+                "actors__library_follows", distinct=True
+            ),
+        )
+        data["artists"] = music_models.Artist.objects.filter(
+            from_activity__actor__domain_id=self.pk
+        ).count()
+        data["albums"] = music_models.Album.objects.filter(
+            from_activity__actor__domain_id=self.pk
+        ).count()
+        data["tracks"] = music_models.Track.objects.filter(
+            from_activity__actor__domain_id=self.pk
+        ).count()
+
+        uploads = music_models.Upload.objects.filter(library__actor__domain_id=self.pk)
+        data["uploads"] = uploads.count()
+        data["media_total_size"] = uploads.aggregate(v=models.Sum("size"))["v"] or 0
+        data["media_downloaded_size"] = (
+            uploads.with_file().aggregate(v=models.Sum("size"))["v"] or 0
+        )
+        return data
+
 
 class Actor(models.Model):
     ap_type = "Actor"
@@ -74,7 +152,7 @@ class Actor(models.Model):
     shared_inbox_url = models.URLField(max_length=500, null=True, blank=True)
     type = models.CharField(choices=TYPE_CHOICES, default="Person", max_length=25)
     name = models.CharField(max_length=200, null=True, blank=True)
-    domain = models.CharField(max_length=1000)
+    domain = models.ForeignKey(Domain, on_delete=models.CASCADE, related_name="actors")
     summary = models.CharField(max_length=500, null=True, blank=True)
     preferred_username = models.CharField(max_length=200, null=True, blank=True)
     public_key = models.TextField(max_length=5000, null=True, blank=True)
@@ -105,41 +183,14 @@ class Actor(models.Model):
 
     @property
     def full_username(self):
-        return "{}@{}".format(self.preferred_username, self.domain)
+        return "{}@{}".format(self.preferred_username, self.domain_id)
 
     def __str__(self):
-        return "{}@{}".format(self.preferred_username, self.domain)
-
-    def save(self, **kwargs):
-        lowercase_fields = ["domain"]
-        for field in lowercase_fields:
-            v = getattr(self, field, None)
-            if v:
-                setattr(self, field, v.lower())
-
-        super().save(**kwargs)
+        return "{}@{}".format(self.preferred_username, self.domain_id)
 
     @property
     def is_local(self):
-        return self.domain == settings.FEDERATION_HOSTNAME
-
-    @property
-    def is_system(self):
-        from . import actors
-
-        return all(
-            [
-                settings.FEDERATION_HOSTNAME == self.domain,
-                self.preferred_username in actors.SYSTEM_ACTORS,
-            ]
-        )
-
-    @property
-    def system_conf(self):
-        from . import actors
-
-        if self.is_system:
-            return actors.SYSTEM_ACTORS[self.preferred_username]
+        return self.domain_id == settings.FEDERATION_HOSTNAME
 
     def get_approved_followers(self):
         follows = self.received_follows.filter(approved=True)
@@ -163,6 +214,44 @@ class Actor(models.Model):
         data["total"] = sum(data.values())
         return data
 
+    def get_stats(self):
+        from funkwhale_api.music import models as music_models
+
+        data = Actor.objects.filter(pk=self.pk).aggregate(
+            outbox_activities=models.Count("outbox_activities", distinct=True),
+            libraries=models.Count("libraries", distinct=True),
+            received_library_follows=models.Count(
+                "libraries__received_follows", distinct=True
+            ),
+            emitted_library_follows=models.Count("library_follows", distinct=True),
+        )
+        data["artists"] = music_models.Artist.objects.filter(
+            from_activity__actor=self.pk
+        ).count()
+        data["albums"] = music_models.Album.objects.filter(
+            from_activity__actor=self.pk
+        ).count()
+        data["tracks"] = music_models.Track.objects.filter(
+            from_activity__actor=self.pk
+        ).count()
+
+        uploads = music_models.Upload.objects.filter(library__actor=self.pk)
+        data["uploads"] = uploads.count()
+        data["media_total_size"] = uploads.aggregate(v=models.Sum("size"))["v"] or 0
+        data["media_downloaded_size"] = (
+            uploads.with_file().aggregate(v=models.Sum("size"))["v"] or 0
+        )
+        return data
+
+    @property
+    def keys(self):
+        return self.private_key, self.public_key
+
+    @keys.setter
+    def keys(self, v):
+        self.private_key = v[0].decode("utf-8")
+        self.public_key = v[1].decode("utf-8")
+
 
 class InboxItem(models.Model):
     """
diff --git a/api/funkwhale_api/federation/routes.py b/api/funkwhale_api/federation/routes.py
index b757d4f9279b8968cc649f4cbd4c5058e4836f99..0295aa46ce4004648075371be181b64072c773e9 100644
--- a/api/funkwhale_api/federation/routes.py
+++ b/api/funkwhale_api/federation/routes.py
@@ -82,7 +82,7 @@ def inbox_undo_follow(payload, context):
     serializer = serializers.UndoFollowSerializer(data=payload, context=context)
     if not serializer.is_valid(raise_exception=context.get("raise_exception", False)):
         logger.debug(
-            "Discarding invalid follow undo from {}: %s",
+            "Discarding invalid follow undo from %s: %s",
             context["actor"].fid,
             serializer.errors,
         )
@@ -195,6 +195,45 @@ def outbox_delete_library(context):
     }
 
 
+@outbox.register({"type": "Update", "object.type": "Library"})
+def outbox_update_library(context):
+    library = context["library"]
+    serializer = serializers.ActivitySerializer(
+        {"type": "Update", "object": serializers.LibrarySerializer(library).data}
+    )
+
+    yield {
+        "type": "Update",
+        "actor": library.actor,
+        "payload": with_recipients(
+            serializer.data, to=[{"type": "followers", "target": library}]
+        ),
+    }
+
+
+@inbox.register({"type": "Update", "object.type": "Library"})
+def inbox_update_library(payload, context):
+    actor = context["actor"]
+    library_id = payload["object"].get("id")
+    if not library_id:
+        logger.debug("Discarding deletion of empty library")
+        return
+
+    if not actor.libraries.filter(fid=library_id).exists():
+        logger.debug("Discarding deletion of unkwnown library %s", library_id)
+        return
+
+    serializer = serializers.LibrarySerializer(data=payload["object"])
+    if serializer.is_valid():
+        serializer.save()
+    else:
+        logger.debug(
+            "Discarding update of library %s because of payload errors: %s",
+            library_id,
+            serializer.errors,
+        )
+
+
 @inbox.register({"type": "Delete", "object.type": "Audio"})
 def inbox_delete_audio(payload, context):
     actor = context["actor"]
diff --git a/api/funkwhale_api/federation/serializers.py b/api/funkwhale_api/federation/serializers.py
index 61574a57e539e61128ddfb7a1adde7c6b41afbee..d0e07cd85cdea5f62157455afe23729e87dc4f71 100644
--- a/api/funkwhale_api/federation/serializers.py
+++ b/api/funkwhale_api/federation/serializers.py
@@ -114,7 +114,7 @@ class ActorSerializer(serializers.Serializer):
         if maf is not None:
             kwargs["manually_approves_followers"] = maf
         domain = urllib.parse.urlparse(kwargs["fid"]).netloc
-        kwargs["domain"] = domain
+        kwargs["domain"] = models.Domain.objects.get_or_create(pk=domain)[0]
         for endpoint, url in self.initial_data.get("endpoints", {}).items():
             if endpoint == "sharedInbox":
                 kwargs["shared_inbox_url"] = url
@@ -560,14 +560,14 @@ class LibrarySerializer(PaginatedCollectionSerializer):
         r = super().to_representation(conf)
         r["audience"] = (
             "https://www.w3.org/ns/activitystreams#Public"
-            if library.privacy_level == "public"
+            if library.privacy_level == "everyone"
             else ""
         )
         r["followers"] = library.followers_url
         return r
 
     def create(self, validated_data):
-        actor = utils.retrieve(
+        actor = utils.retrieve_ap_object(
             validated_data["actor"],
             queryset=models.Actor,
             serializer_class=ActorSerializer,
@@ -729,8 +729,11 @@ class AlbumSerializer(MusicEntitySerializer):
 
 class TrackSerializer(MusicEntitySerializer):
     position = serializers.IntegerField(min_value=0, allow_null=True, required=False)
+    disc = serializers.IntegerField(min_value=1, allow_null=True, required=False)
     artists = serializers.ListField(child=ArtistSerializer(), min_length=1)
     album = AlbumSerializer()
+    license = serializers.URLField(allow_null=True, required=False)
+    copyright = serializers.CharField(allow_null=True, required=False)
 
     def to_representation(self, instance):
         d = {
@@ -740,6 +743,11 @@ class TrackSerializer(MusicEntitySerializer):
             "published": instance.creation_date.isoformat(),
             "musicbrainzId": str(instance.mbid) if instance.mbid else None,
             "position": instance.position,
+            "disc": instance.disc_number,
+            "license": instance.local_license["identifiers"][0]
+            if instance.local_license
+            else None,
+            "copyright": instance.copyright if instance.copyright else None,
             "artists": [
                 ArtistSerializer(
                     instance.artist, context={"include_ap_context": False}
@@ -880,3 +888,12 @@ class CollectionSerializer(serializers.Serializer):
         if self.context.get("include_ap_context", True):
             d["@context"] = AP_CONTEXT
         return d
+
+
+class NodeInfoLinkSerializer(serializers.Serializer):
+    href = serializers.URLField()
+    rel = serializers.URLField()
+
+
+class NodeInfoSerializer(serializers.Serializer):
+    links = serializers.ListField(child=NodeInfoLinkSerializer(), min_length=1)
diff --git a/api/funkwhale_api/federation/signing.py b/api/funkwhale_api/federation/signing.py
index 1bb2b9d5de04fc54e5557a6097b2f3215cd73efe..5b7a9b8d4f67e65d5d027d0b58413fd68a94b48b 100644
--- a/api/funkwhale_api/federation/signing.py
+++ b/api/funkwhale_api/federation/signing.py
@@ -85,7 +85,7 @@ def verify_django(django_request, public_key):
 def get_auth(private_key, private_key_id):
     return requests_http_signature.HTTPSignatureAuth(
         use_auth_header=False,
-        headers=["(request-target)", "user-agent", "host", "date", "content-type"],
+        headers=["(request-target)", "user-agent", "host", "date"],
         algorithm="rsa-sha256",
         key=private_key.encode("utf-8"),
         key_id=private_key_id,
diff --git a/api/funkwhale_api/federation/tasks.py b/api/funkwhale_api/federation/tasks.py
index 33f94cad3801690d957cefc31c075992ccb4bde0..f7d8913b7634f7b1529f65300aa8aea97a59bb81 100644
--- a/api/funkwhale_api/federation/tasks.py
+++ b/api/funkwhale_api/federation/tasks.py
@@ -1,6 +1,7 @@
 import datetime
 import logging
 import os
+import requests
 
 from django.conf import settings
 from django.db.models import Q, F
@@ -13,7 +14,9 @@ from funkwhale_api.common import session
 from funkwhale_api.music import models as music_models
 from funkwhale_api.taskapp import celery
 
+from . import keys
 from . import models, signing
+from . import serializers
 from . import routes
 
 logger = logging.getLogger(__name__)
@@ -147,3 +150,92 @@ def deliver_to_remote(delivery):
         delivery.attempts = F("attempts") + 1
         delivery.is_delivered = True
         delivery.save(update_fields=["last_attempt_date", "attempts", "is_delivered"])
+
+
+def fetch_nodeinfo(domain_name):
+    s = session.get_session()
+    wellknown_url = "https://{}/.well-known/nodeinfo".format(domain_name)
+    response = s.get(
+        url=wellknown_url, timeout=5, verify=settings.EXTERNAL_REQUESTS_VERIFY_SSL
+    )
+    response.raise_for_status()
+    serializer = serializers.NodeInfoSerializer(data=response.json())
+    serializer.is_valid(raise_exception=True)
+    nodeinfo_url = None
+    for link in serializer.validated_data["links"]:
+        if link["rel"] == "http://nodeinfo.diaspora.software/ns/schema/2.0":
+            nodeinfo_url = link["href"]
+            break
+
+    response = s.get(
+        url=nodeinfo_url, timeout=5, verify=settings.EXTERNAL_REQUESTS_VERIFY_SSL
+    )
+    response.raise_for_status()
+    return response.json()
+
+
+@celery.app.task(name="federation.update_domain_nodeinfo")
+@celery.require_instance(
+    models.Domain.objects.external(), "domain", id_kwarg_name="domain_name"
+)
+def update_domain_nodeinfo(domain):
+    now = timezone.now()
+    try:
+        nodeinfo = {"status": "ok", "payload": fetch_nodeinfo(domain.name)}
+    except (requests.RequestException, serializers.serializers.ValidationError) as e:
+        nodeinfo = {"status": "error", "error": str(e)}
+    domain.nodeinfo_fetch_date = now
+    domain.nodeinfo = nodeinfo
+    domain.save(update_fields=["nodeinfo", "nodeinfo_fetch_date"])
+
+
+def delete_qs(qs):
+    label = qs.model._meta.label
+    result = qs.delete()
+    related = sum(result[1].values())
+
+    logger.info(
+        "Purged %s %s objects (and %s related entities)", result[0], label, related
+    )
+
+
+def handle_purge_actors(ids, only=[]):
+    """
+    Empty only means we purge everything
+    Otherwise, we purge only the requested bits: media
+    """
+    # purge follows (received emitted)
+    if not only:
+        delete_qs(models.LibraryFollow.objects.filter(target__actor_id__in=ids))
+        delete_qs(models.Follow.objects.filter(actor_id__in=ids))
+
+    # purge audio content
+    if not only or "media" in only:
+        delete_qs(models.LibraryFollow.objects.filter(actor_id__in=ids))
+        delete_qs(models.Follow.objects.filter(target_id__in=ids))
+        delete_qs(music_models.Upload.objects.filter(library__actor_id__in=ids))
+        delete_qs(music_models.Library.objects.filter(actor_id__in=ids))
+
+    # purge remaining activities / deliveries
+    if not only:
+        delete_qs(models.InboxItem.objects.filter(actor_id__in=ids))
+        delete_qs(models.Activity.objects.filter(actor_id__in=ids))
+
+
+@celery.app.task(name="federation.purge_actors")
+def purge_actors(ids=[], domains=[], only=[]):
+    actors = models.Actor.objects.filter(
+        Q(id__in=ids) | Q(domain_id__in=domains)
+    ).order_by("id")
+    found_ids = list(actors.values_list("id", flat=True))
+    logger.info("Starting purging %s accounts", len(found_ids))
+    handle_purge_actors(ids=found_ids, only=only)
+
+
+@celery.app.task(name="federation.rotate_actor_key")
+@celery.require_instance(models.Actor.objects.local(), "actor")
+def rotate_actor_key(actor):
+    pair = keys.get_key_pair()
+    actor.private_key = pair[0].decode()
+    actor.public_key = pair[1].decode()
+    actor.save(update_fields=["private_key", "public_key"])
diff --git a/api/funkwhale_api/federation/utils.py b/api/funkwhale_api/federation/utils.py
index d02c8bf6874cf83240ab7cbe3a5835b2dab3bdea..e49a4dd63c4f8140c8f8e52ed13cb095585927c7 100644
--- a/api/funkwhale_api/federation/utils.py
+++ b/api/funkwhale_api/federation/utils.py
@@ -3,7 +3,9 @@ import re
 from django.conf import settings
 
 from funkwhale_api.common import session
+from funkwhale_api.moderation import models as moderation_models
 
+from . import exceptions
 from . import signing
 
 
@@ -58,7 +60,14 @@ def slugify_username(username):
     return re.sub(r"[-\s]+", "_", value)
 
 
-def retrieve(fid, actor=None, serializer_class=None, queryset=None):
+def retrieve_ap_object(
+    fid, actor=None, serializer_class=None, queryset=None, apply_instance_policies=True
+):
+    from . import activity
+
+    policies = moderation_models.InstancePolicy.objects.active().filter(block_all=True)
+    if apply_instance_policies and policies.matching_url(fid):
+        raise exceptions.BlockedActorOrDomain()
     if queryset:
         try:
             # queryset can also be a Model class
@@ -83,6 +92,16 @@ def retrieve(fid, actor=None, serializer_class=None, queryset=None):
     )
     response.raise_for_status()
     data = response.json()
+
+    # we match against moderation policies here again, because the FID of the returned
+    # object may not be the same as the URL used to access it
+    try:
+        id = data["id"]
+    except KeyError:
+        pass
+    else:
+        if apply_instance_policies and activity.should_reject(id=id, payload=data):
+            raise exceptions.BlockedActorOrDomain()
     if not serializer_class:
         return data
     serializer = serializer_class(data=data)
diff --git a/api/funkwhale_api/federation/views.py b/api/funkwhale_api/federation/views.py
index a12d5e5b53d2474510d9c81f4365f2a0c836e8d9..3b322e915144bec01e536640022402a1b20429bf 100644
--- a/api/funkwhale_api/federation/views.py
+++ b/api/funkwhale_api/federation/views.py
@@ -3,7 +3,7 @@ from django.core import paginator
 from django.http import HttpResponse
 from django.urls import reverse
 from rest_framework import exceptions, mixins, response, viewsets
-from rest_framework.decorators import detail_route, list_route
+from rest_framework.decorators import action
 
 from funkwhale_api.common import preferences
 from funkwhale_api.music import models as music_models
@@ -23,7 +23,7 @@ class SharedViewSet(FederationMixin, viewsets.GenericViewSet):
     authentication_classes = [authentication.SignatureAuthentication]
     renderer_classes = [renderers.ActivityPubRenderer]
 
-    @list_route(methods=["post"])
+    @action(methods=["post"], detail=False)
     def inbox(self, request, *args, **kwargs):
         if request.method.lower() == "post" and request.actor is None:
             raise exceptions.AuthenticationFailed(
@@ -42,7 +42,7 @@ class ActorViewSet(FederationMixin, mixins.RetrieveModelMixin, viewsets.GenericV
     queryset = models.Actor.objects.local().select_related("user")
     serializer_class = serializers.ActorSerializer
 
-    @detail_route(methods=["get", "post"])
+    @action(methods=["get", "post"], detail=True)
     def inbox(self, request, *args, **kwargs):
         if request.method.lower() == "post" and request.actor is None:
             raise exceptions.AuthenticationFailed(
@@ -52,17 +52,17 @@ class ActorViewSet(FederationMixin, mixins.RetrieveModelMixin, viewsets.GenericV
             activity.receive(activity=request.data, on_behalf_of=request.actor)
         return response.Response({}, status=200)
 
-    @detail_route(methods=["get", "post"])
+    @action(methods=["get", "post"], detail=True)
     def outbox(self, request, *args, **kwargs):
         return response.Response({}, status=200)
 
-    @detail_route(methods=["get"])
+    @action(methods=["get"], detail=True)
     def followers(self, request, *args, **kwargs):
         self.get_object()
         # XXX to implement
         return response.Response({})
 
-    @detail_route(methods=["get"])
+    @action(methods=["get"], detail=True)
     def following(self, request, *args, **kwargs):
         self.get_object()
         # XXX to implement
@@ -74,7 +74,7 @@ class WellKnownViewSet(viewsets.GenericViewSet):
     permission_classes = []
     renderer_classes = [renderers.JSONRenderer, renderers.WebfingerRenderer]
 
-    @list_route(methods=["get"])
+    @action(methods=["get"], detail=False)
     def nodeinfo(self, request, *args, **kwargs):
         if not preferences.get("instance__nodeinfo_enabled"):
             return HttpResponse(status=404)
@@ -88,7 +88,7 @@ class WellKnownViewSet(viewsets.GenericViewSet):
         }
         return response.Response(data)
 
-    @list_route(methods=["get"])
+    @action(methods=["get"], detail=False)
     def webfinger(self, request, *args, **kwargs):
         if not preferences.get("federation__enabled"):
             return HttpResponse(status=405)
@@ -180,7 +180,7 @@ class MusicLibraryViewSet(
 
         return response.Response(data)
 
-    @detail_route(methods=["get"])
+    @action(methods=["get"], detail=True)
     def followers(self, request, *args, **kwargs):
         self.get_object()
         # XXX Implement this
diff --git a/api/funkwhale_api/history/factories.py b/api/funkwhale_api/history/factories.py
index 0524eff1967d9b525e3c029b9cc6336eafdfcad0..59a701063173dea2cbb14907a931db9fe21a02e9 100644
--- a/api/funkwhale_api/history/factories.py
+++ b/api/funkwhale_api/history/factories.py
@@ -1,12 +1,12 @@
 import factory
 
-from funkwhale_api.factories import registry
+from funkwhale_api.factories import registry, NoUpdateOnCreate
 from funkwhale_api.music import factories
 from funkwhale_api.users.factories import UserFactory
 
 
 @registry.register
-class ListeningFactory(factory.django.DjangoModelFactory):
+class ListeningFactory(NoUpdateOnCreate, factory.django.DjangoModelFactory):
     user = factory.SubFactory(UserFactory)
     track = factory.SubFactory(factories.TrackFactory)
 
diff --git a/api/funkwhale_api/history/views.py b/api/funkwhale_api/history/views.py
index ec3b4f3c080fabe174a340e3326b7365668f9c9e..56c30af36511e8cf124645dfcd00f835e3a04287 100644
--- a/api/funkwhale_api/history/views.py
+++ b/api/funkwhale_api/history/views.py
@@ -41,7 +41,7 @@ class ListeningViewSet(
         queryset = queryset.filter(
             fields.privacy_level_query(self.request.user, "user__privacy_level")
         )
-        tracks = Track.objects.annotate_playable_by_actor(
+        tracks = Track.objects.with_playable_uploads(
             music_utils.get_actor_from_request(self.request)
         ).select_related("artist", "album__artist")
         return queryset.prefetch_related(Prefetch("track", queryset=tracks))
diff --git a/api/funkwhale_api/instance/dynamic_preferences_registry.py b/api/funkwhale_api/instance/dynamic_preferences_registry.py
index 0edb94482d0bb090ed15b79156b565e9ea33c1f7..844fbb08b8b7d4816eb3ef9576d18ab9dc0c2fee 100644
--- a/api/funkwhale_api/instance/dynamic_preferences_registry.py
+++ b/api/funkwhale_api/instance/dynamic_preferences_registry.py
@@ -58,15 +58,6 @@ class RavenDSN(types.StringPreference):
     field_kwargs = {"required": False}
 
 
-@global_preferences_registry.register
-class RavenEnabled(types.BooleanPreference):
-    show_in_api = True
-    section = raven
-    name = "front_enabled"
-    default = False
-    verbose_name = "Report front-end errors with Raven"
-
-
 @global_preferences_registry.register
 class InstanceNodeinfoEnabled(types.BooleanPreference):
     show_in_api = False
diff --git a/api/funkwhale_api/instance/nodeinfo.py b/api/funkwhale_api/instance/nodeinfo.py
index 0b8f4b3cecc5d456637b20d051550e48a160834f..286cb0284f9d922c74b10d10b4cd5ee4f3a70d1f 100644
--- a/api/funkwhale_api/instance/nodeinfo.py
+++ b/api/funkwhale_api/instance/nodeinfo.py
@@ -17,7 +17,7 @@ def get():
         "protocols": ["activitypub"],
         "services": {"inbound": [], "outbound": []},
         "openRegistrations": preferences.get("users__registration_enabled"),
-        "usage": {"users": {"total": 0}},
+        "usage": {"users": {"total": 0, "activeHalfyear": 0, "activeMonth": 0}},
         "metadata": {
             "private": preferences.get("instance__nodeinfo_private"),
             "shortDescription": preferences.get("instance__short_description"),
@@ -28,7 +28,7 @@ def get():
                 "federationNeedsApproval": preferences.get(
                     "federation__music_needs_approval"
                 ),
-                "anonymousCanListen": preferences.get(
+                "anonymousCanListen": not preferences.get(
                     "common__api_authentication_required"
                 ),
             },
@@ -37,7 +37,11 @@ def get():
     if share_stats:
         getter = memo(lambda: stats.get(), max_age=600)
         statistics = getter()
-        data["usage"]["users"]["total"] = statistics["users"]
+        data["usage"]["users"]["total"] = statistics["users"]["total"]
+        data["usage"]["users"]["activeHalfyear"] = statistics["users"][
+            "active_halfyear"
+        ]
+        data["usage"]["users"]["activeMonth"] = statistics["users"]["active_month"]
         data["metadata"]["library"]["tracks"] = {"total": statistics["tracks"]}
         data["metadata"]["library"]["artists"] = {"total": statistics["artists"]}
         data["metadata"]["library"]["albums"] = {"total": statistics["albums"]}
diff --git a/api/funkwhale_api/instance/stats.py b/api/funkwhale_api/instance/stats.py
index 0cb1b9796f5bbd837e40dc8e4c9c74155559fd28..50f69da84dc7807bf106805447cd91343aea72c5 100644
--- a/api/funkwhale_api/instance/stats.py
+++ b/api/funkwhale_api/instance/stats.py
@@ -1,4 +1,7 @@
+import datetime
+
 from django.db.models import Sum
+from django.utils import timezone
 
 from funkwhale_api.favorites.models import TrackFavorite
 from funkwhale_api.history.models import Listening
@@ -19,6 +22,15 @@ def get():
 
 
 def get_users():
+    qs = User.objects.filter(is_active=True)
+    now = timezone.now()
+    active_month = now - datetime.timedelta(days=30)
+    active_halfyear = now - datetime.timedelta(days=30 * 6)
+    return {
+        "total": qs.count(),
+        "active_month": qs.filter(last_activity__gte=active_month).count(),
+        "active_halfyear": qs.filter(last_activity__gte=active_halfyear).count(),
+    }
     return User.objects.count()
 
 
diff --git a/api/funkwhale_api/manage/filters.py b/api/funkwhale_api/manage/filters.py
index 7f6e328db16acce78f6e8ec4947bdcba66ad0a49..edae49f991bcb9f2a415f8f829df1a1e7d7c5248 100644
--- a/api/funkwhale_api/manage/filters.py
+++ b/api/funkwhale_api/manage/filters.py
@@ -1,6 +1,10 @@
 from django_filters import rest_framework as filters
 
 from funkwhale_api.common import fields
+from funkwhale_api.common import search
+
+from funkwhale_api.federation import models as federation_models
+from funkwhale_api.moderation import models as moderation_models
 from funkwhale_api.music import models as music_models
 from funkwhale_api.users import models as users_models
 
@@ -20,6 +24,41 @@ class ManageUploadFilterSet(filters.FilterSet):
         fields = ["q", "track__album", "track__artist", "track"]
 
 
+class ManageDomainFilterSet(filters.FilterSet):
+    q = fields.SearchFilter(search_fields=["name"])
+
+    class Meta:
+        model = federation_models.Domain
+        fields = ["name"]
+
+
+class ManageActorFilterSet(filters.FilterSet):
+    q = fields.SmartSearchFilter(
+        config=search.SearchConfig(
+            search_fields={
+                "name": {"to": "name"},
+                "username": {"to": "preferred_username"},
+                "email": {"to": "user__email"},
+                "bio": {"to": "summary"},
+                "type": {"to": "type"},
+            },
+            filter_fields={
+                "domain": {"to": "domain__name__iexact"},
+                "username": {"to": "preferred_username__iexact"},
+                "email": {"to": "user__email__iexact"},
+            },
+        )
+    )
+    local = filters.BooleanFilter(field_name="_", method="filter_local")
+
+    class Meta:
+        model = federation_models.Actor
+        fields = ["q", "domain", "type", "manually_approves_followers", "local"]
+
+    def filter_local(self, queryset, name, value):
+        return queryset.local(value)
+
+
 class ManageUserFilterSet(filters.FilterSet):
     q = fields.SearchFilter(search_fields=["username", "email", "name"])
 
@@ -31,10 +70,9 @@ class ManageUserFilterSet(filters.FilterSet):
             "privacy_level",
             "is_staff",
             "is_superuser",
-            "permission_upload",
             "permission_library",
             "permission_settings",
-            "permission_federation",
+            "permission_moderation",
         ]
 
 
@@ -50,3 +88,24 @@ class ManageInvitationFilterSet(filters.FilterSet):
         if value is None:
             return queryset
         return queryset.open(value)
+
+
+class ManageInstancePolicyFilterSet(filters.FilterSet):
+    q = fields.SearchFilter(
+        search_fields=[
+            "summary",
+            "target_domain__name",
+            "target_actor__username",
+            "target_actor__domain__name",
+        ]
+    )
+
+    class Meta:
+        model = moderation_models.InstancePolicy
+        fields = [
+            "q",
+            "block_all",
+            "silence_activity",
+            "silence_notifications",
+            "reject_media",
+        ]
diff --git a/api/funkwhale_api/manage/serializers.py b/api/funkwhale_api/manage/serializers.py
index 9b5e24f662d9f25c39e980108b119f85e67c8470..ed50d86777d30c7d8fc255944f5034f70a3f4bef 100644
--- a/api/funkwhale_api/manage/serializers.py
+++ b/api/funkwhale_api/manage/serializers.py
@@ -3,6 +3,11 @@ from django.db import transaction
 from rest_framework import serializers
 
 from funkwhale_api.common import serializers as common_serializers
+from funkwhale_api.common import utils as common_utils
+from funkwhale_api.federation import models as federation_models
+from funkwhale_api.federation import fields as federation_fields
+from funkwhale_api.federation import tasks as federation_tasks
+from funkwhale_api.moderation import models as moderation_models
 from funkwhale_api.music import models as music_models
 from funkwhale_api.users import models as users_models
 
@@ -115,6 +120,7 @@ class ManageUserSerializer(serializers.ModelSerializer):
             "permissions",
             "privacy_level",
             "upload_quota",
+            "full_username",
         )
         read_only_fields = [
             "id",
@@ -168,3 +174,168 @@ class ManageInvitationActionSerializer(common_serializers.ActionSerializer):
     @transaction.atomic
     def handle_delete(self, objects):
         return objects.delete()
+
+
+class ManageDomainSerializer(serializers.ModelSerializer):
+    actors_count = serializers.SerializerMethodField()
+    outbox_activities_count = serializers.SerializerMethodField()
+
+    class Meta:
+        model = federation_models.Domain
+        fields = [
+            "name",
+            "creation_date",
+            "actors_count",
+            "outbox_activities_count",
+            "nodeinfo",
+            "nodeinfo_fetch_date",
+            "instance_policy",
+        ]
+        read_only_fields = [
+            "creation_date",
+            "instance_policy",
+            "nodeinfo",
+            "nodeinfo_fetch_date",
+        ]
+
+    def get_actors_count(self, o):
+        return getattr(o, "actors_count", 0)
+
+    def get_outbox_activities_count(self, o):
+        return getattr(o, "outbox_activities_count", 0)
+
+
+class ManageDomainActionSerializer(common_serializers.ActionSerializer):
+    actions = [common_serializers.Action("purge", allow_all=False)]
+    filterset_class = filters.ManageDomainFilterSet
+    pk_field = "name"
+
+    @transaction.atomic
+    def handle_purge(self, objects):
+        ids = objects.values_list("pk", flat=True)
+        common_utils.on_commit(federation_tasks.purge_actors.delay, domains=list(ids))
+
+
+class ManageActorSerializer(serializers.ModelSerializer):
+    uploads_count = serializers.SerializerMethodField()
+    user = ManageUserSerializer()
+
+    class Meta:
+        model = federation_models.Actor
+        fields = [
+            "id",
+            "url",
+            "fid",
+            "preferred_username",
+            "full_username",
+            "domain",
+            "name",
+            "summary",
+            "type",
+            "creation_date",
+            "last_fetch_date",
+            "inbox_url",
+            "outbox_url",
+            "shared_inbox_url",
+            "manually_approves_followers",
+            "uploads_count",
+            "user",
+            "instance_policy",
+        ]
+        read_only_fields = ["creation_date", "instance_policy"]
+
+    def get_uploads_count(self, o):
+        return getattr(o, "uploads_count", 0)
+
+
+class ManageActorActionSerializer(common_serializers.ActionSerializer):
+    actions = [common_serializers.Action("purge", allow_all=False)]
+    filterset_class = filters.ManageActorFilterSet
+
+    @transaction.atomic
+    def handle_purge(self, objects):
+        ids = objects.values_list("id", flat=True)
+        common_utils.on_commit(federation_tasks.purge_actors.delay, ids=list(ids))
+
+
+class TargetSerializer(serializers.Serializer):
+    type = serializers.ChoiceField(choices=["domain", "actor"])
+    id = serializers.CharField()
+
+    def to_representation(self, value):
+        if value["type"] == "domain":
+            return {"type": "domain", "id": value["obj"].name}
+        if value["type"] == "actor":
+            return {"type": "actor", "id": value["obj"].full_username}
+
+    def to_internal_value(self, value):
+        if value["type"] == "domain":
+            field = serializers.PrimaryKeyRelatedField(
+                queryset=federation_models.Domain.objects.external()
+            )
+        if value["type"] == "actor":
+            field = federation_fields.ActorRelatedField()
+        value["obj"] = field.to_internal_value(value["id"])
+        return value
+
+
+class ManageInstancePolicySerializer(serializers.ModelSerializer):
+    target = TargetSerializer()
+    actor = federation_fields.ActorRelatedField(read_only=True)
+
+    class Meta:
+        model = moderation_models.InstancePolicy
+        fields = [
+            "id",
+            "uuid",
+            "target",
+            "creation_date",
+            "actor",
+            "summary",
+            "is_active",
+            "block_all",
+            "silence_activity",
+            "silence_notifications",
+            "reject_media",
+        ]
+
+        read_only_fields = ["uuid", "id", "creation_date", "actor", "target"]
+
+    def validate(self, data):
+        try:
+            target = data.pop("target")
+        except KeyError:
+            # partial update
+            return data
+        if target["type"] == "domain":
+            data["target_domain"] = target["obj"]
+        if target["type"] == "actor":
+            data["target_actor"] = target["obj"]
+
+        return data
+
+    @transaction.atomic
+    def save(self, *args, **kwargs):
+        instance = super().save(*args, **kwargs)
+        need_purge = self.instance.is_active and (
+            self.instance.block_all or self.instance.reject_media
+        )
+        if need_purge:
+            only = []
+            if self.instance.reject_media:
+                only.append("media")
+            target = instance.target
+            if target["type"] == "domain":
+                common_utils.on_commit(
+                    federation_tasks.purge_actors.delay,
+                    domains=[target["obj"].pk],
+                    only=only,
+                )
+            if target["type"] == "actor":
+                common_utils.on_commit(
+                    federation_tasks.purge_actors.delay,
+                    ids=[target["obj"].pk],
+                    only=only,
+                )
+
+        return instance
diff --git a/api/funkwhale_api/manage/urls.py b/api/funkwhale_api/manage/urls.py
index 9f5503978c435797d012fc0595a8c8b50aa81568..4c220fe0ef28598eab3feec59c9fb19ecf33bd86 100644
--- a/api/funkwhale_api/manage/urls.py
+++ b/api/funkwhale_api/manage/urls.py
@@ -3,13 +3,33 @@ from rest_framework import routers
 
 from . import views
 
+federation_router = routers.SimpleRouter()
+federation_router.register(r"domains", views.ManageDomainViewSet, "domains")
+
 library_router = routers.SimpleRouter()
 library_router.register(r"uploads", views.ManageUploadViewSet, "uploads")
+
+moderation_router = routers.SimpleRouter()
+moderation_router.register(
+    r"instance-policies", views.ManageInstancePolicyViewSet, "instance-policies"
+)
+
 users_router = routers.SimpleRouter()
 users_router.register(r"users", views.ManageUserViewSet, "users")
 users_router.register(r"invitations", views.ManageInvitationViewSet, "invitations")
 
+other_router = routers.SimpleRouter()
+other_router.register(r"accounts", views.ManageActorViewSet, "accounts")
+
 urlpatterns = [
+    url(
+        r"^federation/",
+        include((federation_router.urls, "federation"), namespace="federation"),
+    ),
     url(r"^library/", include((library_router.urls, "instance"), namespace="library")),
+    url(
+        r"^moderation/",
+        include((moderation_router.urls, "moderation"), namespace="moderation"),
+    ),
     url(r"^users/", include((users_router.urls, "instance"), namespace="users")),
-]
+] + other_router.urls
diff --git a/api/funkwhale_api/manage/views.py b/api/funkwhale_api/manage/views.py
index bfd5b2ef21bb3c1854ed711bb52b57f5bdc6a079..99d9020315882a3c461b3e8fe44eb1310635b0f5 100644
--- a/api/funkwhale_api/manage/views.py
+++ b/api/funkwhale_api/manage/views.py
@@ -1,8 +1,12 @@
 from rest_framework import mixins, response, viewsets
-from rest_framework.decorators import list_route
+from rest_framework import decorators as rest_decorators
+from django.shortcuts import get_object_or_404
 
-from funkwhale_api.common import preferences
+from funkwhale_api.common import preferences, decorators
+from funkwhale_api.federation import models as federation_models
+from funkwhale_api.federation import tasks as federation_tasks
 from funkwhale_api.music import models as music_models
+from funkwhale_api.moderation import models as moderation_models
 from funkwhale_api.users import models as users_models
 from funkwhale_api.users.permissions import HasUserPermission
 
@@ -18,7 +22,7 @@ class ManageUploadViewSet(
         .order_by("-id")
     )
     serializer_class = serializers.ManageUploadSerializer
-    filter_class = filters.ManageUploadFilterSet
+    filterset_class = filters.ManageUploadFilterSet
     permission_classes = (HasUserPermission,)
     required_permissions = ["library"]
     ordering_fields = [
@@ -31,7 +35,7 @@ class ManageUploadViewSet(
         "duration",
     ]
 
-    @list_route(methods=["post"])
+    @rest_decorators.action(methods=["post"], detail=False)
     def action(self, request, *args, **kwargs):
         queryset = self.get_queryset()
         serializer = serializers.ManageUploadActionSerializer(
@@ -50,7 +54,7 @@ class ManageUserViewSet(
 ):
     queryset = users_models.User.objects.all().order_by("-id")
     serializer_class = serializers.ManageUserSerializer
-    filter_class = filters.ManageUserFilterSet
+    filterset_class = filters.ManageUserFilterSet
     permission_classes = (HasUserPermission,)
     required_permissions = ["settings"]
     ordering_fields = ["date_joined", "last_activity", "username"]
@@ -75,7 +79,7 @@ class ManageInvitationViewSet(
         .select_related("owner")
     )
     serializer_class = serializers.ManageInvitationSerializer
-    filter_class = filters.ManageInvitationFilterSet
+    filterset_class = filters.ManageInvitationFilterSet
     permission_classes = (HasUserPermission,)
     required_permissions = ["settings"]
     ordering_fields = ["creation_date", "expiration_date"]
@@ -83,7 +87,7 @@ class ManageInvitationViewSet(
     def perform_create(self, serializer):
         serializer.save(owner=self.request.user)
 
-    @list_route(methods=["post"])
+    @rest_decorators.action(methods=["post"], detail=False)
     def action(self, request, *args, **kwargs):
         queryset = self.get_queryset()
         serializer = serializers.ManageInvitationActionSerializer(
@@ -92,3 +96,112 @@ class ManageInvitationViewSet(
         serializer.is_valid(raise_exception=True)
         result = serializer.save()
         return response.Response(result, status=200)
+
+
+class ManageDomainViewSet(
+    mixins.CreateModelMixin,
+    mixins.ListModelMixin,
+    mixins.RetrieveModelMixin,
+    viewsets.GenericViewSet,
+):
+    lookup_value_regex = r"[a-zA-Z0-9\-\.]+"
+    queryset = (
+        federation_models.Domain.objects.external()
+        .with_actors_count()
+        .with_outbox_activities_count()
+        .prefetch_related("instance_policy")
+        .order_by("name")
+    )
+    serializer_class = serializers.ManageDomainSerializer
+    filterset_class = filters.ManageDomainFilterSet
+    permission_classes = (HasUserPermission,)
+    required_permissions = ["moderation"]
+    ordering_fields = [
+        "name",
+        "creation_date",
+        "nodeinfo_fetch_date",
+        "actors_count",
+        "outbox_activities_count",
+        "instance_policy",
+    ]
+
+    @rest_decorators.action(methods=["get"], detail=True)
+    def nodeinfo(self, request, *args, **kwargs):
+        domain = self.get_object()
+        federation_tasks.update_domain_nodeinfo(domain_name=domain.name)
+        domain.refresh_from_db()
+        return response.Response(domain.nodeinfo, status=200)
+
+    @rest_decorators.action(methods=["get"], detail=True)
+    def stats(self, request, *args, **kwargs):
+        domain = self.get_object()
+        return response.Response(domain.get_stats(), status=200)
+
+    action = decorators.action_route(serializers.ManageDomainActionSerializer)
+
+
+class ManageActorViewSet(
+    mixins.ListModelMixin, mixins.RetrieveModelMixin, viewsets.GenericViewSet
+):
+    lookup_value_regex = r"([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)"
+    queryset = (
+        federation_models.Actor.objects.all()
+        .with_uploads_count()
+        .order_by("-creation_date")
+        .select_related("user")
+        .prefetch_related("instance_policy")
+    )
+    serializer_class = serializers.ManageActorSerializer
+    filterset_class = filters.ManageActorFilterSet
+    permission_classes = (HasUserPermission,)
+    required_permissions = ["moderation"]
+    ordering_fields = [
+        "name",
+        "preferred_username",
+        "domain",
+        "fid",
+        "creation_date",
+        "last_fetch_date",
+        "uploads_count",
+        "outbox_activities_count",
+        "instance_policy",
+    ]
+
+    def get_object(self):
+        queryset = self.filter_queryset(self.get_queryset())
+        username, domain = self.kwargs["pk"].split("@")
+        filter_kwargs = {"domain_id": domain, "preferred_username": username}
+        obj = get_object_or_404(queryset, **filter_kwargs)
+        self.check_object_permissions(self.request, obj)
+
+        return obj
+
+    @rest_decorators.action(methods=["get"], detail=True)
+    def stats(self, request, *args, **kwargs):
+        domain = self.get_object()
+        return response.Response(domain.get_stats(), status=200)
+
+    action = decorators.action_route(serializers.ManageActorActionSerializer)
+
+
+class ManageInstancePolicyViewSet(
+    mixins.ListModelMixin,
+    mixins.RetrieveModelMixin,
+    mixins.DestroyModelMixin,
+    mixins.CreateModelMixin,
+    mixins.UpdateModelMixin,
+    viewsets.GenericViewSet,
+):
+    queryset = (
+        moderation_models.InstancePolicy.objects.all()
+        .order_by("-creation_date")
+        .select_related()
+    )
+    serializer_class = serializers.ManageInstancePolicySerializer
+    filterset_class = filters.ManageInstancePolicyFilterSet
+    permission_classes = (HasUserPermission,)
+    required_permissions = ["moderation"]
+    ordering_fields = ["id", "creation_date"]
+
+    def perform_create(self, serializer):
+        serializer.save(actor=self.request.user.actor)
diff --git a/api/funkwhale_api/moderation/__init__.py b/api/funkwhale_api/moderation/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/api/funkwhale_api/moderation/admin.py b/api/funkwhale_api/moderation/admin.py
new file mode 100644
index 0000000000000000000000000000000000000000..5e421255ed344d61335edbb588f7792d07ac21ec
--- /dev/null
+++ b/api/funkwhale_api/moderation/admin.py
@@ -0,0 +1,30 @@
+from funkwhale_api.common import admin
+
+from . import models
+
+
+@admin.register(models.InstancePolicy)
+class InstancePolicyAdmin(admin.ModelAdmin):
+    list_display = [
+        "actor",
+        "target_domain",
+        "target_actor",
+        "creation_date",
+        "block_all",
+        "reject_media",
+        "silence_activity",
+        "silence_notifications",
+    ]
+    list_filter = [
+        "block_all",
+        "reject_media",
+        "silence_activity",
+        "silence_notifications",
+    ]
+    search_fields = [
+        "actor__fid",
+        "target_domain__name",
+        "target_domain__actor__fid",
+        "summary",
+    ]
+    list_select_related = True
diff --git a/api/funkwhale_api/moderation/factories.py b/api/funkwhale_api/moderation/factories.py
new file mode 100644
index 0000000000000000000000000000000000000000..aba5256c9cba399cf2e345101eb0d9958f1b13f4
--- /dev/null
+++ b/api/funkwhale_api/moderation/factories.py
@@ -0,0 +1,23 @@
+import factory
+
+from funkwhale_api.factories import registry, NoUpdateOnCreate
+from funkwhale_api.federation import factories as federation_factories
+
+
+@registry.register
+class InstancePolicyFactory(NoUpdateOnCreate, factory.DjangoModelFactory):
+    summary = factory.Faker("paragraph")
+    actor = factory.SubFactory(federation_factories.ActorFactory)
+    block_all = True
+    is_active = True
+
+    class Meta:
+        model = "moderation.InstancePolicy"
+
+    class Params:
+        for_domain = factory.Trait(
+            target_domain=factory.SubFactory(federation_factories.DomainFactory)
+        )
+        for_actor = factory.Trait(
+            target_actor=factory.SubFactory(federation_factories.ActorFactory)
+        )
diff --git a/api/funkwhale_api/moderation/migrations/0001_initial.py b/api/funkwhale_api/moderation/migrations/0001_initial.py
new file mode 100644
index 0000000000000000000000000000000000000000..33151e00f2b4a0cfe950dd36ee9a17e711adb534
--- /dev/null
+++ b/api/funkwhale_api/moderation/migrations/0001_initial.py
@@ -0,0 +1,35 @@
+# Generated by Django 2.0.9 on 2019-01-07 06:06
+
+from django.db import migrations, models
+import django.db.models.deletion
+import django.utils.timezone
+import uuid
+
+
+class Migration(migrations.Migration):
+
+    initial = True
+
+    dependencies = [
+        ('federation', '0016_auto_20181227_1605'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='InstancePolicy',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('uuid', models.UUIDField(default=uuid.uuid4, unique=True)),
+                ('creation_date', models.DateTimeField(default=django.utils.timezone.now)),
+                ('is_active', models.BooleanField(default=True)),
+                ('summary', models.TextField(blank=True, max_length=10000, null=True)),
+                ('block_all', models.BooleanField(default=False)),
+                ('silence_activity', models.BooleanField(default=False)),
+                ('silence_notifications', models.BooleanField(default=False)),
+                ('reject_media', models.BooleanField(default=False)),
+                ('actor', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='created_instance_policies', to='federation.Actor')),
+                ('target_actor', models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='instance_policy', to='federation.Actor')),
+                ('target_domain', models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='instance_policy', to='federation.Domain')),
+            ],
+        ),
+    ]
diff --git a/api/funkwhale_api/moderation/migrations/__init__.py b/api/funkwhale_api/moderation/migrations/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/api/funkwhale_api/moderation/models.py b/api/funkwhale_api/moderation/models.py
new file mode 100644
index 0000000000000000000000000000000000000000..c184bbda8117929da26940a1197b36c6cb75f6f4
--- /dev/null
+++ b/api/funkwhale_api/moderation/models.py
@@ -0,0 +1,75 @@
+import urllib.parse
+import uuid
+
+from django.db import models
+from django.utils import timezone
+
+
+class InstancePolicyQuerySet(models.QuerySet):
+    def active(self):
+        return self.filter(is_active=True)
+
+    def matching_url(self, *urls):
+        if not urls:
+            return self.none()
+        query = None
+        for url in urls:
+            new_query = self.matching_url_query(url)
+            if query:
+                query = query | new_query
+            else:
+                query = new_query
+        return self.filter(query)
+
+    def matching_url_query(self, url):
+        parsed = urllib.parse.urlparse(url)
+        return models.Q(target_domain_id=parsed.hostname) | models.Q(
+            target_actor__fid=url
+        )
+
+
+class InstancePolicy(models.Model):
+    uuid = models.UUIDField(default=uuid.uuid4, unique=True)
+    actor = models.ForeignKey(
+        "federation.Actor",
+        related_name="created_instance_policies",
+        on_delete=models.SET_NULL,
+        null=True,
+        blank=True,
+    )
+    target_domain = models.OneToOneField(
+        "federation.Domain",
+        related_name="instance_policy",
+        on_delete=models.CASCADE,
+        null=True,
+        blank=True,
+    )
+    target_actor = models.OneToOneField(
+        "federation.Actor",
+        related_name="instance_policy",
+        on_delete=models.CASCADE,
+        null=True,
+        blank=True,
+    )
+    creation_date = models.DateTimeField(default=timezone.now)
+
+    is_active = models.BooleanField(default=True)
+    # a summary explaining why the policy is in place
+    summary = models.TextField(max_length=10000, null=True, blank=True)
+    # either block everything (simpler, but less granularity)
+    block_all = models.BooleanField(default=False)
+    # or pick individual restrictions below
+    # do not show in timelines/notifications, except for actual followers
+    silence_activity = models.BooleanField(default=False)
+    silence_notifications = models.BooleanField(default=False)
+    # do not download any media from the target
+    reject_media = models.BooleanField(default=False)
+
+    objects = InstancePolicyQuerySet.as_manager()
+
+    @property
+    def target(self):
+        if self.target_actor:
+            return {"type": "actor", "obj": self.target_actor}
+        if self.target_domain_id:
+            return {"type": "domain", "obj": self.target_domain}
diff --git a/api/funkwhale_api/music/admin.py b/api/funkwhale_api/music/admin.py
index 8f9768857bbae298eb5587e526cc99a7c9f6e02d..fca544cc84a529d3cd3a468c1bec6858697427dc 100644
--- a/api/funkwhale_api/music/admin.py
+++ b/api/funkwhale_api/music/admin.py
@@ -78,6 +78,28 @@ class UploadAdmin(admin.ModelAdmin):
     list_filter = ["mimetype", "import_status", "library__privacy_level"]
 
 
+@admin.register(models.UploadVersion)
+class UploadVersionAdmin(admin.ModelAdmin):
+    list_display = [
+        "upload",
+        "audio_file",
+        "mimetype",
+        "size",
+        "bitrate",
+        "creation_date",
+        "accessed_date",
+    ]
+    list_select_related = ["upload"]
+    search_fields = [
+        "upload__source",
+        "upload__acoustid_track_id",
+        "upload__track__title",
+        "upload__track__album__title",
+        "upload__track__artist__name",
+    ]
+    list_filter = ["mimetype"]
+
+
 def launch_scan(modeladmin, request, queryset):
     for library in queryset:
         library.schedule_scan(actor=request.user.actor, force=True)
diff --git a/api/funkwhale_api/music/dynamic_preferences_registry.py b/api/funkwhale_api/music/dynamic_preferences_registry.py
new file mode 100644
index 0000000000000000000000000000000000000000..c46af502217ac39dce8d83c8923e023adf53c901
--- /dev/null
+++ b/api/funkwhale_api/music/dynamic_preferences_registry.py
@@ -0,0 +1,34 @@
+from dynamic_preferences import types
+from dynamic_preferences.registries import global_preferences_registry
+
+music = types.Section("music")
+
+
+@global_preferences_registry.register
+class MaxTracks(types.BooleanPreference):
+    show_in_api = True
+    section = music
+    name = "transcoding_enabled"
+    verbose_name = "Transcoding enabled"
+    help_text = (
+        "Enable transcoding of audio files in formats requested by the client. "
+        "This is especially useful for devices that do not support formats "
+        "such as Flac or Ogg, but the transcoding process will increase the "
+        "load on the server."
+    )
+    default = True
+
+
+@global_preferences_registry.register
+class MusicCacheDuration(types.IntPreference):
+    show_in_api = True
+    section = music
+    name = "transcoding_cache_duration"
+    default = 60 * 24 * 7
+    verbose_name = "Transcoding cache duration"
+    help_text = (
+        "How much minutes do you want to keep a copy of transcoded tracks "
+        "on the server? Transcoded files that were not listened in this interval "
+        "will be erased and retranscoded on the next listening."
+    )
+    field_kwargs = {"required": False}
diff --git a/api/funkwhale_api/music/factories.py b/api/funkwhale_api/music/factories.py
index 9571f978516535b357665a6672235be8abbd3b47..cd2a91ccb1d72766493b8998189ea8bc58e654e4 100644
--- a/api/funkwhale_api/music/factories.py
+++ b/api/funkwhale_api/music/factories.py
@@ -2,11 +2,12 @@ import os
 
 import factory
 
-from funkwhale_api.factories import ManyToManyFromList, registry
+from funkwhale_api.factories import ManyToManyFromList, registry, NoUpdateOnCreate
+
 from funkwhale_api.federation import factories as federation_factories
+from funkwhale_api.music import licenses
 from funkwhale_api.users import factories as users_factories
 
-
 SAMPLES_PATH = os.path.join(
     os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))),
     "tests",
@@ -30,8 +31,31 @@ def playable_factory(field):
     return inner
 
 
+def deduce_from_conf(field):
+    @factory.lazy_attribute
+    def inner(self):
+        return licenses.LICENSES_BY_ID[self.code][field]
+
+    return inner
+
+
+@registry.register
+class LicenseFactory(NoUpdateOnCreate, factory.django.DjangoModelFactory):
+    code = "cc-by-4.0"
+    url = deduce_from_conf("url")
+    commercial = deduce_from_conf("commercial")
+    redistribute = deduce_from_conf("redistribute")
+    copyleft = deduce_from_conf("copyleft")
+    attribution = deduce_from_conf("attribution")
+    derivative = deduce_from_conf("derivative")
+
+    class Meta:
+        model = "music.License"
+        django_get_or_create = ("code",)
+
+
 @registry.register
-class ArtistFactory(factory.django.DjangoModelFactory):
+class ArtistFactory(NoUpdateOnCreate, factory.django.DjangoModelFactory):
     name = factory.Faker("name")
     mbid = factory.Faker("uuid4")
     fid = factory.Faker("federation_url")
@@ -42,7 +66,7 @@ class ArtistFactory(factory.django.DjangoModelFactory):
 
 
 @registry.register
-class AlbumFactory(factory.django.DjangoModelFactory):
+class AlbumFactory(NoUpdateOnCreate, factory.django.DjangoModelFactory):
     title = factory.Faker("sentence", nb_words=3)
     mbid = factory.Faker("uuid4")
     release_date = factory.Faker("date_object")
@@ -57,7 +81,7 @@ class AlbumFactory(factory.django.DjangoModelFactory):
 
 
 @registry.register
-class TrackFactory(factory.django.DjangoModelFactory):
+class TrackFactory(NoUpdateOnCreate, factory.django.DjangoModelFactory):
     fid = factory.Faker("federation_url")
     title = factory.Faker("sentence", nb_words=3)
     mbid = factory.Faker("uuid4")
@@ -70,9 +94,18 @@ class TrackFactory(factory.django.DjangoModelFactory):
     class Meta:
         model = "music.Track"
 
+    @factory.post_generation
+    def license(self, created, extracted, **kwargs):
+        if not created:
+            return
+
+        if extracted:
+            self.license = LicenseFactory(code=extracted)
+            self.save()
+
 
 @registry.register
-class UploadFactory(factory.django.DjangoModelFactory):
+class UploadFactory(NoUpdateOnCreate, factory.django.DjangoModelFactory):
     fid = factory.Faker("federation_url")
     track = factory.SubFactory(TrackFactory)
     library = factory.SubFactory(federation_factories.MusicLibraryFactory)
@@ -89,14 +122,26 @@ class UploadFactory(factory.django.DjangoModelFactory):
         model = "music.Upload"
 
     class Params:
-        in_place = factory.Trait(audio_file=None)
+        in_place = factory.Trait(audio_file=None, mimetype=None)
         playable = factory.Trait(
             import_status="finished", library__privacy_level="everyone"
         )
 
 
 @registry.register
-class WorkFactory(factory.django.DjangoModelFactory):
+class UploadVersionFactory(NoUpdateOnCreate, factory.django.DjangoModelFactory):
+    upload = factory.SubFactory(UploadFactory, bitrate=200000)
+    bitrate = factory.SelfAttribute("upload.bitrate")
+    mimetype = "audio/mpeg"
+    audio_file = factory.django.FileField()
+    size = 2000000
+
+    class Meta:
+        model = "music.UploadVersion"
+
+
+@registry.register
+class WorkFactory(NoUpdateOnCreate, factory.django.DjangoModelFactory):
     mbid = factory.Faker("uuid4")
     language = "eng"
     nature = "song"
@@ -107,7 +152,7 @@ class WorkFactory(factory.django.DjangoModelFactory):
 
 
 @registry.register
-class LyricsFactory(factory.django.DjangoModelFactory):
+class LyricsFactory(NoUpdateOnCreate, factory.django.DjangoModelFactory):
     work = factory.SubFactory(WorkFactory)
     url = factory.Faker("url")
     content = factory.Faker("paragraphs", nb=4)
@@ -117,7 +162,7 @@ class LyricsFactory(factory.django.DjangoModelFactory):
 
 
 @registry.register
-class TagFactory(factory.django.DjangoModelFactory):
+class TagFactory(NoUpdateOnCreate, factory.django.DjangoModelFactory):
     name = factory.SelfAttribute("slug")
     slug = factory.Faker("slug")
 
@@ -128,7 +173,7 @@ class TagFactory(factory.django.DjangoModelFactory):
 # XXX To remove
 
 
-class ImportBatchFactory(factory.django.DjangoModelFactory):
+class ImportBatchFactory(NoUpdateOnCreate, factory.django.DjangoModelFactory):
     submitted_by = factory.SubFactory(users_factories.UserFactory)
 
     class Meta:
@@ -136,7 +181,7 @@ class ImportBatchFactory(factory.django.DjangoModelFactory):
 
 
 @registry.register
-class ImportJobFactory(factory.django.DjangoModelFactory):
+class ImportJobFactory(NoUpdateOnCreate, factory.django.DjangoModelFactory):
     batch = factory.SubFactory(ImportBatchFactory)
     source = factory.Faker("url")
     mbid = factory.Faker("uuid4")
diff --git a/api/funkwhale_api/music/filters.py b/api/funkwhale_api/music/filters.py
index a0635368dbe39fbf26373f7514f77a1cc85a68e9..76bc93b6776c8b4c1ae294381b448fb47efbe9b5 100644
--- a/api/funkwhale_api/music/filters.py
+++ b/api/funkwhale_api/music/filters.py
@@ -9,7 +9,7 @@ from . import utils
 
 class ArtistFilter(filters.FilterSet):
     q = fields.SearchFilter(search_fields=["name"])
-    playable = filters.BooleanFilter(name="_", method="filter_playable")
+    playable = filters.BooleanFilter(field_name="_", method="filter_playable")
 
     class Meta:
         model = models.Artist
@@ -25,7 +25,7 @@ class ArtistFilter(filters.FilterSet):
 
 class TrackFilter(filters.FilterSet):
     q = fields.SearchFilter(search_fields=["title", "album__title", "artist__name"])
-    playable = filters.BooleanFilter(name="_", method="filter_playable")
+    playable = filters.BooleanFilter(field_name="_", method="filter_playable")
 
     class Meta:
         model = models.Track
@@ -34,6 +34,7 @@ class TrackFilter(filters.FilterSet):
             "playable": ["exact"],
             "artist": ["exact"],
             "album": ["exact"],
+            "license": ["exact"],
         }
 
     def filter_playable(self, queryset, name, value):
@@ -47,7 +48,7 @@ class UploadFilter(filters.FilterSet):
     track_artist = filters.UUIDFilter("track__artist__uuid")
     album_artist = filters.UUIDFilter("track__album__artist__uuid")
     library = filters.UUIDFilter("library__uuid")
-    playable = filters.BooleanFilter(name="_", method="filter_playable")
+    playable = filters.BooleanFilter(field_name="_", method="filter_playable")
     q = fields.SmartSearchFilter(
         config=search.SearchConfig(
             search_fields={
@@ -85,7 +86,7 @@ class UploadFilter(filters.FilterSet):
 
 
 class AlbumFilter(filters.FilterSet):
-    playable = filters.BooleanFilter(name="_", method="filter_playable")
+    playable = filters.BooleanFilter(field_name="_", method="filter_playable")
     q = fields.SearchFilter(search_fields=["title", "artist__name" "source"])
 
     class Meta:
diff --git a/api/funkwhale_api/music/licenses.py b/api/funkwhale_api/music/licenses.py
new file mode 100644
index 0000000000000000000000000000000000000000..5690a912f394edcc76ab7fe9091dd91c6ad74112
--- /dev/null
+++ b/api/funkwhale_api/music/licenses.py
@@ -0,0 +1,363 @@
+import logging
+import re
+
+from django.db import transaction
+
+from . import models
+
+logger = logging.getLogger(__name__)
+
+MODEL_FIELDS = [
+    "redistribute",
+    "derivative",
+    "attribution",
+    "copyleft",
+    "commercial",
+    "url",
+]
+
+
+@transaction.atomic
+def load(data):
+    """
+    Load/update database objects with our hardcoded data
+    """
+    existing = models.License.objects.all()
+    existing_by_code = {e.code: e for e in existing}
+    to_create = []
+
+    for row in data:
+        try:
+            license = existing_by_code[row["code"]]
+        except KeyError:
+            logger.info("Loading new license: {}".format(row["code"]))
+            to_create.append(
+                models.License(code=row["code"], **{f: row[f] for f in MODEL_FIELDS})
+            )
+        else:
+            logger.info("Updating license: {}".format(row["code"]))
+            stored = [getattr(license, f) for f in MODEL_FIELDS]
+            wanted = [row[f] for f in MODEL_FIELDS]
+            if wanted == stored:
+                continue
+            # the object in database needs an update
+            for f in MODEL_FIELDS:
+                setattr(license, f, row[f])
+
+            license.save()
+
+    models.License.objects.bulk_create(to_create)
+    return sorted(models.License.objects.all(), key=lambda o: o.code)
+
+
+_cache = None
+
+
+def match(*values):
+    """
+    Given a string, extracted from music file tags, return corresponding License
+    instance, if found
+    """
+    global _cache
+    for value in values:
+        if not value:
+            continue
+
+        # we are looking for the first url in our value
+        # This regex is not perfect, but it's good enough for now
+        urls = re.findall(
+            r"http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+",
+            value,
+        )
+        if not urls:
+            logger.debug('Impossible to guess license from string "{}"'.format(value))
+            continue
+        url = urls[0]
+        if _cache:
+            existing = _cache
+        else:
+            existing = load(LICENSES)
+            _cache = existing
+        for license in existing:
+            if license.conf is None:
+                continue
+            for i in license.conf["identifiers"]:
+                if match_urls(url, i):
+                    return license
+
+
+def match_urls(*urls):
+    """
+    We want to ensure the two url match but don't care for protocol
+    or trailing slashes
+    """
+    urls = [u.rstrip("/") for u in urls]
+    urls = [u.lstrip("http://") for u in urls]
+    urls = [u.lstrip("https://") for u in urls]
+    return len(set(urls)) == 1
+
+
+def get_cc_license(version, perks, country=None, country_name=None):
+    if len(perks) == 0:
+        raise ValueError("No perks!")
+
+    url_template = "//creativecommons.org/licenses/{type}/{version}/"
+
+    code_parts = []
+    name_parts = []
+    perks_data = [
+        ("by", "Attribution"),
+        ("nc", "NonCommercial"),
+        ("sa", "ShareAlike"),
+        ("nd", "NoDerivatives"),
+    ]
+    for perk, name in perks_data:
+        if perk in perks:
+            code_parts.append(perk)
+            name_parts.append(name)
+    url = url_template.format(version=version, type="-".join(code_parts))
+    code_parts.append(version)
+    name = "Creative commons - {perks} {version}".format(
+        perks="-".join(name_parts), version=version
+    )
+    if country:
+        code_parts.append(country)
+        name += " {}".format(country_name)
+        url += country + "/"
+    data = {
+        "name": name,
+        "code": "cc-{}".format("-".join(code_parts)),
+        "redistribute": True,
+        "commercial": "nc" not in perks,
+        "derivative": "nd" not in perks,
+        "copyleft": "sa" in perks,
+        "attribution": "by" in perks,
+        "url": "https:" + url,
+        "identifiers": ["http:" + url],
+    }
+
+    return data
+
+
+COUNTRIES = {
+    "ar": "Argentina",
+    "au": "Australia",
+    "at": "Austria",
+    "be": "Belgium",
+    "br": "Brazil",
+    "bg": "Bulgaria",
+    "ca": "Canada",
+    "cl": "Chile",
+    "cn": "China Mainland",
+    "co": "Colombia",
+    "cr": "Costa Rica",
+    "hr": "Croatia",
+    "cz": "Czech Republic",
+    "dk": "Denmark",
+    "ec": "Ecuador",
+    "eg": "Egypt",
+    "ee": "Estonia",
+    "fi": "Finland",
+    "fr": "France",
+    "de": "Germany",
+    "gr": "Greece",
+    "gt": "Guatemala",
+    "hk": "Hong Kong",
+    "hu": "Hungary",
+    "igo": "IGO",
+    "in": "India",
+    "ie": "Ireland",
+    "il": "Israel",
+    "it": "Italy",
+    "jp": "Japan",
+    "lu": "Luxembourg",
+    "mk": "Macedonia",
+    "my": "Malaysia",
+    "mt": "Malta",
+    "mx": "Mexico",
+    "nl": "Netherlands",
+    "nz": "New Zealand",
+    "no": "Norway",
+    "pe": "Peru",
+    "ph": "Philippines",
+    "pl": "Poland",
+    "pt": "Portugal",
+    "pr": "Puerto Rico",
+    "ro": "Romania",
+    "rs": "Serbia",
+    "sg": "Singapore",
+    "si": "Slovenia",
+    "za": "South Africa",
+    "kr": "South Korea",
+    "es": "Spain",
+    "se": "Sweden",
+    "ch": "Switzerland",
+    "tw": "Taiwan",
+    "th": "Thailand",
+    "uk": "UK: England &amp; Wales",
+    "scotland": "UK: Scotland",
+    "ug": "Uganda",
+    "us": "United States",
+    "ve": "Venezuela",
+    "vn": "Vietnam",
+}
+CC_30_COUNTRIES = [
+    "at",
+    "au",
+    "br",
+    "ch",
+    "cl",
+    "cn",
+    "cr",
+    "cz",
+    "de",
+    "ec",
+    "ee",
+    "eg",
+    "es",
+    "fr",
+    "gr",
+    "gt",
+    "hk",
+    "hr",
+    "ie",
+    "igo",
+    "it",
+    "lu",
+    "nl",
+    "no",
+    "nz",
+    "ph",
+    "pl",
+    "pr",
+    "pt",
+    "ro",
+    "rs",
+    "sg",
+    "th",
+    "tw",
+    "ug",
+    "us",
+    "ve",
+    "vn",
+    "za",
+]
+
+CC_25_COUNTRIES = [
+    "ar",
+    "bg",
+    "ca",
+    "co",
+    "dk",
+    "hu",
+    "il",
+    "in",
+    "mk",
+    "mt",
+    "mx",
+    "my",
+    "pe",
+    "scotland",
+]
+
+LICENSES = [
+    # a non-exhaustive list: http://musique-libre.org/doc/le-tableau-des-licences-libres-et-ouvertes-de-dogmazic/
+    {
+        "code": "cc0-1.0",
+        "name": "CC0 - Public domain",
+        "redistribute": True,
+        "derivative": True,
+        "commercial": True,
+        "attribution": False,
+        "copyleft": False,
+        "url": "https://creativecommons.org/publicdomain/zero/1.0/",
+        "identifiers": [
+            # note the http here.
+            # This is the kind of URL that is embedded in music files metadata
+            "http://creativecommons.org/publicdomain/zero/1.0/"
+        ],
+    },
+    # Creative commons version 4.0
+    get_cc_license(version="4.0", perks=["by"]),
+    get_cc_license(version="4.0", perks=["by", "sa"]),
+    get_cc_license(version="4.0", perks=["by", "nc"]),
+    get_cc_license(version="4.0", perks=["by", "nc", "sa"]),
+    get_cc_license(version="4.0", perks=["by", "nc", "nd"]),
+    get_cc_license(version="4.0", perks=["by", "nd"]),
+    # Creative commons version 3.0
+    get_cc_license(version="3.0", perks=["by"]),
+    get_cc_license(version="3.0", perks=["by", "sa"]),
+    get_cc_license(version="3.0", perks=["by", "nc"]),
+    get_cc_license(version="3.0", perks=["by", "nc", "sa"]),
+    get_cc_license(version="3.0", perks=["by", "nc", "nd"]),
+    get_cc_license(version="3.0", perks=["by", "nd"]),
+    # Creative commons version 2.5
+    get_cc_license(version="2.5", perks=["by"]),
+    get_cc_license(version="2.5", perks=["by", "sa"]),
+    get_cc_license(version="2.5", perks=["by", "nc"]),
+    get_cc_license(version="2.5", perks=["by", "nc", "sa"]),
+    get_cc_license(version="2.5", perks=["by", "nc", "nd"]),
+    get_cc_license(version="2.5", perks=["by", "nd"]),
+    # Creative commons version 2.0
+    get_cc_license(version="2.0", perks=["by"]),
+    get_cc_license(version="2.0", perks=["by", "sa"]),
+    get_cc_license(version="2.0", perks=["by", "nc"]),
+    get_cc_license(version="2.0", perks=["by", "nc", "sa"]),
+    get_cc_license(version="2.0", perks=["by", "nc", "nd"]),
+    get_cc_license(version="2.0", perks=["by", "nd"]),
+    # Creative commons version 1.0
+    get_cc_license(version="1.0", perks=["by"]),
+    get_cc_license(version="1.0", perks=["by", "sa"]),
+    get_cc_license(version="1.0", perks=["by", "nc"]),
+    get_cc_license(version="1.0", perks=["by", "nc", "sa"]),
+    get_cc_license(version="1.0", perks=["by", "nc", "nd"]),
+    get_cc_license(version="1.0", perks=["by", "nd"]),
+]
+
+# generate ported (by country) CC licenses:
+
+for country in CC_30_COUNTRIES:
+    name = COUNTRIES[country]
+    LICENSES += [
+        get_cc_license(version="3.0", perks=["by"], country=country, country_name=name),
+        get_cc_license(
+            version="3.0", perks=["by", "sa"], country=country, country_name=name
+        ),
+        get_cc_license(
+            version="3.0", perks=["by", "nc"], country=country, country_name=name
+        ),
+        get_cc_license(
+            version="3.0", perks=["by", "nc", "sa"], country=country, country_name=name
+        ),
+        get_cc_license(
+            version="3.0", perks=["by", "nc", "nd"], country=country, country_name=name
+        ),
+        get_cc_license(
+            version="3.0", perks=["by", "nd"], country=country, country_name=name
+        ),
+    ]
+
+
+for country in CC_25_COUNTRIES:
+    name = COUNTRIES[country]
+    LICENSES += [
+        get_cc_license(version="2.5", perks=["by"], country=country, country_name=name),
+        get_cc_license(
+            version="2.5", perks=["by", "sa"], country=country, country_name=name
+        ),
+        get_cc_license(
+            version="2.5", perks=["by", "nc"], country=country, country_name=name
+        ),
+        get_cc_license(
+            version="2.5", perks=["by", "nc", "sa"], country=country, country_name=name
+        ),
+        get_cc_license(
+            version="2.5", perks=["by", "nc", "nd"], country=country, country_name=name
+        ),
+        get_cc_license(
+            version="2.5", perks=["by", "nd"], country=country, country_name=name
+        ),
+    ]
+
+LICENSES = sorted(LICENSES, key=lambda l: l["code"])
+LICENSES_BY_ID = {l["code"]: l for l in LICENSES}
diff --git a/api/funkwhale_api/music/management/commands/check_licenses.py b/api/funkwhale_api/music/management/commands/check_licenses.py
new file mode 100644
index 0000000000000000000000000000000000000000..b0b398acfcafbeba7281591dd7b49018b34116a9
--- /dev/null
+++ b/api/funkwhale_api/music/management/commands/check_licenses.py
@@ -0,0 +1,34 @@
+from django.core.management.base import BaseCommand, CommandError
+import requests.exceptions
+
+from funkwhale_api.music import licenses
+
+
+class Command(BaseCommand):
+    help = "Check that specified licenses URLs are actually reachable"
+
+    def handle(self, *args, **options):
+        errored = []
+        objs = licenses.LICENSES
+        total = len(objs)
+        for i, data in enumerate(objs):
+            self.stderr.write("{}/{} Checking {}...".format(i + 1, total, data["code"]))
+            response = requests.get(data["url"])
+            try:
+                response.raise_for_status()
+            except requests.exceptions.RequestException:
+                self.stderr.write("!!! Error while fetching {}!".format(data["code"]))
+                errored.append((data, response))
+
+        if errored:
+            self.stdout.write("{} licenses were not reachable!".format(len(errored)))
+            for row, response in errored:
+                self.stdout.write(
+                    "- {}: error {} at url {}".format(
+                        row["code"], response.status_code, row["url"]
+                    )
+                )
+
+            raise CommandError()
+        else:
+            self.stdout.write("All licenses are valid and reachable :)")
diff --git a/api/funkwhale_api/music/metadata.py b/api/funkwhale_api/music/metadata.py
index 21daf2747c6f8cfe01ff3c12ea19f86b7bc5bc3d..7a105e432ca441783f9778dbad6c5858aeb7f54b 100644
--- a/api/funkwhale_api/music/metadata.py
+++ b/api/funkwhale_api/music/metadata.py
@@ -1,8 +1,16 @@
+import base64
 import datetime
-import mutagen
+import logging
 import pendulum
+
+import mutagen._util
+import mutagen.oggtheora
+import mutagen.oggvorbis
+import mutagen.flac
+
 from django import forms
 
+logger = logging.getLogger(__name__)
 NODEFAULT = object()
 
 
@@ -14,14 +22,26 @@ class UnsupportedTag(KeyError):
     pass
 
 
+class ParseError(ValueError):
+    pass
+
+
 def get_id3_tag(f, k):
     if k == "pictures":
         return f.tags.getall("APIC")
     # First we try to grab the standard key
-    try:
-        return f.tags[k].text[0]
-    except KeyError:
-        pass
+    possible_attributes = [("text", True), ("url", False)]
+    for attr, select_first in possible_attributes:
+        try:
+            v = getattr(f.tags[k], attr)
+            if select_first:
+                v = v[0]
+            return v
+        except KeyError:
+            break
+        except AttributeError:
+            continue
+
     # then we fallback on parsing non standard tags
     all_tags = f.tags.getall("TXXX")
     try:
@@ -68,6 +88,31 @@ def clean_flac_pictures(apic):
     return pictures
 
 
+def clean_ogg_pictures(metadata_block_picture):
+    pictures = []
+    for b64_data in [metadata_block_picture]:
+
+        try:
+            data = base64.b64decode(b64_data)
+        except (TypeError, ValueError):
+            continue
+
+        try:
+            picture = mutagen.flac.Picture(data)
+        except mutagen.flac.FLACError:
+            continue
+
+        pictures.append(
+            {
+                "mimetype": picture.mime,
+                "content": picture.data,
+                "description": "",
+                "type": picture.type.real,
+            }
+        )
+    return pictures
+
+
 def get_mp3_recording_id(f, k):
     try:
         return [t for t in f.tags.getall("UFID") if "musicbrainz.org" in t.owner][
@@ -77,7 +122,7 @@ def get_mp3_recording_id(f, k):
         raise TagNotFound(k)
 
 
-def convert_track_number(v):
+def convert_position(v):
     try:
         return int(v)
     except ValueError:
@@ -103,8 +148,22 @@ class FirstUUIDField(forms.UUIDField):
 
 
 def get_date(value):
-    parsed = pendulum.parse(str(value))
-    return datetime.date(parsed.year, parsed.month, parsed.day)
+    ADDITIONAL_FORMATS = ["%Y-%d-%m %H:%M"]  # deezer date format
+    try:
+        parsed = pendulum.parse(str(value))
+        return datetime.date(parsed.year, parsed.month, parsed.day)
+    except pendulum.exceptions.ParserError:
+        pass
+
+    for date_format in ADDITIONAL_FORMATS:
+        try:
+            parsed = datetime.datetime.strptime(value, date_format)
+        except ValueError:
+            continue
+        else:
+            return datetime.date(parsed.year, parsed.month, parsed.day)
+
+    raise ParseError("{} cannot be parsed as a date".format(value))
 
 
 def split_and_return_first(separator):
@@ -127,8 +186,9 @@ CONF = {
         "fields": {
             "track_number": {
                 "field": "TRACKNUMBER",
-                "to_application": convert_track_number,
+                "to_application": convert_position,
             },
+            "disc_number": {"field": "DISCNUMBER", "to_application": convert_position},
             "title": {},
             "artist": {},
             "album_artist": {
@@ -141,6 +201,8 @@ CONF = {
             "musicbrainz_artistid": {},
             "musicbrainz_albumartistid": {},
             "musicbrainz_recordingid": {"field": "musicbrainz_trackid"},
+            "license": {},
+            "copyright": {},
         },
     },
     "OggVorbis": {
@@ -148,8 +210,9 @@ CONF = {
         "fields": {
             "track_number": {
                 "field": "TRACKNUMBER",
-                "to_application": convert_track_number,
+                "to_application": convert_position,
             },
+            "disc_number": {"field": "DISCNUMBER", "to_application": convert_position},
             "title": {},
             "artist": {},
             "album_artist": {
@@ -162,6 +225,12 @@ CONF = {
             "musicbrainz_artistid": {},
             "musicbrainz_albumartistid": {},
             "musicbrainz_recordingid": {"field": "musicbrainz_trackid"},
+            "license": {},
+            "copyright": {},
+            "pictures": {
+                "field": "metadata_block_picture",
+                "to_application": clean_ogg_pictures,
+            },
         },
     },
     "OggTheora": {
@@ -169,8 +238,9 @@ CONF = {
         "fields": {
             "track_number": {
                 "field": "TRACKNUMBER",
-                "to_application": convert_track_number,
+                "to_application": convert_position,
             },
+            "disc_number": {"field": "DISCNUMBER", "to_application": convert_position},
             "title": {},
             "artist": {},
             "album_artist": {"field": "albumartist"},
@@ -180,13 +250,16 @@ CONF = {
             "musicbrainz_artistid": {"field": "MusicBrainz Artist Id"},
             "musicbrainz_albumartistid": {"field": "MusicBrainz Album Artist Id"},
             "musicbrainz_recordingid": {"field": "MusicBrainz Track Id"},
+            "license": {},
+            "copyright": {},
         },
     },
     "MP3": {
         "getter": get_id3_tag,
         "clean_pictures": clean_id3_pictures,
         "fields": {
-            "track_number": {"field": "TRCK", "to_application": convert_track_number},
+            "track_number": {"field": "TRCK", "to_application": convert_position},
+            "disc_number": {"field": "TPOS", "to_application": convert_position},
             "title": {"field": "TIT2"},
             "artist": {"field": "TPE1"},
             "album_artist": {"field": "TPE2"},
@@ -200,6 +273,8 @@ CONF = {
                 "getter": get_mp3_recording_id,
             },
             "pictures": {},
+            "license": {"field": "WCOP"},
+            "copyright": {"field": "TCOP"},
         },
     },
     "FLAC": {
@@ -208,8 +283,9 @@ CONF = {
         "fields": {
             "track_number": {
                 "field": "tracknumber",
-                "to_application": convert_track_number,
+                "to_application": convert_position,
             },
+            "disc_number": {"field": "discnumber", "to_application": convert_position},
             "title": {},
             "artist": {},
             "album_artist": {"field": "albumartist"},
@@ -221,12 +297,15 @@ CONF = {
             "musicbrainz_recordingid": {"field": "musicbrainz_trackid"},
             "test": {},
             "pictures": {},
+            "license": {},
+            "copyright": {},
         },
     },
 }
 
 ALL_FIELDS = [
     "track_number",
+    "disc_number",
     "title",
     "artist",
     "album_artist",
@@ -236,14 +315,17 @@ ALL_FIELDS = [
     "musicbrainz_artistid",
     "musicbrainz_albumartistid",
     "musicbrainz_recordingid",
+    "license",
+    "copyright",
 ]
 
 
 class Metadata(object):
-    def __init__(self, path):
-        self._file = mutagen.File(path)
+    def __init__(self, filething, kind=mutagen.File):
+        self._file = kind(filething)
         if self._file is None:
-            raise ValueError("Cannot parse metadata from {}".format(path))
+            raise ValueError("Cannot parse metadata from {}".format(filething))
+        self.fallback = self.load_fallback(filething, self._file)
         ft = self.get_file_type(self._file)
         try:
             self._conf = CONF[ft]
@@ -253,7 +335,40 @@ class Metadata(object):
     def get_file_type(self, f):
         return f.__class__.__name__
 
+    def load_fallback(self, filething, parent):
+        """
+        In some situations, such as Ogg Theora files tagged with MusicBrainz Picard,
+        part of the tags are only available in the ogg vorbis comments
+        """
+        try:
+            filething.seek(0)
+        except AttributeError:
+            pass
+        if isinstance(parent, mutagen.oggtheora.OggTheora):
+            try:
+                return Metadata(filething, kind=mutagen.oggvorbis.OggVorbis)
+            except (ValueError, mutagen._util.MutagenError):
+                raise
+                pass
+
     def get(self, key, default=NODEFAULT):
+        try:
+            return self._get_from_self(key)
+        except TagNotFound:
+            if not self.fallback:
+                if default != NODEFAULT:
+                    return default
+                else:
+                    raise
+            else:
+                return self.fallback.get(key, default=default)
+        except UnsupportedTag:
+            if not self.fallback:
+                raise
+            else:
+                return self.fallback.get(key, default=default)
+
+    def _get_from_self(self, key, default=NODEFAULT):
         try:
             field_conf = self._conf["fields"][key]
         except KeyError:
@@ -275,7 +390,7 @@ class Metadata(object):
             v = field.to_python(v)
         return v
 
-    def all(self):
+    def all(self, ignore_parse_errors=True):
         """
         Return a dict containing all metadata of the file
         """
@@ -286,11 +401,22 @@ class Metadata(object):
                 data[field] = self.get(field, None)
             except (TagNotFound, forms.ValidationError):
                 data[field] = None
+            except ParseError as e:
+                if not ignore_parse_errors:
+                    raise
+                logger.warning("Unparsable field {}: {}".format(field, str(e)))
+                data[field] = None
 
         return data
 
-    def get_picture(self, picture_type="cover_front"):
-        ptype = getattr(mutagen.id3.PictureType, picture_type.upper())
+    def get_picture(self, *picture_types):
+        if not picture_types:
+            raise ValueError("You need to request at least one picture type")
+        ptypes = [
+            getattr(mutagen.id3.PictureType, picture_type.upper())
+            for picture_type in picture_types
+        ]
+
         try:
             pictures = self.get("pictures")
         except (UnsupportedTag, TagNotFound):
@@ -298,6 +424,9 @@ class Metadata(object):
 
         cleaner = self._conf.get("clean_pictures", lambda v: v)
         pictures = cleaner(pictures)
-        for p in pictures:
-            if p["type"] == ptype:
-                return p
+        if not pictures:
+            return
+        for ptype in ptypes:
+            for p in pictures:
+                if p["type"] == ptype:
+                    return p
diff --git a/api/funkwhale_api/music/migrations/0033_auto_20181023_1837.py b/api/funkwhale_api/music/migrations/0033_auto_20181023_1837.py
new file mode 100644
index 0000000000000000000000000000000000000000..003349b53caf8ae0766a10f283b8814f00d9e67c
--- /dev/null
+++ b/api/funkwhale_api/music/migrations/0033_auto_20181023_1837.py
@@ -0,0 +1,53 @@
+# Generated by Django 2.0.9 on 2018-10-23 18:37
+
+from django.db import migrations, models
+import django.db.models.deletion
+import django.utils.timezone
+import funkwhale_api.music.models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('music', '0032_track_file_to_upload'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='UploadVersion',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('mimetype', models.CharField(choices=[('audio/ogg', 'ogg'), ('audio/mpeg', 'mp3'), ('audio/x-flac', 'flac')], max_length=50)),
+                ('creation_date', models.DateTimeField(default=django.utils.timezone.now)),
+                ('accessed_date', models.DateTimeField(blank=True, null=True)),
+                ('audio_file', models.FileField(max_length=255, upload_to=funkwhale_api.music.models.get_file_path)),
+                ('bitrate', models.PositiveIntegerField()),
+                ('size', models.IntegerField()),
+                ('upload', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='versions', to='music.Upload')),
+            ],
+        ),
+        migrations.AlterField(
+            model_name='album',
+            name='from_activity',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='federation.Activity'),
+        ),
+        migrations.AlterField(
+            model_name='artist',
+            name='from_activity',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='federation.Activity'),
+        ),
+        migrations.AlterField(
+            model_name='track',
+            name='from_activity',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='federation.Activity'),
+        ),
+        migrations.AlterField(
+            model_name='work',
+            name='from_activity',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='federation.Activity'),
+        ),
+        migrations.AlterUniqueTogether(
+            name='uploadversion',
+            unique_together={('upload', 'mimetype', 'bitrate')},
+        ),
+    ]
diff --git a/api/funkwhale_api/music/migrations/0034_auto_20181127_0325.py b/api/funkwhale_api/music/migrations/0034_auto_20181127_0325.py
new file mode 100644
index 0000000000000000000000000000000000000000..a5f6dab31e1c01bc73165c5c4453aa15b135ac56
--- /dev/null
+++ b/api/funkwhale_api/music/migrations/0034_auto_20181127_0325.py
@@ -0,0 +1,36 @@
+# Generated by Django 2.0.9 on 2018-11-27 03:25
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('music', '0033_auto_20181023_1837'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='License',
+            fields=[
+                ('code', models.CharField(max_length=100, primary_key=True, serialize=False)),
+                ('url', models.URLField(max_length=500)),
+                ('copyleft', models.BooleanField()),
+                ('commercial', models.BooleanField()),
+                ('attribution', models.BooleanField()),
+                ('derivative', models.BooleanField()),
+                ('redistribute', models.BooleanField()),
+            ],
+        ),
+        migrations.AlterField(
+            model_name='uploadversion',
+            name='mimetype',
+            field=models.CharField(choices=[('audio/ogg', 'ogg'), ('audio/mpeg', 'mp3'), ('audio/x-flac', 'flac'), ('audio/flac', 'flac')], max_length=50),
+        ),
+        migrations.AddField(
+            model_name='track',
+            name='license',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='tracks', to='music.License'),
+        ),
+    ]
diff --git a/api/funkwhale_api/music/migrations/0035_auto_20181203_1515.py b/api/funkwhale_api/music/migrations/0035_auto_20181203_1515.py
new file mode 100644
index 0000000000000000000000000000000000000000..17314d53b84ce343eed3e4f103147e0145120b04
--- /dev/null
+++ b/api/funkwhale_api/music/migrations/0035_auto_20181203_1515.py
@@ -0,0 +1,24 @@
+# Generated by Django 2.0.9 on 2018-12-03 15:15
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('music', '0034_auto_20181127_0325'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='track',
+            name='copyright',
+            field=models.CharField(blank=True, max_length=500, null=True),
+        ),
+        migrations.AlterField(
+            model_name='track',
+            name='license',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='tracks', to='music.License'),
+        ),
+    ]
diff --git a/api/funkwhale_api/music/migrations/0036_track_disc_number.py b/api/funkwhale_api/music/migrations/0036_track_disc_number.py
new file mode 100644
index 0000000000000000000000000000000000000000..d40ec5e8d83c4f243a44322b96f6338626a95afd
--- /dev/null
+++ b/api/funkwhale_api/music/migrations/0036_track_disc_number.py
@@ -0,0 +1,18 @@
+# Generated by Django 2.0.9 on 2018-12-04 15:10
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('music', '0035_auto_20181203_1515'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='track',
+            name='disc_number',
+            field=models.PositiveIntegerField(blank=True, null=True),
+        ),
+    ]
diff --git a/api/funkwhale_api/music/migrations/0037_auto_20190103_1757.py b/api/funkwhale_api/music/migrations/0037_auto_20190103_1757.py
new file mode 100644
index 0000000000000000000000000000000000000000..3a360a010dd057bf8338d76fb2a8aa27dfc01ec7
--- /dev/null
+++ b/api/funkwhale_api/music/migrations/0037_auto_20190103_1757.py
@@ -0,0 +1,43 @@
+# Generated by Django 2.0.9 on 2019-01-03 17:57
+
+from django.db import migrations, models
+import django.utils.timezone
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('music', '0036_track_disc_number'),
+    ]
+
+    operations = [
+        migrations.AlterModelOptions(
+            name='track',
+            options={'ordering': ['album', 'disc_number', 'position']},
+        ),
+        migrations.AlterField(
+            model_name='album',
+            name='creation_date',
+            field=models.DateTimeField(db_index=True, default=django.utils.timezone.now),
+        ),
+        migrations.AlterField(
+            model_name='artist',
+            name='creation_date',
+            field=models.DateTimeField(db_index=True, default=django.utils.timezone.now),
+        ),
+        migrations.AlterField(
+            model_name='track',
+            name='creation_date',
+            field=models.DateTimeField(db_index=True, default=django.utils.timezone.now),
+        ),
+        migrations.AlterField(
+            model_name='upload',
+            name='creation_date',
+            field=models.DateTimeField(db_index=True, default=django.utils.timezone.now),
+        ),
+        migrations.AlterField(
+            model_name='work',
+            name='creation_date',
+            field=models.DateTimeField(db_index=True, default=django.utils.timezone.now),
+        ),
+    ]
diff --git a/api/funkwhale_api/music/models.py b/api/funkwhale_api/music/models.py
index 318640c884486cd7179326213d8bc3e47ccc10f9..325cdacece4b2d471775bd769124a11cf7cb3e42 100644
--- a/api/funkwhale_api/music/models.py
+++ b/api/funkwhale_api/music/models.py
@@ -11,7 +11,7 @@ from django.conf import settings
 from django.contrib.postgres.fields import JSONField
 from django.core.files.base import ContentFile
 from django.core.serializers.json import DjangoJSONEncoder
-from django.db import models
+from django.db import models, transaction
 from django.db.models.signals import post_save
 from django.dispatch import receiver
 from django.urls import reverse
@@ -29,7 +29,7 @@ from funkwhale_api.federation import models as federation_models
 from funkwhale_api.federation import utils as federation_utils
 from . import importers, metadata, utils
 
-logger = logging.getLogger(__file__)
+logger = logging.getLogger(__name__)
 
 
 def empty_dict():
@@ -44,7 +44,7 @@ class APIModelMixin(models.Model):
         "federation.Activity", null=True, blank=True, on_delete=models.SET_NULL
     )
     api_includes = []
-    creation_date = models.DateTimeField(default=timezone.now)
+    creation_date = models.DateTimeField(default=timezone.now, db_index=True)
     import_hooks = []
 
     class Meta:
@@ -113,6 +113,33 @@ class APIModelMixin(models.Model):
         return super().save(**kwargs)
 
 
+class License(models.Model):
+    code = models.CharField(primary_key=True, max_length=100)
+    url = models.URLField(max_length=500)
+
+    # if true, license is a copyleft license, meaning that derivative
+    # work must be shared under the same license
+    copyleft = models.BooleanField()
+    # if true, commercial use of the work is allowed
+    commercial = models.BooleanField()
+    # if true, attribution to the original author is required when reusing
+    # the work
+    attribution = models.BooleanField()
+    # if true, derivative work are allowed
+    derivative = models.BooleanField()
+    # if true, redistribution of the wor is allowed
+    redistribute = models.BooleanField()
+
+    @property
+    def conf(self):
+        from . import licenses
+
+        for row in licenses.LICENSES:
+            if self.code == row["code"]:
+                return row
+        logger.warning("%s do not match any registered license", self.code)
+
+
 class ArtistQuerySet(models.QuerySet):
     def with_albums_count(self):
         return self.annotate(_albums_count=models.Count("albums"))
@@ -124,8 +151,8 @@ class ArtistQuerySet(models.QuerySet):
 
     def annotate_playable_by_actor(self, actor):
         tracks = (
-            Track.objects.playable_by(actor)
-            .filter(artist=models.OuterRef("id"))
+            Upload.objects.playable_by(actor)
+            .filter(track__artist=models.OuterRef("id"))
             .order_by("id")
             .values("id")[:1]
         )
@@ -134,10 +161,11 @@ class ArtistQuerySet(models.QuerySet):
 
     def playable_by(self, actor, include=True):
         tracks = Track.objects.playable_by(actor, include)
+        matches = self.filter(tracks__in=tracks).values_list("pk")
         if include:
-            return self.filter(tracks__in=tracks)
+            return self.filter(pk__in=matches)
         else:
-            return self.exclude(tracks__in=tracks)
+            return self.exclude(pk__in=matches)
 
 
 class Artist(APIModelMixin):
@@ -192,8 +220,8 @@ class AlbumQuerySet(models.QuerySet):
 
     def annotate_playable_by_actor(self, actor):
         tracks = (
-            Track.objects.playable_by(actor)
-            .filter(album=models.OuterRef("id"))
+            Upload.objects.playable_by(actor)
+            .filter(track__album=models.OuterRef("id"))
             .order_by("id")
             .values("id")[:1]
         )
@@ -202,10 +230,15 @@ class AlbumQuerySet(models.QuerySet):
 
     def playable_by(self, actor, include=True):
         tracks = Track.objects.playable_by(actor, include)
+        matches = self.filter(tracks__in=tracks).values_list("pk")
         if include:
-            return self.filter(tracks__in=tracks)
+            return self.filter(pk__in=matches)
         else:
-            return self.exclude(tracks__in=tracks)
+            return self.exclude(pk__in=matches)
+
+    def with_prefetched_tracks_and_playable_uploads(self, actor):
+        tracks = Track.objects.with_playable_uploads(actor)
+        return self.prefetch_related(models.Prefetch("tracks", queryset=tracks))
 
 
 class Album(APIModelMixin):
@@ -398,24 +431,23 @@ class TrackQuerySet(models.QuerySet):
 
     def playable_by(self, actor, include=True):
         files = Upload.objects.playable_by(actor, include)
+        matches = self.filter(uploads__in=files).values_list("pk")
         if include:
-            return self.filter(uploads__in=files)
+            return self.filter(pk__in=matches)
         else:
-            return self.exclude(uploads__in=files)
+            return self.exclude(pk__in=matches)
 
-    def annotate_duration(self):
-        first_upload = Upload.objects.filter(track=models.OuterRef("pk")).order_by("pk")
-        return self.annotate(
-            duration=models.Subquery(first_upload.values("duration")[:1])
+    def with_playable_uploads(self, actor):
+        uploads = Upload.objects.playable_by(actor).select_related("track")
+        return self.prefetch_related(
+            models.Prefetch("uploads", queryset=uploads, to_attr="playable_uploads")
         )
 
-    def annotate_file_data(self):
-        first_upload = Upload.objects.filter(track=models.OuterRef("pk")).order_by("pk")
-        return self.annotate(
-            bitrate=models.Subquery(first_upload.values("bitrate")[:1]),
-            size=models.Subquery(first_upload.values("size")[:1]),
-            mimetype=models.Subquery(first_upload.values("mimetype")[:1]),
-        )
+    def order_for_album(self):
+        """
+        Order by disc number then position
+        """
+        return self.order_by("disc_number", "position", "title")
 
 
 def get_artist(release_list):
@@ -427,6 +459,7 @@ def get_artist(release_list):
 class Track(APIModelMixin):
     title = models.CharField(max_length=255)
     artist = models.ForeignKey(Artist, related_name="tracks", on_delete=models.CASCADE)
+    disc_number = models.PositiveIntegerField(null=True, blank=True)
     position = models.PositiveIntegerField(null=True, blank=True)
     album = models.ForeignKey(
         Album, related_name="tracks", null=True, blank=True, on_delete=models.CASCADE
@@ -434,6 +467,14 @@ class Track(APIModelMixin):
     work = models.ForeignKey(
         Work, related_name="tracks", null=True, blank=True, on_delete=models.CASCADE
     )
+    license = models.ForeignKey(
+        License,
+        null=True,
+        blank=True,
+        on_delete=models.DO_NOTHING,
+        related_name="tracks",
+    )
+    copyright = models.CharField(max_length=500, null=True, blank=True)
     federation_namespace = "tracks"
     musicbrainz_model = "recording"
     api = musicbrainz.api.recordings
@@ -454,7 +495,7 @@ class Track(APIModelMixin):
     tags = TaggableManager(blank=True)
 
     class Meta:
-        ordering = ["album", "position"]
+        ordering = ["album", "disc_number", "position"]
 
     def __str__(self):
         return self.title
@@ -551,6 +592,17 @@ class Track(APIModelMixin):
     def listen_url(self):
         return reverse("api:v1:listen-detail", kwargs={"uuid": self.uuid})
 
+    @property
+    def local_license(self):
+        """
+        Since license primary keys are strings, and we can get the data
+        from our hardcoded licenses.LICENSES list, there is no need
+        for extra SQL joins / queries.
+        """
+        from . import licenses
+
+        return licenses.LICENSES_BY_ID.get(self.license_id)
+
 
 class UploadQuerySet(models.QuerySet):
     def playable_by(self, actor, include=True):
@@ -566,6 +618,9 @@ class UploadQuerySet(models.QuerySet):
     def for_federation(self):
         return self.filter(import_status="finished", mimetype__startswith="audio/")
 
+    def with_file(self):
+        return self.exclude(audio_file=None).exclude(audio_file="")
+
 
 TRACK_FILE_IMPORT_STATUS_CHOICES = (
     ("pending", "Pending"),
@@ -576,6 +631,9 @@ TRACK_FILE_IMPORT_STATUS_CHOICES = (
 
 
 def get_file_path(instance, filename):
+    if isinstance(instance, UploadVersion):
+        return common_utils.ChunkedPath("transcoded")(instance, filename)
+
     if instance.library.actor.get_user():
         return common_utils.ChunkedPath("tracks")(instance, filename)
     else:
@@ -600,7 +658,7 @@ class Upload(models.Model):
         blank=True,
         max_length=500,
     )
-    creation_date = models.DateTimeField(default=timezone.now)
+    creation_date = models.DateTimeField(default=timezone.now, db_index=True)
     modification_date = models.DateTimeField(default=timezone.now, null=True)
     accessed_date = models.DateTimeField(null=True, blank=True)
     duration = models.IntegerField(null=True, blank=True)
@@ -687,9 +745,14 @@ class Upload(models.Model):
 
     @property
     def extension(self):
-        if not self.audio_file:
-            return
-        return os.path.splitext(self.audio_file.name)[-1].replace(".", "", 1)
+        try:
+            return utils.MIMETYPE_TO_EXTENSION[self.mimetype]
+        except KeyError:
+            pass
+        if self.audio_file:
+            return os.path.splitext(self.audio_file.name)[-1].replace(".", "", 1)
+        if self.in_place_path:
+            return os.path.splitext(self.in_place_path)[-1].replace(".", "", 1)
 
     def get_file_size(self):
         if self.audio_file:
@@ -739,6 +802,67 @@ class Upload(models.Model):
     def listen_url(self):
         return self.track.listen_url + "?upload={}".format(self.uuid)
 
+    def get_transcoded_version(self, format):
+        mimetype = utils.EXTENSION_TO_MIMETYPE[format]
+        existing_versions = list(self.versions.filter(mimetype=mimetype))
+        if existing_versions:
+            # we found an existing version, no need to transcode again
+            return existing_versions[0]
+
+        return self.create_transcoded_version(mimetype, format)
+
+    @transaction.atomic
+    def create_transcoded_version(self, mimetype, format):
+        # we create the version with an empty file, then
+        # we'll write to it
+        f = ContentFile(b"")
+        version = self.versions.create(
+            mimetype=mimetype, bitrate=self.bitrate or 128000, size=0
+        )
+        # we keep the same name, but we update the extension
+        new_name = os.path.splitext(os.path.basename(self.audio_file.name))[
+            0
+        ] + ".{}".format(format)
+        version.audio_file.save(new_name, f)
+        utils.transcode_file(
+            input=self.audio_file,
+            output=version.audio_file,
+            input_format=utils.MIMETYPE_TO_EXTENSION[self.mimetype],
+            output_format=utils.MIMETYPE_TO_EXTENSION[mimetype],
+        )
+        version.size = version.audio_file.size
+        version.save(update_fields=["size"])
+
+        return version
+
+    @property
+    def in_place_path(self):
+        if not self.source or not self.source.startswith("file://"):
+            return
+        return self.source.lstrip("file://")
+
+
+MIMETYPE_CHOICES = [(mt, ext) for ext, mt in utils.AUDIO_EXTENSIONS_AND_MIMETYPE]
+
+
+class UploadVersion(models.Model):
+    upload = models.ForeignKey(
+        Upload, related_name="versions", on_delete=models.CASCADE
+    )
+    mimetype = models.CharField(max_length=50, choices=MIMETYPE_CHOICES)
+    creation_date = models.DateTimeField(default=timezone.now)
+    accessed_date = models.DateTimeField(null=True, blank=True)
+    audio_file = models.FileField(upload_to=get_file_path, max_length=255)
+    bitrate = models.PositiveIntegerField()
+    size = models.IntegerField()
+
+    class Meta:
+        unique_together = ("upload", "mimetype", "bitrate")
+
+    @property
+    def filename(self):
+        return self.upload.filename
+
 
 IMPORT_STATUS_CHOICES = (
     ("pending", "Pending"),
@@ -983,7 +1107,7 @@ def update_request_status(sender, instance, created, **kwargs):
 
 @receiver(models.signals.post_save, sender=Album)
 def warm_album_covers(sender, instance, **kwargs):
-    if not instance.cover:
+    if not instance.cover or not settings.CREATE_IMAGE_THUMBNAILS:
         return
     album_covers_warmer = VersatileImageFieldWarmer(
         instance_or_queryset=instance, rendition_key_set="square", image_attr="cover"
diff --git a/api/funkwhale_api/music/serializers.py b/api/funkwhale_api/music/serializers.py
index a23fc1daadf6d7bfbeb4b7d9d625475fcd6a1ad1..192fc024cbd890f01aa5ef079c139a0039c6a373 100644
--- a/api/funkwhale_api/music/serializers.py
+++ b/api/funkwhale_api/music/serializers.py
@@ -1,4 +1,8 @@
+import urllib.parse
+
 from django.db import transaction
+from django import urls
+from django.conf import settings
 from rest_framework import serializers
 from taggit.models import Tag
 from versatileimagefield.serializers import VersatileImageFieldSerializer
@@ -7,6 +11,7 @@ from funkwhale_api.activity import serializers as activity_serializers
 from funkwhale_api.common import serializers as common_serializers
 from funkwhale_api.common import utils as common_utils
 from funkwhale_api.federation import routes
+from funkwhale_api.federation import utils as federation_utils
 
 from . import filters, models, tasks
 
@@ -14,6 +19,21 @@ from . import filters, models, tasks
 cover_field = VersatileImageFieldSerializer(allow_null=True, sizes="square")
 
 
+class LicenseSerializer(serializers.Serializer):
+    id = serializers.SerializerMethodField()
+    url = serializers.URLField()
+    code = serializers.CharField()
+    name = serializers.CharField()
+    redistribute = serializers.BooleanField()
+    derivative = serializers.BooleanField()
+    commercial = serializers.BooleanField()
+    attribution = serializers.BooleanField()
+    copyleft = serializers.BooleanField()
+
+    def get_id(self, obj):
+        return obj["identifiers"][0]
+
+
 class ArtistAlbumSerializer(serializers.ModelSerializer):
     tracks_count = serializers.SerializerMethodField()
     cover = cover_field
@@ -59,7 +79,7 @@ class ArtistSimpleSerializer(serializers.ModelSerializer):
 
 class AlbumTrackSerializer(serializers.ModelSerializer):
     artist = ArtistSimpleSerializer(read_only=True)
-    is_playable = serializers.SerializerMethodField()
+    uploads = serializers.SerializerMethodField()
     listen_url = serializers.SerializerMethodField()
     duration = serializers.SerializerMethodField()
 
@@ -73,16 +93,17 @@ class AlbumTrackSerializer(serializers.ModelSerializer):
             "artist",
             "creation_date",
             "position",
-            "is_playable",
+            "disc_number",
+            "uploads",
             "listen_url",
             "duration",
+            "copyright",
+            "license",
         )
 
-    def get_is_playable(self, obj):
-        try:
-            return bool(obj.is_playable_by_actor)
-        except AttributeError:
-            return None
+    def get_uploads(self, obj):
+        uploads = getattr(obj, "playable_uploads", [])
+        return TrackUploadSerializer(uploads, many=True).data
 
     def get_listen_url(self, obj):
         return obj.listen_url
@@ -115,15 +136,14 @@ class AlbumSerializer(serializers.ModelSerializer):
         )
 
     def get_tracks(self, o):
-        ordered_tracks = sorted(
-            o.tracks.all(),
-            key=lambda v: (v.position, v.title) if v.position else (99999, v.title),
-        )
+        ordered_tracks = o.tracks.all()
         return AlbumTrackSerializer(ordered_tracks, many=True).data
 
     def get_is_playable(self, obj):
         try:
-            return any([bool(t.is_playable_by_actor) for t in obj.tracks.all()])
+            return any(
+                [bool(getattr(t, "playable_uploads", [])) for t in obj.tracks.all()]
+            )
         except AttributeError:
             return None
 
@@ -145,16 +165,26 @@ class TrackAlbumSerializer(serializers.ModelSerializer):
         )
 
 
+class TrackUploadSerializer(serializers.ModelSerializer):
+    class Meta:
+        model = models.Upload
+        fields = (
+            "uuid",
+            "listen_url",
+            "size",
+            "duration",
+            "bitrate",
+            "mimetype",
+            "extension",
+        )
+
+
 class TrackSerializer(serializers.ModelSerializer):
     artist = ArtistSimpleSerializer(read_only=True)
     album = TrackAlbumSerializer(read_only=True)
     lyrics = serializers.SerializerMethodField()
-    is_playable = serializers.SerializerMethodField()
+    uploads = serializers.SerializerMethodField()
     listen_url = serializers.SerializerMethodField()
-    duration = serializers.SerializerMethodField()
-    bitrate = serializers.SerializerMethodField()
-    size = serializers.SerializerMethodField()
-    mimetype = serializers.SerializerMethodField()
 
     class Meta:
         model = models.Track
@@ -166,13 +196,12 @@ class TrackSerializer(serializers.ModelSerializer):
             "artist",
             "creation_date",
             "position",
+            "disc_number",
             "lyrics",
-            "is_playable",
+            "uploads",
             "listen_url",
-            "duration",
-            "bitrate",
-            "size",
-            "mimetype",
+            "copyright",
+            "license",
         )
 
     def get_lyrics(self, obj):
@@ -181,37 +210,12 @@ class TrackSerializer(serializers.ModelSerializer):
     def get_listen_url(self, obj):
         return obj.listen_url
 
-    def get_is_playable(self, obj):
-        try:
-            return bool(obj.is_playable_by_actor)
-        except AttributeError:
-            return None
-
-    def get_duration(self, obj):
-        try:
-            return obj.duration
-        except AttributeError:
-            return None
-
-    def get_bitrate(self, obj):
-        try:
-            return obj.bitrate
-        except AttributeError:
-            return None
-
-    def get_size(self, obj):
-        try:
-            return obj.size
-        except AttributeError:
-            return None
-
-    def get_mimetype(self, obj):
-        try:
-            return obj.mimetype
-        except AttributeError:
-            return None
+    def get_uploads(self, obj):
+        uploads = getattr(obj, "playable_uploads", [])
+        return TrackUploadSerializer(uploads, many=True).data
 
 
+@common_serializers.track_fields_for_update("name", "description", "privacy_level")
 class LibraryForOwnerSerializer(serializers.ModelSerializer):
     uploads_count = serializers.SerializerMethodField()
     size = serializers.SerializerMethodField()
@@ -236,6 +240,11 @@ class LibraryForOwnerSerializer(serializers.ModelSerializer):
     def get_size(self, o):
         return getattr(o, "_size", 0)
 
+    def on_updated_fields(self, obj, before, after):
+        routes.outbox.dispatch(
+            {"type": "Update", "object": {"type": "Library"}}, context={"library": obj}
+        )
+
 
 class UploadSerializer(serializers.ModelSerializer):
     track = TrackSerializer(required=False, allow_null=True)
@@ -376,3 +385,100 @@ class TrackActivitySerializer(activity_serializers.ModelSerializer):
 
     def get_type(self, obj):
         return "Audio"
+
+
+class OembedSerializer(serializers.Serializer):
+    format = serializers.ChoiceField(choices=["json"])
+    url = serializers.URLField()
+    maxheight = serializers.IntegerField(required=False)
+    maxwidth = serializers.IntegerField(required=False)
+
+    def validate(self, validated_data):
+        try:
+            match = common_utils.spa_resolve(
+                urllib.parse.urlparse(validated_data["url"]).path
+            )
+        except urls.exceptions.Resolver404:
+            raise serializers.ValidationError(
+                "Invalid URL {}".format(validated_data["url"])
+            )
+        data = {
+            "version": "1.0",
+            "type": "rich",
+            "provider_name": settings.APP_NAME,
+            "provider_url": settings.FUNKWHALE_URL,
+            "height": validated_data.get("maxheight") or 400,
+            "width": validated_data.get("maxwidth") or 600,
+        }
+        embed_id = None
+        embed_type = None
+        if match.url_name == "library_track":
+            qs = models.Track.objects.select_related("artist", "album__artist").filter(
+                pk=int(match.kwargs["pk"])
+            )
+            try:
+                track = qs.get()
+            except models.Track.DoesNotExist:
+                raise serializers.ValidationError(
+                    "No track matching id {}".format(match.kwargs["pk"])
+                )
+            embed_type = "track"
+            embed_id = track.pk
+            data["title"] = "{} by {}".format(track.title, track.artist.name)
+            if track.album.cover:
+                data["thumbnail_url"] = federation_utils.full_url(
+                    track.album.cover.crop["400x400"].url
+                )
+                data["thumbnail_width"] = 400
+                data["thumbnail_height"] = 400
+            data["description"] = track.full_name
+            data["author_name"] = track.artist.name
+            data["height"] = 150
+            data["author_url"] = federation_utils.full_url(
+                common_utils.spa_reverse(
+                    "library_artist", kwargs={"pk": track.artist.pk}
+                )
+            )
+        elif match.url_name == "library_album":
+            qs = models.Album.objects.select_related("artist").filter(
+                pk=int(match.kwargs["pk"])
+            )
+            try:
+                album = qs.get()
+            except models.Album.DoesNotExist:
+                raise serializers.ValidationError(
+                    "No album matching id {}".format(match.kwargs["pk"])
+                )
+            embed_type = "album"
+            embed_id = album.pk
+            if album.cover:
+                data["thumbnail_url"] = federation_utils.full_url(
+                    album.cover.crop["400x400"].url
+                )
+                data["thumbnail_width"] = 400
+                data["thumbnail_height"] = 400
+            data["title"] = "{} by {}".format(album.title, album.artist.name)
+            data["description"] = "{} by {}".format(album.title, album.artist.name)
+            data["author_name"] = album.artist.name
+            data["height"] = 400
+            data["author_url"] = federation_utils.full_url(
+                common_utils.spa_reverse(
+                    "library_artist", kwargs={"pk": album.artist.pk}
+                )
+            )
+        else:
+            raise serializers.ValidationError(
+                "Unsupported url: {}".format(validated_data["url"])
+            )
+        data[
+            "html"
+        ] = '<iframe width="{}" height="{}" scrolling="no" frameborder="no" src="{}"></iframe>'.format(
+            data["width"],
+            data["height"],
+            settings.FUNKWHALE_EMBED_URL
+            + "?type={}&id={}".format(embed_type, embed_id),
+        )
+        return data
+
+    def create(self, data):
+        return data
diff --git a/api/funkwhale_api/music/spa_views.py b/api/funkwhale_api/music/spa_views.py
new file mode 100644
index 0000000000000000000000000000000000000000..e71612caefd427578936e4285ba7bc9e6acd6cbb
--- /dev/null
+++ b/api/funkwhale_api/music/spa_views.py
@@ -0,0 +1,168 @@
+import urllib.parse
+
+from django.conf import settings
+from django.urls import reverse
+
+from funkwhale_api.common import utils
+
+from . import models
+
+
+def library_track(request, pk):
+    queryset = models.Track.objects.filter(pk=pk).select_related("album", "artist")
+    try:
+        obj = queryset.get()
+    except models.Track.DoesNotExist:
+        return []
+    track_url = utils.join_url(
+        settings.FUNKWHALE_URL,
+        utils.spa_reverse("library_track", kwargs={"pk": obj.pk}),
+    )
+    metas = [
+        {"tag": "meta", "property": "og:url", "content": track_url},
+        {"tag": "meta", "property": "og:title", "content": obj.title},
+        {"tag": "meta", "property": "og:type", "content": "music.song"},
+        {"tag": "meta", "property": "music:album:disc", "content": obj.disc_number},
+        {"tag": "meta", "property": "music:album:track", "content": obj.position},
+        {
+            "tag": "meta",
+            "property": "music:musician",
+            "content": utils.join_url(
+                settings.FUNKWHALE_URL,
+                utils.spa_reverse("library_artist", kwargs={"pk": obj.artist.pk}),
+            ),
+        },
+        {
+            "tag": "meta",
+            "property": "music:album",
+            "content": utils.join_url(
+                settings.FUNKWHALE_URL,
+                utils.spa_reverse("library_album", kwargs={"pk": obj.album.pk}),
+            ),
+        },
+    ]
+    if obj.album.cover:
+        metas.append(
+            {
+                "tag": "meta",
+                "property": "og:image",
+                "content": utils.join_url(
+                    settings.FUNKWHALE_URL, obj.album.cover.crop["400x400"].url
+                ),
+            }
+        )
+
+    if obj.uploads.playable_by(None).exists():
+        metas.append(
+            {
+                "tag": "meta",
+                "property": "og:audio",
+                "content": utils.join_url(settings.FUNKWHALE_URL, obj.listen_url),
+            }
+        )
+
+        metas.append(
+            {
+                "tag": "link",
+                "rel": "alternate",
+                "type": "application/json+oembed",
+                "href": (
+                    utils.join_url(settings.FUNKWHALE_URL, reverse("api:v1:oembed"))
+                    + "?format=json&url={}".format(urllib.parse.quote_plus(track_url))
+                ),
+            }
+        )
+    return metas
+
+
+def library_album(request, pk):
+    queryset = models.Album.objects.filter(pk=pk).select_related("artist")
+    try:
+        obj = queryset.get()
+    except models.Album.DoesNotExist:
+        return []
+    album_url = utils.join_url(
+        settings.FUNKWHALE_URL,
+        utils.spa_reverse("library_album", kwargs={"pk": obj.pk}),
+    )
+    metas = [
+        {"tag": "meta", "property": "og:url", "content": album_url},
+        {"tag": "meta", "property": "og:title", "content": obj.title},
+        {"tag": "meta", "property": "og:type", "content": "music.album"},
+        {
+            "tag": "meta",
+            "property": "music:musician",
+            "content": utils.join_url(
+                settings.FUNKWHALE_URL,
+                utils.spa_reverse("library_artist", kwargs={"pk": obj.artist.pk}),
+            ),
+        },
+    ]
+
+    if obj.release_date:
+        metas.append(
+            {
+                "tag": "meta",
+                "property": "music:release_date",
+                "content": str(obj.release_date),
+            }
+        )
+
+    if obj.cover:
+        metas.append(
+            {
+                "tag": "meta",
+                "property": "og:image",
+                "content": utils.join_url(
+                    settings.FUNKWHALE_URL, obj.cover.crop["400x400"].url
+                ),
+            }
+        )
+
+    if models.Upload.objects.filter(track__album=obj).playable_by(None).exists():
+        metas.append(
+            {
+                "tag": "link",
+                "rel": "alternate",
+                "type": "application/json+oembed",
+                "href": (
+                    utils.join_url(settings.FUNKWHALE_URL, reverse("api:v1:oembed"))
+                    + "?format=json&url={}".format(urllib.parse.quote_plus(album_url))
+                ),
+            }
+        )
+    return metas
+
+
+def library_artist(request, pk):
+    queryset = models.Artist.objects.filter(pk=pk)
+    try:
+        obj = queryset.get()
+    except models.Artist.DoesNotExist:
+        return []
+    artist_url = utils.join_url(
+        settings.FUNKWHALE_URL,
+        utils.spa_reverse("library_artist", kwargs={"pk": obj.pk}),
+    )
+    # we use latest album's cover as artist image
+    latest_album = (
+        obj.albums.exclude(cover="").exclude(cover=None).order_by("release_date").last()
+    )
+    metas = [
+        {"tag": "meta", "property": "og:url", "content": artist_url},
+        {"tag": "meta", "property": "og:title", "content": obj.name},
+        {"tag": "meta", "property": "og:type", "content": "profile"},
+    ]
+
+    if latest_album and latest_album.cover:
+        metas.append(
+            {
+                "tag": "meta",
+                "property": "og:image",
+                "content": utils.join_url(
+                    settings.FUNKWHALE_URL, latest_album.cover.crop["400x400"].url
+                ),
+            }
+        )
+
+    return metas
diff --git a/api/funkwhale_api/music/tasks.py b/api/funkwhale_api/music/tasks.py
index d96471b961c5fcfe0efa5bf1809f0e93f7106fb8..76bc3897f437050297f12961bd9de551fc5460d1 100644
--- a/api/funkwhale_api/music/tasks.py
+++ b/api/funkwhale_api/music/tasks.py
@@ -1,4 +1,5 @@
 import collections
+import datetime
 import logging
 import os
 
@@ -10,11 +11,12 @@ from django.dispatch import receiver
 from musicbrainzngs import ResponseError
 from requests.exceptions import RequestException
 
-from funkwhale_api.common import channels
+from funkwhale_api.common import channels, preferences
 from funkwhale_api.federation import routes
 from funkwhale_api.federation import library as lb
 from funkwhale_api.taskapp import celery
 
+from . import licenses
 from . import lyrics as lyrics_utils
 from . import models
 from . import metadata
@@ -189,7 +191,7 @@ def process_upload(upload):
             final_metadata = collections.ChainMap(
                 additional_data, import_metadata, file_metadata
             )
-            additional_data["cover_data"] = m.get_picture("cover_front")
+            additional_data["cover_data"] = m.get_picture("cover_front", "other")
         additional_data["upload_source"] = upload.source
         track = get_track_from_import_metadata(final_metadata)
     except UploadImportError as e:
@@ -272,9 +274,12 @@ def federation_audio_track_to_metadata(payload):
         "title": payload["name"],
         "album": payload["album"]["name"],
         "track_number": payload["position"],
+        "disc_number": payload.get("disc"),
         "artist": payload["artists"][0]["name"],
         "album_artist": payload["album"]["artists"][0]["name"],
         "date": payload["album"].get("released"),
+        "license": payload.get("license"),
+        "copyright": payload.get("copyright"),
         # musicbrainz
         "musicbrainz_recordingid": str(musicbrainz_recordingid)
         if musicbrainz_recordingid
@@ -493,8 +498,11 @@ def get_track_from_import_metadata(data):
         "mbid": track_mbid,
         "artist": artist,
         "position": track_number,
+        "disc_number": data.get("disc_number"),
         "fid": track_fid,
         "from_activity_id": from_activity_id,
+        "license": licenses.match(data.get("license"), data.get("copyright")),
+        "copyright": data.get("copyright"),
     }
     if data.get("fdate"):
         defaults["creation_date"] = data.get("fdate")
@@ -526,3 +534,19 @@ def broadcast_import_status_update_to_owner(old_status, new_status, upload, **kw
             },
         },
     )
+
+
+@celery.app.task(name="music.clean_transcoding_cache")
+def clean_transcoding_cache():
+    delay = preferences.get("music__transcoding_cache_duration")
+    if delay < 1:
+        return  # cache clearing disabled
+    limit = timezone.now() - datetime.timedelta(minutes=delay)
+    candidates = (
+        models.UploadVersion.objects.filter(
+            (Q(accessed_date__lt=limit) | Q(accessed_date=None))
+        )
+        .only("audio_file", "id")
+        .order_by("id")
+    )
+    return candidates.delete()
diff --git a/api/funkwhale_api/music/utils.py b/api/funkwhale_api/music/utils.py
index 6da9ad9493647ad398a35e27faa8f7d04fb0eb7f..ae5cda750820512d53a62b2090c85c56a30001dc 100644
--- a/api/funkwhale_api/music/utils.py
+++ b/api/funkwhale_api/music/utils.py
@@ -2,6 +2,7 @@ import mimetypes
 
 import magic
 import mutagen
+import pydub
 
 from funkwhale_api.common.search import normalize_query, get_query  # noqa
 
@@ -32,6 +33,7 @@ AUDIO_EXTENSIONS_AND_MIMETYPE = [
     ("ogg", "audio/ogg"),
     ("mp3", "audio/mpeg"),
     ("flac", "audio/x-flac"),
+    ("flac", "audio/flac"),
 ]
 
 EXTENSION_TO_MIMETYPE = {ext: mt for ext, mt in AUDIO_EXTENSIONS_AND_MIMETYPE}
@@ -68,3 +70,10 @@ def get_actor_from_request(request):
         actor = request.user.actor
 
     return actor
+
+
+def transcode_file(input, output, input_format, output_format, **kwargs):
+    with input.open("rb"):
+        audio = pydub.AudioSegment.from_file(input, format=input_format)
+    with output.open("wb"):
+        return audio.export(output, format=output_format, **kwargs)
diff --git a/api/funkwhale_api/music/views.py b/api/funkwhale_api/music/views.py
index 871dfc920fc052e9e05a85b30c66796ba629a1c2..5de07ca947edb23ac3a7334c6f94c294e1b64a15 100644
--- a/api/funkwhale_api/music/views.py
+++ b/api/funkwhale_api/music/views.py
@@ -11,41 +11,42 @@ from rest_framework import mixins
 from rest_framework import permissions
 from rest_framework import settings as rest_settings
 from rest_framework import views, viewsets
-from rest_framework.decorators import detail_route, list_route
+from rest_framework.decorators import action
 from rest_framework.response import Response
 from taggit.models import Tag
 
-from funkwhale_api.common import utils as common_utils
 from funkwhale_api.common import permissions as common_permissions
+from funkwhale_api.common import preferences
+from funkwhale_api.common import utils as common_utils
 from funkwhale_api.federation.authentication import SignatureAuthentication
 from funkwhale_api.federation import api_serializers as federation_api_serializers
 from funkwhale_api.federation import routes
 
-from . import filters, models, serializers, tasks, utils
+from . import filters, licenses, models, serializers, tasks, utils
 
 logger = logging.getLogger(__name__)
 
 
 def get_libraries(filter_uploads):
-    def view(self, request, *args, **kwargs):
+    def libraries(self, request, *args, **kwargs):
         obj = self.get_object()
         actor = utils.get_actor_from_request(request)
         uploads = models.Upload.objects.all()
         uploads = filter_uploads(obj, uploads)
         uploads = uploads.playable_by(actor)
-        libraries = models.Library.objects.filter(
+        qs = models.Library.objects.filter(
             pk__in=uploads.values_list("library", flat=True)
-        )
-        libraries = libraries.select_related("actor")
-        page = self.paginate_queryset(libraries)
+        ).annotate(_uploads_count=Count("uploads"))
+        qs = qs.select_related("actor")
+        page = self.paginate_queryset(qs)
         if page is not None:
             serializer = federation_api_serializers.LibrarySerializer(page, many=True)
             return self.get_paginated_response(serializer.data)
 
-        serializer = federation_api_serializers.LibrarySerializer(libraries, many=True)
+        serializer = federation_api_serializers.LibrarySerializer(qs, many=True)
         return Response(serializer.data)
 
-    return view
+    return libraries
 
 
 class TagViewSetMixin(object):
@@ -61,7 +62,7 @@ class ArtistViewSet(viewsets.ReadOnlyModelViewSet):
     queryset = models.Artist.objects.all()
     serializer_class = serializers.ArtistWithAlbumsSerializer
     permission_classes = [common_permissions.ConditionalAuthentication]
-    filter_class = filters.ArtistFilter
+    filterset_class = filters.ArtistFilter
     ordering_fields = ("id", "name", "creation_date")
 
     def get_queryset(self):
@@ -70,9 +71,9 @@ class ArtistViewSet(viewsets.ReadOnlyModelViewSet):
         albums = albums.annotate_playable_by_actor(
             utils.get_actor_from_request(self.request)
         )
-        return queryset.prefetch_related(Prefetch("albums", queryset=albums)).distinct()
+        return queryset.prefetch_related(Prefetch("albums", queryset=albums))
 
-    libraries = detail_route(methods=["get"])(
+    libraries = action(methods=["get"], detail=True)(
         get_libraries(
             filter_uploads=lambda o, uploads: uploads.filter(
                 Q(track__artist=o) | Q(track__album__artist=o)
@@ -88,25 +89,19 @@ class AlbumViewSet(viewsets.ReadOnlyModelViewSet):
     serializer_class = serializers.AlbumSerializer
     permission_classes = [common_permissions.ConditionalAuthentication]
     ordering_fields = ("creation_date", "release_date", "title")
-    filter_class = filters.AlbumFilter
+    filterset_class = filters.AlbumFilter
 
     def get_queryset(self):
         queryset = super().get_queryset()
-        tracks = models.Track.objects.annotate_playable_by_actor(
-            utils.get_actor_from_request(self.request)
-        ).select_related("artist")
-        if (
-            hasattr(self, "kwargs")
-            and self.kwargs
-            and self.request.method.lower() == "get"
-        ):
-            # we are detailing a single album, so we can add the overhead
-            # to fetch additional data
-            tracks = tracks.annotate_duration()
+        tracks = (
+            models.Track.objects.select_related("artist")
+            .with_playable_uploads(utils.get_actor_from_request(self.request))
+            .order_for_album()
+        )
         qs = queryset.prefetch_related(Prefetch("tracks", queryset=tracks))
-        return qs.distinct()
+        return qs
 
-    libraries = detail_route(methods=["get"])(
+    libraries = action(methods=["get"], detail=True)(
         get_libraries(filter_uploads=lambda o, uploads: uploads.filter(track__album=o))
     )
 
@@ -149,7 +144,9 @@ class LibraryViewSet(
         )
         instance.delete()
 
-    @detail_route(methods=["get"])
+    follows = action
+
+    @action(methods=["get"], detail=True)
     @transaction.non_atomic_requests
     def follows(self, request, *args, **kwargs):
         library = self.get_object()
@@ -177,7 +174,7 @@ class TrackViewSet(TagViewSetMixin, viewsets.ReadOnlyModelViewSet):
     queryset = models.Track.objects.all().for_nested_serialization()
     serializer_class = serializers.TrackSerializer
     permission_classes = [common_permissions.ConditionalAuthentication]
-    filter_class = filters.TrackFilter
+    filterset_class = filters.TrackFilter
     ordering_fields = (
         "creation_date",
         "title",
@@ -193,20 +190,12 @@ class TrackViewSet(TagViewSetMixin, viewsets.ReadOnlyModelViewSet):
         if user.is_authenticated and filter_favorites == "true":
             queryset = queryset.filter(track_favorites__user=user)
 
-        queryset = queryset.annotate_playable_by_actor(
+        queryset = queryset.with_playable_uploads(
             utils.get_actor_from_request(self.request)
-        ).annotate_duration()
-        if (
-            hasattr(self, "kwargs")
-            and self.kwargs
-            and self.request.method.lower() == "get"
-        ):
-            # we are detailing a single track, so we can add the overhead
-            # to fetch additional data
-            queryset = queryset.annotate_file_data()
-        return queryset.distinct()
-
-    @detail_route(methods=["get"])
+        )
+        return queryset
+
+    @action(methods=["get"], detail=True)
     @transaction.non_atomic_requests
     def lyrics(self, request, *args, **kwargs):
         try:
@@ -231,7 +220,7 @@ class TrackViewSet(TagViewSetMixin, viewsets.ReadOnlyModelViewSet):
         serializer = serializers.LyricsSerializer(lyrics)
         return Response(serializer.data)
 
-    libraries = detail_route(methods=["get"])(
+    libraries = action(methods=["get"], detail=True)(
         get_libraries(filter_uploads=lambda o, uploads: uploads.filter(track=o))
     )
 
@@ -267,12 +256,31 @@ def get_file_path(audio_file):
         return path.encode("utf-8")
 
 
-def handle_serve(upload, user):
+def should_transcode(upload, format):
+    if not preferences.get("music__transcoding_enabled"):
+        return False
+    if format is None:
+        return False
+    if format not in utils.EXTENSION_TO_MIMETYPE:
+        # format should match supported formats
+        return False
+    if upload.mimetype is None:
+        # upload should have a mimetype, otherwise we cannot transcode
+        return False
+    if upload.mimetype == utils.EXTENSION_TO_MIMETYPE[format]:
+        # requested format sould be different than upload mimetype, otherwise
+        # there is no need to transcode
+        return False
+    return True
+
+
+def handle_serve(upload, user, format=None):
     f = upload
     # we update the accessed_date
-    f.accessed_date = timezone.now()
-    f.save(update_fields=["accessed_date"])
-
+    now = timezone.now()
+    upload.accessed_date = now
+    upload.save(update_fields=["accessed_date"])
+    f = upload
     if f.audio_file:
         file_path = get_file_path(f.audio_file)
 
@@ -298,6 +306,14 @@ def handle_serve(upload, user):
     elif f.source and f.source.startswith("file://"):
         file_path = get_file_path(f.source.replace("file://", "", 1))
     mt = f.mimetype
+
+    if should_transcode(f, format):
+        transcoded_version = upload.get_transcoded_version(format)
+        transcoded_version.accessed_date = now
+        transcoded_version.save(update_fields=["accessed_date"])
+        f = transcoded_version
+        file_path = get_file_path(f.audio_file)
+        mt = f.mimetype
     if mt:
         response = Response(content_type=mt)
     else:
@@ -337,7 +353,8 @@ class ListenViewSet(mixins.RetrieveModelMixin, viewsets.GenericViewSet):
         if not upload:
             return Response(status=404)
 
-        return handle_serve(upload, user=request.user)
+        format = request.GET.get("to")
+        return handle_serve(upload, user=request.user, format=format)
 
 
 class UploadViewSet(
@@ -360,7 +377,7 @@ class UploadViewSet(
     ]
     owner_field = "library.actor.user"
     owner_checks = ["read", "write"]
-    filter_class = filters.UploadFilter
+    filterset_class = filters.UploadFilter
     ordering_fields = (
         "creation_date",
         "import_date",
@@ -373,7 +390,7 @@ class UploadViewSet(
         qs = super().get_queryset()
         return qs.filter(library__actor=self.request.user.actor)
 
-    @list_route(methods=["post"])
+    @action(methods=["post"], detail=False)
     def action(self, request, *args, **kwargs):
         queryset = self.get_queryset()
         serializer = serializers.UploadActionSerializer(request.data, queryset=queryset)
@@ -433,28 +450,29 @@ class Search(views.APIView):
             "artist__name__unaccent",
         ]
         query_obj = utils.get_query(query, search_fields)
-        return (
+        qs = (
             models.Track.objects.all()
             .filter(query_obj)
             .select_related("artist", "album__artist")
-        )[: self.max_results]
+        )
+        return common_utils.order_for_search(qs, "title")[: self.max_results]
 
     def get_albums(self, query):
         search_fields = ["mbid", "title__unaccent", "artist__name__unaccent"]
         query_obj = utils.get_query(query, search_fields)
-        return (
+        qs = (
             models.Album.objects.all()
             .filter(query_obj)
             .select_related()
-            .prefetch_related("tracks")
-        )[: self.max_results]
+            .prefetch_related("tracks__artist")
+        )
+        return common_utils.order_for_search(qs, "title")[: self.max_results]
 
     def get_artists(self, query):
         search_fields = ["mbid", "name__unaccent"]
         query_obj = utils.get_query(query, search_fields)
-        return (models.Artist.objects.all().filter(query_obj).with_albums())[
-            : self.max_results
-        ]
+        qs = models.Artist.objects.all().filter(query_obj).with_albums()
+        return common_utils.order_for_search(qs, "name")[: self.max_results]
 
     def get_tags(self, query):
         search_fields = ["slug", "name__unaccent"]
@@ -468,3 +486,38 @@ class Search(views.APIView):
         )
 
         return qs.filter(query_obj)[: self.max_results]
+
+
+class LicenseViewSet(viewsets.ReadOnlyModelViewSet):
+    permission_classes = [common_permissions.ConditionalAuthentication]
+    serializer_class = serializers.LicenseSerializer
+    queryset = models.License.objects.all().order_by("code")
+    lookup_value_regex = ".*"
+
+    def get_queryset(self):
+        # ensure our licenses are up to date in DB
+        licenses.load(licenses.LICENSES)
+        return super().get_queryset()
+
+    def get_serializer(self, *args, **kwargs):
+        if len(args) == 0:
+            return super().get_serializer(*args, **kwargs)
+
+        # our serializer works with license dict, not License instances
+        # so we pass those instead
+        instance_or_qs = args[0]
+        try:
+            first_arg = instance_or_qs.conf
+        except AttributeError:
+            first_arg = [i.conf for i in instance_or_qs if i.conf]
+        return super().get_serializer(*((first_arg,) + args[1:]), **kwargs)
+
+
+class OembedView(views.APIView):
+    permission_classes = [common_permissions.ConditionalAuthentication]
+
+    def get(self, request, *args, **kwargs):
+        serializer = serializers.OembedSerializer(data=request.GET)
+        serializer.is_valid(raise_exception=True)
+        embed_data = serializer.save()
+        return Response(embed_data)
diff --git a/api/funkwhale_api/musicbrainz/views.py b/api/funkwhale_api/musicbrainz/views.py
index b6f009dca7531dd932f9d5c32c6e3ae1f65cb03e..43d2857844c3807de8998acd869e8fe449cbe40f 100644
--- a/api/funkwhale_api/musicbrainz/views.py
+++ b/api/funkwhale_api/musicbrainz/views.py
@@ -1,5 +1,5 @@
 from rest_framework import viewsets
-from rest_framework.decorators import list_route
+from rest_framework.decorators import action
 from rest_framework.response import Response
 from rest_framework.views import APIView
 
@@ -47,19 +47,19 @@ class ReleaseBrowse(APIView):
 class SearchViewSet(viewsets.ViewSet):
     permission_classes = [ConditionalAuthentication]
 
-    @list_route(methods=["get"])
+    @action(methods=["get"], detail=False)
     def recordings(self, request, *args, **kwargs):
         query = request.GET["query"]
         results = api.recordings.search(query)
         return Response(results)
 
-    @list_route(methods=["get"])
+    @action(methods=["get"], detail=False)
     def releases(self, request, *args, **kwargs):
         query = request.GET["query"]
         results = api.releases.search(query)
         return Response(results)
 
-    @list_route(methods=["get"])
+    @action(methods=["get"], detail=False)
     def artists(self, request, *args, **kwargs):
         query = request.GET["query"]
         results = api.artists.search(query)
diff --git a/api/funkwhale_api/playlists/factories.py b/api/funkwhale_api/playlists/factories.py
index ff031945a57163a633f8863487a6f68299c08cd5..acfde10cdf90bf8ae2c2859d16d0c0be2f3355e7 100644
--- a/api/funkwhale_api/playlists/factories.py
+++ b/api/funkwhale_api/playlists/factories.py
@@ -1,12 +1,12 @@
 import factory
 
-from funkwhale_api.factories import registry
+from funkwhale_api.factories import registry, NoUpdateOnCreate
 from funkwhale_api.music.factories import TrackFactory
 from funkwhale_api.users.factories import UserFactory
 
 
 @registry.register
-class PlaylistFactory(factory.django.DjangoModelFactory):
+class PlaylistFactory(NoUpdateOnCreate, factory.django.DjangoModelFactory):
     name = factory.Faker("name")
     user = factory.SubFactory(UserFactory)
 
@@ -15,7 +15,7 @@ class PlaylistFactory(factory.django.DjangoModelFactory):
 
 
 @registry.register
-class PlaylistTrackFactory(factory.django.DjangoModelFactory):
+class PlaylistTrackFactory(NoUpdateOnCreate, factory.django.DjangoModelFactory):
     playlist = factory.SubFactory(PlaylistFactory)
     track = factory.SubFactory(TrackFactory)
 
diff --git a/api/funkwhale_api/playlists/filters.py b/api/funkwhale_api/playlists/filters.py
index 1f12521f050cd5bd4d1236bda53df8dbb52ab330..b204df4b0a5ad7fe8cd5936e73bba10e2b928b54 100644
--- a/api/funkwhale_api/playlists/filters.py
+++ b/api/funkwhale_api/playlists/filters.py
@@ -7,8 +7,8 @@ from . import models
 
 
 class PlaylistFilter(filters.FilterSet):
-    q = filters.CharFilter(name="_", method="filter_q")
-    playable = filters.BooleanFilter(name="_", method="filter_playable")
+    q = filters.CharFilter(field_name="_", method="filter_q")
+    playable = filters.BooleanFilter(field_name="_", method="filter_playable")
 
     class Meta:
         model = models.Playlist
diff --git a/api/funkwhale_api/playlists/models.py b/api/funkwhale_api/playlists/models.py
index ac86b97a00848a97718db737ed6bab1be796c02b..1d33388015a80c618628b4923311cab49f15298c 100644
--- a/api/funkwhale_api/playlists/models.py
+++ b/api/funkwhale_api/playlists/models.py
@@ -38,22 +38,21 @@ class PlaylistQuerySet(models.QuerySet):
         )
         return self.prefetch_related(plt_prefetch)
 
-    def annotate_playable_by_actor(self, actor):
-        plts = (
-            PlaylistTrack.objects.playable_by(actor)
-            .filter(playlist=models.OuterRef("id"))
-            .order_by("id")
-            .values("id")[:1]
+    def with_playable_plts(self, actor):
+        return self.prefetch_related(
+            models.Prefetch(
+                "playlist_tracks",
+                queryset=PlaylistTrack.objects.playable_by(actor),
+                to_attr="playable_plts",
+            )
         )
-        subquery = models.Subquery(plts)
-        return self.annotate(is_playable_by_actor=subquery)
 
     def playable_by(self, actor, include=True):
         plts = PlaylistTrack.objects.playable_by(actor, include)
         if include:
-            return self.filter(playlist_tracks__in=plts)
+            return self.filter(playlist_tracks__in=plts).distinct()
         else:
-            return self.exclude(playlist_tracks__in=plts)
+            return self.exclude(playlist_tracks__in=plts).distinct()
 
 
 class Playlist(models.Model):
@@ -148,7 +147,7 @@ class Playlist(models.Model):
 
 class PlaylistTrackQuerySet(models.QuerySet):
     def for_nested_serialization(self, actor=None):
-        tracks = music_models.Track.objects.annotate_playable_by_actor(actor)
+        tracks = music_models.Track.objects.with_playable_uploads(actor)
         tracks = tracks.select_related("artist", "album__artist")
         return self.prefetch_related(
             models.Prefetch("track", queryset=tracks, to_attr="_prefetched_track")
@@ -156,8 +155,8 @@ class PlaylistTrackQuerySet(models.QuerySet):
 
     def annotate_playable_by_actor(self, actor):
         tracks = (
-            music_models.Track.objects.playable_by(actor)
-            .filter(pk=models.OuterRef("track"))
+            music_models.Upload.objects.playable_by(actor)
+            .filter(track__pk=models.OuterRef("track"))
             .order_by("id")
             .values("id")[:1]
         )
@@ -167,9 +166,9 @@ class PlaylistTrackQuerySet(models.QuerySet):
     def playable_by(self, actor, include=True):
         tracks = music_models.Track.objects.playable_by(actor, include)
         if include:
-            return self.filter(track__pk__in=tracks)
+            return self.filter(track__pk__in=tracks).distinct()
         else:
-            return self.exclude(track__pk__in=tracks)
+            return self.exclude(track__pk__in=tracks).distinct()
 
 
 class PlaylistTrack(models.Model):
diff --git a/api/funkwhale_api/playlists/serializers.py b/api/funkwhale_api/playlists/serializers.py
index c1ca84e15be2708b6b328f582eadedd3aed08ce1..b64996640259c03a6394c1353bea641afb31dcf5 100644
--- a/api/funkwhale_api/playlists/serializers.py
+++ b/api/funkwhale_api/playlists/serializers.py
@@ -93,7 +93,7 @@ class PlaylistSerializer(serializers.ModelSerializer):
 
     def get_is_playable(self, obj):
         try:
-            return bool(obj.is_playable_by_actor)
+            return bool(obj.playable_plts)
         except AttributeError:
             return None
 
diff --git a/api/funkwhale_api/playlists/views.py b/api/funkwhale_api/playlists/views.py
index 4934b92a019529542702796d4de71d40144885f8..2f536d7a712f47515dccc55a01d7ddc9fba55a47 100644
--- a/api/funkwhale_api/playlists/views.py
+++ b/api/funkwhale_api/playlists/views.py
@@ -1,7 +1,7 @@
 from django.db import transaction
 from django.db.models import Count
 from rest_framework import exceptions, mixins, viewsets
-from rest_framework.decorators import detail_route
+from rest_framework.decorators import action
 from rest_framework.permissions import IsAuthenticatedOrReadOnly
 from rest_framework.response import Response
 
@@ -33,10 +33,10 @@ class PlaylistViewSet(
         IsAuthenticatedOrReadOnly,
     ]
     owner_checks = ["write"]
-    filter_class = filters.PlaylistFilter
+    filterset_class = filters.PlaylistFilter
     ordering_fields = ("id", "name", "creation_date", "modification_date")
 
-    @detail_route(methods=["get"])
+    @action(methods=["get"], detail=True)
     def tracks(self, request, *args, **kwargs):
         playlist = self.get_object()
         plts = playlist.playlist_tracks.all().for_nested_serialization(
@@ -46,7 +46,7 @@ class PlaylistViewSet(
         data = {"count": len(plts), "results": serializer.data}
         return Response(data, status=200)
 
-    @detail_route(methods=["post"])
+    @action(methods=["post"], detail=True)
     @transaction.atomic
     def add(self, request, *args, **kwargs):
         playlist = self.get_object()
@@ -67,7 +67,7 @@ class PlaylistViewSet(
         data = {"count": len(plts), "results": serializer.data}
         return Response(data, status=201)
 
-    @detail_route(methods=["delete"])
+    @action(methods=["delete"], detail=True)
     @transaction.atomic
     def clear(self, request, *args, **kwargs):
         playlist = self.get_object()
@@ -78,7 +78,7 @@ class PlaylistViewSet(
     def get_queryset(self):
         return self.queryset.filter(
             fields.privacy_level_query(self.request.user)
-        ).annotate_playable_by_actor(music_utils.get_actor_from_request(self.request))
+        ).with_playable_plts(music_utils.get_actor_from_request(self.request))
 
     def perform_create(self, serializer):
         return serializer.save(
diff --git a/api/funkwhale_api/providers/acoustid/__init__.py b/api/funkwhale_api/providers/acoustid/__init__.py
deleted file mode 100644
index 558a95bb80fedc6b9c9f192f86ae9a3136d7d8c1..0000000000000000000000000000000000000000
--- a/api/funkwhale_api/providers/acoustid/__init__.py
+++ /dev/null
@@ -1,27 +0,0 @@
-import acoustid
-
-from dynamic_preferences.registries import global_preferences_registry
-
-
-class Client(object):
-    def __init__(self, api_key):
-        self.api_key = api_key
-
-    def match(self, file_path):
-        return acoustid.match(self.api_key, file_path, parse=False)
-
-    def get_best_match(self, file_path):
-        results = self.match(file_path=file_path)
-        MIN_SCORE_FOR_MATCH = 0.8
-        try:
-            rows = results["results"]
-        except KeyError:
-            return
-        for row in rows:
-            if row["score"] >= MIN_SCORE_FOR_MATCH:
-                return row
-
-
-def get_acoustid_client():
-    manager = global_preferences_registry.manager()
-    return Client(api_key=manager["providers_acoustid__api_key"])
diff --git a/api/funkwhale_api/providers/acoustid/dynamic_preferences_registry.py b/api/funkwhale_api/providers/acoustid/dynamic_preferences_registry.py
deleted file mode 100644
index 2411de86add2154645f670491fd0377996ef216c..0000000000000000000000000000000000000000
--- a/api/funkwhale_api/providers/acoustid/dynamic_preferences_registry.py
+++ /dev/null
@@ -1,16 +0,0 @@
-from django import forms
-from dynamic_preferences.registries import global_preferences_registry
-from dynamic_preferences.types import Section, StringPreference
-
-acoustid = Section("providers_acoustid")
-
-
-@global_preferences_registry.register
-class APIKey(StringPreference):
-    section = acoustid
-    name = "api_key"
-    default = ""
-    verbose_name = "Acoustid API key"
-    help_text = "The API key used to query AcoustID. Get one at https://acoustid.org/new-application."
-    widget = forms.PasswordInput
-    field_kwargs = {"required": False}
diff --git a/api/funkwhale_api/radios/factories.py b/api/funkwhale_api/radios/factories.py
index a83c53737a9b174a37fa97ebdb46d13fdea805e5..2ba66483dad5cf63dcbaf1127a5c6f6bd935856d 100644
--- a/api/funkwhale_api/radios/factories.py
+++ b/api/funkwhale_api/radios/factories.py
@@ -1,11 +1,11 @@
 import factory
 
-from funkwhale_api.factories import registry
+from funkwhale_api.factories import registry, NoUpdateOnCreate
 from funkwhale_api.users.factories import UserFactory
 
 
 @registry.register
-class RadioFactory(factory.django.DjangoModelFactory):
+class RadioFactory(NoUpdateOnCreate, factory.django.DjangoModelFactory):
     name = factory.Faker("name")
     description = factory.Faker("paragraphs")
     user = factory.SubFactory(UserFactory)
@@ -16,7 +16,7 @@ class RadioFactory(factory.django.DjangoModelFactory):
 
 
 @registry.register
-class RadioSessionFactory(factory.django.DjangoModelFactory):
+class RadioSessionFactory(NoUpdateOnCreate, factory.django.DjangoModelFactory):
     user = factory.SubFactory(UserFactory)
 
     class Meta:
@@ -24,7 +24,7 @@ class RadioSessionFactory(factory.django.DjangoModelFactory):
 
 
 @registry.register(name="radios.CustomRadioSession")
-class CustomRadioSessionFactory(factory.django.DjangoModelFactory):
+class CustomRadioSessionFactory(NoUpdateOnCreate, factory.django.DjangoModelFactory):
     user = factory.SubFactory(UserFactory)
     radio_type = "custom"
     custom_radio = factory.SubFactory(
diff --git a/api/funkwhale_api/radios/views.py b/api/funkwhale_api/radios/views.py
index fb2c4d855d266fbda530b974f7b725af31d2b7c4..5df0fe287a28f69513f97640f3790bb0cc031018 100644
--- a/api/funkwhale_api/radios/views.py
+++ b/api/funkwhale_api/radios/views.py
@@ -1,6 +1,6 @@
 from django.db.models import Q
 from rest_framework import mixins, permissions, status, viewsets
-from rest_framework.decorators import detail_route, list_route
+from rest_framework.decorators import action
 from rest_framework.response import Response
 
 from funkwhale_api.common import permissions as common_permissions
@@ -23,7 +23,7 @@ class RadioViewSet(
         permissions.IsAuthenticated,
         common_permissions.OwnerPermission,
     ]
-    filter_class = filtersets.RadioFilter
+    filterset_class = filtersets.RadioFilter
     owner_field = "user"
     owner_checks = ["write"]
 
@@ -40,7 +40,7 @@ class RadioViewSet(
     def perform_update(self, serializer):
         return serializer.save(user=self.request.user)
 
-    @detail_route(methods=["get"])
+    @action(methods=["get"], detail=True)
     def tracks(self, request, *args, **kwargs):
         radio = self.get_object()
         tracks = radio.get_candidates().for_nested_serialization()
@@ -50,14 +50,14 @@ class RadioViewSet(
             serializer = TrackSerializer(page, many=True)
             return self.get_paginated_response(serializer.data)
 
-    @list_route(methods=["get"])
+    @action(methods=["get"], detail=False)
     def filters(self, request, *args, **kwargs):
         serializer = serializers.FilterSerializer(
             filters.registry.exposed_filters, many=True
         )
         return Response(serializer.data)
 
-    @list_route(methods=["post"])
+    @action(methods=["post"], detail=False)
     def validate(self, request, *args, **kwargs):
         try:
             f_list = request.data["filters"]
diff --git a/api/funkwhale_api/subsonic/filters.py b/api/funkwhale_api/subsonic/filters.py
index a354e23f111fd354d80bac3e4929083bf2b599b9..a3c251e6684b9df0dd20943c081474d115dc67ca 100644
--- a/api/funkwhale_api/subsonic/filters.py
+++ b/api/funkwhale_api/subsonic/filters.py
@@ -4,7 +4,7 @@ from funkwhale_api.music import models as music_models
 
 
 class AlbumList2FilterSet(filters.FilterSet):
-    type = filters.CharFilter(name="_", method="filter_type")
+    type = filters.CharFilter(field_name="_", method="filter_type")
 
     class Meta:
         model = music_models.Album
diff --git a/api/funkwhale_api/subsonic/renderers.py b/api/funkwhale_api/subsonic/renderers.py
index fac12d6c1928f9e429944a98e1ca81ee3381b0ef..e4b6470511378bbff21d824896a4210dd84c6c43 100644
--- a/api/funkwhale_api/subsonic/renderers.py
+++ b/api/funkwhale_api/subsonic/renderers.py
@@ -2,17 +2,30 @@ import xml.etree.ElementTree as ET
 
 from rest_framework import renderers
 
+import funkwhale_api
+
+
+def structure_payload(data):
+    payload = {
+        "status": "ok",
+        "version": "1.16.0",
+        "type": "funkwhale",
+        "funkwhaleVersion": funkwhale_api.__version__,
+    }
+    payload.update(data)
+    if "detail" in payload:
+        payload["error"] = {"code": 0, "message": payload.pop("detail")}
+    if "error" in payload:
+        payload["status"] = "failed"
+    return payload
+
 
 class SubsonicJSONRenderer(renderers.JSONRenderer):
     def render(self, data, accepted_media_type=None, renderer_context=None):
         if not data:
             # when stream view is called, we don't have any data
             return super().render(data, accepted_media_type, renderer_context)
-        final = {"subsonic-response": {"status": "ok", "version": "1.16.0"}}
-        final["subsonic-response"].update(data)
-        if "error" in final:
-            # an error was returned
-            final["subsonic-response"]["status"] = "failed"
+        final = {"subsonic-response": structure_payload(data)}
         return super().render(final, accepted_media_type, renderer_context)
 
 
@@ -23,15 +36,8 @@ class SubsonicXMLRenderer(renderers.JSONRenderer):
         if not data:
             # when stream view is called, we don't have any data
             return super().render(data, accepted_media_type, renderer_context)
-        final = {
-            "xmlns": "http://subsonic.org/restapi",
-            "status": "ok",
-            "version": "1.16.0",
-        }
-        final.update(data)
-        if "error" in final:
-            # an error was returned
-            final["status"] = "failed"
+        final = structure_payload(data)
+        final["xmlns"] = "http://subsonic.org/restapi"
         tree = dict_to_xml_tree("subsonic-response", final)
         return b'<?xml version="1.0" encoding="UTF-8"?>\n' + ET.tostring(
             tree, encoding="utf-8"
diff --git a/api/funkwhale_api/subsonic/serializers.py b/api/funkwhale_api/subsonic/serializers.py
index 35b17864153e57d0d22a521d3dbe74a24e0a1b39..023e40cac29a89168e497977543f5995dece73b5 100644
--- a/api/funkwhale_api/subsonic/serializers.py
+++ b/api/funkwhale_api/subsonic/serializers.py
@@ -226,6 +226,30 @@ def get_music_directory_data(artist):
     return data
 
 
+def get_folders(user):
+    return []
+
+
+def get_user_detail_data(user):
+    return {
+        "username": user.username,
+        "email": user.email,
+        "scrobblingEnabled": "true",
+        "adminRole": "false",
+        "settingsRole": "false",
+        "commentRole": "false",
+        "podcastRole": "false",
+        "coverArtRole": "false",
+        "shareRole": "false",
+        "uploadRole": "true",
+        "downloadRole": "true",
+        "playlistRole": "true",
+        "streamRole": "true",
+        "jukeboxRole": "true",
+        "folder": [f["id"] for f in get_folders(user)],
+    }
+
+
 class ScrobbleSerializer(serializers.Serializer):
     submission = serializers.BooleanField(default=True, required=False)
     id = serializers.PrimaryKeyRelatedField(
diff --git a/api/funkwhale_api/subsonic/views.py b/api/funkwhale_api/subsonic/views.py
index 7ca9b13a897d7e41bf0c5b42b6f865fac8c8b72d..31110dbe694f24739badd806231c73328c21f6d2 100644
--- a/api/funkwhale_api/subsonic/views.py
+++ b/api/funkwhale_api/subsonic/views.py
@@ -1,20 +1,23 @@
 import datetime
+import functools
 
 from django.conf import settings
 from django.utils import timezone
 from rest_framework import exceptions
 from rest_framework import permissions as rest_permissions
 from rest_framework import renderers, response, viewsets
-from rest_framework.decorators import list_route
+from rest_framework.decorators import action
 from rest_framework.serializers import ValidationError
 
+import funkwhale_api
 from funkwhale_api.activity import record
-from funkwhale_api.common import preferences
+from funkwhale_api.common import preferences, utils as common_utils
 from funkwhale_api.favorites.models import TrackFavorite
 from funkwhale_api.music import models as music_models
 from funkwhale_api.music import utils
 from funkwhale_api.music import views as music_views
 from funkwhale_api.playlists import models as playlists_models
+from funkwhale_api.users import models as users_models
 
 from . import authentication, filters, negotiation, serializers
 
@@ -23,6 +26,7 @@ def find_object(
     queryset, model_field="pk", field="id", cast=int, filter_playable=False
 ):
     def decorator(func):
+        @functools.wraps(func)
         def inner(self, request, *args, **kwargs):
             data = request.GET or request.POST
             try:
@@ -55,7 +59,7 @@ def find_object(
 
             if filter_playable:
                 actor = utils.get_actor_from_request(request)
-                qs = qs.playable_by(actor).distinct()
+                qs = qs.playable_by(actor)
 
             try:
                 obj = qs.get(**{model_field: value})
@@ -95,7 +99,10 @@ class SubsonicViewSet(viewsets.GenericViewSet):
     def handle_exception(self, exc):
         # subsonic API sends 200 status code with custom error
         # codes in the payload
-        mapping = {exceptions.AuthenticationFailed: (40, "Wrong username or password.")}
+        mapping = {
+            exceptions.AuthenticationFailed: (40, "Wrong username or password."),
+            exceptions.NotAuthenticated: (10, "Required parameter is missing."),
+        }
         payload = {"status": "failed"}
         if exc.__class__ in mapping:
             code, message = mapping[exc.__class__]
@@ -105,12 +112,13 @@ class SubsonicViewSet(viewsets.GenericViewSet):
 
         return response.Response(payload, status=200)
 
-    @list_route(methods=["get", "post"], permission_classes=[])
+    @action(detail=False, methods=["get", "post"], permission_classes=[])
     def ping(self, request, *args, **kwargs):
         data = {"status": "ok", "version": "1.16.0"}
         return response.Response(data, status=200)
 
-    @list_route(
+    @action(
+        detail=False,
         methods=["get", "post"],
         url_name="get_license",
         permissions_classes=[],
@@ -121,6 +129,8 @@ class SubsonicViewSet(viewsets.GenericViewSet):
         data = {
             "status": "ok",
             "version": "1.16.0",
+            "type": "funkwhale",
+            "funkwhaleVersion": funkwhale_api.__version__,
             "license": {
                 "valid": "true",
                 "email": "valid@valid.license",
@@ -129,7 +139,12 @@ class SubsonicViewSet(viewsets.GenericViewSet):
         }
         return response.Response(data, status=200)
 
-    @list_route(methods=["get", "post"], url_name="get_artists", url_path="getArtists")
+    @action(
+        detail=False,
+        methods=["get", "post"],
+        url_name="get_artists",
+        url_path="getArtists",
+    )
     def get_artists(self, request, *args, **kwargs):
         artists = music_models.Artist.objects.all().playable_by(
             utils.get_actor_from_request(request)
@@ -139,7 +154,12 @@ class SubsonicViewSet(viewsets.GenericViewSet):
 
         return response.Response(payload, status=200)
 
-    @list_route(methods=["get", "post"], url_name="get_indexes", url_path="getIndexes")
+    @action(
+        detail=False,
+        methods=["get", "post"],
+        url_name="get_indexes",
+        url_path="getIndexes",
+    )
     def get_indexes(self, request, *args, **kwargs):
         artists = music_models.Artist.objects.all().playable_by(
             utils.get_actor_from_request(request)
@@ -149,7 +169,12 @@ class SubsonicViewSet(viewsets.GenericViewSet):
 
         return response.Response(payload, status=200)
 
-    @list_route(methods=["get", "post"], url_name="get_artist", url_path="getArtist")
+    @action(
+        detail=False,
+        methods=["get", "post"],
+        url_name="get_artist",
+        url_path="getArtist",
+    )
     @find_object(music_models.Artist.objects.all(), filter_playable=True)
     def get_artist(self, request, *args, **kwargs):
         artist = kwargs.pop("obj")
@@ -158,7 +183,9 @@ class SubsonicViewSet(viewsets.GenericViewSet):
 
         return response.Response(payload, status=200)
 
-    @list_route(methods=["get", "post"], url_name="get_song", url_path="getSong")
+    @action(
+        detail=False, methods=["get", "post"], url_name="get_song", url_path="getSong"
+    )
     @find_object(music_models.Track.objects.all(), filter_playable=True)
     def get_song(self, request, *args, **kwargs):
         track = kwargs.pop("obj")
@@ -167,8 +194,11 @@ class SubsonicViewSet(viewsets.GenericViewSet):
 
         return response.Response(payload, status=200)
 
-    @list_route(
-        methods=["get", "post"], url_name="get_artist_info2", url_path="getArtistInfo2"
+    @action(
+        detail=False,
+        methods=["get", "post"],
+        url_name="get_artist_info2",
+        url_path="getArtistInfo2",
     )
     @find_object(music_models.Artist.objects.all(), filter_playable=True)
     def get_artist_info2(self, request, *args, **kwargs):
@@ -176,7 +206,9 @@ class SubsonicViewSet(viewsets.GenericViewSet):
 
         return response.Response(payload, status=200)
 
-    @list_route(methods=["get", "post"], url_name="get_album", url_path="getAlbum")
+    @action(
+        detail=False, methods=["get", "post"], url_name="get_album", url_path="getAlbum"
+    )
     @find_object(
         music_models.Album.objects.select_related("artist"), filter_playable=True
     )
@@ -186,46 +218,88 @@ class SubsonicViewSet(viewsets.GenericViewSet):
         payload = {"album": data}
         return response.Response(payload, status=200)
 
-    @list_route(methods=["get", "post"], url_name="stream", url_path="stream")
+    @action(detail=False, methods=["get", "post"], url_name="stream", url_path="stream")
     @find_object(music_models.Track.objects.all(), filter_playable=True)
     def stream(self, request, *args, **kwargs):
+        data = request.GET or request.POST
         track = kwargs.pop("obj")
         queryset = track.uploads.select_related("track__album__artist", "track__artist")
         upload = queryset.first()
         if not upload:
             return response.Response(status=404)
-        return music_views.handle_serve(upload=upload, user=request.user)
 
-    @list_route(methods=["get", "post"], url_name="star", url_path="star")
+        format = data.get("format", "raw")
+        if format == "raw":
+            format = None
+        return music_views.handle_serve(upload=upload, user=request.user, format=format)
+
+    @action(detail=False, methods=["get", "post"], url_name="star", url_path="star")
     @find_object(music_models.Track.objects.all())
     def star(self, request, *args, **kwargs):
         track = kwargs.pop("obj")
         TrackFavorite.add(user=request.user, track=track)
         return response.Response({"status": "ok"})
 
-    @list_route(methods=["get", "post"], url_name="unstar", url_path="unstar")
+    @action(detail=False, methods=["get", "post"], url_name="unstar", url_path="unstar")
     @find_object(music_models.Track.objects.all())
     def unstar(self, request, *args, **kwargs):
         track = kwargs.pop("obj")
         request.user.track_favorites.filter(track=track).delete()
         return response.Response({"status": "ok"})
 
-    @list_route(
-        methods=["get", "post"], url_name="get_starred2", url_path="getStarred2"
+    @action(
+        detail=False,
+        methods=["get", "post"],
+        url_name="get_starred2",
+        url_path="getStarred2",
     )
     def get_starred2(self, request, *args, **kwargs):
         favorites = request.user.track_favorites.all()
         data = {"starred2": {"song": serializers.get_starred_tracks_data(favorites)}}
         return response.Response(data)
 
-    @list_route(methods=["get", "post"], url_name="get_starred", url_path="getStarred")
+    @action(
+        detail=False,
+        methods=["get", "post"],
+        url_name="get_random_songs",
+        url_path="getRandomSongs",
+    )
+    def get_random_songs(self, request, *args, **kwargs):
+        data = request.GET or request.POST
+        actor = utils.get_actor_from_request(request)
+        queryset = music_models.Track.objects.all()
+        queryset = queryset.playable_by(actor)
+        try:
+            size = int(data["size"])
+        except (TypeError, KeyError, ValueError):
+            size = 50
+
+        queryset = (
+            queryset.playable_by(actor).prefetch_related("uploads").order_by("?")[:size]
+        )
+        data = {
+            "randomSongs": {
+                "song": serializers.GetSongSerializer(queryset, many=True).data
+            }
+        }
+        return response.Response(data)
+
+    @action(
+        detail=False,
+        methods=["get", "post"],
+        url_name="get_starred",
+        url_path="getStarred",
+    )
     def get_starred(self, request, *args, **kwargs):
         favorites = request.user.track_favorites.all()
         data = {"starred": {"song": serializers.get_starred_tracks_data(favorites)}}
         return response.Response(data)
 
-    @list_route(
-        methods=["get", "post"], url_name="get_album_list2", url_path="getAlbumList2"
+    @action(
+        detail=False,
+        methods=["get", "post"],
+        url_name="get_album_list2",
+        url_path="getAlbumList2",
     )
     def get_album_list2(self, request, *args, **kwargs):
         queryset = music_models.Album.objects.with_tracks_count().order_by(
@@ -252,7 +326,9 @@ class SubsonicViewSet(viewsets.GenericViewSet):
         data = {"albumList2": {"album": serializers.get_album_list2_data(queryset)}}
         return response.Response(data)
 
-    @list_route(methods=["get", "post"], url_name="search3", url_path="search3")
+    @action(
+        detail=False, methods=["get", "post"], url_name="search3", url_path="search3"
+    )
     def search3(self, request, *args, **kwargs):
         data = request.GET or request.POST
         query = str(data.get("query", "")).replace("*", "")
@@ -310,12 +386,16 @@ class SubsonicViewSet(viewsets.GenericViewSet):
                     utils.get_query(query, c["search_fields"])
                 )
             queryset = queryset.playable_by(actor)
+            queryset = common_utils.order_for_search(queryset, c["search_fields"][0])
             queryset = queryset[offset : offset + size]
             payload["searchResult3"][c["subsonic"]] = c["serializer"](queryset)
         return response.Response(payload)
 
-    @list_route(
-        methods=["get", "post"], url_name="get_playlists", url_path="getPlaylists"
+    @action(
+        detail=False,
+        methods=["get", "post"],
+        url_name="get_playlists",
+        url_path="getPlaylists",
     )
     def get_playlists(self, request, *args, **kwargs):
         playlists = request.user.playlists.with_tracks_count().select_related("user")
@@ -326,8 +406,11 @@ class SubsonicViewSet(viewsets.GenericViewSet):
         }
         return response.Response(data)
 
-    @list_route(
-        methods=["get", "post"], url_name="get_playlist", url_path="getPlaylist"
+    @action(
+        detail=False,
+        methods=["get", "post"],
+        url_name="get_playlist",
+        url_path="getPlaylist",
     )
     @find_object(playlists_models.Playlist.objects.with_tracks_count())
     def get_playlist(self, request, *args, **kwargs):
@@ -335,8 +418,11 @@ class SubsonicViewSet(viewsets.GenericViewSet):
         data = {"playlist": serializers.get_playlist_detail_data(playlist)}
         return response.Response(data)
 
-    @list_route(
-        methods=["get", "post"], url_name="update_playlist", url_path="updatePlaylist"
+    @action(
+        detail=False,
+        methods=["get", "post"],
+        url_name="update_playlist",
+        url_path="updatePlaylist",
     )
     @find_object(lambda request: request.user.playlists.all(), field="playlistId")
     def update_playlist(self, request, *args, **kwargs):
@@ -377,8 +463,11 @@ class SubsonicViewSet(viewsets.GenericViewSet):
         data = {"status": "ok"}
         return response.Response(data)
 
-    @list_route(
-        methods=["get", "post"], url_name="delete_playlist", url_path="deletePlaylist"
+    @action(
+        detail=False,
+        methods=["get", "post"],
+        url_name="delete_playlist",
+        url_path="deletePlaylist",
     )
     @find_object(lambda request: request.user.playlists.all())
     def delete_playlist(self, request, *args, **kwargs):
@@ -387,8 +476,11 @@ class SubsonicViewSet(viewsets.GenericViewSet):
         data = {"status": "ok"}
         return response.Response(data)
 
-    @list_route(
-        methods=["get", "post"], url_name="create_playlist", url_path="createPlaylist"
+    @action(
+        detail=False,
+        methods=["get", "post"],
+        url_name="create_playlist",
+        url_path="createPlaylist",
     )
     def create_playlist(self, request, *args, **kwargs):
         data = request.GET or request.POST
@@ -426,7 +518,43 @@ class SubsonicViewSet(viewsets.GenericViewSet):
         data = {"playlist": serializers.get_playlist_detail_data(playlist)}
         return response.Response(data)
 
-    @list_route(
+    @action(
+        detail=False,
+        methods=["get", "post"],
+        url_name="get_avatar",
+        url_path="getAvatar",
+    )
+    @find_object(
+        queryset=users_models.User.objects.exclude(avatar=None).exclude(avatar=""),
+        model_field="username__iexact",
+        field="username",
+        cast=str,
+    )
+    def get_avatar(self, request, *args, **kwargs):
+        user = kwargs.pop("obj")
+        mapping = {"nginx": "X-Accel-Redirect", "apache2": "X-Sendfile"}
+        path = music_views.get_file_path(user.avatar)
+        file_header = mapping[settings.REVERSE_PROXY_TYPE]
+        # let the proxy set the content-type
+        r = response.Response({}, content_type="")
+        r[file_header] = path
+        return r
+
+    @action(
+        detail=False, methods=["get", "post"], url_name="get_user", url_path="getUser"
+    )
+    @find_object(
+        queryset=lambda request: users_models.User.objects.filter(pk=request.user.pk),
+        model_field="username__iexact",
+        field="username",
+        cast=str,
+    )
+    def get_user(self, request, *args, **kwargs):
+        data = {"user": serializers.get_user_detail_data(request.user)}
+        return response.Response(data)
+
+    @action(
+        detail=False,
         methods=["get", "post"],
         url_name="get_music_folders",
         url_path="getMusicFolders",
@@ -435,8 +563,11 @@ class SubsonicViewSet(viewsets.GenericViewSet):
         data = {"musicFolders": {"musicFolder": [{"id": 1, "name": "Music"}]}}
         return response.Response(data)
 
-    @list_route(
-        methods=["get", "post"], url_name="get_cover_art", url_path="getCoverArt"
+    @action(
+        detail=False,
+        methods=["get", "post"],
+        url_name="get_cover_art",
+        url_path="getCoverArt",
     )
     def get_cover_art(self, request, *args, **kwargs):
         data = request.GET or request.POST
@@ -472,7 +603,9 @@ class SubsonicViewSet(viewsets.GenericViewSet):
         r[file_header] = path
         return r
 
-    @list_route(methods=["get", "post"], url_name="scrobble", url_path="scrobble")
+    @action(
+        detail=False, methods=["get", "post"], url_name="scrobble", url_path="scrobble"
+    )
     def scrobble(self, request, *args, **kwargs):
         data = request.GET or request.POST
         serializer = serializers.ScrobbleSerializer(
diff --git a/api/funkwhale_api/users/admin.py b/api/funkwhale_api/users/admin.py
index f7ee90c7e50a5f700e002eb062fbcc06ee9795f9..303f4f9c3d4d575320ad53fcc2813e8c2ae7f456 100644
--- a/api/funkwhale_api/users/admin.py
+++ b/api/funkwhale_api/users/admin.py
@@ -51,7 +51,7 @@ class UserAdmin(AuthUserAdmin):
         "privacy_level",
         "permission_settings",
         "permission_library",
-        "permission_federation",
+        "permission_moderation",
     ]
 
     fieldsets = (
@@ -67,10 +67,9 @@ class UserAdmin(AuthUserAdmin):
                     "is_active",
                     "is_staff",
                     "is_superuser",
-                    "permission_upload",
                     "permission_library",
                     "permission_settings",
-                    "permission_federation",
+                    "permission_moderation",
                 )
             },
         ),
diff --git a/api/funkwhale_api/users/auth_backends.py b/api/funkwhale_api/users/auth_backends.py
new file mode 100644
index 0000000000000000000000000000000000000000..404b34f4d1d2efa35bf83c9178da163ac3a0110c
--- /dev/null
+++ b/api/funkwhale_api/users/auth_backends.py
@@ -0,0 +1,17 @@
+from django.contrib.auth import backends, get_user_model
+
+
+class ModelBackend(backends.ModelBackend):
+    def get_user(self, user_id):
+        """
+        Select related to avoid two additional queries
+        """
+        try:
+            user = (
+                get_user_model()
+                ._default_manager.select_related("actor__domain")
+                .get(pk=user_id)
+            )
+        except get_user_model().DoesNotExist:
+            return None
+        return user if self.user_can_authenticate(user) else None
diff --git a/api/funkwhale_api/users/factories.py b/api/funkwhale_api/users/factories.py
index 9bef1da1c909c38797a3dc5430cc8861d804d501..a5b113cf4506f0a8c80074f38f5cf98c98669ce6 100644
--- a/api/funkwhale_api/users/factories.py
+++ b/api/funkwhale_api/users/factories.py
@@ -2,13 +2,13 @@ import factory
 from django.contrib.auth.models import Permission
 from django.utils import timezone
 
-from funkwhale_api.factories import ManyToManyFromList, registry
+from funkwhale_api.factories import ManyToManyFromList, registry, NoUpdateOnCreate
 
 from . import models
 
 
 @registry.register
-class GroupFactory(factory.django.DjangoModelFactory):
+class GroupFactory(NoUpdateOnCreate, factory.django.DjangoModelFactory):
     name = factory.Sequence(lambda n: "group-{0}".format(n))
 
     class Meta:
@@ -32,7 +32,7 @@ class GroupFactory(factory.django.DjangoModelFactory):
 
 
 @registry.register
-class InvitationFactory(factory.django.DjangoModelFactory):
+class InvitationFactory(NoUpdateOnCreate, factory.django.DjangoModelFactory):
     owner = factory.LazyFunction(lambda: UserFactory())
 
     class Meta:
diff --git a/api/funkwhale_api/users/migrations/0013_auto_20181206_1008.py b/api/funkwhale_api/users/migrations/0013_auto_20181206_1008.py
new file mode 100644
index 0000000000000000000000000000000000000000..3c9583131e61d4abd032d6eec0504f01d6f67f9d
--- /dev/null
+++ b/api/funkwhale_api/users/migrations/0013_auto_20181206_1008.py
@@ -0,0 +1,26 @@
+# Generated by Django 2.0.9 on 2018-12-06 10:08
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('users', '0012_user_upload_quota'),
+    ]
+
+    operations = [
+        migrations.RemoveField(
+            model_name='user',
+            name='permission_federation',
+        ),
+        migrations.RemoveField(
+            model_name='user',
+            name='permission_upload',
+        ),
+        migrations.AddField(
+            model_name='user',
+            name='permission_moderation',
+            field=models.BooleanField(default=False, help_text='Block/mute/remove domains, users and content', verbose_name='Moderation'),
+        ),
+    ]
diff --git a/api/funkwhale_api/users/models.py b/api/funkwhale_api/users/models.py
index 2bc87588ef0ab235ec51bce6270770148c905641..32e4869a37fbaa1ac313a2e88e7033ac7e9faeca 100644
--- a/api/funkwhale_api/users/models.py
+++ b/api/funkwhale_api/users/models.py
@@ -34,16 +34,15 @@ def get_token():
 
 
 PERMISSIONS_CONFIGURATION = {
-    "federation": {
-        "label": "Manage library federation",
-        "help_text": "Follow other instances, accept/deny library follow requests...",
+    "moderation": {
+        "label": "Moderation",
+        "help_text": "Block/mute/remove domains, users and content",
     },
     "library": {
         "label": "Manage library",
         "help_text": "Manage library, delete files, tracks, artists, albums...",
     },
     "settings": {"label": "Manage instance-level settings", "help_text": ""},
-    "upload": {"label": "Upload new content to the library", "help_text": ""},
 }
 
 PERMISSIONS = sorted(PERMISSIONS_CONFIGURATION.keys())
@@ -71,9 +70,9 @@ class User(AbstractUser):
     subsonic_api_token = models.CharField(blank=True, null=True, max_length=255)
 
     # permissions
-    permission_federation = models.BooleanField(
-        PERMISSIONS_CONFIGURATION["federation"]["label"],
-        help_text=PERMISSIONS_CONFIGURATION["federation"]["help_text"],
+    permission_moderation = models.BooleanField(
+        PERMISSIONS_CONFIGURATION["moderation"]["label"],
+        help_text=PERMISSIONS_CONFIGURATION["moderation"]["help_text"],
         default=False,
     )
     permission_library = models.BooleanField(
@@ -86,11 +85,6 @@ class User(AbstractUser):
         help_text=PERMISSIONS_CONFIGURATION["settings"]["help_text"],
         default=False,
     )
-    permission_upload = models.BooleanField(
-        PERMISSIONS_CONFIGURATION["upload"]["label"],
-        help_text=PERMISSIONS_CONFIGURATION["upload"]["help_text"],
-        default=False,
-    )
 
     last_activity = models.DateTimeField(default=None, null=True, blank=True)
 
@@ -210,6 +204,9 @@ class User(AbstractUser):
 
         return ["user.{}.{}".format(self.pk, g) for g in groups]
 
+    def full_username(self):
+        return "{}@{}".format(self.username, settings.FEDERATION_HOSTNAME)
+
 
 def generate_code(length=10):
     return "".join(
@@ -252,7 +249,9 @@ def get_actor_data(user):
     username = federation_utils.slugify_username(user.username)
     return {
         "preferred_username": username,
-        "domain": settings.FEDERATION_HOSTNAME,
+        "domain": federation_models.Domain.objects.get_or_create(
+            name=settings.FEDERATION_HOSTNAME
+        )[0],
         "type": "Person",
         "name": user.username,
         "manually_approves_followers": False,
@@ -296,7 +295,7 @@ def init_ldap_user(sender, user, ldap_user, **kwargs):
 
 @receiver(models.signals.post_save, sender=User)
 def warm_user_avatar(sender, instance, **kwargs):
-    if not instance.avatar:
+    if not instance.avatar or not settings.CREATE_IMAGE_THUMBNAILS:
         return
     user_avatar_warmer = VersatileImageFieldWarmer(
         instance_or_queryset=instance, rendition_key_set="square", image_attr="avatar"
diff --git a/api/funkwhale_api/users/serializers.py b/api/funkwhale_api/users/serializers.py
index bcacc3144614c9780034f9a5db1c1c044306671b..c75604f6eb94ea97b26247604b13bf2c01fa6dfe 100644
--- a/api/funkwhale_api/users/serializers.py
+++ b/api/funkwhale_api/users/serializers.py
@@ -11,7 +11,7 @@ from rest_framework import serializers
 from versatileimagefield.serializers import VersatileImageFieldSerializer
 
 from funkwhale_api.activity import serializers as activity_serializers
-
+from funkwhale_api.common import serializers as common_serializers
 from . import models
 
 
@@ -66,7 +66,13 @@ class UserActivitySerializer(activity_serializers.ModelSerializer):
         return "Person"
 
 
-avatar_field = VersatileImageFieldSerializer(allow_null=True, sizes="square")
+class AvatarField(
+    common_serializers.StripExifImageField, VersatileImageFieldSerializer
+):
+    pass
+
+
+avatar_field = AvatarField(allow_null=True, sizes="square")
 
 
 class UserBasicSerializer(serializers.ModelSerializer):
diff --git a/api/funkwhale_api/users/views.py b/api/funkwhale_api/users/views.py
index 3ca0c6b611e24013d81bc2d726f8f4aa1a510bf2..2393882e725ada35c6d1890c82e04a685f60221f 100644
--- a/api/funkwhale_api/users/views.py
+++ b/api/funkwhale_api/users/views.py
@@ -1,7 +1,7 @@
 from allauth.account.adapter import get_adapter
 from rest_auth.registration.views import RegisterView as BaseRegisterView
 from rest_framework import mixins, viewsets
-from rest_framework.decorators import detail_route, list_route
+from rest_framework.decorators import action
 from rest_framework.response import Response
 
 from funkwhale_api.common import preferences
@@ -28,13 +28,13 @@ class UserViewSet(mixins.UpdateModelMixin, viewsets.GenericViewSet):
     serializer_class = serializers.UserWriteSerializer
     lookup_field = "username"
 
-    @list_route(methods=["get"])
+    @action(methods=["get"], detail=False)
     def me(self, request, *args, **kwargs):
         """Return information about the current user"""
         serializer = serializers.MeSerializer(request.user)
         return Response(serializer.data)
 
-    @detail_route(methods=["get", "post", "delete"], url_path="subsonic-token")
+    @action(methods=["get", "post", "delete"], url_path="subsonic-token", detail=True)
     def subsonic_token(self, request, *args, **kwargs):
         if not self.request.user.username == kwargs.get("username"):
             return Response(status=403)
diff --git a/api/requirements.txt b/api/requirements.txt
index 00be27c5356b417fc5da953c6bceab608e2f382c..647e39b8ca5f1ffc55a064c2f51fa19d935009f2 100644
--- a/api/requirements.txt
+++ b/api/requirements.txt
@@ -1,4 +1,3 @@
 # This file is here because many Platforms as a Service look for
 #	requirements.txt in the root directory of a project.
 -r requirements/base.txt
--r requirements/production.txt
diff --git a/api/requirements/base.txt b/api/requirements/base.txt
index 246525b99070a02d5b6a456a318f694231b1b24a..d004a7044f10bc71925dc614bc9e321b25d46c05 100644
--- a/api/requirements/base.txt
+++ b/api/requirements/base.txt
@@ -1,12 +1,11 @@
 # Bleeding edge Django
-django>=2.0,<2.1
+django>=2.1,<2.2
 
 # Configuration
 django-environ>=0.4,<0.5
-whitenoise>=3.3,<3.4
 
 # Images
-Pillow>=4.3,<4.4
+Pillow>=5.4,<5.5
 
 # For user registration, either via email or social
 # Well-built with regular release cycles!
@@ -17,49 +16,43 @@ django-allauth>=0.36,<0.37
 psycopg2-binary>=2.7,<=2.8
 
 # Time zones support
-pytz==2017.3
+pytz==2018.9
 
 # Redis support
-django-redis>=4.5,<4.6
-redis>=2.10,<2.11
+django-redis>=4.10,<4.11
+redis>=3.0,<3.1
 
 
-celery>=4.1,<4.2
+celery>=4.2,<4.3
 
 
 # Your custom requirements go here
 django-cors-headers>=2.1,<2.2
 musicbrainzngs==0.6
-youtube_dl>=2017.12.14
-djangorestframework>=3.7,<3.8
+djangorestframework>=3.9,<3.10
 djangorestframework-jwt>=1.11,<1.12
-oauth2client<4
-google-api-python-client>=1.6,<1.7
 pendulum>=2,<3
 persisting-theory>=0.2,<0.3
 django-versatileimagefield>=1.9,<1.10
-django-filter>=1.1,<1.2
+django-filter>=2.0,<2.1
 django-rest-auth>=0.9,<0.10
 beautifulsoup4>=4.6,<4.7
 Markdown>=2.6,<2.7
 ipython>=6,<7
-mutagen>=1.39,<1.40
+mutagen>=1.42,<1.43
 
 
-# Until this is merged
 django-taggit>=0.22,<0.23
-# Until this is merged
 pymemoize==1.0.3
 
-django-dynamic-preferences>=1.5,<1.6
-pyacoustid>=1.1.5,<1.2
+django-dynamic-preferences>=1.7,<1.8
 raven>=6.5,<7
 python-magic==0.4.15
 ffmpeg-python==0.1.10
-channels>=2,<2.1
-channels_redis>=2.1,<2.2
+channels>=2.1,<2.2
+channels_redis>=2.3,<2.4
+daphne>=2.2,<2.3
 
-daphne==2.0.4
 cryptography>=2,<3
 # requests-http-signature==0.0.3
 # clone until the branch is merged and released upstream
@@ -69,3 +62,4 @@ django-cleanup==2.1.0
 # for LDAP authentication
 python-ldap==3.1.0
 django-auth-ldap==1.7.0
+pydub==0.23.0
diff --git a/api/requirements/local.txt b/api/requirements/local.txt
index c12f1ecb82c33cb88ae3b92e531181da5bc5540c..60724fc959a0b666d8b15cb39d333e6d61f89866 100644
--- a/api/requirements/local.txt
+++ b/api/requirements/local.txt
@@ -1,13 +1,13 @@
 # Local development dependencies go here
 
-coverage>=4.4,<4.5
-django_coverage_plugin>=1.5,<1.6
-factory_boy>=2.8.1
+coverage>=4.5,<4.6
+django_coverage_plugin>=1.6,<1.7
+factory_boy>=2.11.1
 
 # django-debug-toolbar that works with Django 1.5+
-django-debug-toolbar>=1.9,<1.10
+django-debug-toolbar>=1.11,<1.12
 
 # improved REPL
-ipdb==0.8.1
+ipdb==0.11
 black
 profiling
diff --git a/api/requirements/production.txt b/api/requirements/production.txt
deleted file mode 100644
index d51ee863ad7e465c5ddcfcf9de5ac8cfcfa51e4f..0000000000000000000000000000000000000000
--- a/api/requirements/production.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-# Pro-tip: Try not to put anything here. There should be no dependency in
-#	production that isn't in development.
-
-# WSGI Handler
-# ------------------------------------------------
diff --git a/api/requirements/test.txt b/api/requirements/test.txt
index 20a14abea1685387764012ea5ac3e01d60a09a47..1a4f7e1cd61b07bd2b0054e5700dc0d00b4250b5 100644
--- a/api/requirements/test.txt
+++ b/api/requirements/test.txt
@@ -12,3 +12,4 @@ pytest-xdist
 pytest-cov
 pytest-env
 requests-mock
+pytest-profiling<1.4
diff --git a/api/setup.cfg b/api/setup.cfg
index aa9a57abb82f0ce78ff2a927880daa9b49f212d1..a3c0e746864b1eb9bd92d7d9077c63490cebe2f6 100644
--- a/api/setup.cfg
+++ b/api/setup.cfg
@@ -19,3 +19,8 @@ env =
     CELERY_BROKER_URL=memory://
     CELERY_TASK_ALWAYS_EAGER=True
     FEDERATION_HOSTNAME=test.federation
+    DEBUG_TOOLBAR_ENABLED=False
+    DEBUG=False
+    WEAK_PASSWORDS=True
+    CREATE_IMAGE_THUMBNAILS=False
+    FORCE_HTTPS_URLS=False
diff --git a/api/tests/common/exif.jpg b/api/tests/common/exif.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c13141aff10c549e994468090649702c5c13c086
Binary files /dev/null and b/api/tests/common/exif.jpg differ
diff --git a/api/tests/common/test_middleware.py b/api/tests/common/test_middleware.py
new file mode 100644
index 0000000000000000000000000000000000000000..2ed875a53100fb216d09ade2af6fceea3bee4ca1
--- /dev/null
+++ b/api/tests/common/test_middleware.py
@@ -0,0 +1,137 @@
+import pytest
+
+from funkwhale_api.common import middleware
+
+
+def test_spa_fallback_middleware_no_404(mocker):
+    get_response = mocker.Mock()
+    get_response.return_value = mocker.Mock(status_code=200)
+    request = mocker.Mock(path="/")
+    m = middleware.SPAFallbackMiddleware(get_response)
+
+    assert m(request) == get_response.return_value
+
+
+def test_spa_middleware_calls_should_fallback_false(mocker):
+    get_response = mocker.Mock()
+    get_response.return_value = mocker.Mock(status_code=404)
+    should_falback = mocker.patch.object(
+        middleware, "should_fallback_to_spa", return_value=False
+    )
+    request = mocker.Mock(path="/")
+
+    m = middleware.SPAFallbackMiddleware(get_response)
+
+    assert m(request) == get_response.return_value
+    should_falback.assert_called_once_with(request.path)
+
+
+def test_spa_middleware_should_fallback_true(mocker):
+    get_response = mocker.Mock()
+    get_response.return_value = mocker.Mock(status_code=404)
+    request = mocker.Mock(path="/")
+    mocker.patch.object(middleware, "should_fallback_to_spa", return_value=True)
+    serve_spa = mocker.patch.object(middleware, "serve_spa")
+    m = middleware.SPAFallbackMiddleware(get_response)
+
+    assert m(request) == serve_spa.return_value
+    serve_spa.assert_called_once_with(request)
+
+
+@pytest.mark.parametrize(
+    "path,expected",
+    [("/", True), ("/federation", False), ("/api", False), ("/an/spa/path/", True)],
+)
+def test_should_fallback(path, expected, mocker):
+    assert middleware.should_fallback_to_spa(path) is expected
+
+
+def test_serve_spa_from_cache(mocker, settings, preferences, no_api_auth):
+
+    request = mocker.Mock(path="/")
+    get_spa_html = mocker.patch.object(
+        middleware, "get_spa_html", return_value="<html><head></head></html>"
+    )
+    mocker.patch.object(
+        middleware,
+        "get_default_head_tags",
+        return_value=[
+            {"tag": "meta", "property": "og:title", "content": "default title"},
+            {"tag": "meta", "property": "og:site_name", "content": "default site name"},
+        ],
+    )
+    get_request_head_tags = mocker.patch.object(
+        middleware,
+        "get_request_head_tags",
+        return_value=[
+            {"tag": "meta", "property": "og:title", "content": "custom title"},
+            {
+                "tag": "meta",
+                "property": "og:description",
+                "content": "custom description",
+            },
+        ],
+    )
+    response = middleware.serve_spa(request)
+
+    assert response.status_code == 200
+    expected = [
+        "<html><head>",
+        '<meta content="custom title" property="og:title" />',
+        '<meta content="custom description" property="og:description" />',
+        '<meta content="default site name" property="og:site_name" />',
+        "</head></html>",
+    ]
+    get_spa_html.assert_called_once_with(settings.FUNKWHALE_SPA_HTML_ROOT)
+    get_request_head_tags.assert_called_once_with(request)
+    assert response.content == "\n".join(expected).encode()
+
+
+def test_get_default_head_tags(preferences, settings):
+    settings.APP_NAME = "Funkwhale"
+    preferences["instance__name"] = "Hello"
+    preferences["instance__short_description"] = "World"
+
+    expected = [
+        {"tag": "meta", "property": "og:type", "content": "website"},
+        {"tag": "meta", "property": "og:site_name", "content": "Hello - Funkwhale"},
+        {"tag": "meta", "property": "og:description", "content": "World"},
+        {
+            "tag": "meta",
+            "property": "og:image",
+            "content": settings.FUNKWHALE_URL + "/front/favicon.png",
+        },
+        {"tag": "meta", "property": "og:url", "content": settings.FUNKWHALE_URL + "/"},
+    ]
+
+    assert middleware.get_default_head_tags("/") == expected
+
+
+def test_get_spa_html_from_cache(local_cache):
+    local_cache.set("spa-html:http://test", "hello world")
+
+    assert middleware.get_spa_html("http://test") == "hello world"
+
+
+def test_get_spa_html_from_http(local_cache, r_mock, mocker, settings):
+    cache_set = mocker.spy(local_cache, "set")
+    url = "http://test"
+    r_mock.get(url + "/index.html", text="hello world")
+
+    assert middleware.get_spa_html("http://test") == "hello world"
+    cache_set.assert_called_once_with(
+        "spa-html:{}".format(url),
+        "hello world",
+        settings.FUNKWHALE_SPA_HTML_CACHE_DURATION,
+    )
+
+
+def test_get_route_head_tags(mocker, settings):
+    match = mocker.Mock(args=[], kwargs={"pk": 42}, func=mocker.Mock())
+    resolve = mocker.patch("django.urls.resolve", return_value=match)
+    request = mocker.Mock(path="/tracks/42")
+    tags = middleware.get_request_head_tags(request)
+
+    assert tags == match.func.return_value
+    match.func.assert_called_once_with(request, *[], **{"pk": 42})
+    resolve.assert_called_once_with(request.path, urlconf=settings.SPA_URLCONF)
diff --git a/api/tests/common/test_scripts.py b/api/tests/common/test_scripts.py
index 2004cfe5732448f553c327e4a0cb0c59a20b599b..930c502a369e9c80caec0758f8fce5d6b5bbde9a 100644
--- a/api/tests/common/test_scripts.py
+++ b/api/tests/common/test_scripts.py
@@ -12,7 +12,12 @@ def command():
 
 
 @pytest.mark.parametrize(
-    "script_name", ["django_permissions_to_user_permissions", "test"]
+    "script_name",
+    [
+        "django_permissions_to_user_permissions",
+        "test",
+        "delete_pre_017_federated_uploads",
+    ],
 )
 def test_script_command_list(command, script_name, mocker):
     mocked = mocker.patch("funkwhale_api.common.scripts.{}.main".format(script_name))
@@ -22,30 +27,6 @@ def test_script_command_list(command, script_name, mocker):
     mocked.assert_called_once_with(command, script_name=script_name, interactive=False)
 
 
-def test_django_permissions_to_user_permissions(factories, command):
-    group = factories["auth.Group"](perms=["federation.change_library"])
-    user1 = factories["users.User"](
-        perms=[
-            "dynamic_preferences.change_globalpreferencemodel",
-            "music.add_importbatch",
-        ]
-    )
-    user2 = factories["users.User"](perms=["music.add_importbatch"], groups=[group])
-
-    scripts.django_permissions_to_user_permissions.main(command)
-
-    user1.refresh_from_db()
-    user2.refresh_from_db()
-
-    assert user1.permission_settings is True
-    assert user1.permission_library is True
-    assert user1.permission_federation is False
-
-    assert user2.permission_settings is False
-    assert user2.permission_library is True
-    assert user2.permission_federation is True
-
-
 @pytest.mark.parametrize(
     "open_api,expected_visibility", [(True, "everyone"), (False, "instance")]
 )
@@ -259,3 +240,17 @@ def test_migrate_to_users_libraries_command(
 
     for part in ["followers", "following"]:
         generate_actor_urls.assert_any_call(part, command.stdout)
+
+
+def test_delete_pre_017_federated_uploads(factories, command):
+    to_delete = factories["music.Upload"](
+        source="https://test.com/federation/music/file/1"
+    )
+    to_keep = factories["music.Upload"](source="https://hello.world")
+
+    scripts.delete_pre_017_federated_uploads.main(command)
+
+    to_keep.refresh_from_db()
+
+    with pytest.raises(to_delete.__class__.DoesNotExist):
+        to_delete.refresh_from_db()
diff --git a/api/tests/common/test_serializers.py b/api/tests/common/test_serializers.py
index e07bf8e826bfec8ebe77de5be57b1b7ce9f2d553..6d20443af6b97d603f029482816893c5afeab683 100644
--- a/api/tests/common/test_serializers.py
+++ b/api/tests/common/test_serializers.py
@@ -1,3 +1,8 @@
+import os
+import PIL
+
+from django.core.files.uploadedfile import SimpleUploadedFile
+
 import django_filters
 
 from funkwhale_api.common import serializers
@@ -134,3 +139,46 @@ def test_action_serializers_can_require_filter(factories):
 
     assert serializer.is_valid(raise_exception=True) is True
     assert list(serializer.validated_data["objects"]) == [user1]
+
+
+def test_track_fields_for_update(mocker):
+    @serializers.track_fields_for_update("field1", "field2")
+    class S(serializers.serializers.Serializer):
+        field1 = serializers.serializers.CharField()
+        field2 = serializers.serializers.CharField()
+
+        def update(self, obj, validated_data):
+            for key, value in validated_data.items():
+                setattr(obj, key, value)
+            return obj
+
+        on_updated_fields = mocker.stub()
+
+    class Obj(object):
+        field1 = "value1"
+        field2 = "value2"
+
+    obj = Obj()
+    serializer = S(obj, data={"field1": "newvalue1", "field2": "newvalue2"})
+    assert serializer.is_valid(raise_exception=True)
+    serializer.save()
+
+    serializer.on_updated_fields.assert_called_once_with(
+        obj,
+        {"field1": "value1", "field2": "value2"},
+        {"field1": "newvalue1", "field2": "newvalue2"},
+    )
+
+
+def test_strip_exif_field():
+    source_path = os.path.join(os.path.dirname(__file__), "exif.jpg")
+    source = PIL.Image.open(source_path)
+
+    assert bool(source._getexif())
+
+    with open(source_path, "rb") as f:
+        uploaded = SimpleUploadedFile("source.jpg", f.read(), content_type="image/jpeg")
+    field = serializers.StripExifImageField()
+
+    cleaned = PIL.Image.open(field.to_internal_value(uploaded))
+    assert cleaned._getexif() is None
diff --git a/api/tests/conftest.py b/api/tests/conftest.py
index d880c8d6faa96c7f007f81721f607fe439040dbd..03dbdfa4e53caf36cf40e37c639378ab4517516e 100644
--- a/api/tests/conftest.py
+++ b/api/tests/conftest.py
@@ -12,12 +12,16 @@ from faker.providers import internet as internet_provider
 import factory
 import pytest
 
+from django.core.management import call_command
 from django.contrib.auth.models import AnonymousUser
-from django.core.cache import cache as django_cache
+from django.core.cache import cache as django_cache, caches
 from django.core.files import uploadedfile
 from django.utils import timezone
 from django.test import client
+from django.db import connection
+from django.db.migrations.executor import MigrationExecutor
 from django.db.models import QuerySet
+
 from dynamic_preferences.registries import global_preferences_registry
 from rest_framework import fields as rest_fields
 from rest_framework.test import APIClient, APIRequestFactory
@@ -100,6 +104,12 @@ def cache():
     django_cache.clear()
 
 
+@pytest.fixture(autouse=True)
+def local_cache():
+    yield caches["local"]
+    caches["local"].clear()
+
+
 @pytest.fixture
 def factories(db):
     """
@@ -382,3 +392,27 @@ def temp_signal(mocker):
 @pytest.fixture()
 def stdout():
     yield io.StringIO()
+
+
+@pytest.fixture
+def spa_html(r_mock, settings):
+    yield r_mock.get(
+        settings.FUNKWHALE_SPA_HTML_ROOT + "index.html", text="<head></head>"
+    )
+
+
+@pytest.fixture
+def no_api_auth(preferences):
+    preferences["common__api_authentication_required"] = False
+
+
+@pytest.fixture()
+def migrator(transactional_db):
+    yield MigrationExecutor(connection)
+    call_command("migrate", interactive=False)
+
+
+@pytest.fixture(autouse=True)
+def rsa_small_key(settings):
+    # smaller size for faster generation, since it's CPU hungry
+    settings.RSA_KEY_SIZE = 512
diff --git a/api/tests/favorites/test_favorites.py b/api/tests/favorites/test_favorites.py
index 6ac244c69fac164b49171b3d0f8dba20f13aa02d..7e8d1d3fdd14f5e082329873bfe25a6c7c550bfc 100644
--- a/api/tests/favorites/test_favorites.py
+++ b/api/tests/favorites/test_favorites.py
@@ -35,7 +35,18 @@ def test_user_can_get_his_favorites(api_request, factories, logged_in_client, cl
             "creation_date": favorite.creation_date.isoformat().replace("+00:00", "Z"),
         }
     ]
-    expected[0]["track"]["is_playable"] = False
+    assert response.status_code == 200
+    assert response.data["results"] == expected
+
+
+def test_user_can_retrieve_all_favorites_at_once(
+    api_request, factories, logged_in_client, client
+):
+    favorite = factories["favorites.TrackFavorite"](user=logged_in_client.user)
+    factories["favorites.TrackFavorite"]()
+    url = reverse("api:v1:favorites:tracks-all")
+    response = logged_in_client.get(url, {"user": logged_in_client.user.pk})
+    expected = [{"track": favorite.track.id, "id": favorite.id}]
     assert response.status_code == 200
     assert response.data["results"] == expected
 
diff --git a/api/tests/federation/test_activity.py b/api/tests/federation/test_activity.py
index 9604582e562ac80ce98afc6087f5d30389b5f144..fa83ed1f4d7048de95638a9bf8d9a87006d86adf 100644
--- a/api/tests/federation/test_activity.py
+++ b/api/tests/federation/test_activity.py
@@ -46,6 +46,69 @@ def test_receive_validates_basic_attributes_and_stores_activity(factories, now,
         assert ii.is_read is False
 
 
+def test_receive_calls_should_reject(factories, now, mocker):
+    should_reject = mocker.patch.object(activity, "should_reject", return_value=True)
+    local_to_actor = factories["users.User"]().create_actor()
+    remote_actor = factories["federation.Actor"]()
+    a = {
+        "@context": [],
+        "actor": remote_actor.fid,
+        "type": "Noop",
+        "id": "https://test.activity",
+        "to": [local_to_actor.fid, remote_actor.fid],
+    }
+
+    copy = activity.receive(activity=a, on_behalf_of=remote_actor)
+    should_reject.assert_called_once_with(
+        id=a["id"], actor_id=remote_actor.fid, payload=a
+    )
+    assert copy is None
+
+
+@pytest.mark.parametrize(
+    "params, policy_kwargs, expected",
+    [
+        ({"id": "https://ok.test"}, {"target_domain__name": "notok.test"}, False),
+        (
+            {"id": "https://ok.test"},
+            {"target_domain__name": "ok.test", "is_active": False},
+            False,
+        ),
+        (
+            {"id": "https://ok.test"},
+            {"target_domain__name": "ok.test", "block_all": False},
+            False,
+        ),
+        # id match blocked domain
+        ({"id": "http://notok.test"}, {"target_domain__name": "notok.test"}, True),
+        # actor id match blocked domain
+        (
+            {"id": "http://ok.test", "actor_id": "https://notok.test"},
+            {"target_domain__name": "notok.test"},
+            True,
+        ),
+        # reject media
+        (
+            {
+                "payload": {"type": "Library"},
+                "id": "http://ok.test",
+                "actor_id": "http://notok.test",
+            },
+            {
+                "target_domain__name": "notok.test",
+                "block_all": False,
+                "reject_media": True,
+            },
+            True,
+        ),
+    ],
+)
+def test_should_reject(factories, params, policy_kwargs, expected):
+    factories["moderation.InstancePolicy"](for_domain=True, **policy_kwargs)
+
+    assert activity.should_reject(**params) is expected
+
+
 def test_get_actors_from_audience_urls(settings, db):
     settings.FEDERATION_HOSTNAME = "federation.hostname"
     library_uuid1 = uuid.uuid4()
@@ -78,22 +141,6 @@ def test_get_actors_from_audience_urls(settings, db):
     assert str(activity.get_actors_from_audience(urls).query) == str(expected.query)
 
 
-def test_get_inbox_urls(factories):
-    a1 = factories["federation.Actor"](
-        shared_inbox_url=None, inbox_url="https://a1.inbox"
-    )
-    a2 = factories["federation.Actor"](
-        shared_inbox_url="https://shared.inbox", inbox_url="https://a2.inbox"
-    )
-    factories["federation.Actor"](
-        shared_inbox_url="https://shared.inbox", inbox_url="https://a3.inbox"
-    )
-
-    expected = sorted(set([a1.inbox_url, a2.shared_inbox_url]))
-
-    assert activity.get_inbox_urls(a1.__class__.objects.all()) == expected
-
-
 def test_receive_invalid_data(factories):
     remote_actor = factories["federation.Actor"]()
     a = {"@context": [], "actor": remote_actor.fid, "id": "https://test.activity"}
@@ -212,9 +259,6 @@ def test_outbox_router_dispatch(mocker, factories, now):
             "actor": actor,
         }
 
-    expected_deliveries_url = activity.get_inbox_urls(
-        models.Actor.objects.filter(pk__in=[r1.pk, r2.pk])
-    )
     router.connect({"type": "Noop"}, handler)
     activities = router.dispatch({"type": "Noop"}, {"summary": "hello"})
     a = activities[0]
@@ -235,8 +279,8 @@ def test_outbox_router_dispatch(mocker, factories, now):
     assert a.uuid is not None
 
     assert a.deliveries.count() == 2
-    for url in expected_deliveries_url:
-        delivery = a.deliveries.get(inbox_url=url)
+    for actor in [r1, r2]:
+        delivery = a.deliveries.get(inbox_url=actor.inbox_url)
         assert delivery.is_delivered is False
 
 
@@ -343,3 +387,47 @@ def test_prepare_deliveries_and_inbox_items(factories):
     ):
         assert inbox_item.actor == expected_inbox_item.actor
         assert inbox_item.type == "to"
+
+
+def test_should_rotate_actor_key(settings, cache, now):
+    actor_id = 42
+    settings.ACTOR_KEY_ROTATION_DELAY = 10
+
+    cache.set(activity.ACTOR_KEY_ROTATION_LOCK_CACHE_KEY.format(actor_id), True)
+
+    assert activity.should_rotate_actor_key(actor_id) is False
+
+    cache.delete(activity.ACTOR_KEY_ROTATION_LOCK_CACHE_KEY.format(actor_id))
+
+    assert activity.should_rotate_actor_key(actor_id) is True
+
+
+def test_schedule_key_rotation(cache, mocker):
+    actor_id = 42
+    rotate_actor_key = mocker.patch.object(tasks.rotate_actor_key, "apply_async")
+
+    activity.schedule_key_rotation(actor_id, 3600)
+    rotate_actor_key.assert_called_once_with(
+        kwargs={"actor_id": actor_id}, countdown=3600
+    )
+    assert cache.get(activity.ACTOR_KEY_ROTATION_LOCK_CACHE_KEY.format(actor_id), True)
+
+
+def test_outbox_dispatch_rotate_key_on_delete(mocker, factories, cache, settings):
+    router = activity.OutboxRouter()
+    actor = factories["federation.Actor"]()
+    r1 = factories["federation.Actor"]()
+    schedule_key_rotation = mocker.spy(activity, "schedule_key_rotation")
+
+    def handler(context):
+        yield {
+            "payload": {"type": "Delete", "actor": actor.fid, "to": [r1]},
+            "actor": actor,
+        }
+
+    router.connect({"type": "Delete"}, handler)
+    router.dispatch({"type": "Delete"}, {})
+
+    schedule_key_rotation.assert_called_once_with(
+        actor.id, settings.ACTOR_KEY_ROTATION_DELAY
+    )
diff --git a/api/tests/federation/test_api_views.py b/api/tests/federation/test_api_views.py
index c2d695184572fcfcbcd5bfc9a24f62f445d9640c..feb2ea24685b8e6d56087ecd41489bbef28f7a19 100644
--- a/api/tests/federation/test_api_views.py
+++ b/api/tests/federation/test_api_views.py
@@ -23,7 +23,7 @@ def test_user_can_list_their_library_follows(factories, logged_in_api_client):
 def test_user_can_fetch_library_using_url(mocker, factories, logged_in_api_client):
     library = factories["music.Library"]()
     mocked_retrieve = mocker.patch(
-        "funkwhale_api.federation.utils.retrieve", return_value=library
+        "funkwhale_api.federation.utils.retrieve_ap_object", return_value=library
     )
     url = reverse("api:v1:federation:libraries-fetch")
     response = logged_in_api_client.post(url, {"fid": library.fid})
diff --git a/api/tests/federation/test_authentication.py b/api/tests/federation/test_authentication.py
index 100971a3b737dd6a3a968d6df773a236cff6251d..7af7089f66c19bcadbb77a98e3c4eac253cf4382 100644
--- a/api/tests/federation/test_authentication.py
+++ b/api/tests/federation/test_authentication.py
@@ -1,4 +1,6 @@
-from funkwhale_api.federation import authentication, keys
+import pytest
+
+from funkwhale_api.federation import authentication, exceptions, keys
 
 
 def test_authenticate(factories, mocker, api_request):
@@ -38,3 +40,132 @@ def test_authenticate(factories, mocker, api_request):
     assert user.is_anonymous is True
     assert actor.public_key == public.decode("utf-8")
     assert actor.fid == actor_url
+
+
+def test_authenticate_skips_blocked_domain(factories, api_request):
+    policy = factories["moderation.InstancePolicy"](block_all=True, for_domain=True)
+    private, public = keys.get_key_pair()
+    actor_url = "https://{}/actor".format(policy.target_domain.name)
+
+    signed_request = factories["federation.SignedRequest"](
+        auth__key=private, auth__key_id=actor_url + "#main-key", auth__headers=["date"]
+    )
+    prepared = signed_request.prepare()
+    django_request = api_request.get(
+        "/",
+        **{
+            "HTTP_DATE": prepared.headers["date"],
+            "HTTP_SIGNATURE": prepared.headers["signature"],
+        }
+    )
+    authenticator = authentication.SignatureAuthentication()
+
+    with pytest.raises(exceptions.BlockedActorOrDomain):
+        authenticator.authenticate(django_request)
+
+
+def test_authenticate_skips_blocked_actor(factories, api_request):
+    policy = factories["moderation.InstancePolicy"](block_all=True, for_actor=True)
+    private, public = keys.get_key_pair()
+    actor_url = policy.target_actor.fid
+
+    signed_request = factories["federation.SignedRequest"](
+        auth__key=private, auth__key_id=actor_url + "#main-key", auth__headers=["date"]
+    )
+    prepared = signed_request.prepare()
+    django_request = api_request.get(
+        "/",
+        **{
+            "HTTP_DATE": prepared.headers["date"],
+            "HTTP_SIGNATURE": prepared.headers["signature"],
+        }
+    )
+    authenticator = authentication.SignatureAuthentication()
+
+    with pytest.raises(exceptions.BlockedActorOrDomain):
+        authenticator.authenticate(django_request)
+
+
+def test_authenticate_ignore_inactive_policy(factories, api_request, mocker):
+    policy = factories["moderation.InstancePolicy"](
+        block_all=True, for_domain=True, is_active=False
+    )
+    private, public = keys.get_key_pair()
+    actor_url = "https://{}/actor".format(policy.target_domain.name)
+
+    signed_request = factories["federation.SignedRequest"](
+        auth__key=private, auth__key_id=actor_url + "#main-key", auth__headers=["date"]
+    )
+    mocker.patch(
+        "funkwhale_api.federation.actors.get_actor_data",
+        return_value={
+            "id": actor_url,
+            "type": "Person",
+            "outbox": "https://test.com",
+            "inbox": "https://test.com",
+            "followers": "https://test.com",
+            "preferredUsername": "test",
+            "publicKey": {
+                "publicKeyPem": public.decode("utf-8"),
+                "owner": actor_url,
+                "id": actor_url + "#main-key",
+            },
+        },
+    )
+    prepared = signed_request.prepare()
+    django_request = api_request.get(
+        "/",
+        **{
+            "HTTP_DATE": prepared.headers["date"],
+            "HTTP_SIGNATURE": prepared.headers["signature"],
+        }
+    )
+    authenticator = authentication.SignatureAuthentication()
+    authenticator.authenticate(django_request)
+    actor = django_request.actor
+
+    assert actor.public_key == public.decode("utf-8")
+    assert actor.fid == actor_url
+
+
+def test_autenthicate_supports_blind_key_rotation(factories, mocker, api_request):
+    actor = factories["federation.Actor"]()
+    actor_url = actor.fid
+    # request is signed with a pair of new keys
+    new_private, new_public = keys.get_key_pair()
+    mocker.patch(
+        "funkwhale_api.federation.actors.get_actor_data",
+        return_value={
+            "id": actor_url,
+            "type": "Person",
+            "outbox": "https://test.com",
+            "inbox": "https://test.com",
+            "followers": "https://test.com",
+            "preferredUsername": "test",
+            "publicKey": {
+                "publicKeyPem": new_public.decode("utf-8"),
+                "owner": actor_url,
+                "id": actor_url + "#main-key",
+            },
+        },
+    )
+    signed_request = factories["federation.SignedRequest"](
+        auth__key=new_private,
+        auth__key_id=actor_url + "#main-key",
+        auth__headers=["date"],
+    )
+    prepared = signed_request.prepare()
+    django_request = api_request.get(
+        "/",
+        **{
+            "HTTP_DATE": prepared.headers["date"],
+            "HTTP_SIGNATURE": prepared.headers["signature"],
+        }
+    )
+    authenticator = authentication.SignatureAuthentication()
+    user, _ = authenticator.authenticate(django_request)
+    actor = django_request.actor
+
+    assert user.is_anonymous is True
+    assert actor.public_key == new_public.decode("utf-8")
+    assert actor.fid == actor_url
diff --git a/api/tests/federation/test_migrations.py b/api/tests/federation/test_migrations.py
new file mode 100644
index 0000000000000000000000000000000000000000..4a9ce427478a07bf201370106270fdefd7a0f2c8
--- /dev/null
+++ b/api/tests/federation/test_migrations.py
@@ -0,0 +1,34 @@
+def test_domain_14_migration(migrator):
+    a, f, t = ("federation", "0014_auto_20181205_0958", "0015_populate_domains")
+
+    migrator.migrate([(a, f)])
+    old_apps = migrator.loader.project_state([(a, f)]).apps
+    Actor = old_apps.get_model(a, "Actor")
+    a1 = Actor.objects.create(
+        fid="http://test1.com", preferred_username="test1", old_domain="dOmaiN1.com"
+    )
+    a2 = Actor.objects.create(
+        fid="http://test2.com", preferred_username="test2", old_domain="domain1.com"
+    )
+    a3 = Actor.objects.create(
+        fid="http://test3.com", preferred_username="test2", old_domain="domain2.com"
+    )
+
+    migrator.loader.build_graph()
+    migrator.migrate([(a, t)])
+    new_apps = migrator.loader.project_state([(a, t)]).apps
+
+    Actor = new_apps.get_model(a, "Actor")
+    Domain = new_apps.get_model(a, "Domain")
+
+    a1 = Actor.objects.get(pk=a1.pk)
+    a2 = Actor.objects.get(pk=a2.pk)
+    a3 = Actor.objects.get(pk=a3.pk)
+
+    assert Domain.objects.count() == 2
+    assert a1.domain == Domain.objects.get(pk="domain1.com")
+    assert a2.domain == Domain.objects.get(pk="domain1.com")
+    assert a3.domain == Domain.objects.get(pk="domain2.com")
+
+    assert Domain.objects.get(pk="domain1.com").creation_date == a1.creation_date
+    assert Domain.objects.get(pk="domain2.com").creation_date == a3.creation_date
diff --git a/api/tests/federation/test_models.py b/api/tests/federation/test_models.py
index 4a6131934994e1e109128d07bebe38ad805587bb..f59293b6780b32531fb71d43a8d923486e37ea92 100644
--- a/api/tests/federation/test_models.py
+++ b/api/tests/federation/test_models.py
@@ -1,6 +1,8 @@
 import pytest
 from django import db
 
+from funkwhale_api.federation import models
+
 
 def test_cannot_duplicate_actor(factories):
     actor = factories["federation.Actor"]()
@@ -54,3 +56,63 @@ def test_actor_get_quota(factories):
     expected = {"total": 10, "pending": 1, "skipped": 2, "errored": 3, "finished": 4}
 
     assert library.actor.get_current_usage() == expected
+
+
+@pytest.mark.parametrize(
+    "value, expected",
+    [
+        ("Domain.com", "domain.com"),
+        ("hello-WORLD.com", "hello-world.com"),
+        ("posés.com", "posés.com"),
+    ],
+)
+def test_domain_name_saved_properly(value, expected, factories):
+    domain = factories["federation.Domain"](name=value)
+    assert domain.name == expected
+
+
+def test_external_domains(factories, settings):
+    d1 = factories["federation.Domain"]()
+    d2 = factories["federation.Domain"]()
+    settings.FEDERATION_HOSTNAME = d1.pk
+
+    assert list(models.Domain.objects.external()) == [d2]
+
+
+def test_domain_stats(factories):
+    expected = {
+        "actors": 0,
+        "libraries": 0,
+        "tracks": 0,
+        "albums": 0,
+        "uploads": 0,
+        "artists": 0,
+        "outbox_activities": 0,
+        "received_library_follows": 0,
+        "emitted_library_follows": 0,
+        "media_total_size": 0,
+        "media_downloaded_size": 0,
+    }
+
+    domain = factories["federation.Domain"]()
+
+    assert domain.get_stats() == expected
+
+
+def test_actor_stats(factories):
+    expected = {
+        "libraries": 0,
+        "tracks": 0,
+        "albums": 0,
+        "uploads": 0,
+        "artists": 0,
+        "outbox_activities": 0,
+        "received_library_follows": 0,
+        "emitted_library_follows": 0,
+        "media_total_size": 0,
+        "media_downloaded_size": 0,
+    }
+
+    actor = factories["federation.Actor"]()
+
+    assert actor.get_stats() == expected
diff --git a/api/tests/federation/test_routes.py b/api/tests/federation/test_routes.py
index 79d194f5636c6ea396174946428d1953c7e8dbbf..7232b746cfa0768992ced9ca0bec818c58246bfa 100644
--- a/api/tests/federation/test_routes.py
+++ b/api/tests/federation/test_routes.py
@@ -9,6 +9,7 @@ from funkwhale_api.federation import routes, serializers
         ({"type": "Follow"}, routes.inbox_follow),
         ({"type": "Accept"}, routes.inbox_accept),
         ({"type": "Create", "object.type": "Audio"}, routes.inbox_create_audio),
+        ({"type": "Update", "object.type": "Library"}, routes.inbox_update_library),
         ({"type": "Delete", "object.type": "Library"}, routes.inbox_delete_library),
         ({"type": "Delete", "object.type": "Audio"}, routes.inbox_delete_audio),
         ({"type": "Undo", "object.type": "Follow"}, routes.inbox_undo_follow),
@@ -29,6 +30,7 @@ def test_inbox_routes(route, handler):
         ({"type": "Accept"}, routes.outbox_accept),
         ({"type": "Follow"}, routes.outbox_follow),
         ({"type": "Create", "object.type": "Audio"}, routes.outbox_create_audio),
+        ({"type": "Update", "object.type": "Library"}, routes.outbox_update_library),
         ({"type": "Delete", "object.type": "Library"}, routes.outbox_delete_library),
         ({"type": "Delete", "object.type": "Audio"}, routes.outbox_delete_audio),
         ({"type": "Undo", "object.type": "Follow"}, routes.outbox_undo_follow),
@@ -262,6 +264,55 @@ def test_outbox_delete_library(factories):
     assert activity["actor"] == library.actor
 
 
+def test_outbox_update_library(factories):
+    library = factories["music.Library"]()
+    activity = list(routes.outbox_update_library({"library": library}))[0]
+    expected = serializers.ActivitySerializer(
+        {"type": "Update", "object": serializers.LibrarySerializer(library).data}
+    ).data
+
+    expected["to"] = [{"type": "followers", "target": library}]
+
+    assert dict(activity["payload"]) == dict(expected)
+    assert activity["actor"] == library.actor
+
+
+def test_inbox_update_library(factories):
+    activity = factories["federation.Activity"]()
+
+    library = factories["music.Library"]()
+    data = serializers.LibrarySerializer(library).data
+    data["name"] = "New name"
+    payload = {"type": "Update", "actor": library.actor.fid, "object": data}
+
+    routes.inbox_update_library(
+        payload,
+        context={"actor": library.actor, "raise_exception": True, "activity": activity},
+    )
+
+    library.refresh_from_db()
+    assert library.name == "New name"
+
+
+# def test_inbox_update_library_impostor(factories):
+#     activity = factories["federation.Activity"]()
+#     impostor = factories["federation.Actor"]()
+#     library = factories["music.Library"]()
+#     payload = {
+#         "type": "Delete",
+#         "actor": library.actor.fid,
+#         "object": {"type": "Library", "id": library.fid},
+#     }
+
+#     routes.inbox_update_library(
+#         payload,
+#         context={"actor": impostor, "raise_exception": True, "activity": activity},
+#     )
+
+#     # not deleted, should still be here
+#     library.refresh_from_db()
+
+
 def test_inbox_delete_audio(factories):
     activity = factories["federation.Activity"]()
 
diff --git a/api/tests/federation/test_serializers.py b/api/tests/federation/test_serializers.py
index c43647070116d9beec041b6543bd28e6033a1a2a..207a8fbe5e21f8e0fd29f53b41350bc7a91d18e3 100644
--- a/api/tests/federation/test_serializers.py
+++ b/api/tests/federation/test_serializers.py
@@ -43,7 +43,7 @@ def test_actor_serializer_from_ap(db):
     assert actor.public_key == payload["publicKey"]["publicKeyPem"]
     assert actor.preferred_username == payload["preferredUsername"]
     assert actor.name == payload["name"]
-    assert actor.domain == "test.federation"
+    assert actor.domain.pk == "test.federation"
     assert actor.summary == payload["summary"]
     assert actor.type == "Person"
     assert actor.manually_approves_followers == payload["manuallyApprovesFollowers"]
@@ -71,7 +71,7 @@ def test_actor_serializer_only_mandatory_field_from_ap(db):
     assert actor.followers_url == payload["followers"]
     assert actor.following_url == payload["following"]
     assert actor.preferred_username == payload["preferredUsername"]
-    assert actor.domain == "test.federation"
+    assert actor.domain.pk == "test.federation"
     assert actor.type == "Person"
     assert actor.manually_approves_followers is None
 
@@ -110,7 +110,7 @@ def test_actor_serializer_to_ap():
         public_key=expected["publicKey"]["publicKeyPem"],
         preferred_username=expected["preferredUsername"],
         name=expected["name"],
-        domain="test.federation",
+        domain=models.Domain(pk="test.federation"),
         summary=expected["summary"],
         type="Person",
         manually_approves_followers=False,
@@ -135,7 +135,7 @@ def test_webfinger_serializer():
     actor = models.Actor(
         fid=expected["links"][0]["href"],
         preferred_username="service",
-        domain="test.federation",
+        domain=models.Domain(pk="test.federation"),
     )
     serializer = serializers.ActorWebfingerSerializer(actor)
 
@@ -476,7 +476,7 @@ def test_collection_page_serializer(factories):
 
 
 def test_music_library_serializer_to_ap(factories):
-    library = factories["music.Library"]()
+    library = factories["music.Library"](privacy_level="everyone")
     # pending, errored and skippednot included
     factories["music.Upload"](import_status="pending")
     factories["music.Upload"](import_status="errored")
@@ -488,11 +488,11 @@ def test_music_library_serializer_to_ap(factories):
             "https://w3id.org/security/v1",
             {},
         ],
+        "audience": "https://www.w3.org/ns/activitystreams#Public",
         "type": "Library",
         "id": library.fid,
         "name": library.name,
         "summary": library.description,
-        "audience": "",
         "actor": library.actor.fid,
         "totalItems": 0,
         "current": library.fid + "?page=1",
@@ -507,7 +507,7 @@ def test_music_library_serializer_to_ap(factories):
 def test_music_library_serializer_from_public(factories, mocker):
     actor = factories["federation.Actor"]()
     retrieve = mocker.patch(
-        "funkwhale_api.federation.utils.retrieve", return_value=actor
+        "funkwhale_api.federation.utils.retrieve_ap_object", return_value=actor
     )
     data = {
         "@context": [
@@ -550,7 +550,7 @@ def test_music_library_serializer_from_public(factories, mocker):
 def test_music_library_serializer_from_private(factories, mocker):
     actor = factories["federation.Actor"]()
     retrieve = mocker.patch(
-        "funkwhale_api.federation.utils.retrieve", return_value=actor
+        "funkwhale_api.federation.utils.retrieve_ap_object", return_value=actor
     )
     data = {
         "@context": [
@@ -632,7 +632,9 @@ def test_activity_pub_album_serializer_to_ap(factories):
 
 
 def test_activity_pub_track_serializer_to_ap(factories):
-    track = factories["music.Track"]()
+    track = factories["music.Track"](
+        license="cc-by-4.0", copyright="test", disc_number=3
+    )
     expected = {
         "@context": serializers.AP_CONTEXT,
         "published": track.creation_date.isoformat(),
@@ -641,6 +643,9 @@ def test_activity_pub_track_serializer_to_ap(factories):
         "id": track.fid,
         "name": track.title,
         "position": track.position,
+        "disc": track.disc_number,
+        "license": track.license.conf["identifiers"][0],
+        "copyright": "test",
         "artists": [
             serializers.ArtistSerializer(
                 track.artist, context={"include_ap_context": False}
@@ -666,6 +671,7 @@ def test_activity_pub_track_serializer_from_ap(factories, r_mock):
         "musicbrainzId": str(uuid.uuid4()),
         "name": "Black in back",
         "position": 5,
+        "disc": 1,
         "album": {
             "type": "Album",
             "id": "http://hello.album",
@@ -711,6 +717,7 @@ def test_activity_pub_track_serializer_from_ap(factories, r_mock):
     assert track.fid == data["id"]
     assert track.title == data["name"]
     assert track.position == data["position"]
+    assert track.disc_number == data["disc"]
     assert track.creation_date == published
     assert str(track.mbid) == data["musicbrainzId"]
 
@@ -891,7 +898,7 @@ def test_local_actor_serializer_to_ap(factories):
         public_key=expected["publicKey"]["publicKeyPem"],
         preferred_username=expected["preferredUsername"],
         name=expected["name"],
-        domain="test.federation",
+        domain=models.Domain.objects.create(pk="test.federation"),
         summary=expected["summary"],
         type="Person",
         manually_approves_followers=False,
diff --git a/api/tests/federation/test_tasks.py b/api/tests/federation/test_tasks.py
index 1f58055a259a0469f621f85b85b44519c6a32d4d..f3216eed77f235322ef61cb716f2c02b5a7e9bf1 100644
--- a/api/tests/federation/test_tasks.py
+++ b/api/tests/federation/test_tasks.py
@@ -138,3 +138,148 @@ def test_deliver_to_remote_error(factories, r_mock, now):
     assert delivery.is_delivered is False
     assert delivery.attempts == 1
     assert delivery.last_attempt_date == now
+
+
+def test_fetch_nodeinfo(factories, r_mock, now):
+    wellknown_url = "https://test.test/.well-known/nodeinfo"
+    nodeinfo_url = "https://test.test/nodeinfo"
+
+    r_mock.get(
+        wellknown_url,
+        json={
+            "links": [
+                {
+                    "rel": "http://nodeinfo.diaspora.software/ns/schema/2.0",
+                    "href": "https://test.test/nodeinfo",
+                }
+            ]
+        },
+    )
+    r_mock.get(nodeinfo_url, json={"hello": "world"})
+
+    assert tasks.fetch_nodeinfo("test.test") == {"hello": "world"}
+
+
+def test_update_domain_nodeinfo(factories, mocker, now):
+    domain = factories["federation.Domain"]()
+    mocker.patch.object(tasks, "fetch_nodeinfo", return_value={"hello": "world"})
+
+    assert domain.nodeinfo == {}
+    assert domain.nodeinfo_fetch_date is None
+
+    tasks.update_domain_nodeinfo(domain_name=domain.name)
+
+    domain.refresh_from_db()
+
+    assert domain.nodeinfo_fetch_date == now
+    assert domain.nodeinfo == {"status": "ok", "payload": {"hello": "world"}}
+
+
+def test_update_domain_nodeinfo_error(factories, r_mock, now):
+    domain = factories["federation.Domain"]()
+    wellknown_url = "https://{}/.well-known/nodeinfo".format(domain.name)
+
+    r_mock.get(wellknown_url, status_code=500)
+
+    tasks.update_domain_nodeinfo(domain_name=domain.name)
+
+    domain.refresh_from_db()
+
+    assert domain.nodeinfo_fetch_date == now
+    assert domain.nodeinfo == {
+        "status": "error",
+        "error": "500 Server Error: None for url: {}".format(wellknown_url),
+    }
+
+
+def test_handle_purge_actors(factories, mocker):
+    to_purge = factories["federation.Actor"]()
+    keeped = [
+        factories["music.Upload"](),
+        factories["federation.Activity"](),
+        factories["federation.InboxItem"](),
+        factories["federation.Follow"](),
+        factories["federation.LibraryFollow"](),
+    ]
+
+    library = factories["music.Library"](actor=to_purge)
+    deleted = [
+        library,
+        factories["music.Upload"](library=library),
+        factories["federation.Activity"](actor=to_purge),
+        factories["federation.InboxItem"](actor=to_purge),
+        factories["federation.Follow"](actor=to_purge),
+        factories["federation.LibraryFollow"](actor=to_purge),
+    ]
+
+    tasks.handle_purge_actors([to_purge.pk])
+
+    for k in keeped:
+        # this should not be deleted
+        k.refresh_from_db()
+
+    for d in deleted:
+        with pytest.raises(d.__class__.DoesNotExist):
+            d.refresh_from_db()
+
+
+def test_handle_purge_actors_restrict_media(factories, mocker):
+    to_purge = factories["federation.Actor"]()
+    keeped = [
+        factories["music.Upload"](),
+        factories["federation.Activity"](),
+        factories["federation.InboxItem"](),
+        factories["federation.Follow"](),
+        factories["federation.LibraryFollow"](),
+        factories["federation.Activity"](actor=to_purge),
+        factories["federation.InboxItem"](actor=to_purge),
+        factories["federation.Follow"](actor=to_purge),
+    ]
+
+    library = factories["music.Library"](actor=to_purge)
+    deleted = [
+        library,
+        factories["music.Upload"](library=library),
+        factories["federation.LibraryFollow"](actor=to_purge),
+    ]
+
+    tasks.handle_purge_actors([to_purge.pk], only=["media"])
+
+    for k in keeped:
+        # this should not be deleted
+        k.refresh_from_db()
+
+    for d in deleted:
+        with pytest.raises(d.__class__.DoesNotExist):
+            d.refresh_from_db()
+
+
+def test_purge_actors(factories, mocker):
+    handle_purge_actors = mocker.spy(tasks, "handle_purge_actors")
+    factories["federation.Actor"]()
+    to_delete = factories["federation.Actor"]()
+    to_delete_domain = factories["federation.Actor"]()
+    tasks.purge_actors(
+        ids=[to_delete.pk], domains=[to_delete_domain.domain.name], only=["hello"]
+    )
+
+    handle_purge_actors.assert_called_once_with(
+        ids=[to_delete.pk, to_delete_domain.pk], only=["hello"]
+    )
+
+
+def test_rotate_actor_key(factories, settings, mocker):
+    actor = factories["federation.Actor"](local=True)
+    get_key_pair = mocker.patch(
+        "funkwhale_api.federation.keys.get_key_pair",
+        return_value=(b"private", b"public"),
+    )
+
+    tasks.rotate_actor_key(actor_id=actor.pk)
+
+    actor.refresh_from_db()
+
+    get_key_pair.assert_called_once_with()
+
+    assert actor.public_key == "public"
+    assert actor.private_key == "private"
diff --git a/api/tests/federation/test_utils.py b/api/tests/federation/test_utils.py
index e89c52543e92df3862d0b64b196084bd2a2c7a02..a8d02cdb9cc30ae7468a01bbc5b787ce1da73b2e 100644
--- a/api/tests/federation/test_utils.py
+++ b/api/tests/federation/test_utils.py
@@ -1,7 +1,7 @@
 from rest_framework import serializers
 import pytest
 
-from funkwhale_api.federation import utils
+from funkwhale_api.federation import exceptions, utils
 
 
 @pytest.mark.parametrize(
@@ -53,20 +53,43 @@ def test_extract_headers_from_meta():
     assert cleaned_headers == expected
 
 
-def test_retrieve(r_mock):
+def test_retrieve_ap_object(db, r_mock):
     fid = "https://some.url"
     m = r_mock.get(fid, json={"hello": "world"})
-    result = utils.retrieve(fid)
+    result = utils.retrieve_ap_object(fid)
 
     assert result == {"hello": "world"}
     assert m.request_history[-1].headers["Accept"] == "application/activity+json"
 
 
+def test_retrieve_ap_object_honor_instance_policy_domain(factories):
+    domain = factories["moderation.InstancePolicy"](
+        block_all=True, for_domain=True
+    ).target_domain
+    fid = "https://{}/test".format(domain.name)
+
+    with pytest.raises(exceptions.BlockedActorOrDomain):
+        utils.retrieve_ap_object(fid)
+
+
+def test_retrieve_ap_object_honor_instance_policy_different_url_and_id(
+    r_mock, factories
+):
+    domain = factories["moderation.InstancePolicy"](
+        block_all=True, for_domain=True
+    ).target_domain
+    fid = "https://ok/test"
+    r_mock.get(fid, json={"id": "http://{}/test".format(domain.name)})
+
+    with pytest.raises(exceptions.BlockedActorOrDomain):
+        utils.retrieve_ap_object(fid)
+
+
 def test_retrieve_with_actor(r_mock, factories):
     actor = factories["federation.Actor"]()
     fid = "https://some.url"
     m = r_mock.get(fid, json={"hello": "world"})
-    result = utils.retrieve(fid, actor=actor)
+    result = utils.retrieve_ap_object(fid, actor=actor)
 
     assert result == {"hello": "world"}
     assert m.request_history[-1].headers["Accept"] == "application/activity+json"
@@ -76,16 +99,16 @@ def test_retrieve_with_actor(r_mock, factories):
 def test_retrieve_with_queryset(factories):
     actor = factories["federation.Actor"]()
 
-    assert utils.retrieve(actor.fid, queryset=actor.__class__)
+    assert utils.retrieve_ap_object(actor.fid, queryset=actor.__class__)
 
 
-def test_retrieve_with_serializer(r_mock):
+def test_retrieve_with_serializer(db, r_mock):
     class S(serializers.Serializer):
         def create(self, validated_data):
             return {"persisted": "object"}
 
     fid = "https://some.url"
     r_mock.get(fid, json={"hello": "world"})
-    result = utils.retrieve(fid, serializer_class=S)
+    result = utils.retrieve_ap_object(fid, serializer_class=S)
 
     assert result == {"persisted": "object"}
diff --git a/api/tests/instance/test_nodeinfo.py b/api/tests/instance/test_nodeinfo.py
index 0fa1b4fc3a5bf24122bb9aaf0c413fbbfbb4e60f..a5bdc70933c696faae1297540532b594453d110b 100644
--- a/api/tests/instance/test_nodeinfo.py
+++ b/api/tests/instance/test_nodeinfo.py
@@ -5,7 +5,7 @@ from funkwhale_api.instance import nodeinfo
 def test_nodeinfo_dump(preferences, mocker):
     preferences["instance__nodeinfo_stats_enabled"] = True
     stats = {
-        "users": 1,
+        "users": {"total": 1, "active_halfyear": 12, "active_month": 13},
         "tracks": 2,
         "albums": 3,
         "artists": 4,
@@ -21,7 +21,7 @@ def test_nodeinfo_dump(preferences, mocker):
         "protocols": ["activitypub"],
         "services": {"inbound": [], "outbound": []},
         "openRegistrations": preferences["users__registration_enabled"],
-        "usage": {"users": {"total": stats["users"]}},
+        "usage": {"users": {"total": 1, "activeHalfyear": 12, "activeMonth": 13}},
         "metadata": {
             "private": preferences["instance__nodeinfo_private"],
             "shortDescription": preferences["instance__short_description"],
@@ -32,7 +32,7 @@ def test_nodeinfo_dump(preferences, mocker):
                 "federationNeedsApproval": preferences[
                     "federation__music_needs_approval"
                 ],
-                "anonymousCanListen": preferences[
+                "anonymousCanListen": not preferences[
                     "common__api_authentication_required"
                 ],
                 "tracks": {"total": stats["tracks"]},
@@ -58,7 +58,7 @@ def test_nodeinfo_dump_stats_disabled(preferences, mocker):
         "protocols": ["activitypub"],
         "services": {"inbound": [], "outbound": []},
         "openRegistrations": preferences["users__registration_enabled"],
-        "usage": {"users": {"total": 0}},
+        "usage": {"users": {"total": 0, "activeHalfyear": 0, "activeMonth": 0}},
         "metadata": {
             "private": preferences["instance__nodeinfo_private"],
             "shortDescription": preferences["instance__short_description"],
@@ -69,7 +69,7 @@ def test_nodeinfo_dump_stats_disabled(preferences, mocker):
                 "federationNeedsApproval": preferences[
                     "federation__music_needs_approval"
                 ],
-                "anonymousCanListen": preferences[
+                "anonymousCanListen": not preferences[
                     "common__api_authentication_required"
                 ],
             },
diff --git a/api/tests/instance/test_stats.py b/api/tests/instance/test_stats.py
index 4820735d5d4b15841369eb8d5e564f892914fbf9..255e60d130f5a37330d2182e906b4e469d395bba 100644
--- a/api/tests/instance/test_stats.py
+++ b/api/tests/instance/test_stats.py
@@ -1,10 +1,15 @@
-from funkwhale_api.instance import stats
+import datetime
 
+from funkwhale_api.instance import stats
 
-def test_get_users(mocker):
-    mocker.patch("funkwhale_api.users.models.User.objects.count", return_value=42)
 
-    assert stats.get_users() == 42
+def test_get_users(factories, now):
+    factories["users.User"](last_activity=now)
+    factories["users.User"](last_activity=now - datetime.timedelta(days=29))
+    factories["users.User"](last_activity=now - datetime.timedelta(days=31))
+    factories["users.User"](last_activity=now - datetime.timedelta(days=190))
+    factories["users.User"](is_active=False)
+    assert stats.get_users() == {"total": 4, "active_month": 2, "active_halfyear": 3}
 
 
 def test_get_music_duration(factories):
diff --git a/api/tests/manage/test_filters.py b/api/tests/manage/test_filters.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/api/tests/manage/test_serializers.py b/api/tests/manage/test_serializers.py
index df55ab82393aa28a70ebdbb51c4d8650d08ca9ac..53bc2504b2487e018448755f4cd25b9438108efe 100644
--- a/api/tests/manage/test_serializers.py
+++ b/api/tests/manage/test_serializers.py
@@ -1,4 +1,7 @@
+import pytest
+
 from funkwhale_api.manage import serializers
+from funkwhale_api.federation import tasks as federation_tasks
 
 
 def test_manage_upload_action_delete(factories):
@@ -13,8 +16,7 @@ def test_manage_upload_action_delete(factories):
 def test_user_update_permission(factories):
     user = factories["users.User"](
         permission_library=False,
-        permission_upload=False,
-        permission_federation=True,
+        permission_moderation=False,
         permission_settings=True,
         is_active=True,
     )
@@ -22,7 +24,7 @@ def test_user_update_permission(factories):
         user,
         data={
             "is_active": False,
-            "permissions": {"federation": False, "upload": True},
+            "permissions": {"moderation": True, "settings": False},
             "upload_quota": 12,
         },
     )
@@ -32,7 +34,226 @@ def test_user_update_permission(factories):
 
     assert user.is_active is False
     assert user.upload_quota == 12
-    assert user.permission_federation is False
-    assert user.permission_upload is True
+    assert user.permission_moderation is True
     assert user.permission_library is False
-    assert user.permission_settings is True
+    assert user.permission_settings is False
+
+
+def test_manage_domain_serializer(factories, now):
+    domain = factories["federation.Domain"]()
+    setattr(domain, "actors_count", 42)
+    setattr(domain, "outbox_activities_count", 23)
+    expected = {
+        "name": domain.name,
+        "creation_date": domain.creation_date.isoformat().split("+")[0] + "Z",
+        "actors_count": 42,
+        "outbox_activities_count": 23,
+        "nodeinfo": {},
+        "nodeinfo_fetch_date": None,
+        "instance_policy": None,
+    }
+    s = serializers.ManageDomainSerializer(domain)
+
+    assert s.data == expected
+
+
+def test_manage_domain_serializer_validates_hostname(db):
+    s = serializers.ManageDomainSerializer(data={"name": "hello world"})
+
+    with pytest.raises(serializers.serializers.ValidationError):
+        s.is_valid(raise_exception=True)
+
+
+def test_manage_actor_serializer(factories, now):
+    actor = factories["federation.Actor"]()
+    setattr(actor, "uploads_count", 66)
+    expected = {
+        "id": actor.id,
+        "name": actor.name,
+        "creation_date": actor.creation_date.isoformat().split("+")[0] + "Z",
+        "last_fetch_date": actor.last_fetch_date.isoformat().split("+")[0] + "Z",
+        "uploads_count": 66,
+        "fid": actor.fid,
+        "url": actor.url,
+        "outbox_url": actor.outbox_url,
+        "shared_inbox_url": actor.shared_inbox_url,
+        "inbox_url": actor.inbox_url,
+        "domain": actor.domain_id,
+        "type": actor.type,
+        "summary": actor.summary,
+        "preferred_username": actor.preferred_username,
+        "manually_approves_followers": actor.manually_approves_followers,
+        "full_username": actor.full_username,
+        "user": None,
+        "instance_policy": None,
+    }
+    s = serializers.ManageActorSerializer(actor)
+
+    assert s.data == expected
+
+
+@pytest.mark.parametrize(
+    "factory_kwargs,expected",
+    [
+        (
+            {"for_domain": True, "target_domain__name": "test.federation"},
+            {"target": {"type": "domain", "id": "test.federation"}},
+        ),
+        (
+            {
+                "for_actor": True,
+                "target_actor__domain__name": "test.federation",
+                "target_actor__preferred_username": "hello",
+            },
+            {"target": {"type": "actor", "id": "hello@test.federation"}},
+        ),
+    ],
+)
+def test_instance_policy_serializer_repr(factories, factory_kwargs, expected):
+    policy = factories["moderation.InstancePolicy"](block_all=True, **factory_kwargs)
+
+    e = {
+        "id": policy.id,
+        "uuid": str(policy.uuid),
+        "creation_date": policy.creation_date.isoformat().split("+")[0] + "Z",
+        "actor": policy.actor.full_username,
+        "block_all": True,
+        "silence_activity": False,
+        "silence_notifications": False,
+        "reject_media": False,
+        "is_active": policy.is_active,
+        "summary": policy.summary,
+    }
+    e.update(expected)
+
+    assert serializers.ManageInstancePolicySerializer(policy).data == e
+
+
+def test_instance_policy_serializer_save_domain(factories):
+    domain = factories["federation.Domain"]()
+
+    data = {"target": {"id": domain.name, "type": "domain"}, "block_all": True}
+
+    serializer = serializers.ManageInstancePolicySerializer(data=data)
+    serializer.is_valid(raise_exception=True)
+    policy = serializer.save()
+
+    assert policy.target_domain == domain
+
+
+def test_instance_policy_serializer_save_actor(factories):
+    actor = factories["federation.Actor"]()
+
+    data = {"target": {"id": actor.full_username, "type": "actor"}, "block_all": True}
+
+    serializer = serializers.ManageInstancePolicySerializer(data=data)
+    serializer.is_valid(raise_exception=True)
+    policy = serializer.save()
+
+    assert policy.target_actor == actor
+
+
+def test_manage_actor_action_purge(factories, mocker):
+    actors = factories["federation.Actor"].create_batch(size=3)
+    s = serializers.ManageActorActionSerializer(queryset=None)
+    on_commit = mocker.patch("funkwhale_api.common.utils.on_commit")
+
+    s.handle_purge(actors[0].__class__.objects.all())
+    on_commit.assert_called_once_with(
+        federation_tasks.purge_actors.delay, ids=[a.pk for a in actors]
+    )
+
+
+def test_manage_domain_action_purge(factories, mocker):
+    domains = factories["federation.Domain"].create_batch(size=3)
+    s = serializers.ManageDomainActionSerializer(queryset=None)
+    on_commit = mocker.patch("funkwhale_api.common.utils.on_commit")
+
+    s.handle_purge(domains[0].__class__.objects.all())
+    on_commit.assert_called_once_with(
+        federation_tasks.purge_actors.delay, domains=[d.pk for d in domains]
+    )
+
+
+@pytest.mark.parametrize(
+    "param,expected_only", [("block_all", []), ("reject_media", ["media"])]
+)
+def test_instance_policy_serializer_purges_target_domain(
+    factories, mocker, param, expected_only
+):
+    params = {param: False}
+    if param != "block_all":
+        params["block_all"] = False
+    policy = factories["moderation.InstancePolicy"](for_domain=True, **params)
+    on_commit = mocker.patch("funkwhale_api.common.utils.on_commit")
+
+    serializer = serializers.ManageInstancePolicySerializer(
+        policy, data={param: True}, partial=True
+    )
+    serializer.is_valid(raise_exception=True)
+    serializer.save()
+
+    policy.refresh_from_db()
+
+    assert getattr(policy, param) is True
+    on_commit.assert_called_once_with(
+        federation_tasks.purge_actors.delay,
+        domains=[policy.target_domain_id],
+        only=expected_only,
+    )
+
+    on_commit.reset_mock()
+
+    # setting to false should have no effect
+    serializer = serializers.ManageInstancePolicySerializer(
+        policy, data={param: False}, partial=True
+    )
+    serializer.is_valid(raise_exception=True)
+    serializer.save()
+
+    policy.refresh_from_db()
+
+    assert getattr(policy, param) is False
+    assert on_commit.call_count == 0
+
+
+@pytest.mark.parametrize(
+    "param,expected_only", [("block_all", []), ("reject_media", ["media"])]
+)
+def test_instance_policy_serializer_purges_target_actor(
+    factories, mocker, param, expected_only
+):
+    params = {param: False}
+    if param != "block_all":
+        params["block_all"] = False
+    policy = factories["moderation.InstancePolicy"](for_actor=True, **params)
+    on_commit = mocker.patch("funkwhale_api.common.utils.on_commit")
+
+    serializer = serializers.ManageInstancePolicySerializer(
+        policy, data={param: True}, partial=True
+    )
+    serializer.is_valid(raise_exception=True)
+    serializer.save()
+
+    policy.refresh_from_db()
+
+    assert getattr(policy, param) is True
+    on_commit.assert_called_once_with(
+        federation_tasks.purge_actors.delay,
+        ids=[policy.target_actor_id],
+        only=expected_only,
+    )
+
+    on_commit.reset_mock()
+
+    # setting to false should have no effect
+    serializer = serializers.ManageInstancePolicySerializer(
+        policy, data={param: False}, partial=True
+    )
+    serializer.is_valid(raise_exception=True)
+    serializer.save()
+
+    policy.refresh_from_db()
+
+    assert getattr(policy, param) is False
+    assert on_commit.call_count == 0
diff --git a/api/tests/manage/test_views.py b/api/tests/manage/test_views.py
index a9920ce0761b655074cba3a1a7e18104fea8ca49..6402fb6505cdd1ff66d833631a55903ab4924687 100644
--- a/api/tests/manage/test_views.py
+++ b/api/tests/manage/test_views.py
@@ -1,6 +1,8 @@
 import pytest
 from django.urls import reverse
 
+from funkwhale_api.federation import models as federation_models
+from funkwhale_api.federation import tasks as federation_tasks
 from funkwhale_api.manage import serializers, views
 
 
@@ -10,6 +12,9 @@ from funkwhale_api.manage import serializers, views
         (views.ManageUploadViewSet, ["library"], "and"),
         (views.ManageUserViewSet, ["settings"], "and"),
         (views.ManageInvitationViewSet, ["settings"], "and"),
+        (views.ManageDomainViewSet, ["moderation"], "and"),
+        (views.ManageActorViewSet, ["moderation"], "and"),
+        (views.ManageInstancePolicyViewSet, ["moderation"], "and"),
     ],
 )
 def test_permissions(assert_user_permission, view, permissions, operator):
@@ -64,3 +69,93 @@ def test_invitation_view_create(factories, superuser_api_client, mocker):
 
     assert response.status_code == 201
     assert superuser_api_client.user.invitations.latest("id") is not None
+
+
+def test_domain_list(factories, superuser_api_client, settings):
+    factories["federation.Domain"](pk=settings.FEDERATION_HOSTNAME)
+    d = factories["federation.Domain"]()
+    url = reverse("api:v1:manage:federation:domains-list")
+    response = superuser_api_client.get(url)
+
+    assert response.status_code == 200
+
+    assert response.data["count"] == 1
+    assert response.data["results"][0]["name"] == d.pk
+
+
+def test_domain_detail(factories, superuser_api_client):
+    d = factories["federation.Domain"]()
+    url = reverse("api:v1:manage:federation:domains-detail", kwargs={"pk": d.name})
+    response = superuser_api_client.get(url)
+
+    assert response.status_code == 200
+    assert response.data["name"] == d.pk
+
+
+def test_domain_create(superuser_api_client):
+    url = reverse("api:v1:manage:federation:domains-list")
+    response = superuser_api_client.post(url, {"name": "test.federation"})
+
+    assert response.status_code == 201
+    assert federation_models.Domain.objects.filter(pk="test.federation").exists()
+
+
+def test_domain_nodeinfo(factories, superuser_api_client, mocker):
+    domain = factories["federation.Domain"]()
+    url = reverse(
+        "api:v1:manage:federation:domains-nodeinfo", kwargs={"pk": domain.name}
+    )
+    mocker.patch.object(
+        federation_tasks, "fetch_nodeinfo", return_value={"hello": "world"}
+    )
+    update_domain_nodeinfo = mocker.spy(federation_tasks, "update_domain_nodeinfo")
+    response = superuser_api_client.get(url)
+    assert response.status_code == 200
+    assert response.data == {"status": "ok", "payload": {"hello": "world"}}
+
+    update_domain_nodeinfo.assert_called_once_with(domain_name=domain.name)
+
+
+def test_domain_stats(factories, superuser_api_client, mocker):
+    domain = factories["federation.Domain"]()
+    mocker.patch.object(domain.__class__, "get_stats", return_value={"hello": "world"})
+    url = reverse("api:v1:manage:federation:domains-stats", kwargs={"pk": domain.name})
+    response = superuser_api_client.get(url)
+    assert response.status_code == 200
+    assert response.data == {"hello": "world"}
+
+
+def test_actor_list(factories, superuser_api_client, settings):
+    actor = factories["federation.Actor"]()
+    url = reverse("api:v1:manage:accounts-list")
+    response = superuser_api_client.get(url)
+
+    assert response.status_code == 200
+
+    assert response.data["count"] == 1
+    assert response.data["results"][0]["id"] == actor.id
+
+
+def test_actor_detail(factories, superuser_api_client):
+    actor = factories["federation.Actor"]()
+    url = reverse("api:v1:manage:accounts-detail", kwargs={"pk": actor.full_username})
+    response = superuser_api_client.get(url)
+
+    assert response.status_code == 200
+    assert response.data["id"] == actor.id
+
+
+def test_instance_policy_create(superuser_api_client, factories):
+    domain = factories["federation.Domain"]()
+    actor = superuser_api_client.user.create_actor()
+    url = reverse("api:v1:manage:moderation:instance-policies-list")
+    response = superuser_api_client.post(
+        url,
+        {"target": {"type": "domain", "id": domain.name}, "block_all": True},
+        format="json",
+    )
+
+    assert response.status_code == 201
+
+    policy = domain.instance_policy
+    assert policy.actor == actor
diff --git a/api/tests/music/licenses.json b/api/tests/music/licenses.json
new file mode 100644
index 0000000000000000000000000000000000000000..5a2ecd1323c44f302ef91d2cfde77a9aedf8b7d1
--- /dev/null
+++ b/api/tests/music/licenses.json
@@ -0,0 +1,4539 @@
+[
+    {
+        "name": "Creative commons - Attribution 1.0",
+        "code": "cc-by-1.0",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/1.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/1.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 2.0",
+        "code": "cc-by-2.0",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/2.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/2.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 2.5",
+        "code": "cc-by-2.5",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/2.5/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/2.5/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 2.5 Argentina",
+        "code": "cc-by-2.5-ar",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/2.5/ar/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/2.5/ar/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 2.5 Bulgaria",
+        "code": "cc-by-2.5-bg",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/2.5/bg/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/2.5/bg/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 2.5 Canada",
+        "code": "cc-by-2.5-ca",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/2.5/ca/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/2.5/ca/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 2.5 Colombia",
+        "code": "cc-by-2.5-co",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/2.5/co/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/2.5/co/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 2.5 Denmark",
+        "code": "cc-by-2.5-dk",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/2.5/dk/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/2.5/dk/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 2.5 Hungary",
+        "code": "cc-by-2.5-hu",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/2.5/hu/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/2.5/hu/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 2.5 Israel",
+        "code": "cc-by-2.5-il",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/2.5/il/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/2.5/il/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 2.5 India",
+        "code": "cc-by-2.5-in",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/2.5/in/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/2.5/in/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 2.5 Macedonia",
+        "code": "cc-by-2.5-mk",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/2.5/mk/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/2.5/mk/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 2.5 Malta",
+        "code": "cc-by-2.5-mt",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/2.5/mt/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/2.5/mt/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 2.5 Mexico",
+        "code": "cc-by-2.5-mx",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/2.5/mx/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/2.5/mx/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 2.5 Malaysia",
+        "code": "cc-by-2.5-my",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/2.5/my/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/2.5/my/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 2.5 Peru",
+        "code": "cc-by-2.5-pe",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/2.5/pe/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/2.5/pe/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 2.5 UK: Scotland",
+        "code": "cc-by-2.5-scotland",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/2.5/scotland/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/2.5/scotland/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0",
+        "code": "cc-by-3.0",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Austria",
+        "code": "cc-by-3.0-at",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/at/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/at/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Australia",
+        "code": "cc-by-3.0-au",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/au/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/au/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Brazil",
+        "code": "cc-by-3.0-br",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/br/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/br/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Switzerland",
+        "code": "cc-by-3.0-ch",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/ch/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/ch/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Chile",
+        "code": "cc-by-3.0-cl",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/cl/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/cl/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 China Mainland",
+        "code": "cc-by-3.0-cn",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/cn/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/cn/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Costa Rica",
+        "code": "cc-by-3.0-cr",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/cr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/cr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Czech Republic",
+        "code": "cc-by-3.0-cz",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/cz/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/cz/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Germany",
+        "code": "cc-by-3.0-de",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/de/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/de/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Ecuador",
+        "code": "cc-by-3.0-ec",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/ec/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/ec/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Estonia",
+        "code": "cc-by-3.0-ee",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/ee/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/ee/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Egypt",
+        "code": "cc-by-3.0-eg",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/eg/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/eg/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Spain",
+        "code": "cc-by-3.0-es",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/es/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/es/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 France",
+        "code": "cc-by-3.0-fr",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/fr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/fr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Greece",
+        "code": "cc-by-3.0-gr",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/gr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/gr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Guatemala",
+        "code": "cc-by-3.0-gt",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/gt/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/gt/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Hong Kong",
+        "code": "cc-by-3.0-hk",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/hk/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/hk/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Croatia",
+        "code": "cc-by-3.0-hr",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/hr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/hr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Ireland",
+        "code": "cc-by-3.0-ie",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/ie/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/ie/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 IGO",
+        "code": "cc-by-3.0-igo",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/igo/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/igo/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Italy",
+        "code": "cc-by-3.0-it",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/it/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/it/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Luxembourg",
+        "code": "cc-by-3.0-lu",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/lu/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/lu/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Netherlands",
+        "code": "cc-by-3.0-nl",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/nl/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/nl/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Norway",
+        "code": "cc-by-3.0-no",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/no/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/no/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 New Zealand",
+        "code": "cc-by-3.0-nz",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/nz/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/nz/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Philippines",
+        "code": "cc-by-3.0-ph",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/ph/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/ph/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Poland",
+        "code": "cc-by-3.0-pl",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/pl/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/pl/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Puerto Rico",
+        "code": "cc-by-3.0-pr",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/pr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/pr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Portugal",
+        "code": "cc-by-3.0-pt",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/pt/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/pt/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Romania",
+        "code": "cc-by-3.0-ro",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/ro/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/ro/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Serbia",
+        "code": "cc-by-3.0-rs",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/rs/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/rs/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Singapore",
+        "code": "cc-by-3.0-sg",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/sg/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/sg/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Thailand",
+        "code": "cc-by-3.0-th",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/th/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/th/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Taiwan",
+        "code": "cc-by-3.0-tw",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/tw/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/tw/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Uganda",
+        "code": "cc-by-3.0-ug",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/ug/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/ug/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 United States",
+        "code": "cc-by-3.0-us",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/us/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/us/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Venezuela",
+        "code": "cc-by-3.0-ve",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/ve/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/ve/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 Vietnam",
+        "code": "cc-by-3.0-vn",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/vn/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/vn/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 3.0 South Africa",
+        "code": "cc-by-3.0-za",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/3.0/za/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/3.0/za/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution 4.0",
+        "code": "cc-by-4.0",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by/4.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by/4.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 1.0",
+        "code": "cc-by-nc-1.0",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/1.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/1.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 2.0",
+        "code": "cc-by-nc-2.0",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/2.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/2.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 2.5",
+        "code": "cc-by-nc-2.5",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/2.5/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/2.5/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 2.5 Argentina",
+        "code": "cc-by-nc-2.5-ar",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/2.5/ar/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/2.5/ar/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 2.5 Bulgaria",
+        "code": "cc-by-nc-2.5-bg",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/2.5/bg/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/2.5/bg/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 2.5 Canada",
+        "code": "cc-by-nc-2.5-ca",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/2.5/ca/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/2.5/ca/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 2.5 Colombia",
+        "code": "cc-by-nc-2.5-co",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/2.5/co/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/2.5/co/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 2.5 Denmark",
+        "code": "cc-by-nc-2.5-dk",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/2.5/dk/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/2.5/dk/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 2.5 Hungary",
+        "code": "cc-by-nc-2.5-hu",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/2.5/hu/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/2.5/hu/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 2.5 Israel",
+        "code": "cc-by-nc-2.5-il",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/2.5/il/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/2.5/il/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 2.5 India",
+        "code": "cc-by-nc-2.5-in",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/2.5/in/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/2.5/in/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 2.5 Macedonia",
+        "code": "cc-by-nc-2.5-mk",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/2.5/mk/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/2.5/mk/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 2.5 Malta",
+        "code": "cc-by-nc-2.5-mt",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/2.5/mt/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/2.5/mt/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 2.5 Mexico",
+        "code": "cc-by-nc-2.5-mx",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/2.5/mx/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/2.5/mx/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 2.5 Malaysia",
+        "code": "cc-by-nc-2.5-my",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/2.5/my/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/2.5/my/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 2.5 Peru",
+        "code": "cc-by-nc-2.5-pe",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/2.5/pe/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/2.5/pe/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 2.5 UK: Scotland",
+        "code": "cc-by-nc-2.5-scotland",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/2.5/scotland/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/2.5/scotland/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0",
+        "code": "cc-by-nc-3.0",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Austria",
+        "code": "cc-by-nc-3.0-at",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/at/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/at/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Australia",
+        "code": "cc-by-nc-3.0-au",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/au/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/au/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Brazil",
+        "code": "cc-by-nc-3.0-br",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/br/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/br/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Switzerland",
+        "code": "cc-by-nc-3.0-ch",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/ch/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/ch/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Chile",
+        "code": "cc-by-nc-3.0-cl",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/cl/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/cl/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 China Mainland",
+        "code": "cc-by-nc-3.0-cn",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/cn/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/cn/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Costa Rica",
+        "code": "cc-by-nc-3.0-cr",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/cr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/cr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Czech Republic",
+        "code": "cc-by-nc-3.0-cz",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/cz/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/cz/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Germany",
+        "code": "cc-by-nc-3.0-de",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/de/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/de/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Ecuador",
+        "code": "cc-by-nc-3.0-ec",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/ec/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/ec/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Estonia",
+        "code": "cc-by-nc-3.0-ee",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/ee/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/ee/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Egypt",
+        "code": "cc-by-nc-3.0-eg",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/eg/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/eg/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Spain",
+        "code": "cc-by-nc-3.0-es",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/es/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/es/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 France",
+        "code": "cc-by-nc-3.0-fr",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/fr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/fr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Greece",
+        "code": "cc-by-nc-3.0-gr",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/gr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/gr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Guatemala",
+        "code": "cc-by-nc-3.0-gt",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/gt/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/gt/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Hong Kong",
+        "code": "cc-by-nc-3.0-hk",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/hk/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/hk/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Croatia",
+        "code": "cc-by-nc-3.0-hr",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/hr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/hr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Ireland",
+        "code": "cc-by-nc-3.0-ie",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/ie/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/ie/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 IGO",
+        "code": "cc-by-nc-3.0-igo",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/igo/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/igo/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Italy",
+        "code": "cc-by-nc-3.0-it",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/it/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/it/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Luxembourg",
+        "code": "cc-by-nc-3.0-lu",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/lu/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/lu/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Netherlands",
+        "code": "cc-by-nc-3.0-nl",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/nl/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/nl/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Norway",
+        "code": "cc-by-nc-3.0-no",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/no/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/no/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 New Zealand",
+        "code": "cc-by-nc-3.0-nz",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/nz/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/nz/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Philippines",
+        "code": "cc-by-nc-3.0-ph",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/ph/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/ph/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Poland",
+        "code": "cc-by-nc-3.0-pl",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/pl/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/pl/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Puerto Rico",
+        "code": "cc-by-nc-3.0-pr",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/pr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/pr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Portugal",
+        "code": "cc-by-nc-3.0-pt",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/pt/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/pt/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Romania",
+        "code": "cc-by-nc-3.0-ro",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/ro/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/ro/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Serbia",
+        "code": "cc-by-nc-3.0-rs",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/rs/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/rs/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Singapore",
+        "code": "cc-by-nc-3.0-sg",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/sg/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/sg/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Thailand",
+        "code": "cc-by-nc-3.0-th",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/th/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/th/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Taiwan",
+        "code": "cc-by-nc-3.0-tw",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/tw/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/tw/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Uganda",
+        "code": "cc-by-nc-3.0-ug",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/ug/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/ug/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 United States",
+        "code": "cc-by-nc-3.0-us",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/us/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/us/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Venezuela",
+        "code": "cc-by-nc-3.0-ve",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/ve/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/ve/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 Vietnam",
+        "code": "cc-by-nc-3.0-vn",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/vn/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/vn/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 3.0 South Africa",
+        "code": "cc-by-nc-3.0-za",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/3.0/za/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/3.0/za/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial 4.0",
+        "code": "cc-by-nc-4.0",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc/4.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc/4.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 1.0",
+        "code": "cc-by-nc-nd-1.0",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/1.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/1.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.0",
+        "code": "cc-by-nc-nd-2.0",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/2.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/2.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5",
+        "code": "cc-by-nc-nd-2.5",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/2.5/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5 Argentina",
+        "code": "cc-by-nc-nd-2.5-ar",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/ar/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/2.5/ar/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5 Bulgaria",
+        "code": "cc-by-nc-nd-2.5-bg",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/bg/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/2.5/bg/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5 Canada",
+        "code": "cc-by-nc-nd-2.5-ca",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/ca/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/2.5/ca/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5 Colombia",
+        "code": "cc-by-nc-nd-2.5-co",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/co/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/2.5/co/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5 Denmark",
+        "code": "cc-by-nc-nd-2.5-dk",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/dk/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/2.5/dk/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5 Hungary",
+        "code": "cc-by-nc-nd-2.5-hu",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/hu/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/2.5/hu/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5 Israel",
+        "code": "cc-by-nc-nd-2.5-il",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/il/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/2.5/il/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5 India",
+        "code": "cc-by-nc-nd-2.5-in",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/in/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/2.5/in/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5 Macedonia",
+        "code": "cc-by-nc-nd-2.5-mk",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/mk/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/2.5/mk/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5 Malta",
+        "code": "cc-by-nc-nd-2.5-mt",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/mt/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/2.5/mt/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5 Mexico",
+        "code": "cc-by-nc-nd-2.5-mx",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/mx/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/2.5/mx/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5 Malaysia",
+        "code": "cc-by-nc-nd-2.5-my",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/my/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/2.5/my/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5 Peru",
+        "code": "cc-by-nc-nd-2.5-pe",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/pe/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/2.5/pe/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5 UK: Scotland",
+        "code": "cc-by-nc-nd-2.5-scotland",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/scotland/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/2.5/scotland/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0",
+        "code": "cc-by-nc-nd-3.0",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Austria",
+        "code": "cc-by-nc-nd-3.0-at",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/at/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/at/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Australia",
+        "code": "cc-by-nc-nd-3.0-au",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/au/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/au/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Brazil",
+        "code": "cc-by-nc-nd-3.0-br",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/br/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/br/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Switzerland",
+        "code": "cc-by-nc-nd-3.0-ch",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/ch/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/ch/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Chile",
+        "code": "cc-by-nc-nd-3.0-cl",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/cl/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/cl/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 China Mainland",
+        "code": "cc-by-nc-nd-3.0-cn",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/cn/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/cn/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Costa Rica",
+        "code": "cc-by-nc-nd-3.0-cr",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/cr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/cr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Czech Republic",
+        "code": "cc-by-nc-nd-3.0-cz",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/cz/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/cz/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Germany",
+        "code": "cc-by-nc-nd-3.0-de",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/de/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/de/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Ecuador",
+        "code": "cc-by-nc-nd-3.0-ec",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/ec/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/ec/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Estonia",
+        "code": "cc-by-nc-nd-3.0-ee",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/ee/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/ee/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Egypt",
+        "code": "cc-by-nc-nd-3.0-eg",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/eg/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/eg/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Spain",
+        "code": "cc-by-nc-nd-3.0-es",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/es/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/es/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 France",
+        "code": "cc-by-nc-nd-3.0-fr",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/fr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/fr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Greece",
+        "code": "cc-by-nc-nd-3.0-gr",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/gr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/gr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Guatemala",
+        "code": "cc-by-nc-nd-3.0-gt",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/gt/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/gt/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Hong Kong",
+        "code": "cc-by-nc-nd-3.0-hk",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/hk/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/hk/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Croatia",
+        "code": "cc-by-nc-nd-3.0-hr",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/hr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/hr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Ireland",
+        "code": "cc-by-nc-nd-3.0-ie",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/ie/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/ie/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 IGO",
+        "code": "cc-by-nc-nd-3.0-igo",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/igo/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/igo/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Italy",
+        "code": "cc-by-nc-nd-3.0-it",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/it/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/it/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Luxembourg",
+        "code": "cc-by-nc-nd-3.0-lu",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/lu/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/lu/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Netherlands",
+        "code": "cc-by-nc-nd-3.0-nl",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/nl/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/nl/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Norway",
+        "code": "cc-by-nc-nd-3.0-no",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/no/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/no/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 New Zealand",
+        "code": "cc-by-nc-nd-3.0-nz",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/nz/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/nz/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Philippines",
+        "code": "cc-by-nc-nd-3.0-ph",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/ph/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/ph/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Poland",
+        "code": "cc-by-nc-nd-3.0-pl",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/pl/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/pl/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Puerto Rico",
+        "code": "cc-by-nc-nd-3.0-pr",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/pr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/pr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Portugal",
+        "code": "cc-by-nc-nd-3.0-pt",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/pt/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/pt/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Romania",
+        "code": "cc-by-nc-nd-3.0-ro",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/ro/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/ro/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Serbia",
+        "code": "cc-by-nc-nd-3.0-rs",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/rs/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/rs/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Singapore",
+        "code": "cc-by-nc-nd-3.0-sg",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/sg/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/sg/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Thailand",
+        "code": "cc-by-nc-nd-3.0-th",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/th/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/th/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Taiwan",
+        "code": "cc-by-nc-nd-3.0-tw",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/tw/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/tw/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Uganda",
+        "code": "cc-by-nc-nd-3.0-ug",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/ug/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/ug/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 United States",
+        "code": "cc-by-nc-nd-3.0-us",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/us/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/us/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Venezuela",
+        "code": "cc-by-nc-nd-3.0-ve",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/ve/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/ve/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Vietnam",
+        "code": "cc-by-nc-nd-3.0-vn",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/vn/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/vn/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 South Africa",
+        "code": "cc-by-nc-nd-3.0-za",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/za/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/3.0/za/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 4.0",
+        "code": "cc-by-nc-nd-4.0",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-nd/4.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-nd/4.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 1.0",
+        "code": "cc-by-nc-sa-1.0",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/1.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/1.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.0",
+        "code": "cc-by-nc-sa-2.0",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/2.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/2.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5",
+        "code": "cc-by-nc-sa-2.5",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/2.5/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5 Argentina",
+        "code": "cc-by-nc-sa-2.5-ar",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/ar/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/2.5/ar/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5 Bulgaria",
+        "code": "cc-by-nc-sa-2.5-bg",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/bg/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/2.5/bg/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5 Canada",
+        "code": "cc-by-nc-sa-2.5-ca",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/ca/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/2.5/ca/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5 Colombia",
+        "code": "cc-by-nc-sa-2.5-co",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/co/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/2.5/co/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5 Denmark",
+        "code": "cc-by-nc-sa-2.5-dk",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/dk/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/2.5/dk/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5 Hungary",
+        "code": "cc-by-nc-sa-2.5-hu",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/hu/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/2.5/hu/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5 Israel",
+        "code": "cc-by-nc-sa-2.5-il",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/il/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/2.5/il/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5 India",
+        "code": "cc-by-nc-sa-2.5-in",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/in/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/2.5/in/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5 Macedonia",
+        "code": "cc-by-nc-sa-2.5-mk",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/mk/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/2.5/mk/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5 Malta",
+        "code": "cc-by-nc-sa-2.5-mt",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/mt/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/2.5/mt/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5 Mexico",
+        "code": "cc-by-nc-sa-2.5-mx",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/mx/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/2.5/mx/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5 Malaysia",
+        "code": "cc-by-nc-sa-2.5-my",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/my/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/2.5/my/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5 Peru",
+        "code": "cc-by-nc-sa-2.5-pe",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/pe/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/2.5/pe/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5 UK: Scotland",
+        "code": "cc-by-nc-sa-2.5-scotland",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/scotland/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/2.5/scotland/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0",
+        "code": "cc-by-nc-sa-3.0",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Austria",
+        "code": "cc-by-nc-sa-3.0-at",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/at/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/at/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Australia",
+        "code": "cc-by-nc-sa-3.0-au",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/au/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/au/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Brazil",
+        "code": "cc-by-nc-sa-3.0-br",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/br/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/br/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Switzerland",
+        "code": "cc-by-nc-sa-3.0-ch",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/ch/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/ch/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Chile",
+        "code": "cc-by-nc-sa-3.0-cl",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/cl/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/cl/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 China Mainland",
+        "code": "cc-by-nc-sa-3.0-cn",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/cn/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/cn/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Costa Rica",
+        "code": "cc-by-nc-sa-3.0-cr",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/cr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/cr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Czech Republic",
+        "code": "cc-by-nc-sa-3.0-cz",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/cz/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/cz/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Germany",
+        "code": "cc-by-nc-sa-3.0-de",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/de/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/de/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Ecuador",
+        "code": "cc-by-nc-sa-3.0-ec",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/ec/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/ec/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Estonia",
+        "code": "cc-by-nc-sa-3.0-ee",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/ee/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/ee/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Egypt",
+        "code": "cc-by-nc-sa-3.0-eg",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/eg/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/eg/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Spain",
+        "code": "cc-by-nc-sa-3.0-es",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/es/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/es/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 France",
+        "code": "cc-by-nc-sa-3.0-fr",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/fr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/fr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Greece",
+        "code": "cc-by-nc-sa-3.0-gr",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/gr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/gr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Guatemala",
+        "code": "cc-by-nc-sa-3.0-gt",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/gt/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/gt/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Hong Kong",
+        "code": "cc-by-nc-sa-3.0-hk",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/hk/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/hk/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Croatia",
+        "code": "cc-by-nc-sa-3.0-hr",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/hr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/hr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Ireland",
+        "code": "cc-by-nc-sa-3.0-ie",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/ie/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/ie/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 IGO",
+        "code": "cc-by-nc-sa-3.0-igo",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/igo/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/igo/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Italy",
+        "code": "cc-by-nc-sa-3.0-it",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/it/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/it/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Luxembourg",
+        "code": "cc-by-nc-sa-3.0-lu",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/lu/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/lu/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Netherlands",
+        "code": "cc-by-nc-sa-3.0-nl",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/nl/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/nl/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Norway",
+        "code": "cc-by-nc-sa-3.0-no",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/no/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/no/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 New Zealand",
+        "code": "cc-by-nc-sa-3.0-nz",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/nz/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/nz/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Philippines",
+        "code": "cc-by-nc-sa-3.0-ph",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/ph/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/ph/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Poland",
+        "code": "cc-by-nc-sa-3.0-pl",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/pl/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/pl/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Puerto Rico",
+        "code": "cc-by-nc-sa-3.0-pr",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/pr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/pr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Portugal",
+        "code": "cc-by-nc-sa-3.0-pt",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/pt/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/pt/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Romania",
+        "code": "cc-by-nc-sa-3.0-ro",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/ro/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/ro/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Serbia",
+        "code": "cc-by-nc-sa-3.0-rs",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/rs/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/rs/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Singapore",
+        "code": "cc-by-nc-sa-3.0-sg",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/sg/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/sg/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Thailand",
+        "code": "cc-by-nc-sa-3.0-th",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/th/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/th/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Taiwan",
+        "code": "cc-by-nc-sa-3.0-tw",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/tw/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/tw/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Uganda",
+        "code": "cc-by-nc-sa-3.0-ug",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/ug/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/ug/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 United States",
+        "code": "cc-by-nc-sa-3.0-us",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/us/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/us/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Venezuela",
+        "code": "cc-by-nc-sa-3.0-ve",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/ve/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/ve/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Vietnam",
+        "code": "cc-by-nc-sa-3.0-vn",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/vn/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/vn/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 South Africa",
+        "code": "cc-by-nc-sa-3.0-za",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/za/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/3.0/za/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NonCommercial-ShareAlike 4.0",
+        "code": "cc-by-nc-sa-4.0",
+        "redistribute": true,
+        "commercial": false,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nc-sa/4.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nc-sa/4.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 1.0",
+        "code": "cc-by-nd-1.0",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/1.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/1.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 2.0",
+        "code": "cc-by-nd-2.0",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/2.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/2.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 2.5",
+        "code": "cc-by-nd-2.5",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/2.5/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/2.5/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 2.5 Argentina",
+        "code": "cc-by-nd-2.5-ar",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/2.5/ar/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/2.5/ar/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 2.5 Bulgaria",
+        "code": "cc-by-nd-2.5-bg",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/2.5/bg/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/2.5/bg/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 2.5 Canada",
+        "code": "cc-by-nd-2.5-ca",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/2.5/ca/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/2.5/ca/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 2.5 Colombia",
+        "code": "cc-by-nd-2.5-co",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/2.5/co/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/2.5/co/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 2.5 Denmark",
+        "code": "cc-by-nd-2.5-dk",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/2.5/dk/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/2.5/dk/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 2.5 Hungary",
+        "code": "cc-by-nd-2.5-hu",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/2.5/hu/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/2.5/hu/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 2.5 Israel",
+        "code": "cc-by-nd-2.5-il",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/2.5/il/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/2.5/il/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 2.5 India",
+        "code": "cc-by-nd-2.5-in",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/2.5/in/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/2.5/in/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 2.5 Macedonia",
+        "code": "cc-by-nd-2.5-mk",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/2.5/mk/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/2.5/mk/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 2.5 Malta",
+        "code": "cc-by-nd-2.5-mt",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/2.5/mt/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/2.5/mt/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 2.5 Mexico",
+        "code": "cc-by-nd-2.5-mx",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/2.5/mx/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/2.5/mx/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 2.5 Malaysia",
+        "code": "cc-by-nd-2.5-my",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/2.5/my/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/2.5/my/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 2.5 Peru",
+        "code": "cc-by-nd-2.5-pe",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/2.5/pe/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/2.5/pe/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 2.5 UK: Scotland",
+        "code": "cc-by-nd-2.5-scotland",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/2.5/scotland/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/2.5/scotland/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0",
+        "code": "cc-by-nd-3.0",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Austria",
+        "code": "cc-by-nd-3.0-at",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/at/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/at/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Australia",
+        "code": "cc-by-nd-3.0-au",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/au/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/au/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Brazil",
+        "code": "cc-by-nd-3.0-br",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/br/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/br/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Switzerland",
+        "code": "cc-by-nd-3.0-ch",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/ch/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/ch/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Chile",
+        "code": "cc-by-nd-3.0-cl",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/cl/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/cl/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 China Mainland",
+        "code": "cc-by-nd-3.0-cn",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/cn/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/cn/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Costa Rica",
+        "code": "cc-by-nd-3.0-cr",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/cr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/cr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Czech Republic",
+        "code": "cc-by-nd-3.0-cz",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/cz/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/cz/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Germany",
+        "code": "cc-by-nd-3.0-de",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/de/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/de/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Ecuador",
+        "code": "cc-by-nd-3.0-ec",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/ec/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/ec/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Estonia",
+        "code": "cc-by-nd-3.0-ee",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/ee/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/ee/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Egypt",
+        "code": "cc-by-nd-3.0-eg",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/eg/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/eg/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Spain",
+        "code": "cc-by-nd-3.0-es",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/es/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/es/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 France",
+        "code": "cc-by-nd-3.0-fr",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/fr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/fr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Greece",
+        "code": "cc-by-nd-3.0-gr",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/gr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/gr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Guatemala",
+        "code": "cc-by-nd-3.0-gt",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/gt/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/gt/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Hong Kong",
+        "code": "cc-by-nd-3.0-hk",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/hk/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/hk/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Croatia",
+        "code": "cc-by-nd-3.0-hr",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/hr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/hr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Ireland",
+        "code": "cc-by-nd-3.0-ie",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/ie/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/ie/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 IGO",
+        "code": "cc-by-nd-3.0-igo",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/igo/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/igo/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Italy",
+        "code": "cc-by-nd-3.0-it",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/it/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/it/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Luxembourg",
+        "code": "cc-by-nd-3.0-lu",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/lu/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/lu/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Netherlands",
+        "code": "cc-by-nd-3.0-nl",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/nl/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/nl/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Norway",
+        "code": "cc-by-nd-3.0-no",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/no/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/no/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 New Zealand",
+        "code": "cc-by-nd-3.0-nz",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/nz/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/nz/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Philippines",
+        "code": "cc-by-nd-3.0-ph",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/ph/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/ph/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Poland",
+        "code": "cc-by-nd-3.0-pl",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/pl/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/pl/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Puerto Rico",
+        "code": "cc-by-nd-3.0-pr",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/pr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/pr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Portugal",
+        "code": "cc-by-nd-3.0-pt",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/pt/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/pt/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Romania",
+        "code": "cc-by-nd-3.0-ro",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/ro/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/ro/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Serbia",
+        "code": "cc-by-nd-3.0-rs",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/rs/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/rs/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Singapore",
+        "code": "cc-by-nd-3.0-sg",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/sg/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/sg/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Thailand",
+        "code": "cc-by-nd-3.0-th",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/th/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/th/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Taiwan",
+        "code": "cc-by-nd-3.0-tw",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/tw/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/tw/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Uganda",
+        "code": "cc-by-nd-3.0-ug",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/ug/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/ug/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 United States",
+        "code": "cc-by-nd-3.0-us",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/us/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/us/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Venezuela",
+        "code": "cc-by-nd-3.0-ve",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/ve/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/ve/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 Vietnam",
+        "code": "cc-by-nd-3.0-vn",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/vn/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/vn/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 3.0 South Africa",
+        "code": "cc-by-nd-3.0-za",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/3.0/za/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/3.0/za/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-NoDerivatives 4.0",
+        "code": "cc-by-nd-4.0",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": false,
+        "copyleft": false,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-nd/4.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-nd/4.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 1.0",
+        "code": "cc-by-sa-1.0",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/1.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/1.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 2.0",
+        "code": "cc-by-sa-2.0",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/2.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/2.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 2.5",
+        "code": "cc-by-sa-2.5",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/2.5/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/2.5/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 2.5 Argentina",
+        "code": "cc-by-sa-2.5-ar",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/2.5/ar/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/2.5/ar/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 2.5 Bulgaria",
+        "code": "cc-by-sa-2.5-bg",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/2.5/bg/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/2.5/bg/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 2.5 Canada",
+        "code": "cc-by-sa-2.5-ca",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/2.5/ca/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/2.5/ca/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 2.5 Colombia",
+        "code": "cc-by-sa-2.5-co",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/2.5/co/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/2.5/co/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 2.5 Denmark",
+        "code": "cc-by-sa-2.5-dk",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/2.5/dk/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/2.5/dk/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 2.5 Hungary",
+        "code": "cc-by-sa-2.5-hu",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/2.5/hu/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/2.5/hu/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 2.5 Israel",
+        "code": "cc-by-sa-2.5-il",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/2.5/il/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/2.5/il/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 2.5 India",
+        "code": "cc-by-sa-2.5-in",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/2.5/in/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/2.5/in/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 2.5 Macedonia",
+        "code": "cc-by-sa-2.5-mk",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/2.5/mk/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/2.5/mk/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 2.5 Malta",
+        "code": "cc-by-sa-2.5-mt",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/2.5/mt/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/2.5/mt/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 2.5 Mexico",
+        "code": "cc-by-sa-2.5-mx",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/2.5/mx/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/2.5/mx/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 2.5 Malaysia",
+        "code": "cc-by-sa-2.5-my",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/2.5/my/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/2.5/my/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 2.5 Peru",
+        "code": "cc-by-sa-2.5-pe",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/2.5/pe/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/2.5/pe/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 2.5 UK: Scotland",
+        "code": "cc-by-sa-2.5-scotland",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/2.5/scotland/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/2.5/scotland/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0",
+        "code": "cc-by-sa-3.0",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Austria",
+        "code": "cc-by-sa-3.0-at",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/at/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/at/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Australia",
+        "code": "cc-by-sa-3.0-au",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/au/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/au/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Brazil",
+        "code": "cc-by-sa-3.0-br",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/br/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/br/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Switzerland",
+        "code": "cc-by-sa-3.0-ch",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/ch/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/ch/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Chile",
+        "code": "cc-by-sa-3.0-cl",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/cl/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/cl/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 China Mainland",
+        "code": "cc-by-sa-3.0-cn",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/cn/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/cn/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Costa Rica",
+        "code": "cc-by-sa-3.0-cr",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/cr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/cr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Czech Republic",
+        "code": "cc-by-sa-3.0-cz",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/cz/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/cz/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Germany",
+        "code": "cc-by-sa-3.0-de",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/de/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/de/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Ecuador",
+        "code": "cc-by-sa-3.0-ec",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/ec/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/ec/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Estonia",
+        "code": "cc-by-sa-3.0-ee",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/ee/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/ee/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Egypt",
+        "code": "cc-by-sa-3.0-eg",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/eg/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/eg/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Spain",
+        "code": "cc-by-sa-3.0-es",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/es/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/es/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 France",
+        "code": "cc-by-sa-3.0-fr",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/fr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/fr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Greece",
+        "code": "cc-by-sa-3.0-gr",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/gr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/gr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Guatemala",
+        "code": "cc-by-sa-3.0-gt",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/gt/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/gt/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Hong Kong",
+        "code": "cc-by-sa-3.0-hk",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/hk/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/hk/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Croatia",
+        "code": "cc-by-sa-3.0-hr",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/hr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/hr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Ireland",
+        "code": "cc-by-sa-3.0-ie",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/ie/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/ie/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 IGO",
+        "code": "cc-by-sa-3.0-igo",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/igo/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/igo/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Italy",
+        "code": "cc-by-sa-3.0-it",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/it/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/it/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Luxembourg",
+        "code": "cc-by-sa-3.0-lu",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/lu/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/lu/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Netherlands",
+        "code": "cc-by-sa-3.0-nl",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/nl/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/nl/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Norway",
+        "code": "cc-by-sa-3.0-no",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/no/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/no/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 New Zealand",
+        "code": "cc-by-sa-3.0-nz",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/nz/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/nz/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Philippines",
+        "code": "cc-by-sa-3.0-ph",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/ph/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/ph/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Poland",
+        "code": "cc-by-sa-3.0-pl",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/pl/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/pl/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Puerto Rico",
+        "code": "cc-by-sa-3.0-pr",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/pr/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/pr/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Portugal",
+        "code": "cc-by-sa-3.0-pt",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/pt/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/pt/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Romania",
+        "code": "cc-by-sa-3.0-ro",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/ro/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/ro/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Serbia",
+        "code": "cc-by-sa-3.0-rs",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/rs/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/rs/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Singapore",
+        "code": "cc-by-sa-3.0-sg",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/sg/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/sg/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Thailand",
+        "code": "cc-by-sa-3.0-th",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/th/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/th/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Taiwan",
+        "code": "cc-by-sa-3.0-tw",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/tw/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/tw/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Uganda",
+        "code": "cc-by-sa-3.0-ug",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/ug/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/ug/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 United States",
+        "code": "cc-by-sa-3.0-us",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/us/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/us/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Venezuela",
+        "code": "cc-by-sa-3.0-ve",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/ve/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/ve/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 Vietnam",
+        "code": "cc-by-sa-3.0-vn",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/vn/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/vn/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 3.0 South Africa",
+        "code": "cc-by-sa-3.0-za",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/3.0/za/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/3.0/za/"
+        ]
+    },
+    {
+        "name": "Creative commons - Attribution-ShareAlike 4.0",
+        "code": "cc-by-sa-4.0",
+        "redistribute": true,
+        "commercial": true,
+        "derivative": true,
+        "copyleft": true,
+        "attribution": true,
+        "url": "https://creativecommons.org/licenses/by-sa/4.0/",
+        "identifiers": [
+            "http://creativecommons.org/licenses/by-sa/4.0/"
+        ]
+    },
+    {
+        "code": "cc0-1.0",
+        "name": "CC0 - Public domain",
+        "redistribute": true,
+        "derivative": true,
+        "commercial": true,
+        "attribution": false,
+        "copyleft": false,
+        "url": "https://creativecommons.org/publicdomain/zero/1.0/",
+        "identifiers": [
+            "http://creativecommons.org/publicdomain/zero/1.0/"
+        ]
+    }
+]
\ No newline at end of file
diff --git a/api/tests/music/test.mp3 b/api/tests/music/test.mp3
index 6c1f52a35f665306af4959bb5ed024d2abea544a..8e7c0adbbc1a36f51bd32cf4be12c8e3326f1007 100644
Binary files a/api/tests/music/test.mp3 and b/api/tests/music/test.mp3 differ
diff --git a/api/tests/music/test.ogg b/api/tests/music/test.ogg
index bf480acde0cab1797c6b96a25219bf3e59a6ab25..5ca0a7f55bec448220af35a368ec557b2f42fae6 100644
Binary files a/api/tests/music/test.ogg and b/api/tests/music/test.ogg differ
diff --git a/api/tests/music/test.opus b/api/tests/music/test.opus
index c3ca732b3e5032f35d3127597d62b95a155f1bd6..ac39fd3270e27f5cadaf0927472ad17926dfcff6 100644
Binary files a/api/tests/music/test.opus and b/api/tests/music/test.opus differ
diff --git a/api/tests/music/test_licenses.py b/api/tests/music/test_licenses.py
new file mode 100644
index 0000000000000000000000000000000000000000..33a02fa30ba74bebeffdc9daaee93f777b7133fc
--- /dev/null
+++ b/api/tests/music/test_licenses.py
@@ -0,0 +1,193 @@
+import json
+import os
+import pytest
+
+from funkwhale_api.music import models
+from funkwhale_api.music import licenses
+
+
+@pytest.fixture
+def purge_license_cache():
+    licenses._cache = None
+    yield
+    licenses._cache = None
+
+
+def test_licenses_do_not_change():
+    """
+    We have 100s of licenses static data, and we want to ensure
+    that this data do not change without notice.
+    So we generate a json file based on this data,
+    and ensure our python data match our JSON file.
+    """
+    path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "licenses.json")
+    from_python = licenses.LICENSES
+    if os.path.exists(path):
+        with open(path) as f:
+            from_file = json.loads(f.read())
+        assert from_file == from_python
+    else:
+        # we write the file
+        with open(path, "w") as f:
+            f.write(json.dumps(from_python, indent=4))
+
+
+def test_load_licenses_create(db):
+    license_data = {
+        "code": "dummy",
+        "url": "http://dummy",
+        "redistribute": True,
+        "derivative": True,
+        "commercial": True,
+        "attribution": True,
+        "copyleft": True,
+    }
+    licenses.load([license_data])
+
+    license = models.License.objects.get(pk=license_data["code"])
+
+    assert license.url == license_data["url"]
+    assert license.redistribute == license_data["redistribute"]
+    assert license.derivative == license_data["derivative"]
+    assert license.copyleft == license_data["copyleft"]
+    assert license.commercial == license_data["commercial"]
+    assert license.attribution == license_data["attribution"]
+
+
+def test_load_hardcoded_licenses_works(db):
+    licenses.load(licenses.LICENSES)
+
+
+def test_license_data():
+    for data in licenses.LICENSES:
+        assert data["identifiers"][0].startswith("http") is True
+        required_fields = [
+            "code",
+            "name",
+            "url",
+            "derivative",
+            "commercial",
+            "redistribute",
+            "attribution",
+        ]
+        for field in required_fields:
+            assert field in required_fields
+
+
+def test_load_licenses_update(factories):
+    license = models.License.objects.create(
+        code="dummy",
+        url="http://oldurl",
+        redistribute=True,
+        derivative=True,
+        commercial=True,
+        attribution=True,
+        copyleft=True,
+    )
+    license_data = {
+        "code": "dummy",
+        "url": "http://newurl",
+        "redistribute": False,
+        "derivative": False,
+        "commercial": True,
+        "attribution": True,
+        "copyleft": True,
+    }
+    licenses.load([license_data])
+
+    license.refresh_from_db()
+
+    assert license.url == license_data["url"]
+    assert license.derivative == license_data["derivative"]
+    assert license.copyleft == license_data["copyleft"]
+    assert license.commercial == license_data["commercial"]
+    assert license.attribution == license_data["attribution"]
+
+
+def test_load_skip_update_if_no_change(factories, mocker):
+    license = models.License.objects.create(
+        code="dummy",
+        url="http://oldurl",
+        redistribute=True,
+        derivative=True,
+        commercial=True,
+        attribution=True,
+        copyleft=True,
+    )
+    update_or_create = mocker.patch.object(models.License.objects, "update_or_create")
+    save = mocker.patch.object(models.License, "save")
+
+    # we load licenses but with same data
+    licenses.load(
+        [
+            {
+                "code": "dummy",
+                "url": license.url,
+                "derivative": license.derivative,
+                "redistribute": license.redistribute,
+                "commercial": license.commercial,
+                "attribution": license.attribution,
+                "copyleft": license.copyleft,
+            }
+        ]
+    )
+
+    save.assert_not_called()
+    update_or_create.assert_not_called()
+
+
+@pytest.mark.parametrize(
+    "value, expected",
+    [
+        (["http://creativecommons.org/licenses/by-sa/4.0/"], "cc-by-sa-4.0"),
+        (["https://creativecommons.org/licenses/by-sa/4.0/"], "cc-by-sa-4.0"),
+        (["https://creativecommons.org/licenses/by-sa/4.0"], "cc-by-sa-4.0"),
+        (
+            [
+                "License for this work is: http://creativecommons.org/licenses/by-sa/4.0/"
+            ],
+            "cc-by-sa-4.0",
+        ),
+        (
+            [
+                "License: http://creativecommons.org/licenses/by-sa/4.0/ not http://creativecommons.org/publicdomain/zero/1.0/"  # noqa
+            ],
+            "cc-by-sa-4.0",
+        ),
+        (
+            [None, "Copyright 2018 http://creativecommons.org/licenses/by-sa/4.0/"],
+            "cc-by-sa-4.0",
+        ),
+        (
+            [
+                "Unknown",
+                "Copyright 2018 http://creativecommons.org/licenses/by-sa/4.0/",
+            ],
+            "cc-by-sa-4.0",
+        ),
+        (["Unknown"], None),
+        ([""], None),
+    ],
+)
+def test_match(value, expected, db, mocker, purge_license_cache):
+    load = mocker.spy(licenses, "load")
+    result = licenses.match(*value)
+
+    if expected:
+        assert result == models.License.objects.get(code=expected)
+        load.assert_called_once_with(licenses.LICENSES)
+    else:
+        assert result is None
+
+
+def test_match_cache(mocker, db, purge_license_cache):
+    assert licenses._cache is None
+    licenses.match("http://test.com")
+
+    assert licenses._cache == sorted(models.License.objects.all(), key=lambda o: o.code)
+
+    load = mocker.patch.object(licenses, "load")
+    assert licenses.match(
+        "http://creativecommons.org/licenses/by-sa/4.0/"
+    ) == models.License.objects.get(code="cc-by-sa-4.0")
+    load.assert_not_called()
diff --git a/api/tests/music/test_metadata.py b/api/tests/music/test_metadata.py
index 82c991c0b2ea493824b2ce1a956869721426cf9f..f91f7545b89195a99b0072552cfa8ff164d6ca25 100644
--- a/api/tests/music/test_metadata.py
+++ b/api/tests/music/test_metadata.py
@@ -1,9 +1,11 @@
 import datetime
 import os
 import uuid
-
 import pytest
 
+import mutagen.oggtheora
+import mutagen.oggvorbis
+
 from funkwhale_api.music import metadata
 
 DATA_DIR = os.path.dirname(os.path.abspath(__file__))
@@ -20,10 +22,13 @@ def test_get_all_metadata_at_once():
         "album": "Peer Gynt Suite no. 1, op. 46",
         "date": datetime.date(2012, 8, 15),
         "track_number": 1,
+        "disc_number": 1,
         "musicbrainz_albumid": uuid.UUID("a766da8b-8336-47aa-a3ee-371cc41ccc75"),
         "musicbrainz_recordingid": uuid.UUID("bd21ac48-46d8-4e78-925f-d9cc2a294656"),
         "musicbrainz_artistid": uuid.UUID("013c8e5b-d72a-4cd3-8dee-6c64d6125823"),
         "musicbrainz_albumartistid": uuid.UUID("013c8e5b-d72a-4cd3-8dee-6c64d6125823"),
+        "license": "Dummy license: http://creativecommons.org/licenses/by-sa/4.0/",
+        "copyright": "Someone",
     }
 
     assert data.all() == expected
@@ -38,6 +43,7 @@ def test_get_all_metadata_at_once():
         ("album", "Peer Gynt Suite no. 1, op. 46"),
         ("date", datetime.date(2012, 8, 15)),
         ("track_number", 1),
+        ("disc_number", 1),
         ("musicbrainz_albumid", uuid.UUID("a766da8b-8336-47aa-a3ee-371cc41ccc75")),
         ("musicbrainz_recordingid", uuid.UUID("bd21ac48-46d8-4e78-925f-d9cc2a294656")),
         ("musicbrainz_artistid", uuid.UUID("013c8e5b-d72a-4cd3-8dee-6c64d6125823")),
@@ -45,6 +51,8 @@ def test_get_all_metadata_at_once():
             "musicbrainz_albumartistid",
             uuid.UUID("013c8e5b-d72a-4cd3-8dee-6c64d6125823"),
         ),
+        ("license", "Dummy license: http://creativecommons.org/licenses/by-sa/4.0/"),
+        ("copyright", "Someone"),
     ],
 )
 def test_can_get_metadata_from_ogg_file(field, value):
@@ -63,6 +71,7 @@ def test_can_get_metadata_from_ogg_file(field, value):
         ("album", "Peer Gynt Suite no. 1, op. 46"),
         ("date", datetime.date(2012, 8, 15)),
         ("track_number", 1),
+        ("disc_number", 1),
         ("musicbrainz_albumid", uuid.UUID("a766da8b-8336-47aa-a3ee-371cc41ccc75")),
         ("musicbrainz_recordingid", uuid.UUID("bd21ac48-46d8-4e78-925f-d9cc2a294656")),
         ("musicbrainz_artistid", uuid.UUID("013c8e5b-d72a-4cd3-8dee-6c64d6125823")),
@@ -70,6 +79,8 @@ def test_can_get_metadata_from_ogg_file(field, value):
             "musicbrainz_albumartistid",
             uuid.UUID("013c8e5b-d72a-4cd3-8dee-6c64d6125823"),
         ),
+        ("license", "Dummy license: http://creativecommons.org/licenses/by-sa/4.0/"),
+        ("copyright", "Someone"),
     ],
 )
 def test_can_get_metadata_from_opus_file(field, value):
@@ -88,6 +99,7 @@ def test_can_get_metadata_from_opus_file(field, value):
         ("album", "Ballast der Republik"),
         ("date", datetime.date(2012, 5, 4)),
         ("track_number", 1),
+        ("disc_number", 1),
         ("musicbrainz_albumid", uuid.UUID("1f0441ad-e609-446d-b355-809c445773cf")),
         ("musicbrainz_recordingid", uuid.UUID("124d0150-8627-46bc-bc14-789a3bc960c8")),
         ("musicbrainz_artistid", uuid.UUID("c3bc80a6-1f4a-4e17-8cf0-6b1efe8302f1")),
@@ -95,6 +107,9 @@ def test_can_get_metadata_from_opus_file(field, value):
             "musicbrainz_albumartistid",
             uuid.UUID("c3bc80a6-1f4a-4e17-8cf0-6b1efe8302f1"),
         ),
+        # somehow, I cannot successfully create an ogg theora file
+        # with the proper license field
+        # ("license", "Dummy license: http://creativecommons.org/licenses/by-sa/4.0/"),
     ],
 )
 def test_can_get_metadata_from_ogg_theora_file(field, value):
@@ -113,6 +128,7 @@ def test_can_get_metadata_from_ogg_theora_file(field, value):
         ("album", "You Can't Stop Da Funk"),
         ("date", datetime.date(2006, 2, 7)),
         ("track_number", 2),
+        ("disc_number", 1),
         ("musicbrainz_albumid", uuid.UUID("ce40cdb1-a562-4fd8-a269-9269f98d4124")),
         ("musicbrainz_recordingid", uuid.UUID("f269d497-1cc0-4ae4-a0c4-157ec7d73fcb")),
         ("musicbrainz_artistid", uuid.UUID("9c6bddde-6228-4d9f-ad0d-03f6fcb19e13")),
@@ -120,6 +136,8 @@ def test_can_get_metadata_from_ogg_theora_file(field, value):
             "musicbrainz_albumartistid",
             uuid.UUID("9c6bddde-6228-4d9f-ad0d-03f6fcb19e13"),
         ),
+        ("license", "https://creativecommons.org/licenses/by-nc-nd/2.5/"),
+        ("copyright", "Someone"),
     ],
 )
 def test_can_get_metadata_from_id3_mp3_file(field, value):
@@ -129,14 +147,16 @@ def test_can_get_metadata_from_id3_mp3_file(field, value):
     assert data.get(field) == value
 
 
-@pytest.mark.parametrize("name", ["test.mp3", "sample.flac"])
+@pytest.mark.parametrize(
+    "name", ["test.mp3", "with_other_picture.mp3", "sample.flac", "with_cover.ogg"]
+)
 def test_can_get_pictures(name):
     path = os.path.join(DATA_DIR, name)
     data = metadata.Metadata(path)
 
     pictures = data.get("pictures")
     assert len(pictures) == 1
-    cover_data = data.get_picture("cover_front")
+    cover_data = data.get_picture("cover_front", "other")
     assert cover_data["mimetype"].startswith("image/")
     assert len(cover_data["content"]) > 0
     assert type(cover_data["content"]) == bytes
@@ -152,6 +172,7 @@ def test_can_get_pictures(name):
         ("album", "The Slip"),
         ("date", datetime.date(2008, 5, 5)),
         ("track_number", 1),
+        ("disc_number", 1),
         ("musicbrainz_albumid", uuid.UUID("12b57d46-a192-499e-a91f-7da66790a1c1")),
         ("musicbrainz_recordingid", uuid.UUID("30f3f33e-8d0c-4e69-8539-cbd701d18f28")),
         ("musicbrainz_artistid", uuid.UUID("b7ffd2af-418f-4be2-bdd1-22f8b48613da")),
@@ -159,6 +180,8 @@ def test_can_get_pictures(name):
             "musicbrainz_albumartistid",
             uuid.UUID("b7ffd2af-418f-4be2-bdd1-22f8b48613da"),
         ),
+        ("license", "http://creativecommons.org/licenses/by-nc-sa/3.0/us/"),
+        ("copyright", "2008 nin"),
     ],
 )
 def test_can_get_metadata_from_flac_file(field, value):
@@ -196,7 +219,48 @@ def test_mbid_clean_keeps_only_first(field_name):
 
 @pytest.mark.parametrize(
     "raw,expected",
-    [("2017", datetime.date(2017, 1, 1)), ("2017-12-31", datetime.date(2017, 12, 31))],
+    [
+        ("2017", datetime.date(2017, 1, 1)),
+        ("2017-12-31", datetime.date(2017, 12, 31)),
+        ("2017-14-01 01:32", datetime.date(2017, 1, 14)),  # deezer format
+    ],
 )
 def test_date_parsing(raw, expected):
     assert metadata.get_date(raw) == expected
+
+
+def test_date_parsing_failure():
+    with pytest.raises(metadata.ParseError):
+        metadata.get_date("noop")
+
+
+def test_metadata_all_ignore_parse_errors_true(mocker):
+    path = os.path.join(DATA_DIR, "sample.flac")
+    data = metadata.Metadata(path)
+    mocker.patch.object(data, "get", side_effect=metadata.ParseError("Failure"))
+    assert data.all()["date"] is None
+
+
+def test_metadata_all_ignore_parse_errors_false(mocker):
+    path = os.path.join(DATA_DIR, "sample.flac")
+    data = metadata.Metadata(path)
+    mocker.patch.object(data, "get", side_effect=metadata.ParseError("Failure"))
+    with pytest.raises(metadata.ParseError):
+        data.all(ignore_parse_errors=False)
+
+
+def test_metadata_fallback_ogg_theora(mocker):
+    path = os.path.join(DATA_DIR, "with_cover.ogg")
+    data = metadata.Metadata(path)
+
+    assert isinstance(data._file, mutagen.oggtheora.OggTheora)
+    assert isinstance(data.fallback, metadata.Metadata)
+    assert isinstance(data.fallback._file, mutagen.oggvorbis.OggVorbis)
+
+    expected_result = data.fallback.get("pictures")
+    fallback_get = mocker.spy(data.fallback, "get")
+
+    assert expected_result is not None
+    assert data.get("pictures", "default") == expected_result
+
+    fallback_get.assert_called_once_with("pictures", "default")
diff --git a/api/tests/music/test_models.py b/api/tests/music/test_models.py
index d045a04c258ce61ee3c42c065e6768581a2e167d..ab32579b7e0db29c5a77843161715a919e9a45c3 100644
--- a/api/tests/music/test_models.py
+++ b/api/tests/music/test_models.py
@@ -167,8 +167,7 @@ def test_audio_track_mime_type(extention, mimetype, factories):
 def test_upload_file_name(factories):
     name = "test.mp3"
     path = os.path.join(DATA_DIR, name)
-    upload = factories["music.Upload"](audio_file__from_path=path)
-
+    upload = factories["music.Upload"](audio_file__from_path=path, mimetype=None)
     assert upload.filename == upload.track.full_name + ".mp3"
 
 
@@ -449,7 +448,7 @@ def test_get_audio_data(factories):
 
     result = upload.get_audio_data()
 
-    assert result == {"duration": 229, "bitrate": 128000, "size": 3459481}
+    assert result == {"duration": 1, "bitrate": 112000, "size": 14858}
 
 
 def test_library_queryset_with_follows(factories):
@@ -464,24 +463,6 @@ def test_library_queryset_with_follows(factories):
     assert l2._follows == [follow]
 
 
-def test_annotate_duration(factories):
-    tf = factories["music.Upload"](duration=32)
-
-    track = models.Track.objects.annotate_duration().get(pk=tf.track.pk)
-
-    assert track.duration == 32
-
-
-def test_annotate_file_data(factories):
-    tf = factories["music.Upload"](size=42, bitrate=55, mimetype="audio/ogg")
-
-    track = models.Track.objects.annotate_file_data().get(pk=tf.track.pk)
-
-    assert track.size == 42
-    assert track.bitrate == 55
-    assert track.mimetype == "audio/ogg"
-
-
 @pytest.mark.parametrize(
     "model,factory_args,namespace",
     [
@@ -502,3 +483,42 @@ def test_fid_is_populated(factories, model, factory_args, namespace):
     assert instance.fid == federation_utils.full_url(
         reverse(namespace, kwargs={"uuid": instance.uuid})
     )
+
+
+@pytest.mark.parametrize(
+    "factory_args,expected",
+    [
+        ({"audio_file__filename": "test.mp3", "mimetype": None}, "mp3"),
+        ({"mimetype": "audio/mpeg"}, "mp3"),
+        ({"in_place": True, "source": "file:///test.mp3"}, "mp3"),
+        ({"audio_file__filename": "test.None", "mimetype": "audio/mpeg"}, "mp3"),
+        ({"audio_file__filename": "test.None", "mimetype": "audio/flac"}, "flac"),
+        ({"audio_file__filename": "test.None", "mimetype": "audio/x-flac"}, "flac"),
+    ],
+)
+def test_upload_extension(factory_args, factories, expected):
+    upload = factories["music.Upload"].build(**factory_args)
+
+    assert upload.extension == expected
+
+
+def test_can_create_license(db):
+    models.License.objects.create(
+        code="cc-by-sa",
+        copyleft=True,
+        commercial=True,
+        attribution=True,
+        derivative=True,
+        redistribute=True,
+        url="http://cc",
+    )
+
+
+def test_track_order_for_album(factories):
+    album = factories["music.Album"]()
+    t1 = factories["music.Track"](album=album, position=1, disc_number=1)
+    t2 = factories["music.Track"](album=album, position=1, disc_number=2)
+    t3 = factories["music.Track"](album=album, position=2, disc_number=1)
+    t4 = factories["music.Track"](album=album, position=2, disc_number=2)
+
+    assert list(models.Track.objects.order_for_album()) == [t1, t3, t2, t4]
diff --git a/api/tests/music/test_serializers.py b/api/tests/music/test_serializers.py
index 330371834d628713ea9cd2fc1cbfe772f19a65a7..155f998904dccadcf2915ab3890767d34eb33be0 100644
--- a/api/tests/music/test_serializers.py
+++ b/api/tests/music/test_serializers.py
@@ -1,8 +1,33 @@
+import pytest
+
+from funkwhale_api.music import licenses
 from funkwhale_api.music import models
 from funkwhale_api.music import serializers
 from funkwhale_api.music import tasks
 
 
+def test_license_serializer():
+    """
+    We serializer all licenses to ensure we have valid hardcoded data
+    """
+    for data in licenses.LICENSES:
+        expected = {
+            "id": data["identifiers"][0],
+            "code": data["code"],
+            "name": data["name"],
+            "url": data["url"],
+            "redistribute": data["redistribute"],
+            "derivative": data["derivative"],
+            "commercial": data["commercial"],
+            "attribution": data["attribution"],
+            "copyleft": data["copyleft"],
+        }
+
+        serializer = serializers.LicenseSerializer(data)
+
+        assert serializer.data == expected
+
+
 def test_artist_album_serializer(factories, to_api_date):
     track = factories["music.Track"]()
     album = track.album
@@ -46,8 +71,11 @@ def test_artist_with_albums_serializer(factories, to_api_date):
 
 
 def test_album_track_serializer(factories, to_api_date):
-    upload = factories["music.Upload"]()
+    upload = factories["music.Upload"](
+        track__license="cc-by-4.0", track__copyright="test", track__disc_number=2
+    )
     track = upload.track
+    setattr(track, "playable_uploads", [upload])
 
     expected = {
         "id": track.id,
@@ -56,10 +84,13 @@ def test_album_track_serializer(factories, to_api_date):
         "mbid": str(track.mbid),
         "title": track.title,
         "position": track.position,
-        "is_playable": None,
+        "disc_number": track.disc_number,
+        "uploads": [serializers.TrackUploadSerializer(upload).data],
         "creation_date": to_api_date(track.creation_date),
         "listen_url": track.listen_url,
         "duration": None,
+        "license": track.license.code,
+        "copyright": track.copyright,
     }
     serializer = serializers.AlbumTrackSerializer(track)
     assert serializer.data == expected
@@ -127,7 +158,7 @@ def test_album_serializer(factories, to_api_date):
         "title": album.title,
         "artist": serializers.ArtistSimpleSerializer(album.artist).data,
         "creation_date": to_api_date(album.creation_date),
-        "is_playable": None,
+        "is_playable": False,
         "cover": {
             "original": album.cover.url,
             "square_crop": album.cover.crop["400x400"].url,
@@ -143,9 +174,11 @@ def test_album_serializer(factories, to_api_date):
 
 
 def test_track_serializer(factories, to_api_date):
-    upload = factories["music.Upload"]()
+    upload = factories["music.Upload"](
+        track__license="cc-by-4.0", track__copyright="test", track__disc_number=2
+    )
     track = upload.track
-
+    setattr(track, "playable_uploads", [upload])
     expected = {
         "id": track.id,
         "artist": serializers.ArtistSimpleSerializer(track.artist).data,
@@ -153,14 +186,13 @@ def test_track_serializer(factories, to_api_date):
         "mbid": str(track.mbid),
         "title": track.title,
         "position": track.position,
-        "is_playable": None,
+        "disc_number": track.disc_number,
+        "uploads": [serializers.TrackUploadSerializer(upload).data],
         "creation_date": to_api_date(track.creation_date),
         "lyrics": track.get_lyrics_url(),
         "listen_url": track.listen_url,
-        "duration": None,
-        "size": None,
-        "bitrate": None,
-        "mimetype": None,
+        "license": upload.track.license.code,
+        "copyright": upload.track.copyright,
     }
     serializer = serializers.TrackSerializer(track)
     assert serializer.data == expected
@@ -260,3 +292,45 @@ def test_manage_upload_action_relaunch_import(factories, mocker):
     finished.refresh_from_db()
     assert finished.import_status == "finished"
     assert m.call_count == 3
+
+
+def test_track_upload_serializer(factories):
+    upload = factories["music.Upload"]()
+
+    expected = {
+        "listen_url": upload.listen_url,
+        "uuid": str(upload.uuid),
+        "size": upload.size,
+        "bitrate": upload.bitrate,
+        "mimetype": upload.mimetype,
+        "extension": upload.extension,
+        "duration": upload.duration,
+    }
+
+    serializer = serializers.TrackUploadSerializer(upload)
+    assert serializer.data == expected
+
+
+@pytest.mark.parametrize(
+    "field,before,after",
+    [
+        ("privacy_level", "me", "everyone"),
+        ("name", "Before", "After"),
+        ("description", "Before", "After"),
+    ],
+)
+def test_update_library_privacy_level_broadcasts_to_followers(
+    factories, field, before, after, mocker
+):
+    dispatch = mocker.patch("funkwhale_api.federation.routes.outbox.dispatch")
+    library = factories["music.Library"](**{field: before})
+
+    serializer = serializers.LibraryForOwnerSerializer(
+        library, data={field: after}, partial=True
+    )
+    assert serializer.is_valid(raise_exception=True)
+    serializer.save()
+
+    dispatch.assert_called_once_with(
+        {"type": "Update", "object": {"type": "Library"}}, context={"library": library}
+    )
diff --git a/api/tests/music/test_spa_views.py b/api/tests/music/test_spa_views.py
new file mode 100644
index 0000000000000000000000000000000000000000..7761e313f33747c0c30f5ad62ed1992b2d376566
--- /dev/null
+++ b/api/tests/music/test_spa_views.py
@@ -0,0 +1,160 @@
+import urllib.parse
+
+from django.urls import reverse
+
+from funkwhale_api.common import utils
+
+
+def test_library_track(spa_html, no_api_auth, client, factories, settings):
+    track = factories["music.Upload"](playable=True, track__disc_number=1).track
+    url = "/library/tracks/{}".format(track.pk)
+
+    response = client.get(url)
+
+    expected_metas = [
+        {
+            "tag": "meta",
+            "property": "og:url",
+            "content": utils.join_url(settings.FUNKWHALE_URL, url),
+        },
+        {"tag": "meta", "property": "og:title", "content": track.title},
+        {"tag": "meta", "property": "og:type", "content": "music.song"},
+        {
+            "tag": "meta",
+            "property": "music:album:disc",
+            "content": str(track.disc_number),
+        },
+        {
+            "tag": "meta",
+            "property": "music:album:track",
+            "content": str(track.position),
+        },
+        {
+            "tag": "meta",
+            "property": "music:musician",
+            "content": utils.join_url(
+                settings.FUNKWHALE_URL,
+                utils.spa_reverse("library_artist", kwargs={"pk": track.artist.pk}),
+            ),
+        },
+        {
+            "tag": "meta",
+            "property": "music:album",
+            "content": utils.join_url(
+                settings.FUNKWHALE_URL,
+                utils.spa_reverse("library_album", kwargs={"pk": track.album.pk}),
+            ),
+        },
+        {
+            "tag": "meta",
+            "property": "og:image",
+            "content": utils.join_url(
+                settings.FUNKWHALE_URL, track.album.cover.crop["400x400"].url
+            ),
+        },
+        {
+            "tag": "meta",
+            "property": "og:audio",
+            "content": utils.join_url(settings.FUNKWHALE_URL, track.listen_url),
+        },
+        {
+            "tag": "link",
+            "rel": "alternate",
+            "type": "application/json+oembed",
+            "href": (
+                utils.join_url(settings.FUNKWHALE_URL, reverse("api:v1:oembed"))
+                + "?format=json&url={}".format(
+                    urllib.parse.quote_plus(utils.join_url(settings.FUNKWHALE_URL, url))
+                )
+            ),
+        },
+    ]
+
+    metas = utils.parse_meta(response.content.decode())
+
+    # we only test our custom metas, not the default ones
+    assert metas[: len(expected_metas)] == expected_metas
+
+
+def test_library_album(spa_html, no_api_auth, client, factories, settings):
+    track = factories["music.Upload"](playable=True, track__disc_number=1).track
+    album = track.album
+    url = "/library/albums/{}".format(album.pk)
+
+    response = client.get(url)
+
+    expected_metas = [
+        {
+            "tag": "meta",
+            "property": "og:url",
+            "content": utils.join_url(settings.FUNKWHALE_URL, url),
+        },
+        {"tag": "meta", "property": "og:title", "content": album.title},
+        {"tag": "meta", "property": "og:type", "content": "music.album"},
+        {
+            "tag": "meta",
+            "property": "music:musician",
+            "content": utils.join_url(
+                settings.FUNKWHALE_URL,
+                utils.spa_reverse("library_artist", kwargs={"pk": album.artist.pk}),
+            ),
+        },
+        {
+            "tag": "meta",
+            "property": "music:release_date",
+            "content": str(album.release_date),
+        },
+        {
+            "tag": "meta",
+            "property": "og:image",
+            "content": utils.join_url(
+                settings.FUNKWHALE_URL, album.cover.crop["400x400"].url
+            ),
+        },
+        {
+            "tag": "link",
+            "rel": "alternate",
+            "type": "application/json+oembed",
+            "href": (
+                utils.join_url(settings.FUNKWHALE_URL, reverse("api:v1:oembed"))
+                + "?format=json&url={}".format(
+                    urllib.parse.quote_plus(utils.join_url(settings.FUNKWHALE_URL, url))
+                )
+            ),
+        },
+    ]
+
+    metas = utils.parse_meta(response.content.decode())
+
+    # we only test our custom metas, not the default ones
+    assert metas[: len(expected_metas)] == expected_metas
+
+
+def test_library_artist(spa_html, no_api_auth, client, factories, settings):
+    album = factories["music.Album"]()
+    artist = album.artist
+    url = "/library/artists/{}".format(artist.pk)
+
+    response = client.get(url)
+
+    expected_metas = [
+        {
+            "tag": "meta",
+            "property": "og:url",
+            "content": utils.join_url(settings.FUNKWHALE_URL, url),
+        },
+        {"tag": "meta", "property": "og:title", "content": artist.name},
+        {"tag": "meta", "property": "og:type", "content": "profile"},
+        {
+            "tag": "meta",
+            "property": "og:image",
+            "content": utils.join_url(
+                settings.FUNKWHALE_URL, album.cover.crop["400x400"].url
+            ),
+        },
+    ]
+
+    metas = utils.parse_meta(response.content.decode())
+
+    # we only test our custom metas, not the default ones
+    assert metas[: len(expected_metas)] == expected_metas
diff --git a/api/tests/music/test_tasks.py b/api/tests/music/test_tasks.py
index efa0e801f42dfe6c785a35ca4ee70d63dfd8be82..b7b04674f713af3888391567119c782f07051ece 100644
--- a/api/tests/music/test_tasks.py
+++ b/api/tests/music/test_tasks.py
@@ -8,7 +8,7 @@ from django.core.paginator import Paginator
 from django.utils import timezone
 
 from funkwhale_api.federation import serializers as federation_serializers
-from funkwhale_api.music import metadata, signals, tasks
+from funkwhale_api.music import licenses, metadata, signals, tasks
 
 DATA_DIR = os.path.dirname(os.path.abspath(__file__))
 
@@ -23,19 +23,27 @@ def test_can_create_track_from_file_metadata_no_mbid(db, mocker):
         "album": "Test album",
         "date": datetime.date(2012, 8, 15),
         "track_number": 4,
+        "disc_number": 2,
+        "license": "Hello world: http://creativecommons.org/licenses/by-sa/4.0/",
+        "copyright": "2018 Someone",
     }
     mocker.patch("funkwhale_api.music.metadata.Metadata.all", return_value=metadata)
+    match_license = mocker.spy(licenses, "match")
 
     track = tasks.get_track_from_import_metadata(metadata)
 
     assert track.title == metadata["title"]
     assert track.mbid is None
     assert track.position == 4
+    assert track.disc_number == 2
+    assert track.license.code == "cc-by-sa-4.0"
+    assert track.copyright == metadata["copyright"]
     assert track.album.title == metadata["album"]
     assert track.album.mbid is None
     assert track.album.release_date == datetime.date(2012, 8, 15)
     assert track.artist.name == metadata["artist"]
     assert track.artist.mbid is None
+    match_license.assert_called_once_with(metadata["license"], metadata["copyright"])
 
 
 def test_can_create_track_from_file_metadata_mbid(factories, mocker):
@@ -60,6 +68,7 @@ def test_can_create_track_from_file_metadata_mbid(factories, mocker):
     assert track.title == metadata["title"]
     assert track.mbid == metadata["musicbrainz_recordingid"]
     assert track.position == 4
+    assert track.disc_number is None
     assert track.album.title == metadata["album"]
     assert track.album.mbid == metadata["musicbrainz_albumid"]
     assert track.album.artist.mbid == metadata["musicbrainz_albumartistid"]
@@ -396,7 +405,10 @@ def test_federation_audio_track_to_metadata(now):
         "musicbrainzId": str(uuid.uuid4()),
         "name": "Black in back",
         "position": 5,
+        "disc": 2,
         "published": published.isoformat(),
+        "license": "http://creativecommons.org/licenses/by-sa/4.0/",
+        "copyright": "2018 Someone",
         "album": {
             "published": published.isoformat(),
             "type": "Album",
@@ -433,6 +445,9 @@ def test_federation_audio_track_to_metadata(now):
         "title": payload["name"],
         "date": released,
         "track_number": payload["position"],
+        "disc_number": payload["disc"],
+        "license": "http://creativecommons.org/licenses/by-sa/4.0/",
+        "copyright": "2018 Someone",
         # musicbrainz
         "musicbrainz_albumid": payload["album"]["musicbrainzId"],
         "musicbrainz_recordingid": payload["musicbrainzId"],
@@ -546,3 +561,20 @@ def test_scan_page_trigger_next_page_scan_skip_if_same(mocker, factories, r_mock
     scan.refresh_from_db()
 
     assert scan.status == "finished"
+
+
+def test_clean_transcoding_cache(preferences, now, factories):
+    preferences["music__transcoding_cache_duration"] = 60
+    u1 = factories["music.UploadVersion"](
+        accessed_date=now - datetime.timedelta(minutes=61)
+    )
+    u2 = factories["music.UploadVersion"](
+        accessed_date=now - datetime.timedelta(minutes=59)
+    )
+
+    tasks.clean_transcoding_cache()
+
+    u2.refresh_from_db()
+
+    with pytest.raises(u1.__class__.DoesNotExist):
+        u1.refresh_from_db()
diff --git a/api/tests/music/test_utils.py b/api/tests/music/test_utils.py
index ecbfc49c9f7744a7e079bb890a237621bbc58fd3..87eaddc435d9270e29a0750a60f32b2af7f6e74f 100644
--- a/api/tests/music/test_utils.py
+++ b/api/tests/music/test_utils.py
@@ -27,7 +27,7 @@ def test_guess_mimetype_try_using_extension_if_fail(wrong, factories, mocker):
     [
         ("sample.flac", {"bitrate": 1608000, "length": 0.001}),
         ("test.mp3", {"bitrate": 8000, "length": 267.70285714285717}),
-        ("test.ogg", {"bitrate": 128000, "length": 229.18304166666667}),
+        ("test.ogg", {"bitrate": 112000, "length": 1}),
     ],
 )
 def test_get_audio_file_data(name, expected):
diff --git a/api/tests/music/test_views.py b/api/tests/music/test_views.py
index 2f9d66e5b00d81fb56871e344df4df456ebf6a67..aa1214f834ddf7191ec7ba6626373d6cdd9c204d 100644
--- a/api/tests/music/test_views.py
+++ b/api/tests/music/test_views.py
@@ -1,12 +1,15 @@
 import io
+import magic
 import os
 
 import pytest
 from django.urls import reverse
 from django.utils import timezone
 
-from funkwhale_api.music import serializers, tasks, views
+from funkwhale_api.common import utils
 from funkwhale_api.federation import api_serializers as federation_api_serializers
+from funkwhale_api.federation import utils as federation_utils
+from funkwhale_api.music import licenses, models, serializers, tasks, views
 
 DATA_DIR = os.path.dirname(os.path.abspath(__file__))
 
@@ -38,13 +41,11 @@ def test_album_list_serializer(api_request, factories, logged_in_api_client):
     ).track
     album = track.album
     request = api_request.get("/")
-    qs = album.__class__.objects.all()
+    qs = album.__class__.objects.with_prefetched_tracks_and_playable_uploads(None)
     serializer = serializers.AlbumSerializer(
         qs, many=True, context={"request": request}
     )
     expected = {"count": 1, "next": None, "previous": None, "results": serializer.data}
-    expected["results"][0]["is_playable"] = True
-    expected["results"][0]["tracks"][0]["is_playable"] = True
     url = reverse("api:v1:albums-list")
     response = logged_in_api_client.get(url)
 
@@ -57,12 +58,11 @@ def test_track_list_serializer(api_request, factories, logged_in_api_client):
         library__privacy_level="everyone", import_status="finished"
     ).track
     request = api_request.get("/")
-    qs = track.__class__.objects.all()
+    qs = track.__class__.objects.with_playable_uploads(None)
     serializer = serializers.TrackSerializer(
         qs, many=True, context={"request": request}
     )
     expected = {"count": 1, "next": None, "previous": None, "results": serializer.data}
-    expected["results"][0]["is_playable"] = True
     url = reverse("api:v1:tracks-list")
     response = logged_in_api_client.get(url)
 
@@ -309,7 +309,69 @@ def test_listen_explicit_file(factories, logged_in_api_client, mocker):
     response = logged_in_api_client.get(url, {"upload": upload2.uuid})
 
     assert response.status_code == 200
-    mocked_serve.assert_called_once_with(upload2, user=logged_in_api_client.user)
+    mocked_serve.assert_called_once_with(
+        upload2, user=logged_in_api_client.user, format=None
+    )
+
+
+@pytest.mark.parametrize(
+    "mimetype,format,expected",
+    [
+        # already in proper format
+        ("audio/mpeg", "mp3", False),
+        # empty mimetype / format
+        (None, "mp3", False),
+        ("audio/mpeg", None, False),
+        # unsupported format
+        ("audio/mpeg", "noop", False),
+        # should transcode
+        ("audio/mpeg", "ogg", True),
+    ],
+)
+def test_should_transcode(mimetype, format, expected, factories):
+    upload = models.Upload(mimetype=mimetype)
+    assert views.should_transcode(upload, format) is expected
+
+
+@pytest.mark.parametrize("value", [True, False])
+def test_should_transcode_according_to_preference(value, preferences, factories):
+    upload = models.Upload(mimetype="audio/ogg")
+    expected = value
+    preferences["music__transcoding_enabled"] = value
+
+    assert views.should_transcode(upload, "mp3") is expected
+
+
+def test_handle_serve_create_mp3_version(factories, now):
+    user = factories["users.User"]()
+    upload = factories["music.Upload"](bitrate=42)
+    response = views.handle_serve(upload, user, format="mp3")
+
+    version = upload.versions.latest("id")
+
+    assert version.mimetype == "audio/mpeg"
+    assert version.accessed_date == now
+    assert version.bitrate == upload.bitrate
+    assert version.audio_file.path.endswith(".mp3")
+    assert version.size == version.audio_file.size
+    assert magic.from_buffer(version.audio_file.read(), mime=True) == "audio/mpeg"
+
+    assert response.status_code == 200
+
+
+def test_listen_transcode(factories, now, logged_in_api_client, mocker):
+    upload = factories["music.Upload"](
+        import_status="finished", library__actor__user=logged_in_api_client.user
+    )
+    url = reverse("api:v1:listen-detail", kwargs={"uuid": upload.track.uuid})
+    handle_serve = mocker.spy(views, "handle_serve")
+    response = logged_in_api_client.get(url, {"to": "mp3"})
+
+    assert response.status_code == 200
+
+    handle_serve.assert_called_once_with(
+        upload, user=logged_in_api_client.user, format="mp3"
+    )
 
 
 def test_user_can_create_library(factories, logged_in_api_client):
@@ -462,6 +524,7 @@ def test_can_get_libraries_for_music_entities(
         import_status="finished", library__privacy_level="me", track=upload.track
     ).library
     library = upload.library
+    setattr(library, "_uploads_count", 1)
     data = {
         "artist": upload.track.artist,
         "album": upload.track.album,
@@ -480,3 +543,101 @@ def test_can_get_libraries_for_music_entities(
         "previous": None,
         "results": [expected],
     }
+
+
+def test_list_licenses(api_client, preferences, mocker):
+    licenses.load(licenses.LICENSES)
+    load = mocker.spy(licenses, "load")
+    preferences["common__api_authentication_required"] = False
+
+    expected = [
+        serializers.LicenseSerializer(l.conf).data
+        for l in models.License.objects.order_by("code")[:25]
+    ]
+    url = reverse("api:v1:licenses-list")
+
+    response = api_client.get(url)
+
+    assert response.data["results"] == expected
+    load.assert_called_once_with(licenses.LICENSES)
+
+
+def test_detail_license(api_client, preferences):
+    preferences["common__api_authentication_required"] = False
+    id = "cc-by-sa-4.0"
+    expected = serializers.LicenseSerializer(licenses.LICENSES_BY_ID[id]).data
+
+    url = reverse("api:v1:licenses-detail", kwargs={"pk": id})
+
+    response = api_client.get(url)
+
+    assert response.data == expected
+
+
+def test_oembed_track(factories, no_api_auth, api_client, settings):
+    settings.FUNKWHALE_URL = "http://test"
+    settings.FUNKWHALE_EMBED_URL = "http://embed"
+    track = factories["music.Track"]()
+    url = reverse("api:v1:oembed")
+    track_url = "https://test.com/library/tracks/{}".format(track.pk)
+    iframe_src = "http://embed?type=track&id={}".format(track.pk)
+    expected = {
+        "version": "1.0",
+        "type": "rich",
+        "provider_name": settings.APP_NAME,
+        "provider_url": settings.FUNKWHALE_URL,
+        "height": 150,
+        "width": 600,
+        "title": "{} by {}".format(track.title, track.artist.name),
+        "description": track.full_name,
+        "thumbnail_url": federation_utils.full_url(
+            track.album.cover.crop["400x400"].url
+        ),
+        "thumbnail_height": 400,
+        "thumbnail_width": 400,
+        "html": '<iframe width="600" height="150" scrolling="no" frameborder="no" src="{}"></iframe>'.format(
+            iframe_src
+        ),
+        "author_name": track.artist.name,
+        "author_url": federation_utils.full_url(
+            utils.spa_reverse("library_artist", kwargs={"pk": track.artist.pk})
+        ),
+    }
+
+    response = api_client.get(url, {"url": track_url, "format": "json"})
+
+    assert response.data == expected
+
+
+def test_oembed_album(factories, no_api_auth, api_client, settings):
+    settings.FUNKWHALE_URL = "http://test"
+    settings.FUNKWHALE_EMBED_URL = "http://embed"
+    track = factories["music.Track"]()
+    album = track.album
+    url = reverse("api:v1:oembed")
+    album_url = "https://test.com/library/albums/{}".format(album.pk)
+    iframe_src = "http://embed?type=album&id={}".format(album.pk)
+    expected = {
+        "version": "1.0",
+        "type": "rich",
+        "provider_name": settings.APP_NAME,
+        "provider_url": settings.FUNKWHALE_URL,
+        "height": 400,
+        "width": 600,
+        "title": "{} by {}".format(album.title, album.artist.name),
+        "description": "{} by {}".format(album.title, album.artist.name),
+        "thumbnail_url": federation_utils.full_url(album.cover.crop["400x400"].url),
+        "thumbnail_height": 400,
+        "thumbnail_width": 400,
+        "html": '<iframe width="600" height="400" scrolling="no" frameborder="no" src="{}"></iframe>'.format(
+            iframe_src
+        ),
+        "author_name": album.artist.name,
+        "author_url": federation_utils.full_url(
+            utils.spa_reverse("library_artist", kwargs={"pk": album.artist.pk})
+        ),
+    }
+
+    response = api_client.get(url, {"url": album_url, "format": "json"})
+
+    assert response.data == expected
diff --git a/api/tests/music/with_cover.ogg b/api/tests/music/with_cover.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..ddd3ab7009e108474d6d15d08640672775b463a1
Binary files /dev/null and b/api/tests/music/with_cover.ogg differ
diff --git a/api/tests/music/with_other_picture.mp3 b/api/tests/music/with_other_picture.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..3118f067e37064f91f48f4265fac9745236169e0
Binary files /dev/null and b/api/tests/music/with_other_picture.mp3 differ
diff --git a/api/tests/playlists/test_models.py b/api/tests/playlists/test_models.py
index 46c14d11c7f34ab7088840a60e5e57eb726b2a95..b90f525184b2f4863d8d9f7ab07314ac1e1a1712 100644
--- a/api/tests/playlists/test_models.py
+++ b/api/tests/playlists/test_models.py
@@ -150,10 +150,6 @@ def test_playlist_playable_by_anonymous(privacy_level, expected, factories):
     factories["music.Upload"](
         track=track, library__privacy_level=privacy_level, import_status="finished"
     )
-    queryset = playlist.__class__.objects.playable_by(None).annotate_playable_by_actor(
-        None
-    )
+    queryset = playlist.__class__.objects.playable_by(None).with_playable_plts(None)
     match = playlist in list(queryset)
     assert match is expected
-    if expected:
-        assert bool(queryset.first().is_playable_by_actor) is expected
diff --git a/api/tests/playlists/test_views.py b/api/tests/playlists/test_views.py
index 1256347f3e379322020838e7504263703fbe267a..1c2b0f19eea43fce59dcf0ed166badd8e5603265 100644
--- a/api/tests/playlists/test_views.py
+++ b/api/tests/playlists/test_views.py
@@ -145,7 +145,7 @@ def test_can_list_tracks_from_playlist(level, factories, logged_in_api_client):
     url = reverse("api:v1:playlists-tracks", kwargs={"pk": plt.playlist.pk})
     response = logged_in_api_client.get(url)
     serialized_plt = serializers.PlaylistTrackSerializer(plt).data
-    serialized_plt["track"]["is_playable"] = False
+
     assert response.data["count"] == 1
     assert response.data["results"][0] == serialized_plt
 
diff --git a/api/tests/radios/test_filters.py b/api/tests/radios/test_filters.py
deleted file mode 100644
index 89bb726aff643c7365b759b510f763b738c738d0..0000000000000000000000000000000000000000
--- a/api/tests/radios/test_filters.py
+++ /dev/null
@@ -1,153 +0,0 @@
-import pytest
-from django.core.exceptions import ValidationError
-
-from funkwhale_api.music.models import Track
-from funkwhale_api.radios import filters
-
-
-@filters.registry.register
-class NoopFilter(filters.RadioFilter):
-    code = "noop"
-
-    def get_query(self, candidates, **kwargs):
-        return
-
-
-def test_most_simple_radio_does_not_filter_anything(factories):
-    factories["music.Track"].create_batch(3)
-    radio = factories["radios.Radio"](config=[{"type": "noop"}])
-
-    assert radio.version == 0
-    assert radio.get_candidates().count() == 3
-
-
-def test_filter_can_use_custom_queryset(factories):
-    tracks = factories["music.Track"].create_batch(3)
-    candidates = Track.objects.filter(pk=tracks[0].pk)
-
-    qs = filters.run([{"type": "noop"}], candidates=candidates)
-    assert qs.count() == 1
-    assert qs.first() == tracks[0]
-
-
-def test_filter_on_tag(factories):
-    tracks = factories["music.Track"].create_batch(3, tags=["metal"])
-    factories["music.Track"].create_batch(3, tags=["pop"])
-    expected = tracks
-    f = [{"type": "tag", "names": ["metal"]}]
-
-    candidates = filters.run(f)
-    assert list(candidates.order_by("pk")) == expected
-
-
-def test_filter_on_artist(factories):
-    artist1 = factories["music.Artist"]()
-    artist2 = factories["music.Artist"]()
-    factories["music.Track"].create_batch(3, artist=artist1)
-    factories["music.Track"].create_batch(3, artist=artist2)
-    expected = list(artist1.tracks.order_by("pk"))
-    f = [{"type": "artist", "ids": [artist1.pk]}]
-
-    candidates = filters.run(f)
-    assert list(candidates.order_by("pk")) == expected
-
-
-def test_can_combine_with_or(factories):
-    artist1 = factories["music.Artist"]()
-    artist2 = factories["music.Artist"]()
-    artist3 = factories["music.Artist"]()
-    factories["music.Track"].create_batch(3, artist=artist1)
-    factories["music.Track"].create_batch(3, artist=artist2)
-    factories["music.Track"].create_batch(3, artist=artist3)
-    expected = Track.objects.exclude(artist=artist3).order_by("pk")
-    f = [
-        {"type": "artist", "ids": [artist1.pk]},
-        {"type": "artist", "ids": [artist2.pk], "operator": "or"},
-    ]
-
-    candidates = filters.run(f)
-    assert list(candidates.order_by("pk")) == list(expected)
-
-
-def test_can_combine_with_and(factories):
-    artist1 = factories["music.Artist"]()
-    artist2 = factories["music.Artist"]()
-    metal_tracks = factories["music.Track"].create_batch(
-        2, artist=artist1, tags=["metal"]
-    )
-    factories["music.Track"].create_batch(2, artist=artist1, tags=["pop"])
-    factories["music.Track"].create_batch(3, artist=artist2)
-    expected = metal_tracks
-    f = [
-        {"type": "artist", "ids": [artist1.pk]},
-        {"type": "tag", "names": ["metal"], "operator": "and"},
-    ]
-
-    candidates = filters.run(f)
-    assert list(candidates.order_by("pk")) == list(expected)
-
-
-def test_can_negate(factories):
-    artist1 = factories["music.Artist"]()
-    artist2 = factories["music.Artist"]()
-    factories["music.Track"].create_batch(3, artist=artist1)
-    factories["music.Track"].create_batch(3, artist=artist2)
-    expected = artist2.tracks.order_by("pk")
-    f = [{"type": "artist", "ids": [artist1.pk], "not": True}]
-
-    candidates = filters.run(f)
-    assert list(candidates.order_by("pk")) == list(expected)
-
-
-def test_can_group(factories):
-    artist1 = factories["music.Artist"]()
-    artist2 = factories["music.Artist"]()
-    factories["music.Track"].create_batch(2, artist=artist1)
-    t1 = factories["music.Track"].create_batch(2, artist=artist1, tags=["metal"])
-    factories["music.Track"].create_batch(2, artist=artist2)
-    t2 = factories["music.Track"].create_batch(2, artist=artist2, tags=["metal"])
-    factories["music.Track"].create_batch(2, tags=["metal"])
-    expected = t1 + t2
-    f = [
-        {"type": "tag", "names": ["metal"]},
-        {
-            "type": "group",
-            "operator": "and",
-            "filters": [
-                {"type": "artist", "ids": [artist1.pk], "operator": "or"},
-                {"type": "artist", "ids": [artist2.pk], "operator": "or"},
-            ],
-        },
-    ]
-
-    candidates = filters.run(f)
-    assert list(candidates.order_by("pk")) == list(expected)
-
-
-def test_artist_filter_clean_config(factories):
-    artist1 = factories["music.Artist"]()
-    artist2 = factories["music.Artist"]()
-
-    config = filters.clean_config({"type": "artist", "ids": [artist2.pk, artist1.pk]})
-
-    expected = {
-        "type": "artist",
-        "ids": [artist1.pk, artist2.pk],
-        "names": [artist1.name, artist2.name],
-    }
-    assert filters.clean_config(config) == expected
-
-
-def test_can_check_artist_filter(factories):
-    artist = factories["music.Artist"]()
-
-    assert filters.validate({"type": "artist", "ids": [artist.pk]})
-    with pytest.raises(ValidationError):
-        filters.validate({"type": "artist", "ids": [artist.pk + 1]})
-
-
-def test_can_check_operator():
-    assert filters.validate({"type": "group", "operator": "or", "filters": []})
-    assert filters.validate({"type": "group", "operator": "and", "filters": []})
-    with pytest.raises(ValidationError):
-        assert filters.validate({"type": "group", "operator": "nope", "filters": []})
diff --git a/api/tests/subsonic/test_renderers.py b/api/tests/subsonic/test_renderers.py
index 301fee8b5d2e67673d7cc829fcdeb399fb1b0b76..acd5500e665b6d4f9d32c0ea6cd9689a9bb37421 100644
--- a/api/tests/subsonic/test_renderers.py
+++ b/api/tests/subsonic/test_renderers.py
@@ -1,13 +1,66 @@
 import json
+import pytest
 import xml.etree.ElementTree as ET
 
+import funkwhale_api
+
 from funkwhale_api.subsonic import renderers
 
 
+@pytest.mark.parametrize(
+    "data,expected",
+    [
+        (
+            {"hello": "world"},
+            {
+                "status": "ok",
+                "version": "1.16.0",
+                "type": "funkwhale",
+                "funkwhaleVersion": funkwhale_api.__version__,
+                "hello": "world",
+            },
+        ),
+        (
+            {
+                "hello": "world",
+                "error": {"code": 10, "message": "something went wrong"},
+            },
+            {
+                "status": "failed",
+                "version": "1.16.0",
+                "type": "funkwhale",
+                "funkwhaleVersion": funkwhale_api.__version__,
+                "hello": "world",
+                "error": {"code": 10, "message": "something went wrong"},
+            },
+        ),
+        (
+            {"hello": "world", "detail": "something went wrong"},
+            {
+                "status": "failed",
+                "version": "1.16.0",
+                "type": "funkwhale",
+                "funkwhaleVersion": funkwhale_api.__version__,
+                "hello": "world",
+                "error": {"code": 0, "message": "something went wrong"},
+            },
+        ),
+    ],
+)
+def test_structure_payload(data, expected):
+    assert renderers.structure_payload(data) == expected
+
+
 def test_json_renderer():
     data = {"hello": "world"}
     expected = {
-        "subsonic-response": {"status": "ok", "version": "1.16.0", "hello": "world"}
+        "subsonic-response": {
+            "status": "ok",
+            "version": "1.16.0",
+            "type": "funkwhale",
+            "funkwhaleVersion": funkwhale_api.__version__,
+            "hello": "world",
+        }
     }
     renderer = renderers.SubsonicJSONRenderer()
     assert json.loads(renderer.render(data)) == expected
@@ -24,7 +77,8 @@ def test_xml_renderer_dict_to_xml():
 
 def test_xml_renderer():
     payload = {"hello": "world"}
-    expected = b'<?xml version="1.0" encoding="UTF-8"?>\n<subsonic-response hello="world" status="ok" version="1.16.0" xmlns="http://subsonic.org/restapi" />'  # noqa
+    expected = '<?xml version="1.0" encoding="UTF-8"?>\n<subsonic-response funkwhaleVersion="{}" hello="world" status="ok" type="funkwhale" version="1.16.0" xmlns="http://subsonic.org/restapi" />'  # noqa
+    expected = expected.format(funkwhale_api.__version__).encode()
 
     renderer = renderers.SubsonicXMLRenderer()
     rendered = renderer.render(payload)
diff --git a/api/tests/subsonic/test_views.py b/api/tests/subsonic/test_views.py
index 94cbd8c16a73fc90cf717b876aa19da3349f236e..d185524610dfdcbdd44c67d6f806e3015bd856d5 100644
--- a/api/tests/subsonic/test_views.py
+++ b/api/tests/subsonic/test_views.py
@@ -4,7 +4,9 @@ import json
 import pytest
 from django.urls import reverse
 from django.utils import timezone
+from rest_framework.response import Response
 
+import funkwhale_api
 from funkwhale_api.music import models as music_models
 from funkwhale_api.music import views as music_views
 from funkwhale_api.subsonic import renderers, serializers
@@ -18,7 +20,12 @@ def test_render_content_json(db, api_client):
     url = reverse("api:subsonic-ping")
     response = api_client.get(url, {"f": "json"})
 
-    expected = {"status": "ok", "version": "1.16.0"}
+    expected = {
+        "status": "ok",
+        "version": "1.16.0",
+        "type": "funkwhale",
+        "funkwhaleVersion": funkwhale_api.__version__,
+    }
     assert response.status_code == 200
     assert json.loads(response.content) == render_json(expected)
 
@@ -36,6 +43,20 @@ def test_exception_wrong_credentials(f, db, api_client):
     assert response.data == expected
 
 
+@pytest.mark.parametrize("f", ["json"])
+def test_exception_missing_credentials(f, db, api_client):
+    url = reverse("api:subsonic-get_artists")
+    response = api_client.get(url)
+
+    expected = {
+        "status": "failed",
+        "error": {"code": 10, "message": "Required parameter is missing."},
+    }
+
+    assert response.status_code == 200
+    assert response.data == expected
+
+
 def test_disabled_subsonic(preferences, api_client):
     preferences["subsonic__enabled"] = False
     url = reverse("api:subsonic-ping")
@@ -45,7 +66,7 @@ def test_disabled_subsonic(preferences, api_client):
 
 @pytest.mark.parametrize("f", ["xml", "json"])
 def test_get_license(f, db, logged_in_api_client, mocker):
-    url = reverse("api:subsonic-get-license")
+    url = reverse("api:subsonic-get_license")
     assert url.endswith("getLicense") is True
     now = timezone.now()
     mocker.patch("django.utils.timezone.now", return_value=now)
@@ -53,6 +74,8 @@ def test_get_license(f, db, logged_in_api_client, mocker):
     expected = {
         "status": "ok",
         "version": "1.16.0",
+        "type": "funkwhale",
+        "funkwhaleVersion": funkwhale_api.__version__,
         "license": {
             "valid": "true",
             "email": "valid@valid.license",
@@ -73,11 +96,11 @@ def test_ping(f, db, api_client):
     assert response.data == expected
 
 
-@pytest.mark.parametrize("f", ["xml", "json"])
+@pytest.mark.parametrize("f", ["json"])
 def test_get_artists(
     f, db, logged_in_api_client, factories, mocker, queryset_equal_queries
 ):
-    url = reverse("api:subsonic-get-artists")
+    url = reverse("api:subsonic-get_artists")
     assert url.endswith("getArtists") is True
     factories["music.Artist"].create_batch(size=3, playable=True)
     playable_by = mocker.spy(music_models.ArtistQuerySet, "playable_by")
@@ -93,11 +116,11 @@ def test_get_artists(
     playable_by.assert_called_once_with(music_models.Artist.objects.all(), None)
 
 
-@pytest.mark.parametrize("f", ["xml", "json"])
+@pytest.mark.parametrize("f", ["json"])
 def test_get_artist(
     f, db, logged_in_api_client, factories, mocker, queryset_equal_queries
 ):
-    url = reverse("api:subsonic-get-artist")
+    url = reverse("api:subsonic-get_artist")
     assert url.endswith("getArtist") is True
     artist = factories["music.Artist"](playable=True)
     factories["music.Album"].create_batch(size=3, artist=artist, playable=True)
@@ -111,9 +134,9 @@ def test_get_artist(
     playable_by.assert_called_once_with(music_models.Artist.objects.all(), None)
 
 
-@pytest.mark.parametrize("f", ["xml", "json"])
+@pytest.mark.parametrize("f", ["json"])
 def test_get_invalid_artist(f, db, logged_in_api_client, factories):
-    url = reverse("api:subsonic-get-artist")
+    url = reverse("api:subsonic-get_artist")
     assert url.endswith("getArtist") is True
     expected = {"error": {"code": 0, "message": 'For input string "asdf"'}}
     response = logged_in_api_client.get(url, {"id": "asdf"})
@@ -122,11 +145,11 @@ def test_get_invalid_artist(f, db, logged_in_api_client, factories):
     assert response.data == expected
 
 
-@pytest.mark.parametrize("f", ["xml", "json"])
+@pytest.mark.parametrize("f", ["json"])
 def test_get_artist_info2(
     f, db, logged_in_api_client, factories, mocker, queryset_equal_queries
 ):
-    url = reverse("api:subsonic-get-artist-info2")
+    url = reverse("api:subsonic-get_artist_info2")
     assert url.endswith("getArtistInfo2") is True
     artist = factories["music.Artist"](playable=True)
     playable_by = mocker.spy(music_models.ArtistQuerySet, "playable_by")
@@ -140,11 +163,11 @@ def test_get_artist_info2(
     playable_by.assert_called_once_with(music_models.Artist.objects.all(), None)
 
 
-@pytest.mark.parametrize("f", ["xml", "json"])
+@pytest.mark.parametrize("f", ["json"])
 def test_get_album(
     f, db, logged_in_api_client, factories, mocker, queryset_equal_queries
 ):
-    url = reverse("api:subsonic-get-album")
+    url = reverse("api:subsonic-get_album")
     assert url.endswith("getAlbum") is True
     artist = factories["music.Artist"]()
     album = factories["music.Album"](artist=artist)
@@ -161,11 +184,11 @@ def test_get_album(
     )
 
 
-@pytest.mark.parametrize("f", ["xml", "json"])
+@pytest.mark.parametrize("f", ["json"])
 def test_get_song(
     f, db, logged_in_api_client, factories, mocker, queryset_equal_queries
 ):
-    url = reverse("api:subsonic-get-song")
+    url = reverse("api:subsonic-get_song")
     assert url.endswith("getSong") is True
     artist = factories["music.Artist"]()
     album = factories["music.Album"](artist=artist)
@@ -181,7 +204,7 @@ def test_get_song(
     playable_by.assert_called_once_with(music_models.Track.objects.all(), None)
 
 
-@pytest.mark.parametrize("f", ["xml", "json"])
+@pytest.mark.parametrize("f", ["json"])
 def test_stream(f, db, logged_in_api_client, factories, mocker, queryset_equal_queries):
     url = reverse("api:subsonic-stream")
     mocked_serve = mocker.spy(music_views, "handle_serve")
@@ -190,12 +213,29 @@ def test_stream(f, db, logged_in_api_client, factories, mocker, queryset_equal_q
     playable_by = mocker.spy(music_models.TrackQuerySet, "playable_by")
     response = logged_in_api_client.get(url, {"f": f, "id": upload.track.pk})
 
-    mocked_serve.assert_called_once_with(upload=upload, user=logged_in_api_client.user)
+    mocked_serve.assert_called_once_with(
+        upload=upload, user=logged_in_api_client.user, format=None
+    )
     assert response.status_code == 200
     playable_by.assert_called_once_with(music_models.Track.objects.all(), None)
 
 
-@pytest.mark.parametrize("f", ["xml", "json"])
+@pytest.mark.parametrize("format,expected", [("mp3", "mp3"), ("raw", None)])
+def test_stream_format(format, expected, logged_in_api_client, factories, mocker):
+    url = reverse("api:subsonic-stream")
+    mocked_serve = mocker.patch.object(
+        music_views, "handle_serve", return_value=Response()
+    )
+    upload = factories["music.Upload"](playable=True)
+    response = logged_in_api_client.get(url, {"id": upload.track.pk, "format": format})
+
+    mocked_serve.assert_called_once_with(
+        upload=upload, user=logged_in_api_client.user, format=expected
+    )
+    assert response.status_code == 200
+
+
+@pytest.mark.parametrize("f", ["json"])
 def test_star(f, db, logged_in_api_client, factories):
     url = reverse("api:subsonic-star")
     assert url.endswith("star") is True
@@ -209,7 +249,7 @@ def test_star(f, db, logged_in_api_client, factories):
     assert favorite.track == track
 
 
-@pytest.mark.parametrize("f", ["xml", "json"])
+@pytest.mark.parametrize("f", ["json"])
 def test_unstar(f, db, logged_in_api_client, factories):
     url = reverse("api:subsonic-unstar")
     assert url.endswith("unstar") is True
@@ -222,9 +262,9 @@ def test_unstar(f, db, logged_in_api_client, factories):
     assert logged_in_api_client.user.track_favorites.count() == 0
 
 
-@pytest.mark.parametrize("f", ["xml", "json"])
+@pytest.mark.parametrize("f", ["json"])
 def test_get_starred2(f, db, logged_in_api_client, factories):
-    url = reverse("api:subsonic-get-starred2")
+    url = reverse("api:subsonic-get_starred2")
     assert url.endswith("getStarred2") is True
     track = factories["music.Track"]()
     favorite = factories["favorites.TrackFavorite"](
@@ -238,9 +278,32 @@ def test_get_starred2(f, db, logged_in_api_client, factories):
     }
 
 
-@pytest.mark.parametrize("f", ["xml", "json"])
+@pytest.mark.parametrize("f", ["json"])
+def test_get_random_songs(f, db, logged_in_api_client, factories, mocker):
+    url = reverse("api:subsonic-get_random_songs")
+    assert url.endswith("getRandomSongs") is True
+    track1 = factories["music.Track"]()
+    track2 = factories["music.Track"]()
+    factories["music.Track"]()
+
+    order_by = mocker.patch.object(
+        music_models.TrackQuerySet, "order_by", return_value=[track1, track2]
+    )
+    response = logged_in_api_client.get(url, {"f": f, "size": 2})
+
+    assert response.status_code == 200
+    assert response.data == {
+        "randomSongs": {
+            "song": serializers.GetSongSerializer([track1, track2], many=True).data
+        }
+    }
+
+    order_by.assert_called_once_with("?")
+
+
+@pytest.mark.parametrize("f", ["json"])
 def test_get_starred(f, db, logged_in_api_client, factories):
-    url = reverse("api:subsonic-get-starred")
+    url = reverse("api:subsonic-get_starred")
     assert url.endswith("getStarred") is True
     track = factories["music.Track"]()
     favorite = factories["favorites.TrackFavorite"](
@@ -254,11 +317,11 @@ def test_get_starred(f, db, logged_in_api_client, factories):
     }
 
 
-@pytest.mark.parametrize("f", ["xml", "json"])
+@pytest.mark.parametrize("f", ["json"])
 def test_get_album_list2(
     f, db, logged_in_api_client, factories, mocker, queryset_equal_queries
 ):
-    url = reverse("api:subsonic-get-album-list2")
+    url = reverse("api:subsonic-get_album_list2")
     assert url.endswith("getAlbumList2") is True
     album1 = factories["music.Album"](playable=True)
     album2 = factories["music.Album"](playable=True)
@@ -273,9 +336,9 @@ def test_get_album_list2(
     playable_by.assert_called_once()
 
 
-@pytest.mark.parametrize("f", ["xml", "json"])
+@pytest.mark.parametrize("f", ["json"])
 def test_get_album_list2_pagination(f, db, logged_in_api_client, factories):
-    url = reverse("api:subsonic-get-album-list2")
+    url = reverse("api:subsonic-get_album_list2")
     assert url.endswith("getAlbumList2") is True
     album1 = factories["music.Album"](playable=True)
     factories["music.Album"](playable=True)
@@ -289,7 +352,7 @@ def test_get_album_list2_pagination(f, db, logged_in_api_client, factories):
     }
 
 
-@pytest.mark.parametrize("f", ["xml", "json"])
+@pytest.mark.parametrize("f", ["json"])
 def test_search3(f, db, logged_in_api_client, factories):
     url = reverse("api:subsonic-search3")
     assert url.endswith("search3") is True
@@ -320,9 +383,9 @@ def test_search3(f, db, logged_in_api_client, factories):
     }
 
 
-@pytest.mark.parametrize("f", ["xml", "json"])
+@pytest.mark.parametrize("f", ["json"])
 def test_get_playlists(f, db, logged_in_api_client, factories):
-    url = reverse("api:subsonic-get-playlists")
+    url = reverse("api:subsonic-get_playlists")
     assert url.endswith("getPlaylists") is True
     playlist = factories["playlists.Playlist"](user=logged_in_api_client.user)
     response = logged_in_api_client.get(url, {"f": f})
@@ -334,9 +397,9 @@ def test_get_playlists(f, db, logged_in_api_client, factories):
     }
 
 
-@pytest.mark.parametrize("f", ["xml", "json"])
+@pytest.mark.parametrize("f", ["json"])
 def test_get_playlist(f, db, logged_in_api_client, factories):
-    url = reverse("api:subsonic-get-playlist")
+    url = reverse("api:subsonic-get_playlist")
     assert url.endswith("getPlaylist") is True
     playlist = factories["playlists.Playlist"](user=logged_in_api_client.user)
     response = logged_in_api_client.get(url, {"f": f, "id": playlist.pk})
@@ -348,9 +411,9 @@ def test_get_playlist(f, db, logged_in_api_client, factories):
     }
 
 
-@pytest.mark.parametrize("f", ["xml", "json"])
+@pytest.mark.parametrize("f", ["json"])
 def test_update_playlist(f, db, logged_in_api_client, factories):
-    url = reverse("api:subsonic-update-playlist")
+    url = reverse("api:subsonic-update_playlist")
     assert url.endswith("updatePlaylist") is True
     playlist = factories["playlists.Playlist"](user=logged_in_api_client.user)
     factories["playlists.PlaylistTrack"](index=0, playlist=playlist)
@@ -372,9 +435,9 @@ def test_update_playlist(f, db, logged_in_api_client, factories):
     assert playlist.playlist_tracks.first().track_id == new_track.pk
 
 
-@pytest.mark.parametrize("f", ["xml", "json"])
+@pytest.mark.parametrize("f", ["json"])
 def test_delete_playlist(f, db, logged_in_api_client, factories):
-    url = reverse("api:subsonic-delete-playlist")
+    url = reverse("api:subsonic-delete_playlist")
     assert url.endswith("deletePlaylist") is True
     playlist = factories["playlists.Playlist"](user=logged_in_api_client.user)
     response = logged_in_api_client.get(url, {"f": f, "id": playlist.pk})
@@ -383,9 +446,9 @@ def test_delete_playlist(f, db, logged_in_api_client, factories):
         playlist.refresh_from_db()
 
 
-@pytest.mark.parametrize("f", ["xml", "json"])
+@pytest.mark.parametrize("f", ["json"])
 def test_create_playlist(f, db, logged_in_api_client, factories):
-    url = reverse("api:subsonic-create-playlist")
+    url = reverse("api:subsonic-create_playlist")
     assert url.endswith("createPlaylist") is True
     track1 = factories["music.Track"]()
     track2 = factories["music.Track"]()
@@ -405,9 +468,9 @@ def test_create_playlist(f, db, logged_in_api_client, factories):
     }
 
 
-@pytest.mark.parametrize("f", ["xml", "json"])
+@pytest.mark.parametrize("f", ["json"])
 def test_get_music_folders(f, db, logged_in_api_client, factories):
-    url = reverse("api:subsonic-get-music-folders")
+    url = reverse("api:subsonic-get_music_folders")
     assert url.endswith("getMusicFolders") is True
     response = logged_in_api_client.get(url, {"f": f})
     assert response.status_code == 200
@@ -416,11 +479,11 @@ def test_get_music_folders(f, db, logged_in_api_client, factories):
     }
 
 
-@pytest.mark.parametrize("f", ["xml", "json"])
+@pytest.mark.parametrize("f", ["json"])
 def test_get_indexes(
     f, db, logged_in_api_client, factories, mocker, queryset_equal_queries
 ):
-    url = reverse("api:subsonic-get-indexes")
+    url = reverse("api:subsonic-get_indexes")
     assert url.endswith("getIndexes") is True
     factories["music.Artist"].create_batch(size=3, playable=True)
     expected = {
@@ -438,7 +501,7 @@ def test_get_indexes(
 
 
 def test_get_cover_art_album(factories, logged_in_api_client):
-    url = reverse("api:subsonic-get-cover-art")
+    url = reverse("api:subsonic-get_cover_art")
     assert url.endswith("getCoverArt") is True
     album = factories["music.Album"]()
     response = logged_in_api_client.get(url, {"id": "al-{}".format(album.pk)})
@@ -450,6 +513,19 @@ def test_get_cover_art_album(factories, logged_in_api_client):
     ).decode("utf-8")
 
 
+def test_get_avatar(factories, logged_in_api_client):
+    user = factories["users.User"]()
+    url = reverse("api:subsonic-get_avatar")
+    assert url.endswith("getAvatar") is True
+    response = logged_in_api_client.get(url, {"username": user.username})
+
+    assert response.status_code == 200
+    assert response["Content-Type"] == ""
+    assert response["X-Accel-Redirect"] == music_views.get_file_path(
+        user.avatar
+    ).decode("utf-8")
+
+
 def test_scrobble(factories, logged_in_api_client):
     upload = factories["music.Upload"]()
     track = upload.track
@@ -461,3 +537,34 @@ def test_scrobble(factories, logged_in_api_client):
 
     listening = logged_in_api_client.user.listenings.latest("id")
     assert listening.track == track
+
+
+@pytest.mark.parametrize("f", ["json"])
+def test_get_user(f, db, logged_in_api_client, factories):
+    url = reverse("api:subsonic-get_user")
+    assert url.endswith("getUser") is True
+    response = logged_in_api_client.get(
+        url, {"f": f, "username": logged_in_api_client.user.username}
+    )
+    assert response.status_code == 200
+    assert response.data == {
+        "user": {
+            "username": logged_in_api_client.user.username,
+            "email": logged_in_api_client.user.email,
+            "scrobblingEnabled": "true",
+            "adminRole": "false",
+            "downloadRole": "true",
+            "uploadRole": "true",
+            "settingsRole": "false",
+            "playlistRole": "true",
+            "commentRole": "false",
+            "podcastRole": "false",
+            "streamRole": "true",
+            "jukeboxRole": "true",
+            "coverArtRole": "false",
+            "shareRole": "false",
+            "folder": [
+                f["id"] for f in serializers.get_folders(logged_in_api_client.user)
+            ],
+        }
+    }
diff --git a/api/tests/test_acoustid.py b/api/tests/test_acoustid.py
deleted file mode 100644
index ab3dfd1d87c9a8c47e5e6d1b357f27f01f19a3c2..0000000000000000000000000000000000000000
--- a/api/tests/test_acoustid.py
+++ /dev/null
@@ -1,43 +0,0 @@
-from funkwhale_api.providers.acoustid import get_acoustid_client
-
-
-def test_client_is_configured_with_correct_api_key(preferences):
-    api_key = "hello world"
-    preferences["providers_acoustid__api_key"] = api_key
-
-    client = get_acoustid_client()
-    assert client.api_key == api_key
-
-
-def test_client_returns_raw_results(db, mocker, preferences):
-    api_key = "test"
-    preferences["providers_acoustid__api_key"] = api_key
-    payload = {
-        "results": [
-            {
-                "id": "e475bf79-c1ce-4441-bed7-1e33f226c0a2",
-                "recordings": [
-                    {
-                        "artists": [
-                            {
-                                "id": "9c6bddde-6228-4d9f-ad0d-03f6fcb19e13",
-                                "name": "Binärpilot",
-                            }
-                        ],
-                        "duration": 268,
-                        "id": "f269d497-1cc0-4ae4-a0c4-157ec7d73fcb",
-                        "title": "Bend",
-                    }
-                ],
-                "score": 0.860825,
-            }
-        ],
-        "status": "ok",
-    }
-
-    m = mocker.patch("acoustid.match", return_value=payload)
-    client = get_acoustid_client()
-    response = client.match("/tmp/noopfile.mp3")
-
-    assert response == payload
-    m.assert_called_once_with("test", "/tmp/noopfile.mp3", parse=False)
diff --git a/api/tests/users/test_models.py b/api/tests/users/test_models.py
index 69d33882848313df762e5f9a9f11d8b896450fe4..4b2f71bca02fa754bdb60615fd08d3e496d58013 100644
--- a/api/tests/users/test_models.py
+++ b/api/tests/users/test_models.py
@@ -46,23 +46,22 @@ def test_get_permissions_regular(factories):
 
 
 def test_get_permissions_default(factories, preferences):
-    preferences["users__default_permissions"] = ["upload", "federation"]
+    preferences["users__default_permissions"] = ["library", "moderation"]
     user = factories["users.User"]()
 
     perms = user.get_permissions()
-    assert perms["upload"] is True
-    assert perms["federation"] is True
-    assert perms["library"] is False
+    assert perms["moderation"] is True
+    assert perms["library"] is True
     assert perms["settings"] is False
 
 
 @pytest.mark.parametrize(
     "args,perms,expected",
     [
-        ({"is_superuser": True}, ["federation", "library"], True),
-        ({"is_superuser": False}, ["federation"], False),
+        ({"is_superuser": True}, ["moderation", "library"], True),
+        ({"is_superuser": False}, ["moderation"], False),
         ({"permission_library": True}, ["library"], True),
-        ({"permission_library": True}, ["library", "federation"], False),
+        ({"permission_library": True}, ["library", "moderation"], False),
     ],
 )
 def test_has_permissions_and(args, perms, expected, factories):
@@ -73,10 +72,10 @@ def test_has_permissions_and(args, perms, expected, factories):
 @pytest.mark.parametrize(
     "args,perms,expected",
     [
-        ({"is_superuser": True}, ["federation", "library"], True),
-        ({"is_superuser": False}, ["federation"], False),
-        ({"permission_library": True}, ["library", "federation"], True),
-        ({"permission_library": True}, ["federation"], False),
+        ({"is_superuser": True}, ["moderation", "library"], True),
+        ({"is_superuser": False}, ["moderation"], False),
+        ({"permission_library": True}, ["library", "moderation"], True),
+        ({"permission_library": True}, ["moderation"], False),
     ],
 )
 def test_has_permissions_or(args, perms, expected, factories):
@@ -137,7 +136,7 @@ def test_creating_actor_from_user(factories, settings):
     actor = models.create_actor(user)
 
     assert actor.preferred_username == "Hello_M_world"  # slugified
-    assert actor.domain == settings.FEDERATION_HOSTNAME
+    assert actor.domain.pk == settings.FEDERATION_HOSTNAME
     assert actor.type == "Person"
     assert actor.name == user.username
     assert actor.manually_approves_followers is False
diff --git a/api/tests/users/test_permissions.py b/api/tests/users/test_permissions.py
index 7f72138f4a14394e3a65d53deda3ab1728f32473..0b92f74a58ab7d914a0b15ceeb48b17e5abf95ae 100644
--- a/api/tests/users/test_permissions.py
+++ b/api/tests/users/test_permissions.py
@@ -21,21 +21,21 @@ def test_has_user_permission_anonymous(anonymous_user, api_request):
 
 @pytest.mark.parametrize("value", [True, False])
 def test_has_user_permission_logged_in_single(value, factories, api_request):
-    user = factories["users.User"](permission_federation=value)
+    user = factories["users.User"](permission_moderation=value)
 
     class View(APIView):
-        required_permissions = ["federation"]
+        required_permissions = ["moderation"]
 
     view = View()
     permission = permissions.HasUserPermission()
     request = api_request.get("/")
     setattr(request, "user", user)
     result = permission.has_permission(request, view)
-    assert result == user.has_permissions("federation") == value
+    assert result == user.has_permissions("moderation") == value
 
 
 @pytest.mark.parametrize(
-    "federation,library,expected",
+    "moderation,library,expected",
     [
         (True, False, False),
         (False, True, False),
@@ -44,14 +44,14 @@ def test_has_user_permission_logged_in_single(value, factories, api_request):
     ],
 )
 def test_has_user_permission_logged_in_multiple_and(
-    federation, library, expected, factories, api_request
+    moderation, library, expected, factories, api_request
 ):
     user = factories["users.User"](
-        permission_federation=federation, permission_library=library
+        permission_moderation=moderation, permission_library=library
     )
 
     class View(APIView):
-        required_permissions = ["federation", "library"]
+        required_permissions = ["moderation", "library"]
         permission_operator = "and"
 
     view = View()
@@ -59,11 +59,11 @@ def test_has_user_permission_logged_in_multiple_and(
     request = api_request.get("/")
     setattr(request, "user", user)
     result = permission.has_permission(request, view)
-    assert result == user.has_permissions("federation", "library") == expected
+    assert result == user.has_permissions("moderation", "library") == expected
 
 
 @pytest.mark.parametrize(
-    "federation,library,expected",
+    "moderation,library,expected",
     [
         (True, False, True),
         (False, True, True),
@@ -72,14 +72,14 @@ def test_has_user_permission_logged_in_multiple_and(
     ],
 )
 def test_has_user_permission_logged_in_multiple_or(
-    federation, library, expected, factories, api_request
+    moderation, library, expected, factories, api_request
 ):
     user = factories["users.User"](
-        permission_federation=federation, permission_library=library
+        permission_moderation=moderation, permission_library=library
     )
 
     class View(APIView):
-        required_permissions = ["federation", "library"]
+        required_permissions = ["moderation", "library"]
         permission_operator = "or"
 
     view = View()
@@ -87,6 +87,6 @@ def test_has_user_permission_logged_in_multiple_or(
     request = api_request.get("/")
     setattr(request, "user", user)
     result = permission.has_permission(request, view)
-    has_permission_result = user.has_permissions("federation", "library", operator="or")
+    has_permission_result = user.has_permissions("moderation", "library", operator="or")
 
     assert result == has_permission_result == expected
diff --git a/changes/changelog.d/562.doc b/changes/changelog.d/562.doc
deleted file mode 100644
index 664a94f01d748e81676c534d10df0211a014db95..0000000000000000000000000000000000000000
--- a/changes/changelog.d/562.doc
+++ /dev/null
@@ -1 +0,0 @@
-Document how to find and use library id when importing files in CLI (#562)
diff --git a/changes/changelog.d/575.enhancement b/changes/changelog.d/575.enhancement
deleted file mode 100644
index eb1781defd99974fb7c6213fb7f7d5154d3a3d2c..0000000000000000000000000000000000000000
--- a/changes/changelog.d/575.enhancement
+++ /dev/null
@@ -1 +0,0 @@
-Documented which Subsonic endpoints are implemented (#575)
diff --git a/changes/changelog.d/626.enhancement b/changes/changelog.d/626.enhancement
deleted file mode 100644
index 8f2f20100dc9507dcb77188b1f2d0cd608f78c26..0000000000000000000000000000000000000000
--- a/changes/changelog.d/626.enhancement
+++ /dev/null
@@ -1,10 +0,0 @@
-Load env file in config/.env automatically to avoid sourcing it by hand (#626)
-
-Automatically load .env file
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-On non-docker deployments, earlier versions required you to source
-the config/.env file before launching any Funkwhale command, with ``export $(cat config/.env | grep -v ^# | xargs)``
-This led to more complex and error prode deployment / setup.
-
-This is not the case anymore, and Funkwhale will automatically load this file if it's available.
diff --git a/changes/changelog.d/642.documentation b/changes/changelog.d/642.documentation
deleted file mode 100644
index e93dca7b16650cb6b3e4717e1dc0bbbf642756a2..0000000000000000000000000000000000000000
--- a/changes/changelog.d/642.documentation
+++ /dev/null
@@ -1 +0,0 @@
-Deploy documentation from the master branch instead of the develop branch to avoid inconsistencies (#642)
diff --git a/changes/changelog.d/645.doc b/changes/changelog.d/645.doc
deleted file mode 100644
index 1fec864df9842e51c89c19bff89d765f9f91c804..0000000000000000000000000000000000000000
--- a/changes/changelog.d/645.doc
+++ /dev/null
@@ -1 +0,0 @@
-Fix documentation typos (#645)
diff --git a/changes/notes.rst b/changes/notes.rst
new file mode 100644
index 0000000000000000000000000000000000000000..96ac3d7651f92166072a2fb200c0dd57606851e3
--- /dev/null
+++ b/changes/notes.rst
@@ -0,0 +1,7 @@
+Next release notes
+==================
+
+.. note::
+
+    Those release notes refer to the current development branch and are reset
+    after each release.
diff --git a/demo/env.sample b/demo/env.sample
index 0c9668765d31e9742a76398d7bfde3f313c52c8e..a41eee2b4a709f816fd4878f5d1c8a46d69e8f33 100644
--- a/demo/env.sample
+++ b/demo/env.sample
@@ -1,5 +1,4 @@
 FUNKWHALE_URL=https://demo.funkwhale.audio/
-DJANGO_ALLOWED_HOSTS=demo.funkwhale.audio
 FUNKWHALE_API_PORT=5001
 DJANGO_SECRET_KEY=demo
 DATABASE_URL=postgresql://postgres@postgres/postgres
diff --git a/deploy/apache.conf b/deploy/apache.conf
index e3a570db00444393076bb0580dc0469259079bb1..f348566a0f08f2458e8acd05899980edd1a576b5 100644
--- a/deploy/apache.conf
+++ b/deploy/apache.conf
@@ -69,11 +69,11 @@ Define MUSIC_DIRECTORY_PATH /srv/funkwhale/data/music
    </Proxy>
 
    # Activating WebSockets
-   ProxyPass "/api/v1/instance/activity"  ${funkwhale-api-ws}/api/v1/instance/activity
+   ProxyPass "/api/v1/activity"  ${funkwhale-api-ws}/api/v1/activity
 
    <Location "/api">
-      # similar to nginx 'client_max_body_size 30M;'
-      LimitRequestBody 31457280
+      # similar to nginx 'client_max_body_size 100M;'
+      LimitRequestBody 104857600
 
       ProxyPass ${funkwhale-api}/api
       ProxyPassReverse ${funkwhale-api}/api
diff --git a/deploy/docker-compose.yml b/deploy/docker-compose.yml
index 815c4e5bb2870074b004317ef7bf1e0f6aeea647..89ab61c99721bcf1c2002514e610a1c2173ffe53 100644
--- a/deploy/docker-compose.yml
+++ b/deploy/docker-compose.yml
@@ -4,7 +4,7 @@ services:
   postgres:
     restart: unless-stopped
     env_file: .env
-    image: postgres:9.4
+    image: postgres:11
     volumes:
       - ./data/postgres:/var/lib/postgresql/data
 
@@ -62,12 +62,13 @@ services:
       - redis
 
   nginx:
+    restart: unless-stopped
     image: nginx
     env_file:
       - .env
     environment:
       # Override those variables in your .env file if needed
-      - "NGINX_MAX_BODY_SIZE=${NGINX_MAX_BODY_SIZE-30M}"
+      - "NGINX_MAX_BODY_SIZE=${NGINX_MAX_BODY_SIZE-100M}"
     volumes:
       - "./nginx/funkwhale.template:/etc/nginx/conf.d/funkwhale.template:ro"
       - "./nginx/funkwhale_proxy.conf:/etc/nginx/funkwhale_proxy.conf:ro"
diff --git a/deploy/docker.nginx.template b/deploy/docker.nginx.template
index d73a1c4b6ebd176aa0ef761affb80ba1c667a2d8..fd99c07050f9b42ed5c8999be2bbdf8118121645 100644
--- a/deploy/docker.nginx.template
+++ b/deploy/docker.nginx.template
@@ -24,17 +24,17 @@ server {
     root /frontend;
 
     location / {
-        try_files $uri $uri/ @rewrites;
-    }
-
-    location @rewrites {
-        rewrite ^(.+)$ /index.html last;
-    }
-    location /api/ {
         include /etc/nginx/funkwhale_proxy.conf;
         # this is needed if you have file import via upload enabled
         client_max_body_size ${NGINX_MAX_BODY_SIZE};
-        proxy_pass   http://funkwhale-api/api/;
+        proxy_pass   http://funkwhale-api/;
+    }
+
+    location /front/ {
+        alias /frontend/;
+        expires 30d;
+        add_header Pragma public;
+        add_header Cache-Control "public, must-revalidate, proxy-revalidate";
     }
 
     location /federation/ {
diff --git a/deploy/docker.proxy.template b/deploy/docker.proxy.template
index 319f287e79ca21a62a6c00884bbec3d54d2639b3..c4f89057defa8b4142d73dd737e80b238259819a 100644
--- a/deploy/docker.proxy.template
+++ b/deploy/docker.proxy.template
@@ -29,8 +29,43 @@ server {
     # HSTS
     add_header Strict-Transport-Security "max-age=31536000";
 
+    # compression settings
+    gzip on;
+    gzip_comp_level    5;
+    gzip_min_length    256;
+    gzip_proxied       any;
+    gzip_vary          on;
+
+    gzip_types
+        application/atom+xml
+        application/javascript
+        application/json
+        application/ld+json
+        application/activity+json
+        application/manifest+json
+        application/rss+xml
+        application/vnd.geo+json
+        application/vnd.ms-fontobject
+        application/x-font-ttf
+        application/x-web-app-manifest+json
+        application/xhtml+xml
+        application/xml
+        font/opentype
+        image/bmp
+        image/svg+xml
+        image/x-icon
+        text/cache-manifest
+        text/css
+        text/plain
+        text/vcard
+        text/vnd.rim.location.xloc
+        text/vtt
+        text/x-component
+        text/x-cross-domain-policy;
+
     location / {
         include /etc/nginx/funkwhale_proxy.conf;
+        client_max_body_size ${NGINX_MAX_BODY_SIZE};
         proxy_pass   http://fw/;
     }
 }
diff --git a/deploy/env.prod.sample b/deploy/env.prod.sample
index b8d3cd312c85d4ef834975e8b6a7a28c4d5974fc..a71af5310b0c8768720355e44c898ebf950d8aad 100644
--- a/deploy/env.prod.sample
+++ b/deploy/env.prod.sample
@@ -4,7 +4,6 @@
 # If you're tweaking this file from the template, ensure you edit at least the
 # following variables:
 # - DJANGO_SECRET_KEY
-# - DJANGO_ALLOWED_HOSTS
 # - FUNKWHALE_HOSTNAME
 # - EMAIL_CONFIG and DEFAULT_FROM_EMAIL if you plan to send emails)
 # On non-docker setup **only**, you'll also have to tweak/uncomment those variables:
@@ -71,7 +70,10 @@ REVERSE_PROXY_TYPE=nginx
 # Cache configuration
 # Examples:
 #  CACHE_URL=redis://<host>:<port>/<database>
-#  CACHE_URL=redis://localhost:6379/0
+#  CACHE_URL=redis://localhost:6379/0c
+#  With a password:
+#  CACHE_URL=redis://:password@localhost:6379/0
+#  (the extra semicolon is important)
 # Use the next one if you followed Debian installation guide
 # CACHE_URL=redis://127.0.0.1:6379/0
 
@@ -85,11 +87,6 @@ MEDIA_ROOT=/srv/funkwhale/data/media
 # (Ensure this directory actually exists)
 STATIC_ROOT=/srv/funkwhale/data/static
 
-# Update it to match the domain that will be used to reach your funkwhale
-# instance
-# Example: DJANGO_ALLOWED_HOSTS=funkwhale.yourdomain.com
-DJANGO_ALLOWED_HOSTS=yourdomain
-
 # which settings module should django use?
 # You don't have to touch this unless you really know what you're doing
 DJANGO_SETTINGS_MODULE=config.settings.production
@@ -138,4 +135,4 @@ MUSIC_DIRECTORY_SERVE_PATH=/srv/funkwhale/data/music
 FUNKWHALE_FRONTEND_PATH=/srv/funkwhale/front/dist
 
 # Nginx related configuration
-NGINX_MAX_BODY_SIZE=30M
+NGINX_MAX_BODY_SIZE=100M
diff --git a/deploy/nginx.template b/deploy/nginx.template
index 1eb011d4efc1ff11162863b1e69d21c847422d3a..125397ea308a9ddaaaef562798b06a18d9bd9181 100644
--- a/deploy/nginx.template
+++ b/deploy/nginx.template
@@ -22,8 +22,8 @@ map $http_upgrade $connection_upgrade {
 }
 
 server {
-    listen      443 ssl http2;
-    listen [::]:443 ssl http2;
+    listen      443 ssl;
+    listen [::]:443 ssl;
     server_name ${FUNKWHALE_HOSTNAME};
 
     # TLS
@@ -43,18 +43,53 @@ server {
 
     root ${FUNKWHALE_FRONTEND_PATH};
 
-    location / {
-        try_files $uri $uri/ @rewrites;
-    }
+    # compression settings
+    gzip on;
+    gzip_comp_level    5;
+    gzip_min_length    256;
+    gzip_proxied       any;
+    gzip_vary          on;
 
-    location @rewrites {
-        rewrite ^(.+)$ /index.html last;
-    }
-    location /api/ {
+    gzip_types
+        application/atom+xml
+        application/javascript
+        application/json
+        application/ld+json
+        application/activity+json
+        application/manifest+json
+        application/rss+xml
+        application/vnd.geo+json
+        application/vnd.ms-fontobject
+        application/x-font-ttf
+        application/x-web-app-manifest+json
+        application/xhtml+xml
+        application/xml
+        font/opentype
+        image/bmp
+        image/svg+xml
+        image/x-icon
+        text/cache-manifest
+        text/css
+        text/plain
+        text/vcard
+        text/vnd.rim.location.xloc
+        text/vtt
+        text/x-component
+        text/x-cross-domain-policy;
+
+    # end of compression settings
+    location / {
         include /etc/nginx/funkwhale_proxy.conf;
         # this is needed if you have file import via upload enabled
         client_max_body_size ${NGINX_MAX_BODY_SIZE};
-        proxy_pass   http://funkwhale-api/api/;
+        proxy_pass   http://funkwhale-api/;
+    }
+
+    location /front/ {
+        alias ${FUNKWHALE_FRONTEND_PATH}/;
+        expires 30d;
+        add_header Pragma public;
+        add_header Cache-Control "public, must-revalidate, proxy-revalidate";
     }
 
     location /federation/ {
diff --git a/dev.yml b/dev.yml
index 5ac74424cc59eb8b67bf342e3854701ded93e205..2b1e7c5fee3af2996f204dfe4c7a47206266f790 100644
--- a/dev.yml
+++ b/dev.yml
@@ -10,26 +10,19 @@ services:
       - "HOST=0.0.0.0"
       - "VUE_PORT=${VUE_PORT-8080}"
     ports:
-      - "${VUE_PORT-8080}:${VUE_PORT-8080}"
+      - "${VUE_PORT-8080}"
     volumes:
       - "./front:/app"
       - "/app/node_modules"
       - "./po:/po"
     networks:
-      - federation
       - internal
-    labels:
-      traefik.backend: "${COMPOSE_PROJECT_NAME-node1}"
-      traefik.frontend.rule: "Host:${COMPOSE_PROJECT_NAME-node1}.funkwhale.test,${NODE_IP-127.0.0.1}"
-      traefik.enable: "true"
-      traefik.federation.protocol: "http"
-      traefik.federation.port: "${VUE_PORT-8080}"
 
   postgres:
     env_file:
       - .env.dev
       - .env
-    image: postgres
+    image: postgres:${POSTGRES_VERSION-11}
     command: postgres -c log_min_duration_statement=0
     volumes:
       - "./data/${COMPOSE_PROJECT_NAME-node1}/postgres:/var/lib/postgresql/data"
@@ -46,17 +39,20 @@ services:
     networks:
       - internal
 
-  celeryworker:
+  api:
     env_file:
       - .env.dev
       - .env
-    build:
+    build: &backend
       context: ./api
-      dockerfile: docker/Dockerfile.test
-    links:
-      - postgres
-      - redis
-    command: celery -A funkwhale_api.taskapp worker -l debug -B
+      dockerfile: Dockerfile
+      args:
+        install_dev_deps: 1
+    entrypoint: compose/django/dev-entrypoint.sh
+    command: python /app/manage.py runserver 0.0.0.0:${FUNKWHALE_API_PORT-5000}
+    volumes:
+      - ./api:/app
+      - "${MUSIC_DIRECTORY_PATH-./data/music}:/music:ro"
     environment:
       - "FUNKWHALE_HOSTNAME=${FUNKWHALE_HOSTNAME-localhost}"
       - "FUNKWHALE_HOSTNAME_SUFFIX=funkwhale.test"
@@ -64,22 +60,23 @@ services:
       - "FUNKWHALE_PROTOCOL=${FUNKWHALE_PROTOCOL-http}"
       - "DATABASE_URL=postgresql://postgres@postgres/postgres"
       - "CACHE_URL=redis://redis:6379/0"
-    volumes:
-      - ./api:/app
-      - "${MUSIC_DIRECTORY-./data/music}:/music:ro"
+    links:
+      - postgres
+      - redis
     networks:
       - internal
-  api:
+    cap_add:
+      - SYS_PTRACE
+
+  celeryworker:
     env_file:
       - .env.dev
       - .env
-    build:
-      context: ./api
-      dockerfile: docker/Dockerfile.test
-    command: python /app/manage.py runserver 0.0.0.0:12081
-    volumes:
-      - ./api:/app
-      - "${MUSIC_DIRECTORY-./data/music}:/music:ro"
+    build: *backend
+    links:
+      - postgres
+      - redis
+    command: celery -A funkwhale_api.taskapp worker -l debug -B
     environment:
       - "FUNKWHALE_HOSTNAME=${FUNKWHALE_HOSTNAME-localhost}"
       - "FUNKWHALE_HOSTNAME_SUFFIX=funkwhale.test"
@@ -87,9 +84,9 @@ services:
       - "FUNKWHALE_PROTOCOL=${FUNKWHALE_PROTOCOL-http}"
       - "DATABASE_URL=postgresql://postgres@postgres/postgres"
       - "CACHE_URL=redis://redis:6379/0"
-    links:
-      - postgres
-      - redis
+    volumes:
+      - ./api:/app
+      - "${MUSIC_DIRECTORY_PATH-./data/music}:/music:ro"
     networks:
       - internal
   nginx:
@@ -99,22 +96,35 @@ services:
       - .env
     image: nginx
     environment:
-      - "VUE_PORT=${VUE_PORT-8080}"
+      - "NGINX_MAX_BODY_SIZE=${NGINX_MAX_BODY_SIZE-100M}"
+      - "FUNKWHALE_API_IP=${FUNKHALE_API_IP-api}"
+      - "FUNKWHALE_API_PORT=${FUNKWHALE_API_PORT-5000}"
+      - "FUNKWHALE_FRONT_IP=${FUNKHALE_FRONT_IP-front}"
+      - "FUNKWHALE_FRONT_PORT=${VUE_PORT-8080}"
       - "COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME- }"
       - "FUNKWHALE_HOSTNAME=${FUNKWHALE_HOSTNAME-localhost}"
-    links:
+    depends_on:
       - api
       - front
     volumes:
-      - ./docker/nginx/conf.dev:/etc/nginx/nginx.conf
+      - ./docker/nginx/conf.dev:/etc/nginx/nginx.conf.template:ro
       - ./docker/nginx/entrypoint.sh:/entrypoint.sh:ro
-      - "${MUSIC_DIRECTORY-./data/music}:/music:ro"
-      - ./deploy/funkwhale_proxy.conf:/etc/nginx/funkwhale_proxy.conf.template:ro
-      - ./api/funkwhale_api/media:/protected/media
-    ports:
-      - "6001"
+      - "${MUSIC_DIRECTORY_PATH-./data/music}:/music:ro"
+      - ./deploy/funkwhale_proxy.conf:/etc/nginx/funkwhale_proxy.conf:ro
+      - "${MEDIA_ROOT-./api/funkwhale_api/media}:/protected/media:ro"
     networks:
+      - federation
       - internal
+
+    labels:
+      traefik.backend: "${COMPOSE_PROJECT_NAME-node1}"
+      traefik.frontend.rule: "Host:${COMPOSE_PROJECT_NAME-node1}.funkwhale.test,${NODE_IP-127.0.0.1}"
+      traefik.enable: "true"
+      traefik.federation.protocol: "http"
+      traefik.federation.port: "80"
+      traefik.frontend.passHostHeader: true
+      traefik.docker.network: federation
+
   docs:
     build: docs
     command: python serve.py
diff --git a/docker/nginx/conf.dev b/docker/nginx/conf.dev
index 2ed1a97d540823ab6021df46db677718885c4529..ecb1c1d0c57293da2681d1254ec3cc960a8dbd17 100644
--- a/docker/nginx/conf.dev
+++ b/docker/nginx/conf.dev
@@ -32,26 +32,90 @@ http {
         ''      close;
     }
 
+    upstream funkwhale-api {
+        server ${FUNKWHALE_API_IP}:${FUNKWHALE_API_PORT};
+    }
+    upstream funkwhale-front {
+        server ${FUNKWHALE_FRONT_IP}:${FUNKWHALE_FRONT_PORT};
+    }
     server {
-        listen 6001;
+        listen 80;
         charset     utf-8;
-        client_max_body_size 30M;
+        client_max_body_size 100M;
         include /etc/nginx/funkwhale_proxy.conf;
-        location /_protected/media {
-            internal;
-            alias   /protected/media;
+        # compression settings
+        gzip on;
+        gzip_comp_level    5;
+        gzip_min_length    256;
+        gzip_proxied       any;
+        gzip_vary          on;
+
+        gzip_types
+            application/atom+xml
+            application/javascript
+            application/json
+            application/ld+json
+            application/activity+json
+            application/manifest+json
+            application/rss+xml
+            application/vnd.geo+json
+            application/vnd.ms-fontobject
+            application/x-font-ttf
+            application/x-web-app-manifest+json
+            application/xhtml+xml
+            application/xml
+            font/opentype
+            image/bmp
+            image/svg+xml
+            image/x-icon
+            text/cache-manifest
+            text/css
+            text/plain
+            text/vcard
+            text/vnd.rim.location.xloc
+            text/vtt
+            text/x-component
+            text/x-cross-domain-policy;
+
+        location /front/ {
+            proxy_pass   http://funkwhale-front/front/;
         }
-        location /_protected/music {
-            internal;
-            alias   /music;
+        location /front-server/ {
+            proxy_pass   http://funkwhale-front/;
         }
+
         location / {
             include /etc/nginx/funkwhale_proxy.conf;
-            proxy_pass   http://api:12081/;
+            # this is needed if you have file import via upload enabled
+            client_max_body_size ${NGINX_MAX_BODY_SIZE};
+            proxy_pass   http://funkwhale-api/;
         }
+
+        # You can comment this if you do not plan to use the Subsonic API
         location /rest/ {
             include /etc/nginx/funkwhale_proxy.conf;
-            proxy_pass   http://api:12081/api/subsonic/rest/;
+            proxy_pass   http://funkwhale-api/api/subsonic/rest/;
+        }
+
+        location /media/ {
+            alias /protected/media/;
+        }
+
+        location /_protected/media {
+            # this is an internal location that is used to serve
+            # audio files once correct permission / authentication
+            # has been checked on API side
+            internal;
+            alias   /protected/media;
+        }
+
+        location /_protected/music {
+            # this is an internal location that is used to serve
+            # audio files once correct permission / authentication
+            # has been checked on API side
+            # Set this to the same value as your MUSIC_DIRECTORY_PATH setting
+            internal;
+            alias   /music;
         }
     }
 }
diff --git a/docker/nginx/entrypoint.sh b/docker/nginx/entrypoint.sh
index f359f4da98fe8b9f98b64c318aebe6d334ebc686..7c36bcd2f6aa5094dd7da33f3cc0295968e1c755 100755
--- a/docker/nginx/entrypoint.sh
+++ b/docker/nginx/entrypoint.sh
@@ -1,18 +1,8 @@
 #!/bin/bash -eux
 
-FORWARDED_PORT="$VUE_PORT"
-COMPOSE_PROJECT_NAME="${COMPOSE_PROJECT_NAME// /}"
-if [ -n "$COMPOSE_PROJECT_NAME" ]; then
-  echo
-    FUNKWHALE_HOSTNAME="$COMPOSE_PROJECT_NAME.funkwhale.test"
-    FORWARDED_PORT="443"
-fi
-echo "Copying template file..."
-cp /etc/nginx/funkwhale_proxy.conf{.template,}
-sed -i "s/X-Forwarded-Host \$host:\$server_port/X-Forwarded-Host ${FUNKWHALE_HOSTNAME}/" /etc/nginx/funkwhale_proxy.conf
-sed -i "s/proxy_set_header Host \$host/proxy_set_header Host ${FUNKWHALE_HOSTNAME}/" /etc/nginx/funkwhale_proxy.conf
-sed -i "s/proxy_set_header X-Forwarded-Port \$server_port/proxy_set_header X-Forwarded-Port ${FORWARDED_PORT}/" /etc/nginx/funkwhale_proxy.conf
-sed -i "s/proxy_set_header X-Forwarded-Proto \$scheme/proxy_set_header X-Forwarded-Proto ${FORWARDED_PROTO}/" /etc/nginx/funkwhale_proxy.conf
 
-cat /etc/nginx/funkwhale_proxy.conf
-nginx -g "daemon off;"
+envsubst "`env | awk -F = '{printf \" $$%s\", $$1}'`" \
+  < /etc/nginx/nginx.conf.template \
+  > /etc/nginx/nginx.conf \
+  && cat /etc/nginx/nginx.conf \
+  && nginx-debug -g 'daemon off;'
diff --git a/docs/conf.py b/docs/conf.py
index 8b1a3d41aab24e2d2e51cf594ed8be904ca46c26..f371fa165e7403b27628868e983830686ed75342 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -58,6 +58,8 @@ author = "Eliot Berriot"
 #
 # The short X.Y version.
 version = funkwhale_api.__version__
+if "-dev" in version:
+    version = "develop"
 # The full version, including alpha/beta/rc tags.
 release = version
 
diff --git a/docs/configuration.rst b/docs/configuration.rst
index 6016c152d779ad79bbcc562028adc6bb3bb3749b..ffb702d6b842445374f4eb86007d5809a025e1d1 100644
--- a/docs/configuration.rst
+++ b/docs/configuration.rst
@@ -159,58 +159,113 @@ There is no dedicated interface to manage users permissions, but superusers
 can login on the Django's admin at ``/api/admin/`` and grant permissions
 to users at ``/api/admin/users/user/``.
 
-Theming
--------
+Front-end settings
+------------------
 
-Funkwhale supports custom themes, which are great if you want to personalize the
-look and feel of your instance. Theming is achieved by declaring
-additional stylesheets you want to load in the front-end.
+We offer a basic mechanism to customize the behaviour and look and feel of Funkwhale's Web UI.
+To use any of the options below, you will need to create a custom JSON configuration file and serve it
+on ``https://yourinstanceurl/settings.json``.
 
-Customize the settings
-^^^^^^^^^^^^^^^^^^^^^^
+On typical deployments, this url returns a 404 error, which is simply ignored.
 
-In order to know what stylesheets to load, the front-end requests the following
-url: ``https://your.instance/settings.json``. On typical deployments, this url
-returns a 404 error, which is simply ignored.
+Set-up
+------
 
-However, if you return the appropriate payload on this url, you can make the magic
-work. We will store the necessary files in the ``/srv/funkwhale/custom`` directory:
+First, create the settings file:
 
 .. code-block:: shell
 
     cd /srv/funkwhale/
+
+    # create a directory for your configuration file
+    # you can use a different name / path of course
     mkdir custom
+
+    # populate the configuration file with default values
     cat <<EOF > custom/settings.json
     {
-      "additionalStylesheets": ["/custom/custom.css"]
+      "additionalStylesheets": [],
+      "defaultServerUrl": null
     }
     EOF
-    cat <<EOF > custom/custom.css
+
+Once the ``settings.json`` file is created, you will need to serve it from your reverse proxy.
+
+If you are using nginx, add the following snippet to your vhost configuration::
+
+    location /settings.json {
+        alias /srv/funkwhale/custom/settings.json;
+    }
+
+On apache, add the following to your vhost configuration::
+
+    Alias /settings.json /srv/funkwhale/custom/settings.json
+
+Then reload your reverse proxy.
+
+At this point, visiting ``https://yourinstanceurl/settings.json`` should serve the content
+of the settings.json file.
+
+.. warning::
+
+    The settings.json file must be a valid JSON file. If you have any issue, try linting
+    the file with a tool such as `<https://github.com/zaach/jsonlint>`_ to detect potential
+    syntax issues.
+
+Available configuration options
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Your :file:`settings.json` can contain the following options:
+
++----------------------------------+--------------------+---------------------------------------+---------------------------------------------------------------+
+| Name                             | Type               | Example value                         | Description                                                   |
++----------------------------------+--------------------+---------------------------------------+---------------------------------------------------------------+
+| ``additionalStylesheets``        | Array of URLs      | ``["https://test/theme.css"]``        | A list of stylesheets URL (absolute or relative)              |
+|                                  |                    | (default: ``[]``)                     | that the web UI should load. see the "Theming" section        |
+|                                  |                    |                                       | below for a detailed explanation                              |
+|                                  |                    |                                       |                                                               |
++----------------------------------+--------------------+---------------------------------------+---------------------------------------------------------------+
+| ``defaultServerUrl``             | URL                | ``"https://api.yourdomain.com"``      | The URL of the API server this front-end should               |
+|                                  |                    | (default: ``null``)                   | connect with. If null, the UI will use                        |
+|                                  |                    |                                       | the value of VUE_APP_INSTANCE_URL                             |
+|                                  |                    |                                       | (specified during build) or fallback to the current domain    |
++----------------------------------+--------------------+---------------------------------------+---------------------------------------------------------------+
+
+Missing options or options with a ``null`` value in the ``settings.json`` file are ignored.
+
+Theming
+^^^^^^^
+
+To theme your Funkwhale instance, you need:
+
+1. A CSS file for your theme, that can be loaded by the front-end
+2. To update the value of ``additionalStylesheets`` in your settings.json file to point to your CSS file URL
+
+.. code-block:: shell
+
+    cd /srv/funkwhale/custom
+    nano settings.json
+    # append
+    # "additionalStylesheets": ["/front/custom/custom.css"]
+    # to the configuration or replace the existing value, if any
+
+    # create a basic theming file changing the background to red
+    cat <<EOF > custom.css
     body {
       background-color: red;
     }
     EOF
 
-By executing the previous commands, you will end up with two files in your ``/srv/funkwhale/custom``
-directory:
-
-- ``settings.json`` will tell the front-end what stylesheets you want to load (``/custom/custom.css`` in this example)
-- ``custom.css`` will hold your custom CSS
-
-The last step to make this work is to ensure both files are served by the reverse proxy.
+The last step to make this work is to ensure your CSS file is served by the reverse proxy.
 
 On nginx, add the following snippet to your vhost config::
 
-    location /settings.json {
-        alias /srv/funkwhale/custom/settings.json;
-    }
     location /custom {
         alias /srv/funkwhale/custom;
     }
 
 On apache, use the following one::
 
-    Alias /settings.json /srv/funkwhale/custom/settings.json
     Alias /custom /srv/funkwhale/custom
 
     <Directory "/srv/funkwhale/custom">
@@ -224,7 +279,7 @@ a red background.
 
 .. note::
 
-    You can reference external urls as well in ``settings.json``, simply use
+    You can reference external urls as well in ``additionalStylesheets``, simply use
     the full urls. Be especially careful with external urls as they may affect your users
     privacy.
 
diff --git a/docs/features.rst b/docs/features.rst
index 62150b28eaa4ce8ec5e8df50b4fa7b2ed12216cf..2a7336b5100d04c951a0e16822fa10acf66de9c7 100644
--- a/docs/features.rst
+++ b/docs/features.rst
@@ -4,52 +4,53 @@ Features
 Scope
 ------
 
-Funkwhale is a web based music server. It is similar in term of goals and feature set to various existing projects, such as `Sonerezh <https://www.sonerezh.bzh/>`_ or `Airsonic <https://airsonic.github.io/>`_.
+Funkwhale is a web based music server. It is similar in terms of goals and feature set to various existing projects, such as `Sonerezh <https://www.sonerezh.bzh/>`_ or `Airsonic <https://airsonic.github.io/>`_.
 
 A social platform
 ------------------
 
 However, Funkwhale is better-suited for small to medium communities and was designed to be not only a music server and player, but also a place to socialize around music and discover new content. While some of these features are not currently implemented, our roadmap includes:
 
-- Radios, to discover the music of a given user, artist, genre...
+- Radios, to discover the music of a given user, artist, or genre
 - Playlists
 - Favorites
-- Broadcasts, as they existed in Grooveshark, for example
+- Broadcasts, as they existed in, for example, Grooveshark
 - Recommendations
 
 Music acquisition
 ------------------
 
-Funkwhale is not bundled with any music, and you'll have to import your own music in the platform using the bundled plugins.
+Funkwhale is not bundled with any music, and you'll have to import your own music into the platform.
 
-At the moment, you can feed your existing music library to the server and, assuming it has the correct tags defined on the files, it will be imported seamlessly.
+At the moment, you can feed your existing music library to the server either by uploading it or by using :ref:`in-place-import` from a server-side directory. Assuming the files have the correct tags defined, they will be imported seamlessly.
 
-You can also import music directly from YouTube (other sources coming, thanks to `Youtube-dl <https://github.com/rg3/youtube-dl>`_). Downloading and publishing copyrighted content may be forbidden in your country, though.
+You can also access music being made available by other Funkwhale instances using :doc:`federation`.
 
 Metadata
 ---------
 
-In order to keep your library clean, browsable and aggregate relevant data about artists, albums and tracks, we fetch a lot of metadata from the `MusicBrainz project <http://musicbrainz.org/>`_.
+In order to keep your library clean, browsable, and well-stocked with relevant data about artists, albums and tracks, we fetch a lot of metadata from the `MusicBrainz project <http://musicbrainz.org/>`_.
 
 Structure
 ---------
 
-The project itself is splitted in two parts:
+The project itself is split in two parts:
 
 1. The backend, a REST API developed using Python3 and Django
 2. The frontend, that consumes the API, built as a single page application with VueJS and Semantic UI
 
 While the main interface to the server and API is the bundled front-end, the project itself is agnostic in the way you connect to it. Therefore, desktop clients or apps could be developed and could implement the same (or even more) features as the bundled frontend.
 
-This modularity also makes it possible do deploy only a single component from the system.
+This modularity also makes it possible to deploy only a single component from the system.
 
 Federation
 ----------
 
 Each Funkwhale instance is able to fetch music from other compatible servers,
-and share its own library on the network. The federation is implemented
-using the ActivityPub protocol, in order to leverage existing tools
-and be compatible with other services such as Mastodon.
+and share its own library on the network, in a process known as "federation".
+Federation is implemented using the ActivityPub protocol, in order to leverage
+existing tools and be compatible with other services such as Mastodon.
 
-As of today, federation only targets music acquisition, meaning user interaction
-are not shared via ActivityPub. This will be implemented at a later point.
+As of today, federation only targets music acquisition, meaning user
+interactions are not shared via ActivityPub. This will be implemented at a later
+point.
diff --git a/docs/federation/index.rst b/docs/federation/index.rst
index fc86238a4b2825eddc19e6d44c11790cf95df23f..a3af33c5804ff3912709bd4cc48e69845d24c6c5 100644
--- a/docs/federation/index.rst
+++ b/docs/federation/index.rst
@@ -17,7 +17,7 @@ Funkwhale's federation is built on top of the following technologies:
 
 Support for the following is planned but not implemented-yet:
 
-- `JSON-LD signatures`_ as an alternate mean to authentify messages
+- `JSON-LD signatures`_ as an alternate mean to authenticate messages
 
 .. _ActivityPub: https://www.w3.org/TR/activitypub/
 .. _HTTP Signatures: https://tools.ietf.org/id/draft-cavage-http-signatures-01.html
@@ -85,7 +85,7 @@ to posting an activity to an outbox, we create an object, with the proper payloa
    and create a ``Delivery`` object in our database, linked to the initial activity and the inbox or shared inbox url.
    This ``Delivery`` object is then used by our worker to post the activity content to the url.
 
-Receiving an activity from a remote actor in a local inbox is basically the same, but we skip 2#.
+Receiving an activity from a remote actor in a local inbox is basically the same, but we skip step 2.
 
 Funkwhale does not support all activities, and we have a basic routing logic to handle
 specific activities, and discard unsupported ones. Unsupported activities are still
@@ -143,10 +143,10 @@ When a follow is received on a :ref:`object-Library`, Funkwhale will behave diff
 depending on the visibility of the library:
 
 - Automatic accept, when the library is public: a notification is sent to the library owner, and an :ref:`activity-accept` is sent automatically to the follow actor.
-- Manuel accept, in all other cases: a notification is sent to the library owner. After manual approval from the owner, an :ref:`activity-accept` is sent to the follow actor.
+- Manual accept, in all other cases: a notification is sent to the library owner. After manual approval from the owner, an :ref:`activity-accept` is sent to the follow actor.
 
-Funkwhale uses library follows status to grant access to the follow actor. If a library
-is not public and an actor does not have an approved follow, library content must be
+Funkwhale uses library follow status to grant access to the follow actor. If a library
+is not public and an actor does not have an approved follow, library content will be
 inaccessible to the actor.
 
 Checks
@@ -368,19 +368,19 @@ In this example, Bob notifies the followers of their library that 3 objects were
 
 .. note::
 
-  For performance reason, when deleting :ref:`object-audio` objects, Funkwhale support
+  For performance reason, when deleting :ref:`object-audio` objects, Funkwhale supports
   either a list of ids or a single id.
 
 Internal logic
 **************
 
-When a :ref:`activity-delete` is received, the corresponding objects are deleted immediatly
+When a :ref:`activity-delete` is received, the corresponding objects are immediately deleted
 from the database.
 
 Checks
 ******
 
-Before handling deletion, Funkwhale ensure the actor initiating the activity
+Before handling deletion, Funkwhale ensures the actor initiating the activity
 is the owner of the deleted :ref:`object-audio` or :ref:`object-Library`.
 
 Supported objects
@@ -494,7 +494,7 @@ Structure
 - **published** (required): the publication date of the entity (on the federation)
 - **musicbrainzId** (optional): the musicbrainz recording id
 - **album** (required): the :ref:`object-album` that contains the track
-- **artists** (required): a list of :ref:`object-artist` objects involved in the track (they can differ fro mthe album artists)
+- **artists** (required): a list of :ref:`object-artist` objects involved in the track (they can differ from the album artists)
 
 .. _object-library:
 
@@ -591,7 +591,7 @@ Structure
 
 .. note::
 
-  Accessing the Audio file via its url requires authentication and an approved follow on the upload library,
+  Accessing the Audio file via its url requires authentication and an approved follow on the containing library,
   unless the library is public.
 
 
@@ -600,7 +600,7 @@ Structure
 Audio fetching on restricted libraries
 --------------------------------------
 
-:ref:`object-library` and :ref:`object-audio` url objects may require additional authentications
+:ref:`object-library` and :ref:`object-audio` url objects may require additional authentication
 to be accessed.
 
 For :ref:`object-library` objects:
diff --git a/docs/importing-music.rst b/docs/importing-music.rst
index b50abeadbedf675cc9bd04fef9e9f577939f09f2..bbb21c1adc70ebfc52655f50c675e95be46e0b8b 100644
--- a/docs/importing-music.rst
+++ b/docs/importing-music.rst
@@ -26,6 +26,8 @@ to the ``/music`` directory on the container:
     docker-compose run --rm api python manage.py import_files $LIBRARY_ID "/music/**/*.ogg" --recursive --noinput
 
 .. note::
+    You'll have to create a library in the Web UI before to get your library ID. Simply visit
+    https://yourdomain/content/libraries/ to create one.
 
     Library IDs are available in library urls or sharing link. In this example:
     https://funkwhale.instance/content/libraries/769a2ae3-eb3d-4aff-9f94-2c4d80d5c2d1,
@@ -89,7 +91,7 @@ configuration options to ensure the webserver can serve them properly:
 
 We recommend you symlink all your music directories into ``/srv/funkwhale/data/music``
 and run the `import_files` command from that directory. This will make it possible
-to use multiple music music directories, without any additional configuration
+to use multiple music directories, without any additional configuration
 on the webserver side.
 
 For instance, if you have a NFS share with your music mounted at ``/media/mynfsshare``,
diff --git a/docs/installation/debian.rst b/docs/installation/debian.rst
index a53ebf12f19ccc7bbbaa2c3d761450bac1e9789d..7f6142a645cf06060c755f1b482903dbe71609f6 100644
--- a/docs/installation/debian.rst
+++ b/docs/installation/debian.rst
@@ -13,22 +13,27 @@ dependencies. However, Funkwhale requires a
 :doc:`few external dependencies <./external_dependencies>` for which
 documentation is outside of this document scope.
 
-Install utilities
------------------
+Install system dependencies
+---------------------------
 
-You'll need a few utilities during this guide that are not always present by
-default on system. On Debian-like systems, you can install them using:
+On Debian-like systems, you can install them using:
 
 .. code-block:: shell
 
     sudo apt-get update
+    # Install dependencies
     sudo apt-get install curl python3-pip python3-venv git unzip libldap2-dev libsasl2-dev
+    # Funkwhale dependencies
+    sudo apt install build-essential ffmpeg libjpeg-dev libmagic-dev libpq-dev postgresql-client python3-dev
 
 On Arch Linux and its derivatives:
 
 .. code-block:: shell
 
+    # Install dependencies
     sudo pacman -S curl python-pip python-virtualenv git unzip
+    # Funkwhale dependencies
+    sudo pacman -S curl file ffmpeg libjpeg-turbo libpqxx python libldap libsasl
 
 Layout
 -------
@@ -112,13 +117,12 @@ Then we'll download the frontend files:
     case, run
 
         cd /srv
+
         rm -r funkwhale
         git clone -b master https://dev.funkwhale.audio/funkwhale/funkwhale funkwhale
         cd funkwhale
 
-    By default, the repository will use the ``develop`` which may be unstable thus not recommended for production instances (unless you know what your doing). You should use the master branch instead:
-
-        git checkout master
+    The above clone command uses the master branch instead of the default develop branch, as master is stable and more suited for production setups.
 
     You'll also need to re-create the folders we make earlier:
 
@@ -131,30 +135,6 @@ Then we'll download the frontend files:
 You can leave the ZIP archives in the directory, this will help you know
 which version you've installed next time you want to upgrade your installation.
 
-System dependencies
--------------------
-
-First, switch to the api directory:
-
-.. code-block:: shell
-
-    cd api
-
-A few OS packages are required in order to run Funkwhale. On Debian-like
-systems, they can be installed with
-
-.. code-block:: shell
-
-    sudo apt install build-essential ffmpeg libjpeg-dev libmagic-dev libpq-dev postgresql-client python3-dev
-
-On Arch, run
-
-.. code-block:: shell
-
-    pacman -S $(cat api/requirements.pac)
-
-From now on, you should use the funkwhale user for all commands.
-
 Python dependencies
 --------------------
 
@@ -212,9 +192,6 @@ Download the sample environment file:
 .. parsed-literal::
 
     curl -L -o config/.env "https://dev.funkwhale.audio/funkwhale/funkwhale/raw/master/deploy/env.prod.sample"
-    # symlink it so it's sourced automatically by the API process
-    # (This won't be needed anymore once release 0.18 is out)
-    ln -s /srv/funkwhale/config/.env /srv/funkwhale/api/.env
 
 .. note::
 
@@ -222,12 +199,20 @@ Download the sample environment file:
 
         cp /srv/funkwhale/deploy/env.prod.sample /srv/funkwhale/config/.env
 
+Generate a secret key for Django::
+
+    openssl rand -base64 45
 
-You can then edit it: the file is heavily commented, and the most relevant
+You can then edit the file: the file is heavily commented, and the most relevant
 configuration options are mentioned at the top of the file.
 
-Especially, populate the ``DATABASE_URL`` and ``CACHE_URL`` values based on
-how you configured your PostgreSQL and Redis servers in
+.. code-block:: shell
+    nano /srv/funkwhale/api/.env
+
+Paste the secret key you generated earlier at the entry
+``DJANGO_SECRET_KEY`` and populate the ``DATABASE_URL``
+and ``CACHE_URL`` values based on how you configured
+your PostgreSQL and Redis servers in
 :doc:`external dependencies <./external_dependencies>`.
 
 Database setup
diff --git a/docs/installation/docker.rst b/docs/installation/docker.rst
index 8491f7f05503f050c4e5c3d4d005c0c0f67b3cbd..ceb7b8d03eaf707208f9f418ff5ab0d7f86abf72 100644
--- a/docs/installation/docker.rst
+++ b/docs/installation/docker.rst
@@ -1,10 +1,130 @@
 Docker installation
-====================
+===================
 
 Docker is the easiest way to get a Funkwhale instance up and running.
 
+We support two types of Docker deployments:
+
+- :ref:`Mono-container <docker-mono-container>`: all processes live in the same container (database, nginx, redis, etc.). It's easier to deploy and to integrate with container management systems like Portainer. However, it's not possible to scale this type of deployment on multiple servers.
+- :ref:`Multi-container <docker-multi-container>`: each process lives in a dedicated container. This setup is more involved but also more flexible and scalable.
+
+.. note::
+
+    We do not distribute Docker images for non-amd64 architectures yet. However, :doc:`you can easily build
+    those images yourself following our instructions <non_amd64_architectures>`, and come back to this installation guide once
+    the build is over.
+
+.. _docker-mono-container:
+
+Mono-container installation
+---------------------------
+
+.. note::
+
+    This installation method was contributed by @thetarkus, at https://github.com/thetarkus/docker-funkwhale
+
+First, ensure you have `Docker <https://docs.docker.com/engine/installation/>`_ installed.
+
+Create the user and the directory:
+
+.. code-block:: shell
+
+    sudo useradd -r -s /usr/bin/nologin -d /srv/funkwhale -m funkwhale
+    sudo adduser funkwhale docker
+    cd /srv/funkwhale
+
+Log in as the newly created user from now on:
+
+.. code-block:: shell
+
+    sudo -u funkwhale -H bash
+
+Export the version you want to deploy:
+
+.. parsed-literal::
+
+    export FUNKWHALE_VERSION="|version|"
+
+Create an env file to store a few important configuration options:
+
+.. code-block:: shell
+
+    touch .env
+    echo "FUNKWHALE_HOSTNAME=yourdomain.funkwhale" >> .env
+    echo "FUNKWHALE_PROTOCOL=https" >> .env  # or http
+    echo "DJANGO_SECRET_KEY=$(openssl rand -hex 45)" >> .env  # generate and store a secure secret key for your instance
+
+Then start the container:
+
+.. code-block:: shell
+
+    docker run \
+        --name=funkwhale \
+        --restart=unless-stopped \
+        --env-file=/srv/funkwhale/.env \
+        -v /srv/funkwhale/data:/data \
+        -v /path/to/your/music/dir:/music:ro \
+        -e PUID=$UID \
+        -e PGID=$GID \
+        -p 5000:80 \
+        -d \
+        funkwhale/all-in-one:$FUNKWHALE_VERSION
+
+.. note::
+
+    - ``-e PUID`` and ``-e PGID`` are optional but useful to prevent permission issues with docker volumes
+    - ``-v /path/to/your/music/dir`` should point to a path on your host were is located music you want to import in your Funkwhale instance. You can safely remove the volume if you don't want to import music that way.
+
+Your container should start in the background, and your instance be available at ``yourip:5000`` shortly.
+
+You will need an admin account to login and manage your account, create one using the following command: ``docker exec -it funkwhale manage createsuperuser``
+
+Useful commands:
+
+- You can examine the logs by running ``docker logs -f --tail=50 funkwhale``
+- You can start and stop your instance using ``docker start funkwhale`` and ``docker stop funkwhale``, respectively
+- To have a better idea of the resource usage of your instance (CPU, memory), run ``docker stats funkwhale``
+
+.. note::
+
+    The container will not pick up changes made in .env file automatically.
+    In order to load new configuration, run:
+
+    .. parsed-literal::
+
+        export FUNKWHALE_VERSION="|version|"
+
+    .. code-block:: shell
+
+        # stop and remove the existing container
+        docker stop funkwhale
+        docker rm funkwhale
+        # relaunch a new container
+        docker run \
+            --name=funkwhale \
+            --restart=unless-stopped \
+            --env-file=/srv/funkwhale/.env \
+            -v /srv/funkwhale/data:/data \
+            -v /path/to/your/music/dir:/music:ro \
+            -e PUID=$UID \
+            -e PGID=$GID \
+            -p 5000:80 \
+            -d \
+            funkwhale/all-in-one:$FUNKWHALE_VERSION
+
+.. _docker-multi-container:
+
+Multi-container installation
+----------------------------
+
 First, ensure you have `Docker <https://docs.docker.com/engine/installation/>`_ and `docker-compose <https://docs.docker.com/compose/install/>`_ installed.
 
+Export the version you want to deploy:
+
+.. parsed-literal::
+
+    export FUNKWHALE_VERSION="|version|"
+
 Download the sample docker-compose file:
 
 .. parsed-literal::
@@ -12,9 +132,9 @@ Download the sample docker-compose file:
     mkdir /srv/funkwhale
     cd /srv/funkwhale
     mkdir nginx
-    curl -L -o nginx/funkwhale.template "https://dev.funkwhale.audio/funkwhale/funkwhale/raw/master/deploy/docker.nginx.template"
-    curl -L -o nginx/funkwhale_proxy.conf "https://dev.funkwhale.audio/funkwhale/funkwhale/raw/master/deploy/funkwhale_proxy.conf"
-    curl -L -o docker-compose.yml "https://dev.funkwhale.audio/funkwhale/funkwhale/raw/master/deploy/docker-compose.yml"
+    curl -L -o nginx/funkwhale.template "https://dev.funkwhale.audio/funkwhale/funkwhale/raw/|version|/deploy/docker.nginx.template"
+    curl -L -o nginx/funkwhale_proxy.conf "https://dev.funkwhale.audio/funkwhale/funkwhale/raw/|version|/deploy/funkwhale_proxy.conf"
+    curl -L -o docker-compose.yml "https://dev.funkwhale.audio/funkwhale/funkwhale/raw/|version|/deploy/docker-compose.yml"
 
 At this point, the architecture of ``/srv/funkwhale``  should look like that:
 
@@ -22,7 +142,6 @@ At this point, the architecture of ``/srv/funkwhale``  should look like that:
 
     .
     ├── docker-compose.yml
-    ├── .env
     └── nginx
         ├── funkwhale_proxy.conf
         └── funkwhale.template
@@ -31,8 +150,7 @@ Create your env file:
 
 .. parsed-literal::
 
-    export FUNKWHALE_VERSION="|version|"
-    curl -L -o .env "https://dev.funkwhale.audio/funkwhale/funkwhale/raw/master/deploy/env.prod.sample"
+    curl -L -o .env "https://dev.funkwhale.audio/funkwhale/funkwhale/raw/|version|/deploy/env.prod.sample"
     sed -i "s/FUNKWHALE_VERSION=latest/FUNKWHALE_VERSION=$FUNKWHALE_VERSION/" .env
     sudo nano .env
 
diff --git a/docs/installation/external_dependencies.rst b/docs/installation/external_dependencies.rst
index ba652e8a78f0cf912f61733c3375683fd69f7d3a..60be2b534576ad63b0749505765a853383584f26 100644
--- a/docs/installation/external_dependencies.rst
+++ b/docs/installation/external_dependencies.rst
@@ -95,4 +95,4 @@ This should be enough to have your redis server set up.
 External Authentication (LDAP)
 ----------------------
 
-LDAP support requires some additional dependencies to enable. On the OS level both ``libldap2-dev`` and ``libsasl2-dev`` are required, and the Python modules ``python-ldap`` and ``django-auth-ldap`` must be installed. These dependencies are all included in the ``requirements.*`` files so deploying with those will install these dependencies by default. However, they are not required unless LDAP support is explicitly enabled. See :doc:`./ldap` for more details.
+LDAP support requires some additional dependencies to enable. On the OS level both ``libldap2-dev`` and ``libsasl2-dev`` are required, and the Python modules ``python-ldap`` and ``python-django-auth-ldap`` must be installed. These dependencies are all included in the ``requirements.*`` files so deploying with those will install these dependencies by default. However, they are not required unless LDAP support is explicitly enabled. See :doc:`./ldap` for more details.
diff --git a/docs/installation/index.rst b/docs/installation/index.rst
index 8275cef1ad2d4a74a53e3b0b18537ee8d1ae668a..b13f34419f7a833df507691da3cb969f09366083 100644
--- a/docs/installation/index.rst
+++ b/docs/installation/index.rst
@@ -71,6 +71,7 @@ We also maintain an installation guide for Debian 9 and Arch Linux.
    debian
    docker
    systemd
+   non_amd64_architectures
 
 Funkwhale packages are available for the following platforms:
 
@@ -81,7 +82,7 @@ Funkwhale packages are available for the following platforms:
 Running Funkwhale on the develop branch
 ---------------------------------------
 
-Traditional deployments are done using specific releases. However, you
+Traditional deployments are done using tagged releases. However, you
 may want to benefits from the latest change available, or the help detect
 bugs before they are included in actual releases.
 
@@ -98,6 +99,9 @@ You simply need to use ``export FUNKWHALE_VERSION=develop``
 in the installation and upgrade process instead of a real version number,
 as we build artifacts on the development branch the same way we do for releases.
 
+It's also recommended to check out the `develop release notes <https://dev.funkwhale.audio/funkwhale/funkwhale/blob/develop/changes/notes.rst>_` before upgrading,
+since you may have to apply manual actions for your instance to continue to work. Such actions are labelled with ``[manual action required]`` in the releases notes.
+
 .. _frontend-setup:
 
 Frontend setup
@@ -146,11 +150,14 @@ match the application configuration and make upgrade/maintenance easier.
 
 On docker deployments, run the following commands:
 
-.. code:: shell
+.. parsed-literal::
 
+    export FUNKWHALE_VERSION="|version|"
     # download the needed files
-    curl -L -o /etc/nginx/funkwhale_proxy.conf "https://dev.funkwhale.audio/funkwhale/funkwhale/raw/master/deploy/funkwhale_proxy.conf"
-    curl -L -o /etc/nginx/sites-available/funkwhale.template "https://dev.funkwhale.audio/funkwhale/funkwhale/raw/master/deploy/docker.proxy.template"
+    curl -L -o /etc/nginx/funkwhale_proxy.conf "https://dev.funkwhale.audio/funkwhale/funkwhale/raw/|version|/deploy/funkwhale_proxy.conf"
+    curl -L -o /etc/nginx/sites-available/funkwhale.template "https://dev.funkwhale.audio/funkwhale/funkwhale/raw/|version|/deploy/docker.proxy.template"
+
+.. code-block:: shell
 
     # create a final nginx configuration using the template based on your environment
     set -a && source /srv/funkwhale/.env && set +a
@@ -162,11 +169,16 @@ On docker deployments, run the following commands:
 
 On non-docker deployments, run the following commands:
 
-.. code:: shell
+
+.. parsed-literal::
+
+    export FUNKWHALE_VERSION="|version|"
 
     # download the needed files
-    curl -L -o /etc/nginx/funkwhale_proxy.conf "https://dev.funkwhale.audio/funkwhale/funkwhale/raw/master/deploy/funkwhale_proxy.conf"
-    curl -L -o /etc/nginx/sites-available/funkwhale.template "https://dev.funkwhale.audio/funkwhale/funkwhale/raw/master/deploy/nginx.template"
+    curl -L -o /etc/nginx/funkwhale_proxy.conf "https://dev.funkwhale.audio/funkwhale/funkwhale/raw/|version|/deploy/funkwhale_proxy.conf"
+    curl -L -o /etc/nginx/sites-available/funkwhale.template "https://dev.funkwhale.audio/funkwhale/funkwhale/raw/|version|/deploy/nginx.template"
+
+.. code-block:: shell
 
     # create a final nginx configuration using the template based on your environment
     set -a && source /srv/funkwhale/config/.env && set +a
@@ -194,6 +206,14 @@ Finally, enable the resulting configuration:
 .. code-block:: bash
     ln -s /etc/nginx/sites-available/funkwhale.conf /etc/nginx/sites-enabled/
 
+.. note::
+
+    At this point you will need a certificate to enable HTTPS on your server.
+    There are many ways to obtain this certificate. The most popular and free
+    way is to obtain it from Let's Encryt. To do this, you can use an utility
+    called certbot. You can find a complete documentation on how to use certbot
+    at the `certbot documentation <https://certbot.eff.org/docs/>`.
+
 Check the configuration is valid with ``nginx -t`` then reload your nginx server with ``systemctl restart nginx``.
 
 .. warning::
@@ -227,6 +247,11 @@ You can tweak the configuration file according to your setup, especially the
 TLS configuration. Otherwise, defaults, should work if you followed the
 installation guide.
 
+.. note::
+
+    To obtain a certificate to enable HTTPS on your server, please refer to the note in
+    the nginx chapter above.
+
 Check the configuration is valid with ``apache2ctl configtest``, and once you're
 done, load the new configuration with ``service apache2 restart``.
 
diff --git a/docs/installation/ldap.rst b/docs/installation/ldap.rst
index d38ba87a149b6cb6835f270a88859224538a122f..a30bb5e6bd6ebf6c657ebcdc1a9a4b92afa2ab31 100644
--- a/docs/installation/ldap.rst
+++ b/docs/installation/ldap.rst
@@ -14,7 +14,7 @@ Funkwhale supports LDAP through the Django LDAP authentication module and by set
 Dependencies
 ------------
 
-LDAP support requires some additional dependencies to enable. On the OS level both ``libldap2-dev`` and ``libsasl2-dev`` are required, and the Python modules ``python-ldap`` and ``django-auth-ldap`` must be installed. These dependencies are all included in the ``requirements.*`` files so deploying with those will install these dependencies by default. However, they are not required unless LDAP support is explicitly enabled.
+LDAP support requires some additional dependencies to enable. On the OS level both ``libldap2-dev`` and ``libsasl2-dev`` are required, and the Python modules ``python-ldap`` and ``python-django-auth-ldap`` must be installed. These dependencies are all included in the ``requirements.*`` files so deploying with those will install these dependencies by default. However, they are not required unless LDAP support is explicitly enabled.
 
 Environment variables
 ---------------------
diff --git a/docs/installation/non_amd64_architectures.rst b/docs/installation/non_amd64_architectures.rst
new file mode 100644
index 0000000000000000000000000000000000000000..f49407b43f18ed09fa06d18812f4f85a1e3a21fa
--- /dev/null
+++ b/docs/installation/non_amd64_architectures.rst
@@ -0,0 +1,71 @@
+Running Funkwhale on non amd64 architectures
+============================================
+
+Funkwhale should be runnable on any architecture assuming Funkwhale installation dependencies are satisfied.
+
+On non-docker deployments (e.g. when deploying on debian), this should be completely transparent.
+
+On docker deployments, you will need to build Funkwhale's image yourself, because we don't provide
+pre-built multi-arch images on the Docker Hub yet. The build process itself only requires git,
+Docker and is described below.
+
+Building the mono-process Docker image (funkwhale/funkwhale)
+-------------------------------------------------------------
+
+This image is intended to be used in conjunction with our :ref:`Multi-container installation guide <docker-multi-container>`.
+guide.
+
+.. parsed-literal::
+
+    export FUNKWHALE_VERSION="|version|"
+
+.. note::
+
+    Replace by develop for building a development branch image.
+
+.. code-block:: shell
+
+    cd /tmp
+    git clone https://dev.funkwhale.audio/funkwhale/funkwhale.git
+    cd funkwhale
+    git checkout $FUNKWHALE_VERSION
+    cd api
+
+    # download the pre-built front-end files
+    frontend_artifacts="https://dev.funkwhale.audio/funkwhale/funkwhale/-/jobs/artifacts/$FUNKWHALE_VERSION/download?job=build_front"
+    curl -L -o front.zip $frontend_artifacts
+    unzip front.zip
+    cp -r front/dist frontend
+
+    docker build -t funkwhale/funkwhale:$FUNKWHALE_VERSION .
+
+
+
+Building the mono-container Docker image (funkwhale/funkwhale)
+-------------------------------------------------------------
+
+This image is intended to be used in conjunction with our :ref:`Mono-container installation guide <docker-mono-container>`.
+guide.
+
+
+.. parsed-literal::
+
+    export FUNKWHALE_VERSION="|version|"
+
+.. note::
+
+    Replace by develop for building a development branch image.
+
+.. code-block:: shell
+
+    cd /tmp
+    git clone https://github.com/thetarkus/docker-funkwhale.git
+    cd docker-funkwhale
+
+    # download the pre-built front-end files
+    # download Funkwhale front and api artifacts and nginx configuration
+    ./scripts/download-artifact.sh src/ $FUNKWHALE_VERSION build_front
+    ./scripts/download-artifact.sh src/ $FUNKWHALE_VERSION build_api
+    ./scripts/download-nginx-template.sh src/ $FUNKWHALE_VERSION
+
+    docker build --build-arg=arch=$(uname -m) -t funkwhale/all-in-one:$FUNKWHALE_VERSION .
diff --git a/docs/installation/systemd.rst b/docs/installation/systemd.rst
index 6dfee76766af520d3fa3a22eff3c08da2a15863b..33f6a38ebe6eadfc53213bc62e81ea8476f420b2 100644
--- a/docs/installation/systemd.rst
+++ b/docs/installation/systemd.rst
@@ -1,6 +1,10 @@
 Systemd configuration
 ----------------------
 
+.. note::
+
+    All the command lines below should be executed as root.
+
 Systemd offers a convenient way to manage your Funkwhale instance if you're
 not using docker.
 
diff --git a/docs/upgrading/0.17.rst b/docs/upgrading/0.17.rst
index acd2d366b330cbc5d9b34ce1f994992981da31ee..416be61a2f420263c38f2abab8976f89767ba041 100644
--- a/docs/upgrading/0.17.rst
+++ b/docs/upgrading/0.17.rst
@@ -196,8 +196,8 @@ On docker-setups::
 On non docker-setups::
 
     # if you missed this one from a previous upgrade
-    python api/manage.py script create_actors --no-input
-    python api/manage.py script migrate_to_user_libraries --no-input
+    sudo -u funkwhale -E /srv/funkwhale/virtualenv/bin/python api/manage.py script create_actors --no-input
+    sudo -u funkwhale -E /srv/funkwhale/virtualenv/bin/python api/manage.py script migrate_to_user_libraries --no-input
 
 If the scripts ends without errors, you're instance should be updated and ready to use :)
 
diff --git a/docs/users/apps.rst b/docs/users/apps.rst
index 27ac1c4cfecd1a51c00c5e811cc99d561ea22f08..60ce05e10a6ae7b37d2b43e90ab68c20f3709c41 100644
--- a/docs/users/apps.rst
+++ b/docs/users/apps.rst
@@ -6,8 +6,8 @@ the one you use in your browser.
 
 While the web client works okay, it's still not ready for some use cases, especially:
 
-- Usage on narrow/touche screens (smartphones, tablets)
-- Usage on the go, with an intermittent connexion
+- Usage on narrow/touch screens (smartphones, tablets)
+- Usage on the go, with an intermittent connection
 
 This pages lists alternative clients you can use to connect to your Funkwhale
 instance and enjoy your music.
diff --git a/front/locales/app.pot b/front/locales/app.pot
index 441c1cc35cb7fbb42a04614dc09f41f284941b7e..2472e043af0b110013017cb74fea42f1436584a5 100644
--- a/front/locales/app.pot
+++ b/front/locales/app.pot
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: front 0.1.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-10-05 20:10+0200\n"
+"POT-Creation-Date: 2019-01-11 16:04+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -30,14 +30,14 @@ msgstr ""
 msgid "(empty)"
 msgstr ""
 
-#: front/src/components/common/ActionTable.vue:44
-#: front/src/components/common/ActionTable.vue:53
+#: front/src/components/common/ActionTable.vue:57
+#: front/src/components/common/ActionTable.vue:66
 msgid "%{ count } on %{ total } selected"
 msgid_plural "%{ count } on %{ total } selected"
 msgstr[0] ""
 msgstr[1] ""
 
-#: front/src/components/Sidebar.vue:107 src/components/audio/album/Card.vue:54
+#: front/src/components/Sidebar.vue:110 src/components/audio/album/Card.vue:54
 #: front/src/views/content/libraries/Card.vue:39 src/views/content/remote/Card.vue:26
 msgid "%{ count } track"
 msgid_plural "%{ count } tracks"
@@ -56,6 +56,12 @@ msgid_plural "%{ count } tracks matching combined filters"
 msgstr[0] ""
 msgstr[1] ""
 
+#: front/src/components/audio/PlayButton.vue:180
+msgid "%{ count } track was added to your queue"
+msgid_plural "%{ count } tracks were added to your queue"
+msgstr[0] ""
+msgstr[1] ""
+
 #: front/src/components/playlists/Card.vue:18
 msgid "%{ count} track"
 msgid_plural "%{ count } tracks"
@@ -74,12 +80,20 @@ msgstr ""
 msgid "%{ minutes } min"
 msgstr ""
 
-#: front/src/components/activity/Like.vue:7
-msgid "%{ user } favorited a track"
+#: front/src/components/notifications/NotificationRow.vue:40
+msgid "%{ username } accepted your follow on library \"%{ library }\""
+msgstr ""
+
+#: front/src/components/notifications/NotificationRow.vue:39
+msgid "%{ username } followed your library \"%{ library }\""
+msgstr ""
+
+#: front/src/components/auth/Profile.vue:46
+msgid "%{ username }'s profile"
 msgstr ""
 
-#: front/src/components/activity/Listen.vue:7
-msgid "%{ user } listened to a track"
+#: front/src/components/Footer.vue:5
+msgid "<translate :translate-params=\"{instanceName: instanceHostname}\">About %{instanceName}</translate>"
 msgstr ""
 
 #: front/src/components/audio/artist/Card.vue:41
@@ -94,15 +108,28 @@ msgid_plural "%{ count } favorites"
 msgstr[0] ""
 msgstr[1] ""
 
+#: front/src/components/library/FileUpload.vue:225
+#: front/src/components/library/FileUpload.vue:226
+msgid "A network error occured while uploading this file"
+msgstr ""
+
 #: front/src/components/About.vue:5
 msgid "About %{ instance }"
 msgstr ""
 
-#: front/src/App.vue:53
+#: front/src/components/Footer.vue:6
+msgid "About %{instanceName}"
+msgstr ""
+
+#: front/src/components/Footer.vue:45
 msgid "About Funkwhale"
 msgstr ""
 
-#: front/src/App.vue:34 src/components/About.vue:8 src/components/About.vue:55
+#: front/src/components/Footer.vue:10
+msgid "About page"
+msgstr ""
+
+#: front/src/components/About.vue:8 src/components/About.vue:64
 msgid "About this instance"
 msgstr ""
 
@@ -114,18 +141,31 @@ msgstr ""
 msgid "Accepted"
 msgstr ""
 
+#: front/src/components/auth/SubsonicTokenForm.vue:111
+msgid "Access disabled"
+msgstr ""
+
 #: front/src/components/Home.vue:106
 msgid "Access your music from a clean interface that focus on what really matters"
 msgstr ""
 
-#: front/src/views/admin/users/UsersDetail.vue:54
-msgid "Account active"
+#: front/src/components/mixins/Translations.vue:19
+#: front/src/components/mixins/Translations.vue:20
+msgid "Accessed date"
+msgstr ""
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:78
+msgid "Account data"
 msgstr ""
 
 #: front/src/components/auth/Settings.vue:5
 msgid "Account settings"
 msgstr ""
 
+#: front/src/components/auth/Settings.vue:264
+msgid "Account Settings"
+msgstr ""
+
 #: front/src/components/manage/users/UsersTable.vue:39
 msgid "Account status"
 msgstr ""
@@ -134,17 +174,23 @@ msgstr ""
 msgid "Account's email"
 msgstr ""
 
+#: front/src/views/admin/moderation/AccountsList.vue:3
+#: front/src/views/admin/moderation/AccountsList.vue:24
+#: front/src/views/admin/moderation/Base.vue:8
+msgid "Accounts"
+msgstr ""
+
 #: front/src/views/content/libraries/Detail.vue:29
 msgid "Action"
 msgstr ""
 
-#: front/src/components/common/ActionTable.vue:86
+#: front/src/components/common/ActionTable.vue:99
 msgid "Action %{ action } was launched successfully on %{ count } element"
 msgid_plural "Action %{ action } was launched successfully on %{ count } elements"
 msgstr[0] ""
 msgstr[1] ""
 
-#: front/src/components/common/ActionTable.vue:8
+#: front/src/components/common/ActionTable.vue:21
 #: front/src/components/library/radios/Builder.vue:64
 msgid "Actions"
 msgstr ""
@@ -153,11 +199,33 @@ msgstr ""
 msgid "Active"
 msgstr ""
 
-#: front/src/components/Sidebar.vue:75
+#: front/src/views/admin/moderation/AccountsDetail.vue:199
+#: front/src/views/admin/moderation/DomainsDetail.vue:144
 msgid "Activity"
 msgstr ""
 
-#: front/src/components/Sidebar.vue:78 src/views/content/Base.vue:19
+#: front/src/components/mixins/Translations.vue:7
+#: front/src/components/mixins/Translations.vue:8
+msgid "Activity visibility"
+msgstr ""
+
+#: front/src/views/admin/moderation/DomainsList.vue:18
+msgid "Add"
+msgstr ""
+
+#: front/src/views/admin/moderation/DomainsList.vue:13
+msgid "Add a domain"
+msgstr ""
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:4
+msgid "Add a new moderation rule"
+msgstr ""
+
+#: front/src/views/content/Home.vue:35
+msgid "Add and manage content"
+msgstr ""
+
+#: front/src/components/Sidebar.vue:75 src/views/content/Base.vue:18
 msgid "Add content"
 msgstr ""
 
@@ -169,20 +237,28 @@ msgstr ""
 msgid "Add filters to customize your radio"
 msgstr ""
 
+#: front/src/components/audio/PlayButton.vue:64
+msgid "Add to current queue"
+msgstr ""
+
 #: front/src/components/favorites/TrackFavoriteIcon.vue:4
-#: front/src/components/favorites/TrackFavoriteIcon.vue:21
+#: front/src/components/favorites/TrackFavoriteIcon.vue:28
 msgid "Add to favorites"
 msgstr ""
 
 #: front/src/components/playlists/TrackPlaylistIcon.vue:6
-#: front/src/components/playlists/TrackPlaylistIcon.vue:32
-msgid "Add to playlist..."
+#: front/src/components/playlists/TrackPlaylistIcon.vue:34
+msgid "Add to playlist…"
 msgstr ""
 
 #: front/src/components/audio/PlayButton.vue:14
 msgid "Add to queue"
 msgstr ""
 
+#: front/src/components/playlists/PlaylistModal.vue:116
+msgid "Add to this playlist"
+msgstr ""
+
 #: front/src/components/playlists/PlaylistModal.vue:54
 msgid "Add track"
 msgstr ""
@@ -191,15 +267,15 @@ msgstr ""
 msgid "Admin"
 msgstr ""
 
-#: front/src/components/Sidebar.vue:82
+#: front/src/components/Sidebar.vue:79
 msgid "Administration"
 msgstr ""
 
-#: front/src/components/audio/track/Table.vue:8
+#: front/src/components/audio/SearchBar.vue:26 src/components/audio/track/Table.vue:8
+#: front/src/components/library/Album.vue:159
 #: front/src/components/manage/library/FilesTable.vue:39
-#: front/src/views/content/libraries/FilesTable.vue:53
-#: front/src/components/library/Album.vue:101 src/components/audio/SearchBar.vue:26
 #: front/src/components/metadata/Search.vue:134
+#: front/src/views/content/libraries/FilesTable.vue:56
 msgid "Album"
 msgstr ""
 
@@ -209,12 +285,18 @@ msgid_plural "Album containing %{ count } tracks, by %{ artist }"
 msgstr[0] ""
 msgstr[1] ""
 
-#: front/src/components/library/Track.vue:20
+#: front/src/components/mixins/Translations.vue:24
+#: front/src/components/mixins/Translations.vue:25
+msgid "Album name"
+msgstr ""
+
+#: front/src/components/library/Track.vue:27
 msgid "Album page"
 msgstr ""
 
 #: front/src/components/audio/Search.vue:19 src/components/instance/Stats.vue:48
-#: front/src/components/requests/Form.vue:9
+#: front/src/views/admin/moderation/AccountsDetail.vue:321
+#: front/src/views/admin/moderation/DomainsDetail.vue:257
 msgid "Albums"
 msgstr ""
 
@@ -235,34 +317,47 @@ msgstr ""
 msgid "An unknown error happend, this can mean the server is down or cannot be reached"
 msgstr ""
 
+#: front/src/components/notifications/NotificationRow.vue:62
+msgid "Approve"
+msgstr ""
+
 #: front/src/components/auth/Logout.vue:5
 msgid "Are you sure you want to log out?"
 msgstr ""
 
-#: front/src/components/audio/track/Table.vue:7
+#: front/src/components/audio/SearchBar.vue:25 src/components/audio/track/Table.vue:7
+#: front/src/components/library/Artist.vue:137
 #: front/src/components/manage/library/FilesTable.vue:38
-#: front/src/views/content/libraries/FilesTable.vue:52
-#: front/src/components/library/Artist.vue:129 src/components/audio/SearchBar.vue:25
 #: front/src/components/metadata/Search.vue:130
+#: front/src/views/content/libraries/FilesTable.vue:55
 msgid "Artist"
 msgstr ""
 
-#: front/src/components/requests/Form.vue:5 src/components/mixins/Translations.vue:24
+#: front/src/components/mixins/Translations.vue:25
+#: front/src/components/mixins/Translations.vue:26
 msgid "Artist name"
 msgstr ""
 
-#: front/src/components/library/Album.vue:22 src/components/library/Track.vue:23
+#: front/src/components/library/Album.vue:22 src/components/library/Track.vue:33
 msgid "Artist page"
 msgstr ""
 
+#: front/src/components/audio/Search.vue:65
+msgid "Artist, album, track…"
+msgstr ""
+
 #: front/src/components/audio/Search.vue:10 src/components/instance/Stats.vue:42
-#: front/src/components/library/Library.vue:7 src/components/library/Artists.vue:120
+#: front/src/components/library/Artists.vue:119 src/components/library/Library.vue:7
+#: front/src/views/admin/moderation/AccountsDetail.vue:313
+#: front/src/views/admin/moderation/DomainsDetail.vue:249
 msgid "Artists"
 msgstr ""
 
 #: front/src/components/favorites/List.vue:33 src/components/library/Artists.vue:25
 #: front/src/components/library/Radios.vue:44
 #: front/src/components/manage/library/FilesTable.vue:19
+#: front/src/components/manage/moderation/AccountsTable.vue:21
+#: front/src/components/manage/moderation/DomainsTable.vue:19
 #: front/src/components/manage/users/UsersTable.vue:19
 #: front/src/views/content/libraries/FilesTable.vue:31
 #: front/src/views/playlists/List.vue:27
@@ -273,6 +368,15 @@ msgstr ""
 msgid "Ask for a password reset"
 msgstr ""
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:245
+#: front/src/views/admin/moderation/DomainsDetail.vue:202
+msgid "Audio content"
+msgstr ""
+
+#: front/src/components/ShortcutsModal.vue:55
+msgid "Audio player shortcuts"
+msgstr ""
+
 #: front/src/components/playlists/PlaylistModal.vue:26
 msgid "Available playlists"
 msgstr ""
@@ -281,17 +385,27 @@ msgstr ""
 msgid "Avatar"
 msgstr ""
 
-#: front/src/views/auth/EmailConfirm.vue:17 src/views/auth/PasswordReset.vue:24
+#: front/src/views/auth/PasswordReset.vue:24
 #: front/src/views/auth/PasswordResetConfirm.vue:18
 msgid "Back to login"
 msgstr ""
 
-#: front/src/components/library/Track.vue:80
+#: front/src/components/library/Track.vue:129
 #: front/src/components/manage/library/FilesTable.vue:42
-#: front/src/components/mixins/Translations.vue:28
+#: front/src/components/mixins/Translations.vue:29
+#: front/src/components/mixins/Translations.vue:30
 msgid "Bitrate"
 msgstr ""
 
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:19
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:34
+msgid "Block everything"
+msgstr ""
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:112
+msgid "Block everything from this account or domain. This will prevent any interaction with the entity, and purge related content (uploads, libraries, follows, etc.)"
+msgstr ""
+
 #: front/src/components/Sidebar.vue:18 src/components/library/Library.vue:4
 msgid "Browse"
 msgstr ""
@@ -321,11 +435,18 @@ msgid "By %{ artist }"
 msgstr ""
 
 #: front/src/views/content/remote/Card.vue:103
-msgid "By unfollowing this library, you will loose access to its content."
+msgid "By unfollowing this library, you loose access to its content."
+msgstr ""
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:261
+#: front/src/views/admin/moderation/DomainsDetail.vue:217
+msgid "Cached size"
 msgstr ""
 
 #: front/src/components/common/DangerousButton.vue:17
+#: front/src/components/library/Album.vue:58 src/components/library/Track.vue:76
 #: front/src/components/library/radios/Filter.vue:53
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:54
 #: front/src/components/playlists/PlaylistModal.vue:63
 msgid "Cancel"
 msgstr ""
@@ -338,7 +459,12 @@ msgstr ""
 msgid "Cannot change your password"
 msgstr ""
 
-#: front/src/App.vue:65
+#: front/src/components/library/FileUpload.vue:222
+#: front/src/components/library/FileUpload.vue:223
+msgid "Cannot upload this file, ensure it is not too big"
+msgstr ""
+
+#: front/src/components/Footer.vue:21
 msgid "Change language"
 msgstr ""
 
@@ -371,7 +497,11 @@ msgstr ""
 msgid "Changing your password will have the following consequences"
 msgstr ""
 
-#: front/src/App.vue:6
+#: front/src/components/Footer.vue:40
+msgid "Chat room"
+msgstr ""
+
+#: front/src/App.vue:13
 msgid "Choose your instance"
 msgstr ""
 
@@ -388,14 +518,22 @@ msgstr ""
 msgid "Clear playlist"
 msgstr ""
 
+#: front/src/components/audio/Player.vue:363
+msgid "Clear your queue"
+msgstr ""
+
 #: front/src/components/Home.vue:44
 msgid "Click once, listen for hours using built-in radios"
 msgstr ""
 
-#: front/src/components/library/FileUpload.vue:76
+#: front/src/components/library/FileUpload.vue:75
 msgid "Click to select files to upload or drag and drop files or directories"
 msgstr ""
 
+#: front/src/components/ShortcutsModal.vue:20
+msgid "Close"
+msgstr ""
+
 #: front/src/components/manage/users/InvitationForm.vue:26
 #: front/src/components/manage/users/InvitationsTable.vue:42
 msgid "Code"
@@ -403,14 +541,9 @@ msgstr ""
 
 #: front/src/components/audio/album/Card.vue:43
 #: front/src/components/audio/artist/Card.vue:33
-#: front/src/components/discussion/Comment.vue:20
 msgid "Collapse"
 msgstr ""
 
-#: front/src/components/requests/Form.vue:14
-msgid "Comment"
-msgstr ""
-
 #: front/src/components/library/radios/Builder.vue:62
 msgid "Config"
 msgstr ""
@@ -421,21 +554,58 @@ msgstr ""
 
 #: front/src/views/auth/EmailConfirm.vue:4 src/views/auth/EmailConfirm.vue:20
 #: front/src/views/auth/EmailConfirm.vue:51
-msgid "Confirm your email"
+msgid "Confirm your e-mail address"
 msgstr ""
 
 #: front/src/views/auth/EmailConfirm.vue:13
 msgid "Confirmation code"
 msgstr ""
 
+#: front/src/components/common/ActionTable.vue:7
+msgid "Content have been updated, click refresh to see up-to-date content"
+msgstr ""
+
+#: front/src/components/Footer.vue:48
+msgid "Contribute"
+msgstr ""
+
+#: front/src/components/audio/EmbedWizard.vue:19
 #: front/src/components/common/CopyInput.vue:8
 msgid "Copy"
 msgstr ""
 
+#: front/src/components/playlists/Editor.vue:163
+msgid "Copy tracks from current queue to playlist"
+msgstr ""
+
+#: front/src/components/audio/EmbedWizard.vue:21
+msgid "Copy/paste this code in your website HTML"
+msgstr ""
+
+#: front/src/components/library/Track.vue:91
+msgid "Copyright"
+msgstr ""
+
+#: front/src/views/auth/EmailConfirm.vue:7
+msgid "Could not confirm your e-mail address"
+msgstr ""
+
+#: front/src/views/content/remote/ScanForm.vue:3
+msgid "Could not fetch remote library"
+msgstr ""
+
+#: front/src/views/content/libraries/FilesTable.vue:213
+msgid "Could not process this track, ensure it is tagged correctly"
+msgstr ""
+
 #: front/src/components/Home.vue:85
 msgid "Covers, lyrics, our goal is to have them all ;)"
 msgstr ""
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:58
+msgid "Create"
+msgstr ""
+
 #: front/src/components/auth/Signup.vue:4
 msgid "Create a funkwhale account"
 msgstr ""
@@ -452,10 +622,6 @@ msgstr ""
 msgid "Create an account"
 msgstr ""
 
-#: front/src/components/requests/Card.vue:25
-msgid "Create import"
-msgstr ""
-
 #: front/src/views/content/libraries/Form.vue:26
 msgid "Create library"
 msgstr ""
@@ -473,6 +639,7 @@ msgid "Create your own radio"
 msgstr ""
 
 #: front/src/components/manage/users/InvitationsTable.vue:40
+#: front/src/components/mixins/Translations.vue:16
 #: front/src/components/mixins/Translations.vue:17
 msgid "Creation date"
 msgstr ""
@@ -497,10 +664,15 @@ msgstr ""
 msgid "Date"
 msgstr ""
 
-#: front/src/views/content/libraries/Form.vue:29 src/views/playlists/Detail.vue:33
+#: front/src/components/ShortcutsModal.vue:75
+msgid "Decrease volume"
+msgstr ""
+
 #: front/src/components/manage/library/FilesTable.vue:190
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:61
 #: front/src/components/manage/users/InvitationsTable.vue:167
-#: front/src/views/content/libraries/FilesTable.vue:258
+#: front/src/views/content/libraries/FilesTable.vue:233
+#: front/src/views/content/libraries/Form.vue:29 src/views/playlists/Detail.vue:33
 msgid "Delete"
 msgstr ""
 
@@ -508,6 +680,10 @@ msgstr ""
 msgid "Delete library"
 msgstr ""
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:69
+msgid "Delete moderation rule"
+msgstr ""
+
 #: front/src/views/playlists/Detail.vue:38
 msgid "Delete playlist"
 msgstr ""
@@ -520,9 +696,15 @@ msgstr ""
 msgid "Delete this library?"
 msgstr ""
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:63
+msgid "Delete this moderation rule?"
+msgstr ""
+
 #: front/src/components/favorites/List.vue:34 src/components/library/Artists.vue:26
 #: front/src/components/library/Radios.vue:47
 #: front/src/components/manage/library/FilesTable.vue:20
+#: front/src/components/manage/moderation/AccountsTable.vue:22
+#: front/src/components/manage/moderation/DomainsTable.vue:20
 #: front/src/components/manage/users/UsersTable.vue:20
 #: front/src/views/content/libraries/FilesTable.vue:32
 #: front/src/views/playlists/List.vue:28
@@ -542,6 +724,15 @@ msgstr ""
 msgid "Details"
 msgstr ""
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:455
+msgid "Determine how much content the user can upload. Leave empty to use the default value of the instance."
+msgstr ""
+
+#: front/src/components/mixins/Translations.vue:8
+#: front/src/components/mixins/Translations.vue:9
+msgid "Determine the visibility level of your activity"
+msgstr ""
+
 #: front/src/components/auth/Settings.vue:104
 #: front/src/components/auth/SubsonicTokenForm.vue:52
 msgid "Disable access"
@@ -555,14 +746,28 @@ msgstr ""
 msgid "Disable Subsonic API access?"
 msgstr ""
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:18
+#: front/src/views/admin/moderation/AccountsDetail.vue:128
+#: front/src/views/admin/moderation/AccountsDetail.vue:132
+msgid "Disabled"
+msgstr ""
+
 #: front/src/components/auth/SubsonicTokenForm.vue:14
 msgid "Discover how to use Funkwhale from other apps"
 msgstr ""
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:103
+msgid "Display name"
+msgstr ""
+
 #: front/src/components/library/radios/Builder.vue:30
 msgid "Display publicly"
 msgstr ""
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:122
+msgid "Do not download any media file (audio, album cover, account avatar…) from this account or domain. This will purge existing content as well."
+msgstr ""
+
 #: front/src/components/playlists/Editor.vue:42
 msgid "Do you want to clear the playlist \"%{ playlist }\"?"
 msgstr ""
@@ -579,21 +784,34 @@ msgstr ""
 msgid "Do you want to delete the radio \"%{ radio }\"?"
 msgstr ""
 
-#: front/src/components/common/ActionTable.vue:29
+#: front/src/components/common/ActionTable.vue:36
 msgid "Do you want to launch %{ action } on %{ count } element?"
 msgid_plural "Do you want to launch %{ action } on %{ count } elements?"
 msgstr[0] ""
 msgstr[1] ""
 
-#: front/src/components/Sidebar.vue:104
+#: front/src/components/Sidebar.vue:107
 msgid "Do you want to restore your previous queue?"
 msgstr ""
 
-#: front/src/App.vue:37
+#: front/src/components/Footer.vue:31
 msgid "Documentation"
 msgstr ""
 
-#: front/src/components/library/Track.vue:48
+#: front/src/components/manage/moderation/AccountsTable.vue:40
+#: front/src/components/mixins/Translations.vue:34
+#: front/src/views/admin/moderation/AccountsDetail.vue:93
+#: front/src/components/mixins/Translations.vue:35
+msgid "Domain"
+msgstr ""
+
+#: front/src/views/admin/moderation/Base.vue:5
+#: front/src/views/admin/moderation/DomainsList.vue:3
+#: front/src/views/admin/moderation/DomainsList.vue:48
+msgid "Domains"
+msgstr ""
+
+#: front/src/components/library/Track.vue:55
 msgid "Download"
 msgstr ""
 
@@ -601,13 +819,18 @@ msgstr ""
 msgid "Drag and drop rows to reorder tracks in the playlist"
 msgstr ""
 
-#: front/src/components/audio/track/Table.vue:9 src/components/library/Track.vue:58
+#: front/src/components/audio/track/Table.vue:9 src/components/library/Track.vue:111
 #: front/src/components/manage/library/FilesTable.vue:43
-#: front/src/views/content/libraries/FilesTable.vue:56
-#: front/src/components/mixins/Translations.vue:29
+#: front/src/components/mixins/Translations.vue:30
+#: front/src/views/content/libraries/FilesTable.vue:59
+#: front/src/components/mixins/Translations.vue:31
 msgid "Duration"
 msgstr ""
 
+#: front/src/views/auth/EmailConfirm.vue:23
+msgid "E-mail address confirmed"
+msgstr ""
+
 #: front/src/components/Home.vue:93
 msgid "Easy to use"
 msgstr ""
@@ -621,7 +844,7 @@ msgid "Edit instance info"
 msgstr ""
 
 #: front/src/components/radios/Card.vue:22 src/views/playlists/Detail.vue:30
-msgid "Edit..."
+msgid "Edit…"
 msgstr ""
 
 #: front/src/components/auth/Signup.vue:29
@@ -629,28 +852,93 @@ msgstr ""
 msgid "Email"
 msgstr ""
 
-#: front/src/views/admin/users/UsersDetail.vue:29
+#: front/src/views/admin/moderation/AccountsDetail.vue:111
 msgid "Email address"
 msgstr ""
 
-#: front/src/views/auth/EmailConfirm.vue:23
-msgid "Email confirmed"
+#: front/src/components/library/Album.vue:44 src/components/library/Track.vue:62
+msgid "Embed"
+msgstr ""
+
+#: front/src/components/audio/EmbedWizard.vue:20
+msgid "Embed code"
+msgstr ""
+
+#: front/src/components/library/Album.vue:48
+msgid "Embed this album on your website"
+msgstr ""
+
+#: front/src/components/library/Track.vue:66
+msgid "Embed this track on your website"
+msgstr ""
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:230
+#: front/src/views/admin/moderation/DomainsDetail.vue:187
+msgid "Emitted library follows"
+msgstr ""
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:214
+#: front/src/views/admin/moderation/DomainsDetail.vue:171
+msgid "Emitted messages"
+msgstr ""
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:8
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:17
+#: front/src/views/admin/moderation/AccountsDetail.vue:127
+#: front/src/views/admin/moderation/AccountsDetail.vue:131
+msgid "Enabled"
 msgstr ""
 
 #: front/src/views/playlists/Detail.vue:29
 msgid "End edition"
 msgstr ""
 
+#: front/src/views/content/remote/ScanForm.vue:50
+msgid "Enter a library URL"
+msgstr ""
+
+#: front/src/components/library/Radios.vue:140
+msgid "Enter a radio name…"
+msgstr ""
+
+#: front/src/components/library/Artists.vue:118
+msgid "Enter artist name…"
+msgstr ""
+
+#: front/src/views/playlists/List.vue:107
+msgid "Enter playlist name…"
+msgstr ""
+
+#: front/src/components/auth/Signup.vue:100
+msgid "Enter your email"
+msgstr ""
+
+#: front/src/components/auth/Signup.vue:96 src/components/auth/Signup.vue:97
+msgid "Enter your invitation code (case insensitive)"
+msgstr ""
+
+#: front/src/components/metadata/Search.vue:114
+msgid "Enter your search query…"
+msgstr ""
+
+#: front/src/components/auth/Signup.vue:99
+msgid "Enter your username"
+msgstr ""
+
+#: front/src/components/auth/Login.vue:77
+msgid "Enter your username or email"
+msgstr ""
+
 #: front/src/components/auth/SubsonicTokenForm.vue:20
 #: front/src/views/content/libraries/Form.vue:4
 msgid "Error"
 msgstr ""
 
-#: front/src/views/content/remote/Card.vue:39
-msgid "Error during scan"
+#: front/src/views/admin/Settings.vue:87
+msgid "Error reporting"
 msgstr ""
 
-#: front/src/components/common/ActionTable.vue:79
+#: front/src/components/common/ActionTable.vue:92
 msgid "Error while applying action"
 msgstr ""
 
@@ -662,24 +950,27 @@ msgstr ""
 msgid "Error while changing your password"
 msgstr ""
 
-#: front/src/views/auth/EmailConfirm.vue:7
-msgid "Error while confirming your email"
+#: front/src/views/admin/moderation/DomainsList.vue:6
+msgid "Error while creating domain"
 msgstr ""
 
 #: front/src/components/manage/users/InvitationForm.vue:4
 msgid "Error while creating invitation"
 msgstr ""
 
-#: front/src/views/content/remote/ScanForm.vue:3
-msgid "Error while fetching remote library"
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:7
+msgid "Error while creating rule"
+msgstr ""
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:126
+msgid "Error while fetching node info"
 msgstr ""
 
 #: front/src/components/admin/SettingsGroup.vue:5
 msgid "Error while saving settings"
 msgstr ""
 
-#: front/src/views/content/libraries/FilesTable.vue:16
-#: front/src/views/content/libraries/FilesTable.vue:237
+#: front/src/views/content/libraries/FilesTable.vue:212
 msgid "Errored"
 msgstr ""
 
@@ -687,20 +978,27 @@ msgstr ""
 msgid "Errored files"
 msgstr ""
 
-#: front/src/views/content/remote/Card.vue:58
-msgid "Errored tracks:"
+#: front/src/components/playlists/Form.vue:89
+msgid "Everyone"
 msgstr ""
 
-#: front/src/components/library/radios/Builder.vue:61
-msgid "Exclude"
+#: front/src/components/mixins/Translations.vue:11
+#: front/src/components/playlists/Form.vue:85 src/views/content/libraries/Form.vue:73
+#: front/src/components/mixins/Translations.vue:12
+msgid "Everyone on this instance"
+msgstr ""
+
+#: front/src/views/content/libraries/Form.vue:74
+msgid "Everyone, across all instances"
 msgstr ""
 
-#: front/src/components/discussion/Comment.vue:14
-msgid "Expand"
+#: front/src/components/library/radios/Builder.vue:61
+msgid "Exclude"
 msgstr ""
 
 #: front/src/components/manage/users/InvitationsTable.vue:41
-#: front/src/components/mixins/Translations.vue:21
+#: front/src/components/mixins/Translations.vue:22
+#: front/src/components/mixins/Translations.vue:23
 msgid "Expiration date"
 msgstr ""
 
@@ -712,12 +1010,28 @@ msgstr ""
 msgid "Expired/used"
 msgstr ""
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:110
+msgid "Explain why you're applying this policy. Depending on your instance configuration, this will help you remember why you acted on this account or domain, and may be displayed publicly to help users understand what moderation rules are in place."
+msgstr ""
+
+#: front/src/views/content/libraries/FilesTable.vue:16
+msgid "Failed"
+msgstr ""
+
+#: front/src/views/content/remote/Card.vue:58
+msgid "Failed tracks:"
+msgstr ""
+
 #: front/src/components/Sidebar.vue:66
 msgid "Favorites"
 msgstr ""
 
-#: front/src/components/library/FileUpload.vue:83
-msgid "File name"
+#: front/src/views/admin/Settings.vue:84
+msgid "Federation"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:84
+msgid "Filename"
 msgstr ""
 
 #: front/src/views/admin/library/Base.vue:5 src/views/admin/library/FilesList.vue:21
@@ -729,23 +1043,37 @@ msgid "Filter name"
 msgstr ""
 
 #: front/src/views/content/libraries/FilesTable.vue:17
-#: front/src/views/content/libraries/FilesTable.vue:241
+#: front/src/views/content/libraries/FilesTable.vue:216
 msgid "Finished"
 msgstr ""
 
-#: front/src/views/content/remote/Card.vue:83
-msgid "Follow"
+#: front/src/components/manage/moderation/AccountsTable.vue:42
+#: front/src/components/manage/moderation/DomainsTable.vue:41
+#: front/src/views/admin/moderation/AccountsDetail.vue:159
+#: front/src/views/admin/moderation/DomainsDetail.vue:78
+msgid "First seen"
 msgstr ""
 
-#: front/src/views/content/remote/Card.vue:88
-msgid "Follow pending approval"
+#: front/src/components/mixins/Translations.vue:17
+#: front/src/components/mixins/Translations.vue:18
+msgid "First seen date"
+msgstr ""
+
+#: front/src/views/content/remote/Card.vue:83
+msgid "Follow"
 msgstr ""
 
 #: front/src/views/content/Home.vue:16
 msgid "Follow remote libraries"
 msgstr ""
 
+#: front/src/views/content/remote/Card.vue:88
+msgid "Follow request pending approval"
+msgstr ""
+
+#: front/src/components/mixins/Translations.vue:38
 #: front/src/views/content/libraries/Detail.vue:7
+#: front/src/components/mixins/Translations.vue:39
 msgid "Followers"
 msgstr ""
 
@@ -753,18 +1081,10 @@ msgstr ""
 msgid "Following"
 msgstr ""
 
-#: front/src/components/activity/Like.vue:14 src/components/activity/Listen.vue:14
-msgid "from %{ album } by %{ artist }"
-msgstr ""
-
-#: front/src/components/library/Track.vue:13
+#: front/src/components/library/Track.vue:17
 msgid "From album %{ album } by %{ artist }"
 msgstr ""
 
-#: front/src/App.vue:55
-msgid "Funkwhale is a free and open-source project run by volunteers. You can help us improve the platform by reporting bugs, suggesting features and share the project with your friends!"
-msgstr ""
-
 #: front/src/components/auth/SubsonicTokenForm.vue:7
 msgid "Funkwhale is compatible with other music players that support the Subsonic API."
 msgstr ""
@@ -785,6 +1105,10 @@ msgstr ""
 msgid "Funkwhale takes care of handling your music"
 msgstr ""
 
+#: front/src/components/ShortcutsModal.vue:38
+msgid "General shortcuts"
+msgstr ""
+
 #: front/src/components/manage/users/InvitationForm.vue:16
 msgid "Get a new invitation"
 msgstr ""
@@ -801,8 +1125,12 @@ msgstr ""
 msgid "Get started"
 msgstr ""
 
-#: front/src/components/common/ActionTable.vue:21
-#: front/src/components/common/ActionTable.vue:27
+#: front/src/components/Footer.vue:37
+msgid "Getting help"
+msgstr ""
+
+#: front/src/components/common/ActionTable.vue:34
+#: front/src/components/common/ActionTable.vue:54
 msgid "Go"
 msgstr ""
 
@@ -810,8 +1138,12 @@ msgstr ""
 msgid "Go to home page"
 msgstr ""
 
-#: front/src/App.vue:73
-msgid "Help us translate Funkwhale"
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:114
+msgid "Hide account or domain content, except from followers."
+msgstr ""
+
+#: front/src/components/library/Home.vue:65
+msgid "Home"
 msgstr ""
 
 #: front/src/components/instance/Stats.vue:36
@@ -839,10 +1171,19 @@ msgid "Import reference"
 msgstr ""
 
 #: front/src/views/content/libraries/FilesTable.vue:11
-#: front/src/views/content/libraries/FilesTable.vue:55
+#: front/src/views/content/libraries/FilesTable.vue:58
 msgid "Import status"
 msgstr ""
 
+#: front/src/views/content/libraries/FilesTable.vue:217
+msgid "Imported"
+msgstr ""
+
+#: front/src/components/mixins/Translations.vue:21
+#: front/src/components/mixins/Translations.vue:22
+msgid "Imported date"
+msgstr ""
+
 #: front/src/components/favorites/TrackFavoriteIcon.vue:3
 msgid "In favorites"
 msgstr ""
@@ -851,16 +1192,41 @@ msgstr ""
 msgid "Inactive"
 msgstr ""
 
+#: front/src/components/ShortcutsModal.vue:71
+msgid "Increase volume"
+msgstr ""
+
+#: front/src/views/auth/PasswordReset.vue:53
+msgid "Input the email address binded to your account"
+msgstr ""
+
 #: front/src/components/playlists/Editor.vue:31
 msgid "Insert from queue (%{ count } track)"
 msgid_plural "Insert from queue (%{ count } tracks)"
 msgstr[0] ""
 msgstr[1] ""
 
+#: front/src/views/admin/moderation/DomainsDetail.vue:71
+msgid "Instance data"
+msgstr ""
+
+#: front/src/views/admin/Settings.vue:80
+msgid "Instance information"
+msgstr ""
+
 #: front/src/components/library/Radios.vue:9
 msgid "Instance radios"
 msgstr ""
 
+#: front/src/views/admin/Settings.vue:75
+msgid "Instance settings"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:229
+#: front/src/components/library/FileUpload.vue:230
+msgid "Invalid file type, ensure you are uploading an audio file. Supported file extensions are %{ extensions }"
+msgstr ""
+
 #: front/src/components/auth/Signup.vue:42
 #: front/src/components/manage/users/InvitationForm.vue:11
 msgid "Invitation code"
@@ -875,52 +1241,73 @@ msgstr ""
 msgid "Invitations"
 msgstr ""
 
-#: front/src/App.vue:42
+#: front/src/components/Footer.vue:41
 msgid "Issue tracker"
 msgstr ""
 
-#: front/src/views/content/libraries/Home.vue:9
-msgid "It looks like you don't have any library yet, it's time to create one!"
-msgstr ""
-
 #: front/src/components/Home.vue:50
 msgid "Keep a track of your favorite songs"
 msgstr ""
 
+#: front/src/components/Footer.vue:33 src/components/ShortcutsModal.vue:3
+msgid "Keyboard shortcuts"
+msgstr ""
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:161
+msgid "Known accounts"
+msgstr ""
+
 #: front/src/views/content/remote/Home.vue:14
 msgid "Known libraries"
 msgstr ""
 
 #: front/src/components/manage/users/UsersTable.vue:41
-#: front/src/views/admin/users/UsersDetail.vue:45
-#: front/src/components/mixins/Translations.vue:31
+#: front/src/components/mixins/Translations.vue:32
+#: front/src/views/admin/moderation/AccountsDetail.vue:184
+#: front/src/components/mixins/Translations.vue:33
 msgid "Last activity"
 msgstr ""
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:167
+#: front/src/views/admin/moderation/DomainsDetail.vue:86
+msgid "Last checked"
+msgstr ""
+
 #: front/src/components/playlists/PlaylistModal.vue:32
 msgid "Last modification"
 msgstr ""
 
+#: front/src/components/manage/moderation/AccountsTable.vue:43
+msgid "Last seen"
+msgstr ""
+
+#: front/src/components/mixins/Translations.vue:18
+#: front/src/components/mixins/Translations.vue:19
+msgid "Last seen date"
+msgstr ""
+
 #: front/src/views/content/remote/Card.vue:56
 msgid "Last update:"
 msgstr ""
 
-#: front/src/components/common/ActionTable.vue:40
+#: front/src/components/common/ActionTable.vue:47
 msgid "Launch"
 msgstr ""
 
-#: front/src/views/content/remote/Card.vue:63
-msgid "Launch scan"
-msgstr ""
-
 #: front/src/components/Home.vue:10
 msgid "Learn more about this instance"
 msgstr ""
 
-#: front/src/components/requests/Form.vue:10
-msgid "Leave this field empty if you're requesting the whole discography."
+#: front/src/components/manage/users/InvitationForm.vue:58
+msgid "Leave empty for a random code"
+msgstr ""
+
+#: front/src/components/audio/EmbedWizard.vue:7
+msgid "Leave empty for a responsive widget"
 msgstr ""
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:297
+#: front/src/views/admin/moderation/DomainsDetail.vue:233
 #: front/src/views/content/Base.vue:5
 msgid "Libraries"
 msgstr ""
@@ -930,56 +1317,77 @@ msgid "Libraries help you organize and share your music collections. You can upl
 msgstr ""
 
 #: front/src/components/instance/Stats.vue:30
-#: front/src/components/manage/users/UsersTable.vue:177
-#: front/src/views/admin/users/UsersDetail.vue:181
+#: front/src/components/manage/users/UsersTable.vue:173
+#: front/src/views/admin/moderation/AccountsDetail.vue:464
 msgid "Library"
 msgstr ""
 
+#: front/src/views/content/libraries/Form.vue:109
+msgid "Library created"
+msgstr ""
+
+#: front/src/views/content/libraries/Form.vue:129
+msgid "Library deleted"
+msgstr ""
+
 #: front/src/views/admin/library/FilesList.vue:3
 msgid "Library files"
 msgstr ""
 
-#: front/src/App.vue:31
-msgid "Links"
+#: front/src/views/content/libraries/Form.vue:106
+msgid "Library updated"
+msgstr ""
+
+#: front/src/components/library/Track.vue:100
+msgid "License"
 msgstr ""
 
 #: front/src/views/content/libraries/Detail.vue:21
-msgid "Loading followers..."
+msgid "Loading followers…"
 msgstr ""
 
 #: front/src/views/content/libraries/Home.vue:3
-msgid "Loading Libraries..."
+msgid "Loading Libraries…"
 msgstr ""
 
 #: front/src/views/content/libraries/Detail.vue:3
 #: front/src/views/content/libraries/Upload.vue:3
-msgid "Loading library data..."
+msgid "Loading library data…"
 msgstr ""
 
 #: front/src/views/Notifications.vue:4
-msgid "Loading notifications..."
+msgid "Loading notifications…"
 msgstr ""
 
 #: front/src/views/content/remote/Home.vue:3
 msgid "Loading remote libraries..."
 msgstr ""
 
-#: front/src/views/instance/Timeline.vue:4
-msgid "Loading timeline..."
-msgstr ""
-
 #: front/src/views/content/libraries/Quota.vue:4
-msgid "Loading usage data..."
+msgid "Loading usage data…"
 msgstr ""
 
 #: front/src/components/favorites/List.vue:5
-msgid "Loading your favorites..."
+msgid "Loading your favorites…"
+msgstr ""
+
+#: front/src/components/manage/moderation/AccountsTable.vue:59
+#: front/src/views/admin/moderation/AccountsDetail.vue:18
+msgid "Local account"
+msgstr ""
+
+#: front/src/components/auth/Login.vue:78
+msgid "Log In"
 msgstr ""
 
 #: front/src/components/auth/Login.vue:4
 msgid "Log in to your Funkwhale account"
 msgstr ""
 
+#: front/src/components/auth/Logout.vue:20
+msgid "Log Out"
+msgstr ""
+
 #: front/src/components/Sidebar.vue:38
 msgid "Logged in as %{ username }"
 msgstr ""
@@ -988,18 +1396,50 @@ msgstr ""
 msgid "Login"
 msgstr ""
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:119
+msgid "Login status"
+msgstr ""
+
 #: front/src/components/Sidebar.vue:52
 msgid "Logout"
 msgstr ""
 
-#: front/src/components/library/Track.vue:105
+#: front/src/views/content/libraries/Home.vue:9
+msgid "Looks like you don't have a library, it's time to create one."
+msgstr ""
+
+#: front/src/components/audio/Player.vue:353 src/components/audio/Player.vue:354
+msgid "Looping disabled. Click to switch to single-track looping."
+msgstr ""
+
+#: front/src/components/audio/Player.vue:356 src/components/audio/Player.vue:357
+msgid "Looping on a single track. Click to switch to whole queue looping."
+msgstr ""
+
+#: front/src/components/audio/Player.vue:359 src/components/audio/Player.vue:360
+msgid "Looping on whole queue. Click to disable looping."
+msgstr ""
+
+#: front/src/components/library/Track.vue:150
 msgid "Lyrics"
 msgstr ""
 
+#: front/src/components/Sidebar.vue:210
+msgid "Main menu"
+msgstr ""
+
+#: front/src/views/admin/library/Base.vue:16
+msgid "Manage library"
+msgstr ""
+
 #: front/src/components/playlists/PlaylistModal.vue:3
 msgid "Manage playlists"
 msgstr ""
 
+#: front/src/views/admin/users/Base.vue:20
+msgid "Manage users"
+msgstr ""
+
 #: front/src/views/playlists/List.vue:8
 msgid "Manage your playlists"
 msgstr ""
@@ -1008,40 +1448,98 @@ msgstr ""
 msgid "Mark all as read"
 msgstr ""
 
-#: front/src/views/admin/users/UsersDetail.vue:94
+#: front/src/components/notifications/NotificationRow.vue:44
+msgid "Mark as read"
+msgstr ""
+
+#: front/src/components/notifications/NotificationRow.vue:45
+msgid "Mark as unread"
+msgstr ""
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:281
 msgid "MB"
 msgstr ""
 
-#: front/src/components/Sidebar.vue:63
+#: front/src/components/audio/Player.vue:346
+msgid "Media player"
+msgstr ""
+
+#: front/src/components/Footer.vue:32
+msgid "Mobile and desktop apps"
+msgstr ""
+
+#: front/src/components/Sidebar.vue:97 src/components/manage/users/UsersTable.vue:177
+#: front/src/views/admin/moderation/AccountsDetail.vue:468
+#: front/src/views/admin/moderation/Base.vue:21
+msgid "Moderation"
+msgstr ""
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:49
+#: front/src/views/admin/moderation/DomainsDetail.vue:42
+msgid "Moderation policies help you control how your instance interact with a given domain or account."
+msgstr ""
+
+#: front/src/components/mixins/Translations.vue:20
+#: front/src/components/mixins/Translations.vue:21
+msgid "Modification date"
+msgstr ""
+
+#: front/src/components/Sidebar.vue:63 src/views/admin/Settings.vue:82
 msgid "Music"
 msgstr ""
 
+#: front/src/components/audio/Player.vue:352
+msgid "Mute"
+msgstr ""
+
 #: front/src/components/Sidebar.vue:34
 msgid "My account"
 msgstr ""
 
+#: front/src/components/library/radios/Builder.vue:236
+msgid "My awesome description"
+msgstr ""
+
+#: front/src/views/content/libraries/Form.vue:70
+msgid "My awesome library"
+msgstr ""
+
+#: front/src/components/playlists/Form.vue:74
+msgid "My awesome playlist"
+msgstr ""
+
+#: front/src/components/library/radios/Builder.vue:235
+msgid "My awesome radio"
+msgstr ""
+
 #: front/src/views/content/libraries/Home.vue:6
 msgid "My libraries"
 msgstr ""
 
-#: front/src/components/audio/track/Row.vue:40 src/components/library/Track.vue:64
-#: front/src/components/library/Track.vue:75 src/components/library/Track.vue:86
-#: front/src/components/library/Track.vue:97
+#: front/src/components/audio/track/Row.vue:40 src/components/library/Track.vue:115
+#: front/src/components/library/Track.vue:124 src/components/library/Track.vue:133
+#: front/src/components/library/Track.vue:142
 #: front/src/components/manage/library/FilesTable.vue:63
 #: front/src/components/manage/library/FilesTable.vue:69
 #: front/src/components/manage/library/FilesTable.vue:75
 #: front/src/components/manage/library/FilesTable.vue:81
 #: front/src/components/manage/users/UsersTable.vue:61
-#: front/src/views/admin/users/UsersDetail.vue:49
-#: front/src/views/content/libraries/FilesTable.vue:89
-#: front/src/views/content/libraries/FilesTable.vue:95
+#: front/src/views/admin/moderation/AccountsDetail.vue:171
+#: front/src/views/admin/moderation/DomainsDetail.vue:90
+#: front/src/views/content/libraries/FilesTable.vue:92
+#: front/src/views/content/libraries/FilesTable.vue:98
+#: front/src/views/admin/moderation/DomainsDetail.vue:109
+#: front/src/views/admin/moderation/DomainsDetail.vue:117
 msgid "N/A"
 msgstr ""
 
+#: front/src/components/manage/moderation/AccountsTable.vue:39
+#: front/src/components/manage/moderation/DomainsTable.vue:38
+#: front/src/components/mixins/Translations.vue:26
 #: front/src/components/playlists/PlaylistModal.vue:31
-#: front/src/views/admin/users/UsersDetail.vue:21
+#: front/src/views/admin/moderation/DomainsDetail.vue:105
 #: front/src/views/content/libraries/Form.vue:10
-#: front/src/components/mixins/Translations.vue:25
+#: front/src/components/mixins/Translations.vue:27
 msgid "Name"
 msgstr ""
 
@@ -1050,11 +1548,15 @@ msgstr ""
 msgid "New password"
 msgstr ""
 
-#: front/src/components/Sidebar.vue:149
+#: front/src/components/Sidebar.vue:160
 msgid "New tracks will be appended here automatically."
 msgstr ""
 
-#: front/src/components/Sidebar.vue:116
+#: front/src/components/audio/Player.vue:350
+msgid "Next track"
+msgstr ""
+
+#: front/src/components/Sidebar.vue:119
 msgid "No"
 msgstr ""
 
@@ -1062,7 +1564,15 @@ msgstr ""
 msgid "No add-ons, no plugins : you only need a web library"
 msgstr ""
 
-#: front/src/components/library/Track.vue:113
+#: front/src/components/audio/Search.vue:25
+msgid "No album matched your query"
+msgstr ""
+
+#: front/src/components/audio/Search.vue:16
+msgid "No artist matched your query"
+msgstr ""
+
+#: front/src/components/library/Track.vue:158
 msgid "No lyrics available for this track."
 msgstr ""
 
@@ -1070,6 +1580,16 @@ msgstr ""
 msgid "No matching library."
 msgstr ""
 
+#: front/src/views/Notifications.vue:26
+msgid "No notifications yet."
+msgstr ""
+
+#: front/src/components/mixins/Translations.vue:10
+#: front/src/components/playlists/Form.vue:81 src/views/content/libraries/Form.vue:72
+#: front/src/components/mixins/Translations.vue:11
+msgid "Nobody except me"
+msgstr ""
+
 #: front/src/views/content/libraries/Detail.vue:57
 msgid "Nobody is following this library"
 msgstr ""
@@ -1082,7 +1602,7 @@ msgstr ""
 msgid "Notifications"
 msgstr ""
 
-#: front/src/App.vue:36
+#: front/src/components/Footer.vue:47
 msgid "Official website"
 msgstr ""
 
@@ -1094,13 +1614,30 @@ msgstr ""
 msgid "Open"
 msgstr ""
 
-#: front/src/App.vue:62
-msgid "Options"
+#: front/src/views/admin/moderation/AccountsDetail.vue:23
+msgid "Open profile"
+msgstr ""
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:16
+msgid "Open website"
+msgstr ""
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:40
+msgid "Or customize your rule"
+msgstr ""
+
+#: front/src/components/favorites/List.vue:31 src/components/library/Radios.vue:41
+#: front/src/components/manage/library/FilesTable.vue:17
+#: front/src/components/manage/users/UsersTable.vue:17
+#: front/src/views/playlists/List.vue:25
+msgid "Order"
 msgstr ""
 
 #: front/src/components/favorites/List.vue:23 src/components/library/Artists.vue:15
 #: front/src/components/library/Radios.vue:33
 #: front/src/components/manage/library/FilesTable.vue:9
+#: front/src/components/manage/moderation/AccountsTable.vue:11
+#: front/src/components/manage/moderation/DomainsTable.vue:9
 #: front/src/components/manage/users/InvitationsTable.vue:9
 #: front/src/components/manage/users/UsersTable.vue:9
 #: front/src/views/content/libraries/FilesTable.vue:21
@@ -1108,12 +1645,10 @@ msgstr ""
 msgid "Ordering"
 msgstr ""
 
-#: front/src/components/favorites/List.vue:31 src/components/library/Artists.vue:23
-#: front/src/components/library/Radios.vue:41
-#: front/src/components/manage/library/FilesTable.vue:17
-#: front/src/components/manage/users/UsersTable.vue:17
+#: front/src/components/library/Artists.vue:23
+#: front/src/components/manage/moderation/AccountsTable.vue:19
+#: front/src/components/manage/moderation/DomainsTable.vue:17
 #: front/src/views/content/libraries/FilesTable.vue:29
-#: front/src/views/playlists/List.vue:25
 msgid "Ordering direction"
 msgstr ""
 
@@ -1121,21 +1656,45 @@ msgstr ""
 msgid "Owner"
 msgstr ""
 
+#: front/src/components/PageNotFound.vue:33
+msgid "Page Not Found"
+msgstr ""
+
 #: front/src/components/PageNotFound.vue:7
 msgid "Page not found!"
 msgstr ""
 
+#: front/src/components/Pagination.vue:39
+msgid "Pagination"
+msgstr ""
+
 #: front/src/components/auth/Login.vue:32 src/components/auth/Signup.vue:38
 msgid "Password"
 msgstr ""
 
+#: front/src/components/auth/SubsonicTokenForm.vue:95
+msgid "Password updated"
+msgstr ""
+
 #: front/src/views/auth/PasswordResetConfirm.vue:28
 msgid "Password updated successfully"
 msgstr ""
 
-#: front/src/components/library/FileUpload.vue:105
+#: front/src/components/audio/Player.vue:349
+msgid "Pause track"
+msgstr ""
+
+#: front/src/components/ShortcutsModal.vue:59
+msgid "Pause/play the current track"
+msgstr ""
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:12
+msgid "Paused"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:106
 #: front/src/views/content/libraries/FilesTable.vue:14
-#: front/src/views/content/libraries/FilesTable.vue:233
+#: front/src/views/content/libraries/FilesTable.vue:208
 msgid "Pending"
 msgstr ""
 
@@ -1147,22 +1706,22 @@ msgstr ""
 msgid "Pending files"
 msgstr ""
 
-#: front/src/components/requests/Form.vue:26
-msgid "Pending requests"
+#: front/src/components/Sidebar.vue:212
+msgid "Pending follow requests"
 msgstr ""
 
 #: front/src/components/manage/users/UsersTable.vue:42
-#: front/src/views/admin/users/UsersDetail.vue:68
+#: front/src/views/admin/moderation/AccountsDetail.vue:137
 msgid "Permissions"
 msgstr ""
 
-#: front/src/components/audio/PlayButton.vue:9 src/components/library/Track.vue:30
+#: front/src/components/audio/PlayButton.vue:9 src/components/library/Track.vue:40
 msgid "Play"
 msgstr ""
 
 #: front/src/components/audio/album/Card.vue:50
 #: front/src/components/audio/artist/Card.vue:44 src/components/library/Album.vue:28
-#: front/src/views/playlists/Detail.vue:23
+#: front/src/components/library/Album.vue:73 src/views/playlists/Detail.vue:23
 msgid "Play all"
 msgstr ""
 
@@ -1171,13 +1730,36 @@ msgid "Play all albums"
 msgstr ""
 
 #: front/src/components/audio/PlayButton.vue:15
+#: front/src/components/audio/PlayButton.vue:65
 msgid "Play next"
 msgstr ""
 
+#: front/src/components/ShortcutsModal.vue:67
+msgid "Play next track"
+msgstr ""
+
 #: front/src/components/audio/PlayButton.vue:16
+#: front/src/components/audio/PlayButton.vue:63
+#: front/src/components/audio/PlayButton.vue:70
 msgid "Play now"
 msgstr ""
 
+#: front/src/components/ShortcutsModal.vue:63
+msgid "Play previous track"
+msgstr ""
+
+#: front/src/components/Sidebar.vue:211
+msgid "Play this track"
+msgstr ""
+
+#: front/src/components/audio/Player.vue:348
+msgid "Play track"
+msgstr ""
+
+#: front/src/views/playlists/Detail.vue:90
+msgid "Playlist"
+msgstr ""
+
 #: front/src/views/playlists/Detail.vue:12
 msgid "Playlist containing %{ count } track, by %{ username }"
 msgid_plural "Playlist containing %{ count } tracks, by %{ username }"
@@ -1205,8 +1787,8 @@ msgid "Playlist visibility"
 msgstr ""
 
 #: front/src/components/Sidebar.vue:71 src/components/library/Home.vue:16
-#: front/src/components/library/Library.vue:13 src/views/playlists/List.vue:104
-#: front/src/views/admin/Settings.vue:82
+#: front/src/components/library/Library.vue:13 src/views/admin/Settings.vue:83
+#: front/src/views/playlists/List.vue:106
 msgid "Playlists"
 msgstr ""
 
@@ -1226,6 +1808,22 @@ msgstr ""
 msgid "PNG, GIF or JPG. At most 2MB. Will be downscaled to 400x400px."
 msgstr ""
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:118
+msgid "Prevent account or domain from triggering notifications, except from followers."
+msgstr ""
+
+#: front/src/components/audio/EmbedWizard.vue:29
+msgid "Preview"
+msgstr ""
+
+#: front/src/components/audio/Player.vue:347
+msgid "Previous track"
+msgstr ""
+
+#: front/src/views/content/remote/Card.vue:39
+msgid "Problem during scanning"
+msgstr ""
+
 #: front/src/components/library/FileUpload.vue:58
 msgid "Proceed"
 msgstr ""
@@ -1239,6 +1837,8 @@ msgstr ""
 msgid "Processing"
 msgstr ""
 
+#: front/src/components/manage/moderation/AccountsTable.vue:188
+#: front/src/components/manage/moderation/DomainsTable.vue:168
 #: front/src/views/content/libraries/Quota.vue:36
 #: front/src/views/content/libraries/Quota.vue:39
 #: front/src/views/content/libraries/Quota.vue:62
@@ -1264,6 +1864,18 @@ msgstr ""
 msgid "Queue"
 msgstr ""
 
+#: front/src/components/audio/Player.vue:282
+msgid "Queue shuffled!"
+msgstr ""
+
+#: front/src/views/radios/Detail.vue:80
+msgid "Radio"
+msgstr ""
+
+#: front/src/components/library/radios/Builder.vue:233
+msgid "Radio Builder"
+msgstr ""
+
 #: front/src/components/library/radios/Builder.vue:15
 msgid "Radio created"
 msgstr ""
@@ -1276,12 +1888,24 @@ msgstr ""
 msgid "Radio updated"
 msgstr ""
 
-#: front/src/components/library/Library.vue:10 src/components/library/Radios.vue:142
+#: front/src/components/library/Library.vue:10 src/components/library/Radios.vue:141
 msgid "Radios"
 msgstr ""
 
-#: front/src/views/instance/Timeline.vue:7
-msgid "Recent activity on this instance"
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:39
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:25
+msgid "Reason"
+msgstr ""
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:222
+#: front/src/views/admin/moderation/DomainsDetail.vue:179
+msgid "Received library follows"
+msgstr ""
+
+#: front/src/components/manage/moderation/DomainsTable.vue:40
+#: front/src/components/mixins/Translations.vue:36
+#: front/src/components/mixins/Translations.vue:37
+msgid "Received messages"
 msgstr ""
 
 #: front/src/components/library/Home.vue:24
@@ -1296,11 +1920,18 @@ msgstr ""
 msgid "Recently listened"
 msgstr ""
 
-#: front/src/views/admin/users/UsersDetail.vue:103
 #: front/src/views/content/remote/Home.vue:15
 msgid "Refresh"
 msgstr ""
 
+#: front/src/views/admin/moderation/DomainsDetail.vue:135
+msgid "Refresh node info"
+msgstr ""
+
+#: front/src/components/common/ActionTable.vue:272
+msgid "Refresh table content"
+msgstr ""
+
 #: front/src/components/auth/Profile.vue:12
 msgid "Registered since %{ date }"
 msgstr ""
@@ -1317,10 +1948,19 @@ msgstr ""
 msgid "Reject"
 msgstr ""
 
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:32
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:123
+msgid "Reject media"
+msgstr ""
+
 #: front/src/views/content/libraries/Detail.vue:43
 msgid "Rejected"
 msgstr ""
 
+#: front/src/views/content/libraries/FilesTable.vue:234
+msgid "Relaunch import"
+msgstr ""
+
 #: front/src/views/content/remote/Home.vue:6
 msgid "Remote libraries"
 msgstr ""
@@ -1337,6 +1977,22 @@ msgstr ""
 msgid "Remove avatar"
 msgstr ""
 
+#: front/src/components/favorites/TrackFavoriteIcon.vue:26
+msgid "Remove from favorites"
+msgstr ""
+
+#: front/src/views/content/libraries/Quota.vue:38
+msgid "Removes uploaded but yet to be processed tracks completely, adding the corresponding data to your quota."
+msgstr ""
+
+#: front/src/views/content/libraries/Quota.vue:64
+msgid "Removes uploaded tracks skipped during the import processes completely, adding the corresponding data to your quota."
+msgstr ""
+
+#: front/src/views/content/libraries/Quota.vue:90
+msgid "Removes uploaded tracks that could not be processed by the server completely, adding the corresponding data to your quota."
+msgstr ""
+
 #: front/src/components/auth/SubsonicTokenForm.vue:34
 #: front/src/components/auth/SubsonicTokenForm.vue:37
 msgid "Request a new password"
@@ -1350,11 +2006,8 @@ msgstr ""
 msgid "Request a password"
 msgstr ""
 
-#: front/src/components/requests/Form.vue:20
-msgid "Request submitted!"
-msgstr ""
-
 #: front/src/components/auth/Login.vue:34 src/views/auth/PasswordReset.vue:4
+#: front/src/views/auth/PasswordReset.vue:52
 msgid "Reset your password"
 msgstr ""
 
@@ -1363,17 +2016,37 @@ msgstr ""
 msgid "Results per page"
 msgstr ""
 
+#: front/src/views/auth/EmailConfirm.vue:17
+msgid "Return to login"
+msgstr ""
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:16
+msgid "Rule"
+msgstr ""
+
 #: front/src/components/admin/SettingsGroup.vue:63
 #: front/src/components/library/radios/Builder.vue:33
 msgid "Save"
 msgstr ""
 
-#: front/src/views/content/remote/Card.vue:31
-msgid "Scan pending"
+#: front/src/views/content/remote/Card.vue:165
+msgid "Scan launched"
 msgstr ""
 
-#: front/src/views/content/remote/Card.vue:43
-msgid "Scanned successfully"
+#: front/src/views/content/remote/Card.vue:63
+msgid "Scan now"
+msgstr ""
+
+#: front/src/views/content/remote/Card.vue:166
+msgid "Scan skipped (previous scan is too recent)"
+msgstr ""
+
+#: front/src/views/content/remote/Card.vue:31
+msgid "Scan waiting"
+msgstr ""
+
+#: front/src/views/content/remote/Card.vue:43
+msgid "Scanned"
 msgstr ""
 
 #: front/src/views/content/remote/Card.vue:47
@@ -1381,11 +2054,13 @@ msgid "Scanned with errors"
 msgstr ""
 
 #: front/src/views/content/remote/Card.vue:35
-msgid "Scanning... (%{ progress }%)"
+msgid "Scanning… (%{ progress }%)"
 msgstr ""
 
 #: front/src/components/library/Artists.vue:10 src/components/library/Radios.vue:29
 #: front/src/components/manage/library/FilesTable.vue:5
+#: front/src/components/manage/moderation/AccountsTable.vue:5
+#: front/src/components/manage/moderation/DomainsTable.vue:5
 #: front/src/components/manage/users/InvitationsTable.vue:5
 #: front/src/components/manage/users/UsersTable.vue:5
 #: front/src/views/content/libraries/FilesTable.vue:5 src/views/playlists/List.vue:13
@@ -1396,19 +2071,53 @@ msgstr ""
 msgid "Search a remote library"
 msgstr ""
 
+#: front/src/components/manage/moderation/AccountsTable.vue:171
+msgid "Search by domain, username, bio..."
+msgstr ""
+
+#: front/src/components/manage/moderation/DomainsTable.vue:151
+msgid "Search by name..."
+msgstr ""
+
+#: front/src/views/content/libraries/FilesTable.vue:201
+msgid "Search by title, artist, album…"
+msgstr ""
+
+#: front/src/components/manage/library/FilesTable.vue:176
+msgid "Search by title, artist, domain…"
+msgstr ""
+
+#: front/src/components/manage/users/InvitationsTable.vue:153
+msgid "Search by username, e-mail address, code…"
+msgstr ""
+
+#: front/src/components/manage/users/UsersTable.vue:163
+msgid "Search by username, e-mail address, name…"
+msgstr ""
+
+#: front/src/components/audio/SearchBar.vue:20
+msgid "Search for artists, albums, tracks…"
+msgstr ""
+
 #: front/src/components/audio/Search.vue:2
 msgid "Search for some music"
 msgstr ""
 
-#: front/src/components/library/Track.vue:116
+#: front/src/components/library/Track.vue:162
 msgid "Search on lyrics.wikia.com"
 msgstr ""
 
 #: front/src/components/library/Album.vue:33 src/components/library/Artist.vue:31
-#: front/src/components/library/Track.vue:40
+#: front/src/components/library/Track.vue:47
 msgid "Search on Wikipedia"
 msgstr ""
 
+#: front/src/components/library/Library.vue:32 src/views/admin/library/Base.vue:17
+#: front/src/views/admin/moderation/Base.vue:22 src/views/admin/users/Base.vue:21
+#: front/src/views/content/Base.vue:19
+msgid "Secondary menu"
+msgstr ""
+
 #: front/src/views/admin/Settings.vue:15
 msgid "Sections"
 msgstr ""
@@ -1417,19 +2126,19 @@ msgstr ""
 msgid "Select a filter"
 msgstr ""
 
-#: front/src/components/common/ActionTable.vue:64
+#: front/src/components/common/ActionTable.vue:77
 msgid "Select all %{ total } elements"
 msgid_plural "Select all %{ total } elements"
 msgstr[0] ""
 msgstr[1] ""
 
-#: front/src/components/common/ActionTable.vue:73
+#: front/src/components/common/ActionTable.vue:86
 msgid "Select only current page"
 msgstr ""
 
-#: front/src/components/Sidebar.vue:43 src/components/Sidebar.vue:88
-#: front/src/components/manage/users/UsersTable.vue:185
-#: front/src/views/admin/users/UsersDetail.vue:189
+#: front/src/components/Sidebar.vue:43 src/components/Sidebar.vue:85
+#: front/src/components/manage/users/UsersTable.vue:181
+#: front/src/views/admin/moderation/AccountsDetail.vue:472
 msgid "Settings"
 msgstr ""
 
@@ -1446,7 +2155,7 @@ msgid "Share link"
 msgstr ""
 
 #: front/src/views/content/libraries/Detail.vue:15
-msgid "Share this link with other users so they can request an access to your library."
+msgid "Share this link with other users so they can request access to your library."
 msgstr ""
 
 #: front/src/views/content/libraries/Detail.vue:14
@@ -1466,31 +2175,70 @@ msgid_plural "Show %{ count } more albums"
 msgstr[0] ""
 msgstr[1] ""
 
+#: front/src/components/ShortcutsModal.vue:42
+msgid "Show available keyboard shortcuts"
+msgstr ""
+
 #: front/src/views/Notifications.vue:10
 msgid "Show read notifications"
 msgstr ""
 
+#: front/src/components/forms/PasswordInput.vue:25
+msgid "Show/hide password"
+msgstr ""
+
 #: front/src/components/manage/library/FilesTable.vue:97
+#: front/src/components/manage/moderation/AccountsTable.vue:88
+#: front/src/components/manage/moderation/DomainsTable.vue:74
 #: front/src/components/manage/users/InvitationsTable.vue:76
 #: front/src/components/manage/users/UsersTable.vue:87
-#: front/src/views/content/libraries/FilesTable.vue:111
+#: front/src/views/content/libraries/FilesTable.vue:114
 msgid "Showing results %{ start }-%{ end } on %{ total }"
 msgstr ""
 
+#: front/src/components/ShortcutsModal.vue:83
+msgid "Shuffle queue"
+msgstr ""
+
+#: front/src/components/audio/Player.vue:362
+msgid "Shuffle your queue"
+msgstr ""
+
+#: front/src/components/auth/Signup.vue:95
+msgid "Sign Up"
+msgstr ""
+
 #: front/src/components/manage/users/UsersTable.vue:40
-#: front/src/views/admin/users/UsersDetail.vue:37
 msgid "Sign-up"
 msgstr ""
 
-#: front/src/components/library/FileUpload.vue:84 src/components/library/Track.vue:69
+#: front/src/components/mixins/Translations.vue:31
+#: front/src/views/admin/moderation/AccountsDetail.vue:176
+#: front/src/components/mixins/Translations.vue:32
+msgid "Sign-up date"
+msgstr ""
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:24
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:115
+msgid "Silence activity"
+msgstr ""
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:28
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:119
+msgid "Silence notifications"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:85
+#: front/src/components/library/Track.vue:120
 #: front/src/components/manage/library/FilesTable.vue:44
-#: front/src/views/content/libraries/FilesTable.vue:57
-#: front/src/components/mixins/Translations.vue:27
+#: front/src/components/mixins/Translations.vue:28
+#: front/src/views/content/libraries/FilesTable.vue:60
+#: front/src/components/mixins/Translations.vue:29
 msgid "Size"
 msgstr ""
 
 #: front/src/views/content/libraries/FilesTable.vue:15
-#: front/src/views/content/libraries/FilesTable.vue:229
+#: front/src/views/content/libraries/FilesTable.vue:204
 msgid "Skipped"
 msgstr ""
 
@@ -1498,26 +2246,14 @@ msgstr ""
 msgid "Skipped files"
 msgstr ""
 
-#: front/src/components/requests/Form.vue:3
-msgid "Something's missing in the library? Let us know what you would like to listen!"
-msgstr ""
-
-#: front/src/components/audio/Search.vue:25
-msgid "Sorry, we did not found any album matching your query"
-msgstr ""
-
-#: front/src/components/audio/Search.vue:16
-msgid "Sorry, we did not found any artist matching your query"
+#: front/src/views/admin/moderation/DomainsDetail.vue:97
+msgid "Software"
 msgstr ""
 
-#: front/src/App.vue:40
+#: front/src/components/Footer.vue:49
 msgid "Source code"
 msgstr ""
 
-#: front/src/App.vue:39
-msgid "Source code (%{version})"
-msgstr ""
-
 #: front/src/components/auth/Profile.vue:23
 #: front/src/components/manage/users/UsersTable.vue:70
 msgid "Staff member"
@@ -1527,10 +2263,23 @@ msgstr ""
 msgid "Start"
 msgstr ""
 
-#: front/src/components/library/FileUpload.vue:85
+#: front/src/views/admin/Settings.vue:86
+msgid "Statistics"
+msgstr ""
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:454
+msgid "Statistics are computed from known activity and content on your instance, and do not reflect general activity for this account"
+msgstr ""
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:358
+msgid "Statistics are computed from known activity and content on your instance, and do not reflect general activity for this domain"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:86
 #: front/src/components/manage/users/InvitationsTable.vue:17
 #: front/src/components/manage/users/InvitationsTable.vue:39
 #: front/src/components/manage/users/UsersTable.vue:43
+#: front/src/views/admin/moderation/DomainsDetail.vue:123
 #: front/src/views/content/libraries/Detail.vue:28
 msgid "Status"
 msgstr ""
@@ -1539,23 +2288,23 @@ msgstr ""
 msgid "Stop"
 msgstr ""
 
-#: front/src/components/Sidebar.vue:150
+#: front/src/components/Sidebar.vue:161
 msgid "Stop radio"
 msgstr ""
 
-#: front/src/App.vue:11 src/components/requests/Form.vue:17
+#: front/src/App.vue:22
 msgid "Submit"
 msgstr ""
 
-#: front/src/components/requests/Form.vue:22
-msgid "Submit another request"
+#: front/src/views/admin/Settings.vue:85
+msgid "Subsonic"
 msgstr ""
 
 #: front/src/components/auth/SubsonicTokenForm.vue:2
 msgid "Subsonic API password"
 msgstr ""
 
-#: front/src/App.vue:13
+#: front/src/App.vue:26
 msgid "Suggested choices"
 msgstr ""
 
@@ -1563,8 +2312,16 @@ msgstr ""
 msgid "Summary"
 msgstr ""
 
+#: front/src/components/Footer.vue:39
+msgid "Support forum"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:78
+msgid "Supported extensions: %{ extensions }"
+msgstr ""
+
 #: front/src/components/playlists/Editor.vue:9
-msgid "Syncing changes to server..."
+msgid "Syncing changes to server…"
 msgstr ""
 
 #: front/src/components/common/CopyInput.vue:3
@@ -1575,18 +2332,22 @@ msgstr ""
 msgid "That's simple: we loved Grooveshark and we want to build something even better."
 msgstr ""
 
-#: front/src/App.vue:58
+#: front/src/components/Footer.vue:53
 msgid "The funkwhale logo was kindly designed and provided by Francis Gading."
 msgstr ""
 
 #: front/src/views/content/libraries/Form.vue:34
-msgid "The library and all its tracks will be deleted. This action is irreversible."
+msgid "The library and all its tracks will be deleted. This can not be undone."
 msgstr ""
 
 #: front/src/components/library/FileUpload.vue:39
 msgid "The music files you are uploading are tagged properly:"
 msgstr ""
 
+#: front/src/components/audio/Player.vue:67
+msgid "The next track will play automatically in a few seconds..."
+msgstr ""
+
 #: front/src/components/Home.vue:121
 msgid "The plaform is free and open-source, you can install it and modify it without worries"
 msgstr ""
@@ -1599,7 +2360,15 @@ msgstr ""
 msgid "The uploaded music files are in OGG, Flac or MP3 format"
 msgstr ""
 
-#: front/src/components/library/Album.vue:52
+#: front/src/views/content/Home.vue:4
+msgid "There are various ways to grab new content and make it available here."
+msgstr ""
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:66
+msgid "This action is irreversible."
+msgstr ""
+
+#: front/src/components/library/Album.vue:91
 msgid "This album is present in the following libraries:"
 msgstr ""
 
@@ -1607,23 +2376,44 @@ msgstr ""
 msgid "This artist is present in the following libraries:"
 msgstr ""
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:55
+#: front/src/views/admin/moderation/DomainsDetail.vue:48
+msgid "This domain is subject to specific moderation rules"
+msgstr ""
+
 #: front/src/views/content/Home.vue:9
-msgid "This instance offers up to %{quota} of storage space to every user."
+msgid "This instance offers up to %{quota} of storage space for every user."
 msgstr ""
 
 #: front/src/components/auth/Profile.vue:16
 msgid "This is you!"
 msgstr ""
 
-#: front/src/components/common/ActionTable.vue:38
-msgid "This may affect a lot of elements, please double check this is really what you want."
+#: front/src/views/content/libraries/Form.vue:71
+msgid "This library contains my personal music, I hope you like it."
+msgstr ""
+
+#: front/src/views/content/remote/Card.vue:131
+msgid "This library is private and your approval from its owner is needed to access its content"
+msgstr ""
+
+#: front/src/views/content/remote/Card.vue:132
+msgid "This library is public and you can access its content freely"
+msgstr ""
+
+#: front/src/components/common/ActionTable.vue:45
+msgid "This may affect a lot of elements or have irreversible consequences, please double check this is really what you want."
 msgstr ""
 
 #: front/src/components/library/FileUpload.vue:52
 msgid "This reference will be used to group imported files together."
 msgstr ""
 
-#: front/src/components/library/Track.vue:125
+#: front/src/components/audio/PlayButton.vue:73
+msgid "This track is not available in any library you have access to"
+msgstr ""
+
+#: front/src/components/library/Track.vue:171
 msgid "This track is present in the following libraries:"
 msgstr ""
 
@@ -1639,142 +2429,9 @@ msgstr ""
 msgid "This will completely disable access to the Subsonic API using from account."
 msgstr ""
 
-#: front/src/App.vue:162 src/components/About.vue:55 src/components/Home.vue:154
-#: front/src/components/PageNotFound.vue:33 src/components/Sidebar.vue:203
-#: front/src/components/Sidebar.vue:204 src/components/audio/PlayButton.vue:54
-#: front/src/components/audio/PlayButton.vue:55
-#: front/src/components/audio/PlayButton.vue:56
-#: front/src/components/audio/PlayButton.vue:61
-#: front/src/components/audio/PlayButton.vue:64
-#: front/src/components/audio/PlayButton.vue:158 src/components/audio/Player.vue:216
-#: front/src/components/audio/Player.vue:273 src/components/audio/Player.vue:274
-#: front/src/components/audio/Player.vue:275 src/components/audio/Player.vue:276
-#: front/src/components/audio/Player.vue:277 src/components/audio/Player.vue:278
-#: front/src/components/audio/Player.vue:279 src/components/audio/Player.vue:280
-#: front/src/components/audio/Player.vue:281 src/components/audio/Player.vue:282
-#: front/src/components/audio/Player.vue:283 src/components/audio/Search.vue:65
-#: front/src/components/audio/SearchBar.vue:20 src/components/audio/SearchBar.vue:25
-#: front/src/components/audio/SearchBar.vue:26 src/components/audio/SearchBar.vue:27
-#: front/src/components/auth/Login.vue:77 src/components/auth/Login.vue:78
-#: front/src/components/auth/Logout.vue:20 src/components/auth/Profile.vue:47
-#: front/src/components/auth/Settings.vue:249 src/components/auth/Signup.vue:95
-#: front/src/components/auth/Signup.vue:96 src/components/auth/Signup.vue:97
-#: front/src/components/auth/Signup.vue:98
-#: front/src/components/auth/SubsonicTokenForm.vue:95
-#: front/src/components/auth/SubsonicTokenForm.vue:111
-#: front/src/components/favorites/List.vue:110
-#: front/src/components/favorites/TrackFavoriteIcon.vue:19
-#: front/src/components/favorites/TrackFavoriteIcon.vue:21
-#: front/src/components/forms/PasswordInput.vue:25
-#: front/src/components/library/Album.vue:101 src/components/library/Artist.vue:129
-#: front/src/components/library/Artists.vue:119
-#: front/src/components/library/Artists.vue:120
-#: front/src/components/library/FileUpload.vue:238
-#: front/src/components/library/FileUpload.vue:239
-#: front/src/components/library/FileUpload.vue:240
-#: front/src/components/library/FileUpload.vue:241 src/components/library/Home.vue:65
-#: front/src/components/library/Radios.vue:141 src/components/library/Radios.vue:142
-#: front/src/components/library/Track.vue:195
-#: front/src/components/library/radios/Builder.vue:233
-#: front/src/components/library/radios/Builder.vue:235
-#: front/src/components/library/radios/Builder.vue:236
-#: front/src/components/manage/library/FilesTable.vue:176
-#: front/src/components/manage/library/FilesTable.vue:190
-#: front/src/components/manage/users/InvitationForm.vue:58
-#: front/src/components/manage/users/InvitationsTable.vue:153
-#: front/src/components/manage/users/InvitationsTable.vue:167
-#: front/src/components/manage/users/UsersTable.vue:163
-#: front/src/components/manage/users/UsersTable.vue:173
-#: front/src/components/manage/users/UsersTable.vue:177
-#: front/src/components/manage/users/UsersTable.vue:181
-#: front/src/components/manage/users/UsersTable.vue:185
-#: front/src/components/metadata/ArtistCard.vue:49
-#: front/src/components/metadata/ReleaseCard.vue:53
-#: front/src/components/metadata/Search.vue:114
-#: front/src/components/metadata/Search.vue:130
-#: front/src/components/metadata/Search.vue:134
-#: front/src/components/metadata/Search.vue:138
-#: front/src/components/mixins/Translations.vue:7
-#: front/src/components/mixins/Translations.vue:8
-#: front/src/components/mixins/Translations.vue:10
-#: front/src/components/mixins/Translations.vue:11
-#: front/src/components/mixins/Translations.vue:16
-#: front/src/components/mixins/Translations.vue:17
-#: front/src/components/mixins/Translations.vue:18
-#: front/src/components/mixins/Translations.vue:19
-#: front/src/components/mixins/Translations.vue:20
-#: front/src/components/mixins/Translations.vue:21
-#: front/src/components/mixins/Translations.vue:22
-#: front/src/components/mixins/Translations.vue:23
-#: front/src/components/mixins/Translations.vue:24
-#: front/src/components/mixins/Translations.vue:25
-#: front/src/components/mixins/Translations.vue:26
-#: front/src/components/mixins/Translations.vue:27
-#: front/src/components/mixins/Translations.vue:28
-#: front/src/components/mixins/Translations.vue:29
-#: front/src/components/mixins/Translations.vue:30
-#: front/src/components/mixins/Translations.vue:31
-#: front/src/components/notifications/NotificationRow.vue:39
-#: front/src/components/notifications/NotificationRow.vue:40
-#: front/src/components/notifications/NotificationRow.vue:44
-#: front/src/components/notifications/NotificationRow.vue:45
-#: front/src/components/notifications/NotificationRow.vue:62
-#: front/src/components/playlists/Editor.vue:163 src/components/playlists/Form.vue:74
-#: front/src/components/playlists/Form.vue:81 src/components/playlists/Form.vue:85
-#: front/src/components/playlists/Form.vue:89
-#: front/src/components/playlists/PlaylistModal.vue:116
-#: front/src/components/playlists/TrackPlaylistIcon.vue:32
-#: front/src/components/requests/Form.vue:73 src/components/requests/Form.vue:74
-#: front/src/components/requests/Form.vue:75 src/views/Notifications.vue:74
-#: front/src/views/admin/Settings.vue:75 src/views/admin/Settings.vue:80
-#: front/src/views/admin/Settings.vue:81 src/views/admin/Settings.vue:82
-#: front/src/views/admin/Settings.vue:83 src/views/admin/Settings.vue:84
-#: front/src/views/admin/Settings.vue:85 src/views/admin/Settings.vue:86
-#: front/src/views/admin/library/Base.vue:16 src/views/admin/library/FilesList.vue:21
-#: front/src/views/admin/users/Base.vue:20
-#: front/src/views/admin/users/InvitationsList.vue:24
-#: front/src/views/admin/users/UsersDetail.vue:169
-#: front/src/views/admin/users/UsersDetail.vue:170
-#: front/src/views/admin/users/UsersDetail.vue:177
-#: front/src/views/admin/users/UsersDetail.vue:181
-#: front/src/views/admin/users/UsersDetail.vue:185
-#: front/src/views/admin/users/UsersDetail.vue:189
-#: front/src/views/admin/users/UsersList.vue:21 src/views/auth/EmailConfirm.vue:51
-#: front/src/views/auth/PasswordReset.vue:52 src/views/auth/PasswordReset.vue:53
-#: front/src/views/auth/PasswordResetConfirm.vue:62 src/views/content/Base.vue:19
-#: front/src/views/content/Home.vue:35 src/views/content/libraries/Card.vue:58
-#: front/src/views/content/libraries/Card.vue:59
-#: front/src/views/content/libraries/Card.vue:60
-#: front/src/views/content/libraries/Card.vue:61
-#: front/src/views/content/libraries/DetailArea.vue:24
-#: front/src/views/content/libraries/FilesTable.vue:226
-#: front/src/views/content/libraries/FilesTable.vue:229
-#: front/src/views/content/libraries/FilesTable.vue:230
-#: front/src/views/content/libraries/FilesTable.vue:233
-#: front/src/views/content/libraries/FilesTable.vue:234
-#: front/src/views/content/libraries/FilesTable.vue:237
-#: front/src/views/content/libraries/FilesTable.vue:238
-#: front/src/views/content/libraries/FilesTable.vue:241
-#: front/src/views/content/libraries/FilesTable.vue:242
-#: front/src/views/content/libraries/FilesTable.vue:258
-#: front/src/views/content/libraries/FilesTable.vue:259
-#: front/src/views/content/libraries/Form.vue:70
-#: front/src/views/content/libraries/Form.vue:71
-#: front/src/views/content/libraries/Form.vue:72
-#: front/src/views/content/libraries/Form.vue:73
-#: front/src/views/content/libraries/Form.vue:74
-#: front/src/views/content/libraries/Form.vue:106
-#: front/src/views/content/libraries/Form.vue:109
-#: front/src/views/content/libraries/Form.vue:129
-#: front/src/views/content/remote/Card.vue:131 src/views/content/remote/Card.vue:132
-#: front/src/views/content/remote/Card.vue:165 src/views/content/remote/Card.vue:166
-#: front/src/views/content/remote/ScanForm.vue:48 src/views/instance/Timeline.vue:57
-#: front/src/views/playlists/Detail.vue:90 src/views/playlists/List.vue:104
-#: front/src/views/playlists/List.vue:105 src/views/radios/Detail.vue:80
+#: front/src/App.vue:129 src/components/Footer.vue:72
 msgid "This will erase your local data and disconnect you, do you want to continue?"
-msgid_plural "%{ count } tracks were added to your queue"
-msgstr[0] ""
-msgstr[1] ""
+msgstr ""
 
 #: front/src/components/auth/SubsonicTokenForm.vue:36
 msgid "This will log you out from existing devices that use the current password."
@@ -1784,26 +2441,41 @@ msgstr ""
 msgid "This will remove all tracks from this playlist and cannot be undone."
 msgstr ""
 
-#: front/src/views/content/libraries/Quota.vue:90
-msgid "This will remove tracks that were uploaded but failed to be process by the server. This will remove those files completely and you will regain the corresponding quota."
+#: front/src/components/audio/track/Table.vue:6
+#: front/src/components/manage/library/FilesTable.vue:37
+#: front/src/components/mixins/Translations.vue:27
+#: front/src/views/content/libraries/FilesTable.vue:54
+#: front/src/components/mixins/Translations.vue:28
+msgid "Title"
 msgstr ""
 
-#: front/src/views/content/libraries/Quota.vue:38
-msgid "This will remove tracks that were uploaded but not processed yet. This will remove those files completely and you will regain the corresponding quota."
+#: front/src/components/ShortcutsModal.vue:79
+msgid "Toggle queue looping"
 msgstr ""
 
-#: front/src/views/content/libraries/Quota.vue:64
-msgid "This will remove tracks that were uploaded but skipped during import processes for various reasons. This will remove those files completely and you will regain the corresponding quota."
+#: front/src/views/admin/moderation/AccountsDetail.vue:288
+#: front/src/views/admin/moderation/DomainsDetail.vue:225
+msgid "Total size"
 msgstr ""
 
-#: front/src/components/audio/track/Table.vue:6
-#: front/src/components/manage/library/FilesTable.vue:37
-#: front/src/views/content/libraries/FilesTable.vue:51
-#: front/src/components/mixins/Translations.vue:26
-msgid "Title"
+#: front/src/views/content/libraries/Card.vue:61
+msgid "Total size of the files in this library"
+msgstr ""
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:113
+msgid "Total users"
+msgstr ""
+
+#: front/src/components/audio/SearchBar.vue:27 src/components/library/Track.vue:262
+#: front/src/components/metadata/Search.vue:138
+msgid "Track"
+msgstr ""
+
+#: front/src/views/content/libraries/FilesTable.vue:205
+msgid "Track already present in one of your libraries"
 msgstr ""
 
-#: front/src/components/library/Track.vue:53
+#: front/src/components/library/Track.vue:85
 msgid "Track information"
 msgstr ""
 
@@ -1811,14 +2483,25 @@ msgstr ""
 msgid "Track matching filter"
 msgstr ""
 
+#: front/src/components/mixins/Translations.vue:23
+#: front/src/components/mixins/Translations.vue:24
+msgid "Track name"
+msgstr ""
+
+#: front/src/views/content/libraries/FilesTable.vue:209
+msgid "Track uploaded, but not processed by the server yet"
+msgstr ""
+
 #: front/src/components/instance/Stats.vue:54
 msgid "tracks"
 msgstr ""
 
-#: front/src/components/library/Album.vue:43
-#: front/src/components/playlists/PlaylistModal.vue:33 src/views/content/Base.vue:8
-#: front/src/views/content/libraries/Detail.vue:8 src/views/playlists/Detail.vue:50
-#: front/src/views/radios/Detail.vue:34
+#: front/src/components/library/Album.vue:81
+#: front/src/components/playlists/PlaylistModal.vue:33
+#: front/src/views/admin/moderation/AccountsDetail.vue:329
+#: front/src/views/admin/moderation/DomainsDetail.vue:265
+#: front/src/views/content/Base.vue:8 src/views/content/libraries/Detail.vue:8
+#: front/src/views/playlists/Detail.vue:50 src/views/radios/Detail.vue:34
 msgid "Tracks"
 msgstr ""
 
@@ -1834,11 +2517,17 @@ msgstr ""
 msgid "tracks listened"
 msgstr ""
 
-#: front/src/components/library/Track.vue:91
+#: front/src/components/library/Track.vue:138
 #: front/src/components/manage/library/FilesTable.vue:41
+#: front/src/views/admin/moderation/AccountsDetail.vue:151
 msgid "Type"
 msgstr ""
 
+#: front/src/components/manage/moderation/AccountsTable.vue:44
+#: front/src/components/manage/moderation/DomainsTable.vue:42
+msgid "Under moderation rule"
+msgstr ""
+
 #: front/src/views/content/remote/Card.vue:100 src/views/content/remote/Card.vue:105
 msgid "Unfollow"
 msgstr ""
@@ -1855,6 +2544,15 @@ msgstr ""
 msgid "Unlimited music"
 msgstr ""
 
+#: front/src/components/audio/Player.vue:351
+msgid "Unmute"
+msgstr ""
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:45
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:57
+msgid "Update"
+msgstr ""
+
 #: front/src/components/auth/Settings.vue:50
 msgid "Update avatar"
 msgstr ""
@@ -1863,6 +2561,10 @@ msgstr ""
 msgid "Update library"
 msgstr ""
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:3
+msgid "Update moderation rule"
+msgstr ""
+
 #: front/src/components/playlists/Form.vue:33
 msgid "Update playlist"
 msgstr ""
@@ -1876,9 +2578,7 @@ msgid "Update your password"
 msgstr ""
 
 #: front/src/views/content/libraries/Card.vue:44
-#: front/src/components/manage/users/UsersTable.vue:173
 #: front/src/views/content/libraries/DetailArea.vue:24
-#: front/src/views/admin/users/UsersDetail.vue:177
 msgid "Upload"
 msgstr ""
 
@@ -1890,23 +2590,32 @@ msgstr ""
 msgid "Upload audio content"
 msgstr ""
 
-#: front/src/views/content/libraries/FilesTable.vue:54
+#: front/src/views/content/libraries/FilesTable.vue:57
 msgid "Upload date"
 msgstr ""
 
+#: front/src/components/library/FileUpload.vue:219
+#: front/src/components/library/FileUpload.vue:220
+msgid "Upload denied, ensure the file is not too big and that you have not reached your quota"
+msgstr ""
+
 #: front/src/views/content/Home.vue:7
-msgid "Upload music files (mp3, ogg, flac, etc.) from your personal library directly from your browser to enjoy them here."
+msgid "Upload music files (MP3, OGG, FLAC, etc.) from your personal library directly from your browser to enjoy them here."
 msgstr ""
 
 #: front/src/components/library/FileUpload.vue:31
 msgid "Upload new tracks"
 msgstr ""
 
-#: front/src/views/admin/users/UsersDetail.vue:82
+#: front/src/views/admin/moderation/AccountsDetail.vue:269
 msgid "Upload quota"
 msgstr ""
 
-#: front/src/components/library/FileUpload.vue:99
+#: front/src/components/library/FileUpload.vue:228
+msgid "Upload timeout, please try again"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:100
 msgid "Uploaded"
 msgstr ""
 
@@ -1914,11 +2623,19 @@ msgstr ""
 msgid "Uploading"
 msgstr ""
 
-#: front/src/components/library/FileUpload.vue:102
-msgid "Uploading..."
+#: front/src/components/library/FileUpload.vue:103
+msgid "Uploading…"
+msgstr ""
+
+#: front/src/components/manage/moderation/AccountsTable.vue:41
+#: front/src/components/mixins/Translations.vue:37
+#: front/src/views/admin/moderation/AccountsDetail.vue:305
+#: front/src/views/admin/moderation/DomainsDetail.vue:241
+#: front/src/components/mixins/Translations.vue:38
+msgid "Uploads"
 msgstr ""
 
-#: front/src/App.vue:44
+#: front/src/components/Footer.vue:16
 msgid "Use another instance"
 msgstr ""
 
@@ -1926,6 +2643,10 @@ msgstr ""
 msgid "Use this form to request a password reset. We will send an email to the given address with instructions to reset your password."
 msgstr ""
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:111
+msgid "Use this setting to temporarily enable/disable the policy without completely removing it."
+msgstr ""
+
 #: front/src/components/manage/users/InvitationsTable.vue:49
 msgid "Used"
 msgstr ""
@@ -1938,8 +2659,8 @@ msgstr ""
 msgid "User activity"
 msgstr ""
 
-#: front/src/components/library/Album.vue:49 src/components/library/Artist.vue:60
-#: front/src/components/library/Track.vue:122
+#: front/src/components/library/Album.vue:88 src/components/library/Artist.vue:60
+#: front/src/components/library/Track.vue:168
 msgid "User libraries"
 msgstr ""
 
@@ -1949,7 +2670,9 @@ msgstr ""
 
 #: front/src/components/auth/Signup.vue:19
 #: front/src/components/manage/users/UsersTable.vue:37
-#: front/src/components/mixins/Translations.vue:32
+#: front/src/components/mixins/Translations.vue:33
+#: front/src/views/admin/moderation/AccountsDetail.vue:85
+#: front/src/components/mixins/Translations.vue:34
 msgid "Username"
 msgstr ""
 
@@ -1961,12 +2684,23 @@ msgstr ""
 msgid "users"
 msgstr ""
 
-#: front/src/components/Sidebar.vue:94 src/views/admin/users/Base.vue:5
-#: front/src/views/admin/users/UsersList.vue:3 src/views/admin/users/UsersList.vue:21
-#: front/src/views/admin/Settings.vue:81
+#: front/src/components/Sidebar.vue:91
+#: front/src/components/manage/moderation/DomainsTable.vue:39
+#: front/src/components/mixins/Translations.vue:35 src/views/admin/Settings.vue:81
+#: front/src/views/admin/users/Base.vue:5 src/views/admin/users/UsersList.vue:3
+#: front/src/views/admin/users/UsersList.vue:21
+#: front/src/components/mixins/Translations.vue:36
 msgid "Users"
 msgstr ""
 
+#: front/src/components/Footer.vue:29
+msgid "Using Funkwhale"
+msgstr ""
+
+#: front/src/components/Footer.vue:13
+msgid "Version %{version}"
+msgstr ""
+
 #: front/src/views/content/libraries/Quota.vue:29
 #: front/src/views/content/libraries/Quota.vue:56
 #: front/src/views/content/libraries/Quota.vue:82
@@ -1974,9 +2708,9 @@ msgid "View files"
 msgstr ""
 
 #: front/src/components/library/Album.vue:37 src/components/library/Artist.vue:35
-#: front/src/components/library/Track.vue:44
-#: front/src/components/metadata/ReleaseCard.vue:53
+#: front/src/components/library/Track.vue:51
 #: front/src/components/metadata/ArtistCard.vue:49
+#: front/src/components/metadata/ReleaseCard.vue:53
 msgid "View on MusicBrainz"
 msgstr ""
 
@@ -1984,6 +2718,22 @@ msgstr ""
 msgid "Visibility"
 msgstr ""
 
+#: front/src/views/content/libraries/Card.vue:59
+msgid "Visibility: everyone on this instance"
+msgstr ""
+
+#: front/src/views/content/libraries/Card.vue:60
+msgid "Visibility: everyone, including other instances"
+msgstr ""
+
+#: front/src/views/content/libraries/Card.vue:58
+msgid "Visibility: nobody except me"
+msgstr ""
+
+#: front/src/components/library/Album.vue:67
+msgid "Volume %{ number }"
+msgstr ""
+
 #: front/src/components/playlists/PlaylistModal.vue:20
 msgid "We cannot add the track to a playlist"
 msgstr ""
@@ -1996,6 +2746,10 @@ msgstr ""
 msgid "We cannot create your account"
 msgstr ""
 
+#: front/src/components/audio/Player.vue:64
+msgid "We cannot load this track"
+msgstr ""
+
 #: front/src/components/auth/Login.vue:7
 msgid "We cannot log you in"
 msgstr ""
@@ -2012,16 +2766,16 @@ msgstr ""
 msgid "We do not track you or bother you with ads"
 msgstr ""
 
-#: front/src/views/Notifications.vue:26
-msgid "We don't have any notification to display!"
+#: front/src/components/library/Track.vue:95
+msgid "We don't have any copyright information for this track"
 msgstr ""
 
-#: front/src/views/content/Home.vue:4
-msgid "We offer various way to grab new content and make it available here."
+#: front/src/components/library/Track.vue:106
+msgid "We don't have any licensing information for this track"
 msgstr ""
 
 #: front/src/components/library/FileUpload.vue:40
-msgid "we recommend using Picard for that purpose"
+msgid "We recommend using Picard for that purpose."
 msgstr ""
 
 #: front/src/components/Home.vue:7
@@ -2032,8 +2786,8 @@ msgstr ""
 msgid "We're sorry, the page you asked for does not exist:"
 msgstr ""
 
-#: front/src/components/requests/Form.vue:21
-msgid "We've received your request, you'll get some groove soon ;)"
+#: front/src/components/Home.vue:153
+msgid "Welcome"
 msgstr ""
 
 #: front/src/components/Home.vue:5
@@ -2044,7 +2798,17 @@ msgstr ""
 msgid "Why funkwhale?"
 msgstr ""
 
-#: front/src/components/Sidebar.vue:115
+#: front/src/components/audio/EmbedWizard.vue:13
+msgid "Widget height"
+msgstr ""
+
+#: front/src/components/audio/EmbedWizard.vue:6
+msgid "Widget width"
+msgstr ""
+
+#: front/src/components/Sidebar.vue:118
+#: front/src/components/manage/moderation/AccountsTable.vue:72
+#: front/src/components/manage/moderation/DomainsTable.vue:58
 msgid "Yes"
 msgstr ""
 
@@ -2052,6 +2816,10 @@ msgstr ""
 msgid "Yes, log me out!"
 msgstr ""
 
+#: front/src/views/content/libraries/Form.vue:19
+msgid "You are able to share your library with other people, regardless of its visibility."
+msgstr ""
+
 #: front/src/components/library/FileUpload.vue:33
 msgid "You are about to upload music to your library. Before proceeding, please ensure that:"
 msgstr ""
@@ -2068,7 +2836,11 @@ msgstr ""
 msgid "You can invite friends and family to your instance so they can enjoy your music"
 msgstr ""
 
-#: front/src/components/library/radios/Builder.vue:7
+#: front/src/views/auth/EmailConfirm.vue:24
+msgid "You can now use the service without limitations."
+msgstr ""
+
+#: front/src/components/library/radios/Builder.vue:7
 msgid "You can use this interface to build your own custom radio, which will play tracks according to your criteria."
 msgstr ""
 
@@ -2076,16 +2848,24 @@ msgstr ""
 msgid "You can use those to enjoy your playlist and music in offline mode, on your smartphone or tablet, for instance."
 msgstr ""
 
-#: front/src/components/Sidebar.vue:147
+#: front/src/views/admin/moderation/AccountsDetail.vue:46
+msgid "You don't have any rule in place for this account."
+msgstr ""
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:39
+msgid "You don't have any rule in place for this domain."
+msgstr ""
+
+#: front/src/components/Sidebar.vue:158
 msgid "You have a radio playing"
 msgstr ""
 
-#: front/src/App.vue:8
-msgid "You need to select an instance in order to continue"
+#: front/src/components/audio/Player.vue:71
+msgid "You may have a connectivity issue."
 msgstr ""
 
-#: front/src/views/content/libraries/Form.vue:19
-msgid "You will be able to share your library with other people, regardless of it's visibility."
+#: front/src/App.vue:17
+msgid "You need to select an instance in order to continue"
 msgstr ""
 
 #: front/src/components/auth/Settings.vue:100
@@ -2096,8 +2876,8 @@ msgstr ""
 msgid "You will have to update your password on your clients that use this password."
 msgstr ""
 
-#: front/src/views/auth/EmailConfirm.vue:24
-msgid "Your email address was confirmed, you can now use the service without limitations."
+#: front/src/components/favorites/List.vue:112
+msgid "Your Favorites"
 msgstr ""
 
 #: front/src/components/Home.vue:114
@@ -2115,401 +2895,3 @@ msgstr ""
 #: front/src/components/auth/Settings.vue:101
 msgid "Your Subsonic password will be changed to a new, random one, logging you out from devices that used the old Subsonic password"
 msgstr ""
-
-#: front/src/components/mixins/Translations.vue:8
-msgid "Activity visibility"
-msgstr ""
-
-#: front/src/components/mixins/Translations.vue:9
-msgid "Determine the visibility level of your activity"
-msgstr ""
-
-#: front/src/components/mixins/Translations.vue:11
-#: front/src/components/playlists/Form.vue:81 src/views/content/libraries/Form.vue:72
-msgid "Nobody except me"
-msgstr ""
-
-#: front/src/components/mixins/Translations.vue:12
-#: front/src/components/playlists/Form.vue:85 src/views/content/libraries/Form.vue:73
-msgid "Everyone on this instance"
-msgstr ""
-
-#: front/src/components/mixins/Translations.vue:18
-msgid "Accessed date"
-msgstr ""
-
-#: front/src/components/mixins/Translations.vue:19
-msgid "Modification date"
-msgstr ""
-
-#: front/src/components/mixins/Translations.vue:20
-msgid "Imported date"
-msgstr ""
-
-#: front/src/components/mixins/Translations.vue:22
-msgid "Track name"
-msgstr ""
-
-#: front/src/components/mixins/Translations.vue:23
-msgid "Album name"
-msgstr ""
-
-#: front/src/components/mixins/Translations.vue:30
-msgid "Sign-up date"
-msgstr ""
-
-#: front/src/components/playlists/Editor.vue:163
-msgid "Copy tracks from current queue to playlist"
-msgstr ""
-
-#: front/src/components/playlists/PlaylistModal.vue:116
-msgid "Add to this playlist"
-msgstr ""
-
-#: front/src/components/playlists/Form.vue:74
-msgid "My awesome playlist"
-msgstr ""
-
-#: front/src/components/playlists/Form.vue:89
-msgid "Everyone"
-msgstr ""
-
-#: front/src/components/auth/Signup.vue:95
-msgid "Sign Up"
-msgstr ""
-
-#: front/src/components/auth/Signup.vue:96
-msgid "Enter your invitation code (case insensitive)"
-msgstr ""
-
-#: front/src/components/auth/Signup.vue:97
-msgid "Enter your username"
-msgstr ""
-
-#: front/src/components/auth/Signup.vue:98
-msgid "Enter your email"
-msgstr ""
-
-#: front/src/components/auth/SubsonicTokenForm.vue:95
-msgid "Password updated"
-msgstr ""
-
-#: front/src/components/auth/SubsonicTokenForm.vue:111
-msgid "Access disabled"
-msgstr ""
-
-#: front/src/components/auth/Login.vue:77
-msgid "Enter your username or email"
-msgstr ""
-
-#: front/src/components/auth/Login.vue:78
-msgid "Log In"
-msgstr ""
-
-#: front/src/components/auth/Profile.vue:47
-msgid "%{ username }'s profile"
-msgstr ""
-
-#: front/src/components/auth/Logout.vue:20
-msgid "Log Out"
-msgstr ""
-
-#: front/src/components/auth/Settings.vue:249
-msgid "Account Settings"
-msgstr ""
-
-#: front/src/components/favorites/TrackFavoriteIcon.vue:19
-msgid "Remove from favorites"
-msgstr ""
-
-#: front/src/components/favorites/List.vue:110
-msgid "Your Favorites"
-msgstr ""
-
-#: front/src/components/library/Radios.vue:141
-msgid "Enter a radio name..."
-msgstr ""
-
-#: front/src/components/library/radios/Builder.vue:233
-msgid "Radio Builder"
-msgstr ""
-
-#: front/src/components/library/radios/Builder.vue:235
-msgid "My awesome radio"
-msgstr ""
-
-#: front/src/components/library/radios/Builder.vue:236
-msgid "My awesome description"
-msgstr ""
-
-#: front/src/components/library/FileUpload.vue:238
-msgid "Upload refused, ensure the file is not too big and you have not reached your quota"
-msgstr ""
-
-#: front/src/components/library/FileUpload.vue:239
-msgid "Impossible to upload this file, ensure it is not too big"
-msgstr ""
-
-#: front/src/components/library/FileUpload.vue:240
-msgid "A network error occured while uploading this file"
-msgstr ""
-
-#: front/src/components/library/FileUpload.vue:241
-msgid "Upload timeout, please try again"
-msgstr ""
-
-#: front/src/components/library/Artists.vue:119
-msgid "Enter an artist name..."
-msgstr ""
-
-#: front/src/components/library/Track.vue:195 src/components/audio/SearchBar.vue:27
-#: front/src/components/metadata/Search.vue:138
-msgid "Track"
-msgstr ""
-
-#: front/src/components/library/Home.vue:65
-msgid "Home"
-msgstr ""
-
-#: front/src/components/forms/PasswordInput.vue:25
-msgid "Show/hide password"
-msgstr ""
-
-#: front/src/components/requests/Form.vue:73
-msgid "The Beatles, Mickael Jackson…"
-msgstr ""
-
-#: front/src/components/requests/Form.vue:74
-msgid "The White Album, Thriller…"
-msgstr ""
-
-#: front/src/components/requests/Form.vue:75
-msgid "Use this comment box to add details to your request if needed"
-msgstr ""
-
-#: front/src/components/audio/PlayButton.vue:158
-msgid "%{ count } track was added to your queue"
-msgid_plural "%{ count } tracks were added to your queue"
-msgstr[0] ""
-msgstr[1] ""
-
-#: front/src/components/audio/Search.vue:65
-msgid "Artist, album, track..."
-msgstr ""
-
-#: front/src/components/audio/SearchBar.vue:20
-msgid "Search for artists, albums, tracks..."
-msgstr ""
-
-#: front/src/components/audio/Player.vue:216
-msgid "Queue shuffled!"
-msgstr ""
-
-#: front/src/components/audio/Player.vue:273
-msgid "Previous track"
-msgstr ""
-
-#: front/src/components/audio/Player.vue:274
-msgid "Play track"
-msgstr ""
-
-#: front/src/components/audio/Player.vue:275
-msgid "Pause track"
-msgstr ""
-
-#: front/src/components/audio/Player.vue:276
-msgid "Next track"
-msgstr ""
-
-#: front/src/components/audio/Player.vue:277
-msgid "Unmute"
-msgstr ""
-
-#: front/src/components/audio/Player.vue:278
-msgid "Mute"
-msgstr ""
-
-#: front/src/components/audio/Player.vue:279
-msgid "Looping disabled. Click to switch to single-track looping."
-msgstr ""
-
-#: front/src/components/audio/Player.vue:280
-msgid "Looping on a single track. Click to switch to whole queue looping."
-msgstr ""
-
-#: front/src/components/audio/Player.vue:281
-msgid "Looping on whole queue. Click to disable looping."
-msgstr ""
-
-#: front/src/components/audio/Player.vue:282
-msgid "Shuffle your queue"
-msgstr ""
-
-#: front/src/components/audio/Player.vue:283
-msgid "Clear your queue"
-msgstr ""
-
-#: front/src/components/Sidebar.vue:203
-msgid "Pending import requests"
-msgstr ""
-
-#: front/src/components/Sidebar.vue:204
-msgid "Pending follow requests"
-msgstr ""
-
-#: front/src/components/metadata/Search.vue:114
-msgid "Enter your search query..."
-msgstr ""
-
-#: front/src/components/manage/library/FilesTable.vue:176
-msgid "Search by title, artist, domain..."
-msgstr ""
-
-#: front/src/components/manage/users/InvitationForm.vue:58
-msgid "Leave empty for a random code"
-msgstr ""
-
-#: front/src/components/manage/users/InvitationsTable.vue:153
-msgid "Search by username, email, code..."
-msgstr ""
-
-#: front/src/components/manage/users/UsersTable.vue:163
-msgid "Search by username, email, name..."
-msgstr ""
-
-#: front/src/components/manage/users/UsersTable.vue:181
-#: front/src/views/admin/users/UsersDetail.vue:185 src/views/admin/Settings.vue:83
-msgid "Federation"
-msgstr ""
-
-#: front/src/components/Home.vue:154
-msgid "Welcome"
-msgstr ""
-
-#: front/src/views/content/remote/ScanForm.vue:48
-msgid "Enter a library url"
-msgstr ""
-
-#: front/src/views/content/remote/Card.vue:165
-msgid "Scan launched"
-msgstr ""
-
-#: front/src/views/content/remote/Card.vue:166
-msgid "Scan skipped (previous scan is too recent)"
-msgstr ""
-
-#: front/src/views/content/libraries/FilesTable.vue:226
-msgid "Search by title, artist, album..."
-msgstr ""
-
-#: front/src/views/content/libraries/FilesTable.vue:230
-msgid "Track was already present in one of your libraries"
-msgstr ""
-
-#: front/src/views/content/libraries/FilesTable.vue:234
-msgid "Track is uploaded but not processed by the server yet"
-msgstr ""
-
-#: front/src/views/content/libraries/FilesTable.vue:238
-msgid "An error occured while processing this track, ensure the track is correctly tagged"
-msgstr ""
-
-#: front/src/views/content/libraries/FilesTable.vue:242
-msgid "Import went on successfully"
-msgstr ""
-
-#: front/src/views/content/libraries/FilesTable.vue:259
-msgid "Relaunch import"
-msgstr ""
-
-#: front/src/views/content/libraries/Card.vue:58
-msgid "Visibility: nobody except me"
-msgstr ""
-
-#: front/src/views/content/libraries/Card.vue:59
-msgid "Visibility: everyone on this instance"
-msgstr ""
-
-#: front/src/views/content/libraries/Card.vue:60
-msgid "Visibility: everyone, including other instances"
-msgstr ""
-
-#: front/src/views/content/libraries/Card.vue:61
-msgid "Total size of the files in this library"
-msgstr ""
-
-#: front/src/views/content/libraries/Form.vue:70
-msgid "My awesome library"
-msgstr ""
-
-#: front/src/views/content/libraries/Form.vue:71
-msgid "This library contains my personnal music, I hope you will like it!"
-msgstr ""
-
-#: front/src/views/content/libraries/Form.vue:74
-msgid "Everyone, including other instances"
-msgstr ""
-
-#: front/src/views/content/libraries/Form.vue:106
-msgid "Library updated"
-msgstr ""
-
-#: front/src/views/content/libraries/Form.vue:109
-msgid "Library created"
-msgstr ""
-
-#: front/src/views/content/Home.vue:35
-msgid "Add and manage content"
-msgstr ""
-
-#: front/src/views/radios/Detail.vue:80
-msgid "Radio"
-msgstr ""
-
-#: front/src/views/instance/Timeline.vue:57
-msgid "Instance Timeline"
-msgstr ""
-
-#: front/src/views/playlists/Detail.vue:90
-msgid "Playlist"
-msgstr ""
-
-#: front/src/views/playlists/List.vue:105
-msgid "Enter an playlist name..."
-msgstr ""
-
-#: front/src/views/admin/library/Base.vue:16
-msgid "Manage library"
-msgstr ""
-
-#: front/src/views/admin/users/UsersDetail.vue:169
-msgid "Determine if the user account is active or not. Inactive users cannot login or use the service."
-msgstr ""
-
-#: front/src/views/admin/users/UsersDetail.vue:170
-msgid "Determine how much content the user can upload. Leave empty to use the default value of the instance."
-msgstr ""
-
-#: front/src/views/admin/users/Base.vue:20
-msgid "Manage users"
-msgstr ""
-
-#: front/src/views/admin/Settings.vue:75
-msgid "Instance settings"
-msgstr ""
-
-#: front/src/views/admin/Settings.vue:80
-msgid "Instance information"
-msgstr ""
-
-#: front/src/views/admin/Settings.vue:84
-msgid "Subsonic"
-msgstr ""
-
-#: front/src/views/admin/Settings.vue:85
-msgid "Statistics"
-msgstr ""
-
-#: front/src/views/admin/Settings.vue:86
-msgid "Error reporting"
-msgstr ""
diff --git a/front/locales/ar/LC_MESSAGES/app.po b/front/locales/ar/LC_MESSAGES/app.po
index ee528497a8ec449da3556ae99f48e49bade33475..9cf735552565dbe16200bda164ca419c7d617b71 100644
--- a/front/locales/ar/LC_MESSAGES/app.po
+++ b/front/locales/ar/LC_MESSAGES/app.po
@@ -2,8 +2,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Arabic (FunkWhale)\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-10-05 20:10+0200\n"
-"PO-Revision-Date: 2018-10-06 19:26+0000\n"
+"POT-Creation-Date: 2019-01-11 15:55+0100\n"
+"PO-Revision-Date: 2019-01-17 08:33+0000\n"
 "Last-Translator: ButterflyOfFire <butterflyoffire+funkwhale@protonmail.com>\n"
 "Language-Team: Arabic <https://translate.funkwhale.audio/projects/funkwhale/"
 "funkwhale/front/ar/>\n"
@@ -13,7 +13,7 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
 "&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
-"X-Generator: Weblate 2.20\n"
+"X-Generator: Weblate 3.2.2\n"
 
 #: front/src/components/playlists/PlaylistModal.vue:9
 msgid "\"%{ title }\", by %{ artist }"
@@ -27,8 +27,8 @@ msgstr "(%{ index } مِن %{ length })"
 msgid "(empty)"
 msgstr "(فارغ)"
 
-#: front/src/components/common/ActionTable.vue:44
-#: front/src/components/common/ActionTable.vue:53
+#: front/src/components/common/ActionTable.vue:57
+#: front/src/components/common/ActionTable.vue:66
 msgid "%{ count } on %{ total } selected"
 msgid_plural "%{ count } on %{ total } selected"
 msgstr[0] ""
@@ -38,7 +38,7 @@ msgstr[3] ""
 msgstr[4] ""
 msgstr[5] ""
 
-#: front/src/components/Sidebar.vue:107 src/components/audio/album/Card.vue:54
+#: front/src/components/Sidebar.vue:110 src/components/audio/album/Card.vue:54
 #: front/src/views/content/libraries/Card.vue:39
 #: src/views/content/remote/Card.vue:26
 msgid "%{ count } track"
@@ -53,10 +53,10 @@ msgstr[5] "%{ count } مَقاطِع"
 #: front/src/components/library/Artist.vue:13
 msgid "%{ count } track in %{ albumsCount } albums"
 msgid_plural "%{ count } tracks in %{ albumsCount } albums"
-msgstr[0] ""
+msgstr[0] "%{ count } مقاطع في %{ albumsCount } ألبومات"
 msgstr[1] "%{ count } مَقطَع في %{ albumsCount } ألبومات"
 msgstr[2] "%{ count } مَقطَع في %{ albumsCount } ألبومات"
-msgstr[3] "%{ count } مَقطَع في %{ albumsCount } ألبوما"
+msgstr[3] "%{ count } مَقطَع في %{ albumsCount } ألبومات"
 msgstr[4] "%{ count } مَقاطِع في %{ albumsCount } ألبومات"
 msgstr[5] "%{ count } مَقاطِع في %{ albumsCount } ألبومات"
 
@@ -70,6 +70,16 @@ msgstr[3] ""
 msgstr[4] ""
 msgstr[5] ""
 
+#: front/src/components/audio/PlayButton.vue:180
+msgid "%{ count } track was added to your queue"
+msgid_plural "%{ count } tracks were added to your queue"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
+
 #: front/src/components/playlists/Card.vue:18
 msgid "%{ count} track"
 msgid_plural "%{ count } tracks"
@@ -92,13 +102,21 @@ msgstr "%{ hours } سا %{ minutes } د"
 msgid "%{ minutes } min"
 msgstr "%{ minutes } د"
 
-#: front/src/components/activity/Like.vue:7
-msgid "%{ user } favorited a track"
-msgstr "أُعجِب %{ user } بمقطع"
+#: front/src/components/notifications/NotificationRow.vue:40
+msgid "%{ username } accepted your follow on library \"%{ library }\""
+msgstr ""
+
+#: front/src/components/notifications/NotificationRow.vue:39
+msgid "%{ username } followed your library \"%{ library }\""
+msgstr ""
+
+#: front/src/components/auth/Profile.vue:46
+msgid "%{ username }'s profile"
+msgstr "الملف الشخصي لِـ %{ username }"
 
-#: front/src/components/activity/Listen.vue:7
-msgid "%{ user } listened to a track"
-msgstr "قام %{ user } بالاستماع إلى مَقطَع"
+#: front/src/components/Footer.vue:5
+msgid "<translate :translate-params=\"{instanceName: instanceHostname}\">About %{instanceName}</translate>"
+msgstr ""
 
 #: front/src/components/audio/artist/Card.vue:41
 msgid "1 album"
@@ -120,15 +138,28 @@ msgstr[3] "%{ count } مفضّلة"
 msgstr[4] "%{ count } مفضّلات"
 msgstr[5] "%{ count } مفضّلات"
 
+#: front/src/components/library/FileUpload.vue:225
+#: front/src/components/library/FileUpload.vue:226
+msgid "A network error occured while uploading this file"
+msgstr "حدث خطأ في الشبكة أثناء تحميل هذا الملف"
+
 #: front/src/components/About.vue:5
 msgid "About %{ instance }"
 msgstr "عن %{ instance }"
 
-#: front/src/App.vue:53
+#: front/src/components/Footer.vue:6
+msgid "About %{instanceName}"
+msgstr "عن %{instanceName}"
+
+#: front/src/components/Footer.vue:45
 msgid "About Funkwhale"
 msgstr "عن فانك وايل Funkwhale"
 
-#: front/src/App.vue:34 src/components/About.vue:8 src/components/About.vue:55
+#: front/src/components/Footer.vue:10
+msgid "About page"
+msgstr "صفحة الألبوم"
+
+#: front/src/components/About.vue:8 src/components/About.vue:64
 msgid "About this instance"
 msgstr "عن مثيل الخادوم هذا"
 
@@ -140,18 +171,31 @@ msgstr "تم قبوله"
 msgid "Accepted"
 msgstr "تم قبوله"
 
+#: front/src/components/auth/SubsonicTokenForm.vue:111
+msgid "Access disabled"
+msgstr "عُطّل النفاذ"
+
 #: front/src/components/Home.vue:106
 msgid "Access your music from a clean interface that focus on what really matters"
 msgstr "صِلوا إلى موسيقاكم عبر واجهة نظيفة التصميم تُركّز فعلًا على الأهمّ"
 
-#: front/src/views/admin/users/UsersDetail.vue:54
-msgid "Account active"
-msgstr "الحساب نشِط"
+#: front/src/components/mixins/Translations.vue:19
+#: front/src/components/mixins/Translations.vue:20
+msgid "Accessed date"
+msgstr "تاريخ النفاذ"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:78
+msgid "Account data"
+msgstr "بيانات الحساب"
 
 #: front/src/components/auth/Settings.vue:5
 msgid "Account settings"
 msgstr "إعدادات الحساب"
 
+#: front/src/components/auth/Settings.vue:264
+msgid "Account Settings"
+msgstr "إعدادات الحساب"
+
 #: front/src/components/manage/users/UsersTable.vue:39
 msgid "Account status"
 msgstr "حالة الحساب"
@@ -160,11 +204,17 @@ msgstr "حالة الحساب"
 msgid "Account's email"
 msgstr "البريد الإلكتروني الخاص بالحساب"
 
+#: front/src/views/admin/moderation/AccountsList.vue:3
+#: front/src/views/admin/moderation/AccountsList.vue:24
+#: front/src/views/admin/moderation/Base.vue:8
+msgid "Accounts"
+msgstr "الحسابات"
+
 #: front/src/views/content/libraries/Detail.vue:29
 msgid "Action"
 msgstr "الإجراء"
 
-#: front/src/components/common/ActionTable.vue:86
+#: front/src/components/common/ActionTable.vue:99
 msgid "Action %{ action } was launched successfully on %{ count } element"
 msgid_plural "Action %{ action } was launched successfully on %{ count } elements"
 msgstr[0] ""
@@ -174,7 +224,7 @@ msgstr[3] ""
 msgstr[4] ""
 msgstr[5] ""
 
-#: front/src/components/common/ActionTable.vue:8
+#: front/src/components/common/ActionTable.vue:21
 #: front/src/components/library/radios/Builder.vue:64
 msgid "Actions"
 msgstr "الإجراءات"
@@ -183,11 +233,33 @@ msgstr "الإجراءات"
 msgid "Active"
 msgstr "النشاط"
 
-#: front/src/components/Sidebar.vue:75
+#: front/src/views/admin/moderation/AccountsDetail.vue:199
+#: front/src/views/admin/moderation/DomainsDetail.vue:144
 msgid "Activity"
 msgstr "النشاط"
 
-#: front/src/components/Sidebar.vue:78 src/views/content/Base.vue:19
+#: front/src/components/mixins/Translations.vue:7
+#: front/src/components/mixins/Translations.vue:8
+msgid "Activity visibility"
+msgstr "عرض النشاط"
+
+#: front/src/views/admin/moderation/DomainsList.vue:18
+msgid "Add"
+msgstr ""
+
+#: front/src/views/admin/moderation/DomainsList.vue:13
+msgid "Add a domain"
+msgstr ""
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:4
+msgid "Add a new moderation rule"
+msgstr ""
+
+#: front/src/views/content/Home.vue:35
+msgid "Add and manage content"
+msgstr "إضافة المحتوى و إدارته"
+
+#: front/src/components/Sidebar.vue:75 src/views/content/Base.vue:18
 msgid "Add content"
 msgstr "إضافة محتوى"
 
@@ -199,20 +271,28 @@ msgstr "إضافة عامل تصفية"
 msgid "Add filters to customize your radio"
 msgstr "قم بإضافة عوامل تصفية لتخصيص إذاعتك"
 
+#: front/src/components/audio/PlayButton.vue:64
+msgid "Add to current queue"
+msgstr "أضِف إلى قائمة الانتظار الحالية"
+
 #: front/src/components/favorites/TrackFavoriteIcon.vue:4
-#: front/src/components/favorites/TrackFavoriteIcon.vue:21
+#: front/src/components/favorites/TrackFavoriteIcon.vue:28
 msgid "Add to favorites"
 msgstr "إضافة إلى المفضلة"
 
 #: front/src/components/playlists/TrackPlaylistIcon.vue:6
-#: front/src/components/playlists/TrackPlaylistIcon.vue:32
-msgid "Add to playlist..."
+#: front/src/components/playlists/TrackPlaylistIcon.vue:34
+msgid "Add to playlist…"
 msgstr "إضافة إلى قائمة المقاطع الموسيقية …"
 
 #: front/src/components/audio/PlayButton.vue:14
 msgid "Add to queue"
 msgstr "أضِف إلى قائمة الانتظار"
 
+#: front/src/components/playlists/PlaylistModal.vue:116
+msgid "Add to this playlist"
+msgstr "أضفه إلى قائمة التشغيل هذه"
+
 #: front/src/components/playlists/PlaylistModal.vue:54
 msgid "Add track"
 msgstr "إضافة مقطع موسيقي"
@@ -221,16 +301,16 @@ msgstr "إضافة مقطع موسيقي"
 msgid "Admin"
 msgstr "المدير"
 
-#: front/src/components/Sidebar.vue:82
+#: front/src/components/Sidebar.vue:79
 msgid "Administration"
 msgstr "الإدارة"
 
-#: front/src/components/audio/track/Table.vue:8
+#: front/src/components/audio/SearchBar.vue:26
+#: src/components/audio/track/Table.vue:8
+#: front/src/components/library/Album.vue:159
 #: front/src/components/manage/library/FilesTable.vue:39
-#: front/src/views/content/libraries/FilesTable.vue:53
-#: front/src/components/library/Album.vue:101
-#: src/components/audio/SearchBar.vue:26
 #: front/src/components/metadata/Search.vue:134
+#: front/src/views/content/libraries/FilesTable.vue:56
 msgid "Album"
 msgstr "الألبوم"
 
@@ -244,13 +324,19 @@ msgstr[3] ""
 msgstr[4] ""
 msgstr[5] ""
 
-#: front/src/components/library/Track.vue:20
+#: front/src/components/mixins/Translations.vue:24
+#: front/src/components/mixins/Translations.vue:25
+msgid "Album name"
+msgstr "عنوان الألبوم"
+
+#: front/src/components/library/Track.vue:27
 msgid "Album page"
 msgstr "صفحة الألبوم"
 
 #: front/src/components/audio/Search.vue:19
 #: src/components/instance/Stats.vue:48
-#: front/src/components/requests/Form.vue:9
+#: front/src/views/admin/moderation/AccountsDetail.vue:321
+#: front/src/views/admin/moderation/DomainsDetail.vue:257
 msgid "Albums"
 msgstr "الألبومات"
 
@@ -271,33 +357,43 @@ msgstr "حدث خطأ أثناء عملية حفظ التغييرات"
 msgid "An unknown error happend, this can mean the server is down or cannot be reached"
 msgstr "طرأ هناك خطأ ما، ذلك قد يعني أن السيرفر غير متصل أو أنّ الإتصال به غير ممكن"
 
+#: front/src/components/notifications/NotificationRow.vue:62
+msgid "Approve"
+msgstr "قبول"
+
 #: front/src/components/auth/Logout.vue:5
 msgid "Are you sure you want to log out?"
 msgstr "أمتأكد من أنك تريد الخروج ؟"
 
-#: front/src/components/audio/track/Table.vue:7
+#: front/src/components/audio/SearchBar.vue:25
+#: src/components/audio/track/Table.vue:7
+#: front/src/components/library/Artist.vue:137
 #: front/src/components/manage/library/FilesTable.vue:38
-#: front/src/views/content/libraries/FilesTable.vue:52
-#: front/src/components/library/Artist.vue:129
-#: src/components/audio/SearchBar.vue:25
 #: front/src/components/metadata/Search.vue:130
+#: front/src/views/content/libraries/FilesTable.vue:55
 msgid "Artist"
 msgstr "الفنان"
 
-#: front/src/components/requests/Form.vue:5
-#: src/components/mixins/Translations.vue:24
+#: front/src/components/mixins/Translations.vue:25
+#: front/src/components/mixins/Translations.vue:26
 msgid "Artist name"
 msgstr "إسم الفنان"
 
 #: front/src/components/library/Album.vue:22
-#: src/components/library/Track.vue:23
+#: src/components/library/Track.vue:33
 msgid "Artist page"
 msgstr "صفحة الفنان"
 
+#: front/src/components/audio/Search.vue:65
+msgid "Artist, album, track…"
+msgstr "فنان ، ألبوم ، مقطع موسيقي …"
+
 #: front/src/components/audio/Search.vue:10
 #: src/components/instance/Stats.vue:42
-#: front/src/components/library/Library.vue:7
-#: src/components/library/Artists.vue:120
+#: front/src/components/library/Artists.vue:119
+#: src/components/library/Library.vue:7
+#: front/src/views/admin/moderation/AccountsDetail.vue:313
+#: front/src/views/admin/moderation/DomainsDetail.vue:249
 msgid "Artists"
 msgstr "الفنانون"
 
@@ -305,6 +401,8 @@ msgstr "الفنانون"
 #: src/components/library/Artists.vue:25
 #: front/src/components/library/Radios.vue:44
 #: front/src/components/manage/library/FilesTable.vue:19
+#: front/src/components/manage/moderation/AccountsTable.vue:21
+#: front/src/components/manage/moderation/DomainsTable.vue:19
 #: front/src/components/manage/users/UsersTable.vue:19
 #: front/src/views/content/libraries/FilesTable.vue:31
 #: front/src/views/playlists/List.vue:27
@@ -315,6 +413,15 @@ msgstr "تصاعدي"
 msgid "Ask for a password reset"
 msgstr "أطلب إعادة تعيين كلمة المرور"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:245
+#: front/src/views/admin/moderation/DomainsDetail.vue:202
+msgid "Audio content"
+msgstr "محتوى مسموع"
+
+#: front/src/components/ShortcutsModal.vue:55
+msgid "Audio player shortcuts"
+msgstr "اختصارات المُشغّل الصوتي"
+
 #: front/src/components/playlists/PlaylistModal.vue:26
 msgid "Available playlists"
 msgstr "قوائم المقاطع الموسيقية المتوفرة"
@@ -323,17 +430,27 @@ msgstr "قوائم المقاطع الموسيقية المتوفرة"
 msgid "Avatar"
 msgstr "الصورة الرمزية"
 
-#: front/src/views/auth/EmailConfirm.vue:17 src/views/auth/PasswordReset.vue:24
+#: front/src/views/auth/PasswordReset.vue:24
 #: front/src/views/auth/PasswordResetConfirm.vue:18
 msgid "Back to login"
 msgstr "العودة إلى صفحة تسجيل الدخول"
 
-#: front/src/components/library/Track.vue:80
+#: front/src/components/library/Track.vue:129
 #: front/src/components/manage/library/FilesTable.vue:42
-#: front/src/components/mixins/Translations.vue:28
+#: front/src/components/mixins/Translations.vue:29
+#: front/src/components/mixins/Translations.vue:30
 msgid "Bitrate"
 msgstr "معدل البت"
 
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:19
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:34
+msgid "Block everything"
+msgstr "حجب الكل"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:112
+msgid "Block everything from this account or domain. This will prevent any interaction with the entity, and purge related content (uploads, libraries, follows, etc.)"
+msgstr ""
+
 #: front/src/components/Sidebar.vue:18 src/components/library/Library.vue:4
 msgid "Browse"
 msgstr "تصفّح"
@@ -363,11 +480,19 @@ msgid "By %{ artist }"
 msgstr "حسب %{ artist }"
 
 #: front/src/views/content/remote/Card.vue:103
-msgid "By unfollowing this library, you will loose access to its content."
+msgid "By unfollowing this library, you loose access to its content."
 msgstr "إن قمت بإلغاء متابعة هذه المكتبة فسوف لن تتمكن مِن الوصول إلى محتواها."
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:261
+#: front/src/views/admin/moderation/DomainsDetail.vue:217
+msgid "Cached size"
+msgstr ""
+
 #: front/src/components/common/DangerousButton.vue:17
+#: front/src/components/library/Album.vue:58
+#: src/components/library/Track.vue:76
 #: front/src/components/library/radios/Filter.vue:53
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:54
 #: front/src/components/playlists/PlaylistModal.vue:63
 msgid "Cancel"
 msgstr "إلغاء"
@@ -380,7 +505,12 @@ msgstr ""
 msgid "Cannot change your password"
 msgstr "لا يمكن تغيير كلمة المرور"
 
-#: front/src/App.vue:65
+#: front/src/components/library/FileUpload.vue:222
+#: front/src/components/library/FileUpload.vue:223
+msgid "Cannot upload this file, ensure it is not too big"
+msgstr "لا يمكن تحميل هذا الملف، تحقق أنّ حجم الملف ليس ضخما"
+
+#: front/src/components/Footer.vue:21
 msgid "Change language"
 msgstr "تغيير اللغة"
 
@@ -413,7 +543,11 @@ msgstr "سوف تتأثر كذلك الكلمة السرية لواجهة برم
 msgid "Changing your password will have the following consequences"
 msgstr "سوف ينجرّ ما يلي عند تعديل كلمتك السرية"
 
-#: front/src/App.vue:6
+#: front/src/components/Footer.vue:40
+msgid "Chat room"
+msgstr "قاعة المحادثة"
+
+#: front/src/App.vue:13
 msgid "Choose your instance"
 msgstr "اختر خادومك"
 
@@ -430,14 +564,22 @@ msgstr "امسح"
 msgid "Clear playlist"
 msgstr "مسح قائمة المَقاطع الموسيقية"
 
+#: front/src/components/audio/Player.vue:363
+msgid "Clear your queue"
+msgstr "مسح قائمة الانتظار الخاصة بك"
+
 #: front/src/components/Home.vue:44
 msgid "Click once, listen for hours using built-in radios"
 msgstr "إضغط مرة واحدة و استمع لساعات مِن الموسيقى عبر الإذاعات المُدمَجة"
 
-#: front/src/components/library/FileUpload.vue:76
+#: front/src/components/library/FileUpload.vue:75
 msgid "Click to select files to upload or drag and drop files or directories"
 msgstr ""
 
+#: front/src/components/ShortcutsModal.vue:20
+msgid "Close"
+msgstr "إغلاق"
+
 #: front/src/components/manage/users/InvitationForm.vue:26
 #: front/src/components/manage/users/InvitationsTable.vue:42
 msgid "Code"
@@ -445,14 +587,9 @@ msgstr "الرمز"
 
 #: front/src/components/audio/album/Card.vue:43
 #: front/src/components/audio/artist/Card.vue:33
-#: front/src/components/discussion/Comment.vue:20
 msgid "Collapse"
 msgstr "تصغير"
 
-#: front/src/components/requests/Form.vue:14
-msgid "Comment"
-msgstr "تعليق"
-
 #: front/src/components/library/radios/Builder.vue:62
 msgid "Config"
 msgstr "الإعداد"
@@ -463,21 +600,58 @@ msgstr "تأكيد"
 
 #: front/src/views/auth/EmailConfirm.vue:4 src/views/auth/EmailConfirm.vue:20
 #: front/src/views/auth/EmailConfirm.vue:51
-msgid "Confirm your email"
-msgstr "تأكيد بريدك الإلكتروني"
+msgid "Confirm your e-mail address"
+msgstr "أكّد بريدك الإلكتروني"
 
 #: front/src/views/auth/EmailConfirm.vue:13
 msgid "Confirmation code"
 msgstr "رمز التأكيد"
 
+#: front/src/components/common/ActionTable.vue:7
+msgid "Content have been updated, click refresh to see up-to-date content"
+msgstr ""
+
+#: front/src/components/Footer.vue:48
+msgid "Contribute"
+msgstr "المساهمة"
+
+#: front/src/components/audio/EmbedWizard.vue:19
 #: front/src/components/common/CopyInput.vue:8
 msgid "Copy"
 msgstr "نسخ"
 
+#: front/src/components/playlists/Editor.vue:163
+msgid "Copy tracks from current queue to playlist"
+msgstr "نسخ المَقاطِع مِن قائمة الإنتظار الحالية إلى قائمة التشغيل"
+
+#: front/src/components/audio/EmbedWizard.vue:21
+msgid "Copy/paste this code in your website HTML"
+msgstr ""
+
+#: front/src/components/library/Track.vue:91
+msgid "Copyright"
+msgstr "الحقوق"
+
+#: front/src/views/auth/EmailConfirm.vue:7
+msgid "Could not confirm your e-mail address"
+msgstr "لم نتمكن مِن تأكيد عنوان بريدك الإلكتروني"
+
+#: front/src/views/content/remote/ScanForm.vue:3
+msgid "Could not fetch remote library"
+msgstr "تعذر جلب المكتبة البُعدية"
+
+#: front/src/views/content/libraries/FilesTable.vue:213
+msgid "Could not process this track, ensure it is tagged correctly"
+msgstr ""
+
 #: front/src/components/Home.vue:85
 msgid "Covers, lyrics, our goal is to have them all ;)"
 msgstr "أغلِفة الألبومات و كلمات الأغاني، هدفنا هو دمجها جميعا ;)"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:58
+msgid "Create"
+msgstr "إنشاء"
+
 #: front/src/components/auth/Signup.vue:4
 msgid "Create a funkwhale account"
 msgstr "أنشئ حسابا على فانك وايل"
@@ -494,10 +668,6 @@ msgstr "أنشئ قائمة مَقاطِع موسيقية جديدة"
 msgid "Create an account"
 msgstr "أنشئ حسابا"
 
-#: front/src/components/requests/Card.vue:25
-msgid "Create import"
-msgstr "إنشاء استيراد"
-
 #: front/src/views/content/libraries/Form.vue:26
 msgid "Create library"
 msgstr "أنشئ مكتبة"
@@ -515,6 +685,7 @@ msgid "Create your own radio"
 msgstr "أنشئ إذاعتك"
 
 #: front/src/components/manage/users/InvitationsTable.vue:40
+#: front/src/components/mixins/Translations.vue:16
 #: front/src/components/mixins/Translations.vue:17
 msgid "Creation date"
 msgstr "تاريخ الإنشاء"
@@ -539,11 +710,16 @@ msgstr "الاستعمال الحالي"
 msgid "Date"
 msgstr "التاريخ"
 
-#: front/src/views/content/libraries/Form.vue:29
-#: src/views/playlists/Detail.vue:33
+#: front/src/components/ShortcutsModal.vue:75
+msgid "Decrease volume"
+msgstr "تخفيض الصوت"
+
 #: front/src/components/manage/library/FilesTable.vue:190
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:61
 #: front/src/components/manage/users/InvitationsTable.vue:167
-#: front/src/views/content/libraries/FilesTable.vue:258
+#: front/src/views/content/libraries/FilesTable.vue:233
+#: front/src/views/content/libraries/Form.vue:29
+#: src/views/playlists/Detail.vue:33
 msgid "Delete"
 msgstr "حذف"
 
@@ -551,6 +727,10 @@ msgstr "حذف"
 msgid "Delete library"
 msgstr "حذف المكتبة"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:69
+msgid "Delete moderation rule"
+msgstr "حذف قاعدة الإشراف"
+
 #: front/src/views/playlists/Detail.vue:38
 msgid "Delete playlist"
 msgstr "حذف قائمة الأغاني"
@@ -563,10 +743,16 @@ msgstr "حذف الإذاعة"
 msgid "Delete this library?"
 msgstr "أتريد حذف هذه المكتبة؟"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:63
+msgid "Delete this moderation rule?"
+msgstr "أتريد حذف قاعدة الإشراف هذه؟"
+
 #: front/src/components/favorites/List.vue:34
 #: src/components/library/Artists.vue:26
 #: front/src/components/library/Radios.vue:47
 #: front/src/components/manage/library/FilesTable.vue:20
+#: front/src/components/manage/moderation/AccountsTable.vue:22
+#: front/src/components/manage/moderation/DomainsTable.vue:20
 #: front/src/components/manage/users/UsersTable.vue:20
 #: front/src/views/content/libraries/FilesTable.vue:32
 #: front/src/views/playlists/List.vue:28
@@ -586,6 +772,15 @@ msgstr "التفاصيل"
 msgid "Details"
 msgstr "التفاصيل"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:455
+msgid "Determine how much content the user can upload. Leave empty to use the default value of the instance."
+msgstr ""
+
+#: front/src/components/mixins/Translations.vue:8
+#: front/src/components/mixins/Translations.vue:9
+msgid "Determine the visibility level of your activity"
+msgstr ""
+
 #: front/src/components/auth/Settings.vue:104
 #: front/src/components/auth/SubsonicTokenForm.vue:52
 msgid "Disable access"
@@ -599,14 +794,28 @@ msgstr "تعطيل النفاذ عبر صاب سونيك Subsonic"
 msgid "Disable Subsonic API access?"
 msgstr "تعطيل النفاذ عبر واجهة برمجة التطبيقات صاب سونيك ؟"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:18
+#: front/src/views/admin/moderation/AccountsDetail.vue:128
+#: front/src/views/admin/moderation/AccountsDetail.vue:132
+msgid "Disabled"
+msgstr "معطل"
+
 #: front/src/components/auth/SubsonicTokenForm.vue:14
 msgid "Discover how to use Funkwhale from other apps"
 msgstr "إكتشف كيفية استخدام فانك وايل Funkwhale عبر التطبيقات الأخرى"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:103
+msgid "Display name"
+msgstr "الاسم المعروض"
+
 #: front/src/components/library/radios/Builder.vue:30
 msgid "Display publicly"
 msgstr "إعرضها للعامة"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:122
+msgid "Do not download any media file (audio, album cover, account avatar…) from this account or domain. This will purge existing content as well."
+msgstr ""
+
 #: front/src/components/playlists/Editor.vue:42
 msgid "Do you want to clear the playlist \"%{ playlist }\"?"
 msgstr "هل تودّ إفراغ قائمة المَقاطِع الموسيقية \"%{ playlist }\" ؟"
@@ -623,7 +832,7 @@ msgstr "متأكّد مِن أنك تريد حذف قائمة المَقاطِع
 msgid "Do you want to delete the radio \"%{ radio }\"?"
 msgstr "أتريد حقا حذف إذاعة \"%{ radio }\" ؟"
 
-#: front/src/components/common/ActionTable.vue:29
+#: front/src/components/common/ActionTable.vue:36
 msgid "Do you want to launch %{ action } on %{ count } element?"
 msgid_plural "Do you want to launch %{ action } on %{ count } elements?"
 msgstr[0] ""
@@ -633,15 +842,28 @@ msgstr[3] ""
 msgstr[4] ""
 msgstr[5] ""
 
-#: front/src/components/Sidebar.vue:104
+#: front/src/components/Sidebar.vue:107
 msgid "Do you want to restore your previous queue?"
 msgstr "هل تريد استرجاع قائمة الإنتظار السابقة للأغاني ؟"
 
-#: front/src/App.vue:37
+#: front/src/components/Footer.vue:31
 msgid "Documentation"
 msgstr "الدليل"
 
-#: front/src/components/library/Track.vue:48
+#: front/src/components/manage/moderation/AccountsTable.vue:40
+#: front/src/components/mixins/Translations.vue:34
+#: front/src/views/admin/moderation/AccountsDetail.vue:93
+#: front/src/components/mixins/Translations.vue:35
+msgid "Domain"
+msgstr "النطاق"
+
+#: front/src/views/admin/moderation/Base.vue:5
+#: front/src/views/admin/moderation/DomainsList.vue:3
+#: front/src/views/admin/moderation/DomainsList.vue:48
+msgid "Domains"
+msgstr "النطاقات"
+
+#: front/src/components/library/Track.vue:55
 msgid "Download"
 msgstr "تنزيل"
 
@@ -650,13 +872,18 @@ msgid "Drag and drop rows to reorder tracks in the playlist"
 msgstr ""
 
 #: front/src/components/audio/track/Table.vue:9
-#: src/components/library/Track.vue:58
+#: src/components/library/Track.vue:111
 #: front/src/components/manage/library/FilesTable.vue:43
-#: front/src/views/content/libraries/FilesTable.vue:56
-#: front/src/components/mixins/Translations.vue:29
+#: front/src/components/mixins/Translations.vue:30
+#: front/src/views/content/libraries/FilesTable.vue:59
+#: front/src/components/mixins/Translations.vue:31
 msgid "Duration"
 msgstr "المدّة"
 
+#: front/src/views/auth/EmailConfirm.vue:23
+msgid "E-mail address confirmed"
+msgstr "عنوان البريد الإلكتروني مؤكَّد"
+
 #: front/src/components/Home.vue:93
 msgid "Easy to use"
 msgstr "سهل للإستخدام"
@@ -670,36 +897,103 @@ msgid "Edit instance info"
 msgstr "تعديل معلومات مثيل الخادوم"
 
 #: front/src/components/radios/Card.vue:22 src/views/playlists/Detail.vue:30
-msgid "Edit..."
-msgstr "تعديل …"
+msgid "Edit…"
+msgstr "تعديل…"
 
 #: front/src/components/auth/Signup.vue:29
 #: front/src/components/manage/users/UsersTable.vue:38
 msgid "Email"
 msgstr "البريد الإلكتروني"
 
-#: front/src/views/admin/users/UsersDetail.vue:29
+#: front/src/views/admin/moderation/AccountsDetail.vue:111
 msgid "Email address"
 msgstr "عنوان البريد الإلكتروني"
 
-#: front/src/views/auth/EmailConfirm.vue:23
-msgid "Email confirmed"
-msgstr "عنوان البريد الإلكتروني مؤكَّد"
+#: front/src/components/library/Album.vue:44
+#: src/components/library/Track.vue:62
+msgid "Embed"
+msgstr "ادمج"
+
+#: front/src/components/audio/EmbedWizard.vue:20
+msgid "Embed code"
+msgstr "رمز الإدماج"
+
+#: front/src/components/library/Album.vue:48
+msgid "Embed this album on your website"
+msgstr ""
+
+#: front/src/components/library/Track.vue:66
+msgid "Embed this track on your website"
+msgstr "ادمج هذا المَقطع على موقعك"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:230
+#: front/src/views/admin/moderation/DomainsDetail.vue:187
+#, fuzzy
+msgid "Emitted library follows"
+msgstr "أدخِل عنوان رابط لمكتبة ما"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:214
+#: front/src/views/admin/moderation/DomainsDetail.vue:171
+msgid "Emitted messages"
+msgstr ""
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:8
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:17
+#: front/src/views/admin/moderation/AccountsDetail.vue:127
+#: front/src/views/admin/moderation/AccountsDetail.vue:131
+msgid "Enabled"
+msgstr "تم تنشيطه"
 
 #: front/src/views/playlists/Detail.vue:29
 msgid "End edition"
 msgstr "إنهاء التعديل"
 
+#: front/src/views/content/remote/ScanForm.vue:50
+msgid "Enter a library URL"
+msgstr "أدخِل عنوان رابط لمكتبة ما"
+
+#: front/src/components/library/Radios.vue:140
+msgid "Enter a radio name…"
+msgstr "أدخِل إسم إذاعة…"
+
+#: front/src/components/library/Artists.vue:118
+msgid "Enter artist name…"
+msgstr "أدخِل إسم فنان…"
+
+#: front/src/views/playlists/List.vue:107
+msgid "Enter playlist name…"
+msgstr "أدخِل إسم قائمة مَقاطِعٍ موسيقية…"
+
+#: front/src/components/auth/Signup.vue:100
+msgid "Enter your email"
+msgstr "أدخِل عنوان بريدك الإلكتروني"
+
+#: front/src/components/auth/Signup.vue:96 src/components/auth/Signup.vue:97
+msgid "Enter your invitation code (case insensitive)"
+msgstr "أدخِل رمز الدعوة"
+
+#: front/src/components/metadata/Search.vue:114
+msgid "Enter your search query…"
+msgstr "أدخِل طلب بحثِك…"
+
+#: front/src/components/auth/Signup.vue:99
+msgid "Enter your username"
+msgstr "أدخِل إسم المستخدِم"
+
+#: front/src/components/auth/Login.vue:77
+msgid "Enter your username or email"
+msgstr "أدخل إسم المستخدِم أو البريد الإلكتروني"
+
 #: front/src/components/auth/SubsonicTokenForm.vue:20
 #: front/src/views/content/libraries/Form.vue:4
 msgid "Error"
 msgstr "خطأ"
 
-#: front/src/views/content/remote/Card.vue:39
-msgid "Error during scan"
-msgstr "خطأ أثناء الإستكشاف"
+#: front/src/views/admin/Settings.vue:87
+msgid "Error reporting"
+msgstr "سِجِل الأخطاء"
 
-#: front/src/components/common/ActionTable.vue:79
+#: front/src/components/common/ActionTable.vue:92
 msgid "Error while applying action"
 msgstr "حدث خطأ أثناء تطبيق الإجراء"
 
@@ -711,24 +1005,27 @@ msgstr "حدث خطأ أثناء إرسال طلب إعادة تعيين الك
 msgid "Error while changing your password"
 msgstr "حدث خطأ أثناء عملية تعديل الكلمة السرية"
 
-#: front/src/views/auth/EmailConfirm.vue:7
-msgid "Error while confirming your email"
-msgstr "حدث خطأ أثناء تأكيد عنوان بريدك الإلكتروني"
+#: front/src/views/admin/moderation/DomainsList.vue:6
+msgid "Error while creating domain"
+msgstr "حدث خطأ أثناء إنشاء النطاق"
 
 #: front/src/components/manage/users/InvitationForm.vue:4
 msgid "Error while creating invitation"
 msgstr "حدث خطأ أثناء إنشاء الدعوة"
 
-#: front/src/views/content/remote/ScanForm.vue:3
-msgid "Error while fetching remote library"
-msgstr "حدث خطأ أثناء عملية جلب المكتبة البُعدية"
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:7
+msgid "Error while creating rule"
+msgstr "حدث خطأ أثناء إنشاء القاعدة"
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:126
+msgid "Error while fetching node info"
+msgstr "حدث خطأ أثناء عملية جلب معلومات العقدة"
 
 #: front/src/components/admin/SettingsGroup.vue:5
 msgid "Error while saving settings"
 msgstr "حدث خطأ أثناء حفظ الإعدادات"
 
-#: front/src/views/content/libraries/FilesTable.vue:16
-#: front/src/views/content/libraries/FilesTable.vue:237
+#: front/src/views/content/libraries/FilesTable.vue:212
 msgid "Errored"
 msgstr "فيه خطأ"
 
@@ -736,20 +1033,28 @@ msgstr "فيه خطأ"
 msgid "Errored files"
 msgstr "الملفات الخاطئة"
 
-#: front/src/views/content/remote/Card.vue:58
-msgid "Errored tracks:"
-msgstr "المَقاطع الموسيقية الخاطئة:"
+#: front/src/components/playlists/Form.vue:89
+msgid "Everyone"
+msgstr "الجميع"
+
+#: front/src/components/mixins/Translations.vue:11
+#: front/src/components/playlists/Form.vue:85
+#: src/views/content/libraries/Form.vue:73
+#: front/src/components/mixins/Translations.vue:12
+msgid "Everyone on this instance"
+msgstr "كل مَن هم على مثيل الخادوم هذا"
+
+#: front/src/views/content/libraries/Form.vue:74
+msgid "Everyone, across all instances"
+msgstr "كافة مَن هم على مثيلات الخوادم"
 
 #: front/src/components/library/radios/Builder.vue:61
 msgid "Exclude"
 msgstr "إستثني"
 
-#: front/src/components/discussion/Comment.vue:14
-msgid "Expand"
-msgstr "توسيع"
-
 #: front/src/components/manage/users/InvitationsTable.vue:41
-#: front/src/components/mixins/Translations.vue:21
+#: front/src/components/mixins/Translations.vue:22
+#: front/src/components/mixins/Translations.vue:23
 msgid "Expiration date"
 msgstr "تاريخ نهاية الصلاحية"
 
@@ -761,12 +1066,28 @@ msgstr "منتهية الصلاحيّة"
 msgid "Expired/used"
 msgstr "إنتهت صلاحيتها/ أو مستعمَلة"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:110
+msgid "Explain why you're applying this policy. Depending on your instance configuration, this will help you remember why you acted on this account or domain, and may be displayed publicly to help users understand what moderation rules are in place."
+msgstr ""
+
+#: front/src/views/content/libraries/FilesTable.vue:16
+msgid "Failed"
+msgstr "فشل"
+
+#: front/src/views/content/remote/Card.vue:58
+msgid "Failed tracks:"
+msgstr "المَقاطع الصوتية المخفقة:"
+
 #: front/src/components/Sidebar.vue:66
 msgid "Favorites"
 msgstr "المفضلة"
 
-#: front/src/components/library/FileUpload.vue:83
-msgid "File name"
+#: front/src/views/admin/Settings.vue:84
+msgid "Federation"
+msgstr "الفديرالية"
+
+#: front/src/components/library/FileUpload.vue:84
+msgid "Filename"
 msgstr "إسم الملفّ"
 
 #: front/src/views/admin/library/Base.vue:5
@@ -779,23 +1100,37 @@ msgid "Filter name"
 msgstr "إسم عامل التصفية"
 
 #: front/src/views/content/libraries/FilesTable.vue:17
-#: front/src/views/content/libraries/FilesTable.vue:241
+#: front/src/views/content/libraries/FilesTable.vue:216
 msgid "Finished"
 msgstr "إكتمل"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:42
+#: front/src/components/manage/moderation/DomainsTable.vue:41
+#: front/src/views/admin/moderation/AccountsDetail.vue:159
+#: front/src/views/admin/moderation/DomainsDetail.vue:78
+msgid "First seen"
+msgstr "أول زيارة"
+
+#: front/src/components/mixins/Translations.vue:17
+#: front/src/components/mixins/Translations.vue:18
+msgid "First seen date"
+msgstr "تاريخ أول اكتشاف"
+
 #: front/src/views/content/remote/Card.vue:83
 msgid "Follow"
 msgstr "إتبع"
 
-#: front/src/views/content/remote/Card.vue:88
-msgid "Follow pending approval"
-msgstr "طلبات متابعة مُعلّقة تنتظر اجراء"
-
 #: front/src/views/content/Home.vue:16
 msgid "Follow remote libraries"
 msgstr "متابعة المكتبات عن بُعد"
 
+#: front/src/views/content/remote/Card.vue:88
+msgid "Follow request pending approval"
+msgstr "طلب متابعة مُعلّق في انتظار القبول"
+
+#: front/src/components/mixins/Translations.vue:38
 #: front/src/views/content/libraries/Detail.vue:7
+#: front/src/components/mixins/Translations.vue:39
 msgid "Followers"
 msgstr "المتابِعون"
 
@@ -803,19 +1138,10 @@ msgstr "المتابِعون"
 msgid "Following"
 msgstr "يُتابِع"
 
-#: front/src/components/activity/Like.vue:14
-#: src/components/activity/Listen.vue:14
-msgid "from %{ album } by %{ artist }"
-msgstr "مِن %{ album } لِـ %{ artist }"
-
-#: front/src/components/library/Track.vue:13
+#: front/src/components/library/Track.vue:17
 msgid "From album %{ album } by %{ artist }"
 msgstr "مِن ألبوم %{ album } لِـ %{ artist }"
 
-#: front/src/App.vue:55
-msgid "Funkwhale is a free and open-source project run by volunteers. You can help us improve the platform by reporting bugs, suggesting features and share the project with your friends!"
-msgstr "فانك وايل Funkwhale مشروع حُر و مفتوح المصدر يديره متطوعون. يمكنك مساعدتنا على تحسين المنصة عن طريق الإبلاغ عن أخطاء، و اقتراح ميزات بما في ذلك مشاركة المشروع مع أصدقائك !"
-
 #: front/src/components/auth/SubsonicTokenForm.vue:7
 msgid "Funkwhale is compatible with other music players that support the Subsonic API."
 msgstr "فانك وايل Funkwhale متوافق مع برمجيات تشغيل الموسيقى التي تدعم واجهة برمجية تطبيقات صاب سونيك."
@@ -836,6 +1162,10 @@ msgstr "فانك وايل Funkwhale مجاني و يُعيد التحكّم في
 msgid "Funkwhale takes care of handling your music"
 msgstr "فانك وايل Funkwhale يُحافظ على موسيقاكم"
 
+#: front/src/components/ShortcutsModal.vue:38
+msgid "General shortcuts"
+msgstr "الاختصارات العامة"
+
 #: front/src/components/manage/users/InvitationForm.vue:16
 msgid "Get a new invitation"
 msgstr "تحصّل على دعوة جديدة"
@@ -846,16 +1176,18 @@ msgstr "أنقلني إلى المكتبة"
 
 #: front/src/components/Home.vue:76
 msgid "Get quality metadata about your music thanks to <a href=\"%{ url }\" target=\"_blank\">MusicBrainz</a>"
-msgstr ""
-"احصلوا على بيانات وصفية ذات جودة عن موسيقاكم بفضل <a href=\"%{ url }\" "
-"target=\"_blank\">MusicBrainz</a>"
+msgstr "احصلوا على بيانات وصفية ذات جودة عن موسيقاكم بفضل <a href=\"%{ url }\" target=\"_blank\">MusicBrainz</a>"
 
 #: front/src/views/content/Home.vue:12 src/views/content/Home.vue:19
 msgid "Get started"
 msgstr "إبدأ هنا"
 
-#: front/src/components/common/ActionTable.vue:21
-#: front/src/components/common/ActionTable.vue:27
+#: front/src/components/Footer.vue:37
+msgid "Getting help"
+msgstr "الحصول على مساعدة"
+
+#: front/src/components/common/ActionTable.vue:34
+#: front/src/components/common/ActionTable.vue:54
 msgid "Go"
 msgstr "هيا"
 
@@ -863,9 +1195,13 @@ msgstr "هيا"
 msgid "Go to home page"
 msgstr "إنتقل إلى الصفحة الرئيسية"
 
-#: front/src/App.vue:73
-msgid "Help us translate Funkwhale"
-msgstr "ساعدنا على ترجمة فانك وايل"
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:114
+msgid "Hide account or domain content, except from followers."
+msgstr ""
+
+#: front/src/components/library/Home.vue:65
+msgid "Home"
+msgstr "الرئيسية"
 
 #: front/src/components/instance/Stats.vue:36
 msgid "Hours of music"
@@ -892,10 +1228,19 @@ msgid "Import reference"
 msgstr "مصدر الإستيراد"
 
 #: front/src/views/content/libraries/FilesTable.vue:11
-#: front/src/views/content/libraries/FilesTable.vue:55
+#: front/src/views/content/libraries/FilesTable.vue:58
 msgid "Import status"
 msgstr "حالة الإستيراد"
 
+#: front/src/views/content/libraries/FilesTable.vue:217
+msgid "Imported"
+msgstr "تم استيراده"
+
+#: front/src/components/mixins/Translations.vue:21
+#: front/src/components/mixins/Translations.vue:22
+msgid "Imported date"
+msgstr "تاريخ الإستيراد"
+
 #: front/src/components/favorites/TrackFavoriteIcon.vue:3
 msgid "In favorites"
 msgstr "في المفضلة"
@@ -904,6 +1249,14 @@ msgstr "في المفضلة"
 msgid "Inactive"
 msgstr "غير ناشط"
 
+#: front/src/components/ShortcutsModal.vue:71
+msgid "Increase volume"
+msgstr "زيادة حجم الصوت"
+
+#: front/src/views/auth/PasswordReset.vue:53
+msgid "Input the email address binded to your account"
+msgstr ""
+
 #: front/src/components/playlists/Editor.vue:31
 msgid "Insert from queue (%{ count } track)"
 msgid_plural "Insert from queue (%{ count } tracks)"
@@ -914,10 +1267,27 @@ msgstr[3] ""
 msgstr[4] ""
 msgstr[5] ""
 
+#: front/src/views/admin/moderation/DomainsDetail.vue:71
+msgid "Instance data"
+msgstr "بيانات مثيل الخادم"
+
+#: front/src/views/admin/Settings.vue:80
+msgid "Instance information"
+msgstr "معلومات عن مثيل الخادوم"
+
 #: front/src/components/library/Radios.vue:9
 msgid "Instance radios"
 msgstr "إذاعات مثيل الخادوم"
 
+#: front/src/views/admin/Settings.vue:75
+msgid "Instance settings"
+msgstr "إعدادات مثيل الخادوم"
+
+#: front/src/components/library/FileUpload.vue:229
+#: front/src/components/library/FileUpload.vue:230
+msgid "Invalid file type, ensure you are uploading an audio file. Supported file extensions are %{ extensions }"
+msgstr ""
+
 #: front/src/components/auth/Signup.vue:42
 #: front/src/components/manage/users/InvitationForm.vue:11
 msgid "Invitation code"
@@ -933,52 +1303,73 @@ msgstr "رمز الدعوة (اختياري)"
 msgid "Invitations"
 msgstr "الدعوات"
 
-#: front/src/App.vue:42
+#: front/src/components/Footer.vue:41
 msgid "Issue tracker"
 msgstr "متعقّب المشاكل"
 
-#: front/src/views/content/libraries/Home.vue:9
-msgid "It looks like you don't have any library yet, it's time to create one!"
-msgstr "يبدو أنه ليس لديك أية مكتبة بعد، حان الأوان لإنشاء واحدة!"
-
 #: front/src/components/Home.vue:50
 msgid "Keep a track of your favorite songs"
 msgstr "حافظوا على أثر موسيقاكم و أغانيكم المفضّلة"
 
+#: front/src/components/Footer.vue:33 src/components/ShortcutsModal.vue:3
+msgid "Keyboard shortcuts"
+msgstr "اختصارات لوحة المفاتيح"
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:161
+msgid "Known accounts"
+msgstr "الحسابات المعروفة"
+
 #: front/src/views/content/remote/Home.vue:14
 msgid "Known libraries"
 msgstr "المكتبات المعروفة"
 
 #: front/src/components/manage/users/UsersTable.vue:41
-#: front/src/views/admin/users/UsersDetail.vue:45
-#: front/src/components/mixins/Translations.vue:31
+#: front/src/components/mixins/Translations.vue:32
+#: front/src/views/admin/moderation/AccountsDetail.vue:184
+#: front/src/components/mixins/Translations.vue:33
 msgid "Last activity"
 msgstr "آخر نشاط"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:167
+#: front/src/views/admin/moderation/DomainsDetail.vue:86
+msgid "Last checked"
+msgstr "آخِر فحص"
+
 #: front/src/components/playlists/PlaylistModal.vue:32
 msgid "Last modification"
 msgstr "آخر تعديل"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:43
+msgid "Last seen"
+msgstr "آخر زيارة"
+
+#: front/src/components/mixins/Translations.vue:18
+#: front/src/components/mixins/Translations.vue:19
+msgid "Last seen date"
+msgstr "آخِر زيارة"
+
 #: front/src/views/content/remote/Card.vue:56
 msgid "Last update:"
 msgstr "آخِر تحديث:"
 
-#: front/src/components/common/ActionTable.vue:40
+#: front/src/components/common/ActionTable.vue:47
 msgid "Launch"
 msgstr "إبدأ"
 
-#: front/src/views/content/remote/Card.vue:63
-msgid "Launch scan"
-msgstr "إبدأ المسح"
-
 #: front/src/components/Home.vue:10
 msgid "Learn more about this instance"
 msgstr "إعرف المزيد عن مثيل الخادوم هذا"
 
-#: front/src/components/requests/Form.vue:10
-msgid "Leave this field empty if you're requesting the whole discography."
-msgstr "دع هذا الحقل فارغا إن كنت ترغب في كافة الألبومات."
+#: front/src/components/manage/users/InvitationForm.vue:58
+msgid "Leave empty for a random code"
+msgstr "أتركه فارغًا للحصول على رمز عشوائي"
+
+#: front/src/components/audio/EmbedWizard.vue:7
+msgid "Leave empty for a responsive widget"
+msgstr "أتركه فارغًا للحصول على ودجات تناسبي"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:297
+#: front/src/views/admin/moderation/DomainsDetail.vue:233
 #: front/src/views/content/Base.vue:5
 msgid "Libraries"
 msgstr "المكتبات"
@@ -988,56 +1379,77 @@ msgid "Libraries help you organize and share your music collections. You can upl
 msgstr ""
 
 #: front/src/components/instance/Stats.vue:30
-#: front/src/components/manage/users/UsersTable.vue:177
-#: front/src/views/admin/users/UsersDetail.vue:181
+#: front/src/components/manage/users/UsersTable.vue:173
+#: front/src/views/admin/moderation/AccountsDetail.vue:464
 msgid "Library"
 msgstr "المكتبة"
 
+#: front/src/views/content/libraries/Form.vue:109
+msgid "Library created"
+msgstr "تم انشاء المكتبة"
+
+#: front/src/views/content/libraries/Form.vue:129
+msgid "Library deleted"
+msgstr "تم حذف المكتبة"
+
 #: front/src/views/admin/library/FilesList.vue:3
 msgid "Library files"
 msgstr "ملفّات المكتبة"
 
-#: front/src/App.vue:31
-msgid "Links"
-msgstr "الروابط"
+#: front/src/views/content/libraries/Form.vue:106
+msgid "Library updated"
+msgstr "تم تحديث المكتبة"
+
+#: front/src/components/library/Track.vue:100
+msgid "License"
+msgstr "الرخصة"
 
 #: front/src/views/content/libraries/Detail.vue:21
-msgid "Loading followers..."
-msgstr "تحميل المتابعين…"
+msgid "Loading followers…"
+msgstr "جارٍ تحميل المتابِعين…"
 
 #: front/src/views/content/libraries/Home.vue:3
-msgid "Loading Libraries..."
-msgstr "جارٍ تحميل المكتبات …"
+msgid "Loading Libraries…"
+msgstr "جارٍ تحميل المكتبات…"
 
 #: front/src/views/content/libraries/Detail.vue:3
 #: front/src/views/content/libraries/Upload.vue:3
-msgid "Loading library data..."
-msgstr "جارٍ تحميل بيانات المكتبات…"
+msgid "Loading library data…"
+msgstr "جارٍ تحميل بيانات المكتبة…"
 
 #: front/src/views/Notifications.vue:4
-msgid "Loading notifications..."
+msgid "Loading notifications…"
 msgstr "عملية تحميل الإشعارات جارية…"
 
 #: front/src/views/content/remote/Home.vue:3
 msgid "Loading remote libraries..."
 msgstr "عملية تحميل المكتبات البُعدية جارية…"
 
-#: front/src/views/instance/Timeline.vue:4
-msgid "Loading timeline..."
-msgstr "عملية تحميل الخيط الزمني جارية …"
-
 #: front/src/views/content/libraries/Quota.vue:4
-msgid "Loading usage data..."
+msgid "Loading usage data…"
 msgstr "جارٍ تحميل بيانات الإستخدام…"
 
 #: front/src/components/favorites/List.vue:5
-msgid "Loading your favorites..."
-msgstr "جارٍ تحميل مفضلاتك …"
+msgid "Loading your favorites…"
+msgstr "جارٍ تحميل مفضلاتك…"
+
+#: front/src/components/manage/moderation/AccountsTable.vue:59
+#: front/src/views/admin/moderation/AccountsDetail.vue:18
+msgid "Local account"
+msgstr "حساب محلي"
+
+#: front/src/components/auth/Login.vue:78
+msgid "Log In"
+msgstr "الدخول"
 
 #: front/src/components/auth/Login.vue:4
 msgid "Log in to your Funkwhale account"
 msgstr "الدخول إلى حسابك على فانك وايل Funkwhale"
 
+#: front/src/components/auth/Logout.vue:20
+msgid "Log Out"
+msgstr "الخروج"
+
 #: front/src/components/Sidebar.vue:38
 msgid "Logged in as %{ username }"
 msgstr "مُتّصل كـ %{ username }"
@@ -1046,18 +1458,53 @@ msgstr "مُتّصل كـ %{ username }"
 msgid "Login"
 msgstr "الدخول"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:119
+msgid "Login status"
+msgstr "حالة الحساب"
+
 #: front/src/components/Sidebar.vue:52
 msgid "Logout"
 msgstr "خروج"
 
-#: front/src/components/library/Track.vue:105
+#: front/src/views/content/libraries/Home.vue:9
+msgid "Looks like you don't have a library, it's time to create one."
+msgstr "يبدو أنه ليس لديك أية مكتبة بعد، حان الأوان لإنشاء واحدة."
+
+#: front/src/components/audio/Player.vue:353
+#: src/components/audio/Player.vue:354
+msgid "Looping disabled. Click to switch to single-track looping."
+msgstr ""
+
+#: front/src/components/audio/Player.vue:356
+#: src/components/audio/Player.vue:357
+msgid "Looping on a single track. Click to switch to whole queue looping."
+msgstr ""
+
+#: front/src/components/audio/Player.vue:359
+#: src/components/audio/Player.vue:360
+msgid "Looping on whole queue. Click to disable looping."
+msgstr ""
+
+#: front/src/components/library/Track.vue:150
 msgid "Lyrics"
 msgstr "الكلمات"
 
+#: front/src/components/Sidebar.vue:210
+msgid "Main menu"
+msgstr "القائمة الرئيسية"
+
+#: front/src/views/admin/library/Base.vue:16
+msgid "Manage library"
+msgstr "إدارة المكتبة"
+
 #: front/src/components/playlists/PlaylistModal.vue:3
 msgid "Manage playlists"
 msgstr "إدارة قوائم المَقاطِع الموسيقية"
 
+#: front/src/views/admin/users/Base.vue:20
+msgid "Manage users"
+msgstr "إدارة المستخدِمين"
+
 #: front/src/views/playlists/List.vue:8
 msgid "Manage your playlists"
 msgstr "إدارة القوائم الخاصة الموسيقى"
@@ -1066,42 +1513,101 @@ msgstr "إدارة القوائم الخاصة الموسيقى"
 msgid "Mark all as read"
 msgstr "تحديد الكل كمقروء"
 
-#: front/src/views/admin/users/UsersDetail.vue:94
+#: front/src/components/notifications/NotificationRow.vue:44
+msgid "Mark as read"
+msgstr "تحديد كمقروء"
+
+#: front/src/components/notifications/NotificationRow.vue:45
+msgid "Mark as unread"
+msgstr "تحديد كغير مقروء"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:281
 msgid "MB"
 msgstr "MB"
 
-#: front/src/components/Sidebar.vue:63
+#: front/src/components/audio/Player.vue:346
+msgid "Media player"
+msgstr "مُشغّل الوسائط"
+
+#: front/src/components/Footer.vue:32
+msgid "Mobile and desktop apps"
+msgstr "تطبيقات الكمبيوتر والأجهزة المحمولة"
+
+#: front/src/components/Sidebar.vue:97
+#: src/components/manage/users/UsersTable.vue:177
+#: front/src/views/admin/moderation/AccountsDetail.vue:468
+#: front/src/views/admin/moderation/Base.vue:21
+msgid "Moderation"
+msgstr "الإشراف"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:49
+#: front/src/views/admin/moderation/DomainsDetail.vue:42
+msgid "Moderation policies help you control how your instance interact with a given domain or account."
+msgstr ""
+
+#: front/src/components/mixins/Translations.vue:20
+#: front/src/components/mixins/Translations.vue:21
+msgid "Modification date"
+msgstr "تاريخ التعديل"
+
+#: front/src/components/Sidebar.vue:63 src/views/admin/Settings.vue:82
 msgid "Music"
 msgstr "الموسيقى"
 
+#: front/src/components/audio/Player.vue:352
+msgid "Mute"
+msgstr "كتم"
+
 #: front/src/components/Sidebar.vue:34
 msgid "My account"
 msgstr "حسابي"
 
+#: front/src/components/library/radios/Builder.vue:236
+msgid "My awesome description"
+msgstr "وصفي الرائع"
+
+#: front/src/views/content/libraries/Form.vue:70
+msgid "My awesome library"
+msgstr "مكتبتي الرائعة"
+
+#: front/src/components/playlists/Form.vue:74
+msgid "My awesome playlist"
+msgstr "قائمتي الرائعة للمَقاطِع الموسيقية"
+
+#: front/src/components/library/radios/Builder.vue:235
+msgid "My awesome radio"
+msgstr "إذاعتي الرائعة"
+
 #: front/src/views/content/libraries/Home.vue:6
 msgid "My libraries"
 msgstr "مكتباتي"
 
 #: front/src/components/audio/track/Row.vue:40
-#: src/components/library/Track.vue:64
-#: front/src/components/library/Track.vue:75
-#: src/components/library/Track.vue:86
-#: front/src/components/library/Track.vue:97
+#: src/components/library/Track.vue:115
+#: front/src/components/library/Track.vue:124
+#: src/components/library/Track.vue:133
+#: front/src/components/library/Track.vue:142
 #: front/src/components/manage/library/FilesTable.vue:63
 #: front/src/components/manage/library/FilesTable.vue:69
 #: front/src/components/manage/library/FilesTable.vue:75
 #: front/src/components/manage/library/FilesTable.vue:81
 #: front/src/components/manage/users/UsersTable.vue:61
-#: front/src/views/admin/users/UsersDetail.vue:49
-#: front/src/views/content/libraries/FilesTable.vue:89
-#: front/src/views/content/libraries/FilesTable.vue:95
+#: front/src/views/admin/moderation/AccountsDetail.vue:171
+#: front/src/views/admin/moderation/DomainsDetail.vue:90
+#: front/src/views/content/libraries/FilesTable.vue:92
+#: front/src/views/content/libraries/FilesTable.vue:98
+#: front/src/views/admin/moderation/DomainsDetail.vue:109
+#: front/src/views/admin/moderation/DomainsDetail.vue:117
 msgid "N/A"
 msgstr "غير متوفر"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:39
+#: front/src/components/manage/moderation/DomainsTable.vue:38
+#: front/src/components/mixins/Translations.vue:26
 #: front/src/components/playlists/PlaylistModal.vue:31
-#: front/src/views/admin/users/UsersDetail.vue:21
+#: front/src/views/admin/moderation/DomainsDetail.vue:105
 #: front/src/views/content/libraries/Form.vue:10
-#: front/src/components/mixins/Translations.vue:25
+#: front/src/components/mixins/Translations.vue:27
 msgid "Name"
 msgstr "الإسم"
 
@@ -1110,11 +1616,15 @@ msgstr "الإسم"
 msgid "New password"
 msgstr "الكلمة السرية الجديدة"
 
-#: front/src/components/Sidebar.vue:149
+#: front/src/components/Sidebar.vue:160
 msgid "New tracks will be appended here automatically."
 msgstr "سوف يتم إضافة المَقاطِع الجديدة هنا آليًا."
 
-#: front/src/components/Sidebar.vue:116
+#: front/src/components/audio/Player.vue:350
+msgid "Next track"
+msgstr "المَقطَع التالي"
+
+#: front/src/components/Sidebar.vue:119
 msgid "No"
 msgstr "لا"
 
@@ -1122,7 +1632,15 @@ msgstr "لا"
 msgid "No add-ons, no plugins : you only need a web library"
 msgstr "لا تحتاج إلى تنصيب إضافاتٍ أو مُلحَقاتٍ : كل ما تحتاج إليه هي مكتبة موسيقية على الويب"
 
-#: front/src/components/library/Track.vue:113
+#: front/src/components/audio/Search.vue:25
+msgid "No album matched your query"
+msgstr "لم نتمكّن مِن العثور على أي ألبوم يناسب طلب بحثك"
+
+#: front/src/components/audio/Search.vue:16
+msgid "No artist matched your query"
+msgstr "لم نتمكّن مِن العثور على أي فنان يناسب طلب بحثك"
+
+#: front/src/components/library/Track.vue:158
 msgid "No lyrics available for this track."
 msgstr "لا تتوفّر هناك كلمات لهذا المَقطَع."
 
@@ -1130,6 +1648,17 @@ msgstr "لا تتوفّر هناك كلمات لهذا المَقطَع."
 msgid "No matching library."
 msgstr "ليس هناك أية مكتبة مطابِقة."
 
+#: front/src/views/Notifications.vue:26
+msgid "No notifications yet."
+msgstr "لم تتلق أي اشعار بعد."
+
+#: front/src/components/mixins/Translations.vue:10
+#: front/src/components/playlists/Form.vue:81
+#: src/views/content/libraries/Form.vue:72
+#: front/src/components/mixins/Translations.vue:11
+msgid "Nobody except me"
+msgstr "لا أحد غيري"
+
 #: front/src/views/content/libraries/Detail.vue:57
 msgid "Nobody is following this library"
 msgstr "لا أحد يتبع هذه المكتبة"
@@ -1142,7 +1671,7 @@ msgstr "غير مستعمَل"
 msgid "Notifications"
 msgstr "الإشعارات"
 
-#: front/src/App.vue:36
+#: front/src/components/Footer.vue:47
 msgid "Official website"
 msgstr "موقع الويب الرسمي"
 
@@ -1154,14 +1683,32 @@ msgstr "الكلمة السرية الجديدة"
 msgid "Open"
 msgstr "مفتوح"
 
-#: front/src/App.vue:62
-msgid "Options"
-msgstr "الخيارات"
+#: front/src/views/admin/moderation/AccountsDetail.vue:23
+msgid "Open profile"
+msgstr "افتح الصفحة الشخصية"
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:16
+msgid "Open website"
+msgstr "افتح موقع الويب"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:40
+msgid "Or customize your rule"
+msgstr "أو قم بتخصيص قاعدتك"
+
+#: front/src/components/favorites/List.vue:31
+#: src/components/library/Radios.vue:41
+#: front/src/components/manage/library/FilesTable.vue:17
+#: front/src/components/manage/users/UsersTable.vue:17
+#: front/src/views/playlists/List.vue:25
+msgid "Order"
+msgstr "الترتيب"
 
 #: front/src/components/favorites/List.vue:23
 #: src/components/library/Artists.vue:15
 #: front/src/components/library/Radios.vue:33
 #: front/src/components/manage/library/FilesTable.vue:9
+#: front/src/components/manage/moderation/AccountsTable.vue:11
+#: front/src/components/manage/moderation/DomainsTable.vue:9
 #: front/src/components/manage/users/InvitationsTable.vue:9
 #: front/src/components/manage/users/UsersTable.vue:9
 #: front/src/views/content/libraries/FilesTable.vue:21
@@ -1169,13 +1716,10 @@ msgstr "الخيارات"
 msgid "Ordering"
 msgstr "الترتيب"
 
-#: front/src/components/favorites/List.vue:31
-#: src/components/library/Artists.vue:23
-#: front/src/components/library/Radios.vue:41
-#: front/src/components/manage/library/FilesTable.vue:17
-#: front/src/components/manage/users/UsersTable.vue:17
+#: front/src/components/library/Artists.vue:23
+#: front/src/components/manage/moderation/AccountsTable.vue:19
+#: front/src/components/manage/moderation/DomainsTable.vue:17
 #: front/src/views/content/libraries/FilesTable.vue:29
-#: front/src/views/playlists/List.vue:25
 msgid "Ordering direction"
 msgstr "اتجاه الترتيب"
 
@@ -1183,21 +1727,45 @@ msgstr "اتجاه الترتيب"
 msgid "Owner"
 msgstr "المالك"
 
+#: front/src/components/PageNotFound.vue:33
+msgid "Page Not Found"
+msgstr "الصفحة غير موجودة"
+
 #: front/src/components/PageNotFound.vue:7
 msgid "Page not found!"
 msgstr "الصفحة غير موجودة !"
 
+#: front/src/components/Pagination.vue:39
+msgid "Pagination"
+msgstr ""
+
 #: front/src/components/auth/Login.vue:32 src/components/auth/Signup.vue:38
 msgid "Password"
 msgstr "كلمة السر"
 
+#: front/src/components/auth/SubsonicTokenForm.vue:95
+msgid "Password updated"
+msgstr "تم تحديث كلمة السر"
+
 #: front/src/views/auth/PasswordResetConfirm.vue:28
 msgid "Password updated successfully"
 msgstr "تم تحديث كلمة السر بنجاح"
 
-#: front/src/components/library/FileUpload.vue:105
+#: front/src/components/audio/Player.vue:349
+msgid "Pause track"
+msgstr "ألبِث المَقطَع"
+
+#: front/src/components/ShortcutsModal.vue:59
+msgid "Pause/play the current track"
+msgstr "إيقاف/تشغيل المقطع الحالي"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:12
+msgid "Paused"
+msgstr "تم توقيفه مؤقتا"
+
+#: front/src/components/library/FileUpload.vue:106
 #: front/src/views/content/libraries/FilesTable.vue:14
-#: front/src/views/content/libraries/FilesTable.vue:233
+#: front/src/views/content/libraries/FilesTable.vue:208
 msgid "Pending"
 msgstr "معلّق"
 
@@ -1209,23 +1777,24 @@ msgstr "في انتظار التسريح"
 msgid "Pending files"
 msgstr "الملفات المعلّقة"
 
-#: front/src/components/requests/Form.vue:26
-msgid "Pending requests"
-msgstr "الطلبات المعلَّقة"
+#: front/src/components/Sidebar.vue:212
+msgid "Pending follow requests"
+msgstr "طلبات المتابَعة المعلَّقة"
 
 #: front/src/components/manage/users/UsersTable.vue:42
-#: front/src/views/admin/users/UsersDetail.vue:68
+#: front/src/views/admin/moderation/AccountsDetail.vue:137
 msgid "Permissions"
 msgstr "الصّلاحيّات"
 
 #: front/src/components/audio/PlayButton.vue:9
-#: src/components/library/Track.vue:30
+#: src/components/library/Track.vue:40
 msgid "Play"
 msgstr "غنّي"
 
 #: front/src/components/audio/album/Card.vue:50
 #: front/src/components/audio/artist/Card.vue:44
-#: src/components/library/Album.vue:28 front/src/views/playlists/Detail.vue:23
+#: src/components/library/Album.vue:28
+#: front/src/components/library/Album.vue:73 src/views/playlists/Detail.vue:23
 msgid "Play all"
 msgstr "تشغيل الكل"
 
@@ -1234,13 +1803,36 @@ msgid "Play all albums"
 msgstr "إعزف كافة الألبومات"
 
 #: front/src/components/audio/PlayButton.vue:15
+#: front/src/components/audio/PlayButton.vue:65
 msgid "Play next"
 msgstr "إعزف التالي"
 
+#: front/src/components/ShortcutsModal.vue:67
+msgid "Play next track"
+msgstr "شغِّل المَقطَع التالي"
+
 #: front/src/components/audio/PlayButton.vue:16
+#: front/src/components/audio/PlayButton.vue:63
+#: front/src/components/audio/PlayButton.vue:70
 msgid "Play now"
 msgstr "إعزف الآن"
 
+#: front/src/components/ShortcutsModal.vue:63
+msgid "Play previous track"
+msgstr "شغِّل المَقطَع السابق"
+
+#: front/src/components/Sidebar.vue:211
+msgid "Play this track"
+msgstr "شغِّل هذا المَقطَع"
+
+#: front/src/components/audio/Player.vue:348
+msgid "Play track"
+msgstr "إعزف المَقطَع"
+
+#: front/src/views/playlists/Detail.vue:90
+msgid "Playlist"
+msgstr "قائمة المَقاطِع"
+
 #: front/src/views/playlists/Detail.vue:12
 msgid "Playlist containing %{ count } track, by %{ username }"
 msgid_plural "Playlist containing %{ count } tracks, by %{ username }"
@@ -1272,8 +1864,8 @@ msgid "Playlist visibility"
 msgstr "مدى رؤية القائمة"
 
 #: front/src/components/Sidebar.vue:71 src/components/library/Home.vue:16
-#: front/src/components/library/Library.vue:13 src/views/playlists/List.vue:104
-#: front/src/views/admin/Settings.vue:82
+#: front/src/components/library/Library.vue:13 src/views/admin/Settings.vue:83
+#: front/src/views/playlists/List.vue:106
 msgid "Playlists"
 msgstr "قوائم المَقاطِع"
 
@@ -1293,6 +1885,22 @@ msgstr "الرجاء التأكّد مِن صحة اسم المستخدِم و 
 msgid "PNG, GIF or JPG. At most 2MB. Will be downscaled to 400x400px."
 msgstr "نسق PNG أو GIF أو JPG. الحجم الأقصى 2 ميغابيت. سيتم تغيير حجمها إلى 400×400 بكسل."
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:118
+msgid "Prevent account or domain from triggering notifications, except from followers."
+msgstr ""
+
+#: front/src/components/audio/EmbedWizard.vue:29
+msgid "Preview"
+msgstr "معاينة"
+
+#: front/src/components/audio/Player.vue:347
+msgid "Previous track"
+msgstr "المَقطَع السابق"
+
+#: front/src/views/content/remote/Card.vue:39
+msgid "Problem during scanning"
+msgstr "خطأ أثناء المسح"
+
 #: front/src/components/library/FileUpload.vue:58
 msgid "Proceed"
 msgstr "واصل"
@@ -1304,8 +1912,10 @@ msgstr "المواصلة إلى صفحة تسجيل الدخول"
 
 #: front/src/components/library/FileUpload.vue:17
 msgid "Processing"
-msgstr ""
+msgstr "جارٍ العمل"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:188
+#: front/src/components/manage/moderation/DomainsTable.vue:168
 #: front/src/views/content/libraries/Quota.vue:36
 #: front/src/views/content/libraries/Quota.vue:39
 #: front/src/views/content/libraries/Quota.vue:62
@@ -1331,6 +1941,18 @@ msgstr "هل تريد إزالة الملفات المتخطاة؟"
 msgid "Queue"
 msgstr "قائمة الإنتظار"
 
+#: front/src/components/audio/Player.vue:282
+msgid "Queue shuffled!"
+msgstr "تم خلط قائمة الإنتظار !"
+
+#: front/src/views/radios/Detail.vue:80
+msgid "Radio"
+msgstr "الإذاعة"
+
+#: front/src/components/library/radios/Builder.vue:233
+msgid "Radio Builder"
+msgstr "مُنشِئ الإذاعات و الراديو"
+
 #: front/src/components/library/radios/Builder.vue:15
 msgid "Radio created"
 msgstr "تم إنشاء الإذاعة"
@@ -1344,13 +1966,25 @@ msgid "Radio updated"
 msgstr "تم تحديث الإذاعة"
 
 #: front/src/components/library/Library.vue:10
-#: src/components/library/Radios.vue:142
+#: src/components/library/Radios.vue:141
 msgid "Radios"
 msgstr "الإذاعات"
 
-#: front/src/views/instance/Timeline.vue:7
-msgid "Recent activity on this instance"
-msgstr "أحدث الأنشطة على مثيل الخادوم هذا"
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:39
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:25
+msgid "Reason"
+msgstr "السبب"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:222
+#: front/src/views/admin/moderation/DomainsDetail.vue:179
+msgid "Received library follows"
+msgstr ""
+
+#: front/src/components/manage/moderation/DomainsTable.vue:40
+#: front/src/components/mixins/Translations.vue:36
+#: front/src/components/mixins/Translations.vue:37
+msgid "Received messages"
+msgstr "الرسائل الواردة"
 
 #: front/src/components/library/Home.vue:24
 msgid "Recently added"
@@ -1364,11 +1998,18 @@ msgstr "تمت إضافتها إلى المفضلة حديثا"
 msgid "Recently listened"
 msgstr "مَقاطِع أستُمِع إليها مؤخرا"
 
-#: front/src/views/admin/users/UsersDetail.vue:103
 #: front/src/views/content/remote/Home.vue:15
 msgid "Refresh"
 msgstr "إنعاش"
 
+#: front/src/views/admin/moderation/DomainsDetail.vue:135
+msgid "Refresh node info"
+msgstr ""
+
+#: front/src/components/common/ActionTable.vue:272
+msgid "Refresh table content"
+msgstr "تحديث محتوى الجدول"
+
 #: front/src/components/auth/Profile.vue:12
 msgid "Registered since %{ date }"
 msgstr "مُسجّل منذ %{ date }"
@@ -1385,10 +2026,19 @@ msgstr "مستخدِم عادي"
 msgid "Reject"
 msgstr "رفض"
 
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:32
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:123
+msgid "Reject media"
+msgstr "ارفض الوسائط"
+
 #: front/src/views/content/libraries/Detail.vue:43
 msgid "Rejected"
 msgstr "تم رفضه"
 
+#: front/src/views/content/libraries/FilesTable.vue:234
+msgid "Relaunch import"
+msgstr "إعادة محاولة الإستيراد"
+
 #: front/src/views/content/remote/Home.vue:6
 msgid "Remote libraries"
 msgstr "المكتبات البُعدية"
@@ -1405,6 +2055,22 @@ msgstr "حذف"
 msgid "Remove avatar"
 msgstr "حذف الصورة الرمزية"
 
+#: front/src/components/favorites/TrackFavoriteIcon.vue:26
+msgid "Remove from favorites"
+msgstr "حذف مِن المفضلة"
+
+#: front/src/views/content/libraries/Quota.vue:38
+msgid "Removes uploaded but yet to be processed tracks completely, adding the corresponding data to your quota."
+msgstr ""
+
+#: front/src/views/content/libraries/Quota.vue:64
+msgid "Removes uploaded tracks skipped during the import processes completely, adding the corresponding data to your quota."
+msgstr ""
+
+#: front/src/views/content/libraries/Quota.vue:90
+msgid "Removes uploaded tracks that could not be processed by the server completely, adding the corresponding data to your quota."
+msgstr ""
+
 #: front/src/components/auth/SubsonicTokenForm.vue:34
 #: front/src/components/auth/SubsonicTokenForm.vue:37
 msgid "Request a new password"
@@ -1418,11 +2084,8 @@ msgstr "متأكد مِن أنك تريد إعادة طلب كلمة سرية ج
 msgid "Request a password"
 msgstr "طلب كلمة سرية"
 
-#: front/src/components/requests/Form.vue:20
-msgid "Request submitted!"
-msgstr "تم إرسال الطلب !"
-
 #: front/src/components/auth/Login.vue:34 src/views/auth/PasswordReset.vue:4
+#: front/src/views/auth/PasswordReset.vue:52
 msgid "Reset your password"
 msgstr "إعادة تعيين كلمتك السرية"
 
@@ -1432,30 +2095,52 @@ msgstr "إعادة تعيين كلمتك السرية"
 msgid "Results per page"
 msgstr "عدد نتائج البحث في كل صفحة"
 
+#: front/src/views/auth/EmailConfirm.vue:17
+msgid "Return to login"
+msgstr "العودة إلى صفحة تسجيل الدخول"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:16
+msgid "Rule"
+msgstr "القاعدة"
+
 #: front/src/components/admin/SettingsGroup.vue:63
 #: front/src/components/library/radios/Builder.vue:33
 msgid "Save"
 msgstr "احفظ"
 
+#: front/src/views/content/remote/Card.vue:165
+msgid "Scan launched"
+msgstr "بدأ الإستكشاف"
+
+#: front/src/views/content/remote/Card.vue:63
+msgid "Scan now"
+msgstr "قم بالمسح الآن"
+
+#: front/src/views/content/remote/Card.vue:166
+msgid "Scan skipped (previous scan is too recent)"
+msgstr ""
+
 #: front/src/views/content/remote/Card.vue:31
-msgid "Scan pending"
-msgstr "المسح المعلق"
+msgid "Scan waiting"
+msgstr "المسح معلق"
 
 #: front/src/views/content/remote/Card.vue:43
-msgid "Scanned successfully"
-msgstr "تمت عملية المسح بنجاح"
+msgid "Scanned"
+msgstr "تم مسحها"
 
 #: front/src/views/content/remote/Card.vue:47
 msgid "Scanned with errors"
 msgstr "تمت عملية المسح بأخطاء"
 
 #: front/src/views/content/remote/Card.vue:35
-msgid "Scanning... (%{ progress }%)"
-msgstr "جارٍ المسح (%{ progress }%)"
+msgid "Scanning… (%{ progress }%)"
+msgstr "جارٍ المسح… (%{ progress }%)"
 
 #: front/src/components/library/Artists.vue:10
 #: src/components/library/Radios.vue:29
 #: front/src/components/manage/library/FilesTable.vue:5
+#: front/src/components/manage/moderation/AccountsTable.vue:5
+#: front/src/components/manage/moderation/DomainsTable.vue:5
 #: front/src/components/manage/users/InvitationsTable.vue:5
 #: front/src/components/manage/users/UsersTable.vue:5
 #: front/src/views/content/libraries/FilesTable.vue:5
@@ -1467,20 +2152,55 @@ msgstr "البحث"
 msgid "Search a remote library"
 msgstr "البحث عن مكتبة بُعدية"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:171
+msgid "Search by domain, username, bio..."
+msgstr "البحث عبر اسم نطاق أو مستخدِم أو نبذة…"
+
+#: front/src/components/manage/moderation/DomainsTable.vue:151
+msgid "Search by name..."
+msgstr "البحث باستخدام اسم…"
+
+#: front/src/views/content/libraries/FilesTable.vue:201
+msgid "Search by title, artist, album…"
+msgstr "البحث حسب العنوان أو إسم فنان أو ألبوم…"
+
+#: front/src/components/manage/library/FilesTable.vue:176
+msgid "Search by title, artist, domain…"
+msgstr "البحث حسب العنوان أو إسم فنان أو نطاق…"
+
+#: front/src/components/manage/users/InvitationsTable.vue:153
+msgid "Search by username, e-mail address, code…"
+msgstr "البحث باسم مستخدِم أو عنوان بريد إلكتروني أو رمز…"
+
+#: front/src/components/manage/users/UsersTable.vue:163
+msgid "Search by username, e-mail address, name…"
+msgstr "البحث باسم مستخدِم أو عنوان بريد إلكتروني أو إسم…"
+
+#: front/src/components/audio/SearchBar.vue:20
+msgid "Search for artists, albums, tracks…"
+msgstr "البحث عن فنانين أو ألبومات أو مَقاطِع صوتية…"
+
 #: front/src/components/audio/Search.vue:2
 msgid "Search for some music"
 msgstr "البحث عن بعض مِن الموسيقى"
 
-#: front/src/components/library/Track.vue:116
+#: front/src/components/library/Track.vue:162
 msgid "Search on lyrics.wikia.com"
 msgstr "البحث في lyrics.wikia.com"
 
 #: front/src/components/library/Album.vue:33
 #: src/components/library/Artist.vue:31
-#: front/src/components/library/Track.vue:40
+#: front/src/components/library/Track.vue:47
 msgid "Search on Wikipedia"
 msgstr "البحث في ويكيبيديا"
 
+#: front/src/components/library/Library.vue:32
+#: src/views/admin/library/Base.vue:17
+#: front/src/views/admin/moderation/Base.vue:22
+#: src/views/admin/users/Base.vue:21 front/src/views/content/Base.vue:19
+msgid "Secondary menu"
+msgstr "القائمة الثانوية"
+
 #: front/src/views/admin/Settings.vue:15
 msgid "Sections"
 msgstr "الأقسام"
@@ -1489,7 +2209,7 @@ msgstr "الأقسام"
 msgid "Select a filter"
 msgstr "إختيار عامل تصفية"
 
-#: front/src/components/common/ActionTable.vue:64
+#: front/src/components/common/ActionTable.vue:77
 msgid "Select all %{ total } elements"
 msgid_plural "Select all %{ total } elements"
 msgstr[0] ""
@@ -1499,13 +2219,13 @@ msgstr[3] ""
 msgstr[4] ""
 msgstr[5] ""
 
-#: front/src/components/common/ActionTable.vue:73
+#: front/src/components/common/ActionTable.vue:86
 msgid "Select only current page"
 msgstr "تحديد الصفحة الحالية فقط"
 
-#: front/src/components/Sidebar.vue:43 src/components/Sidebar.vue:88
-#: front/src/components/manage/users/UsersTable.vue:185
-#: front/src/views/admin/users/UsersDetail.vue:189
+#: front/src/components/Sidebar.vue:43 src/components/Sidebar.vue:85
+#: front/src/components/manage/users/UsersTable.vue:181
+#: front/src/views/admin/moderation/AccountsDetail.vue:472
 msgid "Settings"
 msgstr "الإعدادات"
 
@@ -1522,8 +2242,9 @@ msgid "Share link"
 msgstr "رابط المشاركة"
 
 #: front/src/views/content/libraries/Detail.vue:15
-msgid "Share this link with other users so they can request an access to your library."
-msgstr "قم بمشاركة هذا الرابط مع مستخدمين آخرين ليتمكنوا مِن طلب الوصول إلى مكتبتك."
+msgid "Share this link with other users so they can request access to your library."
+msgstr ""
+"قم بمشاركة هذا الرابط مع مستخدمين آخرين ليتمكنوا مِن طلب الوصول إلى مكتبتك."
 
 #: front/src/views/content/libraries/Detail.vue:14
 #: front/src/views/content/remote/Card.vue:73
@@ -1531,15 +2252,14 @@ msgid "Sharing link"
 msgstr "رابط المشاركة"
 
 #: front/src/components/audio/album/Card.vue:40
-#, fuzzy
 msgid "Show %{ count } more track"
 msgid_plural "Show %{ count } more tracks"
-msgstr[0] "%{ count } مقاطع"
-msgstr[1] "%{ count } مَقطَع"
-msgstr[2] "%{ count } مَقاطِع"
-msgstr[3] "%{ count } مَقطَع"
-msgstr[4] "%{ count } مَقاطِع"
-msgstr[5] "%{ count } مَقاطِع"
+msgstr[0] "اعرض %{ count } مقاطع"
+msgstr[1] "اعرض %{ count } مَقطَع"
+msgstr[2] "اعرض %{ count } مَقاطِع"
+msgstr[3] "اعرض %{ count } مَقطَع"
+msgstr[4] "اعرض %{ count } مَقاطِع"
+msgstr[5] "اعرض %{ count } مَقاطِع"
 
 #: front/src/components/audio/artist/Card.vue:30
 msgid "Show 1 more album"
@@ -1551,32 +2271,70 @@ msgstr[3] ""
 msgstr[4] ""
 msgstr[5] ""
 
+#: front/src/components/ShortcutsModal.vue:42
+msgid "Show available keyboard shortcuts"
+msgstr "عرض اختصارات لوحة المفاتيح المتوفّرة"
+
 #: front/src/views/Notifications.vue:10
 msgid "Show read notifications"
 msgstr "عرض الإشعارات المقروءة"
 
+#: front/src/components/forms/PasswordInput.vue:25
+msgid "Show/hide password"
+msgstr "إظهار/إخفاء الكلمة السرية"
+
 #: front/src/components/manage/library/FilesTable.vue:97
+#: front/src/components/manage/moderation/AccountsTable.vue:88
+#: front/src/components/manage/moderation/DomainsTable.vue:74
 #: front/src/components/manage/users/InvitationsTable.vue:76
 #: front/src/components/manage/users/UsersTable.vue:87
-#: front/src/views/content/libraries/FilesTable.vue:111
+#: front/src/views/content/libraries/FilesTable.vue:114
 msgid "Showing results %{ start }-%{ end } on %{ total }"
 msgstr "عرض النتائج %{ start }-%{ end } مِن %{ total }"
 
+#: front/src/components/ShortcutsModal.vue:83
+msgid "Shuffle queue"
+msgstr "خلط قائمة الإنتظار"
+
+#: front/src/components/audio/Player.vue:362
+msgid "Shuffle your queue"
+msgstr "خلط قائمة الإنتظار"
+
+#: front/src/components/auth/Signup.vue:95
+msgid "Sign Up"
+msgstr "التسجيل"
+
 #: front/src/components/manage/users/UsersTable.vue:40
-#: front/src/views/admin/users/UsersDetail.vue:37
 msgid "Sign-up"
 msgstr "التسجيل"
 
-#: front/src/components/library/FileUpload.vue:84
-#: src/components/library/Track.vue:69
+#: front/src/components/mixins/Translations.vue:31
+#: front/src/views/admin/moderation/AccountsDetail.vue:176
+#: front/src/components/mixins/Translations.vue:32
+msgid "Sign-up date"
+msgstr "تاريخ التسجيل"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:24
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:115
+msgid "Silence activity"
+msgstr "كتم النشاط"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:28
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:119
+msgid "Silence notifications"
+msgstr "كتم الإشعارات"
+
+#: front/src/components/library/FileUpload.vue:85
+#: front/src/components/library/Track.vue:120
 #: front/src/components/manage/library/FilesTable.vue:44
-#: front/src/views/content/libraries/FilesTable.vue:57
-#: front/src/components/mixins/Translations.vue:27
+#: front/src/components/mixins/Translations.vue:28
+#: front/src/views/content/libraries/FilesTable.vue:60
+#: front/src/components/mixins/Translations.vue:29
 msgid "Size"
 msgstr "الحجم"
 
 #: front/src/views/content/libraries/FilesTable.vue:15
-#: front/src/views/content/libraries/FilesTable.vue:229
+#: front/src/views/content/libraries/FilesTable.vue:204
 msgid "Skipped"
 msgstr "تمّ تجاهله"
 
@@ -1584,26 +2342,14 @@ msgstr "تمّ تجاهله"
 msgid "Skipped files"
 msgstr "الملفات التي تمّ تجاهلها"
 
-#: front/src/components/requests/Form.vue:3
-msgid "Something's missing in the library? Let us know what you would like to listen!"
-msgstr "هناك شيء ما ناقص في هذه المكتبة ؟ أبلغنا عما تريد الإستماع إليه !"
-
-#: front/src/components/audio/Search.vue:25
-msgid "Sorry, we did not found any album matching your query"
-msgstr "المعذرة، لم نتمكّن مِن العثور على أي ألبوم يناسب طلب بحثك"
-
-#: front/src/components/audio/Search.vue:16
-msgid "Sorry, we did not found any artist matching your query"
-msgstr "المعذرة، لم نتمكّن مِن العثور على أي فنان يناسب طلب بحثك"
+#: front/src/views/admin/moderation/DomainsDetail.vue:97
+msgid "Software"
+msgstr "البرمجيات"
 
-#: front/src/App.vue:40
+#: front/src/components/Footer.vue:49
 msgid "Source code"
 msgstr "شفرة المصدر"
 
-#: front/src/App.vue:39
-msgid "Source code (%{version})"
-msgstr "الشفرة المصدرية (%{version})"
-
 #: front/src/components/auth/Profile.vue:23
 #: front/src/components/manage/users/UsersTable.vue:70
 msgid "Staff member"
@@ -1613,10 +2359,23 @@ msgstr "عضو في الفريق"
 msgid "Start"
 msgstr "إبدأ"
 
-#: front/src/components/library/FileUpload.vue:85
+#: front/src/views/admin/Settings.vue:86
+msgid "Statistics"
+msgstr "الإحصائيات"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:454
+msgid "Statistics are computed from known activity and content on your instance, and do not reflect general activity for this account"
+msgstr ""
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:358
+msgid "Statistics are computed from known activity and content on your instance, and do not reflect general activity for this domain"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:86
 #: front/src/components/manage/users/InvitationsTable.vue:17
 #: front/src/components/manage/users/InvitationsTable.vue:39
 #: front/src/components/manage/users/UsersTable.vue:43
+#: front/src/views/admin/moderation/DomainsDetail.vue:123
 #: front/src/views/content/libraries/Detail.vue:28
 msgid "Status"
 msgstr "الحالة"
@@ -1625,23 +2384,23 @@ msgstr "الحالة"
 msgid "Stop"
 msgstr "إيقاف"
 
-#: front/src/components/Sidebar.vue:150
+#: front/src/components/Sidebar.vue:161
 msgid "Stop radio"
 msgstr "إيقاف الإذاعة"
 
-#: front/src/App.vue:11 src/components/requests/Form.vue:17
+#: front/src/App.vue:22
 msgid "Submit"
 msgstr "إرسال"
 
-#: front/src/components/requests/Form.vue:22
-msgid "Submit another request"
-msgstr "إرسال طلب جديد آخَر"
+#: front/src/views/admin/Settings.vue:85
+msgid "Subsonic"
+msgstr "صاب سونيك"
 
 #: front/src/components/auth/SubsonicTokenForm.vue:2
 msgid "Subsonic API password"
 msgstr "الكلمة السرية لواجهة برمجة التطبيقات صاب سونيك Subsonic"
 
-#: front/src/App.vue:13
+#: front/src/App.vue:26
 msgid "Suggested choices"
 msgstr "الخيارات المتاحة"
 
@@ -1649,9 +2408,17 @@ msgstr "الخيارات المتاحة"
 msgid "Summary"
 msgstr "الملخص"
 
+#: front/src/components/Footer.vue:39
+msgid "Support forum"
+msgstr "المنتدى"
+
+#: front/src/components/library/FileUpload.vue:78
+msgid "Supported extensions: %{ extensions }"
+msgstr ""
+
 #: front/src/components/playlists/Editor.vue:9
-msgid "Syncing changes to server..."
-msgstr "مزامنة التغييرات مع الخادم …"
+msgid "Syncing changes to server…"
+msgstr "مزامنة التغييرات مع الخادم…"
 
 #: front/src/components/common/CopyInput.vue:3
 msgid "Text copied to clipboard!"
@@ -1661,18 +2428,23 @@ msgstr "تم نسخ النص إلى الحافظة!"
 msgid "That's simple: we loved Grooveshark and we want to build something even better."
 msgstr "حسنًا الأمر سهل : أحببنا غروف شارْك و أردنا تصميم مشروع أحسَن منه بكثير."
 
-#: front/src/App.vue:58
+#: front/src/components/Footer.vue:53
 msgid "The funkwhale logo was kindly designed and provided by Francis Gading."
 msgstr "تم تصميم شعار فانك وايل funkwhale بفضل و كَرَم Francis Gading."
 
 #: front/src/views/content/libraries/Form.vue:34
-msgid "The library and all its tracks will be deleted. This action is irreversible."
-msgstr "سوف يتم حذف المكتبة و كل ما تحتويه مِن مقاطِع. لا يمكن التراجع عن هذا الإجراء."
+msgid "The library and all its tracks will be deleted. This can not be undone."
+msgstr ""
+"سوف يتم حذف المكتبة و كل ما تحتويه مِن مقاطِع. لا يمكن الغاء هذا الإجراء."
 
 #: front/src/components/library/FileUpload.vue:39
 msgid "The music files you are uploading are tagged properly:"
 msgstr "الملفات الموسيقية التي هي في صدد الإرسال موسومة بطريقة صحيحة:"
 
+#: front/src/components/audio/Player.vue:67
+msgid "The next track will play automatically in a few seconds..."
+msgstr ""
+
 #: front/src/components/Home.vue:121
 msgid "The plaform is free and open-source, you can install it and modify it without worries"
 msgstr "المنصّة مجانية و مفتوحة المصدر، بإمكانكم تنصيبها و تعديلها كما يحلو لكم دون قيود"
@@ -1683,9 +2455,17 @@ msgstr "واجهة برمجة تطبيقات صاب سونيك غير متوفر
 
 #: front/src/components/library/FileUpload.vue:43
 msgid "The uploaded music files are in OGG, Flac or MP3 format"
-msgstr ""
+msgstr "نسق ملفات الموسيقى المُرسَلة يجب أن تكون OGG أو Flac أو MP3"
 
-#: front/src/components/library/Album.vue:52
+#: front/src/views/content/Home.vue:4
+msgid "There are various ways to grab new content and make it available here."
+msgstr "هناك عدة أساليب لجلب محتويات جديدة و عرضها هنا."
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:66
+msgid "This action is irreversible."
+msgstr "لا يمكن الغاء هذا الإجراء."
+
+#: front/src/components/library/Album.vue:91
 msgid "This album is present in the following libraries:"
 msgstr "هذا الألبوم متوفر على المكتبات التالية:"
 
@@ -1693,23 +2473,44 @@ msgstr "هذا الألبوم متوفر على المكتبات التالية:
 msgid "This artist is present in the following libraries:"
 msgstr "هذا الفنان متوفر على المكتبات التالية:"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:55
+#: front/src/views/admin/moderation/DomainsDetail.vue:48
+msgid "This domain is subject to specific moderation rules"
+msgstr ""
+
 #: front/src/views/content/Home.vue:9
-msgid "This instance offers up to %{quota} of storage space to every user."
-msgstr "مثيل الخادوم هذا يُتيح حجم تخرين يُقدَّر بـ %{quota} لكل مستخدِم."
+msgid "This instance offers up to %{quota} of storage space for every user."
+msgstr "مثيل الخادوم هذا يُتيح مساحة تخرين تُقدَّر بـ %{quota} لكل مستخدِم."
 
 #: front/src/components/auth/Profile.vue:16
 msgid "This is you!"
 msgstr "هذا أنت !"
 
-#: front/src/components/common/ActionTable.vue:38
-msgid "This may affect a lot of elements, please double check this is really what you want."
+#: front/src/views/content/libraries/Form.vue:71
+msgid "This library contains my personal music, I hope you like it."
+msgstr "تحتوي هذه المكتبة على الموسيقى الخاصة بي، أتمنى أنها ستلقَى إعجابك."
+
+#: front/src/views/content/remote/Card.vue:131
+msgid "This library is private and your approval from its owner is needed to access its content"
+msgstr ""
+
+#: front/src/views/content/remote/Card.vue:132
+msgid "This library is public and you can access its content freely"
+msgstr ""
+
+#: front/src/components/common/ActionTable.vue:45
+msgid "This may affect a lot of elements or have irreversible consequences, please double check this is really what you want."
 msgstr ""
 
 #: front/src/components/library/FileUpload.vue:52
 msgid "This reference will be used to group imported files together."
 msgstr ""
 
-#: front/src/components/library/Track.vue:125
+#: front/src/components/audio/PlayButton.vue:73
+msgid "This track is not available in any library you have access to"
+msgstr ""
+
+#: front/src/components/library/Track.vue:171
 msgid "This track is present in the following libraries:"
 msgstr "هذا المقطع متوفر كذلك على المكتبات التالية:"
 
@@ -1725,168 +2526,11 @@ msgstr "سوف يؤدي ذلك إلى الحذف الكُلّي لهذه الإ
 msgid "This will completely disable access to the Subsonic API using from account."
 msgstr ""
 
-#: front/src/App.vue:162 src/components/About.vue:55
-#: src/components/Home.vue:154 front/src/components/PageNotFound.vue:33
-#: src/components/Sidebar.vue:203 front/src/components/Sidebar.vue:204
-#: src/components/audio/PlayButton.vue:54
-#: front/src/components/audio/PlayButton.vue:55
-#: front/src/components/audio/PlayButton.vue:56
-#: front/src/components/audio/PlayButton.vue:61
-#: front/src/components/audio/PlayButton.vue:64
-#: front/src/components/audio/PlayButton.vue:158
-#: src/components/audio/Player.vue:216
-#: front/src/components/audio/Player.vue:273
-#: src/components/audio/Player.vue:274
-#: front/src/components/audio/Player.vue:275
-#: src/components/audio/Player.vue:276
-#: front/src/components/audio/Player.vue:277
-#: src/components/audio/Player.vue:278
-#: front/src/components/audio/Player.vue:279
-#: src/components/audio/Player.vue:280
-#: front/src/components/audio/Player.vue:281
-#: src/components/audio/Player.vue:282
-#: front/src/components/audio/Player.vue:283 src/components/audio/Search.vue:65
-#: front/src/components/audio/SearchBar.vue:20
-#: src/components/audio/SearchBar.vue:25
-#: front/src/components/audio/SearchBar.vue:26
-#: src/components/audio/SearchBar.vue:27 front/src/components/auth/Login.vue:77
-#: src/components/auth/Login.vue:78 front/src/components/auth/Logout.vue:20
-#: src/components/auth/Profile.vue:47
-#: front/src/components/auth/Settings.vue:249 src/components/auth/Signup.vue:95
-#: front/src/components/auth/Signup.vue:96 src/components/auth/Signup.vue:97
-#: front/src/components/auth/Signup.vue:98
-#: front/src/components/auth/SubsonicTokenForm.vue:95
-#: front/src/components/auth/SubsonicTokenForm.vue:111
-#: front/src/components/favorites/List.vue:110
-#: front/src/components/favorites/TrackFavoriteIcon.vue:19
-#: front/src/components/favorites/TrackFavoriteIcon.vue:21
-#: front/src/components/forms/PasswordInput.vue:25
-#: front/src/components/library/Album.vue:101
-#: src/components/library/Artist.vue:129
-#: front/src/components/library/Artists.vue:119
-#: front/src/components/library/Artists.vue:120
-#: front/src/components/library/FileUpload.vue:238
-#: front/src/components/library/FileUpload.vue:239
-#: front/src/components/library/FileUpload.vue:240
-#: front/src/components/library/FileUpload.vue:241
-#: src/components/library/Home.vue:65
-#: front/src/components/library/Radios.vue:141
-#: src/components/library/Radios.vue:142
-#: front/src/components/library/Track.vue:195
-#: front/src/components/library/radios/Builder.vue:233
-#: front/src/components/library/radios/Builder.vue:235
-#: front/src/components/library/radios/Builder.vue:236
-#: front/src/components/manage/library/FilesTable.vue:176
-#: front/src/components/manage/library/FilesTable.vue:190
-#: front/src/components/manage/users/InvitationForm.vue:58
-#: front/src/components/manage/users/InvitationsTable.vue:153
-#: front/src/components/manage/users/InvitationsTable.vue:167
-#: front/src/components/manage/users/UsersTable.vue:163
-#: front/src/components/manage/users/UsersTable.vue:173
-#: front/src/components/manage/users/UsersTable.vue:177
-#: front/src/components/manage/users/UsersTable.vue:181
-#: front/src/components/manage/users/UsersTable.vue:185
-#: front/src/components/metadata/ArtistCard.vue:49
-#: front/src/components/metadata/ReleaseCard.vue:53
-#: front/src/components/metadata/Search.vue:114
-#: front/src/components/metadata/Search.vue:130
-#: front/src/components/metadata/Search.vue:134
-#: front/src/components/metadata/Search.vue:138
-#: front/src/components/mixins/Translations.vue:7
-#: front/src/components/mixins/Translations.vue:8
-#: front/src/components/mixins/Translations.vue:10
-#: front/src/components/mixins/Translations.vue:11
-#: front/src/components/mixins/Translations.vue:16
-#: front/src/components/mixins/Translations.vue:17
-#: front/src/components/mixins/Translations.vue:18
-#: front/src/components/mixins/Translations.vue:19
-#: front/src/components/mixins/Translations.vue:20
-#: front/src/components/mixins/Translations.vue:21
-#: front/src/components/mixins/Translations.vue:22
-#: front/src/components/mixins/Translations.vue:23
-#: front/src/components/mixins/Translations.vue:24
-#: front/src/components/mixins/Translations.vue:25
-#: front/src/components/mixins/Translations.vue:26
-#: front/src/components/mixins/Translations.vue:27
-#: front/src/components/mixins/Translations.vue:28
-#: front/src/components/mixins/Translations.vue:29
-#: front/src/components/mixins/Translations.vue:30
-#: front/src/components/mixins/Translations.vue:31
-#: front/src/components/notifications/NotificationRow.vue:39
-#: front/src/components/notifications/NotificationRow.vue:40
-#: front/src/components/notifications/NotificationRow.vue:44
-#: front/src/components/notifications/NotificationRow.vue:45
-#: front/src/components/notifications/NotificationRow.vue:62
-#: front/src/components/playlists/Editor.vue:163
-#: src/components/playlists/Form.vue:74
-#: front/src/components/playlists/Form.vue:81
-#: src/components/playlists/Form.vue:85
-#: front/src/components/playlists/Form.vue:89
-#: front/src/components/playlists/PlaylistModal.vue:116
-#: front/src/components/playlists/TrackPlaylistIcon.vue:32
-#: front/src/components/requests/Form.vue:73
-#: src/components/requests/Form.vue:74
-#: front/src/components/requests/Form.vue:75 src/views/Notifications.vue:74
-#: front/src/views/admin/Settings.vue:75 src/views/admin/Settings.vue:80
-#: front/src/views/admin/Settings.vue:81 src/views/admin/Settings.vue:82
-#: front/src/views/admin/Settings.vue:83 src/views/admin/Settings.vue:84
-#: front/src/views/admin/Settings.vue:85 src/views/admin/Settings.vue:86
-#: front/src/views/admin/library/Base.vue:16
-#: src/views/admin/library/FilesList.vue:21
-#: front/src/views/admin/users/Base.vue:20
-#: front/src/views/admin/users/InvitationsList.vue:24
-#: front/src/views/admin/users/UsersDetail.vue:169
-#: front/src/views/admin/users/UsersDetail.vue:170
-#: front/src/views/admin/users/UsersDetail.vue:177
-#: front/src/views/admin/users/UsersDetail.vue:181
-#: front/src/views/admin/users/UsersDetail.vue:185
-#: front/src/views/admin/users/UsersDetail.vue:189
-#: front/src/views/admin/users/UsersList.vue:21
-#: src/views/auth/EmailConfirm.vue:51 front/src/views/auth/PasswordReset.vue:52
-#: src/views/auth/PasswordReset.vue:53
-#: front/src/views/auth/PasswordResetConfirm.vue:62
-#: src/views/content/Base.vue:19 front/src/views/content/Home.vue:35
-#: src/views/content/libraries/Card.vue:58
-#: front/src/views/content/libraries/Card.vue:59
-#: front/src/views/content/libraries/Card.vue:60
-#: front/src/views/content/libraries/Card.vue:61
-#: front/src/views/content/libraries/DetailArea.vue:24
-#: front/src/views/content/libraries/FilesTable.vue:226
-#: front/src/views/content/libraries/FilesTable.vue:229
-#: front/src/views/content/libraries/FilesTable.vue:230
-#: front/src/views/content/libraries/FilesTable.vue:233
-#: front/src/views/content/libraries/FilesTable.vue:234
-#: front/src/views/content/libraries/FilesTable.vue:237
-#: front/src/views/content/libraries/FilesTable.vue:238
-#: front/src/views/content/libraries/FilesTable.vue:241
-#: front/src/views/content/libraries/FilesTable.vue:242
-#: front/src/views/content/libraries/FilesTable.vue:258
-#: front/src/views/content/libraries/FilesTable.vue:259
-#: front/src/views/content/libraries/Form.vue:70
-#: front/src/views/content/libraries/Form.vue:71
-#: front/src/views/content/libraries/Form.vue:72
-#: front/src/views/content/libraries/Form.vue:73
-#: front/src/views/content/libraries/Form.vue:74
-#: front/src/views/content/libraries/Form.vue:106
-#: front/src/views/content/libraries/Form.vue:109
-#: front/src/views/content/libraries/Form.vue:129
-#: front/src/views/content/remote/Card.vue:131
-#: src/views/content/remote/Card.vue:132
-#: front/src/views/content/remote/Card.vue:165
-#: src/views/content/remote/Card.vue:166
-#: front/src/views/content/remote/ScanForm.vue:48
-#: src/views/instance/Timeline.vue:57 front/src/views/playlists/Detail.vue:90
-#: src/views/playlists/List.vue:104 front/src/views/playlists/List.vue:105
-#: src/views/radios/Detail.vue:80
-#, fuzzy
+#: front/src/App.vue:129 src/components/Footer.vue:72
 msgid "This will erase your local data and disconnect you, do you want to continue?"
-msgid_plural "%{ count } tracks were added to your queue"
-msgstr[0] "ذلك سوف يؤدي إلى حذف بياناتك المحلية نهائيا و إخراجك. أمتأكد أنك ترغب في المواصلة ؟"
-msgstr[1] "ذلك سوف يؤدي إلى حذف بياناتك المحلية نهائيا و إخراجك. أمتأكد أنك ترغب في المواصلة ؟"
-msgstr[2] "ذلك سوف يؤدي إلى حذف بياناتك المحلية نهائيا و إخراجك. أمتأكد أنك ترغب في المواصلة ؟"
-msgstr[3] "ذلك سوف يؤدي إلى حذف بياناتك المحلية نهائيا و إخراجك. أمتأكد أنك ترغب في المواصلة ؟"
-msgstr[4] "ذلك سوف يؤدي إلى حذف بياناتك المحلية نهائيا و إخراجك. أمتأكد أنك ترغب في المواصلة ؟"
-msgstr[5] "ذلك سوف يؤدي إلى حذف بياناتك المحلية نهائيا و إخراجك. أمتأكد أنك ترغب في المواصلة ؟"
+msgstr ""
+"ذلك سوف يؤدي إلى حذف بياناتك المحلية نهائيا و إخراجك. أمتأكد أنك ترغب في "
+"المواصلة؟"
 
 #: front/src/components/auth/SubsonicTokenForm.vue:36
 msgid "This will log you out from existing devices that use the current password."
@@ -1896,26 +2540,42 @@ msgstr ""
 msgid "This will remove all tracks from this playlist and cannot be undone."
 msgstr ""
 
-#: front/src/views/content/libraries/Quota.vue:90
-msgid "This will remove tracks that were uploaded but failed to be process by the server. This will remove those files completely and you will regain the corresponding quota."
-msgstr ""
-
-#: front/src/views/content/libraries/Quota.vue:38
-msgid "This will remove tracks that were uploaded but not processed yet. This will remove those files completely and you will regain the corresponding quota."
-msgstr ""
-
-#: front/src/views/content/libraries/Quota.vue:64
-msgid "This will remove tracks that were uploaded but skipped during import processes for various reasons. This will remove those files completely and you will regain the corresponding quota."
-msgstr ""
-
 #: front/src/components/audio/track/Table.vue:6
 #: front/src/components/manage/library/FilesTable.vue:37
-#: front/src/views/content/libraries/FilesTable.vue:51
-#: front/src/components/mixins/Translations.vue:26
+#: front/src/components/mixins/Translations.vue:27
+#: front/src/views/content/libraries/FilesTable.vue:54
+#: front/src/components/mixins/Translations.vue:28
 msgid "Title"
 msgstr "العنوان"
 
-#: front/src/components/library/Track.vue:53
+#: front/src/components/ShortcutsModal.vue:79
+msgid "Toggle queue looping"
+msgstr ""
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:288
+#: front/src/views/admin/moderation/DomainsDetail.vue:225
+msgid "Total size"
+msgstr "الحجم الإجمالي"
+
+#: front/src/views/content/libraries/Card.vue:61
+msgid "Total size of the files in this library"
+msgstr "الحجم الإجمالي للملفات المتوفّرة في هذه المكتبة"
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:113
+msgid "Total users"
+msgstr "العدد الإجمالي للمستخدِمين"
+
+#: front/src/components/audio/SearchBar.vue:27
+#: src/components/library/Track.vue:262
+#: front/src/components/metadata/Search.vue:138
+msgid "Track"
+msgstr "المَقطَع"
+
+#: front/src/views/content/libraries/FilesTable.vue:205
+msgid "Track already present in one of your libraries"
+msgstr "إنّ المقطع متوفّر مِن قبل في إحدى مكتباتك"
+
+#: front/src/components/library/Track.vue:85
 msgid "Track information"
 msgstr "معلومات عن المَقطَع"
 
@@ -1923,14 +2583,25 @@ msgstr "معلومات عن المَقطَع"
 msgid "Track matching filter"
 msgstr "مقطع يناسب عامل التصفية"
 
+#: front/src/components/mixins/Translations.vue:23
+#: front/src/components/mixins/Translations.vue:24
+msgid "Track name"
+msgstr "اسم المَقطَع"
+
+#: front/src/views/content/libraries/FilesTable.vue:209
+msgid "Track uploaded, but not processed by the server yet"
+msgstr ""
+
 #: front/src/components/instance/Stats.vue:54
 msgid "tracks"
 msgstr "مَقاطِع"
 
-#: front/src/components/library/Album.vue:43
+#: front/src/components/library/Album.vue:81
 #: front/src/components/playlists/PlaylistModal.vue:33
-#: src/views/content/Base.vue:8 front/src/views/content/libraries/Detail.vue:8
-#: src/views/playlists/Detail.vue:50 front/src/views/radios/Detail.vue:34
+#: front/src/views/admin/moderation/AccountsDetail.vue:329
+#: front/src/views/admin/moderation/DomainsDetail.vue:265
+#: front/src/views/content/Base.vue:8 src/views/content/libraries/Detail.vue:8
+#: front/src/views/playlists/Detail.vue:50 src/views/radios/Detail.vue:34
 msgid "Tracks"
 msgstr "المَقاطِع"
 
@@ -1946,11 +2617,17 @@ msgstr "مَقاطِع تم الإعجاب بها"
 msgid "tracks listened"
 msgstr "مَقاطِع أستُمِع إليها"
 
-#: front/src/components/library/Track.vue:91
+#: front/src/components/library/Track.vue:138
 #: front/src/components/manage/library/FilesTable.vue:41
+#: front/src/views/admin/moderation/AccountsDetail.vue:151
 msgid "Type"
 msgstr "النوع"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:44
+#: front/src/components/manage/moderation/DomainsTable.vue:42
+msgid "Under moderation rule"
+msgstr ""
+
 #: front/src/views/content/remote/Card.vue:100
 #: src/views/content/remote/Card.vue:105
 msgid "Unfollow"
@@ -1968,6 +2645,15 @@ msgstr "لسوء الحظ، لم يأخذ أصحاب مثيل الخادوم ه
 msgid "Unlimited music"
 msgstr "موسيقى بلا حدود"
 
+#: front/src/components/audio/Player.vue:351
+msgid "Unmute"
+msgstr "إلغاء الكتم"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:45
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:57
+msgid "Update"
+msgstr "تحديث"
+
 #: front/src/components/auth/Settings.vue:50
 msgid "Update avatar"
 msgstr "تحديث الصورة الرمزية"
@@ -1976,6 +2662,10 @@ msgstr "تحديث الصورة الرمزية"
 msgid "Update library"
 msgstr "تحديث المكتبة"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:3
+msgid "Update moderation rule"
+msgstr "تحديث قاعدة الإشراف"
+
 #: front/src/components/playlists/Form.vue:33
 msgid "Update playlist"
 msgstr "تحديث قائمة المَقاطِع الموسيقية"
@@ -1989,9 +2679,7 @@ msgid "Update your password"
 msgstr "قم بتحديث كلمتك السرية"
 
 #: front/src/views/content/libraries/Card.vue:44
-#: front/src/components/manage/users/UsersTable.vue:173
 #: front/src/views/content/libraries/DetailArea.vue:24
-#: front/src/views/admin/users/UsersDetail.vue:177
 msgid "Upload"
 msgstr "أرسل"
 
@@ -2003,23 +2691,34 @@ msgstr "إرسال صورة رمزية جديدة"
 msgid "Upload audio content"
 msgstr "إرسال محتوى صوتي"
 
-#: front/src/views/content/libraries/FilesTable.vue:54
+#: front/src/views/content/libraries/FilesTable.vue:57
 msgid "Upload date"
 msgstr "تاريخ التحميل"
 
+#: front/src/components/library/FileUpload.vue:219
+#: front/src/components/library/FileUpload.vue:220
+msgid "Upload denied, ensure the file is not too big and that you have not reached your quota"
+msgstr ""
+"تم رفض الإرسال، تحقق أن حجم الملف ليس ضخما و أنّ مساحة التخرين المسموح بها "
+"كافية"
+
 #: front/src/views/content/Home.vue:7
-msgid "Upload music files (mp3, ogg, flac, etc.) from your personal library directly from your browser to enjoy them here."
+msgid "Upload music files (MP3, OGG, FLAC, etc.) from your personal library directly from your browser to enjoy them here."
 msgstr ""
 
 #: front/src/components/library/FileUpload.vue:31
 msgid "Upload new tracks"
 msgstr "إرسال مقاطع موسيقية جديدة"
 
-#: front/src/views/admin/users/UsersDetail.vue:82
+#: front/src/views/admin/moderation/AccountsDetail.vue:269
 msgid "Upload quota"
 msgstr "حصة التحميل"
 
-#: front/src/components/library/FileUpload.vue:99
+#: front/src/components/library/FileUpload.vue:228
+msgid "Upload timeout, please try again"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:100
 msgid "Uploaded"
 msgstr "تم تحميلها"
 
@@ -2027,11 +2726,19 @@ msgstr "تم تحميلها"
 msgid "Uploading"
 msgstr "عملية الإرسال جارية"
 
-#: front/src/components/library/FileUpload.vue:102
-msgid "Uploading..."
-msgstr "عملية الإرسال جارية …"
+#: front/src/components/library/FileUpload.vue:103
+msgid "Uploading…"
+msgstr "الإرسال جارٍ…"
 
-#: front/src/App.vue:44
+#: front/src/components/manage/moderation/AccountsTable.vue:41
+#: front/src/components/mixins/Translations.vue:37
+#: front/src/views/admin/moderation/AccountsDetail.vue:305
+#: front/src/views/admin/moderation/DomainsDetail.vue:241
+#: front/src/components/mixins/Translations.vue:38
+msgid "Uploads"
+msgstr "المُرسَلة"
+
+#: front/src/components/Footer.vue:16
 msgid "Use another instance"
 msgstr "إستخدم مثيل خادوم آخَر"
 
@@ -2039,6 +2746,10 @@ msgstr "إستخدم مثيل خادوم آخَر"
 msgid "Use this form to request a password reset. We will send an email to the given address with instructions to reset your password."
 msgstr "استخدم هذه الإستمارة لطلب إعادة ضبط كلمة المرور. سنرسل بريدا الكترونيا إلى العنوان المعين مرفوقا بتعليمات لإعادة ضبط كلمتك السرية."
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:111
+msgid "Use this setting to temporarily enable/disable the policy without completely removing it."
+msgstr ""
+
 #: front/src/components/manage/users/InvitationsTable.vue:49
 msgid "Used"
 msgstr "مُستخدَم"
@@ -2051,9 +2762,9 @@ msgstr "المستخدِم"
 msgid "User activity"
 msgstr "نشاط المستخدِم"
 
-#: front/src/components/library/Album.vue:49
+#: front/src/components/library/Album.vue:88
 #: src/components/library/Artist.vue:60
-#: front/src/components/library/Track.vue:122
+#: front/src/components/library/Track.vue:168
 msgid "User libraries"
 msgstr "مكتبات المستخدِم"
 
@@ -2063,7 +2774,9 @@ msgstr "إذاعات المستخدِمين"
 
 #: front/src/components/auth/Signup.vue:19
 #: front/src/components/manage/users/UsersTable.vue:37
-#: front/src/components/mixins/Translations.vue:32
+#: front/src/components/mixins/Translations.vue:33
+#: front/src/views/admin/moderation/AccountsDetail.vue:85
+#: front/src/components/mixins/Translations.vue:34
 msgid "Username"
 msgstr "إسم المستخدِم"
 
@@ -2075,12 +2788,24 @@ msgstr "إسم المستخدِم أو عنوان البريد الإلكترو
 msgid "users"
 msgstr "مستخدِم"
 
-#: front/src/components/Sidebar.vue:94 src/views/admin/users/Base.vue:5
-#: front/src/views/admin/users/UsersList.vue:3
-#: src/views/admin/users/UsersList.vue:21 front/src/views/admin/Settings.vue:81
+#: front/src/components/Sidebar.vue:91
+#: front/src/components/manage/moderation/DomainsTable.vue:39
+#: front/src/components/mixins/Translations.vue:35
+#: src/views/admin/Settings.vue:81 front/src/views/admin/users/Base.vue:5
+#: src/views/admin/users/UsersList.vue:3
+#: front/src/views/admin/users/UsersList.vue:21
+#: front/src/components/mixins/Translations.vue:36
 msgid "Users"
 msgstr "المستخدِمون"
 
+#: front/src/components/Footer.vue:29
+msgid "Using Funkwhale"
+msgstr "لاستخدام فانك وايل"
+
+#: front/src/components/Footer.vue:13
+msgid "Version %{version}"
+msgstr "الإصدار %{version}"
+
 #: front/src/views/content/libraries/Quota.vue:29
 #: front/src/views/content/libraries/Quota.vue:56
 #: front/src/views/content/libraries/Quota.vue:82
@@ -2089,9 +2814,9 @@ msgstr "عرض الملفات"
 
 #: front/src/components/library/Album.vue:37
 #: src/components/library/Artist.vue:35
-#: front/src/components/library/Track.vue:44
-#: front/src/components/metadata/ReleaseCard.vue:53
+#: front/src/components/library/Track.vue:51
 #: front/src/components/metadata/ArtistCard.vue:49
+#: front/src/components/metadata/ReleaseCard.vue:53
 msgid "View on MusicBrainz"
 msgstr "إطّلع عليه على ميوزيك براينز"
 
@@ -2099,6 +2824,22 @@ msgstr "إطّلع عليه على ميوزيك براينز"
 msgid "Visibility"
 msgstr "المشاهدة"
 
+#: front/src/views/content/libraries/Card.vue:59
+msgid "Visibility: everyone on this instance"
+msgstr "المشاهدة: كل مَن هم على مثيل الخادوم هذا"
+
+#: front/src/views/content/libraries/Card.vue:60
+msgid "Visibility: everyone, including other instances"
+msgstr "العرض: للجميع، بما في ذلك لمثيلات الخوادم الأخرى"
+
+#: front/src/views/content/libraries/Card.vue:58
+msgid "Visibility: nobody except me"
+msgstr "المشاهدة: لا أحد غيري"
+
+#: front/src/components/library/Album.vue:67
+msgid "Volume %{ number }"
+msgstr ""
+
 #: front/src/components/playlists/PlaylistModal.vue:20
 msgid "We cannot add the track to a playlist"
 msgstr "لا يمكننا إضافة المَقطَع إلى قائمة التشغيل"
@@ -2111,6 +2852,10 @@ msgstr "لا يمكننا إنشاء قائمة التشغيل"
 msgid "We cannot create your account"
 msgstr "لا يمكننا إنشاء حسابك"
 
+#: front/src/components/audio/Player.vue:64
+msgid "We cannot load this track"
+msgstr "لا يمكننا تحميل هذا المَقطَع"
+
 #: front/src/components/auth/Login.vue:7
 msgid "We cannot log you in"
 msgstr "تعذر علينا تسجيل دخولك"
@@ -2127,17 +2872,17 @@ msgstr "تعذّر علينا حفظ إعداداتك"
 msgid "We do not track you or bother you with ads"
 msgstr "لا نتعقّبك و لا نزعجك بالإعلانات"
 
-#: front/src/views/Notifications.vue:26
-msgid "We don't have any notification to display!"
-msgstr "ليس لدينا أي اشعار لعرضه هنا!"
+#: front/src/components/library/Track.vue:95
+msgid "We don't have any copyright information for this track"
+msgstr "ليس لدينا أية بيانات عن حقوق التأليف لهذا المَقطع"
 
-#: front/src/views/content/Home.vue:4
-msgid "We offer various way to grab new content and make it available here."
-msgstr "نوفر لكم عدة أساليب لجلب محتويات جديدة و عرضها هنا."
+#: front/src/components/library/Track.vue:106
+msgid "We don't have any licensing information for this track"
+msgstr "ليس لدينا أية بيانات عن رخصة هذا المَقطع"
 
 #: front/src/components/library/FileUpload.vue:40
-msgid "we recommend using Picard for that purpose"
-msgstr "ننصحكم باستخدام برنامج Picard لهذا الغرض"
+msgid "We recommend using Picard for that purpose."
+msgstr "ننصحكم باستخدام برنامج Picard لهذا الغرض."
 
 #: front/src/components/Home.vue:7
 msgid "We think listening to music should be simple."
@@ -2147,9 +2892,9 @@ msgstr "نعتقد أنّ الاستماع إلى الموسيقى ينبغي أ
 msgid "We're sorry, the page you asked for does not exist:"
 msgstr "المعذرة، إنّ الصفحة التي قمت بطلبها غير موجودة :"
 
-#: front/src/components/requests/Form.vue:21
-msgid "We've received your request, you'll get some groove soon ;)"
-msgstr ""
+#: front/src/components/Home.vue:153
+msgid "Welcome"
+msgstr "مرحبًا"
 
 #: front/src/components/Home.vue:5
 msgid "Welcome on Funkwhale"
@@ -2159,7 +2904,17 @@ msgstr "أهلا وسهلا بك على فانك وايل Funkwhale"
 msgid "Why funkwhale?"
 msgstr "لماذا فانك وايل Funkwhale ؟"
 
-#: front/src/components/Sidebar.vue:115
+#: front/src/components/audio/EmbedWizard.vue:13
+msgid "Widget height"
+msgstr "طول الودجات"
+
+#: front/src/components/audio/EmbedWizard.vue:6
+msgid "Widget width"
+msgstr "عرض الودجات"
+
+#: front/src/components/Sidebar.vue:118
+#: front/src/components/manage/moderation/AccountsTable.vue:72
+#: front/src/components/manage/moderation/DomainsTable.vue:58
 msgid "Yes"
 msgstr "نعم"
 
@@ -2167,6 +2922,10 @@ msgstr "نعم"
 msgid "Yes, log me out!"
 msgstr "نعم، أؤكد الخروج !"
 
+#: front/src/views/content/libraries/Form.vue:19
+msgid "You are able to share your library with other people, regardless of its visibility."
+msgstr ""
+
 #: front/src/components/library/FileUpload.vue:33
 msgid "You are about to upload music to your library. Before proceeding, please ensure that:"
 msgstr "إنك بصدد إرسال موسيقى إلى مكتبتك الصوتية. قبل المواصلة، ندعوك إلى التحقق من أنّ:"
@@ -2183,6 +2942,10 @@ msgstr ""
 msgid "You can invite friends and family to your instance so they can enjoy your music"
 msgstr "يمكِنك دعوة أصدقائك و عائلتك للإنظمام إلى مثيل خادومك للإستمتاع بموسيقاك"
 
+#: front/src/views/auth/EmailConfirm.vue:24
+msgid "You can now use the service without limitations."
+msgstr "بإمكانك الآن استعمال الخدمة مِن دون قيود."
+
 #: front/src/components/library/radios/Builder.vue:7
 msgid "You can use this interface to build your own custom radio, which will play tracks according to your criteria."
 msgstr "يمكنك إنشاء قناتك الإذاعية الخاصة بك عبر هذه الواجهة و تشغيل مقاطعك كيفما شئت."
@@ -2191,18 +2954,26 @@ msgstr "يمكنك إنشاء قناتك الإذاعية الخاصة بك عب
 msgid "You can use those to enjoy your playlist and music in offline mode, on your smartphone or tablet, for instance."
 msgstr ""
 
-#: front/src/components/Sidebar.vue:147
+#: front/src/views/admin/moderation/AccountsDetail.vue:46
+msgid "You don't have any rule in place for this account."
+msgstr ""
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:39
+msgid "You don't have any rule in place for this domain."
+msgstr ""
+
+#: front/src/components/Sidebar.vue:158
 msgid "You have a radio playing"
 msgstr "إنك تستمع إلى إذاعة"
 
-#: front/src/App.vue:8
+#: front/src/components/audio/Player.vue:71
+msgid "You may have a connectivity issue."
+msgstr "ربما عندك مشكلة في الاتصال."
+
+#: front/src/App.vue:17
 msgid "You need to select an instance in order to continue"
 msgstr "يلزمك اختيار مثيل خادوم قصد المواصلة"
 
-#: front/src/views/content/libraries/Form.vue:19
-msgid "You will be able to share your library with other people, regardless of it's visibility."
-msgstr ""
-
 #: front/src/components/auth/Settings.vue:100
 msgid "You will be logged out from this session and have to log in with the new one"
 msgstr ""
@@ -2211,9 +2982,9 @@ msgstr ""
 msgid "You will have to update your password on your clients that use this password."
 msgstr "يتوجب عليك تحديث كلمتك السرية على العملاء الآخرين اللذين يشتغلون بها."
 
-#: front/src/views/auth/EmailConfirm.vue:24
-msgid "Your email address was confirmed, you can now use the service without limitations."
-msgstr "تمّ تأكيد عنوان بريدك الإلكتروني، بإمكانك الآن استعمال الخدمة مِن دون قيود."
+#: front/src/components/favorites/List.vue:112
+msgid "Your Favorites"
+msgstr "مفضّلاتك"
 
 #: front/src/components/Home.vue:114
 msgid "Your music, your way"
@@ -2230,409 +3001,3 @@ msgstr "تم تحديث كلمتك السرية بنجاح."
 #: front/src/components/auth/Settings.vue:101
 msgid "Your Subsonic password will be changed to a new, random one, logging you out from devices that used the old Subsonic password"
 msgstr ""
-
-#: front/src/components/mixins/Translations.vue:8
-msgid "Activity visibility"
-msgstr "عرض النشاط"
-
-#: front/src/components/mixins/Translations.vue:9
-msgid "Determine the visibility level of your activity"
-msgstr ""
-
-#: front/src/components/mixins/Translations.vue:11
-#: front/src/components/playlists/Form.vue:81
-#: src/views/content/libraries/Form.vue:72
-msgid "Nobody except me"
-msgstr "لا أحد غيري"
-
-#: front/src/components/mixins/Translations.vue:12
-#: front/src/components/playlists/Form.vue:85
-#: src/views/content/libraries/Form.vue:73
-msgid "Everyone on this instance"
-msgstr "كل مَن هم على مثيل الخادوم هذا"
-
-#: front/src/components/mixins/Translations.vue:18
-msgid "Accessed date"
-msgstr "تاريخ النفاذ"
-
-#: front/src/components/mixins/Translations.vue:19
-msgid "Modification date"
-msgstr "تاريخ التعديل"
-
-#: front/src/components/mixins/Translations.vue:20
-msgid "Imported date"
-msgstr "تاريخ الإستيراد"
-
-#: front/src/components/mixins/Translations.vue:22
-msgid "Track name"
-msgstr "اسم المَقطَع"
-
-#: front/src/components/mixins/Translations.vue:23
-msgid "Album name"
-msgstr "عنوان الألبوم"
-
-#: front/src/components/mixins/Translations.vue:30
-msgid "Sign-up date"
-msgstr "تاريخ التسجيل"
-
-#: front/src/components/playlists/Editor.vue:163
-msgid "Copy tracks from current queue to playlist"
-msgstr "نسخ المَقاطِع مِن قائمة الإنتظار الحالية إلى قائمة التشغيل"
-
-#: front/src/components/playlists/PlaylistModal.vue:116
-msgid "Add to this playlist"
-msgstr "أضفه إلى قائمة التشغيل هذه"
-
-#: front/src/components/playlists/Form.vue:74
-msgid "My awesome playlist"
-msgstr "قائمتي الرائعة للمَقاطِع الموسيقية"
-
-#: front/src/components/playlists/Form.vue:89
-msgid "Everyone"
-msgstr "الجميع"
-
-#: front/src/components/auth/Signup.vue:95
-msgid "Sign Up"
-msgstr "التسجيل"
-
-#: front/src/components/auth/Signup.vue:96
-msgid "Enter your invitation code (case insensitive)"
-msgstr "أدخِل رمز الدعوة"
-
-#: front/src/components/auth/Signup.vue:97
-msgid "Enter your username"
-msgstr "أدخِل إسم المستخدِم"
-
-#: front/src/components/auth/Signup.vue:98
-msgid "Enter your email"
-msgstr "أدخِل عنوان بريدك الإلكتروني"
-
-#: front/src/components/auth/SubsonicTokenForm.vue:95
-msgid "Password updated"
-msgstr "تم تحديث كلمة السر"
-
-#: front/src/components/auth/SubsonicTokenForm.vue:111
-msgid "Access disabled"
-msgstr "عُطّل النفاذ"
-
-#: front/src/components/auth/Login.vue:77
-msgid "Enter your username or email"
-msgstr "أدخل إسم المستخدِم أو البريد الإلكتروني"
-
-#: front/src/components/auth/Login.vue:78
-msgid "Log In"
-msgstr "الدخول"
-
-#: front/src/components/auth/Profile.vue:47
-msgid "%{ username }'s profile"
-msgstr "الملف الشخصي لِـ %{ username }"
-
-#: front/src/components/auth/Logout.vue:20
-msgid "Log Out"
-msgstr "الخروج"
-
-#: front/src/components/auth/Settings.vue:249
-msgid "Account Settings"
-msgstr "إعدادات الحساب"
-
-#: front/src/components/favorites/TrackFavoriteIcon.vue:19
-msgid "Remove from favorites"
-msgstr "حذف مِن المفضلة"
-
-#: front/src/components/favorites/List.vue:110
-msgid "Your Favorites"
-msgstr "مفضّلاتك"
-
-#: front/src/components/library/Radios.vue:141
-msgid "Enter a radio name..."
-msgstr "أدخِل إسم إذاعة …"
-
-#: front/src/components/library/radios/Builder.vue:233
-msgid "Radio Builder"
-msgstr "مُنشِئ الإذاعات و الراديو"
-
-#: front/src/components/library/radios/Builder.vue:235
-msgid "My awesome radio"
-msgstr "إذاعتي الرائعة"
-
-#: front/src/components/library/radios/Builder.vue:236
-msgid "My awesome description"
-msgstr "وصفي الرائع"
-
-#: front/src/components/library/FileUpload.vue:238
-msgid "Upload refused, ensure the file is not too big and you have not reached your quota"
-msgstr "تم رفض الإرسال، تحقق أن حجم الملف ليس ضخما و أنّ مساحة التخرين المسموح بها كافية"
-
-#: front/src/components/library/FileUpload.vue:239
-msgid "Impossible to upload this file, ensure it is not too big"
-msgstr "لا يمكن تحميل هذا الملف، تحقق أنّ حجم الملف ليس ضخما"
-
-#: front/src/components/library/FileUpload.vue:240
-msgid "A network error occured while uploading this file"
-msgstr "حدث خطأ في الشبكة أثناء تحميل هذا الملف"
-
-#: front/src/components/library/FileUpload.vue:241
-msgid "Upload timeout, please try again"
-msgstr ""
-
-#: front/src/components/library/Artists.vue:119
-msgid "Enter an artist name..."
-msgstr "أدخِل إسم فنان …"
-
-#: front/src/components/library/Track.vue:195
-#: src/components/audio/SearchBar.vue:27
-#: front/src/components/metadata/Search.vue:138
-msgid "Track"
-msgstr "المَقطَع"
-
-#: front/src/components/library/Home.vue:65
-msgid "Home"
-msgstr "الرئيسية"
-
-#: front/src/components/forms/PasswordInput.vue:25
-msgid "Show/hide password"
-msgstr "إظهار/إخفاء الكلمة السرية"
-
-#: front/src/components/requests/Form.vue:73
-msgid "The Beatles, Mickael Jackson…"
-msgstr "The Beatles, Mickael Jackson…"
-
-#: front/src/components/requests/Form.vue:74
-msgid "The White Album, Thriller…"
-msgstr "The White Album, Thriller…"
-
-#: front/src/components/requests/Form.vue:75
-msgid "Use this comment box to add details to your request if needed"
-msgstr "استخدم علبة التعليق هذه، إن دعت الحاجة، لإضافة تفاصيل طلبك"
-
-#: front/src/components/audio/PlayButton.vue:158
-msgid "%{ count } track was added to your queue"
-msgid_plural "%{ count } tracks were added to your queue"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-msgstr[4] ""
-msgstr[5] ""
-
-#: front/src/components/audio/Search.vue:65
-msgid "Artist, album, track..."
-msgstr "فنان ، ألبوم ، مقطع موسيقي ..."
-
-#: front/src/components/audio/SearchBar.vue:20
-msgid "Search for artists, albums, tracks..."
-msgstr "البحث عن فنانين أو ألبومات أو مَقاطِع موسيقية …"
-
-#: front/src/components/audio/Player.vue:216
-msgid "Queue shuffled!"
-msgstr "تم خلط قائمة الإنتظار !"
-
-#: front/src/components/audio/Player.vue:273
-msgid "Previous track"
-msgstr "المَقطَع السابق"
-
-#: front/src/components/audio/Player.vue:274
-msgid "Play track"
-msgstr "إعزف المَقطَع"
-
-#: front/src/components/audio/Player.vue:275
-msgid "Pause track"
-msgstr "ألبِث المَقطَع"
-
-#: front/src/components/audio/Player.vue:276
-msgid "Next track"
-msgstr "المَقطَع التالي"
-
-#: front/src/components/audio/Player.vue:277
-msgid "Unmute"
-msgstr "إلغاء الكتم"
-
-#: front/src/components/audio/Player.vue:278
-msgid "Mute"
-msgstr "كتم"
-
-#: front/src/components/audio/Player.vue:279
-msgid "Looping disabled. Click to switch to single-track looping."
-msgstr ""
-
-#: front/src/components/audio/Player.vue:280
-msgid "Looping on a single track. Click to switch to whole queue looping."
-msgstr ""
-
-#: front/src/components/audio/Player.vue:281
-msgid "Looping on whole queue. Click to disable looping."
-msgstr ""
-
-#: front/src/components/audio/Player.vue:282
-msgid "Shuffle your queue"
-msgstr "خلط قائمة الإنتظار"
-
-#: front/src/components/audio/Player.vue:283
-msgid "Clear your queue"
-msgstr "مسح قائمة الانتظار الخاصة بك"
-
-#: front/src/components/Sidebar.vue:203
-msgid "Pending import requests"
-msgstr "طلبات الإستيراد المعلّقة"
-
-#: front/src/components/Sidebar.vue:204
-msgid "Pending follow requests"
-msgstr "طلبات المتابَعة المعلَّقة"
-
-#: front/src/components/metadata/Search.vue:114
-msgid "Enter your search query..."
-msgstr "أدخِل طلب بحثِك …"
-
-#: front/src/components/manage/library/FilesTable.vue:176
-msgid "Search by title, artist, domain..."
-msgstr "البحث حسب العنوان أو إسم فنان أو نطاق …"
-
-#: front/src/components/manage/users/InvitationForm.vue:58
-msgid "Leave empty for a random code"
-msgstr "أتركه فارغًا للحصول على رمز عشوائي"
-
-#: front/src/components/manage/users/InvitationsTable.vue:153
-msgid "Search by username, email, code..."
-msgstr "البحث باسم مستخدِم أو عنوان بريد إلكتروني أو رمز …"
-
-#: front/src/components/manage/users/UsersTable.vue:163
-msgid "Search by username, email, name..."
-msgstr "البحث باسم مستخدِم أو عنوان بريد إلكتروني أو إسم …"
-
-#: front/src/components/manage/users/UsersTable.vue:181
-#: front/src/views/admin/users/UsersDetail.vue:185
-#: src/views/admin/Settings.vue:83
-msgid "Federation"
-msgstr "الفديرالية"
-
-#: front/src/components/Home.vue:154
-msgid "Welcome"
-msgstr ""
-
-#: front/src/views/content/remote/ScanForm.vue:48
-msgid "Enter a library url"
-msgstr "أدخِل عنوان رابط لمكتبة ما"
-
-#: front/src/views/content/remote/Card.vue:165
-msgid "Scan launched"
-msgstr "بدأ الإستكشاف"
-
-#: front/src/views/content/remote/Card.vue:166
-msgid "Scan skipped (previous scan is too recent)"
-msgstr ""
-
-#: front/src/views/content/libraries/FilesTable.vue:226
-msgid "Search by title, artist, album..."
-msgstr "البحث حسب العنوان أو إسم فنان أو ألبوم…"
-
-#: front/src/views/content/libraries/FilesTable.vue:230
-msgid "Track was already present in one of your libraries"
-msgstr "إنّ المقطع موجود مِن قبل في إحدى مكتباتك"
-
-#: front/src/views/content/libraries/FilesTable.vue:234
-msgid "Track is uploaded but not processed by the server yet"
-msgstr ""
-
-#: front/src/views/content/libraries/FilesTable.vue:238
-msgid "An error occured while processing this track, ensure the track is correctly tagged"
-msgstr ""
-
-#: front/src/views/content/libraries/FilesTable.vue:242
-msgid "Import went on successfully"
-msgstr "تمت عملية الإستيراد بنجاح"
-
-#: front/src/views/content/libraries/FilesTable.vue:259
-msgid "Relaunch import"
-msgstr "إعادة محاولة الإستيراد"
-
-#: front/src/views/content/libraries/Card.vue:58
-msgid "Visibility: nobody except me"
-msgstr "المشاهدة: لا أحد غيري"
-
-#: front/src/views/content/libraries/Card.vue:59
-msgid "Visibility: everyone on this instance"
-msgstr "المشاهدة: كل مَن هم على مثيل الخادوم هذا"
-
-#: front/src/views/content/libraries/Card.vue:60
-msgid "Visibility: everyone, including other instances"
-msgstr ""
-
-#: front/src/views/content/libraries/Card.vue:61
-msgid "Total size of the files in this library"
-msgstr "الحجم الإجمالي للملفات المتوفّرة في هذه المكتبة"
-
-#: front/src/views/content/libraries/Form.vue:70
-msgid "My awesome library"
-msgstr "مكتبتي الرائعة"
-
-#: front/src/views/content/libraries/Form.vue:71
-msgid "This library contains my personnal music, I hope you will like it!"
-msgstr "تجتوي هذه المكتبة على الموسيقى الخاصة بي، أتمنى أنها ستلقى إعجابك!"
-
-#: front/src/views/content/libraries/Form.vue:74
-msgid "Everyone, including other instances"
-msgstr "جميع المستخدمين بما في ذلك المتواجدون على مثيلات الخوادم الأخرى"
-
-#: front/src/views/content/libraries/Form.vue:106
-msgid "Library updated"
-msgstr "تم تحديث المكتبة"
-
-#: front/src/views/content/libraries/Form.vue:109
-msgid "Library created"
-msgstr "تم انشاء المكتبة"
-
-#: front/src/views/content/Home.vue:35
-msgid "Add and manage content"
-msgstr "إضافة المحتوى و إدارته"
-
-#: front/src/views/radios/Detail.vue:80
-msgid "Radio"
-msgstr "الإذاعة"
-
-#: front/src/views/instance/Timeline.vue:57
-msgid "Instance Timeline"
-msgstr "الخيط الزمني لمثيل الخادوم"
-
-#: front/src/views/playlists/Detail.vue:90
-msgid "Playlist"
-msgstr "قائمة المَقاطِع"
-
-#: front/src/views/playlists/List.vue:105
-msgid "Enter an playlist name..."
-msgstr "أدخِل إسم قائمة مَقاطِعٍ موسيقية …"
-
-#: front/src/views/admin/library/Base.vue:16
-msgid "Manage library"
-msgstr "إدارة المكتبة"
-
-#: front/src/views/admin/users/UsersDetail.vue:169
-msgid "Determine if the user account is active or not. Inactive users cannot login or use the service."
-msgstr ""
-
-#: front/src/views/admin/users/UsersDetail.vue:170
-msgid "Determine how much content the user can upload. Leave empty to use the default value of the instance."
-msgstr ""
-
-#: front/src/views/admin/users/Base.vue:20
-msgid "Manage users"
-msgstr "إدارة المستخدِمين"
-
-#: front/src/views/admin/Settings.vue:75
-msgid "Instance settings"
-msgstr "إعدادات مثيل الخادوم"
-
-#: front/src/views/admin/Settings.vue:80
-msgid "Instance information"
-msgstr "معلومات عن مثيل الخادوم"
-
-#: front/src/views/admin/Settings.vue:84
-msgid "Subsonic"
-msgstr "صاب سونيك"
-
-#: front/src/views/admin/Settings.vue:85
-msgid "Statistics"
-msgstr "الإحصائيات"
-
-#: front/src/views/admin/Settings.vue:86
-msgid "Error reporting"
-msgstr "سِجِل الأخطاء"
diff --git a/front/locales/de/LC_MESSAGES/app.po b/front/locales/de/LC_MESSAGES/app.po
index ab1802d4601b81d3618c4d1008c2d04a732edd11..a65275c31b45618e209eead9635866022d16d9e0 100644
--- a/front/locales/de/LC_MESSAGES/app.po
+++ b/front/locales/de/LC_MESSAGES/app.po
@@ -7,16 +7,16 @@ msgid ""
 msgstr ""
 "Project-Id-Version: front 1.0.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-10-05 20:10+0200\n"
-"PO-Revision-Date: 2018-09-22 11:45+0000\n"
-"Last-Translator: Gregory <gs@grse.me>\n"
+"POT-Creation-Date: 2019-01-11 15:55+0100\n"
+"PO-Revision-Date: 2019-01-22 08:45+0000\n"
+"Last-Translator: jovuit <jo.vuitton@gmail.com>\n"
 "Language-Team: none\n"
 "Language: de\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 2.20\n"
+"X-Generator: Weblate 3.2.2\n"
 
 #: front/src/components/playlists/PlaylistModal.vue:9
 msgid "\"%{ title }\", by %{ artist }"
@@ -30,14 +30,14 @@ msgstr "(%{ index } von %{ length })"
 msgid "(empty)"
 msgstr "(leer)"
 
-#: front/src/components/common/ActionTable.vue:44
-#: front/src/components/common/ActionTable.vue:53
+#: front/src/components/common/ActionTable.vue:57
+#: front/src/components/common/ActionTable.vue:66
 msgid "%{ count } on %{ total } selected"
 msgid_plural "%{ count } on %{ total } selected"
 msgstr[0] "%{ count } von %{ total } ausgewählt"
 msgstr[1] "%{ count } von %{ total } ausgewählt"
 
-#: front/src/components/Sidebar.vue:107 src/components/audio/album/Card.vue:54
+#: front/src/components/Sidebar.vue:110 src/components/audio/album/Card.vue:54
 #: front/src/views/content/libraries/Card.vue:39
 #: src/views/content/remote/Card.vue:26
 msgid "%{ count } track"
@@ -55,7 +55,13 @@ msgstr[1] "%{ count } Tracks in %{ albumsCount } Alben"
 msgid "%{ count } track matching combined filters"
 msgid_plural "%{ count } tracks matching combined filters"
 msgstr[0] "%{ count } Track entspricht dem ausgewählten Filter"
-msgstr[1] "%{ count } Tracks entspricht dem ausgewählten Filter"
+msgstr[1] "%{ count } Tracks entsprechen dem ausgewählten Filter"
+
+#: front/src/components/audio/PlayButton.vue:180
+msgid "%{ count } track was added to your queue"
+msgid_plural "%{ count } tracks were added to your queue"
+msgstr[0] "1 Track wurde zur Wiedergabeliste hinzugefügt"
+msgstr[1] "%{ count } Tracks wurden zur Wiedergabeliste hinzugefügt"
 
 #: front/src/components/playlists/Card.vue:18
 msgid "%{ count} track"
@@ -64,9 +70,8 @@ msgstr[0] "%{ count} Track"
 msgstr[1] "%{ count} Tracks"
 
 #: front/src/views/content/libraries/Quota.vue:11
-#, fuzzy
 msgid "%{ current } used on %{ max } allowed"
-msgstr "%{ count } von %{ total } ausgewählt"
+msgstr "%{ current } von %{ max } belegt"
 
 #: front/src/components/common/Duration.vue:2
 msgid "%{ hours } h %{ minutes } min"
@@ -76,13 +81,25 @@ msgstr "%{ hours } h %{ minutes } min"
 msgid "%{ minutes } min"
 msgstr "%{ minutes } min"
 
-#: front/src/components/activity/Like.vue:7
-msgid "%{ user } favorited a track"
-msgstr "%{ user } hat einen Track zu seinen Favoriten hinzugefügt"
+#: front/src/components/notifications/NotificationRow.vue:40
+msgid "%{ username } accepted your follow on library \"%{ library }\""
+msgstr ""
+"Das Abonnieren zur Meditahek \"%{ library }\" wurde von %{ username } "
+"zugesagt"
+
+#: front/src/components/notifications/NotificationRow.vue:39
+msgid "%{ username } followed your library \"%{ library }\""
+msgstr "%{ username } hat deine Mediathek \"%{ library }\" abonniert"
+
+#: front/src/components/auth/Profile.vue:46
+msgid "%{ username }'s profile"
+msgstr "Profil von %{ username }"
 
-#: front/src/components/activity/Listen.vue:7
-msgid "%{ user } listened to a track"
-msgstr "%{ user } hat einen Track angehört"
+#: front/src/components/Footer.vue:5
+msgid "<translate :translate-params=\"{instanceName: instanceHostname}\">About %{instanceName}</translate>"
+msgstr ""
+"<translate :translate-params=\"{instanceName: instanceHostname}\">Ãœber "
+"%{instanceName}</translate>"
 
 #: front/src/components/audio/artist/Card.vue:41
 msgid "1 album"
@@ -96,59 +113,89 @@ msgid_plural "%{ count } favorites"
 msgstr[0] "1 Favorit"
 msgstr[1] "%{ count } Favoriten"
 
+#: front/src/components/library/FileUpload.vue:225
+#: front/src/components/library/FileUpload.vue:226
+msgid "A network error occured while uploading this file"
+msgstr "Beim Hochladen ist ein Netzwerkfehler aufgetreten"
+
 #: front/src/components/About.vue:5
 msgid "About %{ instance }"
 msgstr "Ãœber %{ instance }"
 
-#: front/src/App.vue:53
+#: front/src/components/Footer.vue:6
+msgid "About %{instanceName}"
+msgstr "Ãœber %{ instanceName }"
+
+#: front/src/components/Footer.vue:45
 msgid "About Funkwhale"
 msgstr "Ãœber Funkwhale"
 
-#: front/src/App.vue:34 src/components/About.vue:8 src/components/About.vue:55
+#: front/src/components/Footer.vue:10
+msgid "About page"
+msgstr "Mehr erfahren"
+
+#: front/src/components/About.vue:8 src/components/About.vue:64
 msgid "About this instance"
 msgstr "Ãœber diese Instanz"
 
 #: front/src/views/content/libraries/Detail.vue:48
-#, fuzzy
 msgid "Accept"
-msgstr "Akzeptiert"
+msgstr "Akzeptieren"
 
 #: front/src/views/content/libraries/Detail.vue:40
 msgid "Accepted"
 msgstr "Akzeptiert"
 
+#: front/src/components/auth/SubsonicTokenForm.vue:111
+msgid "Access disabled"
+msgstr "Zugriff deaktiviert"
+
 #: front/src/components/Home.vue:106
 msgid "Access your music from a clean interface that focus on what really matters"
 msgstr "Greife auf deine Musik mit einer übersichtliche Oberfläche zu, die sich auf das konzentriert, was wirklich wichtig ist"
 
-#: front/src/views/admin/users/UsersDetail.vue:54
-msgid "Account active"
-msgstr "Konto aktiv"
+#: front/src/components/mixins/Translations.vue:19
+#: front/src/components/mixins/Translations.vue:20
+msgid "Accessed date"
+msgstr "Zugriffsdatum"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:78
+msgid "Account data"
+msgstr "Kontodaten"
 
 #: front/src/components/auth/Settings.vue:5
 msgid "Account settings"
 msgstr "Kontoeinstellungen"
 
+#: front/src/components/auth/Settings.vue:264
+msgid "Account Settings"
+msgstr "Kontoeinstellungen"
+
 #: front/src/components/manage/users/UsersTable.vue:39
 msgid "Account status"
 msgstr "Kontostatus"
 
 #: front/src/views/auth/PasswordReset.vue:14
 msgid "Account's email"
-msgstr "E-Mail Adresse des Kontos"
+msgstr "E-Mail-Adresse des Kontos"
+
+#: front/src/views/admin/moderation/AccountsList.vue:3
+#: front/src/views/admin/moderation/AccountsList.vue:24
+#: front/src/views/admin/moderation/Base.vue:8
+msgid "Accounts"
+msgstr "Konten"
 
 #: front/src/views/content/libraries/Detail.vue:29
-#, fuzzy
 msgid "Action"
-msgstr "Aktionen"
+msgstr "Aktion"
 
-#: front/src/components/common/ActionTable.vue:86
+#: front/src/components/common/ActionTable.vue:99
 msgid "Action %{ action } was launched successfully on %{ count } element"
 msgid_plural "Action %{ action } was launched successfully on %{ count } elements"
 msgstr[0] "Die Aktion %{ action } wurde erfolgreich für %{ count } Element gestartet"
 msgstr[1] "Die Aktion %{ action } wurde erfolgreich für %{ count } Elemente gestartet"
 
-#: front/src/components/common/ActionTable.vue:8
+#: front/src/components/common/ActionTable.vue:21
 #: front/src/components/library/radios/Builder.vue:64
 msgid "Actions"
 msgstr "Aktionen"
@@ -157,13 +204,35 @@ msgstr "Aktionen"
 msgid "Active"
 msgstr "Aktiv"
 
-#: front/src/components/Sidebar.vue:75
+#: front/src/views/admin/moderation/AccountsDetail.vue:199
+#: front/src/views/admin/moderation/DomainsDetail.vue:144
 msgid "Activity"
 msgstr "Aktivität"
 
-#: front/src/components/Sidebar.vue:78 src/views/content/Base.vue:19
+#: front/src/components/mixins/Translations.vue:7
+#: front/src/components/mixins/Translations.vue:8
+msgid "Activity visibility"
+msgstr "Sichtbarkeit der Aktivität"
+
+#: front/src/views/admin/moderation/DomainsList.vue:18
+msgid "Add"
+msgstr "Hinzufügen"
+
+#: front/src/views/admin/moderation/DomainsList.vue:13
+msgid "Add a domain"
+msgstr "Domain hinzufügen"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:4
+msgid "Add a new moderation rule"
+msgstr "Moderationsregel hinzufügen"
+
+#: front/src/views/content/Home.vue:35
+msgid "Add and manage content"
+msgstr "Inhalte hochladen und verwalten"
+
+#: front/src/components/Sidebar.vue:75 src/views/content/Base.vue:18
 msgid "Add content"
-msgstr ""
+msgstr "Inhalt hinzufügen"
 
 #: front/src/components/library/radios/Builder.vue:50
 msgid "Add filter"
@@ -173,20 +242,28 @@ msgstr "Filter hinzufügen"
 msgid "Add filters to customize your radio"
 msgstr "Füge Filter hinzu, um dein Radio zu personalisieren"
 
+#: front/src/components/audio/PlayButton.vue:64
+msgid "Add to current queue"
+msgstr "Zur Wiedergabeliste hinzufügen"
+
 #: front/src/components/favorites/TrackFavoriteIcon.vue:4
-#: front/src/components/favorites/TrackFavoriteIcon.vue:21
+#: front/src/components/favorites/TrackFavoriteIcon.vue:28
 msgid "Add to favorites"
 msgstr "Zu deinen Favoriten hinzufügen"
 
 #: front/src/components/playlists/TrackPlaylistIcon.vue:6
-#: front/src/components/playlists/TrackPlaylistIcon.vue:32
-msgid "Add to playlist..."
-msgstr "Zu einer Playlist hinzufügen..."
+#: front/src/components/playlists/TrackPlaylistIcon.vue:34
+msgid "Add to playlist…"
+msgstr "Zu einer Playlist hinzufügen…"
 
 #: front/src/components/audio/PlayButton.vue:14
 msgid "Add to queue"
 msgstr "Zur Wiedergabeliste hinzufügen"
 
+#: front/src/components/playlists/PlaylistModal.vue:116
+msgid "Add to this playlist"
+msgstr "Zu dieser Playlist hinzufügen"
+
 #: front/src/components/playlists/PlaylistModal.vue:54
 msgid "Add track"
 msgstr "Track hinzufügen"
@@ -195,16 +272,16 @@ msgstr "Track hinzufügen"
 msgid "Admin"
 msgstr "Admin"
 
-#: front/src/components/Sidebar.vue:82
+#: front/src/components/Sidebar.vue:79
 msgid "Administration"
 msgstr "Administration"
 
-#: front/src/components/audio/track/Table.vue:8
+#: front/src/components/audio/SearchBar.vue:26
+#: src/components/audio/track/Table.vue:8
+#: front/src/components/library/Album.vue:159
 #: front/src/components/manage/library/FilesTable.vue:39
-#: front/src/views/content/libraries/FilesTable.vue:53
-#: front/src/components/library/Album.vue:101
-#: src/components/audio/SearchBar.vue:26
 #: front/src/components/metadata/Search.vue:134
+#: front/src/views/content/libraries/FilesTable.vue:56
 msgid "Album"
 msgstr "Album"
 
@@ -214,13 +291,19 @@ msgid_plural "Album containing %{ count } tracks, by %{ artist }"
 msgstr[0] "Album mit einem Track, von %{ artist }"
 msgstr[1] "Album mit %{ count } Tracks, von %{ artist }"
 
-#: front/src/components/library/Track.vue:20
+#: front/src/components/mixins/Translations.vue:24
+#: front/src/components/mixins/Translations.vue:25
+msgid "Album name"
+msgstr "Albumname"
+
+#: front/src/components/library/Track.vue:27
 msgid "Album page"
 msgstr "Albumseite"
 
 #: front/src/components/audio/Search.vue:19
 #: src/components/instance/Stats.vue:48
-#: front/src/components/requests/Form.vue:9
+#: front/src/views/admin/moderation/AccountsDetail.vue:321
+#: front/src/views/admin/moderation/DomainsDetail.vue:257
 msgid "Albums"
 msgstr "Alben"
 
@@ -241,33 +324,43 @@ msgstr "Beim Speichern deiner Änderungen ist ein Fehler aufgetreten"
 msgid "An unknown error happend, this can mean the server is down or cannot be reached"
 msgstr "Ein unbekannter Fehler ist aufgetreten, vielleicht ist der Server ausgeschaltet oder er kann nicht erreicht werden"
 
+#: front/src/components/notifications/NotificationRow.vue:62
+msgid "Approve"
+msgstr "Bestätigt"
+
 #: front/src/components/auth/Logout.vue:5
 msgid "Are you sure you want to log out?"
 msgstr "Möchtest du dich wirklich ausloggen?"
 
-#: front/src/components/audio/track/Table.vue:7
+#: front/src/components/audio/SearchBar.vue:25
+#: src/components/audio/track/Table.vue:7
+#: front/src/components/library/Artist.vue:137
 #: front/src/components/manage/library/FilesTable.vue:38
-#: front/src/views/content/libraries/FilesTable.vue:52
-#: front/src/components/library/Artist.vue:129
-#: src/components/audio/SearchBar.vue:25
 #: front/src/components/metadata/Search.vue:130
+#: front/src/views/content/libraries/FilesTable.vue:55
 msgid "Artist"
 msgstr "Künstler·in"
 
-#: front/src/components/requests/Form.vue:5
-#: src/components/mixins/Translations.vue:24
+#: front/src/components/mixins/Translations.vue:25
+#: front/src/components/mixins/Translations.vue:26
 msgid "Artist name"
 msgstr "Künstlername"
 
 #: front/src/components/library/Album.vue:22
-#: src/components/library/Track.vue:23
+#: src/components/library/Track.vue:33
 msgid "Artist page"
 msgstr "Künstlerseite"
 
+#: front/src/components/audio/Search.vue:65
+msgid "Artist, album, track…"
+msgstr "Künstler, Künstlerin, Album, Track…"
+
 #: front/src/components/audio/Search.vue:10
 #: src/components/instance/Stats.vue:42
-#: front/src/components/library/Library.vue:7
-#: src/components/library/Artists.vue:120
+#: front/src/components/library/Artists.vue:119
+#: src/components/library/Library.vue:7
+#: front/src/views/admin/moderation/AccountsDetail.vue:313
+#: front/src/views/admin/moderation/DomainsDetail.vue:249
 msgid "Artists"
 msgstr "Künstler und Künstlerinnen"
 
@@ -275,6 +368,8 @@ msgstr "Künstler und Künstlerinnen"
 #: src/components/library/Artists.vue:25
 #: front/src/components/library/Radios.vue:44
 #: front/src/components/manage/library/FilesTable.vue:19
+#: front/src/components/manage/moderation/AccountsTable.vue:21
+#: front/src/components/manage/moderation/DomainsTable.vue:19
 #: front/src/components/manage/users/UsersTable.vue:19
 #: front/src/views/content/libraries/FilesTable.vue:31
 #: front/src/views/playlists/List.vue:27
@@ -285,25 +380,47 @@ msgstr "Zunehmend"
 msgid "Ask for a password reset"
 msgstr "Eine Kennwortzurücksetzung beantragen"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:245
+#: front/src/views/admin/moderation/DomainsDetail.vue:202
+msgid "Audio content"
+msgstr "Audio-Inhalt"
+
+#: front/src/components/ShortcutsModal.vue:55
+msgid "Audio player shortcuts"
+msgstr "Audio-Player-Tastenkombinationen"
+
 #: front/src/components/playlists/PlaylistModal.vue:26
 msgid "Available playlists"
 msgstr "Verfügbare Playlists"
 
 #: front/src/components/auth/Settings.vue:34
 msgid "Avatar"
-msgstr "Avatar"
+msgstr "Profilbild"
 
-#: front/src/views/auth/EmailConfirm.vue:17 src/views/auth/PasswordReset.vue:24
+#: front/src/views/auth/PasswordReset.vue:24
 #: front/src/views/auth/PasswordResetConfirm.vue:18
 msgid "Back to login"
 msgstr "Zurück zur Anmeldung"
 
-#: front/src/components/library/Track.vue:80
+#: front/src/components/library/Track.vue:129
 #: front/src/components/manage/library/FilesTable.vue:42
-#: front/src/components/mixins/Translations.vue:28
+#: front/src/components/mixins/Translations.vue:29
+#: front/src/components/mixins/Translations.vue:30
 msgid "Bitrate"
 msgstr "Bitrate"
 
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:19
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:34
+msgid "Block everything"
+msgstr "Alles blockieren"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:112
+msgid "Block everything from this account or domain. This will prevent any interaction with the entity, and purge related content (uploads, libraries, follows, etc.)"
+msgstr ""
+"Alles von diesem Konto bzw. Domain blockieren. Die Verbindung mit dieser "
+"Entität wird unterbrochen, und der entsprechende Inhalt (Tracks, "
+"Mediatheken, Abonnement, usw.) wird gelöscht"
+
 #: front/src/components/Sidebar.vue:18 src/components/library/Library.vue:4
 msgid "Browse"
 msgstr "Durchsuchen"
@@ -333,11 +450,21 @@ msgid "By %{ artist }"
 msgstr "Von %{ artist }"
 
 #: front/src/views/content/remote/Card.vue:103
-msgid "By unfollowing this library, you will loose access to its content."
+msgid "By unfollowing this library, you loose access to its content."
 msgstr ""
+"Wenn du dieser Mediathek nicht mehr folgst, verlierst du den Zugriff auf "
+"ihre Inhalte."
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:261
+#: front/src/views/admin/moderation/DomainsDetail.vue:217
+msgid "Cached size"
+msgstr "Cache-Volumen"
 
 #: front/src/components/common/DangerousButton.vue:17
+#: front/src/components/library/Album.vue:58
+#: src/components/library/Track.vue:76
 #: front/src/components/library/radios/Filter.vue:53
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:54
 #: front/src/components/playlists/PlaylistModal.vue:63
 msgid "Cancel"
 msgstr "Abbrechen"
@@ -350,7 +477,14 @@ msgstr "Kandidaten"
 msgid "Cannot change your password"
 msgstr "Das Kennwort kann nicht geändert werden"
 
-#: front/src/App.vue:65
+#: front/src/components/library/FileUpload.vue:222
+#: front/src/components/library/FileUpload.vue:223
+msgid "Cannot upload this file, ensure it is not too big"
+msgstr ""
+"Die Datei kann nicht hochgeladen werden. Bitte prüfe, dass sie nicht zu groß "
+"ist"
+
+#: front/src/components/Footer.vue:21
 msgid "Change language"
 msgstr "Sprache ändern"
 
@@ -381,15 +515,19 @@ msgstr "Mit Änderung deines Kennworts wird das Kennwort für die Subsonic-API z
 
 #: front/src/components/auth/Settings.vue:98
 msgid "Changing your password will have the following consequences"
-msgstr "Dein Kennwort wechseln hat die folgenden Auswirkungen"
+msgstr "Wenn du dein Kennwort änderst, hat dies folgende Auswirkungen"
+
+#: front/src/components/Footer.vue:40
+msgid "Chat room"
+msgstr "Chat-Raum"
 
-#: front/src/App.vue:6
+#: front/src/App.vue:13
 msgid "Choose your instance"
-msgstr "Wähle deine Instanz aus"
+msgstr "Wähle deine Instanz"
 
 #: front/src/components/Home.vue:64
 msgid "Clean library"
-msgstr "Eine hochwertige Mediathek"
+msgstr "Eine übersichtliche Mediathek"
 
 #: front/src/components/manage/users/InvitationForm.vue:37
 msgid "Clear"
@@ -400,13 +538,21 @@ msgstr "Löschen"
 msgid "Clear playlist"
 msgstr "Playlist leeren"
 
+#: front/src/components/audio/Player.vue:363
+msgid "Clear your queue"
+msgstr "Wiedergabeliste leeren"
+
 #: front/src/components/Home.vue:44
 msgid "Click once, listen for hours using built-in radios"
 msgstr "Einmal clicken, und Musik studenlang dank der Radios anhören"
 
-#: front/src/components/library/FileUpload.vue:76
+#: front/src/components/library/FileUpload.vue:75
 msgid "Click to select files to upload or drag and drop files or directories"
-msgstr ""
+msgstr "Zum Hochladen klicken oder Dateien und Ordner hier her ziehen"
+
+#: front/src/components/ShortcutsModal.vue:20
+msgid "Close"
+msgstr "Schließen"
 
 #: front/src/components/manage/users/InvitationForm.vue:26
 #: front/src/components/manage/users/InvitationsTable.vue:42
@@ -415,14 +561,9 @@ msgstr "Kode"
 
 #: front/src/components/audio/album/Card.vue:43
 #: front/src/components/audio/artist/Card.vue:33
-#: front/src/components/discussion/Comment.vue:20
 msgid "Collapse"
 msgstr "Minimieren"
 
-#: front/src/components/requests/Form.vue:14
-msgid "Comment"
-msgstr "Kommentar"
-
 #: front/src/components/library/radios/Builder.vue:62
 msgid "Config"
 msgstr "Einstellungen"
@@ -433,29 +574,67 @@ msgstr "Bestätigen"
 
 #: front/src/views/auth/EmailConfirm.vue:4 src/views/auth/EmailConfirm.vue:20
 #: front/src/views/auth/EmailConfirm.vue:51
-msgid "Confirm your email"
-msgstr "Bestätige deine E-Mail-Adresse"
+msgid "Confirm your e-mail address"
+msgstr "E-Mail-Adresse bestätigen"
 
 #: front/src/views/auth/EmailConfirm.vue:13
 msgid "Confirmation code"
-msgstr "Bestätigungskode"
+msgstr "Bestätigungscode"
+
+#: front/src/components/common/ActionTable.vue:7
+msgid "Content have been updated, click refresh to see up-to-date content"
+msgstr "Der Inhalt wurde aktualisiert und wird beim Neuladen der Seite gezeigt"
 
+#: front/src/components/Footer.vue:48
+msgid "Contribute"
+msgstr "Mitmachen"
+
+#: front/src/components/audio/EmbedWizard.vue:19
 #: front/src/components/common/CopyInput.vue:8
 msgid "Copy"
+msgstr "Kopieren"
+
+#: front/src/components/playlists/Editor.vue:163
+msgid "Copy tracks from current queue to playlist"
+msgstr "Die Wiedergabeliste zur Playlist hinzufügen"
+
+#: front/src/components/audio/EmbedWizard.vue:21
+msgid "Copy/paste this code in your website HTML"
+msgstr "Füge dieses Kode in deine HTML-Webseite ein"
+
+#: front/src/components/library/Track.vue:91
+msgid "Copyright"
+msgstr "Urheberecht"
+
+#: front/src/views/auth/EmailConfirm.vue:7
+msgid "Could not confirm your e-mail address"
+msgstr "Deine E-Mail-Adresse konnte nicht bestätigt werden"
+
+#: front/src/views/content/remote/ScanForm.vue:3
+msgid "Could not fetch remote library"
+msgstr "Die Fernmediathek konnte nicht abgerufen werden"
+
+#: front/src/views/content/libraries/FilesTable.vue:213
+msgid "Could not process this track, ensure it is tagged correctly"
 msgstr ""
+"Ein Fehler ist bei der Verarbeitung des Tracks aufgetreten. Überprüfe bitte, "
+"dass er richtig verschlagwortet ist"
 
 #: front/src/components/Home.vue:85
 msgid "Covers, lyrics, our goal is to have them all ;)"
 msgstr "Albumcover, Songtexte, unser Ziel ist es, alle zu haben ;)"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:58
+msgid "Create"
+msgstr "Erstellen"
+
 #: front/src/components/auth/Signup.vue:4
 msgid "Create a funkwhale account"
-msgstr "Sich anmelden"
+msgstr "Erstelle ein Funkwhale-Konto"
 
 #: front/src/views/content/libraries/Home.vue:14
-#, fuzzy
 msgid "Create a new library"
-msgstr "Eine neue Playlist erstellen"
+msgstr "Eine neue Mediathek erstellen"
 
 #: front/src/components/playlists/Form.vue:2
 msgid "Create a new playlist"
@@ -465,18 +644,13 @@ msgstr "Eine neue Playlist erstellen"
 msgid "Create an account"
 msgstr "Konto erstellen"
 
-#: front/src/components/requests/Card.vue:25
-msgid "Create import"
-msgstr "Import erstellen"
-
 #: front/src/views/content/libraries/Form.vue:26
-#, fuzzy
 msgid "Create library"
-msgstr "Eine hochwertige Mediathek"
+msgstr "Mediathek erstellen"
 
 #: front/src/components/auth/Signup.vue:51
 msgid "Create my account"
-msgstr "Mich anmelden"
+msgstr "Mein Konto erstellen"
 
 #: front/src/components/playlists/Form.vue:34
 msgid "Create playlist"
@@ -487,44 +661,51 @@ msgid "Create your own radio"
 msgstr "Dein eigenes Radio erstellen"
 
 #: front/src/components/manage/users/InvitationsTable.vue:40
+#: front/src/components/mixins/Translations.vue:16
 #: front/src/components/mixins/Translations.vue:17
 msgid "Creation date"
 msgstr "Erstelldatum"
 
 #: front/src/components/auth/Settings.vue:54
 msgid "Current avatar"
-msgstr "Aktuelles Avatar"
+msgstr "Aktuelles Profilbild"
 
 #: front/src/views/content/libraries/DetailArea.vue:4
-#, fuzzy
 msgid "Current library"
-msgstr "Eine hochwertige Mediathek"
+msgstr "Aktuelle Mediathek"
 
 #: front/src/components/playlists/PlaylistModal.vue:8
 msgid "Current track"
 msgstr "Aktueller Track"
 
 #: front/src/views/content/libraries/Quota.vue:2
-#, fuzzy
 msgid "Current usage"
-msgstr "Aktueller Track"
+msgstr "Aktuelle Nutzung"
 
 #: front/src/views/content/libraries/Detail.vue:27
 msgid "Date"
-msgstr ""
+msgstr "Datum"
+
+#: front/src/components/ShortcutsModal.vue:75
+msgid "Decrease volume"
+msgstr "Lautstärke verringern"
 
-#: front/src/views/content/libraries/Form.vue:29
-#: src/views/playlists/Detail.vue:33
 #: front/src/components/manage/library/FilesTable.vue:190
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:61
 #: front/src/components/manage/users/InvitationsTable.vue:167
-#: front/src/views/content/libraries/FilesTable.vue:258
+#: front/src/views/content/libraries/FilesTable.vue:233
+#: front/src/views/content/libraries/Form.vue:29
+#: src/views/playlists/Detail.vue:33
 msgid "Delete"
 msgstr "Löschen"
 
 #: front/src/views/content/libraries/Form.vue:39
-#, fuzzy
 msgid "Delete library"
-msgstr "Eine hochwertige Mediathek"
+msgstr "Mediathek löschen"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:69
+msgid "Delete moderation rule"
+msgstr "Moderationsregel löschen"
 
 #: front/src/views/playlists/Detail.vue:38
 msgid "Delete playlist"
@@ -535,14 +716,19 @@ msgid "Delete radio"
 msgstr "Radio löschen"
 
 #: front/src/views/content/libraries/Form.vue:31
-#, fuzzy
 msgid "Delete this library?"
-msgstr "Bring mich zur Mediathek"
+msgstr "Diese Mediathek löschen?"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:63
+msgid "Delete this moderation rule?"
+msgstr "Diese Moderationsregel löschen?"
 
 #: front/src/components/favorites/List.vue:34
 #: src/components/library/Artists.vue:26
 #: front/src/components/library/Radios.vue:47
 #: front/src/components/manage/library/FilesTable.vue:20
+#: front/src/components/manage/moderation/AccountsTable.vue:22
+#: front/src/components/manage/moderation/DomainsTable.vue:20
 #: front/src/components/manage/users/UsersTable.vue:20
 #: front/src/views/content/libraries/FilesTable.vue:32
 #: front/src/views/playlists/List.vue:28
@@ -551,18 +737,27 @@ msgstr "Absteigend"
 
 #: front/src/components/library/radios/Builder.vue:25
 #: front/src/views/content/libraries/Form.vue:14
-#, fuzzy
 msgid "Description"
-msgstr "Dauer"
+msgstr "Beschreibung"
 
 #: front/src/views/content/libraries/Card.vue:47
 msgid "Detail"
 msgstr "Detail"
 
 #: front/src/views/content/remote/Card.vue:50
-#, fuzzy
 msgid "Details"
-msgstr "Detail"
+msgstr "Details"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:455
+msgid "Determine how much content the user can upload. Leave empty to use the default value of the instance."
+msgstr ""
+"Stelle das Speichervolumen der nutzenden Person fest. Beim Leerlassen wird "
+"der Standardwert dieser Instanz verwendet."
+
+#: front/src/components/mixins/Translations.vue:8
+#: front/src/components/mixins/Translations.vue:9
+msgid "Determine the visibility level of your activity"
+msgstr "Stelle fest, wer deine Aktivität sehen kann"
 
 #: front/src/components/auth/Settings.vue:104
 #: front/src/components/auth/SubsonicTokenForm.vue:52
@@ -577,14 +772,30 @@ msgstr "Subsonic-Zugriff deaktivieren"
 msgid "Disable Subsonic API access?"
 msgstr "Subsonic-API-Zugriff deaktivieren?"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:18
+#: front/src/views/admin/moderation/AccountsDetail.vue:128
+#: front/src/views/admin/moderation/AccountsDetail.vue:132
+msgid "Disabled"
+msgstr "Deaktiviert"
+
 #: front/src/components/auth/SubsonicTokenForm.vue:14
 msgid "Discover how to use Funkwhale from other apps"
 msgstr "Entdecke, wie du Funkwhale von anderen Apps benutzen kannst"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:103
+msgid "Display name"
+msgstr "Anzeigename"
+
 #: front/src/components/library/radios/Builder.vue:30
 msgid "Display publicly"
 msgstr "Öffentlich zeigen"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:122
+msgid "Do not download any media file (audio, album cover, account avatar…) from this account or domain. This will purge existing content as well."
+msgstr ""
+"Lade bitte keine Datei aus diesem Konto oder Domain (Audio-Inhalt, Album-"
+"Cover, Profilbild, usw.). Der existierende Inhalt wird ebenfalls gelöscht."
+
 #: front/src/components/playlists/Editor.vue:42
 msgid "Do you want to clear the playlist \"%{ playlist }\"?"
 msgstr "Möchtest du die Playlist \"%{ playlist }\" wirklich leeren?"
@@ -595,27 +806,40 @@ msgstr "Aktion bestätigen?"
 
 #: front/src/views/playlists/Detail.vue:35
 msgid "Do you want to delete the playlist \"%{ playlist }\"?"
-msgstr "Möchtest du die Playlist \"%{ playlist } löschen?"
+msgstr "Möchtest du die Playlist \"%{ playlist }\" löschen?"
 
 #: front/src/views/radios/Detail.vue:26
 msgid "Do you want to delete the radio \"%{ radio }\"?"
 msgstr "Möchtest du das Radio \"%{ radio }\" löschen?"
 
-#: front/src/components/common/ActionTable.vue:29
+#: front/src/components/common/ActionTable.vue:36
 msgid "Do you want to launch %{ action } on %{ count } element?"
 msgid_plural "Do you want to launch %{ action } on %{ count } elements?"
 msgstr[0] "Möchtest du %{ action } auf %{ count } Element ausführen?"
 msgstr[1] "Möchtest du %{ action } auf %{ count } Elemente ausführen?"
 
-#: front/src/components/Sidebar.vue:104
+#: front/src/components/Sidebar.vue:107
 msgid "Do you want to restore your previous queue?"
-msgstr "Möchtest du die Wiedergabelliste zurückerstellen?"
+msgstr "Möchtest du die Wiedergabeliste zurückerstellen?"
 
-#: front/src/App.vue:37
+#: front/src/components/Footer.vue:31
 msgid "Documentation"
 msgstr "Dokumentation"
 
-#: front/src/components/library/Track.vue:48
+#: front/src/components/manage/moderation/AccountsTable.vue:40
+#: front/src/components/mixins/Translations.vue:34
+#: front/src/views/admin/moderation/AccountsDetail.vue:93
+#: front/src/components/mixins/Translations.vue:35
+msgid "Domain"
+msgstr "Domain"
+
+#: front/src/views/admin/moderation/Base.vue:5
+#: front/src/views/admin/moderation/DomainsList.vue:3
+#: front/src/views/admin/moderation/DomainsList.vue:48
+msgid "Domains"
+msgstr "Domains"
+
+#: front/src/components/library/Track.vue:55
 msgid "Download"
 msgstr "Herunterladen"
 
@@ -624,58 +848,128 @@ msgid "Drag and drop rows to reorder tracks in the playlist"
 msgstr "Um die Playlist umzuordnen, klicke und schiebe die Tracks hin und her"
 
 #: front/src/components/audio/track/Table.vue:9
-#: src/components/library/Track.vue:58
+#: src/components/library/Track.vue:111
 #: front/src/components/manage/library/FilesTable.vue:43
-#: front/src/views/content/libraries/FilesTable.vue:56
-#: front/src/components/mixins/Translations.vue:29
+#: front/src/components/mixins/Translations.vue:30
+#: front/src/views/content/libraries/FilesTable.vue:59
+#: front/src/components/mixins/Translations.vue:31
 msgid "Duration"
 msgstr "Dauer"
 
+#: front/src/views/auth/EmailConfirm.vue:23
+msgid "E-mail address confirmed"
+msgstr "E-Mail-Adresse bestätigt"
+
 #: front/src/components/Home.vue:93
 msgid "Easy to use"
 msgstr "Leicht zu bedienen"
 
 #: front/src/views/content/libraries/Detail.vue:9
-#, fuzzy
 msgid "Edit"
-msgstr "Bearbeiten..."
+msgstr "Bearbeiten"
 
 #: front/src/components/About.vue:21
 msgid "Edit instance info"
 msgstr "Die Infos dieser Instanz bearbeiten"
 
 #: front/src/components/radios/Card.vue:22 src/views/playlists/Detail.vue:30
-msgid "Edit..."
-msgstr "Bearbeiten..."
+msgid "Edit…"
+msgstr "Bearbeiten…"
 
 #: front/src/components/auth/Signup.vue:29
 #: front/src/components/manage/users/UsersTable.vue:38
 msgid "Email"
 msgstr "E-Mail-Adresse"
 
-#: front/src/views/admin/users/UsersDetail.vue:29
+#: front/src/views/admin/moderation/AccountsDetail.vue:111
 msgid "Email address"
 msgstr "E-Mail-Adresse"
 
-#: front/src/views/auth/EmailConfirm.vue:23
-msgid "Email confirmed"
-msgstr "E-Mail-Adresse bestätigt"
+#: front/src/components/library/Album.vue:44
+#: src/components/library/Track.vue:62
+msgid "Embed"
+msgstr "Integrieren"
+
+#: front/src/components/audio/EmbedWizard.vue:20
+msgid "Embed code"
+msgstr "Kode integrieren"
+
+#: front/src/components/library/Album.vue:48
+msgid "Embed this album on your website"
+msgstr "Integriere dieses Album auf deiner Webseite"
+
+#: front/src/components/library/Track.vue:66
+msgid "Embed this track on your website"
+msgstr "Integriere diesen Track auf deiner Webseite"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:230
+#: front/src/views/admin/moderation/DomainsDetail.vue:187
+#, fuzzy
+msgid "Emitted library follows"
+msgstr "Ausgehende Abonnements"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:214
+#: front/src/views/admin/moderation/DomainsDetail.vue:171
+msgid "Emitted messages"
+msgstr "Verschickte Nachrichten"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:8
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:17
+#: front/src/views/admin/moderation/AccountsDetail.vue:127
+#: front/src/views/admin/moderation/AccountsDetail.vue:131
+msgid "Enabled"
+msgstr "Aktiviert"
 
 #: front/src/views/playlists/Detail.vue:29
 msgid "End edition"
 msgstr "Bearbeitung abschließen"
 
+#: front/src/views/content/remote/ScanForm.vue:50
+msgid "Enter a library URL"
+msgstr "Gebe eine Mediathek-URL ein"
+
+#: front/src/components/library/Radios.vue:140
+msgid "Enter a radio name…"
+msgstr "Name des Radios eingeben…"
+
+#: front/src/components/library/Artists.vue:118
+msgid "Enter artist name…"
+msgstr "Künstlername eingeben…"
+
+#: front/src/views/playlists/List.vue:107
+msgid "Enter playlist name…"
+msgstr "Playlist-Name eingeben…"
+
+#: front/src/components/auth/Signup.vue:100
+msgid "Enter your email"
+msgstr "Gib deine E-Mail-Adresse ein"
+
+#: front/src/components/auth/Signup.vue:96 src/components/auth/Signup.vue:97
+msgid "Enter your invitation code (case insensitive)"
+msgstr "Gib deinen Einladungskode ein (Groß- und Kleinschreibung wird nicht berücksichtigt)"
+
+#: front/src/components/metadata/Search.vue:114
+msgid "Enter your search query…"
+msgstr "Suche eingeben…"
+
+#: front/src/components/auth/Signup.vue:99
+msgid "Enter your username"
+msgstr "Benutzername eingeben"
+
+#: front/src/components/auth/Login.vue:77
+msgid "Enter your username or email"
+msgstr "Benutzername oder E-Mail-Adresse eingeben"
+
 #: front/src/components/auth/SubsonicTokenForm.vue:20
 #: front/src/views/content/libraries/Form.vue:4
 msgid "Error"
 msgstr "Fehler"
 
-#: front/src/views/content/remote/Card.vue:39
-#, fuzzy
-msgid "Error during scan"
+#: front/src/views/admin/Settings.vue:87
+msgid "Error reporting"
 msgstr "Fehlerbericht"
 
-#: front/src/components/common/ActionTable.vue:79
+#: front/src/components/common/ActionTable.vue:92
 msgid "Error while applying action"
 msgstr "Fehler bei der Ausführung der Aktion"
 
@@ -685,50 +979,58 @@ msgstr "Fehler bei der Zurücksetzung des Kennworts"
 
 #: front/src/views/auth/PasswordResetConfirm.vue:7
 msgid "Error while changing your password"
-msgstr " Fehler bei der Änderung deines Passworts"
+msgstr "Fehler bei der Änderung deines Kennworts"
 
-#: front/src/views/auth/EmailConfirm.vue:7
-msgid "Error while confirming your email"
-msgstr "Fehler bei der Bestätigung deiner E-Mail-Adresse"
+#: front/src/views/admin/moderation/DomainsList.vue:6
+msgid "Error while creating domain"
+msgstr "Fehler bei der Erstellung des Domains"
 
 #: front/src/components/manage/users/InvitationForm.vue:4
 msgid "Error while creating invitation"
 msgstr "Fehler bei der Erstellung der Einladung"
 
-#: front/src/views/content/remote/ScanForm.vue:3
-#, fuzzy
-msgid "Error while fetching remote library"
-msgstr "Fehler beim Scannen der Mediathek"
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:7
+msgid "Error while creating rule"
+msgstr "Fehler bei der Erstellung der Regel"
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:126
+msgid "Error while fetching node info"
+msgstr "Fehler beim Abrufen des Knoten"
 
 #: front/src/components/admin/SettingsGroup.vue:5
 msgid "Error while saving settings"
 msgstr "Fehler bei der Speicherung der Einstellungen"
 
-#: front/src/views/content/libraries/FilesTable.vue:16
-#: front/src/views/content/libraries/FilesTable.vue:237
+#: front/src/views/content/libraries/FilesTable.vue:212
 msgid "Errored"
 msgstr "Ein Fehler ist aufgetreten"
 
 #: front/src/views/content/libraries/Quota.vue:75
-#, fuzzy
 msgid "Errored files"
-msgstr "Ein Fehler ist aufgetreten"
+msgstr "Fehlgeschlagene Dateien"
 
-#: front/src/views/content/remote/Card.vue:58
-#, fuzzy
-msgid "Errored tracks:"
-msgstr "Föderierte Tracks"
+#: front/src/components/playlists/Form.vue:89
+msgid "Everyone"
+msgstr "Alle"
+
+#: front/src/components/mixins/Translations.vue:11
+#: front/src/components/playlists/Form.vue:85
+#: src/views/content/libraries/Form.vue:73
+#: front/src/components/mixins/Translations.vue:12
+msgid "Everyone on this instance"
+msgstr "Alle auf dieser Instanz"
+
+#: front/src/views/content/libraries/Form.vue:74
+msgid "Everyone, across all instances"
+msgstr "Alle, auf alle Instanzen"
 
 #: front/src/components/library/radios/Builder.vue:61
 msgid "Exclude"
 msgstr "Ausschließen"
 
-#: front/src/components/discussion/Comment.vue:14
-msgid "Expand"
-msgstr "Öffnen"
-
 #: front/src/components/manage/users/InvitationsTable.vue:41
-#: front/src/components/mixins/Translations.vue:21
+#: front/src/components/mixins/Translations.vue:22
+#: front/src/components/mixins/Translations.vue:23
 msgid "Expiration date"
 msgstr "Ablaufdatum"
 
@@ -740,12 +1042,31 @@ msgstr "Abgelaufen"
 msgid "Expired/used"
 msgstr "Abgelaufen bzw. benutzt"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:110
+msgid "Explain why you're applying this policy. Depending on your instance configuration, this will help you remember why you acted on this account or domain, and may be displayed publicly to help users understand what moderation rules are in place."
+msgstr ""
+"Begründe hier die Moderationsregel, sodass du es nicht vergisst. Je nach den "
+"Einstellungen deiner Instanz können die Nutzenden die Moderationsregeln "
+"ansehen, um die Moderation ggf. besser verstehen zu können."
+
+#: front/src/views/content/libraries/FilesTable.vue:16
+msgid "Failed"
+msgstr "Fehlgeschlagen"
+
+#: front/src/views/content/remote/Card.vue:58
+msgid "Failed tracks:"
+msgstr "Fehlgeschlagene Tracks:"
+
 #: front/src/components/Sidebar.vue:66
 msgid "Favorites"
 msgstr "Favoriten"
 
-#: front/src/components/library/FileUpload.vue:83
-msgid "File name"
+#: front/src/views/admin/Settings.vue:84
+msgid "Federation"
+msgstr "Föderation"
+
+#: front/src/components/library/FileUpload.vue:84
+msgid "Filename"
 msgstr "Dateiname"
 
 #: front/src/views/admin/library/Base.vue:5
@@ -758,47 +1079,54 @@ msgid "Filter name"
 msgstr "Filtername"
 
 #: front/src/views/content/libraries/FilesTable.vue:17
-#: front/src/views/content/libraries/FilesTable.vue:241
+#: front/src/views/content/libraries/FilesTable.vue:216
 msgid "Finished"
 msgstr "Beendet"
 
-#: front/src/views/content/remote/Card.vue:83
-msgid "Follow"
-msgstr "Folgen"
+#: front/src/components/manage/moderation/AccountsTable.vue:42
+#: front/src/components/manage/moderation/DomainsTable.vue:41
+#: front/src/views/admin/moderation/AccountsDetail.vue:159
+#: front/src/views/admin/moderation/DomainsDetail.vue:78
+msgid "First seen"
+msgstr "Erstmal gesehen"
 
-#: front/src/views/content/remote/Card.vue:88
+#: front/src/components/mixins/Translations.vue:17
+#: front/src/components/mixins/Translations.vue:18
 #, fuzzy
-msgid "Follow pending approval"
-msgstr "Ausstehende Folgen-Anfrage"
+msgid "First seen date"
+msgstr "Erstmal gesehen"
+
+#: front/src/views/content/remote/Card.vue:83
+msgid "Follow"
+msgstr "Abonnieren"
 
 #: front/src/views/content/Home.vue:16
 msgid "Follow remote libraries"
-msgstr ""
+msgstr "Entfernte Mediatheken abonnieren"
 
+#: front/src/views/content/remote/Card.vue:88
+msgid "Follow request pending approval"
+msgstr "Ausstehende Abonnieren-Anfrage"
+
+#: front/src/components/mixins/Translations.vue:38
 #: front/src/views/content/libraries/Detail.vue:7
+#: front/src/components/mixins/Translations.vue:39
 msgid "Followers"
-msgstr "Follower·innen"
+msgstr "Abonnenten"
 
 #: front/src/views/content/remote/Card.vue:93
 msgid "Following"
 msgstr "Abonniert"
 
-#: front/src/components/activity/Like.vue:14
-#: src/components/activity/Listen.vue:14
-msgid "from %{ album } by %{ artist }"
-msgstr "aus %{ album } von %{ artist }"
-
-#: front/src/components/library/Track.vue:13
+#: front/src/components/library/Track.vue:17
 msgid "From album %{ album } by %{ artist }"
 msgstr "Aus dem Album %{ album } von %{ artist }"
 
-#: front/src/App.vue:55
-msgid "Funkwhale is a free and open-source project run by volunteers. You can help us improve the platform by reporting bugs, suggesting features and share the project with your friends!"
-msgstr "Funkwhale ist ein kostenloses Open-Source Projekt, das von Ehrenamtlichen entwickelt wird. Hilf uns, indem du Fehler meldest, neue Funktionen vorschlägst und das Projekt mit deinen Freunden teilst!"
-
 #: front/src/components/auth/SubsonicTokenForm.vue:7
 msgid "Funkwhale is compatible with other music players that support the Subsonic API."
-msgstr "Funkwhale ist kompatibel mit anderen Mediaplayer, die die Subsonic-API unterstützen."
+msgstr ""
+"Funkwhale ist mit anderen Mediaplayer kompatibel, die die Subsonic-API "
+"unterstützen."
 
 #: front/src/components/Home.vue:95
 msgid "Funkwhale is dead simple to use."
@@ -816,6 +1144,10 @@ msgstr "Funkwhale ist kostenlos und ermöglicht eine komplette Steuerung deiner
 msgid "Funkwhale takes care of handling your music"
 msgstr "Funkwhale kümmert sich um deine Musik"
 
+#: front/src/components/ShortcutsModal.vue:38
+msgid "General shortcuts"
+msgstr "Allgemeine Tastenkombinationen"
+
 #: front/src/components/manage/users/InvitationForm.vue:16
 msgid "Get a new invitation"
 msgstr "Eine neue Einladung bekommen"
@@ -825,17 +1157,19 @@ msgid "Get me to the library"
 msgstr "Bring mich zur Mediathek"
 
 #: front/src/components/Home.vue:76
-#, fuzzy
 msgid "Get quality metadata about your music thanks to <a href=\"%{ url }\" target=\"_blank\">MusicBrainz</a>"
 msgstr "Dank <a href=\"https://musicbrainz.org\" target=\"_blank\">MusicBrainz</a> kannst du deine Musik mit hochwertigen Metadaten verschlagworten"
 
 #: front/src/views/content/Home.vue:12 src/views/content/Home.vue:19
-#, fuzzy
 msgid "Get started"
-msgstr "Nächster Schritt"
+msgstr "Loslegen"
 
-#: front/src/components/common/ActionTable.vue:21
-#: front/src/components/common/ActionTable.vue:27
+#: front/src/components/Footer.vue:37
+msgid "Getting help"
+msgstr "Hilfe erhalten"
+
+#: front/src/components/common/ActionTable.vue:34
+#: front/src/components/common/ActionTable.vue:54
 msgid "Go"
 msgstr "Los!"
 
@@ -843,17 +1177,24 @@ msgstr "Los!"
 msgid "Go to home page"
 msgstr "Zurück zur Startseite"
 
-#: front/src/App.vue:73
-msgid "Help us translate Funkwhale"
-msgstr "Hilf uns, Funkwhale zu übersetzen"
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:114
+msgid "Hide account or domain content, except from followers."
+msgstr "Den Konto- bzw. Domaininhalt allen außer Abonnenten verstecken."
+
+#: front/src/components/library/Home.vue:65
+msgid "Home"
+msgstr "Start"
 
 #: front/src/components/instance/Stats.vue:36
+#, fuzzy
 msgid "Hours of music"
-msgstr "Musik stundenlang"
+msgstr "Musikstunden"
 
 #: front/src/components/auth/SubsonicTokenForm.vue:11
 msgid "However, accessing Funkwhale from those clients require a separate password you can set below."
-msgstr "Für den Zugriff auf Funkwhale von anderen Apps ist ein zusätzliches Kennwort notwendig. Du kannst dieses Kennwort hier erstellen."
+msgstr ""
+"Der Zugriff auf Funkwhale von anderen Apps benötigt ein zusätzliches "
+"Kennwort. Du kannst dieses Kennwort hier erstellen."
 
 #: front/src/views/auth/PasswordResetConfirm.vue:24
 msgid "If the email address provided in the previous step is valid and binded to a user account, you should receive an email with reset instructions in the next couple of minutes."
@@ -868,15 +1209,23 @@ msgid "Import music from various platforms, such as YouTube or SoundCloud"
 msgstr "Importiere Musik aus mehreren Plattformen, wie YouTube oder SoundCloud"
 
 #: front/src/components/library/FileUpload.vue:51
-#, fuzzy
 msgid "Import reference"
-msgstr "Importquelle"
+msgstr "Importreferenz"
 
 #: front/src/views/content/libraries/FilesTable.vue:11
-#: front/src/views/content/libraries/FilesTable.vue:55
+#: front/src/views/content/libraries/FilesTable.vue:58
 msgid "Import status"
 msgstr "Importstatus"
 
+#: front/src/views/content/libraries/FilesTable.vue:217
+msgid "Imported"
+msgstr "Importiert"
+
+#: front/src/components/mixins/Translations.vue:21
+#: front/src/components/mixins/Translations.vue:22
+msgid "Imported date"
+msgstr "Importsdatum"
+
 #: front/src/components/favorites/TrackFavoriteIcon.vue:3
 msgid "In favorites"
 msgstr "In den Favoriten"
@@ -885,17 +1234,45 @@ msgstr "In den Favoriten"
 msgid "Inactive"
 msgstr "Inaktiv"
 
+#: front/src/components/ShortcutsModal.vue:71
+msgid "Increase volume"
+msgstr "Lautstärke erhöhen"
+
+#: front/src/views/auth/PasswordReset.vue:53
+msgid "Input the email address binded to your account"
+msgstr "Gebe die E-Mail-Adresse ein, die zu deinem Konto verknüpft ist"
+
 #: front/src/components/playlists/Editor.vue:31
 msgid "Insert from queue (%{ count } track)"
 msgid_plural "Insert from queue (%{ count } tracks)"
 msgstr[0] "Aus der Wiedergabeliste hinzufügen (%{ count } Track)"
 msgstr[1] "Aus der Wiedergabeliste hinzufügen (%{ count } Tracks)"
 
+#: front/src/views/admin/moderation/DomainsDetail.vue:71
+msgid "Instance data"
+msgstr "Instanzdaten"
+
+#: front/src/views/admin/Settings.vue:80
+msgid "Instance information"
+msgstr "Infos über diese Instanz"
+
 #: front/src/components/library/Radios.vue:9
 msgid "Instance radios"
 msgstr "Radios der Instanz"
 
-#: front/src/components/auth/Signup.vue:42
+#: front/src/views/admin/Settings.vue:75
+msgid "Instance settings"
+msgstr "Instanzeinstellungen"
+
+#: front/src/components/library/FileUpload.vue:229
+#: front/src/components/library/FileUpload.vue:230
+msgid "Invalid file type, ensure you are uploading an audio file. Supported file extensions are %{ extensions }"
+msgstr ""
+"Das Dateiformat ist ungültig. Stelle bitte sicher, dass du eine Audio-Datei "
+"hochladen möchtest. Die folgenden Dateiformaten sind unterstützt: %{ "
+"extensions }"
+
+#: front/src/components/auth/Signup.vue:42
 #: front/src/components/manage/users/InvitationForm.vue:11
 msgid "Invitation code"
 msgstr "Einladungskode"
@@ -910,118 +1287,152 @@ msgstr "Einladungskode (ggf.)"
 msgid "Invitations"
 msgstr "Einladungen"
 
-#: front/src/App.vue:42
+#: front/src/components/Footer.vue:41
 msgid "Issue tracker"
 msgstr "Bugtracker"
 
-#: front/src/views/content/libraries/Home.vue:9
-msgid "It looks like you don't have any library yet, it's time to create one!"
-msgstr ""
-
 #: front/src/components/Home.vue:50
 msgid "Keep a track of your favorite songs"
 msgstr "Behalte einen Ãœberblick auf deine Lieblingsmusik"
 
+#: front/src/components/Footer.vue:33 src/components/ShortcutsModal.vue:3
+msgid "Keyboard shortcuts"
+msgstr "Tastenkombinationen"
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:161
+msgid "Known accounts"
+msgstr "Bekannte Konten"
+
 #: front/src/views/content/remote/Home.vue:14
-#, fuzzy
 msgid "Known libraries"
-msgstr "Mediatheke durchsuchen"
+msgstr "Bekannte Mediatheken"
 
 #: front/src/components/manage/users/UsersTable.vue:41
-#: front/src/views/admin/users/UsersDetail.vue:45
-#: front/src/components/mixins/Translations.vue:31
+#: front/src/components/mixins/Translations.vue:32
+#: front/src/views/admin/moderation/AccountsDetail.vue:184
+#: front/src/components/mixins/Translations.vue:33
 msgid "Last activity"
 msgstr "Letzte Aktivität"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:167
+#: front/src/views/admin/moderation/DomainsDetail.vue:86
+msgid "Last checked"
+msgstr "Letzte Überprüfung"
+
 #: front/src/components/playlists/PlaylistModal.vue:32
 msgid "Last modification"
 msgstr "Letzte Bearbeitung"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:43
+msgid "Last seen"
+msgstr "Zuletzt gesehen"
+
+#: front/src/components/mixins/Translations.vue:18
+#: front/src/components/mixins/Translations.vue:19
+msgid "Last seen date"
+msgstr "Zuletzt gesehen am"
+
 #: front/src/views/content/remote/Card.vue:56
-#, fuzzy
 msgid "Last update:"
-msgstr "Playlist aktualisiert"
+msgstr "Letzte Aktualisierung:"
 
-#: front/src/components/common/ActionTable.vue:40
+#: front/src/components/common/ActionTable.vue:47
 msgid "Launch"
 msgstr "Starten"
 
-#: front/src/views/content/remote/Card.vue:63
-msgid "Launch scan"
-msgstr "Scan starten"
-
 #: front/src/components/Home.vue:10
 msgid "Learn more about this instance"
 msgstr "Mehr über diese Instanz erfahren"
 
-#: front/src/components/requests/Form.vue:10
-msgid "Leave this field empty if you're requesting the whole discography."
-msgstr "Lasse dieses Feld leer, wenn du die ganze Diskografie anfragst."
+#: front/src/components/manage/users/InvitationForm.vue:58
+msgid "Leave empty for a random code"
+msgstr "Leerlassen für einen beliebigen Kode"
+
+#: front/src/components/audio/EmbedWizard.vue:7
+msgid "Leave empty for a responsive widget"
+msgstr "Leerlassen für einen reaktionsfähiges Grafikobjekt"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:297
+#: front/src/views/admin/moderation/DomainsDetail.vue:233
 #: front/src/views/content/Base.vue:5
 msgid "Libraries"
-msgstr "Mediatheke"
+msgstr "Mediatheken"
 
 #: front/src/views/content/libraries/Form.vue:2
 msgid "Libraries help you organize and share your music collections. You can upload your own music collection to Funkwhale and share it with your friends and family."
-msgstr ""
+msgstr "Mediatheken helfen dir deine Musiksammlungen zu verwalten und zu teilen. Du kannst deine eigene Musiksammlung zu Funkwhale hochladen und mit deinen Freunden oder deiner Familie teilen."
 
 #: front/src/components/instance/Stats.vue:30
-#: front/src/components/manage/users/UsersTable.vue:177
-#: front/src/views/admin/users/UsersDetail.vue:181
+#: front/src/components/manage/users/UsersTable.vue:173
+#: front/src/views/admin/moderation/AccountsDetail.vue:464
 msgid "Library"
 msgstr "Mediathek"
 
+#: front/src/views/content/libraries/Form.vue:109
+msgid "Library created"
+msgstr "Mediathek erstellt"
+
+#: front/src/views/content/libraries/Form.vue:129
+msgid "Library deleted"
+msgstr "Mediathek gelöscht"
+
 #: front/src/views/admin/library/FilesList.vue:3
 msgid "Library files"
 msgstr "Dateien aus der Mediathek"
 
-#: front/src/App.vue:31
-msgid "Links"
-msgstr "Links"
+#: front/src/views/content/libraries/Form.vue:106
+msgid "Library updated"
+msgstr "Mediathek aktualisiert"
+
+#: front/src/components/library/Track.vue:100
+msgid "License"
+msgstr "Lizenz"
 
 #: front/src/views/content/libraries/Detail.vue:21
-#, fuzzy
-msgid "Loading followers..."
-msgstr "Follower und Followerinnen durchsuchen"
+msgid "Loading followers…"
+msgstr "Abonnenten werden geladen…"
 
 #: front/src/views/content/libraries/Home.vue:3
-#, fuzzy
-msgid "Loading Libraries..."
-msgstr "Laden deiner Favoriten..."
+msgid "Loading Libraries…"
+msgstr "Die Mediatheken werden geladen…"
 
 #: front/src/views/content/libraries/Detail.vue:3
 #: front/src/views/content/libraries/Upload.vue:3
-#, fuzzy
-msgid "Loading library data..."
-msgstr "Domainname eingeben..."
+msgid "Loading library data…"
+msgstr "Die Mediathekdaten werden geladen…"
 
 #: front/src/views/Notifications.vue:4
-#, fuzzy
-msgid "Loading notifications..."
-msgstr "Laden der Timeline..."
+msgid "Loading notifications…"
+msgstr "Die Benachrichtigungen werden geladen…"
 
 #: front/src/views/content/remote/Home.vue:3
-#, fuzzy
 msgid "Loading remote libraries..."
-msgstr "Laden der Timeline..."
-
-#: front/src/views/instance/Timeline.vue:4
-msgid "Loading timeline..."
-msgstr "Laden der Timeline..."
+msgstr "Laden der entfernten Mediatheken…"
 
 #: front/src/views/content/libraries/Quota.vue:4
-#, fuzzy
-msgid "Loading usage data..."
-msgstr "Laden deiner Favoriten..."
+msgid "Loading usage data…"
+msgstr "Die Nutzungsdaten werden geladen…"
 
 #: front/src/components/favorites/List.vue:5
-msgid "Loading your favorites..."
-msgstr "Laden deiner Favoriten..."
+msgid "Loading your favorites…"
+msgstr "Deine Favoriten werden geladen…"
+
+#: front/src/components/manage/moderation/AccountsTable.vue:59
+#: front/src/views/admin/moderation/AccountsDetail.vue:18
+msgid "Local account"
+msgstr "Lokales Konto"
+
+#: front/src/components/auth/Login.vue:78
+msgid "Log In"
+msgstr "Einloggen"
 
 #: front/src/components/auth/Login.vue:4
 msgid "Log in to your Funkwhale account"
-msgstr "Logge dich zu deinem Funkwhale-Konto ein"
+msgstr "Logge dich bei deinem Funkwhale-Konto ein"
+
+#: front/src/components/auth/Logout.vue:20
+msgid "Log Out"
+msgstr "Ausloggen"
 
 #: front/src/components/Sidebar.vue:38
 msgid "Logged in as %{ username }"
@@ -1031,64 +1442,161 @@ msgstr "Als %{ username } angemeldet"
 msgid "Login"
 msgstr "Einloggen"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:119
+#, fuzzy
+msgid "Login status"
+msgstr "Kontostatus"
+
 #: front/src/components/Sidebar.vue:52
 msgid "Logout"
 msgstr "Ausloggen"
 
-#: front/src/components/library/Track.vue:105
+#: front/src/views/content/libraries/Home.vue:9
+msgid "Looks like you don't have a library, it's time to create one."
+msgstr ""
+"Es sieht aus, als hättest du noch keine Mediathek, höchste Zeit eine "
+"anzulegen."
+
+#: front/src/components/audio/Player.vue:353
+#: src/components/audio/Player.vue:354
+msgid "Looping disabled. Click to switch to single-track looping."
+msgstr "Wiederholung deaktiviert. Schalte die Wiederholung des aktuellen Tracks beim Klicken."
+
+#: front/src/components/audio/Player.vue:356
+#: src/components/audio/Player.vue:357
+msgid "Looping on a single track. Click to switch to whole queue looping."
+msgstr "Wiederholung des aktuellen Tracks. Wiederhole die ganze Wiedergabeliste beim Klicken."
+
+#: front/src/components/audio/Player.vue:359
+#: src/components/audio/Player.vue:360
+msgid "Looping on whole queue. Click to disable looping."
+msgstr "Wiederholung auf die ganze Wiedergabeliste. Deaktiviere die Wiederholung beim Klicken."
+
+#: front/src/components/library/Track.vue:150
 msgid "Lyrics"
 msgstr "Liedtext"
 
+#: front/src/components/Sidebar.vue:210
+msgid "Main menu"
+msgstr "Hauptmenü"
+
+#: front/src/views/admin/library/Base.vue:16
+msgid "Manage library"
+msgstr "Mediathek verwalten"
+
 #: front/src/components/playlists/PlaylistModal.vue:3
 msgid "Manage playlists"
 msgstr "Playlists verwalten"
 
+#: front/src/views/admin/users/Base.vue:20
+msgid "Manage users"
+msgstr "Nutzende verwalten"
+
 #: front/src/views/playlists/List.vue:8
 msgid "Manage your playlists"
 msgstr "Verwalte deine Playlists"
 
 #: front/src/views/Notifications.vue:17
-#, fuzzy
 msgid "Mark all as read"
-msgstr "Als importiert markieren"
+msgstr "Als gelesen markieren"
+
+#: front/src/components/notifications/NotificationRow.vue:44
+msgid "Mark as read"
+msgstr "Als gelesen markieren"
 
-#: front/src/views/admin/users/UsersDetail.vue:94
+#: front/src/components/notifications/NotificationRow.vue:45
+msgid "Mark as unread"
+msgstr "Als ungelesen markieren"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:281
 msgid "MB"
+msgstr "MB"
+
+#: front/src/components/audio/Player.vue:346
+msgid "Media player"
+msgstr "Audio-Player"
+
+#: front/src/components/Footer.vue:32
+msgid "Mobile and desktop apps"
+msgstr "Mobile und desktopbasierte Anwendungen"
+
+#: front/src/components/Sidebar.vue:97
+#: src/components/manage/users/UsersTable.vue:177
+#: front/src/views/admin/moderation/AccountsDetail.vue:468
+#: front/src/views/admin/moderation/Base.vue:21
+msgid "Moderation"
+msgstr "Moderation"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:49
+#: front/src/views/admin/moderation/DomainsDetail.vue:42
+msgid "Moderation policies help you control how your instance interact with a given domain or account."
 msgstr ""
+"Moderationsregeln lassen dich bestimmen, wie deine Instanz mit einem "
+"bestimmten Domain oder Konto interagiert."
+
+#: front/src/components/mixins/Translations.vue:20
+#: front/src/components/mixins/Translations.vue:21
+msgid "Modification date"
+msgstr "Änderungsdatum"
 
-#: front/src/components/Sidebar.vue:63
+#: front/src/components/Sidebar.vue:63 src/views/admin/Settings.vue:82
 msgid "Music"
 msgstr "Musik"
 
+#: front/src/components/audio/Player.vue:352
+msgid "Mute"
+msgstr "Stummschalten"
+
 #: front/src/components/Sidebar.vue:34
 msgid "My account"
 msgstr "Mein Konto"
 
+#: front/src/components/library/radios/Builder.vue:236
+msgid "My awesome description"
+msgstr "Meine super Beschreibung"
+
+#: front/src/views/content/libraries/Form.vue:70
+msgid "My awesome library"
+msgstr "Meine fantastische Mediathek"
+
+#: front/src/components/playlists/Form.vue:74
+msgid "My awesome playlist"
+msgstr "Meine super Playlist"
+
+#: front/src/components/library/radios/Builder.vue:235
+msgid "My awesome radio"
+msgstr "Mein super Radio"
+
 #: front/src/views/content/libraries/Home.vue:6
-#, fuzzy
 msgid "My libraries"
-msgstr "Mediatheke"
+msgstr "Meine Mediatheken"
 
 #: front/src/components/audio/track/Row.vue:40
-#: src/components/library/Track.vue:64
-#: front/src/components/library/Track.vue:75
-#: src/components/library/Track.vue:86
-#: front/src/components/library/Track.vue:97
+#: src/components/library/Track.vue:115
+#: front/src/components/library/Track.vue:124
+#: src/components/library/Track.vue:133
+#: front/src/components/library/Track.vue:142
 #: front/src/components/manage/library/FilesTable.vue:63
 #: front/src/components/manage/library/FilesTable.vue:69
 #: front/src/components/manage/library/FilesTable.vue:75
 #: front/src/components/manage/library/FilesTable.vue:81
 #: front/src/components/manage/users/UsersTable.vue:61
-#: front/src/views/admin/users/UsersDetail.vue:49
-#: front/src/views/content/libraries/FilesTable.vue:89
-#: front/src/views/content/libraries/FilesTable.vue:95
+#: front/src/views/admin/moderation/AccountsDetail.vue:171
+#: front/src/views/admin/moderation/DomainsDetail.vue:90
+#: front/src/views/content/libraries/FilesTable.vue:92
+#: front/src/views/content/libraries/FilesTable.vue:98
+#: front/src/views/admin/moderation/DomainsDetail.vue:109
+#: front/src/views/admin/moderation/DomainsDetail.vue:117
 msgid "N/A"
 msgstr "k.A."
 
+#: front/src/components/manage/moderation/AccountsTable.vue:39
+#: front/src/components/manage/moderation/DomainsTable.vue:38
+#: front/src/components/mixins/Translations.vue:26
 #: front/src/components/playlists/PlaylistModal.vue:31
-#: front/src/views/admin/users/UsersDetail.vue:21
+#: front/src/views/admin/moderation/DomainsDetail.vue:105
 #: front/src/views/content/libraries/Form.vue:10
-#: front/src/components/mixins/Translations.vue:25
+#: front/src/components/mixins/Translations.vue:27
 msgid "Name"
 msgstr "Name"
 
@@ -1097,11 +1605,15 @@ msgstr "Name"
 msgid "New password"
 msgstr "Neues Kennwort"
 
-#: front/src/components/Sidebar.vue:149
+#: front/src/components/Sidebar.vue:160
 msgid "New tracks will be appended here automatically."
 msgstr "Neue Tracks werden hier automatisch hinzugefügt."
 
-#: front/src/components/Sidebar.vue:116
+#: front/src/components/audio/Player.vue:350
+msgid "Next track"
+msgstr "Nächster Track"
+
+#: front/src/components/Sidebar.vue:119
 msgid "No"
 msgstr "Nein"
 
@@ -1109,29 +1621,46 @@ msgstr "Nein"
 msgid "No add-ons, no plugins : you only need a web library"
 msgstr "Keine Erweiterungen, keine Plugins: du brauchst nur eine online Mediathek"
 
-#: front/src/components/library/Track.vue:113
+#: front/src/components/audio/Search.vue:25
+msgid "No album matched your query"
+msgstr "Keine passendes Album gefunden"
+
+#: front/src/components/audio/Search.vue:16
+msgid "No artist matched your query"
+msgstr "Kein passende Künstler oder Künstlerin gefunden"
+
+#: front/src/components/library/Track.vue:158
 msgid "No lyrics available for this track."
 msgstr "Kein verfügbarer Songtext für diesen Track."
 
 #: front/src/components/federation/LibraryWidget.vue:6
-#, fuzzy
 msgid "No matching library."
-msgstr "Domainname eingeben..."
+msgstr "Keine passende Mediathek gefunden."
+
+#: front/src/views/Notifications.vue:26
+msgid "No notifications yet."
+msgstr "Noch keine Benachrichtigungen."
+
+#: front/src/components/mixins/Translations.vue:10
+#: front/src/components/playlists/Form.vue:81
+#: src/views/content/libraries/Form.vue:72
+#: front/src/components/mixins/Translations.vue:11
+msgid "Nobody except me"
+msgstr "Niemand außer mir"
 
 #: front/src/views/content/libraries/Detail.vue:57
 msgid "Nobody is following this library"
-msgstr ""
+msgstr "Niemand folgt dieser Mediathek"
 
 #: front/src/components/manage/users/InvitationsTable.vue:51
 msgid "Not used"
 msgstr "Nicht verwendet"
 
 #: front/src/components/Sidebar.vue:46 src/views/Notifications.vue:74
-#, fuzzy
 msgid "Notifications"
-msgstr "Letzte Bearbeitung"
+msgstr "Benachrichtigungen"
 
-#: front/src/App.vue:36
+#: front/src/components/Footer.vue:47
 msgid "Official website"
 msgstr "Offizielle Webseite"
 
@@ -1143,14 +1672,32 @@ msgstr "Altes Kennwort"
 msgid "Open"
 msgstr "Frei"
 
-#: front/src/App.vue:62
-msgid "Options"
-msgstr "Optionen"
+#: front/src/views/admin/moderation/AccountsDetail.vue:23
+msgid "Open profile"
+msgstr "Profil öffnen"
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:16
+msgid "Open website"
+msgstr "Webseite öffnen"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:40
+msgid "Or customize your rule"
+msgstr "Oder die Moderationsregel anpassen"
+
+#: front/src/components/favorites/List.vue:31
+#: src/components/library/Radios.vue:41
+#: front/src/components/manage/library/FilesTable.vue:17
+#: front/src/components/manage/users/UsersTable.vue:17
+#: front/src/views/playlists/List.vue:25
+msgid "Order"
+msgstr "Sortierung"
 
 #: front/src/components/favorites/List.vue:23
 #: src/components/library/Artists.vue:15
 #: front/src/components/library/Radios.vue:33
 #: front/src/components/manage/library/FilesTable.vue:9
+#: front/src/components/manage/moderation/AccountsTable.vue:11
+#: front/src/components/manage/moderation/DomainsTable.vue:9
 #: front/src/components/manage/users/InvitationsTable.vue:9
 #: front/src/components/manage/users/UsersTable.vue:9
 #: front/src/views/content/libraries/FilesTable.vue:21
@@ -1158,13 +1705,10 @@ msgstr "Optionen"
 msgid "Ordering"
 msgstr "Sortierung"
 
-#: front/src/components/favorites/List.vue:31
-#: src/components/library/Artists.vue:23
-#: front/src/components/library/Radios.vue:41
-#: front/src/components/manage/library/FilesTable.vue:17
-#: front/src/components/manage/users/UsersTable.vue:17
+#: front/src/components/library/Artists.vue:23
+#: front/src/components/manage/moderation/AccountsTable.vue:19
+#: front/src/components/manage/moderation/DomainsTable.vue:17
 #: front/src/views/content/libraries/FilesTable.vue:29
-#: front/src/views/playlists/List.vue:25
 msgid "Ordering direction"
 msgstr "Reihenfolge"
 
@@ -1172,21 +1716,45 @@ msgstr "Reihenfolge"
 msgid "Owner"
 msgstr "Besitzer"
 
+#: front/src/components/PageNotFound.vue:33
+msgid "Page Not Found"
+msgstr "Seite nicht gefunden"
+
 #: front/src/components/PageNotFound.vue:7
 msgid "Page not found!"
 msgstr "Seite nicht gefunden!"
 
+#: front/src/components/Pagination.vue:39
+msgid "Pagination"
+msgstr "Seitennummerierung"
+
 #: front/src/components/auth/Login.vue:32 src/components/auth/Signup.vue:38
 msgid "Password"
 msgstr "Kennwort"
 
+#: front/src/components/auth/SubsonicTokenForm.vue:95
+msgid "Password updated"
+msgstr "Kennwort aktualisiert"
+
 #: front/src/views/auth/PasswordResetConfirm.vue:28
 msgid "Password updated successfully"
 msgstr "Kennwort erfolgreich aktualisiert"
 
-#: front/src/components/library/FileUpload.vue:105
+#: front/src/components/audio/Player.vue:349
+msgid "Pause track"
+msgstr "Track pausen"
+
+#: front/src/components/ShortcutsModal.vue:59
+msgid "Pause/play the current track"
+msgstr "Track pausen bzw. wiedergeben"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:12
+msgid "Paused"
+msgstr "Pausiert"
+
+#: front/src/components/library/FileUpload.vue:106
 #: front/src/views/content/libraries/FilesTable.vue:14
-#: front/src/views/content/libraries/FilesTable.vue:233
+#: front/src/views/content/libraries/FilesTable.vue:208
 msgid "Pending"
 msgstr "Ausstehend"
 
@@ -1195,27 +1763,27 @@ msgid "Pending approval"
 msgstr "Steht auf Bestätigung aus"
 
 #: front/src/views/content/libraries/Quota.vue:22
-#, fuzzy
 msgid "Pending files"
-msgstr "Ausstehend"
+msgstr "Ausstehende Dateien"
 
-#: front/src/components/requests/Form.vue:26
-msgid "Pending requests"
-msgstr "Ausstehende Anfragen"
+#: front/src/components/Sidebar.vue:212
+msgid "Pending follow requests"
+msgstr "Ausstehende Abonnieren-Anfrage"
 
 #: front/src/components/manage/users/UsersTable.vue:42
-#: front/src/views/admin/users/UsersDetail.vue:68
+#: front/src/views/admin/moderation/AccountsDetail.vue:137
 msgid "Permissions"
 msgstr "Berechtigungen"
 
 #: front/src/components/audio/PlayButton.vue:9
-#: src/components/library/Track.vue:30
+#: src/components/library/Track.vue:40
 msgid "Play"
 msgstr "Abspielen"
 
 #: front/src/components/audio/album/Card.vue:50
 #: front/src/components/audio/artist/Card.vue:44
-#: src/components/library/Album.vue:28 front/src/views/playlists/Detail.vue:23
+#: src/components/library/Album.vue:28
+#: front/src/components/library/Album.vue:73 src/views/playlists/Detail.vue:23
 msgid "Play all"
 msgstr "Alles abspielen"
 
@@ -1224,13 +1792,36 @@ msgid "Play all albums"
 msgstr "Alle Alben abspielen"
 
 #: front/src/components/audio/PlayButton.vue:15
+#: front/src/components/audio/PlayButton.vue:65
 msgid "Play next"
 msgstr "Danach abspielen"
 
+#: front/src/components/ShortcutsModal.vue:67
+msgid "Play next track"
+msgstr "Nächster Track abspielen"
+
 #: front/src/components/audio/PlayButton.vue:16
+#: front/src/components/audio/PlayButton.vue:63
+#: front/src/components/audio/PlayButton.vue:70
 msgid "Play now"
 msgstr "Jetzt abspielen"
 
+#: front/src/components/ShortcutsModal.vue:63
+msgid "Play previous track"
+msgstr "Vorheriger Track abspielen"
+
+#: front/src/components/Sidebar.vue:211
+msgid "Play this track"
+msgstr "Diesen Track abspielen"
+
+#: front/src/components/audio/Player.vue:348
+msgid "Play track"
+msgstr "Abspielen"
+
+#: front/src/views/playlists/Detail.vue:90
+msgid "Playlist"
+msgstr "Playlist"
+
 #: front/src/views/playlists/Detail.vue:12
 msgid "Playlist containing %{ count } track, by %{ username }"
 msgid_plural "Playlist containing %{ count } tracks, by %{ username }"
@@ -1258,8 +1849,8 @@ msgid "Playlist visibility"
 msgstr "Sichtbarkeit der Playlist"
 
 #: front/src/components/Sidebar.vue:71 src/components/library/Home.vue:16
-#: front/src/components/library/Library.vue:13 src/views/playlists/List.vue:104
-#: front/src/views/admin/Settings.vue:82
+#: front/src/components/library/Library.vue:13 src/views/admin/Settings.vue:83
+#: front/src/views/playlists/List.vue:106
 msgid "Playlists"
 msgstr "Playlists"
 
@@ -1269,7 +1860,7 @@ msgstr "Playlists? Haben wir auch!"
 
 #: front/src/components/auth/Settings.vue:79
 msgid "Please double-check your password is correct"
-msgstr "Bitte prüfen, dass dein Kennwort richtig ist"
+msgstr "Prüfe bitte, dass dein Kennwort richtig ist"
 
 #: front/src/components/auth/Login.vue:9
 msgid "Please double-check your username/password couple is correct"
@@ -1279,10 +1870,27 @@ msgstr "Bitte prüfe, dass dein Benutzername und dein Kennwort miteinander stimm
 msgid "PNG, GIF or JPG. At most 2MB. Will be downscaled to 400x400px."
 msgstr "PNG, GIF oder JPG. Max. 2 Mb. Das Bild wird ggf. auf 400x400 px verkleinert."
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:118
+msgid "Prevent account or domain from triggering notifications, except from followers."
+msgstr ""
+"Die Benachrichtigungen von diesem Konto bzw. Domain werden an allen "
+"gesperrt, außer Abonnenten."
+
+#: front/src/components/audio/EmbedWizard.vue:29
+msgid "Preview"
+msgstr "Vorschau"
+
+#: front/src/components/audio/Player.vue:347
+msgid "Previous track"
+msgstr "Vorheriger Track"
+
+#: front/src/views/content/remote/Card.vue:39
+msgid "Problem during scanning"
+msgstr "Fehler beim Scannen"
+
 #: front/src/components/library/FileUpload.vue:58
-#, fuzzy
 msgid "Proceed"
-msgstr "Jetzt einloggen"
+msgstr "Fortfahren"
 
 #: front/src/views/auth/EmailConfirm.vue:26
 #: front/src/views/auth/PasswordResetConfirm.vue:31
@@ -1291,8 +1899,10 @@ msgstr "Jetzt einloggen"
 
 #: front/src/components/library/FileUpload.vue:17
 msgid "Processing"
-msgstr ""
+msgstr "In Bearbeitung"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:188
+#: front/src/components/manage/moderation/DomainsTable.vue:168
 #: front/src/views/content/libraries/Quota.vue:36
 #: front/src/views/content/libraries/Quota.vue:39
 #: front/src/views/content/libraries/Quota.vue:62
@@ -1300,24 +1910,36 @@ msgstr ""
 #: front/src/views/content/libraries/Quota.vue:88
 #: front/src/views/content/libraries/Quota.vue:91
 msgid "Purge"
-msgstr ""
+msgstr "Säubern"
 
 #: front/src/views/content/libraries/Quota.vue:89
 msgid "Purge errored files?"
-msgstr ""
+msgstr "Fehlerhafte Dateien entfernen?"
 
 #: front/src/views/content/libraries/Quota.vue:37
 msgid "Purge pending files?"
-msgstr ""
+msgstr "Ausstehende Dateien löschen?"
 
 #: front/src/views/content/libraries/Quota.vue:63
 msgid "Purge skipped files?"
-msgstr ""
+msgstr "Übersprungene Dateien löschen?"
 
 #: front/src/components/Sidebar.vue:20
 msgid "Queue"
 msgstr "Wiedergabeliste"
 
+#: front/src/components/audio/Player.vue:282
+msgid "Queue shuffled!"
+msgstr "Wiedergabeliste gemischt!"
+
+#: front/src/views/radios/Detail.vue:80
+msgid "Radio"
+msgstr "Radio"
+
+#: front/src/components/library/radios/Builder.vue:233
+msgid "Radio Builder"
+msgstr "Radioeditor"
+
 #: front/src/components/library/radios/Builder.vue:15
 msgid "Radio created"
 msgstr "Radio erstellt"
@@ -1331,17 +1953,29 @@ msgid "Radio updated"
 msgstr "Radio aktualisiert"
 
 #: front/src/components/library/Library.vue:10
-#: src/components/library/Radios.vue:142
+#: src/components/library/Radios.vue:141
 msgid "Radios"
 msgstr "Radios"
 
-#: front/src/views/instance/Timeline.vue:7
-msgid "Recent activity on this instance"
-msgstr "Kürzliche Aktivität auf dieser Instanz"
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:39
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:25
+msgid "Reason"
+msgstr "Begründung"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:222
+#: front/src/views/admin/moderation/DomainsDetail.vue:179
+msgid "Received library follows"
+msgstr "Empfangene Abonnements"
+
+#: front/src/components/manage/moderation/DomainsTable.vue:40
+#: front/src/components/mixins/Translations.vue:36
+#: front/src/components/mixins/Translations.vue:37
+msgid "Received messages"
+msgstr "Empfangene Nachrichten"
 
 #: front/src/components/library/Home.vue:24
 msgid "Recently added"
-msgstr "Neulich eingefügt"
+msgstr "Neulich hinzugefügt"
 
 #: front/src/components/library/Home.vue:11
 msgid "Recently favorited"
@@ -1351,39 +1985,58 @@ msgstr "Neulich zu den Favoriten hinzugefügt"
 msgid "Recently listened"
 msgstr "Neulich angehört"
 
-#: front/src/views/admin/users/UsersDetail.vue:103
 #: front/src/views/content/remote/Home.vue:15
 msgid "Refresh"
 msgstr "Aktualisieren"
 
+#: front/src/views/admin/moderation/DomainsDetail.vue:135
+msgid "Refresh node info"
+msgstr "Knoteninformationen aktualisieren"
+
+#: front/src/components/common/ActionTable.vue:272
+msgid "Refresh table content"
+msgstr "Tabelleninhalt aktualisieren"
+
 #: front/src/components/auth/Profile.vue:12
 msgid "Registered since %{ date }"
 msgstr "Angemeldet seit %{ date }"
 
 #: front/src/components/auth/Signup.vue:9
 msgid "Registration are closed on this instance, you will need an invitation code to signup."
-msgstr "Die Registrierung neuer Benutzer ist geschlossen. Du brauchst einen Einladungscode, wenn du dich trotzdem registrieren möchtest."
+msgstr ""
+"Die Registrierung neuer Nutzenden ist geschlossen. Die Registrierung erfolgt "
+"nur mit einem Einladungscode."
 
 #: front/src/components/manage/users/UsersTable.vue:71
 msgid "regular user"
-msgstr "Standardnutzende"
+msgstr "Standardkonto"
 
 #: front/src/views/content/libraries/Detail.vue:51
 msgid "Reject"
-msgstr ""
+msgstr "Ablehnen"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:32
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:123
+msgid "Reject media"
+msgstr "Media abweisen"
 
 #: front/src/views/content/libraries/Detail.vue:43
 msgid "Rejected"
-msgstr ""
+msgstr "Abgelehnt"
+
+#: front/src/views/content/libraries/FilesTable.vue:234
+msgid "Relaunch import"
+msgstr "Import erneut starten"
 
 #: front/src/views/content/remote/Home.vue:6
-#, fuzzy
 msgid "Remote libraries"
-msgstr "Bring mich zur Mediathek"
+msgstr "Fernmediatheken"
 
 #: front/src/views/content/remote/Home.vue:7
 msgid "Remote libraries are owned by other users on the network. You can access them as long as they are public or you are granted access."
 msgstr ""
+"Fernmediatheken gehören anderen Nutzenden im Netzwerk. Du kannst auf sie "
+"zugreifen solange sie öffentlich sind oder dir Zugang gewährt wurde."
 
 #: front/src/components/library/radios/Filter.vue:59
 msgid "Remove"
@@ -1391,26 +2044,46 @@ msgstr "Löschen"
 
 #: front/src/components/auth/Settings.vue:58
 msgid "Remove avatar"
-msgstr "Avatar löschen"
+msgstr "Profilbild löschen"
+
+#: front/src/components/favorites/TrackFavoriteIcon.vue:26
+msgid "Remove from favorites"
+msgstr "Aus den Favoriten entfernen"
+
+#: front/src/views/content/libraries/Quota.vue:38
+msgid "Removes uploaded but yet to be processed tracks completely, adding the corresponding data to your quota."
+msgstr ""
+"Die importierten Tracks, die noch nicht vom Server verarbeitet wurden, "
+"werden vollständig gelöscht. Du erhältst den entsprechenden Speicherplatz "
+"zurück."
+
+#: front/src/views/content/libraries/Quota.vue:64
+msgid "Removes uploaded tracks skipped during the import processes completely, adding the corresponding data to your quota."
+msgstr ""
+"Die hochgeladenen Dateien, die beim Import übersprungen wurden, werden "
+"vollständig gelöscht. Du erhältst den entsprechenden Speicherplatz zurück."
+
+#: front/src/views/content/libraries/Quota.vue:90
+msgid "Removes uploaded tracks that could not be processed by the server completely, adding the corresponding data to your quota."
+msgstr ""
+"Die hochgeladenen Dateien, die vom Server nicht verarbeitet wurden, werden "
+"vollständig gelöscht. Du erhältst den entsprechenden Speicherplatz zurück."
 
 #: front/src/components/auth/SubsonicTokenForm.vue:34
 #: front/src/components/auth/SubsonicTokenForm.vue:37
 msgid "Request a new password"
-msgstr "Ein neues Passwort beantragen"
+msgstr "Neues Kennwort beantragen"
 
 #: front/src/components/auth/SubsonicTokenForm.vue:35
 msgid "Request a new Subsonic API password?"
-msgstr "Ein neues Subsonic-API-Kennwort beantragen?"
+msgstr "Neues Subsonic-API-Kennwort beantragen?"
 
 #: front/src/components/auth/SubsonicTokenForm.vue:43
 msgid "Request a password"
 msgstr "Kennwort beantragen"
 
-#: front/src/components/requests/Form.vue:20
-msgid "Request submitted!"
-msgstr "Anfrage gesendet!"
-
 #: front/src/components/auth/Login.vue:34 src/views/auth/PasswordReset.vue:4
+#: front/src/views/auth/PasswordReset.vue:52
 msgid "Reset your password"
 msgstr "Kennwort zurücksetzen"
 
@@ -1420,33 +2093,52 @@ msgstr "Kennwort zurücksetzen"
 msgid "Results per page"
 msgstr "Ergebnisse pro Seite"
 
+#: front/src/views/auth/EmailConfirm.vue:17
+msgid "Return to login"
+msgstr "Zurück zur Anmeldeseite"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:16
+msgid "Rule"
+msgstr "Regel"
+
 #: front/src/components/admin/SettingsGroup.vue:63
 #: front/src/components/library/radios/Builder.vue:33
 msgid "Save"
 msgstr "Speichern"
 
+#: front/src/views/content/remote/Card.vue:165
+msgid "Scan launched"
+msgstr "Scan gestartet"
+
+#: front/src/views/content/remote/Card.vue:63
+msgid "Scan now"
+msgstr "Jetzt scannen"
+
+#: front/src/views/content/remote/Card.vue:166
+msgid "Scan skipped (previous scan is too recent)"
+msgstr "Scan übersprungen (letzter Scan ist zu jung)"
+
 #: front/src/views/content/remote/Card.vue:31
-#, fuzzy
-msgid "Scan pending"
-msgstr "Zunehmend"
+msgid "Scan waiting"
+msgstr "Scan steht aus"
 
 #: front/src/views/content/remote/Card.vue:43
-#, fuzzy
-msgid "Scanned successfully"
-msgstr "Einstellungen erfolgreich aktualisiert."
+msgid "Scanned"
+msgstr "Scan abgeschlossen"
 
 #: front/src/views/content/remote/Card.vue:47
-#, fuzzy
 msgid "Scanned with errors"
-msgstr "Änderungen synchronisiert"
+msgstr "Scan mit Fehlern abgeschlossen"
 
 #: front/src/views/content/remote/Card.vue:35
-msgid "Scanning... (%{ progress }%)"
-msgstr ""
+msgid "Scanning… (%{ progress }%)"
+msgstr "Scan läuft… (%{ progress }%)"
 
 #: front/src/components/library/Artists.vue:10
 #: src/components/library/Radios.vue:29
 #: front/src/components/manage/library/FilesTable.vue:5
+#: front/src/components/manage/moderation/AccountsTable.vue:5
+#: front/src/components/manage/moderation/DomainsTable.vue:5
 #: front/src/components/manage/users/InvitationsTable.vue:5
 #: front/src/components/manage/users/UsersTable.vue:5
 #: front/src/views/content/libraries/FilesTable.vue:5
@@ -1455,24 +2147,58 @@ msgid "Search"
 msgstr "Suchen"
 
 #: front/src/views/content/remote/ScanForm.vue:9
-#, fuzzy
 msgid "Search a remote library"
-msgstr "Bring mich zur Mediathek"
+msgstr "Eine Fernmediathek suchen"
+
+#: front/src/components/manage/moderation/AccountsTable.vue:171
+msgid "Search by domain, username, bio..."
+msgstr "Domain, Benutzernamen, Biografie suchen…"
+
+#: front/src/components/manage/moderation/DomainsTable.vue:151
+msgid "Search by name..."
+msgstr "Namen suchen…"
+
+#: front/src/views/content/libraries/FilesTable.vue:201
+msgid "Search by title, artist, album…"
+msgstr "Titel, Künstler, Album suchen…"
+
+#: front/src/components/manage/library/FilesTable.vue:176
+msgid "Search by title, artist, domain…"
+msgstr "Titel, Künstler, Künstlerin oder Domain suchen…"
+
+#: front/src/components/manage/users/InvitationsTable.vue:153
+msgid "Search by username, e-mail address, code…"
+msgstr "Benutzernamen, E-Mail-Adresse, Kode suchen…"
+
+#: front/src/components/manage/users/UsersTable.vue:163
+msgid "Search by username, e-mail address, name…"
+msgstr "Benutzernamen, E-Mail-Adresse, Namen suchen…"
+
+#: front/src/components/audio/SearchBar.vue:20
+msgid "Search for artists, albums, tracks…"
+msgstr "Künstler, Künstlerinnen, Alben, Tracks suchen…"
 
 #: front/src/components/audio/Search.vue:2
 msgid "Search for some music"
 msgstr "Musik suchen"
 
-#: front/src/components/library/Track.vue:116
+#: front/src/components/library/Track.vue:162
 msgid "Search on lyrics.wikia.com"
 msgstr "Auf lyrics.wikia.com suchen"
 
 #: front/src/components/library/Album.vue:33
 #: src/components/library/Artist.vue:31
-#: front/src/components/library/Track.vue:40
+#: front/src/components/library/Track.vue:47
 msgid "Search on Wikipedia"
 msgstr "Auf Wikipedia suchen"
 
+#: front/src/components/library/Library.vue:32
+#: src/views/admin/library/Base.vue:17
+#: front/src/views/admin/moderation/Base.vue:22
+#: src/views/admin/users/Base.vue:21 front/src/views/content/Base.vue:19
+msgid "Secondary menu"
+msgstr "Nebenmenü"
+
 #: front/src/views/admin/Settings.vue:15
 msgid "Sections"
 msgstr "Abschnitte"
@@ -1481,19 +2207,19 @@ msgstr "Abschnitte"
 msgid "Select a filter"
 msgstr "Filter auswählen"
 
-#: front/src/components/common/ActionTable.vue:64
+#: front/src/components/common/ActionTable.vue:77
 msgid "Select all %{ total } elements"
 msgid_plural "Select all %{ total } elements"
 msgstr[0] "1 Element auswählen"
 msgstr[1] "Alle %{ total } Elemente auswählen"
 
-#: front/src/components/common/ActionTable.vue:73
+#: front/src/components/common/ActionTable.vue:86
 msgid "Select only current page"
 msgstr "Nur die aktuelle Seite auswählen"
 
-#: front/src/components/Sidebar.vue:43 src/components/Sidebar.vue:88
-#: front/src/components/manage/users/UsersTable.vue:185
-#: front/src/views/admin/users/UsersDetail.vue:189
+#: front/src/components/Sidebar.vue:43 src/components/Sidebar.vue:85
+#: front/src/components/manage/users/UsersTable.vue:181
+#: front/src/views/admin/moderation/AccountsDetail.vue:472
 msgid "Settings"
 msgstr "Einstellungen"
 
@@ -1507,86 +2233,110 @@ msgstr "Einstellungen erfolgreich aktualisiert."
 
 #: front/src/components/manage/users/InvitationForm.vue:27
 msgid "Share link"
-msgstr "Link zum Teilen"
+msgstr "Freigabe-Link"
 
 #: front/src/views/content/libraries/Detail.vue:15
-msgid "Share this link with other users so they can request an access to your library."
+msgid "Share this link with other users so they can request access to your library."
 msgstr ""
+"Teile diesen Link mit anderen Nutzenden, damit diese Zugriff auf deine "
+"Mediathek anfordern können."
 
 #: front/src/views/content/libraries/Detail.vue:14
 #: front/src/views/content/remote/Card.vue:73
-#, fuzzy
 msgid "Sharing link"
-msgstr "Link zum Teilen"
+msgstr "Freigabe-Link"
 
 #: front/src/components/audio/album/Card.vue:40
-#, fuzzy
 msgid "Show %{ count } more track"
 msgid_plural "Show %{ count } more tracks"
-msgstr[0] "%{ count } Track"
-msgstr[1] "%{ count } Tracks"
+msgstr[0] "%{ count } weiteren Track zeigen"
+msgstr[1] "%{ count } weitere Tracks zeigen"
 
 #: front/src/components/audio/artist/Card.vue:30
 msgid "Show 1 more album"
 msgid_plural "Show %{ count } more albums"
-msgstr[0] "1 Album mehr zeigen"
-msgstr[1] "%{ count } Alben mehr zeigen"
+msgstr[0] "1 weiteres Album zeigen"
+msgstr[1] "%{ count } weitere Alben zeigen"
+
+#: front/src/components/ShortcutsModal.vue:42
+msgid "Show available keyboard shortcuts"
+msgstr "Verfügbare Tastenkombinationen zeigen"
 
 #: front/src/views/Notifications.vue:10
-#, fuzzy
 msgid "Show read notifications"
-msgstr "Letzte Bearbeitung"
+msgstr "Gelesene Benachrichtigungen zeigen"
+
+#: front/src/components/forms/PasswordInput.vue:25
+msgid "Show/hide password"
+msgstr "Passwort verstecken bzw. zeigen"
 
 #: front/src/components/manage/library/FilesTable.vue:97
+#: front/src/components/manage/moderation/AccountsTable.vue:88
+#: front/src/components/manage/moderation/DomainsTable.vue:74
 #: front/src/components/manage/users/InvitationsTable.vue:76
 #: front/src/components/manage/users/UsersTable.vue:87
-#: front/src/views/content/libraries/FilesTable.vue:111
+#: front/src/views/content/libraries/FilesTable.vue:114
 msgid "Showing results %{ start }-%{ end } on %{ total }"
 msgstr "Ergebnisse %{ start } bis %{ end } von %{ total }"
 
+#: front/src/components/ShortcutsModal.vue:83
+msgid "Shuffle queue"
+msgstr "Wiedergabeliste mischen"
+
+#: front/src/components/audio/Player.vue:362
+msgid "Shuffle your queue"
+msgstr "Wiedergabeliste mischen"
+
+#: front/src/components/auth/Signup.vue:95
+msgid "Sign Up"
+msgstr "Anmeldung"
+
 #: front/src/components/manage/users/UsersTable.vue:40
-#: front/src/views/admin/users/UsersDetail.vue:37
 msgid "Sign-up"
 msgstr "Anmeldung"
 
-#: front/src/components/library/FileUpload.vue:84
-#: src/components/library/Track.vue:69
+#: front/src/components/mixins/Translations.vue:31
+#: front/src/views/admin/moderation/AccountsDetail.vue:176
+#: front/src/components/mixins/Translations.vue:32
+msgid "Sign-up date"
+msgstr "Anmeldedatum"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:24
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:115
+msgid "Silence activity"
+msgstr "Aktivität stummschalten"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:28
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:119
+msgid "Silence notifications"
+msgstr "Benachrichtigungen stummschalten"
+
+#: front/src/components/library/FileUpload.vue:85
+#: front/src/components/library/Track.vue:120
 #: front/src/components/manage/library/FilesTable.vue:44
-#: front/src/views/content/libraries/FilesTable.vue:57
-#: front/src/components/mixins/Translations.vue:27
+#: front/src/components/mixins/Translations.vue:28
+#: front/src/views/content/libraries/FilesTable.vue:60
+#: front/src/components/mixins/Translations.vue:29
 msgid "Size"
 msgstr "Größe"
 
 #: front/src/views/content/libraries/FilesTable.vue:15
-#: front/src/views/content/libraries/FilesTable.vue:229
+#: front/src/views/content/libraries/FilesTable.vue:204
 msgid "Skipped"
 msgstr "Ausgelassen"
 
 #: front/src/views/content/libraries/Quota.vue:49
-#, fuzzy
 msgid "Skipped files"
-msgstr "Ausgelassen"
+msgstr "Ausgelassene Dateien"
 
-#: front/src/components/requests/Form.vue:3
-msgid "Something's missing in the library? Let us know what you would like to listen!"
-msgstr "Dir fehlt etwas in der Mediathek? Sage uns was du anhören möchtest!"
-
-#: front/src/components/audio/Search.vue:25
-msgid "Sorry, we did not found any album matching your query"
-msgstr "Sorry, wir haben keine passende Alben für deine Suche gefunden"
-
-#: front/src/components/audio/Search.vue:16
-msgid "Sorry, we did not found any artist matching your query"
-msgstr "Entschuldigung, wir haben keine passenden Künstler oder Künstlerinnen für deine Suche gefunden"
+#: front/src/views/admin/moderation/DomainsDetail.vue:97
+msgid "Software"
+msgstr "Software"
 
-#: front/src/App.vue:40
+#: front/src/components/Footer.vue:49
 msgid "Source code"
 msgstr "Quellcode"
 
-#: front/src/App.vue:39
-msgid "Source code (%{version})"
-msgstr "Quelcode (%{ version })"
-
 #: front/src/components/auth/Profile.vue:23
 #: front/src/components/manage/users/UsersTable.vue:70
 msgid "Staff member"
@@ -1596,10 +2346,29 @@ msgstr "Teammember"
 msgid "Start"
 msgstr "Starten"
 
-#: front/src/components/library/FileUpload.vue:85
+#: front/src/views/admin/Settings.vue:86
+msgid "Statistics"
+msgstr "Statistik"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:454
+msgid "Statistics are computed from known activity and content on your instance, and do not reflect general activity for this account"
+msgstr ""
+"Statistiken betrachten ausschließlich die Aktivität und den Inhalt, die von "
+"deiner Instanz bekannt sind, und stellen nicht die gesamte Aktivität dieses "
+"Kontos dar"
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:358
+msgid "Statistics are computed from known activity and content on your instance, and do not reflect general activity for this domain"
+msgstr ""
+"Statistiken betrachten ausschließlich die Aktivität und den Inhalt, die von "
+"deiner Instanz bekannt sind, und stellen nicht die gesamte Aktivität dieses "
+"Domains dar"
+
+#: front/src/components/library/FileUpload.vue:86
 #: front/src/components/manage/users/InvitationsTable.vue:17
 #: front/src/components/manage/users/InvitationsTable.vue:39
 #: front/src/components/manage/users/UsersTable.vue:43
+#: front/src/views/admin/moderation/DomainsDetail.vue:123
 #: front/src/views/content/libraries/Detail.vue:28
 msgid "Status"
 msgstr "Status"
@@ -1608,53 +2377,67 @@ msgstr "Status"
 msgid "Stop"
 msgstr "Abbrechen"
 
-#: front/src/components/Sidebar.vue:150
+#: front/src/components/Sidebar.vue:161
 msgid "Stop radio"
 msgstr "Radio stoppen"
 
-#: front/src/App.vue:11 src/components/requests/Form.vue:17
+#: front/src/App.vue:22
 msgid "Submit"
 msgstr "Abschicken"
 
-#: front/src/components/requests/Form.vue:22
-msgid "Submit another request"
-msgstr "Erneut anfragen"
+#: front/src/views/admin/Settings.vue:85
+msgid "Subsonic"
+msgstr "Subsonic"
 
 #: front/src/components/auth/SubsonicTokenForm.vue:2
 msgid "Subsonic API password"
 msgstr "Subsonic-API-Kennwort"
 
-#: front/src/App.vue:13
+#: front/src/App.vue:26
 msgid "Suggested choices"
 msgstr "Empfehlungen"
 
 #: front/src/components/library/FileUpload.vue:3
 msgid "Summary"
-msgstr ""
+msgstr "Zusammenfassung"
+
+#: front/src/components/Footer.vue:39
+msgid "Support forum"
+msgstr "Hilfe-Forum"
+
+#: front/src/components/library/FileUpload.vue:78
+msgid "Supported extensions: %{ extensions }"
+msgstr "Unterstützte Dateierweiterungen: %{ extensions }"
 
 #: front/src/components/playlists/Editor.vue:9
-msgid "Syncing changes to server..."
-msgstr "Synchronisierung der Änderungen auf dem Server..."
+msgid "Syncing changes to server…"
+msgstr "Synchronisierung der Änderungen auf dem Server…"
 
 #: front/src/components/common/CopyInput.vue:3
 msgid "Text copied to clipboard!"
-msgstr ""
+msgstr "Text in die Zwischenablage kopiert!"
 
 #: front/src/components/Home.vue:26
 msgid "That's simple: we loved Grooveshark and we want to build something even better."
 msgstr "So einfach ist es: wir liebten Grooveshark, doch wollen wir noch besser machen."
 
-#: front/src/App.vue:58
+#: front/src/components/Footer.vue:53
 msgid "The funkwhale logo was kindly designed and provided by Francis Gading."
 msgstr "Das Funkwhale-Logo wurde mit Lieb von Francis Gading erbracht."
 
 #: front/src/views/content/libraries/Form.vue:34
-msgid "The library and all its tracks will be deleted. This action is irreversible."
+msgid "The library and all its tracks will be deleted. This can not be undone."
 msgstr ""
+"Die Mediathek und all ihre Dateien werden gelöscht. Dieser Vorgang ist "
+"unwiderruflich."
 
 #: front/src/components/library/FileUpload.vue:39
 msgid "The music files you are uploading are tagged properly:"
-msgstr ""
+msgstr "Die Musikdateien, die du hochlädst sind richtig verschlagwortet:"
+
+#: front/src/components/audio/Player.vue:67
+msgid "The next track will play automatically in a few seconds..."
+msgstr "Der nächste Track wird in wenigen Sekunden automatisch wiedergegeben…"
 
 #: front/src/components/Home.vue:121
 msgid "The plaform is free and open-source, you can install it and modify it without worries"
@@ -1666,35 +2449,69 @@ msgstr "Die Subsonic-API ist auf dieser Instanz nicht verfügbar."
 
 #: front/src/components/library/FileUpload.vue:43
 msgid "The uploaded music files are in OGG, Flac or MP3 format"
-msgstr ""
+msgstr "Die hochgeladenen Musikdateien sind im OGG-, Flac- oder MP3-Format"
+
+#: front/src/views/content/Home.vue:4
+msgid "There are various ways to grab new content and make it available here."
+msgstr "Es gibt zahlreiche Wege, neue Inhalte abzurufen und zu veröffentlichen."
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:66
+msgid "This action is irreversible."
+msgstr "Dieser Vorgang ist unwiderruflich."
 
-#: front/src/components/library/Album.vue:52
+#: front/src/components/library/Album.vue:91
 msgid "This album is present in the following libraries:"
-msgstr ""
+msgstr "Dieses Album ist in den folgenden Mediatheken enthalten:"
 
 #: front/src/components/library/Artist.vue:63
 msgid "This artist is present in the following libraries:"
-msgstr ""
+msgstr "Dieser Künstler ist in den folgenden Mediatheken enthalten:"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:55
+#: front/src/views/admin/moderation/DomainsDetail.vue:48
+msgid "This domain is subject to specific moderation rules"
+msgstr "Diese Domain wird von besonderen Moderationsregeln verwaltet"
 
 #: front/src/views/content/Home.vue:9
-msgid "This instance offers up to %{quota} of storage space to every user."
-msgstr ""
+msgid "This instance offers up to %{quota} of storage space for every user."
+msgstr "Diese Instanz bietet den Nutzenden bis zu %{quota} Speicherplatz."
 
 #: front/src/components/auth/Profile.vue:16
 msgid "This is you!"
 msgstr "Das bist du!"
 
-#: front/src/components/common/ActionTable.vue:38
-msgid "This may affect a lot of elements, please double check this is really what you want."
-msgstr "Durch diese Aktion können mehrere Elemente betroffen werden, prüfe bitte nach, das du es wirklich willst."
+#: front/src/views/content/libraries/Form.vue:71
+msgid "This library contains my personal music, I hope you like it."
+msgstr ""
+"Diese Mediathek enthält meine persönliche Musik. Ich hoffe sie gefällt euch."
+
+#: front/src/views/content/remote/Card.vue:131
+msgid "This library is private and your approval from its owner is needed to access its content"
+msgstr ""
+"Diese Mediathek ist privat. Dein Zugriff auf sie braucht die Zusage ihrer "
+"besitzenden Person"
+
+#: front/src/views/content/remote/Card.vue:132
+msgid "This library is public and you can access its content freely"
+msgstr "Diese Mediathek ist öffentlich. Du kannst dem Inhalt frei zugreifen"
+
+#: front/src/components/common/ActionTable.vue:45
+msgid "This may affect a lot of elements or have irreversible consequences, please double check this is really what you want."
+msgstr ""
+"Durch diese Aktion können mehrere Elemente betroffen werden, prüfe bitte "
+"nach, das du es wirklich willst."
 
 #: front/src/components/library/FileUpload.vue:52
 msgid "This reference will be used to group imported files together."
-msgstr ""
+msgstr "Diese Referenz wird verwendet, um importierte Dateien zu gruppieren."
+
+#: front/src/components/audio/PlayButton.vue:73
+msgid "This track is not available in any library you have access to"
+msgstr "Dieser Track ist in keiner deiner verfügbaren Mediatheken enthalten"
 
-#: front/src/components/library/Track.vue:125
+#: front/src/components/library/Track.vue:171
 msgid "This track is present in the following libraries:"
-msgstr ""
+msgstr "Dieser Track ist in den folgenden Mediatheken enthalten:"
 
 #: front/src/views/playlists/Detail.vue:37
 msgid "This will completely delete this playlist and cannot be undone."
@@ -1708,164 +2525,11 @@ msgstr "Das Radio wird dauerhaft gelöscht und kann nicht zurückerstellt werden
 msgid "This will completely disable access to the Subsonic API using from account."
 msgstr "Der Zugriff zur Subsonic-API von diesem Konto wird deaktiviert."
 
-#: front/src/App.vue:162 src/components/About.vue:55
-#: src/components/Home.vue:154 front/src/components/PageNotFound.vue:33
-#: src/components/Sidebar.vue:203 front/src/components/Sidebar.vue:204
-#: src/components/audio/PlayButton.vue:54
-#: front/src/components/audio/PlayButton.vue:55
-#: front/src/components/audio/PlayButton.vue:56
-#: front/src/components/audio/PlayButton.vue:61
-#: front/src/components/audio/PlayButton.vue:64
-#: front/src/components/audio/PlayButton.vue:158
-#: src/components/audio/Player.vue:216
-#: front/src/components/audio/Player.vue:273
-#: src/components/audio/Player.vue:274
-#: front/src/components/audio/Player.vue:275
-#: src/components/audio/Player.vue:276
-#: front/src/components/audio/Player.vue:277
-#: src/components/audio/Player.vue:278
-#: front/src/components/audio/Player.vue:279
-#: src/components/audio/Player.vue:280
-#: front/src/components/audio/Player.vue:281
-#: src/components/audio/Player.vue:282
-#: front/src/components/audio/Player.vue:283 src/components/audio/Search.vue:65
-#: front/src/components/audio/SearchBar.vue:20
-#: src/components/audio/SearchBar.vue:25
-#: front/src/components/audio/SearchBar.vue:26
-#: src/components/audio/SearchBar.vue:27 front/src/components/auth/Login.vue:77
-#: src/components/auth/Login.vue:78 front/src/components/auth/Logout.vue:20
-#: src/components/auth/Profile.vue:47
-#: front/src/components/auth/Settings.vue:249 src/components/auth/Signup.vue:95
-#: front/src/components/auth/Signup.vue:96 src/components/auth/Signup.vue:97
-#: front/src/components/auth/Signup.vue:98
-#: front/src/components/auth/SubsonicTokenForm.vue:95
-#: front/src/components/auth/SubsonicTokenForm.vue:111
-#: front/src/components/favorites/List.vue:110
-#: front/src/components/favorites/TrackFavoriteIcon.vue:19
-#: front/src/components/favorites/TrackFavoriteIcon.vue:21
-#: front/src/components/forms/PasswordInput.vue:25
-#: front/src/components/library/Album.vue:101
-#: src/components/library/Artist.vue:129
-#: front/src/components/library/Artists.vue:119
-#: front/src/components/library/Artists.vue:120
-#: front/src/components/library/FileUpload.vue:238
-#: front/src/components/library/FileUpload.vue:239
-#: front/src/components/library/FileUpload.vue:240
-#: front/src/components/library/FileUpload.vue:241
-#: src/components/library/Home.vue:65
-#: front/src/components/library/Radios.vue:141
-#: src/components/library/Radios.vue:142
-#: front/src/components/library/Track.vue:195
-#: front/src/components/library/radios/Builder.vue:233
-#: front/src/components/library/radios/Builder.vue:235
-#: front/src/components/library/radios/Builder.vue:236
-#: front/src/components/manage/library/FilesTable.vue:176
-#: front/src/components/manage/library/FilesTable.vue:190
-#: front/src/components/manage/users/InvitationForm.vue:58
-#: front/src/components/manage/users/InvitationsTable.vue:153
-#: front/src/components/manage/users/InvitationsTable.vue:167
-#: front/src/components/manage/users/UsersTable.vue:163
-#: front/src/components/manage/users/UsersTable.vue:173
-#: front/src/components/manage/users/UsersTable.vue:177
-#: front/src/components/manage/users/UsersTable.vue:181
-#: front/src/components/manage/users/UsersTable.vue:185
-#: front/src/components/metadata/ArtistCard.vue:49
-#: front/src/components/metadata/ReleaseCard.vue:53
-#: front/src/components/metadata/Search.vue:114
-#: front/src/components/metadata/Search.vue:130
-#: front/src/components/metadata/Search.vue:134
-#: front/src/components/metadata/Search.vue:138
-#: front/src/components/mixins/Translations.vue:7
-#: front/src/components/mixins/Translations.vue:8
-#: front/src/components/mixins/Translations.vue:10
-#: front/src/components/mixins/Translations.vue:11
-#: front/src/components/mixins/Translations.vue:16
-#: front/src/components/mixins/Translations.vue:17
-#: front/src/components/mixins/Translations.vue:18
-#: front/src/components/mixins/Translations.vue:19
-#: front/src/components/mixins/Translations.vue:20
-#: front/src/components/mixins/Translations.vue:21
-#: front/src/components/mixins/Translations.vue:22
-#: front/src/components/mixins/Translations.vue:23
-#: front/src/components/mixins/Translations.vue:24
-#: front/src/components/mixins/Translations.vue:25
-#: front/src/components/mixins/Translations.vue:26
-#: front/src/components/mixins/Translations.vue:27
-#: front/src/components/mixins/Translations.vue:28
-#: front/src/components/mixins/Translations.vue:29
-#: front/src/components/mixins/Translations.vue:30
-#: front/src/components/mixins/Translations.vue:31
-#: front/src/components/notifications/NotificationRow.vue:39
-#: front/src/components/notifications/NotificationRow.vue:40
-#: front/src/components/notifications/NotificationRow.vue:44
-#: front/src/components/notifications/NotificationRow.vue:45
-#: front/src/components/notifications/NotificationRow.vue:62
-#: front/src/components/playlists/Editor.vue:163
-#: src/components/playlists/Form.vue:74
-#: front/src/components/playlists/Form.vue:81
-#: src/components/playlists/Form.vue:85
-#: front/src/components/playlists/Form.vue:89
-#: front/src/components/playlists/PlaylistModal.vue:116
-#: front/src/components/playlists/TrackPlaylistIcon.vue:32
-#: front/src/components/requests/Form.vue:73
-#: src/components/requests/Form.vue:74
-#: front/src/components/requests/Form.vue:75 src/views/Notifications.vue:74
-#: front/src/views/admin/Settings.vue:75 src/views/admin/Settings.vue:80
-#: front/src/views/admin/Settings.vue:81 src/views/admin/Settings.vue:82
-#: front/src/views/admin/Settings.vue:83 src/views/admin/Settings.vue:84
-#: front/src/views/admin/Settings.vue:85 src/views/admin/Settings.vue:86
-#: front/src/views/admin/library/Base.vue:16
-#: src/views/admin/library/FilesList.vue:21
-#: front/src/views/admin/users/Base.vue:20
-#: front/src/views/admin/users/InvitationsList.vue:24
-#: front/src/views/admin/users/UsersDetail.vue:169
-#: front/src/views/admin/users/UsersDetail.vue:170
-#: front/src/views/admin/users/UsersDetail.vue:177
-#: front/src/views/admin/users/UsersDetail.vue:181
-#: front/src/views/admin/users/UsersDetail.vue:185
-#: front/src/views/admin/users/UsersDetail.vue:189
-#: front/src/views/admin/users/UsersList.vue:21
-#: src/views/auth/EmailConfirm.vue:51 front/src/views/auth/PasswordReset.vue:52
-#: src/views/auth/PasswordReset.vue:53
-#: front/src/views/auth/PasswordResetConfirm.vue:62
-#: src/views/content/Base.vue:19 front/src/views/content/Home.vue:35
-#: src/views/content/libraries/Card.vue:58
-#: front/src/views/content/libraries/Card.vue:59
-#: front/src/views/content/libraries/Card.vue:60
-#: front/src/views/content/libraries/Card.vue:61
-#: front/src/views/content/libraries/DetailArea.vue:24
-#: front/src/views/content/libraries/FilesTable.vue:226
-#: front/src/views/content/libraries/FilesTable.vue:229
-#: front/src/views/content/libraries/FilesTable.vue:230
-#: front/src/views/content/libraries/FilesTable.vue:233
-#: front/src/views/content/libraries/FilesTable.vue:234
-#: front/src/views/content/libraries/FilesTable.vue:237
-#: front/src/views/content/libraries/FilesTable.vue:238
-#: front/src/views/content/libraries/FilesTable.vue:241
-#: front/src/views/content/libraries/FilesTable.vue:242
-#: front/src/views/content/libraries/FilesTable.vue:258
-#: front/src/views/content/libraries/FilesTable.vue:259
-#: front/src/views/content/libraries/Form.vue:70
-#: front/src/views/content/libraries/Form.vue:71
-#: front/src/views/content/libraries/Form.vue:72
-#: front/src/views/content/libraries/Form.vue:73
-#: front/src/views/content/libraries/Form.vue:74
-#: front/src/views/content/libraries/Form.vue:106
-#: front/src/views/content/libraries/Form.vue:109
-#: front/src/views/content/libraries/Form.vue:129
-#: front/src/views/content/remote/Card.vue:131
-#: src/views/content/remote/Card.vue:132
-#: front/src/views/content/remote/Card.vue:165
-#: src/views/content/remote/Card.vue:166
-#: front/src/views/content/remote/ScanForm.vue:48
-#: src/views/instance/Timeline.vue:57 front/src/views/playlists/Detail.vue:90
-#: src/views/playlists/List.vue:104 front/src/views/playlists/List.vue:105
-#: src/views/radios/Detail.vue:80
-#, fuzzy
+#: front/src/App.vue:129 src/components/Footer.vue:72
 msgid "This will erase your local data and disconnect you, do you want to continue?"
-msgid_plural "%{ count } tracks were added to your queue"
-msgstr[0] "Deine lokalen Daten werden gelöscht, und du wirst abgemeldet. Möchtest du fortfahren?"
-msgstr[1] "Deine lokalen Daten werden gelöscht, und du wirst abgemeldet. Möchtest du fortfahren?"
+msgstr ""
+"Deine lokalen Daten werden gelöscht, und du wirst abgemeldet. Möchtest du "
+"fortfahren?"
 
 #: front/src/components/auth/SubsonicTokenForm.vue:36
 msgid "This will log you out from existing devices that use the current password."
@@ -1875,41 +2539,70 @@ msgstr "Du wirst von den bestehenden Geräten abgemeldet, die dieses Passwort nu
 msgid "This will remove all tracks from this playlist and cannot be undone."
 msgstr "Alle Tracks dieses Playlists werden dauerhauft gelöscht und können nicht zurückerstellt werden."
 
-#: front/src/views/content/libraries/Quota.vue:90
-msgid "This will remove tracks that were uploaded but failed to be process by the server. This will remove those files completely and you will regain the corresponding quota."
-msgstr ""
-
-#: front/src/views/content/libraries/Quota.vue:38
-msgid "This will remove tracks that were uploaded but not processed yet. This will remove those files completely and you will regain the corresponding quota."
-msgstr ""
-
-#: front/src/views/content/libraries/Quota.vue:64
-msgid "This will remove tracks that were uploaded but skipped during import processes for various reasons. This will remove those files completely and you will regain the corresponding quota."
-msgstr ""
-
 #: front/src/components/audio/track/Table.vue:6
 #: front/src/components/manage/library/FilesTable.vue:37
-#: front/src/views/content/libraries/FilesTable.vue:51
-#: front/src/components/mixins/Translations.vue:26
+#: front/src/components/mixins/Translations.vue:27
+#: front/src/views/content/libraries/FilesTable.vue:54
+#: front/src/components/mixins/Translations.vue:28
 msgid "Title"
 msgstr "Titel"
 
-#: front/src/components/library/Track.vue:53
+#: front/src/components/ShortcutsModal.vue:79
+msgid "Toggle queue looping"
+msgstr "Wiedergabelistewiederholung umschalten"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:288
+#: front/src/views/admin/moderation/DomainsDetail.vue:225
+msgid "Total size"
+msgstr "Gesamtvolumen"
+
+#: front/src/views/content/libraries/Card.vue:61
+msgid "Total size of the files in this library"
+msgstr "Gesamtvolumen dieser Mediathek"
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:113
+msgid "Total users"
+msgstr "Gesamtanzahl der Nutzenden"
+
+#: front/src/components/audio/SearchBar.vue:27
+#: src/components/library/Track.vue:262
+#: front/src/components/metadata/Search.vue:138
+msgid "Track"
+msgstr "Track"
+
+#: front/src/views/content/libraries/FilesTable.vue:205
+msgid "Track already present in one of your libraries"
+msgstr "Eine deiner Mediatheken enthält bereits diesen Track"
+
+#: front/src/components/library/Track.vue:85
 msgid "Track information"
 msgstr "Trackinformation"
 
 #: front/src/components/library/radios/Filter.vue:44
 msgid "Track matching filter"
+msgstr "Passender Track"
+
+#: front/src/components/mixins/Translations.vue:23
+#: front/src/components/mixins/Translations.vue:24
+msgid "Track name"
+msgstr "Trackname"
+
+#: front/src/views/content/libraries/FilesTable.vue:209
+msgid "Track uploaded, but not processed by the server yet"
 msgstr ""
+"Der Track wurde hochgeladen, er ist aber noch nicht vom Server verarbeitet "
+"worden"
 
 #: front/src/components/instance/Stats.vue:54
 msgid "tracks"
 msgstr "Tracks"
 
-#: front/src/components/library/Album.vue:43
+#: front/src/components/library/Album.vue:81
 #: front/src/components/playlists/PlaylistModal.vue:33
-#: src/views/content/Base.vue:8 front/src/views/content/libraries/Detail.vue:8
-#: src/views/playlists/Detail.vue:50 front/src/views/radios/Detail.vue:34
+#: front/src/views/admin/moderation/AccountsDetail.vue:329
+#: front/src/views/admin/moderation/DomainsDetail.vue:265
+#: front/src/views/content/Base.vue:8 src/views/content/libraries/Detail.vue:8
+#: front/src/views/playlists/Detail.vue:50 src/views/radios/Detail.vue:34
 msgid "Tracks"
 msgstr "Tracks"
 
@@ -1925,38 +2618,56 @@ msgstr "Tracks in den Favoriten"
 msgid "tracks listened"
 msgstr "Angehörte Tracks"
 
-#: front/src/components/library/Track.vue:91
+#: front/src/components/library/Track.vue:138
 #: front/src/components/manage/library/FilesTable.vue:41
+#: front/src/views/admin/moderation/AccountsDetail.vue:151
 msgid "Type"
 msgstr "Typ"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:44
+#: front/src/components/manage/moderation/DomainsTable.vue:42
+msgid "Under moderation rule"
+msgstr "Von einer Moderationsregel verwaltet"
+
 #: front/src/views/content/remote/Card.vue:100
 #: src/views/content/remote/Card.vue:105
-#, fuzzy
 msgid "Unfollow"
-msgstr "Folgen"
+msgstr "Abonnement beenden"
 
 #: front/src/views/content/remote/Card.vue:101
-#, fuzzy
 msgid "Unfollow this library?"
-msgstr "Bring mich zur Mediathek"
+msgstr "Das Abonnement dieser Mediathek beenden?"
 
 #: front/src/components/About.vue:15
 msgid "Unfortunately, owners of this instance did not yet take the time to complete this page."
-msgstr "Leider wurde diese Seite von den Verwaltern dieser Instanz noch nicht ausgefüllt."
+msgstr ""
+"Leider wurde diese Seite von den Verwaltenden dieser Instanz noch nicht "
+"ausgefüllt."
 
 #: front/src/components/Home.vue:37
 msgid "Unlimited music"
 msgstr "Unbegrenzte Musik"
 
+#: front/src/components/audio/Player.vue:351
+msgid "Unmute"
+msgstr "Stummschaltung aufheben"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:45
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:57
+msgid "Update"
+msgstr "Aktualisieren"
+
 #: front/src/components/auth/Settings.vue:50
 msgid "Update avatar"
-msgstr "Avatar aktualisieren"
+msgstr "Profilbild aktualisieren"
 
 #: front/src/views/content/libraries/Form.vue:25
-#, fuzzy
 msgid "Update library"
-msgstr "Mediathek verwalten"
+msgstr "Mediathek aktualisieren"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:3
+msgid "Update moderation rule"
+msgstr "Moderationsregel aktualisieren"
 
 #: front/src/components/playlists/Form.vue:33
 msgid "Update playlist"
@@ -1971,55 +2682,68 @@ msgid "Update your password"
 msgstr "Dein Kennwort aktualisieren"
 
 #: front/src/views/content/libraries/Card.vue:44
-#: front/src/components/manage/users/UsersTable.vue:173
 #: front/src/views/content/libraries/DetailArea.vue:24
-#: front/src/views/admin/users/UsersDetail.vue:177
 msgid "Upload"
 msgstr "Hochladen"
 
 #: front/src/components/auth/Settings.vue:45
 msgid "Upload a new avatar"
-msgstr "Neues Avatar hochladen"
+msgstr "Neues Profilbild hochladen"
 
 #: front/src/views/content/Home.vue:6
-#, fuzzy
 msgid "Upload audio content"
-msgstr "Neues Avatar hochladen"
+msgstr "Audio-Inhalte hochladen"
 
-#: front/src/views/content/libraries/FilesTable.vue:54
-#, fuzzy
+#: front/src/views/content/libraries/FilesTable.vue:57
 msgid "Upload date"
-msgstr "Hochladen"
+msgstr "Hochladedatum"
+
+#: front/src/components/library/FileUpload.vue:219
+#: front/src/components/library/FileUpload.vue:220
+msgid "Upload denied, ensure the file is not too big and that you have not reached your quota"
+msgstr ""
+"Hochladen abgelehnt. Bitte prüfe, dass die Datei nicht zu groß ist, und dass "
+"du noch über genügenden Speicherplatz verfügst"
 
 #: front/src/views/content/Home.vue:7
-msgid "Upload music files (mp3, ogg, flac, etc.) from your personal library directly from your browser to enjoy them here."
+msgid "Upload music files (MP3, OGG, FLAC, etc.) from your personal library directly from your browser to enjoy them here."
 msgstr ""
+"Lade Musikdatei (MP3, OGG, Flac, usw.) von deiner eigenen Mediathek direkt "
+"von deinem Browser hoch, und höre sie hier an."
 
 #: front/src/components/library/FileUpload.vue:31
-#, fuzzy
 msgid "Upload new tracks"
-msgstr "Neues Avatar hochladen"
+msgstr "Neue Tracks hochladen"
 
-#: front/src/views/admin/users/UsersDetail.vue:82
-#, fuzzy
+#: front/src/views/admin/moderation/AccountsDetail.vue:269
 msgid "Upload quota"
-msgstr "Hochladen"
+msgstr "Speichervolumen"
 
-#: front/src/components/library/FileUpload.vue:99
-#, fuzzy
+#: front/src/components/library/FileUpload.vue:228
+msgid "Upload timeout, please try again"
+msgstr "Hochladezeit abgelaufen. Bitte versuche es erneut"
+
+#: front/src/components/library/FileUpload.vue:100
 msgid "Uploaded"
-msgstr "Hochladen"
+msgstr "Hochgeladen"
 
 #: front/src/components/library/FileUpload.vue:5
-#, fuzzy
 msgid "Uploading"
-msgstr "Hochladen..."
-
-#: front/src/components/library/FileUpload.vue:102
-msgid "Uploading..."
-msgstr "Hochladen..."
+msgstr "Hochladen läuft"
+
+#: front/src/components/library/FileUpload.vue:103
+msgid "Uploading…"
+msgstr "Hochladen läuft…"
+
+#: front/src/components/manage/moderation/AccountsTable.vue:41
+#: front/src/components/mixins/Translations.vue:37
+#: front/src/views/admin/moderation/AccountsDetail.vue:305
+#: front/src/views/admin/moderation/DomainsDetail.vue:241
+#: front/src/components/mixins/Translations.vue:38
+msgid "Uploads"
+msgstr "Hochladen"
 
-#: front/src/App.vue:44
+#: front/src/components/Footer.vue:16
 msgid "Use another instance"
 msgstr "Eine andere Instanz benutzen"
 
@@ -2027,6 +2751,12 @@ msgstr "Eine andere Instanz benutzen"
 msgid "Use this form to request a password reset. We will send an email to the given address with instructions to reset your password."
 msgstr "Mit diesem Formular kannst du ein neues Kennwort beantragen. Wir schicken dir eine E-Mail an die angegebene Adresse mit den Anleitungen."
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:111
+msgid "Use this setting to temporarily enable/disable the policy without completely removing it."
+msgstr ""
+"Mit dieser Einstellung kannst du die Moderationsregel temporär umschalten, "
+"ohne sie zu löschen."
+
 #: front/src/components/manage/users/InvitationsTable.vue:49
 msgid "Used"
 msgstr "Verwendet"
@@ -2037,14 +2767,13 @@ msgstr "Nutzende"
 
 #: front/src/components/instance/Stats.vue:5
 msgid "User activity"
-msgstr "Aktivität der Nutzende"
+msgstr "Aktivität der Nutzenden"
 
-#: front/src/components/library/Album.vue:49
+#: front/src/components/library/Album.vue:88
 #: src/components/library/Artist.vue:60
-#: front/src/components/library/Track.vue:122
-#, fuzzy
+#: front/src/components/library/Track.vue:168
 msgid "User libraries"
-msgstr "Mediatheke"
+msgstr "Mediatheken der nutzenden Person"
 
 #: front/src/components/library/Radios.vue:20
 msgid "User radios"
@@ -2052,7 +2781,9 @@ msgstr "Radios der Nutzende"
 
 #: front/src/components/auth/Signup.vue:19
 #: front/src/components/manage/users/UsersTable.vue:37
-#: front/src/components/mixins/Translations.vue:32
+#: front/src/components/mixins/Translations.vue:33
+#: front/src/views/admin/moderation/AccountsDetail.vue:85
+#: front/src/components/mixins/Translations.vue:34
 msgid "Username"
 msgstr "Benutzername"
 
@@ -2064,31 +2795,57 @@ msgstr "Benutzername oder E-Mail-Adresse"
 msgid "users"
 msgstr "Nutzende"
 
-#: front/src/components/Sidebar.vue:94 src/views/admin/users/Base.vue:5
-#: front/src/views/admin/users/UsersList.vue:3
-#: src/views/admin/users/UsersList.vue:21 front/src/views/admin/Settings.vue:81
+#: front/src/components/Sidebar.vue:91
+#: front/src/components/manage/moderation/DomainsTable.vue:39
+#: front/src/components/mixins/Translations.vue:35
+#: src/views/admin/Settings.vue:81 front/src/views/admin/users/Base.vue:5
+#: src/views/admin/users/UsersList.vue:3
+#: front/src/views/admin/users/UsersList.vue:21
+#: front/src/components/mixins/Translations.vue:36
 msgid "Users"
 msgstr "Nutzende"
 
+#: front/src/components/Footer.vue:29
+msgid "Using Funkwhale"
+msgstr "Funwhale nutzen"
+
+#: front/src/components/Footer.vue:13
+msgid "Version %{version}"
+msgstr "Version (%{ version })"
+
 #: front/src/views/content/libraries/Quota.vue:29
 #: front/src/views/content/libraries/Quota.vue:56
 #: front/src/views/content/libraries/Quota.vue:82
-#, fuzzy
 msgid "View files"
-msgstr "Dateien aus der Mediathek"
+msgstr "Dateien ansehen"
 
 #: front/src/components/library/Album.vue:37
 #: src/components/library/Artist.vue:35
-#: front/src/components/library/Track.vue:44
-#: front/src/components/metadata/ReleaseCard.vue:53
+#: front/src/components/library/Track.vue:51
 #: front/src/components/metadata/ArtistCard.vue:49
+#: front/src/components/metadata/ReleaseCard.vue:53
 msgid "View on MusicBrainz"
 msgstr "Auf MusicBrainz ansehen"
 
 #: front/src/views/content/libraries/Form.vue:18
-#, fuzzy
 msgid "Visibility"
-msgstr "Sichtbarkeit der Playlist"
+msgstr "Sichtbarkeit"
+
+#: front/src/views/content/libraries/Card.vue:59
+msgid "Visibility: everyone on this instance"
+msgstr "Sichtbarkeit: alle auf dieser Instanz"
+
+#: front/src/views/content/libraries/Card.vue:60
+msgid "Visibility: everyone, including other instances"
+msgstr "Sichbarkeit: alle, auch auf anderen Instanzen"
+
+#: front/src/views/content/libraries/Card.vue:58
+msgid "Visibility: nobody except me"
+msgstr "Sichtbarkeit: niemand außer mir"
+
+#: front/src/components/library/Album.vue:67
+msgid "Volume %{ number }"
+msgstr "Band %{ number }"
 
 #: front/src/components/playlists/PlaylistModal.vue:20
 msgid "We cannot add the track to a playlist"
@@ -2102,13 +2859,17 @@ msgstr "Die Playlist kann nicht erstellt werden"
 msgid "We cannot create your account"
 msgstr "Dein Konto kann nicht erstellt werden"
 
+#: front/src/components/audio/Player.vue:64
+msgid "We cannot load this track"
+msgstr "Dieser Track kann nicht geladen werden"
+
 #: front/src/components/auth/Login.vue:7
 msgid "We cannot log you in"
 msgstr "Wir können dich nicht einloggen"
 
 #: front/src/components/auth/Settings.vue:38
 msgid "We cannot save your avatar"
-msgstr "Dein Avatar kann nicht gespeichert werden"
+msgstr "Dein Profilbild kann nicht gespeichert werden"
 
 #: front/src/components/auth/Settings.vue:14
 msgid "We cannot save your settings"
@@ -2118,17 +2879,16 @@ msgstr "Deine Einstellungen können nicht gespeichert werden"
 msgid "We do not track you or bother you with ads"
 msgstr "Weder verfolgen wir dich noch stören wir dich mit Werbung"
 
-#: front/src/views/Notifications.vue:26
-msgid "We don't have any notification to display!"
-msgstr ""
+#: front/src/components/library/Track.vue:95
+msgid "We don't have any copyright information for this track"
+msgstr "Es sind keine Urheberechtsdaten für diesen Track verfügbar"
 
-#: front/src/views/content/Home.vue:4
-msgid "We offer various way to grab new content and make it available here."
-msgstr ""
+#: front/src/components/library/Track.vue:106
+msgid "We don't have any licensing information for this track"
+msgstr "Es sind keine Lizenzdaten für diesen Track"
 
 #: front/src/components/library/FileUpload.vue:40
-#, fuzzy
-msgid "we recommend using Picard for that purpose"
+msgid "We recommend using Picard for that purpose."
 msgstr "Zu diesem Zweck wird Picard empfohlen."
 
 #: front/src/components/Home.vue:7
@@ -2139,9 +2899,9 @@ msgstr "Weil Musik hören sollte leicht sein."
 msgid "We're sorry, the page you asked for does not exist:"
 msgstr "Entschuldigung, die aufgerufene Seite existiert nicht:"
 
-#: front/src/components/requests/Form.vue:21
-msgid "We've received your request, you'll get some groove soon ;)"
-msgstr "Deine Anfrage wurde empfangen, du wirst bald von uns was hören ;)"
+#: front/src/components/Home.vue:153
+msgid "Welcome"
+msgstr "Willkommen"
 
 #: front/src/components/Home.vue:5
 msgid "Welcome on Funkwhale"
@@ -2151,7 +2911,17 @@ msgstr "Willkommen auf Funkwhale"
 msgid "Why funkwhale?"
 msgstr "Warum Funkwhale?"
 
-#: front/src/components/Sidebar.vue:115
+#: front/src/components/audio/EmbedWizard.vue:13
+msgid "Widget height"
+msgstr "Grafikobjektshöhe"
+
+#: front/src/components/audio/EmbedWizard.vue:6
+msgid "Widget width"
+msgstr "Grafikobjektsbreite"
+
+#: front/src/components/Sidebar.vue:118
+#: front/src/components/manage/moderation/AccountsTable.vue:72
+#: front/src/components/manage/moderation/DomainsTable.vue:58
 msgid "Yes"
 msgstr "Ja"
 
@@ -2159,9 +2929,13 @@ msgstr "Ja"
 msgid "Yes, log me out!"
 msgstr "Ja, logge mich aus!"
 
+#: front/src/views/content/libraries/Form.vue:19
+msgid "You are able to share your library with other people, regardless of its visibility."
+msgstr "Du kannst deine Mediathek mit Anderen teilen, auch wenn sie privat ist."
+
 #: front/src/components/library/FileUpload.vue:33
 msgid "You are about to upload music to your library. Before proceeding, please ensure that:"
-msgstr ""
+msgstr "Die Musik wird bald zu deiner Mediathek hochgeladen. Prüfe bitte vorab, dass:"
 
 #: front/src/components/auth/Logout.vue:7
 msgid "You are currently logged in as %{ username }"
@@ -2169,12 +2943,16 @@ msgstr "Du bist als %{ username } angemeldet"
 
 #: front/src/views/content/Home.vue:17
 msgid "You can follow libraries from other users to get access to new music. Public libraries can be followed immediatly, while following a private library requires approval from its owner."
-msgstr ""
+msgstr "Abonniere dich zu Mediatheken und greif neuer Musik zu. Öffentliche Mediatheke können sofort abonniert werden; das Abonnieren einer privaten Mediathek benötigt die Bestätigung des Besitzers."
 
 #: front/src/components/Home.vue:133
 msgid "You can invite friends and family to your instance so they can enjoy your music"
 msgstr "Du kannst Freunde und Familie auf deiner Instanz einladen, sodass sie deine Musik genießen können"
 
+#: front/src/views/auth/EmailConfirm.vue:24
+msgid "You can now use the service without limitations."
+msgstr "Du kannst jetzt den Service unbegrenzt nutzen."
+
 #: front/src/components/library/radios/Builder.vue:7
 msgid "You can use this interface to build your own custom radio, which will play tracks according to your criteria."
 msgstr "Dank dieser Schnittstelle kannst du dein eigenes Radio aufbauen, das die entsprechenden Tracks abspielt."
@@ -2183,38 +2961,45 @@ msgstr "Dank dieser Schnittstelle kannst du dein eigenes Radio aufbauen, das die
 msgid "You can use those to enjoy your playlist and music in offline mode, on your smartphone or tablet, for instance."
 msgstr "Damit kannst du deine Playlists und Musik offline genießen, zum Beispiel auf deinem Smartphone bzw. Tablett."
 
-#: front/src/components/Sidebar.vue:147
+#: front/src/views/admin/moderation/AccountsDetail.vue:46
+msgid "You don't have any rule in place for this account."
+msgstr "Du hast keine Moderationsregeln in Kraft für dieses Konto."
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:39
+msgid "You don't have any rule in place for this domain."
+msgstr "Du hast keine Moderationsregeln in Kraft für diese Domain."
+
+#: front/src/components/Sidebar.vue:158
 msgid "You have a radio playing"
 msgstr "Du hörst gerade ein Radio an"
 
-#: front/src/App.vue:8
+#: front/src/components/audio/Player.vue:71
+msgid "You may have a connectivity issue."
+msgstr "Du kannst Verbindungsproblemen erfahren."
+
+#: front/src/App.vue:17
 msgid "You need to select an instance in order to continue"
 msgstr "Zum Fortfahren wähle bitte eine Instanz aus"
 
-#: front/src/views/content/libraries/Form.vue:19
-msgid "You will be able to share your library with other people, regardless of it's visibility."
-msgstr ""
-
 #: front/src/components/auth/Settings.vue:100
 msgid "You will be logged out from this session and have to log in with the new one"
 msgstr "Du wirst von dieser Sitzung ausgeloggt und du musst dich mit deinem neuen Kennwort einloggen"
 
 #: front/src/components/auth/Settings.vue:71
 msgid "You will have to update your password on your clients that use this password."
-msgstr "Du musst das Passwort auf deine verbundenen Geräte anpassen, die dieses Passwort verwenden."
+msgstr "Du musst das Kennwort auf deine verbundenen Geräte anpassen, die dieses Kennwort verwenden."
 
-#: front/src/views/auth/EmailConfirm.vue:24
-msgid "Your email address was confirmed, you can now use the service without limitations."
-msgstr "Deine E-Mail-Adresse wurde bestätigt, jetzt kannst du den Service unbegrenzt nutzen."
+#: front/src/components/favorites/List.vue:112
+msgid "Your Favorites"
+msgstr "Deine Favoriten"
 
 #: front/src/components/Home.vue:114
 msgid "Your music, your way"
 msgstr "Deine Musik, deine Weise"
 
 #: front/src/views/Notifications.vue:7
-#, fuzzy
 msgid "Your notifications"
-msgstr "Letzte Bearbeitung"
+msgstr "Deine Benachrichtigungen"
 
 #: front/src/views/auth/PasswordResetConfirm.vue:29
 msgid "Your password has been updated successfully."
@@ -2223,426 +3008,3 @@ msgstr "Dein Kennwort wurde erfolgreich aktualisiert."
 #: front/src/components/auth/Settings.vue:101
 msgid "Your Subsonic password will be changed to a new, random one, logging you out from devices that used the old Subsonic password"
 msgstr "Dein Subsonic-Kennwort wird mit einem neuen beliebigen Kennwort ersetzt, und du wirst auf allen aktuellen verbundenen Geräten ausgeloggt, die das alte Kennwort nutzen"
-
-#: front/src/components/mixins/Translations.vue:8
-#, fuzzy
-msgid "Activity visibility"
-msgstr "Sichtbarkeit der Playlist"
-
-#: front/src/components/mixins/Translations.vue:9
-msgid "Determine the visibility level of your activity"
-msgstr ""
-
-#: front/src/components/mixins/Translations.vue:11
-#: front/src/components/playlists/Form.vue:81
-#: src/views/content/libraries/Form.vue:72
-msgid "Nobody except me"
-msgstr "Niemand außer mir"
-
-#: front/src/components/mixins/Translations.vue:12
-#: front/src/components/playlists/Form.vue:85
-#: src/views/content/libraries/Form.vue:73
-msgid "Everyone on this instance"
-msgstr "Alle auf dieser Instanz"
-
-#: front/src/components/mixins/Translations.vue:18
-#, fuzzy
-msgid "Accessed date"
-msgstr "Zugriff deaktiviert"
-
-#: front/src/components/mixins/Translations.vue:19
-#, fuzzy
-msgid "Modification date"
-msgstr "Ablaufdatum"
-
-#: front/src/components/mixins/Translations.vue:20
-#, fuzzy
-msgid "Imported date"
-msgstr "Importsdatum"
-
-#: front/src/components/mixins/Translations.vue:22
-#, fuzzy
-msgid "Track name"
-msgstr "Track"
-
-#: front/src/components/mixins/Translations.vue:23
-#, fuzzy
-msgid "Album name"
-msgstr "Albumseite"
-
-#: front/src/components/mixins/Translations.vue:30
-#, fuzzy
-msgid "Sign-up date"
-msgstr "Anmeldung"
-
-#: front/src/components/playlists/Editor.vue:163
-msgid "Copy tracks from current queue to playlist"
-msgstr "Die Wiedergabeliste zur Playlist hinzufügen"
-
-#: front/src/components/playlists/PlaylistModal.vue:116
-msgid "Add to this playlist"
-msgstr "Zu dieser Playlist hinzufügen"
-
-#: front/src/components/playlists/Form.vue:74
-msgid "My awesome playlist"
-msgstr "Meine super Playlist"
-
-#: front/src/components/playlists/Form.vue:89
-msgid "Everyone"
-msgstr "Alle"
-
-#: front/src/components/auth/Signup.vue:95
-msgid "Sign Up"
-msgstr "Anmeldung"
-
-#: front/src/components/auth/Signup.vue:96
-msgid "Enter your invitation code (case insensitive)"
-msgstr "Gib deinen Einladungskode ein (Groß- und Kleinschreibung wird nicht berücksichtigt)"
-
-#: front/src/components/auth/Signup.vue:97
-msgid "Enter your username"
-msgstr "Benutzername eingeben"
-
-#: front/src/components/auth/Signup.vue:98
-msgid "Enter your email"
-msgstr "Gib deine E-Mail-Adresse ein"
-
-#: front/src/components/auth/SubsonicTokenForm.vue:95
-msgid "Password updated"
-msgstr "Kennwort aktualisiert"
-
-#: front/src/components/auth/SubsonicTokenForm.vue:111
-msgid "Access disabled"
-msgstr "Zugriff deaktiviert"
-
-#: front/src/components/auth/Login.vue:77
-msgid "Enter your username or email"
-msgstr "Benutzername oder E-Mail-Adresse eingeben"
-
-#: front/src/components/auth/Login.vue:78
-msgid "Log In"
-msgstr "Einloggen"
-
-#: front/src/components/auth/Profile.vue:47
-msgid "%{ username }'s profile"
-msgstr "Profil von %{ username }"
-
-#: front/src/components/auth/Logout.vue:20
-msgid "Log Out"
-msgstr "Ausloggen"
-
-#: front/src/components/auth/Settings.vue:249
-msgid "Account Settings"
-msgstr "Kontoeinstellungen"
-
-#: front/src/components/favorites/TrackFavoriteIcon.vue:19
-msgid "Remove from favorites"
-msgstr "Aus den Favoriten entfernen"
-
-#: front/src/components/favorites/List.vue:110
-msgid "Your Favorites"
-msgstr "Deine Favoriten"
-
-#: front/src/components/library/Radios.vue:141
-msgid "Enter a radio name..."
-msgstr "Name des Radios eingeben..."
-
-#: front/src/components/library/radios/Builder.vue:233
-msgid "Radio Builder"
-msgstr "Radioeditor"
-
-#: front/src/components/library/radios/Builder.vue:235
-msgid "My awesome radio"
-msgstr "Mein super Radio"
-
-#: front/src/components/library/radios/Builder.vue:236
-#, fuzzy
-msgid "My awesome description"
-msgstr "Mein super Radio"
-
-#: front/src/components/library/FileUpload.vue:238
-msgid "Upload refused, ensure the file is not too big and you have not reached your quota"
-msgstr ""
-
-#: front/src/components/library/FileUpload.vue:239
-msgid "Impossible to upload this file, ensure it is not too big"
-msgstr ""
-
-#: front/src/components/library/FileUpload.vue:240
-#, fuzzy
-msgid "A network error occured while uploading this file"
-msgstr "Beim Speichern deiner Änderungen ist ein Fehler aufgetreten"
-
-#: front/src/components/library/FileUpload.vue:241
-msgid "Upload timeout, please try again"
-msgstr ""
-
-#: front/src/components/library/Artists.vue:119
-msgid "Enter an artist name..."
-msgstr "Künstlername eingeben..."
-
-#: front/src/components/library/Track.vue:195
-#: src/components/audio/SearchBar.vue:27
-#: front/src/components/metadata/Search.vue:138
-msgid "Track"
-msgstr "Track"
-
-#: front/src/components/library/Home.vue:65
-msgid "Home"
-msgstr "Start"
-
-#: front/src/components/forms/PasswordInput.vue:25
-msgid "Show/hide password"
-msgstr "Passwort verstecken bzw. zeigen"
-
-#: front/src/components/requests/Form.vue:73
-msgid "The Beatles, Mickael Jackson…"
-msgstr "Die Beatles, Michael Jackson…"
-
-#: front/src/components/requests/Form.vue:74
-msgid "The White Album, Thriller…"
-msgstr "Das Weiße Album, Thriller…"
-
-#: front/src/components/requests/Form.vue:75
-msgid "Use this comment box to add details to your request if needed"
-msgstr "Nutze dieses Feld um weitere Informationen über deine Anfrage beizufügen"
-
-#: front/src/components/audio/PlayButton.vue:158
-msgid "%{ count } track was added to your queue"
-msgid_plural "%{ count } tracks were added to your queue"
-msgstr[0] "1 Track wurde zur Wiedergabeliste hinzugefügt"
-msgstr[1] "%{ count } Tracks wurden zur Wiedergabeliste hinzugefügt"
-
-#: front/src/components/audio/Search.vue:65
-msgid "Artist, album, track..."
-msgstr "Künstler oder Künstlerin, Album, Track..."
-
-#: front/src/components/audio/SearchBar.vue:20
-msgid "Search for artists, albums, tracks..."
-msgstr "Künstler, Künstlerinnen, Alben oder Tracks suchen..."
-
-#: front/src/components/audio/Player.vue:216
-msgid "Queue shuffled!"
-msgstr "Wiedergabeliste gemischt!"
-
-#: front/src/components/audio/Player.vue:273
-msgid "Previous track"
-msgstr "Vorheriger Track"
-
-#: front/src/components/audio/Player.vue:274
-msgid "Play track"
-msgstr "Abspielen"
-
-#: front/src/components/audio/Player.vue:275
-msgid "Pause track"
-msgstr "Track pausen"
-
-#: front/src/components/audio/Player.vue:276
-msgid "Next track"
-msgstr "Nächster Track"
-
-#: front/src/components/audio/Player.vue:277
-msgid "Unmute"
-msgstr "Stummschaltung aufheben"
-
-#: front/src/components/audio/Player.vue:278
-msgid "Mute"
-msgstr "Stummschalten"
-
-#: front/src/components/audio/Player.vue:279
-msgid "Looping disabled. Click to switch to single-track looping."
-msgstr "Wiederholung deaktiviert. Schalte die Wiederholung des aktuellen Tracks beim Klicken."
-
-#: front/src/components/audio/Player.vue:280
-msgid "Looping on a single track. Click to switch to whole queue looping."
-msgstr "Wiederholung des aktuellen Tracks. Wiederhole die ganze Wiedergabeliste beim Klicken."
-
-#: front/src/components/audio/Player.vue:281
-msgid "Looping on whole queue. Click to disable looping."
-msgstr "Wiederholung auf die ganze Wiedergabeliste. Deaktiviere die Wiederholung beim Klicken."
-
-#: front/src/components/audio/Player.vue:282
-msgid "Shuffle your queue"
-msgstr "Wiedergabeliste mischen"
-
-#: front/src/components/audio/Player.vue:283
-msgid "Clear your queue"
-msgstr "Wiedergabeliste leeren"
-
-#: front/src/components/Sidebar.vue:203
-msgid "Pending import requests"
-msgstr "Ausstehende Importanfragen"
-
-#: front/src/components/Sidebar.vue:204
-msgid "Pending follow requests"
-msgstr "Ausstehende Follow-Anfrage"
-
-#: front/src/components/metadata/Search.vue:114
-msgid "Enter your search query..."
-msgstr "Suche eingeben..."
-
-#: front/src/components/manage/library/FilesTable.vue:176
-msgid "Search by title, artist, domain..."
-msgstr "Titel, Künstler, Künstlerin oder Domain suchen..."
-
-#: front/src/components/manage/users/InvitationForm.vue:58
-msgid "Leave empty for a random code"
-msgstr "Leerlassen für einen beliebigen Kode"
-
-#: front/src/components/manage/users/InvitationsTable.vue:153
-msgid "Search by username, email, code..."
-msgstr "Benutzername, E-Mail-Adresse oder Kode suchen..."
-
-#: front/src/components/manage/users/UsersTable.vue:163
-msgid "Search by username, email, name..."
-msgstr "Benutzername, E-Mail-Adresse oder Name suchen..."
-
-#: front/src/components/manage/users/UsersTable.vue:181
-#: front/src/views/admin/users/UsersDetail.vue:185
-#: src/views/admin/Settings.vue:83
-msgid "Federation"
-msgstr "Föderation"
-
-#: front/src/components/Home.vue:154
-msgid "Welcome"
-msgstr ""
-
-#: front/src/views/content/remote/ScanForm.vue:48
-#, fuzzy
-msgid "Enter a library url"
-msgstr "Domainname eingeben..."
-
-#: front/src/views/content/remote/Card.vue:165
-msgid "Scan launched"
-msgstr ""
-
-#: front/src/views/content/remote/Card.vue:166
-msgid "Scan skipped (previous scan is too recent)"
-msgstr ""
-
-#: front/src/views/content/libraries/FilesTable.vue:226
-#, fuzzy
-msgid "Search by title, artist, album..."
-msgstr "Titel, Künstler, Künstlerin oder Domain suchen..."
-
-#: front/src/views/content/libraries/FilesTable.vue:230
-msgid "Track was already present in one of your libraries"
-msgstr ""
-
-#: front/src/views/content/libraries/FilesTable.vue:234
-msgid "Track is uploaded but not processed by the server yet"
-msgstr ""
-
-#: front/src/views/content/libraries/FilesTable.vue:238
-msgid "An error occured while processing this track, ensure the track is correctly tagged"
-msgstr ""
-
-#: front/src/views/content/libraries/FilesTable.vue:242
-#, fuzzy
-msgid "Import went on successfully"
-msgstr "Kennwort erfolgreich aktualisiert"
-
-#: front/src/views/content/libraries/FilesTable.vue:259
-#, fuzzy
-msgid "Relaunch import"
-msgstr "Import beenden"
-
-#: front/src/views/content/libraries/Card.vue:58
-#, fuzzy
-msgid "Visibility: nobody except me"
-msgstr "Niemand außer mir"
-
-#: front/src/views/content/libraries/Card.vue:59
-#, fuzzy
-msgid "Visibility: everyone on this instance"
-msgstr "Alle auf dieser Instanz"
-
-#: front/src/views/content/libraries/Card.vue:60
-msgid "Visibility: everyone, including other instances"
-msgstr ""
-
-#: front/src/views/content/libraries/Card.vue:61
-#, fuzzy
-msgid "Total size of the files in this library"
-msgstr "Verfügbare Tracks in dieser Mediathek"
-
-#: front/src/views/content/libraries/Form.vue:70
-#, fuzzy
-msgid "My awesome library"
-msgstr "Mein super Radio"
-
-#: front/src/views/content/libraries/Form.vue:71
-msgid "This library contains my personnal music, I hope you will like it!"
-msgstr ""
-
-#: front/src/views/content/libraries/Form.vue:74
-#, fuzzy
-msgid "Everyone, including other instances"
-msgstr "Alle auf dieser Instanz"
-
-#: front/src/views/content/libraries/Form.vue:106
-#, fuzzy
-msgid "Library updated"
-msgstr "Mediatheksname"
-
-#: front/src/views/content/libraries/Form.vue:109
-#, fuzzy
-msgid "Library created"
-msgstr "Mediatheksname"
-
-#: front/src/views/content/Home.vue:35
-msgid "Add and manage content"
-msgstr ""
-
-#: front/src/views/radios/Detail.vue:80
-msgid "Radio"
-msgstr "Radio"
-
-#: front/src/views/instance/Timeline.vue:57
-msgid "Instance Timeline"
-msgstr "Aktivität der Instanz"
-
-#: front/src/views/playlists/Detail.vue:90
-msgid "Playlist"
-msgstr "Playlist"
-
-#: front/src/views/playlists/List.vue:105
-msgid "Enter an playlist name..."
-msgstr "Playlistname eingeben..."
-
-#: front/src/views/admin/library/Base.vue:16
-#, fuzzy
-msgid "Manage library"
-msgstr "In der Mediathek"
-
-#: front/src/views/admin/users/UsersDetail.vue:169
-msgid "Determine if the user account is active or not. Inactive users cannot login or use the service."
-msgstr "Bestimmt, ob das Konto aktiv ist oder nicht. Inaktive Konten können sich weder einloggen noch den Service nutzen."
-
-#: front/src/views/admin/users/UsersDetail.vue:170
-msgid "Determine how much content the user can upload. Leave empty to use the default value of the instance."
-msgstr ""
-
-#: front/src/views/admin/users/Base.vue:20
-msgid "Manage users"
-msgstr "Benutzer verwalten"
-
-#: front/src/views/admin/Settings.vue:75
-msgid "Instance settings"
-msgstr "Instanzeinstellungen"
-
-#: front/src/views/admin/Settings.vue:80
-msgid "Instance information"
-msgstr "Infos über diese Instanz"
-
-#: front/src/views/admin/Settings.vue:84
-msgid "Subsonic"
-msgstr "Subsonic"
-
-#: front/src/views/admin/Settings.vue:85
-msgid "Statistics"
-msgstr "Statistik"
-
-#: front/src/views/admin/Settings.vue:86
-msgid "Error reporting"
-msgstr "Fehlerbericht"
diff --git a/front/locales/eo/LC_MESSAGES/app.po b/front/locales/eo/LC_MESSAGES/app.po
index d676cc85f278a233a5cf080a6ae5ef1ee48e6011..18fcb5a7e73e47835782c1e17ffb7d9128f4026c 100644
--- a/front/locales/eo/LC_MESSAGES/app.po
+++ b/front/locales/eo/LC_MESSAGES/app.po
@@ -7,16 +7,16 @@ msgid ""
 msgstr ""
 "Project-Id-Version: front 1.0.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-10-05 20:10+0200\n"
-"PO-Revision-Date: 2018-10-05 16:38+0000\n"
-"Last-Translator: Baptiste Gelez <baptiste@gelez.xyz>\n"
+"POT-Creation-Date: 2019-01-11 15:55+0100\n"
+"PO-Revision-Date: 2019-01-20 10:50+0000\n"
+"Last-Translator: Elza Gelez <elza@gelez.xyz>\n"
 "Language-Team: none\n"
 "Language: eo\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 2.20\n"
+"X-Generator: Weblate 3.2.2\n"
 
 #: front/src/components/playlists/PlaylistModal.vue:9
 msgid "\"%{ title }\", by %{ artist }"
@@ -30,14 +30,14 @@ msgstr "(%{index} da %{length})"
 msgid "(empty)"
 msgstr "(malplena)"
 
-#: front/src/components/common/ActionTable.vue:44
-#: front/src/components/common/ActionTable.vue:53
+#: front/src/components/common/ActionTable.vue:57
+#: front/src/components/common/ActionTable.vue:66
 msgid "%{ count } on %{ total } selected"
 msgid_plural "%{ count } on %{ total } selected"
 msgstr[0] "Unu el %{total} estas selekta"
 msgstr[1] "%{count} el %{total} estas selektaj"
 
-#: front/src/components/Sidebar.vue:107 src/components/audio/album/Card.vue:54
+#: front/src/components/Sidebar.vue:110 src/components/audio/album/Card.vue:54
 #: front/src/views/content/libraries/Card.vue:39
 #: src/views/content/remote/Card.vue:26
 msgid "%{ count } track"
@@ -57,6 +57,12 @@ msgid_plural "%{ count } tracks matching combined filters"
 msgstr[0] "%{count} kanto kongruas kun la tutaj filtriloj"
 msgstr[1] "%{count} kantoj kongruas kun la tutaj filtriloj"
 
+#: front/src/components/audio/PlayButton.vue:180
+msgid "%{ count } track was added to your queue"
+msgid_plural "%{ count } tracks were added to your queue"
+msgstr[0] "Aldonis unu kanto al atendovico"
+msgstr[1] "Aldonis %{ count }kantoj al atendovico"
+
 #: front/src/components/playlists/Card.vue:18
 msgid "%{ count} track"
 msgid_plural "%{ count } tracks"
@@ -75,13 +81,23 @@ msgstr "%{hours} h %{minutes} min"
 msgid "%{ minutes } min"
 msgstr "%{minutes} min"
 
-#: front/src/components/activity/Like.vue:7
-msgid "%{ user } favorited a track"
-msgstr "%{user} stelumis kanton"
+#: front/src/components/notifications/NotificationRow.vue:40
+msgid "%{ username } accepted your follow on library \"%{ library }\""
+msgstr "%{ username } akceptis vian sekvadon de muzikejo \"%{ library }\""
+
+#: front/src/components/notifications/NotificationRow.vue:39
+msgid "%{ username } followed your library \"%{ library }\""
+msgstr "%{ username } sekvis vian muzikejon \"%{ library }\""
+
+#: front/src/components/auth/Profile.vue:46
+msgid "%{ username }'s profile"
+msgstr "Profilo de %{username}"
 
-#: front/src/components/activity/Listen.vue:7
-msgid "%{ user } listened to a track"
-msgstr "%{user} aÅ­skultis kanton"
+#: front/src/components/Footer.vue:5
+msgid "<translate :translate-params=\"{instanceName: instanceHostname}\">About %{instanceName}</translate>"
+msgstr ""
+"<translate :translate-params=\"{instanceName: instanceHostname}\">Pri "
+"%{instanceName}</translate>"
 
 #: front/src/components/audio/artist/Card.vue:41
 msgid "1 album"
@@ -95,15 +111,28 @@ msgid_plural "%{ count } favorites"
 msgstr[0] "Unu stelumo"
 msgstr[1] "%{count} stelumoj"
 
+#: front/src/components/library/FileUpload.vue:225
+#: front/src/components/library/FileUpload.vue:226
+msgid "A network error occured while uploading this file"
+msgstr "Eraro okazis dum alŝuto de tiu dosiero"
+
 #: front/src/components/About.vue:5
 msgid "About %{ instance }"
 msgstr "Pri %{instance}"
 
-#: front/src/App.vue:53
+#: front/src/components/Footer.vue:6
+msgid "About %{instanceName}"
+msgstr "Pri %{instanceName}"
+
+#: front/src/components/Footer.vue:45
 msgid "About Funkwhale"
 msgstr "Pri Funkwhale"
 
-#: front/src/App.vue:34 src/components/About.vue:8 src/components/About.vue:55
+#: front/src/components/Footer.vue:10
+msgid "About page"
+msgstr "Pripaĝo"
+
+#: front/src/components/About.vue:8 src/components/About.vue:64
 msgid "About this instance"
 msgstr "Pri tiu instanco"
 
@@ -115,18 +144,31 @@ msgstr "Akcepti"
 msgid "Accepted"
 msgstr "akceptanta"
 
+#: front/src/components/auth/SubsonicTokenForm.vue:111
+msgid "Access disabled"
+msgstr "Atingo malaktivigas"
+
 #: front/src/components/Home.vue:106
 msgid "Access your music from a clean interface that focus on what really matters"
 msgstr "Atingas vian muzikon kun pura interfaco ke koncentras ĝin sur gravaĵo"
 
-#: front/src/views/admin/users/UsersDetail.vue:54
-msgid "Account active"
-msgstr "Aktiva konto"
+#: front/src/components/mixins/Translations.vue:19
+#: front/src/components/mixins/Translations.vue:20
+msgid "Accessed date"
+msgstr "Atingdato"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:78
+msgid "Account data"
+msgstr "Kontdatumo"
 
 #: front/src/components/auth/Settings.vue:5
 msgid "Account settings"
 msgstr "Preferoj de via konto"
 
+#: front/src/components/auth/Settings.vue:264
+msgid "Account Settings"
+msgstr "Preferoj de via konto"
+
 #: front/src/components/manage/users/UsersTable.vue:39
 msgid "Account status"
 msgstr "Pozicio de via konto"
@@ -135,17 +177,23 @@ msgstr "Pozicio de via konto"
 msgid "Account's email"
 msgstr "Retadreso de via konto"
 
+#: front/src/views/admin/moderation/AccountsList.vue:3
+#: front/src/views/admin/moderation/AccountsList.vue:24
+#: front/src/views/admin/moderation/Base.vue:8
+msgid "Accounts"
+msgstr "Kontoj"
+
 #: front/src/views/content/libraries/Detail.vue:29
 msgid "Action"
 msgstr "Ago"
 
-#: front/src/components/common/ActionTable.vue:86
+#: front/src/components/common/ActionTable.vue:99
 msgid "Action %{ action } was launched successfully on %{ count } element"
 msgid_plural "Action %{ action } was launched successfully on %{ count } elements"
 msgstr[0] "Ago %{action} sukcese komenciĝis por %{count} ero"
 msgstr[1] "Ago %{action} sukcese komenciĝis por %{count} eroj"
 
-#: front/src/components/common/ActionTable.vue:8
+#: front/src/components/common/ActionTable.vue:21
 #: front/src/components/library/radios/Builder.vue:64
 msgid "Actions"
 msgstr "Agoj"
@@ -154,11 +202,33 @@ msgstr "Agoj"
 msgid "Active"
 msgstr "Aktiva"
 
-#: front/src/components/Sidebar.vue:75
+#: front/src/views/admin/moderation/AccountsDetail.vue:199
+#: front/src/views/admin/moderation/DomainsDetail.vue:144
 msgid "Activity"
 msgstr "Aktivo"
 
-#: front/src/components/Sidebar.vue:78 src/views/content/Base.vue:19
+#: front/src/components/mixins/Translations.vue:7
+#: front/src/components/mixins/Translations.vue:8
+msgid "Activity visibility"
+msgstr "Videblo de Akto"
+
+#: front/src/views/admin/moderation/DomainsList.vue:18
+msgid "Add"
+msgstr "Aldoni"
+
+#: front/src/views/admin/moderation/DomainsList.vue:13
+msgid "Add a domain"
+msgstr "Aldoni domajnon"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:4
+msgid "Add a new moderation rule"
+msgstr "Aldoni novan moderecan regulon"
+
+#: front/src/views/content/Home.vue:35
+msgid "Add and manage content"
+msgstr "Aldoni kaj administri datumoj"
+
+#: front/src/components/Sidebar.vue:75 src/views/content/Base.vue:18
 msgid "Add content"
 msgstr "Aldoni muzikon"
 
@@ -170,20 +240,28 @@ msgstr "Aldoni filtrilo"
 msgid "Add filters to customize your radio"
 msgstr "Aldonu filtriloj por agordi vian radion"
 
+#: front/src/components/audio/PlayButton.vue:64
+msgid "Add to current queue"
+msgstr "Aldoni al aktuala atendovico"
+
 #: front/src/components/favorites/TrackFavoriteIcon.vue:4
-#: front/src/components/favorites/TrackFavoriteIcon.vue:21
+#: front/src/components/favorites/TrackFavoriteIcon.vue:28
 msgid "Add to favorites"
 msgstr "Aldoni al stelumoj"
 
 #: front/src/components/playlists/TrackPlaylistIcon.vue:6
-#: front/src/components/playlists/TrackPlaylistIcon.vue:32
-msgid "Add to playlist..."
+#: front/src/components/playlists/TrackPlaylistIcon.vue:34
+msgid "Add to playlist…"
 msgstr "Aldoni al ludlisto…"
 
 #: front/src/components/audio/PlayButton.vue:14
 msgid "Add to queue"
 msgstr "Aldoni al atendovico"
 
+#: front/src/components/playlists/PlaylistModal.vue:116
+msgid "Add to this playlist"
+msgstr "Aldoni al tiu ludlisto"
+
 #: front/src/components/playlists/PlaylistModal.vue:54
 msgid "Add track"
 msgstr "Aldoni kanton"
@@ -192,16 +270,16 @@ msgstr "Aldoni kanton"
 msgid "Admin"
 msgstr "Administranto"
 
-#: front/src/components/Sidebar.vue:82
+#: front/src/components/Sidebar.vue:79
 msgid "Administration"
 msgstr "Administrejo"
 
-#: front/src/components/audio/track/Table.vue:8
+#: front/src/components/audio/SearchBar.vue:26
+#: src/components/audio/track/Table.vue:8
+#: front/src/components/library/Album.vue:159
 #: front/src/components/manage/library/FilesTable.vue:39
-#: front/src/views/content/libraries/FilesTable.vue:53
-#: front/src/components/library/Album.vue:101
-#: src/components/audio/SearchBar.vue:26
 #: front/src/components/metadata/Search.vue:134
+#: front/src/views/content/libraries/FilesTable.vue:56
 msgid "Album"
 msgstr "Albumo"
 
@@ -211,13 +289,19 @@ msgid_plural "Album containing %{ count } tracks, by %{ artist }"
 msgstr[0] "Albumo kun %{count} kanto, je %{artist}"
 msgstr[1] "Albumo kun %{count} kantoj, je %{artist}"
 
-#: front/src/components/library/Track.vue:20
+#: front/src/components/mixins/Translations.vue:24
+#: front/src/components/mixins/Translations.vue:25
+msgid "Album name"
+msgstr "Albumnomo"
+
+#: front/src/components/library/Track.vue:27
 msgid "Album page"
 msgstr "Albumpagô"
 
 #: front/src/components/audio/Search.vue:19
 #: src/components/instance/Stats.vue:48
-#: front/src/components/requests/Form.vue:9
+#: front/src/views/admin/moderation/AccountsDetail.vue:321
+#: front/src/views/admin/moderation/DomainsDetail.vue:257
 msgid "Albums"
 msgstr "Albumoj"
 
@@ -238,33 +322,43 @@ msgstr "Eraro okazis kiam konservi viajn ŝanĝojn"
 msgid "An unknown error happend, this can mean the server is down or cannot be reached"
 msgstr "Nekonata eraro okazis, povus signifi ke la servilo paneas aÅ­ ne estas atingebla"
 
+#: front/src/components/notifications/NotificationRow.vue:62
+msgid "Approve"
+msgstr "Akcepti"
+
 #: front/src/components/auth/Logout.vue:5
 msgid "Are you sure you want to log out?"
 msgstr "Ĉu vi vere volas elsaluti?"
 
-#: front/src/components/audio/track/Table.vue:7
+#: front/src/components/audio/SearchBar.vue:25
+#: src/components/audio/track/Table.vue:7
+#: front/src/components/library/Artist.vue:137
 #: front/src/components/manage/library/FilesTable.vue:38
-#: front/src/views/content/libraries/FilesTable.vue:52
-#: front/src/components/library/Artist.vue:129
-#: src/components/audio/SearchBar.vue:25
 #: front/src/components/metadata/Search.vue:130
+#: front/src/views/content/libraries/FilesTable.vue:55
 msgid "Artist"
 msgstr "Artisto"
 
-#: front/src/components/requests/Form.vue:5
-#: src/components/mixins/Translations.vue:24
+#: front/src/components/mixins/Translations.vue:25
+#: front/src/components/mixins/Translations.vue:26
 msgid "Artist name"
 msgstr "Nomo de artisto"
 
 #: front/src/components/library/Album.vue:22
-#: src/components/library/Track.vue:23
+#: src/components/library/Track.vue:33
 msgid "Artist page"
 msgstr "Artistpaĝo"
 
+#: front/src/components/audio/Search.vue:65
+msgid "Artist, album, track…"
+msgstr "Artisto, albumo, kanto…"
+
 #: front/src/components/audio/Search.vue:10
 #: src/components/instance/Stats.vue:42
-#: front/src/components/library/Library.vue:7
-#: src/components/library/Artists.vue:120
+#: front/src/components/library/Artists.vue:119
+#: src/components/library/Library.vue:7
+#: front/src/views/admin/moderation/AccountsDetail.vue:313
+#: front/src/views/admin/moderation/DomainsDetail.vue:249
 msgid "Artists"
 msgstr "Artistoj"
 
@@ -272,6 +366,8 @@ msgstr "Artistoj"
 #: src/components/library/Artists.vue:25
 #: front/src/components/library/Radios.vue:44
 #: front/src/components/manage/library/FilesTable.vue:19
+#: front/src/components/manage/moderation/AccountsTable.vue:21
+#: front/src/components/manage/moderation/DomainsTable.vue:19
 #: front/src/components/manage/users/UsersTable.vue:19
 #: front/src/views/content/libraries/FilesTable.vue:31
 #: front/src/views/playlists/List.vue:27
@@ -282,6 +378,15 @@ msgstr "Foste"
 msgid "Ask for a password reset"
 msgstr "Demandi pasvortrenuligadon"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:245
+#: front/src/views/admin/moderation/DomainsDetail.vue:202
+msgid "Audio content"
+msgstr "Muzika datumo"
+
+#: front/src/components/ShortcutsModal.vue:55
+msgid "Audio player shortcuts"
+msgstr "Fulmoklavoj de muzika ludilo"
+
 #: front/src/components/playlists/PlaylistModal.vue:26
 msgid "Available playlists"
 msgstr "Disponeblaj ludlistoj"
@@ -290,17 +395,29 @@ msgstr "Disponeblaj ludlistoj"
 msgid "Avatar"
 msgstr "Avataro"
 
-#: front/src/views/auth/EmailConfirm.vue:17 src/views/auth/PasswordReset.vue:24
+#: front/src/views/auth/PasswordReset.vue:24
 #: front/src/views/auth/PasswordResetConfirm.vue:18
 msgid "Back to login"
 msgstr "Reiri al ensalutpaĝo"
 
-#: front/src/components/library/Track.vue:80
+#: front/src/components/library/Track.vue:129
 #: front/src/components/manage/library/FilesTable.vue:42
-#: front/src/components/mixins/Translations.vue:28
+#: front/src/components/mixins/Translations.vue:29
+#: front/src/components/mixins/Translations.vue:30
 msgid "Bitrate"
 msgstr "Bitrapido"
 
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:19
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:34
+msgid "Block everything"
+msgstr "Bloki ĉiu"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:112
+msgid "Block everything from this account or domain. This will prevent any interaction with the entity, and purge related content (uploads, libraries, follows, etc.)"
+msgstr ""
+"Bloki ĉiu el tiu konto aŭ domajno. Preventos interagojn kaj malaperigis ĝian "
+"datumon (dosieroj, muzikejoj, sekvadoj…)"
+
 #: front/src/components/Sidebar.vue:18 src/components/library/Library.vue:4
 msgid "Browse"
 msgstr "Folii"
@@ -330,11 +447,19 @@ msgid "By %{ artist }"
 msgstr "Je %{artist}"
 
 #: front/src/views/content/remote/Card.vue:103
-msgid "By unfollowing this library, you will loose access to its content."
-msgstr "Malsekvante tiu muzikejo, vi perdos ĝian muzikon."
+msgid "By unfollowing this library, you loose access to its content."
+msgstr "Se vi malsekvantus tiun muzikejon, vi perdus ĝian muzikon."
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:261
+#: front/src/views/admin/moderation/DomainsDetail.vue:217
+msgid "Cached size"
+msgstr "Kaŝmemora grando"
 
 #: front/src/components/common/DangerousButton.vue:17
+#: front/src/components/library/Album.vue:58
+#: src/components/library/Track.vue:76
 #: front/src/components/library/radios/Filter.vue:53
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:54
 #: front/src/components/playlists/PlaylistModal.vue:63
 msgid "Cancel"
 msgstr "Nuligi"
@@ -347,7 +472,12 @@ msgstr "Kandidatoj"
 msgid "Cannot change your password"
 msgstr "Ne eblas ŝanĝi vian pasvorton"
 
-#: front/src/App.vue:65
+#: front/src/components/library/FileUpload.vue:222
+#: front/src/components/library/FileUpload.vue:223
+msgid "Cannot upload this file, ensure it is not too big"
+msgstr "Ne povis alŝuti tiun dosieron, certigi ne tro grandas"
+
+#: front/src/components/Footer.vue:21
 msgid "Change language"
 msgstr "Ŝanĝi lingvon"
 
@@ -380,7 +510,11 @@ msgstr "Ŝanĝi vian pasvorton ankaŭ ŝanĝos vian Subsonic API pasvorto se vi
 msgid "Changing your password will have the following consequences"
 msgstr "Ŝanĝi vian pasvorton tiel rezultigos"
 
-#: front/src/App.vue:6
+#: front/src/components/Footer.vue:40
+msgid "Chat room"
+msgstr "Babilejo"
+
+#: front/src/App.vue:13
 msgid "Choose your instance"
 msgstr "Elekti vian instanco"
 
@@ -397,14 +531,22 @@ msgstr "Purigi"
 msgid "Clear playlist"
 msgstr "Purigi ludliston"
 
+#: front/src/components/audio/Player.vue:363
+msgid "Clear your queue"
+msgstr "Purigi vian atendovico"
+
 #: front/src/components/Home.vue:44
 msgid "Click once, listen for hours using built-in radios"
 msgstr "Alklaki unu foje, aÅ­skulti enkonstruitajn radiojn dum horoj"
 
-#: front/src/components/library/FileUpload.vue:76
+#: front/src/components/library/FileUpload.vue:75
 msgid "Click to select files to upload or drag and drop files or directories"
 msgstr "Alklaki por selekti elŝutontaj dosieroj, aŭ ŝovi kaj demeti dosierojn aŭ dosierujojn"
 
+#: front/src/components/ShortcutsModal.vue:20
+msgid "Close"
+msgstr "Fermi"
+
 #: front/src/components/manage/users/InvitationForm.vue:26
 #: front/src/components/manage/users/InvitationsTable.vue:42
 msgid "Code"
@@ -412,14 +554,9 @@ msgstr "Kodo"
 
 #: front/src/components/audio/album/Card.vue:43
 #: front/src/components/audio/artist/Card.vue:33
-#: front/src/components/discussion/Comment.vue:20
 msgid "Collapse"
 msgstr "Malgrandigi"
 
-#: front/src/components/requests/Form.vue:14
-msgid "Comment"
-msgstr "Komenti"
-
 #: front/src/components/library/radios/Builder.vue:62
 msgid "Config"
 msgstr "Preferoj"
@@ -430,21 +567,58 @@ msgstr "Konfirmi"
 
 #: front/src/views/auth/EmailConfirm.vue:4 src/views/auth/EmailConfirm.vue:20
 #: front/src/views/auth/EmailConfirm.vue:51
-msgid "Confirm your email"
+msgid "Confirm your e-mail address"
 msgstr "Konfirmi vian retadreson"
 
 #: front/src/views/auth/EmailConfirm.vue:13
 msgid "Confirmation code"
 msgstr "Konfirmada kodo"
 
+#: front/src/components/common/ActionTable.vue:7
+msgid "Content have been updated, click refresh to see up-to-date content"
+msgstr "Äœisdatigis datumon, alklaku aktualigi por vidi novan datumon"
+
+#: front/src/components/Footer.vue:48
+msgid "Contribute"
+msgstr "Kontribui"
+
+#: front/src/components/audio/EmbedWizard.vue:19
 #: front/src/components/common/CopyInput.vue:8
 msgid "Copy"
 msgstr "Kopii"
 
+#: front/src/components/playlists/Editor.vue:163
+msgid "Copy tracks from current queue to playlist"
+msgstr "Kopii kantojn el la aktuala atendovico en tiu ludlisto"
+
+#: front/src/components/audio/EmbedWizard.vue:21
+msgid "Copy/paste this code in your website HTML"
+msgstr "Kopi kaj alglui tiun kodon en via retejo"
+
+#: front/src/components/library/Track.vue:91
+msgid "Copyright"
+msgstr "Kopirajto"
+
+#: front/src/views/auth/EmailConfirm.vue:7
+msgid "Could not confirm your e-mail address"
+msgstr "Ne povis konfirmi vian retadreson"
+
+#: front/src/views/content/remote/ScanForm.vue:3
+msgid "Could not fetch remote library"
+msgstr "Eraro dum skano de malloka muzikejo"
+
+#: front/src/views/content/libraries/FilesTable.vue:213
+msgid "Could not process this track, ensure it is tagged correctly"
+msgstr "Ne povis traktadi tiun kanton, certiĝi ĝi estas bone etikedata"
+
 #: front/src/components/Home.vue:85
 msgid "Covers, lyrics, our goal is to have them all ;)"
 msgstr "Reludversioj, kantparoloj, nian celon estas havi ĉiujn ;)"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:58
+msgid "Create"
+msgstr "Krei"
+
 #: front/src/components/auth/Signup.vue:4
 msgid "Create a funkwhale account"
 msgstr "Krei Funkwhale konton"
@@ -461,10 +635,6 @@ msgstr "Krei novan ludliston"
 msgid "Create an account"
 msgstr "Krei konton"
 
-#: front/src/components/requests/Card.vue:25
-msgid "Create import"
-msgstr "Krei importadon"
-
 #: front/src/views/content/libraries/Form.vue:26
 msgid "Create library"
 msgstr "Krei muzikejon"
@@ -482,6 +652,7 @@ msgid "Create your own radio"
 msgstr "Krei vian propran radion"
 
 #: front/src/components/manage/users/InvitationsTable.vue:40
+#: front/src/components/mixins/Translations.vue:16
 #: front/src/components/mixins/Translations.vue:17
 msgid "Creation date"
 msgstr "Kreodato"
@@ -506,11 +677,16 @@ msgstr "Aktuala uzo"
 msgid "Date"
 msgstr "Dato"
 
-#: front/src/views/content/libraries/Form.vue:29
-#: src/views/playlists/Detail.vue:33
+#: front/src/components/ShortcutsModal.vue:75
+msgid "Decrease volume"
+msgstr "Malgrandigi volumo"
+
 #: front/src/components/manage/library/FilesTable.vue:190
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:61
 #: front/src/components/manage/users/InvitationsTable.vue:167
-#: front/src/views/content/libraries/FilesTable.vue:258
+#: front/src/views/content/libraries/FilesTable.vue:233
+#: front/src/views/content/libraries/Form.vue:29
+#: src/views/playlists/Detail.vue:33
 msgid "Delete"
 msgstr "Forigi"
 
@@ -518,6 +694,10 @@ msgstr "Forigi"
 msgid "Delete library"
 msgstr "Forigi muzikejon"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:69
+msgid "Delete moderation rule"
+msgstr "Forigi moderecan regulon"
+
 #: front/src/views/playlists/Detail.vue:38
 msgid "Delete playlist"
 msgstr "Forigi ludliston"
@@ -530,10 +710,16 @@ msgstr "Forigi radion"
 msgid "Delete this library?"
 msgstr "Forigi tiun muzikejon?"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:63
+msgid "Delete this moderation rule?"
+msgstr "Forigi tiun moderecan regulon?"
+
 #: front/src/components/favorites/List.vue:34
 #: src/components/library/Artists.vue:26
 #: front/src/components/library/Radios.vue:47
 #: front/src/components/manage/library/FilesTable.vue:20
+#: front/src/components/manage/moderation/AccountsTable.vue:22
+#: front/src/components/manage/moderation/DomainsTable.vue:20
 #: front/src/components/manage/users/UsersTable.vue:20
 #: front/src/views/content/libraries/FilesTable.vue:32
 #: front/src/views/playlists/List.vue:28
@@ -553,6 +739,17 @@ msgstr "Detalo"
 msgid "Details"
 msgstr "Detaloj"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:455
+msgid "Determine how much content the user can upload. Leave empty to use the default value of the instance."
+msgstr ""
+"Kiom da datumo la uzanto povas elŝuti. Lasi malplene por uzi la defaŭlta "
+"valoro de la instanco."
+
+#: front/src/components/mixins/Translations.vue:8
+#: front/src/components/mixins/Translations.vue:9
+msgid "Determine the visibility level of your activity"
+msgstr "Kiu estas la videblo de viaj aktoj"
+
 #: front/src/components/auth/Settings.vue:104
 #: front/src/components/auth/SubsonicTokenForm.vue:52
 msgid "Disable access"
@@ -566,14 +763,30 @@ msgstr "Malatingeblu Subsonic"
 msgid "Disable Subsonic API access?"
 msgstr "Ĉu vi volas malatingeblu la Subsonic API?"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:18
+#: front/src/views/admin/moderation/AccountsDetail.vue:128
+#: front/src/views/admin/moderation/AccountsDetail.vue:132
+msgid "Disabled"
+msgstr "Malaktiva"
+
 #: front/src/components/auth/SubsonicTokenForm.vue:14
 msgid "Discover how to use Funkwhale from other apps"
 msgstr "Malkovri kiel vi povas uzi Funkwhale el aliaj aplikaĵoj"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:103
+msgid "Display name"
+msgstr "Afiŝata nomo"
+
 #: front/src/components/library/radios/Builder.vue:30
 msgid "Display publicly"
 msgstr "Publike montri"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:122
+msgid "Do not download any media file (audio, album cover, account avatar…) from this account or domain. This will purge existing content as well."
+msgstr ""
+"Neniam alŝuti aŭdovidaĵojn (muzikoj, albumbildoj, avataroj…) el tiu konto aŭ "
+"domajno. AnkaÅ­ forigos aktualajn datumojn."
+
 #: front/src/components/playlists/Editor.vue:42
 msgid "Do you want to clear the playlist \"%{ playlist }\"?"
 msgstr "Ĉu vi volas purigi la \"%{playlist}\" ludliston?"
@@ -590,21 +803,34 @@ msgstr "Ĉu vi volas forigi la \"%{playlist}\" ludliston?"
 msgid "Do you want to delete the radio \"%{ radio }\"?"
 msgstr "Ĉu vi volas forigi la \"%{radio}\" radion?"
 
-#: front/src/components/common/ActionTable.vue:29
+#: front/src/components/common/ActionTable.vue:36
 msgid "Do you want to launch %{ action } on %{ count } element?"
 msgid_plural "Do you want to launch %{ action } on %{ count } elements?"
 msgstr[0] "Ĉu vi volas komenci %{action} por %{count} ero?"
 msgstr[1] "Ĉu vi volas komenci %{action} por %{count} eroj?"
 
-#: front/src/components/Sidebar.vue:104
+#: front/src/components/Sidebar.vue:107
 msgid "Do you want to restore your previous queue?"
 msgstr "Ĉu vi volas reŝargi vian antaŭan atendovicon?"
 
-#: front/src/App.vue:37
+#: front/src/components/Footer.vue:31
 msgid "Documentation"
 msgstr "Dokumentaro"
 
-#: front/src/components/library/Track.vue:48
+#: front/src/components/manage/moderation/AccountsTable.vue:40
+#: front/src/components/mixins/Translations.vue:34
+#: front/src/views/admin/moderation/AccountsDetail.vue:93
+#: front/src/components/mixins/Translations.vue:35
+msgid "Domain"
+msgstr "Domajno"
+
+#: front/src/views/admin/moderation/Base.vue:5
+#: front/src/views/admin/moderation/DomainsList.vue:3
+#: front/src/views/admin/moderation/DomainsList.vue:48
+msgid "Domains"
+msgstr "Domajnoj"
+
+#: front/src/components/library/Track.vue:55
 msgid "Download"
 msgstr "Elŝuti"
 
@@ -613,13 +839,18 @@ msgid "Drag and drop rows to reorder tracks in the playlist"
 msgstr "Treni kaj guti horizontaloj por reordigi kantojn en la ludlisto"
 
 #: front/src/components/audio/track/Table.vue:9
-#: src/components/library/Track.vue:58
+#: src/components/library/Track.vue:111
 #: front/src/components/manage/library/FilesTable.vue:43
-#: front/src/views/content/libraries/FilesTable.vue:56
-#: front/src/components/mixins/Translations.vue:29
+#: front/src/components/mixins/Translations.vue:30
+#: front/src/views/content/libraries/FilesTable.vue:59
+#: front/src/components/mixins/Translations.vue:31
 msgid "Duration"
 msgstr "DaÅ­ro"
 
+#: front/src/views/auth/EmailConfirm.vue:23
+msgid "E-mail address confirmed"
+msgstr "Konfirmintas retadreson"
+
 #: front/src/components/Home.vue:93
 msgid "Easy to use"
 msgstr "Facila uzo"
@@ -633,7 +864,7 @@ msgid "Edit instance info"
 msgstr "Redakti informoj de instanco"
 
 #: front/src/components/radios/Card.vue:22 src/views/playlists/Detail.vue:30
-msgid "Edit..."
+msgid "Edit…"
 msgstr "Redakti…"
 
 #: front/src/components/auth/Signup.vue:29
@@ -641,28 +872,94 @@ msgstr "Redakti…"
 msgid "Email"
 msgstr "Retmesaĝo"
 
-#: front/src/views/admin/users/UsersDetail.vue:29
+#: front/src/views/admin/moderation/AccountsDetail.vue:111
 msgid "Email address"
 msgstr "Retadreso"
 
-#: front/src/views/auth/EmailConfirm.vue:23
-msgid "Email confirmed"
-msgstr "Konfirmis retadreso"
+#: front/src/components/library/Album.vue:44
+#: src/components/library/Track.vue:62
+msgid "Embed"
+msgstr "Enkorpigi"
+
+#: front/src/components/audio/EmbedWizard.vue:20
+msgid "Embed code"
+msgstr "Enkorpiga kodo"
+
+#: front/src/components/library/Album.vue:48
+msgid "Embed this album on your website"
+msgstr "Enkorpigi tiun albumon en via retejo"
+
+#: front/src/components/library/Track.vue:66
+msgid "Embed this track on your website"
+msgstr "Enkorpigi tiun kanton en via retejo"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:230
+#: front/src/views/admin/moderation/DomainsDetail.vue:187
+msgid "Emitted library follows"
+msgstr "Sendintaj sekvadoj de muzikejo"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:214
+#: front/src/views/admin/moderation/DomainsDetail.vue:171
+msgid "Emitted messages"
+msgstr "Sendintaj mesaĝoj"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:8
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:17
+#: front/src/views/admin/moderation/AccountsDetail.vue:127
+#: front/src/views/admin/moderation/AccountsDetail.vue:131
+msgid "Enabled"
+msgstr "Aktiva"
 
 #: front/src/views/playlists/Detail.vue:29
 msgid "End edition"
 msgstr "Fini redakto"
 
+#: front/src/views/content/remote/ScanForm.vue:50
+msgid "Enter a library URL"
+msgstr "Tajpu retadreson de muzikejo"
+
+#: front/src/components/library/Radios.vue:140
+msgid "Enter a radio name…"
+msgstr "Tajpu nomon de radio…"
+
+#: front/src/components/library/Artists.vue:118
+msgid "Enter artist name…"
+msgstr "Tajpu nomon de artisto…"
+
+#: front/src/views/playlists/List.vue:107
+msgid "Enter playlist name…"
+msgstr "Tajpu nomon de ludlisto…"
+
+#: front/src/components/auth/Signup.vue:100
+msgid "Enter your email"
+msgstr "Tajpu vian retadreson"
+
+#: front/src/components/auth/Signup.vue:96 src/components/auth/Signup.vue:97
+msgid "Enter your invitation code (case insensitive)"
+msgstr "Tajpu vian invitkodon (usklecoblindan)"
+
+#: front/src/components/metadata/Search.vue:114
+msgid "Enter your search query…"
+msgstr "Tajpu vian serĉon…"
+
+#: front/src/components/auth/Signup.vue:99
+msgid "Enter your username"
+msgstr "Tajpu vian uzantnomon"
+
+#: front/src/components/auth/Login.vue:77
+msgid "Enter your username or email"
+msgstr "Tajpu vian uzantnomon aÅ­ retadreson"
+
 #: front/src/components/auth/SubsonicTokenForm.vue:20
 #: front/src/views/content/libraries/Form.vue:4
 msgid "Error"
 msgstr "Eraro"
 
-#: front/src/views/content/remote/Card.vue:39
-msgid "Error during scan"
-msgstr "Eraro dum skanado"
+#: front/src/views/admin/Settings.vue:87
+msgid "Error reporting"
+msgstr "Eraroraportado"
 
-#: front/src/components/common/ActionTable.vue:79
+#: front/src/components/common/ActionTable.vue:92
 msgid "Error while applying action"
 msgstr "Eraro kiam ruli akton"
 
@@ -674,24 +971,27 @@ msgstr "Eraro kiam demandi renuligadon de pasvorto"
 msgid "Error while changing your password"
 msgstr "Eraro kiam ŝanĝi vian pasvorton"
 
-#: front/src/views/auth/EmailConfirm.vue:7
-msgid "Error while confirming your email"
-msgstr "Eraro kiam konfirmi vian retadreson"
+#: front/src/views/admin/moderation/DomainsList.vue:6
+msgid "Error while creating domain"
+msgstr "Eraro kiam krei domajnon"
 
 #: front/src/components/manage/users/InvitationForm.vue:4
 msgid "Error while creating invitation"
 msgstr "Eraro kiam krei inviton"
 
-#: front/src/views/content/remote/ScanForm.vue:3
-msgid "Error while fetching remote library"
-msgstr "Eraro dum skano de malloka muzikejo"
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:7
+msgid "Error while creating rule"
+msgstr "Eraro kiam krei regulon"
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:126
+msgid "Error while fetching node info"
+msgstr "Eraro dum skano de malloka instanco"
 
 #: front/src/components/admin/SettingsGroup.vue:5
 msgid "Error while saving settings"
 msgstr "Eraro kiam konservi preferojn"
 
-#: front/src/views/content/libraries/FilesTable.vue:16
-#: front/src/views/content/libraries/FilesTable.vue:237
+#: front/src/views/content/libraries/FilesTable.vue:212
 msgid "Errored"
 msgstr "Eraris"
 
@@ -699,20 +999,28 @@ msgstr "Eraris"
 msgid "Errored files"
 msgstr "Erarintaj dosieroj"
 
-#: front/src/views/content/remote/Card.vue:58
-msgid "Errored tracks:"
-msgstr "Erorintaj kantoj:"
+#: front/src/components/playlists/Form.vue:89
+msgid "Everyone"
+msgstr "Ĉiu"
+
+#: front/src/components/mixins/Translations.vue:11
+#: front/src/components/playlists/Form.vue:85
+#: src/views/content/libraries/Form.vue:73
+#: front/src/components/mixins/Translations.vue:12
+msgid "Everyone on this instance"
+msgstr "Ĉiu en ĉi-tiu instanco"
+
+#: front/src/views/content/libraries/Form.vue:74
+msgid "Everyone, across all instances"
+msgstr "Ĉiu en ĉiuj instancoj"
 
 #: front/src/components/library/radios/Builder.vue:61
 msgid "Exclude"
 msgstr "Ekskluzivi"
 
-#: front/src/components/discussion/Comment.vue:14
-msgid "Expand"
-msgstr "Grandigi"
-
 #: front/src/components/manage/users/InvitationsTable.vue:41
-#: front/src/components/mixins/Translations.vue:21
+#: front/src/components/mixins/Translations.vue:22
+#: front/src/components/mixins/Translations.vue:23
 msgid "Expiration date"
 msgstr "Fortempiĝa dato"
 
@@ -724,13 +1032,32 @@ msgstr "Fortempiĝis"
 msgid "Expired/used"
 msgstr "Fortempiĝis aŭ uzantiĝis"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:110
+msgid "Explain why you're applying this policy. Depending on your instance configuration, this will help you remember why you acted on this account or domain, and may be displayed publicly to help users understand what moderation rules are in place."
+msgstr ""
+"Ekspliku kial vi aplikas tiun regularon. Depende de la preferado de via "
+"instanco, ĝi helpos vin memori kial vi agis sur tiu konto aŭ domajno, kaj "
+"povus esti afiŝa por helpi uzantoj kompreni kiuj moderecaj reguloj ekzistas."
+
+#: front/src/views/content/libraries/FilesTable.vue:16
+msgid "Failed"
+msgstr "Eraris"
+
+#: front/src/views/content/remote/Card.vue:58
+msgid "Failed tracks:"
+msgstr "Erarintaj kantoj:"
+
 #: front/src/components/Sidebar.vue:66
 msgid "Favorites"
 msgstr "Stelumoj"
 
-#: front/src/components/library/FileUpload.vue:83
-msgid "File name"
-msgstr "Nomo de la dosiero"
+#: front/src/views/admin/Settings.vue:84
+msgid "Federation"
+msgstr "Federo"
+
+#: front/src/components/library/FileUpload.vue:84
+msgid "Filename"
+msgstr "Dosiernomo"
 
 #: front/src/views/admin/library/Base.vue:5
 #: src/views/admin/library/FilesList.vue:21
@@ -742,23 +1069,37 @@ msgid "Filter name"
 msgstr "Filtri nomon"
 
 #: front/src/views/content/libraries/FilesTable.vue:17
-#: front/src/views/content/libraries/FilesTable.vue:241
+#: front/src/views/content/libraries/FilesTable.vue:216
 msgid "Finished"
 msgstr "Finanto"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:42
+#: front/src/components/manage/moderation/DomainsTable.vue:41
+#: front/src/views/admin/moderation/AccountsDetail.vue:159
+#: front/src/views/admin/moderation/DomainsDetail.vue:78
+msgid "First seen"
+msgstr "Unua vido"
+
+#: front/src/components/mixins/Translations.vue:17
+#: front/src/components/mixins/Translations.vue:18
+msgid "First seen date"
+msgstr "Dato de unua vido"
+
 #: front/src/views/content/remote/Card.vue:83
 msgid "Follow"
 msgstr "Sekvi"
 
-#: front/src/views/content/remote/Card.vue:88
-msgid "Follow pending approval"
-msgstr "Peto da sekvado atendas konsenton"
-
 #: front/src/views/content/Home.vue:16
 msgid "Follow remote libraries"
 msgstr "Sekvi mallokajn muzikejojn"
 
+#: front/src/views/content/remote/Card.vue:88
+msgid "Follow request pending approval"
+msgstr "Peto da sekvado atendanta konsenton"
+
+#: front/src/components/mixins/Translations.vue:38
 #: front/src/views/content/libraries/Detail.vue:7
+#: front/src/components/mixins/Translations.vue:39
 msgid "Followers"
 msgstr "Sekvantoj"
 
@@ -766,19 +1107,10 @@ msgstr "Sekvantoj"
 msgid "Following"
 msgstr "Sekvata"
 
-#: front/src/components/activity/Like.vue:14
-#: src/components/activity/Listen.vue:14
-msgid "from %{ album } by %{ artist }"
-msgstr "el %{album} je %{artist}"
-
-#: front/src/components/library/Track.vue:13
+#: front/src/components/library/Track.vue:17
 msgid "From album %{ album } by %{ artist }"
 msgstr "El %{album} albumo je %{artist}"
 
-#: front/src/App.vue:55
-msgid "Funkwhale is a free and open-source project run by volunteers. You can help us improve the platform by reporting bugs, suggesting features and share the project with your friends!"
-msgstr "Funkwhale estas senpaga kaj kun libera fontkodo projekto, ke viglas dankon al vonlontuloj. Vi povas helpi nin plibonigi tiun kun cimosignaladoj, trajtosugestoj kaj diskonigado de la projekto al viaj amikoj!"
-
 #: front/src/components/auth/SubsonicTokenForm.vue:7
 msgid "Funkwhale is compatible with other music players that support the Subsonic API."
 msgstr "Funkwhale funkcias kun aliaj muzikludiloj ke apogas la Subsonic API."
@@ -799,6 +1131,10 @@ msgstr "Funkwhale estas senpaga kaj lasis vin estri vian muzikon."
 msgid "Funkwhale takes care of handling your music"
 msgstr "Funkwhale atentas manipuli vian muzikon"
 
+#: front/src/components/ShortcutsModal.vue:38
+msgid "General shortcuts"
+msgstr "Generalaj fulmoklavoj"
+
 #: front/src/components/manage/users/InvitationForm.vue:16
 msgid "Get a new invitation"
 msgstr "Akiri novan inviton"
@@ -808,16 +1144,21 @@ msgid "Get me to the library"
 msgstr "Iru al la muzikejo"
 
 #: front/src/components/Home.vue:76
-#, fuzzy
 msgid "Get quality metadata about your music thanks to <a href=\"%{ url }\" target=\"_blank\">MusicBrainz</a>"
-msgstr "Akiri bonegaj metadatumoj pri vian muzikon kun <a href=\"https://musicbrainz.org\" target=\"_blank\">MusicBrainz</a>"
+msgstr ""
+"Akiri kvalitaj metadatumoj pri vian muzikon kun <a href=\"%{url}\" target=\""
+"_blank\">MusicBrainz</a>"
 
 #: front/src/views/content/Home.vue:12 src/views/content/Home.vue:19
 msgid "Get started"
 msgstr "Komencu"
 
-#: front/src/components/common/ActionTable.vue:21
-#: front/src/components/common/ActionTable.vue:27
+#: front/src/components/Footer.vue:37
+msgid "Getting help"
+msgstr "Ricevi helpon"
+
+#: front/src/components/common/ActionTable.vue:34
+#: front/src/components/common/ActionTable.vue:54
 msgid "Go"
 msgstr "Komenci"
 
@@ -825,9 +1166,13 @@ msgstr "Komenci"
 msgid "Go to home page"
 msgstr "Iru hejme"
 
-#: front/src/App.vue:73
-msgid "Help us translate Funkwhale"
-msgstr "Helpu nin traduki Funkwhale"
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:114
+msgid "Hide account or domain content, except from followers."
+msgstr "Kaŝi konton aŭ domajnon, krom sekvantoj."
+
+#: front/src/components/library/Home.vue:65
+msgid "Home"
+msgstr "Hejmo"
 
 #: front/src/components/instance/Stats.vue:36
 msgid "Hours of music"
@@ -854,10 +1199,19 @@ msgid "Import reference"
 msgstr "Importfonto"
 
 #: front/src/views/content/libraries/FilesTable.vue:11
-#: front/src/views/content/libraries/FilesTable.vue:55
+#: front/src/views/content/libraries/FilesTable.vue:58
 msgid "Import status"
 msgstr "Importstato"
 
+#: front/src/views/content/libraries/FilesTable.vue:217
+msgid "Imported"
+msgstr "Importinta"
+
+#: front/src/components/mixins/Translations.vue:21
+#: front/src/components/mixins/Translations.vue:22
+msgid "Imported date"
+msgstr "Importdato"
+
 #: front/src/components/favorites/TrackFavoriteIcon.vue:3
 msgid "In favorites"
 msgstr "En stelumoj"
@@ -866,16 +1220,42 @@ msgstr "En stelumoj"
 msgid "Inactive"
 msgstr "Malaktiva"
 
+#: front/src/components/ShortcutsModal.vue:71
+msgid "Increase volume"
+msgstr "Pliigi volumon"
+
+#: front/src/views/auth/PasswordReset.vue:53
+msgid "Input the email address binded to your account"
+msgstr "Tajpu la retadreson bindanta al via konto"
+
 #: front/src/components/playlists/Editor.vue:31
 msgid "Insert from queue (%{ count } track)"
 msgid_plural "Insert from queue (%{ count } tracks)"
 msgstr[0] "Internigi el atendovico (unu kanto)"
 msgstr[1] "Internigi el atendovico (%{count} kantoj)"
 
+#: front/src/views/admin/moderation/DomainsDetail.vue:71
+msgid "Instance data"
+msgstr "Instanca datumo"
+
+#: front/src/views/admin/Settings.vue:80
+msgid "Instance information"
+msgstr "Instanca informo"
+
 #: front/src/components/library/Radios.vue:9
 msgid "Instance radios"
 msgstr "Instancaj radioj"
 
+#: front/src/views/admin/Settings.vue:75
+msgid "Instance settings"
+msgstr "Instancaj preferoj"
+
+#: front/src/components/library/FileUpload.vue:229
+#: front/src/components/library/FileUpload.vue:230
+msgid "Invalid file type, ensure you are uploading an audio file. Supported file extensions are %{ extensions }"
+msgstr ""
+"Malbona dosiertipo, aserti ĝi estas aŭda dosiero. %{ extensions } funkcias"
+
 #: front/src/components/auth/Signup.vue:42
 #: front/src/components/manage/users/InvitationForm.vue:11
 msgid "Invitation code"
@@ -891,52 +1271,73 @@ msgstr "Invita kodo (nedeviga)"
 msgid "Invitations"
 msgstr "Invitoj"
 
-#: front/src/App.vue:42
+#: front/src/components/Footer.vue:41
 msgid "Issue tracker"
 msgstr "Cimspuradilo"
 
-#: front/src/views/content/libraries/Home.vue:9
-msgid "It looks like you don't have any library yet, it's time to create one!"
-msgstr "Åœajni ke vi ne jam havas muzikejon, kreu unu!"
-
 #: front/src/components/Home.vue:50
 msgid "Keep a track of your favorite songs"
 msgstr "Konservi postsignojn de viaj preferitaj kantoj"
 
+#: front/src/components/Footer.vue:33 src/components/ShortcutsModal.vue:3
+msgid "Keyboard shortcuts"
+msgstr "Fulmoklavo"
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:161
+msgid "Known accounts"
+msgstr "Konataj kontoj"
+
 #: front/src/views/content/remote/Home.vue:14
 msgid "Known libraries"
 msgstr "Konataj muzikejoj"
 
 #: front/src/components/manage/users/UsersTable.vue:41
-#: front/src/views/admin/users/UsersDetail.vue:45
-#: front/src/components/mixins/Translations.vue:31
+#: front/src/components/mixins/Translations.vue:32
+#: front/src/views/admin/moderation/AccountsDetail.vue:184
+#: front/src/components/mixins/Translations.vue:33
 msgid "Last activity"
 msgstr "Lasta akto"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:167
+#: front/src/views/admin/moderation/DomainsDetail.vue:86
+msgid "Last checked"
+msgstr "Lasta kontrolado"
+
 #: front/src/components/playlists/PlaylistModal.vue:32
 msgid "Last modification"
 msgstr "Lasta redakto"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:43
+msgid "Last seen"
+msgstr "Lasta vidanto"
+
+#: front/src/components/mixins/Translations.vue:18
+#: front/src/components/mixins/Translations.vue:19
+msgid "Last seen date"
+msgstr "Dato de lasta vido"
+
 #: front/src/views/content/remote/Card.vue:56
 msgid "Last update:"
 msgstr "Lasta ĝisdatigo:"
 
-#: front/src/components/common/ActionTable.vue:40
+#: front/src/components/common/ActionTable.vue:47
 msgid "Launch"
 msgstr "Lanĉi"
 
-#: front/src/views/content/remote/Card.vue:63
-msgid "Launch scan"
-msgstr "Lanĉi skanon"
-
 #: front/src/components/Home.vue:10
 msgid "Learn more about this instance"
 msgstr "Lerni pli pri tiu instanco"
 
-#: front/src/components/requests/Form.vue:10
-msgid "Leave this field empty if you're requesting the whole discography."
-msgstr "Lasu malplena se vi volas la tutan albumaron."
+#: front/src/components/manage/users/InvitationForm.vue:58
+msgid "Leave empty for a random code"
+msgstr "Lasu malplena por hazarda kodo"
+
+#: front/src/components/audio/EmbedWizard.vue:7
+msgid "Leave empty for a responsive widget"
+msgstr "Lasu malplena por adaptiĝema fenestraĵo"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:297
+#: front/src/views/admin/moderation/DomainsDetail.vue:233
 #: front/src/views/content/Base.vue:5
 msgid "Libraries"
 msgstr "Muzikejoj"
@@ -946,57 +1347,78 @@ msgid "Libraries help you organize and share your music collections. You can upl
 msgstr "Muzikejoj helpas vin organizi kaj diskonigi viajn muzikarojn. Vi povas elŝuti vian propran muzikaron je Funkwhale kaj diskonigi ĝin kun viajn amikojn kaj familio."
 
 #: front/src/components/instance/Stats.vue:30
-#: front/src/components/manage/users/UsersTable.vue:177
-#: front/src/views/admin/users/UsersDetail.vue:181
+#: front/src/components/manage/users/UsersTable.vue:173
+#: front/src/views/admin/moderation/AccountsDetail.vue:464
 msgid "Library"
 msgstr "Muzikejo"
 
+#: front/src/views/content/libraries/Form.vue:109
+msgid "Library created"
+msgstr "Kreis muzikejon"
+
+#: front/src/views/content/libraries/Form.vue:129
+msgid "Library deleted"
+msgstr "Forigis muzikejon"
+
 #: front/src/views/admin/library/FilesList.vue:3
 msgid "Library files"
 msgstr "Muzikejaj dosieroj"
 
-#: front/src/App.vue:31
-msgid "Links"
-msgstr "Ligiloj"
+#: front/src/views/content/libraries/Form.vue:106
+msgid "Library updated"
+msgstr "Äœisdatigas muzikejon"
+
+#: front/src/components/library/Track.vue:100
+msgid "License"
+msgstr "Permesilo"
 
 #: front/src/views/content/libraries/Detail.vue:21
-msgid "Loading followers..."
-msgstr "Ŝargi sekvantojn…"
+msgid "Loading followers…"
+msgstr "Ŝargas sekvantojn…"
 
 #: front/src/views/content/libraries/Home.vue:3
-msgid "Loading Libraries..."
+msgid "Loading Libraries…"
 msgstr "Ŝarĝas muzikejojn…"
 
 #: front/src/views/content/libraries/Detail.vue:3
 #: front/src/views/content/libraries/Upload.vue:3
-msgid "Loading library data..."
-msgstr "Ŝargas datumon de la muzkejo…"
+msgid "Loading library data…"
+msgstr "Ŝargas datumon de muzikejo…"
 
 #: front/src/views/Notifications.vue:4
-msgid "Loading notifications..."
+msgid "Loading notifications…"
 msgstr "Ŝarĝas sciigojn…"
 
 #: front/src/views/content/remote/Home.vue:3
 msgid "Loading remote libraries..."
 msgstr "Ŝargas mallokajn muzikejojn…"
 
-#: front/src/views/instance/Timeline.vue:4
-msgid "Loading timeline..."
-msgstr "Tempolino ŝarĝas…"
-
 #: front/src/views/content/libraries/Quota.vue:4
-msgid "Loading usage data..."
+msgid "Loading usage data…"
 msgstr "Ŝarĝas uzdatumon…"
 
 #: front/src/components/favorites/List.vue:5
-msgid "Loading your favorites..."
+msgid "Loading your favorites…"
 msgstr "Ŝarĝas viajn stelumojn…"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:59
+#: front/src/views/admin/moderation/AccountsDetail.vue:18
+msgid "Local account"
+msgstr "Loka konto"
+
+#: front/src/components/auth/Login.vue:78
+msgid "Log In"
+msgstr "Ensaluti"
+
 #: front/src/components/auth/Login.vue:4
 msgid "Log in to your Funkwhale account"
 msgstr "Ensaluti en via Funkwhale konto"
 
-#: front/src/components/Sidebar.vue:38
+#: front/src/components/auth/Logout.vue:20
+msgid "Log Out"
+msgstr "Elsaluti"
+
+#: front/src/components/Sidebar.vue:38
 msgid "Logged in as %{ username }"
 msgstr "Elsuta je %{username}"
 
@@ -1004,18 +1426,53 @@ msgstr "Elsuta je %{username}"
 msgid "Login"
 msgstr "Ensaluti"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:119
+msgid "Login status"
+msgstr "Stato de konektado"
+
 #: front/src/components/Sidebar.vue:52
 msgid "Logout"
 msgstr "Elsaluti"
 
-#: front/src/components/library/Track.vue:105
+#: front/src/views/content/libraries/Home.vue:9
+msgid "Looks like you don't have a library, it's time to create one."
+msgstr "Åœajni ke vi ne jam havas muzikejon, kreu unu."
+
+#: front/src/components/audio/Player.vue:353
+#: src/components/audio/Player.vue:354
+msgid "Looping disabled. Click to switch to single-track looping."
+msgstr "Ripeto malaktivas. Alklaki por aktivi ripetado de la aktuala kanto."
+
+#: front/src/components/audio/Player.vue:356
+#: src/components/audio/Player.vue:357
+msgid "Looping on a single track. Click to switch to whole queue looping."
+msgstr "Ripetas unu kanton. Alklaki por aktivi ripetado de la tutan atendovico."
+
+#: front/src/components/audio/Player.vue:359
+#: src/components/audio/Player.vue:360
+msgid "Looping on whole queue. Click to disable looping."
+msgstr "Ripetas la tutan atendovicon. Alklaki por malaktivi ripeto."
+
+#: front/src/components/library/Track.vue:150
 msgid "Lyrics"
 msgstr "Teksto"
 
+#: front/src/components/Sidebar.vue:210
+msgid "Main menu"
+msgstr "Precipa menuo"
+
+#: front/src/views/admin/library/Base.vue:16
+msgid "Manage library"
+msgstr "Administri muzikejon"
+
 #: front/src/components/playlists/PlaylistModal.vue:3
 msgid "Manage playlists"
 msgstr "Manipuli ludlistojn"
 
+#: front/src/views/admin/users/Base.vue:20
+msgid "Manage users"
+msgstr "Manipuli uzantojn"
+
 #: front/src/views/playlists/List.vue:8
 msgid "Manage your playlists"
 msgstr "Manipuli viajn ludlistojn"
@@ -1024,42 +1481,103 @@ msgstr "Manipuli viajn ludlistojn"
 msgid "Mark all as read"
 msgstr "Marki ĉiujn legata"
 
-#: front/src/views/admin/users/UsersDetail.vue:94
+#: front/src/components/notifications/NotificationRow.vue:44
+msgid "Mark as read"
+msgstr "Marki legata"
+
+#: front/src/components/notifications/NotificationRow.vue:45
+msgid "Mark as unread"
+msgstr "Marki mallegata"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:281
 msgid "MB"
 msgstr "Mb"
 
-#: front/src/components/Sidebar.vue:63
+#: front/src/components/audio/Player.vue:346
+msgid "Media player"
+msgstr "AÅ­dilo"
+
+#: front/src/components/Footer.vue:32
+msgid "Mobile and desktop apps"
+msgstr "Poŝkomputilaj kaj komputilaj aplikaĵoj"
+
+#: front/src/components/Sidebar.vue:97
+#: src/components/manage/users/UsersTable.vue:177
+#: front/src/views/admin/moderation/AccountsDetail.vue:468
+#: front/src/views/admin/moderation/Base.vue:21
+msgid "Moderation"
+msgstr "Modereco"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:49
+#: front/src/views/admin/moderation/DomainsDetail.vue:42
+msgid "Moderation policies help you control how your instance interact with a given domain or account."
+msgstr ""
+"Moderecaj regularoj helpas vin kontroli kial via instanco interagis kun "
+"domajnon aÅ­ konton."
+
+#: front/src/components/mixins/Translations.vue:20
+#: front/src/components/mixins/Translations.vue:21
+msgid "Modification date"
+msgstr "Modifdato"
+
+#: front/src/components/Sidebar.vue:63 src/views/admin/Settings.vue:82
 msgid "Music"
 msgstr "Muziko"
 
+#: front/src/components/audio/Player.vue:352
+msgid "Mute"
+msgstr "Silentigi"
+
 #: front/src/components/Sidebar.vue:34
 msgid "My account"
 msgstr "Mia konto"
 
+#: front/src/components/library/radios/Builder.vue:236
+msgid "My awesome description"
+msgstr "Mia mojosa priskribo"
+
+#: front/src/views/content/libraries/Form.vue:70
+msgid "My awesome library"
+msgstr "Mia mojosa muzikejo"
+
+#: front/src/components/playlists/Form.vue:74
+msgid "My awesome playlist"
+msgstr "Mia mojosa ludlisto"
+
+#: front/src/components/library/radios/Builder.vue:235
+msgid "My awesome radio"
+msgstr "Mia mojosa radio"
+
 #: front/src/views/content/libraries/Home.vue:6
 msgid "My libraries"
 msgstr "Miaj muzikejoj"
 
 #: front/src/components/audio/track/Row.vue:40
-#: src/components/library/Track.vue:64
-#: front/src/components/library/Track.vue:75
-#: src/components/library/Track.vue:86
-#: front/src/components/library/Track.vue:97
+#: src/components/library/Track.vue:115
+#: front/src/components/library/Track.vue:124
+#: src/components/library/Track.vue:133
+#: front/src/components/library/Track.vue:142
 #: front/src/components/manage/library/FilesTable.vue:63
 #: front/src/components/manage/library/FilesTable.vue:69
 #: front/src/components/manage/library/FilesTable.vue:75
 #: front/src/components/manage/library/FilesTable.vue:81
 #: front/src/components/manage/users/UsersTable.vue:61
-#: front/src/views/admin/users/UsersDetail.vue:49
-#: front/src/views/content/libraries/FilesTable.vue:89
-#: front/src/views/content/libraries/FilesTable.vue:95
+#: front/src/views/admin/moderation/AccountsDetail.vue:171
+#: front/src/views/admin/moderation/DomainsDetail.vue:90
+#: front/src/views/content/libraries/FilesTable.vue:92
+#: front/src/views/content/libraries/FilesTable.vue:98
+#: front/src/views/admin/moderation/DomainsDetail.vue:109
+#: front/src/views/admin/moderation/DomainsDetail.vue:117
 msgid "N/A"
 msgstr "ND"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:39
+#: front/src/components/manage/moderation/DomainsTable.vue:38
+#: front/src/components/mixins/Translations.vue:26
 #: front/src/components/playlists/PlaylistModal.vue:31
-#: front/src/views/admin/users/UsersDetail.vue:21
+#: front/src/views/admin/moderation/DomainsDetail.vue:105
 #: front/src/views/content/libraries/Form.vue:10
-#: front/src/components/mixins/Translations.vue:25
+#: front/src/components/mixins/Translations.vue:27
 msgid "Name"
 msgstr "Nomo"
 
@@ -1068,11 +1586,15 @@ msgstr "Nomo"
 msgid "New password"
 msgstr "Nova pasvorto"
 
-#: front/src/components/Sidebar.vue:149
+#: front/src/components/Sidebar.vue:160
 msgid "New tracks will be appended here automatically."
 msgstr "Novaj kantoj estos aldonataj ĉi-tie aŭtomate."
 
-#: front/src/components/Sidebar.vue:116
+#: front/src/components/audio/Player.vue:350
+msgid "Next track"
+msgstr "BaldaÅ­a kanto"
+
+#: front/src/components/Sidebar.vue:119
 msgid "No"
 msgstr "Ne"
 
@@ -1080,7 +1602,15 @@ msgstr "Ne"
 msgid "No add-ons, no plugins : you only need a web library"
 msgstr "Nek aldonaĵoj, nek kromprogramoj: vi nur bezonas retmuzikejo"
 
-#: front/src/components/library/Track.vue:113
+#: front/src/components/audio/Search.vue:25
+msgid "No album matched your query"
+msgstr "Neniom albumo kongruas kun via serĉo"
+
+#: front/src/components/audio/Search.vue:16
+msgid "No artist matched your query"
+msgstr "Neniom artisto kongruas kun via serĉo"
+
+#: front/src/components/library/Track.vue:158
 msgid "No lyrics available for this track."
 msgstr "Nenio teksto disponeblas por tiu kanto."
 
@@ -1088,6 +1618,17 @@ msgstr "Nenio teksto disponeblas por tiu kanto."
 msgid "No matching library."
 msgstr "Neniu muzikejo korespondas."
 
+#: front/src/views/Notifications.vue:26
+msgid "No notifications yet."
+msgstr "Nenio sciigoj jam."
+
+#: front/src/components/mixins/Translations.vue:10
+#: front/src/components/playlists/Form.vue:81
+#: src/views/content/libraries/Form.vue:72
+#: front/src/components/mixins/Translations.vue:11
+msgid "Nobody except me"
+msgstr "Neniu krom mi"
+
 #: front/src/views/content/libraries/Detail.vue:57
 msgid "Nobody is following this library"
 msgstr "Neniu sekvas tiun muzikejon"
@@ -1100,7 +1641,7 @@ msgstr "Ne uzantata"
 msgid "Notifications"
 msgstr "Sciigoj"
 
-#: front/src/App.vue:36
+#: front/src/components/Footer.vue:47
 msgid "Official website"
 msgstr "Oficiala retejo"
 
@@ -1112,14 +1653,32 @@ msgstr "Malnova pasvorto"
 msgid "Open"
 msgstr "Malferma"
 
-#: front/src/App.vue:62
-msgid "Options"
-msgstr "Preferoj"
+#: front/src/views/admin/moderation/AccountsDetail.vue:23
+msgid "Open profile"
+msgstr "Malfermi profilon"
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:16
+msgid "Open website"
+msgstr "Malfermi retejon"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:40
+msgid "Or customize your rule"
+msgstr "AÅ­ agordi vian regulon"
+
+#: front/src/components/favorites/List.vue:31
+#: src/components/library/Radios.vue:41
+#: front/src/components/manage/library/FilesTable.vue:17
+#: front/src/components/manage/users/UsersTable.vue:17
+#: front/src/views/playlists/List.vue:25
+msgid "Order"
+msgstr "Ordo"
 
 #: front/src/components/favorites/List.vue:23
 #: src/components/library/Artists.vue:15
 #: front/src/components/library/Radios.vue:33
 #: front/src/components/manage/library/FilesTable.vue:9
+#: front/src/components/manage/moderation/AccountsTable.vue:11
+#: front/src/components/manage/moderation/DomainsTable.vue:9
 #: front/src/components/manage/users/InvitationsTable.vue:9
 #: front/src/components/manage/users/UsersTable.vue:9
 #: front/src/views/content/libraries/FilesTable.vue:21
@@ -1127,13 +1686,10 @@ msgstr "Preferoj"
 msgid "Ordering"
 msgstr "Ordo"
 
-#: front/src/components/favorites/List.vue:31
-#: src/components/library/Artists.vue:23
-#: front/src/components/library/Radios.vue:41
-#: front/src/components/manage/library/FilesTable.vue:17
-#: front/src/components/manage/users/UsersTable.vue:17
+#: front/src/components/library/Artists.vue:23
+#: front/src/components/manage/moderation/AccountsTable.vue:19
+#: front/src/components/manage/moderation/DomainsTable.vue:17
 #: front/src/views/content/libraries/FilesTable.vue:29
-#: front/src/views/playlists/List.vue:25
 msgid "Ordering direction"
 msgstr "Orda direkto"
 
@@ -1141,21 +1697,45 @@ msgstr "Orda direkto"
 msgid "Owner"
 msgstr "Proprietulo"
 
+#: front/src/components/PageNotFound.vue:33
+msgid "Page Not Found"
+msgstr "Maltrovita paĝo"
+
 #: front/src/components/PageNotFound.vue:7
 msgid "Page not found!"
 msgstr "Maltrovitas paĝon!"
 
+#: front/src/components/Pagination.vue:39
+msgid "Pagination"
+msgstr "Paĝeco"
+
 #: front/src/components/auth/Login.vue:32 src/components/auth/Signup.vue:38
 msgid "Password"
 msgstr "Pasvorto"
 
+#: front/src/components/auth/SubsonicTokenForm.vue:95
+msgid "Password updated"
+msgstr "Pasvorto aktuliginta"
+
 #: front/src/views/auth/PasswordResetConfirm.vue:28
 msgid "Password updated successfully"
 msgstr "Pasvorto sukcese aktualiginta"
 
-#: front/src/components/library/FileUpload.vue:105
+#: front/src/components/audio/Player.vue:349
+msgid "Pause track"
+msgstr "PaÅ­zi kanton"
+
+#: front/src/components/ShortcutsModal.vue:59
+msgid "Pause/play the current track"
+msgstr "PaÅ­zi/ludi la aktualan kanton"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:12
+msgid "Paused"
+msgstr "PaÅ­za"
+
+#: front/src/components/library/FileUpload.vue:106
 #: front/src/views/content/libraries/FilesTable.vue:14
-#: front/src/views/content/libraries/FilesTable.vue:233
+#: front/src/views/content/libraries/FilesTable.vue:208
 msgid "Pending"
 msgstr "Atendas"
 
@@ -1167,23 +1747,24 @@ msgstr "Atendas aprobon"
 msgid "Pending files"
 msgstr "Atendantaj dosieroj"
 
-#: front/src/components/requests/Form.vue:26
-msgid "Pending requests"
-msgstr "Atendantaj petoj"
+#: front/src/components/Sidebar.vue:212
+msgid "Pending follow requests"
+msgstr "Atendantaj petoj da sekvado"
 
 #: front/src/components/manage/users/UsersTable.vue:42
-#: front/src/views/admin/users/UsersDetail.vue:68
+#: front/src/views/admin/moderation/AccountsDetail.vue:137
 msgid "Permissions"
 msgstr "Rajtoj"
 
 #: front/src/components/audio/PlayButton.vue:9
-#: src/components/library/Track.vue:30
+#: src/components/library/Track.vue:40
 msgid "Play"
 msgstr "Ludi"
 
 #: front/src/components/audio/album/Card.vue:50
 #: front/src/components/audio/artist/Card.vue:44
-#: src/components/library/Album.vue:28 front/src/views/playlists/Detail.vue:23
+#: src/components/library/Album.vue:28
+#: front/src/components/library/Album.vue:73 src/views/playlists/Detail.vue:23
 msgid "Play all"
 msgstr "Ludi ĉiu"
 
@@ -1192,13 +1773,36 @@ msgid "Play all albums"
 msgstr "Ludi ĉiuj albumoj"
 
 #: front/src/components/audio/PlayButton.vue:15
+#: front/src/components/audio/PlayButton.vue:65
 msgid "Play next"
 msgstr "Ludi baldaÅ­e"
 
+#: front/src/components/ShortcutsModal.vue:67
+msgid "Play next track"
+msgstr "Ludi sekvan kanton"
+
 #: front/src/components/audio/PlayButton.vue:16
+#: front/src/components/audio/PlayButton.vue:63
+#: front/src/components/audio/PlayButton.vue:70
 msgid "Play now"
 msgstr "Ludi tuj"
 
+#: front/src/components/ShortcutsModal.vue:63
+msgid "Play previous track"
+msgstr "Ludi antaÅ­a kanto"
+
+#: front/src/components/Sidebar.vue:211
+msgid "Play this track"
+msgstr "Ludi tiun kanton"
+
+#: front/src/components/audio/Player.vue:348
+msgid "Play track"
+msgstr "Ludi kanton"
+
+#: front/src/views/playlists/Detail.vue:90
+msgid "Playlist"
+msgstr "Ludlisto"
+
 #: front/src/views/playlists/Detail.vue:12
 msgid "Playlist containing %{ count } track, by %{ username }"
 msgid_plural "Playlist containing %{ count } tracks, by %{ username }"
@@ -1226,8 +1830,8 @@ msgid "Playlist visibility"
 msgstr "Ludlistvideblo"
 
 #: front/src/components/Sidebar.vue:71 src/components/library/Home.vue:16
-#: front/src/components/library/Library.vue:13 src/views/playlists/List.vue:104
-#: front/src/views/admin/Settings.vue:82
+#: front/src/components/library/Library.vue:13 src/views/admin/Settings.vue:83
+#: front/src/views/playlists/List.vue:106
 msgid "Playlists"
 msgstr "Ludlistoj"
 
@@ -1247,6 +1851,22 @@ msgstr "Bonvolu rekontroli ke vian uzantnomo kaj pasvorto ĝustas"
 msgid "PNG, GIF or JPG. At most 2MB. Will be downscaled to 400x400px."
 msgstr "PNG, GIF, aŭ JPG. Maksimume 2Mo. La bildo malgrandigos al 400×400 rastrumero."
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:118
+msgid "Prevent account or domain from triggering notifications, except from followers."
+msgstr "Preventi konton aÅ­ domajno de sendi sciigoj, krom el sekvantoj."
+
+#: front/src/components/audio/EmbedWizard.vue:29
+msgid "Preview"
+msgstr "AntaÅ­vido"
+
+#: front/src/components/audio/Player.vue:347
+msgid "Previous track"
+msgstr "AntaÅ­a kanto"
+
+#: front/src/views/content/remote/Card.vue:39
+msgid "Problem during scanning"
+msgstr "Eraro dum skano"
+
 #: front/src/components/library/FileUpload.vue:58
 msgid "Proceed"
 msgstr "Konfirmi"
@@ -1260,6 +1880,8 @@ msgstr "Ensalutu"
 msgid "Processing"
 msgstr "Procedas"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:188
+#: front/src/components/manage/moderation/DomainsTable.vue:168
 #: front/src/views/content/libraries/Quota.vue:36
 #: front/src/views/content/libraries/Quota.vue:39
 #: front/src/views/content/libraries/Quota.vue:62
@@ -1285,6 +1907,18 @@ msgstr "Purigi ignoratajn dosierojn?"
 msgid "Queue"
 msgstr "Atendovico"
 
+#: front/src/components/audio/Player.vue:282
+msgid "Queue shuffled!"
+msgstr "Atendovico miksiĝis!"
+
+#: front/src/views/radios/Detail.vue:80
+msgid "Radio"
+msgstr "Radio"
+
+#: front/src/components/library/radios/Builder.vue:233
+msgid "Radio Builder"
+msgstr "Faranto de radio"
+
 #: front/src/components/library/radios/Builder.vue:15
 msgid "Radio created"
 msgstr "Kreis radion"
@@ -1298,13 +1932,25 @@ msgid "Radio updated"
 msgstr "Äœisdatigas radion"
 
 #: front/src/components/library/Library.vue:10
-#: src/components/library/Radios.vue:142
+#: src/components/library/Radios.vue:141
 msgid "Radios"
 msgstr "Radioj"
 
-#: front/src/views/instance/Timeline.vue:7
-msgid "Recent activity on this instance"
-msgstr "Nova agado en ĉi-tiu instanco"
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:39
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:25
+msgid "Reason"
+msgstr "Kialo"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:222
+#: front/src/views/admin/moderation/DomainsDetail.vue:179
+msgid "Received library follows"
+msgstr "Ricevintaj sekvadoj de muzikejo"
+
+#: front/src/components/manage/moderation/DomainsTable.vue:40
+#: front/src/components/mixins/Translations.vue:36
+#: front/src/components/mixins/Translations.vue:37
+msgid "Received messages"
+msgstr "Ricevintaj mesaĝoj"
 
 #: front/src/components/library/Home.vue:24
 msgid "Recently added"
@@ -1318,11 +1964,18 @@ msgstr "Novaj stelumoj"
 msgid "Recently listened"
 msgstr "Lastatempaj aÅ­skultantoj"
 
-#: front/src/views/admin/users/UsersDetail.vue:103
 #: front/src/views/content/remote/Home.vue:15
 msgid "Refresh"
 msgstr "Äœisdatigi"
 
+#: front/src/views/admin/moderation/DomainsDetail.vue:135
+msgid "Refresh node info"
+msgstr "Aktualigi instancinformon"
+
+#: front/src/components/common/ActionTable.vue:272
+msgid "Refresh table content"
+msgstr "Aktualiĝi datumon de tabelo"
+
 #: front/src/components/auth/Profile.vue:12
 msgid "Registered since %{ date }"
 msgstr "Aligis je %{date}"
@@ -1339,10 +1992,19 @@ msgstr "normala uzanto"
 msgid "Reject"
 msgstr "Malakcepti"
 
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:32
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:123
+msgid "Reject media"
+msgstr "Malakcepti aŭdovidaĵon"
+
 #: front/src/views/content/libraries/Detail.vue:43
 msgid "Rejected"
 msgstr "Malakceptinta"
 
+#: front/src/views/content/libraries/FilesTable.vue:234
+msgid "Relaunch import"
+msgstr "Rekomenci importadon"
+
 #: front/src/views/content/remote/Home.vue:6
 msgid "Remote libraries"
 msgstr "Mallokaj muzikejoj"
@@ -1359,6 +2021,27 @@ msgstr "Forigi"
 msgid "Remove avatar"
 msgstr "Forigi profilbildon"
 
+#: front/src/components/favorites/TrackFavoriteIcon.vue:26
+msgid "Remove from favorites"
+msgstr "Forigi el stelumoj"
+
+#: front/src/views/content/libraries/Quota.vue:38
+msgid "Removes uploaded but yet to be processed tracks completely, adding the corresponding data to your quota."
+msgstr ""
+"Forigas elŝutatajn sed jam procezontajn kantojn, aldonante tiu datumo al via "
+"kvoto."
+
+#: front/src/views/content/libraries/Quota.vue:64
+msgid "Removes uploaded tracks skipped during the import processes completely, adding the corresponding data to your quota."
+msgstr ""
+"Forigas elŝutatajn preterlasinta kantojn, aldonante tiu datumo al via kvoto."
+
+#: front/src/views/content/libraries/Quota.vue:90
+msgid "Removes uploaded tracks that could not be processed by the server completely, adding the corresponding data to your quota."
+msgstr ""
+"Forigas elŝutatajn kantojn ke la servilo ne povis procezi, aldonante tiu "
+"datumo al via kvoto."
+
 #: front/src/components/auth/SubsonicTokenForm.vue:34
 #: front/src/components/auth/SubsonicTokenForm.vue:37
 msgid "Request a new password"
@@ -1372,11 +2055,8 @@ msgstr "Demandi novan Subsonic API pasvorton?"
 msgid "Request a password"
 msgstr "Demandi pasvorton"
 
-#: front/src/components/requests/Form.vue:20
-msgid "Request submitted!"
-msgstr "Demando sendinta!"
-
 #: front/src/components/auth/Login.vue:34 src/views/auth/PasswordReset.vue:4
+#: front/src/views/auth/PasswordReset.vue:52
 msgid "Reset your password"
 msgstr "Renuligadi vian pasvorton"
 
@@ -1386,30 +2066,52 @@ msgstr "Renuligadi vian pasvorton"
 msgid "Results per page"
 msgstr "Rezultoj per paĝo"
 
+#: front/src/views/auth/EmailConfirm.vue:17
+msgid "Return to login"
+msgstr "Reiru al ensalutpaĝo"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:16
+msgid "Rule"
+msgstr "Regulo"
+
 #: front/src/components/admin/SettingsGroup.vue:63
 #: front/src/components/library/radios/Builder.vue:33
 msgid "Save"
 msgstr "Konservi"
 
+#: front/src/views/content/remote/Card.vue:165
+msgid "Scan launched"
+msgstr "Skano komencis"
+
+#: front/src/views/content/remote/Card.vue:63
+msgid "Scan now"
+msgstr "Skani nun"
+
+#: front/src/views/content/remote/Card.vue:166
+msgid "Scan skipped (previous scan is too recent)"
+msgstr "Preterlasis skanon (antaÅ­a skano tro junas)"
+
 #: front/src/views/content/remote/Card.vue:31
-msgid "Scan pending"
-msgstr "Atendanta skano"
+msgid "Scan waiting"
+msgstr "Skano atendas"
 
 #: front/src/views/content/remote/Card.vue:43
-msgid "Scanned successfully"
-msgstr "Sukcese skanis"
+msgid "Scanned"
+msgstr "Skana"
 
 #: front/src/views/content/remote/Card.vue:47
 msgid "Scanned with errors"
 msgstr "Malsukcese skanis"
 
 #: front/src/views/content/remote/Card.vue:35
-msgid "Scanning... (%{ progress }%)"
+msgid "Scanning… (%{ progress }%)"
 msgstr "Skanas… (%{progress}%)"
 
 #: front/src/components/library/Artists.vue:10
 #: src/components/library/Radios.vue:29
 #: front/src/components/manage/library/FilesTable.vue:5
+#: front/src/components/manage/moderation/AccountsTable.vue:5
+#: front/src/components/manage/moderation/DomainsTable.vue:5
 #: front/src/components/manage/users/InvitationsTable.vue:5
 #: front/src/components/manage/users/UsersTable.vue:5
 #: front/src/views/content/libraries/FilesTable.vue:5
@@ -1421,20 +2123,55 @@ msgstr "Serĉi"
 msgid "Search a remote library"
 msgstr "Serĉi mallokan muzikejon"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:171
+msgid "Search by domain, username, bio..."
+msgstr "Serĉu per domajno, uzantnomo, biografio…"
+
+#: front/src/components/manage/moderation/DomainsTable.vue:151
+msgid "Search by name..."
+msgstr "Serĉu per nomo…"
+
+#: front/src/views/content/libraries/FilesTable.vue:201
+msgid "Search by title, artist, album…"
+msgstr "Serĉu per titolo, artisto, albumo…"
+
+#: front/src/components/manage/library/FilesTable.vue:176
+msgid "Search by title, artist, domain…"
+msgstr "Serĉu per titolo, artisto, domajno…"
+
+#: front/src/components/manage/users/InvitationsTable.vue:153
+msgid "Search by username, e-mail address, code…"
+msgstr "Serĉu per uzantnomo, retpoŝtdreso, kodo…"
+
+#: front/src/components/manage/users/UsersTable.vue:163
+msgid "Search by username, e-mail address, name…"
+msgstr "Serĉu per uzantnomo, retpoŝtadreso, nomo…"
+
+#: front/src/components/audio/SearchBar.vue:20
+msgid "Search for artists, albums, tracks…"
+msgstr "Serĉu artistoj, albumoj, kantoj…"
+
 #: front/src/components/audio/Search.vue:2
 msgid "Search for some music"
 msgstr "Serĉi muzikon"
 
-#: front/src/components/library/Track.vue:116
+#: front/src/components/library/Track.vue:162
 msgid "Search on lyrics.wikia.com"
 msgstr "Serĉi je lyrics.wikia.com"
 
 #: front/src/components/library/Album.vue:33
 #: src/components/library/Artist.vue:31
-#: front/src/components/library/Track.vue:40
+#: front/src/components/library/Track.vue:47
 msgid "Search on Wikipedia"
 msgstr "Serĉi je Vikipedio"
 
+#: front/src/components/library/Library.vue:32
+#: src/views/admin/library/Base.vue:17
+#: front/src/views/admin/moderation/Base.vue:22
+#: src/views/admin/users/Base.vue:21 front/src/views/content/Base.vue:19
+msgid "Secondary menu"
+msgstr "Dua menuo"
+
 #: front/src/views/admin/Settings.vue:15
 msgid "Sections"
 msgstr "Sekcioj"
@@ -1443,19 +2180,19 @@ msgstr "Sekcioj"
 msgid "Select a filter"
 msgstr "Elekti filtrilon"
 
-#: front/src/components/common/ActionTable.vue:64
+#: front/src/components/common/ActionTable.vue:77
 msgid "Select all %{ total } elements"
 msgid_plural "Select all %{ total } elements"
 msgstr[0] "Elekti unu eron"
 msgstr[1] "Elekti ĉiun la %{total} erojn"
 
-#: front/src/components/common/ActionTable.vue:73
+#: front/src/components/common/ActionTable.vue:86
 msgid "Select only current page"
 msgstr "Elekti nur la aktualan uzon"
 
-#: front/src/components/Sidebar.vue:43 src/components/Sidebar.vue:88
-#: front/src/components/manage/users/UsersTable.vue:185
-#: front/src/views/admin/users/UsersDetail.vue:189
+#: front/src/components/Sidebar.vue:43 src/components/Sidebar.vue:85
+#: front/src/components/manage/users/UsersTable.vue:181
+#: front/src/views/admin/moderation/AccountsDetail.vue:472
 msgid "Settings"
 msgstr "Agordoj"
 
@@ -1472,1130 +2209,779 @@ msgid "Share link"
 msgstr "Diskonigi ligilon"
 
 #: front/src/views/content/libraries/Detail.vue:15
-msgid "Share this link with other users so they can request an access to your library."
+msgid "Share this link with other users so they can request access to your library."
 msgstr ""
+"Diskonigu tiu ligilo kun aliaj uzantoj, do ili povas peti atingon al via "
+"muzikejo."
 
 #: front/src/views/content/libraries/Detail.vue:14
 #: front/src/views/content/remote/Card.vue:73
 msgid "Sharing link"
-msgstr ""
+msgstr "Diskoniga ligilo"
 
 #: front/src/components/audio/album/Card.vue:40
-#, fuzzy
 msgid "Show %{ count } more track"
 msgid_plural "Show %{ count } more tracks"
-msgstr[0] "%{count} kanto"
-msgstr[1] "%{count} kantoj"
+msgstr[0] "Afiŝi %{count} kanto"
+msgstr[1] "Afŝi %{count} kantoj"
 
 #: front/src/components/audio/artist/Card.vue:30
 msgid "Show 1 more album"
 msgid_plural "Show %{ count } more albums"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Afiŝi unu alian albumon"
+msgstr[1] "Afiŝi %{count} aliajn albumojn"
+
+#: front/src/components/ShortcutsModal.vue:42
+msgid "Show available keyboard shortcuts"
+msgstr "Afiŝi disponeblajn fulmoklavojn"
 
 #: front/src/views/Notifications.vue:10
-#, fuzzy
 msgid "Show read notifications"
-msgstr "Lasta redakto"
+msgstr "Afiŝi mallegintajn sciigojn"
+
+#: front/src/components/forms/PasswordInput.vue:25
+msgid "Show/hide password"
+msgstr "Afiŝi/kaŝi pasvorton"
 
 #: front/src/components/manage/library/FilesTable.vue:97
+#: front/src/components/manage/moderation/AccountsTable.vue:88
+#: front/src/components/manage/moderation/DomainsTable.vue:74
 #: front/src/components/manage/users/InvitationsTable.vue:76
 #: front/src/components/manage/users/UsersTable.vue:87
-#: front/src/views/content/libraries/FilesTable.vue:111
+#: front/src/views/content/libraries/FilesTable.vue:114
 msgid "Showing results %{ start }-%{ end } on %{ total }"
-msgstr ""
+msgstr "Afiŝas rezultoj de %{start} al %{end} de %{total}"
+
+#: front/src/components/ShortcutsModal.vue:83
+msgid "Shuffle queue"
+msgstr "Miksi atendocivo"
+
+#: front/src/components/audio/Player.vue:362
+msgid "Shuffle your queue"
+msgstr "Miksi vian atendovico"
+
+#: front/src/components/auth/Signup.vue:95
+msgid "Sign Up"
+msgstr "Registriĝi"
 
 #: front/src/components/manage/users/UsersTable.vue:40
-#: front/src/views/admin/users/UsersDetail.vue:37
 msgid "Sign-up"
-msgstr ""
+msgstr "Registriĝi"
 
-#: front/src/components/library/FileUpload.vue:84
-#: src/components/library/Track.vue:69
+#: front/src/components/mixins/Translations.vue:31
+#: front/src/views/admin/moderation/AccountsDetail.vue:176
+#: front/src/components/mixins/Translations.vue:32
+msgid "Sign-up date"
+msgstr "Registrada dato"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:24
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:115
+msgid "Silence activity"
+msgstr "Mutigi akto"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:28
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:119
+msgid "Silence notifications"
+msgstr "Mutigi sciigojn"
+
+#: front/src/components/library/FileUpload.vue:85
+#: front/src/components/library/Track.vue:120
 #: front/src/components/manage/library/FilesTable.vue:44
-#: front/src/views/content/libraries/FilesTable.vue:57
-#: front/src/components/mixins/Translations.vue:27
+#: front/src/components/mixins/Translations.vue:28
+#: front/src/views/content/libraries/FilesTable.vue:60
+#: front/src/components/mixins/Translations.vue:29
 msgid "Size"
-msgstr ""
+msgstr "Grando"
 
 #: front/src/views/content/libraries/FilesTable.vue:15
-#: front/src/views/content/libraries/FilesTable.vue:229
+#: front/src/views/content/libraries/FilesTable.vue:204
 msgid "Skipped"
-msgstr ""
+msgstr "Preterlasinta"
 
 #: front/src/views/content/libraries/Quota.vue:49
 msgid "Skipped files"
-msgstr ""
-
-#: front/src/components/requests/Form.vue:3
-msgid "Something's missing in the library? Let us know what you would like to listen!"
-msgstr ""
-
-#: front/src/components/audio/Search.vue:25
-msgid "Sorry, we did not found any album matching your query"
-msgstr ""
+msgstr "Preterlasintaj dosieroj"
 
-#: front/src/components/audio/Search.vue:16
-msgid "Sorry, we did not found any artist matching your query"
-msgstr ""
+#: front/src/views/admin/moderation/DomainsDetail.vue:97
+msgid "Software"
+msgstr "Aplikaĵo"
 
-#: front/src/App.vue:40
+#: front/src/components/Footer.vue:49
 msgid "Source code"
-msgstr ""
-
-#: front/src/App.vue:39
-msgid "Source code (%{version})"
-msgstr ""
+msgstr "Fontkodo"
 
 #: front/src/components/auth/Profile.vue:23
 #: front/src/components/manage/users/UsersTable.vue:70
 msgid "Staff member"
-msgstr ""
+msgstr "Skipano"
 
 #: front/src/components/radios/Button.vue:4
 msgid "Start"
+msgstr "Komenci"
+
+#: front/src/views/admin/Settings.vue:86
+msgid "Statistics"
+msgstr "Statistikoj"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:454
+msgid "Statistics are computed from known activity and content on your instance, and do not reflect general activity for this account"
 msgstr ""
+"Statistikoj estas kalkula el konata aktiveco kaj datumoj de via instanco, "
+"kaj ne kongruas la generalan aktivecon de tiu konto"
 
-#: front/src/components/library/FileUpload.vue:85
+#: front/src/views/admin/moderation/DomainsDetail.vue:358
+msgid "Statistics are computed from known activity and content on your instance, and do not reflect general activity for this domain"
+msgstr ""
+"Statistikoj estas kalkula el konata aktiveco kaj datumoj de via instanco, "
+"kaj ne kongruas la generalan aktivecon de tiu domajno"
+
+#: front/src/components/library/FileUpload.vue:86
 #: front/src/components/manage/users/InvitationsTable.vue:17
 #: front/src/components/manage/users/InvitationsTable.vue:39
 #: front/src/components/manage/users/UsersTable.vue:43
+#: front/src/views/admin/moderation/DomainsDetail.vue:123
 #: front/src/views/content/libraries/Detail.vue:28
 msgid "Status"
-msgstr ""
+msgstr "Stato"
 
 #: front/src/components/radios/Button.vue:3
 msgid "Stop"
-msgstr ""
+msgstr "Stopi"
 
-#: front/src/components/Sidebar.vue:150
+#: front/src/components/Sidebar.vue:161
 msgid "Stop radio"
-msgstr ""
+msgstr "Stopi radion"
 
-#: front/src/App.vue:11 src/components/requests/Form.vue:17
+#: front/src/App.vue:22
 msgid "Submit"
-msgstr ""
+msgstr "Submeti"
 
-#: front/src/components/requests/Form.vue:22
-msgid "Submit another request"
-msgstr ""
+#: front/src/views/admin/Settings.vue:85
+msgid "Subsonic"
+msgstr "Subsono"
 
 #: front/src/components/auth/SubsonicTokenForm.vue:2
 msgid "Subsonic API password"
-msgstr ""
+msgstr "Subsona API pasvorto"
 
-#: front/src/App.vue:13
+#: front/src/App.vue:26
 msgid "Suggested choices"
-msgstr ""
+msgstr "Sugestaj elektoj"
 
 #: front/src/components/library/FileUpload.vue:3
 msgid "Summary"
-msgstr ""
+msgstr "Resumo"
+
+#: front/src/components/Footer.vue:39
+msgid "Support forum"
+msgstr "Helpretejo"
+
+#: front/src/components/library/FileUpload.vue:78
+msgid "Supported extensions: %{ extensions }"
+msgstr "Funkcianta sufikso: %{extensions}"
 
 #: front/src/components/playlists/Editor.vue:9
-msgid "Syncing changes to server..."
-msgstr ""
+msgid "Syncing changes to server…"
+msgstr "Sinkronigas ŝanĝojn al servilo…"
 
 #: front/src/components/common/CopyInput.vue:3
 msgid "Text copied to clipboard!"
-msgstr ""
+msgstr "Kopiis teksto al tondujo!"
 
 #: front/src/components/Home.vue:26
 msgid "That's simple: we loved Grooveshark and we want to build something even better."
-msgstr ""
+msgstr "Simplas: ni amis Grooveshark kaj ni volas konstrui iu plue bona."
 
-#: front/src/App.vue:58
+#: front/src/components/Footer.vue:53
 msgid "The funkwhale logo was kindly designed and provided by Francis Gading."
-msgstr ""
+msgstr "La emblemo de Funkwhale estis dizajni kaj disponigi je Francis Gading."
 
 #: front/src/views/content/libraries/Form.vue:34
-msgid "The library and all its tracks will be deleted. This action is irreversible."
-msgstr ""
+msgid "The library and all its tracks will be deleted. This can not be undone."
+msgstr "La muzikejo kaj ĉiuj ĝiaj kantoj forigos. Ne povos malfari."
 
 #: front/src/components/library/FileUpload.vue:39
 msgid "The music files you are uploading are tagged properly:"
-msgstr ""
+msgstr "La muzika dosiero vi elŝutas bone etikedas:"
+
+#: front/src/components/audio/Player.vue:67
+msgid "The next track will play automatically in a few seconds..."
+msgstr "La sekva kanto ludos aŭtomate je kelkajn sekundoj…"
 
 #: front/src/components/Home.vue:121
 msgid "The plaform is free and open-source, you can install it and modify it without worries"
 msgstr ""
+"La platformo estas libera kaj malfermitkoda, vi povas instali ĝin malzorge"
 
 #: front/src/components/auth/SubsonicTokenForm.vue:4
 msgid "The Subsonic API is not available on this Funkwhale instance."
-msgstr ""
+msgstr "La Subsona API ne disponeblas en tiu Funkwhale instanco."
 
 #: front/src/components/library/FileUpload.vue:43
 msgid "The uploaded music files are in OGG, Flac or MP3 format"
-msgstr ""
+msgstr "La elŝutintaj muzikaj dosieroj estas OGG, Flac aŭ MP3"
+
+#: front/src/views/content/Home.vue:4
+msgid "There are various ways to grab new content and make it available here."
+msgstr "Estas multe vojoj akiri novan datumon kaj aldoni ĉi-tie."
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:66
+msgid "This action is irreversible."
+msgstr "Tiu akto ne estas malfaronta."
 
-#: front/src/components/library/Album.vue:52
+#: front/src/components/library/Album.vue:91
 msgid "This album is present in the following libraries:"
-msgstr ""
+msgstr "Tiu albumo estas en ĉi-tiuj muzikejoj:"
 
 #: front/src/components/library/Artist.vue:63
 msgid "This artist is present in the following libraries:"
-msgstr ""
+msgstr "Tiu artisto estas en ĉi-tiuj muzikejoj:"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:55
+#: front/src/views/admin/moderation/DomainsDetail.vue:48
+msgid "This domain is subject to specific moderation rules"
+msgstr "Tiu domajno havas specialajn moderecajn regulojn"
 
 #: front/src/views/content/Home.vue:9
-msgid "This instance offers up to %{quota} of storage space to every user."
-msgstr ""
+msgid "This instance offers up to %{quota} of storage space for every user."
+msgstr "Tiu instanco oferi ĝis %{quota} de memorado per uzanto."
 
 #: front/src/components/auth/Profile.vue:16
 msgid "This is you!"
-msgstr ""
+msgstr "Estas vin!"
 
-#: front/src/components/common/ActionTable.vue:38
-msgid "This may affect a lot of elements, please double check this is really what you want."
-msgstr ""
+#: front/src/views/content/libraries/Form.vue:71
+msgid "This library contains my personal music, I hope you like it."
+msgstr "Tiu muzikejo enhavas mian personan muzikon, mi esperas vi ŝatas ĝin."
+
+#: front/src/views/content/remote/Card.vue:131
+msgid "This library is private and your approval from its owner is needed to access its content"
+msgstr ""
+"Tiu muzikejo estas privata kaj vi bezonas akceptadon el ĝia proprulo por "
+"vidi ĝia enhavo"
+
+#: front/src/views/content/remote/Card.vue:132
+msgid "This library is public and you can access its content freely"
+msgstr "Tiu muzikejo estas publika do vi povas vidi ĝia enhavo libere"
+
+#: front/src/components/common/ActionTable.vue:45
+msgid "This may affect a lot of elements or have irreversible consequences, please double check this is really what you want."
+msgstr ""
+"Tiu efektus multe da ero aÅ­ havus malfarontajn konsekvencojn, bonvolu "
+"recertiĝi vi vere volas tiun."
 
 #: front/src/components/library/FileUpload.vue:52
 msgid "This reference will be used to group imported files together."
-msgstr ""
+msgstr "Tiu referenco estus uzonta por grupigi importadajn dosierojn kune."
 
-#: front/src/components/library/Track.vue:125
+#: front/src/components/audio/PlayButton.vue:73
+msgid "This track is not available in any library you have access to"
+msgstr "Tiu kanto ne disponeblas en iu aj muzikejo vi povas atingi"
+
+#: front/src/components/library/Track.vue:171
 msgid "This track is present in the following libraries:"
-msgstr ""
+msgstr "Tiu kanto ne estas en ĉi-tiu muzikejoj:"
 
 #: front/src/views/playlists/Detail.vue:37
 msgid "This will completely delete this playlist and cannot be undone."
-msgstr ""
+msgstr "Tute forigos tiun ludliston kaj ne povus esti malfaronta."
 
 #: front/src/views/radios/Detail.vue:27
 msgid "This will completely delete this radio and cannot be undone."
-msgstr ""
+msgstr "Tute forigos tiun radion kaj ne povus esti malfaronta."
 
 #: front/src/components/auth/SubsonicTokenForm.vue:51
 msgid "This will completely disable access to the Subsonic API using from account."
-msgstr ""
+msgstr "Tute malaktivas atingo al la subsona API el tiu konto."
 
-#: front/src/App.vue:162 src/components/About.vue:55
-#: src/components/Home.vue:154 front/src/components/PageNotFound.vue:33
-#: src/components/Sidebar.vue:203 front/src/components/Sidebar.vue:204
-#: src/components/audio/PlayButton.vue:54
-#: front/src/components/audio/PlayButton.vue:55
-#: front/src/components/audio/PlayButton.vue:56
-#: front/src/components/audio/PlayButton.vue:61
-#: front/src/components/audio/PlayButton.vue:64
-#: front/src/components/audio/PlayButton.vue:158
-#: src/components/audio/Player.vue:216
-#: front/src/components/audio/Player.vue:273
-#: src/components/audio/Player.vue:274
-#: front/src/components/audio/Player.vue:275
-#: src/components/audio/Player.vue:276
-#: front/src/components/audio/Player.vue:277
-#: src/components/audio/Player.vue:278
-#: front/src/components/audio/Player.vue:279
-#: src/components/audio/Player.vue:280
-#: front/src/components/audio/Player.vue:281
-#: src/components/audio/Player.vue:282
-#: front/src/components/audio/Player.vue:283 src/components/audio/Search.vue:65
-#: front/src/components/audio/SearchBar.vue:20
-#: src/components/audio/SearchBar.vue:25
-#: front/src/components/audio/SearchBar.vue:26
-#: src/components/audio/SearchBar.vue:27 front/src/components/auth/Login.vue:77
-#: src/components/auth/Login.vue:78 front/src/components/auth/Logout.vue:20
-#: src/components/auth/Profile.vue:47
-#: front/src/components/auth/Settings.vue:249 src/components/auth/Signup.vue:95
-#: front/src/components/auth/Signup.vue:96 src/components/auth/Signup.vue:97
-#: front/src/components/auth/Signup.vue:98
-#: front/src/components/auth/SubsonicTokenForm.vue:95
-#: front/src/components/auth/SubsonicTokenForm.vue:111
-#: front/src/components/favorites/List.vue:110
-#: front/src/components/favorites/TrackFavoriteIcon.vue:19
-#: front/src/components/favorites/TrackFavoriteIcon.vue:21
-#: front/src/components/forms/PasswordInput.vue:25
-#: front/src/components/library/Album.vue:101
-#: src/components/library/Artist.vue:129
-#: front/src/components/library/Artists.vue:119
-#: front/src/components/library/Artists.vue:120
-#: front/src/components/library/FileUpload.vue:238
-#: front/src/components/library/FileUpload.vue:239
-#: front/src/components/library/FileUpload.vue:240
-#: front/src/components/library/FileUpload.vue:241
-#: src/components/library/Home.vue:65
-#: front/src/components/library/Radios.vue:141
-#: src/components/library/Radios.vue:142
-#: front/src/components/library/Track.vue:195
-#: front/src/components/library/radios/Builder.vue:233
-#: front/src/components/library/radios/Builder.vue:235
-#: front/src/components/library/radios/Builder.vue:236
-#: front/src/components/manage/library/FilesTable.vue:176
-#: front/src/components/manage/library/FilesTable.vue:190
-#: front/src/components/manage/users/InvitationForm.vue:58
-#: front/src/components/manage/users/InvitationsTable.vue:153
-#: front/src/components/manage/users/InvitationsTable.vue:167
-#: front/src/components/manage/users/UsersTable.vue:163
-#: front/src/components/manage/users/UsersTable.vue:173
-#: front/src/components/manage/users/UsersTable.vue:177
-#: front/src/components/manage/users/UsersTable.vue:181
-#: front/src/components/manage/users/UsersTable.vue:185
-#: front/src/components/metadata/ArtistCard.vue:49
-#: front/src/components/metadata/ReleaseCard.vue:53
-#: front/src/components/metadata/Search.vue:114
-#: front/src/components/metadata/Search.vue:130
-#: front/src/components/metadata/Search.vue:134
-#: front/src/components/metadata/Search.vue:138
-#: front/src/components/mixins/Translations.vue:7
-#: front/src/components/mixins/Translations.vue:8
-#: front/src/components/mixins/Translations.vue:10
-#: front/src/components/mixins/Translations.vue:11
-#: front/src/components/mixins/Translations.vue:16
-#: front/src/components/mixins/Translations.vue:17
-#: front/src/components/mixins/Translations.vue:18
-#: front/src/components/mixins/Translations.vue:19
-#: front/src/components/mixins/Translations.vue:20
-#: front/src/components/mixins/Translations.vue:21
-#: front/src/components/mixins/Translations.vue:22
-#: front/src/components/mixins/Translations.vue:23
-#: front/src/components/mixins/Translations.vue:24
-#: front/src/components/mixins/Translations.vue:25
-#: front/src/components/mixins/Translations.vue:26
-#: front/src/components/mixins/Translations.vue:27
-#: front/src/components/mixins/Translations.vue:28
-#: front/src/components/mixins/Translations.vue:29
-#: front/src/components/mixins/Translations.vue:30
-#: front/src/components/mixins/Translations.vue:31
-#: front/src/components/notifications/NotificationRow.vue:39
-#: front/src/components/notifications/NotificationRow.vue:40
-#: front/src/components/notifications/NotificationRow.vue:44
-#: front/src/components/notifications/NotificationRow.vue:45
-#: front/src/components/notifications/NotificationRow.vue:62
-#: front/src/components/playlists/Editor.vue:163
-#: src/components/playlists/Form.vue:74
-#: front/src/components/playlists/Form.vue:81
-#: src/components/playlists/Form.vue:85
-#: front/src/components/playlists/Form.vue:89
-#: front/src/components/playlists/PlaylistModal.vue:116
-#: front/src/components/playlists/TrackPlaylistIcon.vue:32
-#: front/src/components/requests/Form.vue:73
-#: src/components/requests/Form.vue:74
-#: front/src/components/requests/Form.vue:75 src/views/Notifications.vue:74
-#: front/src/views/admin/Settings.vue:75 src/views/admin/Settings.vue:80
-#: front/src/views/admin/Settings.vue:81 src/views/admin/Settings.vue:82
-#: front/src/views/admin/Settings.vue:83 src/views/admin/Settings.vue:84
-#: front/src/views/admin/Settings.vue:85 src/views/admin/Settings.vue:86
-#: front/src/views/admin/library/Base.vue:16
-#: src/views/admin/library/FilesList.vue:21
-#: front/src/views/admin/users/Base.vue:20
-#: front/src/views/admin/users/InvitationsList.vue:24
-#: front/src/views/admin/users/UsersDetail.vue:169
-#: front/src/views/admin/users/UsersDetail.vue:170
-#: front/src/views/admin/users/UsersDetail.vue:177
-#: front/src/views/admin/users/UsersDetail.vue:181
-#: front/src/views/admin/users/UsersDetail.vue:185
-#: front/src/views/admin/users/UsersDetail.vue:189
-#: front/src/views/admin/users/UsersList.vue:21
-#: src/views/auth/EmailConfirm.vue:51 front/src/views/auth/PasswordReset.vue:52
-#: src/views/auth/PasswordReset.vue:53
-#: front/src/views/auth/PasswordResetConfirm.vue:62
-#: src/views/content/Base.vue:19 front/src/views/content/Home.vue:35
-#: src/views/content/libraries/Card.vue:58
-#: front/src/views/content/libraries/Card.vue:59
-#: front/src/views/content/libraries/Card.vue:60
-#: front/src/views/content/libraries/Card.vue:61
-#: front/src/views/content/libraries/DetailArea.vue:24
-#: front/src/views/content/libraries/FilesTable.vue:226
-#: front/src/views/content/libraries/FilesTable.vue:229
-#: front/src/views/content/libraries/FilesTable.vue:230
-#: front/src/views/content/libraries/FilesTable.vue:233
-#: front/src/views/content/libraries/FilesTable.vue:234
-#: front/src/views/content/libraries/FilesTable.vue:237
-#: front/src/views/content/libraries/FilesTable.vue:238
-#: front/src/views/content/libraries/FilesTable.vue:241
-#: front/src/views/content/libraries/FilesTable.vue:242
-#: front/src/views/content/libraries/FilesTable.vue:258
-#: front/src/views/content/libraries/FilesTable.vue:259
-#: front/src/views/content/libraries/Form.vue:70
-#: front/src/views/content/libraries/Form.vue:71
-#: front/src/views/content/libraries/Form.vue:72
-#: front/src/views/content/libraries/Form.vue:73
-#: front/src/views/content/libraries/Form.vue:74
-#: front/src/views/content/libraries/Form.vue:106
-#: front/src/views/content/libraries/Form.vue:109
-#: front/src/views/content/libraries/Form.vue:129
-#: front/src/views/content/remote/Card.vue:131
-#: src/views/content/remote/Card.vue:132
-#: front/src/views/content/remote/Card.vue:165
-#: src/views/content/remote/Card.vue:166
-#: front/src/views/content/remote/ScanForm.vue:48
-#: src/views/instance/Timeline.vue:57 front/src/views/playlists/Detail.vue:90
-#: src/views/playlists/List.vue:104 front/src/views/playlists/List.vue:105
-#: src/views/radios/Detail.vue:80
+#: front/src/App.vue:129 src/components/Footer.vue:72
 msgid "This will erase your local data and disconnect you, do you want to continue?"
-msgid_plural "%{ count } tracks were added to your queue"
-msgstr[0] ""
-msgstr[1] ""
+msgstr "Forigos vian lokan datumon kaj elsalutos vin, ĉu vi volas kontinui?"
 
 #: front/src/components/auth/SubsonicTokenForm.vue:36
 msgid "This will log you out from existing devices that use the current password."
-msgstr ""
+msgstr "Elsalutos vin el ĉiu viaj aparatoj ke uzas la aktualan pasvorton."
 
 #: front/src/components/playlists/Editor.vue:44
 msgid "This will remove all tracks from this playlist and cannot be undone."
-msgstr ""
-
-#: front/src/views/content/libraries/Quota.vue:90
-msgid "This will remove tracks that were uploaded but failed to be process by the server. This will remove those files completely and you will regain the corresponding quota."
-msgstr ""
-
-#: front/src/views/content/libraries/Quota.vue:38
-msgid "This will remove tracks that were uploaded but not processed yet. This will remove those files completely and you will regain the corresponding quota."
-msgstr ""
-
-#: front/src/views/content/libraries/Quota.vue:64
-msgid "This will remove tracks that were uploaded but skipped during import processes for various reasons. This will remove those files completely and you will regain the corresponding quota."
-msgstr ""
+msgstr "Forigos ĉiujn kantojn el tiu ludlisto kaj ne povus esti malfaronta."
 
 #: front/src/components/audio/track/Table.vue:6
 #: front/src/components/manage/library/FilesTable.vue:37
-#: front/src/views/content/libraries/FilesTable.vue:51
-#: front/src/components/mixins/Translations.vue:26
+#: front/src/components/mixins/Translations.vue:27
+#: front/src/views/content/libraries/FilesTable.vue:54
+#: front/src/components/mixins/Translations.vue:28
 msgid "Title"
-msgstr ""
+msgstr "Titolo"
+
+#: front/src/components/ShortcutsModal.vue:79
+msgid "Toggle queue looping"
+msgstr "Baskuli ripetadon de la atendovico"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:288
+#: front/src/views/admin/moderation/DomainsDetail.vue:225
+msgid "Total size"
+msgstr "Tuta grando"
+
+#: front/src/views/content/libraries/Card.vue:61
+msgid "Total size of the files in this library"
+msgstr "Tuta grando de tiu muzikejo"
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:113
+msgid "Total users"
+msgstr "Tutaj uzantoj"
+
+#: front/src/components/audio/SearchBar.vue:27
+#: src/components/library/Track.vue:262
+#: front/src/components/metadata/Search.vue:138
+msgid "Track"
+msgstr "Kanto"
+
+#: front/src/views/content/libraries/FilesTable.vue:205
+msgid "Track already present in one of your libraries"
+msgstr "Kanto jam estas en unu de viaj muzikejoj"
 
-#: front/src/components/library/Track.vue:53
+#: front/src/components/library/Track.vue:85
 msgid "Track information"
-msgstr ""
+msgstr "Kantodatumo"
 
 #: front/src/components/library/radios/Filter.vue:44
 msgid "Track matching filter"
-msgstr ""
+msgstr "Kanto kongruanta filtrilo"
+
+#: front/src/components/mixins/Translations.vue:23
+#: front/src/components/mixins/Translations.vue:24
+msgid "Track name"
+msgstr "Nomo de kanto"
+
+#: front/src/views/content/libraries/FilesTable.vue:209
+msgid "Track uploaded, but not processed by the server yet"
+msgstr "Kanto elŝutanta, sed la servilo ne jam procezis ĝin"
 
 #: front/src/components/instance/Stats.vue:54
 msgid "tracks"
-msgstr ""
+msgstr "kantoj"
 
-#: front/src/components/library/Album.vue:43
+#: front/src/components/library/Album.vue:81
 #: front/src/components/playlists/PlaylistModal.vue:33
-#: src/views/content/Base.vue:8 front/src/views/content/libraries/Detail.vue:8
-#: src/views/playlists/Detail.vue:50 front/src/views/radios/Detail.vue:34
+#: front/src/views/admin/moderation/AccountsDetail.vue:329
+#: front/src/views/admin/moderation/DomainsDetail.vue:265
+#: front/src/views/content/Base.vue:8 src/views/content/libraries/Detail.vue:8
+#: front/src/views/playlists/Detail.vue:50 src/views/radios/Detail.vue:34
 msgid "Tracks"
-msgstr ""
+msgstr "Kantoj"
 
 #: front/src/components/library/Artist.vue:54
 msgid "Tracks by this artist"
-msgstr ""
+msgstr "Kantoj je tiu artisto"
 
 #: front/src/components/instance/Stats.vue:25
 msgid "Tracks favorited"
-msgstr ""
+msgstr "Stelumantaj kantoj"
 
 #: front/src/components/instance/Stats.vue:19
 msgid "tracks listened"
-msgstr ""
+msgstr "aÅ­skultintaj kantoj"
 
-#: front/src/components/library/Track.vue:91
+#: front/src/components/library/Track.vue:138
 #: front/src/components/manage/library/FilesTable.vue:41
+#: front/src/views/admin/moderation/AccountsDetail.vue:151
 msgid "Type"
-msgstr ""
+msgstr "Tipo"
+
+#: front/src/components/manage/moderation/AccountsTable.vue:44
+#: front/src/components/manage/moderation/DomainsTable.vue:42
+msgid "Under moderation rule"
+msgstr "Moderece"
 
 #: front/src/views/content/remote/Card.vue:100
 #: src/views/content/remote/Card.vue:105
-#, fuzzy
 msgid "Unfollow"
-msgstr "Sekvi"
+msgstr "Malsekvi"
 
 #: front/src/views/content/remote/Card.vue:101
-#, fuzzy
 msgid "Unfollow this library?"
-msgstr "Iru al la muzikejo"
+msgstr "Malsekvi tiun muzikejon?"
 
 #: front/src/components/About.vue:15
 msgid "Unfortunately, owners of this instance did not yet take the time to complete this page."
-msgstr ""
+msgstr "Malfeliĉe, proprulo de tiu instanco ne jam plenigis tiu paĝon."
 
 #: front/src/components/Home.vue:37
 msgid "Unlimited music"
-msgstr ""
+msgstr "Infinita muziko"
+
+#: front/src/components/audio/Player.vue:351
+msgid "Unmute"
+msgstr "Malmutigi"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:45
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:57
+msgid "Update"
+msgstr "Äœisdati"
 
 #: front/src/components/auth/Settings.vue:50
 msgid "Update avatar"
-msgstr ""
+msgstr "Äœisdati avataron"
 
 #: front/src/views/content/libraries/Form.vue:25
-#, fuzzy
 msgid "Update library"
-msgstr "Manipuli muzikejon"
+msgstr "Äœisdati muzikejon"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:3
+msgid "Update moderation rule"
+msgstr "Äœisdati moderecan regulon"
 
 #: front/src/components/playlists/Form.vue:33
 msgid "Update playlist"
-msgstr ""
+msgstr "Äœisdati ludliston"
 
 #: front/src/components/auth/Settings.vue:27
 msgid "Update settings"
-msgstr ""
+msgstr "Äœisdati agordojn"
 
 #: front/src/views/auth/PasswordResetConfirm.vue:21
 msgid "Update your password"
-msgstr ""
+msgstr "Äœisdati vian pasvorton"
 
 #: front/src/views/content/libraries/Card.vue:44
-#: front/src/components/manage/users/UsersTable.vue:173
 #: front/src/views/content/libraries/DetailArea.vue:24
-#: front/src/views/admin/users/UsersDetail.vue:177
 msgid "Upload"
-msgstr ""
+msgstr "Elŝuti"
 
 #: front/src/components/auth/Settings.vue:45
 msgid "Upload a new avatar"
-msgstr ""
+msgstr "Elŝuti novan avataron"
 
 #: front/src/views/content/Home.vue:6
 msgid "Upload audio content"
-msgstr ""
+msgstr "Elŝuti aŭdon"
 
-#: front/src/views/content/libraries/FilesTable.vue:54
-#, fuzzy
+#: front/src/views/content/libraries/FilesTable.vue:57
 msgid "Upload date"
-msgstr "Importdato"
+msgstr "Elŝutdato"
+
+#: front/src/components/library/FileUpload.vue:219
+#: front/src/components/library/FileUpload.vue:220
+msgid "Upload denied, ensure the file is not too big and that you have not reached your quota"
+msgstr ""
+"Malakcepti elŝuto, certiĝi la dosieron ne tro grandas kaj vi nur havas spaco"
 
 #: front/src/views/content/Home.vue:7
-msgid "Upload music files (mp3, ogg, flac, etc.) from your personal library directly from your browser to enjoy them here."
+msgid "Upload music files (MP3, OGG, FLAC, etc.) from your personal library directly from your browser to enjoy them here."
 msgstr ""
+"Elŝuti muzikajn dosierojn (MP3, OGG, FLAC, ktp.) el via persona muzika "
+"dosierujo direkte en via retumilo por ĝui ilin ĉi-tie."
 
 #: front/src/components/library/FileUpload.vue:31
-#, fuzzy
 msgid "Upload new tracks"
-msgstr "Elŝuti kantojn"
+msgstr "Elŝuti novajn kantojn"
 
-#: front/src/views/admin/users/UsersDetail.vue:82
-#, fuzzy
+#: front/src/views/admin/moderation/AccountsDetail.vue:269
 msgid "Upload quota"
-msgstr "Importdato"
+msgstr "Elŝutlimito"
 
-#: front/src/components/library/FileUpload.vue:99
+#: front/src/components/library/FileUpload.vue:228
+msgid "Upload timeout, please try again"
+msgstr "Elŝuto tempolimis, bonvolu reprovi"
+
+#: front/src/components/library/FileUpload.vue:100
 msgid "Uploaded"
-msgstr ""
+msgstr "Elŝutinta"
 
 #: front/src/components/library/FileUpload.vue:5
 msgid "Uploading"
-msgstr ""
+msgstr "Elŝutanta"
 
-#: front/src/components/library/FileUpload.vue:102
-msgid "Uploading..."
-msgstr ""
+#: front/src/components/library/FileUpload.vue:103
+msgid "Uploading…"
+msgstr "Elŝutanta…"
+
+#: front/src/components/manage/moderation/AccountsTable.vue:41
+#: front/src/components/mixins/Translations.vue:37
+#: front/src/views/admin/moderation/AccountsDetail.vue:305
+#: front/src/views/admin/moderation/DomainsDetail.vue:241
+#: front/src/components/mixins/Translations.vue:38
+msgid "Uploads"
+msgstr "Elŝutoj"
 
-#: front/src/App.vue:44
+#: front/src/components/Footer.vue:16
 msgid "Use another instance"
-msgstr ""
+msgstr "Uzi alian instancon"
 
 #: front/src/views/auth/PasswordReset.vue:12
 msgid "Use this form to request a password reset. We will send an email to the given address with instructions to reset your password."
 msgstr ""
+"Uzu tiun formularo por peti pasvortnuligado. Ni sendos retpoŝtmesaĝon kun "
+"instrukcioj por nuligi vian pasvorton."
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:111
+msgid "Use this setting to temporarily enable/disable the policy without completely removing it."
+msgstr ""
+"Uzu tiun agordon por tempe aktivigi/malaktivigi la regularon sen tute forigi "
+"ĝin."
 
 #: front/src/components/manage/users/InvitationsTable.vue:49
 msgid "Used"
-msgstr ""
+msgstr "Uzinta"
 
 #: front/src/views/content/libraries/Detail.vue:26
 msgid "User"
-msgstr ""
+msgstr "Uzanto"
 
 #: front/src/components/instance/Stats.vue:5
 msgid "User activity"
-msgstr ""
+msgstr "Uzanta aktivado"
 
-#: front/src/components/library/Album.vue:49
+#: front/src/components/library/Album.vue:88
 #: src/components/library/Artist.vue:60
-#: front/src/components/library/Track.vue:122
-#, fuzzy
+#: front/src/components/library/Track.vue:168
 msgid "User libraries"
-msgstr "Muzikejoj"
+msgstr "Uzantaj muzikejoj"
 
 #: front/src/components/library/Radios.vue:20
 msgid "User radios"
-msgstr ""
+msgstr "Uzantaj radioj"
 
 #: front/src/components/auth/Signup.vue:19
 #: front/src/components/manage/users/UsersTable.vue:37
-#: front/src/components/mixins/Translations.vue:32
+#: front/src/components/mixins/Translations.vue:33
+#: front/src/views/admin/moderation/AccountsDetail.vue:85
+#: front/src/components/mixins/Translations.vue:34
 msgid "Username"
-msgstr ""
+msgstr "Uzantnomo"
 
 #: front/src/components/auth/Login.vue:15
 msgid "Username or email"
-msgstr ""
+msgstr "Uzantnomo aŭ retpoŝtadreso"
 
 #: front/src/components/instance/Stats.vue:13
 msgid "users"
-msgstr ""
+msgstr "uzantoj"
 
-#: front/src/components/Sidebar.vue:94 src/views/admin/users/Base.vue:5
-#: front/src/views/admin/users/UsersList.vue:3
-#: src/views/admin/users/UsersList.vue:21 front/src/views/admin/Settings.vue:81
+#: front/src/components/Sidebar.vue:91
+#: front/src/components/manage/moderation/DomainsTable.vue:39
+#: front/src/components/mixins/Translations.vue:35
+#: src/views/admin/Settings.vue:81 front/src/views/admin/users/Base.vue:5
+#: src/views/admin/users/UsersList.vue:3
+#: front/src/views/admin/users/UsersList.vue:21
+#: front/src/components/mixins/Translations.vue:36
 msgid "Users"
-msgstr ""
+msgstr "Uzantoj"
+
+#: front/src/components/Footer.vue:29
+msgid "Using Funkwhale"
+msgstr "Uzi Funkwhale"
+
+#: front/src/components/Footer.vue:13
+msgid "Version %{version}"
+msgstr "Versio %{version}"
 
 #: front/src/views/content/libraries/Quota.vue:29
 #: front/src/views/content/libraries/Quota.vue:56
 #: front/src/views/content/libraries/Quota.vue:82
-#, fuzzy
 msgid "View files"
-msgstr "Muzikejaj dosieroj"
+msgstr "Vidi dosierojn"
 
 #: front/src/components/library/Album.vue:37
 #: src/components/library/Artist.vue:35
-#: front/src/components/library/Track.vue:44
-#: front/src/components/metadata/ReleaseCard.vue:53
+#: front/src/components/library/Track.vue:51
 #: front/src/components/metadata/ArtistCard.vue:49
+#: front/src/components/metadata/ReleaseCard.vue:53
 msgid "View on MusicBrainz"
-msgstr ""
+msgstr "Vidi en MusicBrainz"
 
 #: front/src/views/content/libraries/Form.vue:18
-#, fuzzy
 msgid "Visibility"
-msgstr "Ludlistvideblo"
+msgstr "Videblo"
+
+#: front/src/views/content/libraries/Card.vue:59
+msgid "Visibility: everyone on this instance"
+msgstr "Videblo: ĉiu en ĉi-tiu instanco"
+
+#: front/src/views/content/libraries/Card.vue:60
+msgid "Visibility: everyone, including other instances"
+msgstr "Videblo: ĉiu, enhave aliaj instancoj"
+
+#: front/src/views/content/libraries/Card.vue:58
+msgid "Visibility: nobody except me"
+msgstr "Videblo: neniu krom mi"
+
+#: front/src/components/library/Album.vue:67
+msgid "Volume %{ number }"
+msgstr "Volumo %{number}"
 
 #: front/src/components/playlists/PlaylistModal.vue:20
 msgid "We cannot add the track to a playlist"
-msgstr ""
+msgstr "Ni ne povas aldoni kanton al ludlisto"
 
 #: front/src/components/playlists/Form.vue:14
 msgid "We cannot create the playlist"
-msgstr ""
+msgstr "Ni ne povis krei ludliston"
 
 #: front/src/components/auth/Signup.vue:13
 msgid "We cannot create your account"
-msgstr ""
+msgstr "Ni ne povis krei vian konton"
+
+#: front/src/components/audio/Player.vue:64
+msgid "We cannot load this track"
+msgstr "Ni ne povis ŝargi tiun kanton"
 
 #: front/src/components/auth/Login.vue:7
 msgid "We cannot log you in"
-msgstr ""
+msgstr "Ni ne povis ensaluti vin"
 
 #: front/src/components/auth/Settings.vue:38
 msgid "We cannot save your avatar"
-msgstr ""
+msgstr "Ni ne povis memori vian avataron"
 
 #: front/src/components/auth/Settings.vue:14
 msgid "We cannot save your settings"
-msgstr ""
+msgstr "Ni ne povis memori viajn agordojn"
 
 #: front/src/components/Home.vue:127
 msgid "We do not track you or bother you with ads"
-msgstr ""
+msgstr "Ni ne spionas vin aŭ ĝenas vin kun reklamoj"
 
-#: front/src/views/Notifications.vue:26
-msgid "We don't have any notification to display!"
-msgstr ""
+#: front/src/components/library/Track.vue:95
+msgid "We don't have any copyright information for this track"
+msgstr "Ni havas nenia kopirajta informado pri tiu kanto"
 
-#: front/src/views/content/Home.vue:4
-msgid "We offer various way to grab new content and make it available here."
-msgstr ""
+#: front/src/components/library/Track.vue:106
+msgid "We don't have any licensing information for this track"
+msgstr "Ni havas nenia licenca informado pri tiu kanto"
 
 #: front/src/components/library/FileUpload.vue:40
-msgid "we recommend using Picard for that purpose"
-msgstr ""
+msgid "We recommend using Picard for that purpose."
+msgstr "Ni rekomendas Picard pro fari tiun."
 
 #: front/src/components/Home.vue:7
 msgid "We think listening to music should be simple."
-msgstr ""
+msgstr "Ni pensas ke aÅ­skulti muzikon devus simpli."
 
 #: front/src/components/PageNotFound.vue:10
 msgid "We're sorry, the page you asked for does not exist:"
-msgstr ""
+msgstr "Pardonon, la paĝo vi petis ne ekzistas:"
 
-#: front/src/components/requests/Form.vue:21
-msgid "We've received your request, you'll get some groove soon ;)"
-msgstr ""
+#: front/src/components/Home.vue:153
+msgid "Welcome"
+msgstr "Bonvenon"
 
 #: front/src/components/Home.vue:5
 msgid "Welcome on Funkwhale"
-msgstr ""
+msgstr "Bonvenon en Funkwhale"
 
 #: front/src/components/Home.vue:24
 msgid "Why funkwhale?"
-msgstr ""
+msgstr "Kial Funkwhale?"
 
-#: front/src/components/Sidebar.vue:115
+#: front/src/components/audio/EmbedWizard.vue:13
+msgid "Widget height"
+msgstr "Alto de fenestraĵo"
+
+#: front/src/components/audio/EmbedWizard.vue:6
+msgid "Widget width"
+msgstr "Larĝo de fenestraĵo"
+
+#: front/src/components/Sidebar.vue:118
+#: front/src/components/manage/moderation/AccountsTable.vue:72
+#: front/src/components/manage/moderation/DomainsTable.vue:58
 msgid "Yes"
-msgstr ""
+msgstr "Jes"
 
 #: front/src/components/auth/Logout.vue:8
 msgid "Yes, log me out!"
+msgstr "Jes, elsaluti min!"
+
+#: front/src/views/content/libraries/Form.vue:19
+msgid "You are able to share your library with other people, regardless of its visibility."
 msgstr ""
+"Vi povas diskonigi vian muzikejon kun aliaj uloj, sendepende ĝia videblo."
 
 #: front/src/components/library/FileUpload.vue:33
 msgid "You are about to upload music to your library. Before proceeding, please ensure that:"
 msgstr ""
+"Vi estas elŝutota muziko al via muzikejo. Antaŭ komenci, bonvolu certiĝi ke:"
 
 #: front/src/components/auth/Logout.vue:7
 msgid "You are currently logged in as %{ username }"
-msgstr ""
+msgstr "Vi aktuale estas ensaluta al %{username}"
 
 #: front/src/views/content/Home.vue:17
 msgid "You can follow libraries from other users to get access to new music. Public libraries can be followed immediatly, while following a private library requires approval from its owner."
 msgstr ""
+"Vi povas sekvi muzikejoj el aliaj uzantoj por atingi novan muzikon. Publikaj "
+"muzikejoj sekvadeblas rekte, sed sekvado de privataj muzikejoj bezonas "
+"akceptado el ĝia proprulo."
 
 #: front/src/components/Home.vue:133
 msgid "You can invite friends and family to your instance so they can enjoy your music"
 msgstr ""
+"Vi povas inviti amikojn kaj familio en via instanco do ili povas ĝui vian "
+"muzikon"
+
+#: front/src/views/auth/EmailConfirm.vue:24
+msgid "You can now use the service without limitations."
+msgstr "Vi nun povas uzi la servico senlime."
 
 #: front/src/components/library/radios/Builder.vue:7
 msgid "You can use this interface to build your own custom radio, which will play tracks according to your criteria."
 msgstr ""
+"Vi povas uzi tiun interfaco por konstrui viajn proprajn radiojn, ke ludos "
+"kantojn laÅ­ viaj reguloj."
 
 #: front/src/components/auth/SubsonicTokenForm.vue:8
 msgid "You can use those to enjoy your playlist and music in offline mode, on your smartphone or tablet, for instance."
 msgstr ""
+"Vi povas uzi tiujn por ĝui vian muzikon kaj ludlistojn nekonektite, kun via "
+"poŝtelefono aŭ tabuleto ekzemple."
 
-#: front/src/components/Sidebar.vue:147
+#: front/src/views/admin/moderation/AccountsDetail.vue:46
+msgid "You don't have any rule in place for this account."
+msgstr "Vi ne havas iu ajn regulon por tiu konto."
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:39
+msgid "You don't have any rule in place for this domain."
+msgstr "Vi ne havas iu ajn regulon por tiu domajno."
+
+#: front/src/components/Sidebar.vue:158
 msgid "You have a radio playing"
-msgstr ""
+msgstr "Vi ludas radion"
 
-#: front/src/App.vue:8
-msgid "You need to select an instance in order to continue"
-msgstr ""
+#: front/src/components/audio/Player.vue:71
+msgid "You may have a connectivity issue."
+msgstr "Vi havus konekta problemo."
 
-#: front/src/views/content/libraries/Form.vue:19
-msgid "You will be able to share your library with other people, regardless of it's visibility."
-msgstr ""
+#: front/src/App.vue:17
+msgid "You need to select an instance in order to continue"
+msgstr "Vi devu elekti instanco por kontinui"
 
 #: front/src/components/auth/Settings.vue:100
 msgid "You will be logged out from this session and have to log in with the new one"
-msgstr ""
+msgstr "Vi estos elŝaluta el tiu seanco kaj devus ensaluti denove"
 
 #: front/src/components/auth/Settings.vue:71
 msgid "You will have to update your password on your clients that use this password."
-msgstr ""
+msgstr "Vi devos rekte ŝanĝi vian pasvorton en la aplikaĵo ke uzas ĝin."
 
-#: front/src/views/auth/EmailConfirm.vue:24
-msgid "Your email address was confirmed, you can now use the service without limitations."
-msgstr ""
+#: front/src/components/favorites/List.vue:112
+msgid "Your Favorites"
+msgstr "Viaj stelumoj"
 
 #: front/src/components/Home.vue:114
 msgid "Your music, your way"
-msgstr ""
+msgstr "Via muziko, via vojo"
 
 #: front/src/views/Notifications.vue:7
-#, fuzzy
 msgid "Your notifications"
-msgstr "Lasta redakto"
+msgstr "Viaj sciigoj"
 
 #: front/src/views/auth/PasswordResetConfirm.vue:29
 msgid "Your password has been updated successfully."
-msgstr ""
+msgstr "Via pasvorto sukcese ŝanĝis."
 
 #: front/src/components/auth/Settings.vue:101
 msgid "Your Subsonic password will be changed to a new, random one, logging you out from devices that used the old Subsonic password"
 msgstr ""
-
-#: front/src/components/mixins/Translations.vue:8
-#, fuzzy
-msgid "Activity visibility"
-msgstr "Ludlistvideblo"
-
-#: front/src/components/mixins/Translations.vue:9
-msgid "Determine the visibility level of your activity"
-msgstr ""
-
-#: front/src/components/mixins/Translations.vue:11
-#: front/src/components/playlists/Form.vue:81
-#: src/views/content/libraries/Form.vue:72
-msgid "Nobody except me"
-msgstr "Neniu krom mi"
-
-#: front/src/components/mixins/Translations.vue:12
-#: front/src/components/playlists/Form.vue:85
-#: src/views/content/libraries/Form.vue:73
-msgid "Everyone on this instance"
-msgstr "Ĉiu en ĉi-tiu instanco"
-
-#: front/src/components/mixins/Translations.vue:18
-#, fuzzy
-msgid "Accessed date"
-msgstr "Atingo malaktivigas"
-
-#: front/src/components/mixins/Translations.vue:19
-#, fuzzy
-msgid "Modification date"
-msgstr "Fortempiĝa dato"
-
-#: front/src/components/mixins/Translations.vue:20
-#, fuzzy
-msgid "Imported date"
-msgstr "Importdato"
-
-#: front/src/components/mixins/Translations.vue:22
-#, fuzzy
-msgid "Track name"
-msgstr "Nomo de la radio"
-
-#: front/src/components/mixins/Translations.vue:23
-#, fuzzy
-msgid "Album name"
-msgstr "Albumpagô"
-
-#: front/src/components/mixins/Translations.vue:30
-#, fuzzy
-msgid "Sign-up date"
-msgstr "Agordoj ĝisdatigas"
-
-#: front/src/components/playlists/Editor.vue:163
-msgid "Copy tracks from current queue to playlist"
-msgstr "Kopii kantojn el la aktuala atendovico en tiu ludlisto"
-
-#: front/src/components/playlists/PlaylistModal.vue:116
-msgid "Add to this playlist"
-msgstr "Aldoni al tiu ludlisto"
-
-#: front/src/components/playlists/Form.vue:74
-msgid "My awesome playlist"
-msgstr "Mia mojosa ludlisto"
-
-#: front/src/components/playlists/Form.vue:89
-msgid "Everyone"
-msgstr "Ĉiu"
-
-#: front/src/components/auth/Signup.vue:95
-msgid "Sign Up"
-msgstr ""
-
-#: front/src/components/auth/Signup.vue:96
-msgid "Enter your invitation code (case insensitive)"
-msgstr "Tajpu vian invitkodon (usklecoblindan)"
-
-#: front/src/components/auth/Signup.vue:97
-msgid "Enter your username"
-msgstr "Tajpu vian uzantnomon"
-
-#: front/src/components/auth/Signup.vue:98
-msgid "Enter your email"
-msgstr "Tajpu vian retadreson"
-
-#: front/src/components/auth/SubsonicTokenForm.vue:95
-msgid "Password updated"
-msgstr "Pasvorto aktuliginta"
-
-#: front/src/components/auth/SubsonicTokenForm.vue:111
-msgid "Access disabled"
-msgstr "Atingo malaktivigas"
-
-#: front/src/components/auth/Login.vue:77
-msgid "Enter your username or email"
-msgstr "Tajpu vian uzantnomon aÅ­ retadreson"
-
-#: front/src/components/auth/Login.vue:78
-msgid "Log In"
-msgstr "Ensaluti"
-
-#: front/src/components/auth/Profile.vue:47
-msgid "%{ username }'s profile"
-msgstr "Profilo de %{username}"
-
-#: front/src/components/auth/Logout.vue:20
-msgid "Log Out"
-msgstr "Elsaluti"
-
-#: front/src/components/auth/Settings.vue:249
-msgid "Account Settings"
-msgstr "Preferoj de via konto"
-
-#: front/src/components/favorites/TrackFavoriteIcon.vue:19
-msgid "Remove from favorites"
-msgstr ""
-
-#: front/src/components/favorites/List.vue:110
-msgid "Your Favorites"
-msgstr ""
-
-#: front/src/components/library/Radios.vue:141
-msgid "Enter a radio name..."
-msgstr "Tajpu nomon de radio…"
-
-#: front/src/components/library/radios/Builder.vue:233
-msgid "Radio Builder"
-msgstr "Faranto de radio"
-
-#: front/src/components/library/radios/Builder.vue:235
-msgid "My awesome radio"
-msgstr "Mia mojosa radio"
-
-#: front/src/components/library/radios/Builder.vue:236
-#, fuzzy
-msgid "My awesome description"
-msgstr "Mia mojosa radio"
-
-#: front/src/components/library/FileUpload.vue:238
-msgid "Upload refused, ensure the file is not too big and you have not reached your quota"
-msgstr ""
-
-#: front/src/components/library/FileUpload.vue:239
-msgid "Impossible to upload this file, ensure it is not too big"
-msgstr ""
-
-#: front/src/components/library/FileUpload.vue:240
-#, fuzzy
-msgid "A network error occured while uploading this file"
-msgstr "Eraro okazis kiam konservi viajn ŝanĝojn"
-
-#: front/src/components/library/FileUpload.vue:241
-msgid "Upload timeout, please try again"
-msgstr ""
-
-#: front/src/components/library/Artists.vue:119
-msgid "Enter an artist name..."
-msgstr "Tajpu nomon de artisto…"
-
-#: front/src/components/library/Track.vue:195
-#: src/components/audio/SearchBar.vue:27
-#: front/src/components/metadata/Search.vue:138
-msgid "Track"
-msgstr ""
-
-#: front/src/components/library/Home.vue:65
-msgid "Home"
-msgstr "Hejmo"
-
-#: front/src/components/forms/PasswordInput.vue:25
-msgid "Show/hide password"
-msgstr ""
-
-#: front/src/components/requests/Form.vue:73
-msgid "The Beatles, Mickael Jackson…"
-msgstr ""
-
-#: front/src/components/requests/Form.vue:74
-msgid "The White Album, Thriller…"
-msgstr ""
-
-#: front/src/components/requests/Form.vue:75
-msgid "Use this comment box to add details to your request if needed"
-msgstr ""
-
-#: front/src/components/audio/PlayButton.vue:158
-msgid "%{ count } track was added to your queue"
-msgid_plural "%{ count } tracks were added to your queue"
-msgstr[0] ""
-msgstr[1] ""
-
-#: front/src/components/audio/Search.vue:65
-msgid "Artist, album, track..."
-msgstr "Artisto, albumo, kanto…"
-
-#: front/src/components/audio/SearchBar.vue:20
-msgid "Search for artists, albums, tracks..."
-msgstr ""
-
-#: front/src/components/audio/Player.vue:216
-msgid "Queue shuffled!"
-msgstr "Atendovico miksiĝis!"
-
-#: front/src/components/audio/Player.vue:273
-msgid "Previous track"
-msgstr "AntaÅ­a kanto"
-
-#: front/src/components/audio/Player.vue:274
-msgid "Play track"
-msgstr "Ludi kanton"
-
-#: front/src/components/audio/Player.vue:275
-msgid "Pause track"
-msgstr "PaÅ­zi kanton"
-
-#: front/src/components/audio/Player.vue:276
-msgid "Next track"
-msgstr "BaldaÅ­a kanto"
-
-#: front/src/components/audio/Player.vue:277
-msgid "Unmute"
-msgstr ""
-
-#: front/src/components/audio/Player.vue:278
-msgid "Mute"
-msgstr "Silentigi"
-
-#: front/src/components/audio/Player.vue:279
-msgid "Looping disabled. Click to switch to single-track looping."
-msgstr "Ripeto malaktivas. Alklaki por aktivi ripetado de la aktuala kanto."
-
-#: front/src/components/audio/Player.vue:280
-msgid "Looping on a single track. Click to switch to whole queue looping."
-msgstr "Ripetas unu kanton. Alklaki por aktivi ripetado de la tutan atendovico."
-
-#: front/src/components/audio/Player.vue:281
-msgid "Looping on whole queue. Click to disable looping."
-msgstr "Ripetas la tutan atendovicon. Alklaki por malaktivi ripeto."
-
-#: front/src/components/audio/Player.vue:282
-msgid "Shuffle your queue"
-msgstr ""
-
-#: front/src/components/audio/Player.vue:283
-msgid "Clear your queue"
-msgstr "Purigi vian atendovico"
-
-#: front/src/components/Sidebar.vue:203
-msgid "Pending import requests"
-msgstr "Atendantaj importpetoj"
-
-#: front/src/components/Sidebar.vue:204
-msgid "Pending follow requests"
-msgstr "Atendantaj petoj da sekvado"
-
-#: front/src/components/metadata/Search.vue:114
-msgid "Enter your search query..."
-msgstr "Tajpu vian serĉon…"
-
-#: front/src/components/manage/library/FilesTable.vue:176
-msgid "Search by title, artist, domain..."
-msgstr ""
-
-#: front/src/components/manage/users/InvitationForm.vue:58
-msgid "Leave empty for a random code"
-msgstr "Lasu malplena por hazarda kodo"
-
-#: front/src/components/manage/users/InvitationsTable.vue:153
-msgid "Search by username, email, code..."
-msgstr ""
-
-#: front/src/components/manage/users/UsersTable.vue:163
-msgid "Search by username, email, name..."
-msgstr ""
-
-#: front/src/components/manage/users/UsersTable.vue:181
-#: front/src/views/admin/users/UsersDetail.vue:185
-#: src/views/admin/Settings.vue:83
-msgid "Federation"
-msgstr "Federo"
-
-#: front/src/components/Home.vue:154
-msgid "Welcome"
-msgstr ""
-
-#: front/src/views/content/remote/ScanForm.vue:48
-#, fuzzy
-msgid "Enter a library url"
-msgstr "Tajpu domajna nomo de instance…"
-
-#: front/src/views/content/remote/Card.vue:165
-msgid "Scan launched"
-msgstr ""
-
-#: front/src/views/content/remote/Card.vue:166
-msgid "Scan skipped (previous scan is too recent)"
-msgstr ""
-
-#: front/src/views/content/libraries/FilesTable.vue:226
-msgid "Search by title, artist, album..."
-msgstr ""
-
-#: front/src/views/content/libraries/FilesTable.vue:230
-msgid "Track was already present in one of your libraries"
-msgstr ""
-
-#: front/src/views/content/libraries/FilesTable.vue:234
-msgid "Track is uploaded but not processed by the server yet"
-msgstr ""
-
-#: front/src/views/content/libraries/FilesTable.vue:238
-msgid "An error occured while processing this track, ensure the track is correctly tagged"
-msgstr ""
-
-#: front/src/views/content/libraries/FilesTable.vue:242
-#, fuzzy
-msgid "Import went on successfully"
-msgstr "Pasvorto sukcese aktualiginta"
-
-#: front/src/views/content/libraries/FilesTable.vue:259
-#, fuzzy
-msgid "Relaunch import"
-msgstr "Fini importadon"
-
-#: front/src/views/content/libraries/Card.vue:58
-#, fuzzy
-msgid "Visibility: nobody except me"
-msgstr "Neniu krom mi"
-
-#: front/src/views/content/libraries/Card.vue:59
-#, fuzzy
-msgid "Visibility: everyone on this instance"
-msgstr "Ĉiu en ĉi-tiu instanco"
-
-#: front/src/views/content/libraries/Card.vue:60
-msgid "Visibility: everyone, including other instances"
-msgstr ""
-
-#: front/src/views/content/libraries/Card.vue:61
-msgid "Total size of the files in this library"
-msgstr ""
-
-#: front/src/views/content/libraries/Form.vue:70
-#, fuzzy
-msgid "My awesome library"
-msgstr "Mia mojosa radio"
-
-#: front/src/views/content/libraries/Form.vue:71
-msgid "This library contains my personnal music, I hope you will like it!"
-msgstr ""
-
-#: front/src/views/content/libraries/Form.vue:74
-#, fuzzy
-msgid "Everyone, including other instances"
-msgstr "Ĉiu en ĉi-tiu instanco"
-
-#: front/src/views/content/libraries/Form.vue:106
-#, fuzzy
-msgid "Library updated"
-msgstr "Nomo de muzikejo"
-
-#: front/src/views/content/libraries/Form.vue:109
-#, fuzzy
-msgid "Library created"
-msgstr "Nomo de muzikejo"
-
-#: front/src/views/content/Home.vue:35
-msgid "Add and manage content"
-msgstr ""
-
-#: front/src/views/radios/Detail.vue:80
-msgid "Radio"
-msgstr "Radio"
-
-#: front/src/views/instance/Timeline.vue:57
-msgid "Instance Timeline"
-msgstr "Instanca tempolino"
-
-#: front/src/views/playlists/Detail.vue:90
-msgid "Playlist"
-msgstr "Ludlisto"
-
-#: front/src/views/playlists/List.vue:105
-msgid "Enter an playlist name..."
-msgstr "Tajpu ludlistan nomon…"
-
-#: front/src/views/admin/library/Base.vue:16
-#, fuzzy
-msgid "Manage library"
-msgstr "En muzikejo"
-
-#: front/src/views/admin/users/UsersDetail.vue:169
-msgid "Determine if the user account is active or not. Inactive users cannot login or use the service."
-msgstr "Elekti ĉu la konton aktivas aŭ ne. Malaktivaj konton ne eblas ensaluti aŭ uzi la servico."
-
-#: front/src/views/admin/users/UsersDetail.vue:170
-msgid "Determine how much content the user can upload. Leave empty to use the default value of the instance."
-msgstr ""
-
-#: front/src/views/admin/users/Base.vue:20
-msgid "Manage users"
-msgstr "Manipuli uzantojn"
-
-#: front/src/views/admin/Settings.vue:75
-msgid "Instance settings"
-msgstr "Instancaj preferoj"
-
-#: front/src/views/admin/Settings.vue:80
-msgid "Instance information"
-msgstr "Instanca informo"
-
-#: front/src/views/admin/Settings.vue:84
-msgid "Subsonic"
-msgstr ""
-
-#: front/src/views/admin/Settings.vue:85
-msgid "Statistics"
-msgstr ""
-
-#: front/src/views/admin/Settings.vue:86
-msgid "Error reporting"
-msgstr "Eraroraportado"
+"Via Subsona pasvorto ŝanĝos hazarde, elsalutontas vin el aparetoj ke uzis la "
+"malnovan pasvorton"
diff --git a/front/locales/es/LC_MESSAGES/app.po b/front/locales/es/LC_MESSAGES/app.po
index 6027e0405098df2a95b9c9e0e7cf18aee56d18dc..23a8832895e28560600ac3ae2fd8a436d0b95256 100644
--- a/front/locales/es/LC_MESSAGES/app.po
+++ b/front/locales/es/LC_MESSAGES/app.po
@@ -7,20 +7,20 @@ msgid ""
 msgstr ""
 "Project-Id-Version: front 1.0.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-10-05 20:10+0200\n"
-"PO-Revision-Date: 2018-07-24 19:50+0000\n"
-"Last-Translator: anonymous <noreply@weblate.org>\n"
+"POT-Creation-Date: 2019-01-11 15:55+0100\n"
+"PO-Revision-Date: 2019-01-17 05:50+0000\n"
+"Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n"
 "Language-Team: none\n"
 "Language: es\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 2.20\n"
+"X-Generator: Weblate 3.2.2\n"
 
 #: front/src/components/playlists/PlaylistModal.vue:9
 msgid "\"%{ title }\", by %{ artist }"
-msgstr "\"%{ title }\", de %{ artist }"
+msgstr "\"%{ title }\", por %{ artist }"
 
 #: front/src/components/Sidebar.vue:24
 msgid "(%{ index } of %{ length })"
@@ -30,14 +30,14 @@ msgstr "(%{ index } de %{ length })"
 msgid "(empty)"
 msgstr "(vacío)"
 
-#: front/src/components/common/ActionTable.vue:44
-#: front/src/components/common/ActionTable.vue:53
+#: front/src/components/common/ActionTable.vue:57
+#: front/src/components/common/ActionTable.vue:66
 msgid "%{ count } on %{ total } selected"
 msgid_plural "%{ count } on %{ total } selected"
 msgstr[0] "%{ count } de %{ total } elemento seleccionado"
 msgstr[1] "%{ count } de %{ total } elementos seleccionados"
 
-#: front/src/components/Sidebar.vue:107 src/components/audio/album/Card.vue:54
+#: front/src/components/Sidebar.vue:110 src/components/audio/album/Card.vue:54
 #: front/src/views/content/libraries/Card.vue:39
 #: src/views/content/remote/Card.vue:26
 msgid "%{ count } track"
@@ -57,6 +57,12 @@ msgid_plural "%{ count } tracks matching combined filters"
 msgstr[0] "%{ count } canción coincidiendo con filtros combinados"
 msgstr[1] "%{ count } canciones coincidiendo con filtros combinados"
 
+#: front/src/components/audio/PlayButton.vue:180
+msgid "%{ count } track was added to your queue"
+msgid_plural "%{ count } tracks were added to your queue"
+msgstr[0] "%{ count } canción ha sido añadida a tu cola de reproducción"
+msgstr[1] "%{ count } canciones han sido añadidas a tu cola de reproducción"
+
 #: front/src/components/playlists/Card.vue:18
 msgid "%{ count} track"
 msgid_plural "%{ count } tracks"
@@ -64,9 +70,8 @@ msgstr[0] "%{ count} canción"
 msgstr[1] "%{ count } canciones"
 
 #: front/src/views/content/libraries/Quota.vue:11
-#, fuzzy
 msgid "%{ current } used on %{ max } allowed"
-msgstr "%{ count } de %{ total } elemento seleccionado"
+msgstr "%{ current } usados de %{ max } permitidos"
 
 #: front/src/components/common/Duration.vue:2
 msgid "%{ hours } h %{ minutes } min"
@@ -76,13 +81,21 @@ msgstr "%{ hours } h %{ minutes } min"
 msgid "%{ minutes } min"
 msgstr "%{ minutes } min"
 
-#: front/src/components/activity/Like.vue:7
-msgid "%{ user } favorited a track"
-msgstr "%{ user } añadió una canción a sus favoritos"
+#: front/src/components/notifications/NotificationRow.vue:40
+msgid "%{ username } accepted your follow on library \"%{ library }\""
+msgstr ""
+
+#: front/src/components/notifications/NotificationRow.vue:39
+msgid "%{ username } followed your library \"%{ library }\""
+msgstr ""
+
+#: front/src/components/auth/Profile.vue:46
+msgid "%{ username }'s profile"
+msgstr "Perfil de %{ username }"
 
-#: front/src/components/activity/Listen.vue:7
-msgid "%{ user } listened to a track"
-msgstr "%{ user } escuchó una canción"
+#: front/src/components/Footer.vue:5
+msgid "<translate :translate-params=\"{instanceName: instanceHostname}\">About %{instanceName}</translate>"
+msgstr ""
 
 #: front/src/components/audio/artist/Card.vue:41
 msgid "1 album"
@@ -96,59 +109,93 @@ msgid_plural "%{ count } favorites"
 msgstr[0] "1 favorito"
 msgstr[1] "%{ count } favoritos"
 
+#: front/src/components/library/FileUpload.vue:225
+#: front/src/components/library/FileUpload.vue:226
+msgid "A network error occured while uploading this file"
+msgstr "Ha ocurrido un error al subir este archivo"
+
 #: front/src/components/About.vue:5
 msgid "About %{ instance }"
 msgstr "Sobre %{ instance }"
 
-#: front/src/App.vue:53
+#: front/src/components/Footer.vue:6
+#, fuzzy
+msgid "About %{instanceName}"
+msgstr "Sobre %{ instance }"
+
+#: front/src/components/Footer.vue:45
 msgid "About Funkwhale"
 msgstr "Acerca de Funkwhale"
 
-#: front/src/App.vue:34 src/components/About.vue:8 src/components/About.vue:55
+#: front/src/components/Footer.vue:10
+#, fuzzy
+msgid "About page"
+msgstr "Página del álbum"
+
+#: front/src/components/About.vue:8 src/components/About.vue:64
 msgid "About this instance"
 msgstr "Acerca de esta instancia"
 
 #: front/src/views/content/libraries/Detail.vue:48
-#, fuzzy
 msgid "Accept"
-msgstr "Aceptado"
+msgstr "Aceptar"
 
 #: front/src/views/content/libraries/Detail.vue:40
 msgid "Accepted"
 msgstr "Aceptado"
 
+#: front/src/components/auth/SubsonicTokenForm.vue:111
+msgid "Access disabled"
+msgstr "Acceso deshabilitado"
+
 #: front/src/components/Home.vue:106
 msgid "Access your music from a clean interface that focus on what really matters"
 msgstr "Accede a tu música con una interfaz limpia y concéntrate en lo que realmente importa"
 
-#: front/src/views/admin/users/UsersDetail.vue:54
-msgid "Account active"
+#: front/src/components/mixins/Translations.vue:19
+#: front/src/components/mixins/Translations.vue:20
+msgid "Accessed date"
+msgstr "Fecha de acceso"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:78
+#, fuzzy
+msgid "Account data"
 msgstr "Cuenta activa"
 
 #: front/src/components/auth/Settings.vue:5
 msgid "Account settings"
 msgstr "Configuración de cuenta"
 
+#: front/src/components/auth/Settings.vue:264
+msgid "Account Settings"
+msgstr "Configuración de Cuenta"
+
 #: front/src/components/manage/users/UsersTable.vue:39
 msgid "Account status"
 msgstr "Estado de cuenta"
 
 #: front/src/views/auth/PasswordReset.vue:14
 msgid "Account's email"
-msgstr "Correo electrónico de la cuenta"
+msgstr "Correo de la cuenta"
 
-#: front/src/views/content/libraries/Detail.vue:29
+#: front/src/views/admin/moderation/AccountsList.vue:3
+#: front/src/views/admin/moderation/AccountsList.vue:24
+#: front/src/views/admin/moderation/Base.vue:8
 #, fuzzy
+msgid "Accounts"
+msgstr "Estado de cuenta"
+
+#: front/src/views/content/libraries/Detail.vue:29
 msgid "Action"
-msgstr "Acciones"
+msgstr "Acción"
 
-#: front/src/components/common/ActionTable.vue:86
+#: front/src/components/common/ActionTable.vue:99
 msgid "Action %{ action } was launched successfully on %{ count } element"
 msgid_plural "Action %{ action } was launched successfully on %{ count } elements"
 msgstr[0] "Acción %{ action } fue iniciado exitosamente en %{ count } elemento"
 msgstr[1] "Acción %{ action } fue iniciado exitosamente en %{ count } elementos"
 
-#: front/src/components/common/ActionTable.vue:8
+#: front/src/components/common/ActionTable.vue:21
 #: front/src/components/library/radios/Builder.vue:64
 msgid "Actions"
 msgstr "Acciones"
@@ -157,14 +204,36 @@ msgstr "Acciones"
 msgid "Active"
 msgstr "Activo"
 
-#: front/src/components/Sidebar.vue:75
+#: front/src/views/admin/moderation/AccountsDetail.vue:199
+#: front/src/views/admin/moderation/DomainsDetail.vue:144
 msgid "Activity"
 msgstr "Actividad"
 
-#: front/src/components/Sidebar.vue:78 src/views/content/Base.vue:19
-msgid "Add content"
+#: front/src/components/mixins/Translations.vue:7
+#: front/src/components/mixins/Translations.vue:8
+msgid "Activity visibility"
+msgstr "Mostrar mi actividad"
+
+#: front/src/views/admin/moderation/DomainsList.vue:18
+msgid "Add"
+msgstr ""
+
+#: front/src/views/admin/moderation/DomainsList.vue:13
+msgid "Add a domain"
+msgstr ""
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:4
+msgid "Add a new moderation rule"
 msgstr ""
 
+#: front/src/views/content/Home.vue:35
+msgid "Add and manage content"
+msgstr "Agregar y gestionar contenido"
+
+#: front/src/components/Sidebar.vue:75 src/views/content/Base.vue:18
+msgid "Add content"
+msgstr "Añadir contenido"
+
 #: front/src/components/library/radios/Builder.vue:50
 msgid "Add filter"
 msgstr "Añadir filtro"
@@ -173,20 +242,30 @@ msgstr "Añadir filtro"
 msgid "Add filters to customize your radio"
 msgstr "Añade filtros para personalizar tu radio"
 
+#: front/src/components/audio/PlayButton.vue:64
+#, fuzzy
+msgid "Add to current queue"
+msgstr "Añadir a la cola de reproducción"
+
 #: front/src/components/favorites/TrackFavoriteIcon.vue:4
-#: front/src/components/favorites/TrackFavoriteIcon.vue:21
+#: front/src/components/favorites/TrackFavoriteIcon.vue:28
 msgid "Add to favorites"
 msgstr "Añadir a favoritos"
 
 #: front/src/components/playlists/TrackPlaylistIcon.vue:6
-#: front/src/components/playlists/TrackPlaylistIcon.vue:32
-msgid "Add to playlist..."
-msgstr "Añadir a lista de reproducción..."
+#: front/src/components/playlists/TrackPlaylistIcon.vue:34
+#, fuzzy
+msgid "Add to playlist…"
+msgstr "Añadir a lista de reproducción…"
 
 #: front/src/components/audio/PlayButton.vue:14
 msgid "Add to queue"
 msgstr "Añadir a la cola de reproducción"
 
+#: front/src/components/playlists/PlaylistModal.vue:116
+msgid "Add to this playlist"
+msgstr "Añadir a esta lista de reproducción"
+
 #: front/src/components/playlists/PlaylistModal.vue:54
 msgid "Add track"
 msgstr "Añadir canción"
@@ -195,16 +274,16 @@ msgstr "Añadir canción"
 msgid "Admin"
 msgstr "Admin"
 
-#: front/src/components/Sidebar.vue:82
+#: front/src/components/Sidebar.vue:79
 msgid "Administration"
 msgstr "Administración"
 
-#: front/src/components/audio/track/Table.vue:8
+#: front/src/components/audio/SearchBar.vue:26
+#: src/components/audio/track/Table.vue:8
+#: front/src/components/library/Album.vue:159
 #: front/src/components/manage/library/FilesTable.vue:39
-#: front/src/views/content/libraries/FilesTable.vue:53
-#: front/src/components/library/Album.vue:101
-#: src/components/audio/SearchBar.vue:26
 #: front/src/components/metadata/Search.vue:134
+#: front/src/views/content/libraries/FilesTable.vue:56
 msgid "Album"
 msgstr "Álbum"
 
@@ -214,13 +293,19 @@ msgid_plural "Album containing %{ count } tracks, by %{ artist }"
 msgstr[0] "Álbum que contiene %{ count } canción, de %{ artist }"
 msgstr[1] "Álbum que contiene %{ count } canciones, de %{ artist }"
 
-#: front/src/components/library/Track.vue:20
+#: front/src/components/mixins/Translations.vue:24
+#: front/src/components/mixins/Translations.vue:25
+msgid "Album name"
+msgstr "Álbum"
+
+#: front/src/components/library/Track.vue:27
 msgid "Album page"
 msgstr "Página del álbum"
 
 #: front/src/components/audio/Search.vue:19
 #: src/components/instance/Stats.vue:48
-#: front/src/components/requests/Form.vue:9
+#: front/src/views/admin/moderation/AccountsDetail.vue:321
+#: front/src/views/admin/moderation/DomainsDetail.vue:257
 msgid "Albums"
 msgstr "Álbumes"
 
@@ -241,33 +326,44 @@ msgstr "Ha ocurrido un error al guardar los cambios"
 msgid "An unknown error happend, this can mean the server is down or cannot be reached"
 msgstr "Ha ocurrido un error desconocido, esto puede significar que el servidor está fuera de servicio o no se puede conectar"
 
+#: front/src/components/notifications/NotificationRow.vue:62
+msgid "Approve"
+msgstr ""
+
 #: front/src/components/auth/Logout.vue:5
 msgid "Are you sure you want to log out?"
-msgstr ""
+msgstr "¿Seguro que quieres cerrar la sesión?"
 
-#: front/src/components/audio/track/Table.vue:7
+#: front/src/components/audio/SearchBar.vue:25
+#: src/components/audio/track/Table.vue:7
+#: front/src/components/library/Artist.vue:137
 #: front/src/components/manage/library/FilesTable.vue:38
-#: front/src/views/content/libraries/FilesTable.vue:52
-#: front/src/components/library/Artist.vue:129
-#: src/components/audio/SearchBar.vue:25
 #: front/src/components/metadata/Search.vue:130
+#: front/src/views/content/libraries/FilesTable.vue:55
 msgid "Artist"
 msgstr "Artista"
 
-#: front/src/components/requests/Form.vue:5
-#: src/components/mixins/Translations.vue:24
+#: front/src/components/mixins/Translations.vue:25
+#: front/src/components/mixins/Translations.vue:26
 msgid "Artist name"
 msgstr "Nombre del artista"
 
 #: front/src/components/library/Album.vue:22
-#: src/components/library/Track.vue:23
+#: src/components/library/Track.vue:33
 msgid "Artist page"
 msgstr "Página del artista"
 
+#: front/src/components/audio/Search.vue:65
+#, fuzzy
+msgid "Artist, album, track…"
+msgstr "Artista, álbum, canción…"
+
 #: front/src/components/audio/Search.vue:10
 #: src/components/instance/Stats.vue:42
-#: front/src/components/library/Library.vue:7
-#: src/components/library/Artists.vue:120
+#: front/src/components/library/Artists.vue:119
+#: src/components/library/Library.vue:7
+#: front/src/views/admin/moderation/AccountsDetail.vue:313
+#: front/src/views/admin/moderation/DomainsDetail.vue:249
 msgid "Artists"
 msgstr "Artistas"
 
@@ -275,6 +371,8 @@ msgstr "Artistas"
 #: src/components/library/Artists.vue:25
 #: front/src/components/library/Radios.vue:44
 #: front/src/components/manage/library/FilesTable.vue:19
+#: front/src/components/manage/moderation/AccountsTable.vue:21
+#: front/src/components/manage/moderation/DomainsTable.vue:19
 #: front/src/components/manage/users/UsersTable.vue:19
 #: front/src/views/content/libraries/FilesTable.vue:31
 #: front/src/views/playlists/List.vue:27
@@ -285,6 +383,16 @@ msgstr "Ascendente"
 msgid "Ask for a password reset"
 msgstr "Restablecer contraseña"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:245
+#: front/src/views/admin/moderation/DomainsDetail.vue:202
+#, fuzzy
+msgid "Audio content"
+msgstr "Añadir contenido"
+
+#: front/src/components/ShortcutsModal.vue:55
+msgid "Audio player shortcuts"
+msgstr ""
+
 #: front/src/components/playlists/PlaylistModal.vue:26
 msgid "Available playlists"
 msgstr "Listas de reproducción disponibles"
@@ -293,17 +401,27 @@ msgstr "Listas de reproducción disponibles"
 msgid "Avatar"
 msgstr "Avatar"
 
-#: front/src/views/auth/EmailConfirm.vue:17 src/views/auth/PasswordReset.vue:24
+#: front/src/views/auth/PasswordReset.vue:24
 #: front/src/views/auth/PasswordResetConfirm.vue:18
 msgid "Back to login"
 msgstr "Volver a la página de conección"
 
-#: front/src/components/library/Track.vue:80
+#: front/src/components/library/Track.vue:129
 #: front/src/components/manage/library/FilesTable.vue:42
-#: front/src/components/mixins/Translations.vue:28
+#: front/src/components/mixins/Translations.vue:29
+#: front/src/components/mixins/Translations.vue:30
 msgid "Bitrate"
 msgstr "Bitrate"
 
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:19
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:34
+msgid "Block everything"
+msgstr ""
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:112
+msgid "Block everything from this account or domain. This will prevent any interaction with the entity, and purge related content (uploads, libraries, follows, etc.)"
+msgstr ""
+
 #: front/src/components/Sidebar.vue:18 src/components/library/Library.vue:4
 msgid "Browse"
 msgstr "Explorar"
@@ -333,24 +451,39 @@ msgid "By %{ artist }"
 msgstr "De %{ artist }"
 
 #: front/src/views/content/remote/Card.vue:103
-msgid "By unfollowing this library, you will loose access to its content."
+#, fuzzy
+msgid "By unfollowing this library, you loose access to its content."
+msgstr "Si dejas de seguir esta biblioteca, perderás acceso a su contenido."
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:261
+#: front/src/views/admin/moderation/DomainsDetail.vue:217
+msgid "Cached size"
 msgstr ""
 
 #: front/src/components/common/DangerousButton.vue:17
+#: front/src/components/library/Album.vue:58
+#: src/components/library/Track.vue:76
 #: front/src/components/library/radios/Filter.vue:53
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:54
 #: front/src/components/playlists/PlaylistModal.vue:63
 msgid "Cancel"
 msgstr "Cancelar"
 
 #: front/src/components/library/radios/Builder.vue:63
 msgid "Candidates"
-msgstr ""
+msgstr "Candidatos"
 
 #: front/src/components/auth/Settings.vue:76
 msgid "Cannot change your password"
 msgstr "No se puede cambiar la contraseña"
 
-#: front/src/App.vue:65
+#: front/src/components/library/FileUpload.vue:222
+#: front/src/components/library/FileUpload.vue:223
+#, fuzzy
+msgid "Cannot upload this file, ensure it is not too big"
+msgstr "Imposible subir este archivo, asegúrate que no es demasiado grande"
+
+#: front/src/components/Footer.vue:21
 msgid "Change language"
 msgstr "Cambiar idioma"
 
@@ -383,7 +516,11 @@ msgstr "Cambiar tu contraseña también cambiará tu contraseña Subsonic API si
 msgid "Changing your password will have the following consequences"
 msgstr "Cambiar tu contraseña tendrá las siguientes consecuencias"
 
-#: front/src/App.vue:6
+#: front/src/components/Footer.vue:40
+msgid "Chat room"
+msgstr ""
+
+#: front/src/App.vue:13
 msgid "Choose your instance"
 msgstr "Escoge tu instancia"
 
@@ -393,19 +530,27 @@ msgstr "Una biblioteca impecable"
 
 #: front/src/components/manage/users/InvitationForm.vue:37
 msgid "Clear"
-msgstr ""
+msgstr "Limpiar"
 
 #: front/src/components/playlists/Editor.vue:40
 #: front/src/components/playlists/Editor.vue:45
 msgid "Clear playlist"
 msgstr "Vaciar lista de reproducción"
 
+#: front/src/components/audio/Player.vue:363
+msgid "Clear your queue"
+msgstr "Vaciar cola de reproducción"
+
 #: front/src/components/Home.vue:44
 msgid "Click once, listen for hours using built-in radios"
 msgstr "Pulsa una sola vez y escucha durante horas, gracias a las radios integradas"
 
-#: front/src/components/library/FileUpload.vue:76
+#: front/src/components/library/FileUpload.vue:75
 msgid "Click to select files to upload or drag and drop files or directories"
+msgstr "Haz click para seleccionar archivos o arrastralos aquí para subirlos"
+
+#: front/src/components/ShortcutsModal.vue:20
+msgid "Close"
 msgstr ""
 
 #: front/src/components/manage/users/InvitationForm.vue:26
@@ -415,13 +560,8 @@ msgstr "Código"
 
 #: front/src/components/audio/album/Card.vue:43
 #: front/src/components/audio/artist/Card.vue:33
-#: front/src/components/discussion/Comment.vue:20
 msgid "Collapse"
-msgstr "Reducir"
-
-#: front/src/components/requests/Form.vue:14
-msgid "Comment"
-msgstr ""
+msgstr "Contraer"
 
 #: front/src/components/library/radios/Builder.vue:62
 msgid "Config"
@@ -433,29 +573,71 @@ msgstr "Confirmar"
 
 #: front/src/views/auth/EmailConfirm.vue:4 src/views/auth/EmailConfirm.vue:20
 #: front/src/views/auth/EmailConfirm.vue:51
-msgid "Confirm your email"
+#, fuzzy
+msgid "Confirm your e-mail address"
 msgstr "Confirma tu correo electrónico"
 
 #: front/src/views/auth/EmailConfirm.vue:13
 msgid "Confirmation code"
 msgstr "Código de confirmación"
 
+#: front/src/components/common/ActionTable.vue:7
+msgid "Content have been updated, click refresh to see up-to-date content"
+msgstr ""
+
+#: front/src/components/Footer.vue:48
+msgid "Contribute"
+msgstr ""
+
+#: front/src/components/audio/EmbedWizard.vue:19
 #: front/src/components/common/CopyInput.vue:8
 msgid "Copy"
+msgstr "Copiar"
+
+#: front/src/components/playlists/Editor.vue:163
+msgid "Copy tracks from current queue to playlist"
+msgstr "Copiar canciones de cola de reproducción actual a lista de reproducción"
+
+#: front/src/components/audio/EmbedWizard.vue:21
+msgid "Copy/paste this code in your website HTML"
 msgstr ""
 
+#: front/src/components/library/Track.vue:91
+#, fuzzy
+msgid "Copyright"
+msgstr "Copiar"
+
+#: front/src/views/auth/EmailConfirm.vue:7
+#, fuzzy
+msgid "Could not confirm your e-mail address"
+msgstr "Confirma tu correo electrónico"
+
+#: front/src/views/content/remote/ScanForm.vue:3
+#, fuzzy
+msgid "Could not fetch remote library"
+msgstr "Error al importar la biblioteca externa"
+
+#: front/src/views/content/libraries/FilesTable.vue:213
+#, fuzzy
+msgid "Could not process this track, ensure it is tagged correctly"
+msgstr "Ha ocurrido un error al procesar esta pista, asegúrate que esta etiquetada correctamente"
+
 #: front/src/components/Home.vue:85
 msgid "Covers, lyrics, our goal is to have them all ;)"
 msgstr "Covers, letras, queremos conseguirlo todo ;)"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:58
+#, fuzzy
+msgid "Create"
+msgstr "Crear importación"
+
 #: front/src/components/auth/Signup.vue:4
 msgid "Create a funkwhale account"
 msgstr "Crear una cuenta de funkwhale"
 
 #: front/src/views/content/libraries/Home.vue:14
-#, fuzzy
 msgid "Create a new library"
-msgstr "Crear una nueva lista de reproducción"
+msgstr "Crear una nueva biblioteca"
 
 #: front/src/components/playlists/Form.vue:2
 msgid "Create a new playlist"
@@ -465,14 +647,9 @@ msgstr "Crear una nueva lista de reproducción"
 msgid "Create an account"
 msgstr "Crear una cuenta"
 
-#: front/src/components/requests/Card.vue:25
-msgid "Create import"
-msgstr "Crear importación"
-
 #: front/src/views/content/libraries/Form.vue:26
-#, fuzzy
 msgid "Create library"
-msgstr "Una biblioteca impecable"
+msgstr "Crear biblioteca"
 
 #: front/src/components/auth/Signup.vue:51
 msgid "Create my account"
@@ -487,6 +664,7 @@ msgid "Create your own radio"
 msgstr "Crear tu propia radio"
 
 #: front/src/components/manage/users/InvitationsTable.vue:40
+#: front/src/components/mixins/Translations.vue:16
 #: front/src/components/mixins/Translations.vue:17
 msgid "Creation date"
 msgstr "Fecha de creación"
@@ -496,35 +674,42 @@ msgid "Current avatar"
 msgstr "Avatar actual"
 
 #: front/src/views/content/libraries/DetailArea.vue:4
-#, fuzzy
 msgid "Current library"
-msgstr "Una biblioteca impecable"
+msgstr "Biblioteca actual"
 
 #: front/src/components/playlists/PlaylistModal.vue:8
 msgid "Current track"
 msgstr "Canción actual"
 
 #: front/src/views/content/libraries/Quota.vue:2
-#, fuzzy
 msgid "Current usage"
-msgstr "Canción actual"
+msgstr "Uso actual"
 
 #: front/src/views/content/libraries/Detail.vue:27
 msgid "Date"
+msgstr "Fecha"
+
+#: front/src/components/ShortcutsModal.vue:75
+msgid "Decrease volume"
 msgstr ""
 
-#: front/src/views/content/libraries/Form.vue:29
-#: src/views/playlists/Detail.vue:33
 #: front/src/components/manage/library/FilesTable.vue:190
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:61
 #: front/src/components/manage/users/InvitationsTable.vue:167
-#: front/src/views/content/libraries/FilesTable.vue:258
+#: front/src/views/content/libraries/FilesTable.vue:233
+#: front/src/views/content/libraries/Form.vue:29
+#: src/views/playlists/Detail.vue:33
 msgid "Delete"
 msgstr "Borrar"
 
 #: front/src/views/content/libraries/Form.vue:39
-#, fuzzy
 msgid "Delete library"
-msgstr "Una biblioteca impecable"
+msgstr "Borrar biblioteca"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:69
+#, fuzzy
+msgid "Delete moderation rule"
+msgstr "Borrar radio"
 
 #: front/src/views/playlists/Detail.vue:38
 msgid "Delete playlist"
@@ -535,14 +720,20 @@ msgid "Delete radio"
 msgstr "Borrar radio"
 
 #: front/src/views/content/libraries/Form.vue:31
-#, fuzzy
 msgid "Delete this library?"
-msgstr "Llévame a la biblioteca"
+msgstr "¿Eliminar la biblioteca?"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:63
+#, fuzzy
+msgid "Delete this moderation rule?"
+msgstr "¿Eliminar la biblioteca?"
 
 #: front/src/components/favorites/List.vue:34
 #: src/components/library/Artists.vue:26
 #: front/src/components/library/Radios.vue:47
 #: front/src/components/manage/library/FilesTable.vue:20
+#: front/src/components/manage/moderation/AccountsTable.vue:22
+#: front/src/components/manage/moderation/DomainsTable.vue:20
 #: front/src/components/manage/users/UsersTable.vue:20
 #: front/src/views/content/libraries/FilesTable.vue:32
 #: front/src/views/playlists/List.vue:28
@@ -551,23 +742,30 @@ msgstr "Descendente"
 
 #: front/src/components/library/radios/Builder.vue:25
 #: front/src/views/content/libraries/Form.vue:14
-#, fuzzy
 msgid "Description"
-msgstr "Duración"
+msgstr "Descripción"
 
 #: front/src/views/content/libraries/Card.vue:47
 msgid "Detail"
 msgstr "Detalle"
 
 #: front/src/views/content/remote/Card.vue:50
-#, fuzzy
 msgid "Details"
-msgstr "Detalle"
+msgstr "Detalles"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:455
+msgid "Determine how much content the user can upload. Leave empty to use the default value of the instance."
+msgstr "Establecer cuanto contenido puede subir el usuario. Déjalo en blanco para usar el valor por defecto de la instancia."
+
+#: front/src/components/mixins/Translations.vue:8
+#: front/src/components/mixins/Translations.vue:9
+msgid "Determine the visibility level of your activity"
+msgstr "Determina el nivel de visibilidad de tu actividad"
 
 #: front/src/components/auth/Settings.vue:104
 #: front/src/components/auth/SubsonicTokenForm.vue:52
 msgid "Disable access"
-msgstr "Desactivar el acceso"
+msgstr "Desactivar acceso"
 
 #: front/src/components/auth/SubsonicTokenForm.vue:49
 msgid "Disable Subsonic access"
@@ -575,16 +773,32 @@ msgstr "Desactivar el acceso Subsonic"
 
 #: front/src/components/auth/SubsonicTokenForm.vue:50
 msgid "Disable Subsonic API access?"
-msgstr "¿Desactivar el acceso de API Subsonic?"
+msgstr "¿Desactivar el acceso al API de Subsonic?"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:18
+#: front/src/views/admin/moderation/AccountsDetail.vue:128
+#: front/src/views/admin/moderation/AccountsDetail.vue:132
+#, fuzzy
+msgid "Disabled"
+msgstr "Desactivar acceso"
 
 #: front/src/components/auth/SubsonicTokenForm.vue:14
 msgid "Discover how to use Funkwhale from other apps"
-msgstr "Descubrir cómo utilizar Funkwhale desde otras aplicaciones"
+msgstr "Descubre cómo utilizar Funkwhale desde otras aplicaciones"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:103
+#, fuzzy
+msgid "Display name"
+msgstr "Nombre del archivo"
 
 #: front/src/components/library/radios/Builder.vue:30
 msgid "Display publicly"
 msgstr "Mostrar públicamente"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:122
+msgid "Do not download any media file (audio, album cover, account avatar…) from this account or domain. This will purge existing content as well."
+msgstr ""
+
 #: front/src/components/playlists/Editor.vue:42
 msgid "Do you want to clear the playlist \"%{ playlist }\"?"
 msgstr "¿Quieres vaciar la lista de reproducción \"%{ playlist }\"?"
@@ -601,21 +815,34 @@ msgstr "¿Quieres borrar la lista de reproducción \"%{ playlist }\"?"
 msgid "Do you want to delete the radio \"%{ radio }\"?"
 msgstr "¿Quieres borrar la radio \"%{ radio }\"?"
 
-#: front/src/components/common/ActionTable.vue:29
+#: front/src/components/common/ActionTable.vue:36
 msgid "Do you want to launch %{ action } on %{ count } element?"
 msgid_plural "Do you want to launch %{ action } on %{ count } elements?"
 msgstr[0] "¿Quieres realizar la acción %{ action } en %{ count } elemento?"
 msgstr[1] "¿Quieres realizar la acción %{ action } en %{ count } elementos?"
 
-#: front/src/components/Sidebar.vue:104
+#: front/src/components/Sidebar.vue:107
 msgid "Do you want to restore your previous queue?"
 msgstr "¿Quieres restaurar tu cola de reproducción anterior?"
 
-#: front/src/App.vue:37
+#: front/src/components/Footer.vue:31
 msgid "Documentation"
 msgstr "Documentación"
 
-#: front/src/components/library/Track.vue:48
+#: front/src/components/manage/moderation/AccountsTable.vue:40
+#: front/src/components/mixins/Translations.vue:34
+#: front/src/views/admin/moderation/AccountsDetail.vue:93
+#: front/src/components/mixins/Translations.vue:35
+msgid "Domain"
+msgstr ""
+
+#: front/src/views/admin/moderation/Base.vue:5
+#: front/src/views/admin/moderation/DomainsList.vue:3
+#: front/src/views/admin/moderation/DomainsList.vue:48
+msgid "Domains"
+msgstr ""
+
+#: front/src/components/library/Track.vue:55
 msgid "Download"
 msgstr "Descargar"
 
@@ -624,58 +851,135 @@ msgid "Drag and drop rows to reorder tracks in the playlist"
 msgstr "Arrastra y suelta las filas para reordenar canciones en la lista de reproducción"
 
 #: front/src/components/audio/track/Table.vue:9
-#: src/components/library/Track.vue:58
+#: src/components/library/Track.vue:111
 #: front/src/components/manage/library/FilesTable.vue:43
-#: front/src/views/content/libraries/FilesTable.vue:56
-#: front/src/components/mixins/Translations.vue:29
+#: front/src/components/mixins/Translations.vue:30
+#: front/src/views/content/libraries/FilesTable.vue:59
+#: front/src/components/mixins/Translations.vue:31
 msgid "Duration"
 msgstr "Duración"
 
+#: front/src/views/auth/EmailConfirm.vue:23
+#, fuzzy
+msgid "E-mail address confirmed"
+msgstr "Correo electrónico confirmado"
+
 #: front/src/components/Home.vue:93
 msgid "Easy to use"
 msgstr "Fácil de usar"
 
 #: front/src/views/content/libraries/Detail.vue:9
-#, fuzzy
 msgid "Edit"
-msgstr "Editar..."
+msgstr "Editar"
 
 #: front/src/components/About.vue:21
 msgid "Edit instance info"
 msgstr "Editar la información de esta instancia"
 
 #: front/src/components/radios/Card.vue:22 src/views/playlists/Detail.vue:30
-msgid "Edit..."
-msgstr "Editar..."
+#, fuzzy
+msgid "Edit…"
+msgstr "Editar"
 
 #: front/src/components/auth/Signup.vue:29
 #: front/src/components/manage/users/UsersTable.vue:38
 msgid "Email"
 msgstr "Correo electrónico"
 
-#: front/src/views/admin/users/UsersDetail.vue:29
+#: front/src/views/admin/moderation/AccountsDetail.vue:111
 msgid "Email address"
 msgstr "Dirección de correo electrónico"
 
-#: front/src/views/auth/EmailConfirm.vue:23
-msgid "Email confirmed"
-msgstr "Correo electrónico confirmado"
+#: front/src/components/library/Album.vue:44
+#: src/components/library/Track.vue:62
+msgid "Embed"
+msgstr ""
+
+#: front/src/components/audio/EmbedWizard.vue:20
+msgid "Embed code"
+msgstr ""
+
+#: front/src/components/library/Album.vue:48
+msgid "Embed this album on your website"
+msgstr ""
+
+#: front/src/components/library/Track.vue:66
+msgid "Embed this track on your website"
+msgstr ""
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:230
+#: front/src/views/admin/moderation/DomainsDetail.vue:187
+#, fuzzy
+msgid "Emitted library follows"
+msgstr "Introducir url de biblioteca"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:214
+#: front/src/views/admin/moderation/DomainsDetail.vue:171
+msgid "Emitted messages"
+msgstr ""
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:8
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:17
+#: front/src/views/admin/moderation/AccountsDetail.vue:127
+#: front/src/views/admin/moderation/AccountsDetail.vue:131
+msgid "Enabled"
+msgstr ""
 
 #: front/src/views/playlists/Detail.vue:29
 msgid "End edition"
 msgstr "Terminar la edición"
 
+#: front/src/views/content/remote/ScanForm.vue:50
+#, fuzzy
+msgid "Enter a library URL"
+msgstr "Introducir url de biblioteca"
+
+#: front/src/components/library/Radios.vue:140
+#, fuzzy
+msgid "Enter a radio name…"
+msgstr "Introducir un nombre de radio…"
+
+#: front/src/components/library/Artists.vue:118
+#, fuzzy
+msgid "Enter artist name…"
+msgstr "Introducir un nombre de artista…"
+
+#: front/src/views/playlists/List.vue:107
+#, fuzzy
+msgid "Enter playlist name…"
+msgstr "Introducir un nombre de lista de reproducción…"
+
+#: front/src/components/auth/Signup.vue:100
+msgid "Enter your email"
+msgstr "Introducir tu correo electrónico"
+
+#: front/src/components/auth/Signup.vue:96 src/components/auth/Signup.vue:97
+msgid "Enter your invitation code (case insensitive)"
+msgstr "Introducir tu código de invitación (no distingue mayúsculas de minúsculas)"
+
+#: front/src/components/metadata/Search.vue:114
+#, fuzzy
+msgid "Enter your search query…"
+msgstr "Introducir tu búsqueda…"
+
+#: front/src/components/auth/Signup.vue:99
+msgid "Enter your username"
+msgstr "Introduce tu nombre de usuario"
+
+#: front/src/components/auth/Login.vue:77
+msgid "Enter your username or email"
+msgstr "Introduce tu nombre de usuario o correo electrónico"
+
 #: front/src/components/auth/SubsonicTokenForm.vue:20
 #: front/src/views/content/libraries/Form.vue:4
 msgid "Error"
 msgstr "Error"
 
-#: front/src/views/content/remote/Card.vue:39
-#, fuzzy
-msgid "Error during scan"
+#: front/src/views/admin/Settings.vue:87
+msgid "Error reporting"
 msgstr "Informes de error"
 
-#: front/src/components/common/ActionTable.vue:79
+#: front/src/components/common/ActionTable.vue:92
 msgid "Error while applying action"
 msgstr "Error al aplicar la acción"
 
@@ -687,48 +991,60 @@ msgstr "Error al pedir restablecimiento de contraseña"
 msgid "Error while changing your password"
 msgstr "Error al cambiar tu contraseña"
 
-#: front/src/views/auth/EmailConfirm.vue:7
-msgid "Error while confirming your email"
-msgstr "Error al confirmar tu correo electrónico"
+#: front/src/views/admin/moderation/DomainsList.vue:6
+#, fuzzy
+msgid "Error while creating domain"
+msgstr "Error al crear la invitación"
 
 #: front/src/components/manage/users/InvitationForm.vue:4
 msgid "Error while creating invitation"
 msgstr "Error al crear la invitación"
 
-#: front/src/views/content/remote/ScanForm.vue:3
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:7
+#, fuzzy
+msgid "Error while creating rule"
+msgstr "Error al crear la invitación"
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:126
 #, fuzzy
-msgid "Error while fetching remote library"
-msgstr "Error al escanear la biblioteca"
+msgid "Error while fetching node info"
+msgstr "Error al importar la biblioteca externa"
 
 #: front/src/components/admin/SettingsGroup.vue:5
 msgid "Error while saving settings"
 msgstr "Error al guardar los cambios"
 
-#: front/src/views/content/libraries/FilesTable.vue:16
-#: front/src/views/content/libraries/FilesTable.vue:237
+#: front/src/views/content/libraries/FilesTable.vue:212
 msgid "Errored"
-msgstr "En error"
+msgstr "Error"
 
 #: front/src/views/content/libraries/Quota.vue:75
-#, fuzzy
 msgid "Errored files"
-msgstr "En error"
-
-#: front/src/views/content/remote/Card.vue:58
-#, fuzzy
-msgid "Errored tracks:"
-msgstr "Canciones federadas"
-
-#: front/src/components/library/radios/Builder.vue:61
-msgid "Exclude"
-msgstr "Excluir"
+msgstr "Archivos con error"
 
-#: front/src/components/discussion/Comment.vue:14
-msgid "Expand"
-msgstr "Expandir"
+#: front/src/components/playlists/Form.vue:89
+msgid "Everyone"
+msgstr "Todo el mundo"
 
-#: front/src/components/manage/users/InvitationsTable.vue:41
-#: front/src/components/mixins/Translations.vue:21
+#: front/src/components/mixins/Translations.vue:11
+#: front/src/components/playlists/Form.vue:85
+#: src/views/content/libraries/Form.vue:73
+#: front/src/components/mixins/Translations.vue:12
+msgid "Everyone on this instance"
+msgstr "Todo el mundo en esta instancia"
+
+#: front/src/views/content/libraries/Form.vue:74
+#, fuzzy
+msgid "Everyone, across all instances"
+msgstr "Todo el mundo en esta instancia"
+
+#: front/src/components/library/radios/Builder.vue:61
+msgid "Exclude"
+msgstr "Excluir"
+
+#: front/src/components/manage/users/InvitationsTable.vue:41
+#: front/src/components/mixins/Translations.vue:22
+#: front/src/components/mixins/Translations.vue:23
 msgid "Expiration date"
 msgstr "Fecha de caducidad"
 
@@ -740,12 +1056,30 @@ msgstr "Caducada"
 msgid "Expired/used"
 msgstr "Caducada/usada"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:110
+msgid "Explain why you're applying this policy. Depending on your instance configuration, this will help you remember why you acted on this account or domain, and may be displayed publicly to help users understand what moderation rules are in place."
+msgstr ""
+
+#: front/src/views/content/libraries/FilesTable.vue:16
+msgid "Failed"
+msgstr ""
+
+#: front/src/views/content/remote/Card.vue:58
+#, fuzzy
+msgid "Failed tracks:"
+msgstr "Canciones con error:"
+
 #: front/src/components/Sidebar.vue:66
 msgid "Favorites"
 msgstr "Favoritos"
 
-#: front/src/components/library/FileUpload.vue:83
-msgid "File name"
+#: front/src/views/admin/Settings.vue:84
+msgid "Federation"
+msgstr "Federación"
+
+#: front/src/components/library/FileUpload.vue:84
+#, fuzzy
+msgid "Filename"
 msgstr "Nombre del archivo"
 
 #: front/src/views/admin/library/Base.vue:5
@@ -758,24 +1092,39 @@ msgid "Filter name"
 msgstr "Nombre del filtro"
 
 #: front/src/views/content/libraries/FilesTable.vue:17
-#: front/src/views/content/libraries/FilesTable.vue:241
+#: front/src/views/content/libraries/FilesTable.vue:216
 msgid "Finished"
 msgstr "Terminado"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:42
+#: front/src/components/manage/moderation/DomainsTable.vue:41
+#: front/src/views/admin/moderation/AccountsDetail.vue:159
+#: front/src/views/admin/moderation/DomainsDetail.vue:78
+msgid "First seen"
+msgstr ""
+
+#: front/src/components/mixins/Translations.vue:17
+#: front/src/components/mixins/Translations.vue:18
+#, fuzzy
+msgid "First seen date"
+msgstr "Fecha de caducidad"
+
 #: front/src/views/content/remote/Card.vue:83
 msgid "Follow"
 msgstr "Seguir"
 
+#: front/src/views/content/Home.vue:16
+msgid "Follow remote libraries"
+msgstr "Seguir bibliotecas remotas"
+
 #: front/src/views/content/remote/Card.vue:88
 #, fuzzy
-msgid "Follow pending approval"
+msgid "Follow request pending approval"
 msgstr "Solicitud de seguimiento pendiente de aprobación"
 
-#: front/src/views/content/Home.vue:16
-msgid "Follow remote libraries"
-msgstr ""
-
+#: front/src/components/mixins/Translations.vue:38
 #: front/src/views/content/libraries/Detail.vue:7
+#: front/src/components/mixins/Translations.vue:39
 msgid "Followers"
 msgstr "Seguidores"
 
@@ -783,19 +1132,10 @@ msgstr "Seguidores"
 msgid "Following"
 msgstr "Siguiendo"
 
-#: front/src/components/activity/Like.vue:14
-#: src/components/activity/Listen.vue:14
-msgid "from %{ album } by %{ artist }"
-msgstr "del álbum %{ album } de %{ artist }"
-
-#: front/src/components/library/Track.vue:13
+#: front/src/components/library/Track.vue:17
 msgid "From album %{ album } by %{ artist }"
 msgstr "Del álbum %{ album } de %{ artist }"
 
-#: front/src/App.vue:55
-msgid "Funkwhale is a free and open-source project run by volunteers. You can help us improve the platform by reporting bugs, suggesting features and share the project with your friends!"
-msgstr "Funkwhale es un proyecto gratuito de código fuente libre, gestionado por voluntarixs. Puedes ayudarnos a mejorar el servicio informando de errores, sugiriendo mejoras y compartiendo el proyecto con tus amigxs!"
-
 #: front/src/components/auth/SubsonicTokenForm.vue:7
 msgid "Funkwhale is compatible with other music players that support the Subsonic API."
 msgstr "Funkwhale es compatible con otros reproductores de música que soportan la API Subsonic."
@@ -816,6 +1156,10 @@ msgstr "Funkwhale es gratis y te da el control de tu música."
 msgid "Funkwhale takes care of handling your music"
 msgstr "Funkwhale te ayuda a gestionar tu música"
 
+#: front/src/components/ShortcutsModal.vue:38
+msgid "General shortcuts"
+msgstr ""
+
 #: front/src/components/manage/users/InvitationForm.vue:16
 msgid "Get a new invitation"
 msgstr "Obtener una nueva invitación"
@@ -826,15 +1170,19 @@ msgstr "Llévame a la biblioteca"
 
 #: front/src/components/Home.vue:76
 msgid "Get quality metadata about your music thanks to <a href=\"%{ url }\" target=\"_blank\">MusicBrainz</a>"
-msgstr ""
+msgstr "Obtén metadatos de calidad para tu música con <a href=\"%{ url }\" target=\"_blank\">MusicBrainz</a>"
 
 #: front/src/views/content/Home.vue:12 src/views/content/Home.vue:19
-#, fuzzy
 msgid "Get started"
-msgstr "Próximo paso"
+msgstr "Comenzar"
 
-#: front/src/components/common/ActionTable.vue:21
-#: front/src/components/common/ActionTable.vue:27
+#: front/src/components/Footer.vue:37
+#, fuzzy
+msgid "Getting help"
+msgstr "Ajustes"
+
+#: front/src/components/common/ActionTable.vue:34
+#: front/src/components/common/ActionTable.vue:54
 msgid "Go"
 msgstr "Ir"
 
@@ -842,9 +1190,13 @@ msgstr "Ir"
 msgid "Go to home page"
 msgstr "Ir a la página principal"
 
-#: front/src/App.vue:73
-msgid "Help us translate Funkwhale"
-msgstr "Ayúdanos a traducir Funkwhale"
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:114
+msgid "Hide account or domain content, except from followers."
+msgstr ""
+
+#: front/src/components/library/Home.vue:65
+msgid "Home"
+msgstr "Inicio"
 
 #: front/src/components/instance/Stats.vue:36
 msgid "Hours of music"
@@ -856,7 +1208,7 @@ msgstr "Sin embargo, acceder a Funkwhale desde estos clientes requiere una contr
 
 #: front/src/views/auth/PasswordResetConfirm.vue:24
 msgid "If the email address provided in the previous step is valid and binded to a user account, you should receive an email with reset instructions in the next couple of minutes."
-msgstr "Si la dirección de correo electrónico proporcionada en el paso anterior es válida y asociada a una cuenta de usuarix, deberías recibir un correo electrónico con las instrucciones de restablecimiento dentro de unos minutos."
+msgstr "Si la dirección de correo electrónico proporcionada en el paso anterior es válida y asociada a una cuenta de usuario, deberías recibir un correo electrónico con las instrucciones de restablecimiento dentro de unos minutos."
 
 #: front/src/components/manage/library/FilesTable.vue:40
 msgid "Import date"
@@ -867,15 +1219,24 @@ msgid "Import music from various platforms, such as YouTube or SoundCloud"
 msgstr "Importa música desde otras plataformas, como YouTube o SoundCloud"
 
 #: front/src/components/library/FileUpload.vue:51
-#, fuzzy
 msgid "Import reference"
 msgstr "Fuente de la importación"
 
 #: front/src/views/content/libraries/FilesTable.vue:11
-#: front/src/views/content/libraries/FilesTable.vue:55
+#: front/src/views/content/libraries/FilesTable.vue:58
 msgid "Import status"
 msgstr "Estado de la importación"
 
+#: front/src/views/content/libraries/FilesTable.vue:217
+#, fuzzy
+msgid "Imported"
+msgstr "Fecha de importación"
+
+#: front/src/components/mixins/Translations.vue:21
+#: front/src/components/mixins/Translations.vue:22
+msgid "Imported date"
+msgstr "Fecha de importación"
+
 #: front/src/components/favorites/TrackFavoriteIcon.vue:3
 msgid "In favorites"
 msgstr "En favoritos"
@@ -884,16 +1245,42 @@ msgstr "En favoritos"
 msgid "Inactive"
 msgstr "Inactivo"
 
+#: front/src/components/ShortcutsModal.vue:71
+msgid "Increase volume"
+msgstr ""
+
+#: front/src/views/auth/PasswordReset.vue:53
+msgid "Input the email address binded to your account"
+msgstr ""
+
 #: front/src/components/playlists/Editor.vue:31
 msgid "Insert from queue (%{ count } track)"
 msgid_plural "Insert from queue (%{ count } tracks)"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Agregar de la cola (%{ count } pista)"
+msgstr[1] "Agregar de la cola (%{ count } pistas)"
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:71
+#, fuzzy
+msgid "Instance data"
+msgstr "Radios de la instancia"
+
+#: front/src/views/admin/Settings.vue:80
+msgid "Instance information"
+msgstr "Información de esta instancia"
 
 #: front/src/components/library/Radios.vue:9
 msgid "Instance radios"
 msgstr "Radios de la instancia"
 
+#: front/src/views/admin/Settings.vue:75
+msgid "Instance settings"
+msgstr "Ajustes de la instancia"
+
+#: front/src/components/library/FileUpload.vue:229
+#: front/src/components/library/FileUpload.vue:230
+msgid "Invalid file type, ensure you are uploading an audio file. Supported file extensions are %{ extensions }"
+msgstr ""
+
 #: front/src/components/auth/Signup.vue:42
 #: front/src/components/manage/users/InvitationForm.vue:11
 msgid "Invitation code"
@@ -909,119 +1296,164 @@ msgstr "Código de invitación (opcional)"
 msgid "Invitations"
 msgstr "Invitaciones"
 
-#: front/src/App.vue:42
+#: front/src/components/Footer.vue:41
 msgid "Issue tracker"
 msgstr "Sistema de seguimiento de incidentes"
 
-#: front/src/views/content/libraries/Home.vue:9
-msgid "It looks like you don't have any library yet, it's time to create one!"
-msgstr ""
-
 #: front/src/components/Home.vue:50
 msgid "Keep a track of your favorite songs"
 msgstr "Apunta tus canciones favoritas"
 
-#: front/src/views/content/remote/Home.vue:14
+#: front/src/components/Footer.vue:33 src/components/ShortcutsModal.vue:3
+msgid "Keyboard shortcuts"
+msgstr ""
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:161
 #, fuzzy
+msgid "Known accounts"
+msgstr "Mi cuenta"
+
+#: front/src/views/content/remote/Home.vue:14
 msgid "Known libraries"
-msgstr "Explorando bibliotecas"
+msgstr "Bibliotecas conocidas"
 
 #: front/src/components/manage/users/UsersTable.vue:41
-#: front/src/views/admin/users/UsersDetail.vue:45
-#: front/src/components/mixins/Translations.vue:31
+#: front/src/components/mixins/Translations.vue:32
+#: front/src/views/admin/moderation/AccountsDetail.vue:184
+#: front/src/components/mixins/Translations.vue:33
 msgid "Last activity"
 msgstr "Última actividad"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:167
+#: front/src/views/admin/moderation/DomainsDetail.vue:86
+msgid "Last checked"
+msgstr ""
+
 #: front/src/components/playlists/PlaylistModal.vue:32
 msgid "Last modification"
 msgstr "Última modificación"
 
-#: front/src/views/content/remote/Card.vue:56
+#: front/src/components/manage/moderation/AccountsTable.vue:43
+msgid "Last seen"
+msgstr ""
+
+#: front/src/components/mixins/Translations.vue:18
+#: front/src/components/mixins/Translations.vue:19
 #, fuzzy
+msgid "Last seen date"
+msgstr "Última actualización:"
+
+#: front/src/views/content/remote/Card.vue:56
 msgid "Last update:"
-msgstr "Lista de reproducción actualizada"
+msgstr "Última actualización:"
 
-#: front/src/components/common/ActionTable.vue:40
+#: front/src/components/common/ActionTable.vue:47
 msgid "Launch"
 msgstr "Iniciar"
 
-#: front/src/views/content/remote/Card.vue:63
-msgid "Launch scan"
-msgstr "Iniciar escaneado"
-
 #: front/src/components/Home.vue:10
 msgid "Learn more about this instance"
 msgstr "Aprender más acerca de esta instancia"
 
-#: front/src/components/requests/Form.vue:10
-msgid "Leave this field empty if you're requesting the whole discography."
-msgstr "Deja este campo en blanco si estás pidiendo la discografía completa."
+#: front/src/components/manage/users/InvitationForm.vue:58
+msgid "Leave empty for a random code"
+msgstr "Dejar en blanco para un código aleatorio"
+
+#: front/src/components/audio/EmbedWizard.vue:7
+#, fuzzy
+msgid "Leave empty for a responsive widget"
+msgstr "Dejar en blanco para un código aleatorio"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:297
+#: front/src/views/admin/moderation/DomainsDetail.vue:233
 #: front/src/views/content/Base.vue:5
 msgid "Libraries"
 msgstr "Bibliotecas"
 
 #: front/src/views/content/libraries/Form.vue:2
 msgid "Libraries help you organize and share your music collections. You can upload your own music collection to Funkwhale and share it with your friends and family."
-msgstr ""
+msgstr "Las bibliotecas te ayudan a organizar tu colección de música. Puedes subir tu propia colección de musica a Funkwhale y compartirla con tus familiares y amigos."
 
 #: front/src/components/instance/Stats.vue:30
-#: front/src/components/manage/users/UsersTable.vue:177
-#: front/src/views/admin/users/UsersDetail.vue:181
+#: front/src/components/manage/users/UsersTable.vue:173
+#: front/src/views/admin/moderation/AccountsDetail.vue:464
 msgid "Library"
 msgstr "Biblioteca"
 
+#: front/src/views/content/libraries/Form.vue:109
+msgid "Library created"
+msgstr "Biblioteca creada"
+
+#: front/src/views/content/libraries/Form.vue:129
+#, fuzzy
+msgid "Library deleted"
+msgstr "Biblioteca actualizada"
+
 #: front/src/views/admin/library/FilesList.vue:3
 msgid "Library files"
 msgstr "Archivos de biblioteca"
 
-#: front/src/App.vue:31
-msgid "Links"
-msgstr "Enlaces"
+#: front/src/views/content/libraries/Form.vue:106
+msgid "Library updated"
+msgstr "Biblioteca actualizada"
+
+#: front/src/components/library/Track.vue:100
+msgid "License"
+msgstr ""
 
 #: front/src/views/content/libraries/Detail.vue:21
 #, fuzzy
-msgid "Loading followers..."
-msgstr "Explorando seguidorxs"
+msgid "Loading followers…"
+msgstr "Cargando seguidores…"
 
 #: front/src/views/content/libraries/Home.vue:3
 #, fuzzy
-msgid "Loading Libraries..."
-msgstr "Cargando tus favoritos…"
+msgid "Loading Libraries…"
+msgstr "Cargando bibliotecas…"
 
 #: front/src/views/content/libraries/Detail.vue:3
 #: front/src/views/content/libraries/Upload.vue:3
 #, fuzzy
-msgid "Loading library data..."
-msgstr "Introducir un nombre de dominio de biblioteca..."
+msgid "Loading library data…"
+msgstr "Cargando datos de la biblioteca…"
 
 #: front/src/views/Notifications.vue:4
 #, fuzzy
-msgid "Loading notifications..."
-msgstr "Cargando linea de tiempo…"
+msgid "Loading notifications…"
+msgstr "Cargando notificaciones…"
 
 #: front/src/views/content/remote/Home.vue:3
-#, fuzzy
 msgid "Loading remote libraries..."
-msgstr "Cargando linea de tiempo…"
-
-#: front/src/views/instance/Timeline.vue:4
-msgid "Loading timeline..."
-msgstr "Cargando linea de tiempo…"
+msgstr "Cargando bibliotecas externas…"
 
 #: front/src/views/content/libraries/Quota.vue:4
 #, fuzzy
-msgid "Loading usage data..."
-msgstr "Cargando tus favoritos…"
+msgid "Loading usage data…"
+msgstr "Cargando datos de uso…"
 
 #: front/src/components/favorites/List.vue:5
-msgid "Loading your favorites..."
+#, fuzzy
+msgid "Loading your favorites…"
 msgstr "Cargando tus favoritos…"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:59
+#: front/src/views/admin/moderation/AccountsDetail.vue:18
+#, fuzzy
+msgid "Local account"
+msgstr "Mi cuenta"
+
+#: front/src/components/auth/Login.vue:78
+msgid "Log In"
+msgstr "Iniciar sesión"
+
 #: front/src/components/auth/Login.vue:4
 msgid "Log in to your Funkwhale account"
 msgstr "Iniciar sesión con tu cuenta de Funkwhale"
 
+#: front/src/components/auth/Logout.vue:20
+msgid "Log Out"
+msgstr "Cerrar sesión"
+
 #: front/src/components/Sidebar.vue:38
 msgid "Logged in as %{ username }"
 msgstr "Sesión iniciada como %{ username }"
@@ -1030,64 +1462,161 @@ msgstr "Sesión iniciada como %{ username }"
 msgid "Login"
 msgstr "Iniciar sesión"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:119
+#, fuzzy
+msgid "Login status"
+msgstr "Estado de cuenta"
+
 #: front/src/components/Sidebar.vue:52
 msgid "Logout"
 msgstr "Cerrar sesión"
 
-#: front/src/components/library/Track.vue:105
+#: front/src/views/content/libraries/Home.vue:9
+#, fuzzy
+msgid "Looks like you don't have a library, it's time to create one."
+msgstr "Parece que aún no tienes ninguna biblioteca, ¡Es hora de crear una!"
+
+#: front/src/components/audio/Player.vue:353
+#: src/components/audio/Player.vue:354
+msgid "Looping disabled. Click to switch to single-track looping."
+msgstr "Bucle deshabilitado. Pulsa para cambiar a reproducción en bucle de la canción actual."
+
+#: front/src/components/audio/Player.vue:356
+#: src/components/audio/Player.vue:357
+msgid "Looping on a single track. Click to switch to whole queue looping."
+msgstr "Bucle de la canción actual. Pulsa para cambiar a la reproducción en bucle de la cola de reproducción entera."
+
+#: front/src/components/audio/Player.vue:359
+#: src/components/audio/Player.vue:360
+msgid "Looping on whole queue. Click to disable looping."
+msgstr "Bucle de la cola de reproducción entera. Pulsa para desactivar la reproducción en bucle."
+
+#: front/src/components/library/Track.vue:150
 msgid "Lyrics"
 msgstr "Letras"
 
+#: front/src/components/Sidebar.vue:210
+msgid "Main menu"
+msgstr ""
+
+#: front/src/views/admin/library/Base.vue:16
+msgid "Manage library"
+msgstr "Gestionar biblioteca"
+
 #: front/src/components/playlists/PlaylistModal.vue:3
 msgid "Manage playlists"
 msgstr "Gestionar listas de reproducción"
 
+#: front/src/views/admin/users/Base.vue:20
+msgid "Manage users"
+msgstr "Gestionar usuarios"
+
 #: front/src/views/playlists/List.vue:8
 msgid "Manage your playlists"
 msgstr "Gestionar tus listas de reproducción"
 
 #: front/src/views/Notifications.vue:17
-#, fuzzy
 msgid "Mark all as read"
-msgstr "Marcar como importado"
+msgstr "Marcar todo como leído"
+
+#: front/src/components/notifications/NotificationRow.vue:44
+#, fuzzy
+msgid "Mark as read"
+msgstr "Marcar todo como leído"
+
+#: front/src/components/notifications/NotificationRow.vue:45
+#, fuzzy
+msgid "Mark as unread"
+msgstr "Marcar todo como leído"
 
-#: front/src/views/admin/users/UsersDetail.vue:94
+#: front/src/views/admin/moderation/AccountsDetail.vue:281
 msgid "MB"
+msgstr "MB"
+
+#: front/src/components/audio/Player.vue:346
+msgid "Media player"
+msgstr ""
+
+#: front/src/components/Footer.vue:32
+msgid "Mobile and desktop apps"
+msgstr ""
+
+#: front/src/components/Sidebar.vue:97
+#: src/components/manage/users/UsersTable.vue:177
+#: front/src/views/admin/moderation/AccountsDetail.vue:468
+#: front/src/views/admin/moderation/Base.vue:21
+#, fuzzy
+msgid "Moderation"
+msgstr "Federación"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:49
+#: front/src/views/admin/moderation/DomainsDetail.vue:42
+msgid "Moderation policies help you control how your instance interact with a given domain or account."
 msgstr ""
 
-#: front/src/components/Sidebar.vue:63
+#: front/src/components/mixins/Translations.vue:20
+#: front/src/components/mixins/Translations.vue:21
+msgid "Modification date"
+msgstr "Fecha de modificación"
+
+#: front/src/components/Sidebar.vue:63 src/views/admin/Settings.vue:82
 msgid "Music"
 msgstr "Música"
 
+#: front/src/components/audio/Player.vue:352
+msgid "Mute"
+msgstr "Silencio"
+
 #: front/src/components/Sidebar.vue:34
 msgid "My account"
 msgstr "Mi cuenta"
 
+#: front/src/components/library/radios/Builder.vue:236
+msgid "My awesome description"
+msgstr "Mi descripción molona"
+
+#: front/src/views/content/libraries/Form.vue:70
+msgid "My awesome library"
+msgstr "Mi biblioteca molona"
+
+#: front/src/components/playlists/Form.vue:74
+msgid "My awesome playlist"
+msgstr "Mi lista de reproducción molona"
+
+#: front/src/components/library/radios/Builder.vue:235
+msgid "My awesome radio"
+msgstr "Mi radio molona"
+
 #: front/src/views/content/libraries/Home.vue:6
-#, fuzzy
 msgid "My libraries"
-msgstr "Bibliotecas"
+msgstr "Mis bibliotecas"
 
 #: front/src/components/audio/track/Row.vue:40
-#: src/components/library/Track.vue:64
-#: front/src/components/library/Track.vue:75
-#: src/components/library/Track.vue:86
-#: front/src/components/library/Track.vue:97
+#: src/components/library/Track.vue:115
+#: front/src/components/library/Track.vue:124
+#: src/components/library/Track.vue:133
+#: front/src/components/library/Track.vue:142
 #: front/src/components/manage/library/FilesTable.vue:63
 #: front/src/components/manage/library/FilesTable.vue:69
 #: front/src/components/manage/library/FilesTable.vue:75
 #: front/src/components/manage/library/FilesTable.vue:81
 #: front/src/components/manage/users/UsersTable.vue:61
-#: front/src/views/admin/users/UsersDetail.vue:49
-#: front/src/views/content/libraries/FilesTable.vue:89
-#: front/src/views/content/libraries/FilesTable.vue:95
+#: front/src/views/admin/moderation/AccountsDetail.vue:171
+#: front/src/views/admin/moderation/DomainsDetail.vue:90
+#: front/src/views/content/libraries/FilesTable.vue:92
+#: front/src/views/content/libraries/FilesTable.vue:98
+#: front/src/views/admin/moderation/DomainsDetail.vue:109
+#: front/src/views/admin/moderation/DomainsDetail.vue:117
 msgid "N/A"
 msgstr "N/A"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:39
+#: front/src/components/manage/moderation/DomainsTable.vue:38
+#: front/src/components/mixins/Translations.vue:26
 #: front/src/components/playlists/PlaylistModal.vue:31
-#: front/src/views/admin/users/UsersDetail.vue:21
+#: front/src/views/admin/moderation/DomainsDetail.vue:105
 #: front/src/views/content/libraries/Form.vue:10
-#: front/src/components/mixins/Translations.vue:25
+#: front/src/components/mixins/Translations.vue:27
 msgid "Name"
 msgstr "Nombre"
 
@@ -1096,11 +1625,15 @@ msgstr "Nombre"
 msgid "New password"
 msgstr "Nueva contraseña"
 
-#: front/src/components/Sidebar.vue:149
+#: front/src/components/Sidebar.vue:160
 msgid "New tracks will be appended here automatically."
 msgstr "Las nuevas canciones se agregarán aquí de forma automática."
 
-#: front/src/components/Sidebar.vue:116
+#: front/src/components/audio/Player.vue:350
+msgid "Next track"
+msgstr "Próxima canción"
+
+#: front/src/components/Sidebar.vue:119
 msgid "No"
 msgstr "No"
 
@@ -1108,29 +1641,49 @@ msgstr "No"
 msgid "No add-ons, no plugins : you only need a web library"
 msgstr "Sin complementos, sin extensiones : basta con una biblioteca en la web"
 
-#: front/src/components/library/Track.vue:113
+#: front/src/components/audio/Search.vue:25
+#, fuzzy
+msgid "No album matched your query"
+msgstr "Lo sentimos, no hemos encontrado ningún álbum que corresponda con tu búsqueda"
+
+#: front/src/components/audio/Search.vue:16
+#, fuzzy
+msgid "No artist matched your query"
+msgstr "Lo sentimos, no hemos encontrado ningún artista que corresponda con tu búsqueda"
+
+#: front/src/components/library/Track.vue:158
 msgid "No lyrics available for this track."
 msgstr "No hay letra disponible para esta canción."
 
 #: front/src/components/federation/LibraryWidget.vue:6
-#, fuzzy
 msgid "No matching library."
-msgstr "Introducir un nombre de dominio de biblioteca..."
+msgstr "Biblioteca no encontrada."
+
+#: front/src/views/Notifications.vue:26
+#, fuzzy
+msgid "No notifications yet."
+msgstr "Tus notificaciones"
+
+#: front/src/components/mixins/Translations.vue:10
+#: front/src/components/playlists/Form.vue:81
+#: src/views/content/libraries/Form.vue:72
+#: front/src/components/mixins/Translations.vue:11
+msgid "Nobody except me"
+msgstr "Solo yo"
 
 #: front/src/views/content/libraries/Detail.vue:57
 msgid "Nobody is following this library"
-msgstr ""
+msgstr "Nadie está siguiendo esta biblioteca"
 
 #: front/src/components/manage/users/InvitationsTable.vue:51
 msgid "Not used"
 msgstr "No usado"
 
 #: front/src/components/Sidebar.vue:46 src/views/Notifications.vue:74
-#, fuzzy
 msgid "Notifications"
-msgstr "Última modificación"
+msgstr "Notificaciones"
 
-#: front/src/App.vue:36
+#: front/src/components/Footer.vue:47
 msgid "Official website"
 msgstr "Página oficial"
 
@@ -1142,14 +1695,35 @@ msgstr "Antigua contraseña"
 msgid "Open"
 msgstr "Abierta"
 
-#: front/src/App.vue:62
-msgid "Options"
-msgstr "Opciones"
+#: front/src/views/admin/moderation/AccountsDetail.vue:23
+msgid "Open profile"
+msgstr ""
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:16
+#, fuzzy
+msgid "Open website"
+msgstr "Página oficial"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:40
+#, fuzzy
+msgid "Or customize your rule"
+msgstr "Añade filtros para personalizar tu radio"
+
+#: front/src/components/favorites/List.vue:31
+#: src/components/library/Radios.vue:41
+#: front/src/components/manage/library/FilesTable.vue:17
+#: front/src/components/manage/users/UsersTable.vue:17
+#: front/src/views/playlists/List.vue:25
+#, fuzzy
+msgid "Order"
+msgstr "Orden"
 
 #: front/src/components/favorites/List.vue:23
 #: src/components/library/Artists.vue:15
 #: front/src/components/library/Radios.vue:33
 #: front/src/components/manage/library/FilesTable.vue:9
+#: front/src/components/manage/moderation/AccountsTable.vue:11
+#: front/src/components/manage/moderation/DomainsTable.vue:9
 #: front/src/components/manage/users/InvitationsTable.vue:9
 #: front/src/components/manage/users/UsersTable.vue:9
 #: front/src/views/content/libraries/FilesTable.vue:21
@@ -1157,13 +1731,10 @@ msgstr "Opciones"
 msgid "Ordering"
 msgstr "Orden"
 
-#: front/src/components/favorites/List.vue:31
-#: src/components/library/Artists.vue:23
-#: front/src/components/library/Radios.vue:41
-#: front/src/components/manage/library/FilesTable.vue:17
-#: front/src/components/manage/users/UsersTable.vue:17
+#: front/src/components/library/Artists.vue:23
+#: front/src/components/manage/moderation/AccountsTable.vue:19
+#: front/src/components/manage/moderation/DomainsTable.vue:17
 #: front/src/views/content/libraries/FilesTable.vue:29
-#: front/src/views/playlists/List.vue:25
 msgid "Ordering direction"
 msgstr "Dirección del orden"
 
@@ -1171,21 +1742,46 @@ msgstr "Dirección del orden"
 msgid "Owner"
 msgstr "Propietario"
 
+#: front/src/components/PageNotFound.vue:33
+#, fuzzy
+msgid "Page Not Found"
+msgstr "¡Página no encontrada!"
+
 #: front/src/components/PageNotFound.vue:7
 msgid "Page not found!"
 msgstr "¡Página no encontrada!"
 
+#: front/src/components/Pagination.vue:39
+msgid "Pagination"
+msgstr ""
+
 #: front/src/components/auth/Login.vue:32 src/components/auth/Signup.vue:38
 msgid "Password"
 msgstr "Contraseña"
 
+#: front/src/components/auth/SubsonicTokenForm.vue:95
+msgid "Password updated"
+msgstr "Contraseña actualizada"
+
 #: front/src/views/auth/PasswordResetConfirm.vue:28
 msgid "Password updated successfully"
 msgstr "Contraseña actualizada con éxito"
 
-#: front/src/components/library/FileUpload.vue:105
+#: front/src/components/audio/Player.vue:349
+msgid "Pause track"
+msgstr "Pausar la canción"
+
+#: front/src/components/ShortcutsModal.vue:59
+msgid "Pause/play the current track"
+msgstr ""
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:12
+msgid "Paused"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:106
 #: front/src/views/content/libraries/FilesTable.vue:14
-#: front/src/views/content/libraries/FilesTable.vue:233
+#: front/src/views/content/libraries/FilesTable.vue:208
 msgid "Pending"
 msgstr "En espera"
 
@@ -1194,27 +1790,27 @@ msgid "Pending approval"
 msgstr "Aprobación pendiente"
 
 #: front/src/views/content/libraries/Quota.vue:22
-#, fuzzy
 msgid "Pending files"
-msgstr "En espera"
+msgstr "Archivos pendientes"
 
-#: front/src/components/requests/Form.vue:26
-msgid "Pending requests"
-msgstr "Solicitudes pendientes"
+#: front/src/components/Sidebar.vue:212
+msgid "Pending follow requests"
+msgstr "Solicitudes de seguimiento pendientes"
 
 #: front/src/components/manage/users/UsersTable.vue:42
-#: front/src/views/admin/users/UsersDetail.vue:68
+#: front/src/views/admin/moderation/AccountsDetail.vue:137
 msgid "Permissions"
 msgstr "Permisos"
 
 #: front/src/components/audio/PlayButton.vue:9
-#: src/components/library/Track.vue:30
+#: src/components/library/Track.vue:40
 msgid "Play"
 msgstr "Reproducir"
 
 #: front/src/components/audio/album/Card.vue:50
 #: front/src/components/audio/artist/Card.vue:44
-#: src/components/library/Album.vue:28 front/src/views/playlists/Detail.vue:23
+#: src/components/library/Album.vue:28
+#: front/src/components/library/Album.vue:73 src/views/playlists/Detail.vue:23
 msgid "Play all"
 msgstr "Reproducir todo"
 
@@ -1223,13 +1819,39 @@ msgid "Play all albums"
 msgstr "Reproducir todos los álbumes"
 
 #: front/src/components/audio/PlayButton.vue:15
+#: front/src/components/audio/PlayButton.vue:65
 msgid "Play next"
 msgstr "Reproducir siguiente"
 
+#: front/src/components/ShortcutsModal.vue:67
+#, fuzzy
+msgid "Play next track"
+msgstr "Reproducir canción"
+
 #: front/src/components/audio/PlayButton.vue:16
+#: front/src/components/audio/PlayButton.vue:63
+#: front/src/components/audio/PlayButton.vue:70
 msgid "Play now"
 msgstr "Reproducir ahora"
 
+#: front/src/components/ShortcutsModal.vue:63
+#, fuzzy
+msgid "Play previous track"
+msgstr "Canción anterior"
+
+#: front/src/components/Sidebar.vue:211
+#, fuzzy
+msgid "Play this track"
+msgstr "Reproducir canción"
+
+#: front/src/components/audio/Player.vue:348
+msgid "Play track"
+msgstr "Reproducir canción"
+
+#: front/src/views/playlists/Detail.vue:90
+msgid "Playlist"
+msgstr "Lista de reproducción"
+
 #: front/src/views/playlists/Detail.vue:12
 msgid "Playlist containing %{ count } track, by %{ username }"
 msgid_plural "Playlist containing %{ count } tracks, by %{ username }"
@@ -1257,8 +1879,8 @@ msgid "Playlist visibility"
 msgstr "Visibilidad de lista de reproducción"
 
 #: front/src/components/Sidebar.vue:71 src/components/library/Home.vue:16
-#: front/src/components/library/Library.vue:13 src/views/playlists/List.vue:104
-#: front/src/views/admin/Settings.vue:82
+#: front/src/components/library/Library.vue:13 src/views/admin/Settings.vue:83
+#: front/src/views/playlists/List.vue:106
 msgid "Playlists"
 msgstr "Listas de reproducción"
 
@@ -1272,16 +1894,32 @@ msgstr "Por favor, comprueba que tu contraseña es correcta"
 
 #: front/src/components/auth/Login.vue:9
 msgid "Please double-check your username/password couple is correct"
-msgstr "Por favor, comprueba que tu nombre de usuarix y contraseña son correctos"
+msgstr "Por favor, comprueba que tu nombre de usuario y contraseña son correctos"
 
 #: front/src/components/auth/Settings.vue:46
 msgid "PNG, GIF or JPG. At most 2MB. Will be downscaled to 400x400px."
 msgstr "PNG, GIF o JPG. Máximo de 2MB. La imagen será reducida a 400x400px."
 
-#: front/src/components/library/FileUpload.vue:58
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:118
+msgid "Prevent account or domain from triggering notifications, except from followers."
+msgstr ""
+
+#: front/src/components/audio/EmbedWizard.vue:29
+msgid "Preview"
+msgstr ""
+
+#: front/src/components/audio/Player.vue:347
+msgid "Previous track"
+msgstr "Canción anterior"
+
+#: front/src/views/content/remote/Card.vue:39
 #, fuzzy
+msgid "Problem during scanning"
+msgstr "Error durante el análisis"
+
+#: front/src/components/library/FileUpload.vue:58
 msgid "Proceed"
-msgstr "Proceder a inicio de sesión"
+msgstr "Continuar"
 
 #: front/src/views/auth/EmailConfirm.vue:26
 #: front/src/views/auth/PasswordResetConfirm.vue:31
@@ -1290,8 +1928,10 @@ msgstr "Proceder a inicio de sesión"
 
 #: front/src/components/library/FileUpload.vue:17
 msgid "Processing"
-msgstr ""
+msgstr "Procesando"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:188
+#: front/src/components/manage/moderation/DomainsTable.vue:168
 #: front/src/views/content/libraries/Quota.vue:36
 #: front/src/views/content/libraries/Quota.vue:39
 #: front/src/views/content/libraries/Quota.vue:62
@@ -1299,24 +1939,36 @@ msgstr ""
 #: front/src/views/content/libraries/Quota.vue:88
 #: front/src/views/content/libraries/Quota.vue:91
 msgid "Purge"
-msgstr ""
+msgstr "Eliminar"
 
 #: front/src/views/content/libraries/Quota.vue:89
 msgid "Purge errored files?"
-msgstr ""
+msgstr "¿Eliminar los archivos con errores?"
 
 #: front/src/views/content/libraries/Quota.vue:37
 msgid "Purge pending files?"
-msgstr ""
+msgstr "¿Eliminar los archivos pendientes?"
 
 #: front/src/views/content/libraries/Quota.vue:63
 msgid "Purge skipped files?"
-msgstr ""
+msgstr "¿Eliminar los archivos omitidos?"
 
 #: front/src/components/Sidebar.vue:20
 msgid "Queue"
 msgstr "Cola de reproducción"
 
+#: front/src/components/audio/Player.vue:282
+msgid "Queue shuffled!"
+msgstr "¡Cola de reproducción mezclada!"
+
+#: front/src/views/radios/Detail.vue:80
+msgid "Radio"
+msgstr "Radio"
+
+#: front/src/components/library/radios/Builder.vue:233
+msgid "Radio Builder"
+msgstr "Editor de radio"
+
 #: front/src/components/library/radios/Builder.vue:15
 msgid "Radio created"
 msgstr "Radio creada"
@@ -1330,13 +1982,25 @@ msgid "Radio updated"
 msgstr "Radio actualizada"
 
 #: front/src/components/library/Library.vue:10
-#: src/components/library/Radios.vue:142
+#: src/components/library/Radios.vue:141
 msgid "Radios"
 msgstr "Radios"
 
-#: front/src/views/instance/Timeline.vue:7
-msgid "Recent activity on this instance"
-msgstr "Actividad reciente en esta instancia"
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:39
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:25
+msgid "Reason"
+msgstr ""
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:222
+#: front/src/views/admin/moderation/DomainsDetail.vue:179
+msgid "Received library follows"
+msgstr ""
+
+#: front/src/components/manage/moderation/DomainsTable.vue:40
+#: front/src/components/mixins/Translations.vue:36
+#: front/src/components/mixins/Translations.vue:37
+msgid "Received messages"
+msgstr ""
 
 #: front/src/components/library/Home.vue:24
 msgid "Recently added"
@@ -1350,11 +2014,18 @@ msgstr "Añadidos a favoritos recientemente"
 msgid "Recently listened"
 msgstr "Escuchados recientemente"
 
-#: front/src/views/admin/users/UsersDetail.vue:103
 #: front/src/views/content/remote/Home.vue:15
 msgid "Refresh"
 msgstr "Recargar"
 
+#: front/src/views/admin/moderation/DomainsDetail.vue:135
+msgid "Refresh node info"
+msgstr ""
+
+#: front/src/components/common/ActionTable.vue:272
+msgid "Refresh table content"
+msgstr ""
+
 #: front/src/components/auth/Profile.vue:12
 msgid "Registered since %{ date }"
 msgstr "Inscritx desde %{ date }"
@@ -1365,24 +2036,33 @@ msgstr "La inscripción a esta instancia está cerrada, necesitarás un código
 
 #: front/src/components/manage/users/UsersTable.vue:71
 msgid "regular user"
-msgstr "Usuarix estándar"
+msgstr "Usuario estándar"
 
 #: front/src/views/content/libraries/Detail.vue:51
 msgid "Reject"
-msgstr ""
+msgstr "Rechazar"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:32
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:123
+#, fuzzy
+msgid "Reject media"
+msgstr "Rechazada"
 
 #: front/src/views/content/libraries/Detail.vue:43
 msgid "Rejected"
-msgstr ""
+msgstr "Rechazada"
+
+#: front/src/views/content/libraries/FilesTable.vue:234
+msgid "Relaunch import"
+msgstr "Reiniciar importación"
 
 #: front/src/views/content/remote/Home.vue:6
-#, fuzzy
 msgid "Remote libraries"
-msgstr "Llévame a la biblioteca"
+msgstr "Bibliotecas remotas"
 
 #: front/src/views/content/remote/Home.vue:7
 msgid "Remote libraries are owned by other users on the network. You can access them as long as they are public or you are granted access."
-msgstr ""
+msgstr "Las bibliotecas remotas pertenecen a otros usuarios de internet. Podrás acceder a ellas cuando sean públicas o cuando te permitan el acceso."
 
 #: front/src/components/library/radios/Filter.vue:59
 msgid "Remove"
@@ -1392,6 +2072,24 @@ msgstr "Quitar"
 msgid "Remove avatar"
 msgstr "Quitar avatar"
 
+#: front/src/components/favorites/TrackFavoriteIcon.vue:26
+msgid "Remove from favorites"
+msgstr "Quitar de favoritos"
+
+#: front/src/views/content/libraries/Quota.vue:38
+msgid "Removes uploaded but yet to be processed tracks completely, adding the corresponding data to your quota."
+msgstr ""
+
+#: front/src/views/content/libraries/Quota.vue:64
+#, fuzzy
+msgid "Removes uploaded tracks skipped during the import processes completely, adding the corresponding data to your quota."
+msgstr "Esto borrará las pistas que fueron subidas pero se omitieron por alguna razón. Se borrarán completamente y recuperarás la cuota correspondiente."
+
+#: front/src/views/content/libraries/Quota.vue:90
+#, fuzzy
+msgid "Removes uploaded tracks that could not be processed by the server completely, adding the corresponding data to your quota."
+msgstr "Esto borrará las pistas que fueron subidas pero no se procesaron en el servidor. Se borrarán completamente y recuperarás la cuota correspondiente."
+
 #: front/src/components/auth/SubsonicTokenForm.vue:34
 #: front/src/components/auth/SubsonicTokenForm.vue:37
 msgid "Request a new password"
@@ -1405,11 +2103,8 @@ msgstr "¿Solicitar una nueva contraseña de la API Subsonic?"
 msgid "Request a password"
 msgstr "Solicitar una contraseña"
 
-#: front/src/components/requests/Form.vue:20
-msgid "Request submitted!"
-msgstr "¡Solicitud enviada!"
-
 #: front/src/components/auth/Login.vue:34 src/views/auth/PasswordReset.vue:4
+#: front/src/views/auth/PasswordReset.vue:52
 msgid "Reset your password"
 msgstr "Restablecer tu contraseña"
 
@@ -1419,33 +2114,57 @@ msgstr "Restablecer tu contraseña"
 msgid "Results per page"
 msgstr "Resultados por página"
 
+#: front/src/views/auth/EmailConfirm.vue:17
+#, fuzzy
+msgid "Return to login"
+msgstr "Proceder a inicio de sesión"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:16
+msgid "Rule"
+msgstr ""
+
 #: front/src/components/admin/SettingsGroup.vue:63
 #: front/src/components/library/radios/Builder.vue:33
 msgid "Save"
 msgstr "Guardar"
 
+#: front/src/views/content/remote/Card.vue:165
+msgid "Scan launched"
+msgstr "Análisis iniciado"
+
+#: front/src/views/content/remote/Card.vue:63
+#, fuzzy
+msgid "Scan now"
+msgstr "Reproducir ahora"
+
+#: front/src/views/content/remote/Card.vue:166
+msgid "Scan skipped (previous scan is too recent)"
+msgstr "Análisis omitido (el anterior análisis es demasiado reciente)"
+
 #: front/src/views/content/remote/Card.vue:31
 #, fuzzy
-msgid "Scan pending"
-msgstr "Ascendente"
+msgid "Scan waiting"
+msgstr "Análisis pendiente"
 
 #: front/src/views/content/remote/Card.vue:43
 #, fuzzy
-msgid "Scanned successfully"
-msgstr "Ajustes actualizados con éxito."
+msgid "Scanned"
+msgstr "Análisis iniciado"
 
 #: front/src/views/content/remote/Card.vue:47
-#, fuzzy
 msgid "Scanned with errors"
-msgstr "Cambios sincronizados con el servidor"
+msgstr "Análisis erróneo"
 
 #: front/src/views/content/remote/Card.vue:35
-msgid "Scanning... (%{ progress }%)"
-msgstr ""
+#, fuzzy
+msgid "Scanning… (%{ progress }%)"
+msgstr "Analizando…(%{ progress }%)"
 
 #: front/src/components/library/Artists.vue:10
 #: src/components/library/Radios.vue:29
 #: front/src/components/manage/library/FilesTable.vue:5
+#: front/src/components/manage/moderation/AccountsTable.vue:5
+#: front/src/components/manage/moderation/DomainsTable.vue:5
 #: front/src/components/manage/users/InvitationsTable.vue:5
 #: front/src/components/manage/users/UsersTable.vue:5
 #: front/src/views/content/libraries/FilesTable.vue:5
@@ -1454,24 +2173,65 @@ msgid "Search"
 msgstr "Buscar"
 
 #: front/src/views/content/remote/ScanForm.vue:9
-#, fuzzy
 msgid "Search a remote library"
-msgstr "Llévame a la biblioteca"
+msgstr "Buscar una biblioteca externa"
+
+#: front/src/components/manage/moderation/AccountsTable.vue:171
+#, fuzzy
+msgid "Search by domain, username, bio..."
+msgstr "Buscar por nombre de usuario, correo electrónico, código…"
+
+#: front/src/components/manage/moderation/DomainsTable.vue:151
+#, fuzzy
+msgid "Search by name..."
+msgstr "Buscar por usuario, correo electrónico, nombre…"
+
+#: front/src/views/content/libraries/FilesTable.vue:201
+#, fuzzy
+msgid "Search by title, artist, album…"
+msgstr "Buscar por título, artista, álbum…"
+
+#: front/src/components/manage/library/FilesTable.vue:176
+#, fuzzy
+msgid "Search by title, artist, domain…"
+msgstr "Buscar por título, artista, dominio…"
+
+#: front/src/components/manage/users/InvitationsTable.vue:153
+#, fuzzy
+msgid "Search by username, e-mail address, code…"
+msgstr "Buscar por nombre de usuario, correo electrónico, código…"
+
+#: front/src/components/manage/users/UsersTable.vue:163
+#, fuzzy
+msgid "Search by username, e-mail address, name…"
+msgstr "Buscar por usuario, correo electrónico, nombre…"
+
+#: front/src/components/audio/SearchBar.vue:20
+#, fuzzy
+msgid "Search for artists, albums, tracks…"
+msgstr "Buscar artistas, álbumes, canciones…"
 
 #: front/src/components/audio/Search.vue:2
 msgid "Search for some music"
 msgstr "Buscar música"
 
-#: front/src/components/library/Track.vue:116
+#: front/src/components/library/Track.vue:162
 msgid "Search on lyrics.wikia.com"
 msgstr "Buscar en lyrics.wikia.com"
 
 #: front/src/components/library/Album.vue:33
 #: src/components/library/Artist.vue:31
-#: front/src/components/library/Track.vue:40
+#: front/src/components/library/Track.vue:47
 msgid "Search on Wikipedia"
 msgstr "Buscar en Wikipedia"
 
+#: front/src/components/library/Library.vue:32
+#: src/views/admin/library/Base.vue:17
+#: front/src/views/admin/moderation/Base.vue:22
+#: src/views/admin/users/Base.vue:21 front/src/views/content/Base.vue:19
+msgid "Secondary menu"
+msgstr ""
+
 #: front/src/views/admin/Settings.vue:15
 msgid "Sections"
 msgstr "Secciones"
@@ -1480,19 +2240,19 @@ msgstr "Secciones"
 msgid "Select a filter"
 msgstr "Seleccionar un filtro"
 
-#: front/src/components/common/ActionTable.vue:64
+#: front/src/components/common/ActionTable.vue:77
 msgid "Select all %{ total } elements"
 msgid_plural "Select all %{ total } elements"
 msgstr[0] "Seleccionar %{ total } elemento"
 msgstr[1] "Seleccionar los %{ total } elementos"
 
-#: front/src/components/common/ActionTable.vue:73
+#: front/src/components/common/ActionTable.vue:86
 msgid "Select only current page"
 msgstr "Seleccionar solo la página actual"
 
-#: front/src/components/Sidebar.vue:43 src/components/Sidebar.vue:88
-#: front/src/components/manage/users/UsersTable.vue:185
-#: front/src/views/admin/users/UsersDetail.vue:189
+#: front/src/components/Sidebar.vue:43 src/components/Sidebar.vue:85
+#: front/src/components/manage/users/UsersTable.vue:181
+#: front/src/views/admin/moderation/AccountsDetail.vue:472
 msgid "Settings"
 msgstr "Ajustes"
 
@@ -1509,21 +2269,20 @@ msgid "Share link"
 msgstr "Compartir enlace"
 
 #: front/src/views/content/libraries/Detail.vue:15
-msgid "Share this link with other users so they can request an access to your library."
-msgstr ""
+#, fuzzy
+msgid "Share this link with other users so they can request access to your library."
+msgstr "Comparte este link con otros usuarios para que puedan pedir acceso a tu biblioteca."
 
 #: front/src/views/content/libraries/Detail.vue:14
 #: front/src/views/content/remote/Card.vue:73
-#, fuzzy
 msgid "Sharing link"
 msgstr "Compartir enlace"
 
 #: front/src/components/audio/album/Card.vue:40
-#, fuzzy
 msgid "Show %{ count } more track"
 msgid_plural "Show %{ count } more tracks"
-msgstr[0] "%{ count } canción"
-msgstr[1] "%{ count } canciones"
+msgstr[0] "Mostrar %{ count } canción más"
+msgstr[1] "Mostrar %{ count } canciones más"
 
 #: front/src/components/audio/artist/Card.vue:30
 msgid "Show 1 more album"
@@ -1531,61 +2290,88 @@ msgid_plural "Show %{ count } more albums"
 msgstr[0] "Mostrar 1 álbum adicional"
 msgstr[1] "Mostrar %{ count } álbumes adicionales"
 
+#: front/src/components/ShortcutsModal.vue:42
+msgid "Show available keyboard shortcuts"
+msgstr ""
+
 #: front/src/views/Notifications.vue:10
-#, fuzzy
 msgid "Show read notifications"
-msgstr "Última modificación"
+msgstr "Mostrar notificaciones leídas"
+
+#: front/src/components/forms/PasswordInput.vue:25
+msgid "Show/hide password"
+msgstr "Mostrar/ocultar contraseña"
 
 #: front/src/components/manage/library/FilesTable.vue:97
+#: front/src/components/manage/moderation/AccountsTable.vue:88
+#: front/src/components/manage/moderation/DomainsTable.vue:74
 #: front/src/components/manage/users/InvitationsTable.vue:76
 #: front/src/components/manage/users/UsersTable.vue:87
-#: front/src/views/content/libraries/FilesTable.vue:111
+#: front/src/views/content/libraries/FilesTable.vue:114
 msgid "Showing results %{ start }-%{ end } on %{ total }"
 msgstr "Mostrando resultados %{ start }-%{ end } de %{ total }"
 
+#: front/src/components/ShortcutsModal.vue:83
+#, fuzzy
+msgid "Shuffle queue"
+msgstr "Mezclar tu cola de reproducción"
+
+#: front/src/components/audio/Player.vue:362
+msgid "Shuffle your queue"
+msgstr "Mezclar tu cola de reproducción"
+
+#: front/src/components/auth/Signup.vue:95
+msgid "Sign Up"
+msgstr "Inscripción"
+
 #: front/src/components/manage/users/UsersTable.vue:40
-#: front/src/views/admin/users/UsersDetail.vue:37
 msgid "Sign-up"
 msgstr "Inscripción"
 
-#: front/src/components/library/FileUpload.vue:84
-#: src/components/library/Track.vue:69
+#: front/src/components/mixins/Translations.vue:31
+#: front/src/views/admin/moderation/AccountsDetail.vue:176
+#: front/src/components/mixins/Translations.vue:32
+msgid "Sign-up date"
+msgstr "Fecha de inscripción"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:24
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:115
+#, fuzzy
+msgid "Silence activity"
+msgstr "Actividad de usuario"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:28
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:119
+#, fuzzy
+msgid "Silence notifications"
+msgstr "Mostrar notificaciones leídas"
+
+#: front/src/components/library/FileUpload.vue:85
+#: front/src/components/library/Track.vue:120
 #: front/src/components/manage/library/FilesTable.vue:44
-#: front/src/views/content/libraries/FilesTable.vue:57
-#: front/src/components/mixins/Translations.vue:27
+#: front/src/components/mixins/Translations.vue:28
+#: front/src/views/content/libraries/FilesTable.vue:60
+#: front/src/components/mixins/Translations.vue:29
 msgid "Size"
 msgstr "Tamaño"
 
 #: front/src/views/content/libraries/FilesTable.vue:15
-#: front/src/views/content/libraries/FilesTable.vue:229
+#: front/src/views/content/libraries/FilesTable.vue:204
 msgid "Skipped"
 msgstr "Omitido"
 
 #: front/src/views/content/libraries/Quota.vue:49
-#, fuzzy
 msgid "Skipped files"
-msgstr "Omitido"
-
-#: front/src/components/requests/Form.vue:3
-msgid "Something's missing in the library? Let us know what you would like to listen!"
-msgstr "¿Falta algo en la biblioteca? Dinos lo que te gustaría escuchar!"
-
-#: front/src/components/audio/Search.vue:25
-msgid "Sorry, we did not found any album matching your query"
-msgstr "Lo sentimos, no hemos encontrado ningún álbum que corresponda con tu búsqueda"
+msgstr "Archivos omitidos"
 
-#: front/src/components/audio/Search.vue:16
-msgid "Sorry, we did not found any artist matching your query"
-msgstr "Lo sentimos, no hemos encontrado ningún artista que corresponda con tu búsqueda"
+#: front/src/views/admin/moderation/DomainsDetail.vue:97
+msgid "Software"
+msgstr ""
 
-#: front/src/App.vue:40
+#: front/src/components/Footer.vue:49
 msgid "Source code"
 msgstr "Código fuente"
 
-#: front/src/App.vue:39
-msgid "Source code (%{version})"
-msgstr "Código fuente (%{version})"
-
 #: front/src/components/auth/Profile.vue:23
 #: front/src/components/manage/users/UsersTable.vue:70
 msgid "Staff member"
@@ -1595,10 +2381,23 @@ msgstr "Miembro del equipo"
 msgid "Start"
 msgstr "Iniciar"
 
-#: front/src/components/library/FileUpload.vue:85
+#: front/src/views/admin/Settings.vue:86
+msgid "Statistics"
+msgstr "Estadísticas"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:454
+msgid "Statistics are computed from known activity and content on your instance, and do not reflect general activity for this account"
+msgstr ""
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:358
+msgid "Statistics are computed from known activity and content on your instance, and do not reflect general activity for this domain"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:86
 #: front/src/components/manage/users/InvitationsTable.vue:17
 #: front/src/components/manage/users/InvitationsTable.vue:39
 #: front/src/components/manage/users/UsersTable.vue:43
+#: front/src/views/admin/moderation/DomainsDetail.vue:123
 #: front/src/views/content/libraries/Detail.vue:28
 msgid "Status"
 msgstr "Estado"
@@ -1607,52 +2406,68 @@ msgstr "Estado"
 msgid "Stop"
 msgstr "Parar"
 
-#: front/src/components/Sidebar.vue:150
+#: front/src/components/Sidebar.vue:161
 msgid "Stop radio"
 msgstr "Parar radio"
 
-#: front/src/App.vue:11 src/components/requests/Form.vue:17
+#: front/src/App.vue:22
 msgid "Submit"
 msgstr "Enviar"
 
-#: front/src/components/requests/Form.vue:22
-msgid "Submit another request"
-msgstr "Enviar otra solicitud"
+#: front/src/views/admin/Settings.vue:85
+msgid "Subsonic"
+msgstr "Subsonic"
 
 #: front/src/components/auth/SubsonicTokenForm.vue:2
 msgid "Subsonic API password"
 msgstr "Contraseña de la API Subsonic"
 
-#: front/src/App.vue:13
+#: front/src/App.vue:26
 msgid "Suggested choices"
 msgstr "Sugerencias"
 
 #: front/src/components/library/FileUpload.vue:3
 msgid "Summary"
+msgstr "Resumen"
+
+#: front/src/components/Footer.vue:39
+msgid "Support forum"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:78
+msgid "Supported extensions: %{ extensions }"
 msgstr ""
 
 #: front/src/components/playlists/Editor.vue:9
-msgid "Syncing changes to server..."
+#, fuzzy
+msgid "Syncing changes to server…"
 msgstr "Sincronizando los cambios con el servidor…"
 
 #: front/src/components/common/CopyInput.vue:3
 msgid "Text copied to clipboard!"
-msgstr ""
+msgstr "¡Texto copiado al portapapeles!"
 
 #: front/src/components/Home.vue:26
 msgid "That's simple: we loved Grooveshark and we want to build something even better."
 msgstr "Así de simple: nos encantó Grooveshark y quisimos hacer algo incluso mejor."
 
-#: front/src/App.vue:58
+#: front/src/components/Footer.vue:53
 msgid "The funkwhale logo was kindly designed and provided by Francis Gading."
-msgstr "El logotipo de funkwhale fue generosamente diseñado y suplido por Francis Gading."
+msgstr ""
+"El logotipo de Funkwhale fue generosamente diseñado y suplido por Francis "
+"Gading."
 
 #: front/src/views/content/libraries/Form.vue:34
-msgid "The library and all its tracks will be deleted. This action is irreversible."
-msgstr ""
+#, fuzzy
+msgid "The library and all its tracks will be deleted. This can not be undone."
+msgstr "La biblioteca y todas sus pistas serán borradas. Esta acción es irreversible."
 
 #: front/src/components/library/FileUpload.vue:39
 msgid "The music files you are uploading are tagged properly:"
+msgstr "Las canciones que estás subiendo estén etiquetadas correctamente:"
+
+#: front/src/components/audio/Player.vue:67
+msgid "The next track will play automatically in a few seconds..."
 msgstr ""
 
 #: front/src/components/Home.vue:121
@@ -1665,35 +2480,68 @@ msgstr "La API Subsonic no está disponible en esta instancia de Funkwhale."
 
 #: front/src/components/library/FileUpload.vue:43
 msgid "The uploaded music files are in OGG, Flac or MP3 format"
+msgstr "Las canciones subidas estén en formato OGG, Flac o MP3"
+
+#: front/src/views/content/Home.vue:4
+#, fuzzy
+msgid "There are various ways to grab new content and make it available here."
+msgstr "Ofrecemos varias formas de obtener nuevo contenido para hacerlo disponible aquí."
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:66
+msgid "This action is irreversible."
 msgstr ""
 
-#: front/src/components/library/Album.vue:52
+#: front/src/components/library/Album.vue:91
 msgid "This album is present in the following libraries:"
-msgstr ""
+msgstr "Este album ya está en las siguientes bibliotecas:"
 
 #: front/src/components/library/Artist.vue:63
 msgid "This artist is present in the following libraries:"
+msgstr "Este artista ya está en las siguientes bibliotecas:"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:55
+#: front/src/views/admin/moderation/DomainsDetail.vue:48
+msgid "This domain is subject to specific moderation rules"
 msgstr ""
 
 #: front/src/views/content/Home.vue:9
-msgid "This instance offers up to %{quota} of storage space to every user."
-msgstr ""
+#, fuzzy
+msgid "This instance offers up to %{quota} of storage space for every user."
+msgstr "Esta instancia ofrece %{ quota } de almacenamiento a cada usuario."
 
 #: front/src/components/auth/Profile.vue:16
 msgid "This is you!"
 msgstr "¡Eres tú!"
 
-#: front/src/components/common/ActionTable.vue:38
-msgid "This may affect a lot of elements, please double check this is really what you want."
+#: front/src/views/content/libraries/Form.vue:71
+#, fuzzy
+msgid "This library contains my personal music, I hope you like it."
+msgstr "Esta biblioteca contiene mi música personal, ¡espero que te guste!"
+
+#: front/src/views/content/remote/Card.vue:131
+msgid "This library is private and your approval from its owner is needed to access its content"
+msgstr ""
+
+#: front/src/views/content/remote/Card.vue:132
+msgid "This library is public and you can access its content freely"
+msgstr ""
+
+#: front/src/components/common/ActionTable.vue:45
+#, fuzzy
+msgid "This may affect a lot of elements or have irreversible consequences, please double check this is really what you want."
 msgstr "Esto puede afectar a muchos elementos, por favor comprueba si esto es realmente lo que quieres."
 
 #: front/src/components/library/FileUpload.vue:52
 msgid "This reference will be used to group imported files together."
+msgstr "Esta referencia será usada para agrupar los archivos subidos."
+
+#: front/src/components/audio/PlayButton.vue:73
+msgid "This track is not available in any library you have access to"
 msgstr ""
 
-#: front/src/components/library/Track.vue:125
+#: front/src/components/library/Track.vue:171
 msgid "This track is present in the following libraries:"
-msgstr ""
+msgstr "Esta canción ya está en las siguientes bibliotecas:"
 
 #: front/src/views/playlists/Detail.vue:37
 msgid "This will completely delete this playlist and cannot be undone."
@@ -1707,164 +2555,10 @@ msgstr "Esto borrará por completo esta radio y no se podrá deshacer."
 msgid "This will completely disable access to the Subsonic API using from account."
 msgstr "Esto desactivará por completo el acceso a la API Subsonic desde esta cuenta."
 
-#: front/src/App.vue:162 src/components/About.vue:55
-#: src/components/Home.vue:154 front/src/components/PageNotFound.vue:33
-#: src/components/Sidebar.vue:203 front/src/components/Sidebar.vue:204
-#: src/components/audio/PlayButton.vue:54
-#: front/src/components/audio/PlayButton.vue:55
-#: front/src/components/audio/PlayButton.vue:56
-#: front/src/components/audio/PlayButton.vue:61
-#: front/src/components/audio/PlayButton.vue:64
-#: front/src/components/audio/PlayButton.vue:158
-#: src/components/audio/Player.vue:216
-#: front/src/components/audio/Player.vue:273
-#: src/components/audio/Player.vue:274
-#: front/src/components/audio/Player.vue:275
-#: src/components/audio/Player.vue:276
-#: front/src/components/audio/Player.vue:277
-#: src/components/audio/Player.vue:278
-#: front/src/components/audio/Player.vue:279
-#: src/components/audio/Player.vue:280
-#: front/src/components/audio/Player.vue:281
-#: src/components/audio/Player.vue:282
-#: front/src/components/audio/Player.vue:283 src/components/audio/Search.vue:65
-#: front/src/components/audio/SearchBar.vue:20
-#: src/components/audio/SearchBar.vue:25
-#: front/src/components/audio/SearchBar.vue:26
-#: src/components/audio/SearchBar.vue:27 front/src/components/auth/Login.vue:77
-#: src/components/auth/Login.vue:78 front/src/components/auth/Logout.vue:20
-#: src/components/auth/Profile.vue:47
-#: front/src/components/auth/Settings.vue:249 src/components/auth/Signup.vue:95
-#: front/src/components/auth/Signup.vue:96 src/components/auth/Signup.vue:97
-#: front/src/components/auth/Signup.vue:98
-#: front/src/components/auth/SubsonicTokenForm.vue:95
-#: front/src/components/auth/SubsonicTokenForm.vue:111
-#: front/src/components/favorites/List.vue:110
-#: front/src/components/favorites/TrackFavoriteIcon.vue:19
-#: front/src/components/favorites/TrackFavoriteIcon.vue:21
-#: front/src/components/forms/PasswordInput.vue:25
-#: front/src/components/library/Album.vue:101
-#: src/components/library/Artist.vue:129
-#: front/src/components/library/Artists.vue:119
-#: front/src/components/library/Artists.vue:120
-#: front/src/components/library/FileUpload.vue:238
-#: front/src/components/library/FileUpload.vue:239
-#: front/src/components/library/FileUpload.vue:240
-#: front/src/components/library/FileUpload.vue:241
-#: src/components/library/Home.vue:65
-#: front/src/components/library/Radios.vue:141
-#: src/components/library/Radios.vue:142
-#: front/src/components/library/Track.vue:195
-#: front/src/components/library/radios/Builder.vue:233
-#: front/src/components/library/radios/Builder.vue:235
-#: front/src/components/library/radios/Builder.vue:236
-#: front/src/components/manage/library/FilesTable.vue:176
-#: front/src/components/manage/library/FilesTable.vue:190
-#: front/src/components/manage/users/InvitationForm.vue:58
-#: front/src/components/manage/users/InvitationsTable.vue:153
-#: front/src/components/manage/users/InvitationsTable.vue:167
-#: front/src/components/manage/users/UsersTable.vue:163
-#: front/src/components/manage/users/UsersTable.vue:173
-#: front/src/components/manage/users/UsersTable.vue:177
-#: front/src/components/manage/users/UsersTable.vue:181
-#: front/src/components/manage/users/UsersTable.vue:185
-#: front/src/components/metadata/ArtistCard.vue:49
-#: front/src/components/metadata/ReleaseCard.vue:53
-#: front/src/components/metadata/Search.vue:114
-#: front/src/components/metadata/Search.vue:130
-#: front/src/components/metadata/Search.vue:134
-#: front/src/components/metadata/Search.vue:138
-#: front/src/components/mixins/Translations.vue:7
-#: front/src/components/mixins/Translations.vue:8
-#: front/src/components/mixins/Translations.vue:10
-#: front/src/components/mixins/Translations.vue:11
-#: front/src/components/mixins/Translations.vue:16
-#: front/src/components/mixins/Translations.vue:17
-#: front/src/components/mixins/Translations.vue:18
-#: front/src/components/mixins/Translations.vue:19
-#: front/src/components/mixins/Translations.vue:20
-#: front/src/components/mixins/Translations.vue:21
-#: front/src/components/mixins/Translations.vue:22
-#: front/src/components/mixins/Translations.vue:23
-#: front/src/components/mixins/Translations.vue:24
-#: front/src/components/mixins/Translations.vue:25
-#: front/src/components/mixins/Translations.vue:26
-#: front/src/components/mixins/Translations.vue:27
-#: front/src/components/mixins/Translations.vue:28
-#: front/src/components/mixins/Translations.vue:29
-#: front/src/components/mixins/Translations.vue:30
-#: front/src/components/mixins/Translations.vue:31
-#: front/src/components/notifications/NotificationRow.vue:39
-#: front/src/components/notifications/NotificationRow.vue:40
-#: front/src/components/notifications/NotificationRow.vue:44
-#: front/src/components/notifications/NotificationRow.vue:45
-#: front/src/components/notifications/NotificationRow.vue:62
-#: front/src/components/playlists/Editor.vue:163
-#: src/components/playlists/Form.vue:74
-#: front/src/components/playlists/Form.vue:81
-#: src/components/playlists/Form.vue:85
-#: front/src/components/playlists/Form.vue:89
-#: front/src/components/playlists/PlaylistModal.vue:116
-#: front/src/components/playlists/TrackPlaylistIcon.vue:32
-#: front/src/components/requests/Form.vue:73
-#: src/components/requests/Form.vue:74
-#: front/src/components/requests/Form.vue:75 src/views/Notifications.vue:74
-#: front/src/views/admin/Settings.vue:75 src/views/admin/Settings.vue:80
-#: front/src/views/admin/Settings.vue:81 src/views/admin/Settings.vue:82
-#: front/src/views/admin/Settings.vue:83 src/views/admin/Settings.vue:84
-#: front/src/views/admin/Settings.vue:85 src/views/admin/Settings.vue:86
-#: front/src/views/admin/library/Base.vue:16
-#: src/views/admin/library/FilesList.vue:21
-#: front/src/views/admin/users/Base.vue:20
-#: front/src/views/admin/users/InvitationsList.vue:24
-#: front/src/views/admin/users/UsersDetail.vue:169
-#: front/src/views/admin/users/UsersDetail.vue:170
-#: front/src/views/admin/users/UsersDetail.vue:177
-#: front/src/views/admin/users/UsersDetail.vue:181
-#: front/src/views/admin/users/UsersDetail.vue:185
-#: front/src/views/admin/users/UsersDetail.vue:189
-#: front/src/views/admin/users/UsersList.vue:21
-#: src/views/auth/EmailConfirm.vue:51 front/src/views/auth/PasswordReset.vue:52
-#: src/views/auth/PasswordReset.vue:53
-#: front/src/views/auth/PasswordResetConfirm.vue:62
-#: src/views/content/Base.vue:19 front/src/views/content/Home.vue:35
-#: src/views/content/libraries/Card.vue:58
-#: front/src/views/content/libraries/Card.vue:59
-#: front/src/views/content/libraries/Card.vue:60
-#: front/src/views/content/libraries/Card.vue:61
-#: front/src/views/content/libraries/DetailArea.vue:24
-#: front/src/views/content/libraries/FilesTable.vue:226
-#: front/src/views/content/libraries/FilesTable.vue:229
-#: front/src/views/content/libraries/FilesTable.vue:230
-#: front/src/views/content/libraries/FilesTable.vue:233
-#: front/src/views/content/libraries/FilesTable.vue:234
-#: front/src/views/content/libraries/FilesTable.vue:237
-#: front/src/views/content/libraries/FilesTable.vue:238
-#: front/src/views/content/libraries/FilesTable.vue:241
-#: front/src/views/content/libraries/FilesTable.vue:242
-#: front/src/views/content/libraries/FilesTable.vue:258
-#: front/src/views/content/libraries/FilesTable.vue:259
-#: front/src/views/content/libraries/Form.vue:70
-#: front/src/views/content/libraries/Form.vue:71
-#: front/src/views/content/libraries/Form.vue:72
-#: front/src/views/content/libraries/Form.vue:73
-#: front/src/views/content/libraries/Form.vue:74
-#: front/src/views/content/libraries/Form.vue:106
-#: front/src/views/content/libraries/Form.vue:109
-#: front/src/views/content/libraries/Form.vue:129
-#: front/src/views/content/remote/Card.vue:131
-#: src/views/content/remote/Card.vue:132
-#: front/src/views/content/remote/Card.vue:165
-#: src/views/content/remote/Card.vue:166
-#: front/src/views/content/remote/ScanForm.vue:48
-#: src/views/instance/Timeline.vue:57 front/src/views/playlists/Detail.vue:90
-#: src/views/playlists/List.vue:104 front/src/views/playlists/List.vue:105
-#: src/views/radios/Detail.vue:80
+#: front/src/App.vue:129 src/components/Footer.vue:72
 #, fuzzy
 msgid "This will erase your local data and disconnect you, do you want to continue?"
-msgid_plural "%{ count } tracks were added to your queue"
-msgstr[0] "Esto borrará tus datos locales y te desconectará, ¿quieres continuar?"
-msgstr[1] "Esto borrará tus datos locales y te desconectará, ¿quieres continuar?"
+msgstr "Esto borrará tus datos locales y te desconectará, ¿quieres continuar?"
 
 #: front/src/components/auth/SubsonicTokenForm.vue:36
 msgid "This will log you out from existing devices that use the current password."
@@ -1874,26 +2568,44 @@ msgstr "Esto cerrará tus sesiones en todos los dispositivos que usan esa contra
 msgid "This will remove all tracks from this playlist and cannot be undone."
 msgstr "Esto borrará todas las canciones de esta lista de reproducción y no se podrá deshacer."
 
-#: front/src/views/content/libraries/Quota.vue:90
-msgid "This will remove tracks that were uploaded but failed to be process by the server. This will remove those files completely and you will regain the corresponding quota."
-msgstr ""
+#: front/src/components/audio/track/Table.vue:6
+#: front/src/components/manage/library/FilesTable.vue:37
+#: front/src/components/mixins/Translations.vue:27
+#: front/src/views/content/libraries/FilesTable.vue:54
+#: front/src/components/mixins/Translations.vue:28
+msgid "Title"
+msgstr "Título"
 
-#: front/src/views/content/libraries/Quota.vue:38
-msgid "This will remove tracks that were uploaded but not processed yet. This will remove those files completely and you will regain the corresponding quota."
+#: front/src/components/ShortcutsModal.vue:79
+msgid "Toggle queue looping"
 msgstr ""
 
-#: front/src/views/content/libraries/Quota.vue:64
-msgid "This will remove tracks that were uploaded but skipped during import processes for various reasons. This will remove those files completely and you will regain the corresponding quota."
+#: front/src/views/admin/moderation/AccountsDetail.vue:288
+#: front/src/views/admin/moderation/DomainsDetail.vue:225
+msgid "Total size"
 msgstr ""
 
-#: front/src/components/audio/track/Table.vue:6
-#: front/src/components/manage/library/FilesTable.vue:37
-#: front/src/views/content/libraries/FilesTable.vue:51
-#: front/src/components/mixins/Translations.vue:26
-msgid "Title"
-msgstr "Título"
+#: front/src/views/content/libraries/Card.vue:61
+msgid "Total size of the files in this library"
+msgstr "Tamaño total de la biblioteca"
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:113
+#, fuzzy
+msgid "Total users"
+msgstr "No usado"
 
-#: front/src/components/library/Track.vue:53
+#: front/src/components/audio/SearchBar.vue:27
+#: src/components/library/Track.vue:262
+#: front/src/components/metadata/Search.vue:138
+msgid "Track"
+msgstr "Canción"
+
+#: front/src/views/content/libraries/FilesTable.vue:205
+#, fuzzy
+msgid "Track already present in one of your libraries"
+msgstr "La pista ya está en alguna de tus bibliotecas"
+
+#: front/src/components/library/Track.vue:85
 msgid "Track information"
 msgstr "Información de la canción"
 
@@ -1901,14 +2613,26 @@ msgstr "Información de la canción"
 msgid "Track matching filter"
 msgstr "Canción correspondiente al filtro"
 
+#: front/src/components/mixins/Translations.vue:23
+#: front/src/components/mixins/Translations.vue:24
+msgid "Track name"
+msgstr "Nombre"
+
+#: front/src/views/content/libraries/FilesTable.vue:209
+#, fuzzy
+msgid "Track uploaded, but not processed by the server yet"
+msgstr "La pista se ha subido pero aún no la ha procesado el servidor"
+
 #: front/src/components/instance/Stats.vue:54
 msgid "tracks"
 msgstr "Canciones"
 
-#: front/src/components/library/Album.vue:43
+#: front/src/components/library/Album.vue:81
 #: front/src/components/playlists/PlaylistModal.vue:33
-#: src/views/content/Base.vue:8 front/src/views/content/libraries/Detail.vue:8
-#: src/views/playlists/Detail.vue:50 front/src/views/radios/Detail.vue:34
+#: front/src/views/admin/moderation/AccountsDetail.vue:329
+#: front/src/views/admin/moderation/DomainsDetail.vue:265
+#: front/src/views/content/Base.vue:8 src/views/content/libraries/Detail.vue:8
+#: front/src/views/playlists/Detail.vue:50 src/views/radios/Detail.vue:34
 msgid "Tracks"
 msgstr "Canciones"
 
@@ -1924,21 +2648,25 @@ msgstr "Canciones en favoritos"
 msgid "tracks listened"
 msgstr "Canciones escuchadas"
 
-#: front/src/components/library/Track.vue:91
+#: front/src/components/library/Track.vue:138
 #: front/src/components/manage/library/FilesTable.vue:41
+#: front/src/views/admin/moderation/AccountsDetail.vue:151
 msgid "Type"
 msgstr "Tipo"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:44
+#: front/src/components/manage/moderation/DomainsTable.vue:42
+msgid "Under moderation rule"
+msgstr ""
+
 #: front/src/views/content/remote/Card.vue:100
 #: src/views/content/remote/Card.vue:105
-#, fuzzy
 msgid "Unfollow"
-msgstr "Seguir"
+msgstr "Dejar de seguir"
 
 #: front/src/views/content/remote/Card.vue:101
-#, fuzzy
 msgid "Unfollow this library?"
-msgstr "Llévame a la biblioteca"
+msgstr "¿Dejar de seguir esta biblioteca?"
 
 #: front/src/components/About.vue:15
 msgid "Unfortunately, owners of this instance did not yet take the time to complete this page."
@@ -1948,14 +2676,27 @@ msgstr "Desafortunadamente, lxs propietarixs de esta instancia aún no han tomad
 msgid "Unlimited music"
 msgstr "Música ilimitada"
 
+#: front/src/components/audio/Player.vue:351
+msgid "Unmute"
+msgstr "Activar sonido"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:45
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:57
+#, fuzzy
+msgid "Update"
+msgstr "Fecha de subida"
+
 #: front/src/components/auth/Settings.vue:50
 msgid "Update avatar"
 msgstr "Actualizar avatar"
 
 #: front/src/views/content/libraries/Form.vue:25
-#, fuzzy
 msgid "Update library"
-msgstr "Gestionar biblioteca"
+msgstr "Actualizar biblioteca"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:3
+msgid "Update moderation rule"
+msgstr ""
 
 #: front/src/components/playlists/Form.vue:33
 msgid "Update playlist"
@@ -1970,9 +2711,7 @@ msgid "Update your password"
 msgstr "Actualizar tu contraseña"
 
 #: front/src/views/content/libraries/Card.vue:44
-#: front/src/components/manage/users/UsersTable.vue:173
 #: front/src/views/content/libraries/DetailArea.vue:24
-#: front/src/views/admin/users/UsersDetail.vue:177
 msgid "Upload"
 msgstr "Subir"
 
@@ -1981,44 +2720,59 @@ msgid "Upload a new avatar"
 msgstr "Subir un nuevo avatar"
 
 #: front/src/views/content/Home.vue:6
-#, fuzzy
 msgid "Upload audio content"
-msgstr "Subir un nuevo avatar"
+msgstr "Subir nuevo contenido"
 
-#: front/src/views/content/libraries/FilesTable.vue:54
-#, fuzzy
+#: front/src/views/content/libraries/FilesTable.vue:57
 msgid "Upload date"
-msgstr "Subir"
+msgstr "Fecha de subida"
+
+#: front/src/components/library/FileUpload.vue:219
+#: front/src/components/library/FileUpload.vue:220
+#, fuzzy
+msgid "Upload denied, ensure the file is not too big and that you have not reached your quota"
+msgstr "Subida rechazada, asegúrate que el archivo no es demasiado grande y que no has alcanzado tu cuota"
 
 #: front/src/views/content/Home.vue:7
-msgid "Upload music files (mp3, ogg, flac, etc.) from your personal library directly from your browser to enjoy them here."
-msgstr ""
+#, fuzzy
+msgid "Upload music files (MP3, OGG, FLAC, etc.) from your personal library directly from your browser to enjoy them here."
+msgstr "Sube archivos de música (mp3, OGG, Flac, etc…) de tu biblioteca personal a tu navegador y disfrútala aquí."
 
 #: front/src/components/library/FileUpload.vue:31
-#, fuzzy
 msgid "Upload new tracks"
-msgstr "Subir un nuevo avatar"
+msgstr "Subir nuevas pistas"
 
-#: front/src/views/admin/users/UsersDetail.vue:82
-#, fuzzy
+#: front/src/views/admin/moderation/AccountsDetail.vue:269
 msgid "Upload quota"
-msgstr "Subir"
+msgstr "Cuota de subida"
 
-#: front/src/components/library/FileUpload.vue:99
-#, fuzzy
+#: front/src/components/library/FileUpload.vue:228
+msgid "Upload timeout, please try again"
+msgstr "Timeout en la subida, intentalo de nuevo"
+
+#: front/src/components/library/FileUpload.vue:100
 msgid "Uploaded"
-msgstr "Subir"
+msgstr "Subido"
 
 #: front/src/components/library/FileUpload.vue:5
-#, fuzzy
 msgid "Uploading"
-msgstr "Subiendo…"
+msgstr "Subiendo"
+
+#: front/src/components/library/FileUpload.vue:103
+#, fuzzy
+msgid "Uploading…"
+msgstr "Subiendo"
 
-#: front/src/components/library/FileUpload.vue:102
-msgid "Uploading..."
-msgstr "Subiendo…"
+#: front/src/components/manage/moderation/AccountsTable.vue:41
+#: front/src/components/mixins/Translations.vue:37
+#: front/src/views/admin/moderation/AccountsDetail.vue:305
+#: front/src/views/admin/moderation/DomainsDetail.vue:241
+#: front/src/components/mixins/Translations.vue:38
+#, fuzzy
+msgid "Uploads"
+msgstr "Subir"
 
-#: front/src/App.vue:44
+#: front/src/components/Footer.vue:16
 msgid "Use another instance"
 msgstr "Usar otra instancia"
 
@@ -2026,68 +2780,101 @@ msgstr "Usar otra instancia"
 msgid "Use this form to request a password reset. We will send an email to the given address with instructions to reset your password."
 msgstr "Usa este formulario para solicitar un restablecimiento de contraseña. Te mandaremos un correo electrónico a la dirección proporcionada con instrucciones para restablecer tu contraseña."
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:111
+msgid "Use this setting to temporarily enable/disable the policy without completely removing it."
+msgstr ""
+
 #: front/src/components/manage/users/InvitationsTable.vue:49
 msgid "Used"
 msgstr "Usado"
 
 #: front/src/views/content/libraries/Detail.vue:26
 msgid "User"
-msgstr "Usuarix"
+msgstr "Usuario"
 
 #: front/src/components/instance/Stats.vue:5
 msgid "User activity"
-msgstr "Actividad de usuarix"
+msgstr "Actividad de usuario"
 
-#: front/src/components/library/Album.vue:49
+#: front/src/components/library/Album.vue:88
 #: src/components/library/Artist.vue:60
-#: front/src/components/library/Track.vue:122
-#, fuzzy
+#: front/src/components/library/Track.vue:168
 msgid "User libraries"
-msgstr "Bibliotecas"
+msgstr "Bibliotecas de usuarios"
 
 #: front/src/components/library/Radios.vue:20
 msgid "User radios"
-msgstr "Radios de usuarixs"
+msgstr "Radios de los usuarios"
 
 #: front/src/components/auth/Signup.vue:19
 #: front/src/components/manage/users/UsersTable.vue:37
-#: front/src/components/mixins/Translations.vue:32
+#: front/src/components/mixins/Translations.vue:33
+#: front/src/views/admin/moderation/AccountsDetail.vue:85
+#: front/src/components/mixins/Translations.vue:34
 msgid "Username"
-msgstr "Nombre de usuarix"
+msgstr "Nombre de usuario"
 
 #: front/src/components/auth/Login.vue:15
 msgid "Username or email"
-msgstr "Nombre de usuarix o correo electónico"
+msgstr "Nombre de usuario o correo electónico"
 
 #: front/src/components/instance/Stats.vue:13
 msgid "users"
-msgstr "usuarix"
+msgstr "usuario"
 
-#: front/src/components/Sidebar.vue:94 src/views/admin/users/Base.vue:5
-#: front/src/views/admin/users/UsersList.vue:3
-#: src/views/admin/users/UsersList.vue:21 front/src/views/admin/Settings.vue:81
+#: front/src/components/Sidebar.vue:91
+#: front/src/components/manage/moderation/DomainsTable.vue:39
+#: front/src/components/mixins/Translations.vue:35
+#: src/views/admin/Settings.vue:81 front/src/views/admin/users/Base.vue:5
+#: src/views/admin/users/UsersList.vue:3
+#: front/src/views/admin/users/UsersList.vue:21
+#: front/src/components/mixins/Translations.vue:36
 msgid "Users"
-msgstr "Usuarix"
+msgstr "Usuario"
+
+#: front/src/components/Footer.vue:29
+#, fuzzy
+msgid "Using Funkwhale"
+msgstr "Acerca de Funkwhale"
+
+#: front/src/components/Footer.vue:13
+#, fuzzy
+msgid "Version %{version}"
+msgstr "Código fuente (%{version})"
 
 #: front/src/views/content/libraries/Quota.vue:29
 #: front/src/views/content/libraries/Quota.vue:56
 #: front/src/views/content/libraries/Quota.vue:82
-#, fuzzy
 msgid "View files"
-msgstr "Archivos de biblioteca"
+msgstr "Ver archivos"
 
 #: front/src/components/library/Album.vue:37
 #: src/components/library/Artist.vue:35
-#: front/src/components/library/Track.vue:44
-#: front/src/components/metadata/ReleaseCard.vue:53
+#: front/src/components/library/Track.vue:51
 #: front/src/components/metadata/ArtistCard.vue:49
+#: front/src/components/metadata/ReleaseCard.vue:53
 msgid "View on MusicBrainz"
 msgstr "Ver en MusicBrainz"
 
 #: front/src/views/content/libraries/Form.vue:18
-#, fuzzy
 msgid "Visibility"
-msgstr "Visibilidad de lista de reproducción"
+msgstr "Visibilidad"
+
+#: front/src/views/content/libraries/Card.vue:59
+msgid "Visibility: everyone on this instance"
+msgstr "Visibilidad: Todo el mundo en esta instancia"
+
+#: front/src/views/content/libraries/Card.vue:60
+msgid "Visibility: everyone, including other instances"
+msgstr "Visibilidad: todos, incluyendo otras instancias"
+
+#: front/src/views/content/libraries/Card.vue:58
+msgid "Visibility: nobody except me"
+msgstr "Visibilidad: Solo yo"
+
+#: front/src/components/library/Album.vue:67
+msgid "Volume %{ number }"
+msgstr ""
 
 #: front/src/components/playlists/PlaylistModal.vue:20
 msgid "We cannot add the track to a playlist"
@@ -2101,6 +2888,11 @@ msgstr "No podemos crear la lista de reproducción"
 msgid "We cannot create your account"
 msgstr "No podemos crear tu cuenta"
 
+#: front/src/components/audio/Player.vue:64
+#, fuzzy
+msgid "We cannot load this track"
+msgstr "No podemos añadir la canción a una lista de reproducción"
+
 #: front/src/components/auth/Login.vue:7
 msgid "We cannot log you in"
 msgstr "No se puede iniciar la sesión"
@@ -2117,18 +2909,20 @@ msgstr "No podemos guardar tus ajustes"
 msgid "We do not track you or bother you with ads"
 msgstr "No te rastreamos y no te molestamos con anuncios"
 
-#: front/src/views/Notifications.vue:26
-msgid "We don't have any notification to display!"
-msgstr ""
+#: front/src/components/library/Track.vue:95
+#, fuzzy
+msgid "We don't have any copyright information for this track"
+msgstr "¡No tienes ninguna notificación!"
 
-#: front/src/views/content/Home.vue:4
-msgid "We offer various way to grab new content and make it available here."
-msgstr ""
+#: front/src/components/library/Track.vue:106
+#, fuzzy
+msgid "We don't have any licensing information for this track"
+msgstr "¡No tienes ninguna notificación!"
 
 #: front/src/components/library/FileUpload.vue:40
 #, fuzzy
-msgid "we recommend using Picard for that purpose"
-msgstr "Recomendamos usar Picard para eso."
+msgid "We recommend using Picard for that purpose."
+msgstr "Recomendamos usar Picard"
 
 #: front/src/components/Home.vue:7
 msgid "We think listening to music should be simple."
@@ -2138,9 +2932,9 @@ msgstr "Pensamos que debe ser simple escuchar música."
 msgid "We're sorry, the page you asked for does not exist:"
 msgstr "Lo sentimos, la página solicitada no existe:"
 
-#: front/src/components/requests/Form.vue:21
-msgid "We've received your request, you'll get some groove soon ;)"
-msgstr "Hemos recibido tu solicitud, pronto tendrás algo sabroso ;)"
+#: front/src/components/Home.vue:153
+msgid "Welcome"
+msgstr "Bienvenido"
 
 #: front/src/components/Home.vue:5
 msgid "Welcome on Funkwhale"
@@ -2150,7 +2944,17 @@ msgstr "Bienvenidx a Funkwhale"
 msgid "Why funkwhale?"
 msgstr "¿Por qué funkwhale?"
 
-#: front/src/components/Sidebar.vue:115
+#: front/src/components/audio/EmbedWizard.vue:13
+msgid "Widget height"
+msgstr ""
+
+#: front/src/components/audio/EmbedWizard.vue:6
+msgid "Widget width"
+msgstr ""
+
+#: front/src/components/Sidebar.vue:118
+#: front/src/components/manage/moderation/AccountsTable.vue:72
+#: front/src/components/manage/moderation/DomainsTable.vue:58
 msgid "Yes"
 msgstr "Sí"
 
@@ -2158,9 +2962,14 @@ msgstr "Sí"
 msgid "Yes, log me out!"
 msgstr "Sí, cierra mi sesión!"
 
+#: front/src/views/content/libraries/Form.vue:19
+#, fuzzy
+msgid "You are able to share your library with other people, regardless of its visibility."
+msgstr "Puedes compartir tu biblioteca con otras personas, independientemente de su vilibilidad."
+
 #: front/src/components/library/FileUpload.vue:33
 msgid "You are about to upload music to your library. Before proceeding, please ensure that:"
-msgstr ""
+msgstr "Estás a punto de subir música a tu biblioteca. Antes de continuar asegúrate que:"
 
 #: front/src/components/auth/Logout.vue:7
 msgid "You are currently logged in as %{ username }"
@@ -2168,12 +2977,17 @@ msgstr "Tienes iniciada actualmente sesión como %{ username }"
 
 #: front/src/views/content/Home.vue:17
 msgid "You can follow libraries from other users to get access to new music. Public libraries can be followed immediatly, while following a private library requires approval from its owner."
-msgstr ""
+msgstr "Puedes seguir bibliotecas de otros usuarios para obtener nueva música. Puedes seguir bibliotecas públicas instantáneamente, mientras que las biliotecas privadas necesitan aprovación por parte de su dueño."
 
 #: front/src/components/Home.vue:133
 msgid "You can invite friends and family to your instance so they can enjoy your music"
 msgstr "Puedes invitar a tus amigxs y tu familia a tu instancia para que ellxs puedan disfrutar de tu música"
 
+#: front/src/views/auth/EmailConfirm.vue:24
+#, fuzzy
+msgid "You can now use the service without limitations."
+msgstr "Tu dirección de correo electrónico ha sido confirmada, ahora puedes usar el servicio sin limitaciones."
+
 #: front/src/components/library/radios/Builder.vue:7
 msgid "You can use this interface to build your own custom radio, which will play tracks according to your criteria."
 msgstr "Puedes usar esta interfaz para hacer tu propia radio personalizada, que reproducirá canciones según tus criterios."
@@ -2182,18 +2996,26 @@ msgstr "Puedes usar esta interfaz para hacer tu propia radio personalizada, que
 msgid "You can use those to enjoy your playlist and music in offline mode, on your smartphone or tablet, for instance."
 msgstr "Puedes usarlos para disfrutar de tus listas de reproducción y tu música en modo sin conexión, en tu smartphone o tu tablet, por ejemplo."
 
-#: front/src/components/Sidebar.vue:147
+#: front/src/views/admin/moderation/AccountsDetail.vue:46
+msgid "You don't have any rule in place for this account."
+msgstr ""
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:39
+msgid "You don't have any rule in place for this domain."
+msgstr ""
+
+#: front/src/components/Sidebar.vue:158
 msgid "You have a radio playing"
 msgstr "Estás escuchando una radio"
 
-#: front/src/App.vue:8
+#: front/src/components/audio/Player.vue:71
+msgid "You may have a connectivity issue."
+msgstr ""
+
+#: front/src/App.vue:17
 msgid "You need to select an instance in order to continue"
 msgstr "Tienes que seleccionar una instancia para poder continuar"
 
-#: front/src/views/content/libraries/Form.vue:19
-msgid "You will be able to share your library with other people, regardless of it's visibility."
-msgstr ""
-
 #: front/src/components/auth/Settings.vue:100
 msgid "You will be logged out from this session and have to log in with the new one"
 msgstr "Se cerrará esta sesión y tendrás que reiniciar sesión con la nueva contraseña"
@@ -2202,18 +3024,17 @@ msgstr "Se cerrará esta sesión y tendrás que reiniciar sesión con la nueva c
 msgid "You will have to update your password on your clients that use this password."
 msgstr "Tendrás que actualizar tu contraseña en los clientes que usan esta contraseña."
 
-#: front/src/views/auth/EmailConfirm.vue:24
-msgid "Your email address was confirmed, you can now use the service without limitations."
-msgstr "Tu dirección de correo electrónico ha sido confirmada, ahora puedes usar el servicio sin limitaciones."
+#: front/src/components/favorites/List.vue:112
+msgid "Your Favorites"
+msgstr "Tus favoritos"
 
 #: front/src/components/Home.vue:114
 msgid "Your music, your way"
 msgstr "Tu música, a tu manera"
 
 #: front/src/views/Notifications.vue:7
-#, fuzzy
 msgid "Your notifications"
-msgstr "Última modificación"
+msgstr "Tus notificaciones"
 
 #: front/src/views/auth/PasswordResetConfirm.vue:29
 msgid "Your password has been updated successfully."
@@ -2222,426 +3043,3 @@ msgstr "Tu contraseña ha sido cambiada con éxito."
 #: front/src/components/auth/Settings.vue:101
 msgid "Your Subsonic password will be changed to a new, random one, logging you out from devices that used the old Subsonic password"
 msgstr "Tu contraseña Subsonic se cambiará a una nueva contraseña aleatoria, cerrando tus sesiones en los dispositivos que usaban la antigua contraseña Subsonic"
-
-#: front/src/components/mixins/Translations.vue:8
-#, fuzzy
-msgid "Activity visibility"
-msgstr "Visibilidad de lista de reproducción"
-
-#: front/src/components/mixins/Translations.vue:9
-msgid "Determine the visibility level of your activity"
-msgstr ""
-
-#: front/src/components/mixins/Translations.vue:11
-#: front/src/components/playlists/Form.vue:81
-#: src/views/content/libraries/Form.vue:72
-msgid "Nobody except me"
-msgstr "Solo yo"
-
-#: front/src/components/mixins/Translations.vue:12
-#: front/src/components/playlists/Form.vue:85
-#: src/views/content/libraries/Form.vue:73
-msgid "Everyone on this instance"
-msgstr "Todo el mundo en esta instancia"
-
-#: front/src/components/mixins/Translations.vue:18
-#, fuzzy
-msgid "Accessed date"
-msgstr "Acceso deshabilitado"
-
-#: front/src/components/mixins/Translations.vue:19
-#, fuzzy
-msgid "Modification date"
-msgstr "Fecha de caducidad"
-
-#: front/src/components/mixins/Translations.vue:20
-#, fuzzy
-msgid "Imported date"
-msgstr "Fecha de importación"
-
-#: front/src/components/mixins/Translations.vue:22
-#, fuzzy
-msgid "Track name"
-msgstr "Canción"
-
-#: front/src/components/mixins/Translations.vue:23
-#, fuzzy
-msgid "Album name"
-msgstr "Página del álbum"
-
-#: front/src/components/mixins/Translations.vue:30
-#, fuzzy
-msgid "Sign-up date"
-msgstr "Inscripción"
-
-#: front/src/components/playlists/Editor.vue:163
-msgid "Copy tracks from current queue to playlist"
-msgstr "Copiar canciones de cola de reproducción actual a lista de reproducción"
-
-#: front/src/components/playlists/PlaylistModal.vue:116
-msgid "Add to this playlist"
-msgstr "Añadir a esta lista de reproducción"
-
-#: front/src/components/playlists/Form.vue:74
-msgid "My awesome playlist"
-msgstr "Mi lista de reproducción molona"
-
-#: front/src/components/playlists/Form.vue:89
-msgid "Everyone"
-msgstr "Todo el mundo"
-
-#: front/src/components/auth/Signup.vue:95
-msgid "Sign Up"
-msgstr "Inscripción"
-
-#: front/src/components/auth/Signup.vue:96
-msgid "Enter your invitation code (case insensitive)"
-msgstr "Introducir tu código de invitación (no distingue mayúsculas de minúsculas)"
-
-#: front/src/components/auth/Signup.vue:97
-msgid "Enter your username"
-msgstr "Introducir tu nombre de usuario"
-
-#: front/src/components/auth/Signup.vue:98
-msgid "Enter your email"
-msgstr "Introducir tu correo electrónico"
-
-#: front/src/components/auth/SubsonicTokenForm.vue:95
-msgid "Password updated"
-msgstr "Contraseña actualizada"
-
-#: front/src/components/auth/SubsonicTokenForm.vue:111
-msgid "Access disabled"
-msgstr "Acceso deshabilitado"
-
-#: front/src/components/auth/Login.vue:77
-msgid "Enter your username or email"
-msgstr "Introducir tu nombre de usuario o correo electrónico"
-
-#: front/src/components/auth/Login.vue:78
-msgid "Log In"
-msgstr "Iniciar sesión"
-
-#: front/src/components/auth/Profile.vue:47
-msgid "%{ username }'s profile"
-msgstr "Perfil de %{ username }"
-
-#: front/src/components/auth/Logout.vue:20
-msgid "Log Out"
-msgstr "Cerrar sesión"
-
-#: front/src/components/auth/Settings.vue:249
-msgid "Account Settings"
-msgstr "Configuración de Cuenta"
-
-#: front/src/components/favorites/TrackFavoriteIcon.vue:19
-msgid "Remove from favorites"
-msgstr "Quitar de favoritos"
-
-#: front/src/components/favorites/List.vue:110
-msgid "Your Favorites"
-msgstr "Tus favoritos"
-
-#: front/src/components/library/Radios.vue:141
-msgid "Enter a radio name..."
-msgstr "Introducir un nombre de radio..."
-
-#: front/src/components/library/radios/Builder.vue:233
-msgid "Radio Builder"
-msgstr "Editor de radio"
-
-#: front/src/components/library/radios/Builder.vue:235
-msgid "My awesome radio"
-msgstr "Mi radio molona"
-
-#: front/src/components/library/radios/Builder.vue:236
-#, fuzzy
-msgid "My awesome description"
-msgstr "Mi radio molona"
-
-#: front/src/components/library/FileUpload.vue:238
-msgid "Upload refused, ensure the file is not too big and you have not reached your quota"
-msgstr ""
-
-#: front/src/components/library/FileUpload.vue:239
-msgid "Impossible to upload this file, ensure it is not too big"
-msgstr ""
-
-#: front/src/components/library/FileUpload.vue:240
-#, fuzzy
-msgid "A network error occured while uploading this file"
-msgstr "Ha ocurrido un error al guardar los cambios"
-
-#: front/src/components/library/FileUpload.vue:241
-msgid "Upload timeout, please try again"
-msgstr ""
-
-#: front/src/components/library/Artists.vue:119
-msgid "Enter an artist name..."
-msgstr "Introducir un nombre de artista..."
-
-#: front/src/components/library/Track.vue:195
-#: src/components/audio/SearchBar.vue:27
-#: front/src/components/metadata/Search.vue:138
-msgid "Track"
-msgstr "Canción"
-
-#: front/src/components/library/Home.vue:65
-msgid "Home"
-msgstr "Inicio"
-
-#: front/src/components/forms/PasswordInput.vue:25
-msgid "Show/hide password"
-msgstr "Mostrar/ocultar contraseña"
-
-#: front/src/components/requests/Form.vue:73
-msgid "The Beatles, Mickael Jackson…"
-msgstr "Los Beatles, Michael Jackson…"
-
-#: front/src/components/requests/Form.vue:74
-msgid "The White Album, Thriller…"
-msgstr "El Álbum Blanco, Thriller…"
-
-#: front/src/components/requests/Form.vue:75
-msgid "Use this comment box to add details to your request if needed"
-msgstr "Usa este campo de comentarios para añadir detalles a tu solicitud si hace falta"
-
-#: front/src/components/audio/PlayButton.vue:158
-msgid "%{ count } track was added to your queue"
-msgid_plural "%{ count } tracks were added to your queue"
-msgstr[0] "%{ count } canción ha sido añadida a tu cola de reproducción"
-msgstr[1] "%{ count } canciones han sido añadidas a tu cola de reproducción"
-
-#: front/src/components/audio/Search.vue:65
-msgid "Artist, album, track..."
-msgstr "Artista, álbum, canción..."
-
-#: front/src/components/audio/SearchBar.vue:20
-msgid "Search for artists, albums, tracks..."
-msgstr "Buscar artistas, álbumes, canciones…"
-
-#: front/src/components/audio/Player.vue:216
-msgid "Queue shuffled!"
-msgstr "¡Cola de reproducción mezclada!"
-
-#: front/src/components/audio/Player.vue:273
-msgid "Previous track"
-msgstr "Canción anterior"
-
-#: front/src/components/audio/Player.vue:274
-msgid "Play track"
-msgstr "Reproducir canción"
-
-#: front/src/components/audio/Player.vue:275
-msgid "Pause track"
-msgstr "Pausar la canción"
-
-#: front/src/components/audio/Player.vue:276
-msgid "Next track"
-msgstr "Próxima canción"
-
-#: front/src/components/audio/Player.vue:277
-msgid "Unmute"
-msgstr "Activar sonido"
-
-#: front/src/components/audio/Player.vue:278
-msgid "Mute"
-msgstr "Silencio"
-
-#: front/src/components/audio/Player.vue:279
-msgid "Looping disabled. Click to switch to single-track looping."
-msgstr "Bucle deshabilitado. Pulsa para cambiar a reproducción en bucle de la canción actual."
-
-#: front/src/components/audio/Player.vue:280
-msgid "Looping on a single track. Click to switch to whole queue looping."
-msgstr "Bucle de la canción actual. Pulsa para cambiar a la reproducción en bucle de la cola de reproducción entera."
-
-#: front/src/components/audio/Player.vue:281
-msgid "Looping on whole queue. Click to disable looping."
-msgstr "Bucle de la cola de reproducción entera. Pulsa para desactivar la reproducción en bucle."
-
-#: front/src/components/audio/Player.vue:282
-msgid "Shuffle your queue"
-msgstr "Mezclar tu cola de reproducción"
-
-#: front/src/components/audio/Player.vue:283
-msgid "Clear your queue"
-msgstr "Vaciar cola de reproducción"
-
-#: front/src/components/Sidebar.vue:203
-msgid "Pending import requests"
-msgstr "Solicitudes de importación pendientes"
-
-#: front/src/components/Sidebar.vue:204
-msgid "Pending follow requests"
-msgstr "Solicitudes de seguimiento pendientes"
-
-#: front/src/components/metadata/Search.vue:114
-msgid "Enter your search query..."
-msgstr "Introducir tu búsqueda..."
-
-#: front/src/components/manage/library/FilesTable.vue:176
-msgid "Search by title, artist, domain..."
-msgstr "Buscar por título, artista, dominio…"
-
-#: front/src/components/manage/users/InvitationForm.vue:58
-msgid "Leave empty for a random code"
-msgstr "Dejar en blanco para un código aleatorio"
-
-#: front/src/components/manage/users/InvitationsTable.vue:153
-msgid "Search by username, email, code..."
-msgstr "Buscar por nombre de usuarix, dirección de correo electrónico, código…"
-
-#: front/src/components/manage/users/UsersTable.vue:163
-msgid "Search by username, email, name..."
-msgstr "Buscar por nombre de usuarix, dirrección de correo electrónico, nombre…"
-
-#: front/src/components/manage/users/UsersTable.vue:181
-#: front/src/views/admin/users/UsersDetail.vue:185
-#: src/views/admin/Settings.vue:83
-msgid "Federation"
-msgstr "Federación"
-
-#: front/src/components/Home.vue:154
-msgid "Welcome"
-msgstr ""
-
-#: front/src/views/content/remote/ScanForm.vue:48
-#, fuzzy
-msgid "Enter a library url"
-msgstr "Introducir un nombre de dominio de biblioteca..."
-
-#: front/src/views/content/remote/Card.vue:165
-msgid "Scan launched"
-msgstr ""
-
-#: front/src/views/content/remote/Card.vue:166
-msgid "Scan skipped (previous scan is too recent)"
-msgstr ""
-
-#: front/src/views/content/libraries/FilesTable.vue:226
-#, fuzzy
-msgid "Search by title, artist, album..."
-msgstr "Buscar por título, artista, dominio…"
-
-#: front/src/views/content/libraries/FilesTable.vue:230
-msgid "Track was already present in one of your libraries"
-msgstr ""
-
-#: front/src/views/content/libraries/FilesTable.vue:234
-msgid "Track is uploaded but not processed by the server yet"
-msgstr ""
-
-#: front/src/views/content/libraries/FilesTable.vue:238
-msgid "An error occured while processing this track, ensure the track is correctly tagged"
-msgstr ""
-
-#: front/src/views/content/libraries/FilesTable.vue:242
-#, fuzzy
-msgid "Import went on successfully"
-msgstr "Contraseña actualizada con éxito"
-
-#: front/src/views/content/libraries/FilesTable.vue:259
-#, fuzzy
-msgid "Relaunch import"
-msgstr "Terminar importación"
-
-#: front/src/views/content/libraries/Card.vue:58
-#, fuzzy
-msgid "Visibility: nobody except me"
-msgstr "Solo yo"
-
-#: front/src/views/content/libraries/Card.vue:59
-#, fuzzy
-msgid "Visibility: everyone on this instance"
-msgstr "Todo el mundo en esta instancia"
-
-#: front/src/views/content/libraries/Card.vue:60
-msgid "Visibility: everyone, including other instances"
-msgstr ""
-
-#: front/src/views/content/libraries/Card.vue:61
-#, fuzzy
-msgid "Total size of the files in this library"
-msgstr "Canciones disponibles en esta biblioteca"
-
-#: front/src/views/content/libraries/Form.vue:70
-#, fuzzy
-msgid "My awesome library"
-msgstr "Mi radio molona"
-
-#: front/src/views/content/libraries/Form.vue:71
-msgid "This library contains my personnal music, I hope you will like it!"
-msgstr ""
-
-#: front/src/views/content/libraries/Form.vue:74
-#, fuzzy
-msgid "Everyone, including other instances"
-msgstr "Todo el mundo en esta instancia"
-
-#: front/src/views/content/libraries/Form.vue:106
-#, fuzzy
-msgid "Library updated"
-msgstr "Nombre de biblioteca"
-
-#: front/src/views/content/libraries/Form.vue:109
-#, fuzzy
-msgid "Library created"
-msgstr "Nombre de biblioteca"
-
-#: front/src/views/content/Home.vue:35
-msgid "Add and manage content"
-msgstr ""
-
-#: front/src/views/radios/Detail.vue:80
-msgid "Radio"
-msgstr "Radio"
-
-#: front/src/views/instance/Timeline.vue:57
-msgid "Instance Timeline"
-msgstr "Linea de tiempo de la instancia"
-
-#: front/src/views/playlists/Detail.vue:90
-msgid "Playlist"
-msgstr "Lista de reproducción"
-
-#: front/src/views/playlists/List.vue:105
-msgid "Enter an playlist name..."
-msgstr "Introducir un nombre de lista de reproducción..."
-
-#: front/src/views/admin/library/Base.vue:16
-#, fuzzy
-msgid "Manage library"
-msgstr "En biblioteca"
-
-#: front/src/views/admin/users/UsersDetail.vue:169
-msgid "Determine if the user account is active or not. Inactive users cannot login or use the service."
-msgstr "Determina si la cuenta de usuario es activa o no. Los usuarios inactivos no pueden conectarse ni usar el servicio."
-
-#: front/src/views/admin/users/UsersDetail.vue:170
-msgid "Determine how much content the user can upload. Leave empty to use the default value of the instance."
-msgstr ""
-
-#: front/src/views/admin/users/Base.vue:20
-msgid "Manage users"
-msgstr "Gestionar usuarixs"
-
-#: front/src/views/admin/Settings.vue:75
-msgid "Instance settings"
-msgstr "Ajustes de la instancia"
-
-#: front/src/views/admin/Settings.vue:80
-msgid "Instance information"
-msgstr "Información de esta instancia"
-
-#: front/src/views/admin/Settings.vue:84
-msgid "Subsonic"
-msgstr "Subsonic"
-
-#: front/src/views/admin/Settings.vue:85
-msgid "Statistics"
-msgstr "Estadísticas"
-
-#: front/src/views/admin/Settings.vue:86
-msgid "Error reporting"
-msgstr "Informes de error"
diff --git a/front/locales/eu/LC_MESSAGES/app.po b/front/locales/eu/LC_MESSAGES/app.po
new file mode 100644
index 0000000000000000000000000000000000000000..1f913fc9b1a5476218f041d30b0f865a7101981f
--- /dev/null
+++ b/front/locales/eu/LC_MESSAGES/app.po
@@ -0,0 +1,2548 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the front package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: front 0.1.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2018-10-05 20:10+0200\n"
+"PO-Revision-Date: 2019-01-22 08:45+0000\n"
+"Last-Translator: Urtzi Odriozola <uodriozola@codesyntax.com>\n"
+"Language-Team: none\n"
+"Language: eu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 3.2.2\n"
+
+#: front/src/components/playlists/PlaylistModal.vue:9
+msgid "\"%{ title }\", by %{ artist }"
+msgstr "\"%{ title }\", %{ artist }"
+
+#: front/src/components/Sidebar.vue:24
+msgid "(%{ index } of %{ length })"
+msgstr "(%{ index } / %{ length })"
+
+#: front/src/components/Sidebar.vue:22
+msgid "(empty)"
+msgstr "(hutsik)"
+
+#: front/src/components/common/ActionTable.vue:44
+#: front/src/components/common/ActionTable.vue:53
+msgid "%{ count } on %{ total } selected"
+msgid_plural "%{ count } on %{ total } selected"
+msgstr[0] "%{ count } aukeratutako %{ total }-(e)tik"
+msgstr[1] "%{ count } aukeratutako %{ total }-(e)tik"
+
+#: front/src/components/Sidebar.vue:107 src/components/audio/album/Card.vue:54
+#: front/src/views/content/libraries/Card.vue:39 src/views/content/remote/Card.vue:26
+msgid "%{ count } track"
+msgid_plural "%{ count } tracks"
+msgstr[0] "abesti %{ count }"
+msgstr[1] "%{ count } abesti"
+
+#: front/src/components/library/Artist.vue:13
+msgid "%{ count } track in %{ albumsCount } albums"
+msgid_plural "%{ count } tracks in %{ albumsCount } albums"
+msgstr[0] "abesti %{ count } album %{ albumsCount }ean"
+msgstr[1] "%{ count } abesti %{ albumsCount } albumetan"
+
+#: front/src/components/library/radios/Builder.vue:80
+msgid "%{ count } track matching combined filters"
+msgid_plural "%{ count } tracks matching combined filters"
+msgstr[0] "abesti %{ count } dator bat iragazki konbinatuekin"
+msgstr[1] "%{ count } abesti datoz bat iragazki konbinatuekin"
+
+#: front/src/components/playlists/Card.vue:18
+msgid "%{ count} track"
+msgid_plural "%{ count } tracks"
+msgstr[0] "abesti %{ count}"
+msgstr[1] "%{ count} abesti"
+
+#: front/src/views/content/libraries/Quota.vue:11
+msgid "%{ current } used on %{ max } allowed"
+msgstr "%{ current } erabilita baimendutako %{ max } -(e)tik"
+
+#: front/src/components/common/Duration.vue:2
+msgid "%{ hours } h %{ minutes } min"
+msgstr "%{ hours } o %{ minutes } min"
+
+#: front/src/components/common/Duration.vue:5
+msgid "%{ minutes } min"
+msgstr "%{ minutes } minutu"
+
+#: front/src/components/activity/Like.vue:7
+msgid "%{ user } favorited a track"
+msgstr "%{ user }-(e)k abestia gogoko du"
+
+#: front/src/components/activity/Listen.vue:7
+msgid "%{ user } listened to a track"
+msgstr "%{ user } -(e)k abesti bat entzun du"
+
+#: front/src/components/audio/artist/Card.vue:41
+msgid "1 album"
+msgid_plural "%{ count } albums"
+msgstr[0] "album 1"
+msgstr[1] "%{ count } album"
+
+#: front/src/components/favorites/List.vue:10
+msgid "1 favorite"
+msgid_plural "%{ count } favorites"
+msgstr[0] "gogoko 1"
+msgstr[1] "%{ count } gogoko"
+
+#: front/src/components/About.vue:5
+msgid "About %{ instance }"
+msgstr "%{ instance }-ri buruz"
+
+#: front/src/App.vue:53
+msgid "About Funkwhale"
+msgstr "Funkwhale-ri buruz"
+
+#: front/src/App.vue:34 src/components/About.vue:8 src/components/About.vue:55
+msgid "About this instance"
+msgstr "Instantzia honi buruz"
+
+#: front/src/views/content/libraries/Detail.vue:48
+msgid "Accept"
+msgstr "Onartu"
+
+#: front/src/views/content/libraries/Detail.vue:40
+msgid "Accepted"
+msgstr "Onartuta"
+
+#: front/src/components/Home.vue:106
+msgid "Access your music from a clean interface that focus on what really matters"
+msgstr ""
+"Lortu zure musika benetan axola duen lekuan zentratzen den interfaze garbi "
+"batetik"
+
+#: front/src/views/admin/users/UsersDetail.vue:54
+msgid "Account active"
+msgstr "Kontua aktibo"
+
+#: front/src/components/auth/Settings.vue:5
+msgid "Account settings"
+msgstr "Kontuaren ezarpenak"
+
+#: front/src/components/manage/users/UsersTable.vue:39
+msgid "Account status"
+msgstr "Kontuaren egoera"
+
+#: front/src/views/auth/PasswordReset.vue:14
+msgid "Account's email"
+msgstr "Kontuaren e-maila"
+
+#: front/src/views/content/libraries/Detail.vue:29
+msgid "Action"
+msgstr "Akzioa"
+
+#: front/src/components/common/ActionTable.vue:86
+msgid "Action %{ action } was launched successfully on %{ count } element"
+msgid_plural "Action %{ action } was launched successfully on %{ count } elements"
+msgstr[0] "%{ action } akzioa arrakastaz gauzatu da elementu %{ count }ean"
+msgstr[1] "%{ action } akzioa arrakastaz gauzatu da %{ count } elementutan"
+
+#: front/src/components/common/ActionTable.vue:8
+#: front/src/components/library/radios/Builder.vue:64
+msgid "Actions"
+msgstr "Akzioak"
+
+#: front/src/components/manage/users/UsersTable.vue:53
+msgid "Active"
+msgstr "Aktibo"
+
+#: front/src/components/Sidebar.vue:75
+msgid "Activity"
+msgstr "Jarduera"
+
+#: front/src/components/Sidebar.vue:78 src/views/content/Base.vue:19
+msgid "Add content"
+msgstr "Edukia sartu"
+
+#: front/src/components/library/radios/Builder.vue:50
+msgid "Add filter"
+msgstr "Iragazkia sortu"
+
+#: front/src/components/library/radios/Builder.vue:40
+msgid "Add filters to customize your radio"
+msgstr "Iragazkiak sortu zure irratia pertsonalizatzeko"
+
+#: front/src/components/favorites/TrackFavoriteIcon.vue:4
+#: front/src/components/favorites/TrackFavoriteIcon.vue:21
+msgid "Add to favorites"
+msgstr "Gogokoetan sartu"
+
+#: front/src/components/playlists/TrackPlaylistIcon.vue:6
+#: front/src/components/playlists/TrackPlaylistIcon.vue:32
+msgid "Add to playlist..."
+msgstr "Zerrendan sartu..."
+
+#: front/src/components/audio/PlayButton.vue:14
+msgid "Add to queue"
+msgstr "Ilaran gehitu"
+
+#: front/src/components/playlists/PlaylistModal.vue:54
+msgid "Add track"
+msgstr "Abestia sartu"
+
+#: front/src/components/manage/users/UsersTable.vue:69
+msgid "Admin"
+msgstr "Admin"
+
+#: front/src/components/Sidebar.vue:82
+msgid "Administration"
+msgstr "Administrazioa"
+
+#: front/src/components/audio/track/Table.vue:8
+#: front/src/components/manage/library/FilesTable.vue:39
+#: front/src/views/content/libraries/FilesTable.vue:53
+#: front/src/components/library/Album.vue:101 src/components/audio/SearchBar.vue:26
+#: front/src/components/metadata/Search.vue:134
+msgid "Album"
+msgstr "Albuma"
+
+#: front/src/components/library/Album.vue:12
+msgid "Album containing %{ count } track, by %{ artist }"
+msgid_plural "Album containing %{ count } tracks, by %{ artist }"
+msgstr[0] "Albumak abesti %{ count } du. Artista: %{ artist }"
+msgstr[1] "Albumak %{ count } abesti ditu. Artista: %{ artist }"
+
+#: front/src/components/library/Track.vue:20
+msgid "Album page"
+msgstr "Album orria"
+
+#: front/src/components/audio/Search.vue:19 src/components/instance/Stats.vue:48
+#: front/src/components/requests/Form.vue:9
+msgid "Albums"
+msgstr "Albumak"
+
+#: front/src/components/library/Artist.vue:44
+msgid "Albums by this artist"
+msgstr "Artista honen albumak"
+
+#: front/src/components/manage/users/InvitationsTable.vue:19
+#: front/src/views/content/libraries/FilesTable.vue:13
+msgid "All"
+msgstr "Dena"
+
+#: front/src/components/playlists/Editor.vue:13
+msgid "An error occured while saving your changes"
+msgstr "Errorea aldaketak gordetzerakoan"
+
+#: front/src/components/auth/Login.vue:10
+msgid "An unknown error happend, this can mean the server is down or cannot be reached"
+msgstr ""
+"Errore ezezaguna gertatu da. Honek, zerbitzaria erori dela edota ezin dela "
+"atzeman esan nahi du"
+
+#: front/src/components/auth/Logout.vue:5
+msgid "Are you sure you want to log out?"
+msgstr "Zir al zaude saioa itxi nahi duzula?"
+
+#: front/src/components/audio/track/Table.vue:7
+#: front/src/components/manage/library/FilesTable.vue:38
+#: front/src/views/content/libraries/FilesTable.vue:52
+#: front/src/components/library/Artist.vue:129 src/components/audio/SearchBar.vue:25
+#: front/src/components/metadata/Search.vue:130
+msgid "Artist"
+msgstr "Artista"
+
+#: front/src/components/requests/Form.vue:5 src/components/mixins/Translations.vue:24
+msgid "Artist name"
+msgstr "Artistaren izena"
+
+#: front/src/components/library/Album.vue:22 src/components/library/Track.vue:23
+msgid "Artist page"
+msgstr "Artistaren orria"
+
+#: front/src/components/audio/Search.vue:10 src/components/instance/Stats.vue:42
+#: front/src/components/library/Library.vue:7 src/components/library/Artists.vue:120
+msgid "Artists"
+msgstr "Artistak"
+
+#: front/src/components/favorites/List.vue:33 src/components/library/Artists.vue:25
+#: front/src/components/library/Radios.vue:44
+#: front/src/components/manage/library/FilesTable.vue:19
+#: front/src/components/manage/users/UsersTable.vue:19
+#: front/src/views/content/libraries/FilesTable.vue:31
+#: front/src/views/playlists/List.vue:27
+msgid "Ascending"
+msgstr "Gorantza"
+
+#: front/src/views/auth/PasswordReset.vue:27
+msgid "Ask for a password reset"
+msgstr "Eskatu pasahitza berrezartzeko"
+
+#: front/src/components/playlists/PlaylistModal.vue:26
+msgid "Available playlists"
+msgstr "Zerrendak eskuragarri"
+
+#: front/src/components/auth/Settings.vue:34
+msgid "Avatar"
+msgstr "Irudia"
+
+#: front/src/views/auth/EmailConfirm.vue:17 src/views/auth/PasswordReset.vue:24
+#: front/src/views/auth/PasswordResetConfirm.vue:18
+msgid "Back to login"
+msgstr "Itzuli sarrerara"
+
+#: front/src/components/library/Track.vue:80
+#: front/src/components/manage/library/FilesTable.vue:42
+#: front/src/components/mixins/Translations.vue:28
+msgid "Bitrate"
+msgstr "Bitrate"
+
+#: front/src/components/Sidebar.vue:18 src/components/library/Library.vue:4
+msgid "Browse"
+msgstr "Bilatu"
+
+#: front/src/components/Sidebar.vue:65
+msgid "Browse library"
+msgstr "Bilatu liburutegia"
+
+#: front/src/components/library/Artists.vue:4
+msgid "Browsing artists"
+msgstr "Bilatu artistak"
+
+#: front/src/views/playlists/List.vue:3
+msgid "Browsing playlists"
+msgstr "Zerrendak bilatzen"
+
+#: front/src/components/library/Radios.vue:4
+msgid "Browsing radios"
+msgstr "Irratiak bilatzen"
+
+#: front/src/components/library/radios/Builder.vue:5
+msgid "Builder"
+msgstr "Eraikitzailea"
+
+#: front/src/components/audio/album/Card.vue:13
+msgid "By %{ artist }"
+msgstr "Artista:  %{ artist }"
+
+#: front/src/views/content/remote/Card.vue:103
+msgid "By unfollowing this library, you will loose access to its content."
+msgstr ""
+"Liburutegi hau jarraitzeari utzita, bere edukirako sarbidea galduko duzu."
+
+#: front/src/components/common/DangerousButton.vue:17
+#: front/src/components/library/radios/Filter.vue:53
+#: front/src/components/playlists/PlaylistModal.vue:63
+msgid "Cancel"
+msgstr "Ezeztatu"
+
+#: front/src/components/library/radios/Builder.vue:63
+msgid "Candidates"
+msgstr "Hautagaiak"
+
+#: front/src/components/auth/Settings.vue:76
+msgid "Cannot change your password"
+msgstr "Ezin izan da pasahitza aldatu"
+
+#: front/src/App.vue:65
+msgid "Change language"
+msgstr "Hizkuntza aldatu"
+
+#: front/src/components/auth/Settings.vue:67
+msgid "Change my password"
+msgstr "Nire pasahitza aldatu"
+
+#: front/src/components/auth/Settings.vue:95
+msgid "Change password"
+msgstr "Pasahitza aldatu"
+
+#: front/src/views/auth/PasswordResetConfirm.vue:4
+#: front/src/views/auth/PasswordResetConfirm.vue:62
+msgid "Change your password"
+msgstr "Zure pasahitza aldatu"
+
+#: front/src/components/auth/Settings.vue:96
+msgid "Change your password?"
+msgstr "Zure pasahitza aldatu?"
+
+#: front/src/components/playlists/Editor.vue:21
+msgid "Changes synced with server"
+msgstr "Aldaketak zerbitzariarekin sinkronizatuta"
+
+#: front/src/components/auth/Settings.vue:70
+msgid "Changing your password will also change your Subsonic API password if you have requested one."
+msgstr ""
+"Zure pasahitza aldatzeak Subsonic APIko pasahitza ere aldatuko du, baten bat "
+"eskatuta baduzu."
+
+#: front/src/components/auth/Settings.vue:98
+msgid "Changing your password will have the following consequences"
+msgstr "Pasahitza aldatzeak hurrengo ondorioak izango ditu"
+
+#: front/src/App.vue:6
+msgid "Choose your instance"
+msgstr "Zure instantzia hautatu"
+
+#: front/src/components/Home.vue:64
+msgid "Clean library"
+msgstr "Garbitu liburutegia"
+
+#: front/src/components/manage/users/InvitationForm.vue:37
+msgid "Clear"
+msgstr "Garbitu"
+
+#: front/src/components/playlists/Editor.vue:40
+#: front/src/components/playlists/Editor.vue:45
+msgid "Clear playlist"
+msgstr "Garbitu zerrenda"
+
+#: front/src/components/Home.vue:44
+msgid "Click once, listen for hours using built-in radios"
+msgstr "Klik egin behin, entzun orduetan irratiak erabiliz"
+
+#: front/src/components/library/FileUpload.vue:76
+msgid "Click to select files to upload or drag and drop files or directories"
+msgstr ""
+"Klik egin igotzeko fitxategiak aukeratzeko edo arrastatu eta jaregin "
+"fitxategi edo karpetak"
+
+#: front/src/components/manage/users/InvitationForm.vue:26
+#: front/src/components/manage/users/InvitationsTable.vue:42
+msgid "Code"
+msgstr "Kodea"
+
+#: front/src/components/audio/album/Card.vue:43
+#: front/src/components/audio/artist/Card.vue:33
+#: front/src/components/discussion/Comment.vue:20
+msgid "Collapse"
+msgstr "Itxi"
+
+#: front/src/components/requests/Form.vue:14
+msgid "Comment"
+msgstr "Iruzkina"
+
+#: front/src/components/library/radios/Builder.vue:62
+msgid "Config"
+msgstr "Konfigurazioa"
+
+#: front/src/components/common/DangerousButton.vue:21
+msgid "Confirm"
+msgstr "Baieztatu"
+
+#: front/src/views/auth/EmailConfirm.vue:4 src/views/auth/EmailConfirm.vue:20
+#: front/src/views/auth/EmailConfirm.vue:51
+msgid "Confirm your email"
+msgstr "E-maila baieztatu"
+
+#: front/src/views/auth/EmailConfirm.vue:13
+msgid "Confirmation code"
+msgstr "Baieztapen kodea"
+
+#: front/src/components/common/CopyInput.vue:8
+msgid "Copy"
+msgstr "Kopiatu"
+
+#: front/src/components/Home.vue:85
+msgid "Covers, lyrics, our goal is to have them all ;)"
+msgstr "Azalak, letrak, gure helburua horiek denak edukitzea da ;)"
+
+#: front/src/components/auth/Signup.vue:4
+msgid "Create a funkwhale account"
+msgstr "Sortu funkwhale kontua"
+
+#: front/src/views/content/libraries/Home.vue:14
+msgid "Create a new library"
+msgstr "Liburutegi berria sortu"
+
+#: front/src/components/playlists/Form.vue:2
+msgid "Create a new playlist"
+msgstr "Zerrenda berria sortu"
+
+#: front/src/components/Sidebar.vue:57 src/components/auth/Login.vue:17
+msgid "Create an account"
+msgstr "Kontua sortu"
+
+#: front/src/components/requests/Card.vue:25
+msgid "Create import"
+msgstr "Inportazioa sortu"
+
+#: front/src/views/content/libraries/Form.vue:26
+msgid "Create library"
+msgstr "Liburutegia sortu"
+
+#: front/src/components/auth/Signup.vue:51
+msgid "Create my account"
+msgstr "Sortu nire kontua"
+
+#: front/src/components/playlists/Form.vue:34
+msgid "Create playlist"
+msgstr "Zerrenda sortu"
+
+#: front/src/components/library/Radios.vue:23
+msgid "Create your own radio"
+msgstr "Sortu zure irrati propioa"
+
+#: front/src/components/manage/users/InvitationsTable.vue:40
+#: front/src/components/mixins/Translations.vue:17
+msgid "Creation date"
+msgstr "Sortze data"
+
+#: front/src/components/auth/Settings.vue:54
+msgid "Current avatar"
+msgstr "Oraingo irudia"
+
+#: front/src/views/content/libraries/DetailArea.vue:4
+msgid "Current library"
+msgstr "Oraingo liburutegia"
+
+#: front/src/components/playlists/PlaylistModal.vue:8
+msgid "Current track"
+msgstr "Oraingo abestia"
+
+#: front/src/views/content/libraries/Quota.vue:2
+msgid "Current usage"
+msgstr "Oraingo erabilera"
+
+#: front/src/views/content/libraries/Detail.vue:27
+msgid "Date"
+msgstr "Data"
+
+#: front/src/views/content/libraries/Form.vue:29 src/views/playlists/Detail.vue:33
+#: front/src/components/manage/library/FilesTable.vue:190
+#: front/src/components/manage/users/InvitationsTable.vue:167
+#: front/src/views/content/libraries/FilesTable.vue:258
+msgid "Delete"
+msgstr "Ezabatu"
+
+#: front/src/views/content/libraries/Form.vue:39
+msgid "Delete library"
+msgstr "Liburutegia ezabatu"
+
+#: front/src/views/playlists/Detail.vue:38
+msgid "Delete playlist"
+msgstr "Zerrenda ezabatu"
+
+#: front/src/views/radios/Detail.vue:28
+msgid "Delete radio"
+msgstr "Irratia ezabatu"
+
+#: front/src/views/content/libraries/Form.vue:31
+msgid "Delete this library?"
+msgstr "Liburutegi hau ezabatu?"
+
+#: front/src/components/favorites/List.vue:34 src/components/library/Artists.vue:26
+#: front/src/components/library/Radios.vue:47
+#: front/src/components/manage/library/FilesTable.vue:20
+#: front/src/components/manage/users/UsersTable.vue:20
+#: front/src/views/content/libraries/FilesTable.vue:32
+#: front/src/views/playlists/List.vue:28
+msgid "Descending"
+msgstr "Beheranzkoa"
+
+#: front/src/components/library/radios/Builder.vue:25
+#: front/src/views/content/libraries/Form.vue:14
+msgid "Description"
+msgstr "Deskribapena"
+
+#: front/src/views/content/libraries/Card.vue:47
+msgid "Detail"
+msgstr "Xehetasuna"
+
+#: front/src/views/content/remote/Card.vue:50
+msgid "Details"
+msgstr "Xehetasunak"
+
+#: front/src/components/auth/Settings.vue:104
+#: front/src/components/auth/SubsonicTokenForm.vue:52
+msgid "Disable access"
+msgstr "Sarbidea ezgaitu"
+
+#: front/src/components/auth/SubsonicTokenForm.vue:49
+msgid "Disable Subsonic access"
+msgstr "Subsonic sarbidea ezgaitu"
+
+#: front/src/components/auth/SubsonicTokenForm.vue:50
+msgid "Disable Subsonic API access?"
+msgstr "Subsonic API sarbidea ezgaitu?"
+
+#: front/src/components/auth/SubsonicTokenForm.vue:14
+msgid "Discover how to use Funkwhale from other apps"
+msgstr "Ezagutu nola erabili Funkwhale beste aplikazio batzuetatik"
+
+#: front/src/components/library/radios/Builder.vue:30
+msgid "Display publicly"
+msgstr "Erakutsi publikoki"
+
+#: front/src/components/playlists/Editor.vue:42
+msgid "Do you want to clear the playlist \"%{ playlist }\"?"
+msgstr "Nahi duzu \"%{ playlist }\" zerrenda garbitzea?"
+
+#: front/src/components/common/DangerousButton.vue:7
+msgid "Do you want to confirm this action?"
+msgstr "Nahi duzu akzio hau baieztatzea?"
+
+#: front/src/views/playlists/Detail.vue:35
+msgid "Do you want to delete the playlist \"%{ playlist }\"?"
+msgstr "Nahi duzu \"%{ playlist }\" zerrenda ezabatzea?"
+
+#: front/src/views/radios/Detail.vue:26
+msgid "Do you want to delete the radio \"%{ radio }\"?"
+msgstr "Nahi duzu \"%{ radio }\" irratia ezabatzea?"
+
+#: front/src/components/common/ActionTable.vue:29
+msgid "Do you want to launch %{ action } on %{ count } element?"
+msgid_plural "Do you want to launch %{ action } on %{ count } elements?"
+msgstr[0] "Nahi duzu %{ action } abiatzea elementu %{ count }ean?"
+msgstr[1] "Nahi duzu %{ action } abiatzea %{ count } elementutan?"
+
+#: front/src/components/Sidebar.vue:104
+msgid "Do you want to restore your previous queue?"
+msgstr "Nahi duzu aurreko ilara berrezartzea?"
+
+#: front/src/App.vue:37
+msgid "Documentation"
+msgstr "Dokumentazioa"
+
+#: front/src/components/library/Track.vue:48
+msgid "Download"
+msgstr "Deskargatu"
+
+#: front/src/components/playlists/Editor.vue:49
+msgid "Drag and drop rows to reorder tracks in the playlist"
+msgstr "Arrastatu eta jaregin lerroak abestiak zerrendan berrordenatzeko"
+
+#: front/src/components/audio/track/Table.vue:9 src/components/library/Track.vue:58
+#: front/src/components/manage/library/FilesTable.vue:43
+#: front/src/views/content/libraries/FilesTable.vue:56
+#: front/src/components/mixins/Translations.vue:29
+msgid "Duration"
+msgstr "Iraupena"
+
+#: front/src/components/Home.vue:93
+msgid "Easy to use"
+msgstr "Erabiltzeko erraza"
+
+#: front/src/views/content/libraries/Detail.vue:9
+msgid "Edit"
+msgstr "Editatu"
+
+#: front/src/components/About.vue:21
+msgid "Edit instance info"
+msgstr "Editatu instantzia infoa"
+
+#: front/src/components/radios/Card.vue:22 src/views/playlists/Detail.vue:30
+msgid "Edit..."
+msgstr "Editatu..."
+
+#: front/src/components/auth/Signup.vue:29
+#: front/src/components/manage/users/UsersTable.vue:38
+msgid "Email"
+msgstr "Emaila"
+
+#: front/src/views/admin/users/UsersDetail.vue:29
+msgid "Email address"
+msgstr "Email helbidea"
+
+#: front/src/views/auth/EmailConfirm.vue:23
+msgid "Email confirmed"
+msgstr "Emaila baieztatuta"
+
+#: front/src/views/playlists/Detail.vue:29
+msgid "End edition"
+msgstr "Amaitu edizioa"
+
+#: front/src/components/auth/SubsonicTokenForm.vue:20
+#: front/src/views/content/libraries/Form.vue:4
+msgid "Error"
+msgstr "Errorea"
+
+#: front/src/views/content/remote/Card.vue:39
+msgid "Error during scan"
+msgstr "Errorea eskaneatzen zen bitartean"
+
+#: front/src/components/common/ActionTable.vue:79
+msgid "Error while applying action"
+msgstr "Errorea akzioa aplikatzen zen bitartean"
+
+#: front/src/views/auth/PasswordReset.vue:7
+msgid "Error while asking for a password reset"
+msgstr "Errorea pasahitza berrezartzerakoan"
+
+#: front/src/views/auth/PasswordResetConfirm.vue:7
+msgid "Error while changing your password"
+msgstr "Errorea zure pasahitza aldatzerakoan"
+
+#: front/src/views/auth/EmailConfirm.vue:7
+msgid "Error while confirming your email"
+msgstr "Errorea zure emaila baieztatzerakoan"
+
+#: front/src/components/manage/users/InvitationForm.vue:4
+msgid "Error while creating invitation"
+msgstr "Errorea gonbidapena sortzean"
+
+#: front/src/views/content/remote/ScanForm.vue:3
+msgid "Error while fetching remote library"
+msgstr "Errorea urruneko liburutegia atzitzean"
+
+#: front/src/components/admin/SettingsGroup.vue:5
+msgid "Error while saving settings"
+msgstr "Errorea ezarpenak gordetzean"
+
+#: front/src/views/content/libraries/FilesTable.vue:16
+#: front/src/views/content/libraries/FilesTable.vue:237
+msgid "Errored"
+msgstr "Erroreduna"
+
+#: front/src/views/content/libraries/Quota.vue:75
+msgid "Errored files"
+msgstr "Erroredun fitxategiak"
+
+#: front/src/views/content/remote/Card.vue:58
+msgid "Errored tracks:"
+msgstr "Erroredun abestiak:"
+
+#: front/src/components/library/radios/Builder.vue:61
+msgid "Exclude"
+msgstr "Baztertu"
+
+#: front/src/components/discussion/Comment.vue:14
+msgid "Expand"
+msgstr "Zabaldu"
+
+#: front/src/components/manage/users/InvitationsTable.vue:41
+#: front/src/components/mixins/Translations.vue:21
+msgid "Expiration date"
+msgstr "Iraungitze data"
+
+#: front/src/components/manage/users/InvitationsTable.vue:50
+msgid "Expired"
+msgstr "Iraungita"
+
+#: front/src/components/manage/users/InvitationsTable.vue:21
+msgid "Expired/used"
+msgstr "Iraungita/erabilita"
+
+#: front/src/components/Sidebar.vue:66
+msgid "Favorites"
+msgstr "Gogokoak"
+
+#: front/src/components/library/FileUpload.vue:83
+msgid "File name"
+msgstr "Fitxategi izena"
+
+#: front/src/views/admin/library/Base.vue:5 src/views/admin/library/FilesList.vue:21
+msgid "Files"
+msgstr "Fitxategiak"
+
+#: front/src/components/library/radios/Builder.vue:60
+msgid "Filter name"
+msgstr "Iragazki izena"
+
+#: front/src/views/content/libraries/FilesTable.vue:17
+#: front/src/views/content/libraries/FilesTable.vue:241
+msgid "Finished"
+msgstr "Amaituta"
+
+#: front/src/views/content/remote/Card.vue:83
+msgid "Follow"
+msgstr "Jarraitu"
+
+#: front/src/views/content/remote/Card.vue:88
+msgid "Follow pending approval"
+msgstr "Jarraipena onarpenaren zain"
+
+#: front/src/views/content/Home.vue:16
+msgid "Follow remote libraries"
+msgstr "Jarraitu urruneko liburutegiak"
+
+#: front/src/views/content/libraries/Detail.vue:7
+msgid "Followers"
+msgstr "Jarraitzaileak"
+
+#: front/src/views/content/remote/Card.vue:93
+msgid "Following"
+msgstr "Jarraitzen"
+
+#: front/src/components/activity/Like.vue:14 src/components/activity/Listen.vue:14
+msgid "from %{ album } by %{ artist }"
+msgstr "%{ album }-(e)tik %{ artist }-(e)k"
+
+#: front/src/components/library/Track.vue:13
+msgid "From album %{ album } by %{ artist }"
+msgstr "%{ album } albumetik %{ artist }-(e)k"
+
+#: front/src/App.vue:55
+msgid "Funkwhale is a free and open-source project run by volunteers. You can help us improve the platform by reporting bugs, suggesting features and share the project with your friends!"
+msgstr ""
+"Funkwhale boluntarioek eginiko doako eta kode irekiko proiektua da. "
+"Plataforma hobetzen lagun diezagukezu akatsen berri emanez, "
+"funtzionalitateak iradokiz eta proiektua zure lagunekin elkarbanatuz!"
+
+#: front/src/components/auth/SubsonicTokenForm.vue:7
+msgid "Funkwhale is compatible with other music players that support the Subsonic API."
+msgstr ""
+"Funkwhale Subsonic APIa darabilten beste musika erreproduzitzaileekin "
+"bateragarria da."
+
+#: front/src/components/Home.vue:95
+msgid "Funkwhale is dead simple to use."
+msgstr "Funkwhale erabiltzeko izugarri erraza da."
+
+#: front/src/components/Home.vue:39
+msgid "Funkwhale is designed to make it easy to listen to music you like, or to discover new artists."
+msgstr ""
+"Funkwhale gustuko duzun musika erraz entzun edo artista berriak aurkitzeko "
+"diseinatuta dago."
+
+#: front/src/components/Home.vue:116
+msgid "Funkwhale is free and gives you control on your music."
+msgstr "Funkwhale doakoa da eta zure musikaren gaineko kontrola ematen dizu."
+
+#: front/src/components/Home.vue:66
+msgid "Funkwhale takes care of handling your music"
+msgstr "Funkwhalek zure musika kudeatzeko ardura hartzen du"
+
+#: front/src/components/manage/users/InvitationForm.vue:16
+msgid "Get a new invitation"
+msgstr "Lortu gonbidapen berria"
+
+#: front/src/components/Home.vue:13
+msgid "Get me to the library"
+msgstr "Eraman liburutegira"
+
+#: front/src/components/Home.vue:76
+msgid "Get quality metadata about your music thanks to <a href=\"%{ url }\" target=\"_blank\">MusicBrainz</a>"
+msgstr ""
+"Lortu zure musikari buruzko kalitatezko metadatuak <a href=\"%{ url }\" "
+"target=\"_blank\">MusicBrainz</a> plataformari esker"
+
+#: front/src/views/content/Home.vue:12 src/views/content/Home.vue:19
+msgid "Get started"
+msgstr "Hasi"
+
+#: front/src/components/common/ActionTable.vue:21
+#: front/src/components/common/ActionTable.vue:27
+msgid "Go"
+msgstr "Joan"
+
+#: front/src/components/PageNotFound.vue:14
+msgid "Go to home page"
+msgstr "Joan hasiera orrira"
+
+#: front/src/App.vue:73
+msgid "Help us translate Funkwhale"
+msgstr "Lagundu Funkwhale itzultzen"
+
+#: front/src/components/instance/Stats.vue:36
+msgid "Hours of music"
+msgstr "Ordutako musika"
+
+#: front/src/components/auth/SubsonicTokenForm.vue:11
+msgid "However, accessing Funkwhale from those clients require a separate password you can set below."
+msgstr ""
+"Hala ere, beste bezero batzuetatik Funkwhalera sarbidea lortzeko behean ezar "
+"dezakezun aparteko pasahitz bat behar duzu."
+
+#: front/src/views/auth/PasswordResetConfirm.vue:24
+msgid "If the email address provided in the previous step is valid and binded to a user account, you should receive an email with reset instructions in the next couple of minutes."
+msgstr ""
+"Aurreko pausoan emandako emaila zuzena bada eta erabiltzaile kontu bati "
+"lotua, datozen minutuetan email bat jaso beharko zenuke pasahitza "
+"berrezartzeko pausoekin."
+
+#: front/src/components/manage/library/FilesTable.vue:40
+msgid "Import date"
+msgstr "Inportazio data"
+
+#: front/src/components/Home.vue:71
+msgid "Import music from various platforms, such as YouTube or SoundCloud"
+msgstr "Inportatu musika YouTube edo SoundCloud moduko zenbait plataformetatik"
+
+#: front/src/components/library/FileUpload.vue:51
+msgid "Import reference"
+msgstr "Inportazio erreferentzia"
+
+#: front/src/views/content/libraries/FilesTable.vue:11
+#: front/src/views/content/libraries/FilesTable.vue:55
+msgid "Import status"
+msgstr "Inportazio egoera"
+
+#: front/src/components/favorites/TrackFavoriteIcon.vue:3
+msgid "In favorites"
+msgstr "Gogokoetan"
+
+#: front/src/components/manage/users/UsersTable.vue:54
+msgid "Inactive"
+msgstr "Ez gaituta"
+
+#: front/src/components/playlists/Editor.vue:31
+msgid "Insert from queue (%{ count } track)"
+msgid_plural "Insert from queue (%{ count } tracks)"
+msgstr[0] "Sartu ilaratik (abesti %{ count })"
+msgstr[1] "Sartu ilaratik (%{ count } abesti)"
+
+#: front/src/components/library/Radios.vue:9
+msgid "Instance radios"
+msgstr "Instantziako irratiak"
+
+#: front/src/components/auth/Signup.vue:42
+#: front/src/components/manage/users/InvitationForm.vue:11
+msgid "Invitation code"
+msgstr "Gonbidapen kodea"
+
+#: front/src/components/auth/Signup.vue:43
+msgid "Invitation code (optional)"
+msgstr "Gonbidapen kodea (hautazkoa)"
+
+#: front/src/views/admin/users/Base.vue:8 src/views/admin/users/InvitationsList.vue:3
+#: front/src/views/admin/users/InvitationsList.vue:24
+msgid "Invitations"
+msgstr "Gonbidapenak"
+
+#: front/src/App.vue:42
+msgid "Issue tracker"
+msgstr "Arazoen jarraipena"
+
+#: front/src/views/content/libraries/Home.vue:9
+msgid "It looks like you don't have any library yet, it's time to create one!"
+msgstr "Badirudi ez duzula liburutegirik oraindik, bada bat sortzeko ordua!"
+
+#: front/src/components/Home.vue:50
+msgid "Keep a track of your favorite songs"
+msgstr "Izan zure gogoko abestien jarraipena"
+
+#: front/src/views/content/remote/Home.vue:14
+msgid "Known libraries"
+msgstr "Liburutegi ezagunak"
+
+#: front/src/components/manage/users/UsersTable.vue:41
+#: front/src/views/admin/users/UsersDetail.vue:45
+#: front/src/components/mixins/Translations.vue:31
+msgid "Last activity"
+msgstr "Azken jarduera"
+
+#: front/src/components/playlists/PlaylistModal.vue:32
+msgid "Last modification"
+msgstr "Azken aldaketa"
+
+#: front/src/views/content/remote/Card.vue:56
+msgid "Last update:"
+msgstr "Azken eguneraketa:"
+
+#: front/src/components/common/ActionTable.vue:40
+msgid "Launch"
+msgstr "Abiarazi"
+
+#: front/src/views/content/remote/Card.vue:63
+msgid "Launch scan"
+msgstr "Abiarazi eskaneatzea"
+
+#: front/src/components/Home.vue:10
+msgid "Learn more about this instance"
+msgstr "Ikasi gehiago instantzia honi buruz"
+
+#: front/src/components/requests/Form.vue:10
+msgid "Leave this field empty if you're requesting the whole discography."
+msgstr "Utzi eremu hau hutsik diskografia osoa eskatzen ari bazara."
+
+#: front/src/views/content/Base.vue:5
+msgid "Libraries"
+msgstr "Liburutegiak"
+
+#: front/src/views/content/libraries/Form.vue:2
+msgid "Libraries help you organize and share your music collections. You can upload your own music collection to Funkwhale and share it with your friends and family."
+msgstr ""
+"Liburutegiak zure musika bildumak antolatzen eta partekatzen laguntze "
+"dizute. Zure musika bilduma igo dezakezu Funkwhalera eta zure familia eta "
+"lagunekin partekatu."
+
+#: front/src/components/instance/Stats.vue:30
+#: front/src/components/manage/users/UsersTable.vue:177
+#: front/src/views/admin/users/UsersDetail.vue:181
+msgid "Library"
+msgstr "Liburutegia"
+
+#: front/src/views/admin/library/FilesList.vue:3
+msgid "Library files"
+msgstr "Liburutegi fitxategiak"
+
+#: front/src/App.vue:31
+msgid "Links"
+msgstr "Loturak"
+
+#: front/src/views/content/libraries/Detail.vue:21
+msgid "Loading followers..."
+msgstr "Jarraitzaileak kargatzen..."
+
+#: front/src/views/content/libraries/Home.vue:3
+msgid "Loading Libraries..."
+msgstr "Liburutegiak kargatzen..."
+
+#: front/src/views/content/libraries/Detail.vue:3
+#: front/src/views/content/libraries/Upload.vue:3
+msgid "Loading library data..."
+msgstr "Liburutegi datuak kargatzen..."
+
+#: front/src/views/Notifications.vue:4
+msgid "Loading notifications..."
+msgstr "Jakinarazpenak kargatzen..."
+
+#: front/src/views/content/remote/Home.vue:3
+msgid "Loading remote libraries..."
+msgstr "Urruneko liburutegiak kargatzen..."
+
+#: front/src/views/instance/Timeline.vue:4
+msgid "Loading timeline..."
+msgstr "Denboralerroa kargatzen..."
+
+#: front/src/views/content/libraries/Quota.vue:4
+msgid "Loading usage data..."
+msgstr "Erabilpen datuak kargatzen..."
+
+#: front/src/components/favorites/List.vue:5
+msgid "Loading your favorites..."
+msgstr "Zure gogokoak kargatzen..."
+
+#: front/src/components/auth/Login.vue:4
+msgid "Log in to your Funkwhale account"
+msgstr "Sartu zure Funkwhale kontura"
+
+#: front/src/components/Sidebar.vue:38
+msgid "Logged in as %{ username }"
+msgstr "%{ username } moduan sartuta"
+
+#: front/src/components/Sidebar.vue:54 src/components/auth/Login.vue:41
+msgid "Login"
+msgstr "Sartu"
+
+#: front/src/components/Sidebar.vue:52
+msgid "Logout"
+msgstr "Irten"
+
+#: front/src/components/library/Track.vue:105
+msgid "Lyrics"
+msgstr "Letrak"
+
+#: front/src/components/playlists/PlaylistModal.vue:3
+msgid "Manage playlists"
+msgstr "Kudeatu zerrendak"
+
+#: front/src/views/playlists/List.vue:8
+msgid "Manage your playlists"
+msgstr "Kudeatu zure zerrendak"
+
+#: front/src/views/Notifications.vue:17
+msgid "Mark all as read"
+msgstr "Markatu dena irakurrita"
+
+#: front/src/views/admin/users/UsersDetail.vue:94
+msgid "MB"
+msgstr "MB"
+
+#: front/src/components/Sidebar.vue:63
+msgid "Music"
+msgstr "Musika"
+
+#: front/src/components/Sidebar.vue:34
+msgid "My account"
+msgstr "Nire kontua"
+
+#: front/src/views/content/libraries/Home.vue:6
+msgid "My libraries"
+msgstr "Nire liburutegiak"
+
+#: front/src/components/audio/track/Row.vue:40 src/components/library/Track.vue:64
+#: front/src/components/library/Track.vue:75 src/components/library/Track.vue:86
+#: front/src/components/library/Track.vue:97
+#: front/src/components/manage/library/FilesTable.vue:63
+#: front/src/components/manage/library/FilesTable.vue:69
+#: front/src/components/manage/library/FilesTable.vue:75
+#: front/src/components/manage/library/FilesTable.vue:81
+#: front/src/components/manage/users/UsersTable.vue:61
+#: front/src/views/admin/users/UsersDetail.vue:49
+#: front/src/views/content/libraries/FilesTable.vue:89
+#: front/src/views/content/libraries/FilesTable.vue:95
+msgid "N/A"
+msgstr "Daturik gabe"
+
+#: front/src/components/playlists/PlaylistModal.vue:31
+#: front/src/views/admin/users/UsersDetail.vue:21
+#: front/src/views/content/libraries/Form.vue:10
+#: front/src/components/mixins/Translations.vue:25
+msgid "Name"
+msgstr "Izena"
+
+#: front/src/components/auth/Settings.vue:88
+#: front/src/views/auth/PasswordResetConfirm.vue:14
+msgid "New password"
+msgstr "Pasahitz berria"
+
+#: front/src/components/Sidebar.vue:149
+msgid "New tracks will be appended here automatically."
+msgstr "Abesti berriak hemen gehituko dira automatikoki."
+
+#: front/src/components/Sidebar.vue:116
+msgid "No"
+msgstr "Ez"
+
+#: front/src/components/Home.vue:100
+msgid "No add-ons, no plugins : you only need a web library"
+msgstr ""
+
+#: front/src/components/library/Track.vue:113
+msgid "No lyrics available for this track."
+msgstr "Ez dago letrarik eskuragarri abesti honentzat."
+
+#: front/src/components/federation/LibraryWidget.vue:6
+msgid "No matching library."
+msgstr "Ez da liburutegirik aurkitu."
+
+#: front/src/views/content/libraries/Detail.vue:57
+msgid "Nobody is following this library"
+msgstr "Inor ez da liburutegi hau jarraitzen ari"
+
+#: front/src/components/manage/users/InvitationsTable.vue:51
+msgid "Not used"
+msgstr "Ez da erabiltzen"
+
+#: front/src/components/Sidebar.vue:46 src/views/Notifications.vue:74
+msgid "Notifications"
+msgstr "Jakinarazpenak"
+
+#: front/src/App.vue:36
+msgid "Official website"
+msgstr "Webgune ofiziala"
+
+#: front/src/components/auth/Settings.vue:83
+msgid "Old password"
+msgstr "Pasahitz zaharra"
+
+#: front/src/components/manage/users/InvitationsTable.vue:20
+msgid "Open"
+msgstr "Ireki"
+
+#: front/src/App.vue:62
+msgid "Options"
+msgstr "Aukerak"
+
+#: front/src/components/favorites/List.vue:23 src/components/library/Artists.vue:15
+#: front/src/components/library/Radios.vue:33
+#: front/src/components/manage/library/FilesTable.vue:9
+#: front/src/components/manage/users/InvitationsTable.vue:9
+#: front/src/components/manage/users/UsersTable.vue:9
+#: front/src/views/content/libraries/FilesTable.vue:21
+#: front/src/views/playlists/List.vue:17
+msgid "Ordering"
+msgstr "Ordena"
+
+#: front/src/components/favorites/List.vue:31 src/components/library/Artists.vue:23
+#: front/src/components/library/Radios.vue:41
+#: front/src/components/manage/library/FilesTable.vue:17
+#: front/src/components/manage/users/UsersTable.vue:17
+#: front/src/views/content/libraries/FilesTable.vue:29
+#: front/src/views/playlists/List.vue:25
+msgid "Ordering direction"
+msgstr "Ordenazio norabidea"
+
+#: front/src/components/manage/users/InvitationsTable.vue:38
+msgid "Owner"
+msgstr "Jabea"
+
+#: front/src/components/PageNotFound.vue:7
+msgid "Page not found!"
+msgstr "Orrialdea ez da aurkitu!"
+
+#: front/src/components/auth/Login.vue:32 src/components/auth/Signup.vue:38
+msgid "Password"
+msgstr "Pasahitza"
+
+#: front/src/views/auth/PasswordResetConfirm.vue:28
+msgid "Password updated successfully"
+msgstr "Pasahitza arrakastaz eguneratu da"
+
+#: front/src/components/library/FileUpload.vue:105
+#: front/src/views/content/libraries/FilesTable.vue:14
+#: front/src/views/content/libraries/FilesTable.vue:233
+msgid "Pending"
+msgstr "Zain"
+
+#: front/src/views/content/libraries/Detail.vue:37
+msgid "Pending approval"
+msgstr "Onarpenaren zain"
+
+#: front/src/views/content/libraries/Quota.vue:22
+msgid "Pending files"
+msgstr "Fitxategiak faltan"
+
+#: front/src/components/requests/Form.vue:26
+msgid "Pending requests"
+msgstr "Eskaerak zain"
+
+#: front/src/components/manage/users/UsersTable.vue:42
+#: front/src/views/admin/users/UsersDetail.vue:68
+msgid "Permissions"
+msgstr "Baimenak"
+
+#: front/src/components/audio/PlayButton.vue:9 src/components/library/Track.vue:30
+msgid "Play"
+msgstr "Erreproduzitu"
+
+#: front/src/components/audio/album/Card.vue:50
+#: front/src/components/audio/artist/Card.vue:44 src/components/library/Album.vue:28
+#: front/src/views/playlists/Detail.vue:23
+msgid "Play all"
+msgstr "Erreproduzitu dena"
+
+#: front/src/components/library/Artist.vue:26
+msgid "Play all albums"
+msgstr "Erreproduzitu album denak"
+
+#: front/src/components/audio/PlayButton.vue:15
+msgid "Play next"
+msgstr "Erreproduzitu hurrengoa"
+
+#: front/src/components/audio/PlayButton.vue:16
+msgid "Play now"
+msgstr "Erreproduzitu orain"
+
+#: front/src/views/playlists/Detail.vue:12
+msgid "Playlist containing %{ count } track, by %{ username }"
+msgid_plural "Playlist containing %{ count } tracks, by %{ username }"
+msgstr[0] "Zerrendak %{ username }-(r)en abesti %{ count } du"
+msgstr[1] "Zerrendak %{ username }-(r)en %{ count } abesti ditu"
+
+#: front/src/components/playlists/Form.vue:9
+msgid "Playlist created"
+msgstr "Zerrenda sortuta"
+
+#: front/src/components/playlists/Editor.vue:4
+msgid "Playlist editor"
+msgstr "Zerrenda editorea"
+
+#: front/src/components/playlists/Form.vue:21
+msgid "Playlist name"
+msgstr "Zerrenda izena"
+
+#: front/src/components/playlists/Form.vue:6
+msgid "Playlist updated"
+msgstr "Zerrenda eguneratuta"
+
+#: front/src/components/playlists/Form.vue:25
+msgid "Playlist visibility"
+msgstr "Zerrenda ikuspena"
+
+#: front/src/components/Sidebar.vue:71 src/components/library/Home.vue:16
+#: front/src/components/library/Library.vue:13 src/views/playlists/List.vue:104
+#: front/src/views/admin/Settings.vue:82
+msgid "Playlists"
+msgstr "Zerrendak"
+
+#: front/src/components/Home.vue:56
+msgid "Playlists? We got them"
+msgstr "Zerrendak? Guk badauzkagu"
+
+#: front/src/components/auth/Settings.vue:79
+msgid "Please double-check your password is correct"
+msgstr "Mesedez egiaztatu bi aldiz pasahitza zuzena dela"
+
+#: front/src/components/auth/Login.vue:9
+msgid "Please double-check your username/password couple is correct"
+msgstr "Mesedez egiaztatu erabiltzaile izena eta pasahitza zuzenak direla"
+
+#: front/src/components/auth/Settings.vue:46
+msgid "PNG, GIF or JPG. At most 2MB. Will be downscaled to 400x400px."
+msgstr "PNG, GIF edo JPG. Gehienez 2MB. 400x400px tamainara murriztuko da."
+
+#: front/src/components/library/FileUpload.vue:58
+msgid "Proceed"
+msgstr "Jarraitu"
+
+#: front/src/views/auth/EmailConfirm.vue:26
+#: front/src/views/auth/PasswordResetConfirm.vue:31
+msgid "Proceed to login"
+msgstr "Jarraitu sarbidera"
+
+#: front/src/components/library/FileUpload.vue:17
+msgid "Processing"
+msgstr "Prozesatzen"
+
+#: front/src/views/content/libraries/Quota.vue:36
+#: front/src/views/content/libraries/Quota.vue:39
+#: front/src/views/content/libraries/Quota.vue:62
+#: front/src/views/content/libraries/Quota.vue:65
+#: front/src/views/content/libraries/Quota.vue:88
+#: front/src/views/content/libraries/Quota.vue:91
+msgid "Purge"
+msgstr "Hustu"
+
+#: front/src/views/content/libraries/Quota.vue:89
+msgid "Purge errored files?"
+msgstr "Hustu errore fitxategiak?"
+
+#: front/src/views/content/libraries/Quota.vue:37
+msgid "Purge pending files?"
+msgstr "Hustu zain dauden fitxategiak?"
+
+#: front/src/views/content/libraries/Quota.vue:63
+msgid "Purge skipped files?"
+msgstr "Hustu saltatutako fitxategiak?"
+
+#: front/src/components/Sidebar.vue:20
+msgid "Queue"
+msgstr "Ilara"
+
+#: front/src/components/library/radios/Builder.vue:15
+msgid "Radio created"
+msgstr "Irratia sortuta"
+
+#: front/src/components/library/radios/Builder.vue:21
+msgid "Radio name"
+msgstr "Irratiaren izena"
+
+#: front/src/components/library/radios/Builder.vue:12
+msgid "Radio updated"
+msgstr "Irratia eguneratuta"
+
+#: front/src/components/library/Library.vue:10 src/components/library/Radios.vue:142
+msgid "Radios"
+msgstr "Irratiak"
+
+#: front/src/views/instance/Timeline.vue:7
+msgid "Recent activity on this instance"
+msgstr "Instantzia honetako azken jarduerak"
+
+#: front/src/components/library/Home.vue:24
+msgid "Recently added"
+msgstr "Azken aldian gehituta"
+
+#: front/src/components/library/Home.vue:11
+msgid "Recently favorited"
+msgstr "Azken aldian gogokoa"
+
+#: front/src/components/library/Home.vue:6
+msgid "Recently listened"
+msgstr "Azken aldian entzuna"
+
+#: front/src/views/admin/users/UsersDetail.vue:103
+#: front/src/views/content/remote/Home.vue:15
+msgid "Refresh"
+msgstr "Berriztu"
+
+#: front/src/components/auth/Profile.vue:12
+msgid "Registered since %{ date }"
+msgstr "%{ date }-(e)tik erregistratuta"
+
+#: front/src/components/auth/Signup.vue:9
+msgid "Registration are closed on this instance, you will need an invitation code to signup."
+msgstr ""
+"Erregistratzea itxita dago instantzia honetan. Gonbidapen kode bat beharko "
+"duzu izena emateko."
+
+#: front/src/components/manage/users/UsersTable.vue:71
+msgid "regular user"
+msgstr "erabiltzaile normala"
+
+#: front/src/views/content/libraries/Detail.vue:51
+msgid "Reject"
+msgstr "Baztertu"
+
+#: front/src/views/content/libraries/Detail.vue:43
+msgid "Rejected"
+msgstr "Baztertuta"
+
+#: front/src/views/content/remote/Home.vue:6
+msgid "Remote libraries"
+msgstr "Urruneko liburutegiak"
+
+#: front/src/views/content/remote/Home.vue:7
+msgid "Remote libraries are owned by other users on the network. You can access them as long as they are public or you are granted access."
+msgstr ""
+"Urruneko liburutegiak interneteko beste erabiltzaile batzuenak dira. "
+"Hauetara sarbidea lor dezakezu hauetara baimena lortzen baduzu edo publikoak "
+"diren bitartean."
+
+#: front/src/components/library/radios/Filter.vue:59
+msgid "Remove"
+msgstr "Ezabatu"
+
+#: front/src/components/auth/Settings.vue:58
+msgid "Remove avatar"
+msgstr "Ezabatu irudia"
+
+#: front/src/components/auth/SubsonicTokenForm.vue:34
+#: front/src/components/auth/SubsonicTokenForm.vue:37
+msgid "Request a new password"
+msgstr "Eskatu pasahitz berria"
+
+#: front/src/components/auth/SubsonicTokenForm.vue:35
+msgid "Request a new Subsonic API password?"
+msgstr "Subsonic API pasahitz berria eskatu?"
+
+#: front/src/components/auth/SubsonicTokenForm.vue:43
+msgid "Request a password"
+msgstr "Eskatu pasahitza"
+
+#: front/src/components/requests/Form.vue:20
+msgid "Request submitted!"
+msgstr "Eskaera eginda!"
+
+#: front/src/components/auth/Login.vue:34 src/views/auth/PasswordReset.vue:4
+msgid "Reset your password"
+msgstr "Berrezarri pasahitza"
+
+#: front/src/components/favorites/List.vue:38 src/components/library/Artists.vue:30
+#: front/src/components/library/Radios.vue:52 src/views/playlists/List.vue:32
+msgid "Results per page"
+msgstr "Emaitzak orrialdeko"
+
+#: front/src/components/admin/SettingsGroup.vue:63
+#: front/src/components/library/radios/Builder.vue:33
+msgid "Save"
+msgstr "Gorde"
+
+#: front/src/views/content/remote/Card.vue:31
+msgid "Scan pending"
+msgstr "Eskaneatzeko zain"
+
+#: front/src/views/content/remote/Card.vue:43
+msgid "Scanned successfully"
+msgstr "Arrakastaz eskaneatuta"
+
+#: front/src/views/content/remote/Card.vue:47
+msgid "Scanned with errors"
+msgstr "Erroreak eskaneatzean"
+
+#: front/src/views/content/remote/Card.vue:35
+msgid "Scanning... (%{ progress }%)"
+msgstr "Eskaneatzen... (%{ progress }%)"
+
+#: front/src/components/library/Artists.vue:10 src/components/library/Radios.vue:29
+#: front/src/components/manage/library/FilesTable.vue:5
+#: front/src/components/manage/users/InvitationsTable.vue:5
+#: front/src/components/manage/users/UsersTable.vue:5
+#: front/src/views/content/libraries/FilesTable.vue:5 src/views/playlists/List.vue:13
+msgid "Search"
+msgstr "Bilatu"
+
+#: front/src/views/content/remote/ScanForm.vue:9
+msgid "Search a remote library"
+msgstr "Bilatu urruneko liburutegia"
+
+#: front/src/components/audio/Search.vue:2
+msgid "Search for some music"
+msgstr "Bilatu musika pixka bat"
+
+#: front/src/components/library/Track.vue:116
+msgid "Search on lyrics.wikia.com"
+msgstr "Bilatu lyrics.wikia.com-en"
+
+#: front/src/components/library/Album.vue:33 src/components/library/Artist.vue:31
+#: front/src/components/library/Track.vue:40
+msgid "Search on Wikipedia"
+msgstr "Bilatu Wikipedian"
+
+#: front/src/views/admin/Settings.vue:15
+msgid "Sections"
+msgstr "Atalak"
+
+#: front/src/components/library/radios/Builder.vue:45
+msgid "Select a filter"
+msgstr "Aukeratu filtroa"
+
+#: front/src/components/common/ActionTable.vue:64
+msgid "Select all %{ total } elements"
+msgid_plural "Select all %{ total } elements"
+msgstr[0] "Aukeratu elementu %{ total }"
+msgstr[1] "Aukeratu %{ total } elementu"
+
+#: front/src/components/common/ActionTable.vue:73
+msgid "Select only current page"
+msgstr "Aukeratu orrialde hau bakarrik"
+
+#: front/src/components/Sidebar.vue:43 src/components/Sidebar.vue:88
+#: front/src/components/manage/users/UsersTable.vue:185
+#: front/src/views/admin/users/UsersDetail.vue:189
+msgid "Settings"
+msgstr "Ezarpenak"
+
+#: front/src/components/auth/Settings.vue:10
+msgid "Settings updated"
+msgstr "Ezarpenak eguneratuta"
+
+#: front/src/components/admin/SettingsGroup.vue:11
+msgid "Settings updated successfully."
+msgstr "Ezarpenak arrakastaz eguneratuta."
+
+#: front/src/components/manage/users/InvitationForm.vue:27
+msgid "Share link"
+msgstr "Partekatu esteka"
+
+#: front/src/views/content/libraries/Detail.vue:15
+msgid "Share this link with other users so they can request an access to your library."
+msgstr ""
+"Partekatu esteka hau beste erabiltzaile batzuekin zure liburutegira sarbidea "
+"eska dezaten."
+
+#: front/src/views/content/libraries/Detail.vue:14
+#: front/src/views/content/remote/Card.vue:73
+msgid "Sharing link"
+msgstr "Esteka partekatzen"
+
+#: front/src/components/audio/album/Card.vue:40
+msgid "Show %{ count } more track"
+msgid_plural "Show %{ count } more tracks"
+msgstr[0] "Erakutsi abesti %{ count } gehiago"
+msgstr[1] "Erakutsi %{ count } abesti gehiago"
+
+#: front/src/components/audio/artist/Card.vue:30
+msgid "Show 1 more album"
+msgid_plural "Show %{ count } more albums"
+msgstr[0] "Erakutsi album 1 gehiago"
+msgstr[1] "Erakutsi %{ count } album gehiago"
+
+#: front/src/views/Notifications.vue:10
+msgid "Show read notifications"
+msgstr "Erakutsi irakurritako jakinarazpenak"
+
+#: front/src/components/manage/library/FilesTable.vue:97
+#: front/src/components/manage/users/InvitationsTable.vue:76
+#: front/src/components/manage/users/UsersTable.vue:87
+#: front/src/views/content/libraries/FilesTable.vue:111
+msgid "Showing results %{ start }-%{ end } on %{ total }"
+msgstr ""
+
+#: front/src/components/manage/users/UsersTable.vue:40
+#: front/src/views/admin/users/UsersDetail.vue:37
+msgid "Sign-up"
+msgstr "Erregistratu"
+
+#: front/src/components/library/FileUpload.vue:84 src/components/library/Track.vue:69
+#: front/src/components/manage/library/FilesTable.vue:44
+#: front/src/views/content/libraries/FilesTable.vue:57
+#: front/src/components/mixins/Translations.vue:27
+msgid "Size"
+msgstr "Tamaina"
+
+#: front/src/views/content/libraries/FilesTable.vue:15
+#: front/src/views/content/libraries/FilesTable.vue:229
+msgid "Skipped"
+msgstr "Saltatuta"
+
+#: front/src/views/content/libraries/Quota.vue:49
+msgid "Skipped files"
+msgstr "Saltatutako fitxategiak"
+
+#: front/src/components/requests/Form.vue:3
+msgid "Something's missing in the library? Let us know what you would like to listen!"
+msgstr "Zerbait falta da liburutegian? Esaiguzu zer entzun nahiko zenukeen!"
+
+#: front/src/components/audio/Search.vue:25
+msgid "Sorry, we did not found any album matching your query"
+msgstr "Barkatu, ez dugu zure bilaketarekin zer ikusirik duen albumik aurkitu"
+
+#: front/src/components/audio/Search.vue:16
+msgid "Sorry, we did not found any artist matching your query"
+msgstr "Barkatu, ez dugu zure eskararekin zerikusia duen artistarik aurkitu"
+
+#: front/src/App.vue:40
+msgid "Source code"
+msgstr "Iturburu kodea"
+
+#: front/src/App.vue:39
+msgid "Source code (%{version})"
+msgstr "Iturburu kodea (%{version})"
+
+#: front/src/components/auth/Profile.vue:23
+#: front/src/components/manage/users/UsersTable.vue:70
+msgid "Staff member"
+msgstr ""
+
+#: front/src/components/radios/Button.vue:4
+msgid "Start"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:85
+#: front/src/components/manage/users/InvitationsTable.vue:17
+#: front/src/components/manage/users/InvitationsTable.vue:39
+#: front/src/components/manage/users/UsersTable.vue:43
+#: front/src/views/content/libraries/Detail.vue:28
+msgid "Status"
+msgstr ""
+
+#: front/src/components/radios/Button.vue:3
+msgid "Stop"
+msgstr ""
+
+#: front/src/components/Sidebar.vue:150
+msgid "Stop radio"
+msgstr ""
+
+#: front/src/App.vue:11 src/components/requests/Form.vue:17
+msgid "Submit"
+msgstr ""
+
+#: front/src/components/requests/Form.vue:22
+msgid "Submit another request"
+msgstr ""
+
+#: front/src/components/auth/SubsonicTokenForm.vue:2
+msgid "Subsonic API password"
+msgstr ""
+
+#: front/src/App.vue:13
+msgid "Suggested choices"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:3
+msgid "Summary"
+msgstr ""
+
+#: front/src/components/playlists/Editor.vue:9
+msgid "Syncing changes to server..."
+msgstr ""
+
+#: front/src/components/common/CopyInput.vue:3
+msgid "Text copied to clipboard!"
+msgstr ""
+
+#: front/src/components/Home.vue:26
+msgid "That's simple: we loved Grooveshark and we want to build something even better."
+msgstr ""
+
+#: front/src/App.vue:58
+msgid "The funkwhale logo was kindly designed and provided by Francis Gading."
+msgstr ""
+
+#: front/src/views/content/libraries/Form.vue:34
+msgid "The library and all its tracks will be deleted. This action is irreversible."
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:39
+msgid "The music files you are uploading are tagged properly:"
+msgstr ""
+
+#: front/src/components/Home.vue:121
+msgid "The plaform is free and open-source, you can install it and modify it without worries"
+msgstr ""
+
+#: front/src/components/auth/SubsonicTokenForm.vue:4
+msgid "The Subsonic API is not available on this Funkwhale instance."
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:43
+msgid "The uploaded music files are in OGG, Flac or MP3 format"
+msgstr ""
+
+#: front/src/components/library/Album.vue:52
+msgid "This album is present in the following libraries:"
+msgstr ""
+
+#: front/src/components/library/Artist.vue:63
+msgid "This artist is present in the following libraries:"
+msgstr ""
+
+#: front/src/views/content/Home.vue:9
+msgid "This instance offers up to %{quota} of storage space to every user."
+msgstr ""
+
+#: front/src/components/auth/Profile.vue:16
+msgid "This is you!"
+msgstr ""
+
+#: front/src/components/common/ActionTable.vue:38
+msgid "This may affect a lot of elements, please double check this is really what you want."
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:52
+msgid "This reference will be used to group imported files together."
+msgstr ""
+
+#: front/src/components/library/Track.vue:125
+msgid "This track is present in the following libraries:"
+msgstr ""
+
+#: front/src/views/playlists/Detail.vue:37
+msgid "This will completely delete this playlist and cannot be undone."
+msgstr ""
+
+#: front/src/views/radios/Detail.vue:27
+msgid "This will completely delete this radio and cannot be undone."
+msgstr ""
+
+#: front/src/components/auth/SubsonicTokenForm.vue:51
+msgid "This will completely disable access to the Subsonic API using from account."
+msgstr ""
+
+#: front/src/App.vue:162 src/components/About.vue:55 src/components/Home.vue:154
+#: front/src/components/PageNotFound.vue:33 src/components/Sidebar.vue:203
+#: front/src/components/Sidebar.vue:204 src/components/audio/PlayButton.vue:54
+#: front/src/components/audio/PlayButton.vue:55
+#: front/src/components/audio/PlayButton.vue:56
+#: front/src/components/audio/PlayButton.vue:61
+#: front/src/components/audio/PlayButton.vue:64
+#: front/src/components/audio/PlayButton.vue:158 src/components/audio/Player.vue:216
+#: front/src/components/audio/Player.vue:273 src/components/audio/Player.vue:274
+#: front/src/components/audio/Player.vue:275 src/components/audio/Player.vue:276
+#: front/src/components/audio/Player.vue:277 src/components/audio/Player.vue:278
+#: front/src/components/audio/Player.vue:279 src/components/audio/Player.vue:280
+#: front/src/components/audio/Player.vue:281 src/components/audio/Player.vue:282
+#: front/src/components/audio/Player.vue:283 src/components/audio/Search.vue:65
+#: front/src/components/audio/SearchBar.vue:20 src/components/audio/SearchBar.vue:25
+#: front/src/components/audio/SearchBar.vue:26 src/components/audio/SearchBar.vue:27
+#: front/src/components/auth/Login.vue:77 src/components/auth/Login.vue:78
+#: front/src/components/auth/Logout.vue:20 src/components/auth/Profile.vue:47
+#: front/src/components/auth/Settings.vue:249 src/components/auth/Signup.vue:95
+#: front/src/components/auth/Signup.vue:96 src/components/auth/Signup.vue:97
+#: front/src/components/auth/Signup.vue:98
+#: front/src/components/auth/SubsonicTokenForm.vue:95
+#: front/src/components/auth/SubsonicTokenForm.vue:111
+#: front/src/components/favorites/List.vue:110
+#: front/src/components/favorites/TrackFavoriteIcon.vue:19
+#: front/src/components/favorites/TrackFavoriteIcon.vue:21
+#: front/src/components/forms/PasswordInput.vue:25
+#: front/src/components/library/Album.vue:101 src/components/library/Artist.vue:129
+#: front/src/components/library/Artists.vue:119
+#: front/src/components/library/Artists.vue:120
+#: front/src/components/library/FileUpload.vue:238
+#: front/src/components/library/FileUpload.vue:239
+#: front/src/components/library/FileUpload.vue:240
+#: front/src/components/library/FileUpload.vue:241 src/components/library/Home.vue:65
+#: front/src/components/library/Radios.vue:141 src/components/library/Radios.vue:142
+#: front/src/components/library/Track.vue:195
+#: front/src/components/library/radios/Builder.vue:233
+#: front/src/components/library/radios/Builder.vue:235
+#: front/src/components/library/radios/Builder.vue:236
+#: front/src/components/manage/library/FilesTable.vue:176
+#: front/src/components/manage/library/FilesTable.vue:190
+#: front/src/components/manage/users/InvitationForm.vue:58
+#: front/src/components/manage/users/InvitationsTable.vue:153
+#: front/src/components/manage/users/InvitationsTable.vue:167
+#: front/src/components/manage/users/UsersTable.vue:163
+#: front/src/components/manage/users/UsersTable.vue:173
+#: front/src/components/manage/users/UsersTable.vue:177
+#: front/src/components/manage/users/UsersTable.vue:181
+#: front/src/components/manage/users/UsersTable.vue:185
+#: front/src/components/metadata/ArtistCard.vue:49
+#: front/src/components/metadata/ReleaseCard.vue:53
+#: front/src/components/metadata/Search.vue:114
+#: front/src/components/metadata/Search.vue:130
+#: front/src/components/metadata/Search.vue:134
+#: front/src/components/metadata/Search.vue:138
+#: front/src/components/mixins/Translations.vue:7
+#: front/src/components/mixins/Translations.vue:8
+#: front/src/components/mixins/Translations.vue:10
+#: front/src/components/mixins/Translations.vue:11
+#: front/src/components/mixins/Translations.vue:16
+#: front/src/components/mixins/Translations.vue:17
+#: front/src/components/mixins/Translations.vue:18
+#: front/src/components/mixins/Translations.vue:19
+#: front/src/components/mixins/Translations.vue:20
+#: front/src/components/mixins/Translations.vue:21
+#: front/src/components/mixins/Translations.vue:22
+#: front/src/components/mixins/Translations.vue:23
+#: front/src/components/mixins/Translations.vue:24
+#: front/src/components/mixins/Translations.vue:25
+#: front/src/components/mixins/Translations.vue:26
+#: front/src/components/mixins/Translations.vue:27
+#: front/src/components/mixins/Translations.vue:28
+#: front/src/components/mixins/Translations.vue:29
+#: front/src/components/mixins/Translations.vue:30
+#: front/src/components/mixins/Translations.vue:31
+#: front/src/components/notifications/NotificationRow.vue:39
+#: front/src/components/notifications/NotificationRow.vue:40
+#: front/src/components/notifications/NotificationRow.vue:44
+#: front/src/components/notifications/NotificationRow.vue:45
+#: front/src/components/notifications/NotificationRow.vue:62
+#: front/src/components/playlists/Editor.vue:163 src/components/playlists/Form.vue:74
+#: front/src/components/playlists/Form.vue:81 src/components/playlists/Form.vue:85
+#: front/src/components/playlists/Form.vue:89
+#: front/src/components/playlists/PlaylistModal.vue:116
+#: front/src/components/playlists/TrackPlaylistIcon.vue:32
+#: front/src/components/requests/Form.vue:73 src/components/requests/Form.vue:74
+#: front/src/components/requests/Form.vue:75 src/views/Notifications.vue:74
+#: front/src/views/admin/Settings.vue:75 src/views/admin/Settings.vue:80
+#: front/src/views/admin/Settings.vue:81 src/views/admin/Settings.vue:82
+#: front/src/views/admin/Settings.vue:83 src/views/admin/Settings.vue:84
+#: front/src/views/admin/Settings.vue:85 src/views/admin/Settings.vue:86
+#: front/src/views/admin/library/Base.vue:16 src/views/admin/library/FilesList.vue:21
+#: front/src/views/admin/users/Base.vue:20
+#: front/src/views/admin/users/InvitationsList.vue:24
+#: front/src/views/admin/users/UsersDetail.vue:169
+#: front/src/views/admin/users/UsersDetail.vue:170
+#: front/src/views/admin/users/UsersDetail.vue:177
+#: front/src/views/admin/users/UsersDetail.vue:181
+#: front/src/views/admin/users/UsersDetail.vue:185
+#: front/src/views/admin/users/UsersDetail.vue:189
+#: front/src/views/admin/users/UsersList.vue:21 src/views/auth/EmailConfirm.vue:51
+#: front/src/views/auth/PasswordReset.vue:52 src/views/auth/PasswordReset.vue:53
+#: front/src/views/auth/PasswordResetConfirm.vue:62 src/views/content/Base.vue:19
+#: front/src/views/content/Home.vue:35 src/views/content/libraries/Card.vue:58
+#: front/src/views/content/libraries/Card.vue:59
+#: front/src/views/content/libraries/Card.vue:60
+#: front/src/views/content/libraries/Card.vue:61
+#: front/src/views/content/libraries/DetailArea.vue:24
+#: front/src/views/content/libraries/FilesTable.vue:226
+#: front/src/views/content/libraries/FilesTable.vue:229
+#: front/src/views/content/libraries/FilesTable.vue:230
+#: front/src/views/content/libraries/FilesTable.vue:233
+#: front/src/views/content/libraries/FilesTable.vue:234
+#: front/src/views/content/libraries/FilesTable.vue:237
+#: front/src/views/content/libraries/FilesTable.vue:238
+#: front/src/views/content/libraries/FilesTable.vue:241
+#: front/src/views/content/libraries/FilesTable.vue:242
+#: front/src/views/content/libraries/FilesTable.vue:258
+#: front/src/views/content/libraries/FilesTable.vue:259
+#: front/src/views/content/libraries/Form.vue:70
+#: front/src/views/content/libraries/Form.vue:71
+#: front/src/views/content/libraries/Form.vue:72
+#: front/src/views/content/libraries/Form.vue:73
+#: front/src/views/content/libraries/Form.vue:74
+#: front/src/views/content/libraries/Form.vue:106
+#: front/src/views/content/libraries/Form.vue:109
+#: front/src/views/content/libraries/Form.vue:129
+#: front/src/views/content/remote/Card.vue:131 src/views/content/remote/Card.vue:132
+#: front/src/views/content/remote/Card.vue:165 src/views/content/remote/Card.vue:166
+#: front/src/views/content/remote/ScanForm.vue:48 src/views/instance/Timeline.vue:57
+#: front/src/views/playlists/Detail.vue:90 src/views/playlists/List.vue:104
+#: front/src/views/playlists/List.vue:105 src/views/radios/Detail.vue:80
+msgid "This will erase your local data and disconnect you, do you want to continue?"
+msgid_plural "%{ count } tracks were added to your queue"
+msgstr[0] ""
+msgstr[1] ""
+
+#: front/src/components/auth/SubsonicTokenForm.vue:36
+msgid "This will log you out from existing devices that use the current password."
+msgstr ""
+
+#: front/src/components/playlists/Editor.vue:44
+msgid "This will remove all tracks from this playlist and cannot be undone."
+msgstr ""
+
+#: front/src/views/content/libraries/Quota.vue:90
+msgid "This will remove tracks that were uploaded but failed to be process by the server. This will remove those files completely and you will regain the corresponding quota."
+msgstr ""
+
+#: front/src/views/content/libraries/Quota.vue:38
+msgid "This will remove tracks that were uploaded but not processed yet. This will remove those files completely and you will regain the corresponding quota."
+msgstr ""
+
+#: front/src/views/content/libraries/Quota.vue:64
+msgid "This will remove tracks that were uploaded but skipped during import processes for various reasons. This will remove those files completely and you will regain the corresponding quota."
+msgstr ""
+
+#: front/src/components/audio/track/Table.vue:6
+#: front/src/components/manage/library/FilesTable.vue:37
+#: front/src/views/content/libraries/FilesTable.vue:51
+#: front/src/components/mixins/Translations.vue:26
+msgid "Title"
+msgstr ""
+
+#: front/src/components/library/Track.vue:53
+msgid "Track information"
+msgstr ""
+
+#: front/src/components/library/radios/Filter.vue:44
+msgid "Track matching filter"
+msgstr ""
+
+#: front/src/components/instance/Stats.vue:54
+msgid "tracks"
+msgstr ""
+
+#: front/src/components/library/Album.vue:43
+#: front/src/components/playlists/PlaylistModal.vue:33 src/views/content/Base.vue:8
+#: front/src/views/content/libraries/Detail.vue:8 src/views/playlists/Detail.vue:50
+#: front/src/views/radios/Detail.vue:34
+msgid "Tracks"
+msgstr ""
+
+#: front/src/components/library/Artist.vue:54
+msgid "Tracks by this artist"
+msgstr ""
+
+#: front/src/components/instance/Stats.vue:25
+msgid "Tracks favorited"
+msgstr ""
+
+#: front/src/components/instance/Stats.vue:19
+msgid "tracks listened"
+msgstr ""
+
+#: front/src/components/library/Track.vue:91
+#: front/src/components/manage/library/FilesTable.vue:41
+msgid "Type"
+msgstr ""
+
+#: front/src/views/content/remote/Card.vue:100 src/views/content/remote/Card.vue:105
+msgid "Unfollow"
+msgstr ""
+
+#: front/src/views/content/remote/Card.vue:101
+msgid "Unfollow this library?"
+msgstr ""
+
+#: front/src/components/About.vue:15
+msgid "Unfortunately, owners of this instance did not yet take the time to complete this page."
+msgstr ""
+
+#: front/src/components/Home.vue:37
+msgid "Unlimited music"
+msgstr ""
+
+#: front/src/components/auth/Settings.vue:50
+msgid "Update avatar"
+msgstr ""
+
+#: front/src/views/content/libraries/Form.vue:25
+msgid "Update library"
+msgstr ""
+
+#: front/src/components/playlists/Form.vue:33
+msgid "Update playlist"
+msgstr ""
+
+#: front/src/components/auth/Settings.vue:27
+msgid "Update settings"
+msgstr ""
+
+#: front/src/views/auth/PasswordResetConfirm.vue:21
+msgid "Update your password"
+msgstr ""
+
+#: front/src/views/content/libraries/Card.vue:44
+#: front/src/components/manage/users/UsersTable.vue:173
+#: front/src/views/content/libraries/DetailArea.vue:24
+#: front/src/views/admin/users/UsersDetail.vue:177
+msgid "Upload"
+msgstr ""
+
+#: front/src/components/auth/Settings.vue:45
+msgid "Upload a new avatar"
+msgstr ""
+
+#: front/src/views/content/Home.vue:6
+msgid "Upload audio content"
+msgstr ""
+
+#: front/src/views/content/libraries/FilesTable.vue:54
+msgid "Upload date"
+msgstr ""
+
+#: front/src/views/content/Home.vue:7
+msgid "Upload music files (mp3, ogg, flac, etc.) from your personal library directly from your browser to enjoy them here."
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:31
+msgid "Upload new tracks"
+msgstr ""
+
+#: front/src/views/admin/users/UsersDetail.vue:82
+msgid "Upload quota"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:99
+msgid "Uploaded"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:5
+msgid "Uploading"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:102
+msgid "Uploading..."
+msgstr ""
+
+#: front/src/App.vue:44
+msgid "Use another instance"
+msgstr ""
+
+#: front/src/views/auth/PasswordReset.vue:12
+msgid "Use this form to request a password reset. We will send an email to the given address with instructions to reset your password."
+msgstr ""
+
+#: front/src/components/manage/users/InvitationsTable.vue:49
+msgid "Used"
+msgstr ""
+
+#: front/src/views/content/libraries/Detail.vue:26
+msgid "User"
+msgstr ""
+
+#: front/src/components/instance/Stats.vue:5
+msgid "User activity"
+msgstr ""
+
+#: front/src/components/library/Album.vue:49 src/components/library/Artist.vue:60
+#: front/src/components/library/Track.vue:122
+msgid "User libraries"
+msgstr ""
+
+#: front/src/components/library/Radios.vue:20
+msgid "User radios"
+msgstr ""
+
+#: front/src/components/auth/Signup.vue:19
+#: front/src/components/manage/users/UsersTable.vue:37
+#: front/src/components/mixins/Translations.vue:32
+msgid "Username"
+msgstr ""
+
+#: front/src/components/auth/Login.vue:15
+msgid "Username or email"
+msgstr ""
+
+#: front/src/components/instance/Stats.vue:13
+msgid "users"
+msgstr ""
+
+#: front/src/components/Sidebar.vue:94 src/views/admin/users/Base.vue:5
+#: front/src/views/admin/users/UsersList.vue:3 src/views/admin/users/UsersList.vue:21
+#: front/src/views/admin/Settings.vue:81
+msgid "Users"
+msgstr ""
+
+#: front/src/views/content/libraries/Quota.vue:29
+#: front/src/views/content/libraries/Quota.vue:56
+#: front/src/views/content/libraries/Quota.vue:82
+msgid "View files"
+msgstr ""
+
+#: front/src/components/library/Album.vue:37 src/components/library/Artist.vue:35
+#: front/src/components/library/Track.vue:44
+#: front/src/components/metadata/ReleaseCard.vue:53
+#: front/src/components/metadata/ArtistCard.vue:49
+msgid "View on MusicBrainz"
+msgstr ""
+
+#: front/src/views/content/libraries/Form.vue:18
+msgid "Visibility"
+msgstr ""
+
+#: front/src/components/playlists/PlaylistModal.vue:20
+msgid "We cannot add the track to a playlist"
+msgstr ""
+
+#: front/src/components/playlists/Form.vue:14
+msgid "We cannot create the playlist"
+msgstr ""
+
+#: front/src/components/auth/Signup.vue:13
+msgid "We cannot create your account"
+msgstr ""
+
+#: front/src/components/auth/Login.vue:7
+msgid "We cannot log you in"
+msgstr ""
+
+#: front/src/components/auth/Settings.vue:38
+msgid "We cannot save your avatar"
+msgstr ""
+
+#: front/src/components/auth/Settings.vue:14
+msgid "We cannot save your settings"
+msgstr ""
+
+#: front/src/components/Home.vue:127
+msgid "We do not track you or bother you with ads"
+msgstr ""
+
+#: front/src/views/Notifications.vue:26
+msgid "We don't have any notification to display!"
+msgstr ""
+
+#: front/src/views/content/Home.vue:4
+msgid "We offer various way to grab new content and make it available here."
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:40
+msgid "we recommend using Picard for that purpose"
+msgstr ""
+
+#: front/src/components/Home.vue:7
+msgid "We think listening to music should be simple."
+msgstr ""
+
+#: front/src/components/PageNotFound.vue:10
+msgid "We're sorry, the page you asked for does not exist:"
+msgstr ""
+
+#: front/src/components/requests/Form.vue:21
+msgid "We've received your request, you'll get some groove soon ;)"
+msgstr ""
+
+#: front/src/components/Home.vue:5
+msgid "Welcome on Funkwhale"
+msgstr ""
+
+#: front/src/components/Home.vue:24
+msgid "Why funkwhale?"
+msgstr ""
+
+#: front/src/components/Sidebar.vue:115
+msgid "Yes"
+msgstr ""
+
+#: front/src/components/auth/Logout.vue:8
+msgid "Yes, log me out!"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:33
+msgid "You are about to upload music to your library. Before proceeding, please ensure that:"
+msgstr ""
+
+#: front/src/components/auth/Logout.vue:7
+msgid "You are currently logged in as %{ username }"
+msgstr ""
+
+#: front/src/views/content/Home.vue:17
+msgid "You can follow libraries from other users to get access to new music. Public libraries can be followed immediatly, while following a private library requires approval from its owner."
+msgstr ""
+
+#: front/src/components/Home.vue:133
+msgid "You can invite friends and family to your instance so they can enjoy your music"
+msgstr ""
+
+#: front/src/components/library/radios/Builder.vue:7
+msgid "You can use this interface to build your own custom radio, which will play tracks according to your criteria."
+msgstr ""
+
+#: front/src/components/auth/SubsonicTokenForm.vue:8
+msgid "You can use those to enjoy your playlist and music in offline mode, on your smartphone or tablet, for instance."
+msgstr ""
+
+#: front/src/components/Sidebar.vue:147
+msgid "You have a radio playing"
+msgstr ""
+
+#: front/src/App.vue:8
+msgid "You need to select an instance in order to continue"
+msgstr ""
+
+#: front/src/views/content/libraries/Form.vue:19
+msgid "You will be able to share your library with other people, regardless of it's visibility."
+msgstr ""
+
+#: front/src/components/auth/Settings.vue:100
+msgid "You will be logged out from this session and have to log in with the new one"
+msgstr ""
+
+#: front/src/components/auth/Settings.vue:71
+msgid "You will have to update your password on your clients that use this password."
+msgstr ""
+
+#: front/src/views/auth/EmailConfirm.vue:24
+msgid "Your email address was confirmed, you can now use the service without limitations."
+msgstr ""
+
+#: front/src/components/Home.vue:114
+msgid "Your music, your way"
+msgstr ""
+
+#: front/src/views/Notifications.vue:7
+msgid "Your notifications"
+msgstr ""
+
+#: front/src/views/auth/PasswordResetConfirm.vue:29
+msgid "Your password has been updated successfully."
+msgstr ""
+
+#: front/src/components/auth/Settings.vue:101
+msgid "Your Subsonic password will be changed to a new, random one, logging you out from devices that used the old Subsonic password"
+msgstr ""
+
+#: front/src/components/mixins/Translations.vue:8
+msgid "Activity visibility"
+msgstr ""
+
+#: front/src/components/mixins/Translations.vue:9
+msgid "Determine the visibility level of your activity"
+msgstr ""
+
+#: front/src/components/mixins/Translations.vue:11
+#: front/src/components/playlists/Form.vue:81 src/views/content/libraries/Form.vue:72
+msgid "Nobody except me"
+msgstr ""
+
+#: front/src/components/mixins/Translations.vue:12
+#: front/src/components/playlists/Form.vue:85 src/views/content/libraries/Form.vue:73
+msgid "Everyone on this instance"
+msgstr ""
+
+#: front/src/components/mixins/Translations.vue:18
+msgid "Accessed date"
+msgstr ""
+
+#: front/src/components/mixins/Translations.vue:19
+msgid "Modification date"
+msgstr ""
+
+#: front/src/components/mixins/Translations.vue:20
+msgid "Imported date"
+msgstr ""
+
+#: front/src/components/mixins/Translations.vue:22
+msgid "Track name"
+msgstr ""
+
+#: front/src/components/mixins/Translations.vue:23
+msgid "Album name"
+msgstr ""
+
+#: front/src/components/mixins/Translations.vue:30
+msgid "Sign-up date"
+msgstr ""
+
+#: front/src/components/playlists/Editor.vue:163
+msgid "Copy tracks from current queue to playlist"
+msgstr ""
+
+#: front/src/components/playlists/PlaylistModal.vue:116
+msgid "Add to this playlist"
+msgstr ""
+
+#: front/src/components/playlists/Form.vue:74
+msgid "My awesome playlist"
+msgstr ""
+
+#: front/src/components/playlists/Form.vue:89
+msgid "Everyone"
+msgstr ""
+
+#: front/src/components/auth/Signup.vue:95
+msgid "Sign Up"
+msgstr ""
+
+#: front/src/components/auth/Signup.vue:96
+msgid "Enter your invitation code (case insensitive)"
+msgstr ""
+
+#: front/src/components/auth/Signup.vue:97
+msgid "Enter your username"
+msgstr ""
+
+#: front/src/components/auth/Signup.vue:98
+msgid "Enter your email"
+msgstr ""
+
+#: front/src/components/auth/SubsonicTokenForm.vue:95
+msgid "Password updated"
+msgstr ""
+
+#: front/src/components/auth/SubsonicTokenForm.vue:111
+msgid "Access disabled"
+msgstr ""
+
+#: front/src/components/auth/Login.vue:77
+msgid "Enter your username or email"
+msgstr ""
+
+#: front/src/components/auth/Login.vue:78
+msgid "Log In"
+msgstr ""
+
+#: front/src/components/auth/Profile.vue:47
+msgid "%{ username }'s profile"
+msgstr ""
+
+#: front/src/components/auth/Logout.vue:20
+msgid "Log Out"
+msgstr ""
+
+#: front/src/components/auth/Settings.vue:249
+msgid "Account Settings"
+msgstr ""
+
+#: front/src/components/favorites/TrackFavoriteIcon.vue:19
+msgid "Remove from favorites"
+msgstr ""
+
+#: front/src/components/favorites/List.vue:110
+msgid "Your Favorites"
+msgstr ""
+
+#: front/src/components/library/Radios.vue:141
+msgid "Enter a radio name..."
+msgstr ""
+
+#: front/src/components/library/radios/Builder.vue:233
+msgid "Radio Builder"
+msgstr ""
+
+#: front/src/components/library/radios/Builder.vue:235
+msgid "My awesome radio"
+msgstr ""
+
+#: front/src/components/library/radios/Builder.vue:236
+msgid "My awesome description"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:238
+msgid "Upload refused, ensure the file is not too big and you have not reached your quota"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:239
+msgid "Impossible to upload this file, ensure it is not too big"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:240
+msgid "A network error occured while uploading this file"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:241
+msgid "Upload timeout, please try again"
+msgstr ""
+
+#: front/src/components/library/Artists.vue:119
+msgid "Enter an artist name..."
+msgstr ""
+
+#: front/src/components/library/Track.vue:195 src/components/audio/SearchBar.vue:27
+#: front/src/components/metadata/Search.vue:138
+msgid "Track"
+msgstr ""
+
+#: front/src/components/library/Home.vue:65
+msgid "Home"
+msgstr ""
+
+#: front/src/components/forms/PasswordInput.vue:25
+msgid "Show/hide password"
+msgstr ""
+
+#: front/src/components/requests/Form.vue:73
+msgid "The Beatles, Mickael Jackson…"
+msgstr ""
+
+#: front/src/components/requests/Form.vue:74
+msgid "The White Album, Thriller…"
+msgstr ""
+
+#: front/src/components/requests/Form.vue:75
+msgid "Use this comment box to add details to your request if needed"
+msgstr ""
+
+#: front/src/components/audio/PlayButton.vue:158
+msgid "%{ count } track was added to your queue"
+msgid_plural "%{ count } tracks were added to your queue"
+msgstr[0] ""
+msgstr[1] ""
+
+#: front/src/components/audio/Search.vue:65
+msgid "Artist, album, track..."
+msgstr ""
+
+#: front/src/components/audio/SearchBar.vue:20
+msgid "Search for artists, albums, tracks..."
+msgstr ""
+
+#: front/src/components/audio/Player.vue:216
+msgid "Queue shuffled!"
+msgstr ""
+
+#: front/src/components/audio/Player.vue:273
+msgid "Previous track"
+msgstr ""
+
+#: front/src/components/audio/Player.vue:274
+msgid "Play track"
+msgstr ""
+
+#: front/src/components/audio/Player.vue:275
+msgid "Pause track"
+msgstr ""
+
+#: front/src/components/audio/Player.vue:276
+msgid "Next track"
+msgstr ""
+
+#: front/src/components/audio/Player.vue:277
+msgid "Unmute"
+msgstr ""
+
+#: front/src/components/audio/Player.vue:278
+msgid "Mute"
+msgstr ""
+
+#: front/src/components/audio/Player.vue:279
+msgid "Looping disabled. Click to switch to single-track looping."
+msgstr ""
+
+#: front/src/components/audio/Player.vue:280
+msgid "Looping on a single track. Click to switch to whole queue looping."
+msgstr ""
+
+#: front/src/components/audio/Player.vue:281
+msgid "Looping on whole queue. Click to disable looping."
+msgstr ""
+
+#: front/src/components/audio/Player.vue:282
+msgid "Shuffle your queue"
+msgstr ""
+
+#: front/src/components/audio/Player.vue:283
+msgid "Clear your queue"
+msgstr ""
+
+#: front/src/components/Sidebar.vue:203
+msgid "Pending import requests"
+msgstr ""
+
+#: front/src/components/Sidebar.vue:204
+msgid "Pending follow requests"
+msgstr ""
+
+#: front/src/components/metadata/Search.vue:114
+msgid "Enter your search query..."
+msgstr ""
+
+#: front/src/components/manage/library/FilesTable.vue:176
+msgid "Search by title, artist, domain..."
+msgstr ""
+
+#: front/src/components/manage/users/InvitationForm.vue:58
+msgid "Leave empty for a random code"
+msgstr ""
+
+#: front/src/components/manage/users/InvitationsTable.vue:153
+msgid "Search by username, email, code..."
+msgstr ""
+
+#: front/src/components/manage/users/UsersTable.vue:163
+msgid "Search by username, email, name..."
+msgstr ""
+
+#: front/src/components/manage/users/UsersTable.vue:181
+#: front/src/views/admin/users/UsersDetail.vue:185 src/views/admin/Settings.vue:83
+msgid "Federation"
+msgstr ""
+
+#: front/src/components/Home.vue:154
+msgid "Welcome"
+msgstr ""
+
+#: front/src/views/content/remote/ScanForm.vue:48
+msgid "Enter a library url"
+msgstr ""
+
+#: front/src/views/content/remote/Card.vue:165
+msgid "Scan launched"
+msgstr ""
+
+#: front/src/views/content/remote/Card.vue:166
+msgid "Scan skipped (previous scan is too recent)"
+msgstr ""
+
+#: front/src/views/content/libraries/FilesTable.vue:226
+msgid "Search by title, artist, album..."
+msgstr ""
+
+#: front/src/views/content/libraries/FilesTable.vue:230
+msgid "Track was already present in one of your libraries"
+msgstr ""
+
+#: front/src/views/content/libraries/FilesTable.vue:234
+msgid "Track is uploaded but not processed by the server yet"
+msgstr ""
+
+#: front/src/views/content/libraries/FilesTable.vue:238
+msgid "An error occured while processing this track, ensure the track is correctly tagged"
+msgstr ""
+
+#: front/src/views/content/libraries/FilesTable.vue:242
+msgid "Import went on successfully"
+msgstr ""
+
+#: front/src/views/content/libraries/FilesTable.vue:259
+msgid "Relaunch import"
+msgstr ""
+
+#: front/src/views/content/libraries/Card.vue:58
+msgid "Visibility: nobody except me"
+msgstr ""
+
+#: front/src/views/content/libraries/Card.vue:59
+msgid "Visibility: everyone on this instance"
+msgstr ""
+
+#: front/src/views/content/libraries/Card.vue:60
+msgid "Visibility: everyone, including other instances"
+msgstr ""
+
+#: front/src/views/content/libraries/Card.vue:61
+msgid "Total size of the files in this library"
+msgstr ""
+
+#: front/src/views/content/libraries/Form.vue:70
+msgid "My awesome library"
+msgstr ""
+
+#: front/src/views/content/libraries/Form.vue:71
+msgid "This library contains my personnal music, I hope you will like it!"
+msgstr ""
+
+#: front/src/views/content/libraries/Form.vue:74
+msgid "Everyone, including other instances"
+msgstr ""
+
+#: front/src/views/content/libraries/Form.vue:106
+msgid "Library updated"
+msgstr ""
+
+#: front/src/views/content/libraries/Form.vue:109
+msgid "Library created"
+msgstr ""
+
+#: front/src/views/content/Home.vue:35
+msgid "Add and manage content"
+msgstr ""
+
+#: front/src/views/radios/Detail.vue:80
+msgid "Radio"
+msgstr ""
+
+#: front/src/views/instance/Timeline.vue:57
+msgid "Instance Timeline"
+msgstr ""
+
+#: front/src/views/playlists/Detail.vue:90
+msgid "Playlist"
+msgstr ""
+
+#: front/src/views/playlists/List.vue:105
+msgid "Enter an playlist name..."
+msgstr ""
+
+#: front/src/views/admin/library/Base.vue:16
+msgid "Manage library"
+msgstr ""
+
+#: front/src/views/admin/users/UsersDetail.vue:169
+msgid "Determine if the user account is active or not. Inactive users cannot login or use the service."
+msgstr ""
+
+#: front/src/views/admin/users/UsersDetail.vue:170
+msgid "Determine how much content the user can upload. Leave empty to use the default value of the instance."
+msgstr ""
+
+#: front/src/views/admin/users/Base.vue:20
+msgid "Manage users"
+msgstr ""
+
+#: front/src/views/admin/Settings.vue:75
+msgid "Instance settings"
+msgstr ""
+
+#: front/src/views/admin/Settings.vue:80
+msgid "Instance information"
+msgstr ""
+
+#: front/src/views/admin/Settings.vue:84
+msgid "Subsonic"
+msgstr ""
+
+#: front/src/views/admin/Settings.vue:85
+msgid "Statistics"
+msgstr ""
+
+#: front/src/views/admin/Settings.vue:86
+msgid "Error reporting"
+msgstr ""
diff --git a/front/locales/fr_FR/LC_MESSAGES/app.po b/front/locales/fr_FR/LC_MESSAGES/app.po
index 2fc1d13c553600443c4262ddc70341e02b308716..a8712c60b975e4b36b3512ad342333c8513a6b31 100644
--- a/front/locales/fr_FR/LC_MESSAGES/app.po
+++ b/front/locales/fr_FR/LC_MESSAGES/app.po
@@ -2,9 +2,9 @@ msgid ""
 msgstr ""
 "Project-Id-Version: French (Funkwhale)\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-10-05 20:10+0200\n"
-"PO-Revision-Date: 2018-10-07 09:06+0000\n"
-"Last-Translator: troll <my_name_is_troll@protonmail.com>\n"
+"POT-Creation-Date: 2019-01-11 15:55+0100\n"
+"PO-Revision-Date: 2019-01-22 08:45+0000\n"
+"Last-Translator: jovuit <jo.vuitton@gmail.com>\n"
 "Language-Team: French <https://translate.funkwhale.audio/projects/funkwhale/"
 "front/fr/>\n"
 "Language: fr_FR\n"
@@ -12,7 +12,7 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 2.20\n"
+"X-Generator: Weblate 3.2.2\n"
 
 #: front/src/components/playlists/PlaylistModal.vue:9
 msgid "\"%{ title }\", by %{ artist }"
@@ -26,14 +26,14 @@ msgstr "(%{ index } sur %{ length })"
 msgid "(empty)"
 msgstr "(vide)"
 
-#: front/src/components/common/ActionTable.vue:44
-#: front/src/components/common/ActionTable.vue:53
+#: front/src/components/common/ActionTable.vue:57
+#: front/src/components/common/ActionTable.vue:66
 msgid "%{ count } on %{ total } selected"
 msgid_plural "%{ count } on %{ total } selected"
 msgstr[0] "%{ count } sur %{ total } élément sélectionné"
 msgstr[1] "%{ count } sur %{ total } éléments sélectionnés"
 
-#: front/src/components/Sidebar.vue:107 src/components/audio/album/Card.vue:54
+#: front/src/components/Sidebar.vue:110 src/components/audio/album/Card.vue:54
 #: front/src/views/content/libraries/Card.vue:39
 #: src/views/content/remote/Card.vue:26
 msgid "%{ count } track"
@@ -53,6 +53,12 @@ msgid_plural "%{ count } tracks matching combined filters"
 msgstr[0] "%{ count } piste correspondant aux filtres sélectionnés"
 msgstr[1] "%{ count } pistes correspondant aux filtres sélectionnés"
 
+#: front/src/components/audio/PlayButton.vue:180
+msgid "%{ count } track was added to your queue"
+msgid_plural "%{ count } tracks were added to your queue"
+msgstr[0] "%{ count } piste a été ajouté à votre queue"
+msgstr[1] "%{ count } pistes ont été ajoutées à votre queue"
+
 #: front/src/components/playlists/Card.vue:18
 msgid "%{ count} track"
 msgid_plural "%{ count } tracks"
@@ -61,7 +67,7 @@ msgstr[1] "%{ count } pistes"
 
 #: front/src/views/content/libraries/Quota.vue:11
 msgid "%{ current } used on %{ max } allowed"
-msgstr "%{ current } utilisé sur %{ max } autorisé"
+msgstr "%{ current } utilisé(s) sur %{ max } autorisé(s)"
 
 #: front/src/components/common/Duration.vue:2
 msgid "%{ hours } h %{ minutes } min"
@@ -71,13 +77,23 @@ msgstr "%{hours} h %{minutes} min"
 msgid "%{ minutes } min"
 msgstr "%{minutes} min"
 
-#: front/src/components/activity/Like.vue:7
-msgid "%{ user } favorited a track"
-msgstr "%{ user } a ajouté une piste a ses favoris"
+#: front/src/components/notifications/NotificationRow.vue:40
+msgid "%{ username } accepted your follow on library \"%{ library }\""
+msgstr "%{ username } a accepté votre suivi sur la librairie \"%{ library }\""
+
+#: front/src/components/notifications/NotificationRow.vue:39
+msgid "%{ username } followed your library \"%{ library }\""
+msgstr "%{ username } a suivi votre librairie \"%{ library }\""
+
+#: front/src/components/auth/Profile.vue:46
+msgid "%{ username }'s profile"
+msgstr "Profil de %{ username }"
 
-#: front/src/components/activity/Listen.vue:7
-msgid "%{ user } listened to a track"
-msgstr "%{ user } a écouté une piste"
+#: front/src/components/Footer.vue:5
+msgid "<translate :translate-params=\"{instanceName: instanceHostname}\">About %{instanceName}</translate>"
+msgstr ""
+"<translate :translate-params=\"{instanceName: instanceHostname}\">À propos "
+"de %{instanceName}</translate>"
 
 #: front/src/components/audio/artist/Card.vue:41
 msgid "1 album"
@@ -88,20 +104,33 @@ msgstr[1] "%{ count } albums"
 #: front/src/components/favorites/List.vue:10
 msgid "1 favorite"
 msgid_plural "%{ count } favorites"
-msgstr[0] "1 favoris"
+msgstr[0] "1 favori"
 msgstr[1] "%{ count } favoris"
 
+#: front/src/components/library/FileUpload.vue:225
+#: front/src/components/library/FileUpload.vue:226
+msgid "A network error occured while uploading this file"
+msgstr "Une erreur réseau s'est produite lors du téléversement de ce fichier"
+
 #: front/src/components/About.vue:5
 msgid "About %{ instance }"
 msgstr "À propos de %{instance}"
 
-#: front/src/App.vue:53
+#: front/src/components/Footer.vue:6
+msgid "About %{instanceName}"
+msgstr "À propos de %{instanceName}"
+
+#: front/src/components/Footer.vue:45
 msgid "About Funkwhale"
 msgstr "À propos de Funkwhale"
 
-#: front/src/App.vue:34 src/components/About.vue:8 src/components/About.vue:55
+#: front/src/components/Footer.vue:10
+msgid "About page"
+msgstr "À propos"
+
+#: front/src/components/About.vue:8 src/components/About.vue:64
 msgid "About this instance"
-msgstr "A propos de cette instance"
+msgstr "À propos de cette instance"
 
 #: front/src/views/content/libraries/Detail.vue:48
 msgid "Accept"
@@ -111,37 +140,56 @@ msgstr "Accepter"
 msgid "Accepted"
 msgstr "Accepté"
 
+#: front/src/components/auth/SubsonicTokenForm.vue:111
+msgid "Access disabled"
+msgstr "Accès désactivé"
+
 #: front/src/components/Home.vue:106
 msgid "Access your music from a clean interface that focus on what really matters"
-msgstr "Accédez à votre musique depuis une interface épurée, adaptée à ce qui compte vraiment"
+msgstr "\"Accédez à votre musique depuis une interface épurée"
+
+#: front/src/components/mixins/Translations.vue:19
+#: front/src/components/mixins/Translations.vue:20
+msgid "Accessed date"
+msgstr "Date d'accès"
 
-#: front/src/views/admin/users/UsersDetail.vue:54
-msgid "Account active"
-msgstr "Compte actif"
+#: front/src/views/admin/moderation/AccountsDetail.vue:78
+msgid "Account data"
+msgstr "Informations de compte"
 
 #: front/src/components/auth/Settings.vue:5
 msgid "Account settings"
 msgstr "Paramètres du compte"
 
+#: front/src/components/auth/Settings.vue:264
+msgid "Account Settings"
+msgstr "Paramètres du compte"
+
 #: front/src/components/manage/users/UsersTable.vue:39
 msgid "Account status"
 msgstr "Statut du compte"
 
 #: front/src/views/auth/PasswordReset.vue:14
 msgid "Account's email"
-msgstr "Email du compte"
+msgstr "Courriel du compte"
+
+#: front/src/views/admin/moderation/AccountsList.vue:3
+#: front/src/views/admin/moderation/AccountsList.vue:24
+#: front/src/views/admin/moderation/Base.vue:8
+msgid "Accounts"
+msgstr "Comptes"
 
 #: front/src/views/content/libraries/Detail.vue:29
 msgid "Action"
 msgstr "Action"
 
-#: front/src/components/common/ActionTable.vue:86
+#: front/src/components/common/ActionTable.vue:99
 msgid "Action %{ action } was launched successfully on %{ count } element"
 msgid_plural "Action %{ action } was launched successfully on %{ count } elements"
 msgstr[0] "L'action %{ action } a été lancée avec succès sur %{ count } élément"
 msgstr[1] "L'action %{ action } a été lancée avec succès sur %{ count } éléments"
 
-#: front/src/components/common/ActionTable.vue:8
+#: front/src/components/common/ActionTable.vue:21
 #: front/src/components/library/radios/Builder.vue:64
 msgid "Actions"
 msgstr "Actions"
@@ -150,11 +198,33 @@ msgstr "Actions"
 msgid "Active"
 msgstr "Actif"
 
-#: front/src/components/Sidebar.vue:75
+#: front/src/views/admin/moderation/AccountsDetail.vue:199
+#: front/src/views/admin/moderation/DomainsDetail.vue:144
 msgid "Activity"
 msgstr "Activité"
 
-#: front/src/components/Sidebar.vue:78 src/views/content/Base.vue:19
+#: front/src/components/mixins/Translations.vue:7
+#: front/src/components/mixins/Translations.vue:8
+msgid "Activity visibility"
+msgstr "Visibilité de l'activité"
+
+#: front/src/views/admin/moderation/DomainsList.vue:18
+msgid "Add"
+msgstr "Ajouter"
+
+#: front/src/views/admin/moderation/DomainsList.vue:13
+msgid "Add a domain"
+msgstr "Ajouter un domaine"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:4
+msgid "Add a new moderation rule"
+msgstr "Ajouter une nouvelle règle de modération"
+
+#: front/src/views/content/Home.vue:35
+msgid "Add and manage content"
+msgstr "Ajouter et gérer du contenu"
+
+#: front/src/components/Sidebar.vue:75 src/views/content/Base.vue:18
 msgid "Add content"
 msgstr "Ajouter du contenu"
 
@@ -166,19 +236,27 @@ msgstr "Ajouter des filtres"
 msgid "Add filters to customize your radio"
 msgstr "Ajouter des filtres pour personnaliser votre radio"
 
+#: front/src/components/audio/PlayButton.vue:64
+msgid "Add to current queue"
+msgstr "Ajouter à la file d'attente actuelle"
+
 #: front/src/components/favorites/TrackFavoriteIcon.vue:4
-#: front/src/components/favorites/TrackFavoriteIcon.vue:21
+#: front/src/components/favorites/TrackFavoriteIcon.vue:28
 msgid "Add to favorites"
 msgstr "Ajouter aux favoris"
 
 #: front/src/components/playlists/TrackPlaylistIcon.vue:6
-#: front/src/components/playlists/TrackPlaylistIcon.vue:32
-msgid "Add to playlist..."
-msgstr "Ajouter à une playlist..."
+#: front/src/components/playlists/TrackPlaylistIcon.vue:34
+msgid "Add to playlist…"
+msgstr "Ajouter à la liste de lecture…"
 
 #: front/src/components/audio/PlayButton.vue:14
 msgid "Add to queue"
-msgstr "Ajouter à la queue"
+msgstr "Ajouter à la file d’attente"
+
+#: front/src/components/playlists/PlaylistModal.vue:116
+msgid "Add to this playlist"
+msgstr "Ajouter à cette playlist"
 
 #: front/src/components/playlists/PlaylistModal.vue:54
 msgid "Add track"
@@ -188,32 +266,38 @@ msgstr "Ajouter une piste"
 msgid "Admin"
 msgstr "Admin"
 
-#: front/src/components/Sidebar.vue:82
+#: front/src/components/Sidebar.vue:79
 msgid "Administration"
 msgstr "Administration"
 
-#: front/src/components/audio/track/Table.vue:8
+#: front/src/components/audio/SearchBar.vue:26
+#: src/components/audio/track/Table.vue:8
+#: front/src/components/library/Album.vue:159
 #: front/src/components/manage/library/FilesTable.vue:39
-#: front/src/views/content/libraries/FilesTable.vue:53
-#: front/src/components/library/Album.vue:101
-#: src/components/audio/SearchBar.vue:26
 #: front/src/components/metadata/Search.vue:134
+#: front/src/views/content/libraries/FilesTable.vue:56
 msgid "Album"
 msgstr "Album"
 
 #: front/src/components/library/Album.vue:12
 msgid "Album containing %{ count } track, by %{ artist }"
 msgid_plural "Album containing %{ count } tracks, by %{ artist }"
-msgstr[0] "Album incluant %{ count } piste, de %{ artist }"
-msgstr[1] "Album incluant %{ count } pistes, de %{ artist }"
+msgstr[0] "Album contenant %{ count } piste, par %{ artist }"
+msgstr[1] "Album contenant %{ count } pistes, par %{ artist }"
+
+#: front/src/components/mixins/Translations.vue:24
+#: front/src/components/mixins/Translations.vue:25
+msgid "Album name"
+msgstr "Nom de l'album"
 
-#: front/src/components/library/Track.vue:20
+#: front/src/components/library/Track.vue:27
 msgid "Album page"
 msgstr "Page de l'album"
 
 #: front/src/components/audio/Search.vue:19
 #: src/components/instance/Stats.vue:48
-#: front/src/components/requests/Form.vue:9
+#: front/src/views/admin/moderation/AccountsDetail.vue:321
+#: front/src/views/admin/moderation/DomainsDetail.vue:257
 msgid "Albums"
 msgstr "Albums"
 
@@ -232,35 +316,47 @@ msgstr "Une erreur s'est produite pendant l'enregistrement de vos modifications"
 
 #: front/src/components/auth/Login.vue:10
 msgid "An unknown error happend, this can mean the server is down or cannot be reached"
-msgstr "Une erreur inconnue s'est produite, cela pourrait signifier que le serveur ne peut pas être atteint"
+msgstr ""
+"Une erreur inconnue s'est produite, le serveur est peut-être défaillant ou "
+"indisponible"
+
+#: front/src/components/notifications/NotificationRow.vue:62
+msgid "Approve"
+msgstr "Approuver"
 
 #: front/src/components/auth/Logout.vue:5
 msgid "Are you sure you want to log out?"
 msgstr "Êtes-vous sur de vouloir vous déconnecter ?"
 
-#: front/src/components/audio/track/Table.vue:7
+#: front/src/components/audio/SearchBar.vue:25
+#: src/components/audio/track/Table.vue:7
+#: front/src/components/library/Artist.vue:137
 #: front/src/components/manage/library/FilesTable.vue:38
-#: front/src/views/content/libraries/FilesTable.vue:52
-#: front/src/components/library/Artist.vue:129
-#: src/components/audio/SearchBar.vue:25
 #: front/src/components/metadata/Search.vue:130
+#: front/src/views/content/libraries/FilesTable.vue:55
 msgid "Artist"
 msgstr "Artiste"
 
-#: front/src/components/requests/Form.vue:5
-#: src/components/mixins/Translations.vue:24
+#: front/src/components/mixins/Translations.vue:25
+#: front/src/components/mixins/Translations.vue:26
 msgid "Artist name"
 msgstr "Nom de l'artiste"
 
 #: front/src/components/library/Album.vue:22
-#: src/components/library/Track.vue:23
+#: src/components/library/Track.vue:33
 msgid "Artist page"
 msgstr "Page de l'artiste"
 
+#: front/src/components/audio/Search.vue:65
+msgid "Artist, album, track…"
+msgstr "Artiste, album, piste…"
+
 #: front/src/components/audio/Search.vue:10
 #: src/components/instance/Stats.vue:42
-#: front/src/components/library/Library.vue:7
-#: src/components/library/Artists.vue:120
+#: front/src/components/library/Artists.vue:119
+#: src/components/library/Library.vue:7
+#: front/src/views/admin/moderation/AccountsDetail.vue:313
+#: front/src/views/admin/moderation/DomainsDetail.vue:249
 msgid "Artists"
 msgstr "Artistes"
 
@@ -268,6 +364,8 @@ msgstr "Artistes"
 #: src/components/library/Artists.vue:25
 #: front/src/components/library/Radios.vue:44
 #: front/src/components/manage/library/FilesTable.vue:19
+#: front/src/components/manage/moderation/AccountsTable.vue:21
+#: front/src/components/manage/moderation/DomainsTable.vue:19
 #: front/src/components/manage/users/UsersTable.vue:19
 #: front/src/views/content/libraries/FilesTable.vue:31
 #: front/src/views/playlists/List.vue:27
@@ -278,6 +376,15 @@ msgstr "Ascendant"
 msgid "Ask for a password reset"
 msgstr "Demander à réinitialiser votre mot de passe"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:245
+#: front/src/views/admin/moderation/DomainsDetail.vue:202
+msgid "Audio content"
+msgstr "Contenu audio"
+
+#: front/src/components/ShortcutsModal.vue:55
+msgid "Audio player shortcuts"
+msgstr "Raccourcis du lecteur audio"
+
 #: front/src/components/playlists/PlaylistModal.vue:26
 msgid "Available playlists"
 msgstr "Playlists disponibles"
@@ -286,17 +393,29 @@ msgstr "Playlists disponibles"
 msgid "Avatar"
 msgstr "Avatar"
 
-#: front/src/views/auth/EmailConfirm.vue:17 src/views/auth/PasswordReset.vue:24
+#: front/src/views/auth/PasswordReset.vue:24
 #: front/src/views/auth/PasswordResetConfirm.vue:18
 msgid "Back to login"
 msgstr "Retour à la page de connexion"
 
-#: front/src/components/library/Track.vue:80
+#: front/src/components/library/Track.vue:129
 #: front/src/components/manage/library/FilesTable.vue:42
-#: front/src/components/mixins/Translations.vue:28
+#: front/src/components/mixins/Translations.vue:29
+#: front/src/components/mixins/Translations.vue:30
 msgid "Bitrate"
 msgstr "Bitrate"
 
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:19
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:34
+msgid "Block everything"
+msgstr "Bloquer tout"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:112
+msgid "Block everything from this account or domain. This will prevent any interaction with the entity, and purge related content (uploads, libraries, follows, etc.)"
+msgstr ""
+"Bloquer tout depuis ce compte ou domaine. Cela empêche toute interaction "
+"avec l'entité, et purge le contenu lié (pistes, librairies, suivis, etc.)"
+
 #: front/src/components/Sidebar.vue:18 src/components/library/Library.vue:4
 msgid "Browse"
 msgstr "Parcourir"
@@ -326,12 +445,20 @@ msgid "By %{ artist }"
 msgstr "De %{ artist }"
 
 #: front/src/views/content/remote/Card.vue:103
-msgid "By unfollowing this library, you will loose access to its content."
+msgid "By unfollowing this library, you loose access to its content."
 msgstr ""
-"En arrêtant de suivre cette bibliothèque, vous perdrez l'accès à son contenu."
+"En cessant de suivre cette bibliothèque, vous perdez l’accès à son contenu."
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:261
+#: front/src/views/admin/moderation/DomainsDetail.vue:217
+msgid "Cached size"
+msgstr "Taille en cache"
 
 #: front/src/components/common/DangerousButton.vue:17
+#: front/src/components/library/Album.vue:58
+#: src/components/library/Track.vue:76
 #: front/src/components/library/radios/Filter.vue:53
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:54
 #: front/src/components/playlists/PlaylistModal.vue:63
 msgid "Cancel"
 msgstr "Annuler"
@@ -344,7 +471,13 @@ msgstr "Pistes candidates"
 msgid "Cannot change your password"
 msgstr "Mot de passe ne peut pas être changé"
 
-#: front/src/App.vue:65
+#: front/src/components/library/FileUpload.vue:222
+#: front/src/components/library/FileUpload.vue:223
+msgid "Cannot upload this file, ensure it is not too big"
+msgstr ""
+"Impossible de transférer ce fichier, assurez-vous qu'il n'est pas trop gros"
+
+#: front/src/components/Footer.vue:21
 msgid "Change language"
 msgstr "Changer la langue"
 
@@ -377,7 +510,11 @@ msgstr "La mise à jour de votre mot de passe impactera également le mot de pas
 msgid "Changing your password will have the following consequences"
 msgstr "Modifier votre mot de passe aura les conséquences suivantes"
 
-#: front/src/App.vue:6
+#: front/src/components/Footer.vue:40
+msgid "Chat room"
+msgstr "Salle de discussion"
+
+#: front/src/App.vue:13
 msgid "Choose your instance"
 msgstr "Choisissez votre instance"
 
@@ -394,13 +531,21 @@ msgstr "Effacer"
 msgid "Clear playlist"
 msgstr "Vider la playlist"
 
+#: front/src/components/audio/Player.vue:363
+msgid "Clear your queue"
+msgstr "Vider votre file d’attente"
+
 #: front/src/components/Home.vue:44
 msgid "Click once, listen for hours using built-in radios"
 msgstr "Écoutez de la musique pendant des heures, en un clic, grâce aux radios intégrées."
 
-#: front/src/components/library/FileUpload.vue:76
+#: front/src/components/library/FileUpload.vue:75
 msgid "Click to select files to upload or drag and drop files or directories"
-msgstr "Cliquer pour sélectionner les fichiers a téléverser ou glisser-déposser les fichiers ou répertoires"
+msgstr "Cliquer pour sélectionner les fichiers a téléverser ou glisser-déposer les fichiers ou répertoires"
+
+#: front/src/components/ShortcutsModal.vue:20
+msgid "Close"
+msgstr "Fermer"
 
 #: front/src/components/manage/users/InvitationForm.vue:26
 #: front/src/components/manage/users/InvitationsTable.vue:42
@@ -409,14 +554,9 @@ msgstr "Code"
 
 #: front/src/components/audio/album/Card.vue:43
 #: front/src/components/audio/artist/Card.vue:33
-#: front/src/components/discussion/Comment.vue:20
 msgid "Collapse"
 msgstr "Réduire"
 
-#: front/src/components/requests/Form.vue:14
-msgid "Comment"
-msgstr "Commentaire"
-
 #: front/src/components/library/radios/Builder.vue:62
 msgid "Config"
 msgstr "Configuration"
@@ -427,24 +567,64 @@ msgstr "Confirmer"
 
 #: front/src/views/auth/EmailConfirm.vue:4 src/views/auth/EmailConfirm.vue:20
 #: front/src/views/auth/EmailConfirm.vue:51
-msgid "Confirm your email"
-msgstr "Confirmer votre email"
+msgid "Confirm your e-mail address"
+msgstr "Confirmer votre courriel"
 
 #: front/src/views/auth/EmailConfirm.vue:13
 msgid "Confirmation code"
 msgstr "Code de confirmation"
 
+#: front/src/components/common/ActionTable.vue:7
+msgid "Content have been updated, click refresh to see up-to-date content"
+msgstr ""
+"Le contenu a été modifié, cliquez sur rafraîchir pour voir le contenu à jour"
+
+#: front/src/components/Footer.vue:48
+msgid "Contribute"
+msgstr "Contribuer"
+
+#: front/src/components/audio/EmbedWizard.vue:19
 #: front/src/components/common/CopyInput.vue:8
 msgid "Copy"
 msgstr "Copier"
 
+#: front/src/components/playlists/Editor.vue:163
+msgid "Copy tracks from current queue to playlist"
+msgstr "Copier les pistes de la file d’attente dans la playlist"
+
+#: front/src/components/audio/EmbedWizard.vue:21
+msgid "Copy/paste this code in your website HTML"
+msgstr "Copiez/collez ce code dans votre site web HTML"
+
+#: front/src/components/library/Track.vue:91
+msgid "Copyright"
+msgstr "Copyright"
+
+#: front/src/views/auth/EmailConfirm.vue:7
+msgid "Could not confirm your e-mail address"
+msgstr "Nous n'avons pas pu confirmer votre adresse de courriel"
+
+#: front/src/views/content/remote/ScanForm.vue:3
+msgid "Could not fetch remote library"
+msgstr "Impossible de récupérer la bibliothèque distante"
+
+#: front/src/views/content/libraries/FilesTable.vue:213
+msgid "Could not process this track, ensure it is tagged correctly"
+msgstr ""
+"Une erreur s'est produite lors du traitement de cette piste, assurez-vous "
+"que la piste est correctement étiquetée"
+
 #: front/src/components/Home.vue:85
 msgid "Covers, lyrics, our goal is to have them all ;)"
 msgstr "Pochettes d'albums, paroles, notre but est de tout implémenter ;)"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:58
+msgid "Create"
+msgstr "Créer"
+
 #: front/src/components/auth/Signup.vue:4
 msgid "Create a funkwhale account"
-msgstr "Créer un compte funkwhale"
+msgstr "Créer un compte Funkwhale"
 
 #: front/src/views/content/libraries/Home.vue:14
 msgid "Create a new library"
@@ -458,10 +638,6 @@ msgstr "Créer une nouvelle playlist"
 msgid "Create an account"
 msgstr "Créer un compte"
 
-#: front/src/components/requests/Card.vue:25
-msgid "Create import"
-msgstr "Créer un import"
-
 #: front/src/views/content/libraries/Form.vue:26
 msgid "Create library"
 msgstr "Créer une bibliothèque"
@@ -479,6 +655,7 @@ msgid "Create your own radio"
 msgstr "Créer votre propre radio"
 
 #: front/src/components/manage/users/InvitationsTable.vue:40
+#: front/src/components/mixins/Translations.vue:16
 #: front/src/components/mixins/Translations.vue:17
 msgid "Creation date"
 msgstr "Date de création"
@@ -503,11 +680,16 @@ msgstr "Utilisation actuelle"
 msgid "Date"
 msgstr "Date"
 
-#: front/src/views/content/libraries/Form.vue:29
-#: src/views/playlists/Detail.vue:33
+#: front/src/components/ShortcutsModal.vue:75
+msgid "Decrease volume"
+msgstr "Diminuer le volume"
+
 #: front/src/components/manage/library/FilesTable.vue:190
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:61
 #: front/src/components/manage/users/InvitationsTable.vue:167
-#: front/src/views/content/libraries/FilesTable.vue:258
+#: front/src/views/content/libraries/FilesTable.vue:233
+#: front/src/views/content/libraries/Form.vue:29
+#: src/views/playlists/Detail.vue:33
 msgid "Delete"
 msgstr "Supprimer"
 
@@ -515,6 +697,10 @@ msgstr "Supprimer"
 msgid "Delete library"
 msgstr "Supprimer la bibliothèque"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:69
+msgid "Delete moderation rule"
+msgstr "Supprimer la règle de modération"
+
 #: front/src/views/playlists/Detail.vue:38
 msgid "Delete playlist"
 msgstr "Supprimer la playlist"
@@ -527,10 +713,16 @@ msgstr "Supprimer la radio"
 msgid "Delete this library?"
 msgstr "Supprimer cette bibliothèque ?"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:63
+msgid "Delete this moderation rule?"
+msgstr "Supprimer cette règle de modération ?"
+
 #: front/src/components/favorites/List.vue:34
 #: src/components/library/Artists.vue:26
 #: front/src/components/library/Radios.vue:47
 #: front/src/components/manage/library/FilesTable.vue:20
+#: front/src/components/manage/moderation/AccountsTable.vue:22
+#: front/src/components/manage/moderation/DomainsTable.vue:20
 #: front/src/components/manage/users/UsersTable.vue:20
 #: front/src/views/content/libraries/FilesTable.vue:32
 #: front/src/views/playlists/List.vue:28
@@ -550,6 +742,15 @@ msgstr "Détail"
 msgid "Details"
 msgstr "Détails"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:455
+msgid "Determine how much content the user can upload. Leave empty to use the default value of the instance."
+msgstr "Déterminez la quantité de contenu que l'utilisateur peut importer. Laissez vide pour utiliser la valeur par défaut de l'instance."
+
+#: front/src/components/mixins/Translations.vue:8
+#: front/src/components/mixins/Translations.vue:9
+msgid "Determine the visibility level of your activity"
+msgstr "Déterminer le niveau de visibilité de votre activité"
+
 #: front/src/components/auth/Settings.vue:104
 #: front/src/components/auth/SubsonicTokenForm.vue:52
 msgid "Disable access"
@@ -563,14 +764,30 @@ msgstr "Désactiver l'accès via Subsonic"
 msgid "Disable Subsonic API access?"
 msgstr "Désactiver l'accès à l'API Subsonic ?"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:18
+#: front/src/views/admin/moderation/AccountsDetail.vue:128
+#: front/src/views/admin/moderation/AccountsDetail.vue:132
+msgid "Disabled"
+msgstr "Désactivé"
+
 #: front/src/components/auth/SubsonicTokenForm.vue:14
 msgid "Discover how to use Funkwhale from other apps"
 msgstr "Découvrez comment utiliser Funkwhale sur d'autres applications"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:103
+msgid "Display name"
+msgstr "Nom d'affichage"
+
 #: front/src/components/library/radios/Builder.vue:30
 msgid "Display publicly"
 msgstr "Afficher publiquement"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:122
+msgid "Do not download any media file (audio, album cover, account avatar…) from this account or domain. This will purge existing content as well."
+msgstr ""
+"Ne télécharger aucun média (audio, album, couverture, avatar de compte...) "
+"de ce compte ou domaine. Cela purgera aussi le contenu existant."
+
 #: front/src/components/playlists/Editor.vue:42
 msgid "Do you want to clear the playlist \"%{ playlist }\"?"
 msgstr "Voulez-vous vider la playlist \"%{ playlist }\" ?"
@@ -587,21 +804,34 @@ msgstr "Voulez-vous supprimer la playlist \"%{ playlist }\" ?"
 msgid "Do you want to delete the radio \"%{ radio }\"?"
 msgstr "Voulez-vous supprimer la radio « %{ radio } » ?"
 
-#: front/src/components/common/ActionTable.vue:29
+#: front/src/components/common/ActionTable.vue:36
 msgid "Do you want to launch %{ action } on %{ count } element?"
 msgid_plural "Do you want to launch %{ action } on %{ count } elements?"
 msgstr[0] "Voulez-vous effectuer l'action \"%{ action } sur %{ count } élément ?"
 msgstr[1] "Voulez-vous effectuer l'action \"%{ action } sur %{ count } éléments ?"
 
-#: front/src/components/Sidebar.vue:104
+#: front/src/components/Sidebar.vue:107
 msgid "Do you want to restore your previous queue?"
-msgstr "Souhaitez-vous restaurer votre queue précédente ?"
+msgstr "Souhaitez-vous restaurer votre file d’attente précédente ?"
 
-#: front/src/App.vue:37
+#: front/src/components/Footer.vue:31
 msgid "Documentation"
 msgstr "Documentation"
 
-#: front/src/components/library/Track.vue:48
+#: front/src/components/manage/moderation/AccountsTable.vue:40
+#: front/src/components/mixins/Translations.vue:34
+#: front/src/views/admin/moderation/AccountsDetail.vue:93
+#: front/src/components/mixins/Translations.vue:35
+msgid "Domain"
+msgstr "Domaine"
+
+#: front/src/views/admin/moderation/Base.vue:5
+#: front/src/views/admin/moderation/DomainsList.vue:3
+#: front/src/views/admin/moderation/DomainsList.vue:48
+msgid "Domains"
+msgstr "Domaines"
+
+#: front/src/components/library/Track.vue:55
 msgid "Download"
 msgstr "Télécharger"
 
@@ -610,13 +840,18 @@ msgid "Drag and drop rows to reorder tracks in the playlist"
 msgstr "Glissez et déposer les lignes pour réordonner les pistes dans la playlist"
 
 #: front/src/components/audio/track/Table.vue:9
-#: src/components/library/Track.vue:58
+#: src/components/library/Track.vue:111
 #: front/src/components/manage/library/FilesTable.vue:43
-#: front/src/views/content/libraries/FilesTable.vue:56
-#: front/src/components/mixins/Translations.vue:29
+#: front/src/components/mixins/Translations.vue:30
+#: front/src/views/content/libraries/FilesTable.vue:59
+#: front/src/components/mixins/Translations.vue:31
 msgid "Duration"
 msgstr "Durée"
 
+#: front/src/views/auth/EmailConfirm.vue:23
+msgid "E-mail address confirmed"
+msgstr "Courriel confirmé"
+
 #: front/src/components/Home.vue:93
 msgid "Easy to use"
 msgstr "Simple à utiliser"
@@ -630,36 +865,102 @@ msgid "Edit instance info"
 msgstr "Éditer les informations de cette instance"
 
 #: front/src/components/radios/Card.vue:22 src/views/playlists/Detail.vue:30
-msgid "Edit..."
-msgstr "Éditer..."
+msgid "Edit…"
+msgstr "Éditer…"
 
 #: front/src/components/auth/Signup.vue:29
 #: front/src/components/manage/users/UsersTable.vue:38
 msgid "Email"
-msgstr "Email"
+msgstr "Courriel"
 
-#: front/src/views/admin/users/UsersDetail.vue:29
+#: front/src/views/admin/moderation/AccountsDetail.vue:111
 msgid "Email address"
-msgstr "Adresse email"
-
-#: front/src/views/auth/EmailConfirm.vue:23
-msgid "Email confirmed"
-msgstr "Email confirmé"
+msgstr "Adresse de courriel"
+
+#: front/src/components/library/Album.vue:44
+#: src/components/library/Track.vue:62
+msgid "Embed"
+msgstr "Insérer"
+
+#: front/src/components/audio/EmbedWizard.vue:20
+msgid "Embed code"
+msgstr "Code inséré"
+
+#: front/src/components/library/Album.vue:48
+msgid "Embed this album on your website"
+msgstr "Insérez cet album dans votre site web"
+
+#: front/src/components/library/Track.vue:66
+msgid "Embed this track on your website"
+msgstr "Insérez cette piste dans votre site web"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:230
+#: front/src/views/admin/moderation/DomainsDetail.vue:187
+msgid "Emitted library follows"
+msgstr "Suivis de librairies émis"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:214
+#: front/src/views/admin/moderation/DomainsDetail.vue:171
+msgid "Emitted messages"
+msgstr "Messages émis"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:8
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:17
+#: front/src/views/admin/moderation/AccountsDetail.vue:127
+#: front/src/views/admin/moderation/AccountsDetail.vue:131
+msgid "Enabled"
+msgstr "Activé"
 
 #: front/src/views/playlists/Detail.vue:29
 msgid "End edition"
 msgstr "Terminer l'édition"
 
+#: front/src/views/content/remote/ScanForm.vue:50
+msgid "Enter a library URL"
+msgstr "Saisissez une URL de bibliothèque"
+
+#: front/src/components/library/Radios.vue:140
+msgid "Enter a radio name…"
+msgstr "Saisissez un nom de radio…"
+
+#: front/src/components/library/Artists.vue:118
+msgid "Enter artist name…"
+msgstr "Saisissez un nom d'artiste…"
+
+#: front/src/views/playlists/List.vue:107
+msgid "Enter playlist name…"
+msgstr "Saisissez un nom de playlist…"
+
+#: front/src/components/auth/Signup.vue:100
+msgid "Enter your email"
+msgstr "Saisissez votre courriel"
+
+#: front/src/components/auth/Signup.vue:96 src/components/auth/Signup.vue:97
+msgid "Enter your invitation code (case insensitive)"
+msgstr "Saisissez votre code d'invitation (insensible à la casse)"
+
+#: front/src/components/metadata/Search.vue:114
+msgid "Enter your search query…"
+msgstr "Saisissez votre recherche…"
+
+#: front/src/components/auth/Signup.vue:99
+msgid "Enter your username"
+msgstr "Saisissez votre nom d'utilisateur·rice"
+
+#: front/src/components/auth/Login.vue:77
+msgid "Enter your username or email"
+msgstr "Saisissez votre nom d'utilisateur·rice ou courriel"
+
 #: front/src/components/auth/SubsonicTokenForm.vue:20
 #: front/src/views/content/libraries/Form.vue:4
 msgid "Error"
 msgstr "Erreur"
 
-#: front/src/views/content/remote/Card.vue:39
-msgid "Error during scan"
-msgstr "Erreur lors de l'analyse"
+#: front/src/views/admin/Settings.vue:87
+msgid "Error reporting"
+msgstr "Rapports d'erreur"
 
-#: front/src/components/common/ActionTable.vue:79
+#: front/src/components/common/ActionTable.vue:92
 msgid "Error while applying action"
 msgstr "Erreur lors du traitement de l'action"
 
@@ -671,24 +972,27 @@ msgstr "Erreur pendant la demande de réinitialisation de mot de passe"
 msgid "Error while changing your password"
 msgstr "Erreur pendant le changement de mot de passe"
 
-#: front/src/views/auth/EmailConfirm.vue:7
-msgid "Error while confirming your email"
-msgstr "Erreur lors de la confirmation de votre email"
+#: front/src/views/admin/moderation/DomainsList.vue:6
+msgid "Error while creating domain"
+msgstr "Erreur lors de la création du domaine"
 
 #: front/src/components/manage/users/InvitationForm.vue:4
 msgid "Error while creating invitation"
 msgstr "Erreur lors de la création de l'invitation"
 
-#: front/src/views/content/remote/ScanForm.vue:3
-msgid "Error while fetching remote library"
-msgstr "Erreur lors de la récupération de la bibliothèque distante"
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:7
+msgid "Error while creating rule"
+msgstr "Erreur lors de la création de la règle"
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:126
+msgid "Error while fetching node info"
+msgstr "Erreur lors de la récupération des informations du nœud"
 
 #: front/src/components/admin/SettingsGroup.vue:5
 msgid "Error while saving settings"
 msgstr "Erreur pendant l'enregistrement des paramètres"
 
-#: front/src/views/content/libraries/FilesTable.vue:16
-#: front/src/views/content/libraries/FilesTable.vue:237
+#: front/src/views/content/libraries/FilesTable.vue:212
 msgid "Errored"
 msgstr "En erreur"
 
@@ -696,20 +1000,28 @@ msgstr "En erreur"
 msgid "Errored files"
 msgstr "Fichiers erronés"
 
-#: front/src/views/content/remote/Card.vue:58
-msgid "Errored tracks:"
-msgstr "Pistes erronées:"
+#: front/src/components/playlists/Form.vue:89
+msgid "Everyone"
+msgstr "Tout le monde"
+
+#: front/src/components/mixins/Translations.vue:11
+#: front/src/components/playlists/Form.vue:85
+#: src/views/content/libraries/Form.vue:73
+#: front/src/components/mixins/Translations.vue:12
+msgid "Everyone on this instance"
+msgstr "Tout le monde sur cette instance"
+
+#: front/src/views/content/libraries/Form.vue:74
+msgid "Everyone, across all instances"
+msgstr "Tout le monde, sur toutes les instances"
 
 #: front/src/components/library/radios/Builder.vue:61
 msgid "Exclude"
 msgstr "Exclure"
 
-#: front/src/components/discussion/Comment.vue:14
-msgid "Expand"
-msgstr "Ouvrir"
-
 #: front/src/components/manage/users/InvitationsTable.vue:41
-#: front/src/components/mixins/Translations.vue:21
+#: front/src/components/mixins/Translations.vue:22
+#: front/src/components/mixins/Translations.vue:23
 msgid "Expiration date"
 msgstr "Date d'expiration"
 
@@ -721,12 +1033,33 @@ msgstr "Expirée"
 msgid "Expired/used"
 msgstr "Expirée/utilisée"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:110
+msgid "Explain why you're applying this policy. Depending on your instance configuration, this will help you remember why you acted on this account or domain, and may be displayed publicly to help users understand what moderation rules are in place."
+msgstr ""
+"Expliquez pourquoi vous appliquez cette règle. En fonction de votre "
+"configuration d'instance, cela vous aidera à vous rappeler pourquoi vous "
+"avez agis sur ce compte ou domaine, et peut être affiché publiquement pour "
+"aider les utilisateurs à comprendre quelles règles de modération sont en "
+"place."
+
+#: front/src/views/content/libraries/FilesTable.vue:16
+msgid "Failed"
+msgstr "Échoué"
+
+#: front/src/views/content/remote/Card.vue:58
+msgid "Failed tracks:"
+msgstr "Pistes échouées :"
+
 #: front/src/components/Sidebar.vue:66
 msgid "Favorites"
 msgstr "Favoris"
 
-#: front/src/components/library/FileUpload.vue:83
-msgid "File name"
+#: front/src/views/admin/Settings.vue:84
+msgid "Federation"
+msgstr "Fédération"
+
+#: front/src/components/library/FileUpload.vue:84
+msgid "Filename"
 msgstr "Nom du fichier"
 
 #: front/src/views/admin/library/Base.vue:5
@@ -739,23 +1072,37 @@ msgid "Filter name"
 msgstr "Nom du filtre"
 
 #: front/src/views/content/libraries/FilesTable.vue:17
-#: front/src/views/content/libraries/FilesTable.vue:241
+#: front/src/views/content/libraries/FilesTable.vue:216
 msgid "Finished"
 msgstr "Terminé"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:42
+#: front/src/components/manage/moderation/DomainsTable.vue:41
+#: front/src/views/admin/moderation/AccountsDetail.vue:159
+#: front/src/views/admin/moderation/DomainsDetail.vue:78
+msgid "First seen"
+msgstr "Découverte"
+
+#: front/src/components/mixins/Translations.vue:17
+#: front/src/components/mixins/Translations.vue:18
+msgid "First seen date"
+msgstr "Date de découverte"
+
 #: front/src/views/content/remote/Card.vue:83
 msgid "Follow"
 msgstr "Suivre"
 
-#: front/src/views/content/remote/Card.vue:88
-msgid "Follow pending approval"
-msgstr "Suivi en attente de validation"
-
 #: front/src/views/content/Home.vue:16
 msgid "Follow remote libraries"
-msgstr "Suivre les bibliothèques distantes"
+msgstr "Suivre des bibliothèques distantes"
+
+#: front/src/views/content/remote/Card.vue:88
+msgid "Follow request pending approval"
+msgstr "Demande de suivi en attente de validation"
 
+#: front/src/components/mixins/Translations.vue:38
 #: front/src/views/content/libraries/Detail.vue:7
+#: front/src/components/mixins/Translations.vue:39
 msgid "Followers"
 msgstr "Abonnés"
 
@@ -763,19 +1110,10 @@ msgstr "Abonnés"
 msgid "Following"
 msgstr "Abonné"
 
-#: front/src/components/activity/Like.vue:14
-#: src/components/activity/Listen.vue:14
-msgid "from %{ album } by %{ artist }"
-msgstr "de l'album %{ album } par %{ artist }"
-
-#: front/src/components/library/Track.vue:13
+#: front/src/components/library/Track.vue:17
 msgid "From album %{ album } by %{ artist }"
 msgstr "De l'album %{ album } par %{ artist }"
 
-#: front/src/App.vue:55
-msgid "Funkwhale is a free and open-source project run by volunteers. You can help us improve the platform by reporting bugs, suggesting features and share the project with your friends!"
-msgstr "Funkwale est un projet open-source et gratuit, animé par des bénévoles. Vous pouvez nous aider à améliorer le service en remontant les problèmes que vous rencontrez, en suggérant des améliorations et en parlant du projet autour de vous !"
-
 #: front/src/components/auth/SubsonicTokenForm.vue:7
 msgid "Funkwhale is compatible with other music players that support the Subsonic API."
 msgstr "Funkwhale est compatible avec d'autres lecteurs de musique qui supportent l'API Subsonic."
@@ -796,6 +1134,10 @@ msgstr "Funkwhale est gratuit et vous donne le contrôle sur votre musique."
 msgid "Funkwhale takes care of handling your music"
 msgstr "Funkwhale prend soin de votre musique"
 
+#: front/src/components/ShortcutsModal.vue:38
+msgid "General shortcuts"
+msgstr "Raccourcis généraux"
+
 #: front/src/components/manage/users/InvitationForm.vue:16
 msgid "Get a new invitation"
 msgstr "Obtenir une nouvelle invitation"
@@ -806,16 +1148,18 @@ msgstr "Amenez moi à la bibliothèque"
 
 #: front/src/components/Home.vue:76
 msgid "Get quality metadata about your music thanks to <a href=\"%{ url }\" target=\"_blank\">MusicBrainz</a>"
-msgstr ""
-"Obtenez des métadonnées de qualité sur votre musique grâce à <a href=\"%{ "
-"url }\" target=\"_blank\">MusicBrainz</a>"
+msgstr "Obtenez des métadonnées de qualité pour votre musique grâce à <a href=\"%{ url }\" target=\"_blank\">MusicBrainz</a>"
 
 #: front/src/views/content/Home.vue:12 src/views/content/Home.vue:19
 msgid "Get started"
-msgstr "Démarrer"
+msgstr "Commencer"
 
-#: front/src/components/common/ActionTable.vue:21
-#: front/src/components/common/ActionTable.vue:27
+#: front/src/components/Footer.vue:37
+msgid "Getting help"
+msgstr "Obtenir de l'aide"
+
+#: front/src/components/common/ActionTable.vue:34
+#: front/src/components/common/ActionTable.vue:54
 msgid "Go"
 msgstr "Aller"
 
@@ -823,9 +1167,13 @@ msgstr "Aller"
 msgid "Go to home page"
 msgstr "Retourner à la page d'accueil"
 
-#: front/src/App.vue:73
-msgid "Help us translate Funkwhale"
-msgstr "Aidez-nous à traduire Funkwhale"
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:114
+msgid "Hide account or domain content, except from followers."
+msgstr "Cacher le contenu du compte ou du domaine, sauf aux abonnés."
+
+#: front/src/components/library/Home.vue:65
+msgid "Home"
+msgstr "Accueil"
 
 #: front/src/components/instance/Stats.vue:36
 msgid "Hours of music"
@@ -852,10 +1200,19 @@ msgid "Import reference"
 msgstr "Référence de l'importation"
 
 #: front/src/views/content/libraries/FilesTable.vue:11
-#: front/src/views/content/libraries/FilesTable.vue:55
+#: front/src/views/content/libraries/FilesTable.vue:58
 msgid "Import status"
 msgstr "Status de l'import"
 
+#: front/src/views/content/libraries/FilesTable.vue:217
+msgid "Imported"
+msgstr "Importé"
+
+#: front/src/components/mixins/Translations.vue:21
+#: front/src/components/mixins/Translations.vue:22
+msgid "Imported date"
+msgstr "Date d'import"
+
 #: front/src/components/favorites/TrackFavoriteIcon.vue:3
 msgid "In favorites"
 msgstr "Dans les favoris"
@@ -864,16 +1221,43 @@ msgstr "Dans les favoris"
 msgid "Inactive"
 msgstr "Inactif"
 
+#: front/src/components/ShortcutsModal.vue:71
+msgid "Increase volume"
+msgstr "Augmenter le volume"
+
+#: front/src/views/auth/PasswordReset.vue:53
+msgid "Input the email address binded to your account"
+msgstr "Saisissez l'adresse de courriel liée à votre compte"
+
 #: front/src/components/playlists/Editor.vue:31
 msgid "Insert from queue (%{ count } track)"
 msgid_plural "Insert from queue (%{ count } tracks)"
 msgstr[0] "Insérer depuis la queue (%{ count } piste)"
 msgstr[1] "Insérer depuis la queue (%{ count } pistes)"
 
+#: front/src/views/admin/moderation/DomainsDetail.vue:71
+msgid "Instance data"
+msgstr "Informations de l'instance"
+
+#: front/src/views/admin/Settings.vue:80
+msgid "Instance information"
+msgstr "Informations relatives à cette instance"
+
 #: front/src/components/library/Radios.vue:9
 msgid "Instance radios"
 msgstr "Radios de l'instance"
 
+#: front/src/views/admin/Settings.vue:75
+msgid "Instance settings"
+msgstr "Paramètres de l'instance"
+
+#: front/src/components/library/FileUpload.vue:229
+#: front/src/components/library/FileUpload.vue:230
+msgid "Invalid file type, ensure you are uploading an audio file. Supported file extensions are %{ extensions }"
+msgstr ""
+"Mauvais type de fichier, assurez-vous de charger un fichier audio. Les "
+"formats de fichiers supportés sont %{ extensions }"
+
 #: front/src/components/auth/Signup.vue:42
 #: front/src/components/manage/users/InvitationForm.vue:11
 msgid "Invitation code"
@@ -889,116 +1273,153 @@ msgstr "Code d'invitation (optionnel)"
 msgid "Invitations"
 msgstr "Invitations"
 
-#: front/src/App.vue:42
+#: front/src/components/Footer.vue:41
 msgid "Issue tracker"
 msgstr "Issue tracker"
 
-#: front/src/views/content/libraries/Home.vue:9
-msgid "It looks like you don't have any library yet, it's time to create one!"
-msgstr ""
-"On dirait que vous n'avez pas encore de bibliothèque, il est temps d'en "
-"créer une !"
-
 #: front/src/components/Home.vue:50
 msgid "Keep a track of your favorite songs"
 msgstr "Gardez une trace de vos chansons favorites"
 
+#: front/src/components/Footer.vue:33 src/components/ShortcutsModal.vue:3
+msgid "Keyboard shortcuts"
+msgstr "Raccouris clavier"
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:161
+msgid "Known accounts"
+msgstr "Comptes connus"
+
 #: front/src/views/content/remote/Home.vue:14
 msgid "Known libraries"
 msgstr "Bibliothèques connues"
 
 #: front/src/components/manage/users/UsersTable.vue:41
-#: front/src/views/admin/users/UsersDetail.vue:45
-#: front/src/components/mixins/Translations.vue:31
+#: front/src/components/mixins/Translations.vue:32
+#: front/src/views/admin/moderation/AccountsDetail.vue:184
+#: front/src/components/mixins/Translations.vue:33
 msgid "Last activity"
 msgstr "Dernière activité"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:167
+#: front/src/views/admin/moderation/DomainsDetail.vue:86
+msgid "Last checked"
+msgstr "Dernière vérification"
+
 #: front/src/components/playlists/PlaylistModal.vue:32
 msgid "Last modification"
 msgstr "Dernière modification"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:43
+msgid "Last seen"
+msgstr "Vu pour la dernière fois"
+
+#: front/src/components/mixins/Translations.vue:18
+#: front/src/components/mixins/Translations.vue:19
+msgid "Last seen date"
+msgstr "Date de dernier aperçu"
+
 #: front/src/views/content/remote/Card.vue:56
 msgid "Last update:"
 msgstr "Dernière mise a jour :"
 
-#: front/src/components/common/ActionTable.vue:40
+#: front/src/components/common/ActionTable.vue:47
 msgid "Launch"
 msgstr "Démarrer"
 
-#: front/src/views/content/remote/Card.vue:63
-msgid "Launch scan"
-msgstr "Démarrer le scan"
-
 #: front/src/components/Home.vue:10
 msgid "Learn more about this instance"
 msgstr "En apprendre plus à propos de cette instance"
 
-#: front/src/components/requests/Form.vue:10
-msgid "Leave this field empty if you're requesting the whole discography."
-msgstr "Laisser ce champ vide si vous voulez suggérer toute la discographie."
+#: front/src/components/manage/users/InvitationForm.vue:58
+msgid "Leave empty for a random code"
+msgstr "Laisser vide pour obtenir un code aléatoire"
+
+#: front/src/components/audio/EmbedWizard.vue:7
+msgid "Leave empty for a responsive widget"
+msgstr "Laisser vide pour un widget adaptatif"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:297
+#: front/src/views/admin/moderation/DomainsDetail.vue:233
 #: front/src/views/content/Base.vue:5
 msgid "Libraries"
 msgstr "Bibliothèques"
 
 #: front/src/views/content/libraries/Form.vue:2
 msgid "Libraries help you organize and share your music collections. You can upload your own music collection to Funkwhale and share it with your friends and family."
-msgstr ""
-"Les bibliothèques vous aident à organiser et à partager votre collection de "
-"musique. Vous pouvez téléverser votre bibliothèque musicale sur Funkwhale et "
-"la partager avec vos amis et votre famille."
+msgstr "Les bibliothèques vous aident à organiser et à partager votre collection de musique. Vous pouvez téléverser votre bibliothèque musicale sur Funkwhale et la partager avec vos amis et votre famille."
 
 #: front/src/components/instance/Stats.vue:30
-#: front/src/components/manage/users/UsersTable.vue:177
-#: front/src/views/admin/users/UsersDetail.vue:181
+#: front/src/components/manage/users/UsersTable.vue:173
+#: front/src/views/admin/moderation/AccountsDetail.vue:464
 msgid "Library"
 msgstr "Bibliothèque"
 
+#: front/src/views/content/libraries/Form.vue:109
+msgid "Library created"
+msgstr "Bibliothèque créée"
+
+#: front/src/views/content/libraries/Form.vue:129
+msgid "Library deleted"
+msgstr "Bibliothèque supprimée"
+
 #: front/src/views/admin/library/FilesList.vue:3
 msgid "Library files"
 msgstr "Fichiers de la bibliothèque"
 
-#: front/src/App.vue:31
-msgid "Links"
-msgstr "Liens"
+#: front/src/views/content/libraries/Form.vue:106
+msgid "Library updated"
+msgstr "Bibliothèque mise à jour"
+
+#: front/src/components/library/Track.vue:100
+msgid "License"
+msgstr "Licence"
 
 #: front/src/views/content/libraries/Detail.vue:21
-msgid "Loading followers..."
-msgstr "Chargement des followers ..."
+msgid "Loading followers…"
+msgstr "Chargement des abonnés…"
 
 #: front/src/views/content/libraries/Home.vue:3
-msgid "Loading Libraries..."
-msgstr "Chargement des bibliothèques ..."
+msgid "Loading Libraries…"
+msgstr "Chargement des bibliothèques…"
 
 #: front/src/views/content/libraries/Detail.vue:3
 #: front/src/views/content/libraries/Upload.vue:3
-msgid "Loading library data..."
-msgstr "Chargement des données de la bibliothèque ..."
+msgid "Loading library data…"
+msgstr "Chargement des données de la bibliothèque…"
 
 #: front/src/views/Notifications.vue:4
-msgid "Loading notifications..."
-msgstr "Chargement des notifications ..."
+msgid "Loading notifications…"
+msgstr "Chargement des notifications…"
 
 #: front/src/views/content/remote/Home.vue:3
 msgid "Loading remote libraries..."
-msgstr "Chargement de bibliothèques distantes ..."
-
-#: front/src/views/instance/Timeline.vue:4
-msgid "Loading timeline..."
-msgstr "Chargement de la timeline ..."
+msgstr "Chargement de bibliothèques distantes…"
 
 #: front/src/views/content/libraries/Quota.vue:4
-msgid "Loading usage data..."
-msgstr "Chargement des données d'utilisation ..."
+msgid "Loading usage data…"
+msgstr "Chargement des données d'utilisation…"
 
 #: front/src/components/favorites/List.vue:5
-msgid "Loading your favorites..."
-msgstr "Chargement de vos favoris ..."
+msgid "Loading your favorites…"
+msgstr "Chargement de vos favoris…"
+
+#: front/src/components/manage/moderation/AccountsTable.vue:59
+#: front/src/views/admin/moderation/AccountsDetail.vue:18
+msgid "Local account"
+msgstr "Compte local"
+
+#: front/src/components/auth/Login.vue:78
+msgid "Log In"
+msgstr "Connexion"
 
 #: front/src/components/auth/Login.vue:4
 msgid "Log in to your Funkwhale account"
 msgstr "Connectez vous à votre compte Funkwhale"
 
+#: front/src/components/auth/Logout.vue:20
+msgid "Log Out"
+msgstr "Déconnexion"
+
 #: front/src/components/Sidebar.vue:38
 msgid "Logged in as %{ username }"
 msgstr "Connecté·e en tant que %{ username }"
@@ -1007,18 +1428,57 @@ msgstr "Connecté·e en tant que %{ username }"
 msgid "Login"
 msgstr "Connexion"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:119
+msgid "Login status"
+msgstr "Statut de connexion"
+
 #: front/src/components/Sidebar.vue:52
 msgid "Logout"
 msgstr "Déconnexion"
 
-#: front/src/components/library/Track.vue:105
+#: front/src/views/content/libraries/Home.vue:9
+msgid "Looks like you don't have a library, it's time to create one."
+msgstr ""
+"On dirait que vous n'avez pas encore de bibliothèque, il est temps d'en "
+"créer une."
+
+#: front/src/components/audio/Player.vue:353
+#: src/components/audio/Player.vue:354
+msgid "Looping disabled. Click to switch to single-track looping."
+msgstr "Répétition désactivée. Cliquez pour activer la répétition sur la piste actuelle."
+
+#: front/src/components/audio/Player.vue:356
+#: src/components/audio/Player.vue:357
+msgid "Looping on a single track. Click to switch to whole queue looping."
+msgstr ""
+"Répétition sur la piste en cours. Cliquer pour répéter sur l'intégralité de "
+"la file d’attente."
+
+#: front/src/components/audio/Player.vue:359
+#: src/components/audio/Player.vue:360
+msgid "Looping on whole queue. Click to disable looping."
+msgstr "\"Répétition sur l'intégralité"
+
+#: front/src/components/library/Track.vue:150
 msgid "Lyrics"
 msgstr "Paroles"
 
+#: front/src/components/Sidebar.vue:210
+msgid "Main menu"
+msgstr "Menu principal"
+
+#: front/src/views/admin/library/Base.vue:16
+msgid "Manage library"
+msgstr "Gérer la bibliothèque"
+
 #: front/src/components/playlists/PlaylistModal.vue:3
 msgid "Manage playlists"
 msgstr "Gérer les playlists"
 
+#: front/src/views/admin/users/Base.vue:20
+msgid "Manage users"
+msgstr "Gérer les utilisateur·rices"
+
 #: front/src/views/playlists/List.vue:8
 msgid "Manage your playlists"
 msgstr "Gérer vos playlists"
@@ -1027,42 +1487,103 @@ msgstr "Gérer vos playlists"
 msgid "Mark all as read"
 msgstr "Tout marquer comme lu"
 
-#: front/src/views/admin/users/UsersDetail.vue:94
+#: front/src/components/notifications/NotificationRow.vue:44
+msgid "Mark as read"
+msgstr "Marquer comme lu"
+
+#: front/src/components/notifications/NotificationRow.vue:45
+msgid "Mark as unread"
+msgstr "Marquer comme non lu"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:281
 msgid "MB"
 msgstr "Mo"
 
-#: front/src/components/Sidebar.vue:63
+#: front/src/components/audio/Player.vue:346
+msgid "Media player"
+msgstr "Lecteur média"
+
+#: front/src/components/Footer.vue:32
+msgid "Mobile and desktop apps"
+msgstr "Applications mobiles et de bureau"
+
+#: front/src/components/Sidebar.vue:97
+#: src/components/manage/users/UsersTable.vue:177
+#: front/src/views/admin/moderation/AccountsDetail.vue:468
+#: front/src/views/admin/moderation/Base.vue:21
+msgid "Moderation"
+msgstr "Modération"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:49
+#: front/src/views/admin/moderation/DomainsDetail.vue:42
+msgid "Moderation policies help you control how your instance interact with a given domain or account."
+msgstr ""
+"Les règles de modération vous aident à contrôler comment votre instance "
+"interagi avec un domaine ou compte donné."
+
+#: front/src/components/mixins/Translations.vue:20
+#: front/src/components/mixins/Translations.vue:21
+msgid "Modification date"
+msgstr "Date de modification"
+
+#: front/src/components/Sidebar.vue:63 src/views/admin/Settings.vue:82
 msgid "Music"
 msgstr "Musique"
 
+#: front/src/components/audio/Player.vue:352
+msgid "Mute"
+msgstr "Couper le son"
+
 #: front/src/components/Sidebar.vue:34
 msgid "My account"
 msgstr "Mon compte"
 
+#: front/src/components/library/radios/Builder.vue:236
+msgid "My awesome description"
+msgstr "Ma description géniale"
+
+#: front/src/views/content/libraries/Form.vue:70
+msgid "My awesome library"
+msgstr "Ma bibliothèque d'enfer"
+
+#: front/src/components/playlists/Form.vue:74
+msgid "My awesome playlist"
+msgstr "Ma playlist d'enfer"
+
+#: front/src/components/library/radios/Builder.vue:235
+msgid "My awesome radio"
+msgstr "Ma radio d'enfer"
+
 #: front/src/views/content/libraries/Home.vue:6
 msgid "My libraries"
 msgstr "Mes bibliothèques"
 
 #: front/src/components/audio/track/Row.vue:40
-#: src/components/library/Track.vue:64
-#: front/src/components/library/Track.vue:75
-#: src/components/library/Track.vue:86
-#: front/src/components/library/Track.vue:97
+#: src/components/library/Track.vue:115
+#: front/src/components/library/Track.vue:124
+#: src/components/library/Track.vue:133
+#: front/src/components/library/Track.vue:142
 #: front/src/components/manage/library/FilesTable.vue:63
 #: front/src/components/manage/library/FilesTable.vue:69
 #: front/src/components/manage/library/FilesTable.vue:75
 #: front/src/components/manage/library/FilesTable.vue:81
 #: front/src/components/manage/users/UsersTable.vue:61
-#: front/src/views/admin/users/UsersDetail.vue:49
-#: front/src/views/content/libraries/FilesTable.vue:89
-#: front/src/views/content/libraries/FilesTable.vue:95
+#: front/src/views/admin/moderation/AccountsDetail.vue:171
+#: front/src/views/admin/moderation/DomainsDetail.vue:90
+#: front/src/views/content/libraries/FilesTable.vue:92
+#: front/src/views/content/libraries/FilesTable.vue:98
+#: front/src/views/admin/moderation/DomainsDetail.vue:109
+#: front/src/views/admin/moderation/DomainsDetail.vue:117
 msgid "N/A"
 msgstr "ND"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:39
+#: front/src/components/manage/moderation/DomainsTable.vue:38
+#: front/src/components/mixins/Translations.vue:26
 #: front/src/components/playlists/PlaylistModal.vue:31
-#: front/src/views/admin/users/UsersDetail.vue:21
+#: front/src/views/admin/moderation/DomainsDetail.vue:105
 #: front/src/views/content/libraries/Form.vue:10
-#: front/src/components/mixins/Translations.vue:25
+#: front/src/components/mixins/Translations.vue:27
 msgid "Name"
 msgstr "Nom"
 
@@ -1071,11 +1592,15 @@ msgstr "Nom"
 msgid "New password"
 msgstr "Nouveau mot de passe"
 
-#: front/src/components/Sidebar.vue:149
+#: front/src/components/Sidebar.vue:160
 msgid "New tracks will be appended here automatically."
 msgstr "Les nouvelles pistes seront ajoutées ici automatiquement."
 
-#: front/src/components/Sidebar.vue:116
+#: front/src/components/audio/Player.vue:350
+msgid "Next track"
+msgstr "Piste suivante"
+
+#: front/src/components/Sidebar.vue:119
 msgid "No"
 msgstr "Non"
 
@@ -1083,7 +1608,15 @@ msgstr "Non"
 msgid "No add-ons, no plugins : you only need a web library"
 msgstr "Pas d'addons ou d'extension à installer, il vous suffit d'une bibliothèque sur le web"
 
-#: front/src/components/library/Track.vue:113
+#: front/src/components/audio/Search.vue:25
+msgid "No album matched your query"
+msgstr "Aucun album ne correspond à votre recherche"
+
+#: front/src/components/audio/Search.vue:16
+msgid "No artist matched your query"
+msgstr "Aucun·e artiste ne correspond à votre recherche"
+
+#: front/src/components/library/Track.vue:158
 msgid "No lyrics available for this track."
 msgstr "Pas de paroles disponibles pour cette piste."
 
@@ -1091,6 +1624,17 @@ msgstr "Pas de paroles disponibles pour cette piste."
 msgid "No matching library."
 msgstr "Aucune bibliothèque correspondante."
 
+#: front/src/views/Notifications.vue:26
+msgid "No notifications yet."
+msgstr "Pas encore de notifications."
+
+#: front/src/components/mixins/Translations.vue:10
+#: front/src/components/playlists/Form.vue:81
+#: src/views/content/libraries/Form.vue:72
+#: front/src/components/mixins/Translations.vue:11
+msgid "Nobody except me"
+msgstr "Personne à part moi"
+
 #: front/src/views/content/libraries/Detail.vue:57
 msgid "Nobody is following this library"
 msgstr "Personne ne suit cette bibliothèque"
@@ -1103,7 +1647,7 @@ msgstr "Pas utilisé"
 msgid "Notifications"
 msgstr "Notifications"
 
-#: front/src/App.vue:36
+#: front/src/components/Footer.vue:47
 msgid "Official website"
 msgstr "Site officiel"
 
@@ -1115,14 +1659,32 @@ msgstr "Ancien mot de passe"
 msgid "Open"
 msgstr "Accès libre"
 
-#: front/src/App.vue:62
-msgid "Options"
-msgstr "Options"
+#: front/src/views/admin/moderation/AccountsDetail.vue:23
+msgid "Open profile"
+msgstr "Ouvrir le profil"
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:16
+msgid "Open website"
+msgstr "Ouvrir le site web"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:40
+msgid "Or customize your rule"
+msgstr "Ou personnalisez votre règle"
+
+#: front/src/components/favorites/List.vue:31
+#: src/components/library/Radios.vue:41
+#: front/src/components/manage/library/FilesTable.vue:17
+#: front/src/components/manage/users/UsersTable.vue:17
+#: front/src/views/playlists/List.vue:25
+msgid "Order"
+msgstr "Ordre"
 
 #: front/src/components/favorites/List.vue:23
 #: src/components/library/Artists.vue:15
 #: front/src/components/library/Radios.vue:33
 #: front/src/components/manage/library/FilesTable.vue:9
+#: front/src/components/manage/moderation/AccountsTable.vue:11
+#: front/src/components/manage/moderation/DomainsTable.vue:9
 #: front/src/components/manage/users/InvitationsTable.vue:9
 #: front/src/components/manage/users/UsersTable.vue:9
 #: front/src/views/content/libraries/FilesTable.vue:21
@@ -1130,13 +1692,10 @@ msgstr "Options"
 msgid "Ordering"
 msgstr "Ordre"
 
-#: front/src/components/favorites/List.vue:31
-#: src/components/library/Artists.vue:23
-#: front/src/components/library/Radios.vue:41
-#: front/src/components/manage/library/FilesTable.vue:17
-#: front/src/components/manage/users/UsersTable.vue:17
+#: front/src/components/library/Artists.vue:23
+#: front/src/components/manage/moderation/AccountsTable.vue:19
+#: front/src/components/manage/moderation/DomainsTable.vue:17
 #: front/src/views/content/libraries/FilesTable.vue:29
-#: front/src/views/playlists/List.vue:25
 msgid "Ordering direction"
 msgstr "Direction"
 
@@ -1144,21 +1703,45 @@ msgstr "Direction"
 msgid "Owner"
 msgstr "Propriétaire"
 
+#: front/src/components/PageNotFound.vue:33
+msgid "Page Not Found"
+msgstr "Page non trouvée"
+
 #: front/src/components/PageNotFound.vue:7
 msgid "Page not found!"
 msgstr "Page non trouvée !"
 
+#: front/src/components/Pagination.vue:39
+msgid "Pagination"
+msgstr "Pagination"
+
 #: front/src/components/auth/Login.vue:32 src/components/auth/Signup.vue:38
 msgid "Password"
 msgstr "Mot de passe"
 
+#: front/src/components/auth/SubsonicTokenForm.vue:95
+msgid "Password updated"
+msgstr "Mot de passe mis à jour"
+
 #: front/src/views/auth/PasswordResetConfirm.vue:28
 msgid "Password updated successfully"
 msgstr "Mot de passe modifié avec succès"
 
-#: front/src/components/library/FileUpload.vue:105
+#: front/src/components/audio/Player.vue:349
+msgid "Pause track"
+msgstr "Mettre en pause"
+
+#: front/src/components/ShortcutsModal.vue:59
+msgid "Pause/play the current track"
+msgstr "Mettre en pause/jouer la piste en cours"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:12
+msgid "Paused"
+msgstr "En pause"
+
+#: front/src/components/library/FileUpload.vue:106
 #: front/src/views/content/libraries/FilesTable.vue:14
-#: front/src/views/content/libraries/FilesTable.vue:233
+#: front/src/views/content/libraries/FilesTable.vue:208
 msgid "Pending"
 msgstr "En attente"
 
@@ -1170,23 +1753,24 @@ msgstr "En attente de validation"
 msgid "Pending files"
 msgstr "Fichiers en attente"
 
-#: front/src/components/requests/Form.vue:26
-msgid "Pending requests"
-msgstr "Requêtes en attente"
+#: front/src/components/Sidebar.vue:212
+msgid "Pending follow requests"
+msgstr "Demandes d'abonnement en attente"
 
 #: front/src/components/manage/users/UsersTable.vue:42
-#: front/src/views/admin/users/UsersDetail.vue:68
+#: front/src/views/admin/moderation/AccountsDetail.vue:137
 msgid "Permissions"
 msgstr "Permissions"
 
 #: front/src/components/audio/PlayButton.vue:9
-#: src/components/library/Track.vue:30
+#: src/components/library/Track.vue:40
 msgid "Play"
 msgstr "Jouer"
 
 #: front/src/components/audio/album/Card.vue:50
 #: front/src/components/audio/artist/Card.vue:44
-#: src/components/library/Album.vue:28 front/src/views/playlists/Detail.vue:23
+#: src/components/library/Album.vue:28
+#: front/src/components/library/Album.vue:73 src/views/playlists/Detail.vue:23
 msgid "Play all"
 msgstr "Tout lire"
 
@@ -1195,13 +1779,36 @@ msgid "Play all albums"
 msgstr "Lire tous les albums"
 
 #: front/src/components/audio/PlayButton.vue:15
+#: front/src/components/audio/PlayButton.vue:65
 msgid "Play next"
 msgstr "Lire ensuite"
 
+#: front/src/components/ShortcutsModal.vue:67
+msgid "Play next track"
+msgstr "Jouer la piste suivante"
+
 #: front/src/components/audio/PlayButton.vue:16
+#: front/src/components/audio/PlayButton.vue:63
+#: front/src/components/audio/PlayButton.vue:70
 msgid "Play now"
 msgstr "Lire maintenant"
 
+#: front/src/components/ShortcutsModal.vue:63
+msgid "Play previous track"
+msgstr "Jouer la piste précédente"
+
+#: front/src/components/Sidebar.vue:211
+msgid "Play this track"
+msgstr "Jouer cette piste"
+
+#: front/src/components/audio/Player.vue:348
+msgid "Play track"
+msgstr "Jouer"
+
+#: front/src/views/playlists/Detail.vue:90
+msgid "Playlist"
+msgstr "Playlist"
+
 #: front/src/views/playlists/Detail.vue:12
 msgid "Playlist containing %{ count } track, by %{ username }"
 msgid_plural "Playlist containing %{ count } tracks, by %{ username }"
@@ -1229,8 +1836,8 @@ msgid "Playlist visibility"
 msgstr "Visibilité de la playlist"
 
 #: front/src/components/Sidebar.vue:71 src/components/library/Home.vue:16
-#: front/src/components/library/Library.vue:13 src/views/playlists/List.vue:104
-#: front/src/views/admin/Settings.vue:82
+#: front/src/components/library/Library.vue:13 src/views/admin/Settings.vue:83
+#: front/src/views/playlists/List.vue:106
 msgid "Playlists"
 msgstr "Playlists"
 
@@ -1248,12 +1855,29 @@ msgstr "Merci de vérifier que votre nom d'utilisateur et mot de passe sont corr
 
 #: front/src/components/auth/Settings.vue:46
 msgid "PNG, GIF or JPG. At most 2MB. Will be downscaled to 400x400px."
-msgstr "PNG, GIF ou JPG. 2Mo au plus. L'image sera réduite à 400×400 pixels."
+msgstr "PNG, GIF ou JPG. 2Mo maximum. L'image sera réduite à 400×400 pixels."
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:118
+msgid "Prevent account or domain from triggering notifications, except from followers."
+msgstr ""
+"Empêche le compte ou domaine de déclencher des notifications, sauf pour les "
+"abonnés."
+
+#: front/src/components/audio/EmbedWizard.vue:29
+msgid "Preview"
+msgstr "Aperçu"
+
+#: front/src/components/audio/Player.vue:347
+msgid "Previous track"
+msgstr "Piste précédente"
+
+#: front/src/views/content/remote/Card.vue:39
+msgid "Problem during scanning"
+msgstr "Problème lors de l'analyse"
 
 #: front/src/components/library/FileUpload.vue:58
-#, fuzzy
 msgid "Proceed"
-msgstr "Poursuivre"
+msgstr "Continuer"
 
 #: front/src/views/auth/EmailConfirm.vue:26
 #: front/src/views/auth/PasswordResetConfirm.vue:31
@@ -1262,8 +1886,10 @@ msgstr "Poursuivre vers la page de connexion"
 
 #: front/src/components/library/FileUpload.vue:17
 msgid "Processing"
-msgstr "En traitement"
+msgstr "En cours de traitement"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:188
+#: front/src/components/manage/moderation/DomainsTable.vue:168
 #: front/src/views/content/libraries/Quota.vue:36
 #: front/src/views/content/libraries/Quota.vue:39
 #: front/src/views/content/libraries/Quota.vue:62
@@ -1271,23 +1897,35 @@ msgstr "En traitement"
 #: front/src/views/content/libraries/Quota.vue:88
 #: front/src/views/content/libraries/Quota.vue:91
 msgid "Purge"
-msgstr "Nettoyer"
+msgstr "Supprimer"
 
 #: front/src/views/content/libraries/Quota.vue:89
 msgid "Purge errored files?"
-msgstr "Nettoyer les fichiers erronés ?"
+msgstr "Supprimer les fichiers erronés ?"
 
 #: front/src/views/content/libraries/Quota.vue:37
 msgid "Purge pending files?"
-msgstr "Nettoyer les fichiers en attente ?"
+msgstr "Supprimer les fichiers en attente ?"
 
 #: front/src/views/content/libraries/Quota.vue:63
 msgid "Purge skipped files?"
-msgstr "Nettoyer les fichiers oubliés ?"
+msgstr "Supprimer les fichiers oubliés ?"
 
 #: front/src/components/Sidebar.vue:20
 msgid "Queue"
-msgstr "Queue"
+msgstr "File d’attente"
+
+#: front/src/components/audio/Player.vue:282
+msgid "Queue shuffled!"
+msgstr "La file d’attente a été mélangée !"
+
+#: front/src/views/radios/Detail.vue:80
+msgid "Radio"
+msgstr "Radio"
+
+#: front/src/components/library/radios/Builder.vue:233
+msgid "Radio Builder"
+msgstr "Éditeur de radio"
 
 #: front/src/components/library/radios/Builder.vue:15
 msgid "Radio created"
@@ -1302,13 +1940,25 @@ msgid "Radio updated"
 msgstr "Radio mise à jour"
 
 #: front/src/components/library/Library.vue:10
-#: src/components/library/Radios.vue:142
+#: src/components/library/Radios.vue:141
 msgid "Radios"
 msgstr "Radios"
 
-#: front/src/views/instance/Timeline.vue:7
-msgid "Recent activity on this instance"
-msgstr "Activité récente sur cette instance"
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:39
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:25
+msgid "Reason"
+msgstr "Raison"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:222
+#: front/src/views/admin/moderation/DomainsDetail.vue:179
+msgid "Received library follows"
+msgstr "Suivis de bibliothèque reçus"
+
+#: front/src/components/manage/moderation/DomainsTable.vue:40
+#: front/src/components/mixins/Translations.vue:36
+#: front/src/components/mixins/Translations.vue:37
+msgid "Received messages"
+msgstr "Messages reçus"
 
 #: front/src/components/library/Home.vue:24
 msgid "Recently added"
@@ -1320,13 +1970,20 @@ msgstr "Récemment ajouté aux favoris"
 
 #: front/src/components/library/Home.vue:6
 msgid "Recently listened"
-msgstr "Écoutées récemment"
+msgstr "Écouté récemment"
 
-#: front/src/views/admin/users/UsersDetail.vue:103
 #: front/src/views/content/remote/Home.vue:15
 msgid "Refresh"
 msgstr "Rafraîchir"
 
+#: front/src/views/admin/moderation/DomainsDetail.vue:135
+msgid "Refresh node info"
+msgstr "Rafraîchir les informations du nœud"
+
+#: front/src/components/common/ActionTable.vue:272
+msgid "Refresh table content"
+msgstr "Rafraîchir le contenu de la table"
+
 #: front/src/components/auth/Profile.vue:12
 msgid "Registered since %{ date }"
 msgstr "Inscrit·e depuis le %{ date }"
@@ -1343,17 +2000,26 @@ msgstr "utilisateur·rice standard·e"
 msgid "Reject"
 msgstr "Rejeter"
 
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:32
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:123
+msgid "Reject media"
+msgstr "Rejeter le média"
+
 #: front/src/views/content/libraries/Detail.vue:43
 msgid "Rejected"
 msgstr "Rejeté"
 
+#: front/src/views/content/libraries/FilesTable.vue:234
+msgid "Relaunch import"
+msgstr "Relancer l'importation"
+
 #: front/src/views/content/remote/Home.vue:6
 msgid "Remote libraries"
 msgstr "Bibliothèques distantes"
 
 #: front/src/views/content/remote/Home.vue:7
 msgid "Remote libraries are owned by other users on the network. You can access them as long as they are public or you are granted access."
-msgstr ""
+msgstr "Les bibliothèques distantes appartiennent à d'autres utilisateurs du réseau. Vous pouvez y accéder tant qu'elles sont publiques ou qu'on vous en donne l'accès."
 
 #: front/src/components/library/radios/Filter.vue:59
 msgid "Remove"
@@ -1363,6 +2029,30 @@ msgstr "Retirer"
 msgid "Remove avatar"
 msgstr "Supprimer mon avatar"
 
+#: front/src/components/favorites/TrackFavoriteIcon.vue:26
+msgid "Remove from favorites"
+msgstr "Retirer des favoris"
+
+#: front/src/views/content/libraries/Quota.vue:38
+msgid "Removes uploaded but yet to be processed tracks completely, adding the corresponding data to your quota."
+msgstr ""
+"Les pistes importées qui n'ont pas encore été complètement traitées par le "
+"serveur seront supprimées complètement. Le quota correspondant vous sera "
+"restitué."
+
+#: front/src/views/content/libraries/Quota.vue:64
+msgid "Removes uploaded tracks skipped during the import processes completely, adding the corresponding data to your quota."
+msgstr ""
+"Les pistes téléversées mais ignorées pendant l'importation pour diverses "
+"raisons seront supprimées complètement. L'espace de stockage correspondant "
+"vous sera restitué."
+
+#: front/src/views/content/libraries/Quota.vue:90
+msgid "Removes uploaded tracks that could not be processed by the server completely, adding the corresponding data to your quota."
+msgstr ""
+"Les pistes téléversées mais pas encore complètement traitées pas le serveur "
+"seront supprimées. L'espace de stockage correspondant vous sera restitué."
+
 #: front/src/components/auth/SubsonicTokenForm.vue:34
 #: front/src/components/auth/SubsonicTokenForm.vue:37
 msgid "Request a new password"
@@ -1376,11 +2066,8 @@ msgstr "Demander un nouveau mot de passe pour l'API Subsonic ?"
 msgid "Request a password"
 msgstr "Demander un mot de passe"
 
-#: front/src/components/requests/Form.vue:20
-msgid "Request submitted!"
-msgstr "Requête envoyée"
-
 #: front/src/components/auth/Login.vue:34 src/views/auth/PasswordReset.vue:4
+#: front/src/views/auth/PasswordReset.vue:52
 msgid "Reset your password"
 msgstr "Réinitialiser votre mot de passe"
 
@@ -1390,30 +2077,52 @@ msgstr "Réinitialiser votre mot de passe"
 msgid "Results per page"
 msgstr "Résultats par page"
 
+#: front/src/views/auth/EmailConfirm.vue:17
+msgid "Return to login"
+msgstr "Retourner à la page de connexion"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:16
+msgid "Rule"
+msgstr "Règle"
+
 #: front/src/components/admin/SettingsGroup.vue:63
 #: front/src/components/library/radios/Builder.vue:33
 msgid "Save"
 msgstr "Enregistrer"
 
+#: front/src/views/content/remote/Card.vue:165
+msgid "Scan launched"
+msgstr "Scan démarré"
+
+#: front/src/views/content/remote/Card.vue:63
+msgid "Scan now"
+msgstr "Analyser maintenant"
+
+#: front/src/views/content/remote/Card.vue:166
+msgid "Scan skipped (previous scan is too recent)"
+msgstr "Scan sauté (le scan précédent est trop récent)"
+
 #: front/src/views/content/remote/Card.vue:31
-msgid "Scan pending"
-msgstr "En attente d'analyse"
+msgid "Scan waiting"
+msgstr "Analyse en attente"
 
 #: front/src/views/content/remote/Card.vue:43
-msgid "Scanned successfully"
-msgstr "Scanné avec succès"
+msgid "Scanned"
+msgstr "Analyse démarrée"
 
 #: front/src/views/content/remote/Card.vue:47
 msgid "Scanned with errors"
 msgstr "Scanné avec des erreurs"
 
 #: front/src/views/content/remote/Card.vue:35
-msgid "Scanning... (%{ progress }%)"
-msgstr "Balayage... (%{ progress }%)"
+msgid "Scanning… (%{ progress }%)"
+msgstr "Analyse en cours… (%{ progress }%)"
 
 #: front/src/components/library/Artists.vue:10
 #: src/components/library/Radios.vue:29
 #: front/src/components/manage/library/FilesTable.vue:5
+#: front/src/components/manage/moderation/AccountsTable.vue:5
+#: front/src/components/manage/moderation/DomainsTable.vue:5
 #: front/src/components/manage/users/InvitationsTable.vue:5
 #: front/src/components/manage/users/UsersTable.vue:5
 #: front/src/views/content/libraries/FilesTable.vue:5
@@ -1423,22 +2132,57 @@ msgstr "Rechercher"
 
 #: front/src/views/content/remote/ScanForm.vue:9
 msgid "Search a remote library"
-msgstr "Rechercher dans une bibliothèque distante"
+msgstr "Rechercher une bibliothèque distante"
+
+#: front/src/components/manage/moderation/AccountsTable.vue:171
+msgid "Search by domain, username, bio..."
+msgstr "Rechercher par domaine, nom d'utilisateur·trice, bio…"
+
+#: front/src/components/manage/moderation/DomainsTable.vue:151
+msgid "Search by name..."
+msgstr "Rechercher par nom…"
+
+#: front/src/views/content/libraries/FilesTable.vue:201
+msgid "Search by title, artist, album…"
+msgstr "Rechercher par titre, artiste, album…"
+
+#: front/src/components/manage/library/FilesTable.vue:176
+msgid "Search by title, artist, domain…"
+msgstr "Rechercher par titre, artiste, domaine…"
+
+#: front/src/components/manage/users/InvitationsTable.vue:153
+msgid "Search by username, e-mail address, code…"
+msgstr "Rechercher par nom d'utilisateur·rice, courriel, code…"
+
+#: front/src/components/manage/users/UsersTable.vue:163
+msgid "Search by username, e-mail address, name…"
+msgstr "Rechercher par nom d'utilisateur·rice, courriel, nom…"
+
+#: front/src/components/audio/SearchBar.vue:20
+msgid "Search for artists, albums, tracks…"
+msgstr "Rechercher des artistes, albums, pistes…"
 
 #: front/src/components/audio/Search.vue:2
 msgid "Search for some music"
 msgstr "Rechercher de la musique"
 
-#: front/src/components/library/Track.vue:116
+#: front/src/components/library/Track.vue:162
 msgid "Search on lyrics.wikia.com"
 msgstr "Rechercher sur lyrics.wikia.com"
 
 #: front/src/components/library/Album.vue:33
 #: src/components/library/Artist.vue:31
-#: front/src/components/library/Track.vue:40
+#: front/src/components/library/Track.vue:47
 msgid "Search on Wikipedia"
 msgstr "Rechercher sur Wikipédia"
 
+#: front/src/components/library/Library.vue:32
+#: src/views/admin/library/Base.vue:17
+#: front/src/views/admin/moderation/Base.vue:22
+#: src/views/admin/users/Base.vue:21 front/src/views/content/Base.vue:19
+msgid "Secondary menu"
+msgstr "Menu secondaire"
+
 #: front/src/views/admin/Settings.vue:15
 msgid "Sections"
 msgstr "Sections"
@@ -1447,19 +2191,20 @@ msgstr "Sections"
 msgid "Select a filter"
 msgstr "Sélectionner un filtre"
 
-#: front/src/components/common/ActionTable.vue:64
+#: front/src/components/common/ActionTable.vue:77
+#, fuzzy
 msgid "Select all %{ total } elements"
 msgid_plural "Select all %{ total } elements"
 msgstr[0] "Selectionner l'ensemble des %{ total } élément"
 msgstr[1] "Selectionner l'ensemble des %{ total } éléments"
 
-#: front/src/components/common/ActionTable.vue:73
+#: front/src/components/common/ActionTable.vue:86
 msgid "Select only current page"
 msgstr "Sélectionner seulement la page actuelle"
 
-#: front/src/components/Sidebar.vue:43 src/components/Sidebar.vue:88
-#: front/src/components/manage/users/UsersTable.vue:185
-#: front/src/views/admin/users/UsersDetail.vue:189
+#: front/src/components/Sidebar.vue:43 src/components/Sidebar.vue:85
+#: front/src/components/manage/users/UsersTable.vue:181
+#: front/src/views/admin/moderation/AccountsDetail.vue:472
 msgid "Settings"
 msgstr "Paramètres"
 
@@ -1476,8 +2221,10 @@ msgid "Share link"
 msgstr "Lien de partage"
 
 #: front/src/views/content/libraries/Detail.vue:15
-msgid "Share this link with other users so they can request an access to your library."
-msgstr "Partage ce lien avec les autres utilisateurs afin qu'ils aient accès a cette bibliothèque."
+msgid "Share this link with other users so they can request access to your library."
+msgstr ""
+"Partagez ce lien avec d'autres utilisateurs afin qu'ils puissent demander "
+"l'accès à votre bibliothèque."
 
 #: front/src/views/content/libraries/Detail.vue:14
 #: front/src/views/content/remote/Card.vue:73
@@ -1485,11 +2232,10 @@ msgid "Sharing link"
 msgstr "Lien de partage"
 
 #: front/src/components/audio/album/Card.vue:40
-#, fuzzy
 msgid "Show %{ count } more track"
 msgid_plural "Show %{ count } more tracks"
-msgstr[0] "%{ count } piste"
-msgstr[1] "%{ count } pistes"
+msgstr[0] "Afficher %{ count } autre piste"
+msgstr[1] "Afficher %{ count } autres pistes"
 
 #: front/src/components/audio/artist/Card.vue:30
 msgid "Show 1 more album"
@@ -1497,32 +2243,70 @@ msgid_plural "Show %{ count } more albums"
 msgstr[0] "Montrer 1 album supplémentaire"
 msgstr[1] "Montrer %{ count } albums supplémentaires"
 
+#: front/src/components/ShortcutsModal.vue:42
+msgid "Show available keyboard shortcuts"
+msgstr "Montrer les raccourcis clavier disponibles"
+
 #: front/src/views/Notifications.vue:10
 msgid "Show read notifications"
 msgstr "Afficher les notifications lues"
 
+#: front/src/components/forms/PasswordInput.vue:25
+msgid "Show/hide password"
+msgstr "Afficher/masquer le mot de passe"
+
 #: front/src/components/manage/library/FilesTable.vue:97
+#: front/src/components/manage/moderation/AccountsTable.vue:88
+#: front/src/components/manage/moderation/DomainsTable.vue:74
 #: front/src/components/manage/users/InvitationsTable.vue:76
 #: front/src/components/manage/users/UsersTable.vue:87
-#: front/src/views/content/libraries/FilesTable.vue:111
+#: front/src/views/content/libraries/FilesTable.vue:114
 msgid "Showing results %{ start }-%{ end } on %{ total }"
 msgstr "Affichage des résultats %{ start }-%{ end } sur %{ total }"
 
+#: front/src/components/ShortcutsModal.vue:83
+msgid "Shuffle queue"
+msgstr "Mélanger la file d'attente"
+
+#: front/src/components/audio/Player.vue:362
+msgid "Shuffle your queue"
+msgstr "Mélanger votre file d’attente"
+
+#: front/src/components/auth/Signup.vue:95
+msgid "Sign Up"
+msgstr "Inscription"
+
 #: front/src/components/manage/users/UsersTable.vue:40
-#: front/src/views/admin/users/UsersDetail.vue:37
 msgid "Sign-up"
 msgstr "Inscription"
 
-#: front/src/components/library/FileUpload.vue:84
-#: src/components/library/Track.vue:69
+#: front/src/components/mixins/Translations.vue:31
+#: front/src/views/admin/moderation/AccountsDetail.vue:176
+#: front/src/components/mixins/Translations.vue:32
+msgid "Sign-up date"
+msgstr "Date d'inscription"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:24
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:115
+msgid "Silence activity"
+msgstr "Rendre l'activité silencieuse"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:28
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:119
+msgid "Silence notifications"
+msgstr "Rendre les notifications silencieuses"
+
+#: front/src/components/library/FileUpload.vue:85
+#: front/src/components/library/Track.vue:120
 #: front/src/components/manage/library/FilesTable.vue:44
-#: front/src/views/content/libraries/FilesTable.vue:57
-#: front/src/components/mixins/Translations.vue:27
+#: front/src/components/mixins/Translations.vue:28
+#: front/src/views/content/libraries/FilesTable.vue:60
+#: front/src/components/mixins/Translations.vue:29
 msgid "Size"
 msgstr "Taille"
 
 #: front/src/views/content/libraries/FilesTable.vue:15
-#: front/src/views/content/libraries/FilesTable.vue:229
+#: front/src/views/content/libraries/FilesTable.vue:204
 msgid "Skipped"
 msgstr "Ignoré"
 
@@ -1530,26 +2314,14 @@ msgstr "Ignoré"
 msgid "Skipped files"
 msgstr "Fichiers ignorés"
 
-#: front/src/components/requests/Form.vue:3
-msgid "Something's missing in the library? Let us know what you would like to listen!"
-msgstr "Quelque chose manque dans la bibliothèque ? Dîtes nous ce que vous voulez écouter !"
-
-#: front/src/components/audio/Search.vue:25
-msgid "Sorry, we did not found any album matching your query"
-msgstr "Désolé, nous n'avons trouvé aucun album correspondant à votre recherche"
-
-#: front/src/components/audio/Search.vue:16
-msgid "Sorry, we did not found any artist matching your query"
-msgstr "Désolé, nous n'avons trouver aucun·a artiste correspondant à votre recherche"
+#: front/src/views/admin/moderation/DomainsDetail.vue:97
+msgid "Software"
+msgstr "Logiciel"
 
-#: front/src/App.vue:40
+#: front/src/components/Footer.vue:49
 msgid "Source code"
 msgstr "Code source"
 
-#: front/src/App.vue:39
-msgid "Source code (%{version})"
-msgstr "Code source (%{version})"
-
 #: front/src/components/auth/Profile.vue:23
 #: front/src/components/manage/users/UsersTable.vue:70
 msgid "Staff member"
@@ -1559,10 +2331,27 @@ msgstr "Membre de l'équipe"
 msgid "Start"
 msgstr "Démarrer"
 
-#: front/src/components/library/FileUpload.vue:85
+#: front/src/views/admin/Settings.vue:86
+msgid "Statistics"
+msgstr "Statistiques"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:454
+msgid "Statistics are computed from known activity and content on your instance, and do not reflect general activity for this account"
+msgstr ""
+"Les statistiques sont calculées depuis les activités connues et le contenu "
+"sur votre instance, et ne reflètent pas l'activité générale de ce compte"
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:358
+msgid "Statistics are computed from known activity and content on your instance, and do not reflect general activity for this domain"
+msgstr ""
+"Les statistiques sont calculées depuis les activités connues et le contenu "
+"sur votre instance, et ne reflètent pas l'activité générale de ce domaine"
+
+#: front/src/components/library/FileUpload.vue:86
 #: front/src/components/manage/users/InvitationsTable.vue:17
 #: front/src/components/manage/users/InvitationsTable.vue:39
 #: front/src/components/manage/users/UsersTable.vue:43
+#: front/src/views/admin/moderation/DomainsDetail.vue:123
 #: front/src/views/content/libraries/Detail.vue:28
 msgid "Status"
 msgstr "Statut"
@@ -1571,53 +2360,67 @@ msgstr "Statut"
 msgid "Stop"
 msgstr "Arrêter"
 
-#: front/src/components/Sidebar.vue:150
+#: front/src/components/Sidebar.vue:161
 msgid "Stop radio"
 msgstr "Arrêter la radio"
 
-#: front/src/App.vue:11 src/components/requests/Form.vue:17
+#: front/src/App.vue:22
 msgid "Submit"
 msgstr "Valider"
 
-#: front/src/components/requests/Form.vue:22
-msgid "Submit another request"
-msgstr "Envoyer une nouvelle requête"
+#: front/src/views/admin/Settings.vue:85
+msgid "Subsonic"
+msgstr "Subsonic"
 
 #: front/src/components/auth/SubsonicTokenForm.vue:2
 msgid "Subsonic API password"
 msgstr "Mot de passe de l'API Subsonic"
 
-#: front/src/App.vue:13
+#: front/src/App.vue:26
 msgid "Suggested choices"
 msgstr "Suggestions"
 
 #: front/src/components/library/FileUpload.vue:3
 msgid "Summary"
-msgstr ""
+msgstr "Résumé"
+
+#: front/src/components/Footer.vue:39
+msgid "Support forum"
+msgstr "Forum d'aide"
+
+#: front/src/components/library/FileUpload.vue:78
+msgid "Supported extensions: %{ extensions }"
+msgstr "Extensions supportées: %{ extensions }"
 
 #: front/src/components/playlists/Editor.vue:9
-msgid "Syncing changes to server..."
-msgstr "Synchronisation des changements avec le serveur..."
+msgid "Syncing changes to server…"
+msgstr "Synchronisation des changements avec le serveur…"
 
 #: front/src/components/common/CopyInput.vue:3
 msgid "Text copied to clipboard!"
-msgstr "Texte copier dans le presse-papier!"
+msgstr "La texte a été copié dans le presse-papier !"
 
 #: front/src/components/Home.vue:26
 msgid "That's simple: we loved Grooveshark and we want to build something even better."
 msgstr "C'est simple : nous adorions Grooveshark et nous voulions construire quelque chose d'encore mieux."
 
-#: front/src/App.vue:58
+#: front/src/components/Footer.vue:53
 msgid "The funkwhale logo was kindly designed and provided by Francis Gading."
 msgstr "Le logo de Funkwhale a été généreusement dessiné et fourni par Francis Gading."
 
 #: front/src/views/content/libraries/Form.vue:34
-msgid "The library and all its tracks will be deleted. This action is irreversible."
-msgstr "Cette bibliothèque et toutes ces pistes seront supprimée. Cette action est irréversible."
+msgid "The library and all its tracks will be deleted. This can not be undone."
+msgstr ""
+"La bibliothèque et toutes ses pistes seront supprimées. Cette action est "
+"irréversible."
 
 #: front/src/components/library/FileUpload.vue:39
 msgid "The music files you are uploading are tagged properly:"
-msgstr ""
+msgstr "Les fichiers musicaux que vous téléversez sont correctement tagués :"
+
+#: front/src/components/audio/Player.vue:67
+msgid "The next track will play automatically in a few seconds..."
+msgstr "La piste suivante va se jouer automatiquement dans quelques secondes..."
 
 #: front/src/components/Home.vue:121
 msgid "The plaform is free and open-source, you can install it and modify it without worries"
@@ -1629,35 +2432,77 @@ msgstr "L'API Subsonic n'est pas disponible sur cette instance Funkwhale."
 
 #: front/src/components/library/FileUpload.vue:43
 msgid "The uploaded music files are in OGG, Flac or MP3 format"
+msgstr "Les fichiers musicaux uploadés sont au format OGG, Flac ou MP3"
+
+#: front/src/views/content/Home.vue:4
+msgid "There are various ways to grab new content and make it available here."
 msgstr ""
+"Il y a différentes manières de récupérer du nouveau contenu et de le rendre "
+"disponible ici."
 
-#: front/src/components/library/Album.vue:52
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:66
+msgid "This action is irreversible."
+msgstr "Cette action est irréversible."
+
+#: front/src/components/library/Album.vue:91
 msgid "This album is present in the following libraries:"
-msgstr ""
+msgstr "Cet album est présent dans les bibliothèques suivantes :"
 
 #: front/src/components/library/Artist.vue:63
 msgid "This artist is present in the following libraries:"
-msgstr ""
+msgstr "Cet⋅te artiste est présent⋅e dans les bibliothèques suivantes :"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:55
+#: front/src/views/admin/moderation/DomainsDetail.vue:48
+msgid "This domain is subject to specific moderation rules"
+msgstr "Ce domaine est sujet à des règles de modération spécifiques"
 
 #: front/src/views/content/Home.vue:9
-msgid "This instance offers up to %{quota} of storage space to every user."
+msgid "This instance offers up to %{quota} of storage space for every user."
 msgstr ""
+"Cette instance offre jusque %{quota} d'espace disque à chaque utilisateur."
 
 #: front/src/components/auth/Profile.vue:16
 msgid "This is you!"
 msgstr "C'est vous !"
 
-#: front/src/components/common/ActionTable.vue:38
-msgid "This may affect a lot of elements, please double check this is really what you want."
-msgstr "Cette opération peut affecter de nombreux éléments, merci de vérifier que c'est bien ce que vous souhaitez."
+#: front/src/views/content/libraries/Form.vue:71
+msgid "This library contains my personal music, I hope you like it."
+msgstr ""
+"Cette bibliothèque contient ma musique personnelle, j'espère que vous "
+"l'aimerez."
+
+#: front/src/views/content/remote/Card.vue:131
+msgid "This library is private and your approval from its owner is needed to access its content"
+msgstr ""
+"Cette bibliothèque est privée et son propriétaire doit vous approuver pour "
+"accéder à son contenu"
+
+#: front/src/views/content/remote/Card.vue:132
+msgid "This library is public and you can access its content freely"
+msgstr ""
+"Cette bibliothèque est publique et vous pouvez accéder à son contenu "
+"librement"
+
+#: front/src/components/common/ActionTable.vue:45
+msgid "This may affect a lot of elements or have irreversible consequences, please double check this is really what you want."
+msgstr ""
+"Cela peut affecter de nombreux éléments ou avoir des conséquences "
+"irréversibles, merci de vérifier que c'est bien ce que vous souhaitez."
 
 #: front/src/components/library/FileUpload.vue:52
 msgid "This reference will be used to group imported files together."
+msgstr "Cette référence sera utilisée pour regrouper les fichiers importés."
+
+#: front/src/components/audio/PlayButton.vue:73
+msgid "This track is not available in any library you have access to"
 msgstr ""
+"Cette piste n'est pas accessible dans les bibliothèques auxquelles vous avez "
+"accès"
 
-#: front/src/components/library/Track.vue:125
+#: front/src/components/library/Track.vue:171
 msgid "This track is present in the following libraries:"
-msgstr ""
+msgstr "Cette piste est présente dans les bibliothèques suivantes :"
 
 #: front/src/views/playlists/Detail.vue:37
 msgid "This will completely delete this playlist and cannot be undone."
@@ -1671,165 +2516,11 @@ msgstr "Cela supprimera définitivement cette radio et ne pourra pas être annul
 msgid "This will completely disable access to the Subsonic API using from account."
 msgstr "Cela désactivera complétement l'accès à l'API Subsonic depuis votre compte."
 
-#: front/src/App.vue:162 src/components/About.vue:55
-#: src/components/Home.vue:154 front/src/components/PageNotFound.vue:33
-#: src/components/Sidebar.vue:203 front/src/components/Sidebar.vue:204
-#: src/components/audio/PlayButton.vue:54
-#: front/src/components/audio/PlayButton.vue:55
-#: front/src/components/audio/PlayButton.vue:56
-#: front/src/components/audio/PlayButton.vue:61
-#: front/src/components/audio/PlayButton.vue:64
-#: front/src/components/audio/PlayButton.vue:158
-#: src/components/audio/Player.vue:216
-#: front/src/components/audio/Player.vue:273
-#: src/components/audio/Player.vue:274
-#: front/src/components/audio/Player.vue:275
-#: src/components/audio/Player.vue:276
-#: front/src/components/audio/Player.vue:277
-#: src/components/audio/Player.vue:278
-#: front/src/components/audio/Player.vue:279
-#: src/components/audio/Player.vue:280
-#: front/src/components/audio/Player.vue:281
-#: src/components/audio/Player.vue:282
-#: front/src/components/audio/Player.vue:283 src/components/audio/Search.vue:65
-#: front/src/components/audio/SearchBar.vue:20
-#: src/components/audio/SearchBar.vue:25
-#: front/src/components/audio/SearchBar.vue:26
-#: src/components/audio/SearchBar.vue:27 front/src/components/auth/Login.vue:77
-#: src/components/auth/Login.vue:78 front/src/components/auth/Logout.vue:20
-#: src/components/auth/Profile.vue:47
-#: front/src/components/auth/Settings.vue:249 src/components/auth/Signup.vue:95
-#: front/src/components/auth/Signup.vue:96 src/components/auth/Signup.vue:97
-#: front/src/components/auth/Signup.vue:98
-#: front/src/components/auth/SubsonicTokenForm.vue:95
-#: front/src/components/auth/SubsonicTokenForm.vue:111
-#: front/src/components/favorites/List.vue:110
-#: front/src/components/favorites/TrackFavoriteIcon.vue:19
-#: front/src/components/favorites/TrackFavoriteIcon.vue:21
-#: front/src/components/forms/PasswordInput.vue:25
-#: front/src/components/library/Album.vue:101
-#: src/components/library/Artist.vue:129
-#: front/src/components/library/Artists.vue:119
-#: front/src/components/library/Artists.vue:120
-#: front/src/components/library/FileUpload.vue:238
-#: front/src/components/library/FileUpload.vue:239
-#: front/src/components/library/FileUpload.vue:240
-#: front/src/components/library/FileUpload.vue:241
-#: src/components/library/Home.vue:65
-#: front/src/components/library/Radios.vue:141
-#: src/components/library/Radios.vue:142
-#: front/src/components/library/Track.vue:195
-#: front/src/components/library/radios/Builder.vue:233
-#: front/src/components/library/radios/Builder.vue:235
-#: front/src/components/library/radios/Builder.vue:236
-#: front/src/components/manage/library/FilesTable.vue:176
-#: front/src/components/manage/library/FilesTable.vue:190
-#: front/src/components/manage/users/InvitationForm.vue:58
-#: front/src/components/manage/users/InvitationsTable.vue:153
-#: front/src/components/manage/users/InvitationsTable.vue:167
-#: front/src/components/manage/users/UsersTable.vue:163
-#: front/src/components/manage/users/UsersTable.vue:173
-#: front/src/components/manage/users/UsersTable.vue:177
-#: front/src/components/manage/users/UsersTable.vue:181
-#: front/src/components/manage/users/UsersTable.vue:185
-#: front/src/components/metadata/ArtistCard.vue:49
-#: front/src/components/metadata/ReleaseCard.vue:53
-#: front/src/components/metadata/Search.vue:114
-#: front/src/components/metadata/Search.vue:130
-#: front/src/components/metadata/Search.vue:134
-#: front/src/components/metadata/Search.vue:138
-#: front/src/components/mixins/Translations.vue:7
-#: front/src/components/mixins/Translations.vue:8
-#: front/src/components/mixins/Translations.vue:10
-#: front/src/components/mixins/Translations.vue:11
-#: front/src/components/mixins/Translations.vue:16
-#: front/src/components/mixins/Translations.vue:17
-#: front/src/components/mixins/Translations.vue:18
-#: front/src/components/mixins/Translations.vue:19
-#: front/src/components/mixins/Translations.vue:20
-#: front/src/components/mixins/Translations.vue:21
-#: front/src/components/mixins/Translations.vue:22
-#: front/src/components/mixins/Translations.vue:23
-#: front/src/components/mixins/Translations.vue:24
-#: front/src/components/mixins/Translations.vue:25
-#: front/src/components/mixins/Translations.vue:26
-#: front/src/components/mixins/Translations.vue:27
-#: front/src/components/mixins/Translations.vue:28
-#: front/src/components/mixins/Translations.vue:29
-#: front/src/components/mixins/Translations.vue:30
-#: front/src/components/mixins/Translations.vue:31
-#: front/src/components/notifications/NotificationRow.vue:39
-#: front/src/components/notifications/NotificationRow.vue:40
-#: front/src/components/notifications/NotificationRow.vue:44
-#: front/src/components/notifications/NotificationRow.vue:45
-#: front/src/components/notifications/NotificationRow.vue:62
-#: front/src/components/playlists/Editor.vue:163
-#: src/components/playlists/Form.vue:74
-#: front/src/components/playlists/Form.vue:81
-#: src/components/playlists/Form.vue:85
-#: front/src/components/playlists/Form.vue:89
-#: front/src/components/playlists/PlaylistModal.vue:116
-#: front/src/components/playlists/TrackPlaylistIcon.vue:32
-#: front/src/components/requests/Form.vue:73
-#: src/components/requests/Form.vue:74
-#: front/src/components/requests/Form.vue:75 src/views/Notifications.vue:74
-#: front/src/views/admin/Settings.vue:75 src/views/admin/Settings.vue:80
-#: front/src/views/admin/Settings.vue:81 src/views/admin/Settings.vue:82
-#: front/src/views/admin/Settings.vue:83 src/views/admin/Settings.vue:84
-#: front/src/views/admin/Settings.vue:85 src/views/admin/Settings.vue:86
-#: front/src/views/admin/library/Base.vue:16
-#: src/views/admin/library/FilesList.vue:21
-#: front/src/views/admin/users/Base.vue:20
-#: front/src/views/admin/users/InvitationsList.vue:24
-#: front/src/views/admin/users/UsersDetail.vue:169
-#: front/src/views/admin/users/UsersDetail.vue:170
-#: front/src/views/admin/users/UsersDetail.vue:177
-#: front/src/views/admin/users/UsersDetail.vue:181
-#: front/src/views/admin/users/UsersDetail.vue:185
-#: front/src/views/admin/users/UsersDetail.vue:189
-#: front/src/views/admin/users/UsersList.vue:21
-#: src/views/auth/EmailConfirm.vue:51 front/src/views/auth/PasswordReset.vue:52
-#: src/views/auth/PasswordReset.vue:53
-#: front/src/views/auth/PasswordResetConfirm.vue:62
-#: src/views/content/Base.vue:19 front/src/views/content/Home.vue:35
-#: src/views/content/libraries/Card.vue:58
-#: front/src/views/content/libraries/Card.vue:59
-#: front/src/views/content/libraries/Card.vue:60
-#: front/src/views/content/libraries/Card.vue:61
-#: front/src/views/content/libraries/DetailArea.vue:24
-#: front/src/views/content/libraries/FilesTable.vue:226
-#: front/src/views/content/libraries/FilesTable.vue:229
-#: front/src/views/content/libraries/FilesTable.vue:230
-#: front/src/views/content/libraries/FilesTable.vue:233
-#: front/src/views/content/libraries/FilesTable.vue:234
-#: front/src/views/content/libraries/FilesTable.vue:237
-#: front/src/views/content/libraries/FilesTable.vue:238
-#: front/src/views/content/libraries/FilesTable.vue:241
-#: front/src/views/content/libraries/FilesTable.vue:242
-#: front/src/views/content/libraries/FilesTable.vue:258
-#: front/src/views/content/libraries/FilesTable.vue:259
-#: front/src/views/content/libraries/Form.vue:70
-#: front/src/views/content/libraries/Form.vue:71
-#: front/src/views/content/libraries/Form.vue:72
-#: front/src/views/content/libraries/Form.vue:73
-#: front/src/views/content/libraries/Form.vue:74
-#: front/src/views/content/libraries/Form.vue:106
-#: front/src/views/content/libraries/Form.vue:109
-#: front/src/views/content/libraries/Form.vue:129
-#: front/src/views/content/remote/Card.vue:131
-#: src/views/content/remote/Card.vue:132
-#: front/src/views/content/remote/Card.vue:165
-#: src/views/content/remote/Card.vue:166
-#: front/src/views/content/remote/ScanForm.vue:48
-#: src/views/instance/Timeline.vue:57 front/src/views/playlists/Detail.vue:90
-#: src/views/playlists/List.vue:104 front/src/views/playlists/List.vue:105
-#: src/views/radios/Detail.vue:80
+#: front/src/App.vue:129 src/components/Footer.vue:72
 msgid "This will erase your local data and disconnect you, do you want to continue?"
-msgid_plural "%{ count } tracks were added to your queue"
-msgstr[0] ""
-"Cela effacera vos données locales et vous déconnectera. Voulez-vous "
+msgstr ""
+"Cela effacera vos données locales et vous déconnectera, voulez-vous "
 "continuer ?"
-msgstr[1] "%{ count } les pistes ont été ajoutées à votre file d'attente"
 
 #: front/src/components/auth/SubsonicTokenForm.vue:36
 msgid "This will log you out from existing devices that use the current password."
@@ -1839,26 +2530,42 @@ msgstr "Cela vous déconnectera sur l'ensemble de vos appareils utilisant ce mot
 msgid "This will remove all tracks from this playlist and cannot be undone."
 msgstr "Cela supprimera toutes les pistes de la playlist et ne pourra pas être annulé."
 
-#: front/src/views/content/libraries/Quota.vue:90
-msgid "This will remove tracks that were uploaded but failed to be process by the server. This will remove those files completely and you will regain the corresponding quota."
-msgstr ""
-
-#: front/src/views/content/libraries/Quota.vue:38
-msgid "This will remove tracks that were uploaded but not processed yet. This will remove those files completely and you will regain the corresponding quota."
-msgstr ""
-
-#: front/src/views/content/libraries/Quota.vue:64
-msgid "This will remove tracks that were uploaded but skipped during import processes for various reasons. This will remove those files completely and you will regain the corresponding quota."
-msgstr ""
-
 #: front/src/components/audio/track/Table.vue:6
 #: front/src/components/manage/library/FilesTable.vue:37
-#: front/src/views/content/libraries/FilesTable.vue:51
-#: front/src/components/mixins/Translations.vue:26
+#: front/src/components/mixins/Translations.vue:27
+#: front/src/views/content/libraries/FilesTable.vue:54
+#: front/src/components/mixins/Translations.vue:28
 msgid "Title"
 msgstr "Titre"
 
-#: front/src/components/library/Track.vue:53
+#: front/src/components/ShortcutsModal.vue:79
+msgid "Toggle queue looping"
+msgstr "Basculer la boucle de file d'attente"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:288
+#: front/src/views/admin/moderation/DomainsDetail.vue:225
+msgid "Total size"
+msgstr "Taille totale"
+
+#: front/src/views/content/libraries/Card.vue:61
+msgid "Total size of the files in this library"
+msgstr "Taille totale des fichiers de cette bibliothèque"
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:113
+msgid "Total users"
+msgstr "Nombre total d'utilisateurs"
+
+#: front/src/components/audio/SearchBar.vue:27
+#: src/components/library/Track.vue:262
+#: front/src/components/metadata/Search.vue:138
+msgid "Track"
+msgstr "Piste"
+
+#: front/src/views/content/libraries/FilesTable.vue:205
+msgid "Track already present in one of your libraries"
+msgstr "La piste est déjà présente dans l'une de vos bibliothèques"
+
+#: front/src/components/library/Track.vue:85
 msgid "Track information"
 msgstr "Information de la piste"
 
@@ -1866,14 +2573,25 @@ msgstr "Information de la piste"
 msgid "Track matching filter"
 msgstr "Piste correspondant au filtre"
 
+#: front/src/components/mixins/Translations.vue:23
+#: front/src/components/mixins/Translations.vue:24
+msgid "Track name"
+msgstr "Nom de la piste"
+
+#: front/src/views/content/libraries/FilesTable.vue:209
+msgid "Track uploaded, but not processed by the server yet"
+msgstr "La piste est importée mais n'a pas encore été traitée par le serveur"
+
 #: front/src/components/instance/Stats.vue:54
 msgid "tracks"
 msgstr "pistes"
 
-#: front/src/components/library/Album.vue:43
+#: front/src/components/library/Album.vue:81
 #: front/src/components/playlists/PlaylistModal.vue:33
-#: src/views/content/Base.vue:8 front/src/views/content/libraries/Detail.vue:8
-#: src/views/playlists/Detail.vue:50 front/src/views/radios/Detail.vue:34
+#: front/src/views/admin/moderation/AccountsDetail.vue:329
+#: front/src/views/admin/moderation/DomainsDetail.vue:265
+#: front/src/views/content/Base.vue:8 src/views/content/libraries/Detail.vue:8
+#: front/src/views/playlists/Detail.vue:50 src/views/radios/Detail.vue:34
 msgid "Tracks"
 msgstr "Pistes"
 
@@ -1889,11 +2607,17 @@ msgstr "Pistes en favoris"
 msgid "tracks listened"
 msgstr "pistes écoutées"
 
-#: front/src/components/library/Track.vue:91
+#: front/src/components/library/Track.vue:138
 #: front/src/components/manage/library/FilesTable.vue:41
+#: front/src/views/admin/moderation/AccountsDetail.vue:151
 msgid "Type"
 msgstr "Type"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:44
+#: front/src/components/manage/moderation/DomainsTable.vue:42
+msgid "Under moderation rule"
+msgstr "Sous règle de modération"
+
 #: front/src/views/content/remote/Card.vue:100
 #: src/views/content/remote/Card.vue:105
 msgid "Unfollow"
@@ -1911,6 +2635,15 @@ msgstr "Malheureusement, les gestionnaires de cette instance n'ont pas encore pr
 msgid "Unlimited music"
 msgstr "Musique illimitée"
 
+#: front/src/components/audio/Player.vue:351
+msgid "Unmute"
+msgstr "Réactiver le son"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:45
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:57
+msgid "Update"
+msgstr "Mettre à jour"
+
 #: front/src/components/auth/Settings.vue:50
 msgid "Update avatar"
 msgstr "Mettre à jour l'avatar"
@@ -1919,6 +2652,10 @@ msgstr "Mettre à jour l'avatar"
 msgid "Update library"
 msgstr "Mettre à jour la bibliothèque"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:3
+msgid "Update moderation rule"
+msgstr "Mettre à jour les règles de modération"
+
 #: front/src/components/playlists/Form.vue:33
 msgid "Update playlist"
 msgstr "Mettre à jour la playlist"
@@ -1932,9 +2669,7 @@ msgid "Update your password"
 msgstr "Mettre à jour votre mot de passe"
 
 #: front/src/views/content/libraries/Card.vue:44
-#: front/src/components/manage/users/UsersTable.vue:173
 #: front/src/views/content/libraries/DetailArea.vue:24
-#: front/src/views/admin/users/UsersDetail.vue:177
 msgid "Upload"
 msgstr "Envoi"
 
@@ -1946,41 +2681,72 @@ msgstr "Téléverser un nouvel avatar"
 msgid "Upload audio content"
 msgstr "Téléverser du contenu audio"
 
-#: front/src/views/content/libraries/FilesTable.vue:54
+#: front/src/views/content/libraries/FilesTable.vue:57
 msgid "Upload date"
 msgstr "Date d'envoi"
 
+#: front/src/components/library/FileUpload.vue:219
+#: front/src/components/library/FileUpload.vue:220
+msgid "Upload denied, ensure the file is not too big and that you have not reached your quota"
+msgstr ""
+"Import refusée, assurez-vous que le fichier n'est pas trop gros et que vous "
+"n'avez pas atteint votre quota"
+
 #: front/src/views/content/Home.vue:7
-msgid "Upload music files (mp3, ogg, flac, etc.) from your personal library directly from your browser to enjoy them here."
+msgid "Upload music files (MP3, OGG, FLAC, etc.) from your personal library directly from your browser to enjoy them here."
 msgstr ""
+"Importez des fichiers musicaux (MP3, OGG, Flac, etc.) depuis votre "
+"bibliothèque personnelle directement depuis votre navigateur pour en "
+"profiter ici."
 
 #: front/src/components/library/FileUpload.vue:31
 msgid "Upload new tracks"
 msgstr "Téléverser de nouveaux morceaux"
 
-#: front/src/views/admin/users/UsersDetail.vue:82
+#: front/src/views/admin/moderation/AccountsDetail.vue:269
 msgid "Upload quota"
-msgstr "Quota d'envoi"
+msgstr "Quota d’envoi"
 
-#: front/src/components/library/FileUpload.vue:99
+#: front/src/components/library/FileUpload.vue:228
+msgid "Upload timeout, please try again"
+msgstr "Dépassement du délai d'envoi, veuillez réessayer"
+
+#: front/src/components/library/FileUpload.vue:100
 msgid "Uploaded"
-msgstr "Téléversés"
+msgstr "Téléversé"
 
 #: front/src/components/library/FileUpload.vue:5
 msgid "Uploading"
 msgstr "Envoi en cours"
 
-#: front/src/components/library/FileUpload.vue:102
-msgid "Uploading..."
-msgstr "Envoi en cours..."
+#: front/src/components/library/FileUpload.vue:103
+msgid "Uploading…"
+msgstr "Envoi en cours…"
+
+#: front/src/components/manage/moderation/AccountsTable.vue:41
+#: front/src/components/mixins/Translations.vue:37
+#: front/src/views/admin/moderation/AccountsDetail.vue:305
+#: front/src/views/admin/moderation/DomainsDetail.vue:241
+#: front/src/components/mixins/Translations.vue:38
+msgid "Uploads"
+msgstr "Téléversements"
 
-#: front/src/App.vue:44
+#: front/src/components/Footer.vue:16
 msgid "Use another instance"
 msgstr "Utiliser une autre instance"
 
 #: front/src/views/auth/PasswordReset.vue:12
 msgid "Use this form to request a password reset. We will send an email to the given address with instructions to reset your password."
-msgstr "Utilisez ce formulaire pour demander à réinitialiser votre mot de passe. Vous recevrez un email à l'adresse indiquée contenant les instructions de réinitialisation."
+msgstr ""
+"Utilisez ce formulaire pour demander à réinitialiser votre mot de passe. "
+"Vous recevrez un courriel à l'adresse indiquée contenant les instructions de "
+"réinitialisation."
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:111
+msgid "Use this setting to temporarily enable/disable the policy without completely removing it."
+msgstr ""
+"Utilisez ce paramètre pour activer/désactiver temporairement la règle sans "
+"complètement la supprimer."
 
 #: front/src/components/manage/users/InvitationsTable.vue:49
 msgid "Used"
@@ -1994,9 +2760,9 @@ msgstr "Utilisateur·rice"
 msgid "User activity"
 msgstr "Activité des utilisateur·ice·s"
 
-#: front/src/components/library/Album.vue:49
+#: front/src/components/library/Album.vue:88
 #: src/components/library/Artist.vue:60
-#: front/src/components/library/Track.vue:122
+#: front/src/components/library/Track.vue:168
 msgid "User libraries"
 msgstr "Bibliothèques utilisateur"
 
@@ -2006,7 +2772,9 @@ msgstr "Radios des utilisateur·ice·s"
 
 #: front/src/components/auth/Signup.vue:19
 #: front/src/components/manage/users/UsersTable.vue:37
-#: front/src/components/mixins/Translations.vue:32
+#: front/src/components/mixins/Translations.vue:33
+#: front/src/views/admin/moderation/AccountsDetail.vue:85
+#: front/src/components/mixins/Translations.vue:34
 msgid "Username"
 msgstr "Nom d'utilisateur"
 
@@ -2018,12 +2786,24 @@ msgstr "Nom d'utilisateur ou email"
 msgid "users"
 msgstr "utilisateur·rice·s"
 
-#: front/src/components/Sidebar.vue:94 src/views/admin/users/Base.vue:5
-#: front/src/views/admin/users/UsersList.vue:3
-#: src/views/admin/users/UsersList.vue:21 front/src/views/admin/Settings.vue:81
+#: front/src/components/Sidebar.vue:91
+#: front/src/components/manage/moderation/DomainsTable.vue:39
+#: front/src/components/mixins/Translations.vue:35
+#: src/views/admin/Settings.vue:81 front/src/views/admin/users/Base.vue:5
+#: src/views/admin/users/UsersList.vue:3
+#: front/src/views/admin/users/UsersList.vue:21
+#: front/src/components/mixins/Translations.vue:36
 msgid "Users"
 msgstr "Utilisateur·ice·s"
 
+#: front/src/components/Footer.vue:29
+msgid "Using Funkwhale"
+msgstr "Utiliser Funkwhale"
+
+#: front/src/components/Footer.vue:13
+msgid "Version %{version}"
+msgstr "Version %{version}"
+
 #: front/src/views/content/libraries/Quota.vue:29
 #: front/src/views/content/libraries/Quota.vue:56
 #: front/src/views/content/libraries/Quota.vue:82
@@ -2032,9 +2812,9 @@ msgstr "Afficher les fichiers"
 
 #: front/src/components/library/Album.vue:37
 #: src/components/library/Artist.vue:35
-#: front/src/components/library/Track.vue:44
-#: front/src/components/metadata/ReleaseCard.vue:53
+#: front/src/components/library/Track.vue:51
 #: front/src/components/metadata/ArtistCard.vue:49
+#: front/src/components/metadata/ReleaseCard.vue:53
 msgid "View on MusicBrainz"
 msgstr "Voir sur MusicBrainz"
 
@@ -2042,6 +2822,22 @@ msgstr "Voir sur MusicBrainz"
 msgid "Visibility"
 msgstr "Visibilité"
 
+#: front/src/views/content/libraries/Card.vue:59
+msgid "Visibility: everyone on this instance"
+msgstr "Visibilité : tout le monde sur cette instance"
+
+#: front/src/views/content/libraries/Card.vue:60
+msgid "Visibility: everyone, including other instances"
+msgstr "Visibilité : tout le monde, y compris les autres instances"
+
+#: front/src/views/content/libraries/Card.vue:58
+msgid "Visibility: nobody except me"
+msgstr "Visibilité : personne sauf moi"
+
+#: front/src/components/library/Album.vue:67
+msgid "Volume %{ number }"
+msgstr "Volume %{ number }"
+
 #: front/src/components/playlists/PlaylistModal.vue:20
 msgid "We cannot add the track to a playlist"
 msgstr "Nous ne pouvons pas ajouter cette piste à une playlist"
@@ -2054,6 +2850,10 @@ msgstr "Nous ne pouvons pas créer cette playlist"
 msgid "We cannot create your account"
 msgstr "Nous ne pouvons pas créer votre compte"
 
+#: front/src/components/audio/Player.vue:64
+msgid "We cannot load this track"
+msgstr "Nous ne pouvons pas charger cette piste"
+
 #: front/src/components/auth/Login.vue:7
 msgid "We cannot log you in"
 msgstr "Erreur lors de la connexion"
@@ -2070,17 +2870,17 @@ msgstr "Nous ne pouvons pas enregistrer vos paramètres"
 msgid "We do not track you or bother you with ads"
 msgstr "Nous ne vous pistons pas et ne vous exposons pas à des publicités"
 
-#: front/src/views/Notifications.vue:26
-msgid "We don't have any notification to display!"
-msgstr ""
+#: front/src/components/library/Track.vue:95
+msgid "We don't have any copyright information for this track"
+msgstr "Nous n'avons aucune information de copyright pour cette piste"
 
-#: front/src/views/content/Home.vue:4
-msgid "We offer various way to grab new content and make it available here."
-msgstr ""
+#: front/src/components/library/Track.vue:106
+msgid "We don't have any licensing information for this track"
+msgstr "Nous n'avons aucune information de licence pour cette piste"
 
 #: front/src/components/library/FileUpload.vue:40
-msgid "we recommend using Picard for that purpose"
-msgstr "nous vous recommandons d'utiliser le logiciel Picard pour cela"
+msgid "We recommend using Picard for that purpose."
+msgstr "nous vous recommandons d'utiliser le logiciel Picard pour cela."
 
 #: front/src/components/Home.vue:7
 msgid "We think listening to music should be simple."
@@ -2090,9 +2890,9 @@ msgstr "Nous pensons que l'accès à la musique devrait être simple."
 msgid "We're sorry, the page you asked for does not exist:"
 msgstr "Désolé, la page demandée n’existe pas :"
 
-#: front/src/components/requests/Form.vue:21
-msgid "We've received your request, you'll get some groove soon ;)"
-msgstr "Nous avons bien reçu votre requête, vous aurez bientôt de nos nouvelles ;)"
+#: front/src/components/Home.vue:153
+msgid "Welcome"
+msgstr "Bienvenue"
 
 #: front/src/components/Home.vue:5
 msgid "Welcome on Funkwhale"
@@ -2102,7 +2902,17 @@ msgstr "Bienvenue sur Funkwhale"
 msgid "Why funkwhale?"
 msgstr "Pourquoi Funkwhale ?"
 
-#: front/src/components/Sidebar.vue:115
+#: front/src/components/audio/EmbedWizard.vue:13
+msgid "Widget height"
+msgstr "Hauteur du widget"
+
+#: front/src/components/audio/EmbedWizard.vue:6
+msgid "Widget width"
+msgstr "Largeur du widget"
+
+#: front/src/components/Sidebar.vue:118
+#: front/src/components/manage/moderation/AccountsTable.vue:72
+#: front/src/components/manage/moderation/DomainsTable.vue:58
 msgid "Yes"
 msgstr "Oui"
 
@@ -2110,9 +2920,15 @@ msgstr "Oui"
 msgid "Yes, log me out!"
 msgstr "Oui, déconnectez-moi !"
 
+#: front/src/views/content/libraries/Form.vue:19
+msgid "You are able to share your library with other people, regardless of its visibility."
+msgstr ""
+"Vous pouvez partager votre bibliothèque avec d'autres personnes, quelle que "
+"soit sa visibilité."
+
 #: front/src/components/library/FileUpload.vue:33
 msgid "You are about to upload music to your library. Before proceeding, please ensure that:"
-msgstr ""
+msgstr "Vous êtes sur le point de transférer de la musique dans votre bibliothèque. Avant de procéder, veuillez vous assurer que :"
 
 #: front/src/components/auth/Logout.vue:7
 msgid "You are currently logged in as %{ username }"
@@ -2120,12 +2936,16 @@ msgstr "Vous êtes actuellement connecté·e en tant que %{ username }"
 
 #: front/src/views/content/Home.vue:17
 msgid "You can follow libraries from other users to get access to new music. Public libraries can be followed immediatly, while following a private library requires approval from its owner."
-msgstr ""
+msgstr "Vous pouvez suivre les bibliothèques d'autres utilisateurs pour avoir accès à de la nouvelle musique. Les bibliothèques publiques peuvent être suivies immédiatement, tandis que le suivi d'une bibliothèque privée nécessite l'approbation de son propriétaire."
 
 #: front/src/components/Home.vue:133
 msgid "You can invite friends and family to your instance so they can enjoy your music"
 msgstr "Vous pouvez inviter vos ami·es et votre famille sur votre instance pour qu'ils·elles puissent profiter de votre musique"
 
+#: front/src/views/auth/EmailConfirm.vue:24
+msgid "You can now use the service without limitations."
+msgstr "Vous pouvez maintenant utiliser le service sans limitations."
+
 #: front/src/components/library/radios/Builder.vue:7
 msgid "You can use this interface to build your own custom radio, which will play tracks according to your criteria."
 msgstr "Vous pouvez utiliser cette interface pour réaliser votre propre radio personnalisée, qui jouera les pistes correspondant aux critères indiqués."
@@ -2134,29 +2954,37 @@ msgstr "Vous pouvez utiliser cette interface pour réaliser votre propre radio p
 msgid "You can use those to enjoy your playlist and music in offline mode, on your smartphone or tablet, for instance."
 msgstr "Vous pouvez les utiliser pour profiter de vos playlists et de votre musique en mode hors-ligne sur votre smatphone ou tablette, par exemple."
 
-#: front/src/components/Sidebar.vue:147
+#: front/src/views/admin/moderation/AccountsDetail.vue:46
+msgid "You don't have any rule in place for this account."
+msgstr "Vous n'avez aucune règle en place pour ce compte."
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:39
+msgid "You don't have any rule in place for this domain."
+msgstr "Vous n'avez aucune règle en place pour ce domaine."
+
+#: front/src/components/Sidebar.vue:158
 msgid "You have a radio playing"
 msgstr "Vous écoutez une radio"
 
-#: front/src/App.vue:8
+#: front/src/components/audio/Player.vue:71
+msgid "You may have a connectivity issue."
+msgstr "Il se peut que vous ailliez des problèmes de connexion."
+
+#: front/src/App.vue:17
 msgid "You need to select an instance in order to continue"
 msgstr "Vous devez choisir une instance pour continuer"
 
-#: front/src/views/content/libraries/Form.vue:19
-msgid "You will be able to share your library with other people, regardless of it's visibility."
-msgstr ""
-
 #: front/src/components/auth/Settings.vue:100
 msgid "You will be logged out from this session and have to log in with the new one"
-msgstr "Vous allez être déconnecté⋅e de cette session et vous allez devoir vous connecter avec votre nouveau mot de passe"
+msgstr "Vous allez être déconnecté⋅e de cette session et vous devrez vous connecter avec votre nouveau mot de passe"
 
 #: front/src/components/auth/Settings.vue:71
 msgid "You will have to update your password on your clients that use this password."
 msgstr "Vous devrez mettre à jour votre mot de passe sur l'ensemble des clients utilisant ce mot de passe."
 
-#: front/src/views/auth/EmailConfirm.vue:24
-msgid "Your email address was confirmed, you can now use the service without limitations."
-msgstr "Votre adresse email a été confirmée, vous pouvez maintenant utiliser le service sans limitations."
+#: front/src/components/favorites/List.vue:112
+msgid "Your Favorites"
+msgstr "Vos favoris"
 
 #: front/src/components/Home.vue:114
 msgid "Your music, your way"
@@ -2173,405 +3001,3 @@ msgstr "Votre mot de passe a été mis à jour avec succès."
 #: front/src/components/auth/Settings.vue:101
 msgid "Your Subsonic password will be changed to a new, random one, logging you out from devices that used the old Subsonic password"
 msgstr "Votre mot de passe Subsonic sera remplacé par un nouveau mot de passe aléatoire, ce qui vous déconnectera de tous les appareils utilisant l'ancien mot de passe"
-
-#: front/src/components/mixins/Translations.vue:8
-msgid "Activity visibility"
-msgstr "Visibilité de l'activité"
-
-#: front/src/components/mixins/Translations.vue:9
-msgid "Determine the visibility level of your activity"
-msgstr ""
-
-#: front/src/components/mixins/Translations.vue:11
-#: front/src/components/playlists/Form.vue:81
-#: src/views/content/libraries/Form.vue:72
-msgid "Nobody except me"
-msgstr "Personne à part moi"
-
-#: front/src/components/mixins/Translations.vue:12
-#: front/src/components/playlists/Form.vue:85
-#: src/views/content/libraries/Form.vue:73
-msgid "Everyone on this instance"
-msgstr "Tout le monde sur cette instance"
-
-#: front/src/components/mixins/Translations.vue:18
-msgid "Accessed date"
-msgstr "Date d'accès"
-
-#: front/src/components/mixins/Translations.vue:19
-msgid "Modification date"
-msgstr "Date de modification"
-
-#: front/src/components/mixins/Translations.vue:20
-msgid "Imported date"
-msgstr "Date d'import"
-
-#: front/src/components/mixins/Translations.vue:22
-msgid "Track name"
-msgstr "Nom de la piste"
-
-#: front/src/components/mixins/Translations.vue:23
-msgid "Album name"
-msgstr "Nom de l'album"
-
-#: front/src/components/mixins/Translations.vue:30
-msgid "Sign-up date"
-msgstr "Date d'inscription"
-
-#: front/src/components/playlists/Editor.vue:163
-msgid "Copy tracks from current queue to playlist"
-msgstr "Copier les pistes de la queue dans la playlist"
-
-#: front/src/components/playlists/PlaylistModal.vue:116
-msgid "Add to this playlist"
-msgstr "Ajouter à cette playlist"
-
-#: front/src/components/playlists/Form.vue:74
-msgid "My awesome playlist"
-msgstr "Ma playlist d'enfer"
-
-#: front/src/components/playlists/Form.vue:89
-msgid "Everyone"
-msgstr "Tout le monde"
-
-#: front/src/components/auth/Signup.vue:95
-msgid "Sign Up"
-msgstr "Inscription"
-
-#: front/src/components/auth/Signup.vue:96
-msgid "Enter your invitation code (case insensitive)"
-msgstr "Saisissez votre code d'invitation (insensible à la casse)"
-
-#: front/src/components/auth/Signup.vue:97
-msgid "Enter your username"
-msgstr "Saisissez votre nom d'utilisateur·rice"
-
-#: front/src/components/auth/Signup.vue:98
-msgid "Enter your email"
-msgstr "Saisissez votre email"
-
-#: front/src/components/auth/SubsonicTokenForm.vue:95
-msgid "Password updated"
-msgstr "Mot de passe mis à jour"
-
-#: front/src/components/auth/SubsonicTokenForm.vue:111
-msgid "Access disabled"
-msgstr "Accès désactivé"
-
-#: front/src/components/auth/Login.vue:77
-msgid "Enter your username or email"
-msgstr "Saisissez votre nom d'utilisateur·rice ou email"
-
-#: front/src/components/auth/Login.vue:78
-msgid "Log In"
-msgstr "Connexion"
-
-#: front/src/components/auth/Profile.vue:47
-msgid "%{ username }'s profile"
-msgstr "Profil de %{ username }"
-
-#: front/src/components/auth/Logout.vue:20
-msgid "Log Out"
-msgstr "Déconnexion"
-
-#: front/src/components/auth/Settings.vue:249
-msgid "Account Settings"
-msgstr "Paramètres du compte"
-
-#: front/src/components/favorites/TrackFavoriteIcon.vue:19
-msgid "Remove from favorites"
-msgstr "Retirer des favoris"
-
-#: front/src/components/favorites/List.vue:110
-msgid "Your Favorites"
-msgstr "Vos favoris"
-
-#: front/src/components/library/Radios.vue:141
-msgid "Enter a radio name..."
-msgstr "Saisissez un nom de radio..."
-
-#: front/src/components/library/radios/Builder.vue:233
-msgid "Radio Builder"
-msgstr "Éditeur de radio"
-
-#: front/src/components/library/radios/Builder.vue:235
-msgid "My awesome radio"
-msgstr "Ma radio d'enfer"
-
-#: front/src/components/library/radios/Builder.vue:236
-msgid "My awesome description"
-msgstr "Ma description géniale"
-
-#: front/src/components/library/FileUpload.vue:238
-msgid "Upload refused, ensure the file is not too big and you have not reached your quota"
-msgstr ""
-
-#: front/src/components/library/FileUpload.vue:239
-msgid "Impossible to upload this file, ensure it is not too big"
-msgstr ""
-
-#: front/src/components/library/FileUpload.vue:240
-msgid "A network error occured while uploading this file"
-msgstr "Une erreur réseau s'est produite lors du téléversement de ce fichier"
-
-#: front/src/components/library/FileUpload.vue:241
-msgid "Upload timeout, please try again"
-msgstr ""
-
-#: front/src/components/library/Artists.vue:119
-msgid "Enter an artist name..."
-msgstr "Saisissez un nom d'artiste..."
-
-#: front/src/components/library/Track.vue:195
-#: src/components/audio/SearchBar.vue:27
-#: front/src/components/metadata/Search.vue:138
-msgid "Track"
-msgstr "Piste"
-
-#: front/src/components/library/Home.vue:65
-msgid "Home"
-msgstr "Accueil"
-
-#: front/src/components/forms/PasswordInput.vue:25
-msgid "Show/hide password"
-msgstr "Afficher/masquer le mot de passe"
-
-#: front/src/components/requests/Form.vue:73
-msgid "The Beatles, Mickael Jackson…"
-msgstr "Les Beatles, Mickael Jackson..."
-
-#: front/src/components/requests/Form.vue:74
-msgid "The White Album, Thriller…"
-msgstr "L'Album Blanc, Thriller..."
-
-#: front/src/components/requests/Form.vue:75
-msgid "Use this comment box to add details to your request if needed"
-msgstr "Utilisez ce champ pour ajouter des détails à votre demande, si nécessaire"
-
-#: front/src/components/audio/PlayButton.vue:158
-msgid "%{ count } track was added to your queue"
-msgid_plural "%{ count } tracks were added to your queue"
-msgstr[0] "%{ count } piste a été ajouté à votre queue"
-msgstr[1] "%{ count } pistes ont été ajoutées à votre queue"
-
-#: front/src/components/audio/Search.vue:65
-msgid "Artist, album, track..."
-msgstr "Artiste, album, piste..."
-
-#: front/src/components/audio/SearchBar.vue:20
-msgid "Search for artists, albums, tracks..."
-msgstr "Rechercher des artistes, des albums, des pistes"
-
-#: front/src/components/audio/Player.vue:216
-msgid "Queue shuffled!"
-msgstr "La queue a été mélangée !"
-
-#: front/src/components/audio/Player.vue:273
-msgid "Previous track"
-msgstr "Piste précédente"
-
-#: front/src/components/audio/Player.vue:274
-msgid "Play track"
-msgstr "Jouer"
-
-#: front/src/components/audio/Player.vue:275
-msgid "Pause track"
-msgstr "Mettre en pause"
-
-#: front/src/components/audio/Player.vue:276
-msgid "Next track"
-msgstr "Piste suivante"
-
-#: front/src/components/audio/Player.vue:277
-msgid "Unmute"
-msgstr "Réactiver le son"
-
-#: front/src/components/audio/Player.vue:278
-msgid "Mute"
-msgstr "Couper le son"
-
-#: front/src/components/audio/Player.vue:279
-msgid "Looping disabled. Click to switch to single-track looping."
-msgstr "Répétition désactivée. Cliquez pour activer la répétition sur la piste actuelle."
-
-#: front/src/components/audio/Player.vue:280
-msgid "Looping on a single track. Click to switch to whole queue looping."
-msgstr "Répétition sur la piste en cours. Cliquer pour répêter sur l'intégralité de la queue."
-
-#: front/src/components/audio/Player.vue:281
-msgid "Looping on whole queue. Click to disable looping."
-msgstr "Répétition sur l'intégralité, cliquez pour désactiver la répétition."
-
-#: front/src/components/audio/Player.vue:282
-msgid "Shuffle your queue"
-msgstr "Mélanger votre queue"
-
-#: front/src/components/audio/Player.vue:283
-msgid "Clear your queue"
-msgstr "Vider la queue"
-
-#: front/src/components/Sidebar.vue:203
-msgid "Pending import requests"
-msgstr "Requêtes en attente"
-
-#: front/src/components/Sidebar.vue:204
-msgid "Pending follow requests"
-msgstr "Demandes d'abonnement en attente"
-
-#: front/src/components/metadata/Search.vue:114
-msgid "Enter your search query..."
-msgstr "Saisissez votre recherche..."
-
-#: front/src/components/manage/library/FilesTable.vue:176
-msgid "Search by title, artist, domain..."
-msgstr "Rechercher par titre, artiste, domaine..."
-
-#: front/src/components/manage/users/InvitationForm.vue:58
-msgid "Leave empty for a random code"
-msgstr "Laisser vide pour obtenir un code aléatoire"
-
-#: front/src/components/manage/users/InvitationsTable.vue:153
-msgid "Search by username, email, code..."
-msgstr "Rechercher par nom d'utilisateur·rice, email, code..."
-
-#: front/src/components/manage/users/UsersTable.vue:163
-msgid "Search by username, email, name..."
-msgstr "Rechercher par nom d'utilisateur·rice, email, nom..."
-
-#: front/src/components/manage/users/UsersTable.vue:181
-#: front/src/views/admin/users/UsersDetail.vue:185
-#: src/views/admin/Settings.vue:83
-msgid "Federation"
-msgstr "Fédération"
-
-#: front/src/components/Home.vue:154
-msgid "Welcome"
-msgstr ""
-
-#: front/src/views/content/remote/ScanForm.vue:48
-msgid "Enter a library url"
-msgstr "Entrez une URL de bibliothèque"
-
-#: front/src/views/content/remote/Card.vue:165
-msgid "Scan launched"
-msgstr ""
-
-#: front/src/views/content/remote/Card.vue:166
-msgid "Scan skipped (previous scan is too recent)"
-msgstr ""
-
-#: front/src/views/content/libraries/FilesTable.vue:226
-msgid "Search by title, artist, album..."
-msgstr "Rechercher par titre, artiste, album ..."
-
-#: front/src/views/content/libraries/FilesTable.vue:230
-msgid "Track was already present in one of your libraries"
-msgstr ""
-
-#: front/src/views/content/libraries/FilesTable.vue:234
-msgid "Track is uploaded but not processed by the server yet"
-msgstr ""
-
-#: front/src/views/content/libraries/FilesTable.vue:238
-msgid "An error occured while processing this track, ensure the track is correctly tagged"
-msgstr ""
-
-#: front/src/views/content/libraries/FilesTable.vue:242
-msgid "Import went on successfully"
-msgstr "L'importation s'est bien déroulée"
-
-#: front/src/views/content/libraries/FilesTable.vue:259
-msgid "Relaunch import"
-msgstr "Relancer l'importation"
-
-#: front/src/views/content/libraries/Card.vue:58
-msgid "Visibility: nobody except me"
-msgstr "Visibilité: personne sauf moi"
-
-#: front/src/views/content/libraries/Card.vue:59
-msgid "Visibility: everyone on this instance"
-msgstr "Visibilité: tout le monde sur cette instance"
-
-#: front/src/views/content/libraries/Card.vue:60
-msgid "Visibility: everyone, including other instances"
-msgstr ""
-
-#: front/src/views/content/libraries/Card.vue:61
-msgid "Total size of the files in this library"
-msgstr "Taille totale des fichiers de cette bibliothèque"
-
-#: front/src/views/content/libraries/Form.vue:70
-msgid "My awesome library"
-msgstr "Ma bibliothèque d'enfer"
-
-#: front/src/views/content/libraries/Form.vue:71
-msgid "This library contains my personnal music, I hope you will like it!"
-msgstr ""
-
-#: front/src/views/content/libraries/Form.vue:74
-msgid "Everyone, including other instances"
-msgstr "Tout le monde, y compris d'autres instances"
-
-#: front/src/views/content/libraries/Form.vue:106
-msgid "Library updated"
-msgstr "Bibliothèque actualisée"
-
-#: front/src/views/content/libraries/Form.vue:109
-msgid "Library created"
-msgstr "Bibliothèque créée"
-
-#: front/src/views/content/Home.vue:35
-msgid "Add and manage content"
-msgstr ""
-
-#: front/src/views/radios/Detail.vue:80
-msgid "Radio"
-msgstr "Radio"
-
-#: front/src/views/instance/Timeline.vue:57
-msgid "Instance Timeline"
-msgstr "Fil de l'instance"
-
-#: front/src/views/playlists/Detail.vue:90
-msgid "Playlist"
-msgstr "Playlist"
-
-#: front/src/views/playlists/List.vue:105
-msgid "Enter an playlist name..."
-msgstr "Saisissez un nom de playlist..."
-
-#: front/src/views/admin/library/Base.vue:16
-msgid "Manage library"
-msgstr "Gérer la bibliothèque"
-
-#: front/src/views/admin/users/UsersDetail.vue:169
-msgid "Determine if the user account is active or not. Inactive users cannot login or use the service."
-msgstr "Détermine si le compte utilisateur est actif ou non. Les comptes inactifs ne peuvent pas se connecter ou utiliser le service."
-
-#: front/src/views/admin/users/UsersDetail.vue:170
-msgid "Determine how much content the user can upload. Leave empty to use the default value of the instance."
-msgstr ""
-
-#: front/src/views/admin/users/Base.vue:20
-msgid "Manage users"
-msgstr "Gérer les utilisateur·rices"
-
-#: front/src/views/admin/Settings.vue:75
-msgid "Instance settings"
-msgstr "Paramètres de l'instance"
-
-#: front/src/views/admin/Settings.vue:80
-msgid "Instance information"
-msgstr "Informations relatives à cette instance"
-
-#: front/src/views/admin/Settings.vue:84
-msgid "Subsonic"
-msgstr "Subsonic"
-
-#: front/src/views/admin/Settings.vue:85
-msgid "Statistics"
-msgstr "Statistiques"
-
-#: front/src/views/admin/Settings.vue:86
-msgid "Error reporting"
-msgstr "Rapports d'erreur"
diff --git a/front/locales/gl/LC_MESSAGES/app.po b/front/locales/gl/LC_MESSAGES/app.po
index 01424080a89e388fc9403fd53d76b9fd73022ecf..06cd843c1593e1967abe91cbfa1130f31eb19cab 100644
--- a/front/locales/gl/LC_MESSAGES/app.po
+++ b/front/locales/gl/LC_MESSAGES/app.po
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: front 1.0.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-07-22 14:12+0200\n"
-"PO-Revision-Date: 2018-08-24 10:28+0000\n"
+"POT-Creation-Date: 2019-01-11 16:04+0100\n"
+"PO-Revision-Date: 2019-01-17 08:33+0000\n"
 "Last-Translator: Xosé M <xosem@disroot.org>\n"
 "Language-Team: none\n"
 "Language: gl\n"
@@ -16,7 +16,7 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 2.20\n"
+"X-Generator: Weblate 3.2.2\n"
 
 #: front/src/components/playlists/PlaylistModal.vue:9
 msgid "\"%{ title }\", by %{ artist }"
@@ -30,14 +30,16 @@ msgstr "(%{ index } de %{ length })"
 msgid "(empty)"
 msgstr "(baldeiro)"
 
-#: front/src/components/common/ActionTable.vue:43
-#: front/src/components/common/ActionTable.vue:51
+#: front/src/components/common/ActionTable.vue:57
+#: front/src/components/common/ActionTable.vue:66
 msgid "%{ count } on %{ total } selected"
 msgid_plural "%{ count } on %{ total } selected"
 msgstr[0] "%{ count } de %{ total } seleccionado"
 msgstr[1] "%{ count } de %{ total } seleccionados"
 
-#: front/src/components/Sidebar.vue:116 src/views/federation/LibraryDetail.vue:87
+#: front/src/components/Sidebar.vue:110 src/components/audio/album/Card.vue:54
+#: front/src/views/content/libraries/Card.vue:39
+#: src/views/content/remote/Card.vue:26
 msgid "%{ count } track"
 msgid_plural "%{ count } tracks"
 msgstr[0] "%{ count } canción"
@@ -49,18 +51,28 @@ msgid_plural "%{ count } tracks in %{ albumsCount } albums"
 msgstr[0] "%{ count } canción en %{ albumsCount } álbumes"
 msgstr[1] "%{ count } cancións en %{ albumsCount } álbumes"
 
-#: front/src/components/library/radios/Builder.vue:76
+#: front/src/components/library/radios/Builder.vue:80
 msgid "%{ count } track matching combined filters"
 msgid_plural "%{ count } tracks matching combined filters"
 msgstr[0] "%{ count } canción coicidente cos filtros combinados"
 msgstr[1] "%{ count } cancións coincidentes cos filtros combinados"
 
+#: front/src/components/audio/PlayButton.vue:180
+msgid "%{ count } track was added to your queue"
+msgid_plural "%{ count } tracks were added to your queue"
+msgstr[0] "Engadiuse %{ count } canción a cola"
+msgstr[1] "Engadíronse %{ count } cancións a cola"
+
 #: front/src/components/playlists/Card.vue:18
 msgid "%{ count} track"
 msgid_plural "%{ count } tracks"
 msgstr[0] "%{ count} canción"
 msgstr[1] "%{ count } cancións"
 
+#: front/src/views/content/libraries/Quota.vue:11
+msgid "%{ current } used on %{ max } allowed"
+msgstr "%{ current } utilizado de %{ max } permitido"
+
 #: front/src/components/common/Duration.vue:2
 msgid "%{ hours } h %{ minutes } min"
 msgstr "%{ hours } h %{ minutes } min"
@@ -69,18 +81,24 @@ msgstr "%{ hours } h %{ minutes } min"
 msgid "%{ minutes } min"
 msgstr "%{ minutes } min"
 
-#: front/src/components/activity/Like.vue:7
-msgid "%{ user } favorited a track"
-msgstr "%{ user } marcou favorita unha canción"
+#: front/src/components/notifications/NotificationRow.vue:40
+msgid "%{ username } accepted your follow on library \"%{ library }\""
+msgstr "%{ username } aceptou o seu seguimento na biblioteca \"%{ library }\""
 
-#: front/src/components/activity/Listen.vue:7
-msgid "%{ user } listened to a track"
-msgstr "%{ user } escoitou unha canción"
+#: front/src/components/notifications/NotificationRow.vue:39
+msgid "%{ username } followed your library \"%{ library }\""
+msgstr "%{ username } segue a súa biblioteca \"%{ library }\""
 
-#: front/src/components/auth/Profile.vue:49
+#: front/src/components/auth/Profile.vue:46
 msgid "%{ username }'s profile"
 msgstr "Perfil de %{ username }"
 
+#: front/src/components/Footer.vue:5
+msgid "<translate :translate-params=\"{instanceName: instanceHostname}\">About %{instanceName}</translate>"
+msgstr ""
+"<translate :translate-params=\"{instanceName: instanceHostname}\">Acerca de "
+"%{instanceName}</translate>"
+
 #: front/src/components/audio/artist/Card.vue:41
 msgid "1 album"
 msgid_plural "%{ count } albums"
@@ -93,27 +111,36 @@ msgid_plural "%{ count } favorites"
 msgstr[0] "1 favorita"
 msgstr[1] "%{ count } favoritas"
 
-#: front/src/components/audio/album/Card.vue:54
-#: front/src/components/federation/LibraryCard.vue:25
-msgid "1 track"
-msgid_plural "%{ count } tracks"
-msgstr[0] "1 canción"
-msgstr[1] "%{ count } cancións"
+#: front/src/components/library/FileUpload.vue:225
+#: front/src/components/library/FileUpload.vue:226
+msgid "A network error occured while uploading this file"
+msgstr "Fallou a rede mentras se subía o ficheiro"
 
 #: front/src/components/About.vue:5
 msgid "About %{ instance }"
 msgstr "Acerca de %{ instance }"
 
-#: front/src/App.vue:54
+#: front/src/components/Footer.vue:6
+msgid "About %{instanceName}"
+msgstr "Acerca de %{instanceName}"
+
+#: front/src/components/Footer.vue:45
 msgid "About Funkwhale"
 msgstr "Acerca de Funkwhale"
 
-#: front/src/App.vue:32 src/components/About.vue:8 src/components/About.vue:55
+#: front/src/components/Footer.vue:10
+msgid "About page"
+msgstr "Páxina Acerca de"
+
+#: front/src/components/About.vue:8 src/components/About.vue:64
 msgid "About this instance"
 msgstr "Acerca de esta instancia"
 
-#: front/src/components/manage/library/RequestsTable.vue:28
-#: front/src/components/manage/library/RequestsTable.vue:62
+#: front/src/views/content/libraries/Detail.vue:48
+msgid "Accept"
+msgstr "Aceptar"
+
+#: front/src/views/content/libraries/Detail.vue:40
 msgid "Accepted"
 msgstr "Aceptado"
 
@@ -121,21 +148,24 @@ msgstr "Aceptado"
 msgid "Access disabled"
 msgstr "Acceso desactivado"
 
-#: front/src/components/Home.vue:109
+#: front/src/components/Home.vue:106
 msgid "Access your music from a clean interface that focus on what really matters"
-msgstr ""
-"Acceda a súa música desde unha interface clara que se centra no realmente "
-"importante"
+msgstr "Acceda a súa música desde unha interface clara que se centra no realmente importante"
 
-#: front/src/views/admin/users/UsersDetail.vue:54
-msgid "Account active"
-msgstr "Conta activa"
+#: front/src/components/mixins/Translations.vue:19
+#: front/src/components/mixins/Translations.vue:20
+msgid "Accessed date"
+msgstr "Data de acceso"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:78
+msgid "Account data"
+msgstr "Datos da conta"
 
 #: front/src/components/auth/Settings.vue:5
 msgid "Account settings"
 msgstr "Axustes da conta"
 
-#: front/src/components/auth/Settings.vue:257
+#: front/src/components/auth/Settings.vue:264
 msgid "Account Settings"
 msgstr "Axustes da conta"
 
@@ -147,18 +177,24 @@ msgstr "Estado da conta"
 msgid "Account's email"
 msgstr "Correo-e da conta"
 
-#: front/src/components/common/ActionTable.vue:82
+#: front/src/views/admin/moderation/AccountsList.vue:3
+#: front/src/views/admin/moderation/AccountsList.vue:24
+#: front/src/views/admin/moderation/Base.vue:8
+msgid "Accounts"
+msgstr "Contas"
+
+#: front/src/views/content/libraries/Detail.vue:29
+msgid "Action"
+msgstr "Acción"
+
+#: front/src/components/common/ActionTable.vue:99
 msgid "Action %{ action } was launched successfully on %{ count } element"
 msgid_plural "Action %{ action } was launched successfully on %{ count } elements"
-msgstr[0] ""
-"A acción %{ action } foi lanzada correctamente sobre  %{ count } elemento"
-msgstr[1] ""
-"A accións %{ action } foi lanzada correctamente sobre %{ count } elementos"
+msgstr[0] "A acción %{ action } foi lanzada correctamente sobre  %{ count } elemento"
+msgstr[1] "A accións %{ action } foi lanzada correctamente sobre %{ count } elementos"
 
-#: front/src/components/common/ActionTable.vue:8
-#: front/src/components/federation/LibraryFollowTable.vue:24
-#: front/src/components/library/radios/Builder.vue:60
-#: front/src/components/manage/library/RequestsTable.vue:54
+#: front/src/components/common/ActionTable.vue:21
+#: front/src/components/library/radios/Builder.vue:64
 msgid "Actions"
 msgstr "Accións"
 
@@ -166,39 +202,57 @@ msgstr "Accións"
 msgid "Active"
 msgstr "Activo"
 
-#: front/src/components/Sidebar.vue:60
+#: front/src/views/admin/moderation/AccountsDetail.vue:199
+#: front/src/views/admin/moderation/DomainsDetail.vue:144
 msgid "Activity"
 msgstr "Actividade"
 
-#: front/src/components/federation/LibraryFollowTable.vue:21
-msgid "Actor"
-msgstr "Actor"
+#: front/src/components/mixins/Translations.vue:7
+#: front/src/components/mixins/Translations.vue:8
+msgid "Activity visibility"
+msgstr "Visibilidade da actividade"
+
+#: front/src/views/admin/moderation/DomainsList.vue:18
+msgid "Add"
+msgstr "Engadir"
 
-#: front/src/views/federation/LibraryList.vue:8
-msgid "Add a new library"
-msgstr "Engadir unha nova biblioteca"
+#: front/src/views/admin/moderation/DomainsList.vue:13
+msgid "Add a domain"
+msgstr "Engadir un dominio"
 
-#: front/src/components/library/radios/Builder.vue:46
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:4
+msgid "Add a new moderation rule"
+msgstr "Engadir nova regra de moderación"
+
+#: front/src/views/content/Home.vue:35
+msgid "Add and manage content"
+msgstr "Engadir e xestionar contido"
+
+#: front/src/components/Sidebar.vue:75 src/views/content/Base.vue:18
+msgid "Add content"
+msgstr "Engadir contido"
+
+#: front/src/components/library/radios/Builder.vue:50
 msgid "Add filter"
 msgstr "Engadir filtro"
 
-#: front/src/components/library/radios/Builder.vue:36
+#: front/src/components/library/radios/Builder.vue:40
 msgid "Add filters to customize your radio"
 msgstr "Engada filtros para personalizar a súa radio"
 
-#: front/src/components/audio/PlayButton.vue:53
+#: front/src/components/audio/PlayButton.vue:64
 msgid "Add to current queue"
 msgstr "Engadir a cola actual"
 
 #: front/src/components/favorites/TrackFavoriteIcon.vue:4
-#: front/src/components/favorites/TrackFavoriteIcon.vue:21
+#: front/src/components/favorites/TrackFavoriteIcon.vue:28
 msgid "Add to favorites"
 msgstr "Engadir a favoritas"
 
 #: front/src/components/playlists/TrackPlaylistIcon.vue:6
-#: front/src/components/playlists/TrackPlaylistIcon.vue:32
-msgid "Add to playlist..."
-msgstr "Engadir a lista de reprodución..."
+#: front/src/components/playlists/TrackPlaylistIcon.vue:34
+msgid "Add to playlist…"
+msgstr "Engadir a lista de reprodución…"
 
 #: front/src/components/audio/PlayButton.vue:14
 msgid "Add to queue"
@@ -216,37 +270,38 @@ msgstr "Engadir canción"
 msgid "Admin"
 msgstr "Admin"
 
-#: front/src/components/Sidebar.vue:64
+#: front/src/components/Sidebar.vue:79
 msgid "Administration"
 msgstr "Administración"
 
-#: front/src/components/audio/SearchBar.vue:26 src/components/audio/track/Table.vue:8
-#: front/src/components/federation/LibraryTrackTable.vue:49
-#: front/src/components/library/Album.vue:91
+#: front/src/components/audio/SearchBar.vue:26
+#: src/components/audio/track/Table.vue:8
+#: front/src/components/library/Album.vue:159
 #: front/src/components/manage/library/FilesTable.vue:39
 #: front/src/components/metadata/Search.vue:134
+#: front/src/views/content/libraries/FilesTable.vue:56
 msgid "Album"
 msgstr "Álbume"
 
-#: front/src/components/library/import/ReleaseImport.vue:3
-msgid "Album %{ title } (%{ count } track) by %{ artist }"
-msgid_plural "Album %{ title } (%{ count } tracks) by %{ artist }"
-msgstr[0] "Álbume %{ title } (%{ count } canción) de %{ artist }"
-msgstr[1] "Álbume %{ title } (%{ count } cancións) de %{ artist }"
-
 #: front/src/components/library/Album.vue:12
 msgid "Album containing %{ count } track, by %{ artist }"
 msgid_plural "Album containing %{ count } tracks, by %{ artist }"
 msgstr[0] "Álbume que contén %{ count } canción, de %{ artist }"
 msgstr[1] "Álbume que contén %{ count } cancións, de %{ artist }"
 
-#: front/src/components/library/Track.vue:20
+#: front/src/components/mixins/Translations.vue:24
+#: front/src/components/mixins/Translations.vue:25
+msgid "Album name"
+msgstr "Nome do álbume"
+
+#: front/src/components/library/Track.vue:27
 msgid "Album page"
 msgstr "Páxina do álbume"
 
-#: front/src/components/audio/Search.vue:19 src/components/instance/Stats.vue:48
-#: front/src/components/manage/library/RequestsTable.vue:50
-#: front/src/components/requests/Form.vue:9
+#: front/src/components/audio/Search.vue:19
+#: src/components/instance/Stats.vue:48
+#: front/src/views/admin/moderation/AccountsDetail.vue:321
+#: front/src/views/admin/moderation/DomainsDetail.vue:257
 msgid "Albums"
 msgstr "Álbumes"
 
@@ -254,8 +309,8 @@ msgstr "Álbumes"
 msgid "Albums by this artist"
 msgstr "Álbumes de este artista"
 
-#: front/src/components/manage/library/RequestsTable.vue:26
 #: front/src/components/manage/users/InvitationsTable.vue:19
+#: front/src/views/content/libraries/FilesTable.vue:13
 msgid "All"
 msgstr "Todos"
 
@@ -265,71 +320,57 @@ msgstr "Algo fallou ao gardar os cambios"
 
 #: front/src/components/auth/Login.vue:10
 msgid "An unknown error happend, this can mean the server is down or cannot be reached"
-msgstr ""
-"Aconteceu un fallo descoñecido, esto pode significar que o servidor está "
-"caído ou non pode ser alcanzado"
-
-#: front/src/components/federation/LibraryTrackTable.vue:11
-#: front/src/components/library/import/BatchDetail.vue:68
-#: front/src/components/library/import/BatchList.vue:13
-#: front/src/components/library/import/BatchList.vue:22
-msgid "Any"
-msgstr "Calquera"
+msgstr "Aconteceu un fallo descoñecido, esto pode significar que o servidor está caído ou non pode ser alcanzado"
 
-#: front/src/components/library/import/BatchList.vue:24
-msgid "API"
-msgstr "API"
-
-#: front/src/components/federation/LibraryFollowTable.vue:68
-#: front/src/components/federation/LibraryFollowTable.vue:78
+#: front/src/components/notifications/NotificationRow.vue:62
 msgid "Approve"
 msgstr "Aprovar"
 
-#: front/src/components/federation/LibraryFollowTable.vue:70
-msgid "Approve access?"
-msgstr "Permitir acceso?"
-
-#: front/src/components/federation/LibraryFollowTable.vue:38
-msgid "Approved"
-msgstr "Permitido"
-
 #: front/src/components/auth/Logout.vue:5
 msgid "Are you sure you want to log out?"
 msgstr "Está segura de que quere desconectar?"
 
-#: front/src/components/audio/SearchBar.vue:25 src/components/audio/track/Table.vue:7
-#: front/src/components/federation/LibraryTrackTable.vue:48
-#: front/src/components/library/Artist.vue:119
+#: front/src/components/audio/SearchBar.vue:25
+#: src/components/audio/track/Table.vue:7
+#: front/src/components/library/Artist.vue:137
 #: front/src/components/manage/library/FilesTable.vue:38
-#: front/src/components/manage/library/RequestsTable.vue:49
 #: front/src/components/metadata/Search.vue:130
+#: front/src/views/content/libraries/FilesTable.vue:55
 msgid "Artist"
 msgstr "Artista"
 
-#: front/src/components/requests/Form.vue:5
+#: front/src/components/mixins/Translations.vue:25
+#: front/src/components/mixins/Translations.vue:26
 msgid "Artist name"
 msgstr "Nome do artista"
 
-#: front/src/components/library/Album.vue:22 src/components/library/Track.vue:23
+#: front/src/components/library/Album.vue:22
+#: src/components/library/Track.vue:33
 msgid "Artist page"
 msgstr "Páxina do artista"
 
 #: front/src/components/audio/Search.vue:65
-msgid "Artist, album, track..."
-msgstr "Artista, álbume, canción..."
-
-#: front/src/components/audio/Search.vue:10 src/components/instance/Stats.vue:42
-#: front/src/components/library/Artists.vue:119 src/components/library/Library.vue:7
+msgid "Artist, album, track…"
+msgstr "Artista, álbume, canción…"
+
+#: front/src/components/audio/Search.vue:10
+#: src/components/instance/Stats.vue:42
+#: front/src/components/library/Artists.vue:119
+#: src/components/library/Library.vue:7
+#: front/src/views/admin/moderation/AccountsDetail.vue:313
+#: front/src/views/admin/moderation/DomainsDetail.vue:249
 msgid "Artists"
 msgstr "Artistas"
 
 #: front/src/components/favorites/List.vue:33
-#: front/src/components/federation/LibraryTrackTable.vue:28
-#: front/src/components/library/Artists.vue:25 src/components/library/Radios.vue:44
+#: src/components/library/Artists.vue:25
+#: front/src/components/library/Radios.vue:44
 #: front/src/components/manage/library/FilesTable.vue:19
-#: front/src/components/manage/library/RequestsTable.vue:19
+#: front/src/components/manage/moderation/AccountsTable.vue:21
+#: front/src/components/manage/moderation/DomainsTable.vue:19
 #: front/src/components/manage/users/UsersTable.vue:19
-#: front/src/views/federation/LibraryList.vue:28 src/views/playlists/List.vue:27
+#: front/src/views/content/libraries/FilesTable.vue:31
+#: front/src/views/playlists/List.vue:27
 msgid "Ascending"
 msgstr "Ascendente"
 
@@ -337,9 +378,14 @@ msgstr "Ascendente"
 msgid "Ask for a password reset"
 msgstr "Solicitar restablecer o contrasinal"
 
-#: front/src/views/federation/LibraryDetail.vue:56
-msgid "Auto importing"
-msgstr "Importar automáticamente"
+#: front/src/views/admin/moderation/AccountsDetail.vue:245
+#: front/src/views/admin/moderation/DomainsDetail.vue:202
+msgid "Audio content"
+msgstr "Contido de audio"
+
+#: front/src/components/ShortcutsModal.vue:55
+msgid "Audio player shortcuts"
+msgstr "Atallos do reprodutor de audio"
 
 #: front/src/components/playlists/PlaylistModal.vue:26
 msgid "Available playlists"
@@ -349,27 +395,35 @@ msgstr "Listas de reprodución dispoñibles"
 msgid "Avatar"
 msgstr "Avatar"
 
-#: front/src/views/auth/EmailConfirm.vue:17 src/views/auth/PasswordReset.vue:24
+#: front/src/views/auth/PasswordReset.vue:24
 #: front/src/views/auth/PasswordResetConfirm.vue:18
 msgid "Back to login"
 msgstr "Voltar a conectar"
 
-#: front/src/views/federation/LibraryFollowersList.vue:5
-msgid "Be careful when accepting follow requests, as it means the follower will have access to your entire library."
-msgstr ""
-"Teña coidado cando acepte solicitudes de seguimento, xa que esto dará acceso "
-"a seguidora a toda a súa biblioteca."
-
-#: front/src/components/library/Track.vue:80
+#: front/src/components/library/Track.vue:129
 #: front/src/components/manage/library/FilesTable.vue:42
+#: front/src/components/mixins/Translations.vue:29
+#: front/src/components/mixins/Translations.vue:30
 msgid "Bitrate"
 msgstr "Taxa de bits"
 
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:19
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:34
+msgid "Block everything"
+msgstr "Bloquear todo"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:112
+msgid "Block everything from this account or domain. This will prevent any interaction with the entity, and purge related content (uploads, libraries, follows, etc.)"
+msgstr ""
+"Bloquear todo de esta conta ou dominio. Esto evitará calquera interacción "
+"coa entidade, e eliminará o contido relacionado (subidas, bibliotecas, "
+"seguimentos, etc.)"
+
 #: front/src/components/Sidebar.vue:18 src/components/library/Library.vue:4
 msgid "Browse"
 msgstr "Buscar"
 
-#: front/src/components/Sidebar.vue:50
+#: front/src/components/Sidebar.vue:65
 msgid "Browse library"
 msgstr "Buscar na biblioteca"
 
@@ -377,18 +431,6 @@ msgstr "Buscar na biblioteca"
 msgid "Browsing artists"
 msgstr "Buscando artistas"
 
-#: front/src/views/federation/LibraryTrackList.vue:3
-msgid "Browsing federated tracks"
-msgstr "Buscando cancións federadas"
-
-#: front/src/views/federation/LibraryFollowersList.vue:3
-msgid "Browsing followers"
-msgstr "Buscando seguidoras"
-
-#: front/src/views/federation/LibraryList.vue:3
-msgid "Browsing libraries"
-msgstr "Buscando nas bibliotecas"
-
 #: front/src/views/playlists/List.vue:3
 msgid "Browsing playlists"
 msgstr "Buscando nas listas de reprodución"
@@ -405,22 +447,25 @@ msgstr "Construtor"
 msgid "By %{ artist }"
 msgstr "De %{ artist }"
 
-#: front/src/components/federation/LibraryFollowTable.vue:57
-msgid "By confirming, %{ username } will be denied access to your library."
-msgstr "Ao confirmar, %{ username } non terá acceso a súa biblioteca."
+#: front/src/views/content/remote/Card.vue:103
+msgid "By unfollowing this library, you loose access to its content."
+msgstr "Ao deixar de seguir esta biblioteca perderá o acceso ao seu contido."
 
-#: front/src/components/federation/LibraryFollowTable.vue:73
-msgid "By confirming, %{ username } will be granted access to your library."
-msgstr "Ao confirmar,  %{ username }  terá acceso a súa biblioteca."
+#: front/src/views/admin/moderation/AccountsDetail.vue:261
+#: front/src/views/admin/moderation/DomainsDetail.vue:217
+msgid "Cached size"
+msgstr "Tamaño da caché"
 
-#: front/src/components/audio/track/Table.vue:43
 #: front/src/components/common/DangerousButton.vue:17
+#: front/src/components/library/Album.vue:58
+#: src/components/library/Track.vue:76
 #: front/src/components/library/radios/Filter.vue:53
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:54
 #: front/src/components/playlists/PlaylistModal.vue:63
 msgid "Cancel"
 msgstr "Cancelar"
 
-#: front/src/components/library/radios/Builder.vue:59
+#: front/src/components/library/radios/Builder.vue:63
 msgid "Candidates"
 msgstr "Candidatas"
 
@@ -428,7 +473,12 @@ msgstr "Candidatas"
 msgid "Cannot change your password"
 msgstr "Non pode cambiar o contrasinal"
 
-#: front/src/App.vue:66
+#: front/src/components/library/FileUpload.vue:222
+#: front/src/components/library/FileUpload.vue:223
+msgid "Cannot upload this file, ensure it is not too big"
+msgstr "Fallou a subida, asegúrese de que non é demasiado grande"
+
+#: front/src/components/Footer.vue:21
 msgid "Change language"
 msgstr "Cambiar idioma"
 
@@ -455,15 +505,17 @@ msgstr "Cambios sincronizados co servidor"
 
 #: front/src/components/auth/Settings.vue:70
 msgid "Changing your password will also change your Subsonic API password if you have requested one."
-msgstr ""
-"Ao cambiar o contrasinal tamén cambia o seu contrasinal no API Subsonic si é "
-"que solicitou un."
+msgstr "Ao cambiar o contrasinal tamén cambia o seu contrasinal no API Subsonic si é que solicitou un."
 
 #: front/src/components/auth/Settings.vue:98
 msgid "Changing your password will have the following consequences"
 msgstr "Cambiar o contrasinal terá as seguintes consecuencias"
 
-#: front/src/App.vue:4
+#: front/src/components/Footer.vue:40
+msgid "Chat room"
+msgstr "Sala de conversa"
+
+#: front/src/App.vue:13
 msgid "Choose your instance"
 msgstr "Escolla a súa instancia"
 
@@ -480,22 +532,23 @@ msgstr "Limpar"
 msgid "Clear playlist"
 msgstr "Limpar lista reprodución"
 
-#: front/src/components/audio/Player.vue:270
+#: front/src/components/audio/Player.vue:363
 msgid "Clear your queue"
 msgstr "Limpar cola de reprodución"
 
-#: front/src/components/library/import/BatchList.vue:23
-msgid "CLI"
-msgstr "CLI"
-
 #: front/src/components/Home.vue:44
 msgid "Click once, listen for hours using built-in radios"
 msgstr "Pulse unha vez, escoite durante horas utilizando as radios incrustadas"
 
-#: front/src/components/manage/library/RequestsTable.vue:30
-#: front/src/components/manage/library/RequestsTable.vue:64
-msgid "Closed"
-msgstr "Pechado"
+#: front/src/components/library/FileUpload.vue:75
+msgid "Click to select files to upload or drag and drop files or directories"
+msgstr ""
+"Pulse para escoller os ficheiros a subir ou arrastre e solte ficheiros ou "
+"directorios"
+
+#: front/src/components/ShortcutsModal.vue:20
+msgid "Close"
+msgstr "Pechar"
 
 #: front/src/components/manage/users/InvitationForm.vue:26
 #: front/src/components/manage/users/InvitationsTable.vue:42
@@ -504,16 +557,10 @@ msgstr "Código"
 
 #: front/src/components/audio/album/Card.vue:43
 #: front/src/components/audio/artist/Card.vue:33
-#: front/src/components/discussion/Comment.vue:20
 msgid "Collapse"
 msgstr "Pechar"
 
-#: front/src/components/manage/library/RequestsTable.vue:51
-#: front/src/components/requests/Form.vue:14
-msgid "Comment"
-msgstr "Comentar"
-
-#: front/src/components/library/radios/Builder.vue:58
+#: front/src/components/library/radios/Builder.vue:62
 msgid "Config"
 msgstr "Configurar"
 
@@ -523,37 +570,78 @@ msgstr "Confirmar"
 
 #: front/src/views/auth/EmailConfirm.vue:4 src/views/auth/EmailConfirm.vue:20
 #: front/src/views/auth/EmailConfirm.vue:51
-msgid "Confirm your email"
+msgid "Confirm your e-mail address"
 msgstr "Confirme o seu correo-e"
 
 #: front/src/views/auth/EmailConfirm.vue:13
 msgid "Confirmation code"
 msgstr "Código de confirmación"
 
+#: front/src/components/common/ActionTable.vue:7
+msgid "Content have been updated, click refresh to see up-to-date content"
+msgstr "Actualizouse o contido, pulse actualizar para ver o contido actualizado"
+
+#: front/src/components/Footer.vue:48
+msgid "Contribute"
+msgstr "Contribuír"
+
+#: front/src/components/audio/EmbedWizard.vue:19
+#: front/src/components/common/CopyInput.vue:8
+msgid "Copy"
+msgstr "Copiar"
+
 #: front/src/components/playlists/Editor.vue:163
 msgid "Copy tracks from current queue to playlist"
 msgstr "Copiar cancións da cola actual a lista de reprodución"
 
-#: front/src/components/Home.vue:88
+#: front/src/components/audio/EmbedWizard.vue:21
+msgid "Copy/paste this code in your website HTML"
+msgstr "Copiar/pegar este código no HTML da súa web"
+
+#: front/src/components/library/Track.vue:91
+msgid "Copyright"
+msgstr "Copyright"
+
+#: front/src/views/auth/EmailConfirm.vue:7
+msgid "Could not confirm your e-mail address"
+msgstr "Non se confirmou o seu correo-e"
+
+#: front/src/views/content/remote/ScanForm.vue:3
+msgid "Could not fetch remote library"
+msgstr "Non se obtivo a biblioteca remota"
+
+#: front/src/views/content/libraries/FilesTable.vue:213
+msgid "Could not process this track, ensure it is tagged correctly"
+msgstr ""
+"Non se procesou esta canción, asegúrese que está correctamente etiquetada"
+
+#: front/src/components/Home.vue:85
 msgid "Covers, lyrics, our goal is to have them all ;)"
 msgstr "Portadas, letras, o noso obxetivo é telas todas ;)"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:58
+msgid "Create"
+msgstr "Crear"
+
 #: front/src/components/auth/Signup.vue:4
 msgid "Create a funkwhale account"
 msgstr "Crear unha conta funkwhale"
 
+#: front/src/views/content/libraries/Home.vue:14
+msgid "Create a new library"
+msgstr "Crear nova biblioteca"
+
 #: front/src/components/playlists/Form.vue:2
 msgid "Create a new playlist"
 msgstr "Crear unha nova lista de reprodución"
 
-#: front/src/components/auth/Login.vue:17
+#: front/src/components/Sidebar.vue:57 src/components/auth/Login.vue:17
 msgid "Create an account"
 msgstr "Crear unha conta"
 
-#: front/src/components/manage/library/RequestsTable.vue:88
-#: front/src/components/requests/Card.vue:25
-msgid "Create import"
-msgstr "Crear importación"
+#: front/src/views/content/libraries/Form.vue:26
+msgid "Create library"
+msgstr "Crear biblioteca"
 
 #: front/src/components/auth/Signup.vue:51
 msgid "Create my account"
@@ -567,9 +655,9 @@ msgstr "Crear lista reprodución"
 msgid "Create your own radio"
 msgstr "Cree a súa propia radio"
 
-#: front/src/components/federation/LibraryFollowTable.vue:22
-#: front/src/components/manage/library/RequestsTable.vue:52
 #: front/src/components/manage/users/InvitationsTable.vue:40
+#: front/src/components/mixins/Translations.vue:16
+#: front/src/components/mixins/Translations.vue:17
 msgid "Creation date"
 msgstr "Data de creación"
 
@@ -577,17 +665,43 @@ msgstr "Data de creación"
 msgid "Current avatar"
 msgstr "Avatar actual"
 
+#: front/src/views/content/libraries/DetailArea.vue:4
+msgid "Current library"
+msgstr "Biblioteca actual"
+
 #: front/src/components/playlists/PlaylistModal.vue:8
 msgid "Current track"
 msgstr "Canción actual"
 
-#: front/src/components/manage/library/FilesTable.vue:189
-#: front/src/components/manage/library/RequestsTable.vue:195
-#: front/src/components/manage/users/InvitationsTable.vue:166
-#: front/src/views/playlists/Detail.vue:33
+#: front/src/views/content/libraries/Quota.vue:2
+msgid "Current usage"
+msgstr "Uso actual"
+
+#: front/src/views/content/libraries/Detail.vue:27
+msgid "Date"
+msgstr "Data"
+
+#: front/src/components/ShortcutsModal.vue:75
+msgid "Decrease volume"
+msgstr "Baixar volume"
+
+#: front/src/components/manage/library/FilesTable.vue:190
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:61
+#: front/src/components/manage/users/InvitationsTable.vue:167
+#: front/src/views/content/libraries/FilesTable.vue:233
+#: front/src/views/content/libraries/Form.vue:29
+#: src/views/playlists/Detail.vue:33
 msgid "Delete"
 msgstr "Borrar"
 
+#: front/src/views/content/libraries/Form.vue:39
+msgid "Delete library"
+msgstr "Eliminar biblioteca"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:69
+msgid "Delete moderation rule"
+msgstr "Borrar regra de moderación"
+
 #: front/src/views/playlists/Detail.vue:38
 msgid "Delete playlist"
 msgstr "Borrar lista de reprodución"
@@ -596,34 +710,49 @@ msgstr "Borrar lista de reprodución"
 msgid "Delete radio"
 msgstr "Borrar radio"
 
-#: front/src/components/federation/LibraryFollowTable.vue:52
-#: front/src/components/federation/LibraryFollowTable.vue:63
-msgid "Deny"
-msgstr "Denegar"
+#: front/src/views/content/libraries/Form.vue:31
+msgid "Delete this library?"
+msgstr "Eliminar esta biblioteca?"
 
-#: front/src/components/federation/LibraryFollowTable.vue:54
-msgid "Deny access?"
-msgstr "Denegar acceso?"
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:63
+msgid "Delete this moderation rule?"
+msgstr "Eliminar esta regra de moderación?"
 
 #: front/src/components/favorites/List.vue:34
-#: front/src/components/federation/LibraryTrackTable.vue:29
-#: front/src/components/library/Artists.vue:26 src/components/library/Radios.vue:47
+#: src/components/library/Artists.vue:26
+#: front/src/components/library/Radios.vue:47
 #: front/src/components/manage/library/FilesTable.vue:20
-#: front/src/components/manage/library/RequestsTable.vue:20
+#: front/src/components/manage/moderation/AccountsTable.vue:22
+#: front/src/components/manage/moderation/DomainsTable.vue:20
 #: front/src/components/manage/users/UsersTable.vue:20
-#: front/src/views/federation/LibraryList.vue:29 src/views/playlists/List.vue:28
+#: front/src/views/content/libraries/FilesTable.vue:32
+#: front/src/views/playlists/List.vue:28
 msgid "Descending"
 msgstr "Descendente"
 
-#: front/src/components/federation/LibraryCard.vue:50
+#: front/src/components/library/radios/Builder.vue:25
+#: front/src/views/content/libraries/Form.vue:14
+msgid "Description"
+msgstr "Descrición"
+
+#: front/src/views/content/libraries/Card.vue:47
 msgid "Detail"
 msgstr "Detalle"
 
-#: front/src/views/admin/users/UsersDetail.vue:146
-msgid "Determine if the user account is active or not. Inactive users cannot login or use the service."
+#: front/src/views/content/remote/Card.vue:50
+msgid "Details"
+msgstr "Detalles"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:455
+msgid "Determine how much content the user can upload. Leave empty to use the default value of the instance."
 msgstr ""
-"Determina si a conta de usuaria está activa ou non. Usuarias inactivas non "
-"poden conectar ou utilizar o servizo."
+"Indique canto contido pode subir a usuaria. Deixe baldeiro para utilizar o "
+"valor por omisión da instancia."
+
+#: front/src/components/mixins/Translations.vue:8
+#: front/src/components/mixins/Translations.vue:9
+msgid "Determine the visibility level of your activity"
+msgstr "Indique o nivel de visibilidade da súa actividade"
 
 #: front/src/components/auth/Settings.vue:104
 #: front/src/components/auth/SubsonicTokenForm.vue:52
@@ -638,14 +767,30 @@ msgstr "Desactivar o acceso Subsonic"
 msgid "Disable Subsonic API access?"
 msgstr "Desactivar o acceso a API Subsonic?"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:18
+#: front/src/views/admin/moderation/AccountsDetail.vue:128
+#: front/src/views/admin/moderation/AccountsDetail.vue:132
+msgid "Disabled"
+msgstr "Desactivado"
+
 #: front/src/components/auth/SubsonicTokenForm.vue:14
 msgid "Discover how to use Funkwhale from other apps"
 msgstr "Descubra cómo utilizar Funkwhale desde outras apps"
 
-#: front/src/components/library/radios/Builder.vue:26
+#: front/src/views/admin/moderation/AccountsDetail.vue:103
+msgid "Display name"
+msgstr "Mostrar nome"
+
+#: front/src/components/library/radios/Builder.vue:30
 msgid "Display publicly"
 msgstr "Mostrar públicamente"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:122
+msgid "Do not download any media file (audio, album cover, account avatar…) from this account or domain. This will purge existing content as well."
+msgstr ""
+"Non baixar ningún ficheiro de medios (audio, portada, avatar da conta...) de "
+"esta conta ou dominio. Esto eliminará tamén o contido existente."
+
 #: front/src/components/playlists/Editor.vue:42
 msgid "Do you want to clear the playlist \"%{ playlist }\"?"
 msgstr "Quere baldeirar a lista  de reprodución \"%{ playlist }\"?"
@@ -662,101 +807,151 @@ msgstr "Quere eliminar esta lista de reprodución \"%{ playlist }\"?"
 msgid "Do you want to delete the radio \"%{ radio }\"?"
 msgstr "Quere eliminar a radio \"%{ radio }\"?"
 
-#: front/src/components/common/ActionTable.vue:29
+#: front/src/components/common/ActionTable.vue:36
 msgid "Do you want to launch %{ action } on %{ count } element?"
 msgid_plural "Do you want to launch %{ action } on %{ count } elements?"
 msgstr[0] "Quere executar %{ action } sobre %{ count } elemento?"
 msgstr[1] "Quere executar %{ action } sobre %{ count } elementos?"
 
-#: front/src/components/Sidebar.vue:113
+#: front/src/components/Sidebar.vue:107
 msgid "Do you want to restore your previous queue?"
 msgstr "Quere restaurar a súa cola anterior?"
 
-#: front/src/App.vue:38
+#: front/src/components/Footer.vue:31
 msgid "Documentation"
 msgstr "Documentación"
 
-#: front/src/components/audio/track/Table.vue:24 src/components/library/Track.vue:48
+#: front/src/components/manage/moderation/AccountsTable.vue:40
+#: front/src/components/mixins/Translations.vue:34
+#: front/src/views/admin/moderation/AccountsDetail.vue:93
+#: front/src/components/mixins/Translations.vue:35
+msgid "Domain"
+msgstr "Dominio"
+
+#: front/src/views/admin/moderation/Base.vue:5
+#: front/src/views/admin/moderation/DomainsList.vue:3
+#: front/src/views/admin/moderation/DomainsList.vue:48
+msgid "Domains"
+msgstr "Dominios"
+
+#: front/src/components/library/Track.vue:55
 msgid "Download"
 msgstr "Descargar"
 
-#: front/src/components/audio/track/Table.vue:27
-msgid "Download tracks"
-msgstr "Descargar cancións"
-
 #: front/src/components/playlists/Editor.vue:49
 msgid "Drag and drop rows to reorder tracks in the playlist"
 msgstr "Arrastre e solte filas para reordenar as cancións na lista"
 
-#: front/src/components/library/Track.vue:58
+#: front/src/components/audio/track/Table.vue:9
+#: src/components/library/Track.vue:111
 #: front/src/components/manage/library/FilesTable.vue:43
+#: front/src/components/mixins/Translations.vue:30
+#: front/src/views/content/libraries/FilesTable.vue:59
+#: front/src/components/mixins/Translations.vue:31
 msgid "Duration"
 msgstr "Duración"
 
-#: front/src/components/Home.vue:96
+#: front/src/views/auth/EmailConfirm.vue:23
+msgid "E-mail address confirmed"
+msgstr "Enderezo correo-e confirmado"
+
+#: front/src/components/Home.vue:93
 msgid "Easy to use"
 msgstr "Fácil de utilizar"
 
+#: front/src/views/content/libraries/Detail.vue:9
+msgid "Edit"
+msgstr "Editar"
+
 #: front/src/components/About.vue:21
 msgid "Edit instance info"
 msgstr "Editar a info da instancia"
 
-#: front/src/components/radios/Card.vue:20 src/views/playlists/Detail.vue:30
-msgid "Edit..."
-msgstr "Editar..."
+#: front/src/components/radios/Card.vue:22 src/views/playlists/Detail.vue:30
+msgid "Edit…"
+msgstr "Editar…"
 
 #: front/src/components/auth/Signup.vue:29
 #: front/src/components/manage/users/UsersTable.vue:38
 msgid "Email"
 msgstr "Correo-e"
 
-#: front/src/views/admin/users/UsersDetail.vue:29
+#: front/src/views/admin/moderation/AccountsDetail.vue:111
 msgid "Email address"
 msgstr "Enderezo de correo"
 
-#: front/src/views/auth/EmailConfirm.vue:23
-msgid "Email confirmed"
-msgstr "Correo-e confirmado"
+#: front/src/components/library/Album.vue:44
+#: src/components/library/Track.vue:62
+msgid "Embed"
+msgstr "Incrustado"
+
+#: front/src/components/audio/EmbedWizard.vue:20
+msgid "Embed code"
+msgstr "Código incrustado"
+
+#: front/src/components/library/Album.vue:48
+msgid "Embed this album on your website"
+msgstr "Incruste este álbume no seu sitio web"
+
+#: front/src/components/library/Track.vue:66
+msgid "Embed this track on your website"
+msgstr "Incruste esta canción no seu sitio web"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:230
+#: front/src/views/admin/moderation/DomainsDetail.vue:187
+msgid "Emitted library follows"
+msgstr ""
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:214
+#: front/src/views/admin/moderation/DomainsDetail.vue:171
+msgid "Emitted messages"
+msgstr ""
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:8
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:17
+#: front/src/views/admin/moderation/AccountsDetail.vue:127
+#: front/src/views/admin/moderation/AccountsDetail.vue:131
+msgid "Enabled"
+msgstr ""
 
 #: front/src/views/playlists/Detail.vue:29
 msgid "End edition"
 msgstr "Finalizar edición"
 
-#: front/src/components/library/import/FileUpload.vue:4
-msgid "Ensure your music files are properly tagged before uploading them."
-msgstr ""
-"Asegúrese de que os ficheiros de música están etiquetados de xeito adecuado "
-"antes de subilos."
+#: front/src/views/content/remote/ScanForm.vue:50
+#, fuzzy
+msgid "Enter a library URL"
+msgstr "Introduza un nome de dominio de biblioteca..."
 
 #: front/src/components/library/Radios.vue:140
-msgid "Enter a radio name..."
+#, fuzzy
+msgid "Enter a radio name…"
 msgstr "Introduza un nome de unha radio..."
 
 #: front/src/components/library/Artists.vue:118
-msgid "Enter an artist name..."
+#, fuzzy
+msgid "Enter artist name…"
 msgstr "Introduza un nome de un artista..."
 
-#: front/src/views/federation/LibraryList.vue:122
-msgid "Enter an library domain name..."
-msgstr "Introduza un nome de dominio de biblioteca..."
-
-#: front/src/views/playlists/List.vue:104
-msgid "Enter an playlist name..."
+#: front/src/views/playlists/List.vue:107
+#, fuzzy
+msgid "Enter playlist name…"
 msgstr "Introduza un nome de lista de reprodución..."
 
-#: front/src/components/auth/Signup.vue:98
+#: front/src/components/auth/Signup.vue:100
 msgid "Enter your email"
 msgstr "Introduza o seu correo-e"
 
-#: front/src/components/auth/Signup.vue:96
+#: front/src/components/auth/Signup.vue:96 src/components/auth/Signup.vue:97
 msgid "Enter your invitation code (case insensitive)"
 msgstr "Introduza o seu código de convite (dif. maiúsculas)"
 
 #: front/src/components/metadata/Search.vue:114
-msgid "Enter your search query..."
+#, fuzzy
+msgid "Enter your search query…"
 msgstr "Introduza os termos de busca..."
 
-#: front/src/components/auth/Signup.vue:97
+#: front/src/components/auth/Signup.vue:99
 msgid "Enter your username"
 msgstr "Introduza o nome de usuaria"
 
@@ -765,6 +960,7 @@ msgid "Enter your username or email"
 msgstr "Introduza o nome de usuaria ou correo-e"
 
 #: front/src/components/auth/SubsonicTokenForm.vue:20
+#: front/src/views/content/libraries/Form.vue:4
 msgid "Error"
 msgstr "Fallo"
 
@@ -772,7 +968,7 @@ msgstr "Fallo"
 msgid "Error reporting"
 msgstr "Fallo ao informar"
 
-#: front/src/components/common/ActionTable.vue:75
+#: front/src/components/common/ActionTable.vue:92
 msgid "Error while applying action"
 msgstr "Fallo mentres se aplicaba a acción"
 
@@ -784,45 +980,61 @@ msgstr "Fallo ao solicitar o restablecemento do contrasinal"
 msgid "Error while changing your password"
 msgstr "Fallo ao intentar cambiar o contrasinal"
 
-#: front/src/views/auth/EmailConfirm.vue:7
-msgid "Error while confirming your email"
-msgstr "Fallo ao confirmar o enderezo de correo"
+#: front/src/views/admin/moderation/DomainsList.vue:6
+#, fuzzy
+msgid "Error while creating domain"
+msgstr "Fallo ao crear o convite"
 
 #: front/src/components/manage/users/InvitationForm.vue:4
 msgid "Error while creating invitation"
 msgstr "Fallo ao crear o convite"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:7
+#, fuzzy
+msgid "Error while creating rule"
+msgstr "Fallo ao crear o convite"
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:126
+#, fuzzy
+msgid "Error while fetching node info"
+msgstr "Fallo ao crear o convite"
+
 #: front/src/components/admin/SettingsGroup.vue:5
 msgid "Error while saving settings"
 msgstr "Fallo ao gardar os axustes"
 
-#: front/src/components/federation/LibraryForm.vue:10
-msgid "Error while scanning library"
-msgstr "Fallo ao escanear a biblioteca"
-
-#: front/src/components/library/import/BatchDetail.vue:41
-#: front/src/components/library/import/BatchDetail.vue:70
-#: front/src/components/library/import/BatchList.vue:15
+#: front/src/views/content/libraries/FilesTable.vue:212
 msgid "Errored"
 msgstr "Con fallo"
 
+#: front/src/views/content/libraries/Quota.vue:75
+#, fuzzy
+msgid "Errored files"
+msgstr "Con fallo"
+
 #: front/src/components/playlists/Form.vue:89
 msgid "Everyone"
 msgstr "Todas"
 
+#: front/src/components/mixins/Translations.vue:11
 #: front/src/components/playlists/Form.vue:85
+#: src/views/content/libraries/Form.vue:73
+#: front/src/components/mixins/Translations.vue:12
 msgid "Everyone on this instance"
 msgstr "Todas en esta instancia"
 
-#: front/src/components/library/radios/Builder.vue:57
+#: front/src/views/content/libraries/Form.vue:74
+#, fuzzy
+msgid "Everyone, across all instances"
+msgstr "Todas en esta instancia"
+
+#: front/src/components/library/radios/Builder.vue:61
 msgid "Exclude"
 msgstr "Excluír"
 
-#: front/src/components/discussion/Comment.vue:14
-msgid "Expand"
-msgstr "Despregar"
-
 #: front/src/components/manage/users/InvitationsTable.vue:41
+#: front/src/components/mixins/Translations.vue:22
+#: front/src/components/mixins/Translations.vue:23
 msgid "Expiration date"
 msgstr "Data de caducidade"
 
@@ -834,123 +1046,98 @@ msgstr "Caducado"
 msgid "Expired/used"
 msgstr "Caducado/utilizado"
 
-#: front/src/components/library/import/Main.vue:65
-msgid "External source. Supported backends"
-msgstr "Fonte externa. Xestións soportadas"
-
-#: front/src/components/Sidebar.vue:51
-msgid "Favorites"
-msgstr "Favoritas"
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:110
+msgid "Explain why you're applying this policy. Depending on your instance configuration, this will help you remember why you acted on this account or domain, and may be displayed publicly to help users understand what moderation rules are in place."
+msgstr ""
 
-#: front/src/components/federation/LibraryForm.vue:3
-msgid "Federate with a new instance"
-msgstr "Federar con unha nova instancia"
+#: front/src/views/content/libraries/FilesTable.vue:16
+msgid "Failed"
+msgstr ""
 
-#: front/src/views/federation/LibraryTrackList.vue:21
-msgid "Federated tracks"
+#: front/src/views/content/remote/Card.vue:58
+#, fuzzy
+msgid "Failed tracks:"
 msgstr "Cancións federadas"
 
-#: front/src/components/Sidebar.vue:87 src/components/library/import/BatchList.vue:25
-#: front/src/components/manage/users/UsersTable.vue:180
-#: front/src/views/admin/Settings.vue:84 src/views/admin/users/UsersDetail.vue:161
-#: front/src/views/federation/Base.vue:35 src/views/federation/LibraryDetail.vue:40
+#: front/src/components/Sidebar.vue:66
+msgid "Favorites"
+msgstr "Favoritas"
+
+#: front/src/views/admin/Settings.vue:84
 msgid "Federation"
 msgstr "Federación"
 
-#: front/src/views/federation/LibraryDetail.vue:3
-msgid "File mirroring"
-msgstr "Espellado de ficheiros"
-
-#: front/src/components/library/import/FileUpload.vue:43
-msgid "File name"
+#: front/src/components/library/FileUpload.vue:84
+#, fuzzy
+msgid "Filename"
 msgstr "Nome do ficheiro"
 
-#: front/src/components/library/import/Main.vue:76
-msgid "File upload"
-msgstr "Subir ficheiro"
-
-#: front/src/views/admin/library/Base.vue:5 src/views/admin/library/FilesList.vue:21
+#: front/src/views/admin/library/Base.vue:5
+#: src/views/admin/library/FilesList.vue:21
 msgid "Files"
 msgstr "Ficheiros"
 
-#: front/src/components/library/import/ArtistImport.vue:7
-msgid "Filter album types"
-msgstr "Filtrar tipos de álbume"
-
-#: front/src/components/library/radios/Builder.vue:56
+#: front/src/components/library/radios/Builder.vue:60
 msgid "Filter name"
 msgstr "Nome do filtro"
 
-#: front/src/components/library/import/Main.vue:52
-msgid "Finish import"
-msgstr "Rematar importación"
-
-#: front/src/components/library/import/BatchDetail.vue:54
+#: front/src/views/content/libraries/FilesTable.vue:17
+#: front/src/views/content/libraries/FilesTable.vue:216
 msgid "Finished"
 msgstr "Rematado"
 
-#: front/src/components/library/import/Main.vue:59
-msgid "First, choose where you want to import the music from"
-msgstr "Primeiro, escolla de onde quere importar a música"
+#: front/src/components/manage/moderation/AccountsTable.vue:42
+#: front/src/components/manage/moderation/DomainsTable.vue:41
+#: front/src/views/admin/moderation/AccountsDetail.vue:159
+#: front/src/views/admin/moderation/DomainsDetail.vue:78
+msgid "First seen"
+msgstr ""
+
+#: front/src/components/mixins/Translations.vue:17
+#: front/src/components/mixins/Translations.vue:18
+#, fuzzy
+msgid "First seen date"
+msgstr "Data de caducidade"
 
-#: front/src/components/federation/LibraryCard.vue:44
+#: front/src/views/content/remote/Card.vue:83
 msgid "Follow"
 msgstr "Seguir"
 
-#: front/src/components/federation/LibraryCard.vue:36
+#: front/src/views/content/Home.vue:16
+msgid "Follow remote libraries"
+msgstr ""
+
+#: front/src/views/content/remote/Card.vue:88
 msgid "Follow request pending approval"
 msgstr "Solicitude de seguimento pendente de aprobación"
 
-#: front/src/views/federation/LibraryDetail.vue:21
-msgid "Follow status"
-msgstr "Estado do seguimento"
-
-#: front/src/views/federation/Base.vue:13
-#: front/src/views/federation/LibraryFollowersList.vue:24
+#: front/src/components/mixins/Translations.vue:38
+#: front/src/views/content/libraries/Detail.vue:7
+#: front/src/components/mixins/Translations.vue:39
 msgid "Followers"
 msgstr "Seguidoras"
 
-#: front/src/components/federation/LibraryCard.vue:18
-msgid "Followers only"
-msgstr "Só seguidoras"
-
-#: front/src/components/federation/LibraryCard.vue:15
-#: front/src/views/federation/LibraryDetail.vue:29
+#: front/src/views/content/remote/Card.vue:93
 msgid "Following"
 msgstr "Seguindo"
 
-#: front/src/components/activity/Like.vue:12 src/components/activity/Listen.vue:12
-msgid "from %{ album } by %{ artist }"
-msgstr "de %{ album } por %{ artist }"
-
-#: front/src/components/library/Track.vue:13
+#: front/src/components/library/Track.vue:17
 msgid "From album %{ album } by %{ artist }"
 msgstr "Do álbume %{ album } de %{ artist }"
 
-#: front/src/App.vue:56
-msgid "Funkwhale is a free and open-source project run by volunteers. You can help us improve the platform by reporting bugs, suggesting features and share the project with your friends!"
-msgstr ""
-"Funkwhale é un proxecto de software libre e aberto xestionado por "
-"voluntarias. Pode axudarnos a mellorar a plataforma informando de fallos, "
-"suxerindo características e compartindo o proxecto coas amizades!"
-
 #: front/src/components/auth/SubsonicTokenForm.vue:7
 msgid "Funkwhale is compatible with other music players that support the Subsonic API."
-msgstr ""
-"Funkwhale é compatible con outros reprodutores de música compatibles coa API "
-"Subsonic."
+msgstr "Funkwhale é compatible con outros reprodutores de música compatibles coa API Subsonic."
 
-#: front/src/components/Home.vue:98
+#: front/src/components/Home.vue:95
 msgid "Funkwhale is dead simple to use."
 msgstr "Funckwhale élle ben doado de utilizar."
 
 #: front/src/components/Home.vue:39
 msgid "Funkwhale is designed to make it easy to listen to music you like, or to discover new artists."
-msgstr ""
-"Funkwhale está deseñado para escoitar facilmente a música que lle gusta ou "
-"descubrir novos artistas."
+msgstr "Funkwhale está deseñado para escoitar facilmente a música que lle gusta ou descubrir novos artistas."
 
-#: front/src/components/Home.vue:119
+#: front/src/components/Home.vue:116
 msgid "Funkwhale is free and gives you control on your music."
 msgstr "Funkwhale é gratuíto e dalle o control sobre a súa música."
 
@@ -958,6 +1145,10 @@ msgstr "Funkwhale é gratuíto e dalle o control sobre a súa música."
 msgid "Funkwhale takes care of handling your music"
 msgstr "Funkwhale ocúpase de xestionar a súa música"
 
+#: front/src/components/ShortcutsModal.vue:38
+msgid "General shortcuts"
+msgstr ""
+
 #: front/src/components/manage/users/InvitationForm.vue:16
 msgid "Get a new invitation"
 msgstr "Obter un novo convite"
@@ -966,20 +1157,27 @@ msgstr "Obter un novo convite"
 msgid "Get me to the library"
 msgstr "Lévame a biblioteca"
 
-#: front/src/components/Home.vue:77
-msgid ""
-"Get quality metadata about your music thanks to\n"
-"              <a href=\"https://musicbrainz.org\" target=\"_blank\">\n"
-"                MusicBrainz\n"
-"              </a>"
+#: front/src/components/Home.vue:76
+#, fuzzy
+msgid "Get quality metadata about your music thanks to <a href=\"%{ url }\" target=\"_blank\">MusicBrainz</a>"
 msgstr ""
 "Obteña metadatos de calidade sobre a súa música grazas a\n"
 "              <a href=\"https://musicbrainz.org\" target=\"_blank\">\n"
 "                MusicBrainz\n"
 "              </a>"
 
-#: front/src/components/common/ActionTable.vue:21
-#: front/src/components/common/ActionTable.vue:27
+#: front/src/views/content/Home.vue:12 src/views/content/Home.vue:19
+#, fuzzy
+msgid "Get started"
+msgstr "Seguinte paso"
+
+#: front/src/components/Footer.vue:37
+#, fuzzy
+msgid "Getting help"
+msgstr "Axustes"
+
+#: front/src/components/common/ActionTable.vue:34
+#: front/src/components/common/ActionTable.vue:54
 msgid "Go"
 msgstr "Ir"
 
@@ -987,13 +1185,9 @@ msgstr "Ir"
 msgid "Go to home page"
 msgstr "Ir ao inicio"
 
-#: front/src/components/library/import/Main.vue:13
-msgid "Grab corresponding metadata"
-msgstr "Colla os metadatos correspondentes"
-
-#: front/src/App.vue:74
-msgid "Help us translate Funkwhale"
-msgstr "Axúdenos a traducir Funkwhale"
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:114
+msgid "Hide account or domain content, except from followers."
+msgstr ""
 
 #: front/src/components/library/Home.vue:65
 msgid "Home"
@@ -1005,131 +1199,51 @@ msgstr "Horas de música"
 
 #: front/src/components/auth/SubsonicTokenForm.vue:11
 msgid "However, accessing Funkwhale from those clients require a separate password you can set below."
-msgstr ""
-"Porén, o acceso a Funkwhale desde estos outros clientes precisa un "
-"contrasinal separado que pode establecer aquí abaixo."
-
-#: front/src/components/library/import/BatchList.vue:34
-msgid "ID"
-msgstr "ID"
+msgstr "Porén, o acceso a Funkwhale desde estos outros clientes precisa un contrasinal separado que pode establecer aquí abaixo."
 
 #: front/src/views/auth/PasswordResetConfirm.vue:24
 msgid "If the email address provided in the previous step is valid and binded to a user account, you should receive an email with reset instructions in the next couple of minutes."
-msgstr ""
-"Si o enderezo de correo proporcionado no paso anterior é válido e ligado a "
-"unha conta de usuaria, debería recibir un correo coas instrucións de "
-"restablecemento nun par de minutos."
-
-#: front/src/components/federation/LibraryTrackTable.vue:196
-#: front/src/components/library/Library.vue:17
-msgid "Import"
-msgstr "Importar"
-
-#: front/src/components/federation/LibraryTrackTable.vue:57
-msgid "Import #%{ id } launched"
-msgstr "Importación #%{ id } iniciada"
-
-#: front/src/components/library/import/Main.vue:38
-msgid "Import %{ count } track"
-msgid_plural "Import %{ count } tracks"
-msgstr[0] "Importar %{ count } canción"
-msgstr[1] "Importar %{ count } cancións"
-
-#: front/src/components/library/import/BatchDetail.vue:10
-msgid "Import batch"
-msgstr "Importar lote"
-
-#: front/src/components/library/import/BatchDetail.vue:185
-msgid "Import Batch #%{ id }"
-msgstr "Importar Lote #%{ id }"
-
-#: front/src/components/library/Library.vue:20
-msgid "Import batches"
-msgstr "Lotes de importación"
-
-#: front/src/components/library/import/BatchList.vue:117
-msgid "Import Batches"
-msgstr "Lotes de Importación"
+msgstr "Si o enderezo de correo proporcionado no paso anterior é válido e ligado a unha conta de usuaria, debería recibir un correo coas instrucións de restablecemento nun par de minutos."
 
 #: front/src/components/manage/library/FilesTable.vue:40
-#: front/src/components/manage/library/RequestsTable.vue:53
 msgid "Import date"
 msgstr "Data de importación"
 
-#: front/src/components/library/import/FileUpload.vue:38
-msgid "Import detail page"
-msgstr "Páxina de detalle da importación"
-
-#: front/src/components/Sidebar.vue:81
-msgid "Import music"
-msgstr "Importar música"
-
-#: front/src/components/library/import/Main.vue:267
-msgid "Import Music"
-msgstr "Importar Música"
-
 #: front/src/components/Home.vue:71
 msgid "Import music from various platforms, such as YouTube or SoundCloud"
-msgstr ""
-"Importar música desde varias plataformas, tales como YouTube ou SoundCloud"
-
-#: front/src/components/federation/LibraryTrackTable.vue:14
-#: front/src/components/federation/LibraryTrackTable.vue:66
-msgid "Import pending"
-msgstr "Pendente de importación"
+msgstr "Importar música desde varias plataformas, tales como YouTube ou SoundCloud"
 
-#: front/src/views/admin/library/Base.vue:9
-#: front/src/views/admin/library/RequestsList.vue:3
-#: front/src/views/admin/library/RequestsList.vue:21
-msgid "Import requests"
-msgstr "Peticións de importación"
-
-#: front/src/components/library/import/BatchList.vue:20
-#: front/src/components/library/import/Main.vue:6
-msgid "Import source"
+#: front/src/components/library/FileUpload.vue:51
+#, fuzzy
+msgid "Import reference"
 msgstr "Fonte de importación"
 
-#: front/src/components/federation/LibraryTrackTable.vue:9
+#: front/src/views/content/libraries/FilesTable.vue:11
+#: front/src/views/content/libraries/FilesTable.vue:58
 msgid "Import status"
 msgstr "Estado da importación"
 
-#: front/src/components/library/import/ReleaseImport.vue:14
-msgid "Import this release"
-msgstr "Importar esta publicación"
-
-#: front/src/components/library/import/TrackImport.vue:11
-msgid "Import this track"
-msgstr "Importar esta canción"
-
-#: front/src/components/federation/LibraryTrackTable.vue:12
-#: front/src/components/manage/library/RequestsTable.vue:29
-#: front/src/components/manage/library/RequestsTable.vue:61
+#: front/src/views/content/libraries/FilesTable.vue:217
 msgid "Imported"
 msgstr "Importado"
 
-#: front/src/components/library/import/TrackImport.vue:44
-msgid "Imported URL"
-msgstr "URL importado"
-
-#: front/src/views/admin/Settings.vue:82
-msgid "Imports"
-msgstr "Importancións"
+#: front/src/components/mixins/Translations.vue:21
+#: front/src/components/mixins/Translations.vue:22
+#, fuzzy
+msgid "Imported date"
+msgstr "Data de importación"
 
 #: front/src/components/favorites/TrackFavoriteIcon.vue:3
 msgid "In favorites"
 msgstr "Nas favoritas"
 
-#: front/src/components/federation/LibraryTrackTable.vue:65
-msgid "In library"
-msgstr "Na biblioteca"
-
 #: front/src/components/manage/users/UsersTable.vue:54
 msgid "Inactive"
 msgstr "Non activo"
 
-#: front/src/components/library/import/Main.vue:96
-msgid "Input a MusicBrainz ID manually:"
-msgstr "Introducir un ID MusicBrainz manualmente:"
+#: front/src/components/ShortcutsModal.vue:71
+msgid "Increase volume"
+msgstr ""
 
 #: front/src/views/auth/PasswordReset.vue:53
 msgid "Input the email address binded to your account"
@@ -1141,6 +1255,11 @@ msgid_plural "Insert from queue (%{ count } tracks)"
 msgstr[0] "Introducir desde a cola  (%{ count } canción)"
 msgstr[1] "Introducir desde a cola  (%{ count } cancións)"
 
+#: front/src/views/admin/moderation/DomainsDetail.vue:71
+#, fuzzy
+msgid "Instance data"
+msgstr "Radios da instancia"
+
 #: front/src/views/admin/Settings.vue:80
 msgid "Instance information"
 msgstr "Información da instancia"
@@ -1153,9 +1272,10 @@ msgstr "Radios da instancia"
 msgid "Instance settings"
 msgstr "Axustes da instancia"
 
-#: front/src/views/instance/Timeline.vue:57
-msgid "Instance Timeline"
-msgstr "Liña temporal da instancia"
+#: front/src/components/library/FileUpload.vue:229
+#: front/src/components/library/FileUpload.vue:230
+msgid "Invalid file type, ensure you are uploading an audio file. Supported file extensions are %{ extensions }"
+msgstr ""
 
 #: front/src/components/auth/Signup.vue:42
 #: front/src/components/manage/users/InvitationForm.vue:11
@@ -1166,56 +1286,70 @@ msgstr "Código do convite"
 msgid "Invitation code (optional)"
 msgstr "Código do convite (optativo)"
 
-#: front/src/views/admin/users/Base.vue:8 src/views/admin/users/InvitationsList.vue:3
+#: front/src/views/admin/users/Base.vue:8
+#: src/views/admin/users/InvitationsList.vue:3
 #: front/src/views/admin/users/InvitationsList.vue:24
 msgid "Invitations"
 msgstr "Convites"
 
-#: front/src/App.vue:43
+#: front/src/components/Footer.vue:41
 msgid "Issue tracker"
 msgstr "Seguimento de problemas"
 
-#: front/src/components/library/import/BatchDetail.vue:80
-msgid "Job ID"
-msgstr "ID do traballo"
-
-#: front/src/components/library/import/BatchList.vue:36
-msgid "Jobs"
-msgstr "Traballos"
-
 #: front/src/components/Home.vue:50
 msgid "Keep a track of your favorite songs"
 msgstr "Faga seguimento das súas cancións favoritas"
 
-#: front/src/components/audio/track/Table.vue:33
-msgid "Keep your PRIVATE_TOKEN secret as it gives access to your account."
-msgstr "Manteña o TESTEMUÑO_PRIVADO segredamente xa que da acceso a súa conta."
+#: front/src/components/Footer.vue:33 src/components/ShortcutsModal.vue:3
+msgid "Keyboard shortcuts"
+msgstr ""
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:161
+#, fuzzy
+msgid "Known accounts"
+msgstr "A miña conta"
+
+#: front/src/views/content/remote/Home.vue:14
+#, fuzzy
+msgid "Known libraries"
+msgstr "Buscando nas bibliotecas"
 
 #: front/src/components/manage/users/UsersTable.vue:41
-#: front/src/views/admin/users/UsersDetail.vue:45
+#: front/src/components/mixins/Translations.vue:32
+#: front/src/views/admin/moderation/AccountsDetail.vue:184
+#: front/src/components/mixins/Translations.vue:33
 msgid "Last activity"
 msgstr "Última actividade"
 
-#: front/src/views/federation/LibraryDetail.vue:101
-msgid "Last fetched"
+#: front/src/views/admin/moderation/AccountsDetail.vue:167
+#: front/src/views/admin/moderation/DomainsDetail.vue:86
+#, fuzzy
+msgid "Last checked"
 msgstr "Última obtida"
 
 #: front/src/components/playlists/PlaylistModal.vue:32
 msgid "Last modification"
 msgstr "Última modificación"
 
-#: front/src/components/common/ActionTable.vue:39
-msgid "Launch"
-msgstr "Lanzar"
+#: front/src/components/manage/moderation/AccountsTable.vue:43
+#, fuzzy
+msgid "Last seen"
+msgstr "Última obtida"
 
-#: front/src/components/library/import/BatchDetail.vue:18
-#: front/src/components/library/import/BatchList.vue:35
-msgid "Launch date"
+#: front/src/components/mixins/Translations.vue:18
+#: front/src/components/mixins/Translations.vue:19
+#, fuzzy
+msgid "Last seen date"
 msgstr "Data de lanzamento"
 
-#: front/src/components/federation/LibraryForm.vue:31
-msgid "Launch scan"
-msgstr "Lanzar escaneado"
+#: front/src/views/content/remote/Card.vue:56
+#, fuzzy
+msgid "Last update:"
+msgstr "Lista de reprodución actualizada"
+
+#: front/src/components/common/ActionTable.vue:47
+msgid "Launch"
+msgstr "Lanzar"
 
 #: front/src/components/Home.vue:10
 msgid "Learn more about this instance"
@@ -1225,51 +1359,90 @@ msgstr "Coñeza máis sobre esta instancia"
 msgid "Leave empty for a random code"
 msgstr "Deixar baldeiro para un código aleatorio"
 
-#: front/src/components/requests/Form.vue:10
-msgid "Leave this field empty if you're requesting the whole discography."
-msgstr "Deixe este campo baldeiro si está solicitando a discografía completa."
+#: front/src/components/audio/EmbedWizard.vue:7
+#, fuzzy
+msgid "Leave empty for a responsive widget"
+msgstr "Deixar baldeiro para un código aleatorio"
 
-#: front/src/views/federation/Base.vue:5 src/views/federation/LibraryList.vue:123
+#: front/src/views/admin/moderation/AccountsDetail.vue:297
+#: front/src/views/admin/moderation/DomainsDetail.vue:233
+#: front/src/views/content/Base.vue:5
 msgid "Libraries"
 msgstr "Bibliotecas"
 
-#: front/src/components/Sidebar.vue:70
-#: front/src/components/federation/LibraryTrackTable.vue:51
+#: front/src/views/content/libraries/Form.vue:2
+msgid "Libraries help you organize and share your music collections. You can upload your own music collection to Funkwhale and share it with your friends and family."
+msgstr ""
+
 #: front/src/components/instance/Stats.vue:30
-#: front/src/components/manage/users/UsersTable.vue:176
-#: front/src/views/admin/users/UsersDetail.vue:157
-#: front/src/views/federation/LibraryDetail.vue:194
+#: front/src/components/manage/users/UsersTable.vue:173
+#: front/src/views/admin/moderation/AccountsDetail.vue:464
 msgid "Library"
 msgstr "Biblioteca"
 
+#: front/src/views/content/libraries/Form.vue:109
+#, fuzzy
+msgid "Library created"
+msgstr "Nome da biblioteca"
+
+#: front/src/views/content/libraries/Form.vue:129
+#, fuzzy
+msgid "Library deleted"
+msgstr "Ficheiros de biblioteca"
+
 #: front/src/views/admin/library/FilesList.vue:3
 msgid "Library files"
 msgstr "Ficheiros de biblioteca"
 
-#: front/src/components/federation/LibraryForm.vue:20
-msgid "Library name"
+#: front/src/views/content/libraries/Form.vue:106
+#, fuzzy
+msgid "Library updated"
 msgstr "Nome da biblioteca"
 
-#: front/src/views/federation/LibraryDetail.vue:84
-msgid "Library size"
-msgstr "Tamaño da biblioteca"
+#: front/src/components/library/Track.vue:100
+msgid "License"
+msgstr ""
+
+#: front/src/views/content/libraries/Detail.vue:21
+#, fuzzy
+msgid "Loading followers…"
+msgstr "Buscando seguidoras"
+
+#: front/src/views/content/libraries/Home.vue:3
+#, fuzzy
+msgid "Loading Libraries…"
+msgstr "Buscando nas bibliotecas"
 
-#: front/src/components/federation/LibraryForm.vue:96
-msgid "library@demo.funkwhale.audio"
-msgstr "library@demo.funkwhale.audio"
+#: front/src/views/content/libraries/Detail.vue:3
+#: front/src/views/content/libraries/Upload.vue:3
+msgid "Loading library data…"
+msgstr ""
 
-#: front/src/App.vue:29
-msgid "Links"
-msgstr "Ligazóns"
+#: front/src/views/Notifications.vue:4
+#, fuzzy
+msgid "Loading notifications…"
+msgstr "Última modificación"
 
-#: front/src/views/instance/Timeline.vue:4
-msgid "Loading timeline..."
+#: front/src/views/content/remote/Home.vue:3
+#, fuzzy
+msgid "Loading remote libraries..."
 msgstr "Cargando liña temporal..."
 
+#: front/src/views/content/libraries/Quota.vue:4
+msgid "Loading usage data…"
+msgstr ""
+
 #: front/src/components/favorites/List.vue:5
-msgid "Loading your favorites..."
+#, fuzzy
+msgid "Loading your favorites…"
 msgstr "Cargando favoritas..."
 
+#: front/src/components/manage/moderation/AccountsTable.vue:59
+#: front/src/views/admin/moderation/AccountsDetail.vue:18
+#, fuzzy
+msgid "Local account"
+msgstr "A miña conta"
+
 #: front/src/components/auth/Login.vue:78
 msgid "Log In"
 msgstr "Conectar"
@@ -1286,31 +1459,47 @@ msgstr "Desconectar"
 msgid "Logged in as %{ username }"
 msgstr "Conectada como %{ username }"
 
-#: front/src/components/Sidebar.vue:44 src/components/auth/Login.vue:41
+#: front/src/components/Sidebar.vue:54 src/components/auth/Login.vue:41
 msgid "Login"
 msgstr "Conectar"
 
-#: front/src/components/Sidebar.vue:43
+#: front/src/views/admin/moderation/AccountsDetail.vue:119
+#, fuzzy
+msgid "Login status"
+msgstr "Estado da conta"
+
+#: front/src/components/Sidebar.vue:52
 msgid "Logout"
 msgstr "Desconectar"
 
-#: front/src/components/audio/Player.vue:266
+#: front/src/views/content/libraries/Home.vue:9
+msgid "Looks like you don't have a library, it's time to create one."
+msgstr ""
+
+#: front/src/components/audio/Player.vue:353
+#: src/components/audio/Player.vue:354
 msgid "Looping disabled. Click to switch to single-track looping."
 msgstr "Bucle desactivado. Pulse para cambiar ao bucle de unha soa canción."
 
-#: front/src/components/audio/Player.vue:267
+#: front/src/components/audio/Player.vue:356
+#: src/components/audio/Player.vue:357
 msgid "Looping on a single track. Click to switch to whole queue looping."
 msgstr "Bucle de unha canción. Pulse para cambiar a bucle de toda a cola."
 
-#: front/src/components/audio/Player.vue:268
+#: front/src/components/audio/Player.vue:359
+#: src/components/audio/Player.vue:360
 msgid "Looping on whole queue. Click to disable looping."
 msgstr "Bucle de toda a cola. Pulse para desactivar o bucle."
 
-#: front/src/components/library/Track.vue:94
+#: front/src/components/library/Track.vue:150
 msgid "Lyrics"
 msgstr "Letras"
 
-#: front/src/views/admin/library/Base.vue:25
+#: front/src/components/Sidebar.vue:210
+msgid "Main menu"
+msgstr ""
+
+#: front/src/views/admin/library/Base.vue:16
 msgid "Manage library"
 msgstr "Xestionar biblioteca"
 
@@ -1326,43 +1515,57 @@ msgstr "Xestionar usuarias"
 msgid "Manage your playlists"
 msgstr "Xestionar as súas listas de reprodución"
 
-#: front/src/components/manage/library/RequestsTable.vue:197
-msgid "Mark as closed"
-msgstr "Marcar como pechado"
+#: front/src/views/Notifications.vue:17
+#, fuzzy
+msgid "Mark all as read"
+msgstr "Marcar como importado"
+
+#: front/src/components/notifications/NotificationRow.vue:44
+#, fuzzy
+msgid "Mark as read"
+msgstr "Marcar como importado"
 
-#: front/src/components/manage/library/RequestsTable.vue:196
-msgid "Mark as imported"
+#: front/src/components/notifications/NotificationRow.vue:45
+#, fuzzy
+msgid "Mark as unread"
 msgstr "Marcar como importado"
 
-#: front/src/components/library/import/Main.vue:12
-msgid "Metadata"
-msgstr "Metadatos"
+#: front/src/views/admin/moderation/AccountsDetail.vue:281
+msgid "MB"
+msgstr ""
 
-#: front/src/components/library/import/Main.vue:115
-msgid ""
-"Metadata is the data related to the music you want to import. This includes all the information about the artists, albums and tracks. In order to have a high quality library, it is recommended to grab data from the\n"
-"            <a href=\"https://musicbrainz.org\" target=\"_blank\">\n"
-"              MusicBrainz\n"
-"            </a>\n"
-"            project, which you can think about as the Wikipedia of music."
-msgstr ""
-"Os metadatos son os datos relacionados coa música que quere importar. Esto "
-"inclúe toda a información sobre os artistas, álbumes e cancións. Para poder "
-"ter unha boa biblioteca recoméndase obter os datos desde o proxecto\n"
-"            <a href=\"https://musicbrainz.org\" target=\"_blank\">\n"
-"              MusicBrainz\n"
-"            </a>\n"
-"            que pode considerarse como a Wikipedia da música."
-
-#: front/src/components/Sidebar.vue:48 src/components/library/import/Main.vue:18
+#: front/src/components/audio/Player.vue:346
+msgid "Media player"
+msgstr ""
+
+#: front/src/components/Footer.vue:32
+msgid "Mobile and desktop apps"
+msgstr ""
+
+#: front/src/components/Sidebar.vue:97
+#: src/components/manage/users/UsersTable.vue:177
+#: front/src/views/admin/moderation/AccountsDetail.vue:468
+#: front/src/views/admin/moderation/Base.vue:21
+#, fuzzy
+msgid "Moderation"
+msgstr "Federación"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:49
+#: front/src/views/admin/moderation/DomainsDetail.vue:42
+msgid "Moderation policies help you control how your instance interact with a given domain or account."
+msgstr ""
+
+#: front/src/components/mixins/Translations.vue:20
+#: front/src/components/mixins/Translations.vue:21
+#, fuzzy
+msgid "Modification date"
+msgstr "Data de caducidade"
+
+#: front/src/components/Sidebar.vue:63 src/views/admin/Settings.vue:82
 msgid "Music"
 msgstr "Música"
 
-#: front/src/components/library/import/Main.vue:147
-msgid "Music request"
-msgstr "Petición de música"
-
-#: front/src/components/audio/Player.vue:265
+#: front/src/components/audio/Player.vue:352
 msgid "Mute"
 msgstr "Acalar"
 
@@ -1370,30 +1573,55 @@ msgstr "Acalar"
 msgid "My account"
 msgstr "A miña conta"
 
+#: front/src/components/library/radios/Builder.vue:236
+#, fuzzy
+msgid "My awesome description"
+msgstr "A miña increíble radio"
+
+#: front/src/views/content/libraries/Form.vue:70
+#, fuzzy
+msgid "My awesome library"
+msgstr "A miña increíble radio"
+
 #: front/src/components/playlists/Form.vue:74
 msgid "My awesome playlist"
 msgstr "A miña fantástica lista"
 
-#: front/src/components/library/radios/Builder.vue:227
+#: front/src/components/library/radios/Builder.vue:235
 msgid "My awesome radio"
 msgstr "A miña increíble radio"
 
-#: front/src/components/library/Track.vue:64 src/components/library/Track.vue:75
-#: front/src/components/library/Track.vue:86
+#: front/src/views/content/libraries/Home.vue:6
+#, fuzzy
+msgid "My libraries"
+msgstr "Bibliotecas"
+
+#: front/src/components/audio/track/Row.vue:40
+#: src/components/library/Track.vue:115
+#: front/src/components/library/Track.vue:124
+#: src/components/library/Track.vue:133
+#: front/src/components/library/Track.vue:142
 #: front/src/components/manage/library/FilesTable.vue:63
 #: front/src/components/manage/library/FilesTable.vue:69
 #: front/src/components/manage/library/FilesTable.vue:75
 #: front/src/components/manage/library/FilesTable.vue:81
-#: front/src/components/manage/library/RequestsTable.vue:71
-#: front/src/components/manage/library/RequestsTable.vue:75
-#: front/src/components/manage/library/RequestsTable.vue:82
 #: front/src/components/manage/users/UsersTable.vue:61
-#: front/src/views/admin/users/UsersDetail.vue:49
+#: front/src/views/admin/moderation/AccountsDetail.vue:171
+#: front/src/views/admin/moderation/DomainsDetail.vue:90
+#: front/src/views/content/libraries/FilesTable.vue:92
+#: front/src/views/content/libraries/FilesTable.vue:98
+#: front/src/views/admin/moderation/DomainsDetail.vue:109
+#: front/src/views/admin/moderation/DomainsDetail.vue:117
 msgid "N/A"
 msgstr "N/A"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:39
+#: front/src/components/manage/moderation/DomainsTable.vue:38
+#: front/src/components/mixins/Translations.vue:26
 #: front/src/components/playlists/PlaylistModal.vue:31
-#: front/src/views/admin/users/UsersDetail.vue:21
+#: front/src/views/admin/moderation/DomainsDetail.vue:105
+#: front/src/views/content/libraries/Form.vue:10
+#: front/src/components/mixins/Translations.vue:27
 msgid "Name"
 msgstr "Nome"
 
@@ -1402,48 +1630,66 @@ msgstr "Nome"
 msgid "New password"
 msgstr "Novo contrasinal"
 
-#: front/src/components/Sidebar.vue:158
+#: front/src/components/Sidebar.vue:160
 msgid "New tracks will be appended here automatically."
 msgstr "As novas cancións engadiranse aquí automáticamente."
 
-#: front/src/components/library/import/Main.vue:29
-msgid "Next step"
-msgstr "Seguinte paso"
-
-#: front/src/components/audio/Player.vue:263
+#: front/src/components/audio/Player.vue:350
 msgid "Next track"
 msgstr "Seguinte canción"
 
-#: front/src/components/Sidebar.vue:125
+#: front/src/components/Sidebar.vue:119
 msgid "No"
 msgstr "Non"
 
-#: front/src/components/Home.vue:103
+#: front/src/components/Home.vue:100
 msgid "No add-ons, no plugins : you only need a web library"
 msgstr "Sin engadidos nin complementos: só precisa unha biblioteca na web"
 
-#: front/src/components/library/Track.vue:102
+#: front/src/components/audio/Search.vue:25
+#, fuzzy
+msgid "No album matched your query"
+msgstr "Lamentámolo, non atopamos ningún álbume que coincida coa consulta"
+
+#: front/src/components/audio/Search.vue:16
+#, fuzzy
+msgid "No artist matched your query"
+msgstr "Lamentámolo, non atopamos ningún artista que coincida coa súa consulta"
+
+#: front/src/components/library/Track.vue:158
 msgid "No lyrics available for this track."
 msgstr "Non hai letras dispoñibles para esta canción."
 
+#: front/src/components/federation/LibraryWidget.vue:6
+#, fuzzy
+msgid "No matching library."
+msgstr "Xestionar biblioteca"
+
+#: front/src/views/Notifications.vue:26
+msgid "No notifications yet."
+msgstr ""
+
+#: front/src/components/mixins/Translations.vue:10
 #: front/src/components/playlists/Form.vue:81
+#: src/views/content/libraries/Form.vue:72
+#: front/src/components/mixins/Translations.vue:11
 msgid "Nobody except me"
 msgstr "Ninguén excepto eu"
 
-#: front/src/views/federation/LibraryDetail.vue:32
-msgid "Not following"
-msgstr "Non seguindo"
-
-#: front/src/components/federation/LibraryTrackTable.vue:13
-#: front/src/components/federation/LibraryTrackTable.vue:67
-msgid "Not imported"
-msgstr "Non importado"
+#: front/src/views/content/libraries/Detail.vue:57
+msgid "Nobody is following this library"
+msgstr ""
 
 #: front/src/components/manage/users/InvitationsTable.vue:51
 msgid "Not used"
 msgstr "Non utilizado"
 
-#: front/src/App.vue:37
+#: front/src/components/Sidebar.vue:46 src/views/Notifications.vue:74
+#, fuzzy
+msgid "Notifications"
+msgstr "Última modificación"
+
+#: front/src/components/Footer.vue:47
 msgid "Official website"
 msgstr "Sitio web oficial"
 
@@ -1451,43 +1697,50 @@ msgstr "Sitio web oficial"
 msgid "Old password"
 msgstr "Contrasinal antigo"
 
-#: front/src/components/library/import/FileUpload.vue:36
-msgid "Once all your files are uploaded, simply click the following button to check the import status."
-msgstr ""
-"Unha vez subidos todos os ficheiros, só precisa pulsar o seguinte botón para "
-"comprobar o estado da importación."
-
-#: front/src/components/federation/LibraryCard.vue:21
 #: front/src/components/manage/users/InvitationsTable.vue:20
 msgid "Open"
 msgstr "Abrir"
 
-#: front/src/App.vue:63
-msgid "Options"
-msgstr "Opcións"
+#: front/src/views/admin/moderation/AccountsDetail.vue:23
+msgid "Open profile"
+msgstr ""
 
-#: front/src/components/library/import/Main.vue:93
-msgid "Or"
-msgstr "Ou"
+#: front/src/views/admin/moderation/DomainsDetail.vue:16
+#, fuzzy
+msgid "Open website"
+msgstr "Sitio web oficial"
 
-#: front/src/components/favorites/List.vue:23
-#: front/src/components/federation/LibraryTrackTable.vue:18
-#: front/src/components/library/Artists.vue:15 src/components/library/Radios.vue:33
-#: front/src/components/manage/library/FilesTable.vue:9
-#: front/src/components/manage/library/RequestsTable.vue:9
-#: front/src/components/manage/users/InvitationsTable.vue:9
-#: front/src/components/manage/users/UsersTable.vue:9
-#: front/src/views/federation/LibraryList.vue:18 src/views/playlists/List.vue:17
-msgid "Ordering"
-msgstr "Ordenando"
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:40
+#, fuzzy
+msgid "Or customize your rule"
+msgstr "Engada filtros para personalizar a súa radio"
 
 #: front/src/components/favorites/List.vue:31
-#: front/src/components/federation/LibraryTrackTable.vue:26
-#: front/src/components/library/Artists.vue:23 src/components/library/Radios.vue:41
+#: src/components/library/Radios.vue:41
 #: front/src/components/manage/library/FilesTable.vue:17
-#: front/src/components/manage/library/RequestsTable.vue:17
 #: front/src/components/manage/users/UsersTable.vue:17
-#: front/src/views/federation/LibraryList.vue:26 src/views/playlists/List.vue:25
+#: front/src/views/playlists/List.vue:25
+#, fuzzy
+msgid "Order"
+msgstr "Ordenando"
+
+#: front/src/components/favorites/List.vue:23
+#: src/components/library/Artists.vue:15
+#: front/src/components/library/Radios.vue:33
+#: front/src/components/manage/library/FilesTable.vue:9
+#: front/src/components/manage/moderation/AccountsTable.vue:11
+#: front/src/components/manage/moderation/DomainsTable.vue:9
+#: front/src/components/manage/users/InvitationsTable.vue:9
+#: front/src/components/manage/users/UsersTable.vue:9
+#: front/src/views/content/libraries/FilesTable.vue:21
+#: front/src/views/playlists/List.vue:17
+msgid "Ordering"
+msgstr "Ordenando"
+
+#: front/src/components/library/Artists.vue:23
+#: front/src/components/manage/moderation/AccountsTable.vue:19
+#: front/src/components/manage/moderation/DomainsTable.vue:17
+#: front/src/views/content/libraries/FilesTable.vue:29
 msgid "Ordering direction"
 msgstr "Dirección da orde"
 
@@ -1503,6 +1756,10 @@ msgstr "Páxina non atopada"
 msgid "Page not found!"
 msgstr "Non atopamos a páxina!"
 
+#: front/src/components/Pagination.vue:39
+msgid "Pagination"
+msgstr ""
+
 #: front/src/components/auth/Login.vue:32 src/components/auth/Signup.vue:38
 msgid "Password"
 msgstr "Contrasinal"
@@ -1515,49 +1772,52 @@ msgstr "Contrasinal actualizado"
 msgid "Password updated successfully"
 msgstr "Contrasinal actualizado correctamente"
 
-#: front/src/components/audio/Player.vue:262
+#: front/src/components/audio/Player.vue:349
 msgid "Pause track"
 msgstr "Pausar canción"
 
-#: front/src/components/federation/LibraryFollowTable.vue:46
-#: front/src/components/library/import/BatchDetail.vue:33
-#: front/src/components/library/import/BatchDetail.vue:69
-#: front/src/components/library/import/BatchList.vue:14
-#: front/src/components/library/import/FileUpload.vue:59
-#: front/src/components/manage/library/RequestsTable.vue:27
-#: front/src/components/manage/library/RequestsTable.vue:63
+#: front/src/components/ShortcutsModal.vue:59
+msgid "Pause/play the current track"
+msgstr ""
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:12
+#, fuzzy
+msgid "Paused"
+msgstr "Rexeitado"
+
+#: front/src/components/library/FileUpload.vue:106
+#: front/src/views/content/libraries/FilesTable.vue:14
+#: front/src/views/content/libraries/FilesTable.vue:208
 msgid "Pending"
 msgstr "Pendente"
 
-#: front/src/components/federation/LibraryFollowTable.vue:11
-#: front/src/views/federation/LibraryDetail.vue:26
+#: front/src/views/content/libraries/Detail.vue:37
 msgid "Pending approval"
 msgstr "Pendente de aceptación"
 
-#: front/src/components/Sidebar.vue:217
+#: front/src/views/content/libraries/Quota.vue:22
+#, fuzzy
+msgid "Pending files"
+msgstr "Pendente"
+
+#: front/src/components/Sidebar.vue:212
 msgid "Pending follow requests"
 msgstr "Peticións de seguimento pendentes"
 
-#: front/src/components/Sidebar.vue:216 src/views/admin/library/Base.vue:26
-msgid "Pending import requests"
-msgstr "Peticións de importación pendentes"
-
-#: front/src/components/requests/Form.vue:26 src/views/federation/Base.vue:36
-msgid "Pending requests"
-msgstr "Peticións pendentes"
-
 #: front/src/components/manage/users/UsersTable.vue:42
-#: front/src/views/admin/users/UsersDetail.vue:68
+#: front/src/views/admin/moderation/AccountsDetail.vue:137
 msgid "Permissions"
 msgstr "Permisos"
 
-#: front/src/components/audio/PlayButton.vue:9 src/components/library/Track.vue:30
+#: front/src/components/audio/PlayButton.vue:9
+#: src/components/library/Track.vue:40
 msgid "Play"
 msgstr "Reproducir"
 
 #: front/src/components/audio/album/Card.vue:50
-#: front/src/components/audio/artist/Card.vue:44 src/components/library/Album.vue:28
-#: front/src/views/playlists/Detail.vue:23
+#: front/src/components/audio/artist/Card.vue:44
+#: src/components/library/Album.vue:28
+#: front/src/components/library/Album.vue:73 src/views/playlists/Detail.vue:23
 msgid "Play all"
 msgstr "Reproducir todo"
 
@@ -1565,19 +1825,33 @@ msgstr "Reproducir todo"
 msgid "Play all albums"
 msgstr "Reproducir todos os álbumes"
 
-#: front/src/components/audio/PlayButton.vue:58
-msgid "Play immediatly"
-msgstr "Reproducir inmediatamente"
-
 #: front/src/components/audio/PlayButton.vue:15
+#: front/src/components/audio/PlayButton.vue:65
 msgid "Play next"
 msgstr "Reproducir seguinte"
 
+#: front/src/components/ShortcutsModal.vue:67
+#, fuzzy
+msgid "Play next track"
+msgstr "Reproducir canción"
+
 #: front/src/components/audio/PlayButton.vue:16
+#: front/src/components/audio/PlayButton.vue:63
+#: front/src/components/audio/PlayButton.vue:70
 msgid "Play now"
 msgstr "Reproducir agora"
 
-#: front/src/components/audio/Player.vue:261
+#: front/src/components/ShortcutsModal.vue:63
+#, fuzzy
+msgid "Play previous track"
+msgstr "Canción anterior"
+
+#: front/src/components/Sidebar.vue:211
+#, fuzzy
+msgid "Play this track"
+msgstr "Reproducir canción"
+
+#: front/src/components/audio/Player.vue:348
 msgid "Play track"
 msgstr "Reproducir canción"
 
@@ -1611,9 +1885,9 @@ msgstr "Lista de reprodución actualizada"
 msgid "Playlist visibility"
 msgstr "Visibilidade da lista de reprodución"
 
-#: front/src/components/Sidebar.vue:56 src/components/library/Home.vue:16
+#: front/src/components/Sidebar.vue:71 src/components/library/Home.vue:16
 #: front/src/components/library/Library.vue:13 src/views/admin/Settings.vue:83
-#: front/src/views/playlists/List.vue:103
+#: front/src/views/playlists/List.vue:106
 msgid "Playlists"
 msgstr "Listas de reprodución"
 
@@ -1633,32 +1907,65 @@ msgstr "Por favor, comprobe que o par usuaria/contrasinal é correcto"
 msgid "PNG, GIF or JPG. At most 2MB. Will be downscaled to 400x400px."
 msgstr "PNG, GIF ou JPG. 2MB como máximo. Será reducida a 400x400px."
 
-#: front/src/components/library/import/Main.vue:26
-msgid "Previous step"
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:118
+msgid "Prevent account or domain from triggering notifications, except from followers."
+msgstr ""
+
+#: front/src/components/audio/EmbedWizard.vue:29
+#, fuzzy
+msgid "Preview"
 msgstr "Paso anterior"
 
-#: front/src/components/audio/Player.vue:260
+#: front/src/components/audio/Player.vue:347
 msgid "Previous track"
 msgstr "Canción anterior"
 
+#: front/src/views/content/remote/Card.vue:39
+msgid "Problem during scanning"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:58
+#, fuzzy
+msgid "Proceed"
+msgstr "Ir a conectar"
+
 #: front/src/views/auth/EmailConfirm.vue:26
 #: front/src/views/auth/PasswordResetConfirm.vue:31
 msgid "Proceed to login"
 msgstr "Ir a conectar"
 
-#: front/src/components/federation/LibraryTrackTable.vue:50
-msgid "Published date"
-msgstr "Data de publicación"
+#: front/src/components/library/FileUpload.vue:17
+msgid "Processing"
+msgstr ""
+
+#: front/src/components/manage/moderation/AccountsTable.vue:188
+#: front/src/components/manage/moderation/DomainsTable.vue:168
+#: front/src/views/content/libraries/Quota.vue:36
+#: front/src/views/content/libraries/Quota.vue:39
+#: front/src/views/content/libraries/Quota.vue:62
+#: front/src/views/content/libraries/Quota.vue:65
+#: front/src/views/content/libraries/Quota.vue:88
+#: front/src/views/content/libraries/Quota.vue:91
+msgid "Purge"
+msgstr ""
+
+#: front/src/views/content/libraries/Quota.vue:89
+msgid "Purge errored files?"
+msgstr ""
+
+#: front/src/views/content/libraries/Quota.vue:37
+msgid "Purge pending files?"
+msgstr ""
 
-#: front/src/components/library/import/ArtistImport.vue:17
-msgid "Query template"
-msgstr "Modelo da consulta"
+#: front/src/views/content/libraries/Quota.vue:63
+msgid "Purge skipped files?"
+msgstr ""
 
 #: front/src/components/Sidebar.vue:20
 msgid "Queue"
 msgstr "Cola"
 
-#: front/src/components/audio/Player.vue:203
+#: front/src/components/audio/Player.vue:282
 msgid "Queue shuffled!"
 msgstr "Cola barallada!"
 
@@ -1666,7 +1973,7 @@ msgstr "Cola barallada!"
 msgid "Radio"
 msgstr "Radio"
 
-#: front/src/components/library/radios/Builder.vue:226
+#: front/src/components/library/radios/Builder.vue:233
 msgid "Radio Builder"
 msgstr "Constructor de Radio"
 
@@ -1682,13 +1989,26 @@ msgstr "Nome da Radio"
 msgid "Radio updated"
 msgstr "Radio actualizada"
 
-#: front/src/components/library/Library.vue:10 src/components/library/Radios.vue:141
+#: front/src/components/library/Library.vue:10
+#: src/components/library/Radios.vue:141
 msgid "Radios"
 msgstr "Radios"
 
-#: front/src/views/instance/Timeline.vue:7
-msgid "Recent activity on this instance"
-msgstr "Actividade recente en esta instancia"
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:39
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:25
+msgid "Reason"
+msgstr ""
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:222
+#: front/src/views/admin/moderation/DomainsDetail.vue:179
+msgid "Received library follows"
+msgstr ""
+
+#: front/src/components/manage/moderation/DomainsTable.vue:40
+#: front/src/components/mixins/Translations.vue:36
+#: front/src/components/mixins/Translations.vue:37
+msgid "Received messages"
+msgstr ""
 
 #: front/src/components/library/Home.vue:24
 msgid "Recently added"
@@ -1702,18 +2022,17 @@ msgstr "Favorecida recentemente"
 msgid "Recently listened"
 msgstr "Escoitada recentemente"
 
-#: front/src/components/library/import/BatchDetail.vue:81
-msgid "Recording MusicBrainz ID"
-msgstr "Gravando ID MusicBrainz"
-
-#: front/src/views/admin/users/UsersDetail.vue:84
-#: front/src/views/federation/LibraryDetail.vue:122
+#: front/src/views/content/remote/Home.vue:15
 msgid "Refresh"
 msgstr "Actualizar"
 
-#: front/src/components/federation/LibraryFollowTable.vue:42
-msgid "Refused"
-msgstr "Rexeitado"
+#: front/src/views/admin/moderation/DomainsDetail.vue:135
+msgid "Refresh node info"
+msgstr ""
+
+#: front/src/components/common/ActionTable.vue:272
+msgid "Refresh table content"
+msgstr ""
 
 #: front/src/components/auth/Profile.vue:12
 msgid "Registered since %{ date }"
@@ -1721,14 +2040,39 @@ msgstr "Rexistrada desde %{ date }"
 
 #: front/src/components/auth/Signup.vue:9
 msgid "Registration are closed on this instance, you will need an invitation code to signup."
-msgstr ""
-"O rexistro está pechado en esta instancia, necesita un código de convite "
-"para rexistrarse."
+msgstr "O rexistro está pechado en esta instancia, necesita un código de convite para rexistrarse."
 
 #: front/src/components/manage/users/UsersTable.vue:71
 msgid "regular user"
 msgstr "usuaria normal"
 
+#: front/src/views/content/libraries/Detail.vue:51
+msgid "Reject"
+msgstr ""
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:32
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:123
+msgid "Reject media"
+msgstr ""
+
+#: front/src/views/content/libraries/Detail.vue:43
+msgid "Rejected"
+msgstr ""
+
+#: front/src/views/content/libraries/FilesTable.vue:234
+#, fuzzy
+msgid "Relaunch import"
+msgstr "Rematar importación"
+
+#: front/src/views/content/remote/Home.vue:6
+#, fuzzy
+msgid "Remote libraries"
+msgstr "Lévame a biblioteca"
+
+#: front/src/views/content/remote/Home.vue:7
+msgid "Remote libraries are owned by other users on the network. You can access them as long as they are public or you are granted access."
+msgstr ""
+
 #: front/src/components/library/radios/Filter.vue:59
 msgid "Remove"
 msgstr "Eliminar"
@@ -1737,10 +2081,22 @@ msgstr "Eliminar"
 msgid "Remove avatar"
 msgstr "Eliminar avatar"
 
-#: front/src/components/favorites/TrackFavoriteIcon.vue:19
+#: front/src/components/favorites/TrackFavoriteIcon.vue:26
 msgid "Remove from favorites"
 msgstr "Eliminar das favoritas"
 
+#: front/src/views/content/libraries/Quota.vue:38
+msgid "Removes uploaded but yet to be processed tracks completely, adding the corresponding data to your quota."
+msgstr ""
+
+#: front/src/views/content/libraries/Quota.vue:64
+msgid "Removes uploaded tracks skipped during the import processes completely, adding the corresponding data to your quota."
+msgstr ""
+
+#: front/src/views/content/libraries/Quota.vue:90
+msgid "Removes uploaded tracks that could not be processed by the server completely, adding the corresponding data to your quota."
+msgstr ""
+
 #: front/src/components/auth/SubsonicTokenForm.vue:34
 #: front/src/components/auth/SubsonicTokenForm.vue:37
 msgid "Request a new password"
@@ -1754,148 +2110,155 @@ msgstr "Solicitar un nonvo contrasinal para o API Subsonic?"
 msgid "Request a password"
 msgstr "Solicitar un contrasinal"
 
-#: front/src/App.vue:35
-msgid "Request music"
-msgstr "Solicitar música"
-
-#: front/src/views/library/MusicRequest.vue:4 src/views/library/MusicRequest.vue:21
-msgid "Request some music"
-msgstr "Pedir algo de música"
-
-#: front/src/components/requests/Form.vue:20
-msgid "Request submitted!"
-msgstr "Solicitude enviada!"
-
-#: front/src/components/library/import/BatchDetail.vue:49
-msgid "Rerun errored jobs"
-msgstr "Voltar a executar os traballos fallidos"
-
-#: front/src/components/library/import/BatchDetail.vue:187
-msgid "Rerun job"
-msgstr "Executar de novo a tarefa"
-
 #: front/src/components/auth/Login.vue:34 src/views/auth/PasswordReset.vue:4
 #: front/src/views/auth/PasswordReset.vue:52
 msgid "Reset your password"
 msgstr "Restablecer o seu contrasinal"
 
-#: front/src/components/library/import/TrackImport.vue:31
-msgid "Result %{ current }/%{ total }"
-msgstr "Resultado %{ current }/%{ total }"
-
-#: front/src/components/favorites/List.vue:38 src/components/library/Artists.vue:30
-#: front/src/components/library/Radios.vue:52 src/views/federation/LibraryList.vue:33
-#: front/src/views/playlists/List.vue:32
+#: front/src/components/favorites/List.vue:38
+#: src/components/library/Artists.vue:30
+#: front/src/components/library/Radios.vue:52 src/views/playlists/List.vue:32
 msgid "Results per page"
 msgstr "Resultados por páxina"
 
+#: front/src/views/auth/EmailConfirm.vue:17
+#, fuzzy
+msgid "Return to login"
+msgstr "Ir a conectar"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:16
+msgid "Rule"
+msgstr ""
+
 #: front/src/components/admin/SettingsGroup.vue:63
-#: front/src/components/library/radios/Builder.vue:29
+#: front/src/components/library/radios/Builder.vue:33
 msgid "Save"
 msgstr "Gardar"
 
-#: front/src/views/federation/LibraryDetail.vue:112
-msgid "Scan triggered!"
-msgstr "Escaneo activado!"
+#: front/src/views/content/remote/Card.vue:165
+msgid "Scan launched"
+msgstr ""
 
-#: front/src/components/federation/LibraryTrackTable.vue:5
-#: front/src/components/library/Artists.vue:10 src/components/library/Radios.vue:29
-#: front/src/components/library/import/BatchDetail.vue:62
-#: front/src/components/library/import/BatchList.vue:7
+#: front/src/views/content/remote/Card.vue:63
+#, fuzzy
+msgid "Scan now"
+msgstr "Reproducir agora"
+
+#: front/src/views/content/remote/Card.vue:166
+msgid "Scan skipped (previous scan is too recent)"
+msgstr ""
+
+#: front/src/views/content/remote/Card.vue:31
+msgid "Scan waiting"
+msgstr ""
+
+#: front/src/views/content/remote/Card.vue:43
+msgid "Scanned"
+msgstr ""
+
+#: front/src/views/content/remote/Card.vue:47
+#, fuzzy
+msgid "Scanned with errors"
+msgstr "Cambios sincronizados co servidor"
+
+#: front/src/views/content/remote/Card.vue:35
+msgid "Scanning… (%{ progress }%)"
+msgstr ""
+
+#: front/src/components/library/Artists.vue:10
+#: src/components/library/Radios.vue:29
 #: front/src/components/manage/library/FilesTable.vue:5
-#: front/src/components/manage/library/RequestsTable.vue:5
+#: front/src/components/manage/moderation/AccountsTable.vue:5
+#: front/src/components/manage/moderation/DomainsTable.vue:5
 #: front/src/components/manage/users/InvitationsTable.vue:5
 #: front/src/components/manage/users/UsersTable.vue:5
-#: front/src/views/federation/LibraryList.vue:14 src/views/playlists/List.vue:13
+#: front/src/views/content/libraries/FilesTable.vue:5
+#: src/views/playlists/List.vue:13
 msgid "Search"
 msgstr "Buscar"
 
-#: front/src/components/library/import/Main.vue:85
-msgid "Search an entity you want to import:"
-msgstr "Buscar unha entidade que queira importar:"
+#: front/src/views/content/remote/ScanForm.vue:9
+#, fuzzy
+msgid "Search a remote library"
+msgstr "Lévame a biblioteca"
 
-#: front/src/components/manage/library/RequestsTable.vue:180
-msgid "Search by artist, username, comment..."
+#: front/src/components/manage/moderation/AccountsTable.vue:171
+#, fuzzy
+msgid "Search by domain, username, bio..."
 msgstr "Buscar por artista, nome de usuaria, comentario..."
 
-#: front/src/components/library/import/BatchDetail.vue:188
-msgid "Search by source..."
+#: front/src/components/manage/moderation/DomainsTable.vue:151
+#, fuzzy
+msgid "Search by name..."
 msgstr "Buscar por fonte..."
 
-#: front/src/components/library/import/BatchList.vue:116
-msgid "Search by submitter, source..."
-msgstr "Buscar por remitente, fonte..."
-
-#: front/src/components/federation/LibraryTrackTable.vue:182
-#: front/src/components/manage/library/FilesTable.vue:175
-msgid "Search by title, artist, domain..."
+#: front/src/views/content/libraries/FilesTable.vue:201
+#, fuzzy
+msgid "Search by title, artist, album…"
 msgstr "Buscar por título, artista, dominio..."
 
-#: front/src/components/federation/LibraryFollowTable.vue:140
-msgid "Search by username, domain..."
-msgstr "Buscar por nome de usuaria, dominio..."
+#: front/src/components/manage/library/FilesTable.vue:176
+#, fuzzy
+msgid "Search by title, artist, domain…"
+msgstr "Buscar por título, artista, dominio..."
 
-#: front/src/components/manage/users/InvitationsTable.vue:152
-msgid "Search by username, email, code..."
+#: front/src/components/manage/users/InvitationsTable.vue:153
+#, fuzzy
+msgid "Search by username, e-mail address, code…"
 msgstr "Buscar por nome de usuaria, correo-e, código..."
 
-#: front/src/components/manage/users/UsersTable.vue:162
-msgid "Search by username, email, name..."
+#: front/src/components/manage/users/UsersTable.vue:163
+#, fuzzy
+msgid "Search by username, e-mail address, name…"
 msgstr "Buscar por nome de usuaria, correo-e, nome..."
 
 #: front/src/components/audio/SearchBar.vue:20
-msgid "Search for artists, albums, tracks..."
+#, fuzzy
+msgid "Search for artists, albums, tracks…"
 msgstr "Buscar por artistas, álbumes, cancións..."
 
 #: front/src/components/audio/Search.vue:2
 msgid "Search for some music"
 msgstr "Buscar por algo de música"
 
-#: front/src/components/library/Track.vue:105
+#: front/src/components/library/Track.vue:162
 msgid "Search on lyrics.wikia.com"
 msgstr "Buscar en lyrics.wikia.com"
 
-#: front/src/components/library/Album.vue:33 src/components/library/Artist.vue:31
-#: front/src/components/library/Track.vue:40
+#: front/src/components/library/Album.vue:33
+#: src/components/library/Artist.vue:31
+#: front/src/components/library/Track.vue:47
 msgid "Search on Wikipedia"
 msgstr "Buscar en Wikipedia"
 
-#: front/src/components/library/import/TrackImport.vue:42
-msgid "Search query"
-msgstr "Consulta da busca"
+#: front/src/components/library/Library.vue:32
+#: src/views/admin/library/Base.vue:17
+#: front/src/views/admin/moderation/Base.vue:22
+#: src/views/admin/users/Base.vue:21 front/src/views/content/Base.vue:19
+msgid "Secondary menu"
+msgstr ""
 
 #: front/src/views/admin/Settings.vue:15
 msgid "Sections"
 msgstr "Seccións"
 
-#: front/src/components/library/radios/Builder.vue:41
+#: front/src/components/library/radios/Builder.vue:45
 msgid "Select a filter"
 msgstr "Escolla un filtro"
 
-#: front/src/components/common/ActionTable.vue:61
+#: front/src/components/common/ActionTable.vue:77
 msgid "Select all %{ total } elements"
 msgid_plural "Select all %{ total } elements"
 msgstr[0] "Escolla %{ total } elemento"
 msgstr[1] "Escolla todos os %{ total } elementos"
 
-#: front/src/components/library/import/FileUpload.vue:22
-msgid "Select files to upload..."
-msgstr "Escolla os ficheiros a subir..."
-
-#: front/src/components/common/ActionTable.vue:69
+#: front/src/components/common/ActionTable.vue:86
 msgid "Select only current page"
 msgstr "Seleccionar só páxina actual"
 
-#: front/src/components/library/import/Main.vue:19
-msgid "Select relevant sources or files for import"
-msgstr "Escolla fontes relevantes ou ficheiros a importar"
-
-#: front/src/components/federation/LibraryCard.vue:43
-msgid "Send a follow request"
-msgstr "Enviar unha petición de seguimento"
-
-#: front/src/components/Sidebar.vue:97 src/components/manage/users/UsersTable.vue:184
-#: front/src/views/admin/users/UsersDetail.vue:165
+#: front/src/components/Sidebar.vue:43 src/components/Sidebar.vue:85
+#: front/src/components/manage/users/UsersTable.vue:181
+#: front/src/views/admin/moderation/AccountsDetail.vue:472
 msgid "Settings"
 msgstr "Axustes"
 
@@ -1907,42 +2270,61 @@ msgstr "Axustes actualizados"
 msgid "Settings updated successfully."
 msgstr "Axustes actualizados correctamente."
 
-#: front/src/components/auth/Profile.vue:24
-msgid "Settings..."
-msgstr "Axustes..."
-
 #: front/src/components/manage/users/InvitationForm.vue:27
 msgid "Share link"
 msgstr "Compartir ligazón"
 
+#: front/src/views/content/libraries/Detail.vue:15
+msgid "Share this link with other users so they can request access to your library."
+msgstr ""
+
+#: front/src/views/content/libraries/Detail.vue:14
+#: front/src/views/content/remote/Card.vue:73
+#, fuzzy
+msgid "Sharing link"
+msgstr "Compartir ligazón"
+
+#: front/src/components/audio/album/Card.vue:40
+#, fuzzy
+msgid "Show %{ count } more track"
+msgid_plural "Show %{ count } more tracks"
+msgstr[0] "%{ count } canción"
+msgstr[1] "%{ count } cancións"
+
 #: front/src/components/audio/artist/Card.vue:30
 msgid "Show 1 more album"
 msgid_plural "Show %{ count } more albums"
 msgstr[0] "Mostrar 1 álbume máis"
 msgstr[1] "Mostrar %{ count } álbumes máis"
 
-#: front/src/components/audio/album/Card.vue:40
-msgid "Show 1 more track"
-msgid_plural "Show %{ count } more tracks"
-msgstr[0] "Mostar 1 canción máis"
-msgstr[1] "Mostrar %{ count } cancións máis"
+#: front/src/components/ShortcutsModal.vue:42
+msgid "Show available keyboard shortcuts"
+msgstr ""
+
+#: front/src/views/Notifications.vue:10
+#, fuzzy
+msgid "Show read notifications"
+msgstr "Última modificación"
 
 #: front/src/components/forms/PasswordInput.vue:25
 msgid "Show/hide password"
 msgstr "Mostrar/ocultar contrasinal"
 
-#: front/src/components/federation/LibraryFollowTable.vue:97
-#: front/src/components/federation/LibraryTrackTable.vue:98
-#: front/src/components/library/import/BatchDetail.vue:128
-#: front/src/components/library/import/BatchList.vue:73
 #: front/src/components/manage/library/FilesTable.vue:97
-#: front/src/components/manage/library/RequestsTable.vue:104
+#: front/src/components/manage/moderation/AccountsTable.vue:88
+#: front/src/components/manage/moderation/DomainsTable.vue:74
 #: front/src/components/manage/users/InvitationsTable.vue:76
 #: front/src/components/manage/users/UsersTable.vue:87
+#: front/src/views/content/libraries/FilesTable.vue:114
 msgid "Showing results %{ start }-%{ end } on %{ total }"
 msgstr "Mostrando resultados %{ start }-%{ end } de %{ total }"
 
-#: front/src/components/audio/Player.vue:269
+#: front/src/components/ShortcutsModal.vue:83
+#, fuzzy
+msgid "Shuffle queue"
+msgstr "Barallar a cola"
+
+#: front/src/components/audio/Player.vue:362
 msgid "Shuffle your queue"
 msgstr "Barallar a cola"
 
@@ -1951,54 +2333,55 @@ msgid "Sign Up"
 msgstr "Rexistro"
 
 #: front/src/components/manage/users/UsersTable.vue:40
-#: front/src/views/admin/users/UsersDetail.vue:37
 msgid "Sign-up"
 msgstr "Rexistrarse"
 
-#: front/src/components/audio/track/Table.vue:31
-msgid "Simply copy paste the snippet below into a terminal to launch the download."
+#: front/src/components/mixins/Translations.vue:31
+#: front/src/views/admin/moderation/AccountsDetail.vue:176
+#: front/src/components/mixins/Translations.vue:32
+#, fuzzy
+msgid "Sign-up date"
+msgstr "Rexistrarse"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:24
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:115
+#, fuzzy
+msgid "Silence activity"
+msgstr "Actividade da usuaria"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:28
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:119
+msgid "Silence notifications"
 msgstr ""
-"Simplemente copie e pegue o código inferior nun terminal  para lanzar a "
-"descarga."
 
-#: front/src/components/library/Track.vue:69
-#: front/src/components/library/import/FileUpload.vue:44
+#: front/src/components/library/FileUpload.vue:85
+#: front/src/components/library/Track.vue:120
 #: front/src/components/manage/library/FilesTable.vue:44
+#: front/src/components/mixins/Translations.vue:28
+#: front/src/views/content/libraries/FilesTable.vue:60
+#: front/src/components/mixins/Translations.vue:29
 msgid "Size"
 msgstr "Tamaño"
 
-#: front/src/components/library/import/BatchDetail.vue:37
-#: front/src/components/library/import/BatchDetail.vue:72
+#: front/src/views/content/libraries/FilesTable.vue:15
+#: front/src/views/content/libraries/FilesTable.vue:204
 msgid "Skipped"
 msgstr "Saltado"
 
-#: front/src/components/requests/Form.vue:3
-msgid "Something's missing in the library? Let us know what you would like to listen!"
-msgstr "Falta algo na biblioteca? Fáganos saber que lle gustaría escoitar!"
-
-#: front/src/components/audio/Search.vue:25
-msgid "Sorry, we did not found any album matching your query"
-msgstr "Lamentámolo, non atopamos ningún álbume que coincida coa consulta"
-
-#: front/src/components/audio/Search.vue:16
-msgid "Sorry, we did not found any artist matching your query"
-msgstr "Lamentámolo, non atopamos ningún artista que coincida coa súa consulta"
+#: front/src/views/content/libraries/Quota.vue:49
+#, fuzzy
+msgid "Skipped files"
+msgstr "Saltado"
 
-#: front/src/components/library/import/BatchDetail.vue:82
-#: front/src/components/library/import/BatchList.vue:38
-#: front/src/components/library/import/TrackImport.vue:17
-msgid "Source"
-msgstr "Fonte"
+#: front/src/views/admin/moderation/DomainsDetail.vue:97
+msgid "Software"
+msgstr ""
 
-#: front/src/App.vue:41
+#: front/src/components/Footer.vue:49
 msgid "Source code"
 msgstr "Código fonte"
 
-#: front/src/App.vue:40
-msgid "Source code (%{version})"
-msgstr "Código fonte (%{version})"
-
-#: front/src/components/auth/Profile.vue:20
+#: front/src/components/auth/Profile.vue:23
 #: front/src/components/manage/users/UsersTable.vue:70
 msgid "Staff member"
 msgstr "Persoal do equipo"
@@ -2007,26 +2390,24 @@ msgstr "Persoal do equipo"
 msgid "Start"
 msgstr "Iniciar"
 
-#: front/src/components/library/import/FileUpload.vue:28
-msgid "Start Upload"
-msgstr "Iniciar subida"
-
 #: front/src/views/admin/Settings.vue:86
 msgid "Statistics"
 msgstr "Estatísticas"
 
-#: front/src/components/federation/LibraryFollowTable.vue:23
-#: front/src/components/federation/LibraryTrackTable.vue:46
-#: front/src/components/library/import/BatchDetail.vue:66
-#: front/src/components/library/import/BatchDetail.vue:83
-#: front/src/components/library/import/BatchList.vue:11
-#: front/src/components/library/import/BatchList.vue:37
-#: front/src/components/library/import/FileUpload.vue:45
-#: front/src/components/manage/library/RequestsTable.vue:24
-#: front/src/components/manage/library/RequestsTable.vue:48
+#: front/src/views/admin/moderation/AccountsDetail.vue:454
+msgid "Statistics are computed from known activity and content on your instance, and do not reflect general activity for this account"
+msgstr ""
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:358
+msgid "Statistics are computed from known activity and content on your instance, and do not reflect general activity for this domain"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:86
 #: front/src/components/manage/users/InvitationsTable.vue:17
 #: front/src/components/manage/users/InvitationsTable.vue:39
 #: front/src/components/manage/users/UsersTable.vue:43
+#: front/src/views/admin/moderation/DomainsDetail.vue:123
+#: front/src/views/content/libraries/Detail.vue:28
 msgid "Status"
 msgstr "Estado"
 
@@ -2034,27 +2415,14 @@ msgstr "Estado"
 msgid "Stop"
 msgstr "Deter"
 
-#: front/src/components/Sidebar.vue:159
+#: front/src/components/Sidebar.vue:161
 msgid "Stop radio"
 msgstr "Deter radio"
 
-#: front/src/components/library/import/FileUpload.vue:32
-msgid "Stop Upload"
-msgstr "Deter subida"
-
-#: front/src/App.vue:9 src/components/requests/Form.vue:17
+#: front/src/App.vue:22
 msgid "Submit"
 msgstr "Enviar"
 
-#: front/src/components/requests/Form.vue:22
-msgid "Submit another request"
-msgstr "Enviar outra petición"
-
-#: front/src/components/library/import/BatchDetail.vue:26
-#: front/src/components/library/import/BatchList.vue:39
-msgid "Submitted by"
-msgstr "Enviada por"
-
 #: front/src/views/admin/Settings.vue:85
 msgid "Subsonic"
 msgstr "Subsonic"
@@ -2063,85 +2431,126 @@ msgstr "Subsonic"
 msgid "Subsonic API password"
 msgstr "Contrasinal API Subsonic"
 
-#: front/src/components/library/import/BatchDetail.vue:71
-#: front/src/components/library/import/BatchList.vue:16
-#: front/src/components/library/import/FileUpload.vue:56
-msgid "Success"
-msgstr "Correcto"
-
-#: front/src/App.vue:11
+#: front/src/App.vue:26
 msgid "Suggested choices"
 msgstr "Opcións suxeridas"
 
+#: front/src/components/library/FileUpload.vue:3
+msgid "Summary"
+msgstr ""
+
+#: front/src/components/Footer.vue:39
+msgid "Support forum"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:78
+msgid "Supported extensions: %{ extensions }"
+msgstr ""
+
 #: front/src/components/playlists/Editor.vue:9
-msgid "Syncing changes to server..."
+#, fuzzy
+msgid "Syncing changes to server…"
 msgstr "Sincronizando cambios co servidor..."
 
-#: front/src/components/Home.vue:26
-msgid "That's simple: we loved Grooveshark and we want to build something even better."
+#: front/src/components/common/CopyInput.vue:3
+msgid "Text copied to clipboard!"
 msgstr ""
-"É simple: encantábanos Grooveshark e queremos construír algo aínda mellor."
 
-#: front/src/components/requests/Form.vue:73
-msgid "The Beatles, Mickael Jackson…"
-msgstr "The Beatles, Mickael Jackson…"
+#: front/src/components/Home.vue:26
+msgid "That's simple: we loved Grooveshark and we want to build something even better."
+msgstr "É simple: encantábanos Grooveshark e queremos construír algo aínda mellor."
 
-#: front/src/App.vue:59
+#: front/src/components/Footer.vue:53
 msgid "The funkwhale logo was kindly designed and provided by Francis Gading."
+msgstr "O logo de funckwhale foi amablemente deseñado e proporcionado por Francis Gading."
+
+#: front/src/views/content/libraries/Form.vue:34
+#, fuzzy
+msgid "The library and all its tracks will be deleted. This can not be undone."
+msgstr "Eliminará completamente a radio e non ten volta atrás."
+
+#: front/src/components/library/FileUpload.vue:39
+msgid "The music files you are uploading are tagged properly:"
 msgstr ""
-"O logo de funckwhale foi amablemente deseñado e proporcionado por Francis "
-"Gading."
 
-#: front/src/components/Home.vue:124
-msgid "The plaform is free and open-source, you can install it and modify it without worries"
+#: front/src/components/audio/Player.vue:67
+msgid "The next track will play automatically in a few seconds..."
 msgstr ""
-"A plataforma é libre de código aberto, pode instalala e modificala sin "
-"preocupación"
+
+#: front/src/components/Home.vue:121
+msgid "The plaform is free and open-source, you can install it and modify it without worries"
+msgstr "A plataforma é libre de código aberto, pode instalala e modificala sin preocupación"
 
 #: front/src/components/auth/SubsonicTokenForm.vue:4
 msgid "The Subsonic API is not available on this Funkwhale instance."
 msgstr "O API Subsonic non está dispoñible en esta instancia Funkwhale."
 
-#: front/src/components/requests/Form.vue:74
-msgid "The White Album, Thriller…"
-msgstr "The White Album, Thriller…"
+#: front/src/components/library/FileUpload.vue:43
+msgid "The uploaded music files are in OGG, Flac or MP3 format"
+msgstr ""
 
-#: front/src/components/audio/track/Table.vue:30
-msgid "There is currently no way to download directly multiple tracks from funkwhale as a ZIP archive. However, you can use a command line tools such as cURL to easily download a list of tracks."
+#: front/src/views/content/Home.vue:4
+msgid "There are various ways to grab new content and make it available here."
 msgstr ""
-"Polo momento non hai xeito de descargar directamente múltiples cancións "
-"desde funkwhale dentro de un ficheiro ZIP. Porén, pode utilizar ferramentas "
-"da liña de comandos como cURL para descargar facilmente unha lista de "
-"cancións."
 
-#: front/src/components/library/import/Main.vue:149
-msgid "This import will be associated with the music request below. After the import is finished, the request will be marked as fulfilled."
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:66
+msgid "This action is irreversible."
 msgstr ""
-"Esta importación asociarase coa solicitude de música inferior. Ao rematar a "
-"importación a solicitude marcarase como tramitada."
 
-#: front/src/views/federation/LibraryDetail.vue:195
-msgid "This indicate if the remote library granted you access"
-msgstr "Esta sinala si a biblioteca remota lle concedeu acceso"
+#: front/src/components/library/Album.vue:91
+msgid "This album is present in the following libraries:"
+msgstr ""
+
+#: front/src/components/library/Artist.vue:63
+msgid "This artist is present in the following libraries:"
+msgstr ""
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:55
+#: front/src/views/admin/moderation/DomainsDetail.vue:48
+msgid "This domain is subject to specific moderation rules"
+msgstr ""
+
+#: front/src/views/content/Home.vue:9
+msgid "This instance offers up to %{quota} of storage space for every user."
+msgstr ""
 
 #: front/src/components/auth/Profile.vue:16
 msgid "This is you!"
 msgstr "Este é vostede!"
 
-#: front/src/components/common/ActionTable.vue:37
-msgid "This may affect a lot of elements, please double check this is really what you want."
+#: front/src/views/content/libraries/Form.vue:71
+msgid "This library contains my personal music, I hope you like it."
+msgstr ""
+
+#: front/src/views/content/remote/Card.vue:131
+msgid "This library is private and your approval from its owner is needed to access its content"
+msgstr ""
+
+#: front/src/views/content/remote/Card.vue:132
+msgid "This library is public and you can access its content freely"
+msgstr ""
+
+#: front/src/components/common/ActionTable.vue:45
+#, fuzzy
+msgid "This may affect a lot of elements or have irreversible consequences, please double check this is really what you want."
+msgstr "Esto podería afectar a moitos elementos, por favor comprobe si realmente é o que quere."
+
+#: front/src/components/library/FileUpload.vue:52
+msgid "This reference will be used to group imported files together."
 msgstr ""
-"Esto podería afectar a moitos elementos, por favor comprobe si realmente é o "
-"que quere."
 
-#: front/src/components/audio/PlayButton.vue:61
-msgid "This track is not imported and cannot be played"
-msgstr "Esta canción non está importada e non se pode reproducir"
+#: front/src/components/audio/PlayButton.vue:73
+#, fuzzy
+msgid "This track is not available in any library you have access to"
+msgstr "Cancións dispoñibles en esta biblioteca"
+
+#: front/src/components/library/Track.vue:171
+msgid "This track is present in the following libraries:"
+msgstr ""
 
 #: front/src/views/playlists/Detail.vue:37
 msgid "This will completely delete this playlist and cannot be undone."
-msgstr ""
-"Eliminará completamente a lista de reprodución e non poderá voltar atrás."
+msgstr "Eliminará completamente a lista de reprodución e non poderá voltar atrás."
 
 #: front/src/views/radios/Detail.vue:27
 msgid "This will completely delete this radio and cannot be undone."
@@ -2151,34 +2560,56 @@ msgstr "Eliminará completamente a radio e non ten volta atrás."
 msgid "This will completely disable access to the Subsonic API using from account."
 msgstr "Desactivará o acceso a API Subsonic desde a conta."
 
-#: front/src/App.vue:137
+#: front/src/App.vue:129 src/components/Footer.vue:72
 msgid "This will erase your local data and disconnect you, do you want to continue?"
 msgstr "Eliminará os datos locais e será desconectada, desexa continuar?"
 
 #: front/src/components/auth/SubsonicTokenForm.vue:36
 msgid "This will log you out from existing devices that use the current password."
-msgstr ""
-"Será desconectada dos dispositivos existentes que utilicen o contrasinal "
-"actual."
+msgstr "Será desconectada dos dispositivos existentes que utilicen o contrasinal actual."
 
 #: front/src/components/playlists/Editor.vue:44
 msgid "This will remove all tracks from this playlist and cannot be undone."
-msgstr ""
-"Esto eliminará todas as cancións da lista de reprodución e non hai volta."
+msgstr "Esto eliminará todas as cancións da lista de reprodución e non hai volta."
 
 #: front/src/components/audio/track/Table.vue:6
-#: front/src/components/federation/LibraryTrackTable.vue:47
 #: front/src/components/manage/library/FilesTable.vue:37
+#: front/src/components/mixins/Translations.vue:27
+#: front/src/views/content/libraries/FilesTable.vue:54
+#: front/src/components/mixins/Translations.vue:28
 msgid "Title"
 msgstr "Título"
 
-#: front/src/components/audio/SearchBar.vue:27 src/components/library/Track.vue:174
-#: front/src/components/library/import/BatchDetail.vue:84
+#: front/src/components/ShortcutsModal.vue:79
+msgid "Toggle queue looping"
+msgstr ""
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:288
+#: front/src/views/admin/moderation/DomainsDetail.vue:225
+msgid "Total size"
+msgstr ""
+
+#: front/src/views/content/libraries/Card.vue:61
+#, fuzzy
+msgid "Total size of the files in this library"
+msgstr "Cancións dispoñibles en esta biblioteca"
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:113
+#, fuzzy
+msgid "Total users"
+msgstr "Non utilizado"
+
+#: front/src/components/audio/SearchBar.vue:27
+#: src/components/library/Track.vue:262
 #: front/src/components/metadata/Search.vue:138
 msgid "Track"
 msgstr "Canción"
 
-#: front/src/components/library/Track.vue:53
+#: front/src/views/content/libraries/FilesTable.vue:205
+msgid "Track already present in one of your libraries"
+msgstr ""
+
+#: front/src/components/library/Track.vue:85
 msgid "Track information"
 msgstr "Información da canción"
 
@@ -2186,21 +2617,29 @@ msgstr "Información da canción"
 msgid "Track matching filter"
 msgstr "Filtro coincidente da canción"
 
+#: front/src/components/mixins/Translations.vue:23
+#: front/src/components/mixins/Translations.vue:24
+#, fuzzy
+msgid "Track name"
+msgstr "Canción"
+
+#: front/src/views/content/libraries/FilesTable.vue:209
+msgid "Track uploaded, but not processed by the server yet"
+msgstr ""
+
 #: front/src/components/instance/Stats.vue:54
 msgid "tracks"
 msgstr "cancións"
 
-#: front/src/components/library/Album.vue:43
+#: front/src/components/library/Album.vue:81
 #: front/src/components/playlists/PlaylistModal.vue:33
-#: front/src/views/federation/Base.vue:8 src/views/playlists/Detail.vue:50
-#: front/src/views/radios/Detail.vue:34
+#: front/src/views/admin/moderation/AccountsDetail.vue:329
+#: front/src/views/admin/moderation/DomainsDetail.vue:265
+#: front/src/views/content/Base.vue:8 src/views/content/libraries/Detail.vue:8
+#: front/src/views/playlists/Detail.vue:50 src/views/radios/Detail.vue:34
 msgid "Tracks"
 msgstr "Cancións"
 
-#: front/src/views/federation/LibraryDetail.vue:125
-msgid "Tracks available in this library"
-msgstr "Cancións dispoñibles en esta biblioteca"
-
 #: front/src/components/library/Artist.vue:54
 msgid "Tracks by this artist"
 msgstr "Cancións de este artista"
@@ -2213,36 +2652,59 @@ msgstr "Cancións favorecidas"
 msgid "tracks listened"
 msgstr "cancións escoitadas"
 
-#: front/src/views/federation/LibraryDetail.vue:109
-msgid "Trigger scan"
-msgstr "Iniciar escaneo"
-
+#: front/src/components/library/Track.vue:138
 #: front/src/components/manage/library/FilesTable.vue:41
+#: front/src/views/admin/moderation/AccountsDetail.vue:151
 msgid "Type"
 msgstr "Tipo"
 
-#: front/src/components/About.vue:15
-msgid "Unfortunately, owners of this instance did not yet take the time to complete this page."
+#: front/src/components/manage/moderation/AccountsTable.vue:44
+#: front/src/components/manage/moderation/DomainsTable.vue:42
+msgid "Under moderation rule"
 msgstr ""
-"Desgraciadamente os donos de esta instancia non tiveron tempo de completar "
-"esta páxina."
 
-#: front/src/views/federation/LibraryDetail.vue:95
-msgid "Unknown"
-msgstr "Descoñecido"
+#: front/src/views/content/remote/Card.vue:100
+#: src/views/content/remote/Card.vue:105
+#, fuzzy
+msgid "Unfollow"
+msgstr "Seguir"
+
+#: front/src/views/content/remote/Card.vue:101
+#, fuzzy
+msgid "Unfollow this library?"
+msgstr "Buscar na biblioteca"
+
+#: front/src/components/About.vue:15
+msgid "Unfortunately, owners of this instance did not yet take the time to complete this page."
+msgstr "Desgraciadamente os donos de esta instancia non tiveron tempo de completar esta páxina."
 
 #: front/src/components/Home.vue:37
 msgid "Unlimited music"
 msgstr "Música sen límites"
 
-#: front/src/components/audio/Player.vue:264
+#: front/src/components/audio/Player.vue:351
 msgid "Unmute"
 msgstr "Dar voz"
 
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:45
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:57
+#, fuzzy
+msgid "Update"
+msgstr "Actualizar avatar"
+
 #: front/src/components/auth/Settings.vue:50
 msgid "Update avatar"
 msgstr "Actualizar avatar"
 
+#: front/src/views/content/libraries/Form.vue:25
+#, fuzzy
+msgid "Update library"
+msgstr "Xestionar biblioteca"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:3
+msgid "Update moderation rule"
+msgstr ""
+
 #: front/src/components/playlists/Form.vue:33
 msgid "Update playlist"
 msgstr "Actualizar lista de reprodución"
@@ -2255,8 +2717,8 @@ msgstr "Actualizar axustes"
 msgid "Update your password"
 msgstr "Actualizar contrasinal"
 
-#: front/src/components/manage/users/UsersTable.vue:172
-#: front/src/views/admin/users/UsersDetail.vue:153
+#: front/src/views/content/libraries/Card.vue:44
+#: front/src/views/content/libraries/DetailArea.vue:24
 msgid "Upload"
 msgstr "Subir"
 
@@ -2264,46 +2726,80 @@ msgstr "Subir"
 msgid "Upload a new avatar"
 msgstr "Subir un novo avatar"
 
-#: front/src/components/library/import/Main.vue:7
-msgid "Uploaded files or external source"
-msgstr "Ficheiros subidos ou fonte externa"
+#: front/src/views/content/Home.vue:6
+#, fuzzy
+msgid "Upload audio content"
+msgstr "Subir un novo avatar"
 
-#: front/src/components/library/import/FileUpload.vue:57
-msgid "Uploading..."
-msgstr "Subindo..."
+#: front/src/views/content/libraries/FilesTable.vue:57
+#, fuzzy
+msgid "Upload date"
+msgstr "Subir"
 
-#: front/src/App.vue:45
-msgid "Use another instance"
-msgstr "Utilizar outra instancia"
+#: front/src/components/library/FileUpload.vue:219
+#: front/src/components/library/FileUpload.vue:220
+msgid "Upload denied, ensure the file is not too big and that you have not reached your quota"
+msgstr ""
 
-#: front/src/components/requests/Form.vue:75
-msgid "Use this comment box to add details to your request if needed"
+#: front/src/views/content/Home.vue:7
+msgid "Upload music files (MP3, OGG, FLAC, etc.) from your personal library directly from your browser to enjoy them here."
 msgstr ""
-"Utilice esta caixa de comentarios para engadir detalles da petición si fose "
-"preciso"
 
-#: front/src/views/federation/LibraryDetail.vue:196
-msgid "Use this flag to enable/disable federation with this library"
+#: front/src/components/library/FileUpload.vue:31
+#, fuzzy
+msgid "Upload new tracks"
+msgstr "Subir un novo avatar"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:269
+#, fuzzy
+msgid "Upload quota"
+msgstr "Subir"
+
+#: front/src/components/library/FileUpload.vue:228
+msgid "Upload timeout, please try again"
 msgstr ""
-"Utilice esta marca para activar/desactivar a federación de esta biblioteca"
+
+#: front/src/components/library/FileUpload.vue:100
+#, fuzzy
+msgid "Uploaded"
+msgstr "Subir"
+
+#: front/src/components/library/FileUpload.vue:5
+#, fuzzy
+msgid "Uploading"
+msgstr "Subindo..."
+
+#: front/src/components/library/FileUpload.vue:103
+#, fuzzy
+msgid "Uploading…"
+msgstr "Subindo..."
+
+#: front/src/components/manage/moderation/AccountsTable.vue:41
+#: front/src/components/mixins/Translations.vue:37
+#: front/src/views/admin/moderation/AccountsDetail.vue:305
+#: front/src/views/admin/moderation/DomainsDetail.vue:241
+#: front/src/components/mixins/Translations.vue:38
+#, fuzzy
+msgid "Uploads"
+msgstr "Subir"
+
+#: front/src/components/Footer.vue:16
+msgid "Use another instance"
+msgstr "Utilizar outra instancia"
 
 #: front/src/views/auth/PasswordReset.vue:12
 msgid "Use this form to request a password reset. We will send an email to the given address with instructions to reset your password."
-msgstr ""
-"Utilice este formulario para solicitar o restablecemento do contrasinal. "
-"Enviarémoslle un correo-e con instrucións para restablecelo."
+msgstr "Utilice este formulario para solicitar o restablecemento do contrasinal. Enviarémoslle un correo-e con instrucións para restablecelo."
 
-#: front/src/components/federation/LibraryForm.vue:6
-msgid "Use this form to scan an instance and setup federation."
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:111
+msgid "Use this setting to temporarily enable/disable the policy without completely removing it."
 msgstr ""
-"Utilice este formulario para escanear unha instancia e configurar a "
-"federación."
 
 #: front/src/components/manage/users/InvitationsTable.vue:49
 msgid "Used"
 msgstr "Utilizado"
 
-#: front/src/components/manage/library/RequestsTable.vue:47
+#: front/src/views/content/libraries/Detail.vue:26
 msgid "User"
 msgstr "Usuaria"
 
@@ -2311,12 +2807,22 @@ msgstr "Usuaria"
 msgid "User activity"
 msgstr "Actividade da usuaria"
 
+#: front/src/components/library/Album.vue:88
+#: src/components/library/Artist.vue:60
+#: front/src/components/library/Track.vue:168
+#, fuzzy
+msgid "User libraries"
+msgstr "Radios da usuaria"
+
 #: front/src/components/library/Radios.vue:20
 msgid "User radios"
 msgstr "Radios da usuaria"
 
 #: front/src/components/auth/Signup.vue:19
 #: front/src/components/manage/users/UsersTable.vue:37
+#: front/src/components/mixins/Translations.vue:33
+#: front/src/views/admin/moderation/AccountsDetail.vue:85
+#: front/src/components/mixins/Translations.vue:34
 msgid "Username"
 msgstr "Nome de usuaria"
 
@@ -2328,20 +2834,64 @@ msgstr "Nome de usuaria ou correo-e"
 msgid "users"
 msgstr "usuarias"
 
-#: front/src/components/Sidebar.vue:103 src/views/admin/Settings.vue:81
-#: front/src/views/admin/users/Base.vue:5 src/views/admin/users/UsersList.vue:3
+#: front/src/components/Sidebar.vue:91
+#: front/src/components/manage/moderation/DomainsTable.vue:39
+#: front/src/components/mixins/Translations.vue:35
+#: src/views/admin/Settings.vue:81 front/src/views/admin/users/Base.vue:5
+#: src/views/admin/users/UsersList.vue:3
 #: front/src/views/admin/users/UsersList.vue:21
+#: front/src/components/mixins/Translations.vue:36
 msgid "Users"
 msgstr "Usuarias"
 
-#: front/src/components/library/Album.vue:37 src/components/library/Artist.vue:35
-#: front/src/components/library/Track.vue:44
-#: front/src/components/library/import/ArtistImport.vue:131
+#: front/src/components/Footer.vue:29
+#, fuzzy
+msgid "Using Funkwhale"
+msgstr "Acerca de Funkwhale"
+
+#: front/src/components/Footer.vue:13
+#, fuzzy
+msgid "Version %{version}"
+msgstr "Código fonte (%{version})"
+
+#: front/src/views/content/libraries/Quota.vue:29
+#: front/src/views/content/libraries/Quota.vue:56
+#: front/src/views/content/libraries/Quota.vue:82
+#, fuzzy
+msgid "View files"
+msgstr "Ficheiros de biblioteca"
+
+#: front/src/components/library/Album.vue:37
+#: src/components/library/Artist.vue:35
+#: front/src/components/library/Track.vue:51
 #: front/src/components/metadata/ArtistCard.vue:49
 #: front/src/components/metadata/ReleaseCard.vue:53
 msgid "View on MusicBrainz"
 msgstr "Ver en MusicBrainz"
 
+#: front/src/views/content/libraries/Form.vue:18
+#, fuzzy
+msgid "Visibility"
+msgstr "Visibilidade da lista de reprodución"
+
+#: front/src/views/content/libraries/Card.vue:59
+#, fuzzy
+msgid "Visibility: everyone on this instance"
+msgstr "Todas en esta instancia"
+
+#: front/src/views/content/libraries/Card.vue:60
+msgid "Visibility: everyone, including other instances"
+msgstr ""
+
+#: front/src/views/content/libraries/Card.vue:58
+#, fuzzy
+msgid "Visibility: nobody except me"
+msgstr "Ninguén excepto eu"
+
+#: front/src/components/library/Album.vue:67
+msgid "Volume %{ number }"
+msgstr ""
+
 #: front/src/components/playlists/PlaylistModal.vue:20
 msgid "We cannot add the track to a playlist"
 msgstr "Non podemos engadir a canción a lista de reprodución"
@@ -2354,6 +2904,11 @@ msgstr "Non podemos crear a lista de reprodución"
 msgid "We cannot create your account"
 msgstr "Non podemos crear a súa conta"
 
+#: front/src/components/audio/Player.vue:64
+#, fuzzy
+msgid "We cannot load this track"
+msgstr "Non podemos engadir a canción a lista de reprodución"
+
 #: front/src/components/auth/Login.vue:7
 msgid "We cannot log you in"
 msgstr "Non podemos conectala"
@@ -2366,11 +2921,19 @@ msgstr "Non podemos gardar o seu avatar"
 msgid "We cannot save your settings"
 msgstr "Non podemos gardar os axustes"
 
-#: front/src/components/Home.vue:130
+#: front/src/components/Home.vue:127
 msgid "We do not track you or bother you with ads"
 msgstr "Nin a perseguimos na internet nin molestamos con publicidade"
 
-#: front/src/components/library/import/FileUpload.vue:5
+#: front/src/components/library/Track.vue:95
+msgid "We don't have any copyright information for this track"
+msgstr ""
+
+#: front/src/components/library/Track.vue:106
+msgid "We don't have any licensing information for this track"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:40
 msgid "We recommend using Picard for that purpose."
 msgstr "Recomendámoslle utilizar Picard para ese propósito."
 
@@ -2382,11 +2945,7 @@ msgstr "Cremos que escoitar música  debería ser simple."
 msgid "We're sorry, the page you asked for does not exist:"
 msgstr "Lamentámolo, a páxina que solicitou non existe:"
 
-#: front/src/components/requests/Form.vue:21
-msgid "We've received your request, you'll get some groove soon ;)"
-msgstr "Recibimos a súa solicitude, pronto terá boas novas ;)"
-
-#: front/src/components/Home.vue:152
+#: front/src/components/Home.vue:153
 msgid "Welcome"
 msgstr "Benvida"
 
@@ -2394,21 +2953,21 @@ msgstr "Benvida"
 msgid "Welcome on Funkwhale"
 msgstr "Benvida a Funkwhale"
 
-#: front/src/components/library/import/Main.vue:114
-msgid "What is metadata?"
-msgstr "Qué son os metadatos?"
-
-#: front/src/views/federation/LibraryDetail.vue:197
-msgid "When enabled, auto importing will automatically import new tracks published in this library"
-msgstr ""
-"Si está activado, a importación automática importará sen intervención as "
-"novas cancións publicadas en esta biblioteca"
-
 #: front/src/components/Home.vue:24
 msgid "Why funkwhale?"
 msgstr "Por qué funkwhale?"
 
-#: front/src/components/Sidebar.vue:124
+#: front/src/components/audio/EmbedWizard.vue:13
+msgid "Widget height"
+msgstr ""
+
+#: front/src/components/audio/EmbedWizard.vue:6
+msgid "Widget width"
+msgstr ""
+
+#: front/src/components/Sidebar.vue:118
+#: front/src/components/manage/moderation/AccountsTable.vue:72
+#: front/src/components/manage/moderation/DomainsTable.vue:58
 msgid "Yes"
 msgstr "Si"
 
@@ -2416,37 +2975,56 @@ msgstr "Si"
 msgid "Yes, log me out!"
 msgstr "Si, desconectádeme!"
 
+#: front/src/views/content/libraries/Form.vue:19
+msgid "You are able to share your library with other people, regardless of its visibility."
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:33
+msgid "You are about to upload music to your library. Before proceeding, please ensure that:"
+msgstr ""
+
 #: front/src/components/auth/Logout.vue:7
 msgid "You are currently logged in as %{ username }"
 msgstr "Está conectada como %{ username }"
 
-#: front/src/components/library/import/Main.vue:111
-msgid "You can also skip this step and enter metadata manually."
-msgstr "Pode saltar este paso e introducir os metadatos manualmente."
+#: front/src/views/content/Home.vue:17
+msgid "You can follow libraries from other users to get access to new music. Public libraries can be followed immediatly, while following a private library requires approval from its owner."
+msgstr ""
 
-#: front/src/components/Home.vue:136
+#: front/src/components/Home.vue:133
 msgid "You can invite friends and family to your instance so they can enjoy your music"
-msgstr ""
-"Pode convidar amigos e familiares a súa instancia para que desfruten da súa "
-"música"
+msgstr "Pode convidar amigos e familiares a súa instancia para que desfruten da súa música"
+
+#: front/src/views/auth/EmailConfirm.vue:24
+#, fuzzy
+msgid "You can now use the service without limitations."
+msgstr "O seu enderezo de correo foi confirmado, xa pode utilizar o servizo sen limitacións."
 
 #: front/src/components/library/radios/Builder.vue:7
 msgid "You can use this interface to build your own custom radio, which will play tracks according to your criteria."
-msgstr ""
-"Pode utilizar esta interface para construír a súa propia radio, que "
-"reproducirá cancións segundo o seu criterio."
+msgstr "Pode utilizar esta interface para construír a súa propia radio, que reproducirá cancións segundo o seu criterio."
 
 #: front/src/components/auth/SubsonicTokenForm.vue:8
 msgid "You can use those to enjoy your playlist and music in offline mode, on your smartphone or tablet, for instance."
+msgstr "Pode utilizalos para desfrutar da súa lista de reprodución e música en modo fora de liña, no seu dispositivo móbil ou tableta, por exemplo."
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:46
+msgid "You don't have any rule in place for this account."
 msgstr ""
-"Pode utilizalos para desfrutar da súa lista de reprodución e música en modo "
-"fora de liña, no seu dispositivo móbil ou tableta, por exemplo."
 
-#: front/src/components/Sidebar.vue:156
+#: front/src/views/admin/moderation/DomainsDetail.vue:39
+msgid "You don't have any rule in place for this domain."
+msgstr ""
+
+#: front/src/components/Sidebar.vue:158
 msgid "You have a radio playing"
 msgstr "Ten a radio a funcionar"
 
-#: front/src/App.vue:6
+#: front/src/components/audio/Player.vue:71
+msgid "You may have a connectivity issue."
+msgstr ""
+
+#: front/src/App.vue:17
 msgid "You need to select an instance in order to continue"
 msgstr "Debe seleccionar unha instancia para poder continuar"
 
@@ -2456,40 +3034,25 @@ msgstr "Será desconectada de esta sesión e deberá conectar co novo"
 
 #: front/src/components/auth/Settings.vue:71
 msgid "You will have to update your password on your clients that use this password."
-msgstr ""
-"Deberá actualizar o contrasinal nos seus clientes que utilicen este "
-"contrasinal."
-
-#: front/src/components/library/import/Main.vue:103
-msgid "You will import:"
-msgstr "Vai importar:"
-
-#: front/src/views/auth/EmailConfirm.vue:24
-msgid "Your email address was confirmed, you can now use the service without limitations."
-msgstr ""
-"O seu enderezo de correo foi confirmado, xa pode utilizar o servizo sen "
-"limitacións."
+msgstr "Deberá actualizar o contrasinal nos seus clientes que utilicen este contrasinal."
 
-#: front/src/components/favorites/List.vue:109
+#: front/src/components/favorites/List.vue:112
 msgid "Your Favorites"
 msgstr "As súas Favoritas"
 
-#: front/src/components/Home.vue:117
+#: front/src/components/Home.vue:114
 msgid "Your music, your way"
 msgstr "A súa música, o seu xeito"
 
+#: front/src/views/Notifications.vue:7
+#, fuzzy
+msgid "Your notifications"
+msgstr "Última modificación"
+
 #: front/src/views/auth/PasswordResetConfirm.vue:29
 msgid "Your password has been updated successfully."
 msgstr "O seu contrasinal foi actualizado correctamente."
 
 #: front/src/components/auth/Settings.vue:101
 msgid "Your Subsonic password will be changed to a new, random one, logging you out from devices that used the old Subsonic password"
-msgstr ""
-"O seu contrasinal Subsonic será cambiado por un novo, aleatorio, "
-"desconectándoa de todos os dispositivos que utilicen os contrasinal antigo"
-
-#: front/src/components/audio/PlayButton.vue:156
-msgid "%{ count } track was added to your queue"
-msgid_plural "%{ count } tracks were added to your queue"
-msgstr[0] "Engadiuse %{ count } canción a cola"
-msgstr[1] "Engadíronse %{ count } cancións a cola"
+msgstr "O seu contrasinal Subsonic será cambiado por un novo, aleatorio, desconectándoa de todos os dispositivos que utilicen os contrasinal antigo"
diff --git a/front/locales/it/LC_MESSAGES/app.po b/front/locales/it/LC_MESSAGES/app.po
index 5adb8c99098382a9866f48e00358f49c1618058d..d3251f2b75cf2102f61706f8749b37053c11e098 100644
--- a/front/locales/it/LC_MESSAGES/app.po
+++ b/front/locales/it/LC_MESSAGES/app.po
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: front 1.0.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-10-05 20:10+0200\n"
-"PO-Revision-Date: 2018-08-06 12:12+0000\n"
+"POT-Creation-Date: 2019-01-11 15:55+0100\n"
+"PO-Revision-Date: 2019-01-15 08:57+0000\n"
 "Last-Translator: Sylke Vicious <silkevicious@tuta.io>\n"
 "Language-Team: none\n"
 "Language: it\n"
@@ -16,7 +16,7 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 2.20\n"
+"X-Generator: Weblate 3.2.2\n"
 
 #: front/src/components/playlists/PlaylistModal.vue:9
 msgid "\"%{ title }\", by %{ artist }"
@@ -30,14 +30,14 @@ msgstr "(%{ index } su %{ length })"
 msgid "(empty)"
 msgstr "(vuoto)"
 
-#: front/src/components/common/ActionTable.vue:44
-#: front/src/components/common/ActionTable.vue:53
+#: front/src/components/common/ActionTable.vue:57
+#: front/src/components/common/ActionTable.vue:66
 msgid "%{ count } on %{ total } selected"
 msgid_plural "%{ count } on %{ total } selected"
 msgstr[0] "%{ count } su %{ total } selezionato"
 msgstr[1] "%{ count } su %{ total } selezionati"
 
-#: front/src/components/Sidebar.vue:107 src/components/audio/album/Card.vue:54
+#: front/src/components/Sidebar.vue:110 src/components/audio/album/Card.vue:54
 #: front/src/views/content/libraries/Card.vue:39
 #: src/views/content/remote/Card.vue:26
 msgid "%{ count } track"
@@ -57,6 +57,12 @@ msgid_plural "%{ count } tracks matching combined filters"
 msgstr[0] "%{ count } traccia corrisponde ai filtri combinati"
 msgstr[1] "%{ count } tracce corrispondono ai filtri combinati"
 
+#: front/src/components/audio/PlayButton.vue:180
+msgid "%{ count } track was added to your queue"
+msgid_plural "%{ count } tracks were added to your queue"
+msgstr[0] "%{ count } traccia è stata aggiunta alla tua coda"
+msgstr[1] "%{ count } tracce sono state aggiunte alla tua coda"
+
 #: front/src/components/playlists/Card.vue:18
 msgid "%{ count} track"
 msgid_plural "%{ count } tracks"
@@ -64,9 +70,8 @@ msgstr[0] "%{ count} traccia"
 msgstr[1] "%{ count} tracce"
 
 #: front/src/views/content/libraries/Quota.vue:11
-#, fuzzy
 msgid "%{ current } used on %{ max } allowed"
-msgstr "%{ count } su %{ total } selezionato"
+msgstr "%{ current } usato su %{ max } consentito"
 
 #: front/src/components/common/Duration.vue:2
 msgid "%{ hours } h %{ minutes } min"
@@ -76,13 +81,25 @@ msgstr "%{ hours } o %{ minutes } min"
 msgid "%{ minutes } min"
 msgstr "%{ minutes } min"
 
-#: front/src/components/activity/Like.vue:7
-msgid "%{ user } favorited a track"
-msgstr "a %{ user } piace una traccia"
+#: front/src/components/notifications/NotificationRow.vue:40
+msgid "%{ username } accepted your follow on library \"%{ library }\""
+msgstr ""
+"%{ username } ha accettato la tua richiesta di seguire la libreria \"%{ "
+"library }\""
+
+#: front/src/components/notifications/NotificationRow.vue:39
+msgid "%{ username } followed your library \"%{ library }\""
+msgstr "%{ username } segue la tua libreria \"%{ library }\""
+
+#: front/src/components/auth/Profile.vue:46
+msgid "%{ username }'s profile"
+msgstr "Profilo di %{ username }"
 
-#: front/src/components/activity/Listen.vue:7
-msgid "%{ user } listened to a track"
-msgstr "%{ user } ha ascoltato una traccia"
+#: front/src/components/Footer.vue:5
+msgid "<translate :translate-params=\"{instanceName: instanceHostname}\">About %{instanceName}</translate>"
+msgstr ""
+"<translate :translate-params=\"{instanceName: instanceHostname}\">A "
+"proposito di %{instanceName}</translate>"
 
 #: front/src/components/audio/artist/Card.vue:41
 msgid "1 album"
@@ -96,39 +113,64 @@ msgid_plural "%{ count } favorites"
 msgstr[0] "1 mi piace"
 msgstr[1] "%{ count } mi piace"
 
+#: front/src/components/library/FileUpload.vue:225
+#: front/src/components/library/FileUpload.vue:226
+msgid "A network error occured while uploading this file"
+msgstr "C'è stato un errore durante il caricamento di questo file"
+
 #: front/src/components/About.vue:5
 msgid "About %{ instance }"
 msgstr "A proposito di %{ instance }"
 
-#: front/src/App.vue:53
+#: front/src/components/Footer.vue:6
+msgid "About %{instanceName}"
+msgstr "A proposito di %{instanceName}"
+
+#: front/src/components/Footer.vue:45
 msgid "About Funkwhale"
 msgstr "A proposito di Funkwhale"
 
-#: front/src/App.vue:34 src/components/About.vue:8 src/components/About.vue:55
+#: front/src/components/Footer.vue:10
+msgid "About page"
+msgstr "Pagina di informazioni"
+
+#: front/src/components/About.vue:8 src/components/About.vue:64
 msgid "About this instance"
 msgstr "A proposito di questa istanza"
 
 #: front/src/views/content/libraries/Detail.vue:48
-#, fuzzy
 msgid "Accept"
-msgstr "Accettato"
+msgstr "Accetta"
 
 #: front/src/views/content/libraries/Detail.vue:40
 msgid "Accepted"
 msgstr "Accettato"
 
+#: front/src/components/auth/SubsonicTokenForm.vue:111
+msgid "Access disabled"
+msgstr "Accesso disabilitato"
+
 #: front/src/components/Home.vue:106
 msgid "Access your music from a clean interface that focus on what really matters"
 msgstr "Accedi alla tua musica da un'interfaccia pulita che si focalizza su quello che conta davvero"
 
-#: front/src/views/admin/users/UsersDetail.vue:54
-msgid "Account active"
-msgstr "Account attivo"
+#: front/src/components/mixins/Translations.vue:19
+#: front/src/components/mixins/Translations.vue:20
+msgid "Accessed date"
+msgstr "Data di accesso"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:78
+msgid "Account data"
+msgstr "Dati dell'account"
 
 #: front/src/components/auth/Settings.vue:5
 msgid "Account settings"
 msgstr "Impostazioni dell'account"
 
+#: front/src/components/auth/Settings.vue:264
+msgid "Account Settings"
+msgstr "Impostazioni dell'account"
+
 #: front/src/components/manage/users/UsersTable.vue:39
 msgid "Account status"
 msgstr "Stato dell'account"
@@ -137,18 +179,23 @@ msgstr "Stato dell'account"
 msgid "Account's email"
 msgstr "Email dell'account"
 
+#: front/src/views/admin/moderation/AccountsList.vue:3
+#: front/src/views/admin/moderation/AccountsList.vue:24
+#: front/src/views/admin/moderation/Base.vue:8
+msgid "Accounts"
+msgstr "Account"
+
 #: front/src/views/content/libraries/Detail.vue:29
-#, fuzzy
 msgid "Action"
-msgstr "Azioni"
+msgstr "Azione"
 
-#: front/src/components/common/ActionTable.vue:86
+#: front/src/components/common/ActionTable.vue:99
 msgid "Action %{ action } was launched successfully on %{ count } element"
 msgid_plural "Action %{ action } was launched successfully on %{ count } elements"
 msgstr[0] "L'azione %{ action } è stata lanciata con successo su %{ count } elemento"
 msgstr[1] "L'azione %{ action } è stata lanciata con successo su %{ count } elementi"
 
-#: front/src/components/common/ActionTable.vue:8
+#: front/src/components/common/ActionTable.vue:21
 #: front/src/components/library/radios/Builder.vue:64
 msgid "Actions"
 msgstr "Azioni"
@@ -157,13 +204,35 @@ msgstr "Azioni"
 msgid "Active"
 msgstr "Attivo"
 
-#: front/src/components/Sidebar.vue:75
+#: front/src/views/admin/moderation/AccountsDetail.vue:199
+#: front/src/views/admin/moderation/DomainsDetail.vue:144
 msgid "Activity"
 msgstr "Attività"
 
-#: front/src/components/Sidebar.vue:78 src/views/content/Base.vue:19
+#: front/src/components/mixins/Translations.vue:7
+#: front/src/components/mixins/Translations.vue:8
+msgid "Activity visibility"
+msgstr "Visibilità dell'attività"
+
+#: front/src/views/admin/moderation/DomainsList.vue:18
+msgid "Add"
+msgstr "Aggiungi"
+
+#: front/src/views/admin/moderation/DomainsList.vue:13
+msgid "Add a domain"
+msgstr "Aggiungi un dominio"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:4
+msgid "Add a new moderation rule"
+msgstr "Aggiungi una nuova regola di moderazione"
+
+#: front/src/views/content/Home.vue:35
+msgid "Add and manage content"
+msgstr "Aggiungi e gestisci contenuti"
+
+#: front/src/components/Sidebar.vue:75 src/views/content/Base.vue:18
 msgid "Add content"
-msgstr ""
+msgstr "Aggiungi contenuto"
 
 #: front/src/components/library/radios/Builder.vue:50
 msgid "Add filter"
@@ -173,20 +242,28 @@ msgstr "Aggiungi filtro"
 msgid "Add filters to customize your radio"
 msgstr "Aggiungi filtri per personalizzare la tua radio"
 
+#: front/src/components/audio/PlayButton.vue:64
+msgid "Add to current queue"
+msgstr "Aggiungi alla coda attuale"
+
 #: front/src/components/favorites/TrackFavoriteIcon.vue:4
-#: front/src/components/favorites/TrackFavoriteIcon.vue:21
+#: front/src/components/favorites/TrackFavoriteIcon.vue:28
 msgid "Add to favorites"
 msgstr "Aggiungi ai preferiti"
 
 #: front/src/components/playlists/TrackPlaylistIcon.vue:6
-#: front/src/components/playlists/TrackPlaylistIcon.vue:32
-msgid "Add to playlist..."
-msgstr "Aggiungi alla playlist..."
+#: front/src/components/playlists/TrackPlaylistIcon.vue:34
+msgid "Add to playlist…"
+msgstr "Aggiungi alla playlist…"
 
 #: front/src/components/audio/PlayButton.vue:14
 msgid "Add to queue"
 msgstr "Aggiungi alla coda"
 
+#: front/src/components/playlists/PlaylistModal.vue:116
+msgid "Add to this playlist"
+msgstr "Aggiungi a questa playlist"
+
 #: front/src/components/playlists/PlaylistModal.vue:54
 msgid "Add track"
 msgstr "Aggiungi traccia"
@@ -195,16 +272,16 @@ msgstr "Aggiungi traccia"
 msgid "Admin"
 msgstr "Amministratore"
 
-#: front/src/components/Sidebar.vue:82
+#: front/src/components/Sidebar.vue:79
 msgid "Administration"
 msgstr "Amministrazione"
 
-#: front/src/components/audio/track/Table.vue:8
+#: front/src/components/audio/SearchBar.vue:26
+#: src/components/audio/track/Table.vue:8
+#: front/src/components/library/Album.vue:159
 #: front/src/components/manage/library/FilesTable.vue:39
-#: front/src/views/content/libraries/FilesTable.vue:53
-#: front/src/components/library/Album.vue:101
-#: src/components/audio/SearchBar.vue:26
 #: front/src/components/metadata/Search.vue:134
+#: front/src/views/content/libraries/FilesTable.vue:56
 msgid "Album"
 msgstr "Album"
 
@@ -214,13 +291,19 @@ msgid_plural "Album containing %{ count } tracks, by %{ artist }"
 msgstr[0] "Album contenente %{ count } traccia, di %{ artist }"
 msgstr[1] "Album contenente %{ count } tracce, di %{ artist }"
 
-#: front/src/components/library/Track.vue:20
+#: front/src/components/mixins/Translations.vue:24
+#: front/src/components/mixins/Translations.vue:25
+msgid "Album name"
+msgstr "Nome album"
+
+#: front/src/components/library/Track.vue:27
 msgid "Album page"
 msgstr "Pagina dell'album"
 
 #: front/src/components/audio/Search.vue:19
 #: src/components/instance/Stats.vue:48
-#: front/src/components/requests/Form.vue:9
+#: front/src/views/admin/moderation/AccountsDetail.vue:321
+#: front/src/views/admin/moderation/DomainsDetail.vue:257
 msgid "Albums"
 msgstr "Albums"
 
@@ -241,33 +324,43 @@ msgstr "C'è stato un errore durante il salvataggio delle tue modifiche"
 msgid "An unknown error happend, this can mean the server is down or cannot be reached"
 msgstr "Si è verificato un errore sconosciuto, questo significa che il server è offline o non può essere raggiunto"
 
+#: front/src/components/notifications/NotificationRow.vue:62
+msgid "Approve"
+msgstr "Approva"
+
 #: front/src/components/auth/Logout.vue:5
 msgid "Are you sure you want to log out?"
 msgstr "Sei sicuro di volerti disconnettere?"
 
-#: front/src/components/audio/track/Table.vue:7
+#: front/src/components/audio/SearchBar.vue:25
+#: src/components/audio/track/Table.vue:7
+#: front/src/components/library/Artist.vue:137
 #: front/src/components/manage/library/FilesTable.vue:38
-#: front/src/views/content/libraries/FilesTable.vue:52
-#: front/src/components/library/Artist.vue:129
-#: src/components/audio/SearchBar.vue:25
 #: front/src/components/metadata/Search.vue:130
+#: front/src/views/content/libraries/FilesTable.vue:55
 msgid "Artist"
 msgstr "Artista"
 
-#: front/src/components/requests/Form.vue:5
-#: src/components/mixins/Translations.vue:24
+#: front/src/components/mixins/Translations.vue:25
+#: front/src/components/mixins/Translations.vue:26
 msgid "Artist name"
 msgstr "Nome dell'artista"
 
 #: front/src/components/library/Album.vue:22
-#: src/components/library/Track.vue:23
+#: src/components/library/Track.vue:33
 msgid "Artist page"
 msgstr "Pagina dell'artista"
 
+#: front/src/components/audio/Search.vue:65
+msgid "Artist, album, track…"
+msgstr "Artista, album, traccia…"
+
 #: front/src/components/audio/Search.vue:10
 #: src/components/instance/Stats.vue:42
-#: front/src/components/library/Library.vue:7
-#: src/components/library/Artists.vue:120
+#: front/src/components/library/Artists.vue:119
+#: src/components/library/Library.vue:7
+#: front/src/views/admin/moderation/AccountsDetail.vue:313
+#: front/src/views/admin/moderation/DomainsDetail.vue:249
 msgid "Artists"
 msgstr "Artisti"
 
@@ -275,6 +368,8 @@ msgstr "Artisti"
 #: src/components/library/Artists.vue:25
 #: front/src/components/library/Radios.vue:44
 #: front/src/components/manage/library/FilesTable.vue:19
+#: front/src/components/manage/moderation/AccountsTable.vue:21
+#: front/src/components/manage/moderation/DomainsTable.vue:19
 #: front/src/components/manage/users/UsersTable.vue:19
 #: front/src/views/content/libraries/FilesTable.vue:31
 #: front/src/views/playlists/List.vue:27
@@ -285,6 +380,15 @@ msgstr "Crescente"
 msgid "Ask for a password reset"
 msgstr "Chiedi un reset della password"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:245
+#: front/src/views/admin/moderation/DomainsDetail.vue:202
+msgid "Audio content"
+msgstr "Contenuto audio"
+
+#: front/src/components/ShortcutsModal.vue:55
+msgid "Audio player shortcuts"
+msgstr "Scorciatoie del lettore audio"
+
 #: front/src/components/playlists/PlaylistModal.vue:26
 msgid "Available playlists"
 msgstr "Playlist disponibili"
@@ -293,17 +397,30 @@ msgstr "Playlist disponibili"
 msgid "Avatar"
 msgstr "Avatar"
 
-#: front/src/views/auth/EmailConfirm.vue:17 src/views/auth/PasswordReset.vue:24
+#: front/src/views/auth/PasswordReset.vue:24
 #: front/src/views/auth/PasswordResetConfirm.vue:18
 msgid "Back to login"
 msgstr "Torna alla pagina di accesso"
 
-#: front/src/components/library/Track.vue:80
+#: front/src/components/library/Track.vue:129
 #: front/src/components/manage/library/FilesTable.vue:42
-#: front/src/components/mixins/Translations.vue:28
+#: front/src/components/mixins/Translations.vue:29
+#: front/src/components/mixins/Translations.vue:30
 msgid "Bitrate"
 msgstr "Bitrate"
 
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:19
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:34
+msgid "Block everything"
+msgstr "Blocca tutto"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:112
+msgid "Block everything from this account or domain. This will prevent any interaction with the entity, and purge related content (uploads, libraries, follows, etc.)"
+msgstr ""
+"Blocca tutto da questo account o dominio. Questo prevenirà qualsiasi "
+"interazione con l'entità, ed eliminerà i relativi contenuti (caricamenti, "
+"librerie, richieste di seguire, ecc.)"
+
 #: front/src/components/Sidebar.vue:18 src/components/library/Library.vue:4
 msgid "Browse"
 msgstr "Sfoglia"
@@ -333,11 +450,20 @@ msgid "By %{ artist }"
 msgstr "Di %{ artist }"
 
 #: front/src/views/content/remote/Card.vue:103
-msgid "By unfollowing this library, you will loose access to its content."
+msgid "By unfollowing this library, you loose access to its content."
 msgstr ""
+"Smettendo di seguire questa libreria, perderai l'accesso al suo contenuto."
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:261
+#: front/src/views/admin/moderation/DomainsDetail.vue:217
+msgid "Cached size"
+msgstr "Dimensione in cache"
 
 #: front/src/components/common/DangerousButton.vue:17
+#: front/src/components/library/Album.vue:58
+#: src/components/library/Track.vue:76
 #: front/src/components/library/radios/Filter.vue:53
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:54
 #: front/src/components/playlists/PlaylistModal.vue:63
 msgid "Cancel"
 msgstr "Annulla"
@@ -350,7 +476,12 @@ msgstr "Candidati"
 msgid "Cannot change your password"
 msgstr "Non puoi cambiare la tua password"
 
-#: front/src/App.vue:65
+#: front/src/components/library/FileUpload.vue:222
+#: front/src/components/library/FileUpload.vue:223
+msgid "Cannot upload this file, ensure it is not too big"
+msgstr "Impossibile caricare questo file, controlla che non sia troppo grande"
+
+#: front/src/components/Footer.vue:21
 msgid "Change language"
 msgstr "Cambia lingua"
 
@@ -383,7 +514,11 @@ msgstr "Cambiando la tua password cambierà anche la password della API Subsonic
 msgid "Changing your password will have the following consequences"
 msgstr "Cambiare la tua password avrà queste conseguenze"
 
-#: front/src/App.vue:6
+#: front/src/components/Footer.vue:40
+msgid "Chat room"
+msgstr "Stanza di conversazione"
+
+#: front/src/App.vue:13
 msgid "Choose your instance"
 msgstr "Scegli la tua istanza"
 
@@ -400,13 +535,21 @@ msgstr "Pulisci"
 msgid "Clear playlist"
 msgstr "Pulisci playlist"
 
+#: front/src/components/audio/Player.vue:363
+msgid "Clear your queue"
+msgstr "Pulisci la tua coda"
+
 #: front/src/components/Home.vue:44
 msgid "Click once, listen for hours using built-in radios"
 msgstr "Clicca una volta, ascolta per ore utilizzando le radio integrate"
 
-#: front/src/components/library/FileUpload.vue:76
+#: front/src/components/library/FileUpload.vue:75
 msgid "Click to select files to upload or drag and drop files or directories"
-msgstr ""
+msgstr "Clicca per selezionare i file da caricare o trascina e rilascia file o cartelle"
+
+#: front/src/components/ShortcutsModal.vue:20
+msgid "Close"
+msgstr "Chiudi"
 
 #: front/src/components/manage/users/InvitationForm.vue:26
 #: front/src/components/manage/users/InvitationsTable.vue:42
@@ -415,14 +558,9 @@ msgstr "Codice"
 
 #: front/src/components/audio/album/Card.vue:43
 #: front/src/components/audio/artist/Card.vue:33
-#: front/src/components/discussion/Comment.vue:20
 msgid "Collapse"
 msgstr "Riduci"
 
-#: front/src/components/requests/Form.vue:14
-msgid "Comment"
-msgstr "Commenta"
-
 #: front/src/components/library/radios/Builder.vue:62
 msgid "Config"
 msgstr "Configurazione"
@@ -433,29 +571,69 @@ msgstr "Conferma"
 
 #: front/src/views/auth/EmailConfirm.vue:4 src/views/auth/EmailConfirm.vue:20
 #: front/src/views/auth/EmailConfirm.vue:51
-msgid "Confirm your email"
-msgstr "Conferma la tua email"
+msgid "Confirm your e-mail address"
+msgstr "Conferma il tuo indirizzo e-mail"
 
 #: front/src/views/auth/EmailConfirm.vue:13
 msgid "Confirmation code"
 msgstr "Codice di conferma"
 
+#: front/src/components/common/ActionTable.vue:7
+msgid "Content have been updated, click refresh to see up-to-date content"
+msgstr ""
+"Il contenuto è stato aggiornato, clicca aggiorna per visualizzaare il "
+"contenuto aggiornato"
+
+#: front/src/components/Footer.vue:48
+msgid "Contribute"
+msgstr "Contribuisci"
+
+#: front/src/components/audio/EmbedWizard.vue:19
 #: front/src/components/common/CopyInput.vue:8
 msgid "Copy"
+msgstr "Copia"
+
+#: front/src/components/playlists/Editor.vue:163
+msgid "Copy tracks from current queue to playlist"
+msgstr "Copia tracce dalla tua coda corrente alla playlist"
+
+#: front/src/components/audio/EmbedWizard.vue:21
+msgid "Copy/paste this code in your website HTML"
+msgstr "Copia/incolla questo codice nel tuo sito HTML"
+
+#: front/src/components/library/Track.vue:91
+msgid "Copyright"
+msgstr "Copyright"
+
+#: front/src/views/auth/EmailConfirm.vue:7
+msgid "Could not confirm your e-mail address"
+msgstr "Non è stato possibile confermare il tuo indirizzo e-mail"
+
+#: front/src/views/content/remote/ScanForm.vue:3
+msgid "Could not fetch remote library"
+msgstr "Non è stato possibile recuperare la libreria remota"
+
+#: front/src/views/content/libraries/FilesTable.vue:213
+msgid "Could not process this track, ensure it is tagged correctly"
 msgstr ""
+"Non è stato possibile processare questa traccia, assicurati che sia "
+"correttamente etichettata"
 
 #: front/src/components/Home.vue:85
 msgid "Covers, lyrics, our goal is to have them all ;)"
 msgstr "Copertine, testi, il nostro obbiettivo è averli tutti ;)"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:58
+msgid "Create"
+msgstr "Crea"
+
 #: front/src/components/auth/Signup.vue:4
 msgid "Create a funkwhale account"
 msgstr "Crea un account funkwhale"
 
 #: front/src/views/content/libraries/Home.vue:14
-#, fuzzy
 msgid "Create a new library"
-msgstr "Crea una nuova playlist"
+msgstr "Crea una nuova libreria"
 
 #: front/src/components/playlists/Form.vue:2
 msgid "Create a new playlist"
@@ -465,14 +643,9 @@ msgstr "Crea una nuova playlist"
 msgid "Create an account"
 msgstr "Crea un account"
 
-#: front/src/components/requests/Card.vue:25
-msgid "Create import"
-msgstr "Crea importazione"
-
 #: front/src/views/content/libraries/Form.vue:26
-#, fuzzy
 msgid "Create library"
-msgstr "Pulisci libreria"
+msgstr "Crea libreria"
 
 #: front/src/components/auth/Signup.vue:51
 msgid "Create my account"
@@ -487,6 +660,7 @@ msgid "Create your own radio"
 msgstr "Crea la tua radio"
 
 #: front/src/components/manage/users/InvitationsTable.vue:40
+#: front/src/components/mixins/Translations.vue:16
 #: front/src/components/mixins/Translations.vue:17
 msgid "Creation date"
 msgstr "Data di creazione"
@@ -496,35 +670,41 @@ msgid "Current avatar"
 msgstr "Avatar attuale"
 
 #: front/src/views/content/libraries/DetailArea.vue:4
-#, fuzzy
 msgid "Current library"
-msgstr "Pulisci libreria"
+msgstr "Libreria attuale"
 
 #: front/src/components/playlists/PlaylistModal.vue:8
 msgid "Current track"
 msgstr "Traccia corrente"
 
 #: front/src/views/content/libraries/Quota.vue:2
-#, fuzzy
 msgid "Current usage"
-msgstr "Traccia corrente"
+msgstr "Utilizzo attuale"
 
 #: front/src/views/content/libraries/Detail.vue:27
 msgid "Date"
-msgstr ""
+msgstr "Data"
+
+#: front/src/components/ShortcutsModal.vue:75
+msgid "Decrease volume"
+msgstr "Diminuisci volume"
 
-#: front/src/views/content/libraries/Form.vue:29
-#: src/views/playlists/Detail.vue:33
 #: front/src/components/manage/library/FilesTable.vue:190
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:61
 #: front/src/components/manage/users/InvitationsTable.vue:167
-#: front/src/views/content/libraries/FilesTable.vue:258
+#: front/src/views/content/libraries/FilesTable.vue:233
+#: front/src/views/content/libraries/Form.vue:29
+#: src/views/playlists/Detail.vue:33
 msgid "Delete"
 msgstr "Elimina"
 
 #: front/src/views/content/libraries/Form.vue:39
-#, fuzzy
 msgid "Delete library"
-msgstr "Pulisci libreria"
+msgstr "Elimina libreria"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:69
+msgid "Delete moderation rule"
+msgstr "Elimina regola di moderazione"
 
 #: front/src/views/playlists/Detail.vue:38
 msgid "Delete playlist"
@@ -535,14 +715,19 @@ msgid "Delete radio"
 msgstr "Elimina radio"
 
 #: front/src/views/content/libraries/Form.vue:31
-#, fuzzy
 msgid "Delete this library?"
-msgstr "Portami alla libreria"
+msgstr "Eliminare questa libreria?"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:63
+msgid "Delete this moderation rule?"
+msgstr "Eliminare questa regola di moderazione?"
 
 #: front/src/components/favorites/List.vue:34
 #: src/components/library/Artists.vue:26
 #: front/src/components/library/Radios.vue:47
 #: front/src/components/manage/library/FilesTable.vue:20
+#: front/src/components/manage/moderation/AccountsTable.vue:22
+#: front/src/components/manage/moderation/DomainsTable.vue:20
 #: front/src/components/manage/users/UsersTable.vue:20
 #: front/src/views/content/libraries/FilesTable.vue:32
 #: front/src/views/playlists/List.vue:28
@@ -551,18 +736,25 @@ msgstr "Decrescente"
 
 #: front/src/components/library/radios/Builder.vue:25
 #: front/src/views/content/libraries/Form.vue:14
-#, fuzzy
 msgid "Description"
-msgstr "Durata"
+msgstr "Descrizione"
 
 #: front/src/views/content/libraries/Card.vue:47
 msgid "Detail"
 msgstr "Dettaglio"
 
 #: front/src/views/content/remote/Card.vue:50
-#, fuzzy
 msgid "Details"
-msgstr "Dettaglio"
+msgstr "Dettagli"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:455
+msgid "Determine how much content the user can upload. Leave empty to use the default value of the instance."
+msgstr "Determina quanto contenuto un utente può caricare. Lascia vuoto per usare il valore predefinito dell'istanza."
+
+#: front/src/components/mixins/Translations.vue:8
+#: front/src/components/mixins/Translations.vue:9
+msgid "Determine the visibility level of your activity"
+msgstr "Imposta il livello di visibilità delle tue attività"
 
 #: front/src/components/auth/Settings.vue:104
 #: front/src/components/auth/SubsonicTokenForm.vue:52
@@ -577,14 +769,31 @@ msgstr "Disabilita accesso Subsonic"
 msgid "Disable Subsonic API access?"
 msgstr "Disabilitare l'accesso alle API Subsonic?"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:18
+#: front/src/views/admin/moderation/AccountsDetail.vue:128
+#: front/src/views/admin/moderation/AccountsDetail.vue:132
+msgid "Disabled"
+msgstr "Disabilitato"
+
 #: front/src/components/auth/SubsonicTokenForm.vue:14
 msgid "Discover how to use Funkwhale from other apps"
 msgstr "Scopri come utilizzare Funkwhale attraverso altre app"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:103
+msgid "Display name"
+msgstr "Nome visualizzato"
+
 #: front/src/components/library/radios/Builder.vue:30
 msgid "Display publicly"
 msgstr "Mostra pubblicamente"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:122
+msgid "Do not download any media file (audio, album cover, account avatar…) from this account or domain. This will purge existing content as well."
+msgstr ""
+"Non scaricare nessun media (audio, copertina dell'album, avatar "
+"dell'account...) da questo account o dominio. Questo eliminerà anche i "
+"contenuti già esistenti."
+
 #: front/src/components/playlists/Editor.vue:42
 msgid "Do you want to clear the playlist \"%{ playlist }\"?"
 msgstr "Vuoi pulire la playlist \"%{ playlist }\"?"
@@ -601,21 +810,34 @@ msgstr "Vuoi eliminare la playlist \"%{ playlist }\"?"
 msgid "Do you want to delete the radio \"%{ radio }\"?"
 msgstr "Vuoi eliminare la radio \"%{ radio }\"?"
 
-#: front/src/components/common/ActionTable.vue:29
+#: front/src/components/common/ActionTable.vue:36
 msgid "Do you want to launch %{ action } on %{ count } element?"
 msgid_plural "Do you want to launch %{ action } on %{ count } elements?"
 msgstr[0] "Vuoi eseguire %{ action } su %{ count } elemento?"
 msgstr[1] "Vuoi eseguire %{ action } su %{ count } elementi?"
 
-#: front/src/components/Sidebar.vue:104
+#: front/src/components/Sidebar.vue:107
 msgid "Do you want to restore your previous queue?"
 msgstr "Vuoi ripristinare la tua coda precedente?"
 
-#: front/src/App.vue:37
+#: front/src/components/Footer.vue:31
 msgid "Documentation"
 msgstr "Documentazione"
 
-#: front/src/components/library/Track.vue:48
+#: front/src/components/manage/moderation/AccountsTable.vue:40
+#: front/src/components/mixins/Translations.vue:34
+#: front/src/views/admin/moderation/AccountsDetail.vue:93
+#: front/src/components/mixins/Translations.vue:35
+msgid "Domain"
+msgstr "Dominio"
+
+#: front/src/views/admin/moderation/Base.vue:5
+#: front/src/views/admin/moderation/DomainsList.vue:3
+#: front/src/views/admin/moderation/DomainsList.vue:48
+msgid "Domains"
+msgstr "Domini"
+
+#: front/src/components/library/Track.vue:55
 msgid "Download"
 msgstr "Scarica"
 
@@ -624,58 +846,127 @@ msgid "Drag and drop rows to reorder tracks in the playlist"
 msgstr "Trascina e rilascia righe per riordinare le tracce nella playlist"
 
 #: front/src/components/audio/track/Table.vue:9
-#: src/components/library/Track.vue:58
+#: src/components/library/Track.vue:111
 #: front/src/components/manage/library/FilesTable.vue:43
-#: front/src/views/content/libraries/FilesTable.vue:56
-#: front/src/components/mixins/Translations.vue:29
+#: front/src/components/mixins/Translations.vue:30
+#: front/src/views/content/libraries/FilesTable.vue:59
+#: front/src/components/mixins/Translations.vue:31
 msgid "Duration"
 msgstr "Durata"
 
+#: front/src/views/auth/EmailConfirm.vue:23
+msgid "E-mail address confirmed"
+msgstr "Indirizzo e-mail confermato"
+
 #: front/src/components/Home.vue:93
 msgid "Easy to use"
 msgstr "Facile da utilizzare"
 
 #: front/src/views/content/libraries/Detail.vue:9
-#, fuzzy
 msgid "Edit"
-msgstr "Modifica..."
+msgstr "Modifica"
 
 #: front/src/components/About.vue:21
 msgid "Edit instance info"
 msgstr "Modifica le info dell'istanza"
 
 #: front/src/components/radios/Card.vue:22 src/views/playlists/Detail.vue:30
-msgid "Edit..."
-msgstr "Modifica..."
+msgid "Edit…"
+msgstr "Modifica…"
 
 #: front/src/components/auth/Signup.vue:29
 #: front/src/components/manage/users/UsersTable.vue:38
 msgid "Email"
 msgstr "Email"
 
-#: front/src/views/admin/users/UsersDetail.vue:29
+#: front/src/views/admin/moderation/AccountsDetail.vue:111
 msgid "Email address"
 msgstr "Indirizzo email"
 
-#: front/src/views/auth/EmailConfirm.vue:23
-msgid "Email confirmed"
-msgstr "Email confermata"
+#: front/src/components/library/Album.vue:44
+#: src/components/library/Track.vue:62
+msgid "Embed"
+msgstr "Incorpora"
+
+#: front/src/components/audio/EmbedWizard.vue:20
+msgid "Embed code"
+msgstr "Incorpora codice"
+
+#: front/src/components/library/Album.vue:48
+msgid "Embed this album on your website"
+msgstr "Incorpora questo album nel tuo sito web"
+
+#: front/src/components/library/Track.vue:66
+msgid "Embed this track on your website"
+msgstr "Incorpora questa traccia nel tuo sito web"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:230
+#: front/src/views/admin/moderation/DomainsDetail.vue:187
+msgid "Emitted library follows"
+msgstr "Emessi i follow della libreria"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:214
+#: front/src/views/admin/moderation/DomainsDetail.vue:171
+msgid "Emitted messages"
+msgstr "Messaggi emessi"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:8
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:17
+#: front/src/views/admin/moderation/AccountsDetail.vue:127
+#: front/src/views/admin/moderation/AccountsDetail.vue:131
+msgid "Enabled"
+msgstr "Abilitato"
 
 #: front/src/views/playlists/Detail.vue:29
 msgid "End edition"
 msgstr "Fine modifica"
 
+#: front/src/views/content/remote/ScanForm.vue:50
+msgid "Enter a library URL"
+msgstr "Inserisci l'URL di una libreria"
+
+#: front/src/components/library/Radios.vue:140
+msgid "Enter a radio name…"
+msgstr "Inserisci un nome di una radio…"
+
+#: front/src/components/library/Artists.vue:118
+msgid "Enter artist name…"
+msgstr "Inserisci il nome di un artista…"
+
+#: front/src/views/playlists/List.vue:107
+msgid "Enter playlist name…"
+msgstr "Inserisci il nome di una playlist…"
+
+#: front/src/components/auth/Signup.vue:100
+msgid "Enter your email"
+msgstr "Inserisci la tua email"
+
+#: front/src/components/auth/Signup.vue:96 src/components/auth/Signup.vue:97
+msgid "Enter your invitation code (case insensitive)"
+msgstr "Inserisci il tuo codice di invito (non tiene conto di maiuscole o minuscole)"
+
+#: front/src/components/metadata/Search.vue:114
+msgid "Enter your search query…"
+msgstr "Inserisci i tuoi criteri di ricerca…"
+
+#: front/src/components/auth/Signup.vue:99
+msgid "Enter your username"
+msgstr "Inserisci il tuo nome utente"
+
+#: front/src/components/auth/Login.vue:77
+msgid "Enter your username or email"
+msgstr "Inserisci il tuo nome utente o l'email"
+
 #: front/src/components/auth/SubsonicTokenForm.vue:20
 #: front/src/views/content/libraries/Form.vue:4
 msgid "Error"
 msgstr "Errore"
 
-#: front/src/views/content/remote/Card.vue:39
-#, fuzzy
-msgid "Error during scan"
+#: front/src/views/admin/Settings.vue:87
+msgid "Error reporting"
 msgstr "Segnalazione errore"
 
-#: front/src/components/common/ActionTable.vue:79
+#: front/src/components/common/ActionTable.vue:92
 msgid "Error while applying action"
 msgstr "Errore durante l'esecuzione dell'azione"
 
@@ -687,48 +978,56 @@ msgstr "Errore durante la richiesta di un reset della password"
 msgid "Error while changing your password"
 msgstr "Errore durante la modifica della password"
 
-#: front/src/views/auth/EmailConfirm.vue:7
-msgid "Error while confirming your email"
-msgstr "Errore durante la conferma della tua email"
+#: front/src/views/admin/moderation/DomainsList.vue:6
+msgid "Error while creating domain"
+msgstr "Errore durante la creazione del dominio"
 
 #: front/src/components/manage/users/InvitationForm.vue:4
 msgid "Error while creating invitation"
 msgstr "Errore durante la creazione dell'invito"
 
-#: front/src/views/content/remote/ScanForm.vue:3
-#, fuzzy
-msgid "Error while fetching remote library"
-msgstr "Errore durante la scansione della libreria"
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:7
+msgid "Error while creating rule"
+msgstr "Errore durante la creazione della regola"
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:126
+msgid "Error while fetching node info"
+msgstr "Errore durante il recupero delle informazioni del nodo"
 
 #: front/src/components/admin/SettingsGroup.vue:5
 msgid "Error while saving settings"
 msgstr "Errore durante il salvataggio delle impostazioni"
 
-#: front/src/views/content/libraries/FilesTable.vue:16
-#: front/src/views/content/libraries/FilesTable.vue:237
+#: front/src/views/content/libraries/FilesTable.vue:212
 msgid "Errored"
 msgstr "Si è verificato un errore"
 
 #: front/src/views/content/libraries/Quota.vue:75
-#, fuzzy
 msgid "Errored files"
-msgstr "Si è verificato un errore"
+msgstr "File con errore"
 
-#: front/src/views/content/remote/Card.vue:58
-#, fuzzy
-msgid "Errored tracks:"
-msgstr "Tracce federate"
+#: front/src/components/playlists/Form.vue:89
+msgid "Everyone"
+msgstr "Tutti"
+
+#: front/src/components/mixins/Translations.vue:11
+#: front/src/components/playlists/Form.vue:85
+#: src/views/content/libraries/Form.vue:73
+#: front/src/components/mixins/Translations.vue:12
+msgid "Everyone on this instance"
+msgstr "Tutti su questa istanza"
+
+#: front/src/views/content/libraries/Form.vue:74
+msgid "Everyone, across all instances"
+msgstr "Tutti, su tutte le istanze"
 
 #: front/src/components/library/radios/Builder.vue:61
 msgid "Exclude"
 msgstr "Escludi"
 
-#: front/src/components/discussion/Comment.vue:14
-msgid "Expand"
-msgstr "Espandi"
-
 #: front/src/components/manage/users/InvitationsTable.vue:41
-#: front/src/components/mixins/Translations.vue:21
+#: front/src/components/mixins/Translations.vue:22
+#: front/src/components/mixins/Translations.vue:23
 msgid "Expiration date"
 msgstr "Data di scadenza"
 
@@ -740,12 +1039,32 @@ msgstr "Scaduto"
 msgid "Expired/used"
 msgstr "Scaduto/utilizzato"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:110
+msgid "Explain why you're applying this policy. Depending on your instance configuration, this will help you remember why you acted on this account or domain, and may be displayed publicly to help users understand what moderation rules are in place."
+msgstr ""
+"Spiega perchè stai applicando questa regola. In base alla configurazione "
+"della tua istanza, questo ti aiuterà a ricordare perchè hai eseguito questa "
+"azione su questo account o dominio, e può essere mostrata pubblicamente per "
+"aiutare gli utenti a capire quali regole sono applicate qui."
+
+#: front/src/views/content/libraries/FilesTable.vue:16
+msgid "Failed"
+msgstr "Fallito"
+
+#: front/src/views/content/remote/Card.vue:58
+msgid "Failed tracks:"
+msgstr "Tracce con errore:"
+
 #: front/src/components/Sidebar.vue:66
 msgid "Favorites"
 msgstr "Preferiti"
 
-#: front/src/components/library/FileUpload.vue:83
-msgid "File name"
+#: front/src/views/admin/Settings.vue:84
+msgid "Federation"
+msgstr "Federazione"
+
+#: front/src/components/library/FileUpload.vue:84
+msgid "Filename"
 msgstr "Nome file"
 
 #: front/src/views/admin/library/Base.vue:5
@@ -758,24 +1077,37 @@ msgid "Filter name"
 msgstr "Filtra nome"
 
 #: front/src/views/content/libraries/FilesTable.vue:17
-#: front/src/views/content/libraries/FilesTable.vue:241
+#: front/src/views/content/libraries/FilesTable.vue:216
 msgid "Finished"
 msgstr "Finito"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:42
+#: front/src/components/manage/moderation/DomainsTable.vue:41
+#: front/src/views/admin/moderation/AccountsDetail.vue:159
+#: front/src/views/admin/moderation/DomainsDetail.vue:78
+msgid "First seen"
+msgstr "Visto per la prima volta"
+
+#: front/src/components/mixins/Translations.vue:17
+#: front/src/components/mixins/Translations.vue:18
+msgid "First seen date"
+msgstr "Visto per la prima volta in data"
+
 #: front/src/views/content/remote/Card.vue:83
 msgid "Follow"
 msgstr "Segui"
 
-#: front/src/views/content/remote/Card.vue:88
-#, fuzzy
-msgid "Follow pending approval"
-msgstr "Richiesta di seguire in attesa di approvazione"
-
 #: front/src/views/content/Home.vue:16
 msgid "Follow remote libraries"
-msgstr ""
+msgstr "Segui librerie remote"
+
+#: front/src/views/content/remote/Card.vue:88
+msgid "Follow request pending approval"
+msgstr "Richiesta di seguire in attesa di approvazione"
 
+#: front/src/components/mixins/Translations.vue:38
 #: front/src/views/content/libraries/Detail.vue:7
+#: front/src/components/mixins/Translations.vue:39
 msgid "Followers"
 msgstr "Seguito da"
 
@@ -783,19 +1115,10 @@ msgstr "Seguito da"
 msgid "Following"
 msgstr "Seguendo"
 
-#: front/src/components/activity/Like.vue:14
-#: src/components/activity/Listen.vue:14
-msgid "from %{ album } by %{ artist }"
-msgstr "da %{ album } di %{ artist }"
-
-#: front/src/components/library/Track.vue:13
+#: front/src/components/library/Track.vue:17
 msgid "From album %{ album } by %{ artist }"
 msgstr "Dall'album %{ album } di %{ artist }"
 
-#: front/src/App.vue:55
-msgid "Funkwhale is a free and open-source project run by volunteers. You can help us improve the platform by reporting bugs, suggesting features and share the project with your friends!"
-msgstr "Funkwhale è un progetto libero e open-source portato avanti da volontari. Puoi aiutarci a migliorare la piattaforma segnalando problemi, suggerendo miglioramenti e condividendo il progetto con i tuoi amici!"
-
 #: front/src/components/auth/SubsonicTokenForm.vue:7
 msgid "Funkwhale is compatible with other music players that support the Subsonic API."
 msgstr "Funkwhale è compatibile con altri lettori musicali che supportano le Subsonic API."
@@ -816,6 +1139,10 @@ msgstr "Funkwhale è gratuito e ti da il controllo sulla tua musica."
 msgid "Funkwhale takes care of handling your music"
 msgstr "Funkwhale si preoccupa di gestire la tua musica"
 
+#: front/src/components/ShortcutsModal.vue:38
+msgid "General shortcuts"
+msgstr "Scorciatoie generali"
+
 #: front/src/components/manage/users/InvitationForm.vue:16
 msgid "Get a new invitation"
 msgstr "Ottieni un nuovo invito"
@@ -825,21 +1152,19 @@ msgid "Get me to the library"
 msgstr "Portami alla libreria"
 
 #: front/src/components/Home.vue:76
-#, fuzzy
 msgid "Get quality metadata about your music thanks to <a href=\"%{ url }\" target=\"_blank\">MusicBrainz</a>"
-msgstr ""
-"Ottieni metadati di qualità sulla tua musica grazie a\n"
-"              <a href=\"https://musicbrainz.org\" target=\"_blank\">\n"
-"                MusicBrainz\n"
-"              </a>"
+msgstr "Ottieni metadati di qualità sulla tua musica grazie a <a href=\"%{ url }\" target=\"_blank\">MusicBrainz</a>"
 
 #: front/src/views/content/Home.vue:12 src/views/content/Home.vue:19
-#, fuzzy
 msgid "Get started"
-msgstr "Prossimo passo"
+msgstr "Iniziamo"
 
-#: front/src/components/common/ActionTable.vue:21
-#: front/src/components/common/ActionTable.vue:27
+#: front/src/components/Footer.vue:37
+msgid "Getting help"
+msgstr "Ricevendo aiuto"
+
+#: front/src/components/common/ActionTable.vue:34
+#: front/src/components/common/ActionTable.vue:54
 msgid "Go"
 msgstr "Vai"
 
@@ -847,9 +1172,14 @@ msgstr "Vai"
 msgid "Go to home page"
 msgstr "Vai alla pagina iniziale"
 
-#: front/src/App.vue:73
-msgid "Help us translate Funkwhale"
-msgstr "Aiutaci a tradurre Funkwhale"
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:114
+msgid "Hide account or domain content, except from followers."
+msgstr ""
+"Nascondi contenuto dell'account o del dominio, ad esclusione dei seguaci."
+
+#: front/src/components/library/Home.vue:65
+msgid "Home"
+msgstr "Pagina Iniziale"
 
 #: front/src/components/instance/Stats.vue:36
 msgid "Hours of music"
@@ -872,15 +1202,23 @@ msgid "Import music from various platforms, such as YouTube or SoundCloud"
 msgstr "Importa musica da varie piattaforme, come YouTube o SoundCloud"
 
 #: front/src/components/library/FileUpload.vue:51
-#, fuzzy
 msgid "Import reference"
-msgstr "Importa sorgente"
+msgstr "Importa riferimento"
 
 #: front/src/views/content/libraries/FilesTable.vue:11
-#: front/src/views/content/libraries/FilesTable.vue:55
+#: front/src/views/content/libraries/FilesTable.vue:58
 msgid "Import status"
 msgstr "Stato dell'importazione"
 
+#: front/src/views/content/libraries/FilesTable.vue:217
+msgid "Imported"
+msgstr "Importato"
+
+#: front/src/components/mixins/Translations.vue:21
+#: front/src/components/mixins/Translations.vue:22
+msgid "Imported date"
+msgstr "Data di importazione"
+
 #: front/src/components/favorites/TrackFavoriteIcon.vue:3
 msgid "In favorites"
 msgstr "Nei preferiti"
@@ -889,16 +1227,43 @@ msgstr "Nei preferiti"
 msgid "Inactive"
 msgstr "Inattivo"
 
+#: front/src/components/ShortcutsModal.vue:71
+msgid "Increase volume"
+msgstr "Aumenta volume"
+
+#: front/src/views/auth/PasswordReset.vue:53
+msgid "Input the email address binded to your account"
+msgstr "Inserisci l'indirizzo email collegato al tuo account"
+
 #: front/src/components/playlists/Editor.vue:31
 msgid "Insert from queue (%{ count } track)"
 msgid_plural "Insert from queue (%{ count } tracks)"
 msgstr[0] "Inserita dalla coda (%{ count } traccia)"
 msgstr[1] "Inserite dalla coda (%{ count } tracce)"
 
+#: front/src/views/admin/moderation/DomainsDetail.vue:71
+msgid "Instance data"
+msgstr "Dati dell'istanza"
+
+#: front/src/views/admin/Settings.vue:80
+msgid "Instance information"
+msgstr "Informazioni sull'istanza"
+
 #: front/src/components/library/Radios.vue:9
 msgid "Instance radios"
 msgstr "Radio dell'istanza"
 
+#: front/src/views/admin/Settings.vue:75
+msgid "Instance settings"
+msgstr "Impostazioni dell'istanza"
+
+#: front/src/components/library/FileUpload.vue:229
+#: front/src/components/library/FileUpload.vue:230
+msgid "Invalid file type, ensure you are uploading an audio file. Supported file extensions are %{ extensions }"
+msgstr ""
+"Tipo di file non valido, assicurati che stai caricando un file audio. Le "
+"estensioni di file supportate sono %{ extensions }"
+
 #: front/src/components/auth/Signup.vue:42
 #: front/src/components/manage/users/InvitationForm.vue:11
 msgid "Invitation code"
@@ -914,119 +1279,153 @@ msgstr "Codice d'invito (opzionale)"
 msgid "Invitations"
 msgstr "Inviti"
 
-#: front/src/App.vue:42
+#: front/src/components/Footer.vue:41
 msgid "Issue tracker"
 msgstr "Elenco problemi"
 
-#: front/src/views/content/libraries/Home.vue:9
-msgid "It looks like you don't have any library yet, it's time to create one!"
-msgstr ""
-
 #: front/src/components/Home.vue:50
 msgid "Keep a track of your favorite songs"
 msgstr "Tieni d'occhio le tue tracce preferite"
 
+#: front/src/components/Footer.vue:33 src/components/ShortcutsModal.vue:3
+msgid "Keyboard shortcuts"
+msgstr "Scorciatoie da tastiera"
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:161
+msgid "Known accounts"
+msgstr "Account conosciuti"
+
 #: front/src/views/content/remote/Home.vue:14
-#, fuzzy
 msgid "Known libraries"
-msgstr "Sfogliando librerie"
+msgstr "Librerie conosciute"
 
 #: front/src/components/manage/users/UsersTable.vue:41
-#: front/src/views/admin/users/UsersDetail.vue:45
-#: front/src/components/mixins/Translations.vue:31
+#: front/src/components/mixins/Translations.vue:32
+#: front/src/views/admin/moderation/AccountsDetail.vue:184
+#: front/src/components/mixins/Translations.vue:33
 msgid "Last activity"
 msgstr "Ultime attività"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:167
+#: front/src/views/admin/moderation/DomainsDetail.vue:86
+msgid "Last checked"
+msgstr "Controllato l'ultima volta"
+
 #: front/src/components/playlists/PlaylistModal.vue:32
 msgid "Last modification"
 msgstr "Ultima modifica"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:43
+msgid "Last seen"
+msgstr "Visto l'ultima volta"
+
+#: front/src/components/mixins/Translations.vue:18
+#: front/src/components/mixins/Translations.vue:19
+msgid "Last seen date"
+msgstr "Visto l'ultima volta in data"
+
 #: front/src/views/content/remote/Card.vue:56
-#, fuzzy
 msgid "Last update:"
-msgstr "Lista di riproduzione aggiornata"
+msgstr "Ultimo aggiornamento:"
 
-#: front/src/components/common/ActionTable.vue:40
+#: front/src/components/common/ActionTable.vue:47
 msgid "Launch"
 msgstr "Inizia"
 
-#: front/src/views/content/remote/Card.vue:63
-msgid "Launch scan"
-msgstr "Inizia scansione"
-
 #: front/src/components/Home.vue:10
 msgid "Learn more about this instance"
 msgstr "Scopri di più su questa istanza"
 
-#: front/src/components/requests/Form.vue:10
-msgid "Leave this field empty if you're requesting the whole discography."
-msgstr "Lascia questo campo vuoto se vuoi richiedere la discografia completa."
-
-#: front/src/views/content/Base.vue:5
+#: front/src/components/manage/users/InvitationForm.vue:58
+msgid "Leave empty for a random code"
+msgstr "Lascia vuoto per un codice casuale"
+
+#: front/src/components/audio/EmbedWizard.vue:7
+msgid "Leave empty for a responsive widget"
+msgstr "Lascia vuoto per un widget adattivo"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:297
+#: front/src/views/admin/moderation/DomainsDetail.vue:233
+#: front/src/views/content/Base.vue:5
 msgid "Libraries"
 msgstr "Librerie"
 
 #: front/src/views/content/libraries/Form.vue:2
 msgid "Libraries help you organize and share your music collections. You can upload your own music collection to Funkwhale and share it with your friends and family."
-msgstr ""
+msgstr "Le librerie sono di aiuto per organizzare e condividere la tua collezione musicale. Puoi caricare la tua musica su Funkwhale e condividerla con amici e parenti."
 
 #: front/src/components/instance/Stats.vue:30
-#: front/src/components/manage/users/UsersTable.vue:177
-#: front/src/views/admin/users/UsersDetail.vue:181
+#: front/src/components/manage/users/UsersTable.vue:173
+#: front/src/views/admin/moderation/AccountsDetail.vue:464
 msgid "Library"
 msgstr "Libreria"
 
+#: front/src/views/content/libraries/Form.vue:109
+msgid "Library created"
+msgstr "Libreria creata"
+
+#: front/src/views/content/libraries/Form.vue:129
+msgid "Library deleted"
+msgstr "Libreria eliminata"
+
 #: front/src/views/admin/library/FilesList.vue:3
 msgid "Library files"
 msgstr "File della libreria"
 
-#: front/src/App.vue:31
-msgid "Links"
-msgstr "Collegamenti"
+#: front/src/views/content/libraries/Form.vue:106
+msgid "Library updated"
+msgstr "Libreria aggiornata"
+
+#: front/src/components/library/Track.vue:100
+msgid "License"
+msgstr "Licenza"
 
 #: front/src/views/content/libraries/Detail.vue:21
-#, fuzzy
-msgid "Loading followers..."
-msgstr "Sfogliando followers"
+msgid "Loading followers…"
+msgstr "Caricando la lista di chi ti segue…"
 
 #: front/src/views/content/libraries/Home.vue:3
-#, fuzzy
-msgid "Loading Libraries..."
-msgstr "Caricando i tuoi preferiti..."
+msgid "Loading Libraries…"
+msgstr "Caricando le Librerie…"
 
 #: front/src/views/content/libraries/Detail.vue:3
 #: front/src/views/content/libraries/Upload.vue:3
-#, fuzzy
-msgid "Loading library data..."
-msgstr "Inserisci il nome del dominio di una libreria..."
+msgid "Loading library data…"
+msgstr "Caricando i dati della libreria…"
 
 #: front/src/views/Notifications.vue:4
-#, fuzzy
-msgid "Loading notifications..."
-msgstr "Caricando la timeline..."
+msgid "Loading notifications…"
+msgstr "Caricando le notifiche…"
 
 #: front/src/views/content/remote/Home.vue:3
-#, fuzzy
 msgid "Loading remote libraries..."
-msgstr "Caricando la timeline..."
-
-#: front/src/views/instance/Timeline.vue:4
-msgid "Loading timeline..."
-msgstr "Caricando la timeline..."
+msgstr "Caricando le librerie remote..."
 
 #: front/src/views/content/libraries/Quota.vue:4
-#, fuzzy
-msgid "Loading usage data..."
-msgstr "Caricando i tuoi preferiti..."
+msgid "Loading usage data…"
+msgstr "Caricando i dati di utilizzo…"
 
 #: front/src/components/favorites/List.vue:5
-msgid "Loading your favorites..."
-msgstr "Caricando i tuoi preferiti..."
+msgid "Loading your favorites…"
+msgstr "Caricando i tuoi preferiti…"
+
+#: front/src/components/manage/moderation/AccountsTable.vue:59
+#: front/src/views/admin/moderation/AccountsDetail.vue:18
+msgid "Local account"
+msgstr "Account locale"
+
+#: front/src/components/auth/Login.vue:78
+msgid "Log In"
+msgstr "Accedi"
 
 #: front/src/components/auth/Login.vue:4
 msgid "Log in to your Funkwhale account"
 msgstr "Accedi al tuo account Funkwhale"
 
+#: front/src/components/auth/Logout.vue:20
+msgid "Log Out"
+msgstr "Disconnetti"
+
 #: front/src/components/Sidebar.vue:38
 msgid "Logged in as %{ username }"
 msgstr "Accesso effettuato come %{ username }"
@@ -1035,64 +1434,159 @@ msgstr "Accesso effettuato come %{ username }"
 msgid "Login"
 msgstr "Accedi"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:119
+msgid "Login status"
+msgstr "Stato dell'accesso"
+
 #: front/src/components/Sidebar.vue:52
 msgid "Logout"
 msgstr "Disconnettiti"
 
-#: front/src/components/library/Track.vue:105
+#: front/src/views/content/libraries/Home.vue:9
+msgid "Looks like you don't have a library, it's time to create one."
+msgstr ""
+"Sembra che tu non abbia ancora nessuna libreria, è tempo di crearne una."
+
+#: front/src/components/audio/Player.vue:353
+#: src/components/audio/Player.vue:354
+msgid "Looping disabled. Click to switch to single-track looping."
+msgstr "Ripetizione disattivata. Clicca per attivare la ripetizione della singola traccia."
+
+#: front/src/components/audio/Player.vue:356
+#: src/components/audio/Player.vue:357
+msgid "Looping on a single track. Click to switch to whole queue looping."
+msgstr "Ripeti una singola traccia. Clicca per ripetere l'intera coda."
+
+#: front/src/components/audio/Player.vue:359
+#: src/components/audio/Player.vue:360
+msgid "Looping on whole queue. Click to disable looping."
+msgstr "Ripete l'intera coda. Clicca per disattivare la ripetizione."
+
+#: front/src/components/library/Track.vue:150
 msgid "Lyrics"
 msgstr "Testi"
 
+#: front/src/components/Sidebar.vue:210
+msgid "Main menu"
+msgstr "Menu principale"
+
+#: front/src/views/admin/library/Base.vue:16
+msgid "Manage library"
+msgstr "Gestisci libreria"
+
 #: front/src/components/playlists/PlaylistModal.vue:3
 msgid "Manage playlists"
 msgstr "Gestisci playlist"
 
+#: front/src/views/admin/users/Base.vue:20
+msgid "Manage users"
+msgstr "Gestisci utenti"
+
 #: front/src/views/playlists/List.vue:8
 msgid "Manage your playlists"
 msgstr "Gestisci le tue playlist"
 
 #: front/src/views/Notifications.vue:17
-#, fuzzy
 msgid "Mark all as read"
-msgstr "Segna come importato"
+msgstr "Segna tutte come lette"
 
-#: front/src/views/admin/users/UsersDetail.vue:94
+#: front/src/components/notifications/NotificationRow.vue:44
+msgid "Mark as read"
+msgstr "Segna come letta"
+
+#: front/src/components/notifications/NotificationRow.vue:45
+msgid "Mark as unread"
+msgstr "Segna come non letta"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:281
 msgid "MB"
+msgstr "MB"
+
+#: front/src/components/audio/Player.vue:346
+msgid "Media player"
+msgstr "Riproduttore musicale"
+
+#: front/src/components/Footer.vue:32
+msgid "Mobile and desktop apps"
+msgstr "Applicazioni desktop e mobile"
+
+#: front/src/components/Sidebar.vue:97
+#: src/components/manage/users/UsersTable.vue:177
+#: front/src/views/admin/moderation/AccountsDetail.vue:468
+#: front/src/views/admin/moderation/Base.vue:21
+msgid "Moderation"
+msgstr "Moderazione"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:49
+#: front/src/views/admin/moderation/DomainsDetail.vue:42
+msgid "Moderation policies help you control how your instance interact with a given domain or account."
 msgstr ""
+"Le regole di moderazione ti aiutano a controllare come la tua istanza "
+"interagisce con un dato dominio o account."
+
+#: front/src/components/mixins/Translations.vue:20
+#: front/src/components/mixins/Translations.vue:21
+msgid "Modification date"
+msgstr "Data di modifica"
 
-#: front/src/components/Sidebar.vue:63
+#: front/src/components/Sidebar.vue:63 src/views/admin/Settings.vue:82
 msgid "Music"
 msgstr "Musica"
 
+#: front/src/components/audio/Player.vue:352
+msgid "Mute"
+msgstr "Muto"
+
 #: front/src/components/Sidebar.vue:34
 msgid "My account"
 msgstr "Mio account"
 
+#: front/src/components/library/radios/Builder.vue:236
+msgid "My awesome description"
+msgstr "La mia stupenda descrizione"
+
+#: front/src/views/content/libraries/Form.vue:70
+msgid "My awesome library"
+msgstr "La mia eccezionale libreria"
+
+#: front/src/components/playlists/Form.vue:74
+msgid "My awesome playlist"
+msgstr "La mia eccezionale playlist"
+
+#: front/src/components/library/radios/Builder.vue:235
+msgid "My awesome radio"
+msgstr "La mia eccezionale radio"
+
 #: front/src/views/content/libraries/Home.vue:6
-#, fuzzy
 msgid "My libraries"
-msgstr "Librerie"
+msgstr "Le mie librerie"
 
 #: front/src/components/audio/track/Row.vue:40
-#: src/components/library/Track.vue:64
-#: front/src/components/library/Track.vue:75
-#: src/components/library/Track.vue:86
-#: front/src/components/library/Track.vue:97
+#: src/components/library/Track.vue:115
+#: front/src/components/library/Track.vue:124
+#: src/components/library/Track.vue:133
+#: front/src/components/library/Track.vue:142
 #: front/src/components/manage/library/FilesTable.vue:63
 #: front/src/components/manage/library/FilesTable.vue:69
 #: front/src/components/manage/library/FilesTable.vue:75
 #: front/src/components/manage/library/FilesTable.vue:81
 #: front/src/components/manage/users/UsersTable.vue:61
-#: front/src/views/admin/users/UsersDetail.vue:49
-#: front/src/views/content/libraries/FilesTable.vue:89
-#: front/src/views/content/libraries/FilesTable.vue:95
+#: front/src/views/admin/moderation/AccountsDetail.vue:171
+#: front/src/views/admin/moderation/DomainsDetail.vue:90
+#: front/src/views/content/libraries/FilesTable.vue:92
+#: front/src/views/content/libraries/FilesTable.vue:98
+#: front/src/views/admin/moderation/DomainsDetail.vue:109
+#: front/src/views/admin/moderation/DomainsDetail.vue:117
 msgid "N/A"
 msgstr "N/D"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:39
+#: front/src/components/manage/moderation/DomainsTable.vue:38
+#: front/src/components/mixins/Translations.vue:26
 #: front/src/components/playlists/PlaylistModal.vue:31
-#: front/src/views/admin/users/UsersDetail.vue:21
+#: front/src/views/admin/moderation/DomainsDetail.vue:105
 #: front/src/views/content/libraries/Form.vue:10
-#: front/src/components/mixins/Translations.vue:25
+#: front/src/components/mixins/Translations.vue:27
 msgid "Name"
 msgstr "Nome"
 
@@ -1101,11 +1595,15 @@ msgstr "Nome"
 msgid "New password"
 msgstr "Nuova password"
 
-#: front/src/components/Sidebar.vue:149
+#: front/src/components/Sidebar.vue:160
 msgid "New tracks will be appended here automatically."
 msgstr "Le nuove tracce saranno allegate qui automaticamente."
 
-#: front/src/components/Sidebar.vue:116
+#: front/src/components/audio/Player.vue:350
+msgid "Next track"
+msgstr "Prossima traccia"
+
+#: front/src/components/Sidebar.vue:119
 msgid "No"
 msgstr "No"
 
@@ -1113,29 +1611,46 @@ msgstr "No"
 msgid "No add-ons, no plugins : you only need a web library"
 msgstr "Nessun addon, nessun plugin: ti serve solo una libreria in rete"
 
-#: front/src/components/library/Track.vue:113
+#: front/src/components/audio/Search.vue:25
+msgid "No album matched your query"
+msgstr "Nessun album corrisponde alla tua ricerca"
+
+#: front/src/components/audio/Search.vue:16
+msgid "No artist matched your query"
+msgstr "Nessun artista corrisponde alla tua ricerca"
+
+#: front/src/components/library/Track.vue:158
 msgid "No lyrics available for this track."
 msgstr "Nessun testo disponibile per questa traccia."
 
 #: front/src/components/federation/LibraryWidget.vue:6
-#, fuzzy
 msgid "No matching library."
-msgstr "Inserisci il nome del dominio di una libreria..."
+msgstr "Nessuna libreria corrispondente."
+
+#: front/src/views/Notifications.vue:26
+msgid "No notifications yet."
+msgstr "Ancora nessuna notifica."
+
+#: front/src/components/mixins/Translations.vue:10
+#: front/src/components/playlists/Form.vue:81
+#: src/views/content/libraries/Form.vue:72
+#: front/src/components/mixins/Translations.vue:11
+msgid "Nobody except me"
+msgstr "Nessuno tranne me"
 
 #: front/src/views/content/libraries/Detail.vue:57
 msgid "Nobody is following this library"
-msgstr ""
+msgstr "Nessuno segue questa libreria"
 
 #: front/src/components/manage/users/InvitationsTable.vue:51
 msgid "Not used"
 msgstr "Non utilizzato"
 
 #: front/src/components/Sidebar.vue:46 src/views/Notifications.vue:74
-#, fuzzy
 msgid "Notifications"
-msgstr "Ultima modifica"
+msgstr "Notifiche"
 
-#: front/src/App.vue:36
+#: front/src/components/Footer.vue:47
 msgid "Official website"
 msgstr "Sito ufficiale"
 
@@ -1147,14 +1662,32 @@ msgstr "Vecchia password"
 msgid "Open"
 msgstr "Aperto"
 
-#: front/src/App.vue:62
-msgid "Options"
-msgstr "Opzioni"
+#: front/src/views/admin/moderation/AccountsDetail.vue:23
+msgid "Open profile"
+msgstr "Apri profilo"
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:16
+msgid "Open website"
+msgstr "Apri sito web"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:40
+msgid "Or customize your rule"
+msgstr "O personalizza la tua regola"
+
+#: front/src/components/favorites/List.vue:31
+#: src/components/library/Radios.vue:41
+#: front/src/components/manage/library/FilesTable.vue:17
+#: front/src/components/manage/users/UsersTable.vue:17
+#: front/src/views/playlists/List.vue:25
+msgid "Order"
+msgstr "Ordine"
 
 #: front/src/components/favorites/List.vue:23
 #: src/components/library/Artists.vue:15
 #: front/src/components/library/Radios.vue:33
 #: front/src/components/manage/library/FilesTable.vue:9
+#: front/src/components/manage/moderation/AccountsTable.vue:11
+#: front/src/components/manage/moderation/DomainsTable.vue:9
 #: front/src/components/manage/users/InvitationsTable.vue:9
 #: front/src/components/manage/users/UsersTable.vue:9
 #: front/src/views/content/libraries/FilesTable.vue:21
@@ -1162,13 +1695,10 @@ msgstr "Opzioni"
 msgid "Ordering"
 msgstr "Ordinamento"
 
-#: front/src/components/favorites/List.vue:31
-#: src/components/library/Artists.vue:23
-#: front/src/components/library/Radios.vue:41
-#: front/src/components/manage/library/FilesTable.vue:17
-#: front/src/components/manage/users/UsersTable.vue:17
+#: front/src/components/library/Artists.vue:23
+#: front/src/components/manage/moderation/AccountsTable.vue:19
+#: front/src/components/manage/moderation/DomainsTable.vue:17
 #: front/src/views/content/libraries/FilesTable.vue:29
-#: front/src/views/playlists/List.vue:25
 msgid "Ordering direction"
 msgstr "Direzione di ordinamento"
 
@@ -1176,21 +1706,45 @@ msgstr "Direzione di ordinamento"
 msgid "Owner"
 msgstr "Proprietario"
 
+#: front/src/components/PageNotFound.vue:33
+msgid "Page Not Found"
+msgstr "Pagina non trovata"
+
 #: front/src/components/PageNotFound.vue:7
 msgid "Page not found!"
 msgstr "Pagina non trovata!"
 
+#: front/src/components/Pagination.vue:39
+msgid "Pagination"
+msgstr "Impaginazione"
+
 #: front/src/components/auth/Login.vue:32 src/components/auth/Signup.vue:38
 msgid "Password"
 msgstr "Password"
 
+#: front/src/components/auth/SubsonicTokenForm.vue:95
+msgid "Password updated"
+msgstr "Password aggiornata"
+
 #: front/src/views/auth/PasswordResetConfirm.vue:28
 msgid "Password updated successfully"
 msgstr "Password aggiornata con successo"
 
-#: front/src/components/library/FileUpload.vue:105
+#: front/src/components/audio/Player.vue:349
+msgid "Pause track"
+msgstr "Metti in pausa"
+
+#: front/src/components/ShortcutsModal.vue:59
+msgid "Pause/play the current track"
+msgstr "Pausa/riproduci la traccia corrente"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:12
+msgid "Paused"
+msgstr "In pausa"
+
+#: front/src/components/library/FileUpload.vue:106
 #: front/src/views/content/libraries/FilesTable.vue:14
-#: front/src/views/content/libraries/FilesTable.vue:233
+#: front/src/views/content/libraries/FilesTable.vue:208
 msgid "Pending"
 msgstr "In sospeso"
 
@@ -1199,27 +1753,27 @@ msgid "Pending approval"
 msgstr "Approvazione in sospeso"
 
 #: front/src/views/content/libraries/Quota.vue:22
-#, fuzzy
 msgid "Pending files"
-msgstr "In sospeso"
+msgstr "File in sospeso"
 
-#: front/src/components/requests/Form.vue:26
-msgid "Pending requests"
-msgstr "Richieste in sospeso"
+#: front/src/components/Sidebar.vue:212
+msgid "Pending follow requests"
+msgstr "Richiesta di seguire in sospeso"
 
 #: front/src/components/manage/users/UsersTable.vue:42
-#: front/src/views/admin/users/UsersDetail.vue:68
+#: front/src/views/admin/moderation/AccountsDetail.vue:137
 msgid "Permissions"
 msgstr "Permessi"
 
 #: front/src/components/audio/PlayButton.vue:9
-#: src/components/library/Track.vue:30
+#: src/components/library/Track.vue:40
 msgid "Play"
 msgstr "Riproduci"
 
 #: front/src/components/audio/album/Card.vue:50
 #: front/src/components/audio/artist/Card.vue:44
-#: src/components/library/Album.vue:28 front/src/views/playlists/Detail.vue:23
+#: src/components/library/Album.vue:28
+#: front/src/components/library/Album.vue:73 src/views/playlists/Detail.vue:23
 msgid "Play all"
 msgstr "Riproduci tutto"
 
@@ -1228,13 +1782,36 @@ msgid "Play all albums"
 msgstr "Riproduci tutti gli album"
 
 #: front/src/components/audio/PlayButton.vue:15
+#: front/src/components/audio/PlayButton.vue:65
 msgid "Play next"
 msgstr "Riproduci la prossima"
 
+#: front/src/components/ShortcutsModal.vue:67
+msgid "Play next track"
+msgstr "Riproduci traccia successiva"
+
 #: front/src/components/audio/PlayButton.vue:16
+#: front/src/components/audio/PlayButton.vue:63
+#: front/src/components/audio/PlayButton.vue:70
 msgid "Play now"
 msgstr "Riproduci ora"
 
+#: front/src/components/ShortcutsModal.vue:63
+msgid "Play previous track"
+msgstr "Riproduci traccia precedente"
+
+#: front/src/components/Sidebar.vue:211
+msgid "Play this track"
+msgstr "Riproduci questa traccia"
+
+#: front/src/components/audio/Player.vue:348
+msgid "Play track"
+msgstr "Riproduci traccia"
+
+#: front/src/views/playlists/Detail.vue:90
+msgid "Playlist"
+msgstr "Lista di riproduzione"
+
 #: front/src/views/playlists/Detail.vue:12
 msgid "Playlist containing %{ count } track, by %{ username }"
 msgid_plural "Playlist containing %{ count } tracks, by %{ username }"
@@ -1262,8 +1839,8 @@ msgid "Playlist visibility"
 msgstr "Visibilità lista di riproduzione"
 
 #: front/src/components/Sidebar.vue:71 src/components/library/Home.vue:16
-#: front/src/components/library/Library.vue:13 src/views/playlists/List.vue:104
-#: front/src/views/admin/Settings.vue:82
+#: front/src/components/library/Library.vue:13 src/views/admin/Settings.vue:83
+#: front/src/views/playlists/List.vue:106
 msgid "Playlists"
 msgstr "Liste di riproduzione"
 
@@ -1283,10 +1860,27 @@ msgstr "Per favore controlla se la combinazione nome utente/password è corretta
 msgid "PNG, GIF or JPG. At most 2MB. Will be downscaled to 400x400px."
 msgstr "PNG, GIF or JPG. Massimo 2MB. Saranno scalate a 400x400px."
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:118
+msgid "Prevent account or domain from triggering notifications, except from followers."
+msgstr ""
+"Evita che l'account o il dominio facciano scattare notifiche, ad esclusione "
+"dei seguaci."
+
+#: front/src/components/audio/EmbedWizard.vue:29
+msgid "Preview"
+msgstr "Anteprima"
+
+#: front/src/components/audio/Player.vue:347
+msgid "Previous track"
+msgstr "Traccia precedente"
+
+#: front/src/views/content/remote/Card.vue:39
+msgid "Problem during scanning"
+msgstr "Errore durante la scansione"
+
 #: front/src/components/library/FileUpload.vue:58
-#, fuzzy
 msgid "Proceed"
-msgstr "Procedi all'accesso"
+msgstr "Procedi"
 
 #: front/src/views/auth/EmailConfirm.vue:26
 #: front/src/views/auth/PasswordResetConfirm.vue:31
@@ -1295,8 +1889,10 @@ msgstr "Procedi all'accesso"
 
 #: front/src/components/library/FileUpload.vue:17
 msgid "Processing"
-msgstr ""
+msgstr "Elaborazione"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:188
+#: front/src/components/manage/moderation/DomainsTable.vue:168
 #: front/src/views/content/libraries/Quota.vue:36
 #: front/src/views/content/libraries/Quota.vue:39
 #: front/src/views/content/libraries/Quota.vue:62
@@ -1304,24 +1900,36 @@ msgstr ""
 #: front/src/views/content/libraries/Quota.vue:88
 #: front/src/views/content/libraries/Quota.vue:91
 msgid "Purge"
-msgstr ""
+msgstr "Rimuovi"
 
 #: front/src/views/content/libraries/Quota.vue:89
 msgid "Purge errored files?"
-msgstr ""
+msgstr "Rimuovere file con errori?"
 
 #: front/src/views/content/libraries/Quota.vue:37
 msgid "Purge pending files?"
-msgstr ""
+msgstr "Rimuovere file in attesa?"
 
 #: front/src/views/content/libraries/Quota.vue:63
 msgid "Purge skipped files?"
-msgstr ""
+msgstr "Rimuovere file saltati?"
 
 #: front/src/components/Sidebar.vue:20
 msgid "Queue"
 msgstr "Coda"
 
+#: front/src/components/audio/Player.vue:282
+msgid "Queue shuffled!"
+msgstr "Coda mischiata!"
+
+#: front/src/views/radios/Detail.vue:80
+msgid "Radio"
+msgstr "Radio"
+
+#: front/src/components/library/radios/Builder.vue:233
+msgid "Radio Builder"
+msgstr "Creatore Radio"
+
 #: front/src/components/library/radios/Builder.vue:15
 msgid "Radio created"
 msgstr "Radio creata"
@@ -1335,13 +1943,25 @@ msgid "Radio updated"
 msgstr "Radio aggiornata"
 
 #: front/src/components/library/Library.vue:10
-#: src/components/library/Radios.vue:142
+#: src/components/library/Radios.vue:141
 msgid "Radios"
 msgstr "Radio"
 
-#: front/src/views/instance/Timeline.vue:7
-msgid "Recent activity on this instance"
-msgstr "Attività recenti su questa istanza"
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:39
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:25
+msgid "Reason"
+msgstr "Motivazione"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:222
+#: front/src/views/admin/moderation/DomainsDetail.vue:179
+msgid "Received library follows"
+msgstr "Ricevuto un follow della libreria"
+
+#: front/src/components/manage/moderation/DomainsTable.vue:40
+#: front/src/components/mixins/Translations.vue:36
+#: front/src/components/mixins/Translations.vue:37
+msgid "Received messages"
+msgstr "Messaggi ricevuti"
 
 #: front/src/components/library/Home.vue:24
 msgid "Recently added"
@@ -1355,11 +1975,18 @@ msgstr "Preferiti recenti"
 msgid "Recently listened"
 msgstr "Ascoltate recentemente"
 
-#: front/src/views/admin/users/UsersDetail.vue:103
 #: front/src/views/content/remote/Home.vue:15
 msgid "Refresh"
 msgstr "Aggiorna"
 
+#: front/src/views/admin/moderation/DomainsDetail.vue:135
+msgid "Refresh node info"
+msgstr "Aggiorna informazioni del nodo"
+
+#: front/src/components/common/ActionTable.vue:272
+msgid "Refresh table content"
+msgstr "Aggiorna tabella dei contenuti"
+
 #: front/src/components/auth/Profile.vue:12
 msgid "Registered since %{ date }"
 msgstr "Registrato da %{ date }"
@@ -1374,20 +2001,28 @@ msgstr "utente semplice"
 
 #: front/src/views/content/libraries/Detail.vue:51
 msgid "Reject"
-msgstr ""
+msgstr "Rifiuta"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:32
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:123
+msgid "Reject media"
+msgstr "Rifiuta media"
 
 #: front/src/views/content/libraries/Detail.vue:43
 msgid "Rejected"
-msgstr ""
+msgstr "Rifiutato"
+
+#: front/src/views/content/libraries/FilesTable.vue:234
+msgid "Relaunch import"
+msgstr "Riavvia importazione"
 
 #: front/src/views/content/remote/Home.vue:6
-#, fuzzy
 msgid "Remote libraries"
-msgstr "Portami alla libreria"
+msgstr "Librerie remote"
 
 #: front/src/views/content/remote/Home.vue:7
 msgid "Remote libraries are owned by other users on the network. You can access them as long as they are public or you are granted access."
-msgstr ""
+msgstr "Le librerie remote sono di proprietà di altri utenti nella rete. Puoi accedervi se sono pubbliche o se ti è stato dato l'accesso ad esse."
 
 #: front/src/components/library/radios/Filter.vue:59
 msgid "Remove"
@@ -1397,6 +2032,28 @@ msgstr "Rimuovi"
 msgid "Remove avatar"
 msgstr "Rimuovi avatar"
 
+#: front/src/components/favorites/TrackFavoriteIcon.vue:26
+msgid "Remove from favorites"
+msgstr "Rimuovi dai preferiti"
+
+#: front/src/views/content/libraries/Quota.vue:38
+msgid "Removes uploaded but yet to be processed tracks completely, adding the corresponding data to your quota."
+msgstr ""
+"Rimuovi completamente tracce caricate ma non ancora processate, aggiungendo "
+"lo spazio corrispondente alla tua quota."
+
+#: front/src/views/content/libraries/Quota.vue:64
+msgid "Removes uploaded tracks skipped during the import processes completely, adding the corresponding data to your quota."
+msgstr ""
+"Rimuove completamente le tracce caricate ma che sono state saltate durante "
+"la fase di importazione, aggiungendo lo spazio corrispondente alla tua quota."
+
+#: front/src/views/content/libraries/Quota.vue:90
+msgid "Removes uploaded tracks that could not be processed by the server completely, adding the corresponding data to your quota."
+msgstr ""
+"Rimuove completamente le tracce caricate ma che non sono state processate "
+"correttamente, aggiungendo lo spazio corrispondente alla tua quota."
+
 #: front/src/components/auth/SubsonicTokenForm.vue:34
 #: front/src/components/auth/SubsonicTokenForm.vue:37
 msgid "Request a new password"
@@ -1410,11 +2067,8 @@ msgstr "Richiedere una nuova password API Subsonic?"
 msgid "Request a password"
 msgstr "Richiedi una password"
 
-#: front/src/components/requests/Form.vue:20
-msgid "Request submitted!"
-msgstr "Richiesta inviata!"
-
 #: front/src/components/auth/Login.vue:34 src/views/auth/PasswordReset.vue:4
+#: front/src/views/auth/PasswordReset.vue:52
 msgid "Reset your password"
 msgstr "Resetta la tua password"
 
@@ -1424,33 +2078,52 @@ msgstr "Resetta la tua password"
 msgid "Results per page"
 msgstr "Risultati per pagina"
 
+#: front/src/views/auth/EmailConfirm.vue:17
+msgid "Return to login"
+msgstr "Torna alla pagina di accesso"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:16
+msgid "Rule"
+msgstr "Regola"
+
 #: front/src/components/admin/SettingsGroup.vue:63
 #: front/src/components/library/radios/Builder.vue:33
 msgid "Save"
 msgstr "Salva"
 
+#: front/src/views/content/remote/Card.vue:165
+msgid "Scan launched"
+msgstr "Scansione avviata"
+
+#: front/src/views/content/remote/Card.vue:63
+msgid "Scan now"
+msgstr "Scansiona ora"
+
+#: front/src/views/content/remote/Card.vue:166
+msgid "Scan skipped (previous scan is too recent)"
+msgstr "Scansione saltata (la scansione precedente è troppo recente)"
+
 #: front/src/views/content/remote/Card.vue:31
-#, fuzzy
-msgid "Scan pending"
-msgstr "Crescente"
+msgid "Scan waiting"
+msgstr "Scansione in attesa"
 
 #: front/src/views/content/remote/Card.vue:43
-#, fuzzy
-msgid "Scanned successfully"
-msgstr "Impostazioni aggiornate con successo."
+msgid "Scanned"
+msgstr "Scansionata"
 
 #: front/src/views/content/remote/Card.vue:47
-#, fuzzy
 msgid "Scanned with errors"
-msgstr "Modifiche sincronizzate con il server"
+msgstr "Scansione eseguita con errori"
 
 #: front/src/views/content/remote/Card.vue:35
-msgid "Scanning... (%{ progress }%)"
-msgstr ""
+msgid "Scanning… (%{ progress }%)"
+msgstr "Scansionando... (%{ progress }%)"
 
 #: front/src/components/library/Artists.vue:10
 #: src/components/library/Radios.vue:29
 #: front/src/components/manage/library/FilesTable.vue:5
+#: front/src/components/manage/moderation/AccountsTable.vue:5
+#: front/src/components/manage/moderation/DomainsTable.vue:5
 #: front/src/components/manage/users/InvitationsTable.vue:5
 #: front/src/components/manage/users/UsersTable.vue:5
 #: front/src/views/content/libraries/FilesTable.vue:5
@@ -1459,24 +2132,58 @@ msgid "Search"
 msgstr "Cerca"
 
 #: front/src/views/content/remote/ScanForm.vue:9
-#, fuzzy
 msgid "Search a remote library"
-msgstr "Portami alla libreria"
+msgstr "Cerca una libreria remota"
+
+#: front/src/components/manage/moderation/AccountsTable.vue:171
+msgid "Search by domain, username, bio..."
+msgstr "Cerca per dominio, nome utente, descrizione..."
+
+#: front/src/components/manage/moderation/DomainsTable.vue:151
+msgid "Search by name..."
+msgstr "Cerca per nome..."
+
+#: front/src/views/content/libraries/FilesTable.vue:201
+msgid "Search by title, artist, album…"
+msgstr "Cerca per titolo, artista, album…"
+
+#: front/src/components/manage/library/FilesTable.vue:176
+msgid "Search by title, artist, domain…"
+msgstr "Cerca per titolo, artista, dominio…"
+
+#: front/src/components/manage/users/InvitationsTable.vue:153
+msgid "Search by username, e-mail address, code…"
+msgstr "Cerca per nome utente, email, codice…"
+
+#: front/src/components/manage/users/UsersTable.vue:163
+msgid "Search by username, e-mail address, name…"
+msgstr "Cerca per nome utente, indirizzo e-mail, nome…"
+
+#: front/src/components/audio/SearchBar.vue:20
+msgid "Search for artists, albums, tracks…"
+msgstr "Cerca per artisti, album, tracce…"
 
 #: front/src/components/audio/Search.vue:2
 msgid "Search for some music"
 msgstr "Cerca un po' di musica"
 
-#: front/src/components/library/Track.vue:116
+#: front/src/components/library/Track.vue:162
 msgid "Search on lyrics.wikia.com"
 msgstr "Cerca su lyrics.wikia.com"
 
 #: front/src/components/library/Album.vue:33
 #: src/components/library/Artist.vue:31
-#: front/src/components/library/Track.vue:40
+#: front/src/components/library/Track.vue:47
 msgid "Search on Wikipedia"
 msgstr "Cerca su Wikipedia"
 
+#: front/src/components/library/Library.vue:32
+#: src/views/admin/library/Base.vue:17
+#: front/src/views/admin/moderation/Base.vue:22
+#: src/views/admin/users/Base.vue:21 front/src/views/content/Base.vue:19
+msgid "Secondary menu"
+msgstr "Menu secondario"
+
 #: front/src/views/admin/Settings.vue:15
 msgid "Sections"
 msgstr "Sezioni"
@@ -1485,19 +2192,19 @@ msgstr "Sezioni"
 msgid "Select a filter"
 msgstr "Seleziona un filtro"
 
-#: front/src/components/common/ActionTable.vue:64
+#: front/src/components/common/ActionTable.vue:77
 msgid "Select all %{ total } elements"
 msgid_plural "Select all %{ total } elements"
 msgstr[0] "Seleziona tutti %{ total } elemento"
 msgstr[1] "Seleziona tutti %{ total } elementi"
 
-#: front/src/components/common/ActionTable.vue:73
+#: front/src/components/common/ActionTable.vue:86
 msgid "Select only current page"
 msgstr "Seleziona solo la pagina attuale"
 
-#: front/src/components/Sidebar.vue:43 src/components/Sidebar.vue:88
-#: front/src/components/manage/users/UsersTable.vue:185
-#: front/src/views/admin/users/UsersDetail.vue:189
+#: front/src/components/Sidebar.vue:43 src/components/Sidebar.vue:85
+#: front/src/components/manage/users/UsersTable.vue:181
+#: front/src/views/admin/moderation/AccountsDetail.vue:472
 msgid "Settings"
 msgstr "Impostazioni"
 
@@ -1514,21 +2221,21 @@ msgid "Share link"
 msgstr "Condividi collegamento"
 
 #: front/src/views/content/libraries/Detail.vue:15
-msgid "Share this link with other users so they can request an access to your library."
+msgid "Share this link with other users so they can request access to your library."
 msgstr ""
+"Condividi questo collegamento con altri utenti in modo che possano "
+"richiedere l'accesso alla tua libreria."
 
 #: front/src/views/content/libraries/Detail.vue:14
 #: front/src/views/content/remote/Card.vue:73
-#, fuzzy
 msgid "Sharing link"
 msgstr "Condividi collegamento"
 
 #: front/src/components/audio/album/Card.vue:40
-#, fuzzy
 msgid "Show %{ count } more track"
 msgid_plural "Show %{ count } more tracks"
-msgstr[0] "%{ count } traccia"
-msgstr[1] "%{ count } tracce"
+msgstr[0] "Mostra %{ count } traccia in più"
+msgstr[1] "Mostra %{ count } tracce in più"
 
 #: front/src/components/audio/artist/Card.vue:30
 msgid "Show 1 more album"
@@ -1536,61 +2243,85 @@ msgid_plural "Show %{ count } more albums"
 msgstr[0] "Mostra 1 altro album"
 msgstr[1] "Mostra %{ count } altri album"
 
+#: front/src/components/ShortcutsModal.vue:42
+msgid "Show available keyboard shortcuts"
+msgstr "Mostra scorciatoie da tastiera disponibili"
+
 #: front/src/views/Notifications.vue:10
-#, fuzzy
 msgid "Show read notifications"
-msgstr "Ultima modifica"
+msgstr "Mostra notifiche lette"
+
+#: front/src/components/forms/PasswordInput.vue:25
+msgid "Show/hide password"
+msgstr "Mostra/nascondi password"
 
 #: front/src/components/manage/library/FilesTable.vue:97
+#: front/src/components/manage/moderation/AccountsTable.vue:88
+#: front/src/components/manage/moderation/DomainsTable.vue:74
 #: front/src/components/manage/users/InvitationsTable.vue:76
 #: front/src/components/manage/users/UsersTable.vue:87
-#: front/src/views/content/libraries/FilesTable.vue:111
+#: front/src/views/content/libraries/FilesTable.vue:114
 msgid "Showing results %{ start }-%{ end } on %{ total }"
 msgstr "Mostrando risultati %{ start }-%{ end } su %{ total }"
 
+#: front/src/components/ShortcutsModal.vue:83
+msgid "Shuffle queue"
+msgstr "Mischia la tua coda"
+
+#: front/src/components/audio/Player.vue:362
+msgid "Shuffle your queue"
+msgstr "Mischia la tua coda"
+
+#: front/src/components/auth/Signup.vue:95
+msgid "Sign Up"
+msgstr "Registrati"
+
 #: front/src/components/manage/users/UsersTable.vue:40
-#: front/src/views/admin/users/UsersDetail.vue:37
 msgid "Sign-up"
 msgstr "Registrati"
 
-#: front/src/components/library/FileUpload.vue:84
-#: src/components/library/Track.vue:69
+#: front/src/components/mixins/Translations.vue:31
+#: front/src/views/admin/moderation/AccountsDetail.vue:176
+#: front/src/components/mixins/Translations.vue:32
+msgid "Sign-up date"
+msgstr "Data di registrazione"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:24
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:115
+msgid "Silence activity"
+msgstr "Silenzia l'attività"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:28
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:119
+msgid "Silence notifications"
+msgstr "Silenzia le notifiche"
+
+#: front/src/components/library/FileUpload.vue:85
+#: front/src/components/library/Track.vue:120
 #: front/src/components/manage/library/FilesTable.vue:44
-#: front/src/views/content/libraries/FilesTable.vue:57
-#: front/src/components/mixins/Translations.vue:27
+#: front/src/components/mixins/Translations.vue:28
+#: front/src/views/content/libraries/FilesTable.vue:60
+#: front/src/components/mixins/Translations.vue:29
 msgid "Size"
 msgstr "Dimensione"
 
 #: front/src/views/content/libraries/FilesTable.vue:15
-#: front/src/views/content/libraries/FilesTable.vue:229
+#: front/src/views/content/libraries/FilesTable.vue:204
 msgid "Skipped"
 msgstr "Saltato"
 
 #: front/src/views/content/libraries/Quota.vue:49
-#, fuzzy
 msgid "Skipped files"
-msgstr "Saltato"
-
-#: front/src/components/requests/Form.vue:3
-msgid "Something's missing in the library? Let us know what you would like to listen!"
-msgstr "Manca qualcosa nella libreria? Facci sapere cosa vorresti ascoltare!"
+msgstr "File saltati"
 
-#: front/src/components/audio/Search.vue:25
-msgid "Sorry, we did not found any album matching your query"
-msgstr "Ci dispiace, non abbiamo trovato nessun album corrispondente alla tua ricerca"
-
-#: front/src/components/audio/Search.vue:16
-msgid "Sorry, we did not found any artist matching your query"
-msgstr "Ci dispiace, non abbiamo trovato nessun artista corrispondente alla tua ricerca"
+#: front/src/views/admin/moderation/DomainsDetail.vue:97
+msgid "Software"
+msgstr "Software"
 
-#: front/src/App.vue:40
+#: front/src/components/Footer.vue:49
 msgid "Source code"
 msgstr "Codice sorgente"
 
-#: front/src/App.vue:39
-msgid "Source code (%{version})"
-msgstr "Codice sorgente (%{version})"
-
 #: front/src/components/auth/Profile.vue:23
 #: front/src/components/manage/users/UsersTable.vue:70
 msgid "Staff member"
@@ -1600,65 +2331,97 @@ msgstr "Membro dello staff"
 msgid "Start"
 msgstr "Inizia"
 
-#: front/src/components/library/FileUpload.vue:85
-#: front/src/components/manage/users/InvitationsTable.vue:17
-#: front/src/components/manage/users/InvitationsTable.vue:39
-#: front/src/components/manage/users/UsersTable.vue:43
-#: front/src/views/content/libraries/Detail.vue:28
-msgid "Status"
-msgstr "Stato"
-
+#: front/src/views/admin/Settings.vue:86
+msgid "Statistics"
+msgstr "Statistiche"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:454
+msgid "Statistics are computed from known activity and content on your instance, and do not reflect general activity for this account"
+msgstr ""
+"Le statistiche sono calcolate da attività conosciute e contenuti della tua "
+"istanza, e non riflette l'attività generale per questo account"
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:358
+msgid "Statistics are computed from known activity and content on your instance, and do not reflect general activity for this domain"
+msgstr ""
+"Le statistiche sono calcolate da attività conosciute e contenuti della tua "
+"istanza, e non riflette l'attività generale per questo dominio"
+
+#: front/src/components/library/FileUpload.vue:86
+#: front/src/components/manage/users/InvitationsTable.vue:17
+#: front/src/components/manage/users/InvitationsTable.vue:39
+#: front/src/components/manage/users/UsersTable.vue:43
+#: front/src/views/admin/moderation/DomainsDetail.vue:123
+#: front/src/views/content/libraries/Detail.vue:28
+msgid "Status"
+msgstr "Stato"
+
 #: front/src/components/radios/Button.vue:3
 msgid "Stop"
 msgstr "Ferma"
 
-#: front/src/components/Sidebar.vue:150
+#: front/src/components/Sidebar.vue:161
 msgid "Stop radio"
 msgstr "Ferma radio"
 
-#: front/src/App.vue:11 src/components/requests/Form.vue:17
+#: front/src/App.vue:22
 msgid "Submit"
 msgstr "Invia"
 
-#: front/src/components/requests/Form.vue:22
-msgid "Submit another request"
-msgstr "Invia un'altra richiesta"
+#: front/src/views/admin/Settings.vue:85
+msgid "Subsonic"
+msgstr "Subsonic"
 
 #: front/src/components/auth/SubsonicTokenForm.vue:2
 msgid "Subsonic API password"
 msgstr "Password API Subsonic"
 
-#: front/src/App.vue:13
+#: front/src/App.vue:26
 msgid "Suggested choices"
 msgstr "Scelte suggerite"
 
 #: front/src/components/library/FileUpload.vue:3
 msgid "Summary"
-msgstr ""
+msgstr "Riepilogo"
+
+#: front/src/components/Footer.vue:39
+msgid "Support forum"
+msgstr "Forum di supporto"
+
+#: front/src/components/library/FileUpload.vue:78
+msgid "Supported extensions: %{ extensions }"
+msgstr "Estensioni supportate: %{ extensions }"
 
 #: front/src/components/playlists/Editor.vue:9
-msgid "Syncing changes to server..."
-msgstr "Sincronizzando le modifiche con il server..."
+msgid "Syncing changes to server…"
+msgstr "Sincronizzando le modifiche con il server…"
 
 #: front/src/components/common/CopyInput.vue:3
 msgid "Text copied to clipboard!"
-msgstr ""
+msgstr "Testo copiato negli appunti!"
 
 #: front/src/components/Home.vue:26
 msgid "That's simple: we loved Grooveshark and we want to build something even better."
 msgstr "È molto semplice: amavamo Grooveshark e volevamo creare qualcosa ancora più bello."
 
-#: front/src/App.vue:58
+#: front/src/components/Footer.vue:53
 msgid "The funkwhale logo was kindly designed and provided by Francis Gading."
 msgstr "Il logo di Funkwhale è stato gentilmente disegnato e concesso da Francis Gading."
 
 #: front/src/views/content/libraries/Form.vue:34
-msgid "The library and all its tracks will be deleted. This action is irreversible."
+msgid "The library and all its tracks will be deleted. This can not be undone."
 msgstr ""
+"La libreria e tutte le sue tracce saranno eliminate. Questa azione è "
+"irreversibile."
 
 #: front/src/components/library/FileUpload.vue:39
 msgid "The music files you are uploading are tagged properly:"
+msgstr "I file musicali che stai caricando sono correttamente etichettati:"
+
+#: front/src/components/audio/Player.vue:67
+msgid "The next track will play automatically in a few seconds..."
 msgstr ""
+"La traccia seguente verrà riprodotta automaticamente tra pochi secondi..."
 
 #: front/src/components/Home.vue:121
 msgid "The plaform is free and open-source, you can install it and modify it without worries"
@@ -1670,35 +2433,73 @@ msgstr "L'API Subsonic non è disponibile su questa istanza Funkwhale."
 
 #: front/src/components/library/FileUpload.vue:43
 msgid "The uploaded music files are in OGG, Flac or MP3 format"
+msgstr "I file musicali caricati sono in formato OGG, Flac o MP3"
+
+#: front/src/views/content/Home.vue:4
+msgid "There are various ways to grab new content and make it available here."
 msgstr ""
+"Offriamo vari modi per recuperare nuovi contenuti e renderli disponibili qui."
 
-#: front/src/components/library/Album.vue:52
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:66
+msgid "This action is irreversible."
+msgstr "Questa azione è irreversibile."
+
+#: front/src/components/library/Album.vue:91
 msgid "This album is present in the following libraries:"
-msgstr ""
+msgstr "Questo album è presente nelle seguenti librerie:"
 
 #: front/src/components/library/Artist.vue:63
 msgid "This artist is present in the following libraries:"
-msgstr ""
+msgstr "Questo artista è presente nelle seguenti librerie:"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:55
+#: front/src/views/admin/moderation/DomainsDetail.vue:48
+msgid "This domain is subject to specific moderation rules"
+msgstr "Questo dominio è soggetto a regole specifiche di moderazione"
 
 #: front/src/views/content/Home.vue:9
-msgid "This instance offers up to %{quota} of storage space to every user."
+msgid "This instance offers up to %{quota} of storage space for every user."
 msgstr ""
+"Questa istanza offre fino a %{quota} di spazio di archiviazione per ogni "
+"utente."
 
 #: front/src/components/auth/Profile.vue:16
 msgid "This is you!"
 msgstr "Questo sei tu!"
 
-#: front/src/components/common/ActionTable.vue:38
-msgid "This may affect a lot of elements, please double check this is really what you want."
-msgstr "Questo può coinvolgere molti elementi, per favore ricontrolla se è proprio quello che vuoi."
+#: front/src/views/content/libraries/Form.vue:71
+msgid "This library contains my personal music, I hope you like it."
+msgstr "Questa libreria contiene la mia musica personale, spero vi piaccia."
+
+#: front/src/views/content/remote/Card.vue:131
+msgid "This library is private and your approval from its owner is needed to access its content"
+msgstr ""
+"Questa libreria è privata e la tua approvazione dal suo proprietario è "
+"necessaria per accedere al suo contenuto"
+
+#: front/src/views/content/remote/Card.vue:132
+msgid "This library is public and you can access its content freely"
+msgstr ""
+"Questa libreria è pubblica e tu puoi accedere al suo contenuto liberamente"
+
+#: front/src/components/common/ActionTable.vue:45
+msgid "This may affect a lot of elements or have irreversible consequences, please double check this is really what you want."
+msgstr ""
+"Questo può coinvolgere molti elementi o avere conseguenze irreversibili, per "
+"favore ricontrolla se è proprio quello che vuoi."
 
 #: front/src/components/library/FileUpload.vue:52
 msgid "This reference will be used to group imported files together."
+msgstr "Questo riferimento sarà utilizzato per raggruppare file importati."
+
+#: front/src/components/audio/PlayButton.vue:73
+msgid "This track is not available in any library you have access to"
 msgstr ""
+"Questa traccia non è disponibile in nessuna libreria alla quale hai accesso"
 
-#: front/src/components/library/Track.vue:125
+#: front/src/components/library/Track.vue:171
 msgid "This track is present in the following libraries:"
-msgstr ""
+msgstr "Questa traccia è presente nelle seguenti librerie:"
 
 #: front/src/views/playlists/Detail.vue:37
 msgid "This will completely delete this playlist and cannot be undone."
@@ -1712,164 +2513,10 @@ msgstr "Questo cancellerà questa radio e non può essere annullato."
 msgid "This will completely disable access to the Subsonic API using from account."
 msgstr "Questo disabiliterà completamente l'accesso alla API Subsonic dagli account."
 
-#: front/src/App.vue:162 src/components/About.vue:55
-#: src/components/Home.vue:154 front/src/components/PageNotFound.vue:33
-#: src/components/Sidebar.vue:203 front/src/components/Sidebar.vue:204
-#: src/components/audio/PlayButton.vue:54
-#: front/src/components/audio/PlayButton.vue:55
-#: front/src/components/audio/PlayButton.vue:56
-#: front/src/components/audio/PlayButton.vue:61
-#: front/src/components/audio/PlayButton.vue:64
-#: front/src/components/audio/PlayButton.vue:158
-#: src/components/audio/Player.vue:216
-#: front/src/components/audio/Player.vue:273
-#: src/components/audio/Player.vue:274
-#: front/src/components/audio/Player.vue:275
-#: src/components/audio/Player.vue:276
-#: front/src/components/audio/Player.vue:277
-#: src/components/audio/Player.vue:278
-#: front/src/components/audio/Player.vue:279
-#: src/components/audio/Player.vue:280
-#: front/src/components/audio/Player.vue:281
-#: src/components/audio/Player.vue:282
-#: front/src/components/audio/Player.vue:283 src/components/audio/Search.vue:65
-#: front/src/components/audio/SearchBar.vue:20
-#: src/components/audio/SearchBar.vue:25
-#: front/src/components/audio/SearchBar.vue:26
-#: src/components/audio/SearchBar.vue:27 front/src/components/auth/Login.vue:77
-#: src/components/auth/Login.vue:78 front/src/components/auth/Logout.vue:20
-#: src/components/auth/Profile.vue:47
-#: front/src/components/auth/Settings.vue:249 src/components/auth/Signup.vue:95
-#: front/src/components/auth/Signup.vue:96 src/components/auth/Signup.vue:97
-#: front/src/components/auth/Signup.vue:98
-#: front/src/components/auth/SubsonicTokenForm.vue:95
-#: front/src/components/auth/SubsonicTokenForm.vue:111
-#: front/src/components/favorites/List.vue:110
-#: front/src/components/favorites/TrackFavoriteIcon.vue:19
-#: front/src/components/favorites/TrackFavoriteIcon.vue:21
-#: front/src/components/forms/PasswordInput.vue:25
-#: front/src/components/library/Album.vue:101
-#: src/components/library/Artist.vue:129
-#: front/src/components/library/Artists.vue:119
-#: front/src/components/library/Artists.vue:120
-#: front/src/components/library/FileUpload.vue:238
-#: front/src/components/library/FileUpload.vue:239
-#: front/src/components/library/FileUpload.vue:240
-#: front/src/components/library/FileUpload.vue:241
-#: src/components/library/Home.vue:65
-#: front/src/components/library/Radios.vue:141
-#: src/components/library/Radios.vue:142
-#: front/src/components/library/Track.vue:195
-#: front/src/components/library/radios/Builder.vue:233
-#: front/src/components/library/radios/Builder.vue:235
-#: front/src/components/library/radios/Builder.vue:236
-#: front/src/components/manage/library/FilesTable.vue:176
-#: front/src/components/manage/library/FilesTable.vue:190
-#: front/src/components/manage/users/InvitationForm.vue:58
-#: front/src/components/manage/users/InvitationsTable.vue:153
-#: front/src/components/manage/users/InvitationsTable.vue:167
-#: front/src/components/manage/users/UsersTable.vue:163
-#: front/src/components/manage/users/UsersTable.vue:173
-#: front/src/components/manage/users/UsersTable.vue:177
-#: front/src/components/manage/users/UsersTable.vue:181
-#: front/src/components/manage/users/UsersTable.vue:185
-#: front/src/components/metadata/ArtistCard.vue:49
-#: front/src/components/metadata/ReleaseCard.vue:53
-#: front/src/components/metadata/Search.vue:114
-#: front/src/components/metadata/Search.vue:130
-#: front/src/components/metadata/Search.vue:134
-#: front/src/components/metadata/Search.vue:138
-#: front/src/components/mixins/Translations.vue:7
-#: front/src/components/mixins/Translations.vue:8
-#: front/src/components/mixins/Translations.vue:10
-#: front/src/components/mixins/Translations.vue:11
-#: front/src/components/mixins/Translations.vue:16
-#: front/src/components/mixins/Translations.vue:17
-#: front/src/components/mixins/Translations.vue:18
-#: front/src/components/mixins/Translations.vue:19
-#: front/src/components/mixins/Translations.vue:20
-#: front/src/components/mixins/Translations.vue:21
-#: front/src/components/mixins/Translations.vue:22
-#: front/src/components/mixins/Translations.vue:23
-#: front/src/components/mixins/Translations.vue:24
-#: front/src/components/mixins/Translations.vue:25
-#: front/src/components/mixins/Translations.vue:26
-#: front/src/components/mixins/Translations.vue:27
-#: front/src/components/mixins/Translations.vue:28
-#: front/src/components/mixins/Translations.vue:29
-#: front/src/components/mixins/Translations.vue:30
-#: front/src/components/mixins/Translations.vue:31
-#: front/src/components/notifications/NotificationRow.vue:39
-#: front/src/components/notifications/NotificationRow.vue:40
-#: front/src/components/notifications/NotificationRow.vue:44
-#: front/src/components/notifications/NotificationRow.vue:45
-#: front/src/components/notifications/NotificationRow.vue:62
-#: front/src/components/playlists/Editor.vue:163
-#: src/components/playlists/Form.vue:74
-#: front/src/components/playlists/Form.vue:81
-#: src/components/playlists/Form.vue:85
-#: front/src/components/playlists/Form.vue:89
-#: front/src/components/playlists/PlaylistModal.vue:116
-#: front/src/components/playlists/TrackPlaylistIcon.vue:32
-#: front/src/components/requests/Form.vue:73
-#: src/components/requests/Form.vue:74
-#: front/src/components/requests/Form.vue:75 src/views/Notifications.vue:74
-#: front/src/views/admin/Settings.vue:75 src/views/admin/Settings.vue:80
-#: front/src/views/admin/Settings.vue:81 src/views/admin/Settings.vue:82
-#: front/src/views/admin/Settings.vue:83 src/views/admin/Settings.vue:84
-#: front/src/views/admin/Settings.vue:85 src/views/admin/Settings.vue:86
-#: front/src/views/admin/library/Base.vue:16
-#: src/views/admin/library/FilesList.vue:21
-#: front/src/views/admin/users/Base.vue:20
-#: front/src/views/admin/users/InvitationsList.vue:24
-#: front/src/views/admin/users/UsersDetail.vue:169
-#: front/src/views/admin/users/UsersDetail.vue:170
-#: front/src/views/admin/users/UsersDetail.vue:177
-#: front/src/views/admin/users/UsersDetail.vue:181
-#: front/src/views/admin/users/UsersDetail.vue:185
-#: front/src/views/admin/users/UsersDetail.vue:189
-#: front/src/views/admin/users/UsersList.vue:21
-#: src/views/auth/EmailConfirm.vue:51 front/src/views/auth/PasswordReset.vue:52
-#: src/views/auth/PasswordReset.vue:53
-#: front/src/views/auth/PasswordResetConfirm.vue:62
-#: src/views/content/Base.vue:19 front/src/views/content/Home.vue:35
-#: src/views/content/libraries/Card.vue:58
-#: front/src/views/content/libraries/Card.vue:59
-#: front/src/views/content/libraries/Card.vue:60
-#: front/src/views/content/libraries/Card.vue:61
-#: front/src/views/content/libraries/DetailArea.vue:24
-#: front/src/views/content/libraries/FilesTable.vue:226
-#: front/src/views/content/libraries/FilesTable.vue:229
-#: front/src/views/content/libraries/FilesTable.vue:230
-#: front/src/views/content/libraries/FilesTable.vue:233
-#: front/src/views/content/libraries/FilesTable.vue:234
-#: front/src/views/content/libraries/FilesTable.vue:237
-#: front/src/views/content/libraries/FilesTable.vue:238
-#: front/src/views/content/libraries/FilesTable.vue:241
-#: front/src/views/content/libraries/FilesTable.vue:242
-#: front/src/views/content/libraries/FilesTable.vue:258
-#: front/src/views/content/libraries/FilesTable.vue:259
-#: front/src/views/content/libraries/Form.vue:70
-#: front/src/views/content/libraries/Form.vue:71
-#: front/src/views/content/libraries/Form.vue:72
-#: front/src/views/content/libraries/Form.vue:73
-#: front/src/views/content/libraries/Form.vue:74
-#: front/src/views/content/libraries/Form.vue:106
-#: front/src/views/content/libraries/Form.vue:109
-#: front/src/views/content/libraries/Form.vue:129
-#: front/src/views/content/remote/Card.vue:131
-#: src/views/content/remote/Card.vue:132
-#: front/src/views/content/remote/Card.vue:165
-#: src/views/content/remote/Card.vue:166
-#: front/src/views/content/remote/ScanForm.vue:48
-#: src/views/instance/Timeline.vue:57 front/src/views/playlists/Detail.vue:90
-#: src/views/playlists/List.vue:104 front/src/views/playlists/List.vue:105
-#: src/views/radios/Detail.vue:80
-#, fuzzy
+#: front/src/App.vue:129 src/components/Footer.vue:72
 msgid "This will erase your local data and disconnect you, do you want to continue?"
-msgid_plural "%{ count } tracks were added to your queue"
-msgstr[0] "Questo cancellerà i tuoi dati locali e ti disconnetterà, vuoi continuare?"
-msgstr[1] "Questo cancellerà i tuoi dati locali e ti disconnetterà, vuoi continuare?"
+msgstr ""
+"Questo cancellerà i tuoi dati locali e ti disconnetterà, vuoi continuare?"
 
 #: front/src/components/auth/SubsonicTokenForm.vue:36
 msgid "This will log you out from existing devices that use the current password."
@@ -1879,26 +2526,42 @@ msgstr "Questo ti disconnetterà dai dispositivi esistenti che utilizzano la pas
 msgid "This will remove all tracks from this playlist and cannot be undone."
 msgstr "Questo cancellerà tutte le tracce da questa lista di riproduzione e non può essere annullato."
 
-#: front/src/views/content/libraries/Quota.vue:90
-msgid "This will remove tracks that were uploaded but failed to be process by the server. This will remove those files completely and you will regain the corresponding quota."
-msgstr ""
-
-#: front/src/views/content/libraries/Quota.vue:38
-msgid "This will remove tracks that were uploaded but not processed yet. This will remove those files completely and you will regain the corresponding quota."
-msgstr ""
-
-#: front/src/views/content/libraries/Quota.vue:64
-msgid "This will remove tracks that were uploaded but skipped during import processes for various reasons. This will remove those files completely and you will regain the corresponding quota."
-msgstr ""
-
 #: front/src/components/audio/track/Table.vue:6
 #: front/src/components/manage/library/FilesTable.vue:37
-#: front/src/views/content/libraries/FilesTable.vue:51
-#: front/src/components/mixins/Translations.vue:26
+#: front/src/components/mixins/Translations.vue:27
+#: front/src/views/content/libraries/FilesTable.vue:54
+#: front/src/components/mixins/Translations.vue:28
 msgid "Title"
 msgstr "Titolo"
 
-#: front/src/components/library/Track.vue:53
+#: front/src/components/ShortcutsModal.vue:79
+msgid "Toggle queue looping"
+msgstr "Cambia tipo di riproduzione della coda"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:288
+#: front/src/views/admin/moderation/DomainsDetail.vue:225
+msgid "Total size"
+msgstr "Dimensione totale"
+
+#: front/src/views/content/libraries/Card.vue:61
+msgid "Total size of the files in this library"
+msgstr "Dimensione totale dei files in questa libreria"
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:113
+msgid "Total users"
+msgstr "Utenti totali"
+
+#: front/src/components/audio/SearchBar.vue:27
+#: src/components/library/Track.vue:262
+#: front/src/components/metadata/Search.vue:138
+msgid "Track"
+msgstr "Traccia"
+
+#: front/src/views/content/libraries/FilesTable.vue:205
+msgid "Track already present in one of your libraries"
+msgstr "La traccia era già presente in una delle tue librerie"
+
+#: front/src/components/library/Track.vue:85
 msgid "Track information"
 msgstr "Informazioni traccia"
 
@@ -1906,14 +2569,25 @@ msgstr "Informazioni traccia"
 msgid "Track matching filter"
 msgstr "Filtro corrispondenze traccia"
 
+#: front/src/components/mixins/Translations.vue:23
+#: front/src/components/mixins/Translations.vue:24
+msgid "Track name"
+msgstr "Nome traccia"
+
+#: front/src/views/content/libraries/FilesTable.vue:209
+msgid "Track uploaded, but not processed by the server yet"
+msgstr "La traccia è stata caricata ma non ancora processata dal server"
+
 #: front/src/components/instance/Stats.vue:54
 msgid "tracks"
 msgstr "tracce"
 
-#: front/src/components/library/Album.vue:43
+#: front/src/components/library/Album.vue:81
 #: front/src/components/playlists/PlaylistModal.vue:33
-#: src/views/content/Base.vue:8 front/src/views/content/libraries/Detail.vue:8
-#: src/views/playlists/Detail.vue:50 front/src/views/radios/Detail.vue:34
+#: front/src/views/admin/moderation/AccountsDetail.vue:329
+#: front/src/views/admin/moderation/DomainsDetail.vue:265
+#: front/src/views/content/Base.vue:8 src/views/content/libraries/Detail.vue:8
+#: front/src/views/playlists/Detail.vue:50 src/views/radios/Detail.vue:34
 msgid "Tracks"
 msgstr "Tracce"
 
@@ -1929,21 +2603,25 @@ msgstr "Tracce preferite"
 msgid "tracks listened"
 msgstr "tracce ascoltate"
 
-#: front/src/components/library/Track.vue:91
+#: front/src/components/library/Track.vue:138
 #: front/src/components/manage/library/FilesTable.vue:41
+#: front/src/views/admin/moderation/AccountsDetail.vue:151
 msgid "Type"
 msgstr "Tipo"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:44
+#: front/src/components/manage/moderation/DomainsTable.vue:42
+msgid "Under moderation rule"
+msgstr "Sotto regole di moderazione"
+
 #: front/src/views/content/remote/Card.vue:100
 #: src/views/content/remote/Card.vue:105
-#, fuzzy
 msgid "Unfollow"
-msgstr "Segui"
+msgstr "Smetti di seguire"
 
 #: front/src/views/content/remote/Card.vue:101
-#, fuzzy
 msgid "Unfollow this library?"
-msgstr "Portami alla libreria"
+msgstr "Smettere di seguire questa libreria?"
 
 #: front/src/components/About.vue:15
 msgid "Unfortunately, owners of this instance did not yet take the time to complete this page."
@@ -1953,14 +2631,26 @@ msgstr "Sfortunatamente i proprietari di questa istanza non hanno ancora avuto t
 msgid "Unlimited music"
 msgstr "Musica illimitata"
 
+#: front/src/components/audio/Player.vue:351
+msgid "Unmute"
+msgstr "Non silenziare"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:45
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:57
+msgid "Update"
+msgstr "Aggiorna"
+
 #: front/src/components/auth/Settings.vue:50
 msgid "Update avatar"
 msgstr "Aggiorna avatar"
 
 #: front/src/views/content/libraries/Form.vue:25
-#, fuzzy
 msgid "Update library"
-msgstr "Gestisci libreria"
+msgstr "Aggiorna libreria"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:3
+msgid "Update moderation rule"
+msgstr "Aggiorna regole di moderazione"
 
 #: front/src/components/playlists/Form.vue:33
 msgid "Update playlist"
@@ -1975,9 +2665,7 @@ msgid "Update your password"
 msgstr "Aggiorna la tua password"
 
 #: front/src/views/content/libraries/Card.vue:44
-#: front/src/components/manage/users/UsersTable.vue:173
 #: front/src/views/content/libraries/DetailArea.vue:24
-#: front/src/views/admin/users/UsersDetail.vue:177
 msgid "Upload"
 msgstr "Carica"
 
@@ -1986,44 +2674,59 @@ msgid "Upload a new avatar"
 msgstr "Carica un nuovo avatar"
 
 #: front/src/views/content/Home.vue:6
-#, fuzzy
 msgid "Upload audio content"
-msgstr "Carica un nuovo avatar"
+msgstr "Carica contenuto audio"
 
-#: front/src/views/content/libraries/FilesTable.vue:54
-#, fuzzy
+#: front/src/views/content/libraries/FilesTable.vue:57
 msgid "Upload date"
-msgstr "Carica"
+msgstr "Data di caricamento"
+
+#: front/src/components/library/FileUpload.vue:219
+#: front/src/components/library/FileUpload.vue:220
+msgid "Upload denied, ensure the file is not too big and that you have not reached your quota"
+msgstr ""
+"Caricamento non riuscito, assicurati che il file non sia troppo grande e di "
+"non aver esaurito la tua quota"
 
 #: front/src/views/content/Home.vue:7
-msgid "Upload music files (mp3, ogg, flac, etc.) from your personal library directly from your browser to enjoy them here."
+msgid "Upload music files (MP3, OGG, FLAC, etc.) from your personal library directly from your browser to enjoy them here."
 msgstr ""
+"Carica file musicali (mp3, ogg, flac, ecc.) dalla tua libreria personale "
+"direttamente dal tuo browser per goderne qui."
 
 #: front/src/components/library/FileUpload.vue:31
-#, fuzzy
 msgid "Upload new tracks"
-msgstr "Carica un nuovo avatar"
+msgstr "Carica nuove tracce"
 
-#: front/src/views/admin/users/UsersDetail.vue:82
-#, fuzzy
+#: front/src/views/admin/moderation/AccountsDetail.vue:269
 msgid "Upload quota"
-msgstr "Carica"
+msgstr "Quota di caricamento"
+
+#: front/src/components/library/FileUpload.vue:228
+msgid "Upload timeout, please try again"
+msgstr "Caricamento scaduto, per favore riprova"
 
-#: front/src/components/library/FileUpload.vue:99
-#, fuzzy
+#: front/src/components/library/FileUpload.vue:100
 msgid "Uploaded"
-msgstr "Carica"
+msgstr "Caricato"
 
 #: front/src/components/library/FileUpload.vue:5
-#, fuzzy
 msgid "Uploading"
-msgstr "Caricamento..."
+msgstr "Caricamento"
 
-#: front/src/components/library/FileUpload.vue:102
-msgid "Uploading..."
-msgstr "Caricamento..."
+#: front/src/components/library/FileUpload.vue:103
+msgid "Uploading…"
+msgstr "Caricamento…"
 
-#: front/src/App.vue:44
+#: front/src/components/manage/moderation/AccountsTable.vue:41
+#: front/src/components/mixins/Translations.vue:37
+#: front/src/views/admin/moderation/AccountsDetail.vue:305
+#: front/src/views/admin/moderation/DomainsDetail.vue:241
+#: front/src/components/mixins/Translations.vue:38
+msgid "Uploads"
+msgstr "Caricati"
+
+#: front/src/components/Footer.vue:16
 msgid "Use another instance"
 msgstr "Usa un'altra istanza"
 
@@ -2031,6 +2734,12 @@ msgstr "Usa un'altra istanza"
 msgid "Use this form to request a password reset. We will send an email to the given address with instructions to reset your password."
 msgstr "Usa questo modulo per richiedere un reset della password. Ti invieremo una email all'indirizzo fornito con le istruzioni per resettare la tua password."
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:111
+msgid "Use this setting to temporarily enable/disable the policy without completely removing it."
+msgstr ""
+"Usa questa impostazione per abilitare/disabilitare temporaneamente la regola "
+"senza rimuoverla completamente."
+
 #: front/src/components/manage/users/InvitationsTable.vue:49
 msgid "Used"
 msgstr "Usati"
@@ -2043,12 +2752,11 @@ msgstr "Utente"
 msgid "User activity"
 msgstr "Attività utente"
 
-#: front/src/components/library/Album.vue:49
+#: front/src/components/library/Album.vue:88
 #: src/components/library/Artist.vue:60
-#: front/src/components/library/Track.vue:122
-#, fuzzy
+#: front/src/components/library/Track.vue:168
 msgid "User libraries"
-msgstr "Librerie"
+msgstr "Librerie utente"
 
 #: front/src/components/library/Radios.vue:20
 msgid "User radios"
@@ -2056,7 +2764,9 @@ msgstr "Radio dell'utente"
 
 #: front/src/components/auth/Signup.vue:19
 #: front/src/components/manage/users/UsersTable.vue:37
-#: front/src/components/mixins/Translations.vue:32
+#: front/src/components/mixins/Translations.vue:33
+#: front/src/views/admin/moderation/AccountsDetail.vue:85
+#: front/src/components/mixins/Translations.vue:34
 msgid "Username"
 msgstr "Nome utente"
 
@@ -2068,31 +2778,57 @@ msgstr "Nome utente o email"
 msgid "users"
 msgstr "utenti"
 
-#: front/src/components/Sidebar.vue:94 src/views/admin/users/Base.vue:5
-#: front/src/views/admin/users/UsersList.vue:3
-#: src/views/admin/users/UsersList.vue:21 front/src/views/admin/Settings.vue:81
+#: front/src/components/Sidebar.vue:91
+#: front/src/components/manage/moderation/DomainsTable.vue:39
+#: front/src/components/mixins/Translations.vue:35
+#: src/views/admin/Settings.vue:81 front/src/views/admin/users/Base.vue:5
+#: src/views/admin/users/UsersList.vue:3
+#: front/src/views/admin/users/UsersList.vue:21
+#: front/src/components/mixins/Translations.vue:36
 msgid "Users"
 msgstr "Utenti"
 
+#: front/src/components/Footer.vue:29
+msgid "Using Funkwhale"
+msgstr "Utilizzando Funkwhale"
+
+#: front/src/components/Footer.vue:13
+msgid "Version %{version}"
+msgstr "Versione (%{version})"
+
 #: front/src/views/content/libraries/Quota.vue:29
 #: front/src/views/content/libraries/Quota.vue:56
 #: front/src/views/content/libraries/Quota.vue:82
-#, fuzzy
 msgid "View files"
-msgstr "File della libreria"
+msgstr "Vedi files"
 
 #: front/src/components/library/Album.vue:37
 #: src/components/library/Artist.vue:35
-#: front/src/components/library/Track.vue:44
-#: front/src/components/metadata/ReleaseCard.vue:53
+#: front/src/components/library/Track.vue:51
 #: front/src/components/metadata/ArtistCard.vue:49
+#: front/src/components/metadata/ReleaseCard.vue:53
 msgid "View on MusicBrainz"
 msgstr "Vedi su MusicBrainz"
 
 #: front/src/views/content/libraries/Form.vue:18
-#, fuzzy
 msgid "Visibility"
-msgstr "Visibilità lista di riproduzione"
+msgstr "Visibilità"
+
+#: front/src/views/content/libraries/Card.vue:59
+msgid "Visibility: everyone on this instance"
+msgstr "Visibilità: tutti su questa istanza"
+
+#: front/src/views/content/libraries/Card.vue:60
+msgid "Visibility: everyone, including other instances"
+msgstr "Visibilità: tutti, incluse altre istanze"
+
+#: front/src/views/content/libraries/Card.vue:58
+msgid "Visibility: nobody except me"
+msgstr "Visibilità: nessuno tranne me"
+
+#: front/src/components/library/Album.vue:67
+msgid "Volume %{ number }"
+msgstr "Volume %{ number }"
 
 #: front/src/components/playlists/PlaylistModal.vue:20
 msgid "We cannot add the track to a playlist"
@@ -2106,6 +2842,10 @@ msgstr "Non possiamo creare la lista di riproduzione"
 msgid "We cannot create your account"
 msgstr "Non possiamo creare il tuo account"
 
+#: front/src/components/audio/Player.vue:64
+msgid "We cannot load this track"
+msgstr "Non possiamo caricare questa traccia"
+
 #: front/src/components/auth/Login.vue:7
 msgid "We cannot log you in"
 msgstr "Non riusciamo a farti accedere"
@@ -2122,17 +2862,16 @@ msgstr "Non possiamo salvare le tue impostazioni"
 msgid "We do not track you or bother you with ads"
 msgstr "Noi non ti tracciamo o infastidiamo con pubblicità"
 
-#: front/src/views/Notifications.vue:26
-msgid "We don't have any notification to display!"
-msgstr ""
+#: front/src/components/library/Track.vue:95
+msgid "We don't have any copyright information for this track"
+msgstr "Non abbiamo nessuna informazione sul copyright per questa traccia"
 
-#: front/src/views/content/Home.vue:4
-msgid "We offer various way to grab new content and make it available here."
-msgstr ""
+#: front/src/components/library/Track.vue:106
+msgid "We don't have any licensing information for this track"
+msgstr "Non abbiamo nessuna informazione sulla licenza di questa traccia"
 
 #: front/src/components/library/FileUpload.vue:40
-#, fuzzy
-msgid "we recommend using Picard for that purpose"
+msgid "We recommend using Picard for that purpose."
 msgstr "Ti consigliamo di utilizzare Picard per quello scopo."
 
 #: front/src/components/Home.vue:7
@@ -2143,9 +2882,9 @@ msgstr "Noi pensiamo che ascoltare musica debba essere semplice."
 msgid "We're sorry, the page you asked for does not exist:"
 msgstr "Ci dispiace, la pagina che hai richiesto non esiste:"
 
-#: front/src/components/requests/Form.vue:21
-msgid "We've received your request, you'll get some groove soon ;)"
-msgstr "Abbiamo ricevuto la tua richiesta, presto avrai da divertirti ;)"
+#: front/src/components/Home.vue:153
+msgid "Welcome"
+msgstr "Benvenuto"
 
 #: front/src/components/Home.vue:5
 msgid "Welcome on Funkwhale"
@@ -2155,7 +2894,17 @@ msgstr "Benvenuto su Funkwhale"
 msgid "Why funkwhale?"
 msgstr "Perchè Funkwhale?"
 
-#: front/src/components/Sidebar.vue:115
+#: front/src/components/audio/EmbedWizard.vue:13
+msgid "Widget height"
+msgstr "Altezza del widget"
+
+#: front/src/components/audio/EmbedWizard.vue:6
+msgid "Widget width"
+msgstr "Larghezza del widget"
+
+#: front/src/components/Sidebar.vue:118
+#: front/src/components/manage/moderation/AccountsTable.vue:72
+#: front/src/components/manage/moderation/DomainsTable.vue:58
 msgid "Yes"
 msgstr "Si"
 
@@ -2163,9 +2912,15 @@ msgstr "Si"
 msgid "Yes, log me out!"
 msgstr "Si, disconnettimi!"
 
+#: front/src/views/content/libraries/Form.vue:19
+msgid "You are able to share your library with other people, regardless of its visibility."
+msgstr ""
+"Sarai in grado di condividere la tua libreria con altre persone, "
+"indipendentemente dalla sua visibilità."
+
 #: front/src/components/library/FileUpload.vue:33
 msgid "You are about to upload music to your library. Before proceeding, please ensure that:"
-msgstr ""
+msgstr "Stai per caricare della musica nella tua libreria. Prima di procedere, per favore assicurati che:"
 
 #: front/src/components/auth/Logout.vue:7
 msgid "You are currently logged in as %{ username }"
@@ -2173,12 +2928,16 @@ msgstr "Sei attualmente connesso come %{ username }"
 
 #: front/src/views/content/Home.vue:17
 msgid "You can follow libraries from other users to get access to new music. Public libraries can be followed immediatly, while following a private library requires approval from its owner."
-msgstr ""
+msgstr "Puoi seguire librerie di altri utenti per avere accesso a nuova musica. Le librerie pubbliche possono essere seguite immediatamente, mentre seguire le librerie private richiede l'approvazione del suo proprietario."
 
 #: front/src/components/Home.vue:133
 msgid "You can invite friends and family to your instance so they can enjoy your music"
 msgstr "Puoi invitare amici e familiari sulla tua istanza così possono fruire della tua musica"
 
+#: front/src/views/auth/EmailConfirm.vue:24
+msgid "You can now use the service without limitations."
+msgstr "Ora puoi usare il servizio senza limitazioni."
+
 #: front/src/components/library/radios/Builder.vue:7
 msgid "You can use this interface to build your own custom radio, which will play tracks according to your criteria."
 msgstr "Puoi usare questa interfaccia per creare la tua radio personalizzata, che riprodurrà tracce in accordo con i tuoi criteri."
@@ -2187,18 +2946,26 @@ msgstr "Puoi usare questa interfaccia per creare la tua radio personalizzata, ch
 msgid "You can use those to enjoy your playlist and music in offline mode, on your smartphone or tablet, for instance."
 msgstr "Puoi usarli per godere delle tue liste di riproduzione e musica anche quando non collegato, dal tuo cellulare o tablet, per esempio."
 
-#: front/src/components/Sidebar.vue:147
+#: front/src/views/admin/moderation/AccountsDetail.vue:46
+msgid "You don't have any rule in place for this account."
+msgstr "Non hai nessuna regola attiva per questo account."
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:39
+msgid "You don't have any rule in place for this domain."
+msgstr "Non hai nessuna regola attiva per questo dominio."
+
+#: front/src/components/Sidebar.vue:158
 msgid "You have a radio playing"
 msgstr "Hai una radio in riproduzione"
 
-#: front/src/App.vue:8
+#: front/src/components/audio/Player.vue:71
+msgid "You may have a connectivity issue."
+msgstr "Potresti avere un problema di connettività."
+
+#: front/src/App.vue:17
 msgid "You need to select an instance in order to continue"
 msgstr "Devi selezionare un'istanza per continuare"
 
-#: front/src/views/content/libraries/Form.vue:19
-msgid "You will be able to share your library with other people, regardless of it's visibility."
-msgstr ""
-
 #: front/src/components/auth/Settings.vue:100
 msgid "You will be logged out from this session and have to log in with the new one"
 msgstr "Sarai disconnesso da questa sessione e dovrai accedere con una nuova"
@@ -2207,18 +2974,17 @@ msgstr "Sarai disconnesso da questa sessione e dovrai accedere con una nuova"
 msgid "You will have to update your password on your clients that use this password."
 msgstr "Dovrai aggiornare la tua password sui tuoi dispositivi che utilizzano questa password."
 
-#: front/src/views/auth/EmailConfirm.vue:24
-msgid "Your email address was confirmed, you can now use the service without limitations."
-msgstr "Il tuo indirizzo email è stato confermato, ora puoi usare il servizio senza limitazioni."
+#: front/src/components/favorites/List.vue:112
+msgid "Your Favorites"
+msgstr "I Tuoi Preferiti"
 
 #: front/src/components/Home.vue:114
 msgid "Your music, your way"
 msgstr "La tua musica, il tuo modo di essere"
 
 #: front/src/views/Notifications.vue:7
-#, fuzzy
 msgid "Your notifications"
-msgstr "Ultima modifica"
+msgstr "Le tue notifiche"
 
 #: front/src/views/auth/PasswordResetConfirm.vue:29
 msgid "Your password has been updated successfully."
@@ -2227,426 +2993,3 @@ msgstr "La tua password è stata aggiornata con successo."
 #: front/src/components/auth/Settings.vue:101
 msgid "Your Subsonic password will be changed to a new, random one, logging you out from devices that used the old Subsonic password"
 msgstr "La tua password Subsonic sarà cambiata con una nuova e casuale, e sarai disconnesso dai dispositivi che utilizzano ancora la vecchia password Subsonic"
-
-#: front/src/components/mixins/Translations.vue:8
-#, fuzzy
-msgid "Activity visibility"
-msgstr "Visibilità lista di riproduzione"
-
-#: front/src/components/mixins/Translations.vue:9
-msgid "Determine the visibility level of your activity"
-msgstr ""
-
-#: front/src/components/mixins/Translations.vue:11
-#: front/src/components/playlists/Form.vue:81
-#: src/views/content/libraries/Form.vue:72
-msgid "Nobody except me"
-msgstr "Nessuno tranne me"
-
-#: front/src/components/mixins/Translations.vue:12
-#: front/src/components/playlists/Form.vue:85
-#: src/views/content/libraries/Form.vue:73
-msgid "Everyone on this instance"
-msgstr "Tutti su questa istanza"
-
-#: front/src/components/mixins/Translations.vue:18
-#, fuzzy
-msgid "Accessed date"
-msgstr "Accesso disabilitato"
-
-#: front/src/components/mixins/Translations.vue:19
-#, fuzzy
-msgid "Modification date"
-msgstr "Data di scadenza"
-
-#: front/src/components/mixins/Translations.vue:20
-#, fuzzy
-msgid "Imported date"
-msgstr "Importa data"
-
-#: front/src/components/mixins/Translations.vue:22
-#, fuzzy
-msgid "Track name"
-msgstr "Traccia"
-
-#: front/src/components/mixins/Translations.vue:23
-#, fuzzy
-msgid "Album name"
-msgstr "Pagina dell'album"
-
-#: front/src/components/mixins/Translations.vue:30
-#, fuzzy
-msgid "Sign-up date"
-msgstr "Registrati"
-
-#: front/src/components/playlists/Editor.vue:163
-msgid "Copy tracks from current queue to playlist"
-msgstr "Copia tracce dalla tua coda corrente alla playlist"
-
-#: front/src/components/playlists/PlaylistModal.vue:116
-msgid "Add to this playlist"
-msgstr "Aggiungi a questa playlist"
-
-#: front/src/components/playlists/Form.vue:74
-msgid "My awesome playlist"
-msgstr "La mia eccezionale playlist"
-
-#: front/src/components/playlists/Form.vue:89
-msgid "Everyone"
-msgstr "Tutti"
-
-#: front/src/components/auth/Signup.vue:95
-msgid "Sign Up"
-msgstr "Registrati"
-
-#: front/src/components/auth/Signup.vue:96
-msgid "Enter your invitation code (case insensitive)"
-msgstr "Inserisci il tuo codice di invito (non tiene conto di maiuscole o minuscole)"
-
-#: front/src/components/auth/Signup.vue:97
-msgid "Enter your username"
-msgstr "Inserisci il tuo nome utente"
-
-#: front/src/components/auth/Signup.vue:98
-msgid "Enter your email"
-msgstr "Inserisci la tua email"
-
-#: front/src/components/auth/SubsonicTokenForm.vue:95
-msgid "Password updated"
-msgstr "Password aggiornata"
-
-#: front/src/components/auth/SubsonicTokenForm.vue:111
-msgid "Access disabled"
-msgstr "Accesso disabilitato"
-
-#: front/src/components/auth/Login.vue:77
-msgid "Enter your username or email"
-msgstr "Inserisci il tuo nome utente o l'email"
-
-#: front/src/components/auth/Login.vue:78
-msgid "Log In"
-msgstr "Accedi"
-
-#: front/src/components/auth/Profile.vue:47
-msgid "%{ username }'s profile"
-msgstr "Profilo di %{ username }"
-
-#: front/src/components/auth/Logout.vue:20
-msgid "Log Out"
-msgstr "Disconnetti"
-
-#: front/src/components/auth/Settings.vue:249
-msgid "Account Settings"
-msgstr "Impostazioni dell'account"
-
-#: front/src/components/favorites/TrackFavoriteIcon.vue:19
-msgid "Remove from favorites"
-msgstr "Rimuovi dai preferiti"
-
-#: front/src/components/favorites/List.vue:110
-msgid "Your Favorites"
-msgstr "I Tuoi Preferiti"
-
-#: front/src/components/library/Radios.vue:141
-msgid "Enter a radio name..."
-msgstr "Inserisci un nome di una radio..."
-
-#: front/src/components/library/radios/Builder.vue:233
-msgid "Radio Builder"
-msgstr "Creatore Radio"
-
-#: front/src/components/library/radios/Builder.vue:235
-msgid "My awesome radio"
-msgstr "La mia eccezionale radio"
-
-#: front/src/components/library/radios/Builder.vue:236
-#, fuzzy
-msgid "My awesome description"
-msgstr "La mia eccezionale radio"
-
-#: front/src/components/library/FileUpload.vue:238
-msgid "Upload refused, ensure the file is not too big and you have not reached your quota"
-msgstr ""
-
-#: front/src/components/library/FileUpload.vue:239
-msgid "Impossible to upload this file, ensure it is not too big"
-msgstr ""
-
-#: front/src/components/library/FileUpload.vue:240
-#, fuzzy
-msgid "A network error occured while uploading this file"
-msgstr "C'è stato un errore durante il salvataggio delle tue modifiche"
-
-#: front/src/components/library/FileUpload.vue:241
-msgid "Upload timeout, please try again"
-msgstr ""
-
-#: front/src/components/library/Artists.vue:119
-msgid "Enter an artist name..."
-msgstr "Inserisci il nome di un artista..."
-
-#: front/src/components/library/Track.vue:195
-#: src/components/audio/SearchBar.vue:27
-#: front/src/components/metadata/Search.vue:138
-msgid "Track"
-msgstr "Traccia"
-
-#: front/src/components/library/Home.vue:65
-msgid "Home"
-msgstr "Pagina Iniziale"
-
-#: front/src/components/forms/PasswordInput.vue:25
-msgid "Show/hide password"
-msgstr "Mostra/nascondi password"
-
-#: front/src/components/requests/Form.vue:73
-msgid "The Beatles, Mickael Jackson…"
-msgstr "The Beatles, Michael Jackson…"
-
-#: front/src/components/requests/Form.vue:74
-msgid "The White Album, Thriller…"
-msgstr "The White Album, Thriller…"
-
-#: front/src/components/requests/Form.vue:75
-msgid "Use this comment box to add details to your request if needed"
-msgstr "Usa questo riquadro di commento per aggiungere dettagli alla tua richiesta se necessario"
-
-#: front/src/components/audio/PlayButton.vue:158
-msgid "%{ count } track was added to your queue"
-msgid_plural "%{ count } tracks were added to your queue"
-msgstr[0] "%{ count } traccia è stata aggiunta alla tua coda"
-msgstr[1] "%{ count } tracce sono state aggiunte alla tua coda"
-
-#: front/src/components/audio/Search.vue:65
-msgid "Artist, album, track..."
-msgstr "Artista, album, traccia..."
-
-#: front/src/components/audio/SearchBar.vue:20
-msgid "Search for artists, albums, tracks..."
-msgstr "Cerca per artisti, album, tracce..."
-
-#: front/src/components/audio/Player.vue:216
-msgid "Queue shuffled!"
-msgstr "Coda mischiata!"
-
-#: front/src/components/audio/Player.vue:273
-msgid "Previous track"
-msgstr "Traccia precedente"
-
-#: front/src/components/audio/Player.vue:274
-msgid "Play track"
-msgstr "Riproduci traccia"
-
-#: front/src/components/audio/Player.vue:275
-msgid "Pause track"
-msgstr "Metti in pausa"
-
-#: front/src/components/audio/Player.vue:276
-msgid "Next track"
-msgstr "Prossima traccia"
-
-#: front/src/components/audio/Player.vue:277
-msgid "Unmute"
-msgstr "Non silenziare"
-
-#: front/src/components/audio/Player.vue:278
-msgid "Mute"
-msgstr "Muto"
-
-#: front/src/components/audio/Player.vue:279
-msgid "Looping disabled. Click to switch to single-track looping."
-msgstr "Ripetizione disattivata. Clicca per attivare la ripetizione della singola traccia."
-
-#: front/src/components/audio/Player.vue:280
-msgid "Looping on a single track. Click to switch to whole queue looping."
-msgstr "Ripeti una singola traccia. Clicca per ripetere l'intera coda."
-
-#: front/src/components/audio/Player.vue:281
-msgid "Looping on whole queue. Click to disable looping."
-msgstr "Ripete l'intera coda. Clicca per disattivare la ripetizione."
-
-#: front/src/components/audio/Player.vue:282
-msgid "Shuffle your queue"
-msgstr "Mischia la tua coda"
-
-#: front/src/components/audio/Player.vue:283
-msgid "Clear your queue"
-msgstr "Pulisci la tua coda"
-
-#: front/src/components/Sidebar.vue:203
-msgid "Pending import requests"
-msgstr "Richieste di importazione in sospeso"
-
-#: front/src/components/Sidebar.vue:204
-msgid "Pending follow requests"
-msgstr "Richiesta di seguire in sospeso"
-
-#: front/src/components/metadata/Search.vue:114
-msgid "Enter your search query..."
-msgstr "Inserisci i tuoi criteri di ricerca..."
-
-#: front/src/components/manage/library/FilesTable.vue:176
-msgid "Search by title, artist, domain..."
-msgstr "Cerca per titolo, artista, dominio..."
-
-#: front/src/components/manage/users/InvitationForm.vue:58
-msgid "Leave empty for a random code"
-msgstr "Lascia vuoto per un codice casuale"
-
-#: front/src/components/manage/users/InvitationsTable.vue:153
-msgid "Search by username, email, code..."
-msgstr "Cerca per nome utente, email, codice..."
-
-#: front/src/components/manage/users/UsersTable.vue:163
-msgid "Search by username, email, name..."
-msgstr "Cerca per nome utente, email, nome..."
-
-#: front/src/components/manage/users/UsersTable.vue:181
-#: front/src/views/admin/users/UsersDetail.vue:185
-#: src/views/admin/Settings.vue:83
-msgid "Federation"
-msgstr "Federazione"
-
-#: front/src/components/Home.vue:154
-msgid "Welcome"
-msgstr ""
-
-#: front/src/views/content/remote/ScanForm.vue:48
-#, fuzzy
-msgid "Enter a library url"
-msgstr "Inserisci il nome del dominio di una libreria..."
-
-#: front/src/views/content/remote/Card.vue:165
-msgid "Scan launched"
-msgstr ""
-
-#: front/src/views/content/remote/Card.vue:166
-msgid "Scan skipped (previous scan is too recent)"
-msgstr ""
-
-#: front/src/views/content/libraries/FilesTable.vue:226
-#, fuzzy
-msgid "Search by title, artist, album..."
-msgstr "Cerca per titolo, artista, dominio..."
-
-#: front/src/views/content/libraries/FilesTable.vue:230
-msgid "Track was already present in one of your libraries"
-msgstr ""
-
-#: front/src/views/content/libraries/FilesTable.vue:234
-msgid "Track is uploaded but not processed by the server yet"
-msgstr ""
-
-#: front/src/views/content/libraries/FilesTable.vue:238
-msgid "An error occured while processing this track, ensure the track is correctly tagged"
-msgstr ""
-
-#: front/src/views/content/libraries/FilesTable.vue:242
-#, fuzzy
-msgid "Import went on successfully"
-msgstr "Password aggiornata con successo"
-
-#: front/src/views/content/libraries/FilesTable.vue:259
-#, fuzzy
-msgid "Relaunch import"
-msgstr "Termina importazione"
-
-#: front/src/views/content/libraries/Card.vue:58
-#, fuzzy
-msgid "Visibility: nobody except me"
-msgstr "Nessuno tranne me"
-
-#: front/src/views/content/libraries/Card.vue:59
-#, fuzzy
-msgid "Visibility: everyone on this instance"
-msgstr "Tutti su questa istanza"
-
-#: front/src/views/content/libraries/Card.vue:60
-msgid "Visibility: everyone, including other instances"
-msgstr ""
-
-#: front/src/views/content/libraries/Card.vue:61
-#, fuzzy
-msgid "Total size of the files in this library"
-msgstr "Tracce disponibili in questa libreria"
-
-#: front/src/views/content/libraries/Form.vue:70
-#, fuzzy
-msgid "My awesome library"
-msgstr "La mia eccezionale radio"
-
-#: front/src/views/content/libraries/Form.vue:71
-msgid "This library contains my personnal music, I hope you will like it!"
-msgstr ""
-
-#: front/src/views/content/libraries/Form.vue:74
-#, fuzzy
-msgid "Everyone, including other instances"
-msgstr "Tutti su questa istanza"
-
-#: front/src/views/content/libraries/Form.vue:106
-#, fuzzy
-msgid "Library updated"
-msgstr "Nome della libreria"
-
-#: front/src/views/content/libraries/Form.vue:109
-#, fuzzy
-msgid "Library created"
-msgstr "Nome della libreria"
-
-#: front/src/views/content/Home.vue:35
-msgid "Add and manage content"
-msgstr ""
-
-#: front/src/views/radios/Detail.vue:80
-msgid "Radio"
-msgstr "Radio"
-
-#: front/src/views/instance/Timeline.vue:57
-msgid "Instance Timeline"
-msgstr "Timeline dell'Istanza"
-
-#: front/src/views/playlists/Detail.vue:90
-msgid "Playlist"
-msgstr "Lista di riproduzione"
-
-#: front/src/views/playlists/List.vue:105
-msgid "Enter an playlist name..."
-msgstr "Inserisci il nome di una playlist..."
-
-#: front/src/views/admin/library/Base.vue:16
-#, fuzzy
-msgid "Manage library"
-msgstr "In libreria"
-
-#: front/src/views/admin/users/UsersDetail.vue:169
-msgid "Determine if the user account is active or not. Inactive users cannot login or use the service."
-msgstr "Determina se un account utente è attivo o meno. Gli utenti inattivi non possono accedere o utilizzare il servizio."
-
-#: front/src/views/admin/users/UsersDetail.vue:170
-msgid "Determine how much content the user can upload. Leave empty to use the default value of the instance."
-msgstr ""
-
-#: front/src/views/admin/users/Base.vue:20
-msgid "Manage users"
-msgstr "Gestisci utenti"
-
-#: front/src/views/admin/Settings.vue:75
-msgid "Instance settings"
-msgstr "Impostazioni dell'istanza"
-
-#: front/src/views/admin/Settings.vue:80
-msgid "Instance information"
-msgstr "Informazioni sull'istanza"
-
-#: front/src/views/admin/Settings.vue:84
-msgid "Subsonic"
-msgstr "Subsonic"
-
-#: front/src/views/admin/Settings.vue:85
-msgid "Statistics"
-msgstr "Statistiche"
-
-#: front/src/views/admin/Settings.vue:86
-msgid "Error reporting"
-msgstr "Segnalazione errore"
diff --git a/front/locales/nb_NO/LC_MESSAGES/app.po b/front/locales/nb_NO/LC_MESSAGES/app.po
new file mode 100644
index 0000000000000000000000000000000000000000..ac07d4a6b0f6feee816b2c58a6023352d7896ace
--- /dev/null
+++ b/front/locales/nb_NO/LC_MESSAGES/app.po
@@ -0,0 +1,2759 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the front package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: front 0.1.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2018-10-05 20:10+0200\n"
+"PO-Revision-Date: 2019-01-17 08:33+0000\n"
+"Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n"
+"Language-Team: none\n"
+"Language: nb_NO\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 3.2.2\n"
+
+#: front/src/components/playlists/PlaylistModal.vue:9
+msgid "\"%{ title }\", by %{ artist }"
+msgstr "\"%{ title }\", av %{ artist }"
+
+#: front/src/components/Sidebar.vue:24
+msgid "(%{ index } of %{ length })"
+msgstr "(%{ index } av %{ length })"
+
+#: front/src/components/Sidebar.vue:22
+msgid "(empty)"
+msgstr "(tom)"
+
+#: front/src/components/common/ActionTable.vue:44
+#: front/src/components/common/ActionTable.vue:53
+msgid "%{ count } on %{ total } selected"
+msgid_plural "%{ count } on %{ total } selected"
+msgstr[0] "%{ count } på %{ total } valgt"
+msgstr[1] "%{ count } på %{ total } valgt"
+
+#: front/src/components/Sidebar.vue:107 src/components/audio/album/Card.vue:54
+#: front/src/views/content/libraries/Card.vue:39 src/views/content/remote/Card.vue:26
+msgid "%{ count } track"
+msgid_plural "%{ count } tracks"
+msgstr[0] "%{ count } spor"
+msgstr[1] "%{ count } spor"
+
+#: front/src/components/library/Artist.vue:13
+msgid "%{ count } track in %{ albumsCount } albums"
+msgid_plural "%{ count } tracks in %{ albumsCount } albums"
+msgstr[0] "%{ count } spor i %{ albumsCount } album"
+msgstr[1] "%{ count } spor i %{ albumsCount } album"
+
+#: front/src/components/library/radios/Builder.vue:80
+msgid "%{ count } track matching combined filters"
+msgid_plural "%{ count } tracks matching combined filters"
+msgstr[0] "%{ count } spor samsvarer med kombinerte filter"
+msgstr[1] "%{ count } spor samsvarer med kombinerte filter"
+
+#: front/src/components/playlists/Card.vue:18
+msgid "%{ count} track"
+msgid_plural "%{ count } tracks"
+msgstr[0] "%{ count} spor"
+msgstr[1] "%{ count } spor"
+
+#: front/src/views/content/libraries/Quota.vue:11
+#, fuzzy
+msgid "%{ current } used on %{ max } allowed"
+msgstr "%{ current } brukt på %{ max } tillatt"
+
+#: front/src/components/common/Duration.vue:2
+msgid "%{ hours } h %{ minutes } min"
+msgstr "%{ hours } t %{ minutes } min"
+
+#: front/src/components/common/Duration.vue:5
+msgid "%{ minutes } min"
+msgstr "%{ minutes } min"
+
+#: front/src/components/activity/Like.vue:7
+msgid "%{ user } favorited a track"
+msgstr "%{ user } la til et spor som favoritt"
+
+#: front/src/components/activity/Listen.vue:7
+msgid "%{ user } listened to a track"
+msgstr "%{ user } lyttet til et spor"
+
+#: front/src/components/audio/artist/Card.vue:41
+#, fuzzy
+msgid "1 album"
+msgid_plural "%{ count } albums"
+msgstr[0] "Ett album"
+msgstr[1] "%{ count } album"
+
+#: front/src/components/favorites/List.vue:10
+msgid "1 favorite"
+msgid_plural "%{ count } favorites"
+msgstr[0] "Én favoritt"
+msgstr[1] "%{ count } favoritter"
+
+#: front/src/components/About.vue:5
+msgid "About %{ instance }"
+msgstr "Om %{ instance }"
+
+#: front/src/App.vue:53
+msgid "About Funkwhale"
+msgstr "Om Funkwhale"
+
+#: front/src/App.vue:34 src/components/About.vue:8 src/components/About.vue:55
+msgid "About this instance"
+msgstr "Om denne instansen"
+
+#: front/src/views/content/libraries/Detail.vue:48
+msgid "Accept"
+msgstr "Godta"
+
+#: front/src/views/content/libraries/Detail.vue:40
+msgid "Accepted"
+msgstr "Godtatt"
+
+#: front/src/components/Home.vue:106
+msgid "Access your music from a clean interface that focus on what really matters"
+msgstr ""
+"Få tilgang til din musikk fra et rent grensesnitt som fokuserer på det som "
+"virkelig betyr noe"
+
+#: front/src/views/admin/users/UsersDetail.vue:54
+#, fuzzy
+msgid "Account active"
+msgstr "Konto aktiv"
+
+#: front/src/components/auth/Settings.vue:5
+msgid "Account settings"
+msgstr "Kontoinnstillinger"
+
+#: front/src/components/manage/users/UsersTable.vue:39
+msgid "Account status"
+msgstr "Kontostatus"
+
+#: front/src/views/auth/PasswordReset.vue:14
+msgid "Account's email"
+msgstr "Kontoens e-post"
+
+#: front/src/views/content/libraries/Detail.vue:29
+msgid "Action"
+msgstr "Handling"
+
+#: front/src/components/common/ActionTable.vue:86
+#, fuzzy
+msgid "Action %{ action } was launched successfully on %{ count } element"
+msgid_plural "Action %{ action } was launched successfully on %{ count } elements"
+msgstr[0] "Handlingen %{ action } ble kjørt på %{ count } element"
+msgstr[1] "Handlingen %{ action } ble kjørt på %{ count } elementer"
+
+#: front/src/components/common/ActionTable.vue:8
+#: front/src/components/library/radios/Builder.vue:64
+msgid "Actions"
+msgstr "Handlinger"
+
+#: front/src/components/manage/users/UsersTable.vue:53
+#, fuzzy
+msgid "Active"
+msgstr "Aktiv"
+
+#: front/src/components/Sidebar.vue:75
+msgid "Activity"
+msgstr "Aktivitet"
+
+#: front/src/components/Sidebar.vue:78 src/views/content/Base.vue:19
+msgid "Add content"
+msgstr "Legg til innhold"
+
+#: front/src/components/library/radios/Builder.vue:50
+msgid "Add filter"
+msgstr "Legg til filter"
+
+#: front/src/components/library/radios/Builder.vue:40
+#, fuzzy
+msgid "Add filters to customize your radio"
+msgstr "Legg til filter for å tilpasse din radiostasjon"
+
+#: front/src/components/favorites/TrackFavoriteIcon.vue:4
+#: front/src/components/favorites/TrackFavoriteIcon.vue:21
+msgid "Add to favorites"
+msgstr "Legg til i favoritter"
+
+#: front/src/components/playlists/TrackPlaylistIcon.vue:6
+#: front/src/components/playlists/TrackPlaylistIcon.vue:32
+#, fuzzy
+msgid "Add to playlist..."
+msgstr "Legg til i spilleliste…"
+
+#: front/src/components/audio/PlayButton.vue:14
+msgid "Add to queue"
+msgstr "Legg til i kø"
+
+#: front/src/components/playlists/PlaylistModal.vue:54
+msgid "Add track"
+msgstr "Legg til spor"
+
+#: front/src/components/manage/users/UsersTable.vue:69
+msgid "Admin"
+msgstr "Administrator"
+
+#: front/src/components/Sidebar.vue:82
+msgid "Administration"
+msgstr "Administrasjon"
+
+#: front/src/components/audio/track/Table.vue:8
+#: front/src/components/manage/library/FilesTable.vue:39
+#: front/src/views/content/libraries/FilesTable.vue:53
+#: front/src/components/library/Album.vue:101 src/components/audio/SearchBar.vue:26
+#: front/src/components/metadata/Search.vue:134
+msgid "Album"
+msgstr "Album"
+
+#: front/src/components/library/Album.vue:12
+#, fuzzy
+msgid "Album containing %{ count } track, by %{ artist }"
+msgid_plural "Album containing %{ count } tracks, by %{ artist }"
+msgstr[0] "Album inneholdende %{ count } spor, av %{ artist }"
+msgstr[1] "Album inneholdende %{ count } spor, av %{ artist }"
+
+#: front/src/components/library/Track.vue:20
+msgid "Album page"
+msgstr "Albumside"
+
+#: front/src/components/audio/Search.vue:19 src/components/instance/Stats.vue:48
+#: front/src/components/requests/Form.vue:9
+msgid "Albums"
+msgstr "Album"
+
+#: front/src/components/library/Artist.vue:44
+msgid "Albums by this artist"
+msgstr "Album fra denne artisten"
+
+#: front/src/components/manage/users/InvitationsTable.vue:19
+#: front/src/views/content/libraries/FilesTable.vue:13
+msgid "All"
+msgstr "Alle"
+
+#: front/src/components/playlists/Editor.vue:13
+#, fuzzy
+msgid "An error occured while saving your changes"
+msgstr "Kunne ikke lagre endringer"
+
+#: front/src/components/auth/Login.vue:10
+#, fuzzy
+msgid "An unknown error happend, this can mean the server is down or cannot be reached"
+msgstr "Ukjent feil, tjeneren er nede eller kunne ikke nås"
+
+#: front/src/components/auth/Logout.vue:5
+msgid "Are you sure you want to log out?"
+msgstr "Er du sikker på at du vil logge ut?"
+
+#: front/src/components/audio/track/Table.vue:7
+#: front/src/components/manage/library/FilesTable.vue:38
+#: front/src/views/content/libraries/FilesTable.vue:52
+#: front/src/components/library/Artist.vue:129 src/components/audio/SearchBar.vue:25
+#: front/src/components/metadata/Search.vue:130
+msgid "Artist"
+msgstr "Artist"
+
+#: front/src/components/requests/Form.vue:5 src/components/mixins/Translations.vue:24
+msgid "Artist name"
+msgstr "Artistnavn"
+
+#: front/src/components/library/Album.vue:22 src/components/library/Track.vue:23
+msgid "Artist page"
+msgstr "Artistside"
+
+#: front/src/components/audio/Search.vue:10 src/components/instance/Stats.vue:42
+#: front/src/components/library/Library.vue:7 src/components/library/Artists.vue:120
+msgid "Artists"
+msgstr "Artister"
+
+#: front/src/components/favorites/List.vue:33 src/components/library/Artists.vue:25
+#: front/src/components/library/Radios.vue:44
+#: front/src/components/manage/library/FilesTable.vue:19
+#: front/src/components/manage/users/UsersTable.vue:19
+#: front/src/views/content/libraries/FilesTable.vue:31
+#: front/src/views/playlists/List.vue:27
+#, fuzzy
+msgid "Ascending"
+msgstr "Stigende"
+
+#: front/src/views/auth/PasswordReset.vue:27
+#, fuzzy
+msgid "Ask for a password reset"
+msgstr "Spør om tilbakestilling av passord"
+
+#: front/src/components/playlists/PlaylistModal.vue:26
+msgid "Available playlists"
+msgstr "Tilgjengelige spillelister"
+
+#: front/src/components/auth/Settings.vue:34
+msgid "Avatar"
+msgstr "Avatar"
+
+#: front/src/views/auth/EmailConfirm.vue:17 src/views/auth/PasswordReset.vue:24
+#: front/src/views/auth/PasswordResetConfirm.vue:18
+msgid "Back to login"
+msgstr "Tilbake til innlogging"
+
+#: front/src/components/library/Track.vue:80
+#: front/src/components/manage/library/FilesTable.vue:42
+#: front/src/components/mixins/Translations.vue:28
+msgid "Bitrate"
+msgstr "Bitrate"
+
+#: front/src/components/Sidebar.vue:18 src/components/library/Library.vue:4
+msgid "Browse"
+msgstr "Utforsk"
+
+#: front/src/components/Sidebar.vue:65
+msgid "Browse library"
+msgstr "Utforsk bibliotek"
+
+#: front/src/components/library/Artists.vue:4
+msgid "Browsing artists"
+msgstr "Utforsker artister"
+
+#: front/src/views/playlists/List.vue:3
+msgid "Browsing playlists"
+msgstr "Utforsker spillelister"
+
+#: front/src/components/library/Radios.vue:4
+#, fuzzy
+msgid "Browsing radios"
+msgstr "Utforsker radiostasjoner"
+
+#: front/src/components/library/radios/Builder.vue:5
+#, fuzzy
+msgid "Builder"
+msgstr "Bygger"
+
+#: front/src/components/audio/album/Card.vue:13
+msgid "By %{ artist }"
+msgstr "Av %{ artist }"
+
+#: front/src/views/content/remote/Card.vue:103
+msgid "By unfollowing this library, you will loose access to its content."
+msgstr ""
+"Ved å slutte å følge dette biblioteket, mister du tilgang til dets innhold."
+
+#: front/src/components/common/DangerousButton.vue:17
+#: front/src/components/library/radios/Filter.vue:53
+#: front/src/components/playlists/PlaylistModal.vue:63
+msgid "Cancel"
+msgstr "Avbryt"
+
+#: front/src/components/library/radios/Builder.vue:63
+msgid "Candidates"
+msgstr "Kandidater"
+
+#: front/src/components/auth/Settings.vue:76
+msgid "Cannot change your password"
+msgstr "Kan ikke endre passordet ditt"
+
+#: front/src/App.vue:65
+msgid "Change language"
+msgstr "Endre språk"
+
+#: front/src/components/auth/Settings.vue:67
+msgid "Change my password"
+msgstr "Endre mitt passord"
+
+#: front/src/components/auth/Settings.vue:95
+msgid "Change password"
+msgstr "Endre passord"
+
+#: front/src/views/auth/PasswordResetConfirm.vue:4
+#: front/src/views/auth/PasswordResetConfirm.vue:62
+msgid "Change your password"
+msgstr "Endre ditt passord"
+
+#: front/src/components/auth/Settings.vue:96
+msgid "Change your password?"
+msgstr "Endre passordet ditt?"
+
+#: front/src/components/playlists/Editor.vue:21
+msgid "Changes synced with server"
+msgstr "Endringer synkronisert med tjener"
+
+#: front/src/components/auth/Settings.vue:70
+#, fuzzy
+msgid "Changing your password will also change your Subsonic API password if you have requested one."
+msgstr ""
+"Endring av ditt passord endrer også ditt Subsonic API-passord, hvis du har "
+"skaffet deg det."
+
+#: front/src/components/auth/Settings.vue:98
+#, fuzzy
+msgid "Changing your password will have the following consequences"
+msgstr "Endring av passord har følgende konsekvenser:"
+
+#: front/src/App.vue:6
+msgid "Choose your instance"
+msgstr "Velg din instans"
+
+#: front/src/components/Home.vue:64
+msgid "Clean library"
+msgstr "Tøm bibliotek"
+
+#: front/src/components/manage/users/InvitationForm.vue:37
+msgid "Clear"
+msgstr "Tøm"
+
+#: front/src/components/playlists/Editor.vue:40
+#: front/src/components/playlists/Editor.vue:45
+msgid "Clear playlist"
+msgstr "Tøm spilleliste"
+
+#: front/src/components/Home.vue:44
+#, fuzzy
+msgid "Click once, listen for hours using built-in radios"
+msgstr "Klikk én gang, lytt i timevis ved bruk av innebygde radiostasjoner"
+
+#: front/src/components/library/FileUpload.vue:76
+#, fuzzy
+msgid "Click to select files to upload or drag and drop files or directories"
+msgstr ""
+"Klikk for å velge filer å laste opp, eller dra og slipp filer eller mapper"
+
+#: front/src/components/manage/users/InvitationForm.vue:26
+#: front/src/components/manage/users/InvitationsTable.vue:42
+msgid "Code"
+msgstr "Kode"
+
+#: front/src/components/audio/album/Card.vue:43
+#: front/src/components/audio/artist/Card.vue:33
+#: front/src/components/discussion/Comment.vue:20
+msgid "Collapse"
+msgstr "Fold sammen"
+
+#: front/src/components/requests/Form.vue:14
+msgid "Comment"
+msgstr "Kommenter"
+
+#: front/src/components/library/radios/Builder.vue:62
+msgid "Config"
+msgstr "Oppsett"
+
+#: front/src/components/common/DangerousButton.vue:21
+msgid "Confirm"
+msgstr "Bekreft"
+
+#: front/src/views/auth/EmailConfirm.vue:4 src/views/auth/EmailConfirm.vue:20
+#: front/src/views/auth/EmailConfirm.vue:51
+#, fuzzy
+msgid "Confirm your email"
+msgstr "Bekreft din e-postadresse"
+
+#: front/src/views/auth/EmailConfirm.vue:13
+msgid "Confirmation code"
+msgstr "Bekreftelseskode"
+
+#: front/src/components/common/CopyInput.vue:8
+msgid "Copy"
+msgstr "Kopier"
+
+#: front/src/components/Home.vue:85
+msgid "Covers, lyrics, our goal is to have them all ;)"
+msgstr "Omslag, sangtekster, vårt mål er å ha alle ;)"
+
+#: front/src/components/auth/Signup.vue:4
+#, fuzzy
+msgid "Create a funkwhale account"
+msgstr "Opprett en Funkwhale-konto"
+
+#: front/src/views/content/libraries/Home.vue:14
+msgid "Create a new library"
+msgstr "Opprett et nytt bibliotek"
+
+#: front/src/components/playlists/Form.vue:2
+msgid "Create a new playlist"
+msgstr "Opprett en ny spilleliste"
+
+#: front/src/components/Sidebar.vue:57 src/components/auth/Login.vue:17
+msgid "Create an account"
+msgstr "Opprett en konto"
+
+#: front/src/components/requests/Card.vue:25
+msgid "Create import"
+msgstr "Opprett import"
+
+#: front/src/views/content/libraries/Form.vue:26
+msgid "Create library"
+msgstr "Opprett bibliotek"
+
+#: front/src/components/auth/Signup.vue:51
+msgid "Create my account"
+msgstr "Lag konto"
+
+#: front/src/components/playlists/Form.vue:34
+msgid "Create playlist"
+msgstr "Opprett spilleliste"
+
+#: front/src/components/library/Radios.vue:23
+#, fuzzy
+msgid "Create your own radio"
+msgstr "Opprett din egen radiostasjon"
+
+#: front/src/components/manage/users/InvitationsTable.vue:40
+#: front/src/components/mixins/Translations.vue:17
+msgid "Creation date"
+msgstr "Opprettelsesdato"
+
+#: front/src/components/auth/Settings.vue:54
+msgid "Current avatar"
+msgstr "Nåærende avatar"
+
+#: front/src/views/content/libraries/DetailArea.vue:4
+msgid "Current library"
+msgstr "Nåværende bibliotek"
+
+#: front/src/components/playlists/PlaylistModal.vue:8
+msgid "Current track"
+msgstr "Nåværende spor"
+
+#: front/src/views/content/libraries/Quota.vue:2
+msgid "Current usage"
+msgstr "Nåværende bruk"
+
+#: front/src/views/content/libraries/Detail.vue:27
+msgid "Date"
+msgstr "Dato"
+
+#: front/src/views/content/libraries/Form.vue:29 src/views/playlists/Detail.vue:33
+#: front/src/components/manage/library/FilesTable.vue:190
+#: front/src/components/manage/users/InvitationsTable.vue:167
+#: front/src/views/content/libraries/FilesTable.vue:258
+msgid "Delete"
+msgstr "Slett"
+
+#: front/src/views/content/libraries/Form.vue:39
+msgid "Delete library"
+msgstr "Slett bibliotek"
+
+#: front/src/views/playlists/Detail.vue:38
+msgid "Delete playlist"
+msgstr "Slett spilleliste"
+
+#: front/src/views/radios/Detail.vue:28
+#, fuzzy
+msgid "Delete radio"
+msgstr "Slett radiostasjon"
+
+#: front/src/views/content/libraries/Form.vue:31
+msgid "Delete this library?"
+msgstr "Slett dette biblioteket?"
+
+#: front/src/components/favorites/List.vue:34 src/components/library/Artists.vue:26
+#: front/src/components/library/Radios.vue:47
+#: front/src/components/manage/library/FilesTable.vue:20
+#: front/src/components/manage/users/UsersTable.vue:20
+#: front/src/views/content/libraries/FilesTable.vue:32
+#: front/src/views/playlists/List.vue:28
+#, fuzzy
+msgid "Descending"
+msgstr "Synkende"
+
+#: front/src/components/library/radios/Builder.vue:25
+#: front/src/views/content/libraries/Form.vue:14
+msgid "Description"
+msgstr "Beskrivelse"
+
+#: front/src/views/content/libraries/Card.vue:47
+msgid "Detail"
+msgstr "Detalj"
+
+#: front/src/views/content/remote/Card.vue:50
+msgid "Details"
+msgstr "Detaljer"
+
+#: front/src/components/auth/Settings.vue:104
+#: front/src/components/auth/SubsonicTokenForm.vue:52
+#, fuzzy
+msgid "Disable access"
+msgstr "Skru av tilgang"
+
+#: front/src/components/auth/SubsonicTokenForm.vue:49
+#, fuzzy
+msgid "Disable Subsonic access"
+msgstr "Skru av Subsonic-tilgang"
+
+#: front/src/components/auth/SubsonicTokenForm.vue:50
+#, fuzzy
+msgid "Disable Subsonic API access?"
+msgstr "Skru av Subsonic API-tilgang?"
+
+#: front/src/components/auth/SubsonicTokenForm.vue:14
+msgid "Discover how to use Funkwhale from other apps"
+msgstr "Oppdag hvordan du bruker Funkwhale fra andre programmer"
+
+#: front/src/components/library/radios/Builder.vue:30
+msgid "Display publicly"
+msgstr "Vis offentlig"
+
+#: front/src/components/playlists/Editor.vue:42
+msgid "Do you want to clear the playlist \"%{ playlist }\"?"
+msgstr "Ønsker du å tømme spillelisten \"%{ playlist }\"?"
+
+#: front/src/components/common/DangerousButton.vue:7
+msgid "Do you want to confirm this action?"
+msgstr "Ønsker du å bekrefte denne handlingen?"
+
+#: front/src/views/playlists/Detail.vue:35
+msgid "Do you want to delete the playlist \"%{ playlist }\"?"
+msgstr "Ønsker du å slette spillelisten \"%{ playlist }\"?"
+
+#: front/src/views/radios/Detail.vue:26
+msgid "Do you want to delete the radio \"%{ radio }\"?"
+msgstr "Ønsker du å slette radiostasjonen \"%{ radio }\"?"
+
+#: front/src/components/common/ActionTable.vue:29
+#, fuzzy
+msgid "Do you want to launch %{ action } on %{ count } element?"
+msgid_plural "Do you want to launch %{ action } on %{ count } elements?"
+msgstr[0] "Ønsker du å utføre %{ action } på %{ count } element?"
+msgstr[1] "Ønsker du å utføre %{ action } på %{ count } elementer?"
+
+#: front/src/components/Sidebar.vue:104
+#, fuzzy
+msgid "Do you want to restore your previous queue?"
+msgstr "Ønsker du å gjenopprette din tidligere spillekø?"
+
+#: front/src/App.vue:37
+msgid "Documentation"
+msgstr "Dokumentasjon"
+
+#: front/src/components/library/Track.vue:48
+msgid "Download"
+msgstr "Last ned"
+
+#: front/src/components/playlists/Editor.vue:49
+msgid "Drag and drop rows to reorder tracks in the playlist"
+msgstr "Dra og slipp rader for å endre sporrekkefølge i spillelisten"
+
+#: front/src/components/audio/track/Table.vue:9 src/components/library/Track.vue:58
+#: front/src/components/manage/library/FilesTable.vue:43
+#: front/src/views/content/libraries/FilesTable.vue:56
+#: front/src/components/mixins/Translations.vue:29
+msgid "Duration"
+msgstr "Varighet"
+
+#: front/src/components/Home.vue:93
+msgid "Easy to use"
+msgstr "Enkelt å bruke"
+
+#: front/src/views/content/libraries/Detail.vue:9
+msgid "Edit"
+msgstr "Rediger"
+
+#: front/src/components/About.vue:21
+msgid "Edit instance info"
+msgstr "Rediger instans-info"
+
+#: front/src/components/radios/Card.vue:22 src/views/playlists/Detail.vue:30
+#, fuzzy
+msgid "Edit..."
+msgstr "Rediger…"
+
+#: front/src/components/auth/Signup.vue:29
+#: front/src/components/manage/users/UsersTable.vue:38
+#, fuzzy
+msgid "Email"
+msgstr "E-postadresse"
+
+#: front/src/views/admin/users/UsersDetail.vue:29
+#, fuzzy
+msgid "Email address"
+msgstr "E-postadresse"
+
+#: front/src/views/auth/EmailConfirm.vue:23
+#, fuzzy
+msgid "Email confirmed"
+msgstr "E-postadresse bekreftet"
+
+#: front/src/views/playlists/Detail.vue:29
+#, fuzzy
+msgid "End edition"
+msgstr "Sluttversjon"
+
+#: front/src/components/auth/SubsonicTokenForm.vue:20
+#: front/src/views/content/libraries/Form.vue:4
+msgid "Error"
+msgstr "Feil"
+
+#: front/src/views/content/remote/Card.vue:39
+msgid "Error during scan"
+msgstr "Feil under skanning"
+
+#: front/src/components/common/ActionTable.vue:79
+#, fuzzy
+msgid "Error while applying action"
+msgstr "Kunne ikke legge til handling"
+
+#: front/src/views/auth/PasswordReset.vue:7
+#, fuzzy
+msgid "Error while asking for a password reset"
+msgstr "Klarte ikke å forespørre passordtilbakestilling"
+
+#: front/src/views/auth/PasswordResetConfirm.vue:7
+#, fuzzy
+msgid "Error while changing your password"
+msgstr "Kunne ikke endre passordet"
+
+#: front/src/views/auth/EmailConfirm.vue:7
+#, fuzzy
+msgid "Error while confirming your email"
+msgstr "Kunne ikke bekrefte e-postadresse"
+
+#: front/src/components/manage/users/InvitationForm.vue:4
+#, fuzzy
+msgid "Error while creating invitation"
+msgstr "Kunne ikke opprette invitasjon"
+
+#: front/src/views/content/remote/ScanForm.vue:3
+#, fuzzy
+msgid "Error while fetching remote library"
+msgstr "Klarte ikke å hente bibliotek annensteds hen"
+
+#: front/src/components/admin/SettingsGroup.vue:5
+msgid "Error while saving settings"
+msgstr "Kunne ikke lagre innstillinger"
+
+#: front/src/views/content/libraries/FilesTable.vue:16
+#: front/src/views/content/libraries/FilesTable.vue:237
+#, fuzzy
+msgid "Errored"
+msgstr "Feilede"
+
+#: front/src/views/content/libraries/Quota.vue:75
+#, fuzzy
+msgid "Errored files"
+msgstr "Feilaktige filer"
+
+#: front/src/views/content/remote/Card.vue:58
+#, fuzzy
+msgid "Errored tracks:"
+msgstr "Feilaktige spor:"
+
+#: front/src/components/library/radios/Builder.vue:61
+msgid "Exclude"
+msgstr "Ekskluder"
+
+#: front/src/components/discussion/Comment.vue:14
+msgid "Expand"
+msgstr "Utvid"
+
+#: front/src/components/manage/users/InvitationsTable.vue:41
+#: front/src/components/mixins/Translations.vue:21
+msgid "Expiration date"
+msgstr "Utløpsdato"
+
+#: front/src/components/manage/users/InvitationsTable.vue:50
+#, fuzzy
+msgid "Expired"
+msgstr "Utløpt"
+
+#: front/src/components/manage/users/InvitationsTable.vue:21
+msgid "Expired/used"
+msgstr "Utløpt/brukt"
+
+#: front/src/components/Sidebar.vue:66
+msgid "Favorites"
+msgstr "Favoritter"
+
+#: front/src/components/library/FileUpload.vue:83
+#, fuzzy
+msgid "File name"
+msgstr "Filnavn"
+
+#: front/src/views/admin/library/Base.vue:5 src/views/admin/library/FilesList.vue:21
+msgid "Files"
+msgstr "Filer"
+
+#: front/src/components/library/radios/Builder.vue:60
+msgid "Filter name"
+msgstr "Filternavn"
+
+#: front/src/views/content/libraries/FilesTable.vue:17
+#: front/src/views/content/libraries/FilesTable.vue:241
+msgid "Finished"
+msgstr "Fullført"
+
+#: front/src/views/content/remote/Card.vue:83
+msgid "Follow"
+msgstr "Følg"
+
+#: front/src/views/content/remote/Card.vue:88
+msgid "Follow pending approval"
+msgstr "Følging avventer samtykke"
+
+#: front/src/views/content/Home.vue:16
+msgid "Follow remote libraries"
+msgstr "Følg bibliotek annensteds hen"
+
+#: front/src/views/content/libraries/Detail.vue:7
+msgid "Followers"
+msgstr "Følgere"
+
+#: front/src/views/content/remote/Card.vue:93
+msgid "Following"
+msgstr "Følger"
+
+#: front/src/components/activity/Like.vue:14 src/components/activity/Listen.vue:14
+#, fuzzy
+msgid "from %{ album } by %{ artist }"
+msgstr "fra %{ album } av %{ artist }"
+
+#: front/src/components/library/Track.vue:13
+#, fuzzy
+msgid "From album %{ album } by %{ artist }"
+msgstr "Fra album %{ album } av %{ artist }"
+
+#: front/src/App.vue:55
+#, fuzzy
+msgid "Funkwhale is a free and open-source project run by volunteers. You can help us improve the platform by reporting bugs, suggesting features and share the project with your friends!"
+msgstr ""
+"Funkwhale er ett fritt programvareprosjekt drevet av frivillige. Du kan "
+"forbedre plattformen ved å innrapportere feil, foreslå funksjoner og dele "
+"det med dine venner."
+
+#: front/src/components/auth/SubsonicTokenForm.vue:7
+msgid "Funkwhale is compatible with other music players that support the Subsonic API."
+msgstr ""
+"Funkwhale er kompatibelt med andre musikkspillere som støtter Subsonic API-"
+"et."
+
+#: front/src/components/Home.vue:95
+#, fuzzy
+msgid "Funkwhale is dead simple to use."
+msgstr "Funkwhale er dødsenkelt å bruke."
+
+#: front/src/components/Home.vue:39
+msgid "Funkwhale is designed to make it easy to listen to music you like, or to discover new artists."
+msgstr ""
+"Funkwhale er designet for å gjøre det enkelt å lytte til musikk dun liker, "
+"eller å oppdage nye artister."
+
+#: front/src/components/Home.vue:116
+#, fuzzy
+msgid "Funkwhale is free and gives you control on your music."
+msgstr "Funkwhale er fritt og gir deg kontroll over din musikk."
+
+#: front/src/components/Home.vue:66
+msgid "Funkwhale takes care of handling your music"
+msgstr "Funkwhale påtar seg håndtering av din musikk"
+
+#: front/src/components/manage/users/InvitationForm.vue:16
+msgid "Get a new invitation"
+msgstr "FÃ¥ en invitasjon"
+
+#: front/src/components/Home.vue:13
+msgid "Get me to the library"
+msgstr "Send meg til biblioteket"
+
+#: front/src/components/Home.vue:76
+msgid "Get quality metadata about your music thanks to <a href=\"%{ url }\" target=\"_blank\">MusicBrainz</a>"
+msgstr ""
+"Hent kvalitetsmetadata om din musikk takket være <a href=\"%{ url }\" target="
+"\"_blank\">MusicBrainz</a>"
+
+#: front/src/views/content/Home.vue:12 src/views/content/Home.vue:19
+#, fuzzy
+msgid "Get started"
+msgstr "Kom igang"
+
+#: front/src/components/common/ActionTable.vue:21
+#: front/src/components/common/ActionTable.vue:27
+msgid "Go"
+msgstr "Kjør"
+
+#: front/src/components/PageNotFound.vue:14
+msgid "Go to home page"
+msgstr "GÃ¥ til hjemmesiden"
+
+#: front/src/App.vue:73
+#, fuzzy
+msgid "Help us translate Funkwhale"
+msgstr "Hjelp til i oversettelsen av Funkwhale"
+
+#: front/src/components/instance/Stats.vue:36
+msgid "Hours of music"
+msgstr "Timevis med musikk"
+
+#: front/src/components/auth/SubsonicTokenForm.vue:11
+#, fuzzy
+msgid "However, accessing Funkwhale from those clients require a separate password you can set below."
+msgstr ""
+"Dog vil tilgang til Funkwhale fra disse klientene kreve et eget passord du "
+"kan sette nedenfor."
+
+#: front/src/views/auth/PasswordResetConfirm.vue:24
+#, fuzzy
+msgid "If the email address provided in the previous step is valid and binded to a user account, you should receive an email with reset instructions in the next couple of minutes."
+msgstr ""
+"Hvis e-postadressen oppgitt i forrige steg er gyldig og bundet til en "
+"brukerkonto, bør du motta en e-post med tilbakestillingsinstruksjoner i "
+"løpet av et par minutter."
+
+#: front/src/components/manage/library/FilesTable.vue:40
+msgid "Import date"
+msgstr "Importdato"
+
+#: front/src/components/Home.vue:71
+msgid "Import music from various platforms, such as YouTube or SoundCloud"
+msgstr ""
+"Importer musikk fra forskjellige plattformer, som YouTube eller SoundCloud"
+
+#: front/src/components/library/FileUpload.vue:51
+msgid "Import reference"
+msgstr "Importer referanse"
+
+#: front/src/views/content/libraries/FilesTable.vue:11
+#: front/src/views/content/libraries/FilesTable.vue:55
+msgid "Import status"
+msgstr "Importer status"
+
+#: front/src/components/favorites/TrackFavoriteIcon.vue:3
+msgid "In favorites"
+msgstr "I favoritter"
+
+#: front/src/components/manage/users/UsersTable.vue:54
+msgid "Inactive"
+msgstr "Inaktiv"
+
+#: front/src/components/playlists/Editor.vue:31
+#, fuzzy
+msgid "Insert from queue (%{ count } track)"
+msgid_plural "Insert from queue (%{ count } tracks)"
+msgstr[0] "Sett inn (%{ count } track) fra spillekø"
+msgstr[1] "Sett inn (%{ count } track) fra spillekø"
+
+#: front/src/components/library/Radios.vue:9
+msgid "Instance radios"
+msgstr "Instansradiostasjoner"
+
+#: front/src/components/auth/Signup.vue:42
+#: front/src/components/manage/users/InvitationForm.vue:11
+msgid "Invitation code"
+msgstr "Invitasjonskode"
+
+#: front/src/components/auth/Signup.vue:43
+msgid "Invitation code (optional)"
+msgstr "Invitasjonskode (valgfritt)"
+
+#: front/src/views/admin/users/Base.vue:8 src/views/admin/users/InvitationsList.vue:3
+#: front/src/views/admin/users/InvitationsList.vue:24
+msgid "Invitations"
+msgstr "Invitasjoner"
+
+#: front/src/App.vue:42
+msgid "Issue tracker"
+msgstr "Feilsporer"
+
+#: front/src/views/content/libraries/Home.vue:9
+#, fuzzy
+msgid "It looks like you don't have any library yet, it's time to create one!"
+msgstr "Det ser ut til at du ikke har et bibliotek enda, på tide å laget et."
+
+#: front/src/components/Home.vue:50
+#, fuzzy
+msgid "Keep a track of your favorite songs"
+msgstr "Behold et spor av dine favorittsanger"
+
+#: front/src/views/content/remote/Home.vue:14
+msgid "Known libraries"
+msgstr "Kjente bibliotek"
+
+#: front/src/components/manage/users/UsersTable.vue:41
+#: front/src/views/admin/users/UsersDetail.vue:45
+#: front/src/components/mixins/Translations.vue:31
+msgid "Last activity"
+msgstr "Siste aktivitet"
+
+#: front/src/components/playlists/PlaylistModal.vue:32
+msgid "Last modification"
+msgstr "Siste endring"
+
+#: front/src/views/content/remote/Card.vue:56
+#, fuzzy
+msgid "Last update:"
+msgstr "Siste oppdatering:"
+
+#: front/src/components/common/ActionTable.vue:40
+msgid "Launch"
+msgstr "Kjør"
+
+#: front/src/views/content/remote/Card.vue:63
+msgid "Launch scan"
+msgstr "Kjør skanning"
+
+#: front/src/components/Home.vue:10
+msgid "Learn more about this instance"
+msgstr "Lær mer om denne instansen"
+
+#: front/src/components/requests/Form.vue:10
+msgid "Leave this field empty if you're requesting the whole discography."
+msgstr "La dette feltet stå tomt hvis du forespør hele diskografien."
+
+#: front/src/views/content/Base.vue:5
+msgid "Libraries"
+msgstr "Bibliotek"
+
+#: front/src/views/content/libraries/Form.vue:2
+msgid "Libraries help you organize and share your music collections. You can upload your own music collection to Funkwhale and share it with your friends and family."
+msgstr ""
+"Bibliotek lar deg organisere og dele dine musikksamlinger. DU kan laste opp "
+"din egen musikksamling til Funkwhale og dele den med dine venner og familie."
+
+#: front/src/components/instance/Stats.vue:30
+#: front/src/components/manage/users/UsersTable.vue:177
+#: front/src/views/admin/users/UsersDetail.vue:181
+msgid "Library"
+msgstr "Bibliotek"
+
+#: front/src/views/admin/library/FilesList.vue:3
+msgid "Library files"
+msgstr "Bibliotekfiler"
+
+#: front/src/App.vue:31
+msgid "Links"
+msgstr "Lenker"
+
+#: front/src/views/content/libraries/Detail.vue:21
+#, fuzzy
+msgid "Loading followers..."
+msgstr "Laster følgere…"
+
+#: front/src/views/content/libraries/Home.vue:3
+#, fuzzy
+msgid "Loading Libraries..."
+msgstr "Laster bibliotek…"
+
+#: front/src/views/content/libraries/Detail.vue:3
+#: front/src/views/content/libraries/Upload.vue:3
+#, fuzzy
+msgid "Loading library data..."
+msgstr "Laster biblioteksdata…"
+
+#: front/src/views/Notifications.vue:4
+msgid "Loading notifications..."
+msgstr "Laster merknader…"
+
+#: front/src/views/content/remote/Home.vue:3
+#, fuzzy
+msgid "Loading remote libraries..."
+msgstr "Laster fjernbibliotek…"
+
+#: front/src/views/instance/Timeline.vue:4
+#, fuzzy
+msgid "Loading timeline..."
+msgstr "Laster tidslinje…"
+
+#: front/src/views/content/libraries/Quota.vue:4
+msgid "Loading usage data..."
+msgstr "Laster brukdsdata…"
+
+#: front/src/components/favorites/List.vue:5
+msgid "Loading your favorites..."
+msgstr "Laster dine favoritter…"
+
+#: front/src/components/auth/Login.vue:4
+msgid "Log in to your Funkwhale account"
+msgstr "Logg inn på din Funkwhale-konto"
+
+#: front/src/components/Sidebar.vue:38
+msgid "Logged in as %{ username }"
+msgstr "Innlogget som % { username }"
+
+#: front/src/components/Sidebar.vue:54 src/components/auth/Login.vue:41
+#, fuzzy
+msgid "Login"
+msgstr "Logg inn"
+
+#: front/src/components/Sidebar.vue:52
+#, fuzzy
+msgid "Logout"
+msgstr "Logg ut"
+
+#: front/src/components/library/Track.vue:105
+msgid "Lyrics"
+msgstr "Sangtekster"
+
+#: front/src/components/playlists/PlaylistModal.vue:3
+msgid "Manage playlists"
+msgstr "Behandle spillelister"
+
+#: front/src/views/playlists/List.vue:8
+msgid "Manage your playlists"
+msgstr "Behandle dine spillelister"
+
+#: front/src/views/Notifications.vue:17
+msgid "Mark all as read"
+msgstr "Marker alle som lest"
+
+#: front/src/views/admin/users/UsersDetail.vue:94
+msgid "MB"
+msgstr "MB"
+
+#: front/src/components/Sidebar.vue:63
+msgid "Music"
+msgstr "Musikk"
+
+#: front/src/components/Sidebar.vue:34
+msgid "My account"
+msgstr "Min konto"
+
+#: front/src/views/content/libraries/Home.vue:6
+msgid "My libraries"
+msgstr "Mine bibliotek"
+
+#: front/src/components/audio/track/Row.vue:40 src/components/library/Track.vue:64
+#: front/src/components/library/Track.vue:75 src/components/library/Track.vue:86
+#: front/src/components/library/Track.vue:97
+#: front/src/components/manage/library/FilesTable.vue:63
+#: front/src/components/manage/library/FilesTable.vue:69
+#: front/src/components/manage/library/FilesTable.vue:75
+#: front/src/components/manage/library/FilesTable.vue:81
+#: front/src/components/manage/users/UsersTable.vue:61
+#: front/src/views/admin/users/UsersDetail.vue:49
+#: front/src/views/content/libraries/FilesTable.vue:89
+#: front/src/views/content/libraries/FilesTable.vue:95
+msgid "N/A"
+msgstr "I/T"
+
+#: front/src/components/playlists/PlaylistModal.vue:31
+#: front/src/views/admin/users/UsersDetail.vue:21
+#: front/src/views/content/libraries/Form.vue:10
+#: front/src/components/mixins/Translations.vue:25
+msgid "Name"
+msgstr "Navn"
+
+#: front/src/components/auth/Settings.vue:88
+#: front/src/views/auth/PasswordResetConfirm.vue:14
+msgid "New password"
+msgstr "Nytt passord"
+
+#: front/src/components/Sidebar.vue:149
+#, fuzzy
+msgid "New tracks will be appended here automatically."
+msgstr "Nye spor vil bli lagt til her automatisk."
+
+#: front/src/components/Sidebar.vue:116
+msgid "No"
+msgstr "Nei"
+
+#: front/src/components/Home.vue:100
+#, fuzzy
+msgid "No add-ons, no plugins : you only need a web library"
+msgstr "Ingen tillegg, ingen programtillegg: Du trenger kun et nettbibliotek."
+
+#: front/src/components/library/Track.vue:113
+msgid "No lyrics available for this track."
+msgstr "Ingen sangtekster tilgjengelig for dette sporet."
+
+#: front/src/components/federation/LibraryWidget.vue:6
+msgid "No matching library."
+msgstr "Inget samsvarende bibliotek."
+
+#: front/src/views/content/libraries/Detail.vue:57
+msgid "Nobody is following this library"
+msgstr "Ingen følger dette bibioteket"
+
+#: front/src/components/manage/users/InvitationsTable.vue:51
+msgid "Not used"
+msgstr "Ikke brukt"
+
+#: front/src/components/Sidebar.vue:46 src/views/Notifications.vue:74
+msgid "Notifications"
+msgstr "Merknader"
+
+#: front/src/App.vue:36
+msgid "Official website"
+msgstr "Offisiell nettside"
+
+#: front/src/components/auth/Settings.vue:83
+msgid "Old password"
+msgstr "Gammelt passord"
+
+#: front/src/components/manage/users/InvitationsTable.vue:20
+#, fuzzy
+msgid "Open"
+msgstr "Ã…pen"
+
+#: front/src/App.vue:62
+msgid "Options"
+msgstr "Valg"
+
+#: front/src/components/favorites/List.vue:23 src/components/library/Artists.vue:15
+#: front/src/components/library/Radios.vue:33
+#: front/src/components/manage/library/FilesTable.vue:9
+#: front/src/components/manage/users/InvitationsTable.vue:9
+#: front/src/components/manage/users/UsersTable.vue:9
+#: front/src/views/content/libraries/FilesTable.vue:21
+#: front/src/views/playlists/List.vue:17
+#, fuzzy
+msgid "Ordering"
+msgstr "Rekkefølge"
+
+#: front/src/components/favorites/List.vue:31 src/components/library/Artists.vue:23
+#: front/src/components/library/Radios.vue:41
+#: front/src/components/manage/library/FilesTable.vue:17
+#: front/src/components/manage/users/UsersTable.vue:17
+#: front/src/views/content/libraries/FilesTable.vue:29
+#: front/src/views/playlists/List.vue:25
+#, fuzzy
+msgid "Ordering direction"
+msgstr "Rekkefølge"
+
+#: front/src/components/manage/users/InvitationsTable.vue:38
+msgid "Owner"
+msgstr "Eier"
+
+#: front/src/components/PageNotFound.vue:7
+msgid "Page not found!"
+msgstr "Fant ikke siden."
+
+#: front/src/components/auth/Login.vue:32 src/components/auth/Signup.vue:38
+msgid "Password"
+msgstr "Passord"
+
+#: front/src/views/auth/PasswordResetConfirm.vue:28
+#, fuzzy
+msgid "Password updated successfully"
+msgstr "Passord oppdatert"
+
+#: front/src/components/library/FileUpload.vue:105
+#: front/src/views/content/libraries/FilesTable.vue:14
+#: front/src/views/content/libraries/FilesTable.vue:233
+msgid "Pending"
+msgstr "Ventende"
+
+#: front/src/views/content/libraries/Detail.vue:37
+msgid "Pending approval"
+msgstr "I påvente av godkjennelse"
+
+#: front/src/views/content/libraries/Quota.vue:22
+msgid "Pending files"
+msgstr "Ventende filer"
+
+#: front/src/components/requests/Form.vue:26
+msgid "Pending requests"
+msgstr "Ventende forespørsler"
+
+#: front/src/components/manage/users/UsersTable.vue:42
+#: front/src/views/admin/users/UsersDetail.vue:68
+msgid "Permissions"
+msgstr "Tilganger"
+
+#: front/src/components/audio/PlayButton.vue:9 src/components/library/Track.vue:30
+msgid "Play"
+msgstr "Spill av"
+
+#: front/src/components/audio/album/Card.vue:50
+#: front/src/components/audio/artist/Card.vue:44 src/components/library/Album.vue:28
+#: front/src/views/playlists/Detail.vue:23
+msgid "Play all"
+msgstr "Spill av alle"
+
+#: front/src/components/library/Artist.vue:26
+msgid "Play all albums"
+msgstr "Spill av alle album"
+
+#: front/src/components/audio/PlayButton.vue:15
+msgid "Play next"
+msgstr "Spill neste"
+
+#: front/src/components/audio/PlayButton.vue:16
+msgid "Play now"
+msgstr "Spill nå"
+
+#: front/src/views/playlists/Detail.vue:12
+msgid "Playlist containing %{ count } track, by %{ username }"
+msgid_plural "Playlist containing %{ count } tracks, by %{ username }"
+msgstr[0] "Spilleliste inneholdende %{ count } spor, av %{ username }"
+msgstr[1] "Spilleliste inneholdende %{ count } spor, av %{ username }"
+
+#: front/src/components/playlists/Form.vue:9
+msgid "Playlist created"
+msgstr "Spilleliste opprettet"
+
+#: front/src/components/playlists/Editor.vue:4
+#, fuzzy
+msgid "Playlist editor"
+msgstr "Spillelisteredigering"
+
+#: front/src/components/playlists/Form.vue:21
+msgid "Playlist name"
+msgstr "Spillelistenavn"
+
+#: front/src/components/playlists/Form.vue:6
+msgid "Playlist updated"
+msgstr "Spilleliste oppdatert"
+
+#: front/src/components/playlists/Form.vue:25
+msgid "Playlist visibility"
+msgstr "Spillelistesynlighet"
+
+#: front/src/components/Sidebar.vue:71 src/components/library/Home.vue:16
+#: front/src/components/library/Library.vue:13 src/views/playlists/List.vue:104
+#: front/src/views/admin/Settings.vue:82
+msgid "Playlists"
+msgstr "Spillelister"
+
+#: front/src/components/Home.vue:56
+msgid "Playlists? We got them"
+msgstr "Spillelister? Vi har dem"
+
+#: front/src/components/auth/Settings.vue:79
+msgid "Please double-check your password is correct"
+msgstr "Dobbeltsjekk at passordet ditt stemmer"
+
+#: front/src/components/auth/Login.vue:9
+msgid "Please double-check your username/password couple is correct"
+msgstr "Dobbeltsjekk at brukernavnet/passordet ditt stemmer"
+
+#: front/src/components/auth/Settings.vue:46
+msgid "PNG, GIF or JPG. At most 2MB. Will be downscaled to 400x400px."
+msgstr "PNG, GIF eller JPG. Høyst 2MB. Vil bli nedskalert til 400x400px."
+
+#: front/src/components/library/FileUpload.vue:58
+msgid "Proceed"
+msgstr "Fortsett"
+
+#: front/src/views/auth/EmailConfirm.vue:26
+#: front/src/views/auth/PasswordResetConfirm.vue:31
+msgid "Proceed to login"
+msgstr "Fortsett til innlogging"
+
+#: front/src/components/library/FileUpload.vue:17
+msgid "Processing"
+msgstr "Behandler"
+
+#: front/src/views/content/libraries/Quota.vue:36
+#: front/src/views/content/libraries/Quota.vue:39
+#: front/src/views/content/libraries/Quota.vue:62
+#: front/src/views/content/libraries/Quota.vue:65
+#: front/src/views/content/libraries/Quota.vue:88
+#: front/src/views/content/libraries/Quota.vue:91
+#, fuzzy
+msgid "Purge"
+msgstr "Fjern"
+
+#: front/src/views/content/libraries/Quota.vue:89
+#, fuzzy
+msgid "Purge errored files?"
+msgstr "Fjern feilaktige filer?"
+
+#: front/src/views/content/libraries/Quota.vue:37
+#, fuzzy
+msgid "Purge pending files?"
+msgstr "Fjern ventende filer?"
+
+#: front/src/views/content/libraries/Quota.vue:63
+#, fuzzy
+msgid "Purge skipped files?"
+msgstr "Fjern ignorerte filer?"
+
+#: front/src/components/Sidebar.vue:20
+#, fuzzy
+msgid "Queue"
+msgstr "Kø"
+
+#: front/src/components/library/radios/Builder.vue:15
+#, fuzzy
+msgid "Radio created"
+msgstr "Radiostasjon opprettet"
+
+#: front/src/components/library/radios/Builder.vue:21
+#, fuzzy
+msgid "Radio name"
+msgstr "Radiostasjonsnavn"
+
+#: front/src/components/library/radios/Builder.vue:12
+#, fuzzy
+msgid "Radio updated"
+msgstr "Radiostasjon oppdatert"
+
+#: front/src/components/library/Library.vue:10 src/components/library/Radios.vue:142
+#, fuzzy
+msgid "Radios"
+msgstr "Radiostasjoner"
+
+#: front/src/views/instance/Timeline.vue:7
+msgid "Recent activity on this instance"
+msgstr "Nylig aktivitet på denne instansen"
+
+#: front/src/components/library/Home.vue:24
+msgid "Recently added"
+msgstr "Nylig lagt til"
+
+#: front/src/components/library/Home.vue:11
+msgid "Recently favorited"
+msgstr "Nylig favorisert"
+
+#: front/src/components/library/Home.vue:6
+msgid "Recently listened"
+msgstr "Nylig lyttet til"
+
+#: front/src/views/admin/users/UsersDetail.vue:103
+#: front/src/views/content/remote/Home.vue:15
+msgid "Refresh"
+msgstr "Gjenoppfrisk"
+
+#: front/src/components/auth/Profile.vue:12
+msgid "Registered since %{ date }"
+msgstr "Registrert siden %{ date }"
+
+#: front/src/components/auth/Signup.vue:9
+#, fuzzy
+msgid "Registration are closed on this instance, you will need an invitation code to signup."
+msgstr ""
+"Registreringer er lukket på denne instansen, du trenger en invitasjonskode "
+"for å registrere deg."
+
+#: front/src/components/manage/users/UsersTable.vue:71
+msgid "regular user"
+msgstr "vanlig bruker"
+
+#: front/src/views/content/libraries/Detail.vue:51
+msgid "Reject"
+msgstr "Avslå"
+
+#: front/src/views/content/libraries/Detail.vue:43
+msgid "Rejected"
+msgstr "Avslått"
+
+#: front/src/views/content/remote/Home.vue:6
+msgid "Remote libraries"
+msgstr "Bibliotek annensteds hen"
+
+#: front/src/views/content/remote/Home.vue:7
+msgid "Remote libraries are owned by other users on the network. You can access them as long as they are public or you are granted access."
+msgstr ""
+"Bibliotek annensteds hen eies av andre brukere på nettverket. Du kan få "
+"tilgang til dem så lenge de er offentlige eller du innvilges tilgang."
+
+#: front/src/components/library/radios/Filter.vue:59
+msgid "Remove"
+msgstr "Fjern"
+
+#: front/src/components/auth/Settings.vue:58
+msgid "Remove avatar"
+msgstr "Fjern avatar"
+
+#: front/src/components/auth/SubsonicTokenForm.vue:34
+#: front/src/components/auth/SubsonicTokenForm.vue:37
+msgid "Request a new password"
+msgstr "Forespør nytt passord"
+
+#: front/src/components/auth/SubsonicTokenForm.vue:35
+msgid "Request a new Subsonic API password?"
+msgstr "Forespør et nytt Subsonic API-passord?"
+
+#: front/src/components/auth/SubsonicTokenForm.vue:43
+msgid "Request a password"
+msgstr "Forespør et passord"
+
+#: front/src/components/requests/Form.vue:20
+#, fuzzy
+msgid "Request submitted!"
+msgstr "Forespørsel innsendt"
+
+#: front/src/components/auth/Login.vue:34 src/views/auth/PasswordReset.vue:4
+msgid "Reset your password"
+msgstr "Tilbakestill passordet ditt"
+
+#: front/src/components/favorites/List.vue:38 src/components/library/Artists.vue:30
+#: front/src/components/library/Radios.vue:52 src/views/playlists/List.vue:32
+msgid "Results per page"
+msgstr "Resultater per side"
+
+#: front/src/components/admin/SettingsGroup.vue:63
+#: front/src/components/library/radios/Builder.vue:33
+msgid "Save"
+msgstr "Lagre"
+
+#: front/src/views/content/remote/Card.vue:31
+msgid "Scan pending"
+msgstr "Skanning venter"
+
+#: front/src/views/content/remote/Card.vue:43
+#, fuzzy
+msgid "Scanned successfully"
+msgstr "Skannet"
+
+#: front/src/views/content/remote/Card.vue:47
+msgid "Scanned with errors"
+msgstr "Skannet med feil"
+
+#: front/src/views/content/remote/Card.vue:35
+#, fuzzy
+msgid "Scanning... (%{ progress }%)"
+msgstr "Skanner… (%{ progress }%)"
+
+#: front/src/components/library/Artists.vue:10 src/components/library/Radios.vue:29
+#: front/src/components/manage/library/FilesTable.vue:5
+#: front/src/components/manage/users/InvitationsTable.vue:5
+#: front/src/components/manage/users/UsersTable.vue:5
+#: front/src/views/content/libraries/FilesTable.vue:5 src/views/playlists/List.vue:13
+msgid "Search"
+msgstr "Søk"
+
+#: front/src/views/content/remote/ScanForm.vue:9
+#, fuzzy
+msgid "Search a remote library"
+msgstr "Søk i et bibliotek annensteds hen"
+
+#: front/src/components/audio/Search.vue:2
+msgid "Search for some music"
+msgstr "Søk etter noe musikk"
+
+#: front/src/components/library/Track.vue:116
+msgid "Search on lyrics.wikia.com"
+msgstr "Søk på lyrics.wikia.com"
+
+#: front/src/components/library/Album.vue:33 src/components/library/Artist.vue:31
+#: front/src/components/library/Track.vue:40
+msgid "Search on Wikipedia"
+msgstr "Søk på Wikipedia"
+
+#: front/src/views/admin/Settings.vue:15
+#, fuzzy
+msgid "Sections"
+msgstr "Seksjoner"
+
+#: front/src/components/library/radios/Builder.vue:45
+msgid "Select a filter"
+msgstr "Velg et filter"
+
+#: front/src/components/common/ActionTable.vue:64
+msgid "Select all %{ total } elements"
+msgid_plural "Select all %{ total } elements"
+msgstr[0] "Velg alle %{ total } elementer"
+msgstr[1] "Velg alle %{ total } elementer"
+
+#: front/src/components/common/ActionTable.vue:73
+msgid "Select only current page"
+msgstr "Velg kun gjeldende side"
+
+#: front/src/components/Sidebar.vue:43 src/components/Sidebar.vue:88
+#: front/src/components/manage/users/UsersTable.vue:185
+#: front/src/views/admin/users/UsersDetail.vue:189
+msgid "Settings"
+msgstr "Innstillinger"
+
+#: front/src/components/auth/Settings.vue:10
+msgid "Settings updated"
+msgstr "Innstillinger oppdatert"
+
+#: front/src/components/admin/SettingsGroup.vue:11
+#, fuzzy
+msgid "Settings updated successfully."
+msgstr "Innstillinger oppdatert"
+
+#: front/src/components/manage/users/InvitationForm.vue:27
+msgid "Share link"
+msgstr "Del en lenke"
+
+#: front/src/views/content/libraries/Detail.vue:15
+#, fuzzy
+msgid "Share this link with other users so they can request an access to your library."
+msgstr ""
+"Del denne lenken med andre brukere slik at de kan forespørre tilgang til "
+"ditt bibliotek."
+
+#: front/src/views/content/libraries/Detail.vue:14
+#: front/src/views/content/remote/Card.vue:73
+#, fuzzy
+msgid "Sharing link"
+msgstr "Delingslenke"
+
+#: front/src/components/audio/album/Card.vue:40
+msgid "Show %{ count } more track"
+msgid_plural "Show %{ count } more tracks"
+msgstr[0] "Vis %{ count } spor til"
+msgstr[1] "Vis %{ count } flere spor"
+
+#: front/src/components/audio/artist/Card.vue:30
+msgid "Show 1 more album"
+msgid_plural "Show %{ count } more albums"
+msgstr[0] "Vis ett album til"
+msgstr[1] "Vis % { count } flere album"
+
+#: front/src/views/Notifications.vue:10
+#, fuzzy
+msgid "Show read notifications"
+msgstr "Vis lesningsmerkander"
+
+#: front/src/components/manage/library/FilesTable.vue:97
+#: front/src/components/manage/users/InvitationsTable.vue:76
+#: front/src/components/manage/users/UsersTable.vue:87
+#: front/src/views/content/libraries/FilesTable.vue:111
+#, fuzzy
+msgid "Showing results %{ start }-%{ end } on %{ total }"
+msgstr "Viser resultater %{ start }-%{ end } på %{ total }"
+
+#: front/src/components/manage/users/UsersTable.vue:40
+#: front/src/views/admin/users/UsersDetail.vue:37
+msgid "Sign-up"
+msgstr "Registrering"
+
+#: front/src/components/library/FileUpload.vue:84 src/components/library/Track.vue:69
+#: front/src/components/manage/library/FilesTable.vue:44
+#: front/src/views/content/libraries/FilesTable.vue:57
+#: front/src/components/mixins/Translations.vue:27
+msgid "Size"
+msgstr "Størrelse"
+
+#: front/src/views/content/libraries/FilesTable.vue:15
+#: front/src/views/content/libraries/FilesTable.vue:229
+#, fuzzy
+msgid "Skipped"
+msgstr "Hoppet over"
+
+#: front/src/views/content/libraries/Quota.vue:49
+msgid "Skipped files"
+msgstr "Ignorerte filer"
+
+#: front/src/components/requests/Form.vue:3
+#, fuzzy
+msgid "Something's missing in the library? Let us know what you would like to listen!"
+msgstr "Mangler noe i biblioteket? La oss vite hva du ønsker å lytte til."
+
+#: front/src/components/audio/Search.vue:25
+#, fuzzy
+msgid "Sorry, we did not found any album matching your query"
+msgstr "Fant ikke noe album som samsvarer med søket ditt"
+
+#: front/src/components/audio/Search.vue:16
+msgid "Sorry, we did not found any artist matching your query"
+msgstr "Fant ikke noen artist som samsvarer med søket ditt"
+
+#: front/src/App.vue:40
+msgid "Source code"
+msgstr "Kildekode"
+
+#: front/src/App.vue:39
+msgid "Source code (%{version})"
+msgstr "Kildekode (%{version})"
+
+#: front/src/components/auth/Profile.vue:23
+#: front/src/components/manage/users/UsersTable.vue:70
+#, fuzzy
+msgid "Staff member"
+msgstr "Ansatt medlem"
+
+#: front/src/components/radios/Button.vue:4
+msgid "Start"
+msgstr "Start"
+
+#: front/src/components/library/FileUpload.vue:85
+#: front/src/components/manage/users/InvitationsTable.vue:17
+#: front/src/components/manage/users/InvitationsTable.vue:39
+#: front/src/components/manage/users/UsersTable.vue:43
+#: front/src/views/content/libraries/Detail.vue:28
+msgid "Status"
+msgstr "Status"
+
+#: front/src/components/radios/Button.vue:3
+msgid "Stop"
+msgstr "Stopp"
+
+#: front/src/components/Sidebar.vue:150
+msgid "Stop radio"
+msgstr "Stopp radiostasjon"
+
+#: front/src/App.vue:11 src/components/requests/Form.vue:17
+msgid "Submit"
+msgstr "Send inn"
+
+#: front/src/components/requests/Form.vue:22
+#, fuzzy
+msgid "Submit another request"
+msgstr "Send inn en annen forespørsel"
+
+#: front/src/components/auth/SubsonicTokenForm.vue:2
+msgid "Subsonic API password"
+msgstr "Subsonic API-passord"
+
+#: front/src/App.vue:13
+msgid "Suggested choices"
+msgstr "Anbefalte valg"
+
+#: front/src/components/library/FileUpload.vue:3
+msgid "Summary"
+msgstr "Sammendrag"
+
+#: front/src/components/playlists/Editor.vue:9
+#, fuzzy
+msgid "Syncing changes to server..."
+msgstr "Synkroniserer endringer til tjener…"
+
+#: front/src/components/common/CopyInput.vue:3
+#, fuzzy
+msgid "Text copied to clipboard!"
+msgstr "Tekst kopiert til utklippstavle."
+
+#: front/src/components/Home.vue:26
+#, fuzzy
+msgid "That's simple: we loved Grooveshark and we want to build something even better."
+msgstr ""
+"Det er enkelt. Vi elsket Grooveshark og vi ønsket å bygge noe enda bedre."
+
+#: front/src/App.vue:58
+#, fuzzy
+msgid "The funkwhale logo was kindly designed and provided by Francis Gading."
+msgstr "Funkwhale-logoen ble på vennlig designet og tilbudt av Francis Gading."
+
+#: front/src/views/content/libraries/Form.vue:34
+#, fuzzy
+msgid "The library and all its tracks will be deleted. This action is irreversible."
+msgstr "Biblioteket og alle dets spor vil bli slettet. Dette kan ikke angres."
+
+#: front/src/components/library/FileUpload.vue:39
+msgid "The music files you are uploading are tagged properly:"
+msgstr "Musikkfilene du laster opp har korrekte etiketter:"
+
+#: front/src/components/Home.vue:121
+#, fuzzy
+msgid "The plaform is free and open-source, you can install it and modify it without worries"
+msgstr "Plattformen er fri, du kan installere og endre den uten bekymringer"
+
+#: front/src/components/auth/SubsonicTokenForm.vue:4
+msgid "The Subsonic API is not available on this Funkwhale instance."
+msgstr "Subsonic API-et er ikke tilgjengelig på denne Funkwhale-instansen."
+
+#: front/src/components/library/FileUpload.vue:43
+msgid "The uploaded music files are in OGG, Flac or MP3 format"
+msgstr "De opplastede filene er i OGG-, Flac- eller MP3-format"
+
+#: front/src/components/library/Album.vue:52
+msgid "This album is present in the following libraries:"
+msgstr "Dette albumet er å finne i følgende bibliotek:"
+
+#: front/src/components/library/Artist.vue:63
+msgid "This artist is present in the following libraries:"
+msgstr "Denne artisten er å finne i følgende bibliotek:"
+
+#: front/src/views/content/Home.vue:9
+msgid "This instance offers up to %{quota} of storage space to every user."
+msgstr "Denne instansen tilbyr opptil %{quota} lagringsplass til hver bruker."
+
+#: front/src/components/auth/Profile.vue:16
+msgid "This is you!"
+msgstr "Dette er deg."
+
+#: front/src/components/common/ActionTable.vue:38
+msgid "This may affect a lot of elements, please double check this is really what you want."
+msgstr ""
+"Dette kan ha innvirkning på mange elementer, dobbeltsjekk at dette er det du "
+"faktisk ønsker."
+
+#: front/src/components/library/FileUpload.vue:52
+#, fuzzy
+msgid "This reference will be used to group imported files together."
+msgstr "Denne referansen brukes til å gruppere importerte filer sammen."
+
+#: front/src/components/library/Track.vue:125
+msgid "This track is present in the following libraries:"
+msgstr "Dette sporet finnes i følgende bibliotek:"
+
+#: front/src/views/playlists/Detail.vue:37
+msgid "This will completely delete this playlist and cannot be undone."
+msgstr "Dette vil slette denne spillelisten for godt, og kan ikke angres."
+
+#: front/src/views/radios/Detail.vue:27
+#, fuzzy
+msgid "This will completely delete this radio and cannot be undone."
+msgstr "Dette vil slette denne radiostasjonen for godt, og kan ikke angres."
+
+#: front/src/components/auth/SubsonicTokenForm.vue:51
+#, fuzzy
+msgid "This will completely disable access to the Subsonic API using from account."
+msgstr "Dette vil skru av tilgang til Subsonic API-et for denne kontoen."
+
+#: front/src/App.vue:162 src/components/About.vue:55 src/components/Home.vue:154
+#: front/src/components/PageNotFound.vue:33 src/components/Sidebar.vue:203
+#: front/src/components/Sidebar.vue:204 src/components/audio/PlayButton.vue:54
+#: front/src/components/audio/PlayButton.vue:55
+#: front/src/components/audio/PlayButton.vue:56
+#: front/src/components/audio/PlayButton.vue:61
+#: front/src/components/audio/PlayButton.vue:64
+#: front/src/components/audio/PlayButton.vue:158 src/components/audio/Player.vue:216
+#: front/src/components/audio/Player.vue:273 src/components/audio/Player.vue:274
+#: front/src/components/audio/Player.vue:275 src/components/audio/Player.vue:276
+#: front/src/components/audio/Player.vue:277 src/components/audio/Player.vue:278
+#: front/src/components/audio/Player.vue:279 src/components/audio/Player.vue:280
+#: front/src/components/audio/Player.vue:281 src/components/audio/Player.vue:282
+#: front/src/components/audio/Player.vue:283 src/components/audio/Search.vue:65
+#: front/src/components/audio/SearchBar.vue:20 src/components/audio/SearchBar.vue:25
+#: front/src/components/audio/SearchBar.vue:26 src/components/audio/SearchBar.vue:27
+#: front/src/components/auth/Login.vue:77 src/components/auth/Login.vue:78
+#: front/src/components/auth/Logout.vue:20 src/components/auth/Profile.vue:47
+#: front/src/components/auth/Settings.vue:249 src/components/auth/Signup.vue:95
+#: front/src/components/auth/Signup.vue:96 src/components/auth/Signup.vue:97
+#: front/src/components/auth/Signup.vue:98
+#: front/src/components/auth/SubsonicTokenForm.vue:95
+#: front/src/components/auth/SubsonicTokenForm.vue:111
+#: front/src/components/favorites/List.vue:110
+#: front/src/components/favorites/TrackFavoriteIcon.vue:19
+#: front/src/components/favorites/TrackFavoriteIcon.vue:21
+#: front/src/components/forms/PasswordInput.vue:25
+#: front/src/components/library/Album.vue:101 src/components/library/Artist.vue:129
+#: front/src/components/library/Artists.vue:119
+#: front/src/components/library/Artists.vue:120
+#: front/src/components/library/FileUpload.vue:238
+#: front/src/components/library/FileUpload.vue:239
+#: front/src/components/library/FileUpload.vue:240
+#: front/src/components/library/FileUpload.vue:241 src/components/library/Home.vue:65
+#: front/src/components/library/Radios.vue:141 src/components/library/Radios.vue:142
+#: front/src/components/library/Track.vue:195
+#: front/src/components/library/radios/Builder.vue:233
+#: front/src/components/library/radios/Builder.vue:235
+#: front/src/components/library/radios/Builder.vue:236
+#: front/src/components/manage/library/FilesTable.vue:176
+#: front/src/components/manage/library/FilesTable.vue:190
+#: front/src/components/manage/users/InvitationForm.vue:58
+#: front/src/components/manage/users/InvitationsTable.vue:153
+#: front/src/components/manage/users/InvitationsTable.vue:167
+#: front/src/components/manage/users/UsersTable.vue:163
+#: front/src/components/manage/users/UsersTable.vue:173
+#: front/src/components/manage/users/UsersTable.vue:177
+#: front/src/components/manage/users/UsersTable.vue:181
+#: front/src/components/manage/users/UsersTable.vue:185
+#: front/src/components/metadata/ArtistCard.vue:49
+#: front/src/components/metadata/ReleaseCard.vue:53
+#: front/src/components/metadata/Search.vue:114
+#: front/src/components/metadata/Search.vue:130
+#: front/src/components/metadata/Search.vue:134
+#: front/src/components/metadata/Search.vue:138
+#: front/src/components/mixins/Translations.vue:7
+#: front/src/components/mixins/Translations.vue:8
+#: front/src/components/mixins/Translations.vue:10
+#: front/src/components/mixins/Translations.vue:11
+#: front/src/components/mixins/Translations.vue:16
+#: front/src/components/mixins/Translations.vue:17
+#: front/src/components/mixins/Translations.vue:18
+#: front/src/components/mixins/Translations.vue:19
+#: front/src/components/mixins/Translations.vue:20
+#: front/src/components/mixins/Translations.vue:21
+#: front/src/components/mixins/Translations.vue:22
+#: front/src/components/mixins/Translations.vue:23
+#: front/src/components/mixins/Translations.vue:24
+#: front/src/components/mixins/Translations.vue:25
+#: front/src/components/mixins/Translations.vue:26
+#: front/src/components/mixins/Translations.vue:27
+#: front/src/components/mixins/Translations.vue:28
+#: front/src/components/mixins/Translations.vue:29
+#: front/src/components/mixins/Translations.vue:30
+#: front/src/components/mixins/Translations.vue:31
+#: front/src/components/notifications/NotificationRow.vue:39
+#: front/src/components/notifications/NotificationRow.vue:40
+#: front/src/components/notifications/NotificationRow.vue:44
+#: front/src/components/notifications/NotificationRow.vue:45
+#: front/src/components/notifications/NotificationRow.vue:62
+#: front/src/components/playlists/Editor.vue:163 src/components/playlists/Form.vue:74
+#: front/src/components/playlists/Form.vue:81 src/components/playlists/Form.vue:85
+#: front/src/components/playlists/Form.vue:89
+#: front/src/components/playlists/PlaylistModal.vue:116
+#: front/src/components/playlists/TrackPlaylistIcon.vue:32
+#: front/src/components/requests/Form.vue:73 src/components/requests/Form.vue:74
+#: front/src/components/requests/Form.vue:75 src/views/Notifications.vue:74
+#: front/src/views/admin/Settings.vue:75 src/views/admin/Settings.vue:80
+#: front/src/views/admin/Settings.vue:81 src/views/admin/Settings.vue:82
+#: front/src/views/admin/Settings.vue:83 src/views/admin/Settings.vue:84
+#: front/src/views/admin/Settings.vue:85 src/views/admin/Settings.vue:86
+#: front/src/views/admin/library/Base.vue:16 src/views/admin/library/FilesList.vue:21
+#: front/src/views/admin/users/Base.vue:20
+#: front/src/views/admin/users/InvitationsList.vue:24
+#: front/src/views/admin/users/UsersDetail.vue:169
+#: front/src/views/admin/users/UsersDetail.vue:170
+#: front/src/views/admin/users/UsersDetail.vue:177
+#: front/src/views/admin/users/UsersDetail.vue:181
+#: front/src/views/admin/users/UsersDetail.vue:185
+#: front/src/views/admin/users/UsersDetail.vue:189
+#: front/src/views/admin/users/UsersList.vue:21 src/views/auth/EmailConfirm.vue:51
+#: front/src/views/auth/PasswordReset.vue:52 src/views/auth/PasswordReset.vue:53
+#: front/src/views/auth/PasswordResetConfirm.vue:62 src/views/content/Base.vue:19
+#: front/src/views/content/Home.vue:35 src/views/content/libraries/Card.vue:58
+#: front/src/views/content/libraries/Card.vue:59
+#: front/src/views/content/libraries/Card.vue:60
+#: front/src/views/content/libraries/Card.vue:61
+#: front/src/views/content/libraries/DetailArea.vue:24
+#: front/src/views/content/libraries/FilesTable.vue:226
+#: front/src/views/content/libraries/FilesTable.vue:229
+#: front/src/views/content/libraries/FilesTable.vue:230
+#: front/src/views/content/libraries/FilesTable.vue:233
+#: front/src/views/content/libraries/FilesTable.vue:234
+#: front/src/views/content/libraries/FilesTable.vue:237
+#: front/src/views/content/libraries/FilesTable.vue:238
+#: front/src/views/content/libraries/FilesTable.vue:241
+#: front/src/views/content/libraries/FilesTable.vue:242
+#: front/src/views/content/libraries/FilesTable.vue:258
+#: front/src/views/content/libraries/FilesTable.vue:259
+#: front/src/views/content/libraries/Form.vue:70
+#: front/src/views/content/libraries/Form.vue:71
+#: front/src/views/content/libraries/Form.vue:72
+#: front/src/views/content/libraries/Form.vue:73
+#: front/src/views/content/libraries/Form.vue:74
+#: front/src/views/content/libraries/Form.vue:106
+#: front/src/views/content/libraries/Form.vue:109
+#: front/src/views/content/libraries/Form.vue:129
+#: front/src/views/content/remote/Card.vue:131 src/views/content/remote/Card.vue:132
+#: front/src/views/content/remote/Card.vue:165 src/views/content/remote/Card.vue:166
+#: front/src/views/content/remote/ScanForm.vue:48 src/views/instance/Timeline.vue:57
+#: front/src/views/playlists/Detail.vue:90 src/views/playlists/List.vue:104
+#: front/src/views/playlists/List.vue:105 src/views/radios/Detail.vue:80
+#, fuzzy
+msgid "This will erase your local data and disconnect you, do you want to continue?"
+msgid_plural "%{ count } tracks were added to your queue"
+msgstr[0] ""
+"Dette vil slette din lokale data og koble deg fra, ønsker du å fortsette?"
+msgstr[1] "%{ count } spor ble lagt til i din spilleliste"
+
+#: front/src/components/auth/SubsonicTokenForm.vue:36
+msgid "This will log you out from existing devices that use the current password."
+msgstr ""
+"Dette vil logge deg ut av eksisterende enheter som bruker nåværende passord."
+
+#: front/src/components/playlists/Editor.vue:44
+msgid "This will remove all tracks from this playlist and cannot be undone."
+msgstr "Dette vil fjerne alle spor fra denne spillelisten og kan ikke angres."
+
+#: front/src/views/content/libraries/Quota.vue:90
+#, fuzzy
+msgid "This will remove tracks that were uploaded but failed to be process by the server. This will remove those files completely and you will regain the corresponding quota."
+msgstr ""
+"Dette vil fjerne spor som har blitt opplastet men ikke kunne behandles av "
+"tjeneren permanent, og du vil få tilbake tilsvarende kvote."
+
+#: front/src/views/content/libraries/Quota.vue:38
+#, fuzzy
+msgid "This will remove tracks that were uploaded but not processed yet. This will remove those files completely and you will regain the corresponding quota."
+msgstr ""
+"Dette vil fjerne spor som har blitt opplastet men ikke har blitt behandlet "
+"av tjeneren permanent, og du vil få tilbake tilsvarende kvote."
+
+#: front/src/views/content/libraries/Quota.vue:64
+msgid "This will remove tracks that were uploaded but skipped during import processes for various reasons. This will remove those files completely and you will regain the corresponding quota."
+msgstr ""
+"Dette vil fjerne spor som har blitt opplastet men ignorert under "
+"importprosessen permanent, og du vil få tilbake tilsvarende kvote."
+
+#: front/src/components/audio/track/Table.vue:6
+#: front/src/components/manage/library/FilesTable.vue:37
+#: front/src/views/content/libraries/FilesTable.vue:51
+#: front/src/components/mixins/Translations.vue:26
+msgid "Title"
+msgstr "Tittel"
+
+#: front/src/components/library/Track.vue:53
+#, fuzzy
+msgid "Track information"
+msgstr "Sporinfo"
+
+#: front/src/components/library/radios/Filter.vue:44
+msgid "Track matching filter"
+msgstr "Sporsamsvarsfilter"
+
+#: front/src/components/instance/Stats.vue:54
+msgid "tracks"
+msgstr "spor"
+
+#: front/src/components/library/Album.vue:43
+#: front/src/components/playlists/PlaylistModal.vue:33 src/views/content/Base.vue:8
+#: front/src/views/content/libraries/Detail.vue:8 src/views/playlists/Detail.vue:50
+#: front/src/views/radios/Detail.vue:34
+msgid "Tracks"
+msgstr "Spor"
+
+#: front/src/components/library/Artist.vue:54
+msgid "Tracks by this artist"
+msgstr "Spor av denne artisten"
+
+#: front/src/components/instance/Stats.vue:25
+msgid "Tracks favorited"
+msgstr "Spor favorisert"
+
+#: front/src/components/instance/Stats.vue:19
+#, fuzzy
+msgid "tracks listened"
+msgstr "Spor lyttet til"
+
+#: front/src/components/library/Track.vue:91
+#: front/src/components/manage/library/FilesTable.vue:41
+msgid "Type"
+msgstr "Type"
+
+#: front/src/views/content/remote/Card.vue:100 src/views/content/remote/Card.vue:105
+msgid "Unfollow"
+msgstr "Opphev følging"
+
+#: front/src/views/content/remote/Card.vue:101
+msgid "Unfollow this library?"
+msgstr "Opphev følging av dette biblioteket?"
+
+#: front/src/components/About.vue:15
+#, fuzzy
+msgid "Unfortunately, owners of this instance did not yet take the time to complete this page."
+msgstr ""
+"Eierne av denne instansen har ikke tatt seg tid til å fullføre denne siden."
+
+#: front/src/components/Home.vue:37
+msgid "Unlimited music"
+msgstr "Ubegrenset musikk"
+
+#: front/src/components/auth/Settings.vue:50
+msgid "Update avatar"
+msgstr "Oppdater avatar"
+
+#: front/src/views/content/libraries/Form.vue:25
+msgid "Update library"
+msgstr "Oppdater bibliotek"
+
+#: front/src/components/playlists/Form.vue:33
+msgid "Update playlist"
+msgstr "Oppdater spilleliste"
+
+#: front/src/components/auth/Settings.vue:27
+msgid "Update settings"
+msgstr "Oppdater innstillinger"
+
+#: front/src/views/auth/PasswordResetConfirm.vue:21
+msgid "Update your password"
+msgstr "Oppdater passordet ditt"
+
+#: front/src/views/content/libraries/Card.vue:44
+#: front/src/components/manage/users/UsersTable.vue:173
+#: front/src/views/content/libraries/DetailArea.vue:24
+#: front/src/views/admin/users/UsersDetail.vue:177
+msgid "Upload"
+msgstr "Last opp"
+
+#: front/src/components/auth/Settings.vue:45
+msgid "Upload a new avatar"
+msgstr "Last opp en ny avatar"
+
+#: front/src/views/content/Home.vue:6
+msgid "Upload audio content"
+msgstr "Last opp lydinnhold"
+
+#: front/src/views/content/libraries/FilesTable.vue:54
+msgid "Upload date"
+msgstr "Opplastingsdato"
+
+#: front/src/views/content/Home.vue:7
+#, fuzzy
+msgid "Upload music files (mp3, ogg, flac, etc.) from your personal library directly from your browser to enjoy them here."
+msgstr ""
+"Last opp musikkfiler (MP3, OGG, Flac, osv.) fra ditt personlige bibiotek "
+"direkte fra din nettleser for å nyte dem her."
+
+#: front/src/components/library/FileUpload.vue:31
+msgid "Upload new tracks"
+msgstr "Last opp nye spor"
+
+#: front/src/views/admin/users/UsersDetail.vue:82
+msgid "Upload quota"
+msgstr "Opplastingskvote"
+
+#: front/src/components/library/FileUpload.vue:99
+msgid "Uploaded"
+msgstr "Opplastet"
+
+#: front/src/components/library/FileUpload.vue:5
+msgid "Uploading"
+msgstr "Laster opp"
+
+#: front/src/components/library/FileUpload.vue:102
+#, fuzzy
+msgid "Uploading..."
+msgstr "Laster opp…"
+
+#: front/src/App.vue:44
+msgid "Use another instance"
+msgstr "Bruk en annen instans"
+
+#: front/src/views/auth/PasswordReset.vue:12
+msgid "Use this form to request a password reset. We will send an email to the given address with instructions to reset your password."
+msgstr ""
+"Bruk dette skjemaet til å forespørre tilbakestilling av passord. En e-post "
+"vil bli sendt til oppgitt adresse med instruksjoner."
+
+#: front/src/components/manage/users/InvitationsTable.vue:49
+msgid "Used"
+msgstr "Brukt"
+
+#: front/src/views/content/libraries/Detail.vue:26
+msgid "User"
+msgstr "Bruker"
+
+#: front/src/components/instance/Stats.vue:5
+msgid "User activity"
+msgstr "Brukeraktivitet"
+
+#: front/src/components/library/Album.vue:49 src/components/library/Artist.vue:60
+#: front/src/components/library/Track.vue:122
+msgid "User libraries"
+msgstr "Brukerbibliotek"
+
+#: front/src/components/library/Radios.vue:20
+#, fuzzy
+msgid "User radios"
+msgstr "Brukerradiostasjoner"
+
+#: front/src/components/auth/Signup.vue:19
+#: front/src/components/manage/users/UsersTable.vue:37
+#: front/src/components/mixins/Translations.vue:32
+msgid "Username"
+msgstr "Brukernavn"
+
+#: front/src/components/auth/Login.vue:15
+#, fuzzy
+msgid "Username or email"
+msgstr "Brukernavn eller e-post"
+
+#: front/src/components/instance/Stats.vue:13
+msgid "users"
+msgstr "brukere"
+
+#: front/src/components/Sidebar.vue:94 src/views/admin/users/Base.vue:5
+#: front/src/views/admin/users/UsersList.vue:3 src/views/admin/users/UsersList.vue:21
+#: front/src/views/admin/Settings.vue:81
+msgid "Users"
+msgstr "Brukere"
+
+#: front/src/views/content/libraries/Quota.vue:29
+#: front/src/views/content/libraries/Quota.vue:56
+#: front/src/views/content/libraries/Quota.vue:82
+msgid "View files"
+msgstr "Vis filer"
+
+#: front/src/components/library/Album.vue:37 src/components/library/Artist.vue:35
+#: front/src/components/library/Track.vue:44
+#: front/src/components/metadata/ReleaseCard.vue:53
+#: front/src/components/metadata/ArtistCard.vue:49
+msgid "View on MusicBrainz"
+msgstr "Vis på MusicBrainz"
+
+#: front/src/views/content/libraries/Form.vue:18
+msgid "Visibility"
+msgstr "Synlighet"
+
+#: front/src/components/playlists/PlaylistModal.vue:20
+#, fuzzy
+msgid "We cannot add the track to a playlist"
+msgstr "Kan ikke legge til sporet i en spilleliste"
+
+#: front/src/components/playlists/Form.vue:14
+#, fuzzy
+msgid "We cannot create the playlist"
+msgstr "Kan ikke opprette spillelisten"
+
+#: front/src/components/auth/Signup.vue:13
+#, fuzzy
+msgid "We cannot create your account"
+msgstr "Kan ikke opprette konto"
+
+#: front/src/components/auth/Login.vue:7
+#, fuzzy
+msgid "We cannot log you in"
+msgstr "Kan ikke logge inn"
+
+#: front/src/components/auth/Settings.vue:38
+#, fuzzy
+msgid "We cannot save your avatar"
+msgstr "Kan ikke lagre din avatar"
+
+#: front/src/components/auth/Settings.vue:14
+#, fuzzy
+msgid "We cannot save your settings"
+msgstr "Kan ikke lagre innstillingene"
+
+#: front/src/components/Home.vue:127
+#, fuzzy
+msgid "We do not track you or bother you with ads"
+msgstr "Ingen sporing eller reklame"
+
+#: front/src/views/Notifications.vue:26
+msgid "We don't have any notification to display!"
+msgstr "Ingen merknad å vise."
+
+#: front/src/views/content/Home.vue:4
+msgid "We offer various way to grab new content and make it available here."
+msgstr "Det er mange måter å hente nytt innhold for tilgjengeliggjøring her."
+
+#: front/src/components/library/FileUpload.vue:40
+#, fuzzy
+msgid "we recommend using Picard for that purpose"
+msgstr "Til dette formålet anbefales Picard"
+
+#: front/src/components/Home.vue:7
+#, fuzzy
+msgid "We think listening to music should be simple."
+msgstr "Lytting til musikk skal være enkelt."
+
+#: front/src/components/PageNotFound.vue:10
+#, fuzzy
+msgid "We're sorry, the page you asked for does not exist:"
+msgstr "Siden du forespurte finnes ikke:"
+
+#: front/src/components/requests/Form.vue:21
+#, fuzzy
+msgid "We've received your request, you'll get some groove soon ;)"
+msgstr "Din forespørsel er mottatt, du vil få rockefoten igang snart."
+
+#: front/src/components/Home.vue:5
+#, fuzzy
+msgid "Welcome on Funkwhale"
+msgstr "Velkommen på Funkwhale"
+
+#: front/src/components/Home.vue:24
+#, fuzzy
+msgid "Why funkwhale?"
+msgstr "Hvorfor Funkwhale?"
+
+#: front/src/components/Sidebar.vue:115
+msgid "Yes"
+msgstr "Ja"
+
+#: front/src/components/auth/Logout.vue:8
+#, fuzzy
+msgid "Yes, log me out!"
+msgstr "Ja, logg meg ut."
+
+#: front/src/components/library/FileUpload.vue:33
+msgid "You are about to upload music to your library. Before proceeding, please ensure that:"
+msgstr ""
+"Du er i ferd med å laste opp musikk til ditt bibliotek. Før du fortsetter, "
+"forsikre deg om at:"
+
+#: front/src/components/auth/Logout.vue:7
+msgid "You are currently logged in as %{ username }"
+msgstr "Du er innlogget som %{ username }"
+
+#: front/src/views/content/Home.vue:17
+msgid "You can follow libraries from other users to get access to new music. Public libraries can be followed immediatly, while following a private library requires approval from its owner."
+msgstr ""
+"Følg bibliotek fra andre brukere for å få tilgang til ny musikk. Offentlige "
+"bibliotek kan følges umiddelbart, mens å følge et privat bibliotek krever "
+"samtykke fra dets eier."
+
+#: front/src/components/Home.vue:133
+msgid "You can invite friends and family to your instance so they can enjoy your music"
+msgstr ""
+"Du kan invitere venner og familie til din instans slik at de kan nyte "
+"musikken din"
+
+#: front/src/components/library/radios/Builder.vue:7
+#, fuzzy
+msgid "You can use this interface to build your own custom radio, which will play tracks according to your criteria."
+msgstr ""
+"Du kan bruke dette grensesnittet til å bygge din egen tilpassede "
+"radiostasjon, som spiller spor i henhold til dine valg."
+
+#: front/src/components/auth/SubsonicTokenForm.vue:8
+#, fuzzy
+msgid "You can use those to enjoy your playlist and music in offline mode, on your smartphone or tablet, for instance."
+msgstr ""
+"Du kan bruke dem til å nyte din spilleliste og musikk i frakoblet modus, på "
+"din telefon eller nettbrett for eksempel."
+
+#: front/src/components/Sidebar.vue:147
+#, fuzzy
+msgid "You have a radio playing"
+msgstr "Du har en spillende radiostasjon"
+
+#: front/src/App.vue:8
+msgid "You need to select an instance in order to continue"
+msgstr "Du må velge en instans for å fortsette"
+
+#: front/src/views/content/libraries/Form.vue:19
+#, fuzzy
+msgid "You will be able to share your library with other people, regardless of it's visibility."
+msgstr "Du vil kunne dele biblioteket med andre, uavhengig av dets synlighet."
+
+#: front/src/components/auth/Settings.vue:100
+#, fuzzy
+msgid "You will be logged out from this session and have to log in with the new one"
+msgstr "Du vil bli logget ut av denne økta, og må logge inn i den nye"
+
+#: front/src/components/auth/Settings.vue:71
+#, fuzzy
+msgid "You will have to update your password on your clients that use this password."
+msgstr ""
+"Du vil måtte oppdatere ditt passord på klienter som bruker dette passordet."
+
+#: front/src/views/auth/EmailConfirm.vue:24
+#, fuzzy
+msgid "Your email address was confirmed, you can now use the service without limitations."
+msgstr "E-postadresse bekreftet, du kan nå bruke tjenesten uten begrensninger."
+
+#: front/src/components/Home.vue:114
+msgid "Your music, your way"
+msgstr "Din musikk, på din måte"
+
+#: front/src/views/Notifications.vue:7
+msgid "Your notifications"
+msgstr "Dine merknader"
+
+#: front/src/views/auth/PasswordResetConfirm.vue:29
+#, fuzzy
+msgid "Your password has been updated successfully."
+msgstr "Passordet ditt har blitt oppdatert."
+
+#: front/src/components/auth/Settings.vue:101
+#, fuzzy
+msgid "Your Subsonic password will be changed to a new, random one, logging you out from devices that used the old Subsonic password"
+msgstr ""
+"Ditt Subsonic-passord vil bli endret til noe nytt og tilfeldig, noe som "
+"logger deg ut fra enheter som bruker ditt gamle Subsonic-passord."
+
+#: front/src/components/mixins/Translations.vue:8
+msgid "Activity visibility"
+msgstr "Aktivitetssynlighet"
+
+#: front/src/components/mixins/Translations.vue:9
+msgid "Determine the visibility level of your activity"
+msgstr "Bestem synlighetsnivået for din aktivitet"
+
+#: front/src/components/mixins/Translations.vue:11
+#: front/src/components/playlists/Form.vue:81 src/views/content/libraries/Form.vue:72
+msgid "Nobody except me"
+msgstr "Ingen unntatt meg"
+
+#: front/src/components/mixins/Translations.vue:12
+#: front/src/components/playlists/Form.vue:85 src/views/content/libraries/Form.vue:73
+msgid "Everyone on this instance"
+msgstr "Alle på denne instansen"
+
+#: front/src/components/mixins/Translations.vue:18
+#, fuzzy
+msgid "Accessed date"
+msgstr "Tilgangsdato"
+
+#: front/src/components/mixins/Translations.vue:19
+msgid "Modification date"
+msgstr "Endringsdato"
+
+#: front/src/components/mixins/Translations.vue:20
+msgid "Imported date"
+msgstr "Importdato"
+
+#: front/src/components/mixins/Translations.vue:22
+msgid "Track name"
+msgstr "Spornavn"
+
+#: front/src/components/mixins/Translations.vue:23
+msgid "Album name"
+msgstr "Albumnavn"
+
+#: front/src/components/mixins/Translations.vue:30
+msgid "Sign-up date"
+msgstr "Registreringsdato"
+
+#: front/src/components/playlists/Editor.vue:163
+msgid "Copy tracks from current queue to playlist"
+msgstr "Kopier fra nåværende kø til spilleliste"
+
+#: front/src/components/playlists/PlaylistModal.vue:116
+msgid "Add to this playlist"
+msgstr "Legg til i denne spillelisten"
+
+#: front/src/components/playlists/Form.vue:74
+msgid "My awesome playlist"
+msgstr "Min flotte spilleliste"
+
+#: front/src/components/playlists/Form.vue:89
+msgid "Everyone"
+msgstr "Alle"
+
+#: front/src/components/auth/Signup.vue:95
+msgid "Sign Up"
+msgstr "Registrering"
+
+#: front/src/components/auth/Signup.vue:96
+#, fuzzy
+msgid "Enter your invitation code (case insensitive)"
+msgstr "Skriv inn din invitasjonskode (versalsensitiv)"
+
+#: front/src/components/auth/Signup.vue:97
+msgid "Enter your username"
+msgstr "Skriv inn brukernavnet ditt"
+
+#: front/src/components/auth/Signup.vue:98
+#, fuzzy
+msgid "Enter your email"
+msgstr "Skriv inn e-postadressen din"
+
+#: front/src/components/auth/SubsonicTokenForm.vue:95
+msgid "Password updated"
+msgstr "Passord oppdatert"
+
+#: front/src/components/auth/SubsonicTokenForm.vue:111
+#, fuzzy
+msgid "Access disabled"
+msgstr "Tilgang avskrudd"
+
+#: front/src/components/auth/Login.vue:77
+#, fuzzy
+msgid "Enter your username or email"
+msgstr "Skriv inn brukernavnet eller e-postadressen din"
+
+#: front/src/components/auth/Login.vue:78
+msgid "Log In"
+msgstr "Logg inn"
+
+#: front/src/components/auth/Profile.vue:47
+msgid "%{ username }'s profile"
+msgstr "%{ username } sin profil"
+
+#: front/src/components/auth/Logout.vue:20
+#, fuzzy
+msgid "Log Out"
+msgstr "Logg ut"
+
+#: front/src/components/auth/Settings.vue:249
+msgid "Account Settings"
+msgstr "Kontoinnstillinger"
+
+#: front/src/components/favorites/TrackFavoriteIcon.vue:19
+msgid "Remove from favorites"
+msgstr "Fjern fra favoritter"
+
+#: front/src/components/favorites/List.vue:110
+#, fuzzy
+msgid "Your Favorites"
+msgstr "Dine favoritter"
+
+#: front/src/components/library/Radios.vue:141
+#, fuzzy
+msgid "Enter a radio name..."
+msgstr "Skriv inn et radiostasjonsnavn…"
+
+#: front/src/components/library/radios/Builder.vue:233
+#, fuzzy
+msgid "Radio Builder"
+msgstr "Radiostasjonsbygger"
+
+#: front/src/components/library/radios/Builder.vue:235
+#, fuzzy
+msgid "My awesome radio"
+msgstr "Min flotte radiostasjon"
+
+#: front/src/components/library/radios/Builder.vue:236
+msgid "My awesome description"
+msgstr "Min flotte beskrivelse"
+
+#: front/src/components/library/FileUpload.vue:238
+#, fuzzy
+msgid "Upload refused, ensure the file is not too big and you have not reached your quota"
+msgstr ""
+"Opplasting nektet, forsikre deg om at filen ikke er for stor, og at du ikke "
+"har brukt opp kvoten din."
+
+#: front/src/components/library/FileUpload.vue:239
+#, fuzzy
+msgid "Impossible to upload this file, ensure it is not too big"
+msgstr "Kunne ikke laste opp denne filen, sjekk at den ikke er for stor"
+
+#: front/src/components/library/FileUpload.vue:240
+msgid "A network error occured while uploading this file"
+msgstr "Kunne ikke laste opp denne filen som følge av nettverksfeil"
+
+#: front/src/components/library/FileUpload.vue:241
+#, fuzzy
+msgid "Upload timeout, please try again"
+msgstr "Tidsavbrudd for opplasting, prøv igjen"
+
+#: front/src/components/library/Artists.vue:119
+#, fuzzy
+msgid "Enter an artist name..."
+msgstr "Skriv inn artistnavn…"
+
+#: front/src/components/library/Track.vue:195 src/components/audio/SearchBar.vue:27
+#: front/src/components/metadata/Search.vue:138
+msgid "Track"
+msgstr "Spor"
+
+#: front/src/components/library/Home.vue:65
+msgid "Home"
+msgstr "Hjem"
+
+#: front/src/components/forms/PasswordInput.vue:25
+msgid "Show/hide password"
+msgstr "Vis/skjul passord"
+
+#: front/src/components/requests/Form.vue:73
+#, fuzzy
+msgid "The Beatles, Mickael Jackson…"
+msgstr "The Beatles, Mickael Jackson…"
+
+#: front/src/components/requests/Form.vue:74
+msgid "The White Album, Thriller…"
+msgstr "The White Album, Thriller…"
+
+#: front/src/components/requests/Form.vue:75
+#, fuzzy
+msgid "Use this comment box to add details to your request if needed"
+msgstr ""
+"Bruk dette kommentarfeltet til å detaljere din forespørsel hvis nødvendig"
+
+#: front/src/components/audio/PlayButton.vue:158
+msgid "%{ count } track was added to your queue"
+msgid_plural "%{ count } tracks were added to your queue"
+msgstr[0] "%{ count } spor ble lagt til i din spillekø"
+msgstr[1] "%{ count } spor ble lagt til i din spillekø"
+
+#: front/src/components/audio/Search.vue:65
+#, fuzzy
+msgid "Artist, album, track..."
+msgstr "Artist, album, spor…"
+
+#: front/src/components/audio/SearchBar.vue:20
+#, fuzzy
+msgid "Search for artists, albums, tracks..."
+msgstr "Søk etter artister, album, spor…"
+
+#: front/src/components/audio/Player.vue:216
+msgid "Queue shuffled!"
+msgstr "Spillekø omstokket."
+
+#: front/src/components/audio/Player.vue:273
+msgid "Previous track"
+msgstr "Forrige spor"
+
+#: front/src/components/audio/Player.vue:274
+msgid "Play track"
+msgstr "Spill spor"
+
+#: front/src/components/audio/Player.vue:275
+msgid "Pause track"
+msgstr "Sett spor på pause"
+
+#: front/src/components/audio/Player.vue:276
+msgid "Next track"
+msgstr "Neste spor"
+
+#: front/src/components/audio/Player.vue:277
+msgid "Unmute"
+msgstr "Opphev forstumming"
+
+#: front/src/components/audio/Player.vue:278
+msgid "Mute"
+msgstr "Forstum"
+
+#: front/src/components/audio/Player.vue:279
+msgid "Looping disabled. Click to switch to single-track looping."
+msgstr "Gjentagelse avskrudd. Klikk for å bytte til enkeltsporsgjentagelse."
+
+#: front/src/components/audio/Player.vue:280
+#, fuzzy
+msgid "Looping on a single track. Click to switch to whole queue looping."
+msgstr ""
+"Gjentar enkelt spor. Klikk for å bytte til gjentagelse av hele spillekøen."
+
+#: front/src/components/audio/Player.vue:281
+msgid "Looping on whole queue. Click to disable looping."
+msgstr "Gjentar hele spillekøen. Klikk for å skru av gjentagelse."
+
+#: front/src/components/audio/Player.vue:282
+#, fuzzy
+msgid "Shuffle your queue"
+msgstr "Omstokk spillekøen"
+
+#: front/src/components/audio/Player.vue:283
+#, fuzzy
+msgid "Clear your queue"
+msgstr "Tøm spillekøen"
+
+#: front/src/components/Sidebar.vue:203
+msgid "Pending import requests"
+msgstr "Ventende importforespørsler"
+
+#: front/src/components/Sidebar.vue:204
+msgid "Pending follow requests"
+msgstr "Ventende følgingsforespørsler"
+
+#: front/src/components/metadata/Search.vue:114
+#, fuzzy
+msgid "Enter your search query..."
+msgstr "Skriv inn din søkespørring…"
+
+#: front/src/components/manage/library/FilesTable.vue:176
+#, fuzzy
+msgid "Search by title, artist, domain..."
+msgstr "Søk etter tittel, artist, domene…"
+
+#: front/src/components/manage/users/InvitationForm.vue:58
+msgid "Leave empty for a random code"
+msgstr "La stå tom for tilfeldig kode"
+
+#: front/src/components/manage/users/InvitationsTable.vue:153
+#, fuzzy
+msgid "Search by username, email, code..."
+msgstr "Søk etter brukernavn, e-postadresse, kode…"
+
+#: front/src/components/manage/users/UsersTable.vue:163
+#, fuzzy
+msgid "Search by username, email, name..."
+msgstr "Søk etter brukernavn, e-post, navn…"
+
+#: front/src/components/manage/users/UsersTable.vue:181
+#: front/src/views/admin/users/UsersDetail.vue:185 src/views/admin/Settings.vue:83
+#, fuzzy
+msgid "Federation"
+msgstr "Føderasjon"
+
+#: front/src/components/Home.vue:154
+msgid "Welcome"
+msgstr "Velkommen"
+
+#: front/src/views/content/remote/ScanForm.vue:48
+msgid "Enter a library url"
+msgstr "Skriv inn biblioteksnettadresse"
+
+#: front/src/views/content/remote/Card.vue:165
+#, fuzzy
+msgid "Scan launched"
+msgstr "Skanning igangsatt"
+
+#: front/src/views/content/remote/Card.vue:166
+#, fuzzy
+msgid "Scan skipped (previous scan is too recent)"
+msgstr "Skanning hoppet over (forrige skanning er for fersk)"
+
+#: front/src/views/content/libraries/FilesTable.vue:226
+#, fuzzy
+msgid "Search by title, artist, album..."
+msgstr "Søk etter tittel, artist, album…"
+
+#: front/src/views/content/libraries/FilesTable.vue:230
+msgid "Track was already present in one of your libraries"
+msgstr "Sporet finnes allerede i ett av bibliotekene dine"
+
+#: front/src/views/content/libraries/FilesTable.vue:234
+msgid "Track is uploaded but not processed by the server yet"
+msgstr "Sporet er lastet opp, men ikke behandlet av tjeneren enda"
+
+#: front/src/views/content/libraries/FilesTable.vue:238
+#, fuzzy
+msgid "An error occured while processing this track, ensure the track is correctly tagged"
+msgstr ""
+"Kunne ikke behandle dette sporet, forsikre deg om at det har riktige "
+"etiketter"
+
+#: front/src/views/content/libraries/FilesTable.vue:242
+#, fuzzy
+msgid "Import went on successfully"
+msgstr "Importert"
+
+#: front/src/views/content/libraries/FilesTable.vue:259
+msgid "Relaunch import"
+msgstr "Start import på ny"
+
+#: front/src/views/content/libraries/Card.vue:58
+#, fuzzy
+msgid "Visibility: nobody except me"
+msgstr "Synlighet: Ingen unntatt meg"
+
+#: front/src/views/content/libraries/Card.vue:59
+#, fuzzy
+msgid "Visibility: everyone on this instance"
+msgstr "Synlighet: Alle på denne instansen"
+
+#: front/src/views/content/libraries/Card.vue:60
+msgid "Visibility: everyone, including other instances"
+msgstr "Synlighet: Alle, inkludert andre instanser"
+
+#: front/src/views/content/libraries/Card.vue:61
+msgid "Total size of the files in this library"
+msgstr "Total størrelse på filene i dette biblioteket"
+
+#: front/src/views/content/libraries/Form.vue:70
+msgid "My awesome library"
+msgstr "Mitt flotte bibliotek"
+
+#: front/src/views/content/libraries/Form.vue:71
+#, fuzzy
+msgid "This library contains my personnal music, I hope you will like it!"
+msgstr "Dette biblioteket inneholder personlig musikk, håper du liker det."
+
+#: front/src/views/content/libraries/Form.vue:74
+msgid "Everyone, including other instances"
+msgstr "Alle, inkludert andre instanser"
+
+#: front/src/views/content/libraries/Form.vue:106
+msgid "Library updated"
+msgstr "Bibliotek oppdatert"
+
+#: front/src/views/content/libraries/Form.vue:109
+msgid "Library created"
+msgstr "Bibliotek opprettet"
+
+#: front/src/views/content/Home.vue:35
+msgid "Add and manage content"
+msgstr "Legg til og behandle innhold"
+
+#: front/src/views/radios/Detail.vue:80
+msgid "Radio"
+msgstr "Radiostasjon"
+
+#: front/src/views/instance/Timeline.vue:57
+msgid "Instance Timeline"
+msgstr "Instanstidslinje"
+
+#: front/src/views/playlists/Detail.vue:90
+msgid "Playlist"
+msgstr "Spilleliste"
+
+#: front/src/views/playlists/List.vue:105
+msgid "Enter an playlist name..."
+msgstr "Skriv inn spillelistenavn…"
+
+#: front/src/views/admin/library/Base.vue:16
+msgid "Manage library"
+msgstr "Behandle bibliotek"
+
+#: front/src/views/admin/users/UsersDetail.vue:169
+#, fuzzy
+msgid "Determine if the user account is active or not. Inactive users cannot login or use the service."
+msgstr ""
+"Bestem hvorvidt brukerkontoen er aktiv eller ei. Inaktive brukere kan ikke "
+"logge inne eller bruke tjenesten."
+
+#: front/src/views/admin/users/UsersDetail.vue:170
+#, fuzzy
+msgid "Determine how much content the user can upload. Leave empty to use the default value of the instance."
+msgstr ""
+"Bestem hvor mye innhold brukeren kan late opp. La stå tomt for å bruke "
+"forvalgt verdi på instansen."
+
+#: front/src/views/admin/users/Base.vue:20
+msgid "Manage users"
+msgstr "Behandle brukere"
+
+#: front/src/views/admin/Settings.vue:75
+msgid "Instance settings"
+msgstr "Instansinnstillinger"
+
+#: front/src/views/admin/Settings.vue:80
+#, fuzzy
+msgid "Instance information"
+msgstr "Instansinfo"
+
+#: front/src/views/admin/Settings.vue:84
+msgid "Subsonic"
+msgstr "Subsonic"
+
+#: front/src/views/admin/Settings.vue:85
+msgid "Statistics"
+msgstr "Statistikk"
+
+#: front/src/views/admin/Settings.vue:86
+msgid "Error reporting"
+msgstr "Feilrapportering"
diff --git a/front/locales/nl/LC_MESSAGES/app.po b/front/locales/nl/LC_MESSAGES/app.po
new file mode 100644
index 0000000000000000000000000000000000000000..76df472324b24f952da00248660ffcf2654ef307
--- /dev/null
+++ b/front/locales/nl/LC_MESSAGES/app.po
@@ -0,0 +1,2543 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the front package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: front 0.1.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2018-10-05 20:10+0200\n"
+"PO-Revision-Date: 2019-01-18 11:50+0000\n"
+"Last-Translator: Vierkantor <vierkantor@vierkantor.com>\n"
+"Language-Team: none\n"
+"Language: nl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 3.2.2\n"
+
+#: front/src/components/playlists/PlaylistModal.vue:9
+msgid "\"%{ title }\", by %{ artist }"
+msgstr "\"%{ title }\", van %{ artist }"
+
+#: front/src/components/Sidebar.vue:24
+msgid "(%{ index } of %{ length })"
+msgstr "(%{ index } van %{ length })"
+
+#: front/src/components/Sidebar.vue:22
+msgid "(empty)"
+msgstr "(leeg)"
+
+#: front/src/components/common/ActionTable.vue:44
+#: front/src/components/common/ActionTable.vue:53
+msgid "%{ count } on %{ total } selected"
+msgid_plural "%{ count } on %{ total } selected"
+msgstr[0] "%{ count } van %{ total } element geselecteerd"
+msgstr[1] "%{ count } van %{ total } elementen geselecteerd"
+
+#: front/src/components/Sidebar.vue:107 src/components/audio/album/Card.vue:54
+#: front/src/views/content/libraries/Card.vue:39 src/views/content/remote/Card.vue:26
+msgid "%{ count } track"
+msgid_plural "%{ count } tracks"
+msgstr[0] "%{ count } nummer"
+msgstr[1] "%{ count } nummers"
+
+#: front/src/components/library/Artist.vue:13
+msgid "%{ count } track in %{ albumsCount } albums"
+msgid_plural "%{ count } tracks in %{ albumsCount } albums"
+msgstr[0] "% { count } nummer in %{ albumsCount } albums"
+msgstr[1] "% { count } nummers in %{ albumsCount } albums"
+
+#: front/src/components/library/radios/Builder.vue:80
+msgid "%{ count } track matching combined filters"
+msgid_plural "%{ count } tracks matching combined filters"
+msgstr[0] "% { count } nummer komt overeen met de gecombineerde filters"
+msgstr[1] "% { count } nummers komen overeen met de gecombineerde filters"
+
+#: front/src/components/playlists/Card.vue:18
+msgid "%{ count} track"
+msgid_plural "%{ count } tracks"
+msgstr[0] "%{ count } nummer"
+msgstr[1] "%{ count } nummers"
+
+#: front/src/views/content/libraries/Quota.vue:11
+msgid "%{ current } used on %{ max } allowed"
+msgstr "%{ current } in gebruik van %{ max } toegestaan"
+
+#: front/src/components/common/Duration.vue:2
+msgid "%{ hours } h %{ minutes } min"
+msgstr "%{ hours } uur %{ minutes } min"
+
+#: front/src/components/common/Duration.vue:5
+msgid "%{ minutes } min"
+msgstr "%{ minutes } min"
+
+#: front/src/components/activity/Like.vue:7
+msgid "%{ user } favorited a track"
+msgstr "%{ user } heeft een nummer als favoriet gemarkeerd"
+
+#: front/src/components/activity/Listen.vue:7
+msgid "%{ user } listened to a track"
+msgstr "%{ user } heeft een nummer geluisterd"
+
+#: front/src/components/audio/artist/Card.vue:41
+msgid "1 album"
+msgid_plural "%{ count } albums"
+msgstr[0] "%{ count } album"
+msgstr[1] "%{ count } albums"
+
+#: front/src/components/favorites/List.vue:10
+msgid "1 favorite"
+msgid_plural "%{ count } favorites"
+msgstr[0] "%{ count } favoriet"
+msgstr[1] "%{ count } favorieten"
+
+#: front/src/components/About.vue:5
+msgid "About %{ instance }"
+msgstr "Over %{ instance }"
+
+#: front/src/App.vue:53
+msgid "About Funkwhale"
+msgstr "Over Funkwhale"
+
+#: front/src/App.vue:34 src/components/About.vue:8 src/components/About.vue:55
+msgid "About this instance"
+msgstr "Over deze instantiëring"
+
+#: front/src/views/content/libraries/Detail.vue:48
+msgid "Accept"
+msgstr "Accepteren"
+
+#: front/src/views/content/libraries/Detail.vue:40
+msgid "Accepted"
+msgstr "Geaccepteerd"
+
+#: front/src/components/Home.vue:106
+msgid "Access your music from a clean interface that focus on what really matters"
+msgstr ""
+"Toegang tot je muziek met een nette interface die de nadruk legt op wat echt "
+"belangrijk is"
+
+#: front/src/views/admin/users/UsersDetail.vue:54
+msgid "Account active"
+msgstr "Actief account"
+
+#: front/src/components/auth/Settings.vue:5
+msgid "Account settings"
+msgstr "Accountinstellingen"
+
+#: front/src/components/manage/users/UsersTable.vue:39
+msgid "Account status"
+msgstr "Accounttoestand"
+
+#: front/src/views/auth/PasswordReset.vue:14
+msgid "Account's email"
+msgstr "E-mail van account"
+
+#: front/src/views/content/libraries/Detail.vue:29
+msgid "Action"
+msgstr "Actie"
+
+#: front/src/components/common/ActionTable.vue:86
+msgid "Action %{ action } was launched successfully on %{ count } element"
+msgid_plural "Action %{ action } was launched successfully on %{ count } elements"
+msgstr[0] "Actie %{ action } was succesvol begonnen voor %{ count } element"
+msgstr[1] "Actie %{ action } was succesvol begonnen voor %{ count } elementen"
+
+#: front/src/components/common/ActionTable.vue:8
+#: front/src/components/library/radios/Builder.vue:64
+msgid "Actions"
+msgstr "Acties"
+
+#: front/src/components/manage/users/UsersTable.vue:53
+msgid "Active"
+msgstr "Actief"
+
+#: front/src/components/Sidebar.vue:75
+msgid "Activity"
+msgstr "Activiteit"
+
+#: front/src/components/Sidebar.vue:78 src/views/content/Base.vue:19
+msgid "Add content"
+msgstr "Inhoud toevoegen"
+
+#: front/src/components/library/radios/Builder.vue:50
+msgid "Add filter"
+msgstr "Filter toevoegen"
+
+#: front/src/components/library/radios/Builder.vue:40
+msgid "Add filters to customize your radio"
+msgstr "Voeg filters toe om jouw radio te personaliseren"
+
+#: front/src/components/favorites/TrackFavoriteIcon.vue:4
+#: front/src/components/favorites/TrackFavoriteIcon.vue:21
+msgid "Add to favorites"
+msgstr "Toevoegen aan favorieten"
+
+#: front/src/components/playlists/TrackPlaylistIcon.vue:6
+#: front/src/components/playlists/TrackPlaylistIcon.vue:32
+msgid "Add to playlist..."
+msgstr "Toevoegen aan afspeellijst…"
+
+#: front/src/components/audio/PlayButton.vue:14
+msgid "Add to queue"
+msgstr "Toevoegen aan wachtrij"
+
+#: front/src/components/playlists/PlaylistModal.vue:54
+msgid "Add track"
+msgstr "Nummer toevoegen"
+
+#: front/src/components/manage/users/UsersTable.vue:69
+msgid "Admin"
+msgstr "Administrator"
+
+#: front/src/components/Sidebar.vue:82
+msgid "Administration"
+msgstr "Administratie"
+
+#: front/src/components/audio/track/Table.vue:8
+#: front/src/components/manage/library/FilesTable.vue:39
+#: front/src/views/content/libraries/FilesTable.vue:53
+#: front/src/components/library/Album.vue:101 src/components/audio/SearchBar.vue:26
+#: front/src/components/metadata/Search.vue:134
+msgid "Album"
+msgstr "Album"
+
+#: front/src/components/library/Album.vue:12
+msgid "Album containing %{ count } track, by %{ artist }"
+msgid_plural "Album containing %{ count } tracks, by %{ artist }"
+msgstr[0] "Album met %{ count } nummer, van %{ artist }"
+msgstr[1] "Album met %{ count } nummers, van %{ artist }"
+
+#: front/src/components/library/Track.vue:20
+msgid "Album page"
+msgstr "Pagina van album"
+
+#: front/src/components/audio/Search.vue:19 src/components/instance/Stats.vue:48
+#: front/src/components/requests/Form.vue:9
+msgid "Albums"
+msgstr "Albums"
+
+#: front/src/components/library/Artist.vue:44
+msgid "Albums by this artist"
+msgstr "Albums van deze artiest"
+
+#: front/src/components/manage/users/InvitationsTable.vue:19
+#: front/src/views/content/libraries/FilesTable.vue:13
+msgid "All"
+msgstr "Alles"
+
+#: front/src/components/playlists/Editor.vue:13
+msgid "An error occured while saving your changes"
+msgstr "Een fout is opgetreden bij het opslaan van de veranderingen"
+
+#: front/src/components/auth/Login.vue:10
+msgid "An unknown error happend, this can mean the server is down or cannot be reached"
+msgstr ""
+"Een onbekende fout is opgetreden. Mogelijk staat de server uit of is "
+"onbereikbaar"
+
+#: front/src/components/auth/Logout.vue:5
+msgid "Are you sure you want to log out?"
+msgstr "Weet je zeker dat je wilt uitloggen?"
+
+#: front/src/components/audio/track/Table.vue:7
+#: front/src/components/manage/library/FilesTable.vue:38
+#: front/src/views/content/libraries/FilesTable.vue:52
+#: front/src/components/library/Artist.vue:129 src/components/audio/SearchBar.vue:25
+#: front/src/components/metadata/Search.vue:130
+msgid "Artist"
+msgstr "Artiest"
+
+#: front/src/components/requests/Form.vue:5 src/components/mixins/Translations.vue:24
+msgid "Artist name"
+msgstr "Naam artiest"
+
+#: front/src/components/library/Album.vue:22 src/components/library/Track.vue:23
+msgid "Artist page"
+msgstr "Pagina van artiest"
+
+#: front/src/components/audio/Search.vue:10 src/components/instance/Stats.vue:42
+#: front/src/components/library/Library.vue:7 src/components/library/Artists.vue:120
+msgid "Artists"
+msgstr "Artiesten"
+
+#: front/src/components/favorites/List.vue:33 src/components/library/Artists.vue:25
+#: front/src/components/library/Radios.vue:44
+#: front/src/components/manage/library/FilesTable.vue:19
+#: front/src/components/manage/users/UsersTable.vue:19
+#: front/src/views/content/libraries/FilesTable.vue:31
+#: front/src/views/playlists/List.vue:27
+msgid "Ascending"
+msgstr "Oplopend"
+
+#: front/src/views/auth/PasswordReset.vue:27
+msgid "Ask for a password reset"
+msgstr "Wachtwoordreset aanvragen"
+
+#: front/src/components/playlists/PlaylistModal.vue:26
+msgid "Available playlists"
+msgstr "Beschikbare playlists"
+
+#: front/src/components/auth/Settings.vue:34
+msgid "Avatar"
+msgstr "Avatar"
+
+#: front/src/views/auth/EmailConfirm.vue:17 src/views/auth/PasswordReset.vue:24
+#: front/src/views/auth/PasswordResetConfirm.vue:18
+msgid "Back to login"
+msgstr "Terug naar inloggen"
+
+#: front/src/components/library/Track.vue:80
+#: front/src/components/manage/library/FilesTable.vue:42
+#: front/src/components/mixins/Translations.vue:28
+msgid "Bitrate"
+msgstr "Bitrate"
+
+#: front/src/components/Sidebar.vue:18 src/components/library/Library.vue:4
+msgid "Browse"
+msgstr "Doorzoeken"
+
+#: front/src/components/Sidebar.vue:65
+msgid "Browse library"
+msgstr "Bibliotheek doorzoeken"
+
+#: front/src/components/library/Artists.vue:4
+msgid "Browsing artists"
+msgstr "Artiesten doorzoeken"
+
+#: front/src/views/playlists/List.vue:3
+msgid "Browsing playlists"
+msgstr "Afspeellijsten doorzoeken"
+
+#: front/src/components/library/Radios.vue:4
+msgid "Browsing radios"
+msgstr "Radio's doorzoeken"
+
+#: front/src/components/library/radios/Builder.vue:5
+msgid "Builder"
+msgstr "Bouwer"
+
+#: front/src/components/audio/album/Card.vue:13
+msgid "By %{ artist }"
+msgstr "Van %{ artist }"
+
+#: front/src/views/content/remote/Card.vue:103
+msgid "By unfollowing this library, you will loose access to its content."
+msgstr ""
+"Als je de bibliotheek niet meer volgt, verlies je toegang tot alle inhoud."
+
+#: front/src/components/common/DangerousButton.vue:17
+#: front/src/components/library/radios/Filter.vue:53
+#: front/src/components/playlists/PlaylistModal.vue:63
+msgid "Cancel"
+msgstr "Annuleren"
+
+#: front/src/components/library/radios/Builder.vue:63
+msgid "Candidates"
+msgstr "Mogelijkheden"
+
+#: front/src/components/auth/Settings.vue:76
+msgid "Cannot change your password"
+msgstr "Je wachtwoord kon niet aangepast worden"
+
+#: front/src/App.vue:65
+msgid "Change language"
+msgstr "Taal kiezen"
+
+#: front/src/components/auth/Settings.vue:67
+msgid "Change my password"
+msgstr "Wachtwoord aanpassen"
+
+#: front/src/components/auth/Settings.vue:95
+msgid "Change password"
+msgstr "Wachtwoord aanpassen"
+
+#: front/src/views/auth/PasswordResetConfirm.vue:4
+#: front/src/views/auth/PasswordResetConfirm.vue:62
+msgid "Change your password"
+msgstr "Wachtwoord aanpassen"
+
+#: front/src/components/auth/Settings.vue:96
+msgid "Change your password?"
+msgstr "Jouw wachtwoord aanpassen?"
+
+#: front/src/components/playlists/Editor.vue:21
+msgid "Changes synced with server"
+msgstr "Wijzigingen opgeslagen op de server"
+
+#: front/src/components/auth/Settings.vue:70
+msgid "Changing your password will also change your Subsonic API password if you have requested one."
+msgstr ""
+"Als je je wachtwoord aanpast, wordt ook het wachtwoord voor de Subsonic-API "
+"aangepast als je er een ingesteld had."
+
+#: front/src/components/auth/Settings.vue:98
+msgid "Changing your password will have the following consequences"
+msgstr "Het aanpassen van je wachtwoord heeft deze gevolgen"
+
+#: front/src/App.vue:6
+msgid "Choose your instance"
+msgstr "Kies je instantiëring"
+
+#: front/src/components/Home.vue:64
+msgid "Clean library"
+msgstr "Een nette bibliotheek"
+
+#: front/src/components/manage/users/InvitationForm.vue:37
+msgid "Clear"
+msgstr "Wissen"
+
+#: front/src/components/playlists/Editor.vue:40
+#: front/src/components/playlists/Editor.vue:45
+msgid "Clear playlist"
+msgstr "Afspeellijst wissen"
+
+#: front/src/components/Home.vue:44
+msgid "Click once, listen for hours using built-in radios"
+msgstr "Met een druk op de knop urenlang muziek uit ingebouwde radio's"
+
+#: front/src/components/library/FileUpload.vue:76
+msgid "Click to select files to upload or drag and drop files or directories"
+msgstr "Klik om bestanden te selecteren, of sleep bestanden of mappen hierheen"
+
+#: front/src/components/manage/users/InvitationForm.vue:26
+#: front/src/components/manage/users/InvitationsTable.vue:42
+msgid "Code"
+msgstr "Code"
+
+#: front/src/components/audio/album/Card.vue:43
+#: front/src/components/audio/artist/Card.vue:33
+#: front/src/components/discussion/Comment.vue:20
+msgid "Collapse"
+msgstr "Inklappen"
+
+#: front/src/components/requests/Form.vue:14
+msgid "Comment"
+msgstr "Opmerking"
+
+#: front/src/components/library/radios/Builder.vue:62
+msgid "Config"
+msgstr "Instellingen"
+
+#: front/src/components/common/DangerousButton.vue:21
+msgid "Confirm"
+msgstr "Bevestigen"
+
+#: front/src/views/auth/EmailConfirm.vue:4 src/views/auth/EmailConfirm.vue:20
+#: front/src/views/auth/EmailConfirm.vue:51
+msgid "Confirm your email"
+msgstr "Bevestig je e-mailadres"
+
+#: front/src/views/auth/EmailConfirm.vue:13
+msgid "Confirmation code"
+msgstr "Bevestigingscode"
+
+#: front/src/components/common/CopyInput.vue:8
+msgid "Copy"
+msgstr "Kopiëren"
+
+#: front/src/components/Home.vue:85
+msgid "Covers, lyrics, our goal is to have them all ;)"
+msgstr "Covers, songteksten, ons doel is om ze allemaal te hebben ;)"
+
+#: front/src/components/auth/Signup.vue:4
+msgid "Create a funkwhale account"
+msgstr "Maak een account voor funkwhale"
+
+#: front/src/views/content/libraries/Home.vue:14
+msgid "Create a new library"
+msgstr "Nieuwe bibliotheek maken"
+
+#: front/src/components/playlists/Form.vue:2
+msgid "Create a new playlist"
+msgstr "Nieuwe afspeellijst maken"
+
+#: front/src/components/Sidebar.vue:57 src/components/auth/Login.vue:17
+msgid "Create an account"
+msgstr "Account aanmaken"
+
+#: front/src/components/requests/Card.vue:25
+msgid "Create import"
+msgstr "Importering aanmaken"
+
+#: front/src/views/content/libraries/Form.vue:26
+msgid "Create library"
+msgstr "Bibliotheek aanmaken"
+
+#: front/src/components/auth/Signup.vue:51
+msgid "Create my account"
+msgstr "Account aanmaken"
+
+#: front/src/components/playlists/Form.vue:34
+msgid "Create playlist"
+msgstr "Afspeellijst aanmaken"
+
+#: front/src/components/library/Radios.vue:23
+msgid "Create your own radio"
+msgstr "Je eigen radio aanmaken"
+
+#: front/src/components/manage/users/InvitationsTable.vue:40
+#: front/src/components/mixins/Translations.vue:17
+msgid "Creation date"
+msgstr "Aanmaakdatum"
+
+#: front/src/components/auth/Settings.vue:54
+msgid "Current avatar"
+msgstr "Huidige avatar"
+
+#: front/src/views/content/libraries/DetailArea.vue:4
+msgid "Current library"
+msgstr "Huidige bibliotheek"
+
+#: front/src/components/playlists/PlaylistModal.vue:8
+msgid "Current track"
+msgstr "Huidig nummer"
+
+#: front/src/views/content/libraries/Quota.vue:2
+msgid "Current usage"
+msgstr "Huidig gebruik"
+
+#: front/src/views/content/libraries/Detail.vue:27
+msgid "Date"
+msgstr "Datum"
+
+#: front/src/views/content/libraries/Form.vue:29 src/views/playlists/Detail.vue:33
+#: front/src/components/manage/library/FilesTable.vue:190
+#: front/src/components/manage/users/InvitationsTable.vue:167
+#: front/src/views/content/libraries/FilesTable.vue:258
+msgid "Delete"
+msgstr "Verwijderen"
+
+#: front/src/views/content/libraries/Form.vue:39
+msgid "Delete library"
+msgstr "Bibliotheek verwijderen"
+
+#: front/src/views/playlists/Detail.vue:38
+msgid "Delete playlist"
+msgstr "Afspeellijst verwijderen"
+
+#: front/src/views/radios/Detail.vue:28
+msgid "Delete radio"
+msgstr "Radio verwijderen"
+
+#: front/src/views/content/libraries/Form.vue:31
+msgid "Delete this library?"
+msgstr "Deze bibliotheek verwijderen?"
+
+#: front/src/components/favorites/List.vue:34 src/components/library/Artists.vue:26
+#: front/src/components/library/Radios.vue:47
+#: front/src/components/manage/library/FilesTable.vue:20
+#: front/src/components/manage/users/UsersTable.vue:20
+#: front/src/views/content/libraries/FilesTable.vue:32
+#: front/src/views/playlists/List.vue:28
+msgid "Descending"
+msgstr "Aflopend"
+
+#: front/src/components/library/radios/Builder.vue:25
+#: front/src/views/content/libraries/Form.vue:14
+msgid "Description"
+msgstr "Omschrijving"
+
+#: front/src/views/content/libraries/Card.vue:47
+msgid "Detail"
+msgstr "Details"
+
+#: front/src/views/content/remote/Card.vue:50
+msgid "Details"
+msgstr "Details"
+
+#: front/src/components/auth/Settings.vue:104
+#: front/src/components/auth/SubsonicTokenForm.vue:52
+msgid "Disable access"
+msgstr "Toegang uitschakelen"
+
+#: front/src/components/auth/SubsonicTokenForm.vue:49
+msgid "Disable Subsonic access"
+msgstr "Toegang met Subsonic uitschakelen"
+
+#: front/src/components/auth/SubsonicTokenForm.vue:50
+msgid "Disable Subsonic API access?"
+msgstr "Toegang van de Subsonic-API uitzetten?"
+
+#: front/src/components/auth/SubsonicTokenForm.vue:14
+msgid "Discover how to use Funkwhale from other apps"
+msgstr "Ontdek hoe je Funkwhale met andere apps kunt gebruiken"
+
+#: front/src/components/library/radios/Builder.vue:30
+msgid "Display publicly"
+msgstr "Openbaar tonen"
+
+#: front/src/components/playlists/Editor.vue:42
+msgid "Do you want to clear the playlist \"%{ playlist }\"?"
+msgstr "Wil je de afspeellijst \"%{ playlist }\" echt wissen?"
+
+#: front/src/components/common/DangerousButton.vue:7
+msgid "Do you want to confirm this action?"
+msgstr "Actie bevestigen?"
+
+#: front/src/views/playlists/Detail.vue:35
+msgid "Do you want to delete the playlist \"%{ playlist }\"?"
+msgstr "Wil je echt de afspeellijst \"%{ playlist }\" verwijderen?"
+
+#: front/src/views/radios/Detail.vue:26
+msgid "Do you want to delete the radio \"%{ radio }\"?"
+msgstr "Wil je echt de radio \"%{ radio }\" verwijderen?"
+
+#: front/src/components/common/ActionTable.vue:29
+msgid "Do you want to launch %{ action } on %{ count } element?"
+msgid_plural "Do you want to launch %{ action } on %{ count } elements?"
+msgstr[0] "Wil je %{ action } toepassen op %{ count } element?"
+msgstr[1] "Wil je %{ action } toepassen op %{ count } elementen?"
+
+#: front/src/components/Sidebar.vue:104
+msgid "Do you want to restore your previous queue?"
+msgstr "Wil je de vorige wachtrij terugzetten?"
+
+#: front/src/App.vue:37
+msgid "Documentation"
+msgstr "Documentatie"
+
+#: front/src/components/library/Track.vue:48
+msgid "Download"
+msgstr "Downloaden"
+
+#: front/src/components/playlists/Editor.vue:49
+msgid "Drag and drop rows to reorder tracks in the playlist"
+msgstr "Om de afspeellijst te herordenen, kun je de regels verslepen"
+
+#: front/src/components/audio/track/Table.vue:9 src/components/library/Track.vue:58
+#: front/src/components/manage/library/FilesTable.vue:43
+#: front/src/views/content/libraries/FilesTable.vue:56
+#: front/src/components/mixins/Translations.vue:29
+msgid "Duration"
+msgstr "Speelduur"
+
+#: front/src/components/Home.vue:93
+msgid "Easy to use"
+msgstr "Makkelijk te gebruiken"
+
+#: front/src/views/content/libraries/Detail.vue:9
+msgid "Edit"
+msgstr "Wijzigen"
+
+#: front/src/components/About.vue:21
+msgid "Edit instance info"
+msgstr "Info van instantiëring wijzigen"
+
+#: front/src/components/radios/Card.vue:22 src/views/playlists/Detail.vue:30
+msgid "Edit..."
+msgstr "Wijzigen…"
+
+#: front/src/components/auth/Signup.vue:29
+#: front/src/components/manage/users/UsersTable.vue:38
+msgid "Email"
+msgstr "E-mailadres"
+
+#: front/src/views/admin/users/UsersDetail.vue:29
+msgid "Email address"
+msgstr "E-mailadres"
+
+#: front/src/views/auth/EmailConfirm.vue:23
+msgid "Email confirmed"
+msgstr "E-mailadres bevestigd"
+
+#: front/src/views/playlists/Detail.vue:29
+msgid "End edition"
+msgstr "Wijzigingen afronden"
+
+#: front/src/components/auth/SubsonicTokenForm.vue:20
+#: front/src/views/content/libraries/Form.vue:4
+msgid "Error"
+msgstr "Fout"
+
+#: front/src/views/content/remote/Card.vue:39
+msgid "Error during scan"
+msgstr "Fout tijdens scannen"
+
+#: front/src/components/common/ActionTable.vue:79
+msgid "Error while applying action"
+msgstr "Fout bij het toepassen van actie"
+
+#: front/src/views/auth/PasswordReset.vue:7
+msgid "Error while asking for a password reset"
+msgstr "Fout bij het aanvragen van wachtwoordvervanging"
+
+#: front/src/views/auth/PasswordResetConfirm.vue:7
+msgid "Error while changing your password"
+msgstr "Fout bij het aanpassen van je wachtwoord"
+
+#: front/src/views/auth/EmailConfirm.vue:7
+msgid "Error while confirming your email"
+msgstr "Fout bij het bevestigen van je e-mailadres"
+
+#: front/src/components/manage/users/InvitationForm.vue:4
+msgid "Error while creating invitation"
+msgstr "Fout bij het aanmaken van de uitnodiging"
+
+#: front/src/views/content/remote/ScanForm.vue:3
+msgid "Error while fetching remote library"
+msgstr "Fout bij het ophalen van de verre bibliotheek"
+
+#: front/src/components/admin/SettingsGroup.vue:5
+msgid "Error while saving settings"
+msgstr "Fout bij het opslaan van de instellingen"
+
+#: front/src/views/content/libraries/FilesTable.vue:16
+#: front/src/views/content/libraries/FilesTable.vue:237
+msgid "Errored"
+msgstr "Gefaald"
+
+#: front/src/views/content/libraries/Quota.vue:75
+msgid "Errored files"
+msgstr "Gefaalde bestanden"
+
+#: front/src/views/content/remote/Card.vue:58
+msgid "Errored tracks:"
+msgstr "Gefaalde nummers:"
+
+#: front/src/components/library/radios/Builder.vue:61
+msgid "Exclude"
+msgstr "Weglaten"
+
+#: front/src/components/discussion/Comment.vue:14
+msgid "Expand"
+msgstr "Uitklappen"
+
+#: front/src/components/manage/users/InvitationsTable.vue:41
+#: front/src/components/mixins/Translations.vue:21
+msgid "Expiration date"
+msgstr "Vervaldatum"
+
+#: front/src/components/manage/users/InvitationsTable.vue:50
+msgid "Expired"
+msgstr "Vervallen"
+
+#: front/src/components/manage/users/InvitationsTable.vue:21
+msgid "Expired/used"
+msgstr "Vervallen/gebruikt"
+
+#: front/src/components/Sidebar.vue:66
+msgid "Favorites"
+msgstr "Favorieten"
+
+#: front/src/components/library/FileUpload.vue:83
+msgid "File name"
+msgstr "Bestandsnaam"
+
+#: front/src/views/admin/library/Base.vue:5 src/views/admin/library/FilesList.vue:21
+msgid "Files"
+msgstr "Bestanden"
+
+#: front/src/components/library/radios/Builder.vue:60
+msgid "Filter name"
+msgstr "Filternaam"
+
+#: front/src/views/content/libraries/FilesTable.vue:17
+#: front/src/views/content/libraries/FilesTable.vue:241
+msgid "Finished"
+msgstr "Klaar"
+
+#: front/src/views/content/remote/Card.vue:83
+msgid "Follow"
+msgstr "Volgen"
+
+#: front/src/views/content/remote/Card.vue:88
+msgid "Follow pending approval"
+msgstr "Volgen na toestemming"
+
+#: front/src/views/content/Home.vue:16
+msgid "Follow remote libraries"
+msgstr "Verre bibliotheken volgen"
+
+#: front/src/views/content/libraries/Detail.vue:7
+msgid "Followers"
+msgstr "Volgers"
+
+#: front/src/views/content/remote/Card.vue:93
+msgid "Following"
+msgstr "Aan het volgen"
+
+#: front/src/components/activity/Like.vue:14 src/components/activity/Listen.vue:14
+msgid "from %{ album } by %{ artist }"
+msgstr "uit %{ album } door %{ artist }"
+
+#: front/src/components/library/Track.vue:13
+msgid "From album %{ album } by %{ artist }"
+msgstr "Uit het album %{ album } van %{ artist }"
+
+#: front/src/App.vue:55
+msgid "Funkwhale is a free and open-source project run by volunteers. You can help us improve the platform by reporting bugs, suggesting features and share the project with your friends!"
+msgstr ""
+"Funkwhale is vrije, open-source software gemaakt door vrijwilligers. Je kan "
+"ons helpen dit platform te verbeteren door bugs te melden, features voor te "
+"stellen en het project met je vrienden te delen!"
+
+#: front/src/components/auth/SubsonicTokenForm.vue:7
+msgid "Funkwhale is compatible with other music players that support the Subsonic API."
+msgstr ""
+"Funkwhale werkt met andere muziekspelers die de Subsonic-API ondersteunen."
+
+#: front/src/components/Home.vue:95
+msgid "Funkwhale is dead simple to use."
+msgstr "Funkwhale is zeer eenvoudig te gebruiken."
+
+#: front/src/components/Home.vue:39
+msgid "Funkwhale is designed to make it easy to listen to music you like, or to discover new artists."
+msgstr ""
+"Funkwhale is ontworpen om het makkelijk te maken naar jouw favoriete muziek "
+"te luisteren, of nieuwe artiesten te ontdekken."
+
+#: front/src/components/Home.vue:116
+msgid "Funkwhale is free and gives you control on your music."
+msgstr "Funkwhale is gratis en geeft jou het beheer over jouw muziek."
+
+#: front/src/components/Home.vue:66
+msgid "Funkwhale takes care of handling your music"
+msgstr "Funkwhale zorgt voor jouw muziek"
+
+#: front/src/components/manage/users/InvitationForm.vue:16
+msgid "Get a new invitation"
+msgstr "Nieuwe uitnodiging aanvragen"
+
+#: front/src/components/Home.vue:13
+msgid "Get me to the library"
+msgstr "Breng me naar de bibliotheek"
+
+#: front/src/components/Home.vue:76
+msgid "Get quality metadata about your music thanks to <a href=\"%{ url }\" target=\"_blank\">MusicBrainz</a>"
+msgstr ""
+"Verkrijg hoogwaardige metadata over je muziek met behulp van <a href=\"%{ "
+"url }\" target=\"_blank\">MusicBrainz</a>"
+
+#: front/src/views/content/Home.vue:12 src/views/content/Home.vue:19
+msgid "Get started"
+msgstr "Aan de slag"
+
+#: front/src/components/common/ActionTable.vue:21
+#: front/src/components/common/ActionTable.vue:27
+msgid "Go"
+msgstr "Doen!"
+
+#: front/src/components/PageNotFound.vue:14
+msgid "Go to home page"
+msgstr "Terug naar hoofdpagina"
+
+#: front/src/App.vue:73
+msgid "Help us translate Funkwhale"
+msgstr "Help ons met de vertaling van Funkwhale"
+
+#: front/src/components/instance/Stats.vue:36
+msgid "Hours of music"
+msgstr "Uren aan muziek"
+
+#: front/src/components/auth/SubsonicTokenForm.vue:11
+msgid "However, accessing Funkwhale from those clients require a separate password you can set below."
+msgstr ""
+"Om Funkwhale te benaderen van die apps is een los wachtwoord nodig. Dit kan "
+"je hieronder instellen."
+
+#: front/src/views/auth/PasswordResetConfirm.vue:24
+msgid "If the email address provided in the previous step is valid and binded to a user account, you should receive an email with reset instructions in the next couple of minutes."
+msgstr ""
+"Als het e-mailadres uit de vorige stap geldig is en hoort bij een gebruiker, "
+"dan zou je een e-mail moeten ontvangen met instructies voor het vervangen "
+"van je wachtwoord."
+
+#: front/src/components/manage/library/FilesTable.vue:40
+msgid "Import date"
+msgstr "Importdatum"
+
+#: front/src/components/Home.vue:71
+msgid "Import music from various platforms, such as YouTube or SoundCloud"
+msgstr "Importeer muziek uit meerdere platformen zoals YouTube of SoundCloud"
+
+#: front/src/components/library/FileUpload.vue:51
+msgid "Import reference"
+msgstr "Importeringsnummer"
+
+#: front/src/views/content/libraries/FilesTable.vue:11
+#: front/src/views/content/libraries/FilesTable.vue:55
+msgid "Import status"
+msgstr "Importeringstoestand"
+
+#: front/src/components/favorites/TrackFavoriteIcon.vue:3
+msgid "In favorites"
+msgstr "Tussen favorieten"
+
+#: front/src/components/manage/users/UsersTable.vue:54
+msgid "Inactive"
+msgstr "Inactief"
+
+#: front/src/components/playlists/Editor.vue:31
+msgid "Insert from queue (%{ count } track)"
+msgid_plural "Insert from queue (%{ count } tracks)"
+msgstr[0] "Aan de wachtrij toevoegen (%{ count } nummer)"
+msgstr[1] "Aan de wachtrij toevoegen (%{ count } nummers)"
+
+#: front/src/components/library/Radios.vue:9
+msgid "Instance radios"
+msgstr "Radio's van de instantiëring"
+
+#: front/src/components/auth/Signup.vue:42
+#: front/src/components/manage/users/InvitationForm.vue:11
+msgid "Invitation code"
+msgstr "Uitnodigingscode"
+
+#: front/src/components/auth/Signup.vue:43
+msgid "Invitation code (optional)"
+msgstr "Uitnodigingscode (optioneel)"
+
+#: front/src/views/admin/users/Base.vue:8 src/views/admin/users/InvitationsList.vue:3
+#: front/src/views/admin/users/InvitationsList.vue:24
+msgid "Invitations"
+msgstr "Uitnodigingen"
+
+#: front/src/App.vue:42
+msgid "Issue tracker"
+msgstr "Bugtracker"
+
+#: front/src/views/content/libraries/Home.vue:9
+msgid "It looks like you don't have any library yet, it's time to create one!"
+msgstr ""
+"Het lijkt erop dat je nog geen bibliotheek hebt. Het is tijd om er een aan "
+"te maken!"
+
+#: front/src/components/Home.vue:50
+msgid "Keep a track of your favorite songs"
+msgstr "Beheer je lievelingsmuziek"
+
+#: front/src/views/content/remote/Home.vue:14
+msgid "Known libraries"
+msgstr "Bekende bibliotheken"
+
+#: front/src/components/manage/users/UsersTable.vue:41
+#: front/src/views/admin/users/UsersDetail.vue:45
+#: front/src/components/mixins/Translations.vue:31
+msgid "Last activity"
+msgstr "Laatste activiteit"
+
+#: front/src/components/playlists/PlaylistModal.vue:32
+msgid "Last modification"
+msgstr "Laatste wijziging"
+
+#: front/src/views/content/remote/Card.vue:56
+msgid "Last update:"
+msgstr "Laatste update:"
+
+#: front/src/components/common/ActionTable.vue:40
+msgid "Launch"
+msgstr "Opstarten"
+
+#: front/src/views/content/remote/Card.vue:63
+msgid "Launch scan"
+msgstr "Begin scan"
+
+#: front/src/components/Home.vue:10
+msgid "Learn more about this instance"
+msgstr "Meer over deze instantiëring ontdekken"
+
+#: front/src/components/requests/Form.vue:10
+msgid "Leave this field empty if you're requesting the whole discography."
+msgstr "Laat dit veld leeg als je de hele discografie wilt opvragen."
+
+#: front/src/views/content/Base.vue:5
+msgid "Libraries"
+msgstr "Bibliotheken"
+
+#: front/src/views/content/libraries/Form.vue:2
+msgid "Libraries help you organize and share your music collections. You can upload your own music collection to Funkwhale and share it with your friends and family."
+msgstr ""
+"Bibliotheken helpen je met het organiseren en delen van je "
+"muziekverzamelingen. Je kan je eigen muziek uploaden naar Funkwhale en delen "
+"met je vrienden en familie."
+
+#: front/src/components/instance/Stats.vue:30
+#: front/src/components/manage/users/UsersTable.vue:177
+#: front/src/views/admin/users/UsersDetail.vue:181
+msgid "Library"
+msgstr "Bibliotheek"
+
+#: front/src/views/admin/library/FilesList.vue:3
+msgid "Library files"
+msgstr "Bibliotheekbestanden"
+
+#: front/src/App.vue:31
+msgid "Links"
+msgstr "Links"
+
+#: front/src/views/content/libraries/Detail.vue:21
+msgid "Loading followers..."
+msgstr "Volgers aan het laden..."
+
+#: front/src/views/content/libraries/Home.vue:3
+msgid "Loading Libraries..."
+msgstr "Bibliotheken aan het laden…"
+
+#: front/src/views/content/libraries/Detail.vue:3
+#: front/src/views/content/libraries/Upload.vue:3
+msgid "Loading library data..."
+msgstr "Bibliotheekdata aan het laden…"
+
+#: front/src/views/Notifications.vue:4
+msgid "Loading notifications..."
+msgstr "Meldingen aan het laden…"
+
+#: front/src/views/content/remote/Home.vue:3
+msgid "Loading remote libraries..."
+msgstr "Verre bibliotheken aan het laden…"
+
+#: front/src/views/instance/Timeline.vue:4
+msgid "Loading timeline..."
+msgstr "Tijdlijn aan het laden…"
+
+#: front/src/views/content/libraries/Quota.vue:4
+msgid "Loading usage data..."
+msgstr "Verbruiksdata aan het laden…"
+
+#: front/src/components/favorites/List.vue:5
+msgid "Loading your favorites..."
+msgstr "Jouw favorieten aan het laden…"
+
+#: front/src/components/auth/Login.vue:4
+msgid "Log in to your Funkwhale account"
+msgstr "Log in op je Funkwhale-account"
+
+#: front/src/components/Sidebar.vue:38
+msgid "Logged in as %{ username }"
+msgstr "Ingelogd als %{ username }"
+
+#: front/src/components/Sidebar.vue:54 src/components/auth/Login.vue:41
+msgid "Login"
+msgstr "Inloggen"
+
+#: front/src/components/Sidebar.vue:52
+msgid "Logout"
+msgstr "Uitloggen"
+
+#: front/src/components/library/Track.vue:105
+msgid "Lyrics"
+msgstr "Songtekst"
+
+#: front/src/components/playlists/PlaylistModal.vue:3
+msgid "Manage playlists"
+msgstr "Afspeellijsten beheren"
+
+#: front/src/views/playlists/List.vue:8
+msgid "Manage your playlists"
+msgstr "Jouw afspeellijsten beheren"
+
+#: front/src/views/Notifications.vue:17
+msgid "Mark all as read"
+msgstr "Alles als gelezen markeren"
+
+#: front/src/views/admin/users/UsersDetail.vue:94
+msgid "MB"
+msgstr "MB"
+
+#: front/src/components/Sidebar.vue:63
+msgid "Music"
+msgstr "Muziek"
+
+#: front/src/components/Sidebar.vue:34
+msgid "My account"
+msgstr "Mijn account"
+
+#: front/src/views/content/libraries/Home.vue:6
+msgid "My libraries"
+msgstr "Mijn bibliotheken"
+
+#: front/src/components/audio/track/Row.vue:40 src/components/library/Track.vue:64
+#: front/src/components/library/Track.vue:75 src/components/library/Track.vue:86
+#: front/src/components/library/Track.vue:97
+#: front/src/components/manage/library/FilesTable.vue:63
+#: front/src/components/manage/library/FilesTable.vue:69
+#: front/src/components/manage/library/FilesTable.vue:75
+#: front/src/components/manage/library/FilesTable.vue:81
+#: front/src/components/manage/users/UsersTable.vue:61
+#: front/src/views/admin/users/UsersDetail.vue:49
+#: front/src/views/content/libraries/FilesTable.vue:89
+#: front/src/views/content/libraries/FilesTable.vue:95
+msgid "N/A"
+msgstr "N.B."
+
+#: front/src/components/playlists/PlaylistModal.vue:31
+#: front/src/views/admin/users/UsersDetail.vue:21
+#: front/src/views/content/libraries/Form.vue:10
+#: front/src/components/mixins/Translations.vue:25
+msgid "Name"
+msgstr "Naam"
+
+#: front/src/components/auth/Settings.vue:88
+#: front/src/views/auth/PasswordResetConfirm.vue:14
+msgid "New password"
+msgstr "Nieuw wachtwoord"
+
+#: front/src/components/Sidebar.vue:149
+msgid "New tracks will be appended here automatically."
+msgstr "Nieuwe nummers worden hier automatisch toegevoegd."
+
+#: front/src/components/Sidebar.vue:116
+msgid "No"
+msgstr "Nee"
+
+#: front/src/components/Home.vue:100
+msgid "No add-ons, no plugins : you only need a web library"
+msgstr "Geen uitbreidingen of plugins: je hebt alleen een webbibliotheek nodig"
+
+#: front/src/components/library/Track.vue:113
+msgid "No lyrics available for this track."
+msgstr "Geen songtekst beschikbaar voor dit nummer."
+
+#: front/src/components/federation/LibraryWidget.vue:6
+msgid "No matching library."
+msgstr "Geen passende bibliotheek gevonden."
+
+#: front/src/views/content/libraries/Detail.vue:57
+msgid "Nobody is following this library"
+msgstr "Niemand volgt deze bibliotheek"
+
+#: front/src/components/manage/users/InvitationsTable.vue:51
+msgid "Not used"
+msgstr "Niet gebruikt"
+
+#: front/src/components/Sidebar.vue:46 src/views/Notifications.vue:74
+msgid "Notifications"
+msgstr "Meldingen"
+
+#: front/src/App.vue:36
+msgid "Official website"
+msgstr "Officiële website"
+
+#: front/src/components/auth/Settings.vue:83
+msgid "Old password"
+msgstr "Vorig wachtwoord"
+
+#: front/src/components/manage/users/InvitationsTable.vue:20
+msgid "Open"
+msgstr "Open"
+
+#: front/src/App.vue:62
+msgid "Options"
+msgstr "Opties"
+
+#: front/src/components/favorites/List.vue:23 src/components/library/Artists.vue:15
+#: front/src/components/library/Radios.vue:33
+#: front/src/components/manage/library/FilesTable.vue:9
+#: front/src/components/manage/users/InvitationsTable.vue:9
+#: front/src/components/manage/users/UsersTable.vue:9
+#: front/src/views/content/libraries/FilesTable.vue:21
+#: front/src/views/playlists/List.vue:17
+msgid "Ordering"
+msgstr "Volgorde"
+
+#: front/src/components/favorites/List.vue:31 src/components/library/Artists.vue:23
+#: front/src/components/library/Radios.vue:41
+#: front/src/components/manage/library/FilesTable.vue:17
+#: front/src/components/manage/users/UsersTable.vue:17
+#: front/src/views/content/libraries/FilesTable.vue:29
+#: front/src/views/playlists/List.vue:25
+msgid "Ordering direction"
+msgstr "Sorteervolgorde"
+
+#: front/src/components/manage/users/InvitationsTable.vue:38
+msgid "Owner"
+msgstr "Beheerder"
+
+#: front/src/components/PageNotFound.vue:7
+msgid "Page not found!"
+msgstr "Pagina niet gevonden!"
+
+#: front/src/components/auth/Login.vue:32 src/components/auth/Signup.vue:38
+msgid "Password"
+msgstr "Wachtwoord"
+
+#: front/src/views/auth/PasswordResetConfirm.vue:28
+msgid "Password updated successfully"
+msgstr "Wachtwoord succesvol aangepast"
+
+#: front/src/components/library/FileUpload.vue:105
+#: front/src/views/content/libraries/FilesTable.vue:14
+#: front/src/views/content/libraries/FilesTable.vue:233
+msgid "Pending"
+msgstr "Openstaand"
+
+#: front/src/views/content/libraries/Detail.vue:37
+msgid "Pending approval"
+msgstr "Goedkeuring staat open"
+
+#: front/src/views/content/libraries/Quota.vue:22
+msgid "Pending files"
+msgstr "Openstaande bestanden"
+
+#: front/src/components/requests/Form.vue:26
+msgid "Pending requests"
+msgstr "Openstaande verzoeken"
+
+#: front/src/components/manage/users/UsersTable.vue:42
+#: front/src/views/admin/users/UsersDetail.vue:68
+msgid "Permissions"
+msgstr "Toestemmingen"
+
+#: front/src/components/audio/PlayButton.vue:9 src/components/library/Track.vue:30
+msgid "Play"
+msgstr "Afspelen"
+
+#: front/src/components/audio/album/Card.vue:50
+#: front/src/components/audio/artist/Card.vue:44 src/components/library/Album.vue:28
+#: front/src/views/playlists/Detail.vue:23
+msgid "Play all"
+msgstr "Alles afspelen"
+
+#: front/src/components/library/Artist.vue:26
+msgid "Play all albums"
+msgstr "Alle albums afspelen"
+
+#: front/src/components/audio/PlayButton.vue:15
+msgid "Play next"
+msgstr "Hierna afspelen"
+
+#: front/src/components/audio/PlayButton.vue:16
+msgid "Play now"
+msgstr "Nu afspelen"
+
+#: front/src/views/playlists/Detail.vue:12
+msgid "Playlist containing %{ count } track, by %{ username }"
+msgid_plural "Playlist containing %{ count } tracks, by %{ username }"
+msgstr[0] ""
+msgstr[1] ""
+
+#: front/src/components/playlists/Form.vue:9
+msgid "Playlist created"
+msgstr ""
+
+#: front/src/components/playlists/Editor.vue:4
+msgid "Playlist editor"
+msgstr ""
+
+#: front/src/components/playlists/Form.vue:21
+msgid "Playlist name"
+msgstr ""
+
+#: front/src/components/playlists/Form.vue:6
+msgid "Playlist updated"
+msgstr ""
+
+#: front/src/components/playlists/Form.vue:25
+msgid "Playlist visibility"
+msgstr ""
+
+#: front/src/components/Sidebar.vue:71 src/components/library/Home.vue:16
+#: front/src/components/library/Library.vue:13 src/views/playlists/List.vue:104
+#: front/src/views/admin/Settings.vue:82
+msgid "Playlists"
+msgstr ""
+
+#: front/src/components/Home.vue:56
+msgid "Playlists? We got them"
+msgstr ""
+
+#: front/src/components/auth/Settings.vue:79
+msgid "Please double-check your password is correct"
+msgstr ""
+
+#: front/src/components/auth/Login.vue:9
+msgid "Please double-check your username/password couple is correct"
+msgstr ""
+
+#: front/src/components/auth/Settings.vue:46
+msgid "PNG, GIF or JPG. At most 2MB. Will be downscaled to 400x400px."
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:58
+msgid "Proceed"
+msgstr ""
+
+#: front/src/views/auth/EmailConfirm.vue:26
+#: front/src/views/auth/PasswordResetConfirm.vue:31
+msgid "Proceed to login"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:17
+msgid "Processing"
+msgstr ""
+
+#: front/src/views/content/libraries/Quota.vue:36
+#: front/src/views/content/libraries/Quota.vue:39
+#: front/src/views/content/libraries/Quota.vue:62
+#: front/src/views/content/libraries/Quota.vue:65
+#: front/src/views/content/libraries/Quota.vue:88
+#: front/src/views/content/libraries/Quota.vue:91
+msgid "Purge"
+msgstr ""
+
+#: front/src/views/content/libraries/Quota.vue:89
+msgid "Purge errored files?"
+msgstr ""
+
+#: front/src/views/content/libraries/Quota.vue:37
+msgid "Purge pending files?"
+msgstr ""
+
+#: front/src/views/content/libraries/Quota.vue:63
+msgid "Purge skipped files?"
+msgstr ""
+
+#: front/src/components/Sidebar.vue:20
+msgid "Queue"
+msgstr ""
+
+#: front/src/components/library/radios/Builder.vue:15
+msgid "Radio created"
+msgstr ""
+
+#: front/src/components/library/radios/Builder.vue:21
+msgid "Radio name"
+msgstr ""
+
+#: front/src/components/library/radios/Builder.vue:12
+msgid "Radio updated"
+msgstr ""
+
+#: front/src/components/library/Library.vue:10 src/components/library/Radios.vue:142
+msgid "Radios"
+msgstr ""
+
+#: front/src/views/instance/Timeline.vue:7
+msgid "Recent activity on this instance"
+msgstr ""
+
+#: front/src/components/library/Home.vue:24
+msgid "Recently added"
+msgstr ""
+
+#: front/src/components/library/Home.vue:11
+msgid "Recently favorited"
+msgstr ""
+
+#: front/src/components/library/Home.vue:6
+msgid "Recently listened"
+msgstr ""
+
+#: front/src/views/admin/users/UsersDetail.vue:103
+#: front/src/views/content/remote/Home.vue:15
+msgid "Refresh"
+msgstr ""
+
+#: front/src/components/auth/Profile.vue:12
+msgid "Registered since %{ date }"
+msgstr ""
+
+#: front/src/components/auth/Signup.vue:9
+msgid "Registration are closed on this instance, you will need an invitation code to signup."
+msgstr ""
+
+#: front/src/components/manage/users/UsersTable.vue:71
+msgid "regular user"
+msgstr ""
+
+#: front/src/views/content/libraries/Detail.vue:51
+msgid "Reject"
+msgstr ""
+
+#: front/src/views/content/libraries/Detail.vue:43
+msgid "Rejected"
+msgstr ""
+
+#: front/src/views/content/remote/Home.vue:6
+msgid "Remote libraries"
+msgstr ""
+
+#: front/src/views/content/remote/Home.vue:7
+msgid "Remote libraries are owned by other users on the network. You can access them as long as they are public or you are granted access."
+msgstr ""
+
+#: front/src/components/library/radios/Filter.vue:59
+msgid "Remove"
+msgstr ""
+
+#: front/src/components/auth/Settings.vue:58
+msgid "Remove avatar"
+msgstr ""
+
+#: front/src/components/auth/SubsonicTokenForm.vue:34
+#: front/src/components/auth/SubsonicTokenForm.vue:37
+msgid "Request a new password"
+msgstr ""
+
+#: front/src/components/auth/SubsonicTokenForm.vue:35
+msgid "Request a new Subsonic API password?"
+msgstr ""
+
+#: front/src/components/auth/SubsonicTokenForm.vue:43
+msgid "Request a password"
+msgstr ""
+
+#: front/src/components/requests/Form.vue:20
+msgid "Request submitted!"
+msgstr ""
+
+#: front/src/components/auth/Login.vue:34 src/views/auth/PasswordReset.vue:4
+msgid "Reset your password"
+msgstr ""
+
+#: front/src/components/favorites/List.vue:38 src/components/library/Artists.vue:30
+#: front/src/components/library/Radios.vue:52 src/views/playlists/List.vue:32
+msgid "Results per page"
+msgstr ""
+
+#: front/src/components/admin/SettingsGroup.vue:63
+#: front/src/components/library/radios/Builder.vue:33
+msgid "Save"
+msgstr ""
+
+#: front/src/views/content/remote/Card.vue:31
+msgid "Scan pending"
+msgstr ""
+
+#: front/src/views/content/remote/Card.vue:43
+msgid "Scanned successfully"
+msgstr ""
+
+#: front/src/views/content/remote/Card.vue:47
+msgid "Scanned with errors"
+msgstr ""
+
+#: front/src/views/content/remote/Card.vue:35
+msgid "Scanning... (%{ progress }%)"
+msgstr ""
+
+#: front/src/components/library/Artists.vue:10 src/components/library/Radios.vue:29
+#: front/src/components/manage/library/FilesTable.vue:5
+#: front/src/components/manage/users/InvitationsTable.vue:5
+#: front/src/components/manage/users/UsersTable.vue:5
+#: front/src/views/content/libraries/FilesTable.vue:5 src/views/playlists/List.vue:13
+msgid "Search"
+msgstr ""
+
+#: front/src/views/content/remote/ScanForm.vue:9
+msgid "Search a remote library"
+msgstr ""
+
+#: front/src/components/audio/Search.vue:2
+msgid "Search for some music"
+msgstr ""
+
+#: front/src/components/library/Track.vue:116
+msgid "Search on lyrics.wikia.com"
+msgstr ""
+
+#: front/src/components/library/Album.vue:33 src/components/library/Artist.vue:31
+#: front/src/components/library/Track.vue:40
+msgid "Search on Wikipedia"
+msgstr ""
+
+#: front/src/views/admin/Settings.vue:15
+msgid "Sections"
+msgstr ""
+
+#: front/src/components/library/radios/Builder.vue:45
+msgid "Select a filter"
+msgstr ""
+
+#: front/src/components/common/ActionTable.vue:64
+msgid "Select all %{ total } elements"
+msgid_plural "Select all %{ total } elements"
+msgstr[0] ""
+msgstr[1] ""
+
+#: front/src/components/common/ActionTable.vue:73
+msgid "Select only current page"
+msgstr ""
+
+#: front/src/components/Sidebar.vue:43 src/components/Sidebar.vue:88
+#: front/src/components/manage/users/UsersTable.vue:185
+#: front/src/views/admin/users/UsersDetail.vue:189
+msgid "Settings"
+msgstr ""
+
+#: front/src/components/auth/Settings.vue:10
+msgid "Settings updated"
+msgstr ""
+
+#: front/src/components/admin/SettingsGroup.vue:11
+msgid "Settings updated successfully."
+msgstr ""
+
+#: front/src/components/manage/users/InvitationForm.vue:27
+msgid "Share link"
+msgstr ""
+
+#: front/src/views/content/libraries/Detail.vue:15
+msgid "Share this link with other users so they can request an access to your library."
+msgstr ""
+
+#: front/src/views/content/libraries/Detail.vue:14
+#: front/src/views/content/remote/Card.vue:73
+msgid "Sharing link"
+msgstr ""
+
+#: front/src/components/audio/album/Card.vue:40
+msgid "Show %{ count } more track"
+msgid_plural "Show %{ count } more tracks"
+msgstr[0] ""
+msgstr[1] ""
+
+#: front/src/components/audio/artist/Card.vue:30
+msgid "Show 1 more album"
+msgid_plural "Show %{ count } more albums"
+msgstr[0] ""
+msgstr[1] ""
+
+#: front/src/views/Notifications.vue:10
+msgid "Show read notifications"
+msgstr ""
+
+#: front/src/components/manage/library/FilesTable.vue:97
+#: front/src/components/manage/users/InvitationsTable.vue:76
+#: front/src/components/manage/users/UsersTable.vue:87
+#: front/src/views/content/libraries/FilesTable.vue:111
+msgid "Showing results %{ start }-%{ end } on %{ total }"
+msgstr ""
+
+#: front/src/components/manage/users/UsersTable.vue:40
+#: front/src/views/admin/users/UsersDetail.vue:37
+msgid "Sign-up"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:84 src/components/library/Track.vue:69
+#: front/src/components/manage/library/FilesTable.vue:44
+#: front/src/views/content/libraries/FilesTable.vue:57
+#: front/src/components/mixins/Translations.vue:27
+msgid "Size"
+msgstr ""
+
+#: front/src/views/content/libraries/FilesTable.vue:15
+#: front/src/views/content/libraries/FilesTable.vue:229
+msgid "Skipped"
+msgstr ""
+
+#: front/src/views/content/libraries/Quota.vue:49
+msgid "Skipped files"
+msgstr ""
+
+#: front/src/components/requests/Form.vue:3
+msgid "Something's missing in the library? Let us know what you would like to listen!"
+msgstr ""
+
+#: front/src/components/audio/Search.vue:25
+msgid "Sorry, we did not found any album matching your query"
+msgstr ""
+
+#: front/src/components/audio/Search.vue:16
+msgid "Sorry, we did not found any artist matching your query"
+msgstr ""
+
+#: front/src/App.vue:40
+msgid "Source code"
+msgstr ""
+
+#: front/src/App.vue:39
+msgid "Source code (%{version})"
+msgstr ""
+
+#: front/src/components/auth/Profile.vue:23
+#: front/src/components/manage/users/UsersTable.vue:70
+msgid "Staff member"
+msgstr ""
+
+#: front/src/components/radios/Button.vue:4
+msgid "Start"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:85
+#: front/src/components/manage/users/InvitationsTable.vue:17
+#: front/src/components/manage/users/InvitationsTable.vue:39
+#: front/src/components/manage/users/UsersTable.vue:43
+#: front/src/views/content/libraries/Detail.vue:28
+msgid "Status"
+msgstr ""
+
+#: front/src/components/radios/Button.vue:3
+msgid "Stop"
+msgstr ""
+
+#: front/src/components/Sidebar.vue:150
+msgid "Stop radio"
+msgstr ""
+
+#: front/src/App.vue:11 src/components/requests/Form.vue:17
+msgid "Submit"
+msgstr ""
+
+#: front/src/components/requests/Form.vue:22
+msgid "Submit another request"
+msgstr ""
+
+#: front/src/components/auth/SubsonicTokenForm.vue:2
+msgid "Subsonic API password"
+msgstr ""
+
+#: front/src/App.vue:13
+msgid "Suggested choices"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:3
+msgid "Summary"
+msgstr ""
+
+#: front/src/components/playlists/Editor.vue:9
+msgid "Syncing changes to server..."
+msgstr ""
+
+#: front/src/components/common/CopyInput.vue:3
+msgid "Text copied to clipboard!"
+msgstr ""
+
+#: front/src/components/Home.vue:26
+msgid "That's simple: we loved Grooveshark and we want to build something even better."
+msgstr ""
+
+#: front/src/App.vue:58
+msgid "The funkwhale logo was kindly designed and provided by Francis Gading."
+msgstr ""
+
+#: front/src/views/content/libraries/Form.vue:34
+msgid "The library and all its tracks will be deleted. This action is irreversible."
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:39
+msgid "The music files you are uploading are tagged properly:"
+msgstr ""
+
+#: front/src/components/Home.vue:121
+msgid "The plaform is free and open-source, you can install it and modify it without worries"
+msgstr ""
+
+#: front/src/components/auth/SubsonicTokenForm.vue:4
+msgid "The Subsonic API is not available on this Funkwhale instance."
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:43
+msgid "The uploaded music files are in OGG, Flac or MP3 format"
+msgstr ""
+
+#: front/src/components/library/Album.vue:52
+msgid "This album is present in the following libraries:"
+msgstr ""
+
+#: front/src/components/library/Artist.vue:63
+msgid "This artist is present in the following libraries:"
+msgstr ""
+
+#: front/src/views/content/Home.vue:9
+msgid "This instance offers up to %{quota} of storage space to every user."
+msgstr ""
+
+#: front/src/components/auth/Profile.vue:16
+msgid "This is you!"
+msgstr ""
+
+#: front/src/components/common/ActionTable.vue:38
+msgid "This may affect a lot of elements, please double check this is really what you want."
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:52
+msgid "This reference will be used to group imported files together."
+msgstr ""
+
+#: front/src/components/library/Track.vue:125
+msgid "This track is present in the following libraries:"
+msgstr ""
+
+#: front/src/views/playlists/Detail.vue:37
+msgid "This will completely delete this playlist and cannot be undone."
+msgstr ""
+
+#: front/src/views/radios/Detail.vue:27
+msgid "This will completely delete this radio and cannot be undone."
+msgstr ""
+
+#: front/src/components/auth/SubsonicTokenForm.vue:51
+msgid "This will completely disable access to the Subsonic API using from account."
+msgstr ""
+
+#: front/src/App.vue:162 src/components/About.vue:55 src/components/Home.vue:154
+#: front/src/components/PageNotFound.vue:33 src/components/Sidebar.vue:203
+#: front/src/components/Sidebar.vue:204 src/components/audio/PlayButton.vue:54
+#: front/src/components/audio/PlayButton.vue:55
+#: front/src/components/audio/PlayButton.vue:56
+#: front/src/components/audio/PlayButton.vue:61
+#: front/src/components/audio/PlayButton.vue:64
+#: front/src/components/audio/PlayButton.vue:158 src/components/audio/Player.vue:216
+#: front/src/components/audio/Player.vue:273 src/components/audio/Player.vue:274
+#: front/src/components/audio/Player.vue:275 src/components/audio/Player.vue:276
+#: front/src/components/audio/Player.vue:277 src/components/audio/Player.vue:278
+#: front/src/components/audio/Player.vue:279 src/components/audio/Player.vue:280
+#: front/src/components/audio/Player.vue:281 src/components/audio/Player.vue:282
+#: front/src/components/audio/Player.vue:283 src/components/audio/Search.vue:65
+#: front/src/components/audio/SearchBar.vue:20 src/components/audio/SearchBar.vue:25
+#: front/src/components/audio/SearchBar.vue:26 src/components/audio/SearchBar.vue:27
+#: front/src/components/auth/Login.vue:77 src/components/auth/Login.vue:78
+#: front/src/components/auth/Logout.vue:20 src/components/auth/Profile.vue:47
+#: front/src/components/auth/Settings.vue:249 src/components/auth/Signup.vue:95
+#: front/src/components/auth/Signup.vue:96 src/components/auth/Signup.vue:97
+#: front/src/components/auth/Signup.vue:98
+#: front/src/components/auth/SubsonicTokenForm.vue:95
+#: front/src/components/auth/SubsonicTokenForm.vue:111
+#: front/src/components/favorites/List.vue:110
+#: front/src/components/favorites/TrackFavoriteIcon.vue:19
+#: front/src/components/favorites/TrackFavoriteIcon.vue:21
+#: front/src/components/forms/PasswordInput.vue:25
+#: front/src/components/library/Album.vue:101 src/components/library/Artist.vue:129
+#: front/src/components/library/Artists.vue:119
+#: front/src/components/library/Artists.vue:120
+#: front/src/components/library/FileUpload.vue:238
+#: front/src/components/library/FileUpload.vue:239
+#: front/src/components/library/FileUpload.vue:240
+#: front/src/components/library/FileUpload.vue:241 src/components/library/Home.vue:65
+#: front/src/components/library/Radios.vue:141 src/components/library/Radios.vue:142
+#: front/src/components/library/Track.vue:195
+#: front/src/components/library/radios/Builder.vue:233
+#: front/src/components/library/radios/Builder.vue:235
+#: front/src/components/library/radios/Builder.vue:236
+#: front/src/components/manage/library/FilesTable.vue:176
+#: front/src/components/manage/library/FilesTable.vue:190
+#: front/src/components/manage/users/InvitationForm.vue:58
+#: front/src/components/manage/users/InvitationsTable.vue:153
+#: front/src/components/manage/users/InvitationsTable.vue:167
+#: front/src/components/manage/users/UsersTable.vue:163
+#: front/src/components/manage/users/UsersTable.vue:173
+#: front/src/components/manage/users/UsersTable.vue:177
+#: front/src/components/manage/users/UsersTable.vue:181
+#: front/src/components/manage/users/UsersTable.vue:185
+#: front/src/components/metadata/ArtistCard.vue:49
+#: front/src/components/metadata/ReleaseCard.vue:53
+#: front/src/components/metadata/Search.vue:114
+#: front/src/components/metadata/Search.vue:130
+#: front/src/components/metadata/Search.vue:134
+#: front/src/components/metadata/Search.vue:138
+#: front/src/components/mixins/Translations.vue:7
+#: front/src/components/mixins/Translations.vue:8
+#: front/src/components/mixins/Translations.vue:10
+#: front/src/components/mixins/Translations.vue:11
+#: front/src/components/mixins/Translations.vue:16
+#: front/src/components/mixins/Translations.vue:17
+#: front/src/components/mixins/Translations.vue:18
+#: front/src/components/mixins/Translations.vue:19
+#: front/src/components/mixins/Translations.vue:20
+#: front/src/components/mixins/Translations.vue:21
+#: front/src/components/mixins/Translations.vue:22
+#: front/src/components/mixins/Translations.vue:23
+#: front/src/components/mixins/Translations.vue:24
+#: front/src/components/mixins/Translations.vue:25
+#: front/src/components/mixins/Translations.vue:26
+#: front/src/components/mixins/Translations.vue:27
+#: front/src/components/mixins/Translations.vue:28
+#: front/src/components/mixins/Translations.vue:29
+#: front/src/components/mixins/Translations.vue:30
+#: front/src/components/mixins/Translations.vue:31
+#: front/src/components/notifications/NotificationRow.vue:39
+#: front/src/components/notifications/NotificationRow.vue:40
+#: front/src/components/notifications/NotificationRow.vue:44
+#: front/src/components/notifications/NotificationRow.vue:45
+#: front/src/components/notifications/NotificationRow.vue:62
+#: front/src/components/playlists/Editor.vue:163 src/components/playlists/Form.vue:74
+#: front/src/components/playlists/Form.vue:81 src/components/playlists/Form.vue:85
+#: front/src/components/playlists/Form.vue:89
+#: front/src/components/playlists/PlaylistModal.vue:116
+#: front/src/components/playlists/TrackPlaylistIcon.vue:32
+#: front/src/components/requests/Form.vue:73 src/components/requests/Form.vue:74
+#: front/src/components/requests/Form.vue:75 src/views/Notifications.vue:74
+#: front/src/views/admin/Settings.vue:75 src/views/admin/Settings.vue:80
+#: front/src/views/admin/Settings.vue:81 src/views/admin/Settings.vue:82
+#: front/src/views/admin/Settings.vue:83 src/views/admin/Settings.vue:84
+#: front/src/views/admin/Settings.vue:85 src/views/admin/Settings.vue:86
+#: front/src/views/admin/library/Base.vue:16 src/views/admin/library/FilesList.vue:21
+#: front/src/views/admin/users/Base.vue:20
+#: front/src/views/admin/users/InvitationsList.vue:24
+#: front/src/views/admin/users/UsersDetail.vue:169
+#: front/src/views/admin/users/UsersDetail.vue:170
+#: front/src/views/admin/users/UsersDetail.vue:177
+#: front/src/views/admin/users/UsersDetail.vue:181
+#: front/src/views/admin/users/UsersDetail.vue:185
+#: front/src/views/admin/users/UsersDetail.vue:189
+#: front/src/views/admin/users/UsersList.vue:21 src/views/auth/EmailConfirm.vue:51
+#: front/src/views/auth/PasswordReset.vue:52 src/views/auth/PasswordReset.vue:53
+#: front/src/views/auth/PasswordResetConfirm.vue:62 src/views/content/Base.vue:19
+#: front/src/views/content/Home.vue:35 src/views/content/libraries/Card.vue:58
+#: front/src/views/content/libraries/Card.vue:59
+#: front/src/views/content/libraries/Card.vue:60
+#: front/src/views/content/libraries/Card.vue:61
+#: front/src/views/content/libraries/DetailArea.vue:24
+#: front/src/views/content/libraries/FilesTable.vue:226
+#: front/src/views/content/libraries/FilesTable.vue:229
+#: front/src/views/content/libraries/FilesTable.vue:230
+#: front/src/views/content/libraries/FilesTable.vue:233
+#: front/src/views/content/libraries/FilesTable.vue:234
+#: front/src/views/content/libraries/FilesTable.vue:237
+#: front/src/views/content/libraries/FilesTable.vue:238
+#: front/src/views/content/libraries/FilesTable.vue:241
+#: front/src/views/content/libraries/FilesTable.vue:242
+#: front/src/views/content/libraries/FilesTable.vue:258
+#: front/src/views/content/libraries/FilesTable.vue:259
+#: front/src/views/content/libraries/Form.vue:70
+#: front/src/views/content/libraries/Form.vue:71
+#: front/src/views/content/libraries/Form.vue:72
+#: front/src/views/content/libraries/Form.vue:73
+#: front/src/views/content/libraries/Form.vue:74
+#: front/src/views/content/libraries/Form.vue:106
+#: front/src/views/content/libraries/Form.vue:109
+#: front/src/views/content/libraries/Form.vue:129
+#: front/src/views/content/remote/Card.vue:131 src/views/content/remote/Card.vue:132
+#: front/src/views/content/remote/Card.vue:165 src/views/content/remote/Card.vue:166
+#: front/src/views/content/remote/ScanForm.vue:48 src/views/instance/Timeline.vue:57
+#: front/src/views/playlists/Detail.vue:90 src/views/playlists/List.vue:104
+#: front/src/views/playlists/List.vue:105 src/views/radios/Detail.vue:80
+msgid "This will erase your local data and disconnect you, do you want to continue?"
+msgid_plural "%{ count } tracks were added to your queue"
+msgstr[0] ""
+msgstr[1] ""
+
+#: front/src/components/auth/SubsonicTokenForm.vue:36
+msgid "This will log you out from existing devices that use the current password."
+msgstr ""
+
+#: front/src/components/playlists/Editor.vue:44
+msgid "This will remove all tracks from this playlist and cannot be undone."
+msgstr ""
+
+#: front/src/views/content/libraries/Quota.vue:90
+msgid "This will remove tracks that were uploaded but failed to be process by the server. This will remove those files completely and you will regain the corresponding quota."
+msgstr ""
+
+#: front/src/views/content/libraries/Quota.vue:38
+msgid "This will remove tracks that were uploaded but not processed yet. This will remove those files completely and you will regain the corresponding quota."
+msgstr ""
+
+#: front/src/views/content/libraries/Quota.vue:64
+msgid "This will remove tracks that were uploaded but skipped during import processes for various reasons. This will remove those files completely and you will regain the corresponding quota."
+msgstr ""
+
+#: front/src/components/audio/track/Table.vue:6
+#: front/src/components/manage/library/FilesTable.vue:37
+#: front/src/views/content/libraries/FilesTable.vue:51
+#: front/src/components/mixins/Translations.vue:26
+msgid "Title"
+msgstr ""
+
+#: front/src/components/library/Track.vue:53
+msgid "Track information"
+msgstr ""
+
+#: front/src/components/library/radios/Filter.vue:44
+msgid "Track matching filter"
+msgstr ""
+
+#: front/src/components/instance/Stats.vue:54
+msgid "tracks"
+msgstr ""
+
+#: front/src/components/library/Album.vue:43
+#: front/src/components/playlists/PlaylistModal.vue:33 src/views/content/Base.vue:8
+#: front/src/views/content/libraries/Detail.vue:8 src/views/playlists/Detail.vue:50
+#: front/src/views/radios/Detail.vue:34
+msgid "Tracks"
+msgstr ""
+
+#: front/src/components/library/Artist.vue:54
+msgid "Tracks by this artist"
+msgstr ""
+
+#: front/src/components/instance/Stats.vue:25
+msgid "Tracks favorited"
+msgstr ""
+
+#: front/src/components/instance/Stats.vue:19
+msgid "tracks listened"
+msgstr ""
+
+#: front/src/components/library/Track.vue:91
+#: front/src/components/manage/library/FilesTable.vue:41
+msgid "Type"
+msgstr ""
+
+#: front/src/views/content/remote/Card.vue:100 src/views/content/remote/Card.vue:105
+msgid "Unfollow"
+msgstr ""
+
+#: front/src/views/content/remote/Card.vue:101
+msgid "Unfollow this library?"
+msgstr ""
+
+#: front/src/components/About.vue:15
+msgid "Unfortunately, owners of this instance did not yet take the time to complete this page."
+msgstr ""
+
+#: front/src/components/Home.vue:37
+msgid "Unlimited music"
+msgstr ""
+
+#: front/src/components/auth/Settings.vue:50
+msgid "Update avatar"
+msgstr ""
+
+#: front/src/views/content/libraries/Form.vue:25
+msgid "Update library"
+msgstr ""
+
+#: front/src/components/playlists/Form.vue:33
+msgid "Update playlist"
+msgstr ""
+
+#: front/src/components/auth/Settings.vue:27
+msgid "Update settings"
+msgstr ""
+
+#: front/src/views/auth/PasswordResetConfirm.vue:21
+msgid "Update your password"
+msgstr ""
+
+#: front/src/views/content/libraries/Card.vue:44
+#: front/src/components/manage/users/UsersTable.vue:173
+#: front/src/views/content/libraries/DetailArea.vue:24
+#: front/src/views/admin/users/UsersDetail.vue:177
+msgid "Upload"
+msgstr ""
+
+#: front/src/components/auth/Settings.vue:45
+msgid "Upload a new avatar"
+msgstr ""
+
+#: front/src/views/content/Home.vue:6
+msgid "Upload audio content"
+msgstr ""
+
+#: front/src/views/content/libraries/FilesTable.vue:54
+msgid "Upload date"
+msgstr ""
+
+#: front/src/views/content/Home.vue:7
+msgid "Upload music files (mp3, ogg, flac, etc.) from your personal library directly from your browser to enjoy them here."
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:31
+msgid "Upload new tracks"
+msgstr ""
+
+#: front/src/views/admin/users/UsersDetail.vue:82
+msgid "Upload quota"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:99
+msgid "Uploaded"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:5
+msgid "Uploading"
+msgstr "Aan het uploaden"
+
+#: front/src/components/library/FileUpload.vue:102
+msgid "Uploading..."
+msgstr "Aan het uploaden..."
+
+#: front/src/App.vue:44
+msgid "Use another instance"
+msgstr "Een andere instantiëring gebruiken"
+
+#: front/src/views/auth/PasswordReset.vue:12
+msgid "Use this form to request a password reset. We will send an email to the given address with instructions to reset your password."
+msgstr ""
+"Met dit formulier kun je een nieuw wachtwoord aanvragen. Je ontvangt van ons "
+"een e-mail op jouw aangegeven adres met de instructies om je wachtwoord te "
+"vervangen."
+
+#: front/src/components/manage/users/InvitationsTable.vue:49
+msgid "Used"
+msgstr "Gebruikt"
+
+#: front/src/views/content/libraries/Detail.vue:26
+msgid "User"
+msgstr "Gebruiker"
+
+#: front/src/components/instance/Stats.vue:5
+msgid "User activity"
+msgstr "Activiteit van gebruikers"
+
+#: front/src/components/library/Album.vue:49 src/components/library/Artist.vue:60
+#: front/src/components/library/Track.vue:122
+msgid "User libraries"
+msgstr "Gebruikersbibliotheken"
+
+#: front/src/components/library/Radios.vue:20
+msgid "User radios"
+msgstr "Gebruikerradio's"
+
+#: front/src/components/auth/Signup.vue:19
+#: front/src/components/manage/users/UsersTable.vue:37
+#: front/src/components/mixins/Translations.vue:32
+msgid "Username"
+msgstr "Gebruikersnaam"
+
+#: front/src/components/auth/Login.vue:15
+msgid "Username or email"
+msgstr "Gebruikersnaam of e-mailadres"
+
+#: front/src/components/instance/Stats.vue:13
+msgid "users"
+msgstr "gebruikers"
+
+#: front/src/components/Sidebar.vue:94 src/views/admin/users/Base.vue:5
+#: front/src/views/admin/users/UsersList.vue:3 src/views/admin/users/UsersList.vue:21
+#: front/src/views/admin/Settings.vue:81
+msgid "Users"
+msgstr "Gebruikers"
+
+#: front/src/views/content/libraries/Quota.vue:29
+#: front/src/views/content/libraries/Quota.vue:56
+#: front/src/views/content/libraries/Quota.vue:82
+msgid "View files"
+msgstr "Bekijk bestanden"
+
+#: front/src/components/library/Album.vue:37 src/components/library/Artist.vue:35
+#: front/src/components/library/Track.vue:44
+#: front/src/components/metadata/ReleaseCard.vue:53
+#: front/src/components/metadata/ArtistCard.vue:49
+msgid "View on MusicBrainz"
+msgstr "Bekijk in MusicBrainz"
+
+#: front/src/views/content/libraries/Form.vue:18
+msgid "Visibility"
+msgstr "Zichtbaarheid"
+
+#: front/src/components/playlists/PlaylistModal.vue:20
+msgid "We cannot add the track to a playlist"
+msgstr "Dit nummer kan niet aan een afspeellijst toegevoegd worden"
+
+#: front/src/components/playlists/Form.vue:14
+msgid "We cannot create the playlist"
+msgstr "De afspeellijst kan niet aangemaakt worden"
+
+#: front/src/components/auth/Signup.vue:13
+msgid "We cannot create your account"
+msgstr "Jouw account kan niet aangemaakt worden"
+
+#: front/src/components/auth/Login.vue:7
+msgid "We cannot log you in"
+msgstr "Fout bij het inloggen"
+
+#: front/src/components/auth/Settings.vue:38
+msgid "We cannot save your avatar"
+msgstr "Je avatar kan niet opgeslagen worden"
+
+#: front/src/components/auth/Settings.vue:14
+msgid "We cannot save your settings"
+msgstr "Je instellingen kunnen niet opgeslagen worden"
+
+#: front/src/components/Home.vue:127
+msgid "We do not track you or bother you with ads"
+msgstr "We volgen je niet en storen je niet met reclame"
+
+#: front/src/views/Notifications.vue:26
+msgid "We don't have any notification to display!"
+msgstr "Geen melding om te tonen!"
+
+#: front/src/views/content/Home.vue:4
+msgid "We offer various way to grab new content and make it available here."
+msgstr "We hebben verscheidene manieren om nieuwe nummers beschikbaar te maken."
+
+#: front/src/components/library/FileUpload.vue:40
+msgid "we recommend using Picard for that purpose"
+msgstr "we raden aan om hiervoor Picard te gebruiken"
+
+#: front/src/components/Home.vue:7
+msgid "We think listening to music should be simple."
+msgstr "Omdat het makkelijk moet zijn naar muziek te luisteren."
+
+#: front/src/components/PageNotFound.vue:10
+msgid "We're sorry, the page you asked for does not exist:"
+msgstr "Helaas bestaat de opgevraagde pagina niet:"
+
+#: front/src/components/requests/Form.vue:21
+msgid "We've received your request, you'll get some groove soon ;)"
+msgstr ""
+
+#: front/src/components/Home.vue:5
+msgid "Welcome on Funkwhale"
+msgstr ""
+
+#: front/src/components/Home.vue:24
+msgid "Why funkwhale?"
+msgstr ""
+
+#: front/src/components/Sidebar.vue:115
+msgid "Yes"
+msgstr ""
+
+#: front/src/components/auth/Logout.vue:8
+msgid "Yes, log me out!"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:33
+msgid "You are about to upload music to your library. Before proceeding, please ensure that:"
+msgstr ""
+
+#: front/src/components/auth/Logout.vue:7
+msgid "You are currently logged in as %{ username }"
+msgstr ""
+
+#: front/src/views/content/Home.vue:17
+msgid "You can follow libraries from other users to get access to new music. Public libraries can be followed immediatly, while following a private library requires approval from its owner."
+msgstr ""
+
+#: front/src/components/Home.vue:133
+msgid "You can invite friends and family to your instance so they can enjoy your music"
+msgstr ""
+
+#: front/src/components/library/radios/Builder.vue:7
+msgid "You can use this interface to build your own custom radio, which will play tracks according to your criteria."
+msgstr ""
+
+#: front/src/components/auth/SubsonicTokenForm.vue:8
+msgid "You can use those to enjoy your playlist and music in offline mode, on your smartphone or tablet, for instance."
+msgstr ""
+
+#: front/src/components/Sidebar.vue:147
+msgid "You have a radio playing"
+msgstr ""
+
+#: front/src/App.vue:8
+msgid "You need to select an instance in order to continue"
+msgstr ""
+
+#: front/src/views/content/libraries/Form.vue:19
+msgid "You will be able to share your library with other people, regardless of it's visibility."
+msgstr ""
+
+#: front/src/components/auth/Settings.vue:100
+msgid "You will be logged out from this session and have to log in with the new one"
+msgstr ""
+
+#: front/src/components/auth/Settings.vue:71
+msgid "You will have to update your password on your clients that use this password."
+msgstr ""
+
+#: front/src/views/auth/EmailConfirm.vue:24
+msgid "Your email address was confirmed, you can now use the service without limitations."
+msgstr ""
+
+#: front/src/components/Home.vue:114
+msgid "Your music, your way"
+msgstr ""
+
+#: front/src/views/Notifications.vue:7
+msgid "Your notifications"
+msgstr ""
+
+#: front/src/views/auth/PasswordResetConfirm.vue:29
+msgid "Your password has been updated successfully."
+msgstr ""
+
+#: front/src/components/auth/Settings.vue:101
+msgid "Your Subsonic password will be changed to a new, random one, logging you out from devices that used the old Subsonic password"
+msgstr ""
+
+#: front/src/components/mixins/Translations.vue:8
+msgid "Activity visibility"
+msgstr ""
+
+#: front/src/components/mixins/Translations.vue:9
+msgid "Determine the visibility level of your activity"
+msgstr ""
+
+#: front/src/components/mixins/Translations.vue:11
+#: front/src/components/playlists/Form.vue:81 src/views/content/libraries/Form.vue:72
+msgid "Nobody except me"
+msgstr ""
+
+#: front/src/components/mixins/Translations.vue:12
+#: front/src/components/playlists/Form.vue:85 src/views/content/libraries/Form.vue:73
+msgid "Everyone on this instance"
+msgstr ""
+
+#: front/src/components/mixins/Translations.vue:18
+msgid "Accessed date"
+msgstr ""
+
+#: front/src/components/mixins/Translations.vue:19
+msgid "Modification date"
+msgstr ""
+
+#: front/src/components/mixins/Translations.vue:20
+msgid "Imported date"
+msgstr ""
+
+#: front/src/components/mixins/Translations.vue:22
+msgid "Track name"
+msgstr ""
+
+#: front/src/components/mixins/Translations.vue:23
+msgid "Album name"
+msgstr ""
+
+#: front/src/components/mixins/Translations.vue:30
+msgid "Sign-up date"
+msgstr ""
+
+#: front/src/components/playlists/Editor.vue:163
+msgid "Copy tracks from current queue to playlist"
+msgstr ""
+
+#: front/src/components/playlists/PlaylistModal.vue:116
+msgid "Add to this playlist"
+msgstr ""
+
+#: front/src/components/playlists/Form.vue:74
+msgid "My awesome playlist"
+msgstr ""
+
+#: front/src/components/playlists/Form.vue:89
+msgid "Everyone"
+msgstr ""
+
+#: front/src/components/auth/Signup.vue:95
+msgid "Sign Up"
+msgstr ""
+
+#: front/src/components/auth/Signup.vue:96
+msgid "Enter your invitation code (case insensitive)"
+msgstr ""
+
+#: front/src/components/auth/Signup.vue:97
+msgid "Enter your username"
+msgstr ""
+
+#: front/src/components/auth/Signup.vue:98
+msgid "Enter your email"
+msgstr ""
+
+#: front/src/components/auth/SubsonicTokenForm.vue:95
+msgid "Password updated"
+msgstr ""
+
+#: front/src/components/auth/SubsonicTokenForm.vue:111
+msgid "Access disabled"
+msgstr ""
+
+#: front/src/components/auth/Login.vue:77
+msgid "Enter your username or email"
+msgstr ""
+
+#: front/src/components/auth/Login.vue:78
+msgid "Log In"
+msgstr ""
+
+#: front/src/components/auth/Profile.vue:47
+msgid "%{ username }'s profile"
+msgstr ""
+
+#: front/src/components/auth/Logout.vue:20
+msgid "Log Out"
+msgstr ""
+
+#: front/src/components/auth/Settings.vue:249
+msgid "Account Settings"
+msgstr ""
+
+#: front/src/components/favorites/TrackFavoriteIcon.vue:19
+msgid "Remove from favorites"
+msgstr ""
+
+#: front/src/components/favorites/List.vue:110
+msgid "Your Favorites"
+msgstr ""
+
+#: front/src/components/library/Radios.vue:141
+msgid "Enter a radio name..."
+msgstr ""
+
+#: front/src/components/library/radios/Builder.vue:233
+msgid "Radio Builder"
+msgstr ""
+
+#: front/src/components/library/radios/Builder.vue:235
+msgid "My awesome radio"
+msgstr ""
+
+#: front/src/components/library/radios/Builder.vue:236
+msgid "My awesome description"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:238
+msgid "Upload refused, ensure the file is not too big and you have not reached your quota"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:239
+msgid "Impossible to upload this file, ensure it is not too big"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:240
+msgid "A network error occured while uploading this file"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:241
+msgid "Upload timeout, please try again"
+msgstr ""
+
+#: front/src/components/library/Artists.vue:119
+msgid "Enter an artist name..."
+msgstr ""
+
+#: front/src/components/library/Track.vue:195 src/components/audio/SearchBar.vue:27
+#: front/src/components/metadata/Search.vue:138
+msgid "Track"
+msgstr ""
+
+#: front/src/components/library/Home.vue:65
+msgid "Home"
+msgstr ""
+
+#: front/src/components/forms/PasswordInput.vue:25
+msgid "Show/hide password"
+msgstr ""
+
+#: front/src/components/requests/Form.vue:73
+msgid "The Beatles, Mickael Jackson…"
+msgstr ""
+
+#: front/src/components/requests/Form.vue:74
+msgid "The White Album, Thriller…"
+msgstr ""
+
+#: front/src/components/requests/Form.vue:75
+msgid "Use this comment box to add details to your request if needed"
+msgstr ""
+
+#: front/src/components/audio/PlayButton.vue:158
+msgid "%{ count } track was added to your queue"
+msgid_plural "%{ count } tracks were added to your queue"
+msgstr[0] ""
+msgstr[1] ""
+
+#: front/src/components/audio/Search.vue:65
+msgid "Artist, album, track..."
+msgstr ""
+
+#: front/src/components/audio/SearchBar.vue:20
+msgid "Search for artists, albums, tracks..."
+msgstr ""
+
+#: front/src/components/audio/Player.vue:216
+msgid "Queue shuffled!"
+msgstr ""
+
+#: front/src/components/audio/Player.vue:273
+msgid "Previous track"
+msgstr ""
+
+#: front/src/components/audio/Player.vue:274
+msgid "Play track"
+msgstr ""
+
+#: front/src/components/audio/Player.vue:275
+msgid "Pause track"
+msgstr ""
+
+#: front/src/components/audio/Player.vue:276
+msgid "Next track"
+msgstr ""
+
+#: front/src/components/audio/Player.vue:277
+msgid "Unmute"
+msgstr ""
+
+#: front/src/components/audio/Player.vue:278
+msgid "Mute"
+msgstr ""
+
+#: front/src/components/audio/Player.vue:279
+msgid "Looping disabled. Click to switch to single-track looping."
+msgstr ""
+
+#: front/src/components/audio/Player.vue:280
+msgid "Looping on a single track. Click to switch to whole queue looping."
+msgstr ""
+
+#: front/src/components/audio/Player.vue:281
+msgid "Looping on whole queue. Click to disable looping."
+msgstr ""
+
+#: front/src/components/audio/Player.vue:282
+msgid "Shuffle your queue"
+msgstr ""
+
+#: front/src/components/audio/Player.vue:283
+msgid "Clear your queue"
+msgstr ""
+
+#: front/src/components/Sidebar.vue:203
+msgid "Pending import requests"
+msgstr ""
+
+#: front/src/components/Sidebar.vue:204
+msgid "Pending follow requests"
+msgstr ""
+
+#: front/src/components/metadata/Search.vue:114
+msgid "Enter your search query..."
+msgstr ""
+
+#: front/src/components/manage/library/FilesTable.vue:176
+msgid "Search by title, artist, domain..."
+msgstr ""
+
+#: front/src/components/manage/users/InvitationForm.vue:58
+msgid "Leave empty for a random code"
+msgstr ""
+
+#: front/src/components/manage/users/InvitationsTable.vue:153
+msgid "Search by username, email, code..."
+msgstr ""
+
+#: front/src/components/manage/users/UsersTable.vue:163
+msgid "Search by username, email, name..."
+msgstr ""
+
+#: front/src/components/manage/users/UsersTable.vue:181
+#: front/src/views/admin/users/UsersDetail.vue:185 src/views/admin/Settings.vue:83
+msgid "Federation"
+msgstr ""
+
+#: front/src/components/Home.vue:154
+msgid "Welcome"
+msgstr ""
+
+#: front/src/views/content/remote/ScanForm.vue:48
+msgid "Enter a library url"
+msgstr ""
+
+#: front/src/views/content/remote/Card.vue:165
+msgid "Scan launched"
+msgstr ""
+
+#: front/src/views/content/remote/Card.vue:166
+msgid "Scan skipped (previous scan is too recent)"
+msgstr ""
+
+#: front/src/views/content/libraries/FilesTable.vue:226
+msgid "Search by title, artist, album..."
+msgstr ""
+
+#: front/src/views/content/libraries/FilesTable.vue:230
+msgid "Track was already present in one of your libraries"
+msgstr ""
+
+#: front/src/views/content/libraries/FilesTable.vue:234
+msgid "Track is uploaded but not processed by the server yet"
+msgstr ""
+
+#: front/src/views/content/libraries/FilesTable.vue:238
+msgid "An error occured while processing this track, ensure the track is correctly tagged"
+msgstr ""
+
+#: front/src/views/content/libraries/FilesTable.vue:242
+msgid "Import went on successfully"
+msgstr ""
+
+#: front/src/views/content/libraries/FilesTable.vue:259
+msgid "Relaunch import"
+msgstr ""
+
+#: front/src/views/content/libraries/Card.vue:58
+msgid "Visibility: nobody except me"
+msgstr ""
+
+#: front/src/views/content/libraries/Card.vue:59
+msgid "Visibility: everyone on this instance"
+msgstr ""
+
+#: front/src/views/content/libraries/Card.vue:60
+msgid "Visibility: everyone, including other instances"
+msgstr ""
+
+#: front/src/views/content/libraries/Card.vue:61
+msgid "Total size of the files in this library"
+msgstr ""
+
+#: front/src/views/content/libraries/Form.vue:70
+msgid "My awesome library"
+msgstr ""
+
+#: front/src/views/content/libraries/Form.vue:71
+msgid "This library contains my personnal music, I hope you will like it!"
+msgstr ""
+
+#: front/src/views/content/libraries/Form.vue:74
+msgid "Everyone, including other instances"
+msgstr ""
+
+#: front/src/views/content/libraries/Form.vue:106
+msgid "Library updated"
+msgstr ""
+
+#: front/src/views/content/libraries/Form.vue:109
+msgid "Library created"
+msgstr ""
+
+#: front/src/views/content/Home.vue:35
+msgid "Add and manage content"
+msgstr ""
+
+#: front/src/views/radios/Detail.vue:80
+msgid "Radio"
+msgstr ""
+
+#: front/src/views/instance/Timeline.vue:57
+msgid "Instance Timeline"
+msgstr ""
+
+#: front/src/views/playlists/Detail.vue:90
+msgid "Playlist"
+msgstr ""
+
+#: front/src/views/playlists/List.vue:105
+msgid "Enter an playlist name..."
+msgstr ""
+
+#: front/src/views/admin/library/Base.vue:16
+msgid "Manage library"
+msgstr ""
+
+#: front/src/views/admin/users/UsersDetail.vue:169
+msgid "Determine if the user account is active or not. Inactive users cannot login or use the service."
+msgstr ""
+
+#: front/src/views/admin/users/UsersDetail.vue:170
+msgid "Determine how much content the user can upload. Leave empty to use the default value of the instance."
+msgstr ""
+
+#: front/src/views/admin/users/Base.vue:20
+msgid "Manage users"
+msgstr ""
+
+#: front/src/views/admin/Settings.vue:75
+msgid "Instance settings"
+msgstr ""
+
+#: front/src/views/admin/Settings.vue:80
+msgid "Instance information"
+msgstr ""
+
+#: front/src/views/admin/Settings.vue:84
+msgid "Subsonic"
+msgstr ""
+
+#: front/src/views/admin/Settings.vue:85
+msgid "Statistics"
+msgstr ""
+
+#: front/src/views/admin/Settings.vue:86
+msgid "Error reporting"
+msgstr ""
diff --git a/front/locales/oc/LC_MESSAGES/app.po b/front/locales/oc/LC_MESSAGES/app.po
index 7c0ab7a242ecc61148d5d965fa2c3b440c6dd44f..feffda9dcf57203744d5eff6aa4f986e7404e064 100644
--- a/front/locales/oc/LC_MESSAGES/app.po
+++ b/front/locales/oc/LC_MESSAGES/app.po
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: front 1.0.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-10-05 20:10+0200\n"
-"PO-Revision-Date: 2018-10-05 21:32+0000\n"
+"POT-Creation-Date: 2019-01-11 15:55+0100\n"
+"PO-Revision-Date: 2019-01-20 16:50+0000\n"
 "Last-Translator: Quentí <quentin_antonin@hotmail.com>\n"
 "Language-Team: none\n"
 "Language: oc\n"
@@ -16,7 +16,7 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 2.20\n"
+"X-Generator: Weblate 3.2.2\n"
 
 #: front/src/components/playlists/PlaylistModal.vue:9
 msgid "\"%{ title }\", by %{ artist }"
@@ -30,14 +30,14 @@ msgstr "(%{ index } sus %{ length })"
 msgid "(empty)"
 msgstr "(voida)"
 
-#: front/src/components/common/ActionTable.vue:44
-#: front/src/components/common/ActionTable.vue:53
+#: front/src/components/common/ActionTable.vue:57
+#: front/src/components/common/ActionTable.vue:66
 msgid "%{ count } on %{ total } selected"
 msgid_plural "%{ count } on %{ total } selected"
 msgstr[0] "%{ count } sus %{ total } element seleccionat"
 msgstr[1] "%{ count } sus %{ total } elements seleccionats"
 
-#: front/src/components/Sidebar.vue:107 src/components/audio/album/Card.vue:54
+#: front/src/components/Sidebar.vue:110 src/components/audio/album/Card.vue:54
 #: front/src/views/content/libraries/Card.vue:39
 #: src/views/content/remote/Card.vue:26
 msgid "%{ count } track"
@@ -57,6 +57,12 @@ msgid_plural "%{ count } tracks matching combined filters"
 msgstr[0] "%{ count } pista correspond als filtres seleccionats"
 msgstr[1] "%{ count } pistas correspondon als filtres seleccionats"
 
+#: front/src/components/audio/PlayButton.vue:180
+msgid "%{ count } track was added to your queue"
+msgid_plural "%{ count } tracks were added to your queue"
+msgstr[0] "%{ count } pista ajustada a la fila"
+msgstr[1] "%{ count } pistas ajustadas a la fila"
+
 #: front/src/components/playlists/Card.vue:18
 msgid "%{ count} track"
 msgid_plural "%{ count } tracks"
@@ -75,13 +81,25 @@ msgstr "%{ hours } h %{ minutes } min"
 msgid "%{ minutes } min"
 msgstr "%{ minutes } min"
 
-#: front/src/components/activity/Like.vue:7
-msgid "%{ user } favorited a track"
-msgstr "%{ user } a aimat una pista"
+#: front/src/components/notifications/NotificationRow.vue:40
+msgid "%{ username } accepted your follow on library \"%{ library }\""
+msgstr ""
+"%{ username } acceptèt vòstra demanda de seguiment de la bibliotèca « %{ "
+"library } »"
+
+#: front/src/components/notifications/NotificationRow.vue:39
+msgid "%{ username } followed your library \"%{ library }\""
+msgstr "%{ username } seguís vòstra bibliotèca « %{ library } »"
+
+#: front/src/components/auth/Profile.vue:46
+msgid "%{ username }'s profile"
+msgstr "Perfil de %{ username }"
 
-#: front/src/components/activity/Listen.vue:7
-msgid "%{ user } listened to a track"
-msgstr "%{ user } a escotat una pista"
+#: front/src/components/Footer.vue:5
+msgid "<translate :translate-params=\"{instanceName: instanceHostname}\">About %{instanceName}</translate>"
+msgstr ""
+"<translate :translate-params=\"{instanceName: instanceHostname}\">Tocant "
+"%{instanceName}</translate>"
 
 #: front/src/components/audio/artist/Card.vue:41
 msgid "1 album"
@@ -95,15 +113,28 @@ msgid_plural "%{ count } favorites"
 msgstr[0] "1 favorit"
 msgstr[1] "%{ count } favorits"
 
+#: front/src/components/library/FileUpload.vue:225
+#: front/src/components/library/FileUpload.vue:226
+msgid "A network error occured while uploading this file"
+msgstr "Una error de ret s’es producha en enviar aqueste fichièr"
+
 #: front/src/components/About.vue:5
 msgid "About %{ instance }"
 msgstr "A prepaus de %{ instance }"
 
-#: front/src/App.vue:53
+#: front/src/components/Footer.vue:6
+msgid "About %{instanceName}"
+msgstr "A prepaus de %{instanceName}"
+
+#: front/src/components/Footer.vue:45
 msgid "About Funkwhale"
 msgstr "A prepaus de Funkwhale"
 
-#: front/src/App.vue:34 src/components/About.vue:8 src/components/About.vue:55
+#: front/src/components/Footer.vue:10
+msgid "About page"
+msgstr "Pagina « a prepaus »"
+
+#: front/src/components/About.vue:8 src/components/About.vue:64
 msgid "About this instance"
 msgstr "A prepaus d’aquesta instància"
 
@@ -115,18 +146,31 @@ msgstr "Acceptar"
 msgid "Accepted"
 msgstr "Acceptat"
 
+#: front/src/components/auth/SubsonicTokenForm.vue:111
+msgid "Access disabled"
+msgstr "Accès desactivat"
+
 #: front/src/components/Home.vue:106
 msgid "Access your music from a clean interface that focus on what really matters"
 msgstr "Accedissètz a vòstra musica d’una interfàcia afinada estant, adaptada a çò que compta vertadièrament"
 
-#: front/src/views/admin/users/UsersDetail.vue:54
-msgid "Account active"
-msgstr "Compte actiu"
+#: front/src/components/mixins/Translations.vue:19
+#: front/src/components/mixins/Translations.vue:20
+msgid "Accessed date"
+msgstr "Data d’accès"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:78
+msgid "Account data"
+msgstr "Donadas del compte"
 
 #: front/src/components/auth/Settings.vue:5
 msgid "Account settings"
 msgstr "Paramètres del compte"
 
+#: front/src/components/auth/Settings.vue:264
+msgid "Account Settings"
+msgstr "Paramètres del compte"
+
 #: front/src/components/manage/users/UsersTable.vue:39
 msgid "Account status"
 msgstr "Estat del compte"
@@ -135,17 +179,23 @@ msgstr "Estat del compte"
 msgid "Account's email"
 msgstr "Adreça electronica del compte"
 
+#: front/src/views/admin/moderation/AccountsList.vue:3
+#: front/src/views/admin/moderation/AccountsList.vue:24
+#: front/src/views/admin/moderation/Base.vue:8
+msgid "Accounts"
+msgstr "Comptes"
+
 #: front/src/views/content/libraries/Detail.vue:29
 msgid "Action"
 msgstr "Accion"
 
-#: front/src/components/common/ActionTable.vue:86
+#: front/src/components/common/ActionTable.vue:99
 msgid "Action %{ action } was launched successfully on %{ count } element"
 msgid_plural "Action %{ action } was launched successfully on %{ count } elements"
 msgstr[0] "L’action %{ action } es estada lançada corrèctament sus %{ count } element"
 msgstr[1] "L’action %{ action } es estada lançada corrèctament sus %{ count } elements"
 
-#: front/src/components/common/ActionTable.vue:8
+#: front/src/components/common/ActionTable.vue:21
 #: front/src/components/library/radios/Builder.vue:64
 msgid "Actions"
 msgstr "Accions"
@@ -154,11 +204,33 @@ msgstr "Accions"
 msgid "Active"
 msgstr "Actiu"
 
-#: front/src/components/Sidebar.vue:75
+#: front/src/views/admin/moderation/AccountsDetail.vue:199
+#: front/src/views/admin/moderation/DomainsDetail.vue:144
 msgid "Activity"
 msgstr "Activitat"
 
-#: front/src/components/Sidebar.vue:78 src/views/content/Base.vue:19
+#: front/src/components/mixins/Translations.vue:7
+#: front/src/components/mixins/Translations.vue:8
+msgid "Activity visibility"
+msgstr "Visibilitat de l’activitat"
+
+#: front/src/views/admin/moderation/DomainsList.vue:18
+msgid "Add"
+msgstr "Ajustar"
+
+#: front/src/views/admin/moderation/DomainsList.vue:13
+msgid "Add a domain"
+msgstr "Ajustar un domeni"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:4
+msgid "Add a new moderation rule"
+msgstr "Ajustar una nòva règla de moderacion"
+
+#: front/src/views/content/Home.vue:35
+msgid "Add and manage content"
+msgstr "Ajustar e gerir lo contengut"
+
+#: front/src/components/Sidebar.vue:75 src/views/content/Base.vue:18
 msgid "Add content"
 msgstr "Ajustar de contengut"
 
@@ -170,20 +242,28 @@ msgstr "Ajustar de filtres"
 msgid "Add filters to customize your radio"
 msgstr "Ajustar de filtre per dire de personalizar vòstra ràdio"
 
+#: front/src/components/audio/PlayButton.vue:64
+msgid "Add to current queue"
+msgstr "Ajustar a la lista actuala"
+
 #: front/src/components/favorites/TrackFavoriteIcon.vue:4
-#: front/src/components/favorites/TrackFavoriteIcon.vue:21
+#: front/src/components/favorites/TrackFavoriteIcon.vue:28
 msgid "Add to favorites"
 msgstr "Ajustar als favorits"
 
 #: front/src/components/playlists/TrackPlaylistIcon.vue:6
-#: front/src/components/playlists/TrackPlaylistIcon.vue:32
-msgid "Add to playlist..."
-msgstr "Ajustar a la lista de lectura..."
+#: front/src/components/playlists/TrackPlaylistIcon.vue:34
+msgid "Add to playlist…"
+msgstr "Ajustar a la lista de lectura…"
 
 #: front/src/components/audio/PlayButton.vue:14
 msgid "Add to queue"
 msgstr "Ajustar a la lista"
 
+#: front/src/components/playlists/PlaylistModal.vue:116
+msgid "Add to this playlist"
+msgstr "Ajustar a aquesta lista de lectura"
+
 #: front/src/components/playlists/PlaylistModal.vue:54
 msgid "Add track"
 msgstr "Ajustar una pista"
@@ -192,16 +272,16 @@ msgstr "Ajustar una pista"
 msgid "Admin"
 msgstr "Admin"
 
-#: front/src/components/Sidebar.vue:82
+#: front/src/components/Sidebar.vue:79
 msgid "Administration"
 msgstr "Administracion"
 
-#: front/src/components/audio/track/Table.vue:8
+#: front/src/components/audio/SearchBar.vue:26
+#: src/components/audio/track/Table.vue:8
+#: front/src/components/library/Album.vue:159
 #: front/src/components/manage/library/FilesTable.vue:39
-#: front/src/views/content/libraries/FilesTable.vue:53
-#: front/src/components/library/Album.vue:101
-#: src/components/audio/SearchBar.vue:26
 #: front/src/components/metadata/Search.vue:134
+#: front/src/views/content/libraries/FilesTable.vue:56
 msgid "Album"
 msgstr "Album"
 
@@ -211,13 +291,19 @@ msgid_plural "Album containing %{ count } tracks, by %{ artist }"
 msgstr[0] "Album contenent %{ count } pista, de %{ artist }"
 msgstr[1] "Album contenent %{ count } pistas, de %{ artist }"
 
-#: front/src/components/library/Track.vue:20
+#: front/src/components/mixins/Translations.vue:24
+#: front/src/components/mixins/Translations.vue:25
+msgid "Album name"
+msgstr "Nom de l’album"
+
+#: front/src/components/library/Track.vue:27
 msgid "Album page"
 msgstr "Pagina de l’album"
 
 #: front/src/components/audio/Search.vue:19
 #: src/components/instance/Stats.vue:48
-#: front/src/components/requests/Form.vue:9
+#: front/src/views/admin/moderation/AccountsDetail.vue:321
+#: front/src/views/admin/moderation/DomainsDetail.vue:257
 msgid "Albums"
 msgstr "Albums"
 
@@ -238,33 +324,43 @@ msgstr "Una error s’es producha en enregistrar vòstras modificacions"
 msgid "An unknown error happend, this can mean the server is down or cannot be reached"
 msgstr "Una error desconeguda encontrada, aquò pòt significar que lo servidor es fòra servici o pòt pas èsser atengut"
 
+#: front/src/components/notifications/NotificationRow.vue:62
+msgid "Approve"
+msgstr "Validar"
+
 #: front/src/components/auth/Logout.vue:5
 msgid "Are you sure you want to log out?"
 msgstr "Volètz vertadièrament vos desconnectar ?"
 
-#: front/src/components/audio/track/Table.vue:7
+#: front/src/components/audio/SearchBar.vue:25
+#: src/components/audio/track/Table.vue:7
+#: front/src/components/library/Artist.vue:137
 #: front/src/components/manage/library/FilesTable.vue:38
-#: front/src/views/content/libraries/FilesTable.vue:52
-#: front/src/components/library/Artist.vue:129
-#: src/components/audio/SearchBar.vue:25
 #: front/src/components/metadata/Search.vue:130
+#: front/src/views/content/libraries/FilesTable.vue:55
 msgid "Artist"
 msgstr "Artista"
 
-#: front/src/components/requests/Form.vue:5
-#: src/components/mixins/Translations.vue:24
+#: front/src/components/mixins/Translations.vue:25
+#: front/src/components/mixins/Translations.vue:26
 msgid "Artist name"
 msgstr "Nom de l’artista"
 
 #: front/src/components/library/Album.vue:22
-#: src/components/library/Track.vue:23
+#: src/components/library/Track.vue:33
 msgid "Artist page"
 msgstr "Pagina de l’artista"
 
+#: front/src/components/audio/Search.vue:65
+msgid "Artist, album, track…"
+msgstr "Artista, album, pista…"
+
 #: front/src/components/audio/Search.vue:10
 #: src/components/instance/Stats.vue:42
-#: front/src/components/library/Library.vue:7
-#: src/components/library/Artists.vue:120
+#: front/src/components/library/Artists.vue:119
+#: src/components/library/Library.vue:7
+#: front/src/views/admin/moderation/AccountsDetail.vue:313
+#: front/src/views/admin/moderation/DomainsDetail.vue:249
 msgid "Artists"
 msgstr "Artistas"
 
@@ -272,6 +368,8 @@ msgstr "Artistas"
 #: src/components/library/Artists.vue:25
 #: front/src/components/library/Radios.vue:44
 #: front/src/components/manage/library/FilesTable.vue:19
+#: front/src/components/manage/moderation/AccountsTable.vue:21
+#: front/src/components/manage/moderation/DomainsTable.vue:19
 #: front/src/components/manage/users/UsersTable.vue:19
 #: front/src/views/content/libraries/FilesTable.vue:31
 #: front/src/views/playlists/List.vue:27
@@ -282,6 +380,15 @@ msgstr "Ascendent"
 msgid "Ask for a password reset"
 msgstr "Demandar un nòu senhal"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:245
+#: front/src/views/admin/moderation/DomainsDetail.vue:202
+msgid "Audio content"
+msgstr "Contengut àudio"
+
+#: front/src/components/ShortcutsModal.vue:55
+msgid "Audio player shortcuts"
+msgstr "Acorchis del lector àudio"
+
 #: front/src/components/playlists/PlaylistModal.vue:26
 msgid "Available playlists"
 msgstr "Listas de lectura disponiblas"
@@ -290,17 +397,29 @@ msgstr "Listas de lectura disponiblas"
 msgid "Avatar"
 msgstr "Avatar"
 
-#: front/src/views/auth/EmailConfirm.vue:17 src/views/auth/PasswordReset.vue:24
+#: front/src/views/auth/PasswordReset.vue:24
 #: front/src/views/auth/PasswordResetConfirm.vue:18
 msgid "Back to login"
 msgstr "Tornar a la pagina de connexion"
 
-#: front/src/components/library/Track.vue:80
+#: front/src/components/library/Track.vue:129
 #: front/src/components/manage/library/FilesTable.vue:42
-#: front/src/components/mixins/Translations.vue:28
+#: front/src/components/mixins/Translations.vue:29
+#: front/src/components/mixins/Translations.vue:30
 msgid "Bitrate"
 msgstr "Debit"
 
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:19
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:34
+msgid "Block everything"
+msgstr "O blocar tot"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:112
+msgid "Block everything from this account or domain. This will prevent any interaction with the entity, and purge related content (uploads, libraries, follows, etc.)"
+msgstr ""
+"O blocar tot d’aqueste compte estant. Empacharà totas interaccion amb l’"
+"entitat e purgarà lo contengut ligat (pistas, bibliotèca, seguiments, etc.)"
+
 #: front/src/components/Sidebar.vue:18 src/components/library/Library.vue:4
 msgid "Browse"
 msgstr "Percórrer"
@@ -330,11 +449,20 @@ msgid "By %{ artist }"
 msgstr "De %{ artist }"
 
 #: front/src/views/content/remote/Card.vue:103
-msgid "By unfollowing this library, you will loose access to its content."
-msgstr "En quitar de seguir aquesta bibliotèca, perdretz l’accès a son contengut."
+msgid "By unfollowing this library, you loose access to its content."
+msgstr ""
+"En quitar de seguir aquesta bibliotèca, perdretz l’accès a son contengut."
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:261
+#: front/src/views/admin/moderation/DomainsDetail.vue:217
+msgid "Cached size"
+msgstr "Talha del cache"
 
 #: front/src/components/common/DangerousButton.vue:17
+#: front/src/components/library/Album.vue:58
+#: src/components/library/Track.vue:76
 #: front/src/components/library/radios/Filter.vue:53
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:54
 #: front/src/components/playlists/PlaylistModal.vue:63
 msgid "Cancel"
 msgstr "Anullar"
@@ -347,7 +475,12 @@ msgstr "Pistas candidatas"
 msgid "Cannot change your password"
 msgstr "Lo senhal pòt pas se cambiar"
 
-#: front/src/App.vue:65
+#: front/src/components/library/FileUpload.vue:222
+#: front/src/components/library/FileUpload.vue:223
+msgid "Cannot upload this file, ensure it is not too big"
+msgstr "Mandadís del fichièr impossible, asseguratz-vos qu’es pas tròp pesuc"
+
+#: front/src/components/Footer.vue:21
 msgid "Change language"
 msgstr "Cambiar la lenga"
 
@@ -380,7 +513,11 @@ msgstr "L’actualizacion de vòstra senhal cambiarà tanben lo de l’API Subso
 msgid "Changing your password will have the following consequences"
 msgstr "Lo cambiament de senhal a las consequéncias seguentas"
 
-#: front/src/App.vue:6
+#: front/src/components/Footer.vue:40
+msgid "Chat room"
+msgstr "Sala de discutida"
+
+#: front/src/App.vue:13
 msgid "Choose your instance"
 msgstr "Causissètz vòstra instància"
 
@@ -397,14 +534,22 @@ msgstr "Escafar"
 msgid "Clear playlist"
 msgstr "Escafar la lista de lectura"
 
+#: front/src/components/audio/Player.vue:363
+msgid "Clear your queue"
+msgstr "Voidar la fila"
+
 #: front/src/components/Home.vue:44
 msgid "Click once, listen for hours using built-in radios"
 msgstr "Amb un clic, escotatz d’oras de musica a la ràdio"
 
-#: front/src/components/library/FileUpload.vue:76
+#: front/src/components/library/FileUpload.vue:75
 msgid "Click to select files to upload or drag and drop files or directories"
 msgstr "Clicatz per causir los fichièrs d’enviar o lisatz los fichièrs o repertòris"
 
+#: front/src/components/ShortcutsModal.vue:20
+msgid "Close"
+msgstr "Tampar"
+
 #: front/src/components/manage/users/InvitationForm.vue:26
 #: front/src/components/manage/users/InvitationsTable.vue:42
 msgid "Code"
@@ -412,14 +557,9 @@ msgstr "Còdi"
 
 #: front/src/components/audio/album/Card.vue:43
 #: front/src/components/audio/artist/Card.vue:33
-#: front/src/components/discussion/Comment.vue:20
 msgid "Collapse"
 msgstr "Plegar"
 
-#: front/src/components/requests/Form.vue:14
-msgid "Comment"
-msgstr "Comentari"
-
 #: front/src/components/library/radios/Builder.vue:62
 msgid "Config"
 msgstr "Configuracion"
@@ -430,21 +570,62 @@ msgstr "Confirmar"
 
 #: front/src/views/auth/EmailConfirm.vue:4 src/views/auth/EmailConfirm.vue:20
 #: front/src/views/auth/EmailConfirm.vue:51
-msgid "Confirm your email"
+msgid "Confirm your e-mail address"
 msgstr "Confirmar vòstra adreça electronica"
 
 #: front/src/views/auth/EmailConfirm.vue:13
 msgid "Confirmation code"
 msgstr "Còdi de confirmacion"
 
+#: front/src/components/common/ActionTable.vue:7
+msgid "Content have been updated, click refresh to see up-to-date content"
+msgstr ""
+"Lo contengut es estat actualizat, clicar per tornar cargar e veire lo "
+"contengut a jorn"
+
+#: front/src/components/Footer.vue:48
+msgid "Contribute"
+msgstr "Contribuir"
+
+#: front/src/components/audio/EmbedWizard.vue:19
 #: front/src/components/common/CopyInput.vue:8
 msgid "Copy"
 msgstr "Copiar"
 
+#: front/src/components/playlists/Editor.vue:163
+msgid "Copy tracks from current queue to playlist"
+msgstr "Copiar las pistas de la fila a la lista de lectura"
+
+#: front/src/components/audio/EmbedWizard.vue:21
+msgid "Copy/paste this code in your website HTML"
+msgstr "Copiatz / Pegatz aqueste còdi al vòstre site HTML"
+
+#: front/src/components/library/Track.vue:91
+msgid "Copyright"
+msgstr "Copyright"
+
+#: front/src/views/auth/EmailConfirm.vue:7
+msgid "Could not confirm your e-mail address"
+msgstr "Confirmacion vòstra adreça electronica impossibla"
+
+#: front/src/views/content/remote/ScanForm.vue:3
+msgid "Could not fetch remote library"
+msgstr "Error en recuperar la bibliotèca alonhada"
+
+#: front/src/views/content/libraries/FilesTable.vue:213
+msgid "Could not process this track, ensure it is tagged correctly"
+msgstr ""
+"Una error s’es producha en tractar aquesta pista, asseguratz-vos qu’es "
+"corrèctament etiquetada"
+
 #: front/src/components/Home.vue:85
 msgid "Covers, lyrics, our goal is to have them all ;)"
 msgstr "Jaqueta d’albums, paraulas, nòstra tòca es d’o aver tot ;)"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:58
+msgid "Create"
+msgstr "Crear"
+
 #: front/src/components/auth/Signup.vue:4
 msgid "Create a funkwhale account"
 msgstr "Crear un compte funkwhale"
@@ -461,10 +642,6 @@ msgstr "Crear una nòva lista de lectura"
 msgid "Create an account"
 msgstr "Crear un compte"
 
-#: front/src/components/requests/Card.vue:25
-msgid "Create import"
-msgstr "Crear un import"
-
 #: front/src/views/content/libraries/Form.vue:26
 msgid "Create library"
 msgstr "Crear una bibliotèca"
@@ -475,13 +652,14 @@ msgstr "Crear mon compte"
 
 #: front/src/components/playlists/Form.vue:34
 msgid "Create playlist"
-msgstr "Crear una lista de lectura"
+msgstr "Crear la lista de lectura"
 
 #: front/src/components/library/Radios.vue:23
 msgid "Create your own radio"
 msgstr "Crear vòstra pròpria ràdio"
 
 #: front/src/components/manage/users/InvitationsTable.vue:40
+#: front/src/components/mixins/Translations.vue:16
 #: front/src/components/mixins/Translations.vue:17
 msgid "Creation date"
 msgstr "Data de creacion"
@@ -506,11 +684,16 @@ msgstr "Utilizacion actuala"
 msgid "Date"
 msgstr "Data"
 
-#: front/src/views/content/libraries/Form.vue:29
-#: src/views/playlists/Detail.vue:33
+#: front/src/components/ShortcutsModal.vue:75
+msgid "Decrease volume"
+msgstr "Reduire lo volum"
+
 #: front/src/components/manage/library/FilesTable.vue:190
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:61
 #: front/src/components/manage/users/InvitationsTable.vue:167
-#: front/src/views/content/libraries/FilesTable.vue:258
+#: front/src/views/content/libraries/FilesTable.vue:233
+#: front/src/views/content/libraries/Form.vue:29
+#: src/views/playlists/Detail.vue:33
 msgid "Delete"
 msgstr "Suprimir"
 
@@ -518,6 +701,10 @@ msgstr "Suprimir"
 msgid "Delete library"
 msgstr "Suprimir la bibliotèca"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:69
+msgid "Delete moderation rule"
+msgstr "Suprimir la règla de moderacion"
+
 #: front/src/views/playlists/Detail.vue:38
 msgid "Delete playlist"
 msgstr "Suprimir la lista de lectura"
@@ -530,10 +717,16 @@ msgstr "Suprimir la ràdio"
 msgid "Delete this library?"
 msgstr "Suprimir aquesta bibliotèca ?"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:63
+msgid "Delete this moderation rule?"
+msgstr "Suprimir aquesta règla de moderacion ?"
+
 #: front/src/components/favorites/List.vue:34
 #: src/components/library/Artists.vue:26
 #: front/src/components/library/Radios.vue:47
 #: front/src/components/manage/library/FilesTable.vue:20
+#: front/src/components/manage/moderation/AccountsTable.vue:22
+#: front/src/components/manage/moderation/DomainsTable.vue:20
 #: front/src/components/manage/users/UsersTable.vue:20
 #: front/src/views/content/libraries/FilesTable.vue:32
 #: front/src/views/playlists/List.vue:28
@@ -553,6 +746,15 @@ msgstr "Detalhs"
 msgid "Details"
 msgstr "Detalhs"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:455
+msgid "Determine how much content the user can upload. Leave empty to use the default value of the instance."
+msgstr "Definissètz la quantitat de contengut que l’utilizaire pòt enviar. Daissatz void per emplegar las valors per defaut de l’instància."
+
+#: front/src/components/mixins/Translations.vue:8
+#: front/src/components/mixins/Translations.vue:9
+msgid "Determine the visibility level of your activity"
+msgstr "Determinatz lo nivèl de visibilitat de vòstra activitat"
+
 #: front/src/components/auth/Settings.vue:104
 #: front/src/components/auth/SubsonicTokenForm.vue:52
 msgid "Disable access"
@@ -566,14 +768,30 @@ msgstr "Desactivar l’accès via Subsonic"
 msgid "Disable Subsonic API access?"
 msgstr "Desactivar l’accès a l’API Subsonic ?"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:18
+#: front/src/views/admin/moderation/AccountsDetail.vue:128
+#: front/src/views/admin/moderation/AccountsDetail.vue:132
+msgid "Disabled"
+msgstr "Desactivat"
+
 #: front/src/components/auth/SubsonicTokenForm.vue:14
 msgid "Discover how to use Funkwhale from other apps"
 msgstr "Aprenètz a utilizar Funkwhale amb d’autras aplicacions"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:103
+msgid "Display name"
+msgstr "Nom public"
+
 #: front/src/components/library/radios/Builder.vue:30
 msgid "Display publicly"
 msgstr "Mostrar publicament"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:122
+msgid "Do not download any media file (audio, album cover, account avatar…) from this account or domain. This will purge existing content as well."
+msgstr ""
+"Telecargar pas cap de mèdia (àudio, album, tampa, avatar de compte…) d’"
+"aqueste compte o domeni. Purgarà tanben lo contengut existent."
+
 #: front/src/components/playlists/Editor.vue:42
 msgid "Do you want to clear the playlist \"%{ playlist }\"?"
 msgstr "Volètz voidar la lista de lectura « %{ playlist } »  ?"
@@ -590,21 +808,34 @@ msgstr "Volètz suprimir la lista de lectura « %{ playlist } »  ?"
 msgid "Do you want to delete the radio \"%{ radio }\"?"
 msgstr "Volètz suprimir la ràdio « %{ playlist } »  ?"
 
-#: front/src/components/common/ActionTable.vue:29
+#: front/src/components/common/ActionTable.vue:36
 msgid "Do you want to launch %{ action } on %{ count } element?"
 msgid_plural "Do you want to launch %{ action } on %{ count } elements?"
 msgstr[0] "Volètz lançar l’accion « %{ action } » sus %{ count } element ?"
 msgstr[1] "Volètz lançar l’accion « %{ action } » sus %{ count } elements ?"
 
-#: front/src/components/Sidebar.vue:104
+#: front/src/components/Sidebar.vue:107
 msgid "Do you want to restore your previous queue?"
 msgstr "Volètz restablir vòstra fila precedenta ?"
 
-#: front/src/App.vue:37
+#: front/src/components/Footer.vue:31
 msgid "Documentation"
 msgstr "Documentacion"
 
-#: front/src/components/library/Track.vue:48
+#: front/src/components/manage/moderation/AccountsTable.vue:40
+#: front/src/components/mixins/Translations.vue:34
+#: front/src/views/admin/moderation/AccountsDetail.vue:93
+#: front/src/components/mixins/Translations.vue:35
+msgid "Domain"
+msgstr "Domenu"
+
+#: front/src/views/admin/moderation/Base.vue:5
+#: front/src/views/admin/moderation/DomainsList.vue:3
+#: front/src/views/admin/moderation/DomainsList.vue:48
+msgid "Domains"
+msgstr "Domenis"
+
+#: front/src/components/library/Track.vue:55
 msgid "Download"
 msgstr "Telecargar"
 
@@ -613,13 +844,18 @@ msgid "Drag and drop rows to reorder tracks in the playlist"
 msgstr "Lisatz las linhas per triar las pistas de la lista de lectura"
 
 #: front/src/components/audio/track/Table.vue:9
-#: src/components/library/Track.vue:58
+#: src/components/library/Track.vue:111
 #: front/src/components/manage/library/FilesTable.vue:43
-#: front/src/views/content/libraries/FilesTable.vue:56
-#: front/src/components/mixins/Translations.vue:29
+#: front/src/components/mixins/Translations.vue:30
+#: front/src/views/content/libraries/FilesTable.vue:59
+#: front/src/components/mixins/Translations.vue:31
 msgid "Duration"
 msgstr "Durada"
 
+#: front/src/views/auth/EmailConfirm.vue:23
+msgid "E-mail address confirmed"
+msgstr "Corrièl confirmat"
+
 #: front/src/components/Home.vue:93
 msgid "Easy to use"
 msgstr "Simple d’utilizar"
@@ -633,36 +869,102 @@ msgid "Edit instance info"
 msgstr "Editrar las informacions d’aquesta instància"
 
 #: front/src/components/radios/Card.vue:22 src/views/playlists/Detail.vue:30
-msgid "Edit..."
-msgstr "Editar..."
+msgid "Edit…"
+msgstr "Modificar…"
 
 #: front/src/components/auth/Signup.vue:29
 #: front/src/components/manage/users/UsersTable.vue:38
 msgid "Email"
 msgstr "Corrièl"
 
-#: front/src/views/admin/users/UsersDetail.vue:29
+#: front/src/views/admin/moderation/AccountsDetail.vue:111
 msgid "Email address"
 msgstr "Adreça electronica"
 
-#: front/src/views/auth/EmailConfirm.vue:23
-msgid "Email confirmed"
-msgstr "Corrièl confirmat"
+#: front/src/components/library/Album.vue:44
+#: src/components/library/Track.vue:62
+msgid "Embed"
+msgstr "Integrar"
+
+#: front/src/components/audio/EmbedWizard.vue:20
+msgid "Embed code"
+msgstr "Còdi d’integracion"
+
+#: front/src/components/library/Album.vue:48
+msgid "Embed this album on your website"
+msgstr "Integrar aqueste album a un site web"
+
+#: front/src/components/library/Track.vue:66
+msgid "Embed this track on your website"
+msgstr "Integrar aquesta pista a un site web"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:230
+#: front/src/views/admin/moderation/DomainsDetail.vue:187
+msgid "Emitted library follows"
+msgstr "Seguiments de bibliotècas enviats"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:214
+#: front/src/views/admin/moderation/DomainsDetail.vue:171
+msgid "Emitted messages"
+msgstr "Messatge emés"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:8
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:17
+#: front/src/views/admin/moderation/AccountsDetail.vue:127
+#: front/src/views/admin/moderation/AccountsDetail.vue:131
+msgid "Enabled"
+msgstr "Activat"
 
 #: front/src/views/playlists/Detail.vue:29
 msgid "End edition"
 msgstr "Acabar l’edicion"
 
+#: front/src/views/content/remote/ScanForm.vue:50
+msgid "Enter a library URL"
+msgstr "Picatz l’URL d’una bibliotèca"
+
+#: front/src/components/library/Radios.vue:140
+msgid "Enter a radio name…"
+msgstr "Escrivètz un nom de ràdio…"
+
+#: front/src/components/library/Artists.vue:118
+msgid "Enter artist name…"
+msgstr "Escrivètz un nom d’artista…"
+
+#: front/src/views/playlists/List.vue:107
+msgid "Enter playlist name…"
+msgstr "Escrivètz un nom de lista de lectura…"
+
+#: front/src/components/auth/Signup.vue:100
+msgid "Enter your email"
+msgstr "Escrivètz vòstre adreça electronica"
+
+#: front/src/components/auth/Signup.vue:96 src/components/auth/Signup.vue:97
+msgid "Enter your invitation code (case insensitive)"
+msgstr "Escrivètz vòstre còdi d’invitacion (pas sensible a la cassa)"
+
+#: front/src/components/metadata/Search.vue:114
+msgid "Enter your search query…"
+msgstr "Escrivètz vòstra recèrca…"
+
+#: front/src/components/auth/Signup.vue:99
+msgid "Enter your username"
+msgstr "Escrivètz vòstre nom d’utilizaire"
+
+#: front/src/components/auth/Login.vue:77
+msgid "Enter your username or email"
+msgstr "Escrivètz vòstre nom d’utilizaire o corrièl"
+
 #: front/src/components/auth/SubsonicTokenForm.vue:20
 #: front/src/views/content/libraries/Form.vue:4
 msgid "Error"
 msgstr "Error"
 
-#: front/src/views/content/remote/Card.vue:39
-msgid "Error during scan"
-msgstr "Error en explorant"
+#: front/src/views/admin/Settings.vue:87
+msgid "Error reporting"
+msgstr "Rapòrt d’error"
 
-#: front/src/components/common/ActionTable.vue:79
+#: front/src/components/common/ActionTable.vue:92
 msgid "Error while applying action"
 msgstr "Error en tractar l’accion"
 
@@ -674,24 +976,27 @@ msgstr "Error en demandar un novèl senhal"
 msgid "Error while changing your password"
 msgstr "Error en cambiar lo senhal"
 
-#: front/src/views/auth/EmailConfirm.vue:7
-msgid "Error while confirming your email"
-msgstr "Error en confirmar l’adreça electronica"
+#: front/src/views/admin/moderation/DomainsList.vue:6
+msgid "Error while creating domain"
+msgstr "Error en crear lo domeni"
 
 #: front/src/components/manage/users/InvitationForm.vue:4
 msgid "Error while creating invitation"
 msgstr "Error en crear l’invitacion"
 
-#: front/src/views/content/remote/ScanForm.vue:3
-msgid "Error while fetching remote library"
-msgstr "Error en recuperar la bibliotèca alonhada"
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:7
+msgid "Error while creating rule"
+msgstr "Error en crear la règla"
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:126
+msgid "Error while fetching node info"
+msgstr "Error en recuperar las informacions del nos"
 
 #: front/src/components/admin/SettingsGroup.vue:5
 msgid "Error while saving settings"
 msgstr "Error en enregistrar los paramètres"
 
-#: front/src/views/content/libraries/FilesTable.vue:16
-#: front/src/views/content/libraries/FilesTable.vue:237
+#: front/src/views/content/libraries/FilesTable.vue:212
 msgid "Errored"
 msgstr "Perturbat"
 
@@ -699,20 +1004,28 @@ msgstr "Perturbat"
 msgid "Errored files"
 msgstr "Fichièrs amb errors"
 
-#: front/src/views/content/remote/Card.vue:58
-msgid "Errored tracks:"
-msgstr "Pistas en error :"
+#: front/src/components/playlists/Form.vue:89
+msgid "Everyone"
+msgstr "Tot lo monde"
+
+#: front/src/components/mixins/Translations.vue:11
+#: front/src/components/playlists/Form.vue:85
+#: src/views/content/libraries/Form.vue:73
+#: front/src/components/mixins/Translations.vue:12
+msgid "Everyone on this instance"
+msgstr "Lo monde d’aquesta instància"
+
+#: front/src/views/content/libraries/Form.vue:74
+msgid "Everyone, across all instances"
+msgstr "Tot lo monde, per totas las instàncias"
 
 #: front/src/components/library/radios/Builder.vue:61
 msgid "Exclude"
 msgstr "Exclure"
 
-#: front/src/components/discussion/Comment.vue:14
-msgid "Expand"
-msgstr "Dobrir"
-
 #: front/src/components/manage/users/InvitationsTable.vue:41
-#: front/src/components/mixins/Translations.vue:21
+#: front/src/components/mixins/Translations.vue:22
+#: front/src/components/mixins/Translations.vue:23
 msgid "Expiration date"
 msgstr "Data d’expiracion"
 
@@ -724,12 +1037,28 @@ msgstr "Expirada"
 msgid "Expired/used"
 msgstr "Expirada/utilizada"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:110
+msgid "Explain why you're applying this policy. Depending on your instance configuration, this will help you remember why you acted on this account or domain, and may be displayed publicly to help users understand what moderation rules are in place."
+msgstr ""
+
+#: front/src/views/content/libraries/FilesTable.vue:16
+msgid "Failed"
+msgstr "Fracàs"
+
+#: front/src/views/content/remote/Card.vue:58
+msgid "Failed tracks:"
+msgstr "Pistas en error :"
+
 #: front/src/components/Sidebar.vue:66
 msgid "Favorites"
 msgstr "Favorits"
 
-#: front/src/components/library/FileUpload.vue:83
-msgid "File name"
+#: front/src/views/admin/Settings.vue:84
+msgid "Federation"
+msgstr "Federacion"
+
+#: front/src/components/library/FileUpload.vue:84
+msgid "Filename"
 msgstr "Nom del fichièr"
 
 #: front/src/views/admin/library/Base.vue:5
@@ -742,23 +1071,37 @@ msgid "Filter name"
 msgstr "Nom del filtre"
 
 #: front/src/views/content/libraries/FilesTable.vue:17
-#: front/src/views/content/libraries/FilesTable.vue:241
+#: front/src/views/content/libraries/FilesTable.vue:216
 msgid "Finished"
 msgstr "Acabat"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:42
+#: front/src/components/manage/moderation/DomainsTable.vue:41
+#: front/src/views/admin/moderation/AccountsDetail.vue:159
+#: front/src/views/admin/moderation/DomainsDetail.vue:78
+msgid "First seen"
+msgstr "Primièra aparicion"
+
+#: front/src/components/mixins/Translations.vue:17
+#: front/src/components/mixins/Translations.vue:18
+msgid "First seen date"
+msgstr "Data de primièra aparicion"
+
 #: front/src/views/content/remote/Card.vue:83
 msgid "Follow"
 msgstr "Seguir"
 
-#: front/src/views/content/remote/Card.vue:88
-msgid "Follow pending approval"
-msgstr "Abonament en espèra de validacion"
-
 #: front/src/views/content/Home.vue:16
 msgid "Follow remote libraries"
 msgstr "Seguir de bibliotècas alonhadas"
 
+#: front/src/views/content/remote/Card.vue:88
+msgid "Follow request pending approval"
+msgstr "Abonament en espèra de validacion"
+
+#: front/src/components/mixins/Translations.vue:38
 #: front/src/views/content/libraries/Detail.vue:7
+#: front/src/components/mixins/Translations.vue:39
 msgid "Followers"
 msgstr "Seguidors"
 
@@ -766,19 +1109,10 @@ msgstr "Seguidors"
 msgid "Following"
 msgstr "Abonat"
 
-#: front/src/components/activity/Like.vue:14
-#: src/components/activity/Listen.vue:14
-msgid "from %{ album } by %{ artist }"
-msgstr "de l’album %{ album } per %{ artist }"
-
-#: front/src/components/library/Track.vue:13
+#: front/src/components/library/Track.vue:17
 msgid "From album %{ album } by %{ artist }"
 msgstr "De l’album %{ album } per %{ artist }"
 
-#: front/src/App.vue:55
-msgid "Funkwhale is a free and open-source project run by volunteers. You can help us improve the platform by reporting bugs, suggesting features and share the project with your friends!"
-msgstr "Funkwhale es un projècte liure e gratuit, menat per de benevols. Podètz ajudar a melhorar lo servici en senhalar los problèmas que trobatz, en suggerir de melhoraments e ne’n parlant altorn de vos !"
-
 #: front/src/components/auth/SubsonicTokenForm.vue:7
 msgid "Funkwhale is compatible with other music players that support the Subsonic API."
 msgstr "Funkwhale es compatible amb d’autres lectors de musica compatibles amb l’API Subsonic."
@@ -799,6 +1133,10 @@ msgstr "Funkwhale es a gratís e vos dòna lo contròla de vòstra musica."
 msgid "Funkwhale takes care of handling your music"
 msgstr "Funkwhale prend cura de vòstra musica"
 
+#: front/src/components/ShortcutsModal.vue:38
+msgid "General shortcuts"
+msgstr "Acrochis generals"
+
 #: front/src/components/manage/users/InvitationForm.vue:16
 msgid "Get a new invitation"
 msgstr "Obténer una novèla invitacion"
@@ -809,16 +1147,18 @@ msgstr "Menatz-me a la bibliotèca"
 
 #: front/src/components/Home.vue:76
 msgid "Get quality metadata about your music thanks to <a href=\"%{ url }\" target=\"_blank\">MusicBrainz</a>"
-msgstr ""
-"Obtenètz de metadonadas de qualitat per vòstra musica gràcia a <a href=\"%{ "
-"url }\" target=\"_blank\">MusicBrainz</a>"
+msgstr "Obtenètz de metadonadas de qualitat per vòstra musica gràcia a <a href=\"%{ url }\" target=\"_blank\">MusicBrainz</a>"
 
 #: front/src/views/content/Home.vue:12 src/views/content/Home.vue:19
 msgid "Get started"
 msgstr "Començar"
 
-#: front/src/components/common/ActionTable.vue:21
-#: front/src/components/common/ActionTable.vue:27
+#: front/src/components/Footer.vue:37
+msgid "Getting help"
+msgstr "Obténer d’ajuda"
+
+#: front/src/components/common/ActionTable.vue:34
+#: front/src/components/common/ActionTable.vue:54
 msgid "Go"
 msgstr "Zo"
 
@@ -826,9 +1166,13 @@ msgstr "Zo"
 msgid "Go to home page"
 msgstr "Tornar a l’acuèlh"
 
-#: front/src/App.vue:73
-msgid "Help us translate Funkwhale"
-msgstr "Ajudar a traduire Funkwhale"
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:114
+msgid "Hide account or domain content, except from followers."
+msgstr "Amagar lo contengut del compte o del demoni, levat pels seguidors."
+
+#: front/src/components/library/Home.vue:65
+msgid "Home"
+msgstr "Acuèlh"
 
 #: front/src/components/instance/Stats.vue:36
 msgid "Hours of music"
@@ -855,10 +1199,19 @@ msgid "Import reference"
 msgstr "Importar la referéncia"
 
 #: front/src/views/content/libraries/FilesTable.vue:11
-#: front/src/views/content/libraries/FilesTable.vue:55
+#: front/src/views/content/libraries/FilesTable.vue:58
 msgid "Import status"
 msgstr "Estatut de l’import"
 
+#: front/src/views/content/libraries/FilesTable.vue:217
+msgid "Imported"
+msgstr "Importat"
+
+#: front/src/components/mixins/Translations.vue:21
+#: front/src/components/mixins/Translations.vue:22
+msgid "Imported date"
+msgstr "Data d’import"
+
 #: front/src/components/favorites/TrackFavoriteIcon.vue:3
 msgid "In favorites"
 msgstr "Als favorits"
@@ -867,16 +1220,43 @@ msgstr "Als favorits"
 msgid "Inactive"
 msgstr "Actiu"
 
+#: front/src/components/ShortcutsModal.vue:71
+msgid "Increase volume"
+msgstr "Aumentar lo volum"
+
+#: front/src/views/auth/PasswordReset.vue:53
+msgid "Input the email address binded to your account"
+msgstr "Picatz l’adreça de corrièl ligada a vòstre compte"
+
 #: front/src/components/playlists/Editor.vue:31
 msgid "Insert from queue (%{ count } track)"
 msgid_plural "Insert from queue (%{ count } tracks)"
 msgstr[0] "Inserir de la fila (%{ count } pista)"
 msgstr[1] "Inserir de la fila (%{ count } pistas)"
 
+#: front/src/views/admin/moderation/DomainsDetail.vue:71
+msgid "Instance data"
+msgstr "Donadas de l’instància"
+
+#: front/src/views/admin/Settings.vue:80
+msgid "Instance information"
+msgstr "Info. de l’instància"
+
 #: front/src/components/library/Radios.vue:9
 msgid "Instance radios"
 msgstr "Ràdios de l’instància"
 
+#: front/src/views/admin/Settings.vue:75
+msgid "Instance settings"
+msgstr "Paramètres de l’intància"
+
+#: front/src/components/library/FileUpload.vue:229
+#: front/src/components/library/FileUpload.vue:230
+msgid "Invalid file type, ensure you are uploading an audio file. Supported file extensions are %{ extensions }"
+msgstr ""
+"Tipe de fichièr pas valid, asseguratz-vos d’enviar un fichièr àudio. Las "
+"extensions compatiblas son %{ extensions }"
+
 #: front/src/components/auth/Signup.vue:42
 #: front/src/components/manage/users/InvitationForm.vue:11
 msgid "Invitation code"
@@ -892,52 +1272,73 @@ msgstr "Còdi d’invitacion (opcional)"
 msgid "Invitations"
 msgstr "Invitacions"
 
-#: front/src/App.vue:42
+#: front/src/components/Footer.vue:41
 msgid "Issue tracker"
 msgstr "Traçador de problèmas"
 
-#: front/src/views/content/libraries/Home.vue:9
-msgid "It looks like you don't have any library yet, it's time to create one!"
-msgstr "Sembla qu’avètz pas cap de bibliotèca pel moment, es ora de ne crear una !"
-
 #: front/src/components/Home.vue:50
 msgid "Keep a track of your favorite songs"
 msgstr "Gardatz una traça de vòstras cançons favoritas"
 
+#: front/src/components/Footer.vue:33 src/components/ShortcutsModal.vue:3
+msgid "Keyboard shortcuts"
+msgstr "Acorchis clavièr"
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:161
+msgid "Known accounts"
+msgstr "Comptes coneguts"
+
 #: front/src/views/content/remote/Home.vue:14
 msgid "Known libraries"
 msgstr "Bibliotècas conegudas"
 
 #: front/src/components/manage/users/UsersTable.vue:41
-#: front/src/views/admin/users/UsersDetail.vue:45
-#: front/src/components/mixins/Translations.vue:31
+#: front/src/components/mixins/Translations.vue:32
+#: front/src/views/admin/moderation/AccountsDetail.vue:184
+#: front/src/components/mixins/Translations.vue:33
 msgid "Last activity"
 msgstr "Darrièra activitat"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:167
+#: front/src/views/admin/moderation/DomainsDetail.vue:86
+msgid "Last checked"
+msgstr "Darrièra verificacion"
+
 #: front/src/components/playlists/PlaylistModal.vue:32
 msgid "Last modification"
 msgstr "Darrièra modificacion"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:43
+msgid "Last seen"
+msgstr "Darrièra visita"
+
+#: front/src/components/mixins/Translations.vue:18
+#: front/src/components/mixins/Translations.vue:19
+msgid "Last seen date"
+msgstr "Darrièra visita"
+
 #: front/src/views/content/remote/Card.vue:56
 msgid "Last update:"
 msgstr "Darrièra actualizacion :"
 
-#: front/src/components/common/ActionTable.vue:40
+#: front/src/components/common/ActionTable.vue:47
 msgid "Launch"
 msgstr "Aviar"
 
-#: front/src/views/content/remote/Card.vue:63
-msgid "Launch scan"
-msgstr "Aviar l’analisi"
-
 #: front/src/components/Home.vue:10
 msgid "Learn more about this instance"
 msgstr "Ne saber mai tocant aquesta instància"
 
-#: front/src/components/requests/Form.vue:10
-msgid "Leave this field empty if you're requesting the whole discography."
-msgstr "Daissar aqueste camp void se volètz suggerir totas las discografia."
+#: front/src/components/manage/users/InvitationForm.vue:58
+msgid "Leave empty for a random code"
+msgstr "Daissar void per obténer un còdi aleatòri"
+
+#: front/src/components/audio/EmbedWizard.vue:7
+msgid "Leave empty for a responsive widget"
+msgstr "Daissar void per un widget adaptatiu"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:297
+#: front/src/views/admin/moderation/DomainsDetail.vue:233
 #: front/src/views/content/Base.vue:5
 msgid "Libraries"
 msgstr "Bibliotècas"
@@ -947,56 +1348,77 @@ msgid "Libraries help you organize and share your music collections. You can upl
 msgstr "Las bibliotècas vos ajudan a organizar e partejar vòstras colleccions de musica. Podètz enviar vòstra pròpria collecion musicala a Funkwhale e la partejar amb vòstres amics e vòstra familha."
 
 #: front/src/components/instance/Stats.vue:30
-#: front/src/components/manage/users/UsersTable.vue:177
-#: front/src/views/admin/users/UsersDetail.vue:181
+#: front/src/components/manage/users/UsersTable.vue:173
+#: front/src/views/admin/moderation/AccountsDetail.vue:464
 msgid "Library"
 msgstr "Bibliotèca"
 
+#: front/src/views/content/libraries/Form.vue:109
+msgid "Library created"
+msgstr "Bibliotèca creada"
+
+#: front/src/views/content/libraries/Form.vue:129
+msgid "Library deleted"
+msgstr "Bibliotèca suprimida"
+
 #: front/src/views/admin/library/FilesList.vue:3
 msgid "Library files"
 msgstr "Fichièrs de la bibliotèca"
 
-#: front/src/App.vue:31
-msgid "Links"
-msgstr "Ligams"
+#: front/src/views/content/libraries/Form.vue:106
+msgid "Library updated"
+msgstr "Bibliotèca actualizada"
+
+#: front/src/components/library/Track.vue:100
+msgid "License"
+msgstr "Licéncia"
 
 #: front/src/views/content/libraries/Detail.vue:21
-msgid "Loading followers..."
-msgstr "Cargament dels seguidors..."
+msgid "Loading followers…"
+msgstr "Cargament dels seguidors…"
 
 #: front/src/views/content/libraries/Home.vue:3
-msgid "Loading Libraries..."
-msgstr "Cargament de las bibliotècas..."
+msgid "Loading Libraries…"
+msgstr "Cargament de las bibliotècas…"
 
 #: front/src/views/content/libraries/Detail.vue:3
 #: front/src/views/content/libraries/Upload.vue:3
-msgid "Loading library data..."
-msgstr "Cargament de las donadas de la bibliotèca..."
+msgid "Loading library data…"
+msgstr "Cargament de las donadas de la bibliotèca…"
 
 #: front/src/views/Notifications.vue:4
-msgid "Loading notifications..."
-msgstr "Cargament de las notificacions..."
+msgid "Loading notifications…"
+msgstr "Cargament de las notificacions…"
 
 #: front/src/views/content/remote/Home.vue:3
 msgid "Loading remote libraries..."
 msgstr "Cargament de las bibliotècas alonhadas..."
 
-#: front/src/views/instance/Timeline.vue:4
-msgid "Loading timeline..."
-msgstr "Cargament del flux d’actualitat..."
-
 #: front/src/views/content/libraries/Quota.vue:4
-msgid "Loading usage data..."
-msgstr "Cargament de l’utilizacion de las donadas..."
+msgid "Loading usage data…"
+msgstr "Cargament de l’utilizacion de las donadas…"
 
 #: front/src/components/favorites/List.vue:5
-msgid "Loading your favorites..."
-msgstr "Cargament de vòstres favorits..."
+msgid "Loading your favorites…"
+msgstr "Cargament dels favorits…"
+
+#: front/src/components/manage/moderation/AccountsTable.vue:59
+#: front/src/views/admin/moderation/AccountsDetail.vue:18
+msgid "Local account"
+msgstr "Compte local"
+
+#: front/src/components/auth/Login.vue:78
+msgid "Log In"
+msgstr "Connexion"
 
 #: front/src/components/auth/Login.vue:4
 msgid "Log in to your Funkwhale account"
 msgstr "Connectatz-vos a vòstre compte Funkwhale"
 
+#: front/src/components/auth/Logout.vue:20
+msgid "Log Out"
+msgstr "Desconnexion"
+
 #: front/src/components/Sidebar.vue:38
 msgid "Logged in as %{ username }"
 msgstr "Connectat coma %{ username }"
@@ -1005,18 +1427,54 @@ msgstr "Connectat coma %{ username }"
 msgid "Login"
 msgstr "Connexion"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:119
+msgid "Login status"
+msgstr "Estat del compte"
+
 #: front/src/components/Sidebar.vue:52
 msgid "Logout"
 msgstr "Desconnexion"
 
-#: front/src/components/library/Track.vue:105
+#: front/src/views/content/libraries/Home.vue:9
+msgid "Looks like you don't have a library, it's time to create one."
+msgstr ""
+"Sembla qu’avètz pas cap de bibliotèca pel moment, es ora de ne crear una."
+
+#: front/src/components/audio/Player.vue:353
+#: src/components/audio/Player.vue:354
+msgid "Looping disabled. Click to switch to single-track looping."
+msgstr "Repeticion desactivada. Clicatz per activar la repeticion de la pista actuala."
+
+#: front/src/components/audio/Player.vue:356
+#: src/components/audio/Player.vue:357
+msgid "Looping on a single track. Click to switch to whole queue looping."
+msgstr "Repeticion de la pista actuala. Clicatz per activar la repeticion de tota la fila."
+
+#: front/src/components/audio/Player.vue:359
+#: src/components/audio/Player.vue:360
+msgid "Looping on whole queue. Click to disable looping."
+msgstr "Repeticion de tota la fila, clicatz per desactivar la repeticion."
+
+#: front/src/components/library/Track.vue:150
 msgid "Lyrics"
 msgstr "Paraulas"
 
+#: front/src/components/Sidebar.vue:210
+msgid "Main menu"
+msgstr "Menú màger"
+
+#: front/src/views/admin/library/Base.vue:16
+msgid "Manage library"
+msgstr "Gerir la bibliotèca"
+
 #: front/src/components/playlists/PlaylistModal.vue:3
 msgid "Manage playlists"
 msgstr "Gerir las listas de lectura"
 
+#: front/src/views/admin/users/Base.vue:20
+msgid "Manage users"
+msgstr "Gerir los utilizaires"
+
 #: front/src/views/playlists/List.vue:8
 msgid "Manage your playlists"
 msgstr "Gerir vòstras listas de lectura"
@@ -1025,42 +1483,103 @@ msgstr "Gerir vòstras listas de lectura"
 msgid "Mark all as read"
 msgstr "Las marcar totas coma legidas"
 
-#: front/src/views/admin/users/UsersDetail.vue:94
+#: front/src/components/notifications/NotificationRow.vue:44
+msgid "Mark as read"
+msgstr "Marcar coma legidas"
+
+#: front/src/components/notifications/NotificationRow.vue:45
+msgid "Mark as unread"
+msgstr "Marcar coma pas legidas"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:281
 msgid "MB"
 msgstr "Mo"
 
-#: front/src/components/Sidebar.vue:63
+#: front/src/components/audio/Player.vue:346
+msgid "Media player"
+msgstr "Lector mèdia"
+
+#: front/src/components/Footer.vue:32
+msgid "Mobile and desktop apps"
+msgstr "Aplicacions mobil e de burèu"
+
+#: front/src/components/Sidebar.vue:97
+#: src/components/manage/users/UsersTable.vue:177
+#: front/src/views/admin/moderation/AccountsDetail.vue:468
+#: front/src/views/admin/moderation/Base.vue:21
+msgid "Moderation"
+msgstr "Moderacion"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:49
+#: front/src/views/admin/moderation/DomainsDetail.vue:42
+msgid "Moderation policies help you control how your instance interact with a given domain or account."
+msgstr ""
+"Las politicas de moderacion vos ajudan a contrarotlar cossí vòstra instància "
+"deu interagir amb un compte o domeni donat."
+
+#: front/src/components/mixins/Translations.vue:20
+#: front/src/components/mixins/Translations.vue:21
+msgid "Modification date"
+msgstr "Data de modificacion"
+
+#: front/src/components/Sidebar.vue:63 src/views/admin/Settings.vue:82
 msgid "Music"
 msgstr "Musica"
 
+#: front/src/components/audio/Player.vue:352
+msgid "Mute"
+msgstr "Copar lo son"
+
 #: front/src/components/Sidebar.vue:34
 msgid "My account"
 msgstr "Mon compte"
 
+#: front/src/components/library/radios/Builder.vue:236
+msgid "My awesome description"
+msgstr "Ma descripcion tròp crana"
+
+#: front/src/views/content/libraries/Form.vue:70
+msgid "My awesome library"
+msgstr "Ma bibliotèca tròp crana"
+
+#: front/src/components/playlists/Form.vue:74
+msgid "My awesome playlist"
+msgstr "Ma lista de lectura tròp crana"
+
+#: front/src/components/library/radios/Builder.vue:235
+msgid "My awesome radio"
+msgstr "Ma ràdio tròp crana"
+
 #: front/src/views/content/libraries/Home.vue:6
 msgid "My libraries"
 msgstr "Mas bibliotècas"
 
 #: front/src/components/audio/track/Row.vue:40
-#: src/components/library/Track.vue:64
-#: front/src/components/library/Track.vue:75
-#: src/components/library/Track.vue:86
-#: front/src/components/library/Track.vue:97
+#: src/components/library/Track.vue:115
+#: front/src/components/library/Track.vue:124
+#: src/components/library/Track.vue:133
+#: front/src/components/library/Track.vue:142
 #: front/src/components/manage/library/FilesTable.vue:63
 #: front/src/components/manage/library/FilesTable.vue:69
 #: front/src/components/manage/library/FilesTable.vue:75
 #: front/src/components/manage/library/FilesTable.vue:81
 #: front/src/components/manage/users/UsersTable.vue:61
-#: front/src/views/admin/users/UsersDetail.vue:49
-#: front/src/views/content/libraries/FilesTable.vue:89
-#: front/src/views/content/libraries/FilesTable.vue:95
+#: front/src/views/admin/moderation/AccountsDetail.vue:171
+#: front/src/views/admin/moderation/DomainsDetail.vue:90
+#: front/src/views/content/libraries/FilesTable.vue:92
+#: front/src/views/content/libraries/FilesTable.vue:98
+#: front/src/views/admin/moderation/DomainsDetail.vue:109
+#: front/src/views/admin/moderation/DomainsDetail.vue:117
 msgid "N/A"
 msgstr "ND"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:39
+#: front/src/components/manage/moderation/DomainsTable.vue:38
+#: front/src/components/mixins/Translations.vue:26
 #: front/src/components/playlists/PlaylistModal.vue:31
-#: front/src/views/admin/users/UsersDetail.vue:21
+#: front/src/views/admin/moderation/DomainsDetail.vue:105
 #: front/src/views/content/libraries/Form.vue:10
-#: front/src/components/mixins/Translations.vue:25
+#: front/src/components/mixins/Translations.vue:27
 msgid "Name"
 msgstr "Nom"
 
@@ -1069,11 +1588,15 @@ msgstr "Nom"
 msgid "New password"
 msgstr "Nòu senhal"
 
-#: front/src/components/Sidebar.vue:149
+#: front/src/components/Sidebar.vue:160
 msgid "New tracks will be appended here automatically."
 msgstr "Las novèlas pistas seràn automaticament ajustadas aquí."
 
-#: front/src/components/Sidebar.vue:116
+#: front/src/components/audio/Player.vue:350
+msgid "Next track"
+msgstr "Pista seguenta"
+
+#: front/src/components/Sidebar.vue:119
 msgid "No"
 msgstr "Non"
 
@@ -1081,7 +1604,15 @@ msgstr "Non"
 msgid "No add-ons, no plugins : you only need a web library"
 msgstr "Cap d’extension d’installar, vos cal pas qu’una bibliotèca sul web"
 
-#: front/src/components/library/Track.vue:113
+#: front/src/components/audio/Search.vue:25
+msgid "No album matched your query"
+msgstr "Cap d’album correspond pas a vòstra recèrca"
+
+#: front/src/components/audio/Search.vue:16
+msgid "No artist matched your query"
+msgstr "Cap d’artista correspond pas a vòstra recèrca"
+
+#: front/src/components/library/Track.vue:158
 msgid "No lyrics available for this track."
 msgstr "Cap de paraulas pas disponiblas per aquesta pista."
 
@@ -1089,6 +1620,17 @@ msgstr "Cap de paraulas pas disponiblas per aquesta pista."
 msgid "No matching library."
 msgstr "Cap de bibliotèca correspondenta."
 
+#: front/src/views/Notifications.vue:26
+msgid "No notifications yet."
+msgstr "Cap de notificacion pel moment."
+
+#: front/src/components/mixins/Translations.vue:10
+#: front/src/components/playlists/Form.vue:81
+#: src/views/content/libraries/Form.vue:72
+#: front/src/components/mixins/Translations.vue:11
+msgid "Nobody except me"
+msgstr "Degun fòra ieu"
+
 #: front/src/views/content/libraries/Detail.vue:57
 msgid "Nobody is following this library"
 msgstr "Degun sèc pas aquesta bibliotèca"
@@ -1101,7 +1643,7 @@ msgstr "Pas utilizat"
 msgid "Notifications"
 msgstr "Notificacions"
 
-#: front/src/App.vue:36
+#: front/src/components/Footer.vue:47
 msgid "Official website"
 msgstr "Site oficial"
 
@@ -1113,14 +1655,32 @@ msgstr "Senhal precedent"
 msgid "Open"
 msgstr "Accès liure"
 
-#: front/src/App.vue:62
-msgid "Options"
-msgstr "Opcions"
+#: front/src/views/admin/moderation/AccountsDetail.vue:23
+msgid "Open profile"
+msgstr "Dobrir lo perfil"
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:16
+msgid "Open website"
+msgstr "Dobrir lo site web"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:40
+msgid "Or customize your rule"
+msgstr "O personalizatz aquesta règla"
+
+#: front/src/components/favorites/List.vue:31
+#: src/components/library/Radios.vue:41
+#: front/src/components/manage/library/FilesTable.vue:17
+#: front/src/components/manage/users/UsersTable.vue:17
+#: front/src/views/playlists/List.vue:25
+msgid "Order"
+msgstr "Ã’rdre"
 
 #: front/src/components/favorites/List.vue:23
 #: src/components/library/Artists.vue:15
 #: front/src/components/library/Radios.vue:33
 #: front/src/components/manage/library/FilesTable.vue:9
+#: front/src/components/manage/moderation/AccountsTable.vue:11
+#: front/src/components/manage/moderation/DomainsTable.vue:9
 #: front/src/components/manage/users/InvitationsTable.vue:9
 #: front/src/components/manage/users/UsersTable.vue:9
 #: front/src/views/content/libraries/FilesTable.vue:21
@@ -1128,13 +1688,10 @@ msgstr "Opcions"
 msgid "Ordering"
 msgstr "Ã’rdre"
 
-#: front/src/components/favorites/List.vue:31
-#: src/components/library/Artists.vue:23
-#: front/src/components/library/Radios.vue:41
-#: front/src/components/manage/library/FilesTable.vue:17
-#: front/src/components/manage/users/UsersTable.vue:17
+#: front/src/components/library/Artists.vue:23
+#: front/src/components/manage/moderation/AccountsTable.vue:19
+#: front/src/components/manage/moderation/DomainsTable.vue:17
 #: front/src/views/content/libraries/FilesTable.vue:29
-#: front/src/views/playlists/List.vue:25
 msgid "Ordering direction"
 msgstr "Direccion"
 
@@ -1142,21 +1699,45 @@ msgstr "Direccion"
 msgid "Owner"
 msgstr "Proprietari"
 
+#: front/src/components/PageNotFound.vue:33
+msgid "Page Not Found"
+msgstr "Pagina pas trobada"
+
 #: front/src/components/PageNotFound.vue:7
 msgid "Page not found!"
 msgstr "Pagina pas trobada !"
 
+#: front/src/components/Pagination.vue:39
+msgid "Pagination"
+msgstr "Paginacion"
+
 #: front/src/components/auth/Login.vue:32 src/components/auth/Signup.vue:38
 msgid "Password"
 msgstr "Senhal"
 
+#: front/src/components/auth/SubsonicTokenForm.vue:95
+msgid "Password updated"
+msgstr "Senhal actualizat"
+
 #: front/src/views/auth/PasswordResetConfirm.vue:28
 msgid "Password updated successfully"
 msgstr "Senhal corrèctament modificat"
 
-#: front/src/components/library/FileUpload.vue:105
+#: front/src/components/audio/Player.vue:349
+msgid "Pause track"
+msgstr "Pausar"
+
+#: front/src/components/ShortcutsModal.vue:59
+msgid "Pause/play the current track"
+msgstr "Pausar/Legir la pista actuala"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:12
+msgid "Paused"
+msgstr "En pausa"
+
+#: front/src/components/library/FileUpload.vue:106
 #: front/src/views/content/libraries/FilesTable.vue:14
-#: front/src/views/content/libraries/FilesTable.vue:233
+#: front/src/views/content/libraries/FilesTable.vue:208
 msgid "Pending"
 msgstr "En espèra"
 
@@ -1168,23 +1749,24 @@ msgstr "En espèra de validacion"
 msgid "Pending files"
 msgstr "Fichièrs en espèra"
 
-#: front/src/components/requests/Form.vue:26
-msgid "Pending requests"
-msgstr "Requèsta en espèra"
+#: front/src/components/Sidebar.vue:212
+msgid "Pending follow requests"
+msgstr "Demandas d’abonament en espèra"
 
 #: front/src/components/manage/users/UsersTable.vue:42
-#: front/src/views/admin/users/UsersDetail.vue:68
+#: front/src/views/admin/moderation/AccountsDetail.vue:137
 msgid "Permissions"
 msgstr "Autorizacions"
 
 #: front/src/components/audio/PlayButton.vue:9
-#: src/components/library/Track.vue:30
+#: src/components/library/Track.vue:40
 msgid "Play"
 msgstr "Legir"
 
 #: front/src/components/audio/album/Card.vue:50
 #: front/src/components/audio/artist/Card.vue:44
-#: src/components/library/Album.vue:28 front/src/views/playlists/Detail.vue:23
+#: src/components/library/Album.vue:28
+#: front/src/components/library/Album.vue:73 src/views/playlists/Detail.vue:23
 msgid "Play all"
 msgstr "O legir tot"
 
@@ -1193,13 +1775,36 @@ msgid "Play all albums"
 msgstr "Legir totes los albums"
 
 #: front/src/components/audio/PlayButton.vue:15
+#: front/src/components/audio/PlayButton.vue:65
 msgid "Play next"
 msgstr "Legir en seguida"
 
+#: front/src/components/ShortcutsModal.vue:67
+msgid "Play next track"
+msgstr "Legir la pista seguenta"
+
 #: front/src/components/audio/PlayButton.vue:16
+#: front/src/components/audio/PlayButton.vue:63
+#: front/src/components/audio/PlayButton.vue:70
 msgid "Play now"
 msgstr "Legir ara"
 
+#: front/src/components/ShortcutsModal.vue:63
+msgid "Play previous track"
+msgstr "Legir la pista precedenta"
+
+#: front/src/components/Sidebar.vue:211
+msgid "Play this track"
+msgstr "Legir aquesta pista"
+
+#: front/src/components/audio/Player.vue:348
+msgid "Play track"
+msgstr "Legir"
+
+#: front/src/views/playlists/Detail.vue:90
+msgid "Playlist"
+msgstr "Lista de lectura"
+
 #: front/src/views/playlists/Detail.vue:12
 msgid "Playlist containing %{ count } track, by %{ username }"
 msgid_plural "Playlist containing %{ count } tracks, by %{ username }"
@@ -1227,8 +1832,8 @@ msgid "Playlist visibility"
 msgstr "Visibilitat de la lista de lectura"
 
 #: front/src/components/Sidebar.vue:71 src/components/library/Home.vue:16
-#: front/src/components/library/Library.vue:13 src/views/playlists/List.vue:104
-#: front/src/views/admin/Settings.vue:82
+#: front/src/components/library/Library.vue:13 src/views/admin/Settings.vue:83
+#: front/src/views/playlists/List.vue:106
 msgid "Playlists"
 msgstr "Listas de lectura"
 
@@ -1248,6 +1853,24 @@ msgstr "Mercés de verificar que lo nom d’utilizaire e lo senhal son corrècte
 msgid "PNG, GIF or JPG. At most 2MB. Will be downscaled to 400x400px."
 msgstr "PNG, GIF o JPG. 2Mo al maximum. L’imatge serà retalhat en 400×400 pixèls."
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:118
+msgid "Prevent account or domain from triggering notifications, except from followers."
+msgstr ""
+"Empacha lo compte o domeni de far veire de notificacions, levat pels "
+"seguidors."
+
+#: front/src/components/audio/EmbedWizard.vue:29
+msgid "Preview"
+msgstr "Apercebut"
+
+#: front/src/components/audio/Player.vue:347
+msgid "Previous track"
+msgstr "Pista precedenta"
+
+#: front/src/views/content/remote/Card.vue:39
+msgid "Problem during scanning"
+msgstr "Error en explorant"
+
 #: front/src/components/library/FileUpload.vue:58
 msgid "Proceed"
 msgstr "Contunhar"
@@ -1261,6 +1884,8 @@ msgstr "Contunhar cap a la pagina de connexion"
 msgid "Processing"
 msgstr "Tractament"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:188
+#: front/src/components/manage/moderation/DomainsTable.vue:168
 #: front/src/views/content/libraries/Quota.vue:36
 #: front/src/views/content/libraries/Quota.vue:39
 #: front/src/views/content/libraries/Quota.vue:62
@@ -1286,6 +1911,18 @@ msgstr "Purgar los fichièrs ignorats ?"
 msgid "Queue"
 msgstr "Fila"
 
+#: front/src/components/audio/Player.vue:282
+msgid "Queue shuffled!"
+msgstr "La fila es estada mesclada !"
+
+#: front/src/views/radios/Detail.vue:80
+msgid "Radio"
+msgstr "Ràdio"
+
+#: front/src/components/library/radios/Builder.vue:233
+msgid "Radio Builder"
+msgstr "Editor de ràdio"
+
 #: front/src/components/library/radios/Builder.vue:15
 msgid "Radio created"
 msgstr "Nom de la ràdio"
@@ -1299,13 +1936,25 @@ msgid "Radio updated"
 msgstr "Ràdio actualizada"
 
 #: front/src/components/library/Library.vue:10
-#: src/components/library/Radios.vue:142
+#: src/components/library/Radios.vue:141
 msgid "Radios"
 msgstr "Ràdios"
 
-#: front/src/views/instance/Timeline.vue:7
-msgid "Recent activity on this instance"
-msgstr "Activitats recentas d’aquesta instància"
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:39
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:25
+msgid "Reason"
+msgstr "Rason"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:222
+#: front/src/views/admin/moderation/DomainsDetail.vue:179
+msgid "Received library follows"
+msgstr "Seguiments de bibliotècas recebuts"
+
+#: front/src/components/manage/moderation/DomainsTable.vue:40
+#: front/src/components/mixins/Translations.vue:36
+#: front/src/components/mixins/Translations.vue:37
+msgid "Received messages"
+msgstr "Messatges recebuts"
 
 #: front/src/components/library/Home.vue:24
 msgid "Recently added"
@@ -1319,11 +1968,18 @@ msgstr "Ajustadas als favorits i a res"
 msgid "Recently listened"
 msgstr "Escotadas i a res"
 
-#: front/src/views/admin/users/UsersDetail.vue:103
 #: front/src/views/content/remote/Home.vue:15
 msgid "Refresh"
 msgstr "Actualizar"
 
+#: front/src/views/admin/moderation/DomainsDetail.vue:135
+msgid "Refresh node info"
+msgstr "Actualizar las info del nos"
+
+#: front/src/components/common/ActionTable.vue:272
+msgid "Refresh table content"
+msgstr "Actualizar lo contengut de la tabla"
+
 #: front/src/components/auth/Profile.vue:12
 msgid "Registered since %{ date }"
 msgstr "Marcat dempuèi %{ date }"
@@ -1340,10 +1996,19 @@ msgstr "utilizaire estandard"
 msgid "Reject"
 msgstr "Regetar"
 
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:32
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:123
+msgid "Reject media"
+msgstr "Regetar lo mèdia"
+
 #: front/src/views/content/libraries/Detail.vue:43
 msgid "Rejected"
 msgstr "Regetat"
 
+#: front/src/views/content/libraries/FilesTable.vue:234
+msgid "Relaunch import"
+msgstr "Relançar l’import"
+
 #: front/src/views/content/remote/Home.vue:6
 msgid "Remote libraries"
 msgstr "Bibliotècas alonhadas"
@@ -1360,6 +2025,26 @@ msgstr "Tirar"
 msgid "Remove avatar"
 msgstr "Suprimir l’avatar"
 
+#: front/src/components/favorites/TrackFavoriteIcon.vue:26
+msgid "Remove from favorites"
+msgstr "Tirar dels favorits"
+
+#: front/src/views/content/libraries/Quota.vue:38
+msgid "Removes uploaded but yet to be processed tracks completely, adding the corresponding data to your quota."
+msgstr ""
+"Las pistas importadas que lo servidor a pas encara tractadas seràn "
+"complètament suprimidas. Lo quòta correspondent vos serà tornat."
+
+#: front/src/views/content/libraries/Quota.vue:64
+#, fuzzy
+msgid "Removes uploaded tracks skipped during the import processes completely, adding the corresponding data to your quota."
+msgstr "Aquò escafarà las pistas enviadas mas ignoradas pendent lo processús d’importacion per mantun rasons. Aquò tirarà complètament los fichièrs e vos donarà de nòu lo quòta escafat."
+
+#: front/src/views/content/libraries/Quota.vue:90
+#, fuzzy
+msgid "Removes uploaded tracks that could not be processed by the server completely, adding the corresponding data to your quota."
+msgstr "Aquò escafarà las pistas enviadas mas pas tractadas pel moment. Aquò tirarà los complètament los fichièrs e vos donarà de nòu lo quòta escafat."
+
 #: front/src/components/auth/SubsonicTokenForm.vue:34
 #: front/src/components/auth/SubsonicTokenForm.vue:37
 msgid "Request a new password"
@@ -1373,11 +2058,8 @@ msgstr "Demandar un nòu senhal per l’API Subsonic ?"
 msgid "Request a password"
 msgstr "Demandar un senhal"
 
-#: front/src/components/requests/Form.vue:20
-msgid "Request submitted!"
-msgstr "Requèsta enviada"
-
 #: front/src/components/auth/Login.vue:34 src/views/auth/PasswordReset.vue:4
+#: front/src/views/auth/PasswordReset.vue:52
 msgid "Reset your password"
 msgstr "Reïnicializar lo senhal"
 
@@ -1387,30 +2069,52 @@ msgstr "Reïnicializar lo senhal"
 msgid "Results per page"
 msgstr "Resultats per pagina"
 
+#: front/src/views/auth/EmailConfirm.vue:17
+msgid "Return to login"
+msgstr "Tornar a la pagina de connexion"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:16
+msgid "Rule"
+msgstr "Règla"
+
 #: front/src/components/admin/SettingsGroup.vue:63
 #: front/src/components/library/radios/Builder.vue:33
 msgid "Save"
 msgstr "Enregistrar"
 
+#: front/src/views/content/remote/Card.vue:165
+msgid "Scan launched"
+msgstr "Exploracion lançada"
+
+#: front/src/views/content/remote/Card.vue:63
+msgid "Scan now"
+msgstr "Explorar ara"
+
+#: front/src/views/content/remote/Card.vue:166
+msgid "Scan skipped (previous scan is too recent)"
+msgstr "Exploracion sautada (la darrièra es tròp recenta)"
+
 #: front/src/views/content/remote/Card.vue:31
-msgid "Scan pending"
+msgid "Scan waiting"
 msgstr "Exploracion en espèra"
 
 #: front/src/views/content/remote/Card.vue:43
-msgid "Scanned successfully"
-msgstr "Exploracion corrèctament realizada"
+msgid "Scanned"
+msgstr "Explorat"
 
 #: front/src/views/content/remote/Card.vue:47
 msgid "Scanned with errors"
 msgstr "Explorada amb d’errors"
 
 #: front/src/views/content/remote/Card.vue:35
-msgid "Scanning... (%{ progress }%)"
-msgstr "Exploracion... (%{ progress }%)"
+msgid "Scanning… (%{ progress }%)"
+msgstr "Exploracion… (%{ progress }%)"
 
 #: front/src/components/library/Artists.vue:10
 #: src/components/library/Radios.vue:29
 #: front/src/components/manage/library/FilesTable.vue:5
+#: front/src/components/manage/moderation/AccountsTable.vue:5
+#: front/src/components/manage/moderation/DomainsTable.vue:5
 #: front/src/components/manage/users/InvitationsTable.vue:5
 #: front/src/components/manage/users/UsersTable.vue:5
 #: front/src/views/content/libraries/FilesTable.vue:5
@@ -1422,20 +2126,55 @@ msgstr "Recercar"
 msgid "Search a remote library"
 msgstr "Cercar una bibliotèca alonhada"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:171
+msgid "Search by domain, username, bio..."
+msgstr "Recercar per domenu, nom d’utilizaire, bio…"
+
+#: front/src/components/manage/moderation/DomainsTable.vue:151
+msgid "Search by name..."
+msgstr "Recercar per nom d’utilizaire…"
+
+#: front/src/views/content/libraries/FilesTable.vue:201
+msgid "Search by title, artist, album…"
+msgstr "Recercar per títol, artista, album…"
+
+#: front/src/components/manage/library/FilesTable.vue:176
+msgid "Search by title, artist, domain…"
+msgstr "Recercar per títol, artista, domeni…"
+
+#: front/src/components/manage/users/InvitationsTable.vue:153
+msgid "Search by username, e-mail address, code…"
+msgstr "Recercar per nom d’utilizaire, corrièl, còdi…"
+
+#: front/src/components/manage/users/UsersTable.vue:163
+msgid "Search by username, e-mail address, name…"
+msgstr "Recercar per nom d’utilizaire, corrièl, nom…"
+
+#: front/src/components/audio/SearchBar.vue:20
+msgid "Search for artists, albums, tracks…"
+msgstr "Recercar d’artistas, d’albums, de pistas…"
+
 #: front/src/components/audio/Search.vue:2
 msgid "Search for some music"
 msgstr "Recercar de musica"
 
-#: front/src/components/library/Track.vue:116
+#: front/src/components/library/Track.vue:162
 msgid "Search on lyrics.wikia.com"
 msgstr "Recercar sus lyrics.wikia.com"
 
 #: front/src/components/library/Album.vue:33
 #: src/components/library/Artist.vue:31
-#: front/src/components/library/Track.vue:40
+#: front/src/components/library/Track.vue:47
 msgid "Search on Wikipedia"
 msgstr "Recercar sus Wikipèdia"
 
+#: front/src/components/library/Library.vue:32
+#: src/views/admin/library/Base.vue:17
+#: front/src/views/admin/moderation/Base.vue:22
+#: src/views/admin/users/Base.vue:21 front/src/views/content/Base.vue:19
+msgid "Secondary menu"
+msgstr "Menú segondari"
+
 #: front/src/views/admin/Settings.vue:15
 msgid "Sections"
 msgstr "Seccions"
@@ -1444,19 +2183,19 @@ msgstr "Seccions"
 msgid "Select a filter"
 msgstr "Seleccionar un filtre"
 
-#: front/src/components/common/ActionTable.vue:64
+#: front/src/components/common/ActionTable.vue:77
 msgid "Select all %{ total } elements"
 msgid_plural "Select all %{ total } elements"
 msgstr[0] "Seleccionar l’ensemble dels %{ total } element"
 msgstr[1] "Seleccionar l’ensemble dels %{ total } elements"
 
-#: front/src/components/common/ActionTable.vue:73
+#: front/src/components/common/ActionTable.vue:86
 msgid "Select only current page"
 msgstr "Seleccionar solament la pagina actuala"
 
-#: front/src/components/Sidebar.vue:43 src/components/Sidebar.vue:88
-#: front/src/components/manage/users/UsersTable.vue:185
-#: front/src/views/admin/users/UsersDetail.vue:189
+#: front/src/components/Sidebar.vue:43 src/components/Sidebar.vue:85
+#: front/src/components/manage/users/UsersTable.vue:181
+#: front/src/views/admin/moderation/AccountsDetail.vue:472
 msgid "Settings"
 msgstr "Paramètres"
 
@@ -1473,8 +2212,10 @@ msgid "Share link"
 msgstr "Ligam de partatge"
 
 #: front/src/views/content/libraries/Detail.vue:15
-msgid "Share this link with other users so they can request an access to your library."
-msgstr "Partajatz aqueste ligam amb d’autres utilizaires per que pòscan accedir a vòstra bibliotèca."
+msgid "Share this link with other users so they can request access to your library."
+msgstr ""
+"Partajatz aqueste ligam amb d’autres utilizaires per que pòscan accedir a "
+"vòstra bibliotèca."
 
 #: front/src/views/content/libraries/Detail.vue:14
 #: front/src/views/content/remote/Card.vue:73
@@ -1493,32 +2234,70 @@ msgid_plural "Show %{ count } more albums"
 msgstr[0] "Mostrar 1 album mai"
 msgstr[1] "Mostrar %{ count } albums mai"
 
+#: front/src/components/ShortcutsModal.vue:42
+msgid "Show available keyboard shortcuts"
+msgstr "Mostrar los acorchis clavièr disponibles"
+
 #: front/src/views/Notifications.vue:10
 msgid "Show read notifications"
 msgstr "Mostrar las notificacions legidas"
 
+#: front/src/components/forms/PasswordInput.vue:25
+msgid "Show/hide password"
+msgstr "Mostrar/amagar lo senhal"
+
 #: front/src/components/manage/library/FilesTable.vue:97
+#: front/src/components/manage/moderation/AccountsTable.vue:88
+#: front/src/components/manage/moderation/DomainsTable.vue:74
 #: front/src/components/manage/users/InvitationsTable.vue:76
 #: front/src/components/manage/users/UsersTable.vue:87
-#: front/src/views/content/libraries/FilesTable.vue:111
+#: front/src/views/content/libraries/FilesTable.vue:114
 msgid "Showing results %{ start }-%{ end } on %{ total }"
 msgstr "Afichatge dels resultats %{ start }-%{ end } sus %{ total }"
 
+#: front/src/components/ShortcutsModal.vue:83
+msgid "Shuffle queue"
+msgstr "Mesclar la fila"
+
+#: front/src/components/audio/Player.vue:362
+msgid "Shuffle your queue"
+msgstr "Mesclar la fila"
+
+#: front/src/components/auth/Signup.vue:95
+msgid "Sign Up"
+msgstr "Inscripcion"
+
 #: front/src/components/manage/users/UsersTable.vue:40
-#: front/src/views/admin/users/UsersDetail.vue:37
 msgid "Sign-up"
 msgstr "Inscripcion"
 
-#: front/src/components/library/FileUpload.vue:84
-#: src/components/library/Track.vue:69
+#: front/src/components/mixins/Translations.vue:31
+#: front/src/views/admin/moderation/AccountsDetail.vue:176
+#: front/src/components/mixins/Translations.vue:32
+msgid "Sign-up date"
+msgstr "Data d’inscripcion"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:24
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:115
+msgid "Silence activity"
+msgstr "Far venir l’activitat silenciosa"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:28
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:119
+msgid "Silence notifications"
+msgstr "Far venir las notificacions silenciosas"
+
+#: front/src/components/library/FileUpload.vue:85
+#: front/src/components/library/Track.vue:120
 #: front/src/components/manage/library/FilesTable.vue:44
-#: front/src/views/content/libraries/FilesTable.vue:57
-#: front/src/components/mixins/Translations.vue:27
+#: front/src/components/mixins/Translations.vue:28
+#: front/src/views/content/libraries/FilesTable.vue:60
+#: front/src/components/mixins/Translations.vue:29
 msgid "Size"
 msgstr "Talha"
 
 #: front/src/views/content/libraries/FilesTable.vue:15
-#: front/src/views/content/libraries/FilesTable.vue:229
+#: front/src/views/content/libraries/FilesTable.vue:204
 msgid "Skipped"
 msgstr "Ignorat"
 
@@ -1526,26 +2305,14 @@ msgstr "Ignorat"
 msgid "Skipped files"
 msgstr "Fichièrs ignorats"
 
-#: front/src/components/requests/Form.vue:3
-msgid "Something's missing in the library? Let us know what you would like to listen!"
-msgstr "Manca quicòm a la bibliotèca ? Digatz-nos çò que volètz escotar !"
-
-#: front/src/components/audio/Search.vue:25
-msgid "Sorry, we did not found any album matching your query"
-msgstr "O planhèm, avèm pas trobat cap d’album que correspond a vòstra recèrca"
-
-#: front/src/components/audio/Search.vue:16
-msgid "Sorry, we did not found any artist matching your query"
-msgstr "O planhèm, avèm pas trobat cap d’artista que correspond a vòstra recèrca"
+#: front/src/views/admin/moderation/DomainsDetail.vue:97
+msgid "Software"
+msgstr "Logicial"
 
-#: front/src/App.vue:40
+#: front/src/components/Footer.vue:49
 msgid "Source code"
 msgstr "Còdi font"
 
-#: front/src/App.vue:39
-msgid "Source code (%{version})"
-msgstr "Còdi font (%{version})"
-
 #: front/src/components/auth/Profile.vue:23
 #: front/src/components/manage/users/UsersTable.vue:70
 msgid "Staff member"
@@ -1555,10 +2322,23 @@ msgstr "Membre de la còla"
 msgid "Start"
 msgstr "Aviar"
 
-#: front/src/components/library/FileUpload.vue:85
+#: front/src/views/admin/Settings.vue:86
+msgid "Statistics"
+msgstr "Estatisticas"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:454
+msgid "Statistics are computed from known activity and content on your instance, and do not reflect general activity for this account"
+msgstr ""
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:358
+msgid "Statistics are computed from known activity and content on your instance, and do not reflect general activity for this domain"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:86
 #: front/src/components/manage/users/InvitationsTable.vue:17
 #: front/src/components/manage/users/InvitationsTable.vue:39
 #: front/src/components/manage/users/UsersTable.vue:43
+#: front/src/views/admin/moderation/DomainsDetail.vue:123
 #: front/src/views/content/libraries/Detail.vue:28
 msgid "Status"
 msgstr "Estatut"
@@ -1567,23 +2347,23 @@ msgstr "Estatut"
 msgid "Stop"
 msgstr "Arrestar"
 
-#: front/src/components/Sidebar.vue:150
+#: front/src/components/Sidebar.vue:161
 msgid "Stop radio"
 msgstr "Arrestar la ràdio"
 
-#: front/src/App.vue:11 src/components/requests/Form.vue:17
+#: front/src/App.vue:22
 msgid "Submit"
 msgstr "Validar"
 
-#: front/src/components/requests/Form.vue:22
-msgid "Submit another request"
-msgstr "Enviar una novèla requèsta"
+#: front/src/views/admin/Settings.vue:85
+msgid "Subsonic"
+msgstr "Subsonic"
 
 #: front/src/components/auth/SubsonicTokenForm.vue:2
 msgid "Subsonic API password"
 msgstr "Senhal de l’API Subsonic"
 
-#: front/src/App.vue:13
+#: front/src/App.vue:26
 msgid "Suggested choices"
 msgstr "Suggestions"
 
@@ -1591,9 +2371,17 @@ msgstr "Suggestions"
 msgid "Summary"
 msgstr "Resumit"
 
+#: front/src/components/Footer.vue:39
+msgid "Support forum"
+msgstr "Forum d’assisténcia"
+
+#: front/src/components/library/FileUpload.vue:78
+msgid "Supported extensions: %{ extensions }"
+msgstr "Extensions compatiblas : %{ extensions }"
+
 #: front/src/components/playlists/Editor.vue:9
-msgid "Syncing changes to server..."
-msgstr "Sincronizacion dels cambiaments amb lo servidor..."
+msgid "Syncing changes to server…"
+msgstr "Sincronizacion dels cambiaments amb lo servidor…"
 
 #: front/src/components/common/CopyInput.vue:3
 msgid "Text copied to clipboard!"
@@ -1603,18 +2391,24 @@ msgstr "Tèxte copiat al quichapapièr !"
 msgid "That's simple: we loved Grooveshark and we want to build something even better."
 msgstr "Es simple : nos agradava Grooveshark e voliam construire quicòm de melhor."
 
-#: front/src/App.vue:58
+#: front/src/components/Footer.vue:53
 msgid "The funkwhale logo was kindly designed and provided by Francis Gading."
 msgstr "Lo logotipe de Funkwhale foguèt dessenhat e fornit per Francis Gading."
 
 #: front/src/views/content/libraries/Form.vue:34
-msgid "The library and all its tracks will be deleted. This action is irreversible."
-msgstr "Aquesta bibliotèca e totas sas pistas seràn suprimidas. Aquesta accion se pòt pas anullar."
+msgid "The library and all its tracks will be deleted. This can not be undone."
+msgstr ""
+"Aquesta bibliotèca e totas sas pistas seràn suprimidas. Aquesta accion se "
+"pòt pas anullar."
 
 #: front/src/components/library/FileUpload.vue:39
 msgid "The music files you are uploading are tagged properly:"
 msgstr "Los fichièrs musicals que sètz a enviar son etiquetats coma cal :"
 
+#: front/src/components/audio/Player.vue:67
+msgid "The next track will play automatically in a few seconds..."
+msgstr "La pista seguenta serà legida automaticament dins una estona..."
+
 #: front/src/components/Home.vue:121
 msgid "The plaform is free and open-source, you can install it and modify it without worries"
 msgstr "La plataforma es gratuita e liura, podètz l’installar e la modificar sens cap de limit"
@@ -1627,7 +2421,17 @@ msgstr "L’API Subsonic es pas disponibla per aquesta instància Funkwhale."
 msgid "The uploaded music files are in OGG, Flac or MP3 format"
 msgstr "Los fichièrs enviats son al format OGG, Flac o MP3"
 
-#: front/src/components/library/Album.vue:52
+#: front/src/views/content/Home.vue:4
+msgid "There are various ways to grab new content and make it available here."
+msgstr ""
+"Prepausam mantun biais de recuperar de nòu contengut e de lo far venir "
+"disponible aquí."
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:66
+msgid "This action is irreversible."
+msgstr "Aquesta accion se pòt pas anullar."
+
+#: front/src/components/library/Album.vue:91
 msgid "This album is present in the following libraries:"
 msgstr "Aqueste album es present a las bibliotècas seguentas :"
 
@@ -1635,23 +2439,50 @@ msgstr "Aqueste album es present a las bibliotècas seguentas :"
 msgid "This artist is present in the following libraries:"
 msgstr "Aqueste artista es present a las bibliotècas seguentas :"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:55
+#: front/src/views/admin/moderation/DomainsDetail.vue:48
+msgid "This domain is subject to specific moderation rules"
+msgstr "Aqueste domeni es sosmés a de règlas de moderacion especificadas"
+
 #: front/src/views/content/Home.vue:9
-msgid "This instance offers up to %{quota} of storage space to every user."
-msgstr "Aquesta instància provesís fins a %{quota} d’espaci per cada utilizaire."
+msgid "This instance offers up to %{quota} of storage space for every user."
+msgstr ""
+"Aquesta instància provesís fins a %{quota} d’espaci per cada utilizaire."
 
 #: front/src/components/auth/Profile.vue:16
 msgid "This is you!"
 msgstr "Sètz vos !"
 
-#: front/src/components/common/ActionTable.vue:38
-msgid "This may affect a lot of elements, please double check this is really what you want."
+#: front/src/views/content/libraries/Form.vue:71
+msgid "This library contains my personal music, I hope you like it."
+msgstr "Aquesta bibliotèca conten ma musica personala, espèri que vos agradarà."
+
+#: front/src/views/content/remote/Card.vue:131
+msgid "This library is private and your approval from its owner is needed to access its content"
+msgstr ""
+"Aquesta bibliotèca es privada e son proprietari deu validar vòstra demanda d’"
+"accès per que accediscatz a son contengut"
+
+#: front/src/views/content/remote/Card.vue:132
+msgid "This library is public and you can access its content freely"
+msgstr ""
+"Aqueste bibliotèca es publica e podètz accedir a son contengut liurament"
+
+#: front/src/components/common/ActionTable.vue:45
+#, fuzzy
+msgid "This may affect a lot of elements or have irreversible consequences, please double check this is really what you want."
 msgstr "Aquesta operacion pòt afectar mantun elements, mercés de verificar s’es ben çò que desiratz."
 
 #: front/src/components/library/FileUpload.vue:52
 msgid "This reference will be used to group imported files together."
 msgstr "Utilizarem aquesta referéncia per gropar los fichièrs importats amassa."
 
-#: front/src/components/library/Track.vue:125
+#: front/src/components/audio/PlayButton.vue:73
+msgid "This track is not available in any library you have access to"
+msgstr ""
+"Aquesta pista es pas disponibla dins cap de las bibliotècas qu’avètz accès"
+
+#: front/src/components/library/Track.vue:171
 msgid "This track is present in the following libraries:"
 msgstr "Aquesta pista es presenta a las bibliotècas seguentas :"
 
@@ -1667,163 +2498,10 @@ msgstr "Aquò escafarà aquesta ràdio per totjorn e poirà pas èsser anullat."
 msgid "This will completely disable access to the Subsonic API using from account."
 msgstr "Aquò desactivarà complètament l’accès a l’API Subsonic de vòstre compte estant."
 
-#: front/src/App.vue:162 src/components/About.vue:55
-#: src/components/Home.vue:154 front/src/components/PageNotFound.vue:33
-#: src/components/Sidebar.vue:203 front/src/components/Sidebar.vue:204
-#: src/components/audio/PlayButton.vue:54
-#: front/src/components/audio/PlayButton.vue:55
-#: front/src/components/audio/PlayButton.vue:56
-#: front/src/components/audio/PlayButton.vue:61
-#: front/src/components/audio/PlayButton.vue:64
-#: front/src/components/audio/PlayButton.vue:158
-#: src/components/audio/Player.vue:216
-#: front/src/components/audio/Player.vue:273
-#: src/components/audio/Player.vue:274
-#: front/src/components/audio/Player.vue:275
-#: src/components/audio/Player.vue:276
-#: front/src/components/audio/Player.vue:277
-#: src/components/audio/Player.vue:278
-#: front/src/components/audio/Player.vue:279
-#: src/components/audio/Player.vue:280
-#: front/src/components/audio/Player.vue:281
-#: src/components/audio/Player.vue:282
-#: front/src/components/audio/Player.vue:283 src/components/audio/Search.vue:65
-#: front/src/components/audio/SearchBar.vue:20
-#: src/components/audio/SearchBar.vue:25
-#: front/src/components/audio/SearchBar.vue:26
-#: src/components/audio/SearchBar.vue:27 front/src/components/auth/Login.vue:77
-#: src/components/auth/Login.vue:78 front/src/components/auth/Logout.vue:20
-#: src/components/auth/Profile.vue:47
-#: front/src/components/auth/Settings.vue:249 src/components/auth/Signup.vue:95
-#: front/src/components/auth/Signup.vue:96 src/components/auth/Signup.vue:97
-#: front/src/components/auth/Signup.vue:98
-#: front/src/components/auth/SubsonicTokenForm.vue:95
-#: front/src/components/auth/SubsonicTokenForm.vue:111
-#: front/src/components/favorites/List.vue:110
-#: front/src/components/favorites/TrackFavoriteIcon.vue:19
-#: front/src/components/favorites/TrackFavoriteIcon.vue:21
-#: front/src/components/forms/PasswordInput.vue:25
-#: front/src/components/library/Album.vue:101
-#: src/components/library/Artist.vue:129
-#: front/src/components/library/Artists.vue:119
-#: front/src/components/library/Artists.vue:120
-#: front/src/components/library/FileUpload.vue:238
-#: front/src/components/library/FileUpload.vue:239
-#: front/src/components/library/FileUpload.vue:240
-#: front/src/components/library/FileUpload.vue:241
-#: src/components/library/Home.vue:65
-#: front/src/components/library/Radios.vue:141
-#: src/components/library/Radios.vue:142
-#: front/src/components/library/Track.vue:195
-#: front/src/components/library/radios/Builder.vue:233
-#: front/src/components/library/radios/Builder.vue:235
-#: front/src/components/library/radios/Builder.vue:236
-#: front/src/components/manage/library/FilesTable.vue:176
-#: front/src/components/manage/library/FilesTable.vue:190
-#: front/src/components/manage/users/InvitationForm.vue:58
-#: front/src/components/manage/users/InvitationsTable.vue:153
-#: front/src/components/manage/users/InvitationsTable.vue:167
-#: front/src/components/manage/users/UsersTable.vue:163
-#: front/src/components/manage/users/UsersTable.vue:173
-#: front/src/components/manage/users/UsersTable.vue:177
-#: front/src/components/manage/users/UsersTable.vue:181
-#: front/src/components/manage/users/UsersTable.vue:185
-#: front/src/components/metadata/ArtistCard.vue:49
-#: front/src/components/metadata/ReleaseCard.vue:53
-#: front/src/components/metadata/Search.vue:114
-#: front/src/components/metadata/Search.vue:130
-#: front/src/components/metadata/Search.vue:134
-#: front/src/components/metadata/Search.vue:138
-#: front/src/components/mixins/Translations.vue:7
-#: front/src/components/mixins/Translations.vue:8
-#: front/src/components/mixins/Translations.vue:10
-#: front/src/components/mixins/Translations.vue:11
-#: front/src/components/mixins/Translations.vue:16
-#: front/src/components/mixins/Translations.vue:17
-#: front/src/components/mixins/Translations.vue:18
-#: front/src/components/mixins/Translations.vue:19
-#: front/src/components/mixins/Translations.vue:20
-#: front/src/components/mixins/Translations.vue:21
-#: front/src/components/mixins/Translations.vue:22
-#: front/src/components/mixins/Translations.vue:23
-#: front/src/components/mixins/Translations.vue:24
-#: front/src/components/mixins/Translations.vue:25
-#: front/src/components/mixins/Translations.vue:26
-#: front/src/components/mixins/Translations.vue:27
-#: front/src/components/mixins/Translations.vue:28
-#: front/src/components/mixins/Translations.vue:29
-#: front/src/components/mixins/Translations.vue:30
-#: front/src/components/mixins/Translations.vue:31
-#: front/src/components/notifications/NotificationRow.vue:39
-#: front/src/components/notifications/NotificationRow.vue:40
-#: front/src/components/notifications/NotificationRow.vue:44
-#: front/src/components/notifications/NotificationRow.vue:45
-#: front/src/components/notifications/NotificationRow.vue:62
-#: front/src/components/playlists/Editor.vue:163
-#: src/components/playlists/Form.vue:74
-#: front/src/components/playlists/Form.vue:81
-#: src/components/playlists/Form.vue:85
-#: front/src/components/playlists/Form.vue:89
-#: front/src/components/playlists/PlaylistModal.vue:116
-#: front/src/components/playlists/TrackPlaylistIcon.vue:32
-#: front/src/components/requests/Form.vue:73
-#: src/components/requests/Form.vue:74
-#: front/src/components/requests/Form.vue:75 src/views/Notifications.vue:74
-#: front/src/views/admin/Settings.vue:75 src/views/admin/Settings.vue:80
-#: front/src/views/admin/Settings.vue:81 src/views/admin/Settings.vue:82
-#: front/src/views/admin/Settings.vue:83 src/views/admin/Settings.vue:84
-#: front/src/views/admin/Settings.vue:85 src/views/admin/Settings.vue:86
-#: front/src/views/admin/library/Base.vue:16
-#: src/views/admin/library/FilesList.vue:21
-#: front/src/views/admin/users/Base.vue:20
-#: front/src/views/admin/users/InvitationsList.vue:24
-#: front/src/views/admin/users/UsersDetail.vue:169
-#: front/src/views/admin/users/UsersDetail.vue:170
-#: front/src/views/admin/users/UsersDetail.vue:177
-#: front/src/views/admin/users/UsersDetail.vue:181
-#: front/src/views/admin/users/UsersDetail.vue:185
-#: front/src/views/admin/users/UsersDetail.vue:189
-#: front/src/views/admin/users/UsersList.vue:21
-#: src/views/auth/EmailConfirm.vue:51 front/src/views/auth/PasswordReset.vue:52
-#: src/views/auth/PasswordReset.vue:53
-#: front/src/views/auth/PasswordResetConfirm.vue:62
-#: src/views/content/Base.vue:19 front/src/views/content/Home.vue:35
-#: src/views/content/libraries/Card.vue:58
-#: front/src/views/content/libraries/Card.vue:59
-#: front/src/views/content/libraries/Card.vue:60
-#: front/src/views/content/libraries/Card.vue:61
-#: front/src/views/content/libraries/DetailArea.vue:24
-#: front/src/views/content/libraries/FilesTable.vue:226
-#: front/src/views/content/libraries/FilesTable.vue:229
-#: front/src/views/content/libraries/FilesTable.vue:230
-#: front/src/views/content/libraries/FilesTable.vue:233
-#: front/src/views/content/libraries/FilesTable.vue:234
-#: front/src/views/content/libraries/FilesTable.vue:237
-#: front/src/views/content/libraries/FilesTable.vue:238
-#: front/src/views/content/libraries/FilesTable.vue:241
-#: front/src/views/content/libraries/FilesTable.vue:242
-#: front/src/views/content/libraries/FilesTable.vue:258
-#: front/src/views/content/libraries/FilesTable.vue:259
-#: front/src/views/content/libraries/Form.vue:70
-#: front/src/views/content/libraries/Form.vue:71
-#: front/src/views/content/libraries/Form.vue:72
-#: front/src/views/content/libraries/Form.vue:73
-#: front/src/views/content/libraries/Form.vue:74
-#: front/src/views/content/libraries/Form.vue:106
-#: front/src/views/content/libraries/Form.vue:109
-#: front/src/views/content/libraries/Form.vue:129
-#: front/src/views/content/remote/Card.vue:131
-#: src/views/content/remote/Card.vue:132
-#: front/src/views/content/remote/Card.vue:165
-#: src/views/content/remote/Card.vue:166
-#: front/src/views/content/remote/ScanForm.vue:48
-#: src/views/instance/Timeline.vue:57 front/src/views/playlists/Detail.vue:90
-#: src/views/playlists/List.vue:104 front/src/views/playlists/List.vue:105
-#: src/views/radios/Detail.vue:80
+#: front/src/App.vue:129 src/components/Footer.vue:72
 msgid "This will erase your local data and disconnect you, do you want to continue?"
-msgid_plural "%{ count } tracks were added to your queue"
-msgstr[0] "Aquò escafarà vòstras donadas localas e vos desconnectarà, volètz contunhar ?"
-msgstr[1] "%{ count } pistas son ajustadas a la fila"
+msgstr ""
+"Aquò escafarà vòstras donadas localas e vos desconnectarà, volètz contunhar ?"
 
 #: front/src/components/auth/SubsonicTokenForm.vue:36
 msgid "This will log you out from existing devices that use the current password."
@@ -1833,26 +2511,42 @@ msgstr "Aquò vos desconnectarà de totes los periferics qu’utilizan aqueste s
 msgid "This will remove all tracks from this playlist and cannot be undone."
 msgstr "Aquò escafarà totas las pistas de la lista de lectura e poirà pas èsser anullat."
 
-#: front/src/views/content/libraries/Quota.vue:90
-msgid "This will remove tracks that were uploaded but failed to be process by the server. This will remove those files completely and you will regain the corresponding quota."
-msgstr "Aquò escafarà las pistas enviadas mas que lo servidor poguèt pas tractar. Aquò tirarà complètament los fichièrs e vos donarà de nòu lo quòta escafat."
-
-#: front/src/views/content/libraries/Quota.vue:38
-msgid "This will remove tracks that were uploaded but not processed yet. This will remove those files completely and you will regain the corresponding quota."
-msgstr "Aquò escafarà las pistas enviadas mas pas tractadas pel moment. Aquò tirarà los complètament los fichièrs e vos donarà de nòu lo quòta escafat."
-
-#: front/src/views/content/libraries/Quota.vue:64
-msgid "This will remove tracks that were uploaded but skipped during import processes for various reasons. This will remove those files completely and you will regain the corresponding quota."
-msgstr "Aquò escafarà las pistas enviadas mas ignoradas pendent lo processús d’importacion per mantun rasons. Aquò tirarà complètament los fichièrs e vos donarà de nòu lo quòta escafat."
-
 #: front/src/components/audio/track/Table.vue:6
 #: front/src/components/manage/library/FilesTable.vue:37
-#: front/src/views/content/libraries/FilesTable.vue:51
-#: front/src/components/mixins/Translations.vue:26
+#: front/src/components/mixins/Translations.vue:27
+#: front/src/views/content/libraries/FilesTable.vue:54
+#: front/src/components/mixins/Translations.vue:28
 msgid "Title"
 msgstr "Títol"
 
-#: front/src/components/library/Track.vue:53
+#: front/src/components/ShortcutsModal.vue:79
+msgid "Toggle queue looping"
+msgstr "Cambiar lo tipe de lectura de la lista"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:288
+#: front/src/views/admin/moderation/DomainsDetail.vue:225
+msgid "Total size"
+msgstr "Talha totala"
+
+#: front/src/views/content/libraries/Card.vue:61
+msgid "Total size of the files in this library"
+msgstr "Talha totala dels fichièrs d’aquesta bibliotèca"
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:113
+msgid "Total users"
+msgstr "Utilizaires totals"
+
+#: front/src/components/audio/SearchBar.vue:27
+#: src/components/library/Track.vue:262
+#: front/src/components/metadata/Search.vue:138
+msgid "Track"
+msgstr "Pista"
+
+#: front/src/views/content/libraries/FilesTable.vue:205
+msgid "Track already present in one of your libraries"
+msgstr "La pista ja presenta dins una de vòstras bibliotècas"
+
+#: front/src/components/library/Track.vue:85
 msgid "Track information"
 msgstr "Informacions de la pista"
 
@@ -1860,14 +2554,25 @@ msgstr "Informacions de la pista"
 msgid "Track matching filter"
 msgstr "Pista correspondent al filtre"
 
+#: front/src/components/mixins/Translations.vue:23
+#: front/src/components/mixins/Translations.vue:24
+msgid "Track name"
+msgstr "Nom de la pista"
+
+#: front/src/views/content/libraries/FilesTable.vue:209
+msgid "Track uploaded, but not processed by the server yet"
+msgstr "La pista es enviada mas pas encara tractada pel servidor"
+
 #: front/src/components/instance/Stats.vue:54
 msgid "tracks"
 msgstr "pistas"
 
-#: front/src/components/library/Album.vue:43
+#: front/src/components/library/Album.vue:81
 #: front/src/components/playlists/PlaylistModal.vue:33
-#: src/views/content/Base.vue:8 front/src/views/content/libraries/Detail.vue:8
-#: src/views/playlists/Detail.vue:50 front/src/views/radios/Detail.vue:34
+#: front/src/views/admin/moderation/AccountsDetail.vue:329
+#: front/src/views/admin/moderation/DomainsDetail.vue:265
+#: front/src/views/content/Base.vue:8 src/views/content/libraries/Detail.vue:8
+#: front/src/views/playlists/Detail.vue:50 src/views/radios/Detail.vue:34
 msgid "Tracks"
 msgstr "Pistas"
 
@@ -1883,11 +2588,17 @@ msgstr "Pistas en favorits"
 msgid "tracks listened"
 msgstr "pistas escotadas"
 
-#: front/src/components/library/Track.vue:91
+#: front/src/components/library/Track.vue:138
 #: front/src/components/manage/library/FilesTable.vue:41
+#: front/src/views/admin/moderation/AccountsDetail.vue:151
 msgid "Type"
 msgstr "Tipe"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:44
+#: front/src/components/manage/moderation/DomainsTable.vue:42
+msgid "Under moderation rule"
+msgstr "Jos règla de moderacion"
+
 #: front/src/views/content/remote/Card.vue:100
 #: src/views/content/remote/Card.vue:105
 msgid "Unfollow"
@@ -1905,6 +2616,15 @@ msgstr "Malurosament, los gestionaris d’aquesta instància completèron pas aq
 msgid "Unlimited music"
 msgstr "Musica sens cap de limit"
 
+#: front/src/components/audio/Player.vue:351
+msgid "Unmute"
+msgstr "Restablir lo son"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:45
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:57
+msgid "Update"
+msgstr "Actualizar"
+
 #: front/src/components/auth/Settings.vue:50
 msgid "Update avatar"
 msgstr "Actualizar l’avatar"
@@ -1913,6 +2633,10 @@ msgstr "Actualizar l’avatar"
 msgid "Update library"
 msgstr "Actualizar la bibliotèca"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:3
+msgid "Update moderation rule"
+msgstr "Actualizar la règla de moderacion"
+
 #: front/src/components/playlists/Form.vue:33
 msgid "Update playlist"
 msgstr "Actualizar la lista de lectura"
@@ -1926,9 +2650,7 @@ msgid "Update your password"
 msgstr "Actualizar vòstre senhal"
 
 #: front/src/views/content/libraries/Card.vue:44
-#: front/src/components/manage/users/UsersTable.vue:173
 #: front/src/views/content/libraries/DetailArea.vue:24
-#: front/src/views/admin/users/UsersDetail.vue:177
 msgid "Upload"
 msgstr "Mandadís"
 
@@ -1940,23 +2662,35 @@ msgstr "Enviar un nòu avatar"
 msgid "Upload audio content"
 msgstr "Actualizar lo contengut àudio"
 
-#: front/src/views/content/libraries/FilesTable.vue:54
+#: front/src/views/content/libraries/FilesTable.vue:57
 msgid "Upload date"
 msgstr "Data de mandadís"
 
+#: front/src/components/library/FileUpload.vue:219
+#: front/src/components/library/FileUpload.vue:220
+msgid "Upload denied, ensure the file is not too big and that you have not reached your quota"
+msgstr ""
+"Mandadís refusat, asseguratz-vos que lo fichièr es pas tròp grand e qu’avètz "
+"pas atenhut vòstre quòta"
+
 #: front/src/views/content/Home.vue:7
-msgid "Upload music files (mp3, ogg, flac, etc.) from your personal library directly from your browser to enjoy them here."
+#, fuzzy
+msgid "Upload music files (MP3, OGG, FLAC, etc.) from your personal library directly from your browser to enjoy them here."
 msgstr "Enviatz vòstres fichièrs musicals (mp3, ogg, flac, etc.) de vòstra bibliotèca personala estant dirèctament amb vòstre navigador per ne profechar aquí."
 
 #: front/src/components/library/FileUpload.vue:31
 msgid "Upload new tracks"
 msgstr "Enviar nòvas pistas"
 
-#: front/src/views/admin/users/UsersDetail.vue:82
+#: front/src/views/admin/moderation/AccountsDetail.vue:269
 msgid "Upload quota"
 msgstr "Quòta de mandadís"
 
-#: front/src/components/library/FileUpload.vue:99
+#: front/src/components/library/FileUpload.vue:228
+msgid "Upload timeout, please try again"
+msgstr "Temps de transferiment expirat, ensajatz tornamai"
+
+#: front/src/components/library/FileUpload.vue:100
 msgid "Uploaded"
 msgstr "Enviat"
 
@@ -1964,11 +2698,19 @@ msgstr "Enviat"
 msgid "Uploading"
 msgstr "Mandadís en cors"
 
-#: front/src/components/library/FileUpload.vue:102
-msgid "Uploading..."
-msgstr "Mandadís en cors..."
+#: front/src/components/library/FileUpload.vue:103
+msgid "Uploading…"
+msgstr "Mandadís…"
 
-#: front/src/App.vue:44
+#: front/src/components/manage/moderation/AccountsTable.vue:41
+#: front/src/components/mixins/Translations.vue:37
+#: front/src/views/admin/moderation/AccountsDetail.vue:305
+#: front/src/views/admin/moderation/DomainsDetail.vue:241
+#: front/src/components/mixins/Translations.vue:38
+msgid "Uploads"
+msgstr "Mandadís"
+
+#: front/src/components/Footer.vue:16
 msgid "Use another instance"
 msgstr "Utilizar una autra instància"
 
@@ -1976,6 +2718,12 @@ msgstr "Utilizar una autra instància"
 msgid "Use this form to request a password reset. We will send an email to the given address with instructions to reset your password."
 msgstr "Garnissètz aqueste formulari per demandar un nòu senhal. Auretz un corrièl a vòstra adreça indicada contenent las consignas de reïnicializacion."
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:111
+msgid "Use this setting to temporarily enable/disable the policy without completely removing it."
+msgstr ""
+"Utilizatz aqueste paramètre per activar/desactivar temporàriament la règla "
+"sens la suprimir complètament."
+
 #: front/src/components/manage/users/InvitationsTable.vue:49
 msgid "Used"
 msgstr "Utilizat"
@@ -1988,9 +2736,9 @@ msgstr "Utilizaire"
 msgid "User activity"
 msgstr "Activitat dels utilizaires"
 
-#: front/src/components/library/Album.vue:49
+#: front/src/components/library/Album.vue:88
 #: src/components/library/Artist.vue:60
-#: front/src/components/library/Track.vue:122
+#: front/src/components/library/Track.vue:168
 msgid "User libraries"
 msgstr "Bibliotècas de l’utilizaire"
 
@@ -2000,7 +2748,9 @@ msgstr "Ràdios dels utilizaires"
 
 #: front/src/components/auth/Signup.vue:19
 #: front/src/components/manage/users/UsersTable.vue:37
-#: front/src/components/mixins/Translations.vue:32
+#: front/src/components/mixins/Translations.vue:33
+#: front/src/views/admin/moderation/AccountsDetail.vue:85
+#: front/src/components/mixins/Translations.vue:34
 msgid "Username"
 msgstr "Nom d’utilizaire"
 
@@ -2012,12 +2762,24 @@ msgstr "Nom d’utilizaire o corrièl"
 msgid "users"
 msgstr "utilizaires"
 
-#: front/src/components/Sidebar.vue:94 src/views/admin/users/Base.vue:5
-#: front/src/views/admin/users/UsersList.vue:3
-#: src/views/admin/users/UsersList.vue:21 front/src/views/admin/Settings.vue:81
+#: front/src/components/Sidebar.vue:91
+#: front/src/components/manage/moderation/DomainsTable.vue:39
+#: front/src/components/mixins/Translations.vue:35
+#: src/views/admin/Settings.vue:81 front/src/views/admin/users/Base.vue:5
+#: src/views/admin/users/UsersList.vue:3
+#: front/src/views/admin/users/UsersList.vue:21
+#: front/src/components/mixins/Translations.vue:36
 msgid "Users"
 msgstr "Utilizaires"
 
+#: front/src/components/Footer.vue:29
+msgid "Using Funkwhale"
+msgstr "Utilizar de Funkwhale"
+
+#: front/src/components/Footer.vue:13
+msgid "Version %{version}"
+msgstr "Version %{version}"
+
 #: front/src/views/content/libraries/Quota.vue:29
 #: front/src/views/content/libraries/Quota.vue:56
 #: front/src/views/content/libraries/Quota.vue:82
@@ -2026,9 +2788,9 @@ msgstr "Veire los fichièrs"
 
 #: front/src/components/library/Album.vue:37
 #: src/components/library/Artist.vue:35
-#: front/src/components/library/Track.vue:44
-#: front/src/components/metadata/ReleaseCard.vue:53
+#: front/src/components/library/Track.vue:51
 #: front/src/components/metadata/ArtistCard.vue:49
+#: front/src/components/metadata/ReleaseCard.vue:53
 msgid "View on MusicBrainz"
 msgstr "Veire sus MusicBrainz"
 
@@ -2036,6 +2798,22 @@ msgstr "Veire sus MusicBrainz"
 msgid "Visibility"
 msgstr "Visibilitat"
 
+#: front/src/views/content/libraries/Card.vue:59
+msgid "Visibility: everyone on this instance"
+msgstr "Visibilitat : lo monde d’aquesta instància"
+
+#: front/src/views/content/libraries/Card.vue:60
+msgid "Visibility: everyone, including other instances"
+msgstr "Visibilitat : totes, tanben las autras instàncias"
+
+#: front/src/views/content/libraries/Card.vue:58
+msgid "Visibility: nobody except me"
+msgstr "Visibilitat : degun levat ieu"
+
+#: front/src/components/library/Album.vue:67
+msgid "Volume %{ number }"
+msgstr "Volum %{ number }"
+
 #: front/src/components/playlists/PlaylistModal.vue:20
 msgid "We cannot add the track to a playlist"
 msgstr "Podèm pas ajustar aquesta pista a una lista de lectura"
@@ -2048,6 +2826,10 @@ msgstr "Podèm pas crear aquesta lista de lectura"
 msgid "We cannot create your account"
 msgstr "Podèm pas crear vòstre compte"
 
+#: front/src/components/audio/Player.vue:64
+msgid "We cannot load this track"
+msgstr "Podèm pas cargar aquesta pisata"
+
 #: front/src/components/auth/Login.vue:7
 msgid "We cannot log you in"
 msgstr "Error pendent la connexion"
@@ -2064,17 +2846,17 @@ msgstr "Podèm pas enregistrar vòstres paramètres"
 msgid "We do not track you or bother you with ads"
 msgstr "Vos pistam pas e vos mostram pas cap de reclama"
 
-#: front/src/views/Notifications.vue:26
-msgid "We don't have any notification to display!"
-msgstr "Avèm pas cap de notificacion de vos far veire !"
+#: front/src/components/library/Track.vue:95
+msgid "We don't have any copyright information for this track"
+msgstr "Avèm pas cap d’informacion de copyright per aquesta pista"
 
-#: front/src/views/content/Home.vue:4
-msgid "We offer various way to grab new content and make it available here."
-msgstr "Prepausam mantun biais de recuperar de nòu contengut e de lo far venir disponible aquí."
+#: front/src/components/library/Track.vue:106
+msgid "We don't have any licensing information for this track"
+msgstr "Avèm pas cap d’informacion de licéncia per aquesta pista"
 
 #: front/src/components/library/FileUpload.vue:40
-msgid "we recommend using Picard for that purpose"
-msgstr "vos recomandam d’utilizar lo logicial Picard per aquò far"
+msgid "We recommend using Picard for that purpose."
+msgstr "Vos recomandam d’utilizar lo logicial Picard per aquò far."
 
 #: front/src/components/Home.vue:7
 msgid "We think listening to music should be simple."
@@ -2084,9 +2866,9 @@ msgstr "Pensam que l’accès a la musica deuriá èsser simple."
 msgid "We're sorry, the page you asked for does not exist:"
 msgstr "O planhèm, la pagina demandada existís pas :"
 
-#: front/src/components/requests/Form.vue:21
-msgid "We've received your request, you'll get some groove soon ;)"
-msgstr "Avèm ben recebut vòstra requèsta, aurètz lèu de novèlas ;)"
+#: front/src/components/Home.vue:153
+msgid "Welcome"
+msgstr "La benvenguda"
 
 #: front/src/components/Home.vue:5
 msgid "Welcome on Funkwhale"
@@ -2096,7 +2878,17 @@ msgstr "La benvenguda a Funkwhale"
 msgid "Why funkwhale?"
 msgstr "Perque Funkwhale ?"
 
-#: front/src/components/Sidebar.vue:115
+#: front/src/components/audio/EmbedWizard.vue:13
+msgid "Widget height"
+msgstr "Nautor del widget"
+
+#: front/src/components/audio/EmbedWizard.vue:6
+msgid "Widget width"
+msgstr "Largor del widget"
+
+#: front/src/components/Sidebar.vue:118
+#: front/src/components/manage/moderation/AccountsTable.vue:72
+#: front/src/components/manage/moderation/DomainsTable.vue:58
 msgid "Yes"
 msgstr "Ã’c"
 
@@ -2104,6 +2896,12 @@ msgstr "Ã’c"
 msgid "Yes, log me out!"
 msgstr "Òc-ben, desconnectatz-me !"
 
+#: front/src/views/content/libraries/Form.vue:19
+msgid "You are able to share your library with other people, regardless of its visibility."
+msgstr ""
+"Poiretz partejar vòstra bibiotèca amb d’autres gents, sens importància de sa "
+"visibilitat."
+
 #: front/src/components/library/FileUpload.vue:33
 msgid "You are about to upload music to your library. Before proceeding, please ensure that:"
 msgstr "Sètz a man d’enviar de la musica a vòstra bibliotèca. Abans de començar, mercés de vos assegurar que :"
@@ -2120,6 +2918,10 @@ msgstr "Podètz seguir las bibliotècas d’autres utilizaires per accedir a de
 msgid "You can invite friends and family to your instance so they can enjoy your music"
 msgstr "Podètz convidar vòstres amics e vòstra familha a aquesta instància per que pòscan profeitar de vòstra musica"
 
+#: front/src/views/auth/EmailConfirm.vue:24
+msgid "You can now use the service without limitations."
+msgstr "Podètz ara utilizar lo servici sens cap de limitacions."
+
 #: front/src/components/library/radios/Builder.vue:7
 msgid "You can use this interface to build your own custom radio, which will play tracks according to your criteria."
 msgstr "Podètz utilizar aquesta interfàcia per realizar vòstra pròpria ràdio personalizada, que jogarà las listas segon los critèris indicats."
@@ -2128,18 +2930,26 @@ msgstr "Podètz utilizar aquesta interfàcia per realizar vòstra pròpria ràdi
 msgid "You can use those to enjoy your playlist and music in offline mode, on your smartphone or tablet, for instance."
 msgstr "Podètz los utilizar per profeitar de vòstras listas de lectura e de vòstra musica en mòde fòra linha sus vòstre mobil, tableta, per exemple."
 
-#: front/src/components/Sidebar.vue:147
+#: front/src/views/admin/moderation/AccountsDetail.vue:46
+msgid "You don't have any rule in place for this account."
+msgstr "Avètz pas cap de règla en plaça per aqueste compte."
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:39
+msgid "You don't have any rule in place for this domain."
+msgstr "Avètz pas cap de règla en plaça per aqueste domeni."
+
+#: front/src/components/Sidebar.vue:158
 msgid "You have a radio playing"
 msgstr "Escotatz una ràdio"
 
-#: front/src/App.vue:8
+#: front/src/components/audio/Player.vue:71
+msgid "You may have a connectivity issue."
+msgstr "Poiriá arribar qu’ajatz de problèma de connexion."
+
+#: front/src/App.vue:17
 msgid "You need to select an instance in order to continue"
 msgstr "Vos cal causir una instància per contunhar"
 
-#: front/src/views/content/libraries/Form.vue:19
-msgid "You will be able to share your library with other people, regardless of it's visibility."
-msgstr "Poiretz partejar vòstra bibiotèca amb d’autres gents, sens importància de sa visibilitat."
-
 #: front/src/components/auth/Settings.vue:100
 msgid "You will be logged out from this session and have to log in with the new one"
 msgstr "Sètz per èsser desconnectat d’aquesta session e vos caldrà vos connectar amb lo nòu senhal"
@@ -2148,9 +2958,9 @@ msgstr "Sètz per èsser desconnectat d’aquesta session e vos caldrà vos conn
 msgid "You will have to update your password on your clients that use this password."
 msgstr "Vos caldrà actualizar lo senhal sus totes los clients qu’utilizan aqueste senhal."
 
-#: front/src/views/auth/EmailConfirm.vue:24
-msgid "Your email address was confirmed, you can now use the service without limitations."
-msgstr "Vòstra adreça electronica es confirmada, podètz ara utilizar lo servici sens cap de limitacions."
+#: front/src/components/favorites/List.vue:112
+msgid "Your Favorites"
+msgstr "Vòstres favorits"
 
 #: front/src/components/Home.vue:114
 msgid "Your music, your way"
@@ -2167,405 +2977,3 @@ msgstr "Vòstre senhal es corrèctament cambiat."
 #: front/src/components/auth/Settings.vue:101
 msgid "Your Subsonic password will be changed to a new, random one, logging you out from devices that used the old Subsonic password"
 msgstr "Vòstre senhal Subsonic serà remplaçat per un nòu aleatòri, aquò vos desconnectarà de totes los periferics qu’utilizan l’ancian senhal"
-
-#: front/src/components/mixins/Translations.vue:8
-msgid "Activity visibility"
-msgstr "Visibilitat de l’activitat"
-
-#: front/src/components/mixins/Translations.vue:9
-msgid "Determine the visibility level of your activity"
-msgstr "Determinatz lo nivèl de visibilitat de vòstra activitat"
-
-#: front/src/components/mixins/Translations.vue:11
-#: front/src/components/playlists/Form.vue:81
-#: src/views/content/libraries/Form.vue:72
-msgid "Nobody except me"
-msgstr "Degun fòra ieu"
-
-#: front/src/components/mixins/Translations.vue:12
-#: front/src/components/playlists/Form.vue:85
-#: src/views/content/libraries/Form.vue:73
-msgid "Everyone on this instance"
-msgstr "Lo monde d’aquesta instància"
-
-#: front/src/components/mixins/Translations.vue:18
-msgid "Accessed date"
-msgstr "Data d’accès"
-
-#: front/src/components/mixins/Translations.vue:19
-msgid "Modification date"
-msgstr "Data de modificacion"
-
-#: front/src/components/mixins/Translations.vue:20
-msgid "Imported date"
-msgstr "Data d’import"
-
-#: front/src/components/mixins/Translations.vue:22
-msgid "Track name"
-msgstr "Nom de la pista"
-
-#: front/src/components/mixins/Translations.vue:23
-msgid "Album name"
-msgstr "Nom de l’album"
-
-#: front/src/components/mixins/Translations.vue:30
-msgid "Sign-up date"
-msgstr "Data d’inscripcion"
-
-#: front/src/components/playlists/Editor.vue:163
-msgid "Copy tracks from current queue to playlist"
-msgstr "Copiar las pistas de la fila a la lista de lectura"
-
-#: front/src/components/playlists/PlaylistModal.vue:116
-msgid "Add to this playlist"
-msgstr "Ajustar a aquesta lista de lectura"
-
-#: front/src/components/playlists/Form.vue:74
-msgid "My awesome playlist"
-msgstr "Ma lista de lectura tròp crana"
-
-#: front/src/components/playlists/Form.vue:89
-msgid "Everyone"
-msgstr "Tot lo monde"
-
-#: front/src/components/auth/Signup.vue:95
-msgid "Sign Up"
-msgstr "Inscripcion"
-
-#: front/src/components/auth/Signup.vue:96
-msgid "Enter your invitation code (case insensitive)"
-msgstr "Escrivètz vòstre còdi d’invitacion (pas sensible a la cassa)"
-
-#: front/src/components/auth/Signup.vue:97
-msgid "Enter your username"
-msgstr "Escrivètz vòstre nom d’utilizaire"
-
-#: front/src/components/auth/Signup.vue:98
-msgid "Enter your email"
-msgstr "Escrivètz vòstre adreça electronica"
-
-#: front/src/components/auth/SubsonicTokenForm.vue:95
-msgid "Password updated"
-msgstr "Senhal actualizat"
-
-#: front/src/components/auth/SubsonicTokenForm.vue:111
-msgid "Access disabled"
-msgstr "Accès desactivat"
-
-#: front/src/components/auth/Login.vue:77
-msgid "Enter your username or email"
-msgstr "Escrivètz vòstre nom d’utilizaire o corrièl"
-
-#: front/src/components/auth/Login.vue:78
-msgid "Log In"
-msgstr "Connexion"
-
-#: front/src/components/auth/Profile.vue:47
-msgid "%{ username }'s profile"
-msgstr "Perfil de %{ username }"
-
-#: front/src/components/auth/Logout.vue:20
-msgid "Log Out"
-msgstr "Desconnexion"
-
-#: front/src/components/auth/Settings.vue:249
-msgid "Account Settings"
-msgstr "Paramètres del compte"
-
-#: front/src/components/favorites/TrackFavoriteIcon.vue:19
-msgid "Remove from favorites"
-msgstr "Tirar dels favorits"
-
-#: front/src/components/favorites/List.vue:110
-msgid "Your Favorites"
-msgstr "Vòstres favorits"
-
-#: front/src/components/library/Radios.vue:141
-msgid "Enter a radio name..."
-msgstr "Escrivètz un nom de ràdio..."
-
-#: front/src/components/library/radios/Builder.vue:233
-msgid "Radio Builder"
-msgstr "Editor de ràdio"
-
-#: front/src/components/library/radios/Builder.vue:235
-msgid "My awesome radio"
-msgstr "Ma ràdio tròp crana"
-
-#: front/src/components/library/radios/Builder.vue:236
-msgid "My awesome description"
-msgstr "Ma descripcion tròp crana"
-
-#: front/src/components/library/FileUpload.vue:238
-msgid "Upload refused, ensure the file is not too big and you have not reached your quota"
-msgstr "Mandadís refusat, asseguratz-vos que lo fichièr es pas tròp grand e qu’avètz pas atenhut vòstre quòta"
-
-#: front/src/components/library/FileUpload.vue:239
-msgid "Impossible to upload this file, ensure it is not too big"
-msgstr "Mandadís del fichièr impossible, asseguratz-vos qu’es pas tròp pesuc"
-
-#: front/src/components/library/FileUpload.vue:240
-msgid "A network error occured while uploading this file"
-msgstr "Una error de ret s’es producha en enviar aqueste fichièr"
-
-#: front/src/components/library/FileUpload.vue:241
-msgid "Upload timeout, please try again"
-msgstr "Temps de transferiment expirat, ensajatz tornamai"
-
-#: front/src/components/library/Artists.vue:119
-msgid "Enter an artist name..."
-msgstr "Escrivètz un nom d’artista..."
-
-#: front/src/components/library/Track.vue:195
-#: src/components/audio/SearchBar.vue:27
-#: front/src/components/metadata/Search.vue:138
-msgid "Track"
-msgstr "Pista"
-
-#: front/src/components/library/Home.vue:65
-msgid "Home"
-msgstr "Acuèlh"
-
-#: front/src/components/forms/PasswordInput.vue:25
-msgid "Show/hide password"
-msgstr "Mostrar/amagar lo senhal"
-
-#: front/src/components/requests/Form.vue:73
-msgid "The Beatles, Mickael Jackson…"
-msgstr "Los Beatles, Mickael Jackson…"
-
-#: front/src/components/requests/Form.vue:74
-msgid "The White Album, Thriller…"
-msgstr "L'Album Blanc, Thriller…"
-
-#: front/src/components/requests/Form.vue:75
-msgid "Use this comment box to add details to your request if needed"
-msgstr "Utilizatz aqueste camp per ajustar de detalhs a vòstra demanda, se cal"
-
-#: front/src/components/audio/PlayButton.vue:158
-msgid "%{ count } track was added to your queue"
-msgid_plural "%{ count } tracks were added to your queue"
-msgstr[0] "%{ count } pista ajustada a la fila"
-msgstr[1] "%{ count } pistas ajustadas a la fila"
-
-#: front/src/components/audio/Search.vue:65
-msgid "Artist, album, track..."
-msgstr "Artista, album, pista..."
-
-#: front/src/components/audio/SearchBar.vue:20
-msgid "Search for artists, albums, tracks..."
-msgstr "Recercar d’artistas, d’albums, de pistas..."
-
-#: front/src/components/audio/Player.vue:216
-msgid "Queue shuffled!"
-msgstr "La fila es estada mesclada !"
-
-#: front/src/components/audio/Player.vue:273
-msgid "Previous track"
-msgstr "Pista precedenta"
-
-#: front/src/components/audio/Player.vue:274
-msgid "Play track"
-msgstr "Legir"
-
-#: front/src/components/audio/Player.vue:275
-msgid "Pause track"
-msgstr "Pausar"
-
-#: front/src/components/audio/Player.vue:276
-msgid "Next track"
-msgstr "Pista seguenta"
-
-#: front/src/components/audio/Player.vue:277
-msgid "Unmute"
-msgstr "Restablir lo son"
-
-#: front/src/components/audio/Player.vue:278
-msgid "Mute"
-msgstr "Copar lo son"
-
-#: front/src/components/audio/Player.vue:279
-msgid "Looping disabled. Click to switch to single-track looping."
-msgstr "Repeticion desactivada. Clicatz per activar la repeticion de la pista actuala."
-
-#: front/src/components/audio/Player.vue:280
-msgid "Looping on a single track. Click to switch to whole queue looping."
-msgstr "Repeticion de la pista actuala. Clicatz per activar la repeticion de tota la fila."
-
-#: front/src/components/audio/Player.vue:281
-msgid "Looping on whole queue. Click to disable looping."
-msgstr "Repeticion de tota la fila, clicatz per desactivar la repeticion."
-
-#: front/src/components/audio/Player.vue:282
-msgid "Shuffle your queue"
-msgstr "Mesclar la fila"
-
-#: front/src/components/audio/Player.vue:283
-msgid "Clear your queue"
-msgstr "Voidar la fila"
-
-#: front/src/components/Sidebar.vue:203
-msgid "Pending import requests"
-msgstr "Requèstas en espèra"
-
-#: front/src/components/Sidebar.vue:204
-msgid "Pending follow requests"
-msgstr "Demandas d’abonament en espèra"
-
-#: front/src/components/metadata/Search.vue:114
-msgid "Enter your search query..."
-msgstr "Escrivètz vòstra recèrca..."
-
-#: front/src/components/manage/library/FilesTable.vue:176
-msgid "Search by title, artist, domain..."
-msgstr "Recercar per títol, artista, domeni..."
-
-#: front/src/components/manage/users/InvitationForm.vue:58
-msgid "Leave empty for a random code"
-msgstr "Daissar void per obténer un còdi aleatòri"
-
-#: front/src/components/manage/users/InvitationsTable.vue:153
-msgid "Search by username, email, code..."
-msgstr "Recercar per nom d’utilizaire, corrièl, còdi..."
-
-#: front/src/components/manage/users/UsersTable.vue:163
-msgid "Search by username, email, name..."
-msgstr "Recercar per nom d’utilizaire, corrièl, nom..."
-
-#: front/src/components/manage/users/UsersTable.vue:181
-#: front/src/views/admin/users/UsersDetail.vue:185
-#: src/views/admin/Settings.vue:83
-msgid "Federation"
-msgstr "Federacion"
-
-#: front/src/components/Home.vue:154
-msgid "Welcome"
-msgstr "La benvenguda"
-
-#: front/src/views/content/remote/ScanForm.vue:48
-msgid "Enter a library url"
-msgstr "Picatz l’URL d’una bibliotèca"
-
-#: front/src/views/content/remote/Card.vue:165
-msgid "Scan launched"
-msgstr "Exploracion lançada"
-
-#: front/src/views/content/remote/Card.vue:166
-msgid "Scan skipped (previous scan is too recent)"
-msgstr "Exploracion sautada (la darrièra es tròp recenta)"
-
-#: front/src/views/content/libraries/FilesTable.vue:226
-msgid "Search by title, artist, album..."
-msgstr "Recercar per títol, artista, album..."
-
-#: front/src/views/content/libraries/FilesTable.vue:230
-msgid "Track was already present in one of your libraries"
-msgstr "La pista ja presenta dins una de vòstras bibliotècas"
-
-#: front/src/views/content/libraries/FilesTable.vue:234
-msgid "Track is uploaded but not processed by the server yet"
-msgstr "La pista es enviada mas pas encara tractada pel servidor"
-
-#: front/src/views/content/libraries/FilesTable.vue:238
-msgid "An error occured while processing this track, ensure the track is correctly tagged"
-msgstr "Una error s’es producha en tractar aquesta pista, asseguratz-vos qu’es corrèctament etiquetada"
-
-#: front/src/views/content/libraries/FilesTable.vue:242
-msgid "Import went on successfully"
-msgstr "L’importacion a reüssit"
-
-#: front/src/views/content/libraries/FilesTable.vue:259
-msgid "Relaunch import"
-msgstr "Relançar l’import"
-
-#: front/src/views/content/libraries/Card.vue:58
-msgid "Visibility: nobody except me"
-msgstr "Visibilitat : degun levat ieu"
-
-#: front/src/views/content/libraries/Card.vue:59
-msgid "Visibility: everyone on this instance"
-msgstr "Visibilitat : lo monde d’aquesta instància"
-
-#: front/src/views/content/libraries/Card.vue:60
-msgid "Visibility: everyone, including other instances"
-msgstr "Visibilitat : totes, tanben las autras instàncias"
-
-#: front/src/views/content/libraries/Card.vue:61
-msgid "Total size of the files in this library"
-msgstr "Talha totala dels fichièrs d’aquesta bibliotèca"
-
-#: front/src/views/content/libraries/Form.vue:70
-msgid "My awesome library"
-msgstr "Ma bibliotèca tròp crana"
-
-#: front/src/views/content/libraries/Form.vue:71
-msgid "This library contains my personnal music, I hope you will like it!"
-msgstr "Aquesta bibliotèca conten ma musica personala, espèri que vos agradarà !"
-
-#: front/src/views/content/libraries/Form.vue:74
-msgid "Everyone, including other instances"
-msgstr "Tot lo monde, d’autras instàncias tanben"
-
-#: front/src/views/content/libraries/Form.vue:106
-msgid "Library updated"
-msgstr "Bibliotèca actualizada"
-
-#: front/src/views/content/libraries/Form.vue:109
-msgid "Library created"
-msgstr "Bibliotèca creada"
-
-#: front/src/views/content/Home.vue:35
-msgid "Add and manage content"
-msgstr "Ajustar e gerir lo contengut"
-
-#: front/src/views/radios/Detail.vue:80
-msgid "Radio"
-msgstr "Ràdio"
-
-#: front/src/views/instance/Timeline.vue:57
-msgid "Instance Timeline"
-msgstr "Flux de l’instància"
-
-#: front/src/views/playlists/Detail.vue:90
-msgid "Playlist"
-msgstr "Lista de lectura"
-
-#: front/src/views/playlists/List.vue:105
-msgid "Enter an playlist name..."
-msgstr "Escrivètz un nom de lista de lectura..."
-
-#: front/src/views/admin/library/Base.vue:16
-msgid "Manage library"
-msgstr "Gerir la bibliotèca"
-
-#: front/src/views/admin/users/UsersDetail.vue:169
-msgid "Determine if the user account is active or not. Inactive users cannot login or use the service."
-msgstr "Determina se l’utilizaire es actiu o non. Los compte inactius se pòdon pas connectar nimai utilizar lo servici."
-
-#: front/src/views/admin/users/UsersDetail.vue:170
-msgid "Determine how much content the user can upload. Leave empty to use the default value of the instance."
-msgstr "Definissètz la quantitat de contengut que l’utilizaire pòt enviar. Daissatz void per emplegar las valors per defaut de l’instància."
-
-#: front/src/views/admin/users/Base.vue:20
-msgid "Manage users"
-msgstr "Gerir los utilizaires"
-
-#: front/src/views/admin/Settings.vue:75
-msgid "Instance settings"
-msgstr "Paramètres de l’intància"
-
-#: front/src/views/admin/Settings.vue:80
-msgid "Instance information"
-msgstr "Info. de l’instància"
-
-#: front/src/views/admin/Settings.vue:84
-msgid "Subsonic"
-msgstr "Subsonic"
-
-#: front/src/views/admin/Settings.vue:85
-msgid "Statistics"
-msgstr "Estatisticas"
-
-#: front/src/views/admin/Settings.vue:86
-msgid "Error reporting"
-msgstr "Rapòrt d’error"
diff --git a/front/locales/pl/LC_MESSAGES/app.po b/front/locales/pl/LC_MESSAGES/app.po
index 33c89a1fd1c4a1fc1f1499e5fe70b3c3eeab30fb..7f0047855aae07ee819d5eaaff6b2d0f1b898754 100644
--- a/front/locales/pl/LC_MESSAGES/app.po
+++ b/front/locales/pl/LC_MESSAGES/app.po
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: front 1.0.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-10-05 20:10+0200\n"
-"PO-Revision-Date: 2018-10-02 17:46+0000\n"
+"POT-Creation-Date: 2019-01-11 15:55+0100\n"
+"PO-Revision-Date: 2018-11-11 08:36+0000\n"
 "Last-Translator: Marcin Mikołajczak <me@m4sk.in>\n"
 "Language-Team: \n"
 "Language: pl\n"
@@ -16,7 +16,7 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Generator: Weblate 2.20\n"
+"X-Generator: Weblate 3.2.2\n"
 
 #: front/src/components/playlists/PlaylistModal.vue:9
 msgid "\"%{ title }\", by %{ artist }"
@@ -30,15 +30,15 @@ msgstr "(%{ index } z %{ length })"
 msgid "(empty)"
 msgstr "(pusta)"
 
-#: front/src/components/common/ActionTable.vue:44
-#: front/src/components/common/ActionTable.vue:53
+#: front/src/components/common/ActionTable.vue:57
+#: front/src/components/common/ActionTable.vue:66
 msgid "%{ count } on %{ total } selected"
 msgid_plural "%{ count } on %{ total } selected"
 msgstr[0] "%{ count } z %{ total } zaznaczonego"
 msgstr[1] "%{ count } z %{ total } zaznaczonych"
 msgstr[2] "%{ count } z %{ total } zaznaczonych"
 
-#: front/src/components/Sidebar.vue:107 src/components/audio/album/Card.vue:54
+#: front/src/components/Sidebar.vue:110 src/components/audio/album/Card.vue:54
 #: front/src/views/content/libraries/Card.vue:39
 #: src/views/content/remote/Card.vue:26
 msgid "%{ count } track"
@@ -61,6 +61,13 @@ msgstr[0] "%{ count } utwór zgodny z wybranymi filtrami"
 msgstr[1] "%{ count } utwory zgodne z wybranymi filtrami"
 msgstr[2] "%{ count } utworów zgodnych z wybranymi filtrami"
 
+#: front/src/components/audio/PlayButton.vue:180
+msgid "%{ count } track was added to your queue"
+msgid_plural "%{ count } tracks were added to your queue"
+msgstr[0] "Dodano %{ count } utwór do kolejki"
+msgstr[1] "Dodano %{ count } utwory do kolejki"
+msgstr[2] "Dodano %{ count } utworów do kolejki"
+
 #: front/src/components/playlists/Card.vue:18
 msgid "%{ count} track"
 msgid_plural "%{ count } tracks"
@@ -80,13 +87,21 @@ msgstr "%{ hours } godz. %{ minutes } min"
 msgid "%{ minutes } min"
 msgstr "%{ minutes } min"
 
-#: front/src/components/activity/Like.vue:7
-msgid "%{ user } favorited a track"
-msgstr "%{ user } dodał utwór do ulubionych"
+#: front/src/components/notifications/NotificationRow.vue:40
+msgid "%{ username } accepted your follow on library \"%{ library }\""
+msgstr ""
+
+#: front/src/components/notifications/NotificationRow.vue:39
+msgid "%{ username } followed your library \"%{ library }\""
+msgstr ""
+
+#: front/src/components/auth/Profile.vue:46
+msgid "%{ username }'s profile"
+msgstr "Profil %{ username }"
 
-#: front/src/components/activity/Listen.vue:7
-msgid "%{ user } listened to a track"
-msgstr "%{ user } słuchał utworu"
+#: front/src/components/Footer.vue:5
+msgid "<translate :translate-params=\"{instanceName: instanceHostname}\">About %{instanceName}</translate>"
+msgstr ""
 
 #: front/src/components/audio/artist/Card.vue:41
 msgid "1 album"
@@ -102,15 +117,30 @@ msgstr[0] "1 polubienie"
 msgstr[1] "%{ count} polubienia"
 msgstr[2] "%{ count} polubień"
 
+#: front/src/components/library/FileUpload.vue:225
+#: front/src/components/library/FileUpload.vue:226
+msgid "A network error occured while uploading this file"
+msgstr "Wystąpił błąd sieci podczas wysyłania tego pliku"
+
 #: front/src/components/About.vue:5
 msgid "About %{ instance }"
 msgstr "O %{ instance }"
 
-#: front/src/App.vue:53
+#: front/src/components/Footer.vue:6
+#, fuzzy
+msgid "About %{instanceName}"
+msgstr "O %{ instance }"
+
+#: front/src/components/Footer.vue:45
 msgid "About Funkwhale"
 msgstr "O Funkwhale"
 
-#: front/src/App.vue:34 src/components/About.vue:8 src/components/About.vue:55
+#: front/src/components/Footer.vue:10
+#, fuzzy
+msgid "About page"
+msgstr "Strona albumu"
+
+#: front/src/components/About.vue:8 src/components/About.vue:64
 msgid "About this instance"
 msgstr "O tej instancji"
 
@@ -122,18 +152,32 @@ msgstr "Zaakceptuj"
 msgid "Accepted"
 msgstr "Zaakceptowano"
 
+#: front/src/components/auth/SubsonicTokenForm.vue:111
+msgid "Access disabled"
+msgstr "Brak dostępu"
+
 #: front/src/components/Home.vue:106
 msgid "Access your music from a clean interface that focus on what really matters"
 msgstr "Uzyskaj dostęp do swojej muzyki z przejrzystego interfejsu skupionego na tym, co naprawdę ważne"
 
-#: front/src/views/admin/users/UsersDetail.vue:54
-msgid "Account active"
+#: front/src/components/mixins/Translations.vue:19
+#: front/src/components/mixins/Translations.vue:20
+msgid "Accessed date"
+msgstr "Data dostępu"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:78
+#, fuzzy
+msgid "Account data"
 msgstr "Konto aktywne"
 
 #: front/src/components/auth/Settings.vue:5
 msgid "Account settings"
 msgstr "Ustawienia konta"
 
+#: front/src/components/auth/Settings.vue:264
+msgid "Account Settings"
+msgstr "Ustawienia konta"
+
 #: front/src/components/manage/users/UsersTable.vue:39
 msgid "Account status"
 msgstr "Stan konta"
@@ -142,18 +186,25 @@ msgstr "Stan konta"
 msgid "Account's email"
 msgstr "Adres e-mail konta"
 
+#: front/src/views/admin/moderation/AccountsList.vue:3
+#: front/src/views/admin/moderation/AccountsList.vue:24
+#: front/src/views/admin/moderation/Base.vue:8
+#, fuzzy
+msgid "Accounts"
+msgstr "Stan konta"
+
 #: front/src/views/content/libraries/Detail.vue:29
 msgid "Action"
 msgstr "Działanie"
 
-#: front/src/components/common/ActionTable.vue:86
+#: front/src/components/common/ActionTable.vue:99
 msgid "Action %{ action } was launched successfully on %{ count } element"
 msgid_plural "Action %{ action } was launched successfully on %{ count } elements"
 msgstr[0] "Działanie %{ action } zostało rozpoczęte pomyślnie na %{ count } elemencie"
 msgstr[1] "Działanie %{ action } zostało rozpoczęte pomyślnie na %{ count } elementach"
 msgstr[2] "Działanie %{ action } zostało rozpoczęte pomyślnie na %{ count } elementach"
 
-#: front/src/components/common/ActionTable.vue:8
+#: front/src/components/common/ActionTable.vue:21
 #: front/src/components/library/radios/Builder.vue:64
 msgid "Actions"
 msgstr "Działania"
@@ -162,11 +213,33 @@ msgstr "Działania"
 msgid "Active"
 msgstr "Aktywny"
 
-#: front/src/components/Sidebar.vue:75
+#: front/src/views/admin/moderation/AccountsDetail.vue:199
+#: front/src/views/admin/moderation/DomainsDetail.vue:144
 msgid "Activity"
 msgstr "Aktywność"
 
-#: front/src/components/Sidebar.vue:78 src/views/content/Base.vue:19
+#: front/src/components/mixins/Translations.vue:7
+#: front/src/components/mixins/Translations.vue:8
+msgid "Activity visibility"
+msgstr "Widoczność aktywności"
+
+#: front/src/views/admin/moderation/DomainsList.vue:18
+msgid "Add"
+msgstr ""
+
+#: front/src/views/admin/moderation/DomainsList.vue:13
+msgid "Add a domain"
+msgstr ""
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:4
+msgid "Add a new moderation rule"
+msgstr ""
+
+#: front/src/views/content/Home.vue:35
+msgid "Add and manage content"
+msgstr "Dodaj i zarządzaj zawartością"
+
+#: front/src/components/Sidebar.vue:75 src/views/content/Base.vue:18
 msgid "Add content"
 msgstr "Dodaj zawartość"
 
@@ -178,20 +251,30 @@ msgstr "Dodaj filtr"
 msgid "Add filters to customize your radio"
 msgstr "Dodaj filtry aby dostosować swoje radio"
 
+#: front/src/components/audio/PlayButton.vue:64
+#, fuzzy
+msgid "Add to current queue"
+msgstr "Dodaj do kolejki"
+
 #: front/src/components/favorites/TrackFavoriteIcon.vue:4
-#: front/src/components/favorites/TrackFavoriteIcon.vue:21
+#: front/src/components/favorites/TrackFavoriteIcon.vue:28
 msgid "Add to favorites"
 msgstr "Dodaj do ulubionych"
 
 #: front/src/components/playlists/TrackPlaylistIcon.vue:6
-#: front/src/components/playlists/TrackPlaylistIcon.vue:32
-msgid "Add to playlist..."
+#: front/src/components/playlists/TrackPlaylistIcon.vue:34
+#, fuzzy
+msgid "Add to playlist…"
 msgstr "Dodaj do playlisty…"
 
 #: front/src/components/audio/PlayButton.vue:14
 msgid "Add to queue"
 msgstr "Dodaj do kolejki"
 
+#: front/src/components/playlists/PlaylistModal.vue:116
+msgid "Add to this playlist"
+msgstr "Dodaj do tej playlisty"
+
 #: front/src/components/playlists/PlaylistModal.vue:54
 msgid "Add track"
 msgstr "Dodaj utwór"
@@ -200,16 +283,16 @@ msgstr "Dodaj utwór"
 msgid "Admin"
 msgstr "Administrator"
 
-#: front/src/components/Sidebar.vue:82
+#: front/src/components/Sidebar.vue:79
 msgid "Administration"
 msgstr "Administracja"
 
-#: front/src/components/audio/track/Table.vue:8
+#: front/src/components/audio/SearchBar.vue:26
+#: src/components/audio/track/Table.vue:8
+#: front/src/components/library/Album.vue:159
 #: front/src/components/manage/library/FilesTable.vue:39
-#: front/src/views/content/libraries/FilesTable.vue:53
-#: front/src/components/library/Album.vue:101
-#: src/components/audio/SearchBar.vue:26
 #: front/src/components/metadata/Search.vue:134
+#: front/src/views/content/libraries/FilesTable.vue:56
 msgid "Album"
 msgstr "Album"
 
@@ -220,13 +303,19 @@ msgstr[0] "Album zawiera %{ count } utwór od %{ artist }"
 msgstr[1] "Album zawiera %{ count } utwory od %{ artist }"
 msgstr[2] "Album zawiera %{ count } utworów od %{ artist }"
 
-#: front/src/components/library/Track.vue:20
+#: front/src/components/mixins/Translations.vue:24
+#: front/src/components/mixins/Translations.vue:25
+msgid "Album name"
+msgstr "Nazwa albumu"
+
+#: front/src/components/library/Track.vue:27
 msgid "Album page"
 msgstr "Strona albumu"
 
 #: front/src/components/audio/Search.vue:19
 #: src/components/instance/Stats.vue:48
-#: front/src/components/requests/Form.vue:9
+#: front/src/views/admin/moderation/AccountsDetail.vue:321
+#: front/src/views/admin/moderation/DomainsDetail.vue:257
 msgid "Albums"
 msgstr "Albumy"
 
@@ -247,33 +336,44 @@ msgstr "Wystąpił błąd podczas zapisywania zmian"
 msgid "An unknown error happend, this can mean the server is down or cannot be reached"
 msgstr "Wystąpił nieznany błąd, może oznaczać to że serwer jest wyłączony lub nieosiągalny"
 
+#: front/src/components/notifications/NotificationRow.vue:62
+msgid "Approve"
+msgstr ""
+
 #: front/src/components/auth/Logout.vue:5
 msgid "Are you sure you want to log out?"
 msgstr "Czy na pewno chcesz się wylogować?"
 
-#: front/src/components/audio/track/Table.vue:7
+#: front/src/components/audio/SearchBar.vue:25
+#: src/components/audio/track/Table.vue:7
+#: front/src/components/library/Artist.vue:137
 #: front/src/components/manage/library/FilesTable.vue:38
-#: front/src/views/content/libraries/FilesTable.vue:52
-#: front/src/components/library/Artist.vue:129
-#: src/components/audio/SearchBar.vue:25
 #: front/src/components/metadata/Search.vue:130
+#: front/src/views/content/libraries/FilesTable.vue:55
 msgid "Artist"
 msgstr "Wykonawca"
 
-#: front/src/components/requests/Form.vue:5
-#: src/components/mixins/Translations.vue:24
+#: front/src/components/mixins/Translations.vue:25
+#: front/src/components/mixins/Translations.vue:26
 msgid "Artist name"
 msgstr "Nazwa wykonawcy"
 
 #: front/src/components/library/Album.vue:22
-#: src/components/library/Track.vue:23
+#: src/components/library/Track.vue:33
 msgid "Artist page"
 msgstr "Strona wykonawcy"
 
+#: front/src/components/audio/Search.vue:65
+#, fuzzy
+msgid "Artist, album, track…"
+msgstr "Wykonawca, album, utwór…"
+
 #: front/src/components/audio/Search.vue:10
 #: src/components/instance/Stats.vue:42
-#: front/src/components/library/Library.vue:7
-#: src/components/library/Artists.vue:120
+#: front/src/components/library/Artists.vue:119
+#: src/components/library/Library.vue:7
+#: front/src/views/admin/moderation/AccountsDetail.vue:313
+#: front/src/views/admin/moderation/DomainsDetail.vue:249
 msgid "Artists"
 msgstr "Wykonawcy"
 
@@ -281,6 +381,8 @@ msgstr "Wykonawcy"
 #: src/components/library/Artists.vue:25
 #: front/src/components/library/Radios.vue:44
 #: front/src/components/manage/library/FilesTable.vue:19
+#: front/src/components/manage/moderation/AccountsTable.vue:21
+#: front/src/components/manage/moderation/DomainsTable.vue:19
 #: front/src/components/manage/users/UsersTable.vue:19
 #: front/src/views/content/libraries/FilesTable.vue:31
 #: front/src/views/playlists/List.vue:27
@@ -291,6 +393,16 @@ msgstr "RosnÄ…co"
 msgid "Ask for a password reset"
 msgstr "Poproś o zresetowanie hasła"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:245
+#: front/src/views/admin/moderation/DomainsDetail.vue:202
+#, fuzzy
+msgid "Audio content"
+msgstr "Dodaj zawartość"
+
+#: front/src/components/ShortcutsModal.vue:55
+msgid "Audio player shortcuts"
+msgstr ""
+
 #: front/src/components/playlists/PlaylistModal.vue:26
 msgid "Available playlists"
 msgstr "Dostępne playlisty"
@@ -299,17 +411,27 @@ msgstr "Dostępne playlisty"
 msgid "Avatar"
 msgstr "Awatar"
 
-#: front/src/views/auth/EmailConfirm.vue:17 src/views/auth/PasswordReset.vue:24
+#: front/src/views/auth/PasswordReset.vue:24
 #: front/src/views/auth/PasswordResetConfirm.vue:18
 msgid "Back to login"
 msgstr "Wróć do logowania"
 
-#: front/src/components/library/Track.vue:80
+#: front/src/components/library/Track.vue:129
 #: front/src/components/manage/library/FilesTable.vue:42
-#: front/src/components/mixins/Translations.vue:28
+#: front/src/components/mixins/Translations.vue:29
+#: front/src/components/mixins/Translations.vue:30
 msgid "Bitrate"
 msgstr "Bitrate"
 
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:19
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:34
+msgid "Block everything"
+msgstr ""
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:112
+msgid "Block everything from this account or domain. This will prevent any interaction with the entity, and purge related content (uploads, libraries, follows, etc.)"
+msgstr ""
+
 #: front/src/components/Sidebar.vue:18 src/components/library/Library.vue:4
 msgid "Browse"
 msgstr "PrzeglÄ…daj"
@@ -339,11 +461,20 @@ msgid "By %{ artist }"
 msgstr "Od %{ artist }"
 
 #: front/src/views/content/remote/Card.vue:103
-msgid "By unfollowing this library, you will loose access to its content."
+#, fuzzy
+msgid "By unfollowing this library, you loose access to its content."
+msgstr "Gdy przestaniesz obserwować tę bibliotekę, stracisz dostęp do jej zawartości."
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:261
+#: front/src/views/admin/moderation/DomainsDetail.vue:217
+msgid "Cached size"
 msgstr ""
 
 #: front/src/components/common/DangerousButton.vue:17
+#: front/src/components/library/Album.vue:58
+#: src/components/library/Track.vue:76
 #: front/src/components/library/radios/Filter.vue:53
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:54
 #: front/src/components/playlists/PlaylistModal.vue:63
 msgid "Cancel"
 msgstr "Anuluj"
@@ -356,7 +487,13 @@ msgstr "Kandydaci"
 msgid "Cannot change your password"
 msgstr "Nie udało się zmienić Twojego hasła"
 
-#: front/src/App.vue:65
+#: front/src/components/library/FileUpload.vue:222
+#: front/src/components/library/FileUpload.vue:223
+#, fuzzy
+msgid "Cannot upload this file, ensure it is not too big"
+msgstr "Nie można było zaimportować tego pliku, upewnij się że nie jest zbyt duży"
+
+#: front/src/components/Footer.vue:21
 msgid "Change language"
 msgstr "Zmień język"
 
@@ -383,13 +520,17 @@ msgstr "Zsynchronizowano zmiany z serwerem"
 
 #: front/src/components/auth/Settings.vue:70
 msgid "Changing your password will also change your Subsonic API password if you have requested one."
-msgstr "ZMiana Twojego hasła zmieni też Twoje hasło API Subsonic, jeżeli uzyskałeś je."
+msgstr "Zmiana Twojego hasła zmieni też Twoje hasło API Subsonic, jeżeli uzyskałeś(-aś) je."
 
 #: front/src/components/auth/Settings.vue:98
 msgid "Changing your password will have the following consequences"
 msgstr "Zmiana hasła będzie miała następujące konsekwencje"
 
-#: front/src/App.vue:6
+#: front/src/components/Footer.vue:40
+msgid "Chat room"
+msgstr ""
+
+#: front/src/App.vue:13
 msgid "Choose your instance"
 msgstr "Wybierz instancjÄ™"
 
@@ -406,14 +547,22 @@ msgstr "Wyczyść"
 msgid "Clear playlist"
 msgstr "Wyczyść listę odtwarzania"
 
+#: front/src/components/audio/Player.vue:363
+msgid "Clear your queue"
+msgstr "Wyczyść swoją kolejkę"
+
 #: front/src/components/Home.vue:44
 msgid "Click once, listen for hours using built-in radios"
 msgstr "Naciśnij raz, słuchaj godzinami dzięki wbudowanemu radio"
 
-#: front/src/components/library/FileUpload.vue:76
+#: front/src/components/library/FileUpload.vue:75
 msgid "Click to select files to upload or drag and drop files or directories"
 msgstr "Naciśnij aby wybrać pliki do wysłania lub przeciągnij i upuść pliki lub katalogi"
 
+#: front/src/components/ShortcutsModal.vue:20
+msgid "Close"
+msgstr ""
+
 #: front/src/components/manage/users/InvitationForm.vue:26
 #: front/src/components/manage/users/InvitationsTable.vue:42
 msgid "Code"
@@ -421,14 +570,9 @@ msgstr "Kod"
 
 #: front/src/components/audio/album/Card.vue:43
 #: front/src/components/audio/artist/Card.vue:33
-#: front/src/components/discussion/Comment.vue:20
 msgid "Collapse"
 msgstr "Zwiń"
 
-#: front/src/components/requests/Form.vue:14
-msgid "Comment"
-msgstr "Komentarz"
-
 #: front/src/components/library/radios/Builder.vue:62
 msgid "Config"
 msgstr "Konfiguracja"
@@ -439,21 +583,64 @@ msgstr "Potwierdź"
 
 #: front/src/views/auth/EmailConfirm.vue:4 src/views/auth/EmailConfirm.vue:20
 #: front/src/views/auth/EmailConfirm.vue:51
-msgid "Confirm your email"
+#, fuzzy
+msgid "Confirm your e-mail address"
 msgstr "Potwierdź swój e-mail"
 
 #: front/src/views/auth/EmailConfirm.vue:13
 msgid "Confirmation code"
 msgstr "Kod potwierdzajÄ…cy"
 
+#: front/src/components/common/ActionTable.vue:7
+msgid "Content have been updated, click refresh to see up-to-date content"
+msgstr ""
+
+#: front/src/components/Footer.vue:48
+msgid "Contribute"
+msgstr ""
+
+#: front/src/components/audio/EmbedWizard.vue:19
 #: front/src/components/common/CopyInput.vue:8
 msgid "Copy"
 msgstr "Kopiuj"
 
+#: front/src/components/playlists/Editor.vue:163
+msgid "Copy tracks from current queue to playlist"
+msgstr "Skopiuj utwory z obecnej kolejki do listy odtwarzania"
+
+#: front/src/components/audio/EmbedWizard.vue:21
+msgid "Copy/paste this code in your website HTML"
+msgstr ""
+
+#: front/src/components/library/Track.vue:91
+#, fuzzy
+msgid "Copyright"
+msgstr "Kopiuj"
+
+#: front/src/views/auth/EmailConfirm.vue:7
+#, fuzzy
+msgid "Could not confirm your e-mail address"
+msgstr "Potwierdź swój e-mail"
+
+#: front/src/views/content/remote/ScanForm.vue:3
+#, fuzzy
+msgid "Could not fetch remote library"
+msgstr "Wystąpił błąd podczas uzyskiwania zdalnej biblioteki"
+
+#: front/src/views/content/libraries/FilesTable.vue:213
+#, fuzzy
+msgid "Could not process this track, ensure it is tagged correctly"
+msgstr "Wystąpił błąd w trakcie przetwarzania tego utworu, upewnij się że posiada on poprawne metadane"
+
 #: front/src/components/Home.vue:85
 msgid "Covers, lyrics, our goal is to have them all ;)"
 msgstr "Covery, teksty, naszym celem jest mieć je wszystkie ;)"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:58
+#, fuzzy
+msgid "Create"
+msgstr "Utwórz importowanie"
+
 #: front/src/components/auth/Signup.vue:4
 msgid "Create a funkwhale account"
 msgstr "Utwórz konto funkwhale"
@@ -470,10 +657,6 @@ msgstr "Utwórz nową listę odtwarzania"
 msgid "Create an account"
 msgstr "Utwórz konto"
 
-#: front/src/components/requests/Card.vue:25
-msgid "Create import"
-msgstr "Utwórz importowanie"
-
 #: front/src/views/content/libraries/Form.vue:26
 msgid "Create library"
 msgstr "Utwórz bibliotekę"
@@ -491,6 +674,7 @@ msgid "Create your own radio"
 msgstr "Utwórz własne radio"
 
 #: front/src/components/manage/users/InvitationsTable.vue:40
+#: front/src/components/mixins/Translations.vue:16
 #: front/src/components/mixins/Translations.vue:17
 msgid "Creation date"
 msgstr "Data utworzenia"
@@ -515,11 +699,16 @@ msgstr "Obecne użycie"
 msgid "Date"
 msgstr "Data"
 
-#: front/src/views/content/libraries/Form.vue:29
-#: src/views/playlists/Detail.vue:33
+#: front/src/components/ShortcutsModal.vue:75
+msgid "Decrease volume"
+msgstr ""
+
 #: front/src/components/manage/library/FilesTable.vue:190
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:61
 #: front/src/components/manage/users/InvitationsTable.vue:167
-#: front/src/views/content/libraries/FilesTable.vue:258
+#: front/src/views/content/libraries/FilesTable.vue:233
+#: front/src/views/content/libraries/Form.vue:29
+#: src/views/playlists/Detail.vue:33
 msgid "Delete"
 msgstr "Usuń"
 
@@ -527,6 +716,11 @@ msgstr "Usuń"
 msgid "Delete library"
 msgstr "Usuń bibliotekę"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:69
+#, fuzzy
+msgid "Delete moderation rule"
+msgstr "Usuń radio"
+
 #: front/src/views/playlists/Detail.vue:38
 msgid "Delete playlist"
 msgstr "Usuń listę odtwarzania"
@@ -539,10 +733,17 @@ msgstr "Usuń radio"
 msgid "Delete this library?"
 msgstr "Czy chcesz usunąć tę bibliotekę?"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:63
+#, fuzzy
+msgid "Delete this moderation rule?"
+msgstr "Czy chcesz usunąć tę bibliotekę?"
+
 #: front/src/components/favorites/List.vue:34
 #: src/components/library/Artists.vue:26
 #: front/src/components/library/Radios.vue:47
 #: front/src/components/manage/library/FilesTable.vue:20
+#: front/src/components/manage/moderation/AccountsTable.vue:22
+#: front/src/components/manage/moderation/DomainsTable.vue:20
 #: front/src/components/manage/users/UsersTable.vue:20
 #: front/src/views/content/libraries/FilesTable.vue:32
 #: front/src/views/playlists/List.vue:28
@@ -556,12 +757,20 @@ msgstr "Opis"
 
 #: front/src/views/content/libraries/Card.vue:47
 msgid "Detail"
-msgstr "Szczegół"
+msgstr "Szczegóły"
 
 #: front/src/views/content/remote/Card.vue:50
-#, fuzzy
 msgid "Details"
-msgstr "Szczegół"
+msgstr "Szczegóły"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:455
+msgid "Determine how much content the user can upload. Leave empty to use the default value of the instance."
+msgstr "Określ jak dużo zawartości może zaimportować użytkownik. Pozostaw puste, aby użyć domyślnej wartości instancji"
+
+#: front/src/components/mixins/Translations.vue:8
+#: front/src/components/mixins/Translations.vue:9
+msgid "Determine the visibility level of your activity"
+msgstr "Ustal poziom widoczności twojej aktywności"
 
 #: front/src/components/auth/Settings.vue:104
 #: front/src/components/auth/SubsonicTokenForm.vue:52
@@ -576,14 +785,30 @@ msgstr "Wyłącz dostęp Subsonic"
 msgid "Disable Subsonic API access?"
 msgstr "Wyłączyć dostęp do API Subsonic?"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:18
+#: front/src/views/admin/moderation/AccountsDetail.vue:128
+#: front/src/views/admin/moderation/AccountsDetail.vue:132
+#, fuzzy
+msgid "Disabled"
+msgstr "Wyłącz dostęp"
+
 #: front/src/components/auth/SubsonicTokenForm.vue:14
 msgid "Discover how to use Funkwhale from other apps"
 msgstr "Odkryj, jak korzystać z Funkwhale z innych aplikacji"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:103
+#, fuzzy
+msgid "Display name"
+msgstr "Nazwa pliku"
+
 #: front/src/components/library/radios/Builder.vue:30
 msgid "Display publicly"
 msgstr "Wyświetlaj publicznie"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:122
+msgid "Do not download any media file (audio, album cover, account avatar…) from this account or domain. This will purge existing content as well."
+msgstr ""
+
 #: front/src/components/playlists/Editor.vue:42
 msgid "Do you want to clear the playlist \"%{ playlist }\"?"
 msgstr "Czy chcesz wyczyścić listę odtwarzania „%{ playlist }”?"
@@ -594,28 +819,41 @@ msgstr "Czy chcesz potwierdzić to działanie?"
 
 #: front/src/views/playlists/Detail.vue:35
 msgid "Do you want to delete the playlist \"%{ playlist }\"?"
-msgstr "Czy chcesz usunąć listę odtwarzania „%{ playlist }”?"
+msgstr "Czy chcesz usunąć listę odtwarzania „%{ playlist }”?"
 
 #: front/src/views/radios/Detail.vue:26
 msgid "Do you want to delete the radio \"%{ radio }\"?"
 msgstr "Czy chcesz usunąć radio „%{ radio }”?"
 
-#: front/src/components/common/ActionTable.vue:29
+#: front/src/components/common/ActionTable.vue:36
 msgid "Do you want to launch %{ action } on %{ count } element?"
 msgid_plural "Do you want to launch %{ action } on %{ count } elements?"
 msgstr[0] "Czy chcesz wykonać działanie %{ action } na %{ count } elemencie?"
 msgstr[1] "Czy chcesz wykonać działanie %{ action } na %{ count } elementach?"
 msgstr[2] "Czy chcesz wykonać działanie %{ action } na %{ count } elementach?"
 
-#: front/src/components/Sidebar.vue:104
+#: front/src/components/Sidebar.vue:107
 msgid "Do you want to restore your previous queue?"
 msgstr "Czy chcesz przywrócić poprzednią kolejkę?"
 
-#: front/src/App.vue:37
+#: front/src/components/Footer.vue:31
 msgid "Documentation"
 msgstr "Dokumentacja"
 
-#: front/src/components/library/Track.vue:48
+#: front/src/components/manage/moderation/AccountsTable.vue:40
+#: front/src/components/mixins/Translations.vue:34
+#: front/src/views/admin/moderation/AccountsDetail.vue:93
+#: front/src/components/mixins/Translations.vue:35
+msgid "Domain"
+msgstr ""
+
+#: front/src/views/admin/moderation/Base.vue:5
+#: front/src/views/admin/moderation/DomainsList.vue:3
+#: front/src/views/admin/moderation/DomainsList.vue:48
+msgid "Domains"
+msgstr ""
+
+#: front/src/components/library/Track.vue:55
 msgid "Download"
 msgstr "Pobierz"
 
@@ -624,13 +862,19 @@ msgid "Drag and drop rows to reorder tracks in the playlist"
 msgstr "Przeciągnij i upuść aby zmienić kolejność utworów w liście odtwarzania"
 
 #: front/src/components/audio/track/Table.vue:9
-#: src/components/library/Track.vue:58
+#: src/components/library/Track.vue:111
 #: front/src/components/manage/library/FilesTable.vue:43
-#: front/src/views/content/libraries/FilesTable.vue:56
-#: front/src/components/mixins/Translations.vue:29
+#: front/src/components/mixins/Translations.vue:30
+#: front/src/views/content/libraries/FilesTable.vue:59
+#: front/src/components/mixins/Translations.vue:31
 msgid "Duration"
 msgstr "Długość"
 
+#: front/src/views/auth/EmailConfirm.vue:23
+#, fuzzy
+msgid "E-mail address confirmed"
+msgstr "Potwierdzono e-mail"
+
 #: front/src/components/Home.vue:93
 msgid "Easy to use"
 msgstr "Prosty w użyciu"
@@ -644,37 +888,109 @@ msgid "Edit instance info"
 msgstr "Edytuj informacje o instancji"
 
 #: front/src/components/radios/Card.vue:22 src/views/playlists/Detail.vue:30
-msgid "Edit..."
-msgstr "Edytuj…"
+#, fuzzy
+msgid "Edit…"
+msgstr "Edytuj"
 
 #: front/src/components/auth/Signup.vue:29
 #: front/src/components/manage/users/UsersTable.vue:38
 msgid "Email"
 msgstr "E-mail"
 
-#: front/src/views/admin/users/UsersDetail.vue:29
+#: front/src/views/admin/moderation/AccountsDetail.vue:111
 msgid "Email address"
 msgstr "Adres e-mail"
 
-#: front/src/views/auth/EmailConfirm.vue:23
-msgid "Email confirmed"
-msgstr "Potwierdzono e-mail"
+#: front/src/components/library/Album.vue:44
+#: src/components/library/Track.vue:62
+msgid "Embed"
+msgstr ""
+
+#: front/src/components/audio/EmbedWizard.vue:20
+msgid "Embed code"
+msgstr ""
+
+#: front/src/components/library/Album.vue:48
+msgid "Embed this album on your website"
+msgstr ""
+
+#: front/src/components/library/Track.vue:66
+msgid "Embed this track on your website"
+msgstr ""
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:230
+#: front/src/views/admin/moderation/DomainsDetail.vue:187
+#, fuzzy
+msgid "Emitted library follows"
+msgstr "Wprowadź adres URL biblioteki"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:214
+#: front/src/views/admin/moderation/DomainsDetail.vue:171
+msgid "Emitted messages"
+msgstr ""
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:8
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:17
+#: front/src/views/admin/moderation/AccountsDetail.vue:127
+#: front/src/views/admin/moderation/AccountsDetail.vue:131
+msgid "Enabled"
+msgstr ""
 
 #: front/src/views/playlists/Detail.vue:29
 msgid "End edition"
 msgstr "Zakończ edytowanie"
 
+#: front/src/views/content/remote/ScanForm.vue:50
+#, fuzzy
+msgid "Enter a library URL"
+msgstr "Wprowadź adres URL biblioteki"
+
+#: front/src/components/library/Radios.vue:140
+#, fuzzy
+msgid "Enter a radio name…"
+msgstr "Wprowadź nazwę radia…"
+
+#: front/src/components/library/Artists.vue:118
+#, fuzzy
+msgid "Enter artist name…"
+msgstr "Wprowadź nazwę wykonawcy…"
+
+#: front/src/views/playlists/List.vue:107
+#, fuzzy
+msgid "Enter playlist name…"
+msgstr "Wprowadź nazwę listy odtwarzania…"
+
+#: front/src/components/auth/Signup.vue:100
+msgid "Enter your email"
+msgstr "Wprowadź swój e-mail"
+
+#: front/src/components/auth/Signup.vue:96 src/components/auth/Signup.vue:97
+msgid "Enter your invitation code (case insensitive)"
+msgstr "Wprowadź swój kod zapraszający (wielkość znaków nie ma znaczenia)"
+
+#: front/src/components/metadata/Search.vue:114
+#, fuzzy
+msgid "Enter your search query…"
+msgstr "Wprowadź swoje kryterium wyszukiwania…"
+
+#: front/src/components/auth/Signup.vue:99
+msgid "Enter your username"
+msgstr "Wprowadź swoją nazwę użytkownika"
+
+#: front/src/components/auth/Login.vue:77
+msgid "Enter your username or email"
+msgstr "Wprowadź swoją nazwę użytkownika lub e-mail"
+
 #: front/src/components/auth/SubsonicTokenForm.vue:20
 #: front/src/views/content/libraries/Form.vue:4
 msgid "Error"
 msgstr "BÅ‚Ä…d"
 
-#: front/src/views/content/remote/Card.vue:39
-#, fuzzy
-msgid "Error during scan"
+#: front/src/views/admin/Settings.vue:87
+msgid "Error reporting"
 msgstr "Zgłaszanie błędów"
 
-#: front/src/components/common/ActionTable.vue:79
+#: front/src/components/common/ActionTable.vue:92
 msgid "Error while applying action"
 msgstr "Błąd podczas zastosowywania działania"
 
@@ -686,24 +1002,30 @@ msgstr "Wystąpił błąd podczas prośby o zresetowanie hasła"
 msgid "Error while changing your password"
 msgstr "Wystąpił błąd podczas zmiany hasła"
 
-#: front/src/views/auth/EmailConfirm.vue:7
-msgid "Error while confirming your email"
-msgstr "Wystąpił błąd podczas potwierdzania adresu e-mail"
+#: front/src/views/admin/moderation/DomainsList.vue:6
+#, fuzzy
+msgid "Error while creating domain"
+msgstr "Wystąpił błąd podczas tworzenia zaproszenia"
 
 #: front/src/components/manage/users/InvitationForm.vue:4
 msgid "Error while creating invitation"
 msgstr "Wystąpił błąd podczas tworzenia zaproszenia"
 
-#: front/src/views/content/remote/ScanForm.vue:3
-msgid "Error while fetching remote library"
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:7
+#, fuzzy
+msgid "Error while creating rule"
+msgstr "Wystąpił błąd podczas tworzenia zaproszenia"
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:126
+#, fuzzy
+msgid "Error while fetching node info"
 msgstr "Wystąpił błąd podczas uzyskiwania zdalnej biblioteki"
 
 #: front/src/components/admin/SettingsGroup.vue:5
 msgid "Error while saving settings"
 msgstr "Wystąpił błąd podczas zapisywania ustawień"
 
-#: front/src/views/content/libraries/FilesTable.vue:16
-#: front/src/views/content/libraries/FilesTable.vue:237
+#: front/src/views/content/libraries/FilesTable.vue:212
 msgid "Errored"
 msgstr "Zakończono błędem"
 
@@ -712,21 +1034,29 @@ msgstr "Zakończono błędem"
 msgid "Errored files"
 msgstr "Zakończono błędem"
 
-#: front/src/views/content/remote/Card.vue:58
+#: front/src/components/playlists/Form.vue:89
+msgid "Everyone"
+msgstr "Wszyscy"
+
+#: front/src/components/mixins/Translations.vue:11
+#: front/src/components/playlists/Form.vue:85
+#: src/views/content/libraries/Form.vue:73
+#: front/src/components/mixins/Translations.vue:12
+msgid "Everyone on this instance"
+msgstr "Wszyscy na tej instancji"
+
+#: front/src/views/content/libraries/Form.vue:74
 #, fuzzy
-msgid "Errored tracks:"
-msgstr "Sfederowane utwory"
+msgid "Everyone, across all instances"
+msgstr "Wszyscy na tej instancji"
 
 #: front/src/components/library/radios/Builder.vue:61
 msgid "Exclude"
 msgstr "Wyłącz"
 
-#: front/src/components/discussion/Comment.vue:14
-msgid "Expand"
-msgstr "Rozwiń"
-
 #: front/src/components/manage/users/InvitationsTable.vue:41
-#: front/src/components/mixins/Translations.vue:21
+#: front/src/components/mixins/Translations.vue:22
+#: front/src/components/mixins/Translations.vue:23
 msgid "Expiration date"
 msgstr "Data wygaśnięcia"
 
@@ -738,12 +1068,30 @@ msgstr "Wyczerpany"
 msgid "Expired/used"
 msgstr "Wyczerpany/zużyty"
 
-#: front/src/components/Sidebar.vue:66
-msgid "Favorites"
-msgstr "Ulubione"
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:110
+msgid "Explain why you're applying this policy. Depending on your instance configuration, this will help you remember why you acted on this account or domain, and may be displayed publicly to help users understand what moderation rules are in place."
+msgstr ""
 
-#: front/src/components/library/FileUpload.vue:83
-msgid "File name"
+#: front/src/views/content/libraries/FilesTable.vue:16
+msgid "Failed"
+msgstr ""
+
+#: front/src/views/content/remote/Card.vue:58
+#, fuzzy
+msgid "Failed tracks:"
+msgstr "Sfederowane utwory"
+
+#: front/src/components/Sidebar.vue:66
+msgid "Favorites"
+msgstr "Ulubione"
+
+#: front/src/views/admin/Settings.vue:84
+msgid "Federation"
+msgstr "Federacja"
+
+#: front/src/components/library/FileUpload.vue:84
+#, fuzzy
+msgid "Filename"
 msgstr "Nazwa pliku"
 
 #: front/src/views/admin/library/Base.vue:5
@@ -756,24 +1104,39 @@ msgid "Filter name"
 msgstr "Filtruj nazwÄ™"
 
 #: front/src/views/content/libraries/FilesTable.vue:17
-#: front/src/views/content/libraries/FilesTable.vue:241
+#: front/src/views/content/libraries/FilesTable.vue:216
 msgid "Finished"
 msgstr "Ukończono"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:42
+#: front/src/components/manage/moderation/DomainsTable.vue:41
+#: front/src/views/admin/moderation/AccountsDetail.vue:159
+#: front/src/views/admin/moderation/DomainsDetail.vue:78
+msgid "First seen"
+msgstr ""
+
+#: front/src/components/mixins/Translations.vue:17
+#: front/src/components/mixins/Translations.vue:18
+#, fuzzy
+msgid "First seen date"
+msgstr "Data wygaśnięcia"
+
 #: front/src/views/content/remote/Card.vue:83
 msgid "Follow"
 msgstr "Śledź"
 
-#: front/src/views/content/remote/Card.vue:88
-#, fuzzy
-msgid "Follow pending approval"
-msgstr "Prośba o możliwość śledzenia oczekuje na zatwierdzenie"
-
 #: front/src/views/content/Home.vue:16
 msgid "Follow remote libraries"
 msgstr "Śledź zdalne biblioteki"
 
+#: front/src/views/content/remote/Card.vue:88
+#, fuzzy
+msgid "Follow request pending approval"
+msgstr "Åšledzenie oczekuje na zatwierdzenie"
+
+#: front/src/components/mixins/Translations.vue:38
 #: front/src/views/content/libraries/Detail.vue:7
+#: front/src/components/mixins/Translations.vue:39
 msgid "Followers"
 msgstr "ÅšledzÄ…cy"
 
@@ -781,19 +1144,10 @@ msgstr "ÅšledzÄ…cy"
 msgid "Following"
 msgstr "Åšledzisz"
 
-#: front/src/components/activity/Like.vue:14
-#: src/components/activity/Listen.vue:14
-msgid "from %{ album } by %{ artist }"
-msgstr "z %{ album } od %{ artist }"
-
-#: front/src/components/library/Track.vue:13
+#: front/src/components/library/Track.vue:17
 msgid "From album %{ album } by %{ artist }"
 msgstr "Z albumu %{ album } od %{ artist }"
 
-#: front/src/App.vue:55
-msgid "Funkwhale is a free and open-source project run by volunteers. You can help us improve the platform by reporting bugs, suggesting features and share the project with your friends!"
-msgstr "Funkwhale jest wolnym i otwartoźródłowym projektem rozwijanym przez wolontariuszy. Możesz pomóc nam ulepszać platformę zgłaszając błędy, propozycje funkcji i polecając projekt znajomym!"
-
 #: front/src/components/auth/SubsonicTokenForm.vue:7
 msgid "Funkwhale is compatible with other music players that support the Subsonic API."
 msgstr "Funkwhale jest kompatybilny z innymi odtwarzaczami muzycznymi obsługującymi API Subsonic."
@@ -814,6 +1168,10 @@ msgstr "Funkwhale jest wolny i oddaje Ci kontrolÄ™ nad TwojÄ… muzykÄ…."
 msgid "Funkwhale takes care of handling your music"
 msgstr "Funkwhale dba o TwojÄ… bibliotekÄ™ muzycznÄ…"
 
+#: front/src/components/ShortcutsModal.vue:38
+msgid "General shortcuts"
+msgstr ""
+
 #: front/src/components/manage/users/InvitationForm.vue:16
 msgid "Get a new invitation"
 msgstr "Uzyskaj nowe zaproszenie"
@@ -823,20 +1181,20 @@ msgid "Get me to the library"
 msgstr "Pokaż mi bibliotekę"
 
 #: front/src/components/Home.vue:76
-#, fuzzy
 msgid "Get quality metadata about your music thanks to <a href=\"%{ url }\" target=\"_blank\">MusicBrainz</a>"
-msgstr ""
-"Uzyskaj dobrej jakości metadane o Twojej muzyce dzięki\n"
-"              <a href=\"https://musicbrainz.org\" target=\"_blank\">\n"
-"                MusicBrainz\n"
-"              </a>"
+msgstr "Uzyskaj dobrej jakości metadane o Twojej muzyce dzięki <a href=\"%{ url }\" target=\"_blank\">MusicBrainz</a>"
 
 #: front/src/views/content/Home.vue:12 src/views/content/Home.vue:19
 msgid "Get started"
 msgstr "Rozpocznij"
 
-#: front/src/components/common/ActionTable.vue:21
-#: front/src/components/common/ActionTable.vue:27
+#: front/src/components/Footer.vue:37
+#, fuzzy
+msgid "Getting help"
+msgstr "Ustawienia"
+
+#: front/src/components/common/ActionTable.vue:34
+#: front/src/components/common/ActionTable.vue:54
 msgid "Go"
 msgstr "Przejdź"
 
@@ -844,9 +1202,13 @@ msgstr "Przejdź"
 msgid "Go to home page"
 msgstr "Przejdź na stronę główną"
 
-#: front/src/App.vue:73
-msgid "Help us translate Funkwhale"
-msgstr "Pomóż nam tłumaczyć Funkwhale"
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:114
+msgid "Hide account or domain content, except from followers."
+msgstr ""
+
+#: front/src/components/library/Home.vue:65
+msgid "Home"
+msgstr "Strona główna"
 
 #: front/src/components/instance/Stats.vue:36
 msgid "Hours of music"
@@ -869,15 +1231,24 @@ msgid "Import music from various platforms, such as YouTube or SoundCloud"
 msgstr "Importuj muzykę z różnych platform, takich jak YouTube i SoundCloud"
 
 #: front/src/components/library/FileUpload.vue:51
-#, fuzzy
 msgid "Import reference"
-msgstr "Źródło importu"
+msgstr "Importuj źródło"
 
 #: front/src/views/content/libraries/FilesTable.vue:11
-#: front/src/views/content/libraries/FilesTable.vue:55
+#: front/src/views/content/libraries/FilesTable.vue:58
 msgid "Import status"
 msgstr "Stan importu"
 
+#: front/src/views/content/libraries/FilesTable.vue:217
+#, fuzzy
+msgid "Imported"
+msgstr "Data zaimportowania"
+
+#: front/src/components/mixins/Translations.vue:21
+#: front/src/components/mixins/Translations.vue:22
+msgid "Imported date"
+msgstr "Data zaimportowania"
+
 #: front/src/components/favorites/TrackFavoriteIcon.vue:3
 msgid "In favorites"
 msgstr "W ulubionych"
@@ -886,6 +1257,14 @@ msgstr "W ulubionych"
 msgid "Inactive"
 msgstr "Nieaktywny"
 
+#: front/src/components/ShortcutsModal.vue:71
+msgid "Increase volume"
+msgstr ""
+
+#: front/src/views/auth/PasswordReset.vue:53
+msgid "Input the email address binded to your account"
+msgstr ""
+
 #: front/src/components/playlists/Editor.vue:31
 msgid "Insert from queue (%{ count } track)"
 msgid_plural "Insert from queue (%{ count } tracks)"
@@ -893,10 +1272,28 @@ msgstr[0] "Dodaj z kolejki (%{ count } utwór)"
 msgstr[1] "Dodaj z kolejki (%{ count } utwory)"
 msgstr[2] "Dodaj z kolejki (%{ count } utworów)"
 
+#: front/src/views/admin/moderation/DomainsDetail.vue:71
+#, fuzzy
+msgid "Instance data"
+msgstr "Radia instancji"
+
+#: front/src/views/admin/Settings.vue:80
+msgid "Instance information"
+msgstr "Informacje o instancji"
+
 #: front/src/components/library/Radios.vue:9
 msgid "Instance radios"
 msgstr "Radia instancji"
 
+#: front/src/views/admin/Settings.vue:75
+msgid "Instance settings"
+msgstr "Ustawienia instancji"
+
+#: front/src/components/library/FileUpload.vue:229
+#: front/src/components/library/FileUpload.vue:230
+msgid "Invalid file type, ensure you are uploading an audio file. Supported file extensions are %{ extensions }"
+msgstr ""
+
 #: front/src/components/auth/Signup.vue:42
 #: front/src/components/manage/users/InvitationForm.vue:11
 msgid "Invitation code"
@@ -912,53 +1309,76 @@ msgstr "Kod zapraszajÄ…cy (nieobowiÄ…zkowy)"
 msgid "Invitations"
 msgstr "Zaproszenia"
 
-#: front/src/App.vue:42
+#: front/src/components/Footer.vue:41
 msgid "Issue tracker"
 msgstr "Śledzenie błędów"
 
-#: front/src/views/content/libraries/Home.vue:9
-msgid "It looks like you don't have any library yet, it's time to create one!"
-msgstr "Wygląda na to, że nie masz jeszcze żadnej biblioteki — czas na jej utworzenie!"
-
 #: front/src/components/Home.vue:50
 msgid "Keep a track of your favorite songs"
 msgstr "Zachowaj kontrolÄ™ nad ulubionymi utworami"
 
+#: front/src/components/Footer.vue:33 src/components/ShortcutsModal.vue:3
+msgid "Keyboard shortcuts"
+msgstr ""
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:161
+#, fuzzy
+msgid "Known accounts"
+msgstr "Moje konto"
+
 #: front/src/views/content/remote/Home.vue:14
 msgid "Known libraries"
 msgstr "Znane biblioteki"
 
 #: front/src/components/manage/users/UsersTable.vue:41
-#: front/src/views/admin/users/UsersDetail.vue:45
-#: front/src/components/mixins/Translations.vue:31
+#: front/src/components/mixins/Translations.vue:32
+#: front/src/views/admin/moderation/AccountsDetail.vue:184
+#: front/src/components/mixins/Translations.vue:33
 msgid "Last activity"
 msgstr "Ostatnia aktywność"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:167
+#: front/src/views/admin/moderation/DomainsDetail.vue:86
+msgid "Last checked"
+msgstr ""
+
 #: front/src/components/playlists/PlaylistModal.vue:32
 msgid "Last modification"
 msgstr "Ostatnia modyfikacja"
 
-#: front/src/views/content/remote/Card.vue:56
+#: front/src/components/manage/moderation/AccountsTable.vue:43
+msgid "Last seen"
+msgstr ""
+
+#: front/src/components/mixins/Translations.vue:18
+#: front/src/components/mixins/Translations.vue:19
 #, fuzzy
+msgid "Last seen date"
+msgstr "Ostatnia aktualizacja:"
+
+#: front/src/views/content/remote/Card.vue:56
 msgid "Last update:"
-msgstr "Zaktualizowano listÄ™ odtwarzania"
+msgstr "Ostatnia aktualizacja:"
 
-#: front/src/components/common/ActionTable.vue:40
+#: front/src/components/common/ActionTable.vue:47
 msgid "Launch"
 msgstr "Uruchom"
 
-#: front/src/views/content/remote/Card.vue:63
-msgid "Launch scan"
-msgstr "Uruchom skanowanie"
-
 #: front/src/components/Home.vue:10
 msgid "Learn more about this instance"
 msgstr "Dowiedz się więcej o tej instancji"
 
-#: front/src/components/requests/Form.vue:10
-msgid "Leave this field empty if you're requesting the whole discography."
-msgstr "Pozostaw to pole puste, jeżeli chcesz całą dyskografię."
+#: front/src/components/manage/users/InvitationForm.vue:58
+msgid "Leave empty for a random code"
+msgstr "Pozostaw puste, aby wygenerować kod"
+
+#: front/src/components/audio/EmbedWizard.vue:7
+#, fuzzy
+msgid "Leave empty for a responsive widget"
+msgstr "Pozostaw puste, aby wygenerować kod"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:297
+#: front/src/views/admin/moderation/DomainsDetail.vue:233
 #: front/src/views/content/Base.vue:5
 msgid "Libraries"
 msgstr "Biblioteki"
@@ -968,56 +1388,85 @@ msgid "Libraries help you organize and share your music collections. You can upl
 msgstr "Biblioteki pomagają organizować i udostępniać kolekcje muzyki. Możesz wysłać własną kolekcję muzyki na Funkwhale i dzielić się nią z rodziną i znajomymi."
 
 #: front/src/components/instance/Stats.vue:30
-#: front/src/components/manage/users/UsersTable.vue:177
-#: front/src/views/admin/users/UsersDetail.vue:181
+#: front/src/components/manage/users/UsersTable.vue:173
+#: front/src/views/admin/moderation/AccountsDetail.vue:464
 msgid "Library"
 msgstr "Biblioteka"
 
+#: front/src/views/content/libraries/Form.vue:109
+msgid "Library created"
+msgstr "Utworzono bibliotekÄ™"
+
+#: front/src/views/content/libraries/Form.vue:129
+#, fuzzy
+msgid "Library deleted"
+msgstr "Zaktualizowano bibliotekÄ™"
+
 #: front/src/views/admin/library/FilesList.vue:3
 msgid "Library files"
 msgstr "Pliki z biblioteki"
 
-#: front/src/App.vue:31
-msgid "Links"
-msgstr "Odnośniki"
+#: front/src/views/content/libraries/Form.vue:106
+msgid "Library updated"
+msgstr "Zaktualizowano bibliotekÄ™"
+
+#: front/src/components/library/Track.vue:100
+msgid "License"
+msgstr ""
 
 #: front/src/views/content/libraries/Detail.vue:21
-msgid "Loading followers..."
+#, fuzzy
+msgid "Loading followers…"
 msgstr "Ładowanie śledzących…"
 
 #: front/src/views/content/libraries/Home.vue:3
-msgid "Loading Libraries..."
+#, fuzzy
+msgid "Loading Libraries…"
 msgstr "Ładowanie bibliotek…"
 
 #: front/src/views/content/libraries/Detail.vue:3
 #: front/src/views/content/libraries/Upload.vue:3
-msgid "Loading library data..."
+#, fuzzy
+msgid "Loading library data…"
 msgstr "Ładowanie danych biblioteki…"
 
 #: front/src/views/Notifications.vue:4
-msgid "Loading notifications..."
+#, fuzzy
+msgid "Loading notifications…"
 msgstr "Ładowanie powiadomień…"
 
 #: front/src/views/content/remote/Home.vue:3
 msgid "Loading remote libraries..."
 msgstr "Ładowanie zdalnych bibliotek…"
 
-#: front/src/views/instance/Timeline.vue:4
-msgid "Loading timeline..."
-msgstr "Ładowanie osi czasu…"
-
 #: front/src/views/content/libraries/Quota.vue:4
-msgid "Loading usage data..."
+#, fuzzy
+msgid "Loading usage data…"
 msgstr "Ładowanie danych o użyciu…"
 
 #: front/src/components/favorites/List.vue:5
-msgid "Loading your favorites..."
+#, fuzzy
+msgid "Loading your favorites…"
 msgstr "Ładowanie Twoich ulubionych…"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:59
+#: front/src/views/admin/moderation/AccountsDetail.vue:18
+#, fuzzy
+msgid "Local account"
+msgstr "Moje konto"
+
+#: front/src/components/auth/Login.vue:78
+msgid "Log In"
+msgstr "Zaloguj siÄ™"
+
 #: front/src/components/auth/Login.vue:4
 msgid "Log in to your Funkwhale account"
 msgstr "Zaloguj siÄ™ na swoje konto Funkwhale"
 
+#: front/src/components/auth/Logout.vue:20
+msgid "Log Out"
+msgstr "Wyloguj siÄ™"
+
 #: front/src/components/Sidebar.vue:38
 msgid "Logged in as %{ username }"
 msgstr "Zalogowano jako %{ username }"
@@ -1026,18 +1475,55 @@ msgstr "Zalogowano jako %{ username }"
 msgid "Login"
 msgstr "Logowanie"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:119
+#, fuzzy
+msgid "Login status"
+msgstr "Stan konta"
+
 #: front/src/components/Sidebar.vue:52
 msgid "Logout"
 msgstr "Wyloguj siÄ™"
 
-#: front/src/components/library/Track.vue:105
+#: front/src/views/content/libraries/Home.vue:9
+#, fuzzy
+msgid "Looks like you don't have a library, it's time to create one."
+msgstr "Wygląda na to, że nie masz jeszcze żadnej biblioteki — czas na jej utworzenie!"
+
+#: front/src/components/audio/Player.vue:353
+#: src/components/audio/Player.vue:354
+msgid "Looping disabled. Click to switch to single-track looping."
+msgstr "Zapętlanie jest wyłączone. Naciśnij, aby przełączyć na powtarzanie jednego utworu."
+
+#: front/src/components/audio/Player.vue:356
+#: src/components/audio/Player.vue:357
+msgid "Looping on a single track. Click to switch to whole queue looping."
+msgstr "Zapętlanie jednego utworu jest włączone. Naciśnij, aby przełączyć na powtarzanie całej kolejki."
+
+#: front/src/components/audio/Player.vue:359
+#: src/components/audio/Player.vue:360
+msgid "Looping on whole queue. Click to disable looping."
+msgstr "Zapętlanie całej kolejki jest włączone. Naciśnij, aby wyłączyć zapętlanie."
+
+#: front/src/components/library/Track.vue:150
 msgid "Lyrics"
 msgstr "Tekst"
 
+#: front/src/components/Sidebar.vue:210
+msgid "Main menu"
+msgstr ""
+
+#: front/src/views/admin/library/Base.vue:16
+msgid "Manage library"
+msgstr "ZarzÄ…dzaj bibliotekÄ…"
+
 #: front/src/components/playlists/PlaylistModal.vue:3
 msgid "Manage playlists"
 msgstr "ZarzÄ…dzaj listami odtwarzania"
 
+#: front/src/views/admin/users/Base.vue:20
+msgid "Manage users"
+msgstr "Zarządzaj użytkownikami"
+
 #: front/src/views/playlists/List.vue:8
 msgid "Manage your playlists"
 msgstr "ZarzÄ…dzaj swoimi listami odtwarzania"
@@ -1046,42 +1532,104 @@ msgstr "ZarzÄ…dzaj swoimi listami odtwarzania"
 msgid "Mark all as read"
 msgstr "Oznacz wszystko jako przeczytane"
 
-#: front/src/views/admin/users/UsersDetail.vue:94
+#: front/src/components/notifications/NotificationRow.vue:44
+#, fuzzy
+msgid "Mark as read"
+msgstr "Oznacz wszystko jako przeczytane"
+
+#: front/src/components/notifications/NotificationRow.vue:45
+#, fuzzy
+msgid "Mark as unread"
+msgstr "Oznacz wszystko jako przeczytane"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:281
 msgid "MB"
+msgstr "MB"
+
+#: front/src/components/audio/Player.vue:346
+msgid "Media player"
+msgstr ""
+
+#: front/src/components/Footer.vue:32
+msgid "Mobile and desktop apps"
+msgstr ""
+
+#: front/src/components/Sidebar.vue:97
+#: src/components/manage/users/UsersTable.vue:177
+#: front/src/views/admin/moderation/AccountsDetail.vue:468
+#: front/src/views/admin/moderation/Base.vue:21
+#, fuzzy
+msgid "Moderation"
+msgstr "Federacja"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:49
+#: front/src/views/admin/moderation/DomainsDetail.vue:42
+msgid "Moderation policies help you control how your instance interact with a given domain or account."
 msgstr ""
 
-#: front/src/components/Sidebar.vue:63
+#: front/src/components/mixins/Translations.vue:20
+#: front/src/components/mixins/Translations.vue:21
+msgid "Modification date"
+msgstr "Data modyfikacji"
+
+#: front/src/components/Sidebar.vue:63 src/views/admin/Settings.vue:82
 msgid "Music"
 msgstr "Muzyka"
 
+#: front/src/components/audio/Player.vue:352
+msgid "Mute"
+msgstr "Wycisz"
+
 #: front/src/components/Sidebar.vue:34
 msgid "My account"
 msgstr "Moje konto"
 
+#: front/src/components/library/radios/Builder.vue:236
+msgid "My awesome description"
+msgstr "Mój wspaniały opis"
+
+#: front/src/views/content/libraries/Form.vue:70
+msgid "My awesome library"
+msgstr "Moja wspaniała biblioteka"
+
+#: front/src/components/playlists/Form.vue:74
+msgid "My awesome playlist"
+msgstr "Moja wspaniała playlista"
+
+#: front/src/components/library/radios/Builder.vue:235
+msgid "My awesome radio"
+msgstr "Moje wspaniałe radio"
+
 #: front/src/views/content/libraries/Home.vue:6
 msgid "My libraries"
 msgstr "Moje biblioteki"
 
 #: front/src/components/audio/track/Row.vue:40
-#: src/components/library/Track.vue:64
-#: front/src/components/library/Track.vue:75
-#: src/components/library/Track.vue:86
-#: front/src/components/library/Track.vue:97
+#: src/components/library/Track.vue:115
+#: front/src/components/library/Track.vue:124
+#: src/components/library/Track.vue:133
+#: front/src/components/library/Track.vue:142
 #: front/src/components/manage/library/FilesTable.vue:63
 #: front/src/components/manage/library/FilesTable.vue:69
 #: front/src/components/manage/library/FilesTable.vue:75
 #: front/src/components/manage/library/FilesTable.vue:81
 #: front/src/components/manage/users/UsersTable.vue:61
-#: front/src/views/admin/users/UsersDetail.vue:49
-#: front/src/views/content/libraries/FilesTable.vue:89
-#: front/src/views/content/libraries/FilesTable.vue:95
+#: front/src/views/admin/moderation/AccountsDetail.vue:171
+#: front/src/views/admin/moderation/DomainsDetail.vue:90
+#: front/src/views/content/libraries/FilesTable.vue:92
+#: front/src/views/content/libraries/FilesTable.vue:98
+#: front/src/views/admin/moderation/DomainsDetail.vue:109
+#: front/src/views/admin/moderation/DomainsDetail.vue:117
 msgid "N/A"
 msgstr "N/A"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:39
+#: front/src/components/manage/moderation/DomainsTable.vue:38
+#: front/src/components/mixins/Translations.vue:26
 #: front/src/components/playlists/PlaylistModal.vue:31
-#: front/src/views/admin/users/UsersDetail.vue:21
+#: front/src/views/admin/moderation/DomainsDetail.vue:105
 #: front/src/views/content/libraries/Form.vue:10
-#: front/src/components/mixins/Translations.vue:25
+#: front/src/components/mixins/Translations.vue:27
 msgid "Name"
 msgstr "Nazwa"
 
@@ -1090,11 +1638,15 @@ msgstr "Nazwa"
 msgid "New password"
 msgstr "Nowe hasło"
 
-#: front/src/components/Sidebar.vue:149
+#: front/src/components/Sidebar.vue:160
 msgid "New tracks will be appended here automatically."
 msgstr "Nowe utwory automatycznie pojawiÄ… siÄ™ tutaj."
 
-#: front/src/components/Sidebar.vue:116
+#: front/src/components/audio/Player.vue:350
+msgid "Next track"
+msgstr "Następny utwór"
+
+#: front/src/components/Sidebar.vue:119
 msgid "No"
 msgstr "Nie"
 
@@ -1102,14 +1654,35 @@ msgstr "Nie"
 msgid "No add-ons, no plugins : you only need a web library"
 msgstr "Brak wtyczek, brak dodatków: potrzebujesz tylko biblioteki sieciowej"
 
-#: front/src/components/library/Track.vue:113
+#: front/src/components/audio/Search.vue:25
+#, fuzzy
+msgid "No album matched your query"
+msgstr "Przepraszamy, nie znaleziono albumu spełniającego Twoje kryteria"
+
+#: front/src/components/audio/Search.vue:16
+#, fuzzy
+msgid "No artist matched your query"
+msgstr "Przepraszamy, nie znaleziono wykonawcy spełniającego Twoje kryteria"
+
+#: front/src/components/library/Track.vue:158
 msgid "No lyrics available for this track."
 msgstr "Tekst nie jest dostępny dla tego utworu."
 
 #: front/src/components/federation/LibraryWidget.vue:6
-#, fuzzy
 msgid "No matching library."
-msgstr "Ładowanie danych biblioteki…"
+msgstr "Brak pasujÄ…cej biblioteki."
+
+#: front/src/views/Notifications.vue:26
+#, fuzzy
+msgid "No notifications yet."
+msgstr "Twoje powiadomienia"
+
+#: front/src/components/mixins/Translations.vue:10
+#: front/src/components/playlists/Form.vue:81
+#: src/views/content/libraries/Form.vue:72
+#: front/src/components/mixins/Translations.vue:11
+msgid "Nobody except me"
+msgstr "Nikt poza mnÄ…"
 
 #: front/src/views/content/libraries/Detail.vue:57
 msgid "Nobody is following this library"
@@ -1123,7 +1696,7 @@ msgstr "Nie użyty"
 msgid "Notifications"
 msgstr "Powiadomienia"
 
-#: front/src/App.vue:36
+#: front/src/components/Footer.vue:47
 msgid "Official website"
 msgstr "Oficjalna strona"
 
@@ -1135,14 +1708,35 @@ msgstr "Poprzednie hasło"
 msgid "Open"
 msgstr "Otwórz"
 
-#: front/src/App.vue:62
-msgid "Options"
-msgstr "Opcje"
+#: front/src/views/admin/moderation/AccountsDetail.vue:23
+msgid "Open profile"
+msgstr ""
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:16
+#, fuzzy
+msgid "Open website"
+msgstr "Oficjalna strona"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:40
+#, fuzzy
+msgid "Or customize your rule"
+msgstr "Dodaj filtry aby dostosować swoje radio"
+
+#: front/src/components/favorites/List.vue:31
+#: src/components/library/Radios.vue:41
+#: front/src/components/manage/library/FilesTable.vue:17
+#: front/src/components/manage/users/UsersTable.vue:17
+#: front/src/views/playlists/List.vue:25
+#, fuzzy
+msgid "Order"
+msgstr "PorzÄ…dkowanie"
 
 #: front/src/components/favorites/List.vue:23
 #: src/components/library/Artists.vue:15
 #: front/src/components/library/Radios.vue:33
 #: front/src/components/manage/library/FilesTable.vue:9
+#: front/src/components/manage/moderation/AccountsTable.vue:11
+#: front/src/components/manage/moderation/DomainsTable.vue:9
 #: front/src/components/manage/users/InvitationsTable.vue:9
 #: front/src/components/manage/users/UsersTable.vue:9
 #: front/src/views/content/libraries/FilesTable.vue:21
@@ -1150,13 +1744,10 @@ msgstr "Opcje"
 msgid "Ordering"
 msgstr "PorzÄ…dkowanie"
 
-#: front/src/components/favorites/List.vue:31
-#: src/components/library/Artists.vue:23
-#: front/src/components/library/Radios.vue:41
-#: front/src/components/manage/library/FilesTable.vue:17
-#: front/src/components/manage/users/UsersTable.vue:17
+#: front/src/components/library/Artists.vue:23
+#: front/src/components/manage/moderation/AccountsTable.vue:19
+#: front/src/components/manage/moderation/DomainsTable.vue:17
 #: front/src/views/content/libraries/FilesTable.vue:29
-#: front/src/views/playlists/List.vue:25
 msgid "Ordering direction"
 msgstr "Kolejność porządkowania"
 
@@ -1164,21 +1755,46 @@ msgstr "Kolejność porządkowania"
 msgid "Owner"
 msgstr "Właściciel"
 
+#: front/src/components/PageNotFound.vue:33
+#, fuzzy
+msgid "Page Not Found"
+msgstr "Nie odnaleziono strony!"
+
 #: front/src/components/PageNotFound.vue:7
 msgid "Page not found!"
 msgstr "Nie odnaleziono strony!"
 
+#: front/src/components/Pagination.vue:39
+msgid "Pagination"
+msgstr ""
+
 #: front/src/components/auth/Login.vue:32 src/components/auth/Signup.vue:38
 msgid "Password"
 msgstr "Haslo"
 
+#: front/src/components/auth/SubsonicTokenForm.vue:95
+msgid "Password updated"
+msgstr "Zmieniono hasło"
+
 #: front/src/views/auth/PasswordResetConfirm.vue:28
 msgid "Password updated successfully"
 msgstr "Pomyślnie zmieniono hasło"
 
-#: front/src/components/library/FileUpload.vue:105
+#: front/src/components/audio/Player.vue:349
+msgid "Pause track"
+msgstr "Wstrzymaj utwór"
+
+#: front/src/components/ShortcutsModal.vue:59
+msgid "Pause/play the current track"
+msgstr ""
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:12
+msgid "Paused"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:106
 #: front/src/views/content/libraries/FilesTable.vue:14
-#: front/src/views/content/libraries/FilesTable.vue:233
+#: front/src/views/content/libraries/FilesTable.vue:208
 msgid "Pending"
 msgstr "OczekujÄ…ce"
 
@@ -1190,23 +1806,24 @@ msgstr "Oczekiwanie na przyjęcie"
 msgid "Pending files"
 msgstr "OczekujÄ…ce pliki"
 
-#: front/src/components/requests/Form.vue:26
-msgid "Pending requests"
-msgstr "Oczekujące prośby"
+#: front/src/components/Sidebar.vue:212
+msgid "Pending follow requests"
+msgstr "Oczekujące prośby o możliwość śledzenia"
 
 #: front/src/components/manage/users/UsersTable.vue:42
-#: front/src/views/admin/users/UsersDetail.vue:68
+#: front/src/views/admin/moderation/AccountsDetail.vue:137
 msgid "Permissions"
 msgstr "Uprawnienia"
 
 #: front/src/components/audio/PlayButton.vue:9
-#: src/components/library/Track.vue:30
+#: src/components/library/Track.vue:40
 msgid "Play"
 msgstr "Odtwórz"
 
 #: front/src/components/audio/album/Card.vue:50
 #: front/src/components/audio/artist/Card.vue:44
-#: src/components/library/Album.vue:28 front/src/views/playlists/Detail.vue:23
+#: src/components/library/Album.vue:28
+#: front/src/components/library/Album.vue:73 src/views/playlists/Detail.vue:23
 msgid "Play all"
 msgstr "Odtwórz wszystkie"
 
@@ -1215,13 +1832,39 @@ msgid "Play all albums"
 msgstr "Odtwórz wszystkie albumy"
 
 #: front/src/components/audio/PlayButton.vue:15
+#: front/src/components/audio/PlayButton.vue:65
 msgid "Play next"
 msgstr "Odtwórz następny"
 
-#: front/src/components/audio/PlayButton.vue:16
+#: front/src/components/ShortcutsModal.vue:67
+#, fuzzy
+msgid "Play next track"
+msgstr "Odtwórz utwór"
+
+#: front/src/components/audio/PlayButton.vue:16
+#: front/src/components/audio/PlayButton.vue:63
+#: front/src/components/audio/PlayButton.vue:70
 msgid "Play now"
 msgstr "Odtwórz teraz"
 
+#: front/src/components/ShortcutsModal.vue:63
+#, fuzzy
+msgid "Play previous track"
+msgstr "Poprzedni utwór"
+
+#: front/src/components/Sidebar.vue:211
+#, fuzzy
+msgid "Play this track"
+msgstr "Odtwórz utwór"
+
+#: front/src/components/audio/Player.vue:348
+msgid "Play track"
+msgstr "Odtwórz utwór"
+
+#: front/src/views/playlists/Detail.vue:90
+msgid "Playlist"
+msgstr "Lista odtwarzania"
+
 #: front/src/views/playlists/Detail.vue:12
 msgid "Playlist containing %{ count } track, by %{ username }"
 msgid_plural "Playlist containing %{ count } tracks, by %{ username }"
@@ -1250,8 +1893,8 @@ msgid "Playlist visibility"
 msgstr "Widoczność listy odtwarzania"
 
 #: front/src/components/Sidebar.vue:71 src/components/library/Home.vue:16
-#: front/src/components/library/Library.vue:13 src/views/playlists/List.vue:104
-#: front/src/views/admin/Settings.vue:82
+#: front/src/components/library/Library.vue:13 src/views/admin/Settings.vue:83
+#: front/src/views/playlists/List.vue:106
 msgid "Playlists"
 msgstr "Listy odtwarzania"
 
@@ -1271,6 +1914,23 @@ msgstr "Sprawdź dwukrotnie, czy połączenie nazwy użytkownika i hasła jest p
 msgid "PNG, GIF or JPG. At most 2MB. Will be downscaled to 400x400px."
 msgstr "PNG, GIF lub JPG. Maksymalnie 2MB. Zostanie pomniejszony do 400x400 pikseli."
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:118
+msgid "Prevent account or domain from triggering notifications, except from followers."
+msgstr ""
+
+#: front/src/components/audio/EmbedWizard.vue:29
+msgid "Preview"
+msgstr ""
+
+#: front/src/components/audio/Player.vue:347
+msgid "Previous track"
+msgstr "Poprzedni utwór"
+
+#: front/src/views/content/remote/Card.vue:39
+#, fuzzy
+msgid "Problem during scanning"
+msgstr "BÅ‚Ä…d podczas skanowania"
+
 #: front/src/components/library/FileUpload.vue:58
 msgid "Proceed"
 msgstr "Przejdź"
@@ -1284,6 +1944,8 @@ msgstr "Przejdź, aby zalogować się"
 msgid "Processing"
 msgstr "Przetwarzanie"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:188
+#: front/src/components/manage/moderation/DomainsTable.vue:168
 #: front/src/views/content/libraries/Quota.vue:36
 #: front/src/views/content/libraries/Quota.vue:39
 #: front/src/views/content/libraries/Quota.vue:62
@@ -1291,24 +1953,36 @@ msgstr "Przetwarzanie"
 #: front/src/views/content/libraries/Quota.vue:88
 #: front/src/views/content/libraries/Quota.vue:91
 msgid "Purge"
-msgstr ""
+msgstr "Wyczyść"
 
 #: front/src/views/content/libraries/Quota.vue:89
 msgid "Purge errored files?"
-msgstr ""
+msgstr "Wyczyścić pliki z błędami?"
 
 #: front/src/views/content/libraries/Quota.vue:37
 msgid "Purge pending files?"
-msgstr ""
+msgstr "Wyczyścić oczekujące pliki?"
 
 #: front/src/views/content/libraries/Quota.vue:63
 msgid "Purge skipped files?"
-msgstr ""
+msgstr "Wyczyścić pominięte pliki?"
 
 #: front/src/components/Sidebar.vue:20
 msgid "Queue"
 msgstr "Kolejka"
 
+#: front/src/components/audio/Player.vue:282
+msgid "Queue shuffled!"
+msgstr "Wymieszano kolejkÄ™!"
+
+#: front/src/views/radios/Detail.vue:80
+msgid "Radio"
+msgstr "Radio"
+
+#: front/src/components/library/radios/Builder.vue:233
+msgid "Radio Builder"
+msgstr "Tworzenie radia"
+
 #: front/src/components/library/radios/Builder.vue:15
 msgid "Radio created"
 msgstr "Utworzono radio"
@@ -1322,13 +1996,25 @@ msgid "Radio updated"
 msgstr "Zaktualizowano radio"
 
 #: front/src/components/library/Library.vue:10
-#: src/components/library/Radios.vue:142
+#: src/components/library/Radios.vue:141
 msgid "Radios"
 msgstr "Radia"
 
-#: front/src/views/instance/Timeline.vue:7
-msgid "Recent activity on this instance"
-msgstr "Ostatnia aktywność na tej instancji"
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:39
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:25
+msgid "Reason"
+msgstr ""
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:222
+#: front/src/views/admin/moderation/DomainsDetail.vue:179
+msgid "Received library follows"
+msgstr ""
+
+#: front/src/components/manage/moderation/DomainsTable.vue:40
+#: front/src/components/mixins/Translations.vue:36
+#: front/src/components/mixins/Translations.vue:37
+msgid "Received messages"
+msgstr ""
 
 #: front/src/components/library/Home.vue:24
 msgid "Recently added"
@@ -1342,11 +2028,18 @@ msgstr "Ostatnio dodane do ulubionych"
 msgid "Recently listened"
 msgstr "Ostatnio słuchane"
 
-#: front/src/views/admin/users/UsersDetail.vue:103
 #: front/src/views/content/remote/Home.vue:15
 msgid "Refresh"
 msgstr "Odśwież"
 
+#: front/src/views/admin/moderation/DomainsDetail.vue:135
+msgid "Refresh node info"
+msgstr ""
+
+#: front/src/components/common/ActionTable.vue:272
+msgid "Refresh table content"
+msgstr ""
+
 #: front/src/components/auth/Profile.vue:12
 msgid "Registered since %{ date }"
 msgstr "Zarejestrowany od %{ date }"
@@ -1363,10 +2056,20 @@ msgstr "zwykły użytkownik"
 msgid "Reject"
 msgstr "Odrzuć"
 
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:32
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:123
+#, fuzzy
+msgid "Reject media"
+msgstr "Odrzucono"
+
 #: front/src/views/content/libraries/Detail.vue:43
 msgid "Rejected"
 msgstr "Odrzucono"
 
+#: front/src/views/content/libraries/FilesTable.vue:234
+msgid "Relaunch import"
+msgstr "Uruchom importowanie ponownie"
+
 #: front/src/views/content/remote/Home.vue:6
 msgid "Remote libraries"
 msgstr "Zdalne biblioteki"
@@ -1383,6 +2086,24 @@ msgstr "Usuń"
 msgid "Remove avatar"
 msgstr "Usuń awatar"
 
+#: front/src/components/favorites/TrackFavoriteIcon.vue:26
+msgid "Remove from favorites"
+msgstr "Usuń z ulubionych"
+
+#: front/src/views/content/libraries/Quota.vue:38
+msgid "Removes uploaded but yet to be processed tracks completely, adding the corresponding data to your quota."
+msgstr ""
+
+#: front/src/views/content/libraries/Quota.vue:64
+#, fuzzy
+msgid "Removes uploaded tracks skipped during the import processes completely, adding the corresponding data to your quota."
+msgstr "Ta opcja usunie utwory które zostały wysłane, lecz zostały z jakiegoś powodu pominięte w procesie importowania. Bezpowrotnie usunie te pliki i zostanie Ci przywrócona odpowiednia przestrzeń."
+
+#: front/src/views/content/libraries/Quota.vue:90
+#, fuzzy
+msgid "Removes uploaded tracks that could not be processed by the server completely, adding the corresponding data to your quota."
+msgstr "Ta opcja usunie utwory które zostały wysłane, ale nie zostały jeszcze przetworzone. Bezpowrotnie usunie te pliki i zostanie Ci przywrócona odpowiednia przestrzeń."
+
 #: front/src/components/auth/SubsonicTokenForm.vue:34
 #: front/src/components/auth/SubsonicTokenForm.vue:37
 msgid "Request a new password"
@@ -1396,11 +2117,8 @@ msgstr "Poprosić o nowe hasło API Subsonic?"
 msgid "Request a password"
 msgstr "Poproś o nowe hasło"
 
-#: front/src/components/requests/Form.vue:20
-msgid "Request submitted!"
-msgstr "Wysłano prośbę!"
-
 #: front/src/components/auth/Login.vue:34 src/views/auth/PasswordReset.vue:4
+#: front/src/views/auth/PasswordReset.vue:52
 msgid "Reset your password"
 msgstr "Ustaw nowe hasło"
 
@@ -1410,33 +2128,57 @@ msgstr "Ustaw nowe hasło"
 msgid "Results per page"
 msgstr "Wyniki na stronÄ™"
 
+#: front/src/views/auth/EmailConfirm.vue:17
+#, fuzzy
+msgid "Return to login"
+msgstr "Przejdź, aby zalogować się"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:16
+msgid "Rule"
+msgstr ""
+
 #: front/src/components/admin/SettingsGroup.vue:63
 #: front/src/components/library/radios/Builder.vue:33
 msgid "Save"
 msgstr "Zapisz"
 
+#: front/src/views/content/remote/Card.vue:165
+msgid "Scan launched"
+msgstr "Uruchomiono skanowanie"
+
+#: front/src/views/content/remote/Card.vue:63
+#, fuzzy
+msgid "Scan now"
+msgstr "Odtwórz teraz"
+
+#: front/src/views/content/remote/Card.vue:166
+msgid "Scan skipped (previous scan is too recent)"
+msgstr "Skanowanie pominęte (poprzednie skanowanie było zbyt wcześnie)"
+
 #: front/src/views/content/remote/Card.vue:31
 #, fuzzy
-msgid "Scan pending"
-msgstr "RosnÄ…co"
+msgid "Scan waiting"
+msgstr "Oczekiwanie na skanowanie"
 
 #: front/src/views/content/remote/Card.vue:43
 #, fuzzy
-msgid "Scanned successfully"
-msgstr "Pomyślnie zaktualizowano ustawienia."
+msgid "Scanned"
+msgstr "Uruchomiono skanowanie"
 
 #: front/src/views/content/remote/Card.vue:47
-#, fuzzy
 msgid "Scanned with errors"
-msgstr "Zsynchronizowano zmiany z serwerem"
+msgstr "Zeskanowano z błędami"
 
 #: front/src/views/content/remote/Card.vue:35
-msgid "Scanning... (%{ progress }%)"
-msgstr ""
+#, fuzzy
+msgid "Scanning… (%{ progress }%)"
+msgstr "Skanowanie... (%{ progress }%)"
 
 #: front/src/components/library/Artists.vue:10
 #: src/components/library/Radios.vue:29
 #: front/src/components/manage/library/FilesTable.vue:5
+#: front/src/components/manage/moderation/AccountsTable.vue:5
+#: front/src/components/manage/moderation/DomainsTable.vue:5
 #: front/src/components/manage/users/InvitationsTable.vue:5
 #: front/src/components/manage/users/UsersTable.vue:5
 #: front/src/views/content/libraries/FilesTable.vue:5
@@ -1445,24 +2187,65 @@ msgid "Search"
 msgstr "Szukaj"
 
 #: front/src/views/content/remote/ScanForm.vue:9
-#, fuzzy
 msgid "Search a remote library"
-msgstr "Pokaż mi bibliotekę"
+msgstr "Wyszukaj w zdalnej bibliotece"
+
+#: front/src/components/manage/moderation/AccountsTable.vue:171
+#, fuzzy
+msgid "Search by domain, username, bio..."
+msgstr "Szukaj według nazwy użytkownika, adresu e-mail, kodu…"
+
+#: front/src/components/manage/moderation/DomainsTable.vue:151
+#, fuzzy
+msgid "Search by name..."
+msgstr "Szukaj według nazwy użytkownika, adresu e-mail, nazwy…"
+
+#: front/src/views/content/libraries/FilesTable.vue:201
+#, fuzzy
+msgid "Search by title, artist, album…"
+msgstr "Szukaj według tytułu, wykonawcy, albumu…"
+
+#: front/src/components/manage/library/FilesTable.vue:176
+#, fuzzy
+msgid "Search by title, artist, domain…"
+msgstr "Szukaj według tytułu, wykonawcy, domeny…"
+
+#: front/src/components/manage/users/InvitationsTable.vue:153
+#, fuzzy
+msgid "Search by username, e-mail address, code…"
+msgstr "Szukaj według nazwy użytkownika, adresu e-mail, kodu…"
+
+#: front/src/components/manage/users/UsersTable.vue:163
+#, fuzzy
+msgid "Search by username, e-mail address, name…"
+msgstr "Szukaj według nazwy użytkownika, adresu e-mail, nazwy…"
+
+#: front/src/components/audio/SearchBar.vue:20
+#, fuzzy
+msgid "Search for artists, albums, tracks…"
+msgstr "Szukaj wykonawców, albumów, utworów…"
 
 #: front/src/components/audio/Search.vue:2
 msgid "Search for some music"
 msgstr "Wyszukaj trochÄ™ muzyki"
 
-#: front/src/components/library/Track.vue:116
+#: front/src/components/library/Track.vue:162
 msgid "Search on lyrics.wikia.com"
 msgstr "Szukaj na lyrics.wikia.com"
 
 #: front/src/components/library/Album.vue:33
 #: src/components/library/Artist.vue:31
-#: front/src/components/library/Track.vue:40
+#: front/src/components/library/Track.vue:47
 msgid "Search on Wikipedia"
 msgstr "Szukaj na Wikipedii"
 
+#: front/src/components/library/Library.vue:32
+#: src/views/admin/library/Base.vue:17
+#: front/src/views/admin/moderation/Base.vue:22
+#: src/views/admin/users/Base.vue:21 front/src/views/content/Base.vue:19
+msgid "Secondary menu"
+msgstr ""
+
 #: front/src/views/admin/Settings.vue:15
 msgid "Sections"
 msgstr "Sekcje"
@@ -1471,20 +2254,20 @@ msgstr "Sekcje"
 msgid "Select a filter"
 msgstr "Zaznacz filtr"
 
-#: front/src/components/common/ActionTable.vue:64
+#: front/src/components/common/ActionTable.vue:77
 msgid "Select all %{ total } elements"
 msgid_plural "Select all %{ total } elements"
 msgstr[0] "Zaznacz %{ total } element"
 msgstr[1] "Zaznacz wszystkie %{ total } elementy"
 msgstr[2] "Zaznacz wszystkie %{ total } elementów"
 
-#: front/src/components/common/ActionTable.vue:73
+#: front/src/components/common/ActionTable.vue:86
 msgid "Select only current page"
 msgstr "Zaznacz tylko obecnÄ… stronÄ™"
 
-#: front/src/components/Sidebar.vue:43 src/components/Sidebar.vue:88
-#: front/src/components/manage/users/UsersTable.vue:185
-#: front/src/views/admin/users/UsersDetail.vue:189
+#: front/src/components/Sidebar.vue:43 src/components/Sidebar.vue:85
+#: front/src/components/manage/users/UsersTable.vue:181
+#: front/src/views/admin/moderation/AccountsDetail.vue:472
 msgid "Settings"
 msgstr "Ustawienia"
 
@@ -1501,22 +2284,21 @@ msgid "Share link"
 msgstr "Udostępnij odnośnik"
 
 #: front/src/views/content/libraries/Detail.vue:15
-msgid "Share this link with other users so they can request an access to your library."
+#, fuzzy
+msgid "Share this link with other users so they can request access to your library."
 msgstr "Podziel się tym odnośnikiem z innymi użytkownikami, aby mogli poprosić od dostęp do Twojej biblioteki."
 
 #: front/src/views/content/libraries/Detail.vue:14
 #: front/src/views/content/remote/Card.vue:73
-#, fuzzy
 msgid "Sharing link"
-msgstr "Udostępnij odnośnik"
+msgstr "Odnośnik do udostępnienia"
 
 #: front/src/components/audio/album/Card.vue:40
-#, fuzzy
 msgid "Show %{ count } more track"
 msgid_plural "Show %{ count } more tracks"
-msgstr[0] "%{ count } utwór"
-msgstr[1] "%{ count } utwory"
-msgstr[2] "%{ count } utworów"
+msgstr[0] "Pokaż %{ count } utwór więcej"
+msgstr[1] "Pokaż %{ count } utwory więcej"
+msgstr[2] "Pokaż %{ count } utworów więcej"
 
 #: front/src/components/audio/artist/Card.vue:30
 msgid "Show 1 more album"
@@ -1525,61 +2307,88 @@ msgstr[0] "Pokaż 1 kolejny album"
 msgstr[1] "Pokaż %{ count } kolejne albumy"
 msgstr[2] "Pokaż %{ count } kolejnych albumów"
 
+#: front/src/components/ShortcutsModal.vue:42
+msgid "Show available keyboard shortcuts"
+msgstr ""
+
 #: front/src/views/Notifications.vue:10
-#, fuzzy
 msgid "Show read notifications"
-msgstr "Ostatnia modyfikacja"
+msgstr "Pokaż przeczytane powiadomienia"
+
+#: front/src/components/forms/PasswordInput.vue:25
+msgid "Show/hide password"
+msgstr "Pokaż/ukryj hasło"
 
 #: front/src/components/manage/library/FilesTable.vue:97
+#: front/src/components/manage/moderation/AccountsTable.vue:88
+#: front/src/components/manage/moderation/DomainsTable.vue:74
 #: front/src/components/manage/users/InvitationsTable.vue:76
 #: front/src/components/manage/users/UsersTable.vue:87
-#: front/src/views/content/libraries/FilesTable.vue:111
+#: front/src/views/content/libraries/FilesTable.vue:114
 msgid "Showing results %{ start }-%{ end } on %{ total }"
 msgstr "Wyświetlanie wyników %{ start }-%{ end } z %{ total }"
 
+#: front/src/components/ShortcutsModal.vue:83
+#, fuzzy
+msgid "Shuffle queue"
+msgstr "Wymieszaj kolejkÄ™"
+
+#: front/src/components/audio/Player.vue:362
+msgid "Shuffle your queue"
+msgstr "Wymieszaj kolejkÄ™"
+
+#: front/src/components/auth/Signup.vue:95
+msgid "Sign Up"
+msgstr "Rejestracja"
+
 #: front/src/components/manage/users/UsersTable.vue:40
-#: front/src/views/admin/users/UsersDetail.vue:37
 msgid "Sign-up"
 msgstr "Rejestracja"
 
-#: front/src/components/library/FileUpload.vue:84
-#: src/components/library/Track.vue:69
+#: front/src/components/mixins/Translations.vue:31
+#: front/src/views/admin/moderation/AccountsDetail.vue:176
+#: front/src/components/mixins/Translations.vue:32
+msgid "Sign-up date"
+msgstr "Data rejestracji"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:24
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:115
+#, fuzzy
+msgid "Silence activity"
+msgstr "Aktywność użytkownika"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:28
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:119
+#, fuzzy
+msgid "Silence notifications"
+msgstr "Pokaż przeczytane powiadomienia"
+
+#: front/src/components/library/FileUpload.vue:85
+#: front/src/components/library/Track.vue:120
 #: front/src/components/manage/library/FilesTable.vue:44
-#: front/src/views/content/libraries/FilesTable.vue:57
-#: front/src/components/mixins/Translations.vue:27
+#: front/src/components/mixins/Translations.vue:28
+#: front/src/views/content/libraries/FilesTable.vue:60
+#: front/src/components/mixins/Translations.vue:29
 msgid "Size"
 msgstr "Rozmiar"
 
 #: front/src/views/content/libraries/FilesTable.vue:15
-#: front/src/views/content/libraries/FilesTable.vue:229
+#: front/src/views/content/libraries/FilesTable.vue:204
 msgid "Skipped"
 msgstr "Pominięto"
 
 #: front/src/views/content/libraries/Quota.vue:49
-#, fuzzy
 msgid "Skipped files"
-msgstr "Pominięto"
-
-#: front/src/components/requests/Form.vue:3
-msgid "Something's missing in the library? Let us know what you would like to listen!"
-msgstr "Brakuje czegoś w bibliotece? Powiedz nam, czego chcesz posłuchać!"
+msgstr "Pominięte pliki"
 
-#: front/src/components/audio/Search.vue:25
-msgid "Sorry, we did not found any album matching your query"
-msgstr "Przepraszamy, nie znaleziono albumu spełniającego Twoje kryteria"
-
-#: front/src/components/audio/Search.vue:16
-msgid "Sorry, we did not found any artist matching your query"
-msgstr "Przepraszamy, nie znaleziono wykonawcy spełniającego Twoje kryteria"
+#: front/src/views/admin/moderation/DomainsDetail.vue:97
+msgid "Software"
+msgstr ""
 
-#: front/src/App.vue:40
+#: front/src/components/Footer.vue:49
 msgid "Source code"
 msgstr "Kod źródłowy"
 
-#: front/src/App.vue:39
-msgid "Source code (%{version})"
-msgstr "Kod źródłowy (%{version})"
-
 #: front/src/components/auth/Profile.vue:23
 #: front/src/components/manage/users/UsersTable.vue:70
 msgid "Staff member"
@@ -1589,10 +2398,23 @@ msgstr "Członek administracji"
 msgid "Start"
 msgstr "Rozpocznij"
 
-#: front/src/components/library/FileUpload.vue:85
+#: front/src/views/admin/Settings.vue:86
+msgid "Statistics"
+msgstr "Statystyki"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:454
+msgid "Statistics are computed from known activity and content on your instance, and do not reflect general activity for this account"
+msgstr ""
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:358
+msgid "Statistics are computed from known activity and content on your instance, and do not reflect general activity for this domain"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:86
 #: front/src/components/manage/users/InvitationsTable.vue:17
 #: front/src/components/manage/users/InvitationsTable.vue:39
 #: front/src/components/manage/users/UsersTable.vue:43
+#: front/src/views/admin/moderation/DomainsDetail.vue:123
 #: front/src/views/content/libraries/Detail.vue:28
 msgid "Status"
 msgstr "Stan"
@@ -1601,23 +2423,23 @@ msgstr "Stan"
 msgid "Stop"
 msgstr "Zatrzymaj"
 
-#: front/src/components/Sidebar.vue:150
+#: front/src/components/Sidebar.vue:161
 msgid "Stop radio"
 msgstr "Zatrzymaj radio"
 
-#: front/src/App.vue:11 src/components/requests/Form.vue:17
+#: front/src/App.vue:22
 msgid "Submit"
 msgstr "Wyślij"
 
-#: front/src/components/requests/Form.vue:22
-msgid "Submit another request"
-msgstr "Wyślij kolejną prośbę"
+#: front/src/views/admin/Settings.vue:85
+msgid "Subsonic"
+msgstr "Subsonic"
 
 #: front/src/components/auth/SubsonicTokenForm.vue:2
 msgid "Subsonic API password"
 msgstr "Hasło API Subsonic"
 
-#: front/src/App.vue:13
+#: front/src/App.vue:26
 msgid "Suggested choices"
 msgstr "Polecane wybory"
 
@@ -1625,8 +2447,17 @@ msgstr "Polecane wybory"
 msgid "Summary"
 msgstr "Podsumowanie"
 
+#: front/src/components/Footer.vue:39
+msgid "Support forum"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:78
+msgid "Supported extensions: %{ extensions }"
+msgstr ""
+
 #: front/src/components/playlists/Editor.vue:9
-msgid "Syncing changes to server..."
+#, fuzzy
+msgid "Syncing changes to server…"
 msgstr "Synchronizowanie zmian z serwerem…"
 
 #: front/src/components/common/CopyInput.vue:3
@@ -1637,18 +2468,23 @@ msgstr "Skopiowano tekst do schowka!"
 msgid "That's simple: we loved Grooveshark and we want to build something even better."
 msgstr "To proste: kochamy Grooveshark i chcemy utworzyć coś jeszcze lepszego."
 
-#: front/src/App.vue:58
+#: front/src/components/Footer.vue:53
 msgid "The funkwhale logo was kindly designed and provided by Francis Gading."
 msgstr "Logo Funkwhale zostało zaprojektowane i dostarczone przez Francisa Gadinga."
 
 #: front/src/views/content/libraries/Form.vue:34
-msgid "The library and all its tracks will be deleted. This action is irreversible."
+#, fuzzy
+msgid "The library and all its tracks will be deleted. This can not be undone."
 msgstr "Biblioteka i wszystkie utwory z niej zostaną usunięte. To działanie jest nieodwracalne."
 
 #: front/src/components/library/FileUpload.vue:39
 msgid "The music files you are uploading are tagged properly:"
 msgstr "Pliki muzyczne które wysyłasz są poprawnie otagowane:"
 
+#: front/src/components/audio/Player.vue:67
+msgid "The next track will play automatically in a few seconds..."
+msgstr ""
+
 #: front/src/components/Home.vue:121
 msgid "The plaform is free and open-source, you can install it and modify it without worries"
 msgstr "Platforma jest wolna i otwartoźródłowa, każdy może bez zmartwień zainstalować i modyfikować ją"
@@ -1661,33 +2497,66 @@ msgstr "API Subsonic nie jest dostępne na tej instancji Funkwhale."
 msgid "The uploaded music files are in OGG, Flac or MP3 format"
 msgstr "Wysyłane pliki muzyczne są w formacie OGG, FLAC lub MP3"
 
-#: front/src/components/library/Album.vue:52
-msgid "This album is present in the following libraries:"
+#: front/src/views/content/Home.vue:4
+#, fuzzy
+msgid "There are various ways to grab new content and make it available here."
+msgstr "Oferujemy różne sposoby zdobywania nowej zawartości i udostępniania jej tutaj"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:66
+msgid "This action is irreversible."
 msgstr ""
 
+#: front/src/components/library/Album.vue:91
+msgid "This album is present in the following libraries:"
+msgstr "Ten album występuje w następujących bibliotekach:"
+
 #: front/src/components/library/Artist.vue:63
 msgid "This artist is present in the following libraries:"
+msgstr "Ten artysta występuje w następujących bibliotekach:"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:55
+#: front/src/views/admin/moderation/DomainsDetail.vue:48
+msgid "This domain is subject to specific moderation rules"
 msgstr ""
 
 #: front/src/views/content/Home.vue:9
-msgid "This instance offers up to %{quota} of storage space to every user."
+#, fuzzy
+msgid "This instance offers up to %{quota} of storage space for every user."
 msgstr "Ta instancja oferuje maksymalnie %{quota} przestrzeni dla każdego użytkownika."
 
 #: front/src/components/auth/Profile.vue:16
 msgid "This is you!"
 msgstr "To Ty!"
 
-#: front/src/components/common/ActionTable.vue:38
-msgid "This may affect a lot of elements, please double check this is really what you want."
+#: front/src/views/content/libraries/Form.vue:71
+#, fuzzy
+msgid "This library contains my personal music, I hope you like it."
+msgstr "Ta instancja zawiera moją personalną bibliotekę, mam nadzieję że ją polubisz!"
+
+#: front/src/views/content/remote/Card.vue:131
+msgid "This library is private and your approval from its owner is needed to access its content"
+msgstr ""
+
+#: front/src/views/content/remote/Card.vue:132
+msgid "This library is public and you can access its content freely"
+msgstr ""
+
+#: front/src/components/common/ActionTable.vue:45
+#, fuzzy
+msgid "This may affect a lot of elements or have irreversible consequences, please double check this is really what you want."
 msgstr "Może to wpływać na wiele rzeczy, sprawdź dwukrotnie czy to na pewno to, czego chcesz."
 
 #: front/src/components/library/FileUpload.vue:52
 msgid "This reference will be used to group imported files together."
+msgstr "Te źródła zostaną wykorzystane, aby pogrubować zaimportowane pliki"
+
+#: front/src/components/audio/PlayButton.vue:73
+msgid "This track is not available in any library you have access to"
 msgstr ""
 
-#: front/src/components/library/Track.vue:125
+#: front/src/components/library/Track.vue:171
 msgid "This track is present in the following libraries:"
-msgstr ""
+msgstr "Ten utwór występuje w następujących bibliotekach:"
 
 #: front/src/views/playlists/Detail.vue:37
 msgid "This will completely delete this playlist and cannot be undone."
@@ -1701,165 +2570,10 @@ msgstr "To bezpowrotnie usunie radio."
 msgid "This will completely disable access to the Subsonic API using from account."
 msgstr "To całkowicie wyłączy dostęp do API Subsonic z tego konta."
 
-#: front/src/App.vue:162 src/components/About.vue:55
-#: src/components/Home.vue:154 front/src/components/PageNotFound.vue:33
-#: src/components/Sidebar.vue:203 front/src/components/Sidebar.vue:204
-#: src/components/audio/PlayButton.vue:54
-#: front/src/components/audio/PlayButton.vue:55
-#: front/src/components/audio/PlayButton.vue:56
-#: front/src/components/audio/PlayButton.vue:61
-#: front/src/components/audio/PlayButton.vue:64
-#: front/src/components/audio/PlayButton.vue:158
-#: src/components/audio/Player.vue:216
-#: front/src/components/audio/Player.vue:273
-#: src/components/audio/Player.vue:274
-#: front/src/components/audio/Player.vue:275
-#: src/components/audio/Player.vue:276
-#: front/src/components/audio/Player.vue:277
-#: src/components/audio/Player.vue:278
-#: front/src/components/audio/Player.vue:279
-#: src/components/audio/Player.vue:280
-#: front/src/components/audio/Player.vue:281
-#: src/components/audio/Player.vue:282
-#: front/src/components/audio/Player.vue:283 src/components/audio/Search.vue:65
-#: front/src/components/audio/SearchBar.vue:20
-#: src/components/audio/SearchBar.vue:25
-#: front/src/components/audio/SearchBar.vue:26
-#: src/components/audio/SearchBar.vue:27 front/src/components/auth/Login.vue:77
-#: src/components/auth/Login.vue:78 front/src/components/auth/Logout.vue:20
-#: src/components/auth/Profile.vue:47
-#: front/src/components/auth/Settings.vue:249 src/components/auth/Signup.vue:95
-#: front/src/components/auth/Signup.vue:96 src/components/auth/Signup.vue:97
-#: front/src/components/auth/Signup.vue:98
-#: front/src/components/auth/SubsonicTokenForm.vue:95
-#: front/src/components/auth/SubsonicTokenForm.vue:111
-#: front/src/components/favorites/List.vue:110
-#: front/src/components/favorites/TrackFavoriteIcon.vue:19
-#: front/src/components/favorites/TrackFavoriteIcon.vue:21
-#: front/src/components/forms/PasswordInput.vue:25
-#: front/src/components/library/Album.vue:101
-#: src/components/library/Artist.vue:129
-#: front/src/components/library/Artists.vue:119
-#: front/src/components/library/Artists.vue:120
-#: front/src/components/library/FileUpload.vue:238
-#: front/src/components/library/FileUpload.vue:239
-#: front/src/components/library/FileUpload.vue:240
-#: front/src/components/library/FileUpload.vue:241
-#: src/components/library/Home.vue:65
-#: front/src/components/library/Radios.vue:141
-#: src/components/library/Radios.vue:142
-#: front/src/components/library/Track.vue:195
-#: front/src/components/library/radios/Builder.vue:233
-#: front/src/components/library/radios/Builder.vue:235
-#: front/src/components/library/radios/Builder.vue:236
-#: front/src/components/manage/library/FilesTable.vue:176
-#: front/src/components/manage/library/FilesTable.vue:190
-#: front/src/components/manage/users/InvitationForm.vue:58
-#: front/src/components/manage/users/InvitationsTable.vue:153
-#: front/src/components/manage/users/InvitationsTable.vue:167
-#: front/src/components/manage/users/UsersTable.vue:163
-#: front/src/components/manage/users/UsersTable.vue:173
-#: front/src/components/manage/users/UsersTable.vue:177
-#: front/src/components/manage/users/UsersTable.vue:181
-#: front/src/components/manage/users/UsersTable.vue:185
-#: front/src/components/metadata/ArtistCard.vue:49
-#: front/src/components/metadata/ReleaseCard.vue:53
-#: front/src/components/metadata/Search.vue:114
-#: front/src/components/metadata/Search.vue:130
-#: front/src/components/metadata/Search.vue:134
-#: front/src/components/metadata/Search.vue:138
-#: front/src/components/mixins/Translations.vue:7
-#: front/src/components/mixins/Translations.vue:8
-#: front/src/components/mixins/Translations.vue:10
-#: front/src/components/mixins/Translations.vue:11
-#: front/src/components/mixins/Translations.vue:16
-#: front/src/components/mixins/Translations.vue:17
-#: front/src/components/mixins/Translations.vue:18
-#: front/src/components/mixins/Translations.vue:19
-#: front/src/components/mixins/Translations.vue:20
-#: front/src/components/mixins/Translations.vue:21
-#: front/src/components/mixins/Translations.vue:22
-#: front/src/components/mixins/Translations.vue:23
-#: front/src/components/mixins/Translations.vue:24
-#: front/src/components/mixins/Translations.vue:25
-#: front/src/components/mixins/Translations.vue:26
-#: front/src/components/mixins/Translations.vue:27
-#: front/src/components/mixins/Translations.vue:28
-#: front/src/components/mixins/Translations.vue:29
-#: front/src/components/mixins/Translations.vue:30
-#: front/src/components/mixins/Translations.vue:31
-#: front/src/components/notifications/NotificationRow.vue:39
-#: front/src/components/notifications/NotificationRow.vue:40
-#: front/src/components/notifications/NotificationRow.vue:44
-#: front/src/components/notifications/NotificationRow.vue:45
-#: front/src/components/notifications/NotificationRow.vue:62
-#: front/src/components/playlists/Editor.vue:163
-#: src/components/playlists/Form.vue:74
-#: front/src/components/playlists/Form.vue:81
-#: src/components/playlists/Form.vue:85
-#: front/src/components/playlists/Form.vue:89
-#: front/src/components/playlists/PlaylistModal.vue:116
-#: front/src/components/playlists/TrackPlaylistIcon.vue:32
-#: front/src/components/requests/Form.vue:73
-#: src/components/requests/Form.vue:74
-#: front/src/components/requests/Form.vue:75 src/views/Notifications.vue:74
-#: front/src/views/admin/Settings.vue:75 src/views/admin/Settings.vue:80
-#: front/src/views/admin/Settings.vue:81 src/views/admin/Settings.vue:82
-#: front/src/views/admin/Settings.vue:83 src/views/admin/Settings.vue:84
-#: front/src/views/admin/Settings.vue:85 src/views/admin/Settings.vue:86
-#: front/src/views/admin/library/Base.vue:16
-#: src/views/admin/library/FilesList.vue:21
-#: front/src/views/admin/users/Base.vue:20
-#: front/src/views/admin/users/InvitationsList.vue:24
-#: front/src/views/admin/users/UsersDetail.vue:169
-#: front/src/views/admin/users/UsersDetail.vue:170
-#: front/src/views/admin/users/UsersDetail.vue:177
-#: front/src/views/admin/users/UsersDetail.vue:181
-#: front/src/views/admin/users/UsersDetail.vue:185
-#: front/src/views/admin/users/UsersDetail.vue:189
-#: front/src/views/admin/users/UsersList.vue:21
-#: src/views/auth/EmailConfirm.vue:51 front/src/views/auth/PasswordReset.vue:52
-#: src/views/auth/PasswordReset.vue:53
-#: front/src/views/auth/PasswordResetConfirm.vue:62
-#: src/views/content/Base.vue:19 front/src/views/content/Home.vue:35
-#: src/views/content/libraries/Card.vue:58
-#: front/src/views/content/libraries/Card.vue:59
-#: front/src/views/content/libraries/Card.vue:60
-#: front/src/views/content/libraries/Card.vue:61
-#: front/src/views/content/libraries/DetailArea.vue:24
-#: front/src/views/content/libraries/FilesTable.vue:226
-#: front/src/views/content/libraries/FilesTable.vue:229
-#: front/src/views/content/libraries/FilesTable.vue:230
-#: front/src/views/content/libraries/FilesTable.vue:233
-#: front/src/views/content/libraries/FilesTable.vue:234
-#: front/src/views/content/libraries/FilesTable.vue:237
-#: front/src/views/content/libraries/FilesTable.vue:238
-#: front/src/views/content/libraries/FilesTable.vue:241
-#: front/src/views/content/libraries/FilesTable.vue:242
-#: front/src/views/content/libraries/FilesTable.vue:258
-#: front/src/views/content/libraries/FilesTable.vue:259
-#: front/src/views/content/libraries/Form.vue:70
-#: front/src/views/content/libraries/Form.vue:71
-#: front/src/views/content/libraries/Form.vue:72
-#: front/src/views/content/libraries/Form.vue:73
-#: front/src/views/content/libraries/Form.vue:74
-#: front/src/views/content/libraries/Form.vue:106
-#: front/src/views/content/libraries/Form.vue:109
-#: front/src/views/content/libraries/Form.vue:129
-#: front/src/views/content/remote/Card.vue:131
-#: src/views/content/remote/Card.vue:132
-#: front/src/views/content/remote/Card.vue:165
-#: src/views/content/remote/Card.vue:166
-#: front/src/views/content/remote/ScanForm.vue:48
-#: src/views/instance/Timeline.vue:57 front/src/views/playlists/Detail.vue:90
-#: src/views/playlists/List.vue:104 front/src/views/playlists/List.vue:105
-#: src/views/radios/Detail.vue:80
+#: front/src/App.vue:129 src/components/Footer.vue:72
 #, fuzzy
 msgid "This will erase your local data and disconnect you, do you want to continue?"
-msgid_plural "%{ count } tracks were added to your queue"
-msgstr[0] "To wyczyści Twoje lokalne dane i rozłączy Cię, czy chcesz kontynuować?"
-msgstr[1] "To wyczyści Twoje lokalne dane i rozłączy Cię, czy chcesz kontynuować?"
-msgstr[2] "To wyczyści Twoje lokalne dane i rozłączy Cię, czy chcesz kontynuować?"
+msgstr "To wyczyści Twoje lokalne dane i rozłączy Cię, czy chcesz kontynuować?"
 
 #: front/src/components/auth/SubsonicTokenForm.vue:36
 msgid "This will log you out from existing devices that use the current password."
@@ -1869,26 +2583,44 @@ msgstr "To wyloguje Cię z urządzeń na których jesteś obecnie zalogowany."
 msgid "This will remove all tracks from this playlist and cannot be undone."
 msgstr "To bezpowrotnie usunie wszystkie utwory z tej listy odtwarzania."
 
-#: front/src/views/content/libraries/Quota.vue:90
-msgid "This will remove tracks that were uploaded but failed to be process by the server. This will remove those files completely and you will regain the corresponding quota."
-msgstr "Ta opcja usunie utwory które zostały wysłane, ale nie udało się ich przetworzyć przez serwer.  Bezpowrotnie usunie te pliki i zostanie Ci przywrócona odpowiednia przestrzeń."
-
-#: front/src/views/content/libraries/Quota.vue:38
-msgid "This will remove tracks that were uploaded but not processed yet. This will remove those files completely and you will regain the corresponding quota."
-msgstr "Ta opcja usunie utwory które zostały wysłane, ale nie zostały jeszcze przetworzone. Bezpowrotnie usunie te pliki i zostanie Ci przywrócona odpowiednia przestrzeń."
-
-#: front/src/views/content/libraries/Quota.vue:64
-msgid "This will remove tracks that were uploaded but skipped during import processes for various reasons. This will remove those files completely and you will regain the corresponding quota."
-msgstr "Ta opcja usunie utwory które zostały wysłane, lecz zostały z jakiegoś powodu pominięte w procesie importowania. Bezpowrotnie usunie te pliki i zostanie Ci przywrócona odpowiednia przestrzeń."
-
 #: front/src/components/audio/track/Table.vue:6
 #: front/src/components/manage/library/FilesTable.vue:37
-#: front/src/views/content/libraries/FilesTable.vue:51
-#: front/src/components/mixins/Translations.vue:26
+#: front/src/components/mixins/Translations.vue:27
+#: front/src/views/content/libraries/FilesTable.vue:54
+#: front/src/components/mixins/Translations.vue:28
 msgid "Title"
 msgstr "Tytuł"
 
-#: front/src/components/library/Track.vue:53
+#: front/src/components/ShortcutsModal.vue:79
+msgid "Toggle queue looping"
+msgstr ""
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:288
+#: front/src/views/admin/moderation/DomainsDetail.vue:225
+msgid "Total size"
+msgstr ""
+
+#: front/src/views/content/libraries/Card.vue:61
+msgid "Total size of the files in this library"
+msgstr "Łączny rozmiar wszystkich plików w tej bibliotece"
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:113
+#, fuzzy
+msgid "Total users"
+msgstr "Nie użyty"
+
+#: front/src/components/audio/SearchBar.vue:27
+#: src/components/library/Track.vue:262
+#: front/src/components/metadata/Search.vue:138
+msgid "Track"
+msgstr "Utwór"
+
+#: front/src/views/content/libraries/FilesTable.vue:205
+#, fuzzy
+msgid "Track already present in one of your libraries"
+msgstr "Utwór jest już w jednej z twoich bibliotek"
+
+#: front/src/components/library/Track.vue:85
 msgid "Track information"
 msgstr "Informacje o utworze"
 
@@ -1896,14 +2628,26 @@ msgstr "Informacje o utworze"
 msgid "Track matching filter"
 msgstr "Utwór zgodny z filtrem"
 
+#: front/src/components/mixins/Translations.vue:23
+#: front/src/components/mixins/Translations.vue:24
+msgid "Track name"
+msgstr "Tytuł utworu"
+
+#: front/src/views/content/libraries/FilesTable.vue:209
+#, fuzzy
+msgid "Track uploaded, but not processed by the server yet"
+msgstr "Utwór został zaimportowany, ale jeszcze nie jest przetworzony przez serwer"
+
 #: front/src/components/instance/Stats.vue:54
 msgid "tracks"
 msgstr "utwory"
 
-#: front/src/components/library/Album.vue:43
+#: front/src/components/library/Album.vue:81
 #: front/src/components/playlists/PlaylistModal.vue:33
-#: src/views/content/Base.vue:8 front/src/views/content/libraries/Detail.vue:8
-#: src/views/playlists/Detail.vue:50 front/src/views/radios/Detail.vue:34
+#: front/src/views/admin/moderation/AccountsDetail.vue:329
+#: front/src/views/admin/moderation/DomainsDetail.vue:265
+#: front/src/views/content/Base.vue:8 src/views/content/libraries/Detail.vue:8
+#: front/src/views/playlists/Detail.vue:50 src/views/radios/Detail.vue:34
 msgid "Tracks"
 msgstr "Utwory"
 
@@ -1919,21 +2663,25 @@ msgstr "Ulubione utwory"
 msgid "tracks listened"
 msgstr "wysłuchane utwory"
 
-#: front/src/components/library/Track.vue:91
+#: front/src/components/library/Track.vue:138
 #: front/src/components/manage/library/FilesTable.vue:41
+#: front/src/views/admin/moderation/AccountsDetail.vue:151
 msgid "Type"
 msgstr "Rodzaj"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:44
+#: front/src/components/manage/moderation/DomainsTable.vue:42
+msgid "Under moderation rule"
+msgstr ""
+
 #: front/src/views/content/remote/Card.vue:100
 #: src/views/content/remote/Card.vue:105
-#, fuzzy
 msgid "Unfollow"
-msgstr "Śledź"
+msgstr "Przestań śledzić"
 
 #: front/src/views/content/remote/Card.vue:101
-#, fuzzy
 msgid "Unfollow this library?"
-msgstr "Czy chcesz usunąć tę bibliotekę?"
+msgstr "Czy chcesz przestać śledzić tę bibliotekę?"
 
 #: front/src/components/About.vue:15
 msgid "Unfortunately, owners of this instance did not yet take the time to complete this page."
@@ -1943,14 +2691,27 @@ msgstr "Niestety, właściciele tej instancji nie znaleźli czasu na wypełnieni
 msgid "Unlimited music"
 msgstr "Nieograniczona muzyka"
 
+#: front/src/components/audio/Player.vue:351
+msgid "Unmute"
+msgstr "Cofnij wyciszenie"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:45
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:57
+#, fuzzy
+msgid "Update"
+msgstr "Data wysyłania"
+
 #: front/src/components/auth/Settings.vue:50
 msgid "Update avatar"
 msgstr "Aktualizuj awatar"
 
 #: front/src/views/content/libraries/Form.vue:25
-#, fuzzy
 msgid "Update library"
-msgstr "ZarzÄ…dzaj bibliotekÄ…"
+msgstr "Aktualizuj bibliotekÄ™"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:3
+msgid "Update moderation rule"
+msgstr ""
 
 #: front/src/components/playlists/Form.vue:33
 msgid "Update playlist"
@@ -1965,9 +2726,7 @@ msgid "Update your password"
 msgstr "Aktualizuj swoje hasło"
 
 #: front/src/views/content/libraries/Card.vue:44
-#: front/src/components/manage/users/UsersTable.vue:173
 #: front/src/views/content/libraries/DetailArea.vue:24
-#: front/src/views/admin/users/UsersDetail.vue:177
 msgid "Upload"
 msgstr "Wyślij"
 
@@ -1976,44 +2735,59 @@ msgid "Upload a new avatar"
 msgstr "Dodaj nowy awatar"
 
 #: front/src/views/content/Home.vue:6
-#, fuzzy
 msgid "Upload audio content"
-msgstr "Dodaj nowy awatar"
+msgstr "Wyślij zawartość dźwiękową"
 
-#: front/src/views/content/libraries/FilesTable.vue:54
-#, fuzzy
+#: front/src/views/content/libraries/FilesTable.vue:57
 msgid "Upload date"
-msgstr "Wyślij"
+msgstr "Data wysyłania"
+
+#: front/src/components/library/FileUpload.vue:219
+#: front/src/components/library/FileUpload.vue:220
+#, fuzzy
+msgid "Upload denied, ensure the file is not too big and that you have not reached your quota"
+msgstr "Błąd wysyłania, upewnij się że plik nie jest zbyt duży i że nie przekroczyłeś swojego limitu"
 
 #: front/src/views/content/Home.vue:7
-msgid "Upload music files (mp3, ogg, flac, etc.) from your personal library directly from your browser to enjoy them here."
+#, fuzzy
+msgid "Upload music files (MP3, OGG, FLAC, etc.) from your personal library directly from your browser to enjoy them here."
 msgstr "Wyślij pliki muzyczne (mp3, ogg, flac itp.) ze swojej biblioteki bezpośrednio z przeglądarki, aby cieszyć się nimi tutaj."
 
 #: front/src/components/library/FileUpload.vue:31
-#, fuzzy
 msgid "Upload new tracks"
-msgstr "Dodaj nowy awatar"
+msgstr "Wyślij nowe utwory"
 
-#: front/src/views/admin/users/UsersDetail.vue:82
-#, fuzzy
+#: front/src/views/admin/moderation/AccountsDetail.vue:269
 msgid "Upload quota"
-msgstr "Wyślij"
+msgstr "Powierzchnia dyskowa"
 
-#: front/src/components/library/FileUpload.vue:99
-#, fuzzy
+#: front/src/components/library/FileUpload.vue:228
+msgid "Upload timeout, please try again"
+msgstr "Importowanie zajęło zbyt długo, spróbuj jeszcze raz"
+
+#: front/src/components/library/FileUpload.vue:100
 msgid "Uploaded"
-msgstr "Wyślij"
+msgstr "Wysłano"
 
 #: front/src/components/library/FileUpload.vue:5
-#, fuzzy
 msgid "Uploading"
-msgstr "Wysyłanie…"
+msgstr "Wysyłanie"
 
-#: front/src/components/library/FileUpload.vue:102
-msgid "Uploading..."
-msgstr "Wysyłanie…"
+#: front/src/components/library/FileUpload.vue:103
+#, fuzzy
+msgid "Uploading…"
+msgstr "Wysyłanie"
+
+#: front/src/components/manage/moderation/AccountsTable.vue:41
+#: front/src/components/mixins/Translations.vue:37
+#: front/src/views/admin/moderation/AccountsDetail.vue:305
+#: front/src/views/admin/moderation/DomainsDetail.vue:241
+#: front/src/components/mixins/Translations.vue:38
+#, fuzzy
+msgid "Uploads"
+msgstr "Wyślij"
 
-#: front/src/App.vue:44
+#: front/src/components/Footer.vue:16
 msgid "Use another instance"
 msgstr "Skorzystaj z innej instancji"
 
@@ -2021,6 +2795,10 @@ msgstr "Skorzystaj z innej instancji"
 msgid "Use this form to request a password reset. We will send an email to the given address with instructions to reset your password."
 msgstr "Użyj tego formularza aby poprosić o zresetowanie hasła. Otrzymasz e-mail z instrukcjami resetowania hasła na podany adres."
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:111
+msgid "Use this setting to temporarily enable/disable the policy without completely removing it."
+msgstr ""
+
 #: front/src/components/manage/users/InvitationsTable.vue:49
 msgid "Used"
 msgstr "Zużyty"
@@ -2033,12 +2811,11 @@ msgstr "Użytkownik"
 msgid "User activity"
 msgstr "Aktywność użytkownika"
 
-#: front/src/components/library/Album.vue:49
+#: front/src/components/library/Album.vue:88
 #: src/components/library/Artist.vue:60
-#: front/src/components/library/Track.vue:122
-#, fuzzy
+#: front/src/components/library/Track.vue:168
 msgid "User libraries"
-msgstr "Moje biblioteki"
+msgstr "Biblioteki użytkownika"
 
 #: front/src/components/library/Radios.vue:20
 msgid "User radios"
@@ -2046,7 +2823,9 @@ msgstr "Radia użytkownika"
 
 #: front/src/components/auth/Signup.vue:19
 #: front/src/components/manage/users/UsersTable.vue:37
-#: front/src/components/mixins/Translations.vue:32
+#: front/src/components/mixins/Translations.vue:33
+#: front/src/views/admin/moderation/AccountsDetail.vue:85
+#: front/src/components/mixins/Translations.vue:34
 msgid "Username"
 msgstr "Nazwa użytkownika"
 
@@ -2058,31 +2837,59 @@ msgstr "Nazwa użytkownika lub adres e-mail"
 msgid "users"
 msgstr "użytkownicy"
 
-#: front/src/components/Sidebar.vue:94 src/views/admin/users/Base.vue:5
-#: front/src/views/admin/users/UsersList.vue:3
-#: src/views/admin/users/UsersList.vue:21 front/src/views/admin/Settings.vue:81
+#: front/src/components/Sidebar.vue:91
+#: front/src/components/manage/moderation/DomainsTable.vue:39
+#: front/src/components/mixins/Translations.vue:35
+#: src/views/admin/Settings.vue:81 front/src/views/admin/users/Base.vue:5
+#: src/views/admin/users/UsersList.vue:3
+#: front/src/views/admin/users/UsersList.vue:21
+#: front/src/components/mixins/Translations.vue:36
 msgid "Users"
 msgstr "Użytkownicy"
 
+#: front/src/components/Footer.vue:29
+#, fuzzy
+msgid "Using Funkwhale"
+msgstr "O Funkwhale"
+
+#: front/src/components/Footer.vue:13
+#, fuzzy
+msgid "Version %{version}"
+msgstr "Kod źródłowy (%{version})"
+
 #: front/src/views/content/libraries/Quota.vue:29
 #: front/src/views/content/libraries/Quota.vue:56
 #: front/src/views/content/libraries/Quota.vue:82
-#, fuzzy
 msgid "View files"
-msgstr "Pliki z biblioteki"
+msgstr "Zobacz pliki"
 
 #: front/src/components/library/Album.vue:37
 #: src/components/library/Artist.vue:35
-#: front/src/components/library/Track.vue:44
-#: front/src/components/metadata/ReleaseCard.vue:53
+#: front/src/components/library/Track.vue:51
 #: front/src/components/metadata/ArtistCard.vue:49
+#: front/src/components/metadata/ReleaseCard.vue:53
 msgid "View on MusicBrainz"
 msgstr "Wyświetl na MusicBrainz"
 
 #: front/src/views/content/libraries/Form.vue:18
-#, fuzzy
 msgid "Visibility"
-msgstr "Widoczność listy odtwarzania"
+msgstr "Widoczność"
+
+#: front/src/views/content/libraries/Card.vue:59
+msgid "Visibility: everyone on this instance"
+msgstr "Widoczność: wszyscy na tej instancji"
+
+#: front/src/views/content/libraries/Card.vue:60
+msgid "Visibility: everyone, including other instances"
+msgstr "Widoczność: wszyscy, uwzględniając inne instancje"
+
+#: front/src/views/content/libraries/Card.vue:58
+msgid "Visibility: nobody except me"
+msgstr "Widoczność: nikt poza mną"
+
+#: front/src/components/library/Album.vue:67
+msgid "Volume %{ number }"
+msgstr ""
 
 #: front/src/components/playlists/PlaylistModal.vue:20
 msgid "We cannot add the track to a playlist"
@@ -2096,6 +2903,11 @@ msgstr "Nie udało się utworzyć listy odtwarzania"
 msgid "We cannot create your account"
 msgstr "Nie udało się utworzyć Ci konta"
 
+#: front/src/components/audio/Player.vue:64
+#, fuzzy
+msgid "We cannot load this track"
+msgstr "Nie udało się dodać tego utworu do listy odtwarzania"
+
 #: front/src/components/auth/Login.vue:7
 msgid "We cannot log you in"
 msgstr "Nie udało się zalogować Cię"
@@ -2112,18 +2924,20 @@ msgstr "Nie udało się zapisać ustawień"
 msgid "We do not track you or bother you with ads"
 msgstr "Nie śledzimy Cię i nie wyświetlamy Ci reklam"
 
-#: front/src/views/Notifications.vue:26
-msgid "We don't have any notification to display!"
+#: front/src/components/library/Track.vue:95
+#, fuzzy
+msgid "We don't have any copyright information for this track"
 msgstr "Brak powiadomień do wyświetlenia!"
 
-#: front/src/views/content/Home.vue:4
-msgid "We offer various way to grab new content and make it available here."
-msgstr ""
+#: front/src/components/library/Track.vue:106
+#, fuzzy
+msgid "We don't have any licensing information for this track"
+msgstr "Brak powiadomień do wyświetlenia!"
 
 #: front/src/components/library/FileUpload.vue:40
 #, fuzzy
-msgid "we recommend using Picard for that purpose"
-msgstr "Polecamy używać do tego Picard."
+msgid "We recommend using Picard for that purpose."
+msgstr "polecamy używać do tego Picarda"
 
 #: front/src/components/Home.vue:7
 msgid "We think listening to music should be simple."
@@ -2133,9 +2947,9 @@ msgstr "Uważamy, że słuchanie muzyki powinno być proste."
 msgid "We're sorry, the page you asked for does not exist:"
 msgstr "Przepraszamy, strona której szukasz nie istnieje:"
 
-#: front/src/components/requests/Form.vue:21
-msgid "We've received your request, you'll get some groove soon ;)"
-msgstr "Otrzymaliśmy Twoje zgłoszenie, wkrótce dostaniesz trochę groove-u ;)"
+#: front/src/components/Home.vue:153
+msgid "Welcome"
+msgstr "Witaj"
 
 #: front/src/components/Home.vue:5
 msgid "Welcome on Funkwhale"
@@ -2145,7 +2959,17 @@ msgstr "Witamy na Funkwhale"
 msgid "Why funkwhale?"
 msgstr "Dlaczego funkwhale?"
 
-#: front/src/components/Sidebar.vue:115
+#: front/src/components/audio/EmbedWizard.vue:13
+msgid "Widget height"
+msgstr ""
+
+#: front/src/components/audio/EmbedWizard.vue:6
+msgid "Widget width"
+msgstr ""
+
+#: front/src/components/Sidebar.vue:118
+#: front/src/components/manage/moderation/AccountsTable.vue:72
+#: front/src/components/manage/moderation/DomainsTable.vue:58
 msgid "Yes"
 msgstr "Tak"
 
@@ -2153,9 +2977,14 @@ msgstr "Tak"
 msgid "Yes, log me out!"
 msgstr "Tak, wyloguj mnie!"
 
+#: front/src/views/content/libraries/Form.vue:19
+#, fuzzy
+msgid "You are able to share your library with other people, regardless of its visibility."
+msgstr "Będziesz mógł udostępniać swoją bibliotekę innym, nie zważając na jej widoczność."
+
 #: front/src/components/library/FileUpload.vue:33
 msgid "You are about to upload music to your library. Before proceeding, please ensure that:"
-msgstr ""
+msgstr "Za chwilę dodasz utwory do swojej biblioteki. Zanim kontynuujesz, upewnij się że:"
 
 #: front/src/components/auth/Logout.vue:7
 msgid "You are currently logged in as %{ username }"
@@ -2163,12 +2992,17 @@ msgstr "JesteÅ› obecnie zalogowany jako %{ username }"
 
 #: front/src/views/content/Home.vue:17
 msgid "You can follow libraries from other users to get access to new music. Public libraries can be followed immediatly, while following a private library requires approval from its owner."
-msgstr ""
+msgstr "Możesz zaobserwować biblioteki innych użytkowników aby uzyskać dostęp do nowej muzyki. Publiczne biblioteki mogą być zaobserwowane natychmiast, a do zaobserwowania prywatnej biblioteki będziesz potrzebował zgody jej właściciela."
 
 #: front/src/components/Home.vue:133
 msgid "You can invite friends and family to your instance so they can enjoy your music"
 msgstr "Możesz zaprosić znajomych i rodzinę na swoją instancję, aby mogli się cieszyć dodaną przez Ciebie muzyką"
 
+#: front/src/views/auth/EmailConfirm.vue:24
+#, fuzzy
+msgid "You can now use the service without limitations."
+msgstr "Twój adres e-mail został potwierdzony, możesz używać usługi bez ograniczeń."
+
 #: front/src/components/library/radios/Builder.vue:7
 msgid "You can use this interface to build your own custom radio, which will play tracks according to your criteria."
 msgstr "Możesz używać tego interfejsu aby utworzyć własne radio, które będzie odtwarzać utwory pasujące do Twoich kryteriów."
@@ -2177,18 +3011,26 @@ msgstr "Możesz używać tego interfejsu aby utworzyć własne radio, które bę
 msgid "You can use those to enjoy your playlist and music in offline mode, on your smartphone or tablet, for instance."
 msgstr "Możesz używać tego, aby cieszyć się muzyką i swoją listą odtwarzania w trybie offline, na przykład na smartfonie i tablecie."
 
-#: front/src/components/Sidebar.vue:147
+#: front/src/views/admin/moderation/AccountsDetail.vue:46
+msgid "You don't have any rule in place for this account."
+msgstr ""
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:39
+msgid "You don't have any rule in place for this domain."
+msgstr ""
+
+#: front/src/components/Sidebar.vue:158
 msgid "You have a radio playing"
 msgstr "Odtwarzasz radio"
 
-#: front/src/App.vue:8
+#: front/src/components/audio/Player.vue:71
+msgid "You may have a connectivity issue."
+msgstr ""
+
+#: front/src/App.vue:17
 msgid "You need to select an instance in order to continue"
 msgstr "Musisz wybrać instancję aby kontynuować"
 
-#: front/src/views/content/libraries/Form.vue:19
-msgid "You will be able to share your library with other people, regardless of it's visibility."
-msgstr ""
-
 #: front/src/components/auth/Settings.vue:100
 msgid "You will be logged out from this session and have to log in with the new one"
 msgstr "Zostaniesz wylogowany z tej sesji i musisz zalogować się nowym hasłem"
@@ -2197,18 +3039,17 @@ msgstr "Zostaniesz wylogowany z tej sesji i musisz zalogować się nowym hasłem
 msgid "You will have to update your password on your clients that use this password."
 msgstr "Będziesz musiał zmienić hasło na klientach używających tego hasła."
 
-#: front/src/views/auth/EmailConfirm.vue:24
-msgid "Your email address was confirmed, you can now use the service without limitations."
-msgstr "Twój adres e-mail został potwierdzony, możesz używać usługi bez ograniczeń."
+#: front/src/components/favorites/List.vue:112
+msgid "Your Favorites"
+msgstr "Twoje ulubione"
 
 #: front/src/components/Home.vue:114
 msgid "Your music, your way"
 msgstr "Twoja muzyka, po Twojemu"
 
 #: front/src/views/Notifications.vue:7
-#, fuzzy
 msgid "Your notifications"
-msgstr "Ostatnia modyfikacja"
+msgstr "Twoje powiadomienia"
 
 #: front/src/views/auth/PasswordResetConfirm.vue:29
 msgid "Your password has been updated successfully."
@@ -2217,427 +3058,3 @@ msgstr "Twoje hasło zostało pomyślnie zmienione."
 #: front/src/components/auth/Settings.vue:101
 msgid "Your Subsonic password will be changed to a new, random one, logging you out from devices that used the old Subsonic password"
 msgstr "Twoje hasło Subsonic zostanie zmienione na nowe, losowe i zostaniesz wylogowany z urządzeń korzystających ze starego hasła Subsonic"
-
-#: front/src/components/mixins/Translations.vue:8
-#, fuzzy
-msgid "Activity visibility"
-msgstr "Widoczność listy odtwarzania"
-
-#: front/src/components/mixins/Translations.vue:9
-msgid "Determine the visibility level of your activity"
-msgstr ""
-
-#: front/src/components/mixins/Translations.vue:11
-#: front/src/components/playlists/Form.vue:81
-#: src/views/content/libraries/Form.vue:72
-msgid "Nobody except me"
-msgstr "Nikt poza mnÄ…"
-
-#: front/src/components/mixins/Translations.vue:12
-#: front/src/components/playlists/Form.vue:85
-#: src/views/content/libraries/Form.vue:73
-msgid "Everyone on this instance"
-msgstr "Wszyscy na tej instancji"
-
-#: front/src/components/mixins/Translations.vue:18
-#, fuzzy
-msgid "Accessed date"
-msgstr "Brak dostępu"
-
-#: front/src/components/mixins/Translations.vue:19
-#, fuzzy
-msgid "Modification date"
-msgstr "Data wygaśnięcia"
-
-#: front/src/components/mixins/Translations.vue:20
-#, fuzzy
-msgid "Imported date"
-msgstr "Data zaimportowania"
-
-#: front/src/components/mixins/Translations.vue:22
-#, fuzzy
-msgid "Track name"
-msgstr "Utwór"
-
-#: front/src/components/mixins/Translations.vue:23
-#, fuzzy
-msgid "Album name"
-msgstr "Strona albumu"
-
-#: front/src/components/mixins/Translations.vue:30
-#, fuzzy
-msgid "Sign-up date"
-msgstr "Rejestracja"
-
-#: front/src/components/playlists/Editor.vue:163
-msgid "Copy tracks from current queue to playlist"
-msgstr "Skopiuj utwory z obecnej kolejki do listy odtwarzania"
-
-#: front/src/components/playlists/PlaylistModal.vue:116
-msgid "Add to this playlist"
-msgstr "Dodaj do tej playlisty"
-
-#: front/src/components/playlists/Form.vue:74
-msgid "My awesome playlist"
-msgstr "Moja wspaniała playlista"
-
-#: front/src/components/playlists/Form.vue:89
-msgid "Everyone"
-msgstr "Wszyscy"
-
-#: front/src/components/auth/Signup.vue:95
-msgid "Sign Up"
-msgstr "Rejestracja"
-
-#: front/src/components/auth/Signup.vue:96
-msgid "Enter your invitation code (case insensitive)"
-msgstr "Wprowadź swój kod zapraszający (wielkość znaków nie ma znaczenia)"
-
-#: front/src/components/auth/Signup.vue:97
-msgid "Enter your username"
-msgstr "Wprowadź swoją nazwę użytkownika"
-
-#: front/src/components/auth/Signup.vue:98
-msgid "Enter your email"
-msgstr "Wprowadź swój e-mail"
-
-#: front/src/components/auth/SubsonicTokenForm.vue:95
-msgid "Password updated"
-msgstr "Zmieniono hasło"
-
-#: front/src/components/auth/SubsonicTokenForm.vue:111
-msgid "Access disabled"
-msgstr "Brak dostępu"
-
-#: front/src/components/auth/Login.vue:77
-msgid "Enter your username or email"
-msgstr "Wprowadź swoją nazwę użytkownika lub e-mail"
-
-#: front/src/components/auth/Login.vue:78
-msgid "Log In"
-msgstr "Zaloguj siÄ™"
-
-#: front/src/components/auth/Profile.vue:47
-msgid "%{ username }'s profile"
-msgstr "Profil %{ username }"
-
-#: front/src/components/auth/Logout.vue:20
-msgid "Log Out"
-msgstr "Wyloguj siÄ™"
-
-#: front/src/components/auth/Settings.vue:249
-msgid "Account Settings"
-msgstr "Ustawienia konta"
-
-#: front/src/components/favorites/TrackFavoriteIcon.vue:19
-msgid "Remove from favorites"
-msgstr "Usuń z ulubionych"
-
-#: front/src/components/favorites/List.vue:110
-msgid "Your Favorites"
-msgstr "Twoje ulubione"
-
-#: front/src/components/library/Radios.vue:141
-msgid "Enter a radio name..."
-msgstr "Wprowadź nazwę radia…"
-
-#: front/src/components/library/radios/Builder.vue:233
-msgid "Radio Builder"
-msgstr "Tworzenie radia"
-
-#: front/src/components/library/radios/Builder.vue:235
-msgid "My awesome radio"
-msgstr "Moje wspaniałe radio"
-
-#: front/src/components/library/radios/Builder.vue:236
-#, fuzzy
-msgid "My awesome description"
-msgstr "Moje wspaniałe radio"
-
-#: front/src/components/library/FileUpload.vue:238
-msgid "Upload refused, ensure the file is not too big and you have not reached your quota"
-msgstr ""
-
-#: front/src/components/library/FileUpload.vue:239
-msgid "Impossible to upload this file, ensure it is not too big"
-msgstr ""
-
-#: front/src/components/library/FileUpload.vue:240
-#, fuzzy
-msgid "A network error occured while uploading this file"
-msgstr "Wystąpił błąd podczas zapisywania zmian"
-
-#: front/src/components/library/FileUpload.vue:241
-msgid "Upload timeout, please try again"
-msgstr ""
-
-#: front/src/components/library/Artists.vue:119
-msgid "Enter an artist name..."
-msgstr "Wprowadź nazwę wykonawcy…"
-
-#: front/src/components/library/Track.vue:195
-#: src/components/audio/SearchBar.vue:27
-#: front/src/components/metadata/Search.vue:138
-msgid "Track"
-msgstr "Utwór"
-
-#: front/src/components/library/Home.vue:65
-msgid "Home"
-msgstr "Strona główna"
-
-#: front/src/components/forms/PasswordInput.vue:25
-msgid "Show/hide password"
-msgstr "Pokaż/ukryj hasło"
-
-#: front/src/components/requests/Form.vue:73
-msgid "The Beatles, Mickael Jackson…"
-msgstr "The Beatles, Klocuch…"
-
-#: front/src/components/requests/Form.vue:74
-msgid "The White Album, Thriller…"
-msgstr "The White Album, Aezakmi…"
-
-#: front/src/components/requests/Form.vue:75
-msgid "Use this comment box to add details to your request if needed"
-msgstr "Użyj tego pola komentarzy, aby dodać szczegóły zgłoszenia, jeżeli potrzebne"
-
-#: front/src/components/audio/PlayButton.vue:158
-msgid "%{ count } track was added to your queue"
-msgid_plural "%{ count } tracks were added to your queue"
-msgstr[0] "Dodano %{ count } utwór do kolejki"
-msgstr[1] "Dodano %{ count } utwory do kolejki"
-msgstr[2] "Dodano %{ count } utworów do kolejki"
-
-#: front/src/components/audio/Search.vue:65
-msgid "Artist, album, track..."
-msgstr "Wykonawca, album, utwór…"
-
-#: front/src/components/audio/SearchBar.vue:20
-msgid "Search for artists, albums, tracks..."
-msgstr "Szukaj wykonawców, albumów, utworów…"
-
-#: front/src/components/audio/Player.vue:216
-msgid "Queue shuffled!"
-msgstr "Wymieszano kolejkÄ™!"
-
-#: front/src/components/audio/Player.vue:273
-msgid "Previous track"
-msgstr "Poprzedni utwór"
-
-#: front/src/components/audio/Player.vue:274
-msgid "Play track"
-msgstr "Odtwórz utwór"
-
-#: front/src/components/audio/Player.vue:275
-msgid "Pause track"
-msgstr "Wstrzymaj utwór"
-
-#: front/src/components/audio/Player.vue:276
-msgid "Next track"
-msgstr "Następny utwór"
-
-#: front/src/components/audio/Player.vue:277
-msgid "Unmute"
-msgstr "Cofnij wyciszenie"
-
-#: front/src/components/audio/Player.vue:278
-msgid "Mute"
-msgstr "Wycisz"
-
-#: front/src/components/audio/Player.vue:279
-msgid "Looping disabled. Click to switch to single-track looping."
-msgstr "Zapętlanie jest wyłączone. Naciśnij, aby przełączyć na powtarzanie jednego utworu."
-
-#: front/src/components/audio/Player.vue:280
-msgid "Looping on a single track. Click to switch to whole queue looping."
-msgstr "Zapętlanie jednego utworu jest włączone. Naciśnij, aby przełączyć na powtarzanie całej kolejki."
-
-#: front/src/components/audio/Player.vue:281
-msgid "Looping on whole queue. Click to disable looping."
-msgstr "Zapętlanie całej kolejki jest włączone. Naciśnij, aby wyłączyć zapętlanie."
-
-#: front/src/components/audio/Player.vue:282
-msgid "Shuffle your queue"
-msgstr "Wymieszaj kolejkÄ™"
-
-#: front/src/components/audio/Player.vue:283
-msgid "Clear your queue"
-msgstr "Wyczyść swoją kolejkę"
-
-#: front/src/components/Sidebar.vue:203
-msgid "Pending import requests"
-msgstr "Oczekujące prośby o zaimportowanie"
-
-#: front/src/components/Sidebar.vue:204
-msgid "Pending follow requests"
-msgstr "Oczekujące prośby o możliwość śledzenia"
-
-#: front/src/components/metadata/Search.vue:114
-msgid "Enter your search query..."
-msgstr "Wprowadź swoje kryterium wyszukiwania…"
-
-#: front/src/components/manage/library/FilesTable.vue:176
-msgid "Search by title, artist, domain..."
-msgstr "Szukaj według tytułu, wykonawcy, domeny…"
-
-#: front/src/components/manage/users/InvitationForm.vue:58
-msgid "Leave empty for a random code"
-msgstr "Pozostaw puste, aby wygenerować kod"
-
-#: front/src/components/manage/users/InvitationsTable.vue:153
-msgid "Search by username, email, code..."
-msgstr "Szukaj według nazwy użytkownika, adresu e-mail, kodu…"
-
-#: front/src/components/manage/users/UsersTable.vue:163
-msgid "Search by username, email, name..."
-msgstr "Szukaj według nazwy użytkownika, adresu e-mail, nazwy…"
-
-#: front/src/components/manage/users/UsersTable.vue:181
-#: front/src/views/admin/users/UsersDetail.vue:185
-#: src/views/admin/Settings.vue:83
-msgid "Federation"
-msgstr "Federacja"
-
-#: front/src/components/Home.vue:154
-msgid "Welcome"
-msgstr ""
-
-#: front/src/views/content/remote/ScanForm.vue:48
-#, fuzzy
-msgid "Enter a library url"
-msgstr "Wprowadź nazwę domeny biblioteki…"
-
-#: front/src/views/content/remote/Card.vue:165
-msgid "Scan launched"
-msgstr ""
-
-#: front/src/views/content/remote/Card.vue:166
-msgid "Scan skipped (previous scan is too recent)"
-msgstr ""
-
-#: front/src/views/content/libraries/FilesTable.vue:226
-#, fuzzy
-msgid "Search by title, artist, album..."
-msgstr "Szukaj według tytułu, wykonawcy, domeny…"
-
-#: front/src/views/content/libraries/FilesTable.vue:230
-msgid "Track was already present in one of your libraries"
-msgstr ""
-
-#: front/src/views/content/libraries/FilesTable.vue:234
-msgid "Track is uploaded but not processed by the server yet"
-msgstr ""
-
-#: front/src/views/content/libraries/FilesTable.vue:238
-msgid "An error occured while processing this track, ensure the track is correctly tagged"
-msgstr ""
-
-#: front/src/views/content/libraries/FilesTable.vue:242
-#, fuzzy
-msgid "Import went on successfully"
-msgstr "Pomyślnie zmieniono hasło"
-
-#: front/src/views/content/libraries/FilesTable.vue:259
-#, fuzzy
-msgid "Relaunch import"
-msgstr "Zakończ importowanie"
-
-#: front/src/views/content/libraries/Card.vue:58
-#, fuzzy
-msgid "Visibility: nobody except me"
-msgstr "Nikt poza mnÄ…"
-
-#: front/src/views/content/libraries/Card.vue:59
-#, fuzzy
-msgid "Visibility: everyone on this instance"
-msgstr "Wszyscy na tej instancji"
-
-#: front/src/views/content/libraries/Card.vue:60
-msgid "Visibility: everyone, including other instances"
-msgstr ""
-
-#: front/src/views/content/libraries/Card.vue:61
-#, fuzzy
-msgid "Total size of the files in this library"
-msgstr "Utwory dostępne w bibliotece"
-
-#: front/src/views/content/libraries/Form.vue:70
-#, fuzzy
-msgid "My awesome library"
-msgstr "Moje wspaniałe radio"
-
-#: front/src/views/content/libraries/Form.vue:71
-msgid "This library contains my personnal music, I hope you will like it!"
-msgstr ""
-
-#: front/src/views/content/libraries/Form.vue:74
-#, fuzzy
-msgid "Everyone, including other instances"
-msgstr "Wszyscy na tej instancji"
-
-#: front/src/views/content/libraries/Form.vue:106
-#, fuzzy
-msgid "Library updated"
-msgstr "Nazwa biblioteki"
-
-#: front/src/views/content/libraries/Form.vue:109
-#, fuzzy
-msgid "Library created"
-msgstr "Nazwa biblioteki"
-
-#: front/src/views/content/Home.vue:35
-msgid "Add and manage content"
-msgstr ""
-
-#: front/src/views/radios/Detail.vue:80
-msgid "Radio"
-msgstr "Radio"
-
-#: front/src/views/instance/Timeline.vue:57
-msgid "Instance Timeline"
-msgstr "OÅ› czasu instancji"
-
-#: front/src/views/playlists/Detail.vue:90
-msgid "Playlist"
-msgstr "Lista odtwarzania"
-
-#: front/src/views/playlists/List.vue:105
-msgid "Enter an playlist name..."
-msgstr "Wprowadź nazwę listy odtwarzania…"
-
-#: front/src/views/admin/library/Base.vue:16
-#, fuzzy
-msgid "Manage library"
-msgstr "W bibliotece"
-
-#: front/src/views/admin/users/UsersDetail.vue:169
-msgid "Determine if the user account is active or not. Inactive users cannot login or use the service."
-msgstr "Określa, czy konto użytkownika jest aktywne. Nieaktywni użytkownicy nie mogą zalogować się i korzystać z usługi."
-
-#: front/src/views/admin/users/UsersDetail.vue:170
-msgid "Determine how much content the user can upload. Leave empty to use the default value of the instance."
-msgstr ""
-
-#: front/src/views/admin/users/Base.vue:20
-msgid "Manage users"
-msgstr "Zarządzaj użytkownikami"
-
-#: front/src/views/admin/Settings.vue:75
-msgid "Instance settings"
-msgstr "Ustawienia instancji"
-
-#: front/src/views/admin/Settings.vue:80
-msgid "Instance information"
-msgstr "Informacje o instancji"
-
-#: front/src/views/admin/Settings.vue:84
-msgid "Subsonic"
-msgstr "Subsonic"
-
-#: front/src/views/admin/Settings.vue:85
-msgid "Statistics"
-msgstr "Statystyki"
-
-#: front/src/views/admin/Settings.vue:86
-msgid "Error reporting"
-msgstr "Zgłaszanie błędów"
diff --git a/front/locales/pt_PT/LC_MESSAGES/app.po b/front/locales/pt_PT/LC_MESSAGES/app.po
index 62c9ce17f581a6942b99a85b6a272a636405400c..221a833c43f42505b907efe49f3c99d656837ce1 100644
--- a/front/locales/pt_PT/LC_MESSAGES/app.po
+++ b/front/locales/pt_PT/LC_MESSAGES/app.po
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: front 1.0.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-10-05 20:10+0200\n"
-"PO-Revision-Date: 2018-10-07 09:06+0000\n"
+"POT-Creation-Date: 2019-01-11 15:55+0100\n"
+"PO-Revision-Date: 2019-01-18 21:50+0000\n"
 "Last-Translator: troll <my_name_is_troll@protonmail.com>\n"
 "Language-Team: none\n"
 "Language: pt_PT\n"
@@ -16,7 +16,7 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 2.20\n"
+"X-Generator: Weblate 3.2.2\n"
 
 #: front/src/components/playlists/PlaylistModal.vue:9
 msgid "\"%{ title }\", by %{ artist }"
@@ -24,26 +24,26 @@ msgstr "\"%{ title }\", de %{ artist }"
 
 #: front/src/components/Sidebar.vue:24
 msgid "(%{ index } of %{ length })"
-msgstr ""
+msgstr "(%{ index } de %{ length })"
 
 #: front/src/components/Sidebar.vue:22
 msgid "(empty)"
 msgstr "(vazio)"
 
-#: front/src/components/common/ActionTable.vue:44
-#: front/src/components/common/ActionTable.vue:53
+#: front/src/components/common/ActionTable.vue:57
+#: front/src/components/common/ActionTable.vue:66
 msgid "%{ count } on %{ total } selected"
 msgid_plural "%{ count } on %{ total } selected"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%{ count } em %{ total } selecionado"
+msgstr[1] "%{ count } em %{ total } selecionados"
 
-#: front/src/components/Sidebar.vue:107 src/components/audio/album/Card.vue:54
+#: front/src/components/Sidebar.vue:110 src/components/audio/album/Card.vue:54
 #: front/src/views/content/libraries/Card.vue:39
 #: src/views/content/remote/Card.vue:26
 msgid "%{ count } track"
 msgid_plural "%{ count } tracks"
-msgstr[0] "%{ count } tema"
-msgstr[1] "%{ count } temas"
+msgstr[0] "%{ count } pista"
+msgstr[1] "%{ count } pistas"
 
 #: front/src/components/library/Artist.vue:13
 msgid "%{ count } track in %{ albumsCount } albums"
@@ -54,18 +54,24 @@ msgstr[1] "%{ count } temas em %{ albumsCount } álbuns"
 #: front/src/components/library/radios/Builder.vue:80
 msgid "%{ count } track matching combined filters"
 msgid_plural "%{ count } tracks matching combined filters"
-msgstr[0] "%{ count } música corresponde aos filtros selecionados"
-msgstr[1] "%{ count } músicas correspondem aos filtros selecionados"
+msgstr[0] "%{ count } pista corresponde aos filtros selecionados"
+msgstr[1] "%{ count } pistas correspondem aos filtros selecionados"
+
+#: front/src/components/audio/PlayButton.vue:180
+msgid "%{ count } track was added to your queue"
+msgid_plural "%{ count } tracks were added to your queue"
+msgstr[0] "%{ count } pista foi adicionada à sua fila"
+msgstr[1] "%{ count } pistas foram adicionadas à sua fila"
 
 #: front/src/components/playlists/Card.vue:18
 msgid "%{ count} track"
 msgid_plural "%{ count } tracks"
-msgstr[0] "%{ count} música"
-msgstr[1] "%{ count } músicas"
+msgstr[0] "%{ count} pista"
+msgstr[1] "%{ count } pistas"
 
 #: front/src/views/content/libraries/Quota.vue:11
 msgid "%{ current } used on %{ max } allowed"
-msgstr ""
+msgstr "%{ current } utilizado em %{ max } permitido"
 
 #: front/src/components/common/Duration.vue:2
 msgid "%{ hours } h %{ minutes } min"
@@ -75,13 +81,23 @@ msgstr "%{ hours } h %{ minutes } min"
 msgid "%{ minutes } min"
 msgstr "%{ minutes } min"
 
-#: front/src/components/activity/Like.vue:7
-msgid "%{ user } favorited a track"
-msgstr "%{ user } gostou de uma música"
+#: front/src/components/notifications/NotificationRow.vue:40
+msgid "%{ username } accepted your follow on library \"%{ library }\""
+msgstr "%{ username } aceitou seu seguimento na biblioteca \"%{ library }\""
+
+#: front/src/components/notifications/NotificationRow.vue:39
+msgid "%{ username } followed your library \"%{ library }\""
+msgstr "%{ username } seguiu a sua biblioteca \"%{ library }\""
+
+#: front/src/components/auth/Profile.vue:46
+msgid "%{ username }'s profile"
+msgstr "%{ username } perfil"
 
-#: front/src/components/activity/Listen.vue:7
-msgid "%{ user } listened to a track"
-msgstr "%{ user } escutou uma música"
+#: front/src/components/Footer.vue:5
+msgid "<translate :translate-params=\"{instanceName: instanceHostname}\">About %{instanceName}</translate>"
+msgstr ""
+"<translate :translate-params=\"{instanceName: instanceHostname}\">Sobre "
+"%{instanceName}</translate>"
 
 #: front/src/components/audio/artist/Card.vue:41
 msgid "1 album"
@@ -95,15 +111,28 @@ msgid_plural "%{ count } favorites"
 msgstr[0] "1 preferida"
 msgstr[1] "%{ count } preferidas"
 
+#: front/src/components/library/FileUpload.vue:225
+#: front/src/components/library/FileUpload.vue:226
+msgid "A network error occured while uploading this file"
+msgstr "Ocorreu um erro durante o upload deste ficheiro"
+
 #: front/src/components/About.vue:5
 msgid "About %{ instance }"
 msgstr "Sobre %{ instance }"
 
-#: front/src/App.vue:53
+#: front/src/components/Footer.vue:6
+msgid "About %{instanceName}"
+msgstr "Sobre %{instanceName}"
+
+#: front/src/components/Footer.vue:45
 msgid "About Funkwhale"
 msgstr "Sobre Funkwhale"
 
-#: front/src/App.vue:34 src/components/About.vue:8 src/components/About.vue:55
+#: front/src/components/Footer.vue:10
+msgid "About page"
+msgstr "Sobre a página"
+
+#: front/src/components/About.vue:8 src/components/About.vue:64
 msgid "About this instance"
 msgstr "Sobre esta instância"
 
@@ -115,37 +144,58 @@ msgstr "Aceitar"
 msgid "Accepted"
 msgstr "Aceitado"
 
+#: front/src/components/auth/SubsonicTokenForm.vue:111
+msgid "Access disabled"
+msgstr "Acesso desativado"
+
 #: front/src/components/Home.vue:106
 msgid "Access your music from a clean interface that focus on what really matters"
-msgstr "Acesse sua música a partir de uma interface limpa que se concentra no que realmente importa"
+msgstr ""
+"Aceda à sua música a partir de uma interface limpa que se concentra no que "
+"realmente importa"
+
+#: front/src/components/mixins/Translations.vue:19
+#: front/src/components/mixins/Translations.vue:20
+msgid "Accessed date"
+msgstr "Data de acesso"
 
-#: front/src/views/admin/users/UsersDetail.vue:54
-msgid "Account active"
-msgstr "Conta ativa"
+#: front/src/views/admin/moderation/AccountsDetail.vue:78
+msgid "Account data"
+msgstr "Dados da conta"
 
 #: front/src/components/auth/Settings.vue:5
 msgid "Account settings"
 msgstr "Configurações da conta"
 
+#: front/src/components/auth/Settings.vue:264
+msgid "Account Settings"
+msgstr "Configurações da Conta"
+
 #: front/src/components/manage/users/UsersTable.vue:39
 msgid "Account status"
-msgstr "Status da Conta"
+msgstr "Status da conta"
 
 #: front/src/views/auth/PasswordReset.vue:14
 msgid "Account's email"
 msgstr "Email da conta"
 
+#: front/src/views/admin/moderation/AccountsList.vue:3
+#: front/src/views/admin/moderation/AccountsList.vue:24
+#: front/src/views/admin/moderation/Base.vue:8
+msgid "Accounts"
+msgstr "Contas"
+
 #: front/src/views/content/libraries/Detail.vue:29
 msgid "Action"
 msgstr "Açao"
 
-#: front/src/components/common/ActionTable.vue:86
+#: front/src/components/common/ActionTable.vue:99
 msgid "Action %{ action } was launched successfully on %{ count } element"
 msgid_plural "Action %{ action } was launched successfully on %{ count } elements"
 msgstr[0] "A ação %{ action } foi lançada com sucesso em %{ count } item"
 msgstr[1] "A ação %{ action } foi lançada com sucesso em %{ count } itens"
 
-#: front/src/components/common/ActionTable.vue:8
+#: front/src/components/common/ActionTable.vue:21
 #: front/src/components/library/radios/Builder.vue:64
 msgid "Actions"
 msgstr "Ações"
@@ -154,11 +204,33 @@ msgstr "Ações"
 msgid "Active"
 msgstr "Ativo"
 
-#: front/src/components/Sidebar.vue:75
+#: front/src/views/admin/moderation/AccountsDetail.vue:199
+#: front/src/views/admin/moderation/DomainsDetail.vue:144
 msgid "Activity"
 msgstr "Atividade"
 
-#: front/src/components/Sidebar.vue:78 src/views/content/Base.vue:19
+#: front/src/components/mixins/Translations.vue:7
+#: front/src/components/mixins/Translations.vue:8
+msgid "Activity visibility"
+msgstr "Visibilidade da atividade"
+
+#: front/src/views/admin/moderation/DomainsList.vue:18
+msgid "Add"
+msgstr "Adicionar"
+
+#: front/src/views/admin/moderation/DomainsList.vue:13
+msgid "Add a domain"
+msgstr "Adicionar um domínio"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:4
+msgid "Add a new moderation rule"
+msgstr "Criar uma nova regra de moderação"
+
+#: front/src/views/content/Home.vue:35
+msgid "Add and manage content"
+msgstr "Adicionar e gerenciar conteúdo"
+
+#: front/src/components/Sidebar.vue:75 src/views/content/Base.vue:18
 msgid "Add content"
 msgstr "Adicionar conteúdo"
 
@@ -170,20 +242,28 @@ msgstr "Adicionar um filtro"
 msgid "Add filters to customize your radio"
 msgstr "Adicione filtros para personalizar seu rádio"
 
+#: front/src/components/audio/PlayButton.vue:64
+msgid "Add to current queue"
+msgstr "Adicionar à fila atual"
+
 #: front/src/components/favorites/TrackFavoriteIcon.vue:4
-#: front/src/components/favorites/TrackFavoriteIcon.vue:21
+#: front/src/components/favorites/TrackFavoriteIcon.vue:28
 msgid "Add to favorites"
 msgstr "Adicionar aos favoritos"
 
 #: front/src/components/playlists/TrackPlaylistIcon.vue:6
-#: front/src/components/playlists/TrackPlaylistIcon.vue:32
-msgid "Add to playlist..."
-msgstr "Adicionar à Playlist..."
+#: front/src/components/playlists/TrackPlaylistIcon.vue:34
+msgid "Add to playlist…"
+msgstr "Adicionar à Playlist…"
 
 #: front/src/components/audio/PlayButton.vue:14
 msgid "Add to queue"
 msgstr "Adicionar à fila"
 
+#: front/src/components/playlists/PlaylistModal.vue:116
+msgid "Add to this playlist"
+msgstr "Adicionar a esta playlist"
+
 #: front/src/components/playlists/PlaylistModal.vue:54
 msgid "Add track"
 msgstr "Adicionar música"
@@ -192,32 +272,38 @@ msgstr "Adicionar música"
 msgid "Admin"
 msgstr "Admin"
 
-#: front/src/components/Sidebar.vue:82
+#: front/src/components/Sidebar.vue:79
 msgid "Administration"
 msgstr "Administração"
 
-#: front/src/components/audio/track/Table.vue:8
+#: front/src/components/audio/SearchBar.vue:26
+#: src/components/audio/track/Table.vue:8
+#: front/src/components/library/Album.vue:159
 #: front/src/components/manage/library/FilesTable.vue:39
-#: front/src/views/content/libraries/FilesTable.vue:53
-#: front/src/components/library/Album.vue:101
-#: src/components/audio/SearchBar.vue:26
 #: front/src/components/metadata/Search.vue:134
+#: front/src/views/content/libraries/FilesTable.vue:56
 msgid "Album"
 msgstr "Álbum"
 
 #: front/src/components/library/Album.vue:12
 msgid "Album containing %{ count } track, by %{ artist }"
 msgid_plural "Album containing %{ count } tracks, by %{ artist }"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Álbum contendo %{ count } pista, por %{ artist }"
+msgstr[1] "Álbum contendo %{ count } pistas, por %{ artist }"
+
+#: front/src/components/mixins/Translations.vue:24
+#: front/src/components/mixins/Translations.vue:25
+msgid "Album name"
+msgstr "Nome do álbum"
 
-#: front/src/components/library/Track.vue:20
+#: front/src/components/library/Track.vue:27
 msgid "Album page"
 msgstr "Página do álbum"
 
 #: front/src/components/audio/Search.vue:19
 #: src/components/instance/Stats.vue:48
-#: front/src/components/requests/Form.vue:9
+#: front/src/views/admin/moderation/AccountsDetail.vue:321
+#: front/src/views/admin/moderation/DomainsDetail.vue:257
 msgid "Albums"
 msgstr "Álbuns"
 
@@ -238,33 +324,43 @@ msgstr "Ocorreu um erro ao salvar suas mudanças"
 msgid "An unknown error happend, this can mean the server is down or cannot be reached"
 msgstr "Um erro desconhecido aconteceu, isso pode significar que o servidor está inoperante ou não pode ser alcançado"
 
+#: front/src/components/notifications/NotificationRow.vue:62
+msgid "Approve"
+msgstr "Aprovar"
+
 #: front/src/components/auth/Logout.vue:5
 msgid "Are you sure you want to log out?"
 msgstr "Tem certeza que deseja sair?"
 
-#: front/src/components/audio/track/Table.vue:7
+#: front/src/components/audio/SearchBar.vue:25
+#: src/components/audio/track/Table.vue:7
+#: front/src/components/library/Artist.vue:137
 #: front/src/components/manage/library/FilesTable.vue:38
-#: front/src/views/content/libraries/FilesTable.vue:52
-#: front/src/components/library/Artist.vue:129
-#: src/components/audio/SearchBar.vue:25
 #: front/src/components/metadata/Search.vue:130
+#: front/src/views/content/libraries/FilesTable.vue:55
 msgid "Artist"
 msgstr "Artista"
 
-#: front/src/components/requests/Form.vue:5
-#: src/components/mixins/Translations.vue:24
+#: front/src/components/mixins/Translations.vue:25
+#: front/src/components/mixins/Translations.vue:26
 msgid "Artist name"
 msgstr "Nome do artista"
 
 #: front/src/components/library/Album.vue:22
-#: src/components/library/Track.vue:23
+#: src/components/library/Track.vue:33
 msgid "Artist page"
 msgstr "Página do artista"
 
+#: front/src/components/audio/Search.vue:65
+msgid "Artist, album, track…"
+msgstr "Artista, álbum, música…"
+
 #: front/src/components/audio/Search.vue:10
 #: src/components/instance/Stats.vue:42
-#: front/src/components/library/Library.vue:7
-#: src/components/library/Artists.vue:120
+#: front/src/components/library/Artists.vue:119
+#: src/components/library/Library.vue:7
+#: front/src/views/admin/moderation/AccountsDetail.vue:313
+#: front/src/views/admin/moderation/DomainsDetail.vue:249
 msgid "Artists"
 msgstr "Artistas"
 
@@ -272,6 +368,8 @@ msgstr "Artistas"
 #: src/components/library/Artists.vue:25
 #: front/src/components/library/Radios.vue:44
 #: front/src/components/manage/library/FilesTable.vue:19
+#: front/src/components/manage/moderation/AccountsTable.vue:21
+#: front/src/components/manage/moderation/DomainsTable.vue:19
 #: front/src/components/manage/users/UsersTable.vue:19
 #: front/src/views/content/libraries/FilesTable.vue:31
 #: front/src/views/playlists/List.vue:27
@@ -282,6 +380,15 @@ msgstr "Ascendente"
 msgid "Ask for a password reset"
 msgstr "Peça uma redefinição de senha"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:245
+#: front/src/views/admin/moderation/DomainsDetail.vue:202
+msgid "Audio content"
+msgstr "Conteúdo áudio"
+
+#: front/src/components/ShortcutsModal.vue:55
+msgid "Audio player shortcuts"
+msgstr "Atalhos do leitor de áudio"
+
 #: front/src/components/playlists/PlaylistModal.vue:26
 msgid "Available playlists"
 msgstr "Playlists disponíveis"
@@ -290,16 +397,29 @@ msgstr "Playlists disponíveis"
 msgid "Avatar"
 msgstr "Avatar"
 
-#: front/src/views/auth/EmailConfirm.vue:17 src/views/auth/PasswordReset.vue:24
+#: front/src/views/auth/PasswordReset.vue:24
 #: front/src/views/auth/PasswordResetConfirm.vue:18
 msgid "Back to login"
 msgstr "Volte ao login"
 
-#: front/src/components/library/Track.vue:80
+#: front/src/components/library/Track.vue:129
 #: front/src/components/manage/library/FilesTable.vue:42
-#: front/src/components/mixins/Translations.vue:28
+#: front/src/components/mixins/Translations.vue:29
+#: front/src/components/mixins/Translations.vue:30
 msgid "Bitrate"
+msgstr "Bitrate"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:19
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:34
+msgid "Block everything"
+msgstr "Bloquear tudo"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:112
+msgid "Block everything from this account or domain. This will prevent any interaction with the entity, and purge related content (uploads, libraries, follows, etc.)"
 msgstr ""
+"Bloquear tudo a partir desta conta ou domínio. Isso evitará qualquer "
+"interação com a entidade e eliminará conteúdo relacionado (uploads, "
+"bibliotecas, segue, etc.)"
 
 #: front/src/components/Sidebar.vue:18 src/components/library/Library.vue:4
 msgid "Browse"
@@ -330,12 +450,20 @@ msgid "By %{ artist }"
 msgstr "Por %{ artist }"
 
 #: front/src/views/content/remote/Card.vue:103
-msgid "By unfollowing this library, you will loose access to its content."
+msgid "By unfollowing this library, you loose access to its content."
 msgstr ""
 "Ao deixar de seguir esta biblioteca, você perderá o acesso ao seu conteúdo."
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:261
+#: front/src/views/admin/moderation/DomainsDetail.vue:217
+msgid "Cached size"
+msgstr "Tamanho em cache"
+
 #: front/src/components/common/DangerousButton.vue:17
+#: front/src/components/library/Album.vue:58
+#: src/components/library/Track.vue:76
 #: front/src/components/library/radios/Filter.vue:53
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:54
 #: front/src/components/playlists/PlaylistModal.vue:63
 msgid "Cancel"
 msgstr "Cancelar"
@@ -348,7 +476,13 @@ msgstr "Candidatos"
 msgid "Cannot change your password"
 msgstr "Não é possível alterar sua senha"
 
-#: front/src/App.vue:65
+#: front/src/components/library/FileUpload.vue:222
+#: front/src/components/library/FileUpload.vue:223
+msgid "Cannot upload this file, ensure it is not too big"
+msgstr ""
+"Não é possível carregar este arquivo, assegure-se de que não é muito grande"
+
+#: front/src/components/Footer.vue:21
 msgid "Change language"
 msgstr "Mudar idioma"
 
@@ -381,7 +515,11 @@ msgstr "Mudar sua senha também muda sua senha da API Subsonic se você tiver so
 msgid "Changing your password will have the following consequences"
 msgstr "Alterar sua senha terá as seguintes consequências"
 
-#: front/src/App.vue:6
+#: front/src/components/Footer.vue:40
+msgid "Chat room"
+msgstr "Sala de bate-papo"
+
+#: front/src/App.vue:13
 msgid "Choose your instance"
 msgstr "Escolha sua instância"
 
@@ -398,15 +536,21 @@ msgstr "Claro"
 msgid "Clear playlist"
 msgstr "Limpar playlist"
 
+#: front/src/components/audio/Player.vue:363
+msgid "Clear your queue"
+msgstr "Limpar sua fila"
+
 #: front/src/components/Home.vue:44
 msgid "Click once, listen for hours using built-in radios"
 msgstr "Clique uma vez, ouça por horas usando rádios"
 
-#: front/src/components/library/FileUpload.vue:76
+#: front/src/components/library/FileUpload.vue:75
 msgid "Click to select files to upload or drag and drop files or directories"
-msgstr ""
-"Clique para selecionar arquivos para carregar ou arrastar e soltar arquivos "
-"ou diretórios"
+msgstr "Clique para selecionar arquivos para carregar ou arrastar e soltar arquivos ou diretórios"
+
+#: front/src/components/ShortcutsModal.vue:20
+msgid "Close"
+msgstr "Fechar"
 
 #: front/src/components/manage/users/InvitationForm.vue:26
 #: front/src/components/manage/users/InvitationsTable.vue:42
@@ -415,14 +559,9 @@ msgstr "Código"
 
 #: front/src/components/audio/album/Card.vue:43
 #: front/src/components/audio/artist/Card.vue:33
-#: front/src/components/discussion/Comment.vue:20
 msgid "Collapse"
 msgstr "Colapso"
 
-#: front/src/components/requests/Form.vue:14
-msgid "Comment"
-msgstr "Comentário"
-
 #: front/src/components/library/radios/Builder.vue:62
 msgid "Config"
 msgstr "Configuração"
@@ -433,21 +572,61 @@ msgstr "Confirme"
 
 #: front/src/views/auth/EmailConfirm.vue:4 src/views/auth/EmailConfirm.vue:20
 #: front/src/views/auth/EmailConfirm.vue:51
-msgid "Confirm your email"
+msgid "Confirm your e-mail address"
 msgstr "Confirme seu email"
 
 #: front/src/views/auth/EmailConfirm.vue:13
 msgid "Confirmation code"
 msgstr "Código de confirmação"
 
+#: front/src/components/common/ActionTable.vue:7
+msgid "Content have been updated, click refresh to see up-to-date content"
+msgstr ""
+"O conteúdo foi atualizado, clique em atualizar para ver o conteúdo atualizado"
+
+#: front/src/components/Footer.vue:48
+msgid "Contribute"
+msgstr "Contribuir"
+
+#: front/src/components/audio/EmbedWizard.vue:19
 #: front/src/components/common/CopyInput.vue:8
 msgid "Copy"
 msgstr "Cópia"
 
+#: front/src/components/playlists/Editor.vue:163
+msgid "Copy tracks from current queue to playlist"
+msgstr "Copiar músicas da fila atual para a playlist"
+
+#: front/src/components/audio/EmbedWizard.vue:21
+msgid "Copy/paste this code in your website HTML"
+msgstr "Copie/colar este código no seu website HTML"
+
+#: front/src/components/library/Track.vue:91
+msgid "Copyright"
+msgstr "Direitos Autorais"
+
+#: front/src/views/auth/EmailConfirm.vue:7
+msgid "Could not confirm your e-mail address"
+msgstr "Não foi possível confirmar o seu e-mail"
+
+#: front/src/views/content/remote/ScanForm.vue:3
+msgid "Could not fetch remote library"
+msgstr "Não foi possível buscar a biblioteca remota"
+
+#: front/src/views/content/libraries/FilesTable.vue:213
+msgid "Could not process this track, ensure it is tagged correctly"
+msgstr ""
+"Não foi possível processar esta pista, certifique-se de que está "
+"correctamente etiquetada"
+
 #: front/src/components/Home.vue:85
 msgid "Covers, lyrics, our goal is to have them all ;)"
 msgstr "Capas, letras, nosso objetivo é tê-los todos ;)"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:58
+msgid "Create"
+msgstr "Criar"
+
 #: front/src/components/auth/Signup.vue:4
 msgid "Create a funkwhale account"
 msgstr "Crie uma conta funkwhale"
@@ -464,10 +643,6 @@ msgstr "Crie uma nova playlist"
 msgid "Create an account"
 msgstr "Crie a sua conta"
 
-#: front/src/components/requests/Card.vue:25
-msgid "Create import"
-msgstr "Criar importação"
-
 #: front/src/views/content/libraries/Form.vue:26
 msgid "Create library"
 msgstr "Criar biblioteca"
@@ -485,6 +660,7 @@ msgid "Create your own radio"
 msgstr "Crie seu próprio rádio"
 
 #: front/src/components/manage/users/InvitationsTable.vue:40
+#: front/src/components/mixins/Translations.vue:16
 #: front/src/components/mixins/Translations.vue:17
 msgid "Creation date"
 msgstr "Data de criação"
@@ -509,11 +685,16 @@ msgstr "Uso atual"
 msgid "Date"
 msgstr "Data"
 
-#: front/src/views/content/libraries/Form.vue:29
-#: src/views/playlists/Detail.vue:33
+#: front/src/components/ShortcutsModal.vue:75
+msgid "Decrease volume"
+msgstr "Diminuir o volume"
+
 #: front/src/components/manage/library/FilesTable.vue:190
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:61
 #: front/src/components/manage/users/InvitationsTable.vue:167
-#: front/src/views/content/libraries/FilesTable.vue:258
+#: front/src/views/content/libraries/FilesTable.vue:233
+#: front/src/views/content/libraries/Form.vue:29
+#: src/views/playlists/Detail.vue:33
 msgid "Delete"
 msgstr "Suprimir"
 
@@ -521,6 +702,10 @@ msgstr "Suprimir"
 msgid "Delete library"
 msgstr "Excluir biblioteca"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:69
+msgid "Delete moderation rule"
+msgstr "Eliminar regra de moderação"
+
 #: front/src/views/playlists/Detail.vue:38
 msgid "Delete playlist"
 msgstr "Suprimir Playlist"
@@ -533,10 +718,16 @@ msgstr "Suprimir radio"
 msgid "Delete this library?"
 msgstr "Excluir esta biblioteca?"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:63
+msgid "Delete this moderation rule?"
+msgstr "Eliminar esta regra de moderação?"
+
 #: front/src/components/favorites/List.vue:34
 #: src/components/library/Artists.vue:26
 #: front/src/components/library/Radios.vue:47
 #: front/src/components/manage/library/FilesTable.vue:20
+#: front/src/components/manage/moderation/AccountsTable.vue:22
+#: front/src/components/manage/moderation/DomainsTable.vue:20
 #: front/src/components/manage/users/UsersTable.vue:20
 #: front/src/views/content/libraries/FilesTable.vue:32
 #: front/src/views/playlists/List.vue:28
@@ -556,6 +747,15 @@ msgstr "Detalhe"
 msgid "Details"
 msgstr "Detalhes"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:455
+msgid "Determine how much content the user can upload. Leave empty to use the default value of the instance."
+msgstr "Determine quanto conteúdo o usuário pode enviar. Deixe em branco para usar o valor padrão da instância."
+
+#: front/src/components/mixins/Translations.vue:8
+#: front/src/components/mixins/Translations.vue:9
+msgid "Determine the visibility level of your activity"
+msgstr "Determinar o nível de visibilidade de sua atividade"
+
 #: front/src/components/auth/Settings.vue:104
 #: front/src/components/auth/SubsonicTokenForm.vue:52
 msgid "Disable access"
@@ -569,14 +769,31 @@ msgstr "Desativar o acesso a Subsonic"
 msgid "Disable Subsonic API access?"
 msgstr "Desativar o acesso o API Subsonic?"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:18
+#: front/src/views/admin/moderation/AccountsDetail.vue:128
+#: front/src/views/admin/moderation/AccountsDetail.vue:132
+msgid "Disabled"
+msgstr "Desativado"
+
 #: front/src/components/auth/SubsonicTokenForm.vue:14
 msgid "Discover how to use Funkwhale from other apps"
 msgstr "Descubra como usar o Funkwhale em outros aplicativos"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:103
+msgid "Display name"
+msgstr "Mostrar nome"
+
 #: front/src/components/library/radios/Builder.vue:30
 msgid "Display publicly"
 msgstr "Exibir publicamente"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:122
+msgid "Do not download any media file (audio, album cover, account avatar…) from this account or domain. This will purge existing content as well."
+msgstr ""
+"Não faça o download de nenhum arquivo de mídia (áudio, capa do álbum, avatar "
+"da conta ...) dessa conta ou domínio. Isso também limpará o conteúdo "
+"existente."
+
 #: front/src/components/playlists/Editor.vue:42
 msgid "Do you want to clear the playlist \"%{ playlist }\"?"
 msgstr "Você quer limpar a playlist \"%{ playlist }\"?"
@@ -593,21 +810,34 @@ msgstr "Você deseja excluir a playlist \"%{ playlist }\"?"
 msgid "Do you want to delete the radio \"%{ radio }\"?"
 msgstr "Você deseja excluir a radio \"%{ radio }\"?"
 
-#: front/src/components/common/ActionTable.vue:29
+#: front/src/components/common/ActionTable.vue:36
 msgid "Do you want to launch %{ action } on %{ count } element?"
 msgid_plural "Do you want to launch %{ action } on %{ count } elements?"
 msgstr[0] "Deseja lançar %{ action } no %{ count } elemento?"
 msgstr[1] "Deseja lançar %{ action } nos %{ count } elementos?"
 
-#: front/src/components/Sidebar.vue:104
+#: front/src/components/Sidebar.vue:107
 msgid "Do you want to restore your previous queue?"
 msgstr "Você quer restaurar sua fila anterior?"
 
-#: front/src/App.vue:37
+#: front/src/components/Footer.vue:31
 msgid "Documentation"
 msgstr "Documentação"
 
-#: front/src/components/library/Track.vue:48
+#: front/src/components/manage/moderation/AccountsTable.vue:40
+#: front/src/components/mixins/Translations.vue:34
+#: front/src/views/admin/moderation/AccountsDetail.vue:93
+#: front/src/components/mixins/Translations.vue:35
+msgid "Domain"
+msgstr "Dominio"
+
+#: front/src/views/admin/moderation/Base.vue:5
+#: front/src/views/admin/moderation/DomainsList.vue:3
+#: front/src/views/admin/moderation/DomainsList.vue:48
+msgid "Domains"
+msgstr "Domínios"
+
+#: front/src/components/library/Track.vue:55
 msgid "Download"
 msgstr "Descarregar"
 
@@ -616,13 +846,18 @@ msgid "Drag and drop rows to reorder tracks in the playlist"
 msgstr "Arraste e solte as linhas para reordenar as músicas da playlist"
 
 #: front/src/components/audio/track/Table.vue:9
-#: src/components/library/Track.vue:58
+#: src/components/library/Track.vue:111
 #: front/src/components/manage/library/FilesTable.vue:43
-#: front/src/views/content/libraries/FilesTable.vue:56
-#: front/src/components/mixins/Translations.vue:29
+#: front/src/components/mixins/Translations.vue:30
+#: front/src/views/content/libraries/FilesTable.vue:59
+#: front/src/components/mixins/Translations.vue:31
 msgid "Duration"
 msgstr "Duração"
 
+#: front/src/views/auth/EmailConfirm.vue:23
+msgid "E-mail address confirmed"
+msgstr "E-mail confirmado"
+
 #: front/src/components/Home.vue:93
 msgid "Easy to use"
 msgstr "Fácil de usar"
@@ -636,36 +871,102 @@ msgid "Edit instance info"
 msgstr "Editar informações da instância"
 
 #: front/src/components/radios/Card.vue:22 src/views/playlists/Detail.vue:30
-msgid "Edit..."
-msgstr "Editar..."
+msgid "Edit…"
+msgstr "Modificar…"
 
 #: front/src/components/auth/Signup.vue:29
 #: front/src/components/manage/users/UsersTable.vue:38
 msgid "Email"
 msgstr "Email"
 
-#: front/src/views/admin/users/UsersDetail.vue:29
+#: front/src/views/admin/moderation/AccountsDetail.vue:111
 msgid "Email address"
 msgstr "Endereço de e-mail"
 
-#: front/src/views/auth/EmailConfirm.vue:23
-msgid "Email confirmed"
-msgstr "E-mail confirmado"
+#: front/src/components/library/Album.vue:44
+#: src/components/library/Track.vue:62
+msgid "Embed"
+msgstr "Incorporar"
+
+#: front/src/components/audio/EmbedWizard.vue:20
+msgid "Embed code"
+msgstr "Código de incorporação"
+
+#: front/src/components/library/Album.vue:48
+msgid "Embed this album on your website"
+msgstr "Incorpore este álbum no seu website"
+
+#: front/src/components/library/Track.vue:66
+msgid "Embed this track on your website"
+msgstr "Incorpore esta pista no seu website"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:230
+#: front/src/views/admin/moderation/DomainsDetail.vue:187
+msgid "Emitted library follows"
+msgstr "A biblioteca emitida segue"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:214
+#: front/src/views/admin/moderation/DomainsDetail.vue:171
+msgid "Emitted messages"
+msgstr "Mensagens emitidas"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:8
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:17
+#: front/src/views/admin/moderation/AccountsDetail.vue:127
+#: front/src/views/admin/moderation/AccountsDetail.vue:131
+msgid "Enabled"
+msgstr "Ativado"
 
 #: front/src/views/playlists/Detail.vue:29
 msgid "End edition"
-msgstr ""
+msgstr "Finalizar edição"
+
+#: front/src/views/content/remote/ScanForm.vue:50
+msgid "Enter a library URL"
+msgstr "Insira um URL de biblioteca"
+
+#: front/src/components/library/Radios.vue:140
+msgid "Enter a radio name…"
+msgstr "Indicar um nome de rádio …"
+
+#: front/src/components/library/Artists.vue:118
+msgid "Enter artist name…"
+msgstr "Indicar um nome de artista …"
+
+#: front/src/views/playlists/List.vue:107
+msgid "Enter playlist name…"
+msgstr "Indicar um nome de playlist…"
+
+#: front/src/components/auth/Signup.vue:100
+msgid "Enter your email"
+msgstr "Insira seu email"
+
+#: front/src/components/auth/Signup.vue:96 src/components/auth/Signup.vue:97
+msgid "Enter your invitation code (case insensitive)"
+msgstr "Indicar seu código de convite (não diferencia maiúsculas de minúsculas)"
+
+#: front/src/components/metadata/Search.vue:114
+msgid "Enter your search query…"
+msgstr "Insira sua consulta de pesquisa …"
+
+#: front/src/components/auth/Signup.vue:99
+msgid "Enter your username"
+msgstr "Indicar seu nome de usuário"
+
+#: front/src/components/auth/Login.vue:77
+msgid "Enter your username or email"
+msgstr "Indicar seu nome de usuário ou email"
 
 #: front/src/components/auth/SubsonicTokenForm.vue:20
 #: front/src/views/content/libraries/Form.vue:4
 msgid "Error"
 msgstr "Erro"
 
-#: front/src/views/content/remote/Card.vue:39
-msgid "Error during scan"
-msgstr "Erro durante a análise"
+#: front/src/views/admin/Settings.vue:87
+msgid "Error reporting"
+msgstr "Relatório de erros"
 
-#: front/src/components/common/ActionTable.vue:79
+#: front/src/components/common/ActionTable.vue:92
 msgid "Error while applying action"
 msgstr "Erro ao aplicar a ação"
 
@@ -677,24 +978,27 @@ msgstr "Erro ao solicitar uma redefinição de senha"
 msgid "Error while changing your password"
 msgstr "Erro ao alterar sua senha"
 
-#: front/src/views/auth/EmailConfirm.vue:7
-msgid "Error while confirming your email"
-msgstr "Erro ao confirmar seu email"
+#: front/src/views/admin/moderation/DomainsList.vue:6
+msgid "Error while creating domain"
+msgstr "Erro na criação do domínio"
 
 #: front/src/components/manage/users/InvitationForm.vue:4
 msgid "Error while creating invitation"
 msgstr "Erro ao criar convite"
 
-#: front/src/views/content/remote/ScanForm.vue:3
-msgid "Error while fetching remote library"
-msgstr "Erro ao recuperar a biblioteca remota"
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:7
+msgid "Error while creating rule"
+msgstr "Erro na criação da regra"
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:126
+msgid "Error while fetching node info"
+msgstr "Erro ao buscar informações do nó"
 
 #: front/src/components/admin/SettingsGroup.vue:5
 msgid "Error while saving settings"
 msgstr "Erro ao salvar configurações"
 
-#: front/src/views/content/libraries/FilesTable.vue:16
-#: front/src/views/content/libraries/FilesTable.vue:237
+#: front/src/views/content/libraries/FilesTable.vue:212
 msgid "Errored"
 msgstr "Errado"
 
@@ -702,20 +1006,28 @@ msgstr "Errado"
 msgid "Errored files"
 msgstr "Arquivos errados"
 
-#: front/src/views/content/remote/Card.vue:58
-msgid "Errored tracks:"
-msgstr "Músicas com erros:"
+#: front/src/components/playlists/Form.vue:89
+msgid "Everyone"
+msgstr "Todo o mundo"
+
+#: front/src/components/mixins/Translations.vue:11
+#: front/src/components/playlists/Form.vue:85
+#: src/views/content/libraries/Form.vue:73
+#: front/src/components/mixins/Translations.vue:12
+msgid "Everyone on this instance"
+msgstr "Todos nessa instância"
+
+#: front/src/views/content/libraries/Form.vue:74
+msgid "Everyone, across all instances"
+msgstr "Todos, em todas as instâncias"
 
 #: front/src/components/library/radios/Builder.vue:61
 msgid "Exclude"
 msgstr "Excluir"
 
-#: front/src/components/discussion/Comment.vue:14
-msgid "Expand"
-msgstr "Expandir"
-
 #: front/src/components/manage/users/InvitationsTable.vue:41
-#: front/src/components/mixins/Translations.vue:21
+#: front/src/components/mixins/Translations.vue:22
+#: front/src/components/mixins/Translations.vue:23
 msgid "Expiration date"
 msgstr "Data de vencimento"
 
@@ -727,12 +1039,32 @@ msgstr "Expirado"
 msgid "Expired/used"
 msgstr "Expirado / usados"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:110
+msgid "Explain why you're applying this policy. Depending on your instance configuration, this will help you remember why you acted on this account or domain, and may be displayed publicly to help users understand what moderation rules are in place."
+msgstr ""
+"Explique porque está a aplicar esta política. Dependendo da configuração da "
+"sua instância, isso o ajudará a lembrar por que você agiu nessa conta ou "
+"domínio e poderá ser exibido publicamente para ajudar os usuários a entender "
+"quais regras de moderação estão em vigor."
+
+#: front/src/views/content/libraries/FilesTable.vue:16
+msgid "Failed"
+msgstr "Falhou"
+
+#: front/src/views/content/remote/Card.vue:58
+msgid "Failed tracks:"
+msgstr "Pistas falhadas:"
+
 #: front/src/components/Sidebar.vue:66
 msgid "Favorites"
 msgstr "Favoritas"
 
-#: front/src/components/library/FileUpload.vue:83
-msgid "File name"
+#: front/src/views/admin/Settings.vue:84
+msgid "Federation"
+msgstr "Federação"
+
+#: front/src/components/library/FileUpload.vue:84
+msgid "Filename"
 msgstr "Nome do ficheiro"
 
 #: front/src/views/admin/library/Base.vue:5
@@ -745,24 +1077,37 @@ msgid "Filter name"
 msgstr "Nome do filtro"
 
 #: front/src/views/content/libraries/FilesTable.vue:17
-#: front/src/views/content/libraries/FilesTable.vue:241
+#: front/src/views/content/libraries/FilesTable.vue:216
 msgid "Finished"
 msgstr "Acabado"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:42
+#: front/src/components/manage/moderation/DomainsTable.vue:41
+#: front/src/views/admin/moderation/AccountsDetail.vue:159
+#: front/src/views/admin/moderation/DomainsDetail.vue:78
+msgid "First seen"
+msgstr "Visto pela primeira vez"
+
+#: front/src/components/mixins/Translations.vue:17
+#: front/src/components/mixins/Translations.vue:18
+msgid "First seen date"
+msgstr "Data da primeira vista"
+
 #: front/src/views/content/remote/Card.vue:83
 msgid "Follow"
 msgstr "Segue"
 
-#: front/src/views/content/remote/Card.vue:88
-#, fuzzy
-msgid "Follow pending approval"
-msgstr "Solicitação de seguir pendente"
-
 #: front/src/views/content/Home.vue:16
 msgid "Follow remote libraries"
 msgstr "Siga as bibliotecas remotas"
 
+#: front/src/views/content/remote/Card.vue:88
+msgid "Follow request pending approval"
+msgstr "Solicitação de seguir pendente"
+
+#: front/src/components/mixins/Translations.vue:38
 #: front/src/views/content/libraries/Detail.vue:7
+#: front/src/components/mixins/Translations.vue:39
 msgid "Followers"
 msgstr "Seguidores"
 
@@ -770,19 +1115,10 @@ msgstr "Seguidores"
 msgid "Following"
 msgstr "Seguir"
 
-#: front/src/components/activity/Like.vue:14
-#: src/components/activity/Listen.vue:14
-msgid "from %{ album } by %{ artist }"
-msgstr "de %{ album } por %{ artist }"
-
-#: front/src/components/library/Track.vue:13
+#: front/src/components/library/Track.vue:17
 msgid "From album %{ album } by %{ artist }"
 msgstr "Do álbum %{ album } por %{ artist }"
 
-#: front/src/App.vue:55
-msgid "Funkwhale is a free and open-source project run by volunteers. You can help us improve the platform by reporting bugs, suggesting features and share the project with your friends!"
-msgstr "O Funkwhale é um projeto gratuito e de código aberto executado por voluntários. Você pode nos ajudar a melhorar a plataforma reportando bugs, sugerindo recursos e compartilhando o projeto com seus amigos!"
-
 #: front/src/components/auth/SubsonicTokenForm.vue:7
 msgid "Funkwhale is compatible with other music players that support the Subsonic API."
 msgstr "O Funkwhale é compatível com outros players de música que suportam a API Subsonic."
@@ -803,6 +1139,10 @@ msgstr "O Funkwhale é gratuito e permite controlar sua música."
 msgid "Funkwhale takes care of handling your music"
 msgstr "Funkwhale cuida da sua música"
 
+#: front/src/components/ShortcutsModal.vue:38
+msgid "General shortcuts"
+msgstr "Atalhos gerais"
+
 #: front/src/components/manage/users/InvitationForm.vue:16
 msgid "Get a new invitation"
 msgstr "Receba um novo convite"
@@ -813,16 +1153,18 @@ msgstr "Me leve para a biblioteca"
 
 #: front/src/components/Home.vue:76
 msgid "Get quality metadata about your music thanks to <a href=\"%{ url }\" target=\"_blank\">MusicBrainz</a>"
-msgstr ""
-"Obtenha metadados de qualidade sobre sua música graças ao <a href=\"%{ url }"
-"\" target=\"_blank\">MusicBrainz</a>"
+msgstr "Obtenha metadados de qualidade sobre sua música graças ao <a href=\"%{ url }\" target=\"_blank\">MusicBrainz</a>"
 
 #: front/src/views/content/Home.vue:12 src/views/content/Home.vue:19
 msgid "Get started"
 msgstr "Começar"
 
-#: front/src/components/common/ActionTable.vue:21
-#: front/src/components/common/ActionTable.vue:27
+#: front/src/components/Footer.vue:37
+msgid "Getting help"
+msgstr "Obter ajuda"
+
+#: front/src/components/common/ActionTable.vue:34
+#: front/src/components/common/ActionTable.vue:54
 msgid "Go"
 msgstr "Vá"
 
@@ -830,9 +1172,13 @@ msgstr "Vá"
 msgid "Go to home page"
 msgstr "Vá para a página inicial"
 
-#: front/src/App.vue:73
-msgid "Help us translate Funkwhale"
-msgstr "Ajude-nos a traduzir o Funkwhale"
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:114
+msgid "Hide account or domain content, except from followers."
+msgstr "Ocultar conta ou conteúdo de domínio, exceto de seguidores."
+
+#: front/src/components/library/Home.vue:65
+msgid "Home"
+msgstr "Casa"
 
 #: front/src/components/instance/Stats.vue:36
 msgid "Hours of music"
@@ -859,10 +1205,19 @@ msgid "Import reference"
 msgstr "Referência de importação"
 
 #: front/src/views/content/libraries/FilesTable.vue:11
-#: front/src/views/content/libraries/FilesTable.vue:55
+#: front/src/views/content/libraries/FilesTable.vue:58
 msgid "Import status"
 msgstr "Status de Importação"
 
+#: front/src/views/content/libraries/FilesTable.vue:217
+msgid "Imported"
+msgstr "Importado"
+
+#: front/src/components/mixins/Translations.vue:21
+#: front/src/components/mixins/Translations.vue:22
+msgid "Imported date"
+msgstr "Data de importação"
+
 #: front/src/components/favorites/TrackFavoriteIcon.vue:3
 msgid "In favorites"
 msgstr "Nos favoritos"
@@ -871,16 +1226,43 @@ msgstr "Nos favoritos"
 msgid "Inactive"
 msgstr "Inativo"
 
+#: front/src/components/ShortcutsModal.vue:71
+msgid "Increase volume"
+msgstr "Aumentar o volume"
+
+#: front/src/views/auth/PasswordReset.vue:53
+msgid "Input the email address binded to your account"
+msgstr "Insira o endereço de e-mail associado à sua conta"
+
 #: front/src/components/playlists/Editor.vue:31
 msgid "Insert from queue (%{ count } track)"
 msgid_plural "Insert from queue (%{ count } tracks)"
 msgstr[0] "Inserir da fila (%{ count } música)"
 msgstr[1] "Inserir da fila (%{ count } músicas)"
 
+#: front/src/views/admin/moderation/DomainsDetail.vue:71
+msgid "Instance data"
+msgstr "Dados da instância"
+
+#: front/src/views/admin/Settings.vue:80
+msgid "Instance information"
+msgstr "Informação da instância"
+
 #: front/src/components/library/Radios.vue:9
 msgid "Instance radios"
 msgstr "Rádios da instância"
 
+#: front/src/views/admin/Settings.vue:75
+msgid "Instance settings"
+msgstr "Configurações da instância"
+
+#: front/src/components/library/FileUpload.vue:229
+#: front/src/components/library/FileUpload.vue:230
+msgid "Invalid file type, ensure you are uploading an audio file. Supported file extensions are %{ extensions }"
+msgstr ""
+"Tipo de ficheiro inválido, certifique-se de que está a carregar um ficheiro "
+"de áudio. As extensões de arquivo suportadas são %{ extensions }"
+
 #: front/src/components/auth/Signup.vue:42
 #: front/src/components/manage/users/InvitationForm.vue:11
 msgid "Invitation code"
@@ -896,114 +1278,153 @@ msgstr "Código de convite (opcional)"
 msgid "Invitations"
 msgstr "Convites"
 
-#: front/src/App.vue:42
+#: front/src/components/Footer.vue:41
 msgid "Issue tracker"
 msgstr "Rastreador de problemas"
 
-#: front/src/views/content/libraries/Home.vue:9
-msgid "It looks like you don't have any library yet, it's time to create one!"
-msgstr "Parece que você ainda não tem biblioteca, é hora de criar uma!"
-
 #: front/src/components/Home.vue:50
 msgid "Keep a track of your favorite songs"
 msgstr "Guardar suas músicas favoritas"
 
+#: front/src/components/Footer.vue:33 src/components/ShortcutsModal.vue:3
+msgid "Keyboard shortcuts"
+msgstr "Atalhos do teclado"
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:161
+msgid "Known accounts"
+msgstr "Contas conhecidas"
+
 #: front/src/views/content/remote/Home.vue:14
 msgid "Known libraries"
 msgstr "Bibliotecas conhecidas"
 
 #: front/src/components/manage/users/UsersTable.vue:41
-#: front/src/views/admin/users/UsersDetail.vue:45
-#: front/src/components/mixins/Translations.vue:31
+#: front/src/components/mixins/Translations.vue:32
+#: front/src/views/admin/moderation/AccountsDetail.vue:184
+#: front/src/components/mixins/Translations.vue:33
 msgid "Last activity"
 msgstr "Ultima atividade"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:167
+#: front/src/views/admin/moderation/DomainsDetail.vue:86
+msgid "Last checked"
+msgstr "Última verificação"
+
 #: front/src/components/playlists/PlaylistModal.vue:32
 msgid "Last modification"
 msgstr "Última modificação"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:43
+msgid "Last seen"
+msgstr "Visto pela última vez"
+
+#: front/src/components/mixins/Translations.vue:18
+#: front/src/components/mixins/Translations.vue:19
+msgid "Last seen date"
+msgstr "Data da última vista"
+
 #: front/src/views/content/remote/Card.vue:56
 msgid "Last update:"
 msgstr "Última atualização:"
 
-#: front/src/components/common/ActionTable.vue:40
+#: front/src/components/common/ActionTable.vue:47
 msgid "Launch"
 msgstr "Lançamento"
 
-#: front/src/views/content/remote/Card.vue:63
-msgid "Launch scan"
-msgstr "Iniciar um scan"
-
 #: front/src/components/Home.vue:10
 msgid "Learn more about this instance"
 msgstr "Saiba mais sobre esta instância"
 
-#: front/src/components/requests/Form.vue:10
-msgid "Leave this field empty if you're requesting the whole discography."
-msgstr "Deixe essa área vazia se você estiver solicitando toda a discografia."
+#: front/src/components/manage/users/InvitationForm.vue:58
+msgid "Leave empty for a random code"
+msgstr "Deixar vazio para um código aleatório"
+
+#: front/src/components/audio/EmbedWizard.vue:7
+msgid "Leave empty for a responsive widget"
+msgstr "Deixe vazio para um widget responsivo"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:297
+#: front/src/views/admin/moderation/DomainsDetail.vue:233
 #: front/src/views/content/Base.vue:5
 msgid "Libraries"
 msgstr "Bibliotecas"
 
 #: front/src/views/content/libraries/Form.vue:2
 msgid "Libraries help you organize and share your music collections. You can upload your own music collection to Funkwhale and share it with your friends and family."
-msgstr ""
-"As bibliotecas ajudam você a organizar e compartilhar suas coleções de "
-"músicas. Você pode enviar sua própria coleção de músicas para o Funkwhale e "
-"compartilhá-la com seus amigos e familiares."
+msgstr "As bibliotecas ajudam você a organizar e compartilhar suas coleções de músicas. Você pode enviar sua própria coleção de músicas para o Funkwhale e compartilhá-la com seus amigos e familiares."
 
 #: front/src/components/instance/Stats.vue:30
-#: front/src/components/manage/users/UsersTable.vue:177
-#: front/src/views/admin/users/UsersDetail.vue:181
+#: front/src/components/manage/users/UsersTable.vue:173
+#: front/src/views/admin/moderation/AccountsDetail.vue:464
 msgid "Library"
 msgstr "Biblioteca"
 
+#: front/src/views/content/libraries/Form.vue:109
+msgid "Library created"
+msgstr "Biblioteca criada"
+
+#: front/src/views/content/libraries/Form.vue:129
+msgid "Library deleted"
+msgstr "Biblioteca suprimida"
+
 #: front/src/views/admin/library/FilesList.vue:3
 msgid "Library files"
 msgstr "Ficheiros da biblioteca"
 
-#: front/src/App.vue:31
-msgid "Links"
-msgstr "Ligações"
+#: front/src/views/content/libraries/Form.vue:106
+msgid "Library updated"
+msgstr "Biblioteca atualizada"
+
+#: front/src/components/library/Track.vue:100
+msgid "License"
+msgstr "Licença"
 
 #: front/src/views/content/libraries/Detail.vue:21
-msgid "Loading followers..."
-msgstr "Carregando seguidores..."
+msgid "Loading followers…"
+msgstr "Carregando seguidores…"
 
 #: front/src/views/content/libraries/Home.vue:3
-msgid "Loading Libraries..."
-msgstr "Carregando bibliotecas..."
+msgid "Loading Libraries…"
+msgstr "Carregando bibliotecas…"
 
 #: front/src/views/content/libraries/Detail.vue:3
 #: front/src/views/content/libraries/Upload.vue:3
-msgid "Loading library data..."
-msgstr "Carregando dados da biblioteca..."
+msgid "Loading library data…"
+msgstr "Carregando dados da biblioteca…"
 
 #: front/src/views/Notifications.vue:4
-msgid "Loading notifications..."
-msgstr "Carregando notificações..."
+msgid "Loading notifications…"
+msgstr "Carregando notificações…"
 
 #: front/src/views/content/remote/Home.vue:3
 msgid "Loading remote libraries..."
 msgstr "Carregando bibliotecas remotas..."
 
-#: front/src/views/instance/Timeline.vue:4
-msgid "Loading timeline..."
-msgstr "Carregando a linha do tempo ..."
-
 #: front/src/views/content/libraries/Quota.vue:4
-msgid "Loading usage data..."
-msgstr "Carregando dados de uso..."
+msgid "Loading usage data…"
+msgstr "Carregando dados de uso…"
 
 #: front/src/components/favorites/List.vue:5
-msgid "Loading your favorites..."
-msgstr "Carregando seus favoritos ..."
+msgid "Loading your favorites…"
+msgstr "Carregando seus favoritos …"
+
+#: front/src/components/manage/moderation/AccountsTable.vue:59
+#: front/src/views/admin/moderation/AccountsDetail.vue:18
+msgid "Local account"
+msgstr "Conta local"
+
+#: front/src/components/auth/Login.vue:78
+msgid "Log In"
+msgstr "Autenticação"
 
 #: front/src/components/auth/Login.vue:4
 msgid "Log in to your Funkwhale account"
 msgstr "Logar na sua conta Funkwhale"
 
+#: front/src/components/auth/Logout.vue:20
+msgid "Log Out"
+msgstr "Sair"
+
 #: front/src/components/Sidebar.vue:38
 msgid "Logged in as %{ username }"
 msgstr "Conectado como %{ username }"
@@ -1012,18 +1433,53 @@ msgstr "Conectado como %{ username }"
 msgid "Login"
 msgstr "Entrar"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:119
+msgid "Login status"
+msgstr "Status do login"
+
 #: front/src/components/Sidebar.vue:52
 msgid "Logout"
 msgstr "Sair"
 
-#: front/src/components/library/Track.vue:105
+#: front/src/views/content/libraries/Home.vue:9
+msgid "Looks like you don't have a library, it's time to create one."
+msgstr "Parece que você ainda não tem biblioteca, é hora de criar uma."
+
+#: front/src/components/audio/Player.vue:353
+#: src/components/audio/Player.vue:354
+msgid "Looping disabled. Click to switch to single-track looping."
+msgstr "Looping desativado. Clique para alternar para um loop de musica única."
+
+#: front/src/components/audio/Player.vue:356
+#: src/components/audio/Player.vue:357
+msgid "Looping on a single track. Click to switch to whole queue looping."
+msgstr "Looping em uma única música. Clique para alternar para todo o loop da fila."
+
+#: front/src/components/audio/Player.vue:359
+#: src/components/audio/Player.vue:360
+msgid "Looping on whole queue. Click to disable looping."
+msgstr "Looping na fila inteira. Clique para desativar o loop."
+
+#: front/src/components/library/Track.vue:150
 msgid "Lyrics"
 msgstr "Letras"
 
+#: front/src/components/Sidebar.vue:210
+msgid "Main menu"
+msgstr "Menu principal"
+
+#: front/src/views/admin/library/Base.vue:16
+msgid "Manage library"
+msgstr "Gerenciar biblioteca"
+
 #: front/src/components/playlists/PlaylistModal.vue:3
 msgid "Manage playlists"
 msgstr "Gerenciar playlists"
 
+#: front/src/views/admin/users/Base.vue:20
+msgid "Manage users"
+msgstr "Gerenciar usuários"
+
 #: front/src/views/playlists/List.vue:8
 msgid "Manage your playlists"
 msgstr "Gerenciar suas playlists"
@@ -1032,42 +1488,103 @@ msgstr "Gerenciar suas playlists"
 msgid "Mark all as read"
 msgstr "Marque tudo como lido"
 
-#: front/src/views/admin/users/UsersDetail.vue:94
+#: front/src/components/notifications/NotificationRow.vue:44
+msgid "Mark as read"
+msgstr "Marcar como lido"
+
+#: front/src/components/notifications/NotificationRow.vue:45
+msgid "Mark as unread"
+msgstr "Marcar como não lido"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:281
 msgid "MB"
+msgstr "MB"
+
+#: front/src/components/audio/Player.vue:346
+msgid "Media player"
+msgstr "Leitor de mídia"
+
+#: front/src/components/Footer.vue:32
+msgid "Mobile and desktop apps"
+msgstr "Aplicativos móveis e de computador"
+
+#: front/src/components/Sidebar.vue:97
+#: src/components/manage/users/UsersTable.vue:177
+#: front/src/views/admin/moderation/AccountsDetail.vue:468
+#: front/src/views/admin/moderation/Base.vue:21
+msgid "Moderation"
+msgstr "Moderação"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:49
+#: front/src/views/admin/moderation/DomainsDetail.vue:42
+msgid "Moderation policies help you control how your instance interact with a given domain or account."
 msgstr ""
+"As políticas de moderação ajudam a controlar como sua instância interage com "
+"um determinado domínio ou conta."
+
+#: front/src/components/mixins/Translations.vue:20
+#: front/src/components/mixins/Translations.vue:21
+msgid "Modification date"
+msgstr "Data de modificação"
 
-#: front/src/components/Sidebar.vue:63
+#: front/src/components/Sidebar.vue:63 src/views/admin/Settings.vue:82
 msgid "Music"
 msgstr "Música"
 
+#: front/src/components/audio/Player.vue:352
+msgid "Mute"
+msgstr "Mudo"
+
 #: front/src/components/Sidebar.vue:34
 msgid "My account"
 msgstr "Minha conta"
 
+#: front/src/components/library/radios/Builder.vue:236
+msgid "My awesome description"
+msgstr "Minha descrição incrível"
+
+#: front/src/views/content/libraries/Form.vue:70
+msgid "My awesome library"
+msgstr "Minha biblioteca incrível"
+
+#: front/src/components/playlists/Form.vue:74
+msgid "My awesome playlist"
+msgstr "Minha playlist incrível"
+
+#: front/src/components/library/radios/Builder.vue:235
+msgid "My awesome radio"
+msgstr "Meu rádio incrível"
+
 #: front/src/views/content/libraries/Home.vue:6
 msgid "My libraries"
 msgstr "Minhas bibliotecas"
 
 #: front/src/components/audio/track/Row.vue:40
-#: src/components/library/Track.vue:64
-#: front/src/components/library/Track.vue:75
-#: src/components/library/Track.vue:86
-#: front/src/components/library/Track.vue:97
+#: src/components/library/Track.vue:115
+#: front/src/components/library/Track.vue:124
+#: src/components/library/Track.vue:133
+#: front/src/components/library/Track.vue:142
 #: front/src/components/manage/library/FilesTable.vue:63
 #: front/src/components/manage/library/FilesTable.vue:69
 #: front/src/components/manage/library/FilesTable.vue:75
 #: front/src/components/manage/library/FilesTable.vue:81
 #: front/src/components/manage/users/UsersTable.vue:61
-#: front/src/views/admin/users/UsersDetail.vue:49
-#: front/src/views/content/libraries/FilesTable.vue:89
-#: front/src/views/content/libraries/FilesTable.vue:95
+#: front/src/views/admin/moderation/AccountsDetail.vue:171
+#: front/src/views/admin/moderation/DomainsDetail.vue:90
+#: front/src/views/content/libraries/FilesTable.vue:92
+#: front/src/views/content/libraries/FilesTable.vue:98
+#: front/src/views/admin/moderation/DomainsDetail.vue:109
+#: front/src/views/admin/moderation/DomainsDetail.vue:117
 msgid "N/A"
 msgstr ""
 
+#: front/src/components/manage/moderation/AccountsTable.vue:39
+#: front/src/components/manage/moderation/DomainsTable.vue:38
+#: front/src/components/mixins/Translations.vue:26
 #: front/src/components/playlists/PlaylistModal.vue:31
-#: front/src/views/admin/users/UsersDetail.vue:21
+#: front/src/views/admin/moderation/DomainsDetail.vue:105
 #: front/src/views/content/libraries/Form.vue:10
-#: front/src/components/mixins/Translations.vue:25
+#: front/src/components/mixins/Translations.vue:27
 msgid "Name"
 msgstr "Nome"
 
@@ -1076,11 +1593,15 @@ msgstr "Nome"
 msgid "New password"
 msgstr "Nova senha"
 
-#: front/src/components/Sidebar.vue:149
+#: front/src/components/Sidebar.vue:160
 msgid "New tracks will be appended here automatically."
 msgstr "Novas músicas serão adicionadas automaticamente aqui."
 
-#: front/src/components/Sidebar.vue:116
+#: front/src/components/audio/Player.vue:350
+msgid "Next track"
+msgstr "Música seguinte"
+
+#: front/src/components/Sidebar.vue:119
 msgid "No"
 msgstr "Não"
 
@@ -1088,7 +1609,15 @@ msgstr "Não"
 msgid "No add-ons, no plugins : you only need a web library"
 msgstr "Sem add-ons, sem plugins: você só precisa de uma biblioteca da Web"
 
-#: front/src/components/library/Track.vue:113
+#: front/src/components/audio/Search.vue:25
+msgid "No album matched your query"
+msgstr "Nenhum álbum correspondeu à sua consulta"
+
+#: front/src/components/audio/Search.vue:16
+msgid "No artist matched your query"
+msgstr "Nenhum artista correspondeu à sua consulta"
+
+#: front/src/components/library/Track.vue:158
 msgid "No lyrics available for this track."
 msgstr "Nenhuma letra disponível para esta música."
 
@@ -1096,6 +1625,17 @@ msgstr "Nenhuma letra disponível para esta música."
 msgid "No matching library."
 msgstr "Nenhuma biblioteca correspondente."
 
+#: front/src/views/Notifications.vue:26
+msgid "No notifications yet."
+msgstr "Ainda não há notificações."
+
+#: front/src/components/mixins/Translations.vue:10
+#: front/src/components/playlists/Form.vue:81
+#: src/views/content/libraries/Form.vue:72
+#: front/src/components/mixins/Translations.vue:11
+msgid "Nobody except me"
+msgstr "Ninguém, exceto eu"
+
 #: front/src/views/content/libraries/Detail.vue:57
 msgid "Nobody is following this library"
 msgstr "Ninguém está seguindo esta biblioteca"
@@ -1108,7 +1648,7 @@ msgstr "Não usado"
 msgid "Notifications"
 msgstr "Notificações"
 
-#: front/src/App.vue:36
+#: front/src/components/Footer.vue:47
 msgid "Official website"
 msgstr "Website oficial"
 
@@ -1120,14 +1660,32 @@ msgstr "Senha Antiga"
 msgid "Open"
 msgstr "Aberto"
 
-#: front/src/App.vue:62
-msgid "Options"
-msgstr "Opções"
+#: front/src/views/admin/moderation/AccountsDetail.vue:23
+msgid "Open profile"
+msgstr "Abrir o perfil"
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:16
+msgid "Open website"
+msgstr "Abrir o website"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:40
+msgid "Or customize your rule"
+msgstr "Ou personalize sua regra"
+
+#: front/src/components/favorites/List.vue:31
+#: src/components/library/Radios.vue:41
+#: front/src/components/manage/library/FilesTable.vue:17
+#: front/src/components/manage/users/UsersTable.vue:17
+#: front/src/views/playlists/List.vue:25
+msgid "Order"
+msgstr "Ordenar"
 
 #: front/src/components/favorites/List.vue:23
 #: src/components/library/Artists.vue:15
 #: front/src/components/library/Radios.vue:33
 #: front/src/components/manage/library/FilesTable.vue:9
+#: front/src/components/manage/moderation/AccountsTable.vue:11
+#: front/src/components/manage/moderation/DomainsTable.vue:9
 #: front/src/components/manage/users/InvitationsTable.vue:9
 #: front/src/components/manage/users/UsersTable.vue:9
 #: front/src/views/content/libraries/FilesTable.vue:21
@@ -1135,13 +1693,10 @@ msgstr "Opções"
 msgid "Ordering"
 msgstr "Ordenar"
 
-#: front/src/components/favorites/List.vue:31
-#: src/components/library/Artists.vue:23
-#: front/src/components/library/Radios.vue:41
-#: front/src/components/manage/library/FilesTable.vue:17
-#: front/src/components/manage/users/UsersTable.vue:17
+#: front/src/components/library/Artists.vue:23
+#: front/src/components/manage/moderation/AccountsTable.vue:19
+#: front/src/components/manage/moderation/DomainsTable.vue:17
 #: front/src/views/content/libraries/FilesTable.vue:29
-#: front/src/views/playlists/List.vue:25
 msgid "Ordering direction"
 msgstr "Direção de ordenar"
 
@@ -1149,21 +1704,45 @@ msgstr "Direção de ordenar"
 msgid "Owner"
 msgstr "Proprietário"
 
+#: front/src/components/PageNotFound.vue:33
+msgid "Page Not Found"
+msgstr "Página não encontrada"
+
 #: front/src/components/PageNotFound.vue:7
 msgid "Page not found!"
 msgstr "Página não encontrada!"
 
+#: front/src/components/Pagination.vue:39
+msgid "Pagination"
+msgstr "Paginação"
+
 #: front/src/components/auth/Login.vue:32 src/components/auth/Signup.vue:38
 msgid "Password"
 msgstr "Palavra-passe"
 
+#: front/src/components/auth/SubsonicTokenForm.vue:95
+msgid "Password updated"
+msgstr "Senha atualizada"
+
 #: front/src/views/auth/PasswordResetConfirm.vue:28
 msgid "Password updated successfully"
 msgstr "Senha atualizada com sucesso"
 
-#: front/src/components/library/FileUpload.vue:105
+#: front/src/components/audio/Player.vue:349
+msgid "Pause track"
+msgstr "Parar música"
+
+#: front/src/components/ShortcutsModal.vue:59
+msgid "Pause/play the current track"
+msgstr "Pausa/leitura da pista actual"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:12
+msgid "Paused"
+msgstr "Pausa"
+
+#: front/src/components/library/FileUpload.vue:106
 #: front/src/views/content/libraries/FilesTable.vue:14
-#: front/src/views/content/libraries/FilesTable.vue:233
+#: front/src/views/content/libraries/FilesTable.vue:208
 msgid "Pending"
 msgstr "Pendente"
 
@@ -1175,23 +1754,24 @@ msgstr "Aprovação pendente"
 msgid "Pending files"
 msgstr "Ficheiros pendentes"
 
-#: front/src/components/requests/Form.vue:26
-msgid "Pending requests"
+#: front/src/components/Sidebar.vue:212
+msgid "Pending follow requests"
 msgstr "Solicitações pendentes"
 
 #: front/src/components/manage/users/UsersTable.vue:42
-#: front/src/views/admin/users/UsersDetail.vue:68
+#: front/src/views/admin/moderation/AccountsDetail.vue:137
 msgid "Permissions"
 msgstr "Permissões"
 
 #: front/src/components/audio/PlayButton.vue:9
-#: src/components/library/Track.vue:30
+#: src/components/library/Track.vue:40
 msgid "Play"
 msgstr "Jogar"
 
 #: front/src/components/audio/album/Card.vue:50
 #: front/src/components/audio/artist/Card.vue:44
-#: src/components/library/Album.vue:28 front/src/views/playlists/Detail.vue:23
+#: src/components/library/Album.vue:28
+#: front/src/components/library/Album.vue:73 src/views/playlists/Detail.vue:23
 msgid "Play all"
 msgstr "Jogar tudo"
 
@@ -1200,13 +1780,36 @@ msgid "Play all albums"
 msgstr "Jogar todos os álbuns"
 
 #: front/src/components/audio/PlayButton.vue:15
+#: front/src/components/audio/PlayButton.vue:65
 msgid "Play next"
 msgstr "Jogar seguinte"
 
+#: front/src/components/ShortcutsModal.vue:67
+msgid "Play next track"
+msgstr "Jogar pista seguinte"
+
 #: front/src/components/audio/PlayButton.vue:16
+#: front/src/components/audio/PlayButton.vue:63
+#: front/src/components/audio/PlayButton.vue:70
 msgid "Play now"
 msgstr "Jogue agora"
 
+#: front/src/components/ShortcutsModal.vue:63
+msgid "Play previous track"
+msgstr "Jogar pista anterior"
+
+#: front/src/components/Sidebar.vue:211
+msgid "Play this track"
+msgstr "Jogar esta pista"
+
+#: front/src/components/audio/Player.vue:348
+msgid "Play track"
+msgstr "Jogar mũsica"
+
+#: front/src/views/playlists/Detail.vue:90
+msgid "Playlist"
+msgstr "Playlist"
+
 #: front/src/views/playlists/Detail.vue:12
 msgid "Playlist containing %{ count } track, by %{ username }"
 msgid_plural "Playlist containing %{ count } tracks, by %{ username }"
@@ -1234,8 +1837,8 @@ msgid "Playlist visibility"
 msgstr "Visibilidade da playlist"
 
 #: front/src/components/Sidebar.vue:71 src/components/library/Home.vue:16
-#: front/src/components/library/Library.vue:13 src/views/playlists/List.vue:104
-#: front/src/views/admin/Settings.vue:82
+#: front/src/components/library/Library.vue:13 src/views/admin/Settings.vue:83
+#: front/src/views/playlists/List.vue:106
 msgid "Playlists"
 msgstr "Playlists"
 
@@ -1255,6 +1858,23 @@ msgstr "Por favor, verifique se o seu nome de usuário e senha estão corretos"
 msgid "PNG, GIF or JPG. At most 2MB. Will be downscaled to 400x400px."
 msgstr "PNG, GIF ou JPG. No máximo 2MB. Será reduzido para 400x400px."
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:118
+msgid "Prevent account or domain from triggering notifications, except from followers."
+msgstr ""
+"Evite que uma conta ou domínio acione notificações, exceto de seguidores."
+
+#: front/src/components/audio/EmbedWizard.vue:29
+msgid "Preview"
+msgstr "Pré-visualização"
+
+#: front/src/components/audio/Player.vue:347
+msgid "Previous track"
+msgstr "Música anterior"
+
+#: front/src/views/content/remote/Card.vue:39
+msgid "Problem during scanning"
+msgstr "Erro durante a análise"
+
 #: front/src/components/library/FileUpload.vue:58
 msgid "Proceed"
 msgstr "Prosseguir"
@@ -1268,6 +1888,8 @@ msgstr "Continuar com o login"
 msgid "Processing"
 msgstr "Em tratamento"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:188
+#: front/src/components/manage/moderation/DomainsTable.vue:168
 #: front/src/views/content/libraries/Quota.vue:36
 #: front/src/views/content/libraries/Quota.vue:39
 #: front/src/views/content/libraries/Quota.vue:62
@@ -1293,6 +1915,18 @@ msgstr "Limpar arquivos ignorados?"
 msgid "Queue"
 msgstr "Fila"
 
+#: front/src/components/audio/Player.vue:282
+msgid "Queue shuffled!"
+msgstr "Fila embaralhada!"
+
+#: front/src/views/radios/Detail.vue:80
+msgid "Radio"
+msgstr "Rádio"
+
+#: front/src/components/library/radios/Builder.vue:233
+msgid "Radio Builder"
+msgstr "Construtor de rádio"
+
 #: front/src/components/library/radios/Builder.vue:15
 msgid "Radio created"
 msgstr "Rádio criado"
@@ -1306,13 +1940,25 @@ msgid "Radio updated"
 msgstr "Rádio atualizado"
 
 #: front/src/components/library/Library.vue:10
-#: src/components/library/Radios.vue:142
+#: src/components/library/Radios.vue:141
 msgid "Radios"
 msgstr "Rádios"
 
-#: front/src/views/instance/Timeline.vue:7
-msgid "Recent activity on this instance"
-msgstr "Atividade recente nesta instância"
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:39
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:25
+msgid "Reason"
+msgstr "Motivo"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:222
+#: front/src/views/admin/moderation/DomainsDetail.vue:179
+msgid "Received library follows"
+msgstr ""
+
+#: front/src/components/manage/moderation/DomainsTable.vue:40
+#: front/src/components/mixins/Translations.vue:36
+#: front/src/components/mixins/Translations.vue:37
+msgid "Received messages"
+msgstr "Mensagens recebidas"
 
 #: front/src/components/library/Home.vue:24
 msgid "Recently added"
@@ -1324,22 +1970,27 @@ msgstr "Recentemente adicionado aos favoritos"
 
 #: front/src/components/library/Home.vue:6
 msgid "Recently listened"
-msgstr "Escutei recentemente"
+msgstr "Escutado recentemente"
 
-#: front/src/views/admin/users/UsersDetail.vue:103
 #: front/src/views/content/remote/Home.vue:15
 msgid "Refresh"
 msgstr "Atualizar"
 
+#: front/src/views/admin/moderation/DomainsDetail.vue:135
+msgid "Refresh node info"
+msgstr "Atualizar informações do nó"
+
+#: front/src/components/common/ActionTable.vue:272
+msgid "Refresh table content"
+msgstr "Atualizar o conteúdo da tabela"
+
 #: front/src/components/auth/Profile.vue:12
 msgid "Registered since %{ date }"
 msgstr "Registrado desde %{ date }"
 
 #: front/src/components/auth/Signup.vue:9
 msgid "Registration are closed on this instance, you will need an invitation code to signup."
-msgstr ""
-"As inscrições estão fechadas nesta instância, você precisará de um código de "
-"convite para inscrição."
+msgstr "As inscrições estão fechadas nesta instância, você precisará de um código de convite para inscrição."
 
 #: front/src/components/manage/users/UsersTable.vue:71
 msgid "regular user"
@@ -1349,19 +2000,26 @@ msgstr "usuário regular"
 msgid "Reject"
 msgstr "Rejeitar"
 
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:32
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:123
+msgid "Reject media"
+msgstr "Rejeitar mídia"
+
 #: front/src/views/content/libraries/Detail.vue:43
 msgid "Rejected"
 msgstr "Rejeitado"
 
+#: front/src/views/content/libraries/FilesTable.vue:234
+msgid "Relaunch import"
+msgstr "Reinicie a importação"
+
 #: front/src/views/content/remote/Home.vue:6
 msgid "Remote libraries"
 msgstr "Bibliotecas Remotas"
 
 #: front/src/views/content/remote/Home.vue:7
 msgid "Remote libraries are owned by other users on the network. You can access them as long as they are public or you are granted access."
-msgstr ""
-"Bibliotecas remotas são de propriedade de outros usuários na rede. Você pode "
-"acessá-los desde que sejam públicos ou tenha acesso."
+msgstr "Bibliotecas remotas são de propriedade de outros usuários na rede. Você pode acessá-los desde que sejam públicos ou tenha acesso."
 
 #: front/src/components/library/radios/Filter.vue:59
 msgid "Remove"
@@ -1371,6 +2029,28 @@ msgstr "Remover"
 msgid "Remove avatar"
 msgstr "Remover avatar"
 
+#: front/src/components/favorites/TrackFavoriteIcon.vue:26
+msgid "Remove from favorites"
+msgstr "Remover dos favoritos"
+
+#: front/src/views/content/libraries/Quota.vue:38
+msgid "Removes uploaded but yet to be processed tracks completely, adding the corresponding data to your quota."
+msgstr ""
+"Remove as pistas carregadas mas ainda a serem processadas completamente, "
+"adicionando os dados correspondentes à sua quota."
+
+#: front/src/views/content/libraries/Quota.vue:64
+msgid "Removes uploaded tracks skipped during the import processes completely, adding the corresponding data to your quota."
+msgstr ""
+"Remove as pistas carregadas ignoradas durante os processos de importação "
+"completamente, adicionando os dados correspondentes à sua quota."
+
+#: front/src/views/content/libraries/Quota.vue:90
+msgid "Removes uploaded tracks that could not be processed by the server completely, adding the corresponding data to your quota."
+msgstr ""
+"Remove as pistas carregadas que não puderam ser processadas completamente "
+"pelo servidor, adicionando os dados correspondentes à sua quota."
+
 #: front/src/components/auth/SubsonicTokenForm.vue:34
 #: front/src/components/auth/SubsonicTokenForm.vue:37
 msgid "Request a new password"
@@ -1384,11 +2064,8 @@ msgstr "Solicitar uma nova senha da Subsonic API?"
 msgid "Request a password"
 msgstr "Solicite uma senha"
 
-#: front/src/components/requests/Form.vue:20
-msgid "Request submitted!"
-msgstr "Solicitação Enviada!"
-
 #: front/src/components/auth/Login.vue:34 src/views/auth/PasswordReset.vue:4
+#: front/src/views/auth/PasswordReset.vue:52
 msgid "Reset your password"
 msgstr "Redefinir sua senha"
 
@@ -1398,30 +2075,52 @@ msgstr "Redefinir sua senha"
 msgid "Results per page"
 msgstr "Resultados por página"
 
+#: front/src/views/auth/EmailConfirm.vue:17
+msgid "Return to login"
+msgstr "Voltar ao login"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:16
+msgid "Rule"
+msgstr "Regra"
+
 #: front/src/components/admin/SettingsGroup.vue:63
 #: front/src/components/library/radios/Builder.vue:33
 msgid "Save"
 msgstr "Salvar"
 
+#: front/src/views/content/remote/Card.vue:165
+msgid "Scan launched"
+msgstr "Análise iniciada"
+
+#: front/src/views/content/remote/Card.vue:63
+msgid "Scan now"
+msgstr "Scanar agora"
+
+#: front/src/views/content/remote/Card.vue:166
+msgid "Scan skipped (previous scan is too recent)"
+msgstr "Análise ignorada (a análise anterior é muito recente)"
+
 #: front/src/views/content/remote/Card.vue:31
-msgid "Scan pending"
-msgstr "Esperando pela análise"
+msgid "Scan waiting"
+msgstr "Scan em espera"
 
 #: front/src/views/content/remote/Card.vue:43
-msgid "Scanned successfully"
-msgstr "Analisado com sucesso"
+msgid "Scanned"
+msgstr "Analisado"
 
 #: front/src/views/content/remote/Card.vue:47
 msgid "Scanned with errors"
 msgstr "Analisado com erros"
 
 #: front/src/views/content/remote/Card.vue:35
-msgid "Scanning... (%{ progress }%)"
+msgid "Scanning… (%{ progress }%)"
 msgstr ""
 
 #: front/src/components/library/Artists.vue:10
 #: src/components/library/Radios.vue:29
 #: front/src/components/manage/library/FilesTable.vue:5
+#: front/src/components/manage/moderation/AccountsTable.vue:5
+#: front/src/components/manage/moderation/DomainsTable.vue:5
 #: front/src/components/manage/users/InvitationsTable.vue:5
 #: front/src/components/manage/users/UsersTable.vue:5
 #: front/src/views/content/libraries/FilesTable.vue:5
@@ -1433,41 +2132,76 @@ msgstr "Buscar"
 msgid "Search a remote library"
 msgstr "Pesquisar uma biblioteca remota"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:171
+msgid "Search by domain, username, bio..."
+msgstr "Pesquisa por domínio, nome de utilizador, biografia..."
+
+#: front/src/components/manage/moderation/DomainsTable.vue:151
+msgid "Search by name..."
+msgstr "Pesquisar por nome..."
+
+#: front/src/views/content/libraries/FilesTable.vue:201
+msgid "Search by title, artist, album…"
+msgstr "Pesquisa por título, artista, álbum…"
+
+#: front/src/components/manage/library/FilesTable.vue:176
+msgid "Search by title, artist, domain…"
+msgstr "Pesquisa por título, artista, domínio…"
+
+#: front/src/components/manage/users/InvitationsTable.vue:153
+msgid "Search by username, e-mail address, code…"
+msgstr "Pesquisa por nome de utilizador, endereço de e-mail, código…"
+
+#: front/src/components/manage/users/UsersTable.vue:163
+msgid "Search by username, e-mail address, name…"
+msgstr "Pesquisa por nome de utilizador, endereço de e-mail, nome…"
+
+#: front/src/components/audio/SearchBar.vue:20
+msgid "Search for artists, albums, tracks…"
+msgstr "Procure por artistas, álbuns, pistas…"
+
 #: front/src/components/audio/Search.vue:2
 msgid "Search for some music"
 msgstr "Procure alguma música"
 
-#: front/src/components/library/Track.vue:116
+#: front/src/components/library/Track.vue:162
 msgid "Search on lyrics.wikia.com"
 msgstr "Procurar em lyrics.wikia.com"
 
 #: front/src/components/library/Album.vue:33
 #: src/components/library/Artist.vue:31
-#: front/src/components/library/Track.vue:40
+#: front/src/components/library/Track.vue:47
 msgid "Search on Wikipedia"
 msgstr "Procurar em Wikipedia"
 
+#: front/src/components/library/Library.vue:32
+#: src/views/admin/library/Base.vue:17
+#: front/src/views/admin/moderation/Base.vue:22
+#: src/views/admin/users/Base.vue:21 front/src/views/content/Base.vue:19
+msgid "Secondary menu"
+msgstr "Menu secundário"
+
 #: front/src/views/admin/Settings.vue:15
 msgid "Sections"
-msgstr ""
+msgstr "Secções"
 
 #: front/src/components/library/radios/Builder.vue:45
 msgid "Select a filter"
 msgstr "Selecione um filtro"
 
-#: front/src/components/common/ActionTable.vue:64
+#: front/src/components/common/ActionTable.vue:77
 msgid "Select all %{ total } elements"
 msgid_plural "Select all %{ total } elements"
 msgstr[0] ""
 msgstr[1] ""
 
-#: front/src/components/common/ActionTable.vue:73
+#: front/src/components/common/ActionTable.vue:86
 msgid "Select only current page"
 msgstr "Selecione apenas a página atual"
 
-#: front/src/components/Sidebar.vue:43 src/components/Sidebar.vue:88
-#: front/src/components/manage/users/UsersTable.vue:185
-#: front/src/views/admin/users/UsersDetail.vue:189
+#: front/src/components/Sidebar.vue:43 src/components/Sidebar.vue:85
+#: front/src/components/manage/users/UsersTable.vue:181
+#: front/src/views/admin/moderation/AccountsDetail.vue:472
 msgid "Settings"
 msgstr "Configurações"
 
@@ -1484,7 +2218,7 @@ msgid "Share link"
 msgstr "Compartilhe o link"
 
 #: front/src/views/content/libraries/Detail.vue:15
-msgid "Share this link with other users so they can request an access to your library."
+msgid "Share this link with other users so they can request access to your library."
 msgstr ""
 "Compartilhe este link com outros usuários para que eles possam solicitar "
 "acesso à sua biblioteca."
@@ -1492,7 +2226,7 @@ msgstr ""
 #: front/src/views/content/libraries/Detail.vue:14
 #: front/src/views/content/remote/Card.vue:73
 msgid "Sharing link"
-msgstr ""
+msgstr "Link de compartilhamento"
 
 #: front/src/components/audio/album/Card.vue:40
 #, fuzzy
@@ -1507,63 +2241,86 @@ msgid_plural "Show %{ count } more albums"
 msgstr[0] "Mostrar mais 1 álbum"
 msgstr[1] "Mostrar mais %{ count } albums"
 
+#: front/src/components/ShortcutsModal.vue:42
+msgid "Show available keyboard shortcuts"
+msgstr "Mostrar atalhos de teclado disponíveis"
+
 #: front/src/views/Notifications.vue:10
 msgid "Show read notifications"
-msgstr "Mostrar notificações"
+msgstr "Mostrar notificações antigas"
+
+#: front/src/components/forms/PasswordInput.vue:25
+msgid "Show/hide password"
+msgstr "Mostrar/ocultar senha"
 
 #: front/src/components/manage/library/FilesTable.vue:97
+#: front/src/components/manage/moderation/AccountsTable.vue:88
+#: front/src/components/manage/moderation/DomainsTable.vue:74
 #: front/src/components/manage/users/InvitationsTable.vue:76
 #: front/src/components/manage/users/UsersTable.vue:87
-#: front/src/views/content/libraries/FilesTable.vue:111
+#: front/src/views/content/libraries/FilesTable.vue:114
 msgid "Showing results %{ start }-%{ end } on %{ total }"
 msgstr "Mostrando resultados %{ start }-%{ end } em %{ total }"
 
+#: front/src/components/ShortcutsModal.vue:83
+msgid "Shuffle queue"
+msgstr "Fila de embaralhamento"
+
+#: front/src/components/audio/Player.vue:362
+msgid "Shuffle your queue"
+msgstr "Embaralhe sua fila"
+
+#: front/src/components/auth/Signup.vue:95
+msgid "Sign Up"
+msgstr "Inscrever-se"
+
 #: front/src/components/manage/users/UsersTable.vue:40
-#: front/src/views/admin/users/UsersDetail.vue:37
 msgid "Sign-up"
 msgstr "Inscrever-se"
 
-#: front/src/components/library/FileUpload.vue:84
-#: src/components/library/Track.vue:69
+#: front/src/components/mixins/Translations.vue:31
+#: front/src/views/admin/moderation/AccountsDetail.vue:176
+#: front/src/components/mixins/Translations.vue:32
+msgid "Sign-up date"
+msgstr "Data de inscrição"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:24
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:115
+#, fuzzy
+msgid "Silence activity"
+msgstr "Atividade do usuário"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:28
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:119
+msgid "Silence notifications"
+msgstr "Notificações silenciosas"
+
+#: front/src/components/library/FileUpload.vue:85
+#: front/src/components/library/Track.vue:120
 #: front/src/components/manage/library/FilesTable.vue:44
-#: front/src/views/content/libraries/FilesTable.vue:57
-#: front/src/components/mixins/Translations.vue:27
+#: front/src/components/mixins/Translations.vue:28
+#: front/src/views/content/libraries/FilesTable.vue:60
+#: front/src/components/mixins/Translations.vue:29
 msgid "Size"
 msgstr "Tamanho"
 
 #: front/src/views/content/libraries/FilesTable.vue:15
-#: front/src/views/content/libraries/FilesTable.vue:229
-#, fuzzy
+#: front/src/views/content/libraries/FilesTable.vue:204
 msgid "Skipped"
-msgstr "Pulou"
+msgstr "Ignorado"
 
 #: front/src/views/content/libraries/Quota.vue:49
 msgid "Skipped files"
 msgstr "Arquivos ignorados"
 
-#: front/src/components/requests/Form.vue:3
-msgid "Something's missing in the library? Let us know what you would like to listen!"
-msgstr ""
-"Algo está faltando na biblioteca? Deixe-nos saber o que você gostaria de "
-"ouvir!"
-
-#: front/src/components/audio/Search.vue:25
-msgid "Sorry, we did not found any album matching your query"
-msgstr "Desculpe, não foi encontrado nenhum álbum correspondente à sua consulta"
-
-#: front/src/components/audio/Search.vue:16
-msgid "Sorry, we did not found any artist matching your query"
-msgstr ""
-"Desculpe, não foi encontrado nenhum artista que corresponda à sua consulta"
+#: front/src/views/admin/moderation/DomainsDetail.vue:97
+msgid "Software"
+msgstr "Software"
 
-#: front/src/App.vue:40
+#: front/src/components/Footer.vue:49
 msgid "Source code"
 msgstr ""
 
-#: front/src/App.vue:39
-msgid "Source code (%{version})"
-msgstr ""
-
 #: front/src/components/auth/Profile.vue:23
 #: front/src/components/manage/users/UsersTable.vue:70
 msgid "Staff member"
@@ -1573,35 +2330,52 @@ msgstr "Membro da equipe"
 msgid "Start"
 msgstr "Iniciar"
 
-#: front/src/components/library/FileUpload.vue:85
+#: front/src/views/admin/Settings.vue:86
+msgid "Statistics"
+msgstr "Estatisticas"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:454
+msgid "Statistics are computed from known activity and content on your instance, and do not reflect general activity for this account"
+msgstr ""
+"As estatísticas são calculadas a partir de atividade e conteúdo conhecidos "
+"em sua instância, e não refletem a atividade geral para esta conta"
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:358
+msgid "Statistics are computed from known activity and content on your instance, and do not reflect general activity for this domain"
+msgstr ""
+"As estatísticas são calculadas a partir da actividade e conteúdo conhecidos "
+"na sua instância e não reflectem a actividade geral para este domínio"
+
+#: front/src/components/library/FileUpload.vue:86
 #: front/src/components/manage/users/InvitationsTable.vue:17
 #: front/src/components/manage/users/InvitationsTable.vue:39
 #: front/src/components/manage/users/UsersTable.vue:43
+#: front/src/views/admin/moderation/DomainsDetail.vue:123
 #: front/src/views/content/libraries/Detail.vue:28
 msgid "Status"
-msgstr ""
+msgstr "Estado"
 
 #: front/src/components/radios/Button.vue:3
 msgid "Stop"
 msgstr "Pare"
 
-#: front/src/components/Sidebar.vue:150
+#: front/src/components/Sidebar.vue:161
 msgid "Stop radio"
 msgstr "Pare o rádio"
 
-#: front/src/App.vue:11 src/components/requests/Form.vue:17
+#: front/src/App.vue:22
 msgid "Submit"
 msgstr "Enviar"
 
-#: front/src/components/requests/Form.vue:22
-msgid "Submit another request"
-msgstr "Envie outro pedido"
+#: front/src/views/admin/Settings.vue:85
+msgid "Subsonic"
+msgstr "Subsonic"
 
 #: front/src/components/auth/SubsonicTokenForm.vue:2
 msgid "Subsonic API password"
 msgstr "Senha da API Subsonic"
 
-#: front/src/App.vue:13
+#: front/src/App.vue:26
 msgid "Suggested choices"
 msgstr "Escolhas sugeridas"
 
@@ -1609,9 +2383,17 @@ msgstr "Escolhas sugeridas"
 msgid "Summary"
 msgstr "Sumário"
 
+#: front/src/components/Footer.vue:39
+msgid "Support forum"
+msgstr "Fórum de apoio"
+
+#: front/src/components/library/FileUpload.vue:78
+msgid "Supported extensions: %{ extensions }"
+msgstr "Extensões suportadas: %{ extensions }"
+
 #: front/src/components/playlists/Editor.vue:9
-msgid "Syncing changes to server..."
-msgstr ""
+msgid "Syncing changes to server…"
+msgstr "Sincronizar mudanças no servidor…"
 
 #: front/src/components/common/CopyInput.vue:3
 msgid "Text copied to clipboard!"
@@ -1619,29 +2401,29 @@ msgstr "Texto copiado para a área de transferência!"
 
 #: front/src/components/Home.vue:26
 msgid "That's simple: we loved Grooveshark and we want to build something even better."
-msgstr ""
-"Isso é simples: nós amamos o Grooveshark e queremos construir algo ainda "
-"melhor."
+msgstr "Isso é simples: nós amamos o Grooveshark e queremos construir algo ainda melhor."
 
-#: front/src/App.vue:58
+#: front/src/components/Footer.vue:53
 msgid "The funkwhale logo was kindly designed and provided by Francis Gading."
-msgstr ""
-"O logótipo funkwhale foi gentilmente projetado e fornecido por Francis "
-"Gading."
+msgstr "O logótipo funkwhale foi gentilmente projetado e fornecido por Francis Gading."
 
 #: front/src/views/content/libraries/Form.vue:34
-msgid "The library and all its tracks will be deleted. This action is irreversible."
+msgid "The library and all its tracks will be deleted. This can not be undone."
 msgstr ""
+"A biblioteca e todas as suas pistas serão removidas. Isto não pode ser "
+"desfeito."
 
 #: front/src/components/library/FileUpload.vue:39
 msgid "The music files you are uploading are tagged properly:"
 msgstr "Os arquivos de música que você está enviando são marcados corretamente:"
 
+#: front/src/components/audio/Player.vue:67
+msgid "The next track will play automatically in a few seconds..."
+msgstr "A próxima pista será jogada automaticamente em poucos segundos..."
+
 #: front/src/components/Home.vue:121
 msgid "The plaform is free and open-source, you can install it and modify it without worries"
-msgstr ""
-"A plataforma é gratuita e open-source, você pode instalá-lo e modificá-lo "
-"sem preocupações"
+msgstr "A plataforma é gratuita e open-source, você pode instalá-lo e modificá-lo sem preocupações"
 
 #: front/src/components/auth/SubsonicTokenForm.vue:4
 msgid "The Subsonic API is not available on this Funkwhale instance."
@@ -1651,7 +2433,17 @@ msgstr "A API Subsonic não está disponível nesta instância do Funkwhale."
 msgid "The uploaded music files are in OGG, Flac or MP3 format"
 msgstr "Os arquivos de música enviados estão no formato OGG, Flac ou MP3"
 
-#: front/src/components/library/Album.vue:52
+#: front/src/views/content/Home.vue:4
+msgid "There are various ways to grab new content and make it available here."
+msgstr ""
+"Existem várias maneiras de obter novos conteúdos e torná-los disponíveis "
+"aqui."
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:66
+msgid "This action is irreversible."
+msgstr "Esta acção é irreversível."
+
+#: front/src/components/library/Album.vue:91
 msgid "This album is present in the following libraries:"
 msgstr "Este álbum está presente nas seguintes bibliotecas:"
 
@@ -1659,27 +2451,49 @@ msgstr "Este álbum está presente nas seguintes bibliotecas:"
 msgid "This artist is present in the following libraries:"
 msgstr "Este artista está presente nas seguintes bibliotecas:"
 
+#: front/src/views/admin/moderation/AccountsDetail.vue:55
+#: front/src/views/admin/moderation/DomainsDetail.vue:48
+msgid "This domain is subject to specific moderation rules"
+msgstr "Este domínio está sujeito a regras de moderação específicas"
+
 #: front/src/views/content/Home.vue:9
-msgid "This instance offers up to %{quota} of storage space to every user."
+msgid "This instance offers up to %{quota} of storage space for every user."
 msgstr ""
-"Esta instância oferece até %{quota} de espaço de armazenamento para todos os "
-"usuários."
+"Esta instância oferece até %{quota} de espaço de memória para cada usuário."
 
 #: front/src/components/auth/Profile.vue:16
 msgid "This is you!"
 msgstr "É você!"
 
-#: front/src/components/common/ActionTable.vue:38
-msgid "This may affect a lot of elements, please double check this is really what you want."
+#: front/src/views/content/libraries/Form.vue:71
+msgid "This library contains my personal music, I hope you like it."
+msgstr "Esta biblioteca contém minha música pessoal, espero que você goste."
+
+#: front/src/views/content/remote/Card.vue:131
+msgid "This library is private and your approval from its owner is needed to access its content"
+msgstr ""
+"Esta biblioteca é privada e sua aprovação do proprietário é necessária para "
+"acessar seu conteúdo"
+
+#: front/src/views/content/remote/Card.vue:132
+msgid "This library is public and you can access its content freely"
+msgstr "Esta biblioteca é pública e você pode acessar seu conteúdo livremente"
+
+#: front/src/components/common/ActionTable.vue:45
+msgid "This may affect a lot of elements or have irreversible consequences, please double check this is really what you want."
 msgstr ""
-"Isso pode afetar muitos elementos, por favor, verifique isso é realmente o "
-"que você quer."
+"Isso pode afetar muitos elementos ou ter consequências irreversíveis, por "
+"favor, verifique se isso é realmente o que você quer."
 
 #: front/src/components/library/FileUpload.vue:52
 msgid "This reference will be used to group imported files together."
 msgstr "Esta referência será usada para agrupar arquivos importados."
 
-#: front/src/components/library/Track.vue:125
+#: front/src/components/audio/PlayButton.vue:73
+msgid "This track is not available in any library you have access to"
+msgstr "Esta pista não está disponível em nenhuma biblioteca a que tenha acesso"
+
+#: front/src/components/library/Track.vue:171
 msgid "This track is present in the following libraries:"
 msgstr "Esta música está presente nas seguintes bibliotecas:"
 
@@ -1693,207 +2507,56 @@ msgstr "Isto irá remover completamente o rádio e não pode ser cancelado."
 
 #: front/src/components/auth/SubsonicTokenForm.vue:51
 msgid "This will completely disable access to the Subsonic API using from account."
-msgstr ""
-"Isso desativará completamente o acesso à API do Subsonic usando a conta."
-
-#: front/src/App.vue:162 src/components/About.vue:55
-#: src/components/Home.vue:154 front/src/components/PageNotFound.vue:33
-#: src/components/Sidebar.vue:203 front/src/components/Sidebar.vue:204
-#: src/components/audio/PlayButton.vue:54
-#: front/src/components/audio/PlayButton.vue:55
-#: front/src/components/audio/PlayButton.vue:56
-#: front/src/components/audio/PlayButton.vue:61
-#: front/src/components/audio/PlayButton.vue:64
-#: front/src/components/audio/PlayButton.vue:158
-#: src/components/audio/Player.vue:216
-#: front/src/components/audio/Player.vue:273
-#: src/components/audio/Player.vue:274
-#: front/src/components/audio/Player.vue:275
-#: src/components/audio/Player.vue:276
-#: front/src/components/audio/Player.vue:277
-#: src/components/audio/Player.vue:278
-#: front/src/components/audio/Player.vue:279
-#: src/components/audio/Player.vue:280
-#: front/src/components/audio/Player.vue:281
-#: src/components/audio/Player.vue:282
-#: front/src/components/audio/Player.vue:283 src/components/audio/Search.vue:65
-#: front/src/components/audio/SearchBar.vue:20
-#: src/components/audio/SearchBar.vue:25
-#: front/src/components/audio/SearchBar.vue:26
-#: src/components/audio/SearchBar.vue:27 front/src/components/auth/Login.vue:77
-#: src/components/auth/Login.vue:78 front/src/components/auth/Logout.vue:20
-#: src/components/auth/Profile.vue:47
-#: front/src/components/auth/Settings.vue:249 src/components/auth/Signup.vue:95
-#: front/src/components/auth/Signup.vue:96 src/components/auth/Signup.vue:97
-#: front/src/components/auth/Signup.vue:98
-#: front/src/components/auth/SubsonicTokenForm.vue:95
-#: front/src/components/auth/SubsonicTokenForm.vue:111
-#: front/src/components/favorites/List.vue:110
-#: front/src/components/favorites/TrackFavoriteIcon.vue:19
-#: front/src/components/favorites/TrackFavoriteIcon.vue:21
-#: front/src/components/forms/PasswordInput.vue:25
-#: front/src/components/library/Album.vue:101
-#: src/components/library/Artist.vue:129
-#: front/src/components/library/Artists.vue:119
-#: front/src/components/library/Artists.vue:120
-#: front/src/components/library/FileUpload.vue:238
-#: front/src/components/library/FileUpload.vue:239
-#: front/src/components/library/FileUpload.vue:240
-#: front/src/components/library/FileUpload.vue:241
-#: src/components/library/Home.vue:65
-#: front/src/components/library/Radios.vue:141
-#: src/components/library/Radios.vue:142
-#: front/src/components/library/Track.vue:195
-#: front/src/components/library/radios/Builder.vue:233
-#: front/src/components/library/radios/Builder.vue:235
-#: front/src/components/library/radios/Builder.vue:236
-#: front/src/components/manage/library/FilesTable.vue:176
-#: front/src/components/manage/library/FilesTable.vue:190
-#: front/src/components/manage/users/InvitationForm.vue:58
-#: front/src/components/manage/users/InvitationsTable.vue:153
-#: front/src/components/manage/users/InvitationsTable.vue:167
-#: front/src/components/manage/users/UsersTable.vue:163
-#: front/src/components/manage/users/UsersTable.vue:173
-#: front/src/components/manage/users/UsersTable.vue:177
-#: front/src/components/manage/users/UsersTable.vue:181
-#: front/src/components/manage/users/UsersTable.vue:185
-#: front/src/components/metadata/ArtistCard.vue:49
-#: front/src/components/metadata/ReleaseCard.vue:53
-#: front/src/components/metadata/Search.vue:114
-#: front/src/components/metadata/Search.vue:130
-#: front/src/components/metadata/Search.vue:134
-#: front/src/components/metadata/Search.vue:138
-#: front/src/components/mixins/Translations.vue:7
-#: front/src/components/mixins/Translations.vue:8
-#: front/src/components/mixins/Translations.vue:10
-#: front/src/components/mixins/Translations.vue:11
-#: front/src/components/mixins/Translations.vue:16
-#: front/src/components/mixins/Translations.vue:17
-#: front/src/components/mixins/Translations.vue:18
-#: front/src/components/mixins/Translations.vue:19
-#: front/src/components/mixins/Translations.vue:20
-#: front/src/components/mixins/Translations.vue:21
-#: front/src/components/mixins/Translations.vue:22
-#: front/src/components/mixins/Translations.vue:23
-#: front/src/components/mixins/Translations.vue:24
-#: front/src/components/mixins/Translations.vue:25
-#: front/src/components/mixins/Translations.vue:26
-#: front/src/components/mixins/Translations.vue:27
-#: front/src/components/mixins/Translations.vue:28
-#: front/src/components/mixins/Translations.vue:29
-#: front/src/components/mixins/Translations.vue:30
-#: front/src/components/mixins/Translations.vue:31
-#: front/src/components/notifications/NotificationRow.vue:39
-#: front/src/components/notifications/NotificationRow.vue:40
-#: front/src/components/notifications/NotificationRow.vue:44
-#: front/src/components/notifications/NotificationRow.vue:45
-#: front/src/components/notifications/NotificationRow.vue:62
-#: front/src/components/playlists/Editor.vue:163
-#: src/components/playlists/Form.vue:74
-#: front/src/components/playlists/Form.vue:81
-#: src/components/playlists/Form.vue:85
-#: front/src/components/playlists/Form.vue:89
-#: front/src/components/playlists/PlaylistModal.vue:116
-#: front/src/components/playlists/TrackPlaylistIcon.vue:32
-#: front/src/components/requests/Form.vue:73
-#: src/components/requests/Form.vue:74
-#: front/src/components/requests/Form.vue:75 src/views/Notifications.vue:74
-#: front/src/views/admin/Settings.vue:75 src/views/admin/Settings.vue:80
-#: front/src/views/admin/Settings.vue:81 src/views/admin/Settings.vue:82
-#: front/src/views/admin/Settings.vue:83 src/views/admin/Settings.vue:84
-#: front/src/views/admin/Settings.vue:85 src/views/admin/Settings.vue:86
-#: front/src/views/admin/library/Base.vue:16
-#: src/views/admin/library/FilesList.vue:21
-#: front/src/views/admin/users/Base.vue:20
-#: front/src/views/admin/users/InvitationsList.vue:24
-#: front/src/views/admin/users/UsersDetail.vue:169
-#: front/src/views/admin/users/UsersDetail.vue:170
-#: front/src/views/admin/users/UsersDetail.vue:177
-#: front/src/views/admin/users/UsersDetail.vue:181
-#: front/src/views/admin/users/UsersDetail.vue:185
-#: front/src/views/admin/users/UsersDetail.vue:189
-#: front/src/views/admin/users/UsersList.vue:21
-#: src/views/auth/EmailConfirm.vue:51 front/src/views/auth/PasswordReset.vue:52
-#: src/views/auth/PasswordReset.vue:53
-#: front/src/views/auth/PasswordResetConfirm.vue:62
-#: src/views/content/Base.vue:19 front/src/views/content/Home.vue:35
-#: src/views/content/libraries/Card.vue:58
-#: front/src/views/content/libraries/Card.vue:59
-#: front/src/views/content/libraries/Card.vue:60
-#: front/src/views/content/libraries/Card.vue:61
-#: front/src/views/content/libraries/DetailArea.vue:24
-#: front/src/views/content/libraries/FilesTable.vue:226
-#: front/src/views/content/libraries/FilesTable.vue:229
-#: front/src/views/content/libraries/FilesTable.vue:230
-#: front/src/views/content/libraries/FilesTable.vue:233
-#: front/src/views/content/libraries/FilesTable.vue:234
-#: front/src/views/content/libraries/FilesTable.vue:237
-#: front/src/views/content/libraries/FilesTable.vue:238
-#: front/src/views/content/libraries/FilesTable.vue:241
-#: front/src/views/content/libraries/FilesTable.vue:242
-#: front/src/views/content/libraries/FilesTable.vue:258
-#: front/src/views/content/libraries/FilesTable.vue:259
-#: front/src/views/content/libraries/Form.vue:70
-#: front/src/views/content/libraries/Form.vue:71
-#: front/src/views/content/libraries/Form.vue:72
-#: front/src/views/content/libraries/Form.vue:73
-#: front/src/views/content/libraries/Form.vue:74
-#: front/src/views/content/libraries/Form.vue:106
-#: front/src/views/content/libraries/Form.vue:109
-#: front/src/views/content/libraries/Form.vue:129
-#: front/src/views/content/remote/Card.vue:131
-#: src/views/content/remote/Card.vue:132
-#: front/src/views/content/remote/Card.vue:165
-#: src/views/content/remote/Card.vue:166
-#: front/src/views/content/remote/ScanForm.vue:48
-#: src/views/instance/Timeline.vue:57 front/src/views/playlists/Detail.vue:90
-#: src/views/playlists/List.vue:104 front/src/views/playlists/List.vue:105
-#: src/views/radios/Detail.vue:80
+msgstr "Isso desativará completamente o acesso à API do Subsonic usando a conta."
+
+#: front/src/App.vue:129 src/components/Footer.vue:72
 msgid "This will erase your local data and disconnect you, do you want to continue?"
-msgid_plural "%{ count } tracks were added to your queue"
-msgstr[0] "Isso apagará seus dados locais e desconectará você. Deseja continuar?"
-msgstr[1] "%{ count } músicas foram adicionadas à sua fila"
+msgstr "Isso removerá seus dados locais e o desconectará, você quer continuar?"
 
 #: front/src/components/auth/SubsonicTokenForm.vue:36
 msgid "This will log you out from existing devices that use the current password."
-msgstr ""
-"Isto irá desconectá-lo a partir de dispositivos existentes que usam a senha "
-"atual."
+msgstr "Isto irá desconectá-lo a partir de dispositivos existentes que usam a senha atual."
 
 #: front/src/components/playlists/Editor.vue:44
 msgid "This will remove all tracks from this playlist and cannot be undone."
-msgstr ""
-"Isso removerá todas as músicas dessa playlist e não poderá ser desfeito."
-
-#: front/src/views/content/libraries/Quota.vue:90
-msgid "This will remove tracks that were uploaded but failed to be process by the server. This will remove those files completely and you will regain the corresponding quota."
-msgstr ""
-"Isso removerá as músicas que foram enviadas, mas não foram processadas pelo "
-"servidor. Isso removerá esses arquivos completamente e você recuperará a "
-"quota correspondente."
-
-#: front/src/views/content/libraries/Quota.vue:38
-msgid "This will remove tracks that were uploaded but not processed yet. This will remove those files completely and you will regain the corresponding quota."
-msgstr ""
-"Isso removerá as músicas que foram enviadas, mas ainda não foram "
-"processadas. Isso removerá esses arquivos completamente e você recuperará a "
-"quota correspondente."
-
-#: front/src/views/content/libraries/Quota.vue:64
-msgid "This will remove tracks that were uploaded but skipped during import processes for various reasons. This will remove those files completely and you will regain the corresponding quota."
-msgstr ""
-"Isso removerá as músicas que foram carregadas, mas foram ignoradas durante "
-"os processos de importação por vários motivos. Isso removerá esses arquivos "
-"completamente e você recuperará a quota correspondente."
+msgstr "Isso removerá todas as músicas dessa playlist e não poderá ser desfeito."
 
 #: front/src/components/audio/track/Table.vue:6
 #: front/src/components/manage/library/FilesTable.vue:37
-#: front/src/views/content/libraries/FilesTable.vue:51
-#: front/src/components/mixins/Translations.vue:26
+#: front/src/components/mixins/Translations.vue:27
+#: front/src/views/content/libraries/FilesTable.vue:54
+#: front/src/components/mixins/Translations.vue:28
 msgid "Title"
 msgstr "Título"
 
-#: front/src/components/library/Track.vue:53
+#: front/src/components/ShortcutsModal.vue:79
+msgid "Toggle queue looping"
+msgstr "Alternar looping de filas"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:288
+#: front/src/views/admin/moderation/DomainsDetail.vue:225
+msgid "Total size"
+msgstr "Tamanho total"
+
+#: front/src/views/content/libraries/Card.vue:61
+msgid "Total size of the files in this library"
+msgstr "Tamanho total dos arquivos nesta biblioteca"
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:113
+msgid "Total users"
+msgstr "Usuários totais"
+
+#: front/src/components/audio/SearchBar.vue:27
+#: src/components/library/Track.vue:262
+#: front/src/components/metadata/Search.vue:138
+msgid "Track"
+msgstr "Música"
+
+#: front/src/views/content/libraries/FilesTable.vue:205
+msgid "Track already present in one of your libraries"
+msgstr "Pista já disponível em uma de suas bibliotecas"
+
+#: front/src/components/library/Track.vue:85
 msgid "Track information"
 msgstr "Informação da música"
 
@@ -1902,14 +2565,25 @@ msgstr "Informação da música"
 msgid "Track matching filter"
 msgstr "Filtro de correspondência de músicas"
 
+#: front/src/components/mixins/Translations.vue:23
+#: front/src/components/mixins/Translations.vue:24
+msgid "Track name"
+msgstr "Título da música"
+
+#: front/src/views/content/libraries/FilesTable.vue:209
+msgid "Track uploaded, but not processed by the server yet"
+msgstr "Pista carregada, mas ainda não tratada pelo servidor"
+
 #: front/src/components/instance/Stats.vue:54
 msgid "tracks"
 msgstr "músicas"
 
-#: front/src/components/library/Album.vue:43
+#: front/src/components/library/Album.vue:81
 #: front/src/components/playlists/PlaylistModal.vue:33
-#: src/views/content/Base.vue:8 front/src/views/content/libraries/Detail.vue:8
-#: src/views/playlists/Detail.vue:50 front/src/views/radios/Detail.vue:34
+#: front/src/views/admin/moderation/AccountsDetail.vue:329
+#: front/src/views/admin/moderation/DomainsDetail.vue:265
+#: front/src/views/content/Base.vue:8 src/views/content/libraries/Detail.vue:8
+#: front/src/views/playlists/Detail.vue:50 src/views/radios/Detail.vue:34
 msgid "Tracks"
 msgstr "Músicas"
 
@@ -1925,11 +2599,17 @@ msgstr "Músicas favoritas"
 msgid "tracks listened"
 msgstr "músicas escutadas"
 
-#: front/src/components/library/Track.vue:91
+#: front/src/components/library/Track.vue:138
 #: front/src/components/manage/library/FilesTable.vue:41
+#: front/src/views/admin/moderation/AccountsDetail.vue:151
 msgid "Type"
 msgstr "Tipo"
 
+#: front/src/components/manage/moderation/AccountsTable.vue:44
+#: front/src/components/manage/moderation/DomainsTable.vue:42
+msgid "Under moderation rule"
+msgstr ""
+
 #: front/src/views/content/remote/Card.vue:100
 #: src/views/content/remote/Card.vue:105
 msgid "Unfollow"
@@ -1941,14 +2621,21 @@ msgstr "Deixar de seguir esta biblioteca?"
 
 #: front/src/components/About.vue:15
 msgid "Unfortunately, owners of this instance did not yet take the time to complete this page."
-msgstr ""
-"Infelizmente, os proprietários desta instância não ainda ter o tempo para "
-"preencher esta página."
+msgstr "Infelizmente, os proprietários desta instância não ainda ter o tempo para preencher esta página."
 
 #: front/src/components/Home.vue:37
 msgid "Unlimited music"
 msgstr "Música ilimitada"
 
+#: front/src/components/audio/Player.vue:351
+msgid "Unmute"
+msgstr "Cancelar mudo"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:45
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:57
+msgid "Update"
+msgstr "Atualizar"
+
 #: front/src/components/auth/Settings.vue:50
 msgid "Update avatar"
 msgstr "Atualizar avatar"
@@ -1957,6 +2644,10 @@ msgstr "Atualizar avatar"
 msgid "Update library"
 msgstr "Atualizar biblioteca"
 
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:3
+msgid "Update moderation rule"
+msgstr "Atualizar a regra de moderação"
+
 #: front/src/components/playlists/Form.vue:33
 msgid "Update playlist"
 msgstr "Atualizar playlist"
@@ -1970,9 +2661,7 @@ msgid "Update your password"
 msgstr "Atualize sua senha"
 
 #: front/src/views/content/libraries/Card.vue:44
-#: front/src/components/manage/users/UsersTable.vue:173
 #: front/src/views/content/libraries/DetailArea.vue:24
-#: front/src/views/admin/users/UsersDetail.vue:177
 msgid "Upload"
 msgstr "Carregar"
 
@@ -1984,12 +2673,19 @@ msgstr "Carregar um novo avatar"
 msgid "Upload audio content"
 msgstr "Carregar conteúdo de áudio"
 
-#: front/src/views/content/libraries/FilesTable.vue:54
+#: front/src/views/content/libraries/FilesTable.vue:57
 msgid "Upload date"
 msgstr "Data de upload"
 
+#: front/src/components/library/FileUpload.vue:219
+#: front/src/components/library/FileUpload.vue:220
+msgid "Upload denied, ensure the file is not too big and that you have not reached your quota"
+msgstr ""
+"Carregamento recusado, garantir que o arquivo não é muito grande e que você "
+"não atingiu sua cota"
+
 #: front/src/views/content/Home.vue:7
-msgid "Upload music files (mp3, ogg, flac, etc.) from your personal library directly from your browser to enjoy them here."
+msgid "Upload music files (MP3, OGG, FLAC, etc.) from your personal library directly from your browser to enjoy them here."
 msgstr ""
 "Carregue arquivos de música (mp3, ogg, flac, etc.) da sua biblioteca pessoal "
 "diretamente de seu navegador para apreciá-los aqui."
@@ -1998,32 +2694,47 @@ msgstr ""
 msgid "Upload new tracks"
 msgstr "Carregar novas músicas"
 
-#: front/src/views/admin/users/UsersDetail.vue:82
-#, fuzzy
+#: front/src/views/admin/moderation/AccountsDetail.vue:269
 msgid "Upload quota"
-msgstr "Quota de upload"
+msgstr "Carregar quota"
+
+#: front/src/components/library/FileUpload.vue:228
+msgid "Upload timeout, please try again"
+msgstr "Tempo limite de upload, por favor, tente novamente"
 
-#: front/src/components/library/FileUpload.vue:99
+#: front/src/components/library/FileUpload.vue:100
 msgid "Uploaded"
-msgstr ""
+msgstr "Carregado"
 
 #: front/src/components/library/FileUpload.vue:5
 msgid "Uploading"
-msgstr ""
+msgstr "Carregamento"
 
-#: front/src/components/library/FileUpload.vue:102
-msgid "Uploading..."
-msgstr ""
+#: front/src/components/library/FileUpload.vue:103
+msgid "Uploading…"
+msgstr "Carregando…"
+
+#: front/src/components/manage/moderation/AccountsTable.vue:41
+#: front/src/components/mixins/Translations.vue:37
+#: front/src/views/admin/moderation/AccountsDetail.vue:305
+#: front/src/views/admin/moderation/DomainsDetail.vue:241
+#: front/src/components/mixins/Translations.vue:38
+msgid "Uploads"
+msgstr "Envios"
 
-#: front/src/App.vue:44
+#: front/src/components/Footer.vue:16
 msgid "Use another instance"
 msgstr "Use outra instância"
 
 #: front/src/views/auth/PasswordReset.vue:12
 msgid "Use this form to request a password reset. We will send an email to the given address with instructions to reset your password."
+msgstr "Use este formulário para solicitar uma redefinição de senha. Enviaremos um email para o endereço fornecido com instruções para redefinir sua senha."
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:111
+msgid "Use this setting to temporarily enable/disable the policy without completely removing it."
 msgstr ""
-"Use este formulário para solicitar uma redefinição de senha. Enviaremos um "
-"email para o endereço fornecido com instruções para redefinir sua senha."
+"Use esta configuração para ativar/desativar temporariamente a política sem "
+"removê-la completamente."
 
 #: front/src/components/manage/users/InvitationsTable.vue:49
 msgid "Used"
@@ -2037,9 +2748,9 @@ msgstr "Usuário"
 msgid "User activity"
 msgstr "Atividade do usuário"
 
-#: front/src/components/library/Album.vue:49
+#: front/src/components/library/Album.vue:88
 #: src/components/library/Artist.vue:60
-#: front/src/components/library/Track.vue:122
+#: front/src/components/library/Track.vue:168
 msgid "User libraries"
 msgstr "Bibliotecas do usuário"
 
@@ -2049,7 +2760,9 @@ msgstr "Rádios do usuário"
 
 #: front/src/components/auth/Signup.vue:19
 #: front/src/components/manage/users/UsersTable.vue:37
-#: front/src/components/mixins/Translations.vue:32
+#: front/src/components/mixins/Translations.vue:33
+#: front/src/views/admin/moderation/AccountsDetail.vue:85
+#: front/src/components/mixins/Translations.vue:34
 msgid "Username"
 msgstr "Nome de usuário"
 
@@ -2061,12 +2774,24 @@ msgstr "Nome de usuário ou email"
 msgid "users"
 msgstr "usuários"
 
-#: front/src/components/Sidebar.vue:94 src/views/admin/users/Base.vue:5
-#: front/src/views/admin/users/UsersList.vue:3
-#: src/views/admin/users/UsersList.vue:21 front/src/views/admin/Settings.vue:81
+#: front/src/components/Sidebar.vue:91
+#: front/src/components/manage/moderation/DomainsTable.vue:39
+#: front/src/components/mixins/Translations.vue:35
+#: src/views/admin/Settings.vue:81 front/src/views/admin/users/Base.vue:5
+#: src/views/admin/users/UsersList.vue:3
+#: front/src/views/admin/users/UsersList.vue:21
+#: front/src/components/mixins/Translations.vue:36
 msgid "Users"
 msgstr "Usuários"
 
+#: front/src/components/Footer.vue:29
+msgid "Using Funkwhale"
+msgstr "Usando Funkwhale"
+
+#: front/src/components/Footer.vue:13
+msgid "Version %{version}"
+msgstr "Versão %{version}"
+
 #: front/src/views/content/libraries/Quota.vue:29
 #: front/src/views/content/libraries/Quota.vue:56
 #: front/src/views/content/libraries/Quota.vue:82
@@ -2075,9 +2800,9 @@ msgstr "Ver ficheiros"
 
 #: front/src/components/library/Album.vue:37
 #: src/components/library/Artist.vue:35
-#: front/src/components/library/Track.vue:44
-#: front/src/components/metadata/ReleaseCard.vue:53
+#: front/src/components/library/Track.vue:51
 #: front/src/components/metadata/ArtistCard.vue:49
+#: front/src/components/metadata/ReleaseCard.vue:53
 msgid "View on MusicBrainz"
 msgstr "Ver no MusicBrainz"
 
@@ -2085,6 +2810,22 @@ msgstr "Ver no MusicBrainz"
 msgid "Visibility"
 msgstr "Visibilidade"
 
+#: front/src/views/content/libraries/Card.vue:59
+msgid "Visibility: everyone on this instance"
+msgstr "Visibilidade: todos nesta instância"
+
+#: front/src/views/content/libraries/Card.vue:60
+msgid "Visibility: everyone, including other instances"
+msgstr "Visibilidade: todos, incluindo outras instâncias"
+
+#: front/src/views/content/libraries/Card.vue:58
+msgid "Visibility: nobody except me"
+msgstr "Visibilidade: ninguém exceto eu"
+
+#: front/src/components/library/Album.vue:67
+msgid "Volume %{ number }"
+msgstr "Volume %{ number }"
+
 #: front/src/components/playlists/PlaylistModal.vue:20
 msgid "We cannot add the track to a playlist"
 msgstr "Não podemos adicionar a música a uma playlist"
@@ -2097,6 +2838,10 @@ msgstr "Não podemos criar a playlist"
 msgid "We cannot create your account"
 msgstr "Não podemos criar sua conta"
 
+#: front/src/components/audio/Player.vue:64
+msgid "We cannot load this track"
+msgstr "Não podemos carregar esta pista"
+
 #: front/src/components/auth/Login.vue:7
 msgid "We cannot log you in"
 msgstr "Nós não podemos te logar"
@@ -2113,18 +2858,17 @@ msgstr "Não podemos salvar suas configurações"
 msgid "We do not track you or bother you with ads"
 msgstr "Nós não rastreamos ou incomodamos você com anúncios"
 
-#: front/src/views/Notifications.vue:26
-msgid "We don't have any notification to display!"
-msgstr "Não temos nenhuma notificação para exibir!"
+#: front/src/components/library/Track.vue:95
+msgid "We don't have any copyright information for this track"
+msgstr "Nós não temos nenhuma informação de copyright para esta pista"
 
-#: front/src/views/content/Home.vue:4
-msgid "We offer various way to grab new content and make it available here."
-msgstr ""
-"Oferecemos várias maneiras de pegar novos conteúdos e disponibilizá-los aqui."
+#: front/src/components/library/Track.vue:106
+msgid "We don't have any licensing information for this track"
+msgstr "Não temos nenhuma informação de licença para esta pista"
 
 #: front/src/components/library/FileUpload.vue:40
-msgid "we recommend using Picard for that purpose"
-msgstr "recomendamos o uso do Picard para esse fim"
+msgid "We recommend using Picard for that purpose."
+msgstr "Recomendamos usar o Picard para esse fim."
 
 #: front/src/components/Home.vue:7
 msgid "We think listening to music should be simple."
@@ -2134,9 +2878,9 @@ msgstr "Nós achamos que ouvir música deveria ser simples."
 msgid "We're sorry, the page you asked for does not exist:"
 msgstr "Desculpe, a página que você pediu não existe:"
 
-#: front/src/components/requests/Form.vue:21
-msgid "We've received your request, you'll get some groove soon ;)"
-msgstr ""
+#: front/src/components/Home.vue:153
+msgid "Welcome"
+msgstr "Bem-vindo"
 
 #: front/src/components/Home.vue:5
 msgid "Welcome on Funkwhale"
@@ -2146,7 +2890,17 @@ msgstr "Bem-vindo ao Funkwhale"
 msgid "Why funkwhale?"
 msgstr "Por que o funkwhale?"
 
-#: front/src/components/Sidebar.vue:115
+#: front/src/components/audio/EmbedWizard.vue:13
+msgid "Widget height"
+msgstr "Altura do widget"
+
+#: front/src/components/audio/EmbedWizard.vue:6
+msgid "Widget width"
+msgstr "Largura do widget"
+
+#: front/src/components/Sidebar.vue:118
+#: front/src/components/manage/moderation/AccountsTable.vue:72
+#: front/src/components/manage/moderation/DomainsTable.vue:58
 msgid "Yes"
 msgstr "Sim"
 
@@ -2154,11 +2908,15 @@ msgstr "Sim"
 msgid "Yes, log me out!"
 msgstr "Sim, me desconecte!"
 
+#: front/src/views/content/libraries/Form.vue:19
+msgid "You are able to share your library with other people, regardless of its visibility."
+msgstr ""
+"Você pode compartilhar sua biblioteca com outras pessoas, independentemente "
+"de sua visibilidade."
+
 #: front/src/components/library/FileUpload.vue:33
 msgid "You are about to upload music to your library. Before proceeding, please ensure that:"
-msgstr ""
-"Você está prestes a fazer o upload de músicas para sua biblioteca. Antes de "
-"prosseguir, certifique-se de que:"
+msgstr "Você está prestes a fazer o upload de músicas para sua biblioteca. Antes de prosseguir, certifique-se de que:"
 
 #: front/src/components/auth/Logout.vue:7
 msgid "You are currently logged in as %{ username }"
@@ -2166,43 +2924,44 @@ msgstr "Você está logado como %{ username }"
 
 #: front/src/views/content/Home.vue:17
 msgid "You can follow libraries from other users to get access to new music. Public libraries can be followed immediatly, while following a private library requires approval from its owner."
-msgstr ""
-"Você pode seguir bibliotecas de outros usuários para obter acesso a novas "
-"músicas. Bibliotecas públicas podem ser seguidas imediatamente, enquanto "
-"seguir uma biblioteca privada requer aprovação de seu proprietário."
+msgstr "Você pode seguir bibliotecas de outros usuários para obter acesso a novas músicas. Bibliotecas públicas podem ser seguidas imediatamente, enquanto seguir uma biblioteca privada requer aprovação de seu proprietário."
 
 #: front/src/components/Home.vue:133
 msgid "You can invite friends and family to your instance so they can enjoy your music"
-msgstr ""
-"Você pode convidar amigos e familia para sua instância para que eles possam "
-"curtir sua música"
+msgstr "Você pode convidar amigos e familia para sua instância para que eles possam curtir sua música"
+
+#: front/src/views/auth/EmailConfirm.vue:24
+msgid "You can now use the service without limitations."
+msgstr "Agora você pode usar o serviço sem limitações."
 
 #: front/src/components/library/radios/Builder.vue:7
 msgid "You can use this interface to build your own custom radio, which will play tracks according to your criteria."
-msgstr ""
-"Você pode usar essa interface para construir a sua própria rádio que vai "
-"jogar músicas de acordo com seus critérios."
+msgstr "Você pode usar essa interface para construir a sua própria rádio que vai jogar músicas de acordo com seus critérios."
 
 #: front/src/components/auth/SubsonicTokenForm.vue:8
 msgid "You can use those to enjoy your playlist and music in offline mode, on your smartphone or tablet, for instance."
-msgstr ""
-"Você pode usá-los para curtir sua playlist e música no modo off-line, em seu "
-"smartphone ou tablet, por exemplo."
+msgstr "Você pode usá-los para curtir sua playlist e música no modo off-line, em seu smartphone ou tablet, por exemplo."
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:46
+msgid "You don't have any rule in place for this account."
+msgstr "Não tem nenhuma regra em vigor para esta conta."
 
-#: front/src/components/Sidebar.vue:147
+#: front/src/views/admin/moderation/DomainsDetail.vue:39
+msgid "You don't have any rule in place for this domain."
+msgstr "Você não tem nenhuma regra em vigor para este domínio."
+
+#: front/src/components/Sidebar.vue:158
 msgid "You have a radio playing"
 msgstr "Você tem um rádio tocando"
 
-#: front/src/App.vue:8
+#: front/src/components/audio/Player.vue:71
+msgid "You may have a connectivity issue."
+msgstr "Você pode ter um problema de conectividade."
+
+#: front/src/App.vue:17
 msgid "You need to select an instance in order to continue"
 msgstr "Você precisa selecionar uma instância para continuar"
 
-#: front/src/views/content/libraries/Form.vue:19
-msgid "You will be able to share your library with other people, regardless of it's visibility."
-msgstr ""
-"Você poderá compartilhar sua biblioteca com outras pessoas, "
-"independentemente de sua visibilidade."
-
 #: front/src/components/auth/Settings.vue:100
 msgid "You will be logged out from this session and have to log in with the new one"
 msgstr "Você será desconectado desta sessão e precisará fazer login com o novo"
@@ -2211,11 +2970,9 @@ msgstr "Você será desconectado desta sessão e precisará fazer login com o no
 msgid "You will have to update your password on your clients that use this password."
 msgstr "Você terá que atualizar sua senha em seus clientes que usam essa senha."
 
-#: front/src/views/auth/EmailConfirm.vue:24
-msgid "Your email address was confirmed, you can now use the service without limitations."
-msgstr ""
-"Seu endereço de e-mail foi confirmado, agora você pode usar o serviço sem "
-"limitações."
+#: front/src/components/favorites/List.vue:112
+msgid "Your Favorites"
+msgstr "Seus favoritos"
 
 #: front/src/components/Home.vue:114
 msgid "Your music, your way"
@@ -2231,416 +2988,4 @@ msgstr "Sua senha foi atualizada com sucesso."
 
 #: front/src/components/auth/Settings.vue:101
 msgid "Your Subsonic password will be changed to a new, random one, logging you out from devices that used the old Subsonic password"
-msgstr ""
-"Sua senha do Subsonic será alterada para uma nova, aleatória, efetuando o "
-"logout de dispositivos que usaram a senha antiga do Subsonic"
-
-#: front/src/components/mixins/Translations.vue:8
-msgid "Activity visibility"
-msgstr "Visibilidade da atividade"
-
-#: front/src/components/mixins/Translations.vue:9
-msgid "Determine the visibility level of your activity"
-msgstr "Determinar o nível de visibilidade de sua atividade"
-
-#: front/src/components/mixins/Translations.vue:11
-#: front/src/components/playlists/Form.vue:81
-#: src/views/content/libraries/Form.vue:72
-msgid "Nobody except me"
-msgstr "Ninguém, exceto eu"
-
-#: front/src/components/mixins/Translations.vue:12
-#: front/src/components/playlists/Form.vue:85
-#: src/views/content/libraries/Form.vue:73
-msgid "Everyone on this instance"
-msgstr "Todos nessa instância"
-
-#: front/src/components/mixins/Translations.vue:18
-msgid "Accessed date"
-msgstr "Data de acesso"
-
-#: front/src/components/mixins/Translations.vue:19
-msgid "Modification date"
-msgstr "Data de modificação"
-
-#: front/src/components/mixins/Translations.vue:20
-msgid "Imported date"
-msgstr "Data de importação"
-
-#: front/src/components/mixins/Translations.vue:22
-msgid "Track name"
-msgstr "Título da música"
-
-#: front/src/components/mixins/Translations.vue:23
-msgid "Album name"
-msgstr "Nome do álbum"
-
-#: front/src/components/mixins/Translations.vue:30
-msgid "Sign-up date"
-msgstr "Data de inscrição"
-
-#: front/src/components/playlists/Editor.vue:163
-msgid "Copy tracks from current queue to playlist"
-msgstr "Copiar músicas da fila atual para a playlist"
-
-#: front/src/components/playlists/PlaylistModal.vue:116
-msgid "Add to this playlist"
-msgstr "Adicionar a esta playlist"
-
-#: front/src/components/playlists/Form.vue:74
-msgid "My awesome playlist"
-msgstr "Minha playlist incrível"
-
-#: front/src/components/playlists/Form.vue:89
-msgid "Everyone"
-msgstr "Todo o mundo"
-
-#: front/src/components/auth/Signup.vue:95
-msgid "Sign Up"
-msgstr "Inscrever-se"
-
-#: front/src/components/auth/Signup.vue:96
-msgid "Enter your invitation code (case insensitive)"
-msgstr "Indicar seu código de convite (não diferencia maiúsculas de minúsculas)"
-
-#: front/src/components/auth/Signup.vue:97
-msgid "Enter your username"
-msgstr "Indicar seu nome de usuário"
-
-#: front/src/components/auth/Signup.vue:98
-msgid "Enter your email"
-msgstr "Insira seu email"
-
-#: front/src/components/auth/SubsonicTokenForm.vue:95
-msgid "Password updated"
-msgstr "Senha atualizada"
-
-#: front/src/components/auth/SubsonicTokenForm.vue:111
-msgid "Access disabled"
-msgstr "Acesso desativado"
-
-#: front/src/components/auth/Login.vue:77
-msgid "Enter your username or email"
-msgstr "Indicar seu nome de usuário ou email"
-
-#: front/src/components/auth/Login.vue:78
-msgid "Log In"
-msgstr "Autenticação"
-
-#: front/src/components/auth/Profile.vue:47
-msgid "%{ username }'s profile"
-msgstr "%{ username } perfil"
-
-#: front/src/components/auth/Logout.vue:20
-msgid "Log Out"
-msgstr "Sair"
-
-#: front/src/components/auth/Settings.vue:249
-msgid "Account Settings"
-msgstr "Configurações da conta"
-
-#: front/src/components/favorites/TrackFavoriteIcon.vue:19
-msgid "Remove from favorites"
-msgstr "Remover dos favoritos"
-
-#: front/src/components/favorites/List.vue:110
-msgid "Your Favorites"
-msgstr "Seus favoritos"
-
-#: front/src/components/library/Radios.vue:141
-msgid "Enter a radio name..."
-msgstr "Indicar um nome de rádio ..."
-
-#: front/src/components/library/radios/Builder.vue:233
-msgid "Radio Builder"
-msgstr "Construtor de rádio"
-
-#: front/src/components/library/radios/Builder.vue:235
-msgid "My awesome radio"
-msgstr "Meu rádio incrível"
-
-#: front/src/components/library/radios/Builder.vue:236
-msgid "My awesome description"
-msgstr "Minha descrição incrível"
-
-#: front/src/components/library/FileUpload.vue:238
-msgid "Upload refused, ensure the file is not too big and you have not reached your quota"
-msgstr ""
-"Upload recusado, verifique se o ficheiro não é muito grande e se você não "
-"atingiu sua quota"
-
-#: front/src/components/library/FileUpload.vue:239
-msgid "Impossible to upload this file, ensure it is not too big"
-msgstr "Impossível carregar este ficheiro, garantir que não é muito grande"
-
-#: front/src/components/library/FileUpload.vue:240
-msgid "A network error occured while uploading this file"
-msgstr "Ocorreu um erro durante o upload deste ficheiro"
-
-#: front/src/components/library/FileUpload.vue:241
-msgid "Upload timeout, please try again"
-msgstr "Tempo limite de upload, por favor, tente novamente"
-
-#: front/src/components/library/Artists.vue:119
-msgid "Enter an artist name..."
-msgstr "Indicar um nome de artista ..."
-
-#: front/src/components/library/Track.vue:195
-#: src/components/audio/SearchBar.vue:27
-#: front/src/components/metadata/Search.vue:138
-msgid "Track"
-msgstr "Música"
-
-#: front/src/components/library/Home.vue:65
-msgid "Home"
-msgstr "Casa"
-
-#: front/src/components/forms/PasswordInput.vue:25
-msgid "Show/hide password"
-msgstr "Mostrar/ocultar senha"
-
-#: front/src/components/requests/Form.vue:73
-msgid "The Beatles, Mickael Jackson…"
-msgstr "The Beatles, Mickael Jackson…"
-
-#: front/src/components/requests/Form.vue:74
-msgid "The White Album, Thriller…"
-msgstr "The White Album, Thriller…"
-
-#: front/src/components/requests/Form.vue:75
-msgid "Use this comment box to add details to your request if needed"
-msgstr ""
-"Use esta caixa de comentários para adicionar detalhes à sua solicitação, se "
-"necessário"
-
-#: front/src/components/audio/PlayButton.vue:158
-msgid "%{ count } track was added to your queue"
-msgid_plural "%{ count } tracks were added to your queue"
-msgstr[0] "%{ count } música foi adicionada à sua fila"
-msgstr[1] "%{ count } músicas foram adicionadas à sua fila"
-
-#: front/src/components/audio/Search.vue:65
-msgid "Artist, album, track..."
-msgstr "Artista, álbum, música ..."
-
-#: front/src/components/audio/SearchBar.vue:20
-msgid "Search for artists, albums, tracks..."
-msgstr "Procurar artistas, álbuns, músicas..."
-
-#: front/src/components/audio/Player.vue:216
-msgid "Queue shuffled!"
-msgstr ""
-
-#: front/src/components/audio/Player.vue:273
-msgid "Previous track"
-msgstr "Música anterior"
-
-#: front/src/components/audio/Player.vue:274
-msgid "Play track"
-msgstr "Jogar mũsica"
-
-#: front/src/components/audio/Player.vue:275
-msgid "Pause track"
-msgstr "Parar música"
-
-#: front/src/components/audio/Player.vue:276
-msgid "Next track"
-msgstr "Música seguinte"
-
-#: front/src/components/audio/Player.vue:277
-msgid "Unmute"
-msgstr "Cancelar mudo"
-
-#: front/src/components/audio/Player.vue:278
-msgid "Mute"
-msgstr "Mudo"
-
-#: front/src/components/audio/Player.vue:279
-msgid "Looping disabled. Click to switch to single-track looping."
-msgstr "Looping desativado. Clique para alternar para um loop de musica única."
-
-#: front/src/components/audio/Player.vue:280
-msgid "Looping on a single track. Click to switch to whole queue looping."
-msgstr "Looping em uma única música. Clique para alternar para todo o loop da fila."
-
-#: front/src/components/audio/Player.vue:281
-msgid "Looping on whole queue. Click to disable looping."
-msgstr "Looping na fila inteira. Clique para desativar o loop."
-
-#: front/src/components/audio/Player.vue:282
-msgid "Shuffle your queue"
-msgstr ""
-
-#: front/src/components/audio/Player.vue:283
-msgid "Clear your queue"
-msgstr "Limpar sua fila"
-
-#: front/src/components/Sidebar.vue:203
-msgid "Pending import requests"
-msgstr "Pedidos de importação pendentes"
-
-#: front/src/components/Sidebar.vue:204
-msgid "Pending follow requests"
-msgstr ""
-
-#: front/src/components/metadata/Search.vue:114
-msgid "Enter your search query..."
-msgstr "Insira sua consulta de pesquisa ..."
-
-#: front/src/components/manage/library/FilesTable.vue:176
-msgid "Search by title, artist, domain..."
-msgstr "Pesquisa por título, artista, domínio..."
-
-#: front/src/components/manage/users/InvitationForm.vue:58
-msgid "Leave empty for a random code"
-msgstr "Deixar vazio para um código aleatório"
-
-#: front/src/components/manage/users/InvitationsTable.vue:153
-msgid "Search by username, email, code..."
-msgstr "Pesquisa por nome de usuário, e-mail, código ..."
-
-#: front/src/components/manage/users/UsersTable.vue:163
-msgid "Search by username, email, name..."
-msgstr "Pesquisa por nome de usuário, e-mail, nome..."
-
-#: front/src/components/manage/users/UsersTable.vue:181
-#: front/src/views/admin/users/UsersDetail.vue:185
-#: src/views/admin/Settings.vue:83
-msgid "Federation"
-msgstr "Federação"
-
-#: front/src/components/Home.vue:154
-msgid "Welcome"
-msgstr "Bem-vindo"
-
-#: front/src/views/content/remote/ScanForm.vue:48
-msgid "Enter a library url"
-msgstr "Insira um URL de biblioteca"
-
-#: front/src/views/content/remote/Card.vue:165
-msgid "Scan launched"
-msgstr "Análise iniciada"
-
-#: front/src/views/content/remote/Card.vue:166
-msgid "Scan skipped (previous scan is too recent)"
-msgstr "Análise ignorada (a análise anterior é muito recente)"
-
-#: front/src/views/content/libraries/FilesTable.vue:226
-msgid "Search by title, artist, album..."
-msgstr "Pesquisa por título, artista, álbum ..."
-
-#: front/src/views/content/libraries/FilesTable.vue:230
-msgid "Track was already present in one of your libraries"
-msgstr "A música já estava presente em uma de suas bibliotecas"
-
-#: front/src/views/content/libraries/FilesTable.vue:234
-msgid "Track is uploaded but not processed by the server yet"
-msgstr "Música é carregada, mas ainda não é processada pelo servidor"
-
-#: front/src/views/content/libraries/FilesTable.vue:238
-msgid "An error occured while processing this track, ensure the track is correctly tagged"
-msgstr ""
-"Ocorreu um erro durante o processamento desta música, certifique-se de que a "
-"música está corretamente etiquetada"
-
-#: front/src/views/content/libraries/FilesTable.vue:242
-msgid "Import went on successfully"
-msgstr "A importação foi bem sucedida"
-
-#: front/src/views/content/libraries/FilesTable.vue:259
-msgid "Relaunch import"
-msgstr "Reinicie a importação"
-
-#: front/src/views/content/libraries/Card.vue:58
-msgid "Visibility: nobody except me"
-msgstr "Visibilidade: ninguém exceto eu"
-
-#: front/src/views/content/libraries/Card.vue:59
-msgid "Visibility: everyone on this instance"
-msgstr "Visibilidade: todos nesta instância"
-
-#: front/src/views/content/libraries/Card.vue:60
-msgid "Visibility: everyone, including other instances"
-msgstr "Visibilidade: todos, incluindo outras instâncias"
-
-#: front/src/views/content/libraries/Card.vue:61
-msgid "Total size of the files in this library"
-msgstr "Tamanho total dos arquivos nesta biblioteca"
-
-#: front/src/views/content/libraries/Form.vue:70
-msgid "My awesome library"
-msgstr "Minha biblioteca incrível"
-
-#: front/src/views/content/libraries/Form.vue:71
-msgid "This library contains my personnal music, I hope you will like it!"
-msgstr "Esta biblioteca contém minha música pessoal, espero que você goste!"
-
-#: front/src/views/content/libraries/Form.vue:74
-msgid "Everyone, including other instances"
-msgstr "Todos, incluindo outras instâncias"
-
-#: front/src/views/content/libraries/Form.vue:106
-msgid "Library updated"
-msgstr "Biblioteca atualizada"
-
-#: front/src/views/content/libraries/Form.vue:109
-msgid "Library created"
-msgstr "Biblioteca criada"
-
-#: front/src/views/content/Home.vue:35
-msgid "Add and manage content"
-msgstr "Adicionar e gerenciar conteúdo"
-
-#: front/src/views/radios/Detail.vue:80
-msgid "Radio"
-msgstr "Rádio"
-
-#: front/src/views/instance/Timeline.vue:57
-msgid "Instance Timeline"
-msgstr "Linha do tempo da instância"
-
-#: front/src/views/playlists/Detail.vue:90
-msgid "Playlist"
-msgstr "Playlist"
-
-#: front/src/views/playlists/List.vue:105
-msgid "Enter an playlist name..."
-msgstr "Indicar um nome de playlist..."
-
-#: front/src/views/admin/library/Base.vue:16
-msgid "Manage library"
-msgstr "Gerenciar biblioteca"
-
-#: front/src/views/admin/users/UsersDetail.vue:169
-msgid "Determine if the user account is active or not. Inactive users cannot login or use the service."
-msgstr "Determine se a conta do usuário está ativa ou não. Usuários inativos não podem fazer autenticação ou usar o serviço."
-
-#: front/src/views/admin/users/UsersDetail.vue:170
-msgid "Determine how much content the user can upload. Leave empty to use the default value of the instance."
-msgstr ""
-"Determine quanto conteúdo o usuário pode enviar. Deixe em branco para usar o "
-"valor padrão da instância."
-
-#: front/src/views/admin/users/Base.vue:20
-msgid "Manage users"
-msgstr "Gerenciar usuários"
-
-#: front/src/views/admin/Settings.vue:75
-msgid "Instance settings"
-msgstr "Configurações da instância"
-
-#: front/src/views/admin/Settings.vue:80
-msgid "Instance information"
-msgstr "Informação da instância"
-
-#: front/src/views/admin/Settings.vue:84
-msgid "Subsonic"
-msgstr ""
-
-#: front/src/views/admin/Settings.vue:85
-msgid "Statistics"
-msgstr "Estatisticas"
-
-#: front/src/views/admin/Settings.vue:86
-msgid "Error reporting"
-msgstr "Relatório de erros"
+msgstr "Sua senha do Subsonic será alterada para uma nova, aleatória, efetuando o logout de dispositivos que usaram a senha antiga do Subsonic"
diff --git a/front/locales/ru/LC_MESSAGES/app.po b/front/locales/ru/LC_MESSAGES/app.po
new file mode 100644
index 0000000000000000000000000000000000000000..c45d8ba5a7e06776b2a75cdc863c7e50c32ea8df
--- /dev/null
+++ b/front/locales/ru/LC_MESSAGES/app.po
@@ -0,0 +1,3084 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the front package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: front 0.1.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2019-01-11 16:04+0100\n"
+"PO-Revision-Date: 2018-10-20 14:22+0000\n"
+"Last-Translator: noname <noname@inventati.org>\n"
+"Language-Team: none\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 2.20\n"
+
+#: front/src/components/playlists/PlaylistModal.vue:9
+msgid "\"%{ title }\", by %{ artist }"
+msgstr "\"%{ title }\" от %{ artist }"
+
+#: front/src/components/Sidebar.vue:24
+msgid "(%{ index } of %{ length })"
+msgstr "(%{ index } из %{ length })"
+
+#: front/src/components/Sidebar.vue:22
+msgid "(empty)"
+msgstr "(пусто)"
+
+#: front/src/components/common/ActionTable.vue:57
+#: front/src/components/common/ActionTable.vue:66
+#, fuzzy
+msgid "%{ count } on %{ total } selected"
+msgid_plural "%{ count } on %{ total } selected"
+msgstr[0] "выбран %{ count } из %{ total }"
+msgstr[1] "выбрано %{ count } из %{ total }"
+msgstr[2] "выбрано %{ count } из %{ total }"
+
+#: front/src/components/Sidebar.vue:110 src/components/audio/album/Card.vue:54
+#: front/src/views/content/libraries/Card.vue:39
+#: src/views/content/remote/Card.vue:26
+msgid "%{ count } track"
+msgid_plural "%{ count } tracks"
+msgstr[0] "%{ count } трек"
+msgstr[1] "%{ count } трека"
+msgstr[2] "%{ count } треков"
+
+#: front/src/components/library/Artist.vue:13
+msgid "%{ count } track in %{ albumsCount } albums"
+msgid_plural "%{ count } tracks in %{ albumsCount } albums"
+msgstr[0] "%{ count } трек из %{ albumsCount } альбомов"
+msgstr[1] "%{ count } трека из %{ albumsCount } альбомов"
+msgstr[2] "%{ count } треков из %{ albumsCount } альбомов"
+
+#: front/src/components/library/radios/Builder.vue:80
+msgid "%{ count } track matching combined filters"
+msgid_plural "%{ count } tracks matching combined filters"
+msgstr[0] "%{ count } подходящий трек"
+msgstr[1] "%{ count } подходящих трека"
+msgstr[2] "%{ count } подходящих треков"
+
+#: front/src/components/audio/PlayButton.vue:180
+msgid "%{ count } track was added to your queue"
+msgid_plural "%{ count } tracks were added to your queue"
+msgstr[0] "%{ count } трек добавлен в вашу очередь"
+msgstr[1] "%{ count } трека добавлено в вашу очередь"
+msgstr[2] "%{ count } треков добавлено в вашу очередь"
+
+#: front/src/components/playlists/Card.vue:18
+msgid "%{ count} track"
+msgid_plural "%{ count } tracks"
+msgstr[0] "%{ count} трек"
+msgstr[1] "%{ count } трека"
+msgstr[2] "%{ count } треков"
+
+#: front/src/views/content/libraries/Quota.vue:11
+#, fuzzy
+msgid "%{ current } used on %{ max } allowed"
+msgstr "%{ current } использовано из доступных %{ max }"
+
+#: front/src/components/common/Duration.vue:2
+msgid "%{ hours } h %{ minutes } min"
+msgstr "%{ hours } ч %{ minutes } мин"
+
+#: front/src/components/common/Duration.vue:5
+msgid "%{ minutes } min"
+msgstr "%{ minutes } мин"
+
+#: front/src/components/notifications/NotificationRow.vue:40
+msgid "%{ username } accepted your follow on library \"%{ library }\""
+msgstr ""
+
+#: front/src/components/notifications/NotificationRow.vue:39
+msgid "%{ username } followed your library \"%{ library }\""
+msgstr ""
+
+#: front/src/components/auth/Profile.vue:46
+msgid "%{ username }'s profile"
+msgstr "Профиль %{ username }"
+
+#: front/src/components/Footer.vue:5
+msgid "<translate :translate-params=\"{instanceName: instanceHostname}\">About %{instanceName}</translate>"
+msgstr ""
+
+#: front/src/components/audio/artist/Card.vue:41
+msgid "1 album"
+msgid_plural "%{ count } albums"
+msgstr[0] "1 альбом"
+msgstr[1] "%{ count } альбома"
+msgstr[2] "%{ count } альбомов"
+
+#: front/src/components/favorites/List.vue:10
+msgid "1 favorite"
+msgid_plural "%{ count } favorites"
+msgstr[0] "1 избранный"
+msgstr[1] "%{ count } избранных"
+msgstr[2] "%{ count } избранных"
+
+#: front/src/components/library/FileUpload.vue:225
+#: front/src/components/library/FileUpload.vue:226
+msgid "A network error occured while uploading this file"
+msgstr "При загрузке этого файла произошла сетевая ошибка"
+
+#: front/src/components/About.vue:5
+msgid "About %{ instance }"
+msgstr "О %{ instance }"
+
+#: front/src/components/Footer.vue:6
+#, fuzzy
+msgid "About %{instanceName}"
+msgstr "О %{ instance }"
+
+#: front/src/components/Footer.vue:45
+msgid "About Funkwhale"
+msgstr "О Funkwhale"
+
+#: front/src/components/Footer.vue:10
+#, fuzzy
+msgid "About page"
+msgstr "Страница альбома"
+
+#: front/src/components/About.vue:8 src/components/About.vue:64
+msgid "About this instance"
+msgstr "Об этом узле"
+
+#: front/src/views/content/libraries/Detail.vue:48
+msgid "Accept"
+msgstr "Принять"
+
+#: front/src/views/content/libraries/Detail.vue:40
+msgid "Accepted"
+msgstr "Подтверждено"
+
+#: front/src/components/auth/SubsonicTokenForm.vue:111
+msgid "Access disabled"
+msgstr "Доступ отключен"
+
+#: front/src/components/Home.vue:106
+msgid "Access your music from a clean interface that focus on what really matters"
+msgstr "Получайте доступ к вашей музыке из простого интерфейса который сфокусирован на том что действительно важно"
+
+#: front/src/components/mixins/Translations.vue:19
+#: front/src/components/mixins/Translations.vue:20
+msgid "Accessed date"
+msgstr ""
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:78
+#, fuzzy
+msgid "Account data"
+msgstr "Аккаунт активен"
+
+#: front/src/components/auth/Settings.vue:5
+msgid "Account settings"
+msgstr "Настройки аккаунта"
+
+#: front/src/components/auth/Settings.vue:264
+msgid "Account Settings"
+msgstr "Настройки аккаунта"
+
+#: front/src/components/manage/users/UsersTable.vue:39
+msgid "Account status"
+msgstr "Статус аккаунта"
+
+#: front/src/views/auth/PasswordReset.vue:14
+msgid "Account's email"
+msgstr "Электронная почта аккаунта"
+
+#: front/src/views/admin/moderation/AccountsList.vue:3
+#: front/src/views/admin/moderation/AccountsList.vue:24
+#: front/src/views/admin/moderation/Base.vue:8
+#, fuzzy
+msgid "Accounts"
+msgstr "Статус аккаунта"
+
+#: front/src/views/content/libraries/Detail.vue:29
+msgid "Action"
+msgstr "Действие"
+
+#: front/src/components/common/ActionTable.vue:99
+msgid "Action %{ action } was launched successfully on %{ count } element"
+msgid_plural "Action %{ action } was launched successfully on %{ count } elements"
+msgstr[0] "Действие %{ action } было успешно запущено на %{ count } элементе"
+msgstr[1] "Действие %{ action } было успешно запущено на %{ count } элементах"
+msgstr[2] "Действие %{ action } было успешно запущено на %{ count } элементах"
+
+#: front/src/components/common/ActionTable.vue:21
+#: front/src/components/library/radios/Builder.vue:64
+msgid "Actions"
+msgstr "Действия"
+
+#: front/src/components/manage/users/UsersTable.vue:53
+#, fuzzy
+msgid "Active"
+msgstr "Активен(на)"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:199
+#: front/src/views/admin/moderation/DomainsDetail.vue:144
+msgid "Activity"
+msgstr "Активность"
+
+#: front/src/components/mixins/Translations.vue:7
+#: front/src/components/mixins/Translations.vue:8
+msgid "Activity visibility"
+msgstr "Видимость активности"
+
+#: front/src/views/admin/moderation/DomainsList.vue:18
+msgid "Add"
+msgstr ""
+
+#: front/src/views/admin/moderation/DomainsList.vue:13
+msgid "Add a domain"
+msgstr ""
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:4
+msgid "Add a new moderation rule"
+msgstr ""
+
+#: front/src/views/content/Home.vue:35
+msgid "Add and manage content"
+msgstr "Добавить или управлять содержимым"
+
+#: front/src/components/Sidebar.vue:75 src/views/content/Base.vue:18
+msgid "Add content"
+msgstr "Добавить содержимое"
+
+#: front/src/components/library/radios/Builder.vue:50
+msgid "Add filter"
+msgstr "Добавить фильтр"
+
+#: front/src/components/library/radios/Builder.vue:40
+msgid "Add filters to customize your radio"
+msgstr "Добавить фильтры чтобы кастомизировать своё радио"
+
+#: front/src/components/audio/PlayButton.vue:64
+#, fuzzy
+msgid "Add to current queue"
+msgstr "Добавить в очередь"
+
+#: front/src/components/favorites/TrackFavoriteIcon.vue:4
+#: front/src/components/favorites/TrackFavoriteIcon.vue:28
+msgid "Add to favorites"
+msgstr "Добавить в избранное"
+
+#: front/src/components/playlists/TrackPlaylistIcon.vue:6
+#: front/src/components/playlists/TrackPlaylistIcon.vue:34
+#, fuzzy
+msgid "Add to playlist…"
+msgstr "Добавить в список воспроизведения..."
+
+#: front/src/components/audio/PlayButton.vue:14
+msgid "Add to queue"
+msgstr "Добавить в очередь"
+
+#: front/src/components/playlists/PlaylistModal.vue:116
+msgid "Add to this playlist"
+msgstr "Добавить в этот список воспроизведения"
+
+#: front/src/components/playlists/PlaylistModal.vue:54
+msgid "Add track"
+msgstr "Добавить трек"
+
+#: front/src/components/manage/users/UsersTable.vue:69
+msgid "Admin"
+msgstr "Администратор"
+
+#: front/src/components/Sidebar.vue:79
+msgid "Administration"
+msgstr "Администрирование"
+
+#: front/src/components/audio/SearchBar.vue:26
+#: src/components/audio/track/Table.vue:8
+#: front/src/components/library/Album.vue:159
+#: front/src/components/manage/library/FilesTable.vue:39
+#: front/src/components/metadata/Search.vue:134
+#: front/src/views/content/libraries/FilesTable.vue:56
+msgid "Album"
+msgstr "Альбом"
+
+#: front/src/components/library/Album.vue:12
+msgid "Album containing %{ count } track, by %{ artist }"
+msgid_plural "Album containing %{ count } tracks, by %{ artist }"
+msgstr[0] "Альбом содержит %{ count } трек от %{ artist }"
+msgstr[1] "Альбом содержит %{ count } трека от %{ artist }"
+msgstr[2] "Альбом содержит %{ count } треков от %{ artist }"
+
+#: front/src/components/mixins/Translations.vue:24
+#: front/src/components/mixins/Translations.vue:25
+msgid "Album name"
+msgstr "Название альбома"
+
+#: front/src/components/library/Track.vue:27
+msgid "Album page"
+msgstr "Страница альбома"
+
+#: front/src/components/audio/Search.vue:19
+#: src/components/instance/Stats.vue:48
+#: front/src/views/admin/moderation/AccountsDetail.vue:321
+#: front/src/views/admin/moderation/DomainsDetail.vue:257
+msgid "Albums"
+msgstr "Альбомы"
+
+#: front/src/components/library/Artist.vue:44
+msgid "Albums by this artist"
+msgstr "Альбомы этого исполнителя"
+
+#: front/src/components/manage/users/InvitationsTable.vue:19
+#: front/src/views/content/libraries/FilesTable.vue:13
+msgid "All"
+msgstr "Все"
+
+#: front/src/components/playlists/Editor.vue:13
+msgid "An error occured while saving your changes"
+msgstr "При сохранении ваших изменений произошла ошибка"
+
+#: front/src/components/auth/Login.vue:10
+#, fuzzy
+msgid "An unknown error happend, this can mean the server is down or cannot be reached"
+msgstr "Произошла неизвестная ошибка, возможно сервер перегружен или недоступен"
+
+#: front/src/components/notifications/NotificationRow.vue:62
+msgid "Approve"
+msgstr ""
+
+#: front/src/components/auth/Logout.vue:5
+msgid "Are you sure you want to log out?"
+msgstr "Вы уверены что хотите выйти?"
+
+#: front/src/components/audio/SearchBar.vue:25
+#: src/components/audio/track/Table.vue:7
+#: front/src/components/library/Artist.vue:137
+#: front/src/components/manage/library/FilesTable.vue:38
+#: front/src/components/metadata/Search.vue:130
+#: front/src/views/content/libraries/FilesTable.vue:55
+msgid "Artist"
+msgstr "Исполнитель"
+
+#: front/src/components/mixins/Translations.vue:25
+#: front/src/components/mixins/Translations.vue:26
+msgid "Artist name"
+msgstr "Имя исполнителя"
+
+#: front/src/components/library/Album.vue:22
+#: src/components/library/Track.vue:33
+msgid "Artist page"
+msgstr "Страница исполнителя"
+
+#: front/src/components/audio/Search.vue:65
+#, fuzzy
+msgid "Artist, album, track…"
+msgstr "Исполнитель, альбом, трек..."
+
+#: front/src/components/audio/Search.vue:10
+#: src/components/instance/Stats.vue:42
+#: front/src/components/library/Artists.vue:119
+#: src/components/library/Library.vue:7
+#: front/src/views/admin/moderation/AccountsDetail.vue:313
+#: front/src/views/admin/moderation/DomainsDetail.vue:249
+msgid "Artists"
+msgstr "Исполнители"
+
+#: front/src/components/favorites/List.vue:33
+#: src/components/library/Artists.vue:25
+#: front/src/components/library/Radios.vue:44
+#: front/src/components/manage/library/FilesTable.vue:19
+#: front/src/components/manage/moderation/AccountsTable.vue:21
+#: front/src/components/manage/moderation/DomainsTable.vue:19
+#: front/src/components/manage/users/UsersTable.vue:19
+#: front/src/views/content/libraries/FilesTable.vue:31
+#: front/src/views/playlists/List.vue:27
+msgid "Ascending"
+msgstr "По возрастанию"
+
+#: front/src/views/auth/PasswordReset.vue:27
+msgid "Ask for a password reset"
+msgstr "Сбросить пароль"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:245
+#: front/src/views/admin/moderation/DomainsDetail.vue:202
+#, fuzzy
+msgid "Audio content"
+msgstr "Добавить содержимое"
+
+#: front/src/components/ShortcutsModal.vue:55
+msgid "Audio player shortcuts"
+msgstr ""
+
+#: front/src/components/playlists/PlaylistModal.vue:26
+msgid "Available playlists"
+msgstr "Доступные списки воспроизведения"
+
+#: front/src/components/auth/Settings.vue:34
+msgid "Avatar"
+msgstr "Аватар"
+
+#: front/src/views/auth/PasswordReset.vue:24
+#: front/src/views/auth/PasswordResetConfirm.vue:18
+msgid "Back to login"
+msgstr "Назад ко входу"
+
+#: front/src/components/library/Track.vue:129
+#: front/src/components/manage/library/FilesTable.vue:42
+#: front/src/components/mixins/Translations.vue:29
+#: front/src/components/mixins/Translations.vue:30
+msgid "Bitrate"
+msgstr "Битрейт"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:19
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:34
+msgid "Block everything"
+msgstr ""
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:112
+msgid "Block everything from this account or domain. This will prevent any interaction with the entity, and purge related content (uploads, libraries, follows, etc.)"
+msgstr ""
+
+#: front/src/components/Sidebar.vue:18 src/components/library/Library.vue:4
+msgid "Browse"
+msgstr "Просмотр"
+
+#: front/src/components/Sidebar.vue:65
+msgid "Browse library"
+msgstr "Просмотр библиотеки"
+
+#: front/src/components/library/Artists.vue:4
+msgid "Browsing artists"
+msgstr "Просмотр исполнителей"
+
+#: front/src/views/playlists/List.vue:3
+msgid "Browsing playlists"
+msgstr "Просмотр списков воспроизведения"
+
+#: front/src/components/library/Radios.vue:4
+msgid "Browsing radios"
+msgstr "Просмотр радио"
+
+#: front/src/components/library/radios/Builder.vue:5
+msgid "Builder"
+msgstr "Конструктор"
+
+#: front/src/components/audio/album/Card.vue:13
+msgid "By %{ artist }"
+msgstr "От %{ artist }"
+
+#: front/src/views/content/remote/Card.vue:103
+#, fuzzy
+msgid "By unfollowing this library, you loose access to its content."
+msgstr "Отписавшись от этой библиотеки, вы потеряете доступ к её содержимому."
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:261
+#: front/src/views/admin/moderation/DomainsDetail.vue:217
+msgid "Cached size"
+msgstr ""
+
+#: front/src/components/common/DangerousButton.vue:17
+#: front/src/components/library/Album.vue:58
+#: src/components/library/Track.vue:76
+#: front/src/components/library/radios/Filter.vue:53
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:54
+#: front/src/components/playlists/PlaylistModal.vue:63
+msgid "Cancel"
+msgstr "Отмена"
+
+#: front/src/components/library/radios/Builder.vue:63
+msgid "Candidates"
+msgstr "Кандидаты"
+
+#: front/src/components/auth/Settings.vue:76
+msgid "Cannot change your password"
+msgstr "Не удалось изменить ваш пароль"
+
+#: front/src/components/library/FileUpload.vue:222
+#: front/src/components/library/FileUpload.vue:223
+#, fuzzy
+msgid "Cannot upload this file, ensure it is not too big"
+msgstr "Невозможно загрузить файл, убедитесь что он не слишком большой"
+
+#: front/src/components/Footer.vue:21
+msgid "Change language"
+msgstr "Сменить язык"
+
+#: front/src/components/auth/Settings.vue:67
+msgid "Change my password"
+msgstr "Сменить мой пароль"
+
+#: front/src/components/auth/Settings.vue:95
+msgid "Change password"
+msgstr "Сменить пароль"
+
+#: front/src/views/auth/PasswordResetConfirm.vue:4
+#: front/src/views/auth/PasswordResetConfirm.vue:62
+msgid "Change your password"
+msgstr "Сменить ваш пароль"
+
+#: front/src/components/auth/Settings.vue:96
+msgid "Change your password?"
+msgstr "Сменить ваш пароль?"
+
+#: front/src/components/playlists/Editor.vue:21
+msgid "Changes synced with server"
+msgstr "Изменения синхронизированы с сервером"
+
+#: front/src/components/auth/Settings.vue:70
+msgid "Changing your password will also change your Subsonic API password if you have requested one."
+msgstr "Изменение вашего пароля также изменит ваш пароль Subsonic API если вы запрашивали его."
+
+#: front/src/components/auth/Settings.vue:98
+msgid "Changing your password will have the following consequences"
+msgstr "Изменение вашего пароля приведёт к следующим последствиям"
+
+#: front/src/components/Footer.vue:40
+msgid "Chat room"
+msgstr ""
+
+#: front/src/App.vue:13
+msgid "Choose your instance"
+msgstr "Выберите свой узел"
+
+#: front/src/components/Home.vue:64
+msgid "Clean library"
+msgstr "Очистить библиотеку"
+
+#: front/src/components/manage/users/InvitationForm.vue:37
+msgid "Clear"
+msgstr "Очистить"
+
+#: front/src/components/playlists/Editor.vue:40
+#: front/src/components/playlists/Editor.vue:45
+msgid "Clear playlist"
+msgstr "Очистить список воспроизведения"
+
+#: front/src/components/audio/Player.vue:363
+msgid "Clear your queue"
+msgstr "Очистить вашу очередь"
+
+#: front/src/components/Home.vue:44
+#, fuzzy
+msgid "Click once, listen for hours using built-in radios"
+msgstr "Нажмите один раз, слушайте часами с помощью встроенного радио"
+
+#: front/src/components/library/FileUpload.vue:75
+msgid "Click to select files to upload or drag and drop files or directories"
+msgstr "Нажмите чтобы выбрать файлы для загрузки или перетащите файлы или директории"
+
+#: front/src/components/ShortcutsModal.vue:20
+msgid "Close"
+msgstr ""
+
+#: front/src/components/manage/users/InvitationForm.vue:26
+#: front/src/components/manage/users/InvitationsTable.vue:42
+msgid "Code"
+msgstr "Код"
+
+#: front/src/components/audio/album/Card.vue:43
+#: front/src/components/audio/artist/Card.vue:33
+msgid "Collapse"
+msgstr "Свернуть"
+
+#: front/src/components/library/radios/Builder.vue:62
+#, fuzzy
+msgid "Config"
+msgstr "Конфигурация"
+
+#: front/src/components/common/DangerousButton.vue:21
+msgid "Confirm"
+msgstr "Подтвердить"
+
+#: front/src/views/auth/EmailConfirm.vue:4 src/views/auth/EmailConfirm.vue:20
+#: front/src/views/auth/EmailConfirm.vue:51
+#, fuzzy
+msgid "Confirm your e-mail address"
+msgstr "Подтвердить ваш адрес электронной почты"
+
+#: front/src/views/auth/EmailConfirm.vue:13
+msgid "Confirmation code"
+msgstr "Код подтверждения"
+
+#: front/src/components/common/ActionTable.vue:7
+msgid "Content have been updated, click refresh to see up-to-date content"
+msgstr ""
+
+#: front/src/components/Footer.vue:48
+msgid "Contribute"
+msgstr ""
+
+#: front/src/components/audio/EmbedWizard.vue:19
+#: front/src/components/common/CopyInput.vue:8
+msgid "Copy"
+msgstr "Копировать"
+
+#: front/src/components/playlists/Editor.vue:163
+msgid "Copy tracks from current queue to playlist"
+msgstr "Копировать треки из текущей очереди в список воспроизведения"
+
+#: front/src/components/audio/EmbedWizard.vue:21
+msgid "Copy/paste this code in your website HTML"
+msgstr ""
+
+#: front/src/components/library/Track.vue:91
+#, fuzzy
+msgid "Copyright"
+msgstr "Копировать"
+
+#: front/src/views/auth/EmailConfirm.vue:7
+#, fuzzy
+msgid "Could not confirm your e-mail address"
+msgstr "Подтвердить ваш адрес электронной почты"
+
+#: front/src/views/content/remote/ScanForm.vue:3
+#, fuzzy
+msgid "Could not fetch remote library"
+msgstr "Ошибка во время загрузки удалённой библиотеки"
+
+#: front/src/views/content/libraries/FilesTable.vue:213
+#, fuzzy
+msgid "Could not process this track, ensure it is tagged correctly"
+msgstr "Произошла ошибка во время обработки этого трека, убедитесь что у него корректные теги"
+
+#: front/src/components/Home.vue:85
+msgid "Covers, lyrics, our goal is to have them all ;)"
+msgstr "Обложки, тексты, наша цель собрать их все ;)"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:58
+#, fuzzy
+msgid "Create"
+msgstr "Создать импорт"
+
+#: front/src/components/auth/Signup.vue:4
+msgid "Create a funkwhale account"
+msgstr "Создать аккаунт funkwhale"
+
+#: front/src/views/content/libraries/Home.vue:14
+msgid "Create a new library"
+msgstr "Создать новую библиотеку"
+
+#: front/src/components/playlists/Form.vue:2
+msgid "Create a new playlist"
+msgstr "Создать новый список воспроизведения"
+
+#: front/src/components/Sidebar.vue:57 src/components/auth/Login.vue:17
+msgid "Create an account"
+msgstr "Создать новый аккаунт"
+
+#: front/src/views/content/libraries/Form.vue:26
+msgid "Create library"
+msgstr "Создать библиотеку"
+
+#: front/src/components/auth/Signup.vue:51
+msgid "Create my account"
+msgstr "Создать мой аккаунт"
+
+#: front/src/components/playlists/Form.vue:34
+msgid "Create playlist"
+msgstr "Создать список воспроизведения"
+
+#: front/src/components/library/Radios.vue:23
+msgid "Create your own radio"
+msgstr "Создать ваше собственное радио"
+
+#: front/src/components/manage/users/InvitationsTable.vue:40
+#: front/src/components/mixins/Translations.vue:16
+#: front/src/components/mixins/Translations.vue:17
+msgid "Creation date"
+msgstr "Дата создания"
+
+#: front/src/components/auth/Settings.vue:54
+msgid "Current avatar"
+msgstr "Текущий аватар"
+
+#: front/src/views/content/libraries/DetailArea.vue:4
+msgid "Current library"
+msgstr "Текущая библиотека"
+
+#: front/src/components/playlists/PlaylistModal.vue:8
+msgid "Current track"
+msgstr "Текущий трек"
+
+#: front/src/views/content/libraries/Quota.vue:2
+msgid "Current usage"
+msgstr "Текущее использование"
+
+#: front/src/views/content/libraries/Detail.vue:27
+msgid "Date"
+msgstr "Дата"
+
+#: front/src/components/ShortcutsModal.vue:75
+msgid "Decrease volume"
+msgstr ""
+
+#: front/src/components/manage/library/FilesTable.vue:190
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:61
+#: front/src/components/manage/users/InvitationsTable.vue:167
+#: front/src/views/content/libraries/FilesTable.vue:233
+#: front/src/views/content/libraries/Form.vue:29
+#: src/views/playlists/Detail.vue:33
+msgid "Delete"
+msgstr "Удалить"
+
+#: front/src/views/content/libraries/Form.vue:39
+msgid "Delete library"
+msgstr "Удалить библиотеку"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:69
+#, fuzzy
+msgid "Delete moderation rule"
+msgstr "Удалить радио"
+
+#: front/src/views/playlists/Detail.vue:38
+msgid "Delete playlist"
+msgstr "Удалить список воспроизведения"
+
+#: front/src/views/radios/Detail.vue:28
+msgid "Delete radio"
+msgstr "Удалить радио"
+
+#: front/src/views/content/libraries/Form.vue:31
+msgid "Delete this library?"
+msgstr "Удалить эту библиотеку?"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:63
+#, fuzzy
+msgid "Delete this moderation rule?"
+msgstr "Удалить эту библиотеку?"
+
+#: front/src/components/favorites/List.vue:34
+#: src/components/library/Artists.vue:26
+#: front/src/components/library/Radios.vue:47
+#: front/src/components/manage/library/FilesTable.vue:20
+#: front/src/components/manage/moderation/AccountsTable.vue:22
+#: front/src/components/manage/moderation/DomainsTable.vue:20
+#: front/src/components/manage/users/UsersTable.vue:20
+#: front/src/views/content/libraries/FilesTable.vue:32
+#: front/src/views/playlists/List.vue:28
+msgid "Descending"
+msgstr "По убыванию"
+
+#: front/src/components/library/radios/Builder.vue:25
+#: front/src/views/content/libraries/Form.vue:14
+msgid "Description"
+msgstr "Описание"
+
+#: front/src/views/content/libraries/Card.vue:47
+#, fuzzy
+msgid "Detail"
+msgstr "Подробность"
+
+#: front/src/views/content/remote/Card.vue:50
+#, fuzzy
+msgid "Details"
+msgstr "Подробности"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:455
+msgid "Determine how much content the user can upload. Leave empty to use the default value of the instance."
+msgstr "Выберите как много содержимого пользователь может загрузить. Оставьте пустым чтобы использовать значение по умолчанию для данного узла."
+
+#: front/src/components/mixins/Translations.vue:8
+#: front/src/components/mixins/Translations.vue:9
+msgid "Determine the visibility level of your activity"
+msgstr "Определить уровень видимости вашей активности"
+
+#: front/src/components/auth/Settings.vue:104
+#: front/src/components/auth/SubsonicTokenForm.vue:52
+msgid "Disable access"
+msgstr "Отключить доступ"
+
+#: front/src/components/auth/SubsonicTokenForm.vue:49
+msgid "Disable Subsonic access"
+msgstr "Отключить доступ Subsonic"
+
+#: front/src/components/auth/SubsonicTokenForm.vue:50
+msgid "Disable Subsonic API access?"
+msgstr "Отключить доступ Subsonic API?"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:18
+#: front/src/views/admin/moderation/AccountsDetail.vue:128
+#: front/src/views/admin/moderation/AccountsDetail.vue:132
+#, fuzzy
+msgid "Disabled"
+msgstr "Отключить доступ"
+
+#: front/src/components/auth/SubsonicTokenForm.vue:14
+msgid "Discover how to use Funkwhale from other apps"
+msgstr "Узнайте как использовать Funkwhale из других приложений"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:103
+#, fuzzy
+msgid "Display name"
+msgstr "Имя файла"
+
+#: front/src/components/library/radios/Builder.vue:30
+msgid "Display publicly"
+msgstr "Публично отображать"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:122
+msgid "Do not download any media file (audio, album cover, account avatar…) from this account or domain. This will purge existing content as well."
+msgstr ""
+
+#: front/src/components/playlists/Editor.vue:42
+msgid "Do you want to clear the playlist \"%{ playlist }\"?"
+msgstr "Вы хотите очистить список воспроизведения \"%{ playlist }\"?"
+
+#: front/src/components/common/DangerousButton.vue:7
+msgid "Do you want to confirm this action?"
+msgstr "Вы хотите подтвердить это действие?"
+
+#: front/src/views/playlists/Detail.vue:35
+msgid "Do you want to delete the playlist \"%{ playlist }\"?"
+msgstr "Вы хотите удалить список воспроизведения \"%{ playlist }\"?"
+
+#: front/src/views/radios/Detail.vue:26
+msgid "Do you want to delete the radio \"%{ radio }\"?"
+msgstr "Вы хотите удалить радио \"%{ radio }\"?"
+
+#: front/src/components/common/ActionTable.vue:36
+msgid "Do you want to launch %{ action } on %{ count } element?"
+msgid_plural "Do you want to launch %{ action } on %{ count } elements?"
+msgstr[0] "Вы хотите запустить %{ action } на %{ count } элементе?"
+msgstr[1] "Вы хотите запустить %{ action } на %{ count } элементах?"
+msgstr[2] "Вы хотите запустить %{ action } на %{ count } элементах?"
+
+#: front/src/components/Sidebar.vue:107
+msgid "Do you want to restore your previous queue?"
+msgstr "Вы хотите восстановить вашу предыдущую очередь?"
+
+#: front/src/components/Footer.vue:31
+msgid "Documentation"
+msgstr "Документация"
+
+#: front/src/components/manage/moderation/AccountsTable.vue:40
+#: front/src/components/mixins/Translations.vue:34
+#: front/src/views/admin/moderation/AccountsDetail.vue:93
+#: front/src/components/mixins/Translations.vue:35
+msgid "Domain"
+msgstr ""
+
+#: front/src/views/admin/moderation/Base.vue:5
+#: front/src/views/admin/moderation/DomainsList.vue:3
+#: front/src/views/admin/moderation/DomainsList.vue:48
+msgid "Domains"
+msgstr ""
+
+#: front/src/components/library/Track.vue:55
+msgid "Download"
+msgstr "Скачать"
+
+#: front/src/components/playlists/Editor.vue:49
+msgid "Drag and drop rows to reorder tracks in the playlist"
+msgstr "Перетаскивайте строки чтобы упорядочить треки в списке воспроизведения"
+
+#: front/src/components/audio/track/Table.vue:9
+#: src/components/library/Track.vue:111
+#: front/src/components/manage/library/FilesTable.vue:43
+#: front/src/components/mixins/Translations.vue:30
+#: front/src/views/content/libraries/FilesTable.vue:59
+#: front/src/components/mixins/Translations.vue:31
+msgid "Duration"
+msgstr "Длительность"
+
+#: front/src/views/auth/EmailConfirm.vue:23
+#, fuzzy
+msgid "E-mail address confirmed"
+msgstr "Адрес электронной почты подтверждён"
+
+#: front/src/components/Home.vue:93
+#, fuzzy
+msgid "Easy to use"
+msgstr "Легко в использовании"
+
+#: front/src/views/content/libraries/Detail.vue:9
+msgid "Edit"
+msgstr "Редактировать"
+
+#: front/src/components/About.vue:21
+msgid "Edit instance info"
+msgstr "Редактировать информацию об узле"
+
+#: front/src/components/radios/Card.vue:22 src/views/playlists/Detail.vue:30
+#, fuzzy
+msgid "Edit…"
+msgstr "Редактировать"
+
+#: front/src/components/auth/Signup.vue:29
+#: front/src/components/manage/users/UsersTable.vue:38
+msgid "Email"
+msgstr "Электронная почта"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:111
+msgid "Email address"
+msgstr "Адрес электронной почты"
+
+#: front/src/components/library/Album.vue:44
+#: src/components/library/Track.vue:62
+msgid "Embed"
+msgstr ""
+
+#: front/src/components/audio/EmbedWizard.vue:20
+msgid "Embed code"
+msgstr ""
+
+#: front/src/components/library/Album.vue:48
+msgid "Embed this album on your website"
+msgstr ""
+
+#: front/src/components/library/Track.vue:66
+msgid "Embed this track on your website"
+msgstr ""
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:230
+#: front/src/views/admin/moderation/DomainsDetail.vue:187
+msgid "Emitted library follows"
+msgstr ""
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:214
+#: front/src/views/admin/moderation/DomainsDetail.vue:171
+msgid "Emitted messages"
+msgstr ""
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:8
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:17
+#: front/src/views/admin/moderation/AccountsDetail.vue:127
+#: front/src/views/admin/moderation/AccountsDetail.vue:131
+msgid "Enabled"
+msgstr ""
+
+#: front/src/views/playlists/Detail.vue:29
+msgid "End edition"
+msgstr "Закончить редактирование"
+
+#: front/src/views/content/remote/ScanForm.vue:50
+#, fuzzy
+msgid "Enter a library URL"
+msgstr "Очистить библиотеку"
+
+#: front/src/components/library/Radios.vue:140
+#, fuzzy
+msgid "Enter a radio name…"
+msgstr "Введите название радио..."
+
+#: front/src/components/library/Artists.vue:118
+#, fuzzy
+msgid "Enter artist name…"
+msgstr "Введите имя исполнителя..."
+
+#: front/src/views/playlists/List.vue:107
+#, fuzzy
+msgid "Enter playlist name…"
+msgstr "Введите название списка воспроизведения..."
+
+#: front/src/components/auth/Signup.vue:100
+msgid "Enter your email"
+msgstr "Введите ваш адрес электронной почты"
+
+#: front/src/components/auth/Signup.vue:96 src/components/auth/Signup.vue:97
+msgid "Enter your invitation code (case insensitive)"
+msgstr "Введите ваш код приглашения (нечувствительно к регистру)"
+
+#: front/src/components/metadata/Search.vue:114
+#, fuzzy
+msgid "Enter your search query…"
+msgstr "Введите ваш поисковый запрос..."
+
+#: front/src/components/auth/Signup.vue:99
+msgid "Enter your username"
+msgstr "Введите ваше имя пользователя"
+
+#: front/src/components/auth/Login.vue:77
+msgid "Enter your username or email"
+msgstr "Введите ваше имя пользователя или адрес электронной почты"
+
+#: front/src/components/auth/SubsonicTokenForm.vue:20
+#: front/src/views/content/libraries/Form.vue:4
+msgid "Error"
+msgstr "Ошибка"
+
+#: front/src/views/admin/Settings.vue:87
+msgid "Error reporting"
+msgstr ""
+
+#: front/src/components/common/ActionTable.vue:92
+msgid "Error while applying action"
+msgstr "Ошибка во время применения действия"
+
+#: front/src/views/auth/PasswordReset.vue:7
+msgid "Error while asking for a password reset"
+msgstr "Ошибка во время запроса сброса пароля"
+
+#: front/src/views/auth/PasswordResetConfirm.vue:7
+msgid "Error while changing your password"
+msgstr "Ошибка во время изменения вашего пароля"
+
+#: front/src/views/admin/moderation/DomainsList.vue:6
+#, fuzzy
+msgid "Error while creating domain"
+msgstr "Ошибка во время создания приглашения"
+
+#: front/src/components/manage/users/InvitationForm.vue:4
+msgid "Error while creating invitation"
+msgstr "Ошибка во время создания приглашения"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:7
+#, fuzzy
+msgid "Error while creating rule"
+msgstr "Ошибка во время создания приглашения"
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:126
+#, fuzzy
+msgid "Error while fetching node info"
+msgstr "Ошибка во время загрузки удалённой библиотеки"
+
+#: front/src/components/admin/SettingsGroup.vue:5
+msgid "Error while saving settings"
+msgstr "Ошибка во время сохранения настроек"
+
+#: front/src/views/content/libraries/FilesTable.vue:212
+#, fuzzy
+msgid "Errored"
+msgstr "Ошибочно"
+
+#: front/src/views/content/libraries/Quota.vue:75
+msgid "Errored files"
+msgstr "Ошибочные файлы"
+
+#: front/src/components/playlists/Form.vue:89
+msgid "Everyone"
+msgstr "Все"
+
+#: front/src/components/mixins/Translations.vue:11
+#: front/src/components/playlists/Form.vue:85
+#: src/views/content/libraries/Form.vue:73
+#: front/src/components/mixins/Translations.vue:12
+msgid "Everyone on this instance"
+msgstr "Все на этом узле"
+
+#: front/src/views/content/libraries/Form.vue:74
+#, fuzzy
+msgid "Everyone, across all instances"
+msgstr "Все на этом узле"
+
+#: front/src/components/library/radios/Builder.vue:61
+msgid "Exclude"
+msgstr "Исключить"
+
+#: front/src/components/manage/users/InvitationsTable.vue:41
+#: front/src/components/mixins/Translations.vue:22
+#: front/src/components/mixins/Translations.vue:23
+msgid "Expiration date"
+msgstr "Дата истечения"
+
+#: front/src/components/manage/users/InvitationsTable.vue:50
+msgid "Expired"
+msgstr "Истёк"
+
+#: front/src/components/manage/users/InvitationsTable.vue:21
+msgid "Expired/used"
+msgstr "Истёк/использован"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:110
+msgid "Explain why you're applying this policy. Depending on your instance configuration, this will help you remember why you acted on this account or domain, and may be displayed publicly to help users understand what moderation rules are in place."
+msgstr ""
+
+#: front/src/views/content/libraries/FilesTable.vue:16
+msgid "Failed"
+msgstr ""
+
+#: front/src/views/content/remote/Card.vue:58
+#, fuzzy
+msgid "Failed tracks:"
+msgstr "Ошибочные треки:"
+
+#: front/src/components/Sidebar.vue:66
+msgid "Favorites"
+msgstr "Избранное"
+
+#: front/src/views/admin/Settings.vue:84
+msgid "Federation"
+msgstr "Федерация"
+
+#: front/src/components/library/FileUpload.vue:84
+#, fuzzy
+msgid "Filename"
+msgstr "Имя файла"
+
+#: front/src/views/admin/library/Base.vue:5
+#: src/views/admin/library/FilesList.vue:21
+msgid "Files"
+msgstr "Файлы"
+
+#: front/src/components/library/radios/Builder.vue:60
+msgid "Filter name"
+msgstr "Имя фильтра"
+
+#: front/src/views/content/libraries/FilesTable.vue:17
+#: front/src/views/content/libraries/FilesTable.vue:216
+msgid "Finished"
+msgstr "Завершено"
+
+#: front/src/components/manage/moderation/AccountsTable.vue:42
+#: front/src/components/manage/moderation/DomainsTable.vue:41
+#: front/src/views/admin/moderation/AccountsDetail.vue:159
+#: front/src/views/admin/moderation/DomainsDetail.vue:78
+msgid "First seen"
+msgstr ""
+
+#: front/src/components/mixins/Translations.vue:17
+#: front/src/components/mixins/Translations.vue:18
+#, fuzzy
+msgid "First seen date"
+msgstr "Дата истечения"
+
+#: front/src/views/content/remote/Card.vue:83
+msgid "Follow"
+msgstr "Подписаться"
+
+#: front/src/views/content/Home.vue:16
+msgid "Follow remote libraries"
+msgstr "Подписаться на удалённые библиотеки"
+
+#: front/src/views/content/remote/Card.vue:88
+#, fuzzy
+msgid "Follow request pending approval"
+msgstr "Подписка требует подтверждения"
+
+#: front/src/components/mixins/Translations.vue:38
+#: front/src/views/content/libraries/Detail.vue:7
+#: front/src/components/mixins/Translations.vue:39
+msgid "Followers"
+msgstr "Подписчики"
+
+#: front/src/views/content/remote/Card.vue:93
+msgid "Following"
+msgstr ""
+
+#: front/src/components/library/Track.vue:17
+msgid "From album %{ album } by %{ artist }"
+msgstr "Из альбома %{ album } от %{ artist }"
+
+#: front/src/components/auth/SubsonicTokenForm.vue:7
+msgid "Funkwhale is compatible with other music players that support the Subsonic API."
+msgstr "Funkwhale совместим с другими музыкальными плеерами которые поддерживают Subsonic API."
+
+#: front/src/components/Home.vue:95
+#, fuzzy
+msgid "Funkwhale is dead simple to use."
+msgstr "Funkwhale чрезвычайно прост в использовании."
+
+#: front/src/components/Home.vue:39
+msgid "Funkwhale is designed to make it easy to listen to music you like, or to discover new artists."
+msgstr "Funkwhale создан чтобы упростить прослушивание любимой музыки и поиск новых исполнителей."
+
+#: front/src/components/Home.vue:116
+msgid "Funkwhale is free and gives you control on your music."
+msgstr "Funkwhale свободен и предоставляет вам контроль над вашей музыкой."
+
+#: front/src/components/Home.vue:66
+#, fuzzy
+msgid "Funkwhale takes care of handling your music"
+msgstr "Funkwhale заботится об управлении вашей музыкой"
+
+#: front/src/components/ShortcutsModal.vue:38
+msgid "General shortcuts"
+msgstr ""
+
+#: front/src/components/manage/users/InvitationForm.vue:16
+msgid "Get a new invitation"
+msgstr "Получить приглашение"
+
+#: front/src/components/Home.vue:13
+#, fuzzy
+msgid "Get me to the library"
+msgstr "Перейти в библиотеку"
+
+#: front/src/components/Home.vue:76
+msgid "Get quality metadata about your music thanks to <a href=\"%{ url }\" target=\"_blank\">MusicBrainz</a>"
+msgstr "Получайте качественные метаданные о вашей музыке с помощью <a href=\"%{ url }\" target=\"_blank\">MusicBrainz</a>"
+
+#: front/src/views/content/Home.vue:12 src/views/content/Home.vue:19
+#, fuzzy
+msgid "Get started"
+msgstr "Начать"
+
+#: front/src/components/Footer.vue:37
+#, fuzzy
+msgid "Getting help"
+msgstr "Настройки"
+
+#: front/src/components/common/ActionTable.vue:34
+#: front/src/components/common/ActionTable.vue:54
+msgid "Go"
+msgstr ""
+
+#: front/src/components/PageNotFound.vue:14
+msgid "Go to home page"
+msgstr "Перейти на домашнюю страницу"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:114
+msgid "Hide account or domain content, except from followers."
+msgstr ""
+
+#: front/src/components/library/Home.vue:65
+msgid "Home"
+msgstr "Домой"
+
+#: front/src/components/instance/Stats.vue:36
+msgid "Hours of music"
+msgstr "Часов музыки"
+
+#: front/src/components/auth/SubsonicTokenForm.vue:11
+msgid "However, accessing Funkwhale from those clients require a separate password you can set below."
+msgstr "Однако, получение доступа к Freewhale из этих клиентов требует отдельного пароля который может быть установлен ниже."
+
+#: front/src/views/auth/PasswordResetConfirm.vue:24
+msgid "If the email address provided in the previous step is valid and binded to a user account, you should receive an email with reset instructions in the next couple of minutes."
+msgstr "Если указанный на предыдущем шаге адрес электронной почты правильный и привязан к пользовательскому аккаунту, то вы должны получить письмо с инструкциями по сбросу в течение нескольких минут."
+
+#: front/src/components/manage/library/FilesTable.vue:40
+msgid "Import date"
+msgstr "Дата импорта"
+
+#: front/src/components/Home.vue:71
+msgid "Import music from various platforms, such as YouTube or SoundCloud"
+msgstr "Импортируйте музыку из разных платформ, таких как YouTube и SoundCloud"
+
+#: front/src/components/library/FileUpload.vue:51
+msgid "Import reference"
+msgstr ""
+
+#: front/src/views/content/libraries/FilesTable.vue:11
+#: front/src/views/content/libraries/FilesTable.vue:58
+msgid "Import status"
+msgstr "Статус импорта"
+
+#: front/src/views/content/libraries/FilesTable.vue:217
+#, fuzzy
+msgid "Imported"
+msgstr "Дата импорта"
+
+#: front/src/components/mixins/Translations.vue:21
+#: front/src/components/mixins/Translations.vue:22
+msgid "Imported date"
+msgstr "Дата импорта"
+
+#: front/src/components/favorites/TrackFavoriteIcon.vue:3
+msgid "In favorites"
+msgstr "В избранном"
+
+#: front/src/components/manage/users/UsersTable.vue:54
+#, fuzzy
+msgid "Inactive"
+msgstr "Неактивен(на)"
+
+#: front/src/components/ShortcutsModal.vue:71
+msgid "Increase volume"
+msgstr ""
+
+#: front/src/views/auth/PasswordReset.vue:53
+msgid "Input the email address binded to your account"
+msgstr ""
+
+#: front/src/components/playlists/Editor.vue:31
+msgid "Insert from queue (%{ count } track)"
+msgid_plural "Insert from queue (%{ count } tracks)"
+msgstr[0] "Вставить из очереди (%{ count } трек)"
+msgstr[1] "Вставить из очереди (%{ count } трека)"
+msgstr[2] "Вставить из очереди (%{ count } треков)"
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:71
+#, fuzzy
+msgid "Instance data"
+msgstr "Радио узла"
+
+#: front/src/views/admin/Settings.vue:80
+msgid "Instance information"
+msgstr "Информация об узле"
+
+#: front/src/components/library/Radios.vue:9
+msgid "Instance radios"
+msgstr "Радио узла"
+
+#: front/src/views/admin/Settings.vue:75
+msgid "Instance settings"
+msgstr "Настройки узла"
+
+#: front/src/components/library/FileUpload.vue:229
+#: front/src/components/library/FileUpload.vue:230
+msgid "Invalid file type, ensure you are uploading an audio file. Supported file extensions are %{ extensions }"
+msgstr ""
+
+#: front/src/components/auth/Signup.vue:42
+#: front/src/components/manage/users/InvitationForm.vue:11
+msgid "Invitation code"
+msgstr "Код приглашения"
+
+#: front/src/components/auth/Signup.vue:43
+msgid "Invitation code (optional)"
+msgstr "Код приглашения (не обязательно)"
+
+#: front/src/views/admin/users/Base.vue:8
+#: src/views/admin/users/InvitationsList.vue:3
+#: front/src/views/admin/users/InvitationsList.vue:24
+msgid "Invitations"
+msgstr "Приглашения"
+
+#: front/src/components/Footer.vue:41
+#, fuzzy
+msgid "Issue tracker"
+msgstr "Багтрекер"
+
+#: front/src/components/Home.vue:50
+msgid "Keep a track of your favorite songs"
+msgstr ""
+
+#: front/src/components/Footer.vue:33 src/components/ShortcutsModal.vue:3
+msgid "Keyboard shortcuts"
+msgstr ""
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:161
+#, fuzzy
+msgid "Known accounts"
+msgstr "Мой аккаунт"
+
+#: front/src/views/content/remote/Home.vue:14
+#, fuzzy
+msgid "Known libraries"
+msgstr "Известные библиотеки"
+
+#: front/src/components/manage/users/UsersTable.vue:41
+#: front/src/components/mixins/Translations.vue:32
+#: front/src/views/admin/moderation/AccountsDetail.vue:184
+#: front/src/components/mixins/Translations.vue:33
+msgid "Last activity"
+msgstr "Последняя активность"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:167
+#: front/src/views/admin/moderation/DomainsDetail.vue:86
+msgid "Last checked"
+msgstr ""
+
+#: front/src/components/playlists/PlaylistModal.vue:32
+msgid "Last modification"
+msgstr "Последнее изменение"
+
+#: front/src/components/manage/moderation/AccountsTable.vue:43
+msgid "Last seen"
+msgstr ""
+
+#: front/src/components/mixins/Translations.vue:18
+#: front/src/components/mixins/Translations.vue:19
+#, fuzzy
+msgid "Last seen date"
+msgstr "Последнее обновление:"
+
+#: front/src/views/content/remote/Card.vue:56
+msgid "Last update:"
+msgstr "Последнее обновление:"
+
+#: front/src/components/common/ActionTable.vue:47
+msgid "Launch"
+msgstr "Запустить"
+
+#: front/src/components/Home.vue:10
+msgid "Learn more about this instance"
+msgstr "Узнать больше об этом узле"
+
+#: front/src/components/manage/users/InvitationForm.vue:58
+msgid "Leave empty for a random code"
+msgstr "Оставьте пустым для случайного кода"
+
+#: front/src/components/audio/EmbedWizard.vue:7
+#, fuzzy
+msgid "Leave empty for a responsive widget"
+msgstr "Оставьте пустым для случайного кода"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:297
+#: front/src/views/admin/moderation/DomainsDetail.vue:233
+#: front/src/views/content/Base.vue:5
+msgid "Libraries"
+msgstr "Библиотеки"
+
+#: front/src/views/content/libraries/Form.vue:2
+msgid "Libraries help you organize and share your music collections. You can upload your own music collection to Funkwhale and share it with your friends and family."
+msgstr "Библиотеки помогают организовывать ваши музыкальные коллекции и делиться ими. Вы можете загружать вашу музыку на Funkwhale и делиться ею с вашими друзьями и семьёй."
+
+#: front/src/components/instance/Stats.vue:30
+#: front/src/components/manage/users/UsersTable.vue:173
+#: front/src/views/admin/moderation/AccountsDetail.vue:464
+msgid "Library"
+msgstr "Библиотека"
+
+#: front/src/views/content/libraries/Form.vue:109
+msgid "Library created"
+msgstr "Библиотека создана"
+
+#: front/src/views/content/libraries/Form.vue:129
+#, fuzzy
+msgid "Library deleted"
+msgstr "Библиотека обновлена"
+
+#: front/src/views/admin/library/FilesList.vue:3
+msgid "Library files"
+msgstr "Файлы библиотеки"
+
+#: front/src/views/content/libraries/Form.vue:106
+msgid "Library updated"
+msgstr "Библиотека обновлена"
+
+#: front/src/components/library/Track.vue:100
+msgid "License"
+msgstr ""
+
+#: front/src/views/content/libraries/Detail.vue:21
+#, fuzzy
+msgid "Loading followers…"
+msgstr "Загружаем подписчиков..."
+
+#: front/src/views/content/libraries/Home.vue:3
+#, fuzzy
+msgid "Loading Libraries…"
+msgstr "Загружаем Библиотеки..."
+
+#: front/src/views/content/libraries/Detail.vue:3
+#: front/src/views/content/libraries/Upload.vue:3
+#, fuzzy
+msgid "Loading library data…"
+msgstr "Загружаем данные библиотеки..."
+
+#: front/src/views/Notifications.vue:4
+#, fuzzy
+msgid "Loading notifications…"
+msgstr "Загружаем уведомления..."
+
+#: front/src/views/content/remote/Home.vue:3
+msgid "Loading remote libraries..."
+msgstr "Загружаем удалённые библиотеки..."
+
+#: front/src/views/content/libraries/Quota.vue:4
+#, fuzzy
+msgid "Loading usage data…"
+msgstr "Загружаем данные об использовании..."
+
+#: front/src/components/favorites/List.vue:5
+#, fuzzy
+msgid "Loading your favorites…"
+msgstr "Загружаем ваше избранное..."
+
+#: front/src/components/manage/moderation/AccountsTable.vue:59
+#: front/src/views/admin/moderation/AccountsDetail.vue:18
+#, fuzzy
+msgid "Local account"
+msgstr "Мой аккаунт"
+
+#: front/src/components/auth/Login.vue:78
+msgid "Log In"
+msgstr "Вход"
+
+#: front/src/components/auth/Login.vue:4
+msgid "Log in to your Funkwhale account"
+msgstr "Войти в ваш аккаунт Funkwhale"
+
+#: front/src/components/auth/Logout.vue:20
+msgid "Log Out"
+msgstr "Выход"
+
+#: front/src/components/Sidebar.vue:38
+msgid "Logged in as %{ username }"
+msgstr "Вошли как %{ username }"
+
+#: front/src/components/Sidebar.vue:54 src/components/auth/Login.vue:41
+msgid "Login"
+msgstr "Войти"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:119
+#, fuzzy
+msgid "Login status"
+msgstr "Статус аккаунта"
+
+#: front/src/components/Sidebar.vue:52
+msgid "Logout"
+msgstr "Выйти"
+
+#: front/src/views/content/libraries/Home.vue:9
+#, fuzzy
+msgid "Looks like you don't have a library, it's time to create one."
+msgstr "Похоже у вас ещё нет ни одной библиотеки, самое время создать её!"
+
+#: front/src/components/audio/Player.vue:353
+#: src/components/audio/Player.vue:354
+msgid "Looping disabled. Click to switch to single-track looping."
+msgstr "Зацикливание отключено. Нажмите чтобы включить цикличное проигрывание трека."
+
+#: front/src/components/audio/Player.vue:356
+#: src/components/audio/Player.vue:357
+msgid "Looping on a single track. Click to switch to whole queue looping."
+msgstr ""
+
+#: front/src/components/audio/Player.vue:359
+#: src/components/audio/Player.vue:360
+msgid "Looping on whole queue. Click to disable looping."
+msgstr ""
+
+#: front/src/components/library/Track.vue:150
+msgid "Lyrics"
+msgstr "Тексты"
+
+#: front/src/components/Sidebar.vue:210
+msgid "Main menu"
+msgstr ""
+
+#: front/src/views/admin/library/Base.vue:16
+#, fuzzy
+msgid "Manage library"
+msgstr "Управление библиотекой"
+
+#: front/src/components/playlists/PlaylistModal.vue:3
+msgid "Manage playlists"
+msgstr "Управлять списками воспроизведения"
+
+#: front/src/views/admin/users/Base.vue:20
+msgid "Manage users"
+msgstr "Управлять пользователями"
+
+#: front/src/views/playlists/List.vue:8
+msgid "Manage your playlists"
+msgstr "Управлять вашими списками воспроизведения"
+
+#: front/src/views/Notifications.vue:17
+msgid "Mark all as read"
+msgstr "Отметить все как прочитанные"
+
+#: front/src/components/notifications/NotificationRow.vue:44
+#, fuzzy
+msgid "Mark as read"
+msgstr "Отметить все как прочитанные"
+
+#: front/src/components/notifications/NotificationRow.vue:45
+#, fuzzy
+msgid "Mark as unread"
+msgstr "Отметить все как прочитанные"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:281
+msgid "MB"
+msgstr "МБ"
+
+#: front/src/components/audio/Player.vue:346
+msgid "Media player"
+msgstr ""
+
+#: front/src/components/Footer.vue:32
+msgid "Mobile and desktop apps"
+msgstr ""
+
+#: front/src/components/Sidebar.vue:97
+#: src/components/manage/users/UsersTable.vue:177
+#: front/src/views/admin/moderation/AccountsDetail.vue:468
+#: front/src/views/admin/moderation/Base.vue:21
+#, fuzzy
+msgid "Moderation"
+msgstr "Федерация"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:49
+#: front/src/views/admin/moderation/DomainsDetail.vue:42
+msgid "Moderation policies help you control how your instance interact with a given domain or account."
+msgstr ""
+
+#: front/src/components/mixins/Translations.vue:20
+#: front/src/components/mixins/Translations.vue:21
+msgid "Modification date"
+msgstr "Дата последнего изменения"
+
+#: front/src/components/Sidebar.vue:63 src/views/admin/Settings.vue:82
+msgid "Music"
+msgstr "Музыка"
+
+#: front/src/components/audio/Player.vue:352
+msgid "Mute"
+msgstr "Приглушить"
+
+#: front/src/components/Sidebar.vue:34
+msgid "My account"
+msgstr "Мой аккаунт"
+
+#: front/src/components/library/radios/Builder.vue:236
+msgid "My awesome description"
+msgstr "Моё замечательное описание"
+
+#: front/src/views/content/libraries/Form.vue:70
+msgid "My awesome library"
+msgstr "Моя замечательная библиотека"
+
+#: front/src/components/playlists/Form.vue:74
+msgid "My awesome playlist"
+msgstr "Мой замечательный список воспроизведения"
+
+#: front/src/components/library/radios/Builder.vue:235
+msgid "My awesome radio"
+msgstr "Моё замечательное радио"
+
+#: front/src/views/content/libraries/Home.vue:6
+msgid "My libraries"
+msgstr "Мои библиотеки"
+
+#: front/src/components/audio/track/Row.vue:40
+#: src/components/library/Track.vue:115
+#: front/src/components/library/Track.vue:124
+#: src/components/library/Track.vue:133
+#: front/src/components/library/Track.vue:142
+#: front/src/components/manage/library/FilesTable.vue:63
+#: front/src/components/manage/library/FilesTable.vue:69
+#: front/src/components/manage/library/FilesTable.vue:75
+#: front/src/components/manage/library/FilesTable.vue:81
+#: front/src/components/manage/users/UsersTable.vue:61
+#: front/src/views/admin/moderation/AccountsDetail.vue:171
+#: front/src/views/admin/moderation/DomainsDetail.vue:90
+#: front/src/views/content/libraries/FilesTable.vue:92
+#: front/src/views/content/libraries/FilesTable.vue:98
+#: front/src/views/admin/moderation/DomainsDetail.vue:109
+#: front/src/views/admin/moderation/DomainsDetail.vue:117
+msgid "N/A"
+msgstr "Н/Д"
+
+#: front/src/components/manage/moderation/AccountsTable.vue:39
+#: front/src/components/manage/moderation/DomainsTable.vue:38
+#: front/src/components/mixins/Translations.vue:26
+#: front/src/components/playlists/PlaylistModal.vue:31
+#: front/src/views/admin/moderation/DomainsDetail.vue:105
+#: front/src/views/content/libraries/Form.vue:10
+#: front/src/components/mixins/Translations.vue:27
+msgid "Name"
+msgstr "Имя"
+
+#: front/src/components/auth/Settings.vue:88
+#: front/src/views/auth/PasswordResetConfirm.vue:14
+msgid "New password"
+msgstr "Новый пароль"
+
+#: front/src/components/Sidebar.vue:160
+msgid "New tracks will be appended here automatically."
+msgstr "Новые треки будут добавлены сюда автоматически."
+
+#: front/src/components/audio/Player.vue:350
+msgid "Next track"
+msgstr "Следующий трек"
+
+#: front/src/components/Sidebar.vue:119
+msgid "No"
+msgstr "Нет"
+
+#: front/src/components/Home.vue:100
+msgid "No add-ons, no plugins : you only need a web library"
+msgstr ""
+
+#: front/src/components/audio/Search.vue:25
+#, fuzzy
+msgid "No album matched your query"
+msgstr "Извините, мы не нашли никакого альбома подходящего под ваш запрос"
+
+#: front/src/components/audio/Search.vue:16
+#, fuzzy
+msgid "No artist matched your query"
+msgstr "Извините, мы не нашли ни одного исполнителя подходящего под ваш запрос"
+
+#: front/src/components/library/Track.vue:158
+msgid "No lyrics available for this track."
+msgstr "Текст недоступен для этого трека."
+
+#: front/src/components/federation/LibraryWidget.vue:6
+msgid "No matching library."
+msgstr "Нет подходящей библиотеки."
+
+#: front/src/views/Notifications.vue:26
+#, fuzzy
+msgid "No notifications yet."
+msgstr "Ваши уведомления"
+
+#: front/src/components/mixins/Translations.vue:10
+#: front/src/components/playlists/Form.vue:81
+#: src/views/content/libraries/Form.vue:72
+#: front/src/components/mixins/Translations.vue:11
+msgid "Nobody except me"
+msgstr "Никто кроме меня"
+
+#: front/src/views/content/libraries/Detail.vue:57
+msgid "Nobody is following this library"
+msgstr "Никто не подписан на эту библиотеку"
+
+#: front/src/components/manage/users/InvitationsTable.vue:51
+msgid "Not used"
+msgstr "Не используется"
+
+#: front/src/components/Sidebar.vue:46 src/views/Notifications.vue:74
+msgid "Notifications"
+msgstr "Уведомления"
+
+#: front/src/components/Footer.vue:47
+msgid "Official website"
+msgstr "Официальный веб-сайт"
+
+#: front/src/components/auth/Settings.vue:83
+msgid "Old password"
+msgstr "Старый пароль"
+
+#: front/src/components/manage/users/InvitationsTable.vue:20
+msgid "Open"
+msgstr "Открыть"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:23
+msgid "Open profile"
+msgstr ""
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:16
+#, fuzzy
+msgid "Open website"
+msgstr "Официальный веб-сайт"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:40
+#, fuzzy
+msgid "Or customize your rule"
+msgstr "Добавить фильтры чтобы кастомизировать своё радио"
+
+#: front/src/components/favorites/List.vue:31
+#: src/components/library/Radios.vue:41
+#: front/src/components/manage/library/FilesTable.vue:17
+#: front/src/components/manage/users/UsersTable.vue:17
+#: front/src/views/playlists/List.vue:25
+#, fuzzy
+msgid "Order"
+msgstr "Порядок"
+
+#: front/src/components/favorites/List.vue:23
+#: src/components/library/Artists.vue:15
+#: front/src/components/library/Radios.vue:33
+#: front/src/components/manage/library/FilesTable.vue:9
+#: front/src/components/manage/moderation/AccountsTable.vue:11
+#: front/src/components/manage/moderation/DomainsTable.vue:9
+#: front/src/components/manage/users/InvitationsTable.vue:9
+#: front/src/components/manage/users/UsersTable.vue:9
+#: front/src/views/content/libraries/FilesTable.vue:21
+#: front/src/views/playlists/List.vue:17
+msgid "Ordering"
+msgstr "Порядок"
+
+#: front/src/components/library/Artists.vue:23
+#: front/src/components/manage/moderation/AccountsTable.vue:19
+#: front/src/components/manage/moderation/DomainsTable.vue:17
+#: front/src/views/content/libraries/FilesTable.vue:29
+msgid "Ordering direction"
+msgstr "Порядок"
+
+#: front/src/components/manage/users/InvitationsTable.vue:38
+msgid "Owner"
+msgstr "Владелец"
+
+#: front/src/components/PageNotFound.vue:33
+#, fuzzy
+msgid "Page Not Found"
+msgstr "Страница не найдена!"
+
+#: front/src/components/PageNotFound.vue:7
+msgid "Page not found!"
+msgstr "Страница не найдена!"
+
+#: front/src/components/Pagination.vue:39
+msgid "Pagination"
+msgstr ""
+
+#: front/src/components/auth/Login.vue:32 src/components/auth/Signup.vue:38
+msgid "Password"
+msgstr "Пароль"
+
+#: front/src/components/auth/SubsonicTokenForm.vue:95
+msgid "Password updated"
+msgstr "Пароль обновлён"
+
+#: front/src/views/auth/PasswordResetConfirm.vue:28
+msgid "Password updated successfully"
+msgstr "Пароль успешно обновлён"
+
+#: front/src/components/audio/Player.vue:349
+msgid "Pause track"
+msgstr "Приостановить трек"
+
+#: front/src/components/ShortcutsModal.vue:59
+msgid "Pause/play the current track"
+msgstr ""
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:12
+msgid "Paused"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:106
+#: front/src/views/content/libraries/FilesTable.vue:14
+#: front/src/views/content/libraries/FilesTable.vue:208
+#, fuzzy
+msgid "Pending"
+msgstr "Ожидает"
+
+#: front/src/views/content/libraries/Detail.vue:37
+msgid "Pending approval"
+msgstr "Ожидает подтверждения"
+
+#: front/src/views/content/libraries/Quota.vue:22
+msgid "Pending files"
+msgstr "Ожидающие файлы"
+
+#: front/src/components/Sidebar.vue:212
+msgid "Pending follow requests"
+msgstr ""
+
+#: front/src/components/manage/users/UsersTable.vue:42
+#: front/src/views/admin/moderation/AccountsDetail.vue:137
+msgid "Permissions"
+msgstr "Разрешения"
+
+#: front/src/components/audio/PlayButton.vue:9
+#: src/components/library/Track.vue:40
+msgid "Play"
+msgstr ""
+
+#: front/src/components/audio/album/Card.vue:50
+#: front/src/components/audio/artist/Card.vue:44
+#: src/components/library/Album.vue:28
+#: front/src/components/library/Album.vue:73 src/views/playlists/Detail.vue:23
+msgid "Play all"
+msgstr "Проиграть всё"
+
+#: front/src/components/library/Artist.vue:26
+msgid "Play all albums"
+msgstr "Проиграть все альбомы"
+
+#: front/src/components/audio/PlayButton.vue:15
+#: front/src/components/audio/PlayButton.vue:65
+msgid "Play next"
+msgstr "Проиграть следующий"
+
+#: front/src/components/ShortcutsModal.vue:67
+#, fuzzy
+msgid "Play next track"
+msgstr "Проиграть трек"
+
+#: front/src/components/audio/PlayButton.vue:16
+#: front/src/components/audio/PlayButton.vue:63
+#: front/src/components/audio/PlayButton.vue:70
+msgid "Play now"
+msgstr "Сейчас проигрывается"
+
+#: front/src/components/ShortcutsModal.vue:63
+#, fuzzy
+msgid "Play previous track"
+msgstr "Предыдущий трек"
+
+#: front/src/components/Sidebar.vue:211
+#, fuzzy
+msgid "Play this track"
+msgstr "Проиграть трек"
+
+#: front/src/components/audio/Player.vue:348
+msgid "Play track"
+msgstr "Проиграть трек"
+
+#: front/src/views/playlists/Detail.vue:90
+msgid "Playlist"
+msgstr "Список воспроизведения"
+
+#: front/src/views/playlists/Detail.vue:12
+msgid "Playlist containing %{ count } track, by %{ username }"
+msgid_plural "Playlist containing %{ count } tracks, by %{ username }"
+msgstr[0] "Список воспроизведения содержит %{ count } трек от %{ username }"
+msgstr[1] "Список воспроизведения содержит %{ count } трека от %{ username }"
+msgstr[2] "Список воспроизведения содержит %{ count } треков от %{ username }"
+
+#: front/src/components/playlists/Form.vue:9
+msgid "Playlist created"
+msgstr "Список воспроизведения создан"
+
+#: front/src/components/playlists/Editor.vue:4
+msgid "Playlist editor"
+msgstr "Редактор списков воспроизведения"
+
+#: front/src/components/playlists/Form.vue:21
+msgid "Playlist name"
+msgstr "Название списка воспроизведения"
+
+#: front/src/components/playlists/Form.vue:6
+msgid "Playlist updated"
+msgstr "Список воспроизведения обновлён"
+
+#: front/src/components/playlists/Form.vue:25
+msgid "Playlist visibility"
+msgstr "Видимость списка воспроизведения"
+
+#: front/src/components/Sidebar.vue:71 src/components/library/Home.vue:16
+#: front/src/components/library/Library.vue:13 src/views/admin/Settings.vue:83
+#: front/src/views/playlists/List.vue:106
+msgid "Playlists"
+msgstr "Списки воспроизведения"
+
+#: front/src/components/Home.vue:56
+#, fuzzy
+msgid "Playlists? We got them"
+msgstr "Списки воспроизведения? У нас они есть"
+
+#: front/src/components/auth/Settings.vue:79
+msgid "Please double-check your password is correct"
+msgstr "Пожалуйста перепроверьте корректность вашего пароля"
+
+#: front/src/components/auth/Login.vue:9
+msgid "Please double-check your username/password couple is correct"
+msgstr "Пожалуйста перепроверьте что ваше имя пользователя и пароль верны"
+
+#: front/src/components/auth/Settings.vue:46
+msgid "PNG, GIF or JPG. At most 2MB. Will be downscaled to 400x400px."
+msgstr "PNG, GIF или JPG. Не больше 2MB. Будет уменьшено до 400x400px."
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:118
+msgid "Prevent account or domain from triggering notifications, except from followers."
+msgstr ""
+
+#: front/src/components/audio/EmbedWizard.vue:29
+msgid "Preview"
+msgstr ""
+
+#: front/src/components/audio/Player.vue:347
+msgid "Previous track"
+msgstr "Предыдущий трек"
+
+#: front/src/views/content/remote/Card.vue:39
+#, fuzzy
+msgid "Problem during scanning"
+msgstr "Ошибка во время сканирования"
+
+#: front/src/components/library/FileUpload.vue:58
+msgid "Proceed"
+msgstr "Продолжить"
+
+#: front/src/views/auth/EmailConfirm.vue:26
+#: front/src/views/auth/PasswordResetConfirm.vue:31
+msgid "Proceed to login"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:17
+msgid "Processing"
+msgstr "Обработка"
+
+#: front/src/components/manage/moderation/AccountsTable.vue:188
+#: front/src/components/manage/moderation/DomainsTable.vue:168
+#: front/src/views/content/libraries/Quota.vue:36
+#: front/src/views/content/libraries/Quota.vue:39
+#: front/src/views/content/libraries/Quota.vue:62
+#: front/src/views/content/libraries/Quota.vue:65
+#: front/src/views/content/libraries/Quota.vue:88
+#: front/src/views/content/libraries/Quota.vue:91
+msgid "Purge"
+msgstr "Очистить"
+
+#: front/src/views/content/libraries/Quota.vue:89
+msgid "Purge errored files?"
+msgstr "Очистить ошибочные файлы?"
+
+#: front/src/views/content/libraries/Quota.vue:37
+msgid "Purge pending files?"
+msgstr "Очистить ожидающие файлы?"
+
+#: front/src/views/content/libraries/Quota.vue:63
+msgid "Purge skipped files?"
+msgstr "Очистить пропущенные файлы?"
+
+#: front/src/components/Sidebar.vue:20
+msgid "Queue"
+msgstr "Очередь"
+
+#: front/src/components/audio/Player.vue:282
+msgid "Queue shuffled!"
+msgstr "Очередь перемешана!"
+
+#: front/src/views/radios/Detail.vue:80
+msgid "Radio"
+msgstr "Радио"
+
+#: front/src/components/library/radios/Builder.vue:233
+msgid "Radio Builder"
+msgstr "Конструктор радио"
+
+#: front/src/components/library/radios/Builder.vue:15
+msgid "Radio created"
+msgstr "Радио создано"
+
+#: front/src/components/library/radios/Builder.vue:21
+msgid "Radio name"
+msgstr "Название радио"
+
+#: front/src/components/library/radios/Builder.vue:12
+msgid "Radio updated"
+msgstr "Радио обновлено"
+
+#: front/src/components/library/Library.vue:10
+#: src/components/library/Radios.vue:141
+#, fuzzy
+msgid "Radios"
+msgstr "Радио"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:39
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:25
+msgid "Reason"
+msgstr ""
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:222
+#: front/src/views/admin/moderation/DomainsDetail.vue:179
+msgid "Received library follows"
+msgstr ""
+
+#: front/src/components/manage/moderation/DomainsTable.vue:40
+#: front/src/components/mixins/Translations.vue:36
+#: front/src/components/mixins/Translations.vue:37
+msgid "Received messages"
+msgstr ""
+
+#: front/src/components/library/Home.vue:24
+msgid "Recently added"
+msgstr "Недавно добавленные"
+
+#: front/src/components/library/Home.vue:11
+#, fuzzy
+msgid "Recently favorited"
+msgstr "Недавно добавленные в избранное"
+
+#: front/src/components/library/Home.vue:6
+msgid "Recently listened"
+msgstr "Недавно прослушанные"
+
+#: front/src/views/content/remote/Home.vue:15
+msgid "Refresh"
+msgstr "Обновить"
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:135
+msgid "Refresh node info"
+msgstr ""
+
+#: front/src/components/common/ActionTable.vue:272
+msgid "Refresh table content"
+msgstr ""
+
+#: front/src/components/auth/Profile.vue:12
+msgid "Registered since %{ date }"
+msgstr "Зарегистрировано с %{ date }"
+
+#: front/src/components/auth/Signup.vue:9
+msgid "Registration are closed on this instance, you will need an invitation code to signup."
+msgstr "Регистрация на этом узле закрыта, вам понадобится код приглашения чтобы зарегистрироваться."
+
+#: front/src/components/manage/users/UsersTable.vue:71
+msgid "regular user"
+msgstr "обычный пользователь"
+
+#: front/src/views/content/libraries/Detail.vue:51
+msgid "Reject"
+msgstr "Отклонить"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:32
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:123
+#, fuzzy
+msgid "Reject media"
+msgstr "Отклонено"
+
+#: front/src/views/content/libraries/Detail.vue:43
+msgid "Rejected"
+msgstr "Отклонено"
+
+#: front/src/views/content/libraries/FilesTable.vue:234
+msgid "Relaunch import"
+msgstr "Перезапустить импорт"
+
+#: front/src/views/content/remote/Home.vue:6
+msgid "Remote libraries"
+msgstr "Удалённые библиотеки"
+
+#: front/src/views/content/remote/Home.vue:7
+msgid "Remote libraries are owned by other users on the network. You can access them as long as they are public or you are granted access."
+msgstr "Удалёнными библиотеками владеют другие пользователи в сети. Вы можете получить к ним доступ если они публичны или вам предоставлен доступ."
+
+#: front/src/components/library/radios/Filter.vue:59
+msgid "Remove"
+msgstr "Удалить"
+
+#: front/src/components/auth/Settings.vue:58
+msgid "Remove avatar"
+msgstr "Удалить аватар"
+
+#: front/src/components/favorites/TrackFavoriteIcon.vue:26
+msgid "Remove from favorites"
+msgstr "Удалить из избранного"
+
+#: front/src/views/content/libraries/Quota.vue:38
+msgid "Removes uploaded but yet to be processed tracks completely, adding the corresponding data to your quota."
+msgstr ""
+
+#: front/src/views/content/libraries/Quota.vue:64
+msgid "Removes uploaded tracks skipped during the import processes completely, adding the corresponding data to your quota."
+msgstr ""
+
+#: front/src/views/content/libraries/Quota.vue:90
+#, fuzzy
+msgid "Removes uploaded tracks that could not be processed by the server completely, adding the corresponding data to your quota."
+msgstr "Это удалит треки которые были загружены но ещё не обработаны. Файлы будут полностью удалены и вы получите соответствующую квоту."
+
+#: front/src/components/auth/SubsonicTokenForm.vue:34
+#: front/src/components/auth/SubsonicTokenForm.vue:37
+msgid "Request a new password"
+msgstr "Запросить новый пароль"
+
+#: front/src/components/auth/SubsonicTokenForm.vue:35
+msgid "Request a new Subsonic API password?"
+msgstr "Запросить новый пароль Subsonic API?"
+
+#: front/src/components/auth/SubsonicTokenForm.vue:43
+msgid "Request a password"
+msgstr "Запросить пароль"
+
+#: front/src/components/auth/Login.vue:34 src/views/auth/PasswordReset.vue:4
+#: front/src/views/auth/PasswordReset.vue:52
+msgid "Reset your password"
+msgstr "Сбросить ваш пароль"
+
+#: front/src/components/favorites/List.vue:38
+#: src/components/library/Artists.vue:30
+#: front/src/components/library/Radios.vue:52 src/views/playlists/List.vue:32
+msgid "Results per page"
+msgstr "Результатов на страницу"
+
+#: front/src/views/auth/EmailConfirm.vue:17
+#, fuzzy
+msgid "Return to login"
+msgstr "Назад ко входу"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:16
+msgid "Rule"
+msgstr ""
+
+#: front/src/components/admin/SettingsGroup.vue:63
+#: front/src/components/library/radios/Builder.vue:33
+msgid "Save"
+msgstr "Сохранить"
+
+#: front/src/views/content/remote/Card.vue:165
+msgid "Scan launched"
+msgstr "Сканирование запущено"
+
+#: front/src/views/content/remote/Card.vue:63
+#, fuzzy
+msgid "Scan now"
+msgstr "Сейчас проигрывается"
+
+#: front/src/views/content/remote/Card.vue:166
+msgid "Scan skipped (previous scan is too recent)"
+msgstr "Сканирование пропущено (предыдущее сканирование было совсем недавно)"
+
+#: front/src/views/content/remote/Card.vue:31
+#, fuzzy
+msgid "Scan waiting"
+msgstr "Ожидается сканирование"
+
+#: front/src/views/content/remote/Card.vue:43
+#, fuzzy
+msgid "Scanned"
+msgstr "Сканирование запущено"
+
+#: front/src/views/content/remote/Card.vue:47
+msgid "Scanned with errors"
+msgstr "Просканировано с ошибками"
+
+#: front/src/views/content/remote/Card.vue:35
+#, fuzzy
+msgid "Scanning… (%{ progress }%)"
+msgstr "Сканирование... (%{ progress }%)"
+
+#: front/src/components/library/Artists.vue:10
+#: src/components/library/Radios.vue:29
+#: front/src/components/manage/library/FilesTable.vue:5
+#: front/src/components/manage/moderation/AccountsTable.vue:5
+#: front/src/components/manage/moderation/DomainsTable.vue:5
+#: front/src/components/manage/users/InvitationsTable.vue:5
+#: front/src/components/manage/users/UsersTable.vue:5
+#: front/src/views/content/libraries/FilesTable.vue:5
+#: src/views/playlists/List.vue:13
+msgid "Search"
+msgstr "Поиск"
+
+#: front/src/views/content/remote/ScanForm.vue:9
+msgid "Search a remote library"
+msgstr "Искать в удалённой библиотеке"
+
+#: front/src/components/manage/moderation/AccountsTable.vue:171
+#, fuzzy
+msgid "Search by domain, username, bio..."
+msgstr "Искать по пользователю, адресу электронной почты, коду..."
+
+#: front/src/components/manage/moderation/DomainsTable.vue:151
+#, fuzzy
+msgid "Search by name..."
+msgstr "Искать по имени пользователя, адресу электронной почты, имени..."
+
+#: front/src/views/content/libraries/FilesTable.vue:201
+#, fuzzy
+msgid "Search by title, artist, album…"
+msgstr "Искать по названию, исполнителю, альбому..."
+
+#: front/src/components/manage/library/FilesTable.vue:176
+#, fuzzy
+msgid "Search by title, artist, domain…"
+msgstr "Искать по названию, исполнителю, домену..."
+
+#: front/src/components/manage/users/InvitationsTable.vue:153
+#, fuzzy
+msgid "Search by username, e-mail address, code…"
+msgstr "Искать по пользователю, адресу электронной почты, коду..."
+
+#: front/src/components/manage/users/UsersTable.vue:163
+#, fuzzy
+msgid "Search by username, e-mail address, name…"
+msgstr "Искать по имени пользователя, адресу электронной почты, имени..."
+
+#: front/src/components/audio/SearchBar.vue:20
+#, fuzzy
+msgid "Search for artists, albums, tracks…"
+msgstr "Искать исполнителей, альбомы, треки..."
+
+#: front/src/components/audio/Search.vue:2
+msgid "Search for some music"
+msgstr "Поискать музыку"
+
+#: front/src/components/library/Track.vue:162
+msgid "Search on lyrics.wikia.com"
+msgstr "Искать на lyrics.wikia.com"
+
+#: front/src/components/library/Album.vue:33
+#: src/components/library/Artist.vue:31
+#: front/src/components/library/Track.vue:47
+msgid "Search on Wikipedia"
+msgstr "Искать на Википедии"
+
+#: front/src/components/library/Library.vue:32
+#: src/views/admin/library/Base.vue:17
+#: front/src/views/admin/moderation/Base.vue:22
+#: src/views/admin/users/Base.vue:21 front/src/views/content/Base.vue:19
+msgid "Secondary menu"
+msgstr ""
+
+#: front/src/views/admin/Settings.vue:15
+msgid "Sections"
+msgstr "Разделы"
+
+#: front/src/components/library/radios/Builder.vue:45
+msgid "Select a filter"
+msgstr "Выберите фильтр"
+
+#: front/src/components/common/ActionTable.vue:77
+msgid "Select all %{ total } elements"
+msgid_plural "Select all %{ total } elements"
+msgstr[0] "Выделить %{ total } элемент"
+msgstr[1] "Выделить все %{ total } элемента"
+msgstr[2] "Выделить все %{ total } элементов"
+
+#: front/src/components/common/ActionTable.vue:86
+msgid "Select only current page"
+msgstr "Выбрать только текущую страницу"
+
+#: front/src/components/Sidebar.vue:43 src/components/Sidebar.vue:85
+#: front/src/components/manage/users/UsersTable.vue:181
+#: front/src/views/admin/moderation/AccountsDetail.vue:472
+msgid "Settings"
+msgstr "Настройки"
+
+#: front/src/components/auth/Settings.vue:10
+msgid "Settings updated"
+msgstr "Настройки обновлены"
+
+#: front/src/components/admin/SettingsGroup.vue:11
+msgid "Settings updated successfully."
+msgstr "Настройки успешно обновлены."
+
+#: front/src/components/manage/users/InvitationForm.vue:27
+msgid "Share link"
+msgstr "Поделиться ссылкой"
+
+#: front/src/views/content/libraries/Detail.vue:15
+#, fuzzy
+msgid "Share this link with other users so they can request access to your library."
+msgstr "Поделитесь этой ссылкой с другими пользователями чтобы они могли запросить доступ к вашей библиотеке."
+
+#: front/src/views/content/libraries/Detail.vue:14
+#: front/src/views/content/remote/Card.vue:73
+msgid "Sharing link"
+msgstr ""
+
+#: front/src/components/audio/album/Card.vue:40
+msgid "Show %{ count } more track"
+msgid_plural "Show %{ count } more tracks"
+msgstr[0] "Показать больше на %{ count } трек"
+msgstr[1] "Показать больше на %{ count } трека"
+msgstr[2] "Показать больше на %{ count } треков"
+
+#: front/src/components/audio/artist/Card.vue:30
+msgid "Show 1 more album"
+msgid_plural "Show %{ count } more albums"
+msgstr[0] "Показать больше на %{ count } альбом"
+msgstr[1] "Показать больше на %{ count } альбома"
+msgstr[2] "Показать больше на %{ count } альбомов"
+
+#: front/src/components/ShortcutsModal.vue:42
+msgid "Show available keyboard shortcuts"
+msgstr ""
+
+#: front/src/views/Notifications.vue:10
+msgid "Show read notifications"
+msgstr "Показывать прочитанные уведомления"
+
+#: front/src/components/forms/PasswordInput.vue:25
+msgid "Show/hide password"
+msgstr "Показать/скрыть пароль"
+
+#: front/src/components/manage/library/FilesTable.vue:97
+#: front/src/components/manage/moderation/AccountsTable.vue:88
+#: front/src/components/manage/moderation/DomainsTable.vue:74
+#: front/src/components/manage/users/InvitationsTable.vue:76
+#: front/src/components/manage/users/UsersTable.vue:87
+#: front/src/views/content/libraries/FilesTable.vue:114
+msgid "Showing results %{ start }-%{ end } on %{ total }"
+msgstr "Показаны результаты %{ start }-%{ end } из %{ total }"
+
+#: front/src/components/ShortcutsModal.vue:83
+#, fuzzy
+msgid "Shuffle queue"
+msgstr "Перемешать вашу очередь"
+
+#: front/src/components/audio/Player.vue:362
+msgid "Shuffle your queue"
+msgstr "Перемешать вашу очередь"
+
+#: front/src/components/auth/Signup.vue:95
+msgid "Sign Up"
+msgstr "Регистрация"
+
+#: front/src/components/manage/users/UsersTable.vue:40
+msgid "Sign-up"
+msgstr "Регистрация"
+
+#: front/src/components/mixins/Translations.vue:31
+#: front/src/views/admin/moderation/AccountsDetail.vue:176
+#: front/src/components/mixins/Translations.vue:32
+msgid "Sign-up date"
+msgstr "Дата регистрации"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:24
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:115
+#, fuzzy
+msgid "Silence activity"
+msgstr "Пользовательская активность"
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:28
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:119
+#, fuzzy
+msgid "Silence notifications"
+msgstr "Показывать прочитанные уведомления"
+
+#: front/src/components/library/FileUpload.vue:85
+#: front/src/components/library/Track.vue:120
+#: front/src/components/manage/library/FilesTable.vue:44
+#: front/src/components/mixins/Translations.vue:28
+#: front/src/views/content/libraries/FilesTable.vue:60
+#: front/src/components/mixins/Translations.vue:29
+msgid "Size"
+msgstr "Размер"
+
+#: front/src/views/content/libraries/FilesTable.vue:15
+#: front/src/views/content/libraries/FilesTable.vue:204
+msgid "Skipped"
+msgstr "Пропущено"
+
+#: front/src/views/content/libraries/Quota.vue:49
+msgid "Skipped files"
+msgstr "Пропущенные файлы"
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:97
+msgid "Software"
+msgstr ""
+
+#: front/src/components/Footer.vue:49
+msgid "Source code"
+msgstr "Исходный код"
+
+#: front/src/components/auth/Profile.vue:23
+#: front/src/components/manage/users/UsersTable.vue:70
+msgid "Staff member"
+msgstr ""
+
+#: front/src/components/radios/Button.vue:4
+#, fuzzy
+msgid "Start"
+msgstr "Начать"
+
+#: front/src/views/admin/Settings.vue:86
+msgid "Statistics"
+msgstr "Статистика"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:454
+msgid "Statistics are computed from known activity and content on your instance, and do not reflect general activity for this account"
+msgstr ""
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:358
+msgid "Statistics are computed from known activity and content on your instance, and do not reflect general activity for this domain"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:86
+#: front/src/components/manage/users/InvitationsTable.vue:17
+#: front/src/components/manage/users/InvitationsTable.vue:39
+#: front/src/components/manage/users/UsersTable.vue:43
+#: front/src/views/admin/moderation/DomainsDetail.vue:123
+#: front/src/views/content/libraries/Detail.vue:28
+msgid "Status"
+msgstr "Статус"
+
+#: front/src/components/radios/Button.vue:3
+msgid "Stop"
+msgstr "Остановить"
+
+#: front/src/components/Sidebar.vue:161
+msgid "Stop radio"
+msgstr "Остановить радио"
+
+#: front/src/App.vue:22
+msgid "Submit"
+msgstr "Отправить"
+
+#: front/src/views/admin/Settings.vue:85
+msgid "Subsonic"
+msgstr "Subsonic"
+
+#: front/src/components/auth/SubsonicTokenForm.vue:2
+msgid "Subsonic API password"
+msgstr "Пароль Subsonic API"
+
+#: front/src/App.vue:26
+msgid "Suggested choices"
+msgstr "Предложенные изменения"
+
+#: front/src/components/library/FileUpload.vue:3
+msgid "Summary"
+msgstr ""
+
+#: front/src/components/Footer.vue:39
+msgid "Support forum"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:78
+msgid "Supported extensions: %{ extensions }"
+msgstr ""
+
+#: front/src/components/playlists/Editor.vue:9
+#, fuzzy
+msgid "Syncing changes to server…"
+msgstr "Синхронизируем изменения с сервером..."
+
+#: front/src/components/common/CopyInput.vue:3
+msgid "Text copied to clipboard!"
+msgstr "Текст скопирован в буфер обмена!"
+
+#: front/src/components/Home.vue:26
+msgid "That's simple: we loved Grooveshark and we want to build something even better."
+msgstr "Это просто: нам нравился Grooveshark и мы хотели создать что-то ещё лучшее."
+
+#: front/src/components/Footer.vue:53
+msgid "The funkwhale logo was kindly designed and provided by Francis Gading."
+msgstr "Логотип funkwhale был любезно предоставлен Francis Gading."
+
+#: front/src/views/content/libraries/Form.vue:34
+#, fuzzy
+msgid "The library and all its tracks will be deleted. This can not be undone."
+msgstr "Библиотека и все треки в ней будут удалены. Это действие необратимо."
+
+#: front/src/components/library/FileUpload.vue:39
+msgid "The music files you are uploading are tagged properly:"
+msgstr ""
+
+#: front/src/components/audio/Player.vue:67
+msgid "The next track will play automatically in a few seconds..."
+msgstr ""
+
+#: front/src/components/Home.vue:121
+msgid "The plaform is free and open-source, you can install it and modify it without worries"
+msgstr ""
+
+#: front/src/components/auth/SubsonicTokenForm.vue:4
+msgid "The Subsonic API is not available on this Funkwhale instance."
+msgstr "Subsonic API недоступен на этом узле Funkwhale."
+
+#: front/src/components/library/FileUpload.vue:43
+msgid "The uploaded music files are in OGG, Flac or MP3 format"
+msgstr "Загружаемые музыкальные файлы в форматах OGG, Flac и MP3"
+
+#: front/src/views/content/Home.vue:4
+msgid "There are various ways to grab new content and make it available here."
+msgstr ""
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:66
+msgid "This action is irreversible."
+msgstr ""
+
+#: front/src/components/library/Album.vue:91
+msgid "This album is present in the following libraries:"
+msgstr "Альбом представлен в следующих библиотеках:"
+
+#: front/src/components/library/Artist.vue:63
+msgid "This artist is present in the following libraries:"
+msgstr "Исполнитель представлен в следующих библиотеках:"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:55
+#: front/src/views/admin/moderation/DomainsDetail.vue:48
+msgid "This domain is subject to specific moderation rules"
+msgstr ""
+
+#: front/src/views/content/Home.vue:9
+#, fuzzy
+msgid "This instance offers up to %{quota} of storage space for every user."
+msgstr "Этот узел предоставляет до %{quota} дискового пространства каждому пользователю."
+
+#: front/src/components/auth/Profile.vue:16
+msgid "This is you!"
+msgstr "Это вы!"
+
+#: front/src/views/content/libraries/Form.vue:71
+#, fuzzy
+msgid "This library contains my personal music, I hope you like it."
+msgstr "Эта библиотека содержит мою музыку, надеюсь она вам понравится!"
+
+#: front/src/views/content/remote/Card.vue:131
+msgid "This library is private and your approval from its owner is needed to access its content"
+msgstr ""
+
+#: front/src/views/content/remote/Card.vue:132
+msgid "This library is public and you can access its content freely"
+msgstr ""
+
+#: front/src/components/common/ActionTable.vue:45
+#, fuzzy
+msgid "This may affect a lot of elements or have irreversible consequences, please double check this is really what you want."
+msgstr "Это может повлиять на многие элементы, пожалуйста перепроверьте что вы действительно хотите этого."
+
+#: front/src/components/library/FileUpload.vue:52
+msgid "This reference will be used to group imported files together."
+msgstr ""
+
+#: front/src/components/audio/PlayButton.vue:73
+msgid "This track is not available in any library you have access to"
+msgstr ""
+
+#: front/src/components/library/Track.vue:171
+msgid "This track is present in the following libraries:"
+msgstr "Этот трек представлен в следующих библиотеках:"
+
+#: front/src/views/playlists/Detail.vue:37
+msgid "This will completely delete this playlist and cannot be undone."
+msgstr "Это необратимо удалит список воспроизведения."
+
+#: front/src/views/radios/Detail.vue:27
+msgid "This will completely delete this radio and cannot be undone."
+msgstr "Это радио будет необратимо удалено."
+
+#: front/src/components/auth/SubsonicTokenForm.vue:51
+msgid "This will completely disable access to the Subsonic API using from account."
+msgstr "Это полностью отключит доступ к Subsonic API для этого аккаунта."
+
+#: front/src/App.vue:129 src/components/Footer.vue:72
+msgid "This will erase your local data and disconnect you, do you want to continue?"
+msgstr ""
+
+#: front/src/components/auth/SubsonicTokenForm.vue:36
+msgid "This will log you out from existing devices that use the current password."
+msgstr "Это приведёт к отключению устройств которые используют текущий пароль."
+
+#: front/src/components/playlists/Editor.vue:44
+msgid "This will remove all tracks from this playlist and cannot be undone."
+msgstr "Это необратимо удалит все треки из этого списка воспроизведения."
+
+#: front/src/components/audio/track/Table.vue:6
+#: front/src/components/manage/library/FilesTable.vue:37
+#: front/src/components/mixins/Translations.vue:27
+#: front/src/views/content/libraries/FilesTable.vue:54
+#: front/src/components/mixins/Translations.vue:28
+msgid "Title"
+msgstr "Название"
+
+#: front/src/components/ShortcutsModal.vue:79
+msgid "Toggle queue looping"
+msgstr ""
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:288
+#: front/src/views/admin/moderation/DomainsDetail.vue:225
+msgid "Total size"
+msgstr ""
+
+#: front/src/views/content/libraries/Card.vue:61
+msgid "Total size of the files in this library"
+msgstr "Суммарный размер файлов в этой библиотеке"
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:113
+#, fuzzy
+msgid "Total users"
+msgstr "Не используется"
+
+#: front/src/components/audio/SearchBar.vue:27
+#: src/components/library/Track.vue:262
+#: front/src/components/metadata/Search.vue:138
+msgid "Track"
+msgstr "Трек"
+
+#: front/src/views/content/libraries/FilesTable.vue:205
+#, fuzzy
+msgid "Track already present in one of your libraries"
+msgstr "Трек уже был представлен в одной из ваших библиотек"
+
+#: front/src/components/library/Track.vue:85
+msgid "Track information"
+msgstr "Информация о треке"
+
+#: front/src/components/library/radios/Filter.vue:44
+msgid "Track matching filter"
+msgstr "Трек подходящий под фильтр"
+
+#: front/src/components/mixins/Translations.vue:23
+#: front/src/components/mixins/Translations.vue:24
+msgid "Track name"
+msgstr "Название трека"
+
+#: front/src/views/content/libraries/FilesTable.vue:209
+#, fuzzy
+msgid "Track uploaded, but not processed by the server yet"
+msgstr "Трек загружен но ещё не обработан сервером"
+
+#: front/src/components/instance/Stats.vue:54
+#, fuzzy
+msgid "tracks"
+msgstr "треки"
+
+#: front/src/components/library/Album.vue:81
+#: front/src/components/playlists/PlaylistModal.vue:33
+#: front/src/views/admin/moderation/AccountsDetail.vue:329
+#: front/src/views/admin/moderation/DomainsDetail.vue:265
+#: front/src/views/content/Base.vue:8 src/views/content/libraries/Detail.vue:8
+#: front/src/views/playlists/Detail.vue:50 src/views/radios/Detail.vue:34
+#, fuzzy
+msgid "Tracks"
+msgstr "Треки"
+
+#: front/src/components/library/Artist.vue:54
+msgid "Tracks by this artist"
+msgstr "Треки этого исполнителя"
+
+#: front/src/components/instance/Stats.vue:25
+msgid "Tracks favorited"
+msgstr "Избранные треки"
+
+#: front/src/components/instance/Stats.vue:19
+msgid "tracks listened"
+msgstr "треков прослушано"
+
+#: front/src/components/library/Track.vue:138
+#: front/src/components/manage/library/FilesTable.vue:41
+#: front/src/views/admin/moderation/AccountsDetail.vue:151
+msgid "Type"
+msgstr "Тип"
+
+#: front/src/components/manage/moderation/AccountsTable.vue:44
+#: front/src/components/manage/moderation/DomainsTable.vue:42
+msgid "Under moderation rule"
+msgstr ""
+
+#: front/src/views/content/remote/Card.vue:100
+#: src/views/content/remote/Card.vue:105
+msgid "Unfollow"
+msgstr "Отписаться"
+
+#: front/src/views/content/remote/Card.vue:101
+msgid "Unfollow this library?"
+msgstr "Отписаться от этой библиотеки?"
+
+#: front/src/components/About.vue:15
+msgid "Unfortunately, owners of this instance did not yet take the time to complete this page."
+msgstr "К сожалению, владельцы этого узла ещё не заполнили эту страницу."
+
+#: front/src/components/Home.vue:37
+#, fuzzy
+msgid "Unlimited music"
+msgstr "Безграничная музыка"
+
+#: front/src/components/audio/Player.vue:351
+msgid "Unmute"
+msgstr ""
+
+#: front/src/components/manage/moderation/InstancePolicyCard.vue:45
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:57
+#, fuzzy
+msgid "Update"
+msgstr "Дата загрузки"
+
+#: front/src/components/auth/Settings.vue:50
+msgid "Update avatar"
+msgstr "Обновить аватар"
+
+#: front/src/views/content/libraries/Form.vue:25
+msgid "Update library"
+msgstr "Обновить библиотеку"
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:3
+msgid "Update moderation rule"
+msgstr ""
+
+#: front/src/components/playlists/Form.vue:33
+msgid "Update playlist"
+msgstr "Обновить список воспроизведения"
+
+#: front/src/components/auth/Settings.vue:27
+msgid "Update settings"
+msgstr "Обновить настройки"
+
+#: front/src/views/auth/PasswordResetConfirm.vue:21
+#, fuzzy
+msgid "Update your password"
+msgstr "Обновите ваш пароль"
+
+#: front/src/views/content/libraries/Card.vue:44
+#: front/src/views/content/libraries/DetailArea.vue:24
+msgid "Upload"
+msgstr "Загрузить"
+
+#: front/src/components/auth/Settings.vue:45
+msgid "Upload a new avatar"
+msgstr "Загрузить новый аватар"
+
+#: front/src/views/content/Home.vue:6
+msgid "Upload audio content"
+msgstr "Загрузить аудио"
+
+#: front/src/views/content/libraries/FilesTable.vue:57
+msgid "Upload date"
+msgstr "Дата загрузки"
+
+#: front/src/components/library/FileUpload.vue:219
+#: front/src/components/library/FileUpload.vue:220
+#, fuzzy
+msgid "Upload denied, ensure the file is not too big and that you have not reached your quota"
+msgstr "Загрузка отклонена, убедитсь что файл не слишком большой и вы не превысили квоту"
+
+#: front/src/views/content/Home.vue:7
+#, fuzzy
+msgid "Upload music files (MP3, OGG, FLAC, etc.) from your personal library directly from your browser to enjoy them here."
+msgstr "Загрузите музыку (mp3, ogg, flac и т.д.) из вашей личной библиотеки прямо из вашего браузера и наслаждайтесь ей здесь."
+
+#: front/src/components/library/FileUpload.vue:31
+msgid "Upload new tracks"
+msgstr "Загрузить новые треки"
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:269
+#, fuzzy
+msgid "Upload quota"
+msgstr "Квота загрузки"
+
+#: front/src/components/library/FileUpload.vue:228
+msgid "Upload timeout, please try again"
+msgstr ""
+
+#: front/src/components/library/FileUpload.vue:100
+msgid "Uploaded"
+msgstr "Загружено"
+
+#: front/src/components/library/FileUpload.vue:5
+#, fuzzy
+msgid "Uploading"
+msgstr "Загружается"
+
+#: front/src/components/library/FileUpload.vue:103
+#, fuzzy
+msgid "Uploading…"
+msgstr "Загружается"
+
+#: front/src/components/manage/moderation/AccountsTable.vue:41
+#: front/src/components/mixins/Translations.vue:37
+#: front/src/views/admin/moderation/AccountsDetail.vue:305
+#: front/src/views/admin/moderation/DomainsDetail.vue:241
+#: front/src/components/mixins/Translations.vue:38
+#, fuzzy
+msgid "Uploads"
+msgstr "Загрузить"
+
+#: front/src/components/Footer.vue:16
+msgid "Use another instance"
+msgstr "Использовать другой узел"
+
+#: front/src/views/auth/PasswordReset.vue:12
+msgid "Use this form to request a password reset. We will send an email to the given address with instructions to reset your password."
+msgstr "Используйте эту форму чтобы запросить сброс пароля. Мы вышлем письмо на указанный адрес с инструкциями по сбросу вашего пароля."
+
+#: front/src/components/manage/moderation/InstancePolicyForm.vue:111
+msgid "Use this setting to temporarily enable/disable the policy without completely removing it."
+msgstr ""
+
+#: front/src/components/manage/users/InvitationsTable.vue:49
+msgid "Used"
+msgstr "Использовано"
+
+#: front/src/views/content/libraries/Detail.vue:26
+msgid "User"
+msgstr "Пользователь"
+
+#: front/src/components/instance/Stats.vue:5
+msgid "User activity"
+msgstr "Пользовательская активность"
+
+#: front/src/components/library/Album.vue:88
+#: src/components/library/Artist.vue:60
+#: front/src/components/library/Track.vue:168
+msgid "User libraries"
+msgstr "Пользовательские библиотеки"
+
+#: front/src/components/library/Radios.vue:20
+msgid "User radios"
+msgstr "Пользовательские радио"
+
+#: front/src/components/auth/Signup.vue:19
+#: front/src/components/manage/users/UsersTable.vue:37
+#: front/src/components/mixins/Translations.vue:33
+#: front/src/views/admin/moderation/AccountsDetail.vue:85
+#: front/src/components/mixins/Translations.vue:34
+msgid "Username"
+msgstr "Имя пользователя"
+
+#: front/src/components/auth/Login.vue:15
+msgid "Username or email"
+msgstr "Имя пользователя или пароль"
+
+#: front/src/components/instance/Stats.vue:13
+msgid "users"
+msgstr "пользователи"
+
+#: front/src/components/Sidebar.vue:91
+#: front/src/components/manage/moderation/DomainsTable.vue:39
+#: front/src/components/mixins/Translations.vue:35
+#: src/views/admin/Settings.vue:81 front/src/views/admin/users/Base.vue:5
+#: src/views/admin/users/UsersList.vue:3
+#: front/src/views/admin/users/UsersList.vue:21
+#: front/src/components/mixins/Translations.vue:36
+msgid "Users"
+msgstr "Пользователи"
+
+#: front/src/components/Footer.vue:29
+#, fuzzy
+msgid "Using Funkwhale"
+msgstr "О Funkwhale"
+
+#: front/src/components/Footer.vue:13
+#, fuzzy
+msgid "Version %{version}"
+msgstr "Исходный код (%{version})"
+
+#: front/src/views/content/libraries/Quota.vue:29
+#: front/src/views/content/libraries/Quota.vue:56
+#: front/src/views/content/libraries/Quota.vue:82
+msgid "View files"
+msgstr "Просмотреть файлы"
+
+#: front/src/components/library/Album.vue:37
+#: src/components/library/Artist.vue:35
+#: front/src/components/library/Track.vue:51
+#: front/src/components/metadata/ArtistCard.vue:49
+#: front/src/components/metadata/ReleaseCard.vue:53
+msgid "View on MusicBrainz"
+msgstr "Смотреть на MusicBrainz"
+
+#: front/src/views/content/libraries/Form.vue:18
+msgid "Visibility"
+msgstr "Видимость"
+
+#: front/src/views/content/libraries/Card.vue:59
+msgid "Visibility: everyone on this instance"
+msgstr "Видимость: все на этом узле"
+
+#: front/src/views/content/libraries/Card.vue:60
+msgid "Visibility: everyone, including other instances"
+msgstr "Видимость: все, включая другие узлы"
+
+#: front/src/views/content/libraries/Card.vue:58
+msgid "Visibility: nobody except me"
+msgstr "Видимость: никто кроме меня"
+
+#: front/src/components/library/Album.vue:67
+msgid "Volume %{ number }"
+msgstr ""
+
+#: front/src/components/playlists/PlaylistModal.vue:20
+msgid "We cannot add the track to a playlist"
+msgstr "Нам не удалось добавить трек в список воспроизведения"
+
+#: front/src/components/playlists/Form.vue:14
+msgid "We cannot create the playlist"
+msgstr "Нам не удалось создать список воспроизведения"
+
+#: front/src/components/auth/Signup.vue:13
+msgid "We cannot create your account"
+msgstr "Нам не удалось создать ваш аккаунт"
+
+#: front/src/components/audio/Player.vue:64
+#, fuzzy
+msgid "We cannot load this track"
+msgstr "Нам не удалось добавить трек в список воспроизведения"
+
+#: front/src/components/auth/Login.vue:7
+msgid "We cannot log you in"
+msgstr ""
+
+#: front/src/components/auth/Settings.vue:38
+msgid "We cannot save your avatar"
+msgstr "Мы не смогли сохранить ваш аватар"
+
+#: front/src/components/auth/Settings.vue:14
+msgid "We cannot save your settings"
+msgstr "Мы не смогли сохранить ваши настройки"
+
+#: front/src/components/Home.vue:127
+msgid "We do not track you or bother you with ads"
+msgstr "Мы не отслеживаем вас и не надоедаем вам рекламой"
+
+#: front/src/components/library/Track.vue:95
+#, fuzzy
+msgid "We don't have any copyright information for this track"
+msgstr "У нас нет уведомлений для показа!"
+
+#: front/src/components/library/Track.vue:106
+#, fuzzy
+msgid "We don't have any licensing information for this track"
+msgstr "У нас нет уведомлений для показа!"
+
+#: front/src/components/library/FileUpload.vue:40
+#, fuzzy
+msgid "We recommend using Picard for that purpose."
+msgstr "мы рекомендуем использовать Picard для этого"
+
+#: front/src/components/Home.vue:7
+msgid "We think listening to music should be simple."
+msgstr "Мы считаем что прослушивание музыки должно быть простым."
+
+#: front/src/components/PageNotFound.vue:10
+msgid "We're sorry, the page you asked for does not exist:"
+msgstr "Извините, страницы которую вы запрашивали не существует:"
+
+#: front/src/components/Home.vue:153
+msgid "Welcome"
+msgstr "Добро пожаловать"
+
+#: front/src/components/Home.vue:5
+msgid "Welcome on Funkwhale"
+msgstr "Добро пожаловать в Funkwhale"
+
+#: front/src/components/Home.vue:24
+msgid "Why funkwhale?"
+msgstr "Почему funkwhale?"
+
+#: front/src/components/audio/EmbedWizard.vue:13
+msgid "Widget height"
+msgstr ""
+
+#: front/src/components/audio/EmbedWizard.vue:6
+msgid "Widget width"
+msgstr ""
+
+#: front/src/components/Sidebar.vue:118
+#: front/src/components/manage/moderation/AccountsTable.vue:72
+#: front/src/components/manage/moderation/DomainsTable.vue:58
+msgid "Yes"
+msgstr "Да"
+
+#: front/src/components/auth/Logout.vue:8
+msgid "Yes, log me out!"
+msgstr ""
+
+#: front/src/views/content/libraries/Form.vue:19
+#, fuzzy
+msgid "You are able to share your library with other people, regardless of its visibility."
+msgstr "Вы сможете делиться вашей библиотекой с другими людьми независимо от её видимости."
+
+#: front/src/components/library/FileUpload.vue:33
+msgid "You are about to upload music to your library. Before proceeding, please ensure that:"
+msgstr "Вы собираетесь загрузить музыку в вашу библиотеку. Перед тем как продолжить, убедитесь что:"
+
+#: front/src/components/auth/Logout.vue:7
+msgid "You are currently logged in as %{ username }"
+msgstr "Вы вошли как %{ username }"
+
+#: front/src/views/content/Home.vue:17
+msgid "You can follow libraries from other users to get access to new music. Public libraries can be followed immediatly, while following a private library requires approval from its owner."
+msgstr "Вы можете подписаться на библиотеки других пользователей чтобы получать доступ к новой музыке. На публичные библиотеки можно подписаться сразу, в то время как подписка на приватную библиотеку требует подтверждения владельца."
+
+#: front/src/components/Home.vue:133
+msgid "You can invite friends and family to your instance so they can enjoy your music"
+msgstr "Вы можете пригласить друзей и семью на ваш узел чтобы они могли наслаждаться вашей музыкой"
+
+#: front/src/views/auth/EmailConfirm.vue:24
+#, fuzzy
+msgid "You can now use the service without limitations."
+msgstr "Ваш адрес электронной почты был подтверждён, теперь вы можете пользоваться сервисом без ограничений."
+
+#: front/src/components/library/radios/Builder.vue:7
+msgid "You can use this interface to build your own custom radio, which will play tracks according to your criteria."
+msgstr "Вы можете использовать этот интерфейс чтобы создать собственное радио, которое будет проигрывать треки согласно вашим критериям."
+
+#: front/src/components/auth/SubsonicTokenForm.vue:8
+msgid "You can use those to enjoy your playlist and music in offline mode, on your smartphone or tablet, for instance."
+msgstr "Вы можете наслаждаться вашим списком воспроизведения и музыкой в режиме оффлайн, например с вашего смартфона или планшета."
+
+#: front/src/views/admin/moderation/AccountsDetail.vue:46
+msgid "You don't have any rule in place for this account."
+msgstr ""
+
+#: front/src/views/admin/moderation/DomainsDetail.vue:39
+msgid "You don't have any rule in place for this domain."
+msgstr ""
+
+#: front/src/components/Sidebar.vue:158
+msgid "You have a radio playing"
+msgstr "У вас проигрывается радио"
+
+#: front/src/components/audio/Player.vue:71
+msgid "You may have a connectivity issue."
+msgstr ""
+
+#: front/src/App.vue:17
+msgid "You need to select an instance in order to continue"
+msgstr "Вы должны выбрать узел чтобы продолжить"
+
+#: front/src/components/auth/Settings.vue:100
+msgid "You will be logged out from this session and have to log in with the new one"
+msgstr ""
+
+#: front/src/components/auth/Settings.vue:71
+msgid "You will have to update your password on your clients that use this password."
+msgstr "Вам потребуется обновить пароль на своих клиентах чтобы использовать его."
+
+#: front/src/components/favorites/List.vue:112
+msgid "Your Favorites"
+msgstr "Ваше избранное"
+
+#: front/src/components/Home.vue:114
+msgid "Your music, your way"
+msgstr ""
+
+#: front/src/views/Notifications.vue:7
+msgid "Your notifications"
+msgstr "Ваши уведомления"
+
+#: front/src/views/auth/PasswordResetConfirm.vue:29
+msgid "Your password has been updated successfully."
+msgstr "Ваш пароль был успешно обновлён."
+
+#: front/src/components/auth/Settings.vue:101
+msgid "Your Subsonic password will be changed to a new, random one, logging you out from devices that used the old Subsonic password"
+msgstr "Ваш пароль Subsonic будет изменён на новый случайный, что приведёт к отключению всех устройств, которые использовали старый пароль Subsonic"
diff --git a/front/locales/sv/LC_MESSAGES/app.po b/front/locales/sv/LC_MESSAGES/app.po
index d9b32b01f76261a880c44a17634648bdbfc84df6..25c3596a676c575f82e9711ba0c461ce0bdb4b5d 100644
--- a/front/locales/sv/LC_MESSAGES/app.po
+++ b/front/locales/sv/LC_MESSAGES/app.po
@@ -8,7 +8,7 @@ msgstr ""
 "Project-Id-Version: front 1.0.0\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2018-07-17 19:29+0200\n"
-"PO-Revision-Date: 2018-10-03 16:06+0000\n"
+"PO-Revision-Date: 2018-10-09 18:22+0000\n"
 "Last-Translator: Tim Stahel <gitlab@swedneck.xyz>\n"
 "Language-Team: none\n"
 "Language: sv\n"
@@ -724,7 +724,7 @@ msgstr ""
 
 #: front/src/components/library/import/FileUpload.vue:4
 msgid "Ensure your music files are properly tagged before uploading them."
-msgstr ""
+msgstr "Se till att dina musikfiler är korrekt taggade innan du laddar upp dem."
 
 #: front/src/components/library/Radios.vue:140
 msgid "Enter a radio name..."
@@ -780,29 +780,29 @@ msgstr ""
 
 #: front/src/views/auth/PasswordResetConfirm.vue:7
 msgid "Error while changing your password"
-msgstr ""
+msgstr "Fel vid ändring av lösenord"
 
 #: front/src/views/auth/EmailConfirm.vue:7
 msgid "Error while confirming your email"
-msgstr ""
+msgstr "Fel vid bekräftelse av e-post"
 
 #: front/src/components/manage/users/InvitationForm.vue:4
 msgid "Error while creating invitation"
-msgstr ""
+msgstr "Fel vid skapande av inbjudan"
 
 #: front/src/components/admin/SettingsGroup.vue:5
 msgid "Error while saving settings"
-msgstr ""
+msgstr "Fel vid sparning av inställningar"
 
 #: front/src/components/federation/LibraryForm.vue:10
 msgid "Error while scanning library"
-msgstr ""
+msgstr "Fel vid skanning av bibliotek"
 
 #: front/src/components/library/import/BatchDetail.vue:41
 #: front/src/components/library/import/BatchDetail.vue:70
 #: front/src/components/library/import/BatchList.vue:15
 msgid "Errored"
-msgstr ""
+msgstr "Ett fel uppstod"
 
 #: front/src/components/playlists/Form.vue:89
 msgid "Everyone"
diff --git a/front/package.json b/front/package.json
index 9c8cba9fee9d8382b4efd46ad54d44f8566946fd..adeb1fb19d6bc64a4bee8b1f099245fc285875db 100644
--- a/front/package.json
+++ b/front/package.json
@@ -3,7 +3,7 @@
   "version": "0.1.0",
   "private": true,
   "scripts": {
-    "serve": "scripts/i18n-compile.sh && vue-cli-service serve --port ${VUE_PORT:-8000} --host ${VUE_HOST:-0.0.0.0}",
+    "serve": "vue-cli-service serve --port ${VUE_PORT:-8000} --host ${VUE_HOST:-0.0.0.0}",
     "build": "scripts/i18n-compile.sh && vue-cli-service build",
     "lint": "vue-cli-service lint",
     "i18n-extract": "scripts/i18n-extract.sh",
@@ -20,13 +20,13 @@
     "lodash": "^4.17.10",
     "masonry-layout": "^4.2.2",
     "moment": "^2.22.2",
-    "raven-js": "^3.26.4",
-    "semantic-ui-css": "^2.3.3",
+    "semantic-ui-css": "^2.4.1",
     "showdown": "^1.8.6",
     "vue": "^2.5.17",
     "vue-gettext": "^2.1.0",
     "vue-lazyload": "^1.2.6",
     "vue-masonry": "^0.11.5",
+    "vue-plyr": "^5.0.4",
     "vue-router": "^3.0.1",
     "vue-upload-component": "^2.8.11",
     "vuedraggable": "^2.16.0",
@@ -48,7 +48,8 @@
     "node-sass": "^4.9.3",
     "sass-loader": "^7.1.0",
     "sinon": "^6.1.5",
-    "vue-template-compiler": "^2.5.17"
+    "vue-template-compiler": "^2.5.17",
+    "webpack-bundle-size-analyzer": "^3.0.0"
   },
   "eslintConfig": {
     "root": true,
diff --git a/front/public/embed.html b/front/public/embed.html
new file mode 100644
index 0000000000000000000000000000000000000000..241e1cd8d9126885871c73854f76809687809997
--- /dev/null
+++ b/front/public/embed.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+  <meta charset="utf-8">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge">
+  <meta name="viewport" content="width=device-width,initial-scale=1.0">
+  <link rel="icon" href="<%= BASE_URL %>favicon.png">
+  <title>Funkwhale Widget</title>
+</head>
+
+<body>
+  <noscript>
+    <strong>We're sorry but this widget doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
+  </noscript>
+  <div id="app"></div>
+  <!-- built files will be auto injected -->
+</body>
+
+</html>
diff --git a/front/public/index.html b/front/public/index.html
index e6232290bb0a84ecc9045c3ce2d9df04ef95fa2d..7b09feaf028a141997212222c7967639038a1bd1 100644
--- a/front/public/index.html
+++ b/front/public/index.html
@@ -11,7 +11,7 @@
 
 <body>
   <noscript>
-    <strong>We're sorry but front doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
+    <strong>We're sorry but Funkwhale doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
   </noscript>
   <div id="app"></div>
   <!-- built files will be auto injected -->
diff --git a/front/public/settings.json b/front/public/settings.json
index 133fb567205ee6e4ab171655cde48e7e8a685d9b..6264b12cf851e73c57fa9670d19d5ed62997a35a 100644
--- a/front/public/settings.json
+++ b/front/public/settings.json
@@ -1,3 +1,6 @@
 {
-  "additionalStylesheets": ["/custom.css"]
+  "additionalStylesheets": [
+    "/front/custom.css"
+  ],
+  "defaultServerUrl": null
 }
diff --git a/front/scripts/i18n-compile.sh b/front/scripts/i18n-compile.sh
index 955913393f1551b003e111280505b40500d5ebf3..eb4e9970aade5e7efe27594ca4bcbbf93ddb159c 100755
--- a/front/scripts/i18n-compile.sh
+++ b/front/scripts/i18n-compile.sh
@@ -1,3 +1,9 @@
 #!/bin/bash -eux
-locales=$(tail -n +2 src/locales.js | sed -e 's/export default //' | jq '.locales[].code' | xargs echo)
-find locales -name '*.po' | xargs $(yarn bin)/gettext-compile --output src/translations.json
+locales=$(tail -n +2 src/locales.js | sed -e 's/export default //' | jq '.locales[].code' | grep -v 'en_US' | xargs echo)
+mkdir -p src/translations
+
+for locale in $locales; do
+    $(yarn bin)/gettext-compile locales/$locale/LC_MESSAGES/app.po --output src/translations/$locale.json
+done
+
+# find locales -name '*.po' | xargs $(yarn bin)/gettext-compile --output src/translations.json
diff --git a/front/src/App.vue b/front/src/App.vue
index 16154b130d2d49f9c57b3f35e6daeba7b5688b61..2ce3ba3ed74a17bfa97b903ed383e8ebeca70da1 100644
--- a/front/src/App.vue
+++ b/front/src/App.vue
@@ -1,20 +1,34 @@
 <template>
   <div id="app">
     <!-- here, we display custom stylesheets, if any -->
-    <link v-for="url in customStylesheets" rel="stylesheet" property="stylesheet" :href="url" :key="url">
+    <link
+      v-for="url in customStylesheets"
+      rel="stylesheet"
+      property="stylesheet"
+      :href="url"
+      :key="url"
+    >
     <div class="ui main text container instance-chooser" v-if="!$store.state.instance.instanceUrl">
       <div class="ui padded segment">
-        <h1 class="ui header"><translate>Choose your instance</translate></h1>
+        <h1 class="ui header">
+          <translate>Choose your instance</translate>
+        </h1>
         <form class="ui form" @submit.prevent="$store.dispatch('instance/setUrl', instanceUrl)">
-          <p><translate>You need to select an instance in order to continue</translate></p>
+          <p>
+            <translate>You need to select an instance in order to continue</translate>
+          </p>
           <div class="ui action input">
             <input type="text" v-model="instanceUrl">
-            <button type="submit" class="ui button"><translate>Submit</translate></button>
+            <button type="submit" class="ui button">
+              <translate>Submit</translate>
+            </button>
           </div>
-          <p><translate>Suggested choices</translate></p>
+          <p>
+            <translate>Suggested choices</translate>
+          </p>
           <div class="ui bulleted list">
             <div class="ui item" v-for="url in suggestedInstances">
-              <a @click="instanceUrl = url">{{ url }}</a>
+              <a @click="instanceUrl = url; $store.dispatch('instance/setUrl', url)">{{ url }}</a>
             </div>
           </div>
         </form>
@@ -22,99 +36,52 @@
     </div>
     <template v-else>
       <sidebar></sidebar>
-      <service-messages v-if="messages.length > 0" />
+      <service-messages v-if="messages.length > 0"/>
       <router-view :key="$route.fullPath"></router-view>
       <div class="ui fitted divider"></div>
-      <div id="footer" class="ui vertical footer segment">
-        <div class="ui container">
-          <div class="ui stackable equal height stackable grid">
-            <div class="three wide column">
-              <h4 v-translate class="ui header">Links</h4>
-              <div class="ui link list">
-                <router-link class="item" to="/about">
-                  <translate>About this instance</translate>
-                </router-link>
-                <a href="https://funkwhale.audio" class="item" target="_blank"><translate>Official website</translate></a>
-                <a href="https://docs.funkwhale.audio" class="item" target="_blank"><translate>Documentation</translate></a>
-                <a href="https://code.eliotberriot.com/funkwhale/funkwhale" class="item" target="_blank">
-                  <translate :translate-params="{version: version}" v-if="version">Source code (%{version})</translate>
-                  <translate v-else>Source code</translate>
-                </a>
-                <a href="https://code.eliotberriot.com/funkwhale/funkwhale/issues" class="item" target="_blank"><translate>Issue tracker</translate></a>
-                <a @click="switchInstance" class="item" >
-                  <translate>Use another instance</translate>
-                  <template v-if="$store.state.instance.instanceUrl !== '/'">
-                    <br>
-                    ({{ $store.state.instance.instanceUrl }})
-                  </template>
-                </a>
-              </div>
-            </div>
-            <div class="ten wide column">
-              <h4 v-translate class="ui header">About Funkwhale</h4>
-              <p>
-                <translate>Funkwhale is a free and open-source project run by volunteers. You can help us improve the platform by reporting bugs, suggesting features and share the project with your friends!</translate>
-              </p>
-              <p>
-                <translate>The funkwhale logo was kindly designed and provided by Francis Gading.</translate>
-              </p>
-            </div>
-            <div class="three wide column">
-              <h4 v-translate class="ui header">Options</h4>
-              <div class="ui form">
-                <div class="ui field">
-                  <label><translate>Change language</translate></label>
-                  <select class="ui dropdown" v-model="$language.current">
-                    <option v-for="(language, key) in $language.available" :value="key">{{ language }}</option>
-                  </select>
-                </div>
-              </div>
-              <br>
-              <a target="_blank" href="https://translate.funkwhale.audio/engage/funkwhale/">
-                <translate>Help us translate Funkwhale</translate>
-              </a>
-            </div>
-
-          </div>
-        </div>
-      </div>
-      <raven
-        v-if="$store.state.instance.settings.raven.front_enabled.value"
-        :dsn="$store.state.instance.settings.raven.front_dsn.value">
-      </raven>
+      <app-footer
+        :version="version"
+        @show:shortcuts-modal="showShortcutsModal = !showShortcutsModal"
+      ></app-footer>
       <playlist-modal v-if="$store.state.auth.authenticated"></playlist-modal>
+      <shortcuts-modal @update:show="showShortcutsModal = $event" :show="showShortcutsModal"></shortcuts-modal>
+      <GlobalEvents @keydown.h.exact="showShortcutsModal = !showShortcutsModal"/>
     </template>
   </div>
 </template>
 
 <script>
+import Vue from 'vue'
 import axios from 'axios'
-import _ from 'lodash'
+import _ from '@/lodash'
 import {mapState} from 'vuex'
 import { WebSocketBridge } from 'django-channels'
-
-
-import translations from '@/translations'
+import GlobalEvents from '@/components/utils/global-events'
 
 import Sidebar from '@/components/Sidebar'
-import Raven from '@/components/Raven'
+import AppFooter from '@/components/Footer'
 import ServiceMessages from '@/components/ServiceMessages'
 
+import locales from './locales'
 import PlaylistModal from '@/components/playlists/PlaylistModal'
+import ShortcutsModal from '@/components/ShortcutsModal'
 
 export default {
   name: 'app',
   components: {
     Sidebar,
-    Raven,
+    AppFooter,
     PlaylistModal,
+    ShortcutsModal,
+    GlobalEvents,
     ServiceMessages
   },
   data () {
     return {
       bridge: null,
       nodeinfo: null,
-      instanceUrl: null
+      instanceUrl: null,
+      showShortcutsModal: false,
     }
   },
   created () {
@@ -126,7 +93,11 @@ export default {
       self.$store.commit('ui/computeLastDate')
     }, 1000 * 60)
     if (!this.$store.state.instance.instanceUrl) {
-      let defaultInstanceUrl = process.env.VUE_APP_INSTANCE_URL || this.$store.getters['instance/defaultUrl']()
+      // we have several way to guess the API server url. By order of precedence:
+      // 1. use the url provided in settings.json, if any
+      // 2. use the url specified when building via VUE_APP_INSTANCE_URL
+      // 3. use the current url
+      let defaultInstanceUrl = this.$store.state.instance.frontSettings.defaultServerUrl || process.env.VUE_APP_INSTANCE_URL || this.$store.getters['instance/defaultUrl']()
       this.$store.commit('instance/instanceUrl', defaultInstanceUrl)
     } else {
       // needed to trigger initialization of axios
@@ -166,7 +137,9 @@ export default {
     },
     autodetectLanguage () {
       let userLanguage = navigator.language || navigator.userLanguage
-      let available = _.keys(translations)
+      let available = locales.locales.map(e => { return e.code })
+      let self = this
+      let candidate
       let matching = available.filter((a) => {
         return userLanguage.replace('-', '_') === a
       })
@@ -174,10 +147,20 @@ export default {
         return userLanguage.replace('-', '_').split('_')[0] === a.split('_')[0]
       })
       if (matching.length > 0) {
-        this.$language.current = matching[0]
+        candidate = matching[0]
       } else if (almostMatching.length > 0) {
-        this.$language.current = almostMatching[0]
+        candidate = almostMatching[0]
+      } else {
+        return
       }
+      import(`./translations/${candidate}.json`).then((response) =>{
+        Vue.$translations[candidate] = response.default[candidate]
+      }).finally(() => {
+        // set current language twice, otherwise we seem to have a cache somewhere
+        // and rendering does not happen
+        self.$language.current = 'noop'
+        self.$language.current = candidate
+      })
     },
     disconnect () {
       if (!this.bridge) {
@@ -200,8 +183,8 @@ export default {
       url = url.replace('https://', 'wss://')
       bridge.connect(
         url,
-        null,
-        {reconnectInterval: 5000})
+        [],
+        {reconnectInterval: 1000 * 60})
       bridge.listen(function (event) {
         self.$store.dispatch('ui/websocketEvent', event)
       })
@@ -215,8 +198,18 @@ export default {
       messages: state => state.ui.messages
     }),
     suggestedInstances () {
-      let instances = [this.$store.getters['instance/defaultUrl'](), 'https://demo.funkwhale.audio']
-      return instances
+      let instances = this.$store.state.instance.knownInstances.slice(0)
+      console.log('instance', instances)
+      if (this.$store.state.instance.frontSettings.defaultServerUrl) {
+        let serverUrl = this.$store.state.instance.frontSettings.defaultServerUrl
+        if (!serverUrl.endsWith('/')) {
+          serverUrl = serverUrl + '/'
+        }
+        instances.push(serverUrl)
+      }
+      instances.push(this.$store.getters['instance/defaultUrl'](), 'https://demo.funkwhale.audio/')
+      console.log('HELLO', instances)
+      return _.uniq(instances.filter((e) => {return e}))
     },
     version () {
       if (!this.nodeinfo) {
@@ -250,134 +243,5 @@ export default {
 </script>
 
 <style lang="scss">
-// we do the import here instead in main.js
-// as resolve order is not deterministric in webpack
-// and we end up with CSS rules not applied,
-// see https://github.com/webpack/webpack/issues/215
-@import 'semantic/semantic.css';
-@import 'style/vendor/media';
-
-
-html, body {
-  @include media("<desktop") {
-    font-size: 90%;
-  }
-}
-#app {
-  font-family: 'Avenir', Helvetica, Arial, sans-serif;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-}
-
-.instance-chooser {
-  margin-top: 2em;
-}
-
-.main.pusher, .footer {
-  @include media(">desktop") {
-    margin-left: 350px !important;
-    margin-top: 50px;
-  }
-  transform: none !important;
-}
-
-
-.main.pusher > .ui.secondary.menu {
-  margin-left: 0;
-  margin-right: 0;
-  border: none;
-  box-shadow: inset 0px -2px 0px 0px rgba(34, 36, 38, 0.15);
-  .ui.item {
-    border: none;
-    border-bottom-style: none;
-    margin-bottom: 0px;
-    &.active {
-      box-shadow: inset 0px -2px 0px 0px #000;
-    }
-  }
-  @include media(">tablet") {
-    padding: 0 2.5rem;
-  }
-  @include media(">desktop") {
-    position: fixed;
-    left: 350px;
-    right: 0px;
-    top: 0px;
-    z-index: 99;
-  }
-  background-color: white;
-  .item {
-    padding-top: 1.5em;
-    padding-bottom: 1.5em;
-  }
-}
-
-.service-messages {
-  position: fixed;
-  bottom: 1em;
-  left: 1em;
-  @include media(">desktop") {
-    left: 350px;
-  }
-}
-.main-pusher {
-  padding: 1.5rem 0;
-}
-.ui.stripe.segment, #footer {
-  padding: 2em;
-  @include media(">tablet") {
-    padding: 4em;
-  }
-}
-
-.ellipsis {
-  text-overflow: ellipsis;
-  white-space: nowrap;
-  overflow: hidden;
-}
-
-.ui.small.text.container {
-  max-width: 500px !important;
-}
-
-.button.icon.tiny {
-    padding: 0.5em !important;
-}
-
-.sidebar {
-  .logo {
-    path {
-      fill: white;
-    }
-  }
-}
-
-.discrete {
-  color: rgba(0, 0, 0, 0.87);
-}
-.link {
-  cursor: pointer;
-}
-
-.floated.buttons .button ~ .dropdown {
-  border-left: none;
-}
-
-.ui.icon.header .circular.icon {
-  display: flex;
-  justify-content: center;
-
-}
-
-.segment-content .button{
-  margin:  0.5em;
-}
-
-a {
-  cursor: pointer;
-}
-.segment.hidden {
-  display: none;
-}
-
+@import "style/_main";
 </style>
diff --git a/front/src/Embed.vue b/front/src/Embed.vue
new file mode 100644
index 0000000000000000000000000000000000000000..7987b054a44213976944251afe7c152e7043ad82
--- /dev/null
+++ b/front/src/Embed.vue
@@ -0,0 +1,565 @@
+<template>
+  <main :class="[theme]">
+    <!-- SVG from https://cdn.plyr.io/3.4.7/plyr.svg -->
+    <svg aria-hidden="true" style="display: none" xmlns="http://www.w3.org/2000/svg">
+      <symbol id="plyr-download"><path d="M9 13c.3 0 .5-.1.7-.3L15.4 7 14 5.6l-4 4V1H8v8.6l-4-4L2.6 7l5.7 5.7c.2.2.4.3.7.3zM2 15h14v2H2z"/></symbol>
+      <symbol id="plyr-enter-fullscreen"><path d="M10 3h3.6l-4 4L11 8.4l4-4V8h2V1h-7zM7 9.6l-4 4V10H1v7h7v-2H4.4l4-4z"/></symbol>
+      <symbol id="plyr-exit-fullscreen"><path d="M1 12h3.6l-4 4L2 17.4l4-4V17h2v-7H1zM16 .6l-4 4V1h-2v7h7V6h-3.6l4-4z"/></symbol>
+      <symbol id="plyr-fast-forward"><path d="M7.875 7.171L0 1v16l7.875-6.171V17L18 9 7.875 1z"/></symbol>
+      <symbol id="plyr-muted"><path d="M12.4 12.5l2.1-2.1 2.1 2.1 1.4-1.4L15.9 9 18 6.9l-1.4-1.4-2.1 2.1-2.1-2.1L11 6.9 13.1 9 11 11.1zM3.786 6.008H.714C.286 6.008 0 6.31 0 6.76v4.512c0 .452.286.752.714.752h3.072l4.071 3.858c.5.3 1.143 0 1.143-.602V2.752c0-.601-.643-.977-1.143-.601L3.786 6.008z"/></symbol>
+      <symbol id="plyr-pause"><path d="M6 1H3c-.6 0-1 .4-1 1v14c0 .6.4 1 1 1h3c.6 0 1-.4 1-1V2c0-.6-.4-1-1-1zM12 1c-.6 0-1 .4-1 1v14c0 .6.4 1 1 1h3c.6 0 1-.4 1-1V2c0-.6-.4-1-1-1h-3z"/></symbol>
+      <symbol id="plyr-pip"><path d="M13.293 3.293L7.022 9.564l1.414 1.414 6.271-6.271L17 7V1h-6z"/><path d="M13 15H3V5h5V3H2a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-6h-2v5z"/></symbol>
+      <symbol id="plyr-play"><path d="M15.562 8.1L3.87.225C3.052-.337 2 .225 2 1.125v15.75c0 .9 1.052 1.462 1.87.9L15.563 9.9c.584-.45.584-1.35 0-1.8z"/></symbol>
+      <symbol id="plyr-restart"><path d="M9.7 1.2l.7 6.4 2.1-2.1c1.9 1.9 1.9 5.1 0 7-.9 1-2.2 1.5-3.5 1.5-1.3 0-2.6-.5-3.5-1.5-1.9-1.9-1.9-5.1 0-7 .6-.6 1.4-1.1 2.3-1.3l-.6-1.9C6 2.6 4.9 3.2 4 4.1 1.3 6.8 1.3 11.2 4 14c1.3 1.3 3.1 2 4.9 2 1.9 0 3.6-.7 4.9-2 2.7-2.7 2.7-7.1 0-9.9L16 1.9l-6.3-.7z"/></symbol>
+      <symbol id="plyr-rewind"><path d="M10.125 1L0 9l10.125 8v-6.171L18 17V1l-7.875 6.171z"/></symbol>
+      <symbol id="plyr-settings"><path d="M16.135 7.784a2 2 0 0 1-1.23-2.969c.322-.536.225-.998-.094-1.316l-.31-.31c-.318-.318-.78-.415-1.316-.094a2 2 0 0 1-2.969-1.23C10.065 1.258 9.669 1 9.219 1h-.438c-.45 0-.845.258-.997.865a2 2 0 0 1-2.969 1.23c-.536-.322-.999-.225-1.317.093l-.31.31c-.318.318-.415.781-.093 1.317a2 2 0 0 1-1.23 2.969C1.26 7.935 1 8.33 1 8.781v.438c0 .45.258.845.865.997a2 2 0 0 1 1.23 2.969c-.322.536-.225.998.094 1.316l.31.31c.319.319.782.415 1.316.094a2 2 0 0 1 2.969 1.23c.151.607.547.865.997.865h.438c.45 0 .845-.258.997-.865a2 2 0 0 1 2.969-1.23c.535.321.997.225 1.316-.094l.31-.31c.318-.318.415-.781.094-1.316a2 2 0 0 1 1.23-2.969c.607-.151.865-.547.865-.997v-.438c0-.451-.26-.846-.865-.997zM9 12a3 3 0 1 1 0-6 3 3 0 0 1 0 6z"/></symbol>
+      <symbol id="plyr-volume"><path d="M15.6 3.3c-.4-.4-1-.4-1.4 0-.4.4-.4 1 0 1.4C15.4 5.9 16 7.4 16 9c0 1.6-.6 3.1-1.8 4.3-.4.4-.4 1 0 1.4.2.2.5.3.7.3.3 0 .5-.1.7-.3C17.1 13.2 18 11.2 18 9s-.9-4.2-2.4-5.7z"/><path d="M11.282 5.282a.909.909 0 0 0 0 1.316c.735.735.995 1.458.995 2.402 0 .936-.425 1.917-.995 2.487a.909.909 0 0 0 0 1.316c.145.145.636.262 1.018.156a.725.725 0 0 0 .298-.156C13.773 11.733 14.13 10.16 14.13 9c0-.17-.002-.34-.011-.51-.053-.992-.319-2.005-1.522-3.208a.909.909 0 0 0-1.316 0zM3.786 6.008H.714C.286 6.008 0 6.31 0 6.76v4.512c0 .452.286.752.714.752h3.072l4.071 3.858c.5.3 1.143 0 1.143-.602V2.752c0-.601-.643-.977-1.143-.601L3.786 6.008z"/></symbol></svg>
+      <!-- those ones are from fork-awesome -->
+      <symbol id="plyr-step-backward"><path d="M979 141c25-25 45-16 45 19v1472c0 35-20 44-45 19L269 941c-6-6-10-12-13-19v678c0 35-29 64-64 64H64c-35 0-64-29-64-64V192c0-35 29-64 64-64h128c35 0 64 29 64 64v678c3-7 7-13 13-19z"/></symbol>
+      <symbol id="plyr-step-forward"><path d="M45 1651c-25 25-45 16-45-19V160c0-35 20-44 45-19l710 710c6 6 10 12 13 19V192c0-35 29-64 64-64h128c35 0 64 29 64 64v1408c0 35-29 64-64 64H832c-35 0-64-29-64-64V922c-3 7-7 13-13 19z"/></symbol>
+    </svg>
+    <article>
+      <aside class="cover main" v-if="currentTrack">
+        <img height="120" v-if="currentTrack.cover" :src="currentTrack.cover" alt="Cover" />
+        <img height="120" v-else src="./assets/embed/default-cover.jpeg" alt="Cover" />
+      </aside>
+      <div class="content" aria-label="Track information">
+        <header v-if="currentTrack">
+          <h3><a :href="fullUrl('/library/tracks/' + currentTrack.id)" target="_blank" rel="noopener noreferrer">{{ currentTrack.title }}</a></h3>
+          By <a :href="fullUrl('/library/artists/' + currentTrack.artist.id)" target="_blank" rel="noopener noreferrer">{{ currentTrack.artist.name }}</a>
+        </header>
+        <section v-if="!isLoading" class="controls" aria-label="Audio player">
+          <template v-if="currentTrack && currentTrack.sources.length > 0">
+            <div class="queue-controls plyr--audio" v-if="tracks.length > 1">
+              <div class="plyr__controls">
+                <button
+                  @focus="setControlFocus($event, true)"
+                  @blur="setControlFocus($event, false)"
+                  @click="previous()"
+                  type="button"
+                  class="plyr__control"
+                  aria-label="Play previous track">
+                  <svg class="icon--not-pressed" role="presentation" focusable="false" viewBox="0 0 1100 1650" width="80" height="80">
+                    <use xlink:href="#plyr-step-backward"></use>
+                  </svg>
+                </button>
+                <button
+                  @click="next()"
+                  @focus="setControlFocus($event, true)"
+                  @blur="setControlFocus($event, false)"
+                  type="button"
+                  class="plyr__control"
+                  aria-label="Play next track">
+                  <svg class="icon--not-pressed" role="presentation" focusable="false" viewBox="0 0 1100 1650" width="80" height="80">
+                    <use xlink:href="#plyr-step-forward"></use>
+                  </svg>
+                </button>
+              </div>
+            </div>
+
+            <vue-plyr
+              :key="currentIndex"
+              ref="player"
+              class="player"
+              :options="{loadSprite: false, controls: controls, duration: currentTrack.sources[0].duration}">
+              <audio preload="none">
+                <source v-for="source in currentTrack.sources" :src="source.src" :type="source.type"/>
+              </audio>
+            </vue-plyr>
+          </template>
+          <div v-else class="player">
+            <span v-if="error === 'invalid_type'" class="error">Widget improperly configured (bad resource type {{ type }}).</span>
+            <span v-else-if="error === 'invalid_id'" class="error">Widget improperly configured (missing resource id).</span>
+            <span v-else-if="error === 'server_not_found'" class="error">Track not found.</span>
+            <span v-else-if="error === 'server_requires_auth'" class="error">You need to login to access this resource.</span>
+            <span v-else-if="error === 'server_error'" class="error">A server error occured.</span>
+            <span v-else-if="error === 'server_error'" class="error">An unknown error occured while loading track data from server.</span>
+            <span v-else-if="currentTrack && currentTrack.sources.length === 0" class="error">This track is unavailable.</span>
+            <span v-else class="error">An unknown error occured while loading track data.</span>
+          </div>
+          <a title="Funkwhale" href="https://funkwhale.audio" target="_blank" rel="noopener noreferrer" class="logo-wrapper">
+            <logo :fill="currentTheme.textColor" class="logo"></logo>
+          </a>
+        </section>
+      </div>
+    </article>
+    <div v-if="tracks.length > 1" class="queue-wrapper" id="queue">
+      <table class="queue">
+        <tbody>
+          <tr
+            :id="'queue-item-' + index"
+            role="button"
+            tabindex="0"
+            v-if="track.sources.length > 0"
+            :key="index"
+            :class="[{active: index === currentIndex}]"
+            @click="play(index)"
+            @keyup.enter="play(index)"
+            v-for="(track, index) in tracks">
+            <td class="position-cell" width="40">
+              <span class="position">
+                {{ index + 1 }}
+              </span>
+            </td>
+            <td class="title" :title="track.title" ><div colspan="2" class="ellipsis">{{ track.title }}</div></td>
+            <td class="artist" :title="track.artist.name" ><div class="ellipsis">{{ track.artist.name }}</div></td>
+            <td class="album">
+              <div class="ellipsis " v-if="track.album" :title="track.album.title">{{ track.album.title }}</div>
+            </td>
+            <td width="50">{{ time.durationFormatted(track.sources[0].duration) }}</td>
+          </tr>
+        </tbody>
+      </table>
+    </div>
+  </main>
+</template>
+
+<script>
+import axios from 'axios'
+import Logo from "@/components/Logo"
+import url from '@/utils/url'
+import time from '@/utils/time'
+
+function getURLParams () {
+  var urlParams
+  var match,
+      pl     = /\+/g,  // Regex for replacing addition symbol with a space
+      search = /([^&=]+)=?([^&]*)/g,
+      decode = function (s) { return decodeURIComponent(s.replace(pl, " ")); },
+      query  = window.location.search.substring(1);
+
+  urlParams = {};
+  while (match = search.exec(query))
+      urlParams[decode(match[1])] = decode(match[2]);
+  return urlParams
+}
+export default {
+  name: 'app',
+  components: {Logo},
+  data () {
+    return {
+      time,
+      supportedTypes: ['track', 'album'],
+      baseUrl: '',
+      error: null,
+      type: null,
+      id: null,
+      tracks: [],
+      url: null,
+      isLoading: true,
+      theme: 'dark',
+      currentIndex: -1,
+      themes: {
+        dark: {
+          textColor: 'white',
+        }
+      }
+    }
+  },
+  created () {
+    let params = getURLParams()
+    this.type = params.type
+    if (this.supportedTypes.indexOf(this.type) === -1) {
+      this.error = 'invalid_type'
+    }
+    this.id = params.id
+    if (!this.id) {
+      this.error = 'invalid_id'
+    }
+    if (this.error) {
+      this.isLoading = false
+      return
+    }
+    if (!!params.instance) {
+      this.baseUrl = params.instance
+    }
+    this.fetch(this.type, this.id)
+  },
+  mounted () {
+    var parser = document.createElement('a')
+    parser.href = this.baseUrl
+    this.url = parser
+  },
+  computed: {
+    currentTrack () {
+      if (this.tracks.length === 0) {
+        return null
+      }
+      return this.tracks[this.currentIndex]
+    },
+    currentTheme () {
+      return this.themes[this.theme]
+    },
+    controls () {
+      return  [
+        'play', // Play/pause playback
+        'progress', // The progress bar and scrubber for playback and buffering
+        'current-time', // The current time of playback
+        'mute', // Toggle mute
+        'volume', // Volume control
+      ]
+    },
+    hasPrevious () {
+      return this.currentIndex > 0
+    },
+    hasNext () {
+      return this.currentIndex < this.tracks.length - 1
+    },
+  },
+  methods: {
+    next () {
+      if (this.hasNext) {
+        this.play(this.currentIndex + 1)
+      }
+    },
+    previous () {
+      if (this.hasPrevious) {
+        this.play(this.currentIndex - 1)
+      }
+    },
+    setControlFocus(event, enable) {
+      if (enable) {
+        event.target.classList.add("plyr__tab-focus");
+      } else {
+        event.target.classList.remove("plyr__tab-focus");
+      }
+    },
+    fetch (type, id) {
+      if (type === 'track') {
+        this.fetchTrack(id)
+      }
+      if (type === 'album') {
+        this.fetchTracks({album: id, playable: true})
+      }
+    },
+    play (index) {
+      this.currentIndex = index
+      let self = this
+      this.$nextTick(() => {
+        self.$refs.player.player.play()
+      })
+    },
+    fetchTrack (id) {
+      let self = this
+      let url = `${this.baseUrl}/api/v1/tracks/${id}/`
+      axios.get(url).then(response => {
+        self.tracks = self.parseTracks([response.data])
+        self.isLoading = false;
+      }).catch(error => {
+        if (error.response) {
+          if (error.response.status === 404) {
+            self.error = 'server_not_found'
+          }
+          else if (error.response.status === 403) {
+            self.error = 'server_requires_auth'
+          }
+          else if (error.response.status === 500) {
+            self.error = 'server_error'
+          }
+          else {
+            self.error = 'server_unknown_error'
+          }
+        } else {
+          self.error = 'server_unknown_error'
+        }
+        self.isLoading = false;
+      })
+    },
+    fetchTracks (filters) {
+      let self = this
+      let url = `${this.baseUrl}/api/v1/tracks/`
+      axios.get(url, {params: filters}).then(response => {
+        self.tracks = self.parseTracks(response.data.results)
+        self.isLoading = false;
+      }).catch(error => {
+        if (error.response) {
+          if (error.response.status === 404) {
+            self.error = 'server_not_found'
+          }
+          else if (error.response.status === 403) {
+            self.error = 'server_requires_auth'
+          }
+          else if (error.response.status === 500) {
+            self.error = 'server_error'
+          }
+          else {
+            self.error = 'server_unknown_error'
+          }
+        } else {
+          self.error = 'server_unknown_error'
+        }
+        self.isLoading = false;
+      })
+    },
+    parseTracks (tracks) {
+      let self = this
+      return tracks.map(t => {
+        return {
+          id: t.id,
+          title: t.title,
+          artist: t.artist,
+          album: t.album,
+          cover: self.getCover(t.album.cover),
+          sources: self.getSources(t.uploads)
+        }
+      })
+    },
+    bindEvents () {
+      let self = this
+      this.$refs.player.player.on('ended', () => {
+        self.next()
+      })
+    },
+    fullUrl (path) {
+      if (path.startsWith('/')) {
+        return this.baseUrl + path
+      }
+      return path
+    },
+    getCover(albumCover) {
+      if (albumCover) {
+        return albumCover.medium_square_crop
+      }
+    },
+    getSources (uploads) {
+      let self = this;
+      let sources = uploads.map(u => {
+        return {
+          type: u.mimetype,
+          src: self.fullUrl(u.listen_url),
+          duration: u.duration
+        }
+      })
+      if (sources.length > 0) {
+        // We always add a transcoded MP3 src at the end
+        // because transcoding is expensive, but we want browsers that do
+        // not support other codecs to be able to play it :)
+        sources.push({
+          type: 'audio/mpeg',
+          src: url.updateQueryString(
+            self.fullUrl(sources[0].src),
+            'to',
+            'mp3'
+          )
+        })
+      }
+      return sources
+    }
+  },
+  watch: {
+    currentIndex (v) {
+      // we bind player events
+      let self = this
+      this.$nextTick(() => {
+        self.bindEvents()
+        if (self.tracks.length > 0) {
+          var topPos = document.getElementById(`queue-item-${v}`).offsetTop;
+          document.getElementById('queue').scrollTop = topPos-10;
+        }
+      })
+    },
+    tracks () {
+      this.currentIndex = 0
+    }
+  }
+}
+</script>
+
+<style lang="scss">
+html,
+body,
+main {
+  height: 100%;
+}
+body {
+  margin: 0;
+  font-family: sans-serif;
+}
+main {
+  display: flex;
+  flex-direction: column;
+}
+article {
+  display: flex;
+  position: relative;
+  aside {
+    padding: 0.5em;
+  }
+}
+
+a {
+  text-decoration: none;
+}
+a:hover {
+  text-decoration: underline;
+}
+section.controls {
+  display: flex;
+}
+.cover {
+  max-width: 120px;
+  max-height: 120px;
+}
+
+.player {
+  flex: 1;
+  align-self: flex-end;
+}
+article .content {
+  flex: 1;
+  display: flex;
+  flex-direction: column;
+  h3 {
+    margin: 0 0 0.5em;
+  }
+  header {
+    flex: 1;
+    padding: 1em;
+  }
+}
+.player,
+.queue-controls {
+  padding: 0.25em 0;
+  margin-right: 0.25em;
+  align-self: center;
+}
+section .plyr--audio .plyr__controls {
+  padding: 0;
+}
+
+.error {
+  font-weight: bold;
+  display: block;
+  text-align: center;
+}
+.logo-wrapper {
+  height: 2em;
+  width: 2em;
+  padding: 0.25em;
+  margin-left: 0.5em;
+  display: block;
+}
+[role="button"] {
+  cursor: pointer;
+}
+.ellipsis {
+  white-space: nowrap;
+  text-overflow: ellipsis;
+  overflow: hidden;
+}
+.queue-wrapper {
+  flex: 1;
+  overflow-y: auto;
+  padding: 0.5em;
+}
+.queue {
+  width: 100%;
+  border-collapse: collapse;
+  table-layout: fixed;
+  margin-bottom: 0.5em;
+  td {
+    padding: 0.5em;
+    font-size: 90%;
+    img {
+      vertical-align: middle;
+      margin-right: 1em;
+    }
+  }
+  td:last-child {
+    text-align: right;
+  }
+  .position {
+    padding: 0.1em 0.3em;
+    display: inline-block;
+  }
+}
+@media screen and (max-width: 640px) {
+  .queue .album {
+    display: none;
+  }
+  .plyr__controls .plyr__time {
+    display: none;
+  }
+}
+@media screen and (max-width: 460px) {
+  article,
+  article .content {
+    display: block;
+  }
+  .cover.main {
+    float: right;
+    img {
+      height: 60px;
+      width: 60px;
+    }
+  }
+}
+
+@media screen and (max-width: 320px) {
+  .logo-wrapper,
+  .position-cell {
+    display: none;
+  }
+}
+
+// themes
+
+.dark {
+  $primary-color: rgb(242, 113, 28);
+  $dark: rgb(27, 28, 29);
+  $lighter: rgb(47, 48, 48);
+  $clear: rgb(242, 242, 242);
+  // $primary-color: rgb(255, 88, 78);
+  .logo-wrapper {
+    background-color: $primary-color;
+  }
+  .plyr--audio .plyr__control.plyr__tab-focus,
+  .plyr--audio .plyr__control:hover,
+  .plyr--audio .plyr__control[aria-expanded="true"] {
+    background-color: $primary-color;
+  }
+  .plyr--audio .plyr__control.plyr__tab-focus,
+  .plyr--audio .plyr__control:hover,
+  .plyr--audio .plyr__control[aria-expanded="true"] {
+    background-color: $primary-color;
+  }
+  .plyr--full-ui input[type="range"] {
+    color: $primary-color;
+  }
+  article,
+  .player,
+  .plyr--audio .plyr__controls {
+    background-color: $dark;
+  }
+  .queue-wrapper {
+    background-color: $lighter;
+  }
+  article,
+  article a,
+  .player,
+  .queue tr,
+  .plyr--audio .plyr__controls {
+    color: white;
+  }
+  .plyr__control.plyr__tab-focus {
+    -webkit-box-shadow: 0 0 0 2px rgba(26, 175, 255, 0.5);
+    box-shadow: 0 0 0 2px rgba(26, 175, 255, 0.5);
+    outline: 0;
+  }
+  tr:hover,
+  tr:focus {
+    background-color: $dark;
+  }
+  tr.active {
+    background-color: $clear;
+    color: $dark;
+  }
+
+  tr.active {
+    .position {
+      background-color: $primary-color;
+      color: $clear;
+    }
+  }
+}
+</style>
diff --git a/front/src/assets/audio/default-cover.png b/front/src/assets/audio/default-cover.png
index 86aa7acbd7f706983dd5c1315a936078f652c2b8..a583124e2af8b017009246bff4b264e9f8fba3aa 100644
Binary files a/front/src/assets/audio/default-cover.png and b/front/src/assets/audio/default-cover.png differ
diff --git a/front/src/assets/embed/default-cover.jpeg b/front/src/assets/embed/default-cover.jpeg
new file mode 100644
index 0000000000000000000000000000000000000000..3eb05a40a2254469095d4ec177df445b951833b8
Binary files /dev/null and b/front/src/assets/embed/default-cover.jpeg differ
diff --git a/front/src/components/About.vue b/front/src/components/About.vue
index 438fed67db518c4b99a29b8cf7b3a870d8e5c412..cfffb7b6a2de69beec727d6a230ec4df00941d64 100644
--- a/front/src/components/About.vue
+++ b/front/src/components/About.vue
@@ -1,6 +1,6 @@
 <template>
-  <div class="main pusher" v-title="labels.title">
-    <div class="ui vertical center aligned stripe segment">
+  <main class="main pusher" v-title="labels.title">
+    <section class="ui vertical center aligned stripe segment">
       <div class="ui text container">
         <h1 class="ui huge header">
             <translate v-if="instance.name.value" :translate-params="{instance: instance.name.value}">
@@ -10,49 +10,61 @@
         </h1>
         <stats></stats>
       </div>
-    </div>
-    <div class="ui vertical stripe segment">
-      <p v-if="!instance.short_description.value && !instance.long_description.value">
-        <translate>Unfortunately, owners of this instance did not yet take the time to complete this page.</translate>
-      </p>
-      <router-link
-        class="ui button"
-        v-if="$store.state.auth.availablePermissions['settings']"
-        :to="{path: '/manage/settings', hash: 'instance'}">
-        <i class="pencil icon"></i><translate>Edit instance info</translate>
-      </router-link>
+    </section>
+    <section class="ui vertical stripe segment">
+      <div
+        class="ui middle aligned stackable text container">
+        <p
+        v-if="!instance.short_description.value && !instance.long_description.value"><translate>Unfortunately, owners of this instance did not yet take the time to complete this page.</translate></p>
+        <router-link
+          class="ui button"
+          v-if="$store.state.auth.availablePermissions['settings']"
+          :to="{path: '/manage/settings', hash: 'instance'}">
+          <i class="pencil icon"></i><translate>Edit instance info</translate>
+        </router-link>
+        <div class="ui hidden divider"></div>
+      </div>
       <div
         v-if="instance.short_description.value"
         class="ui middle aligned stackable text container">
         <p>{{ instance.short_description.value }}</p>
       </div>
       <div
-        v-if="instance.long_description.value"
+        v-if="markdown && instance.long_description.value"
         class="ui middle aligned stackable text container"
-        v-html="$options.filters.markdown(instance.long_description.value)">
+        v-html="markdown.makeHtml(instance.long_description.value)">
       </div>
-    </div>
-  </div>
+    </section>
+  </main>
 </template>
 
 <script>
-import {mapState} from 'vuex'
-import Stats from '@/components/instance/Stats'
+import { mapState } from "vuex"
+import Stats from "@/components/instance/Stats"
 
 export default {
   components: {
     Stats
   },
+  data () {
+    return {
+      markdown: null
+    }
+  },
   created () {
-    this.$store.dispatch('instance/fetchSettings')
+    this.$store.dispatch("instance/fetchSettings")
+    let self = this
+    import('showdown').then(module => {
+      self.markdown = new module.default.Converter()
+    })
   },
   computed: {
     ...mapState({
       instance: state => state.instance.settings.instance
     }),
-    labels () {
+    labels() {
       return {
-        title: this.$gettext('About this instance')
+        title: this.$gettext("About this instance")
       }
     }
   }
diff --git a/front/src/components/Footer.vue b/front/src/components/Footer.vue
new file mode 100644
index 0000000000000000000000000000000000000000..f62bc548b98a0b715b3534c5533bac3d2b81e309
--- /dev/null
+++ b/front/src/components/Footer.vue
@@ -0,0 +1,113 @@
+<template>
+  <footer id="footer" role="contentinfo" class="ui vertical footer segment">
+    <div class="ui container">
+      <div class="ui stackable equal height stackable grid">
+        <section class="four wide column">
+          <h4 v-translate class="ui header">
+            <translate :translate-params="{instanceName: instanceHostname}" >About %{instanceName}</translate>
+          </h4>
+          <div class="ui link list">
+            <router-link class="item" to="/about">
+              <translate>About page</translate>
+            </router-link>
+            <div class="item" v-if="version">
+              <translate :translate-params="{version: version}" >Version %{version}</translate>
+            </div>
+            <a @click="switchInstance" class="item" >
+              <translate>Use another instance</translate>
+            </a>
+          </div>
+          <div class="ui form">
+            <div class="ui field">
+              <label><translate>Change language</translate></label>
+              <select class="ui dropdown" :value="$language.current" @change="updateLanguage($event.target.value)">
+                <option v-for="(language, key) in $language.available" :key="key" :value="key">{{ language }}</option>
+              </select>
+            </div>
+          </div>
+        </section>
+        <section class="four wide column">
+          <h4 v-translate class="ui header">Using Funkwhale</h4>
+          <div class="ui link list">
+            <a href="https://docs.funkwhale.audio" class="item" target="_blank"><translate>Documentation</translate></a>
+            <a href="https://docs.funkwhale.audio/users/apps.html" class="item" target="_blank"><translate>Mobile and desktop apps</translate></a>
+            <div role="button" class="item" @click="$emit('show:shortcuts-modal')"><translate>Keyboard shortcuts</translate></div>
+          </div>
+        </section>
+        <section class="four wide column">
+          <h4 v-translate class="ui header">Getting help</h4>
+          <div class="ui link list">
+            <a href="https://socialhub.network/c/funkwhale" class="item" target="_blank"><translate>Support forum</translate></a>
+            <a href="https://riot.im/app/#/room/#funkwhale-troubleshooting:matrix.org" class="item" target="_blank"><translate>Chat room</translate></a>
+            <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/issues" class="item" target="_blank"><translate>Issue tracker</translate></a>
+          </div>
+        </section>
+        <section class="four wide column">
+          <h4 v-translate class="ui header">About Funkwhale</h4>
+          <div class="ui link list">
+            <a href="https://funkwhale.audio" class="item" target="_blank"><translate>Official website</translate></a>
+            <a href="https://contribute.funkwhale.audio" class="item" target="_blank"><translate>Contribute</translate></a>
+            <a href="https://dev.funkwhale.audio/funkwhale/funkwhale" class="item" target="_blank"><translate>Source code</translate></a>
+          </div>
+          <div class="ui hidden divider"></div>
+          <p>
+            <translate>The funkwhale logo was kindly designed and provided by Francis Gading.</translate>
+          </p>
+        </section>
+      </div>
+    </div>
+  </footer>
+</template>
+
+<script>
+import Vue from "vue"
+import { mapState } from "vuex"
+import axios from 'axios'
+
+export default {
+  props: ["version"],
+  methods: {
+    switchInstance() {
+      let confirm = window.confirm(
+        this.$gettext(
+          "This will erase your local data and disconnect you, do you want to continue?"
+        )
+      )
+      if (confirm) {
+        this.$store.commit("instance/instanceUrl", null)
+      }
+    },
+    updateLanguage(value) {
+      let self = this
+      import(`../translations/${value}.json`).then((response) =>{
+        Vue.$translations[value] = response.default[value]
+      }).finally(() => {
+        self.$language.current = value
+      })
+    }
+  },
+  computed: {
+    ...mapState({
+      messages: state => state.ui.messages
+    }),
+    instanceHostname() {
+      let url = this.$store.state.instance.instanceUrl
+      let parser = document.createElement("a")
+      parser.href = url
+      return parser.hostname
+    },
+    suggestedInstances() {
+      let instances = [
+        this.$store.getters["instance/defaultUrl"](),
+        "https://demo.funkwhale.audio"
+      ]
+      return instances
+    }
+  }
+}
+</script>
+<style scoped>
+footer p {
+  color: grey;
+}
+</style>
diff --git a/front/src/components/Home.vue b/front/src/components/Home.vue
index 3448d10df6d7c8faf97e789f9db18daf2e76b686..800f77b9f82a7f887cc32ee35da87b5f00b1f0af 100644
--- a/front/src/components/Home.vue
+++ b/front/src/components/Home.vue
@@ -1,6 +1,6 @@
 <template>
-  <div class="main pusher" v-title="labels.title">
-    <div class="ui vertical center aligned stripe segment">
+  <main class="main pusher" v-title="labels.title">
+    <section class="ui vertical center aligned stripe segment">
       <div class="ui text container">
         <h1 class="ui huge header">
           <translate>Welcome on Funkwhale</translate>
@@ -15,8 +15,8 @@
           <i class="right arrow icon"></i>
         </router-link>
       </div>
-    </div>
-    <div class="ui vertical stripe segment">
+    </section>
+    <section class="ui vertical stripe segment">
       <div class="ui middle aligned stackable text container">
         <div class="ui grid">
           <div class="row">
@@ -136,22 +136,21 @@
           </div>
         </div>
       </div>
-    </div>
-  </div>
+    </section>
+  </main>
 </template>
 
 <script>
-
 export default {
-  data () {
+  data() {
     return {
-      musicbrainzUrl: 'https://musicbrainz.org/'
+      musicbrainzUrl: "https://musicbrainz.org/"
     }
   },
   computed: {
-    labels () {
+    labels() {
       return {
-        title: this.$gettext('Welcome')
+        title: this.$gettext("Welcome")
       }
     }
   }
diff --git a/front/src/components/Logo.vue b/front/src/components/Logo.vue
index f63bd7ab6a476fb3623609b871ecd8a26955ba93..ff87dc299885acf39c57a67967d32ab3b3b87193 100644
--- a/front/src/components/Logo.vue
+++ b/front/src/components/Logo.vue
@@ -3,16 +3,16 @@
   	 viewBox="0 0 141.7 141.7" enable-background="new 0 0 141.7 141.7" xml:space="preserve">
   <g>
   	<g>
-  		<path fill="#4082B4" d="M70.9,86.1c11.7,0,21.2-9.5,21.2-21.2c0-0.6-0.5-1.1-1.1-1.1h-8c-0.6,0-1.1,0.5-1.1,1.1c0,6-4.9,11-11,11
+  		<path :fill="fill" d="M70.9,86.1c11.7,0,21.2-9.5,21.2-21.2c0-0.6-0.5-1.1-1.1-1.1h-8c-0.6,0-1.1,0.5-1.1,1.1c0,6-4.9,11-11,11
   			c-6,0-11-4.9-11-11c0-0.6-0.5-1.1-1.1-1.1h-8c-0.6,0-1.1,0.5-1.1,1.1C49.7,76.6,59.2,86.1,70.9,86.1z"/>
-  		<path fill="#4082B4" d="M70.9,106.1c22.7,0,41.2-18.5,41.2-41.2c0-0.6-0.5-1.1-1.1-1.1h-8c-0.6,0-1.1,0.5-1.1,1.1
+  		<path :fill="fill" d="M70.9,106.1c22.7,0,41.2-18.5,41.2-41.2c0-0.6-0.5-1.1-1.1-1.1h-8c-0.6,0-1.1,0.5-1.1,1.1
   			c0,17.1-13.9,31-31,31c-17.1,0-31-13.9-31-31c0-0.6-0.5-1.1-1.1-1.1h-8c-0.6,0-1.1,0.5-1.1,1.1C29.6,87.6,48.1,106.1,70.9,106.1z"
   			/>
-  		<path fill="#4082B4" d="M131.1,63.8h-8c-0.6,0-1.1,0.5-1.1,1.1C122,93.1,99,116,70.9,116c-28.2,0-51.1-22.9-51.1-51.1
+  		<path :fill="fill" d="M131.1,63.8h-8c-0.6,0-1.1,0.5-1.1,1.1C122,93.1,99,116,70.9,116c-28.2,0-51.1-22.9-51.1-51.1
   			c0-0.6-0.5-1.1-1.1-1.1h-8c-0.6,0-1.1,0.5-1.1,1.1c0,33.8,27.5,61.3,61.3,61.3c33.8,0,61.3-27.5,61.3-61.3
   			C132.2,64.3,131.7,63.8,131.1,63.8z"/>
   	</g>
-  	<path fill="#222222" d="M43.3,37.3c4.1,2.1,8.5,2.5,12.5,4.8c2.6,1.5,4.2,3.2,5.8,5.7c2.5,3.8,2.4,8.5,2.4,8.5l0.3,5.2
+  	<path :fill="fill" d="M43.3,37.3c4.1,2.1,8.5,2.5,12.5,4.8c2.6,1.5,4.2,3.2,5.8,5.7c2.5,3.8,2.4,8.5,2.4,8.5l0.3,5.2
   		c0,0,2,5.2,6.4,5.2c4.7,0,6.4-5.2,6.4-5.2l0.3-5.2c0,0-0.1-4.7,2.4-8.5c1.6-2.5,3.2-4.3,5.8-5.7c4-2.3,8.4-2.7,12.5-4.8
   		c4.1-2.1,8.1-4.8,10.8-8.6c2.7-3.8,4-8.8,2.5-13.2c-7.8-0.4-16.8,0.5-23.7,4.2c-9.6,5.1-15.4,3.3-17.1,10.9h-0.1
   		c-1.7-7.7-7.5-5.8-17.1-10.9c-6.9-3.7-15.9-4.6-23.7-4.2c-1.5,4.4-0.2,9.4,2.5,13.2C35.2,32.5,39.2,35.2,43.3,37.3z"/>
@@ -24,10 +24,8 @@
 <script>
 
 export default {
+  props: {
+    fill: {type: String, default: '#222222'}
+  }
 }
 </script>
-
-<!-- Add "scoped" attribute to limit CSS to this component only -->
-<style scoped lang="scss">
-
-</style>
diff --git a/front/src/components/PageNotFound.vue b/front/src/components/PageNotFound.vue
index 115bc5d023f1745f1399a868bff86c63c8d12c6a..ef4e66f456cb03e63ad4dfcf441a22bcc1536735 100644
--- a/front/src/components/PageNotFound.vue
+++ b/front/src/components/PageNotFound.vue
@@ -1,6 +1,6 @@
 <template>
-  <div class="main pusher" :v-title="labels.title">
-    <div class="ui vertical stripe segment">
+  <main class="main pusher" :v-title="labels.title">
+    <section class="ui vertical stripe segment">
       <div class="ui text container">
         <h1 class="ui huge header">
           <i class="warning icon"></i>
@@ -16,21 +16,21 @@
           <i class="right arrow icon"></i>
         </router-link>
       </div>
-    </div>
-  </div>
+    </section>
+  </main>
 </template>
 
 <script>
 export default {
-  data: function () {
+  data: function() {
     return {
       path: window.location.href
     }
   },
   computed: {
-    labels () {
+    labels() {
       return {
-        title: this.$gettext('Page Not Found')
+        title: this.$gettext("Page Not Found")
       }
     }
   }
diff --git a/front/src/components/Pagination.vue b/front/src/components/Pagination.vue
index cc5f171649fb6fa5832832f90ba11a3d93c79a9b..57cac2815a0701ca66bb17c086d7e2d2033e02b4 100644
--- a/front/src/components/Pagination.vue
+++ b/front/src/components/Pagination.vue
@@ -1,53 +1,65 @@
 <template>
-  <div class="ui pagination menu">
-    <div
+  <div class="ui pagination menu" role="navigation" :aria-label="labels.pagination">
+    <a href
       :disabled="current - 1 < 1"
-      @click="selectPage(current - 1)"
-      :class="[{'disabled': current - 1 < 1}, 'item']"><i class="angle left icon"></i></div>
+      @click.prevent.stop="selectPage(current - 1)"
+      :class="[{'disabled': current - 1 < 1}, 'item']"><i class="angle left icon"></i></a>
     <template v-if="!compact">
-      <div
+      <a href
         v-if="page !== 'skip'"
         v-for="page in pages"
-        @click="selectPage(page)"
+        @click.prevent.stop="selectPage(page)"
         :class="[{'active': page === current}, 'item']">
         {{ page }}
-      </div>
+      </a href>
       <div v-else class="disabled item">
         ...
       </div>
     </template>
-    <div
+    <a href
       :disabled="current + 1 > maxPage"
-      @click="selectPage(current + 1)"
-      :class="[{'disabled': current + 1 > maxPage}, 'item']"><i class="angle right icon"></i></div>
+      @click.prevent.stop="selectPage(current + 1)"
+      :class="[{'disabled': current + 1 > maxPage}, 'item']"><i class="angle right icon"></i></a>
   </div>
 </template>
 
 <script>
-import _ from 'lodash'
+import _ from "@/lodash"
 
 export default {
   props: {
-    current: {type: Number, default: 1},
-    paginateBy: {type: Number, default: 25},
-    total: {type: Number},
-    compact: {type: Boolean, default: false}
+    current: { type: Number, default: 1 },
+    paginateBy: { type: Number, default: 25 },
+    total: { type: Number },
+    compact: { type: Boolean, default: false }
   },
   computed: {
-    pages: function () {
+    labels() {
+      return {
+        pagination: this.$gettext("Pagination")
+      }
+    },
+    pages: function() {
       let range = 2
       let current = this.current
       let beginning = _.range(1, Math.min(this.maxPage, 1 + range))
-      let middle = _.range(Math.max(1, current - range + 1), Math.min(this.maxPage, current + range))
+      let middle = _.range(
+        Math.max(1, current - range + 1),
+        Math.min(this.maxPage, current + range)
+      )
       let end = _.range(this.maxPage, Math.max(1, this.maxPage - range))
       let allowed = beginning.concat(middle, end)
       allowed = _.uniq(allowed)
-      allowed = _.sortBy(allowed, [(e) => { return e }])
+      allowed = _.sortBy(allowed, [
+        e => {
+          return e
+        }
+      ])
       let final = []
       allowed.forEach(p => {
         let last = final.slice(-1)[0]
         let consecutive = true
-        if (last === 'skip') {
+        if (last === "skip") {
           consecutive = false
         } else {
           if (!last) {
@@ -59,25 +71,25 @@ export default {
         if (consecutive) {
           final.push(p)
         } else {
-          if (p !== 'skip') {
-            final.push('skip')
+          if (p !== "skip") {
+            final.push("skip")
             final.push(p)
           }
         }
       })
       return final
     },
-    maxPage: function () {
+    maxPage: function() {
       return Math.ceil(this.total / this.paginateBy)
     }
   },
   methods: {
-    selectPage: function (page) {
+    selectPage: function(page) {
       if (page > this.maxPage || page < 1) {
         return
       }
       if (this.current !== page) {
-        this.$emit('page-changed', page)
+        this.$emit("page-changed", page)
       }
     }
   }
@@ -87,7 +99,6 @@ export default {
 <!-- Add "scoped" attribute to limit CSS to this component only -->
 <style scoped>
 .ui.pagination.menu .item {
-    cursor: pointer;
+  cursor: pointer;
 }
 </style>
-
diff --git a/front/src/components/Raven.vue b/front/src/components/Raven.vue
deleted file mode 100644
index f45d0ed22bee60d746599c1c340695cf00b346a6..0000000000000000000000000000000000000000
--- a/front/src/components/Raven.vue
+++ /dev/null
@@ -1,40 +0,0 @@
-<template>
-  <div class="raven"></div>
-</template>
-
-<script>
-import Raven from 'raven-js'
-import RavenVue from 'raven-js/plugins/vue'
-import Vue from 'vue'
-import logger from '@/logging'
-
-export default {
-  props: ['dsn'],
-  created () {
-    Raven.uninstall()
-    this.setUp()
-  },
-  destroyed () {
-    Raven.uninstall()
-  },
-  methods: {
-    setUp () {
-      Raven.uninstall()
-      logger.default.info('Installing raven...')
-      Raven.config(this.dsn).addPlugin(RavenVue, Vue).install()
-    }
-  },
-  watch: {
-    dsn: function () {
-      this.setUp()
-    }
-  }
-}
-</script>
-
-<!-- Add "scoped" attribute to limit CSS to this component only -->
-<style scoped >
-.raven {
-  display: none;
-}
-</style>
diff --git a/front/src/components/ShortcutsModal.vue b/front/src/components/ShortcutsModal.vue
new file mode 100644
index 0000000000000000000000000000000000000000..2338658dd7b80a9d67c0e424f22b7b7f827270b1
--- /dev/null
+++ b/front/src/components/ShortcutsModal.vue
@@ -0,0 +1,95 @@
+<template>
+  <modal @update:show="$emit('update:show', $event)" :show="show">
+    <header class="header">
+      <translate>Keyboard shortcuts</translate>
+    </header>
+    <section class="scrolling content">
+      <table
+        class="ui compact collapsing basic fixed single line table"
+        v-for="section in sections"
+        :key="section.title">
+      <caption>{{ section.title }}</caption>
+      <tbody>
+        <tr v-for="shortcut in section.shortcuts" :key="shortcut.summary">
+          <td>{{ shortcut.summary }}</td>
+          <td><span class="ui label">{{ shortcut.key }}</span></td>
+        </tr>
+      </tbody>
+      </table>
+    </section>
+    <footer class="actions">
+      <div class="ui cancel button"><translate>Close</translate></div>
+    </footer>
+  </modal>
+</template>
+
+<script>
+import Modal from '@/components/semantic/Modal'
+
+export default {
+  props: ['show'],
+  components: {
+    Modal,
+  },
+  computed: {
+    sections () {
+      return [
+        {
+          title: this.$gettext('General shortcuts'),
+          shortcuts: [
+            {
+              key: 'h',
+              summary: this.$gettext('Show available keyboard shortcuts')
+            }
+          ]
+        },
+        // space.prevent.exact="togglePlay"
+        // ctrl.left.prevent.exact="previous"
+        // ctrl.right.prevent.exact="next"
+        // ctrl.down.prevent.exact="$store.commit('player/incrementVolume', -0.1)"
+        // ctrl.up.prevent.exact="$store.commit('player/incrementVolume', 0.1)"
+        // l.prevent.exact="$store.commit('player/toggleLooping')"
+        // s.prevent.exact="shuffle"
+
+        {
+          title: this.$gettext('Audio player shortcuts'),
+          shortcuts: [
+            {
+              key: 'space',
+              summary: this.$gettext('Pause/play the current track')
+            },
+            {
+              key: 'ctrl left',
+              summary: this.$gettext('Play previous track')
+            },
+            {
+              key: 'ctrl right',
+              summary: this.$gettext('Play next track')
+            },
+            {
+              key: 'ctrl up',
+              summary: this.$gettext('Increase volume')
+            },
+            {
+              key: 'ctrl down',
+              summary: this.$gettext('Decrease volume')
+            },
+            {
+              key: 'l',
+              summary: this.$gettext('Toggle queue looping')
+            },
+            {
+              key: 's',
+              summary: this.$gettext('Shuffle queue')
+            },
+          ]
+        }
+      ]
+    }
+  }
+}
+</script>
+
+<!-- Add "scoped" attribute to limit CSS to this component only -->
+<style scoped>
+</style>
diff --git a/front/src/components/Sidebar.vue b/front/src/components/Sidebar.vue
index efd6f416cfaaf3f6ce99d77a66da88211e66875d..3a5bf2db8a3ddbee831bbbdf5d88c7fc1d018b3f 100644
--- a/front/src/components/Sidebar.vue
+++ b/front/src/components/Sidebar.vue
@@ -1,6 +1,6 @@
 <template>
-<div :class="['ui', 'vertical', 'left', 'visible', 'wide', {'collapsed': isCollapsed}, 'sidebar',]">
-  <div class="ui inverted segment header-wrapper">
+<aside :class="['ui', 'vertical', 'left', 'visible', 'wide', {'collapsed': isCollapsed}, 'sidebar',]">
+  <header class="ui inverted segment header-wrapper">
     <search-bar @search="isCollapsed = false">
       <router-link :title="'Funkwhale'" :to="{name: logoUrl}">
         <i class="logo bordered inverted orange big icon">
@@ -12,12 +12,12 @@
         :class="['ui', 'basic', 'big', {'inverted': isCollapsed}, 'orange', 'icon', 'collapse', 'button']">
           <i class="sidebar icon"></i></span>
     </search-bar>
-  </div>
+  </header>
 
   <div class="menu-area">
     <div class="ui compact fluid two item inverted menu">
-      <a class="active item" @click="selectedTab = 'library'" data-tab="library"><translate>Browse</translate></a>
-      <a class="item" @click="selectedTab = 'queue'" data-tab="queue">
+      <a :class="[{active: selectedTab === 'library'}, 'item']" role="button" @click.prevent.stop="selectedTab = 'library'" data-tab="library"><translate>Browse</translate></a>
+      <a :class="[{active: selectedTab === 'queue'}, 'item']" role="button" @click.prevent.stop="selectedTab = 'queue'" data-tab="queue">
         <translate>Queue</translate>&nbsp;
          <template v-if="queue.tracks.length === 0">
            <translate>(empty)</translate>
@@ -29,17 +29,17 @@
     </div>
   </div>
   <div class="tabs">
-    <div class="ui bottom attached active tab" data-tab="library">
-      <div class="ui inverted vertical large fluid menu">
+    <section :class="['ui', 'bottom', 'attached', {active: selectedTab === 'library'}, 'tab']" :aria-label="labels.mainMenu">
+      <nav class="ui inverted vertical large fluid menu" role="navigation" :aria-label="labels.mainMenu">
         <div class="item">
-          <div class="header"><translate>My account</translate></div>
+          <header class="header"><translate>My account</translate></header>
           <div class="menu">
             <router-link class="item" v-if="$store.state.auth.authenticated" :to="{name: 'profile', params: {username: $store.state.auth.username}}">
               <i class="user icon"></i>
               <translate :translate-params="{username: $store.state.auth.username}">
                 Logged in as %{ username }
               </translate>
-              <img class="ui right floated circular tiny avatar image" v-if="$store.state.auth.profile.avatar.square_crop" :src="$store.getters['instance/absoluteUrl']($store.state.auth.profile.avatar.square_crop)" />
+              <img class="ui right floated circular tiny avatar image" v-if="$store.state.auth.profile.avatar.square_crop" v-lazy="$store.getters['instance/absoluteUrl']($store.state.auth.profile.avatar.square_crop)" />
             </router-link>
             <router-link class="item" v-if="$store.state.auth.authenticated" :to="{path: '/settings'}"><i class="setting icon"></i><translate>Settings</translate></router-link>
             <router-link class="item" v-if="$store.state.auth.authenticated" :to="{name: 'notifications'}">
@@ -61,7 +61,7 @@
           </div>
         </div>
         <div class="item">
-          <div class="header"><translate>Music</translate></div>
+          <header class="header"><translate>Music</translate></header>
           <div class="menu">
             <router-link class="item" :to="{path: '/library'}"><i class="sound icon"></i><translate>Browse library</translate></router-link>
             <router-link class="item" v-if="$store.state.auth.authenticated" :to="{path: '/favorites'}"><i class="heart icon"></i><translate>Favorites</translate></router-link>
@@ -71,33 +71,36 @@
               class="item">
               <i class="list icon"></i><translate>Playlists</translate>
             </a>
-            <router-link
-              v-if="$store.state.auth.authenticated"
-              class="item" :to="{path: '/activity'}"><i class="bell icon"></i><translate>Activity</translate></router-link>
             <router-link
               v-if="$store.state.auth.authenticated"
               class="item" :to="{name: 'content.index'}"><i class="upload icon"></i><translate>Add content</translate></router-link>
           </div>
         </div>
-        <div class="item" v-if="showAdmin">
-          <div class="header"><translate>Administration</translate></div>
+        <div class="item" v-if="$store.state.auth.availablePermissions['settings'] || $store.state.auth.availablePermissions['moderation']">
+          <header class="header"><translate>Administration</translate></header>
           <div class="menu">
             <router-link
-              class="item"
               v-if="$store.state.auth.availablePermissions['settings']"
+              class="item"
               :to="{path: '/manage/settings'}">
               <i class="settings icon"></i><translate>Settings</translate>
             </router-link>
             <router-link
-              class="item"
               v-if="$store.state.auth.availablePermissions['settings']"
+              class="item"
               :to="{name: 'manage.users.users.list'}">
               <i class="users icon"></i><translate>Users</translate>
             </router-link>
+            <router-link
+              v-if="$store.state.auth.availablePermissions['moderation']"
+              class="item"
+              :to="{name: 'manage.moderation.domains.list'}">
+              <i class="shield icon"></i><translate>Moderation</translate>
+            </router-link>
           </div>
         </div>
-      </div>
-    </div>
+      </nav>
+    </section>
     <div v-if="queue.previousQueue " class="ui black icon message">
       <i class="history icon"></i>
       <div class="content">
@@ -118,18 +121,24 @@
         </div>
       </div>
     </div>
-    <div class="ui bottom attached tab" data-tab="queue">
+    <section :class="['ui', 'bottom', 'attached', {active: selectedTab === 'queue'}, 'tab']">
       <table class="ui compact inverted very basic fixed single line unstackable table">
         <draggable v-model="tracks" element="tbody" @update="reorder">
-          <tr @click="$store.dispatch('queue/currentIndex', index)" v-for="(track, index) in tracks" :key="index" :class="[{'active': index === queue.currentIndex}]">
+          <tr
+              @click="$store.dispatch('queue/currentIndex', index)"
+              v-for="(track, index) in tracks"
+              :key="index"
+              :class="[{'active': index === queue.currentIndex}]">
               <td class="right aligned">{{ index + 1}}</td>
               <td class="center aligned">
                   <img class="ui mini image" v-if="track.album.cover && track.album.cover.original" :src="$store.getters['instance/absoluteUrl'](track.album.cover.small_square_crop)">
                   <img class="ui mini image" v-else src="../assets/audio/default-cover.png">
               </td>
               <td colspan="4">
-                  <strong>{{ track.title }}</strong><br />
-                  {{ track.artist.name }}
+                  <button class="title reset ellipsis" :aria-label="labels.selectTrack">
+                    <strong>{{ track.title }}</strong><br />
+                    {{ track.artist.name }}
+                  </button>
               </td>
               <td>
                 <template v-if="$store.getters['favorites/isFavorite'](track.id)">
@@ -137,7 +146,9 @@
                 </template>
               </td>
               <td>
-                  <i @click.stop="cleanTrack(index)" class="circular trash icon"></i>
+                  <button :title="labels.removeFromQueue" @click.stop="cleanTrack(index)" :class="['ui', {'inverted': index != queue.currentIndex}, 'really', 'tiny', 'basic', 'circular', 'icon', 'button']">
+                    <i class="trash icon"></i>
+                  </button>
               </td>
             </tr>
           </draggable>
@@ -151,45 +162,41 @@
           <div @click="$store.dispatch('radios/stop')" class="ui basic inverted red button"><translate>Stop radio</translate></div>
         </div>
       </div>
-    </div>
+    </section>
   </div>
   <player @next="scrollToCurrent" @previous="scrollToCurrent"></player>
-</div>
+</aside>
 </template>
 
 <script>
-import {mapState, mapActions} from 'vuex'
+import { mapState, mapActions } from "vuex"
 
-import Player from '@/components/audio/Player'
-import Logo from '@/components/Logo'
-import SearchBar from '@/components/audio/SearchBar'
-import backend from '@/audio/backend'
-import draggable from 'vuedraggable'
+import Player from "@/components/audio/Player"
+import Logo from "@/components/Logo"
+import SearchBar from "@/components/audio/SearchBar"
+import backend from "@/audio/backend"
+import draggable from "vuedraggable"
 
-import $ from 'jquery'
+import $ from "jquery"
 
 export default {
-  name: 'sidebar',
+  name: "sidebar",
   components: {
     Player,
     SearchBar,
     Logo,
     draggable
   },
-  data () {
+  data() {
     return {
-      selectedTab: 'library',
+      selectedTab: "library",
       backend: backend,
       tracksChangeBuffer: null,
       isCollapsed: true,
-      fetchInterval: null,
-      showAdmin: this.getShowAdmin()
+      fetchInterval: null
     }
   },
-  mounted () {
-    $(this.$el).find('.menu .item').tab()
-  },
-  destroy () {
+  destroy() {
     if (this.fetchInterval) {
       clearInterval(this.fetchInterval)
     }
@@ -199,82 +206,74 @@ export default {
       queue: state => state.queue,
       url: state => state.route.path
     }),
-    labels () {
-      let pendingRequests = this.$gettext('Pending import requests')
-      let pendingFollows = this.$gettext('Pending follow requests')
+    labels() {
+      let mainMenu = this.$gettext("Main menu")
+      let selectTrack = this.$gettext("Play this track")
+      let pendingFollows = this.$gettext("Pending follow requests")
       return {
-        pendingRequests,
-        pendingFollows
+        pendingFollows,
+        mainMenu,
+        selectTrack
       }
     },
     tracks: {
-      get () {
+      get() {
         return this.$store.state.queue.tracks
       },
-      set (value) {
+      set(value) {
         this.tracksChangeBuffer = value
       }
     },
-    logoUrl () {
+    logoUrl() {
       if (this.$store.state.auth.authenticated) {
-        return 'library.index'
+        return "library.index"
       } else {
-        return 'index'
+        return "index"
       }
     }
   },
   methods: {
     ...mapActions({
-      cleanTrack: 'queue/cleanTrack'
+      cleanTrack: "queue/cleanTrack"
     }),
-    getShowAdmin () {
-      let adminPermissions = [
-        this.$store.state.auth.availablePermissions['federation'],
-        this.$store.state.auth.availablePermissions['library'],
-        this.$store.state.auth.availablePermissions['upload']
-      ]
-      return adminPermissions.filter(e => {
-        return e
-      }).length > 0
+    reorder: function(event) {
+      this.$store.commit("queue/reorder", {
+        tracks: this.tracksChangeBuffer,
+        oldIndex: event.oldIndex,
+        newIndex: event.newIndex
+      })
     },
-    reorder: function (event) {
-      this.$store.commit('queue/reorder', {
-        tracks: this.tracksChangeBuffer, oldIndex: event.oldIndex, newIndex: event.newIndex})
-    },
-    scrollToCurrent () {
+    scrollToCurrent() {
       let current = $(this.$el).find('[data-tab="queue"] .active')[0]
       if (!current) {
         return
       }
-      let container = $(this.$el).find('.tabs')[0]
+      let container = $(this.$el).find(".tabs")[0]
       // Position container at the top line then scroll current into view
       container.scrollTop = 0
       current.scrollIntoView(true)
       // Scroll back nothing if element is at bottom of container else do it
       // for half the height of the containers display area
-      var scrollBack = (container.scrollHeight - container.scrollTop <= container.clientHeight) ? 0 : container.clientHeight / 2
+      var scrollBack =
+        container.scrollHeight - container.scrollTop <= container.clientHeight
+          ? 0
+          : container.clientHeight / 2
       container.scrollTop = container.scrollTop - scrollBack
     }
   },
   watch: {
-    url: function () {
+    url: function() {
       this.isCollapsed = true
     },
-    selectedTab: function (newValue) {
-      if (newValue === 'queue') {
+    selectedTab: function(newValue) {
+      if (newValue === "queue") {
         this.scrollToCurrent()
       }
     },
-    '$store.state.queue.currentIndex': function () {
-      if (this.selectedTab !== 'queue') {
+    "$store.state.queue.currentIndex": function() {
+      if (this.selectedTab !== "queue") {
         this.scrollToCurrent()
       }
-    },
-    '$store.state.auth.availablePermissions': {
-      handler () {
-        this.showAdmin = this.getShowAdmin()
-      },
-      deep: true
     }
   }
 }
@@ -282,15 +281,15 @@ export default {
 
 <!-- Add "scoped" attribute to limit CSS to this component only -->
 <style scoped lang="scss">
-@import '../style/vendor/media';
+@import "../style/vendor/media";
 
 $sidebar-color: #3d3e3f;
 
 .sidebar {
-	background: $sidebar-color;
+  background: $sidebar-color;
   @include media(">tablet") {
-    display:flex;
-    flex-direction:column;
+    display: flex;
+    flex-direction: column;
     justify-content: space-between;
   }
   @include media(">desktop") {
@@ -302,7 +301,9 @@ $sidebar-color: #3d3e3f;
     position: static !important;
     width: 100% !important;
     &.collapsed {
-      .menu-area, .player-wrapper, .tabs {
+      .menu-area,
+      .player-wrapper,
+      .tabs {
         display: none;
       }
     }
@@ -396,7 +397,9 @@ $sidebar-color: #3d3e3f;
 .ui.search {
   display: flex;
 
-  .collapse.button, .collapse.button:hover, .collapse.button:active {
+  .collapse.button,
+  .collapse.button:hover,
+  .collapse.button:active {
     box-shadow: none !important;
     margin: 0px;
     display: flex;
@@ -428,4 +431,8 @@ $sidebar-color: #3d3e3f;
   top: -0.5em;
   width: 3em;
 }
+
+:not(.active) button.title {
+  outline-color: white;
+}
 </style>
diff --git a/front/src/components/activity/Like.vue b/front/src/components/activity/Like.vue
deleted file mode 100644
index a0799e8fab47e5e68ec953c990f77e961a31bca8..0000000000000000000000000000000000000000
--- a/front/src/components/activity/Like.vue
+++ /dev/null
@@ -1,32 +0,0 @@
-<template>
-  <div class="event">
-   <div class="label">
-     <i class="pink heart icon"></i>
-   </div>
-   <div class="content">
-     <div class="summary">
-       <translate :translate-params="{user: event.actor.local_id}">%{ user } favorited a track</translate>
-       <human-date class="date" :date="event.published" />
-     </div>
-     <div class="extra text">
-        <router-link :to="{name: 'library.tracks.detail', params: {id: event.object.local_id }}">
-          {{ event.object.name }}
-        </router-link>
-        <translate :translate-params="{album: event.object.album, artist: event.object.artist}">from %{ album } by %{ artist }</translate>
-      </div>
-   </div>
- </div>
-
-</template>
-
-<script>
-
-export default {
-  props: ['event']
-}
-</script>
-
-<!-- Add "scoped" attribute to limit CSS to this component only -->
-<style scoped lang="scss">
-
-</style>
diff --git a/front/src/components/activity/Listen.vue b/front/src/components/activity/Listen.vue
deleted file mode 100644
index 7790df58dfd2880d5025f9bd14a7d2efcf8bb979..0000000000000000000000000000000000000000
--- a/front/src/components/activity/Listen.vue
+++ /dev/null
@@ -1,32 +0,0 @@
-<template>
-  <div class="event">
-   <div class="label">
-     <i class="orange sound icon"></i>
-   </div>
-   <div class="content">
-     <div class="summary">
-      <translate :translate-params="{user: event.actor.local_id}">%{ user } listened to a track</translate>
-      <human-date class="date" :date="event.published" />
-     </div>
-     <div class="extra text">
-        <router-link :to="{name: 'library.tracks.detail', params: {id: event.object.local_id }}">
-          {{ event.object.name }}
-        </router-link>
-        <translate :translate-params="{album: event.object.album, artist: event.object.artist}">from %{ album } by %{ artist }</translate>
-      </div>
-   </div>
- </div>
-
-</template>
-
-<script>
-
-export default {
-  props: ['event']
-}
-</script>
-
-<!-- Add "scoped" attribute to limit CSS to this component only -->
-<style scoped lang="scss">
-
-</style>
diff --git a/front/src/components/audio/EmbedWizard.vue b/front/src/components/audio/EmbedWizard.vue
new file mode 100644
index 0000000000000000000000000000000000000000..7a50ffa54223a189d40cd91fbbe9f0e41b0814ee
--- /dev/null
+++ b/front/src/components/audio/EmbedWizard.vue
@@ -0,0 +1,80 @@
+<template>
+  <div>
+    <div class="ui form">
+      <div class="two fields">
+        <div class="field">
+          <div class="field">
+            <label for="embed-width"><translate>Widget width</translate></label>
+            <p><translate>Leave empty for a responsive widget</translate></p>
+            <input id="embed-width" type="number" v-model.number="width" min="0" step="10" />
+          </div>
+          <template v-if="type != 'track'">
+            <br>
+            <div class="field">
+              <label for="embed-height"><translate>Widget height</translate></label>
+              <input id="embed-height" type="number" v-model="height" :min="minHeight" max="1000" step="10" />
+            </div>
+          </template>
+        </div>
+        <div class="field">
+          <button @click="copy" class="ui right floated button"><translate>Copy</translate></button>
+          <label for="embed-width"><translate>Embed code</translate></label>
+          <p><translate>Copy/paste this code in your website HTML</translate></p>
+          <div class="ui hidden divider"></div>
+          <textarea ref="textarea":value="embedCode" rows="3" readonly>
+          </textarea>
+        </div>
+      </div>
+    </div>
+    <div class="preview">
+      <h3><translate>Preview</translate></h3>
+      <iframe :width="frameWidth" :height="height" scrolling="no" frameborder="no" :src="iframeSrc"></iframe>
+    </div>
+  </div>
+</template>
+
+<script>
+
+export default {
+  props: ['type', 'id'],
+  data () {
+    let d = {
+      width: null,
+      height: 150,
+      minHeight: 100
+    }
+    if (this.type === 'album') {
+      d.height = 330
+      d.minHeight = 250
+    }
+    return d
+  },
+  computed: {
+    iframeSrc () {
+      return this.$store.getters['instance/absoluteUrl'](
+        `/front/embed.html?&type=${this.type}&id=${this.id}`
+      )
+    },
+    frameWidth () {
+      if (this.width) {
+        return this.width
+      }
+      return '100%'
+    },
+    embedCode () {
+      let src = this.iframeSrc.replace(/&/g, '&amp;')
+      return `<iframe width="${this.frameWidth}" height="${this.height}" scrolling="no" frameborder="no" src="${src}"></iframe>`
+    }
+  },
+  methods: {
+    copy () {
+      this.$refs.textarea.select()
+      document.execCommand("Copy")
+    }
+  }
+}
+</script>
+
+<!-- Add "scoped" attribute to limit CSS to this component only -->
+<style scoped>
+</style>
diff --git a/front/src/components/audio/PlayButton.vue b/front/src/components/audio/PlayButton.vue
index 600d3de4cb2bc353f3cbc3bd18b53f659cb4e041..27a052269e460020b14fe56c4d9c98f80a5b288a 100644
--- a/front/src/components/audio/PlayButton.vue
+++ b/front/src/components/audio/PlayButton.vue
@@ -12,9 +12,9 @@
     <div v-if="!discrete && !iconOnly" :class="['ui', {disabled: !playable}, 'floating', 'dropdown', {'icon': !dropdownOnly}, {'button': !dropdownOnly}]">
       <i :class="dropdownIconClasses.concat(['icon'])"></i>
       <div class="menu">
-        <div class="item" :disabled="!playable" @click="add" :title="labels.addToQueue"><i class="plus icon"></i><translate>Add to queue</translate></div>
-        <div class="item" :disabled="!playable" @click="addNext()" :title="labels.playNext"><i class="step forward icon"></i><translate>Play next</translate></div>
-        <div class="item" :disabled="!playable" @click="addNext(true)" :title="labels.playNow"><i class="play icon"></i><translate>Play now</translate></div>
+        <button class="item basic" ref="add" data-ref="add" :disabled="!playable" @click.stop.prevent="add" :title="labels.addToQueue"><i class="plus icon"></i><translate>Add to queue</translate></button>
+        <button class="item basic" ref="addNext" data-ref="addNext" :disabled="!playable" @click.stop.prevent="addNext()" :title="labels.playNext"><i class="step forward icon"></i><translate>Play next</translate></button>
+        <button class="item basic" ref="playNow" data-ref="playNow" :disabled="!playable" @click.stop.prevent="addNext(true)" :title="labels.playNow"><i class="play icon"></i><translate>Play now</translate></button>
       </div>
     </div>
   </span>
@@ -46,7 +46,16 @@ export default {
     }
   },
   mounted () {
-    jQuery(this.$el).find('.ui.dropdown').dropdown()
+    let self = this
+    jQuery(this.$el).find('.ui.dropdown').dropdown({
+      selectOnKeydown: false,
+      action: function (text, value, $el) {
+        // used ton ensure focusing the dropdown and clicking via keyboard
+        // works as expected
+        self.$refs[$el.data('ref')].click()
+        jQuery(self.$el).find('.ui.dropdown').dropdown('hide')
+      }
+    })
   },
   computed: {
     labels () {
@@ -70,10 +79,14 @@ export default {
         return true
       }
       if (this.track) {
-        return this.track.is_playable
+        return this.track.uploads && this.track.uploads.length > 0
+      } else if (this.artist) {
+        return this.albums.filter((a) => {
+          return a.is_playable === true
+        }).length > 0
       } else if (this.tracks) {
         return this.tracks.filter((t) => {
-          return t.is_playable
+          return t.uploads && t.uploads.length > 0
         }).length > 0
       }
       return false
@@ -107,7 +120,14 @@ export default {
       this.isLoading = true
       let getTracks = new Promise((resolve, reject) => {
         if (self.track) {
-          resolve([self.track])
+          if (!self.track.uploads || self.track.uploads.length === 0) {
+            // fetch uploads from api
+            axios.get(`tracks/${self.track.id}/`).then((response) => {
+              resolve([response.data])
+            })
+          } else {
+            resolve([self.track])
+          }
         } else if (self.tracks) {
           resolve(self.tracks)
         } else if (self.playlist) {
@@ -130,7 +150,7 @@ export default {
           self.isLoading = false
         }, 250)
         return tracks.filter(e => {
-          return e.is_playable === true
+          return e.uploads && e.uploads.length > 0
         })
       })
     },
@@ -139,6 +159,7 @@ export default {
       this.getPlayableTracks().then((tracks) => {
         self.$store.dispatch('queue/appendMany', {tracks: tracks}).then(() => self.addMessage(tracks))
       })
+      jQuery(self.$el).find('.ui.dropdown').dropdown('hide')
     },
     addNext (next) {
       let self = this
@@ -150,6 +171,7 @@ export default {
           self.$store.dispatch('queue/next')
         }
       })
+      jQuery(self.$el).find('.ui.dropdown').dropdown('hide')
     },
     addMessage (tracks) {
       if (tracks.length < 1) {
@@ -170,4 +192,8 @@ export default {
 i {
   cursor: pointer;
 }
+button.item {
+  background-color: white;
+  width: 100%;
+}
 </style>
diff --git a/front/src/components/audio/Player.vue b/front/src/components/audio/Player.vue
index 9c918a5fa919753f491318aa7506386585674e89..e010f151e8af4cfa27049632284ea79555d7f630 100644
--- a/front/src/components/audio/Player.vue
+++ b/front/src/components/audio/Player.vue
@@ -1,9 +1,10 @@
 <template>
-  <div class="ui inverted segment player-wrapper" :style="style">
+  <section class="ui inverted segment player-wrapper" :aria-label="labels.audioPlayer" :style="style">
     <div class="player">
       <audio-track
         ref="currentAudio"
         v-if="currentTrack"
+        @errored="handleError"
         :is-current="true"
         :start-time="$store.state.player.currentTime"
         :autoplay="$store.state.player.playing"
@@ -31,68 +32,112 @@
             <div class="description">
               <track-favorite-icon
                 v-if="$store.state.auth.authenticated"
+                :class="{'inverted': !$store.getters['favorites/isFavorite'](currentTrack.id)}"
                 :track="currentTrack"></track-favorite-icon>
               <track-playlist-icon
                 v-if="$store.state.auth.authenticated"
+                :class="['inverted']"
                 :track="currentTrack"></track-playlist-icon>
             </div>
           </div>
         </div>
       </div>
-      <div class="progress-area" v-if="currentTrack">
+      <div class="progress-area" v-if="currentTrack && !errored">
         <div class="ui grid">
           <div class="left floated four wide column">
             <p class="timer start" @click="updateProgress(0)">{{currentTimeFormatted}}</p>
           </div>
 
-          <div class="right floated four wide column">
+          <div v-if="!isLoadingAudio" class="right floated four wide column">
             <p class="timer total">{{durationFormatted}}</p>
           </div>
         </div>
-        <div ref="progress" class="ui small orange inverted progress" @click="touchProgress">
+        <div
+          ref="progress"
+          :class="['ui', 'small', 'orange', 'inverted', {'indicating': isLoadingAudio}, 'progress']"
+          @click="touchProgress">
+          <div class="buffer bar" :data-percent="bufferProgress" :style="{ 'width': bufferProgress + '%' }"></div>
           <div class="bar" :data-percent="progress" :style="{ 'width': progress + '%' }"></div>
         </div>
       </div>
-
+      <div class="ui small warning message" v-if="currentTrack && errored">
+        <div class="header">
+          <translate>We cannot load this track</translate>
+        </div>
+        <p v-if="hasNext && playing && $store.state.player.errorCount < $store.state.player.maxConsecutiveErrors">
+          <translate>The next track will play automatically in a few seconds...</translate>
+          <i class="loading spinner icon"></i>
+        </p>
+        <p>
+          <translate>You may have a connectivity issue.</translate>
+        </p>
+      </div>
       <div class="two wide column controls ui grid">
-        <div
+        <span
+          role="button"
           :title="labels.previousTrack"
+          :aria-label="labels.previousTrack"
           class="two wide column control"
+          @click.prevent.stop="previous"
           :disabled="emptyQueue">
-            <i @click="previous" :class="['ui', 'backward', {'disabled': emptyQueue}, 'secondary', 'icon']"></i>
-        </div>
-        <div
+            <i :class="['ui', 'backward step', {'disabled': emptyQueue}, 'secondary', 'icon']"></i>
+        </span>
+        <span
+          role="button"
           v-if="!playing"
           :title="labels.play"
+          :aria-label="labels.play"
+          @click.prevent.stop="togglePlay"
           class="two wide column control">
-            <i @click="togglePlay" :class="['ui', 'play', {'disabled': !currentTrack}, 'secondary', 'icon']"></i>
-        </div>
-        <div
+            <i :class="['ui', 'play', {'disabled': !currentTrack}, 'secondary', 'icon']"></i>
+        </span>
+        <span
+          role="button"
           v-else
           :title="labels.pause"
+          :aria-label="labels.pause"
+          @click.prevent.stop="togglePlay"
           class="two wide column control">
-            <i @click="togglePlay" :class="['ui', 'pause', {'disabled': !currentTrack}, 'secondary', 'icon']"></i>
-        </div>
-        <div
+            <i :class="['ui', 'pause', {'disabled': !currentTrack}, 'secondary', 'icon']"></i>
+        </span>
+        <span
+          role="button"
           :title="labels.next"
+          :aria-label="labels.next"
           class="two wide column control"
+          @click.prevent.stop="next"
           :disabled="!hasNext">
-            <i @click="next" :class="['ui', {'disabled': !hasNext}, 'step', 'forward', 'secondary', 'icon']" ></i>
-        </div>
+            <i :class="['ui', {'disabled': !hasNext}, 'forward step', 'secondary', 'icon']" ></i>
+        </span>
         <div
           class="wide column control volume-control"
           v-on:mouseover="showVolume = true"
           v-on:mouseleave="showVolume = false"
           v-bind:class="{ active : showVolume }">
-          <i
+          <span
+            role="button"
+            v-if="volume === 0"
             :title="labels.unmute"
-            @click="unmute" v-if="volume === 0" class="volume off secondary icon"></i>
-          <i
+            :aria-label="labels.unmute"
+            @click.prevent.stop="unmute">
+            <i class="volume off secondary icon"></i>
+          </span>
+          <span
+            role="button"
+            v-else-if="volume < 0.5"
             :title="labels.mute"
-            @click="mute" v-else-if="volume < 0.5" class="volume down secondary icon"></i>
-          <i
+            :aria-label="labels.mute"
+            @click.prevent.stop="mute">
+            <i class="volume down secondary icon"></i>
+          </span>
+          <span
+            role="button"
+            v-else
             :title="labels.mute"
-            @click="mute" v-else class="volume up secondary icon"></i>
+            :aria-label="labels.mute"
+            @click.prevent.stop="mute">
+            <i class="volume up secondary icon"></i>
+          </span>
           <input
             type="range"
             step="0.05"
@@ -102,44 +147,61 @@
             v-if="showVolume" />
         </div>
         <div class="two wide column control looping" v-if="!showVolume">
-          <i
-            :title="labels.loopingDisabled"
+          <span
+            role="button"
             v-if="looping === 0"
-            @click="$store.commit('player/looping', 1)"
-            :disabled="!currentTrack"
-            :class="['ui', {'disabled': !currentTrack}, 'step', 'repeat', 'secondary', 'icon']"></i>
-          <i
+            :title="labels.loopingDisabled"
+            :aria-label="labels.loopingDisabled"
+            @click.prevent.stop="$store.commit('player/looping', 1)"
+            :disabled="!currentTrack">
+            <i :class="['ui', {'disabled': !currentTrack}, 'step', 'repeat', 'secondary', 'icon']"></i>
+          </span>
+          <span
+            role="button"
+            @click.prevent.stop="$store.commit('player/looping', 2)"
             :title="labels.loopingSingle"
+            :aria-label="labels.loopingSingle"
             v-if="looping === 1"
-            @click="$store.commit('player/looping', 2)"
-            :disabled="!currentTrack"
-            class="repeat secondary icon">
-            <span class="ui circular tiny orange label">1</span>
-          </i>
-          <i
+            :disabled="!currentTrack">
+            <i
+              class="repeat secondary icon">
+              <span class="ui circular tiny orange label">1</span>
+            </i>
+          </span>
+          <span
+            role="button"
             :title="labels.loopingWhole"
+            :aria-label="labels.loopingWhole"
             v-if="looping === 2"
-            @click="$store.commit('player/looping', 0)"
             :disabled="!currentTrack"
-            class="repeat orange secondary icon">
-          </i>
+            @click.prevent.stop="$store.commit('player/looping', 0)">
+            <i
+              class="repeat orange secondary icon">
+            </i>
+          </span>
         </div>
-        <div
+        <span
+          role="button"
           :disabled="queue.tracks.length === 0"
           :title="labels.shuffle"
+          :aria-label="labels.shuffle"
           v-if="!showVolume"
+          @click.prevent.stop="shuffle()"
           class="two wide column control">
           <div v-if="isShuffling" class="ui inline shuffling inverted tiny active loader"></div>
-          <i v-else @click="shuffle()" :class="['ui', 'random', 'secondary', {'disabled': queue.tracks.length === 0}, 'icon']" ></i>
-        </div>
+          <i v-else :class="['ui', 'random', 'secondary', {'disabled': queue.tracks.length === 0}, 'icon']" ></i>
+        </span>
         <div class="one wide column" v-if="!showVolume"></div>
-        <div
+        <span
+          role="button"
           :disabled="queue.tracks.length === 0"
           :title="labels.clear"
+          :aria-label="labels.clear"
           v-if="!showVolume"
+          @click.prevent.stop="clean()"
           class="two wide column control">
-          <i @click="clean()" :class="['ui', 'trash', 'secondary', {'disabled': queue.tracks.length === 0}, 'icon']" ></i>
-        </div>
+          <i :class="['ui', 'trash', 'secondary', {'disabled': queue.tracks.length === 0}, 'icon']" ></i>
+        </span>
       </div>
       <GlobalEvents
         @keydown.space.prevent.exact="togglePlay"
@@ -147,23 +209,23 @@
         @keydown.ctrl.right.prevent.exact="next"
         @keydown.ctrl.down.prevent.exact="$store.commit('player/incrementVolume', -0.1)"
         @keydown.ctrl.up.prevent.exact="$store.commit('player/incrementVolume', 0.1)"
-        @keydown.f.prevent.exact="$store.dispatch('favorites/toggle', currentTrack.id)"
         @keydown.l.prevent.exact="$store.commit('player/toggleLooping')"
         @keydown.s.prevent.exact="shuffle"
         />
     </div>
-  </div>
+  </section>
 </template>
 
 <script>
-import {mapState, mapGetters, mapActions} from 'vuex'
-import GlobalEvents from '@/components/utils/global-events'
-import ColorThief from '@/vendor/color-thief'
-import {Howl} from 'howler'
+import { mapState, mapGetters, mapActions } from "vuex"
+import GlobalEvents from "@/components/utils/global-events"
+import ColorThief from "@/vendor/color-thief"
+import { Howl } from "howler"
+import $ from 'jquery'
 
-import AudioTrack from '@/components/audio/Track'
-import TrackFavoriteIcon from '@/components/favorites/TrackFavoriteIcon'
-import TrackPlaylistIcon from '@/components/playlists/TrackPlaylistIcon'
+import AudioTrack from "@/components/audio/Track"
+import TrackFavoriteIcon from "@/components/favorites/TrackFavoriteIcon"
+import TrackPlaylistIcon from "@/components/playlists/TrackPlaylistIcon"
 
 export default {
   components: {
@@ -172,8 +234,13 @@ export default {
     GlobalEvents,
     AudioTrack
   },
-  data () {
-    let defaultAmbiantColors = [[46, 46, 46], [46, 46, 46], [46, 46, 46], [46, 46, 46]]
+  data() {
+    let defaultAmbiantColors = [
+      [46, 46, 46],
+      [46, 46, 46],
+      [46, 46, 46],
+      [46, 46, 46]
+    ]
     return {
       isShuffling: false,
       sliderVolume: this.volume,
@@ -184,7 +251,7 @@ export default {
       dummyAudio: null
     }
   },
-  mounted () {
+  mounted() {
     // we trigger the watcher explicitely it does not work otherwise
     this.sliderVolume = this.volume
     // this is needed to unlock audio playing under some browsers,
@@ -193,95 +260,112 @@ export default {
     this.dummyAudio = new Howl({
       preload: false,
       autoplay: false,
-      src: ['noop.webm', 'noop.mp3']
+      src: ["noop.webm", "noop.mp3"]
     })
   },
-  destroyed () {
+  destroyed() {
     this.dummyAudio.unload()
   },
   methods: {
     ...mapActions({
-      togglePlay: 'player/togglePlay',
-      mute: 'player/mute',
-      unmute: 'player/unmute',
-      clean: 'queue/clean',
-      updateProgress: 'player/updateProgress'
+      togglePlay: "player/togglePlay",
+      mute: "player/mute",
+      unmute: "player/unmute",
+      clean: "queue/clean",
+      updateProgress: "player/updateProgress"
     }),
-    shuffle () {
+    shuffle() {
       let disabled = this.queue.tracks.length === 0
       if (this.isShuffling || disabled) {
         return
       }
       let self = this
-      let msg = this.$gettext('Queue shuffled!')
+      let msg = this.$gettext("Queue shuffled!")
       this.isShuffling = true
       setTimeout(() => {
-        self.$store.dispatch('queue/shuffle', () => {
+        self.$store.dispatch("queue/shuffle", () => {
           self.isShuffling = false
-          self.$store.commit('ui/addMessage', {
+          self.$store.commit("ui/addMessage", {
             content: msg,
             date: new Date()
           })
         })
       }, 100)
     },
-    next () {
+    next() {
       let self = this
-      this.$store.dispatch('queue/next').then(() => {
-        self.$emit('next')
+      this.$store.dispatch("queue/next").then(() => {
+        self.$emit("next")
       })
     },
-    previous () {
+    previous() {
       let self = this
-      this.$store.dispatch('queue/previous').then(() => {
-        self.$emit('previous')
+      this.$store.dispatch("queue/previous").then(() => {
+        self.$emit("previous")
       })
     },
-    touchProgress (e) {
+    touchProgress(e) {
       let time
       let target = this.$refs.progress
-      time = e.layerX / target.offsetWidth * this.duration
+      time = (e.layerX / target.offsetWidth) * this.duration
       this.$refs.currentAudio.setCurrentTime(time)
     },
-    updateBackground () {
+    updateBackground() {
+      // delete existing canvas, if any
+      $('canvas.color-thief').remove()
       if (!this.currentTrack.album.cover) {
         this.ambiantColors = this.defaultAmbiantColors
         return
       }
       let image = this.$refs.cover
       this.ambiantColors = ColorThief.prototype.getPalette(image, 4).slice(0, 4)
+    },
+    handleError({ sound, error }) {
+      this.$store.commit("player/isLoadingAudio", false)
+      this.$store.dispatch("player/trackErrored")
     }
   },
   computed: {
     ...mapState({
       currentIndex: state => state.queue.currentIndex,
       playing: state => state.player.playing,
+      isLoadingAudio: state => state.player.isLoadingAudio,
       volume: state => state.player.volume,
       looping: state => state.player.looping,
       duration: state => state.player.duration,
+      bufferProgress: state => state.player.bufferProgress,
+      errored: state => state.player.errored,
       queue: state => state.queue
     }),
     ...mapGetters({
-      currentTrack: 'queue/currentTrack',
-      hasNext: 'queue/hasNext',
-      emptyQueue: 'queue/isEmpty',
-      durationFormatted: 'player/durationFormatted',
-      currentTimeFormatted: 'player/currentTimeFormatted',
-      progress: 'player/progress'
+      currentTrack: "queue/currentTrack",
+      hasNext: "queue/hasNext",
+      emptyQueue: "queue/isEmpty",
+      durationFormatted: "player/durationFormatted",
+      currentTimeFormatted: "player/currentTimeFormatted",
+      progress: "player/progress"
     }),
-    labels () {
-      let previousTrack = this.$gettext('Previous track')
-      let play = this.$gettext('Play track')
-      let pause = this.$gettext('Pause track')
-      let next = this.$gettext('Next track')
-      let unmute = this.$gettext('Unmute')
-      let mute = this.$gettext('Mute')
-      let loopingDisabled = this.$gettext('Looping disabled. Click to switch to single-track looping.')
-      let loopingSingle = this.$gettext('Looping on a single track. Click to switch to whole queue looping.')
-      let loopingWhole = this.$gettext('Looping on whole queue. Click to disable looping.')
-      let shuffle = this.$gettext('Shuffle your queue')
-      let clear = this.$gettext('Clear your queue')
+    labels() {
+      let audioPlayer = this.$gettext("Media player")
+      let previousTrack = this.$gettext("Previous track")
+      let play = this.$gettext("Play track")
+      let pause = this.$gettext("Pause track")
+      let next = this.$gettext("Next track")
+      let unmute = this.$gettext("Unmute")
+      let mute = this.$gettext("Mute")
+      let loopingDisabled = this.$gettext(
+        "Looping disabled. Click to switch to single-track looping."
+      )
+      let loopingSingle = this.$gettext(
+        "Looping on a single track. Click to switch to whole queue looping."
+      )
+      let loopingWhole = this.$gettext(
+        "Looping on whole queue. Click to disable looping."
+      )
+      let shuffle = this.$gettext("Shuffle your queue")
+      let clear = this.$gettext("Clear your queue")
       return {
+        audioPlayer,
         previousTrack,
         play,
         pause,
@@ -295,29 +379,35 @@ export default {
         clear
       }
     },
-    style: function () {
+    style: function() {
       let style = {
-        'background': this.ambiantGradiant
+        background: this.ambiantGradiant
       }
       return style
     },
-    ambiantGradiant: function () {
+    ambiantGradiant: function() {
       let indexConf = [
-        {orientation: 330, percent: 100, opacity: 0.7},
-        {orientation: 240, percent: 90, opacity: 0.7},
-        {orientation: 150, percent: 80, opacity: 0.7},
-        {orientation: 60, percent: 70, opacity: 0.7}
+        { orientation: 330, percent: 100, opacity: 0.7 },
+        { orientation: 240, percent: 90, opacity: 0.7 },
+        { orientation: 150, percent: 80, opacity: 0.7 },
+        { orientation: 60, percent: 70, opacity: 0.7 }
       ]
-      let gradients = this.ambiantColors.map((e, i) => {
-        let [r, g, b] = e
-        let conf = indexConf[i]
-        return `linear-gradient(${conf.orientation}deg, rgba(${r}, ${g}, ${b}, ${conf.opacity}) 10%, rgba(255, 255, 255, 0) ${conf.percent}%)`
-      }).join(', ')
+      let gradients = this.ambiantColors
+        .map((e, i) => {
+          let [r, g, b] = e
+          let conf = indexConf[i]
+          return `linear-gradient(${
+            conf.orientation
+          }deg, rgba(${r}, ${g}, ${b}, ${
+            conf.opacity
+          }) 10%, rgba(255, 255, 255, 0) ${conf.percent}%)`
+        })
+        .join(", ")
       return gradients
     }
   },
   watch: {
-    currentTrack (newValue, oldValue) {
+    currentTrack(newValue, oldValue) {
       if (!this.isShuffling && newValue != oldValue) {
         this.audioKey = String(new Date())
       }
@@ -325,11 +415,11 @@ export default {
         this.ambiantColors = this.defaultAmbiantColors
       }
     },
-    volume (newValue) {
+    volume(newValue) {
       this.sliderVolume = newValue
     },
-    sliderVolume (newValue) {
-      this.$store.commit('player/volume', newValue)
+    sliderVolume(newValue) {
+      this.$store.commit("player/volume", newValue)
     }
   }
 }
@@ -337,7 +427,6 @@ export default {
 
 <!-- Add "scoped" attribute to limit CSS to this component only -->
 <style scoped lang="scss">
-
 .ui.progress {
   margin: 0.5rem 0 1rem;
 }
@@ -355,21 +444,27 @@ export default {
 .ui.item {
   .meta {
     font-size: 90%;
-    line-height: 1.2
+    line-height: 1.2;
   }
 }
 .timer.total {
-    text-align: right;
+  text-align: right;
 }
 .timer.start {
-    cursor: pointer
+  cursor: pointer;
 }
 .track-area {
   margin-top: 0;
-  .header, .meta, .artist, .album {
+  .header,
+  .meta,
+  .artist,
+  .album {
     color: white !important;
   }
 }
+.controls a {
+  color: white;
+}
 
 .controls .icon.big {
   cursor: pointer;
@@ -397,57 +492,57 @@ export default {
     left: 25%;
     cursor: pointer;
   }
-  input[type=range]:focus {
+  input[type="range"]:focus {
     outline: none;
   }
-  input[type=range]::-webkit-slider-runnable-track {
+  input[type="range"]::-webkit-slider-runnable-track {
     cursor: pointer;
   }
-  input[type=range]::-webkit-slider-thumb {
+  input[type="range"]::-webkit-slider-thumb {
     background: white;
     cursor: pointer;
     -webkit-appearance: none;
     border-radius: 3px;
     width: 10px;
   }
-  input[type=range]::-moz-range-track {
+  input[type="range"]::-moz-range-track {
     cursor: pointer;
     background: white;
     opacity: 0.3;
   }
-  input[type=range]::-moz-focus-outer {
+  input[type="range"]::-moz-focus-outer {
     border: 0;
   }
-  input[type=range]::-moz-range-thumb {
+  input[type="range"]::-moz-range-thumb {
     background: white;
     cursor: pointer;
     border-radius: 3px;
     width: 10px;
   }
-  input[type=range]::-ms-track {
+  input[type="range"]::-ms-track {
     cursor: pointer;
     background: transparent;
     border-color: transparent;
     color: transparent;
   }
-  input[type=range]::-ms-fill-lower {
+  input[type="range"]::-ms-fill-lower {
     background: white;
     opacity: 0.3;
   }
-  input[type=range]::-ms-fill-upper {
+  input[type="range"]::-ms-fill-upper {
     background: white;
     opacity: 0.3;
   }
-  input[type=range]::-ms-thumb {
+  input[type="range"]::-ms-thumb {
     background: white;
     cursor: pointer;
     border-radius: 3px;
     width: 10px;
   }
-  input[type=range]:focus::-ms-fill-lower {
+  input[type="range"]:focus::-ms-fill-lower {
     background: white;
   }
-  input[type=range]:focus::-ms-fill-upper {
+  input[type="range"]:focus::-ms-fill-upper {
     background: white;
   }
 }
@@ -474,4 +569,42 @@ export default {
   margin: 0;
 }
 
+@keyframes MOVE-BG {
+  from {
+    transform: translateX(0px);
+  }
+  to {
+    transform: translateX(46px);
+  }
+}
+
+.indicating.progress {
+  overflow: hidden;
+}
+
+.ui.progress .bar {
+  transition: none;
+}
+
+.ui.inverted.progress .buffer.bar {
+  position: absolute;
+  background-color: rgba(255, 255, 255, 0.15);
+}
+.indicating.progress .bar {
+  left: -46px;
+  width: 200% !important;
+  color: grey;
+  background: repeating-linear-gradient(
+    -55deg,
+    grey 1px,
+    grey 10px,
+    transparent 10px,
+    transparent 20px
+  ) !important;
+
+  animation-name: MOVE-BG;
+  animation-duration: 2s;
+  animation-timing-function: linear;
+  animation-iteration-count: infinite;
+}
 </style>
diff --git a/front/src/components/audio/Search.vue b/front/src/components/audio/Search.vue
index 06ae2c1cc7636020b3cd6710b2c3c8c81e56b9c4..dd250ca09f08bbd1c27a946747a7bb72462e70f6 100644
--- a/front/src/components/audio/Search.vue
+++ b/front/src/components/audio/Search.vue
@@ -14,7 +14,7 @@
           <artist-card class="fluid" :artist="artist" ></artist-card>
         </div>
       </div>
-      <p v-else><translate>Sorry, we did not found any artist matching your query</translate></p>
+      <p v-else><translate>No artist matched your query</translate></p>
     </template>
     <template v-if="query.length > 0">
       <h3 class="ui title"><translate>Albums</translate></h3>
@@ -23,13 +23,13 @@
           <album-card class="fluid" :album="album" ></album-card>
         </div>
       </div>
-      <p v-else><translate>Sorry, we did not found any album matching your query</translate></p>
+      <p v-else><translate>No album matched your query</translate></p>
     </template>
   </div>
 </template>
 
 <script>
-import _ from 'lodash'
+import _ from '@/lodash'
 import axios from 'axios'
 import logger from '@/logging'
 import AlbumCard from '@/components/audio/album/Card'
@@ -62,7 +62,7 @@ export default {
   computed: {
     labels () {
       return {
-        searchPlaceholder: this.$gettext('Artist, album, track...')
+        searchPlaceholder: this.$gettext('Artist, album, track…')
       }
     }
   },
diff --git a/front/src/components/audio/SearchBar.vue b/front/src/components/audio/SearchBar.vue
index 024a36906875791233438dc6a19e826798907f1f..25a3b1823054ee1701598490b3b325047e8549f2 100644
--- a/front/src/components/audio/SearchBar.vue
+++ b/front/src/components/audio/SearchBar.vue
@@ -17,7 +17,7 @@ export default {
   computed: {
     labels () {
       return {
-        placeholder: this.$gettext('Search for artists, albums, tracks...')
+        placeholder: this.$gettext('Search for artists, albums, tracks…')
       }
     }
   },
diff --git a/front/src/components/audio/Track.vue b/front/src/components/audio/Track.vue
index 5626dd4d89bf41b64563aa93faa799d323f4051f..2e0f8c421a0e780247224b93764b55fd476ae541 100644
--- a/front/src/components/audio/Track.vue
+++ b/front/src/components/audio/Track.vue
@@ -4,9 +4,10 @@
 
 <script>
 import {mapState} from 'vuex'
-import _ from 'lodash'
+import _ from '@/lodash'
 import url from '@/utils/url'
 import {Howl} from 'howler'
+import axios from 'axios'
 
 // import logger from '@/logging'
 
@@ -19,6 +20,7 @@ export default {
   },
   data () {
     return {
+      trackData: this.track,
       sourceErrors: 0,
       sound: null,
       isUpdatingTime: false,
@@ -27,31 +29,16 @@ export default {
   },
   mounted () {
     let self = this
-    this.sound = new Howl({
-      src: this.srcs.map((s) => { return s.url }),
-      format: this.srcs.map((s) => { return s.type }),
-      autoplay: false,
-      loop: false,
-      html5: true,
-      preload: true,
-      volume: this.volume,
-      onend: function () {
-        self.ended()
-      },
-      onunlock: function () {
-        if (this.$store.state.player.playing) {
-          self.sound.play()
-        }
-      },
-      onload: function () {
-        self.$store.commit('player/resetErrorCount')
-        self.$store.commit('player/duration', self.sound.duration())
-      }
-    })
-    if (this.autoplay) {
-      this.sound.play()
-      this.$store.commit('player/playing', true)
-      this.observeProgress(true)
+    if (!this.trackData.uploads.length || this.trackData.uploads.length === 0) {
+      // we don't have upload informations for this track, we need to fetch it
+      axios.get(`tracks/${this.trackData.id}/`).then((response) => {
+        self.trackData = response.data
+        self.setupSound()
+      }, error => {
+        self.$emit('errored', {})
+      })
+    } else {
+      this.setupSound()
     }
   },
   destroyed () {
@@ -67,14 +54,23 @@ export default {
       looping: state => state.player.looping
     }),
     srcs: function () {
-      // let file = this.track.files[0]
-      // if (!file) {
-      //   this.$store.dispatch('player/trackErrored')
-      //   return []
-      // }
-      let sources = [
-        {type: 'mp3', url: this.$store.getters['instance/absoluteUrl'](this.track.listen_url)}
-      ]
+      let sources = this.trackData.uploads.map(u => {
+        return {
+          type: u.extension,
+          url: this.$store.getters['instance/absoluteUrl'](u.listen_url),
+        }
+      })
+      // We always add a transcoded MP3 src at the end
+      // because transcoding is expensive, but we want browsers that do
+      // not support other codecs to be able to play it :)
+      sources.push({
+        type: 'mp3',
+        url: url.updateQueryString(
+          this.$store.getters['instance/absoluteUrl'](this.trackData.listen_url),
+          'to',
+          'mp3'
+        )
+      })
       if (this.$store.state.auth.authenticated) {
         // we need to send the token directly in url
         // so authentication can be checked by the backend
@@ -91,10 +87,80 @@ export default {
     }
   },
   methods: {
+    setupSound () {
+      let self = this
+      this.sound = new Howl({
+        src: this.srcs.map((s) => { return s.url }),
+        format: this.srcs.map((s) => { return s.type }),
+        autoplay: false,
+        loop: false,
+        html5: true,
+        preload: true,
+        volume: this.volume,
+        onend: function () {
+          self.ended()
+        },
+        onunlock: function () {
+          if (this.$store.state.player.playing) {
+            self.sound.play()
+          }
+        },
+        onload: function () {
+          self.$store.commit('player/isLoadingAudio', false)
+          self.$store.commit('player/resetErrorCount')
+          self.$store.commit('player/errored', false)
+          self.$store.commit('player/duration', self.sound.duration())
+          let node = self.sound._sounds[0]._node;
+          node.addEventListener('progress', () => {
+            self.updateBuffer(node)
+          })
+        },
+        onloaderror: function (sound, error) {
+          console.log('Error while playing:', sound, error)
+          self.$emit('errored', {sound, error})
+        },
+      })
+      if (this.autoplay) {
+        self.$store.commit('player/isLoadingAudio', true)
+        this.sound.play()
+        this.$store.commit('player/playing', true)
+        this.observeProgress(true)
+      }
+    },
+    updateBuffer (node) {
+      // from https://github.com/goldfire/howler.js/issues/752#issuecomment-372083163
+      let range = 0;
+      let bf = node.buffered;
+      let time = node.currentTime;
+      try {
+        while(!(bf.start(range) <= time && time <= bf.end(range))) {
+          range += 1;
+        }
+      } catch (IndexSizeError) {
+        return
+      }
+      let loadPercentage
+      let start =  bf.start(range)
+      let end =  bf.end(range)
+      if (range === 0) {
+        // easy case, no user-seek
+        let loadStartPercentage = start / node.duration;
+        let loadEndPercentage = end / node.duration;
+        loadPercentage = loadEndPercentage - loadStartPercentage;
+      } else {
+        let loaded = end - start
+        let remainingToLoad = node.duration - start
+        // user seeked a specific position in the audio, our progress must be
+        // computed based on the remaining portion of the track
+        loadPercentage = loaded / remainingToLoad;
+      }
+      this.$store.commit('player/bufferProgress', loadPercentage * 100)
+    },
     updateProgress: function () {
       this.isUpdatingTime = true
       if (this.sound && this.sound.state() === 'loaded') {
         this.$store.dispatch('player/updateProgress', this.sound.seek())
+        this.updateBuffer(this.sound._sounds[0]._node)
       }
     },
     observeProgress: function (enable) {
@@ -128,7 +194,7 @@ export default {
         this.sound.seek(0)
         this.sound.play()
       } else {
-        this.$store.dispatch('player/trackEnded', this.track)
+        this.$store.dispatch('player/trackEnded', this.trackData)
       }
     }
   },
diff --git a/front/src/components/audio/album/Widget.vue b/front/src/components/audio/album/Widget.vue
index 73bf0d226949dcd63ad530c25c2f4e1e91e27a8d..f7100a9b86c3f33ea5ac3d0bef26f84d3f45f8ec 100644
--- a/front/src/components/audio/album/Widget.vue
+++ b/front/src/components/audio/album/Widget.vue
@@ -3,17 +3,15 @@
     <h3 class="ui header">
       <slot name="title"></slot>
     </h3>
-    <i @click="fetchData(previousPage)" :disabled="!previousPage" :class="['ui', {disabled: !previousPage}, 'circular', 'medium', 'angle left', 'icon']">
-    </i>
-    <i @click="fetchData(nextPage)" :disabled="!nextPage" :class="['ui', {disabled: !nextPage}, 'circular', 'medium', 'angle right', 'icon']">
-    </i>
+    <button :disabled="!previousPage" @click="fetchData(previousPage)" :class="['ui', {disabled: !previousPage}, 'circular', 'icon', 'basic', 'button']"><i :class="['ui', 'angle left', 'icon']"></i></button>
+    <button :disabled="!nextPage" @click="fetchData(nextPage)" :class="['ui', {disabled: !nextPage}, 'circular', 'icon', 'basic', 'button']"><i :class="['ui', 'angle right', 'icon']"></i></button>
     <div class="ui hidden divider"></div>
     <div class="ui five cards">
       <div v-if="isLoading" class="ui inverted active dimmer">
         <div class="ui loader"></div>
       </div>
       <div class="card" v-for="album in albums" :key="album.id">
-        <div :class="['ui', 'image', 'with-overlay', {'default-cover': !album.cover.original}]" :style="getImageStyle(album)">
+        <div :class="['ui', 'image', 'with-overlay', {'default-cover': !album.cover.original}]" v-lazy:background-image="getImageUrl(album)">
           <play-button class="play-overlay" :icon-only="true" :is-playable="album.is_playable" :button-classes="['ui', 'circular', 'large', 'orange', 'icon', 'button']" :album="album.id"></play-button>
         </div>
         <div class="content">
@@ -38,7 +36,7 @@
 </template>
 
 <script>
-import _ from 'lodash'
+import _ from '@/lodash'
 import axios from 'axios'
 import PlayButton from '@/components/audio/PlayButton'
 
@@ -89,17 +87,15 @@ export default {
         this.offset = Math.max(this.offset - this.limit, 0)
       }
     },
-    getImageStyle (album) {
+    getImageUrl (album) {
       let url = '../../../assets/audio/default-cover.png'
 
       if (album.cover.original) {
         url = this.$store.getters['instance/absoluteUrl'](album.cover.medium_square_crop)
       } else {
-        return {}
-      }
-      return {
-        'background-image': `url("${url}")`
+        return null
       }
+      return url
     }
   },
   watch: {
@@ -110,10 +106,10 @@ export default {
 }
 </script>
 <style scoped lang="scss">
-@import '../../../style/vendor/media';
+@import "../../../style/vendor/media";
 
 .default-cover {
-  background-image: url('../../../assets/audio/default-cover.png') !important;
+  background-image: url("../../../assets/audio/default-cover.png") !important;
 }
 
 .wrapper {
diff --git a/front/src/components/audio/artist/Card.vue b/front/src/components/audio/artist/Card.vue
index 5f8cfe10a5c9954fd909d2082a4f767f26ea3195..1876c42c01f1d62bb567f6600ea872b19bf105f6 100644
--- a/front/src/components/audio/artist/Card.vue
+++ b/front/src/components/audio/artist/Card.vue
@@ -11,7 +11,7 @@
             <tbody>
               <tr v-for="album in albums">
                 <td>
-                  <img class="ui mini image" v-if="album.cover.original" :src="$store.getters['instance/absoluteUrl'](album.cover.small_square_crop)">
+                  <img class="ui mini image" v-if="album.cover.original" v-lazy="$store.getters['instance/absoluteUrl'](album.cover.small_square_crop)">
                   <img class="ui mini image" v-else src="../../../assets/audio/default-cover.png">
                 </td>
                 <td colspan="4">
@@ -82,5 +82,4 @@ export default {
 
 <!-- Add "scoped" attribute to limit CSS to this component only -->
 <style scoped>
-
 </style>
diff --git a/front/src/components/audio/track/Row.vue b/front/src/components/audio/track/Row.vue
index 2dce036ebabd73de165b6de841770e67ff1af587..d3b7dc734b91b528561c764873de1a75e53b9317 100644
--- a/front/src/components/audio/track/Row.vue
+++ b/front/src/components/audio/track/Row.vue
@@ -1,7 +1,7 @@
 <template>
   <tr>
     <td>
-      <play-button class="basic icon" :discrete="true" :track="track"></play-button>
+      <play-button class="basic icon" :discrete="true" :is-playable="playable" :track="track"></play-button>
     </td>
     <td>
       <img class="ui mini image" v-if="track.album.cover.original" v-lazy="$store.getters['instance/absoluteUrl'](track.album.cover.small_square_crop)">
@@ -34,13 +34,13 @@
         {{ track.album.title }}
       </router-link>
     </td>
-    <td colspan="4" v-if="track.duration">
-      {{ time.parse(track.duration) }}
+    <td colspan="4" v-if="track.uploads && track.uploads.length > 0">
+      {{ time.parse(track.uploads[0].duration) }}
     </td>
     <td colspan="4" v-else>
       <translate>N/A</translate>
     </td>
-    <td>
+    <td colspan="2">
       <track-favorite-icon class="favorite-icon" :track="track"></track-favorite-icon>
       <track-playlist-icon
         v-if="$store.state.auth.authenticated"
@@ -60,7 +60,8 @@ export default {
   props: {
     track: {type: Object, required: true},
     artist: {type: Object, required: false},
-    displayPosition: {type: Boolean, default: false}
+    displayPosition: {type: Boolean, default: false},
+    playable: {type: Boolean, required: false, default: false},
   },
   components: {
     TrackFavoriteIcon,
@@ -86,10 +87,10 @@ export default {
 
 <!-- Add "scoped" attribute to limit CSS to this component only -->
 <style lang="scss" scoped>
-
 tr:not(:hover) {
-  .favorite-icon:not(.favorited), .playlist-icon {
-    display: none;
+  .favorite-icon:not(.favorited),
+  .playlist-icon {
+    visibility: hidden;
   }
 }
 </style>
diff --git a/front/src/components/audio/track/Table.vue b/front/src/components/audio/track/Table.vue
index 476a3f0bdbebf131b19158c5f0dd9ed4b4bb2276..937025807864f950f3c4dae60a503c7ca8b29f54 100644
--- a/front/src/components/audio/track/Table.vue
+++ b/front/src/components/audio/track/Table.vue
@@ -8,11 +8,12 @@
         <th colspan="4"><translate>Artist</translate></th>
         <th colspan="4"><translate>Album</translate></th>
         <th colspan="4"><translate>Duration</translate></th>
-        <th></th>
+        <th colspan="2"></th>
       </tr>
     </thead>
     <tbody>
       <track-row
+        :playable="playable"
         :display-position="displayPosition"
         :track="track"
         :artist="artist"
@@ -31,6 +32,7 @@ import Modal from '@/components/semantic/Modal'
 export default {
   props: {
     tracks: {type: Array, required: true},
+    playable: {type: Boolean, required: false, default: false},
     artist: {type: Object, required: false},
     displayPosition: {type: Boolean, default: false}
   },
@@ -48,7 +50,6 @@ export default {
 
 <!-- Add "scoped" attribute to limit CSS to this component only -->
 <style scoped>
-
 tr:not(:hover) .favorite-icon:not(.favorited) {
   display: none;
 }
diff --git a/front/src/components/audio/track/Widget.vue b/front/src/components/audio/track/Widget.vue
index 6a1d066904129b89dea2ceb99fcc4bcf41c8c984..f909945f0f97119fcb3ab3a36d8943bfe9513a3b 100644
--- a/front/src/components/audio/track/Widget.vue
+++ b/front/src/components/audio/track/Widget.vue
@@ -3,12 +3,9 @@
     <h3 class="ui header">
       <slot name="title"></slot>
     </h3>
-    <i @click="fetchData(previousPage)" :disabled="!previousPage" :class="['ui', {disabled: !previousPage}, 'circular', 'medium', 'angle up', 'icon']">
-    </i>
-    <i @click="fetchData(nextPage)" :disabled="!nextPage" :class="['ui', {disabled: !nextPage}, 'circular', 'medium', 'angle down', 'icon']">
-    </i>
-    <i @click="fetchData(url)" :class="['ui', 'circular', 'medium', 'refresh', 'icon']">
-    </i>
+    <button :disabled="!previousPage" @click="fetchData(previousPage)" :class="['ui', {disabled: !previousPage}, 'circular', 'icon', 'basic', 'button']"><i :class="['ui', 'angle up', 'icon']"></i></button>
+    <button :disabled="!nextPage" @click="fetchData(nextPage)" :class="['ui', {disabled: !nextPage}, 'circular', 'icon', 'basic', 'button']"><i :class="['ui', 'angle down', 'icon']"></i></button>
+    <button @click="fetchData(url)" :class="['ui', 'circular', 'icon', 'basic', 'button']"><i :class="['ui', 'refresh', 'icon']"></i></button>
     <div class="ui divided unstackable items">
       <div class="item" v-for="object in objects" :key="object.id">
         <div class="ui tiny image">
@@ -50,7 +47,7 @@
 </template>
 
 <script>
-import _ from 'lodash'
+import _ from '@/lodash'
 import axios from 'axios'
 import PlayButton from '@/components/audio/PlayButton'
 
@@ -112,7 +109,7 @@ export default {
 </script>
 
 <style scoped lang="scss">
-@import '../../../style/vendor/media';
+@import "../../../style/vendor/media";
 
 .play-overlay {
   position: absolute;
diff --git a/front/src/components/auth/Login.vue b/front/src/components/auth/Login.vue
index 88caa5afefccf12b0ac115613f45f94dec9046af..3bfba25e5bc78f0c6941f5aae3728249d54b42f0 100644
--- a/front/src/components/auth/Login.vue
+++ b/front/src/components/auth/Login.vue
@@ -1,6 +1,6 @@
 <template>
-  <div class="main pusher" v-title="labels.title">
-    <div class="ui vertical stripe segment">
+  <main class="main pusher" v-title="labels.title">
+    <section class="ui vertical stripe segment">
       <div class="ui small text container">
         <h2><translate>Log in to your Funkwhale account</translate></h2>
         <form class="ui form" @submit.prevent="submit()">
@@ -43,39 +43,44 @@
           </button>
         </form>
       </div>
-    </div>
-  </div>
+    </section>
+  </main>
 </template>
 
 <script>
-import PasswordInput from '@/components/forms/PasswordInput'
+import PasswordInput from "@/components/forms/PasswordInput"
 
 export default {
   props: {
-    next: {type: String, default: '/'}
+    next: { type: String, default: "/library" }
   },
   components: {
     PasswordInput
   },
-  data () {
+  data() {
     return {
       // We need to initialize the component with any
       // properties that will be used in it
       credentials: {
-        username: '',
-        password: ''
+        username: "",
+        password: ""
       },
-      error: '',
+      error: "",
       isLoading: false
     }
   },
-  mounted () {
+  created () {
+    if (this.$store.state.auth.authenticated) {
+      this.$router.push(this.next)
+    }
+  },
+  mounted() {
     this.$refs.username.focus()
   },
   computed: {
-    labels () {
-      let usernamePlaceholder = this.$gettext('Enter your username or email')
-      let title = this.$gettext('Log In')
+    labels() {
+      let usernamePlaceholder = this.$gettext("Enter your username or email")
+      let title = this.$gettext("Log In")
       return {
         usernamePlaceholder,
         title
@@ -83,30 +88,32 @@ export default {
     }
   },
   methods: {
-    submit () {
+    submit() {
       var self = this
       self.isLoading = true
-      this.error = ''
+      this.error = ""
       var credentials = {
         username: this.credentials.username,
         password: this.credentials.password
       }
-      this.$store.dispatch('auth/login', {
-        credentials,
-        next: '/library',
-        onError: error => {
-          if (error.response.status === 400) {
-            self.error = 'invalid_credentials'
-          } else {
-            self.error = 'unknown_error'
+      console.log('NEXT', this.next)
+      this.$store
+        .dispatch("auth/login", {
+          credentials,
+          next: this.next,
+          onError: error => {
+            if (error.response.status === 400) {
+              self.error = "invalid_credentials"
+            } else {
+              self.error = "unknown_error"
+            }
           }
-        }
-      }).then(e => {
-        self.isLoading = false
-      })
+        })
+        .then(e => {
+          self.isLoading = false
+        })
     }
   }
-
 }
 </script>
 
diff --git a/front/src/components/auth/Logout.vue b/front/src/components/auth/Logout.vue
index 5f60a9dbeb8aaee8554dbb5f9d08402a4ba322da..90495f5e0ed17fbb2485da7003a93d97a7bbf5a9 100644
--- a/front/src/components/auth/Logout.vue
+++ b/front/src/components/auth/Logout.vue
@@ -1,6 +1,6 @@
 <template>
-  <div class="main pusher" v-title="labels.title">
-    <div class="ui vertical stripe segment">
+  <main class="main pusher" v-title="labels.title">
+    <section class="ui vertical stripe segment">
       <div class="ui small text container">
         <h2>
           <translate>Are you sure you want to log out?</translate>
@@ -8,16 +8,16 @@
         <p v-translate="{username: $store.state.auth.username}">You are currently logged in as %{ username }</p>
         <button class="ui button" @click="$store.dispatch('auth/logout')"><translate>Yes, log me out!</translate></button>
       </div>
-    </div>
-  </div>
+    </section>
+  </main>
 </template>
 
 <script>
 export default {
   computed: {
-    labels () {
+    labels() {
       return {
-        title: this.$gettext('Log Out')
+        title: this.$gettext("Log Out")
       }
     }
   }
diff --git a/front/src/components/auth/Profile.vue b/front/src/components/auth/Profile.vue
index b480f7495d72d022f0f1ad82d6fcd226802d89e1..32dae5336f889faf919567ad535b1eeb29e99101 100644
--- a/front/src/components/auth/Profile.vue
+++ b/front/src/components/auth/Profile.vue
@@ -1,5 +1,5 @@
 <template>
-  <div class="main pusher" v-title="labels.usernameProfile">
+  <main class="main pusher" v-title="labels.usernameProfile">
     <div v-if="isLoading" class="ui vertical segment">
       <div :class="['ui', 'centered', 'active', 'inline', 'loader']"></div>
     </div>
@@ -7,7 +7,7 @@
       <div :class="['ui', 'head', 'vertical', 'center', 'aligned', 'stripe', 'segment']">
         <h2 class="ui center aligned icon header">
           <i v-if="!profile.avatar.square_crop" class="circular inverted user green icon"></i>
-          <img class="ui big circular image" v-else :src="$store.getters['instance/absoluteUrl'](profile.avatar.square_crop)" />
+          <img class="ui big circular image" v-else v-lazy="$store.getters['instance/absoluteUrl'](profile.avatar.square_crop)" />
           <div class="content">
             {{ profile.username }}
             <div class="sub header" v-translate="{date: signupDate}">Registered since %{ date }</div>
@@ -25,36 +25,37 @@
         </a>
       </div>
     </template>
-  </div>
+  </main>
 </template>
 
 <script>
-import {mapState} from 'vuex'
+import { mapState } from "vuex"
 
-const dateFormat = require('dateformat')
+const dateFormat = require("dateformat")
 
 export default {
-  props: ['username'],
-  created () {
-    this.$store.dispatch('auth/fetchProfile')
+  props: ["username"],
+  created() {
+    this.$store.dispatch("auth/fetchProfile")
   },
   computed: {
-
     ...mapState({
       profile: state => state.auth.profile
     }),
-    labels () {
-      let msg = this.$gettext('%{ username }\'s profile')
-      let usernameProfile = this.$gettextInterpolate(msg, {username: this.username})
+    labels() {
+      let msg = this.$gettext("%{ username }'s profile")
+      let usernameProfile = this.$gettextInterpolate(msg, {
+        username: this.username
+      })
       return {
         usernameProfile
       }
     },
-    signupDate () {
+    signupDate() {
       let d = new Date(this.profile.date_joined)
-      return dateFormat(d, 'longDate')
+      return dateFormat(d, "longDate")
     },
-    isLoading () {
+    isLoading() {
       return !this.profile
     }
   }
diff --git a/front/src/components/auth/Settings.vue b/front/src/components/auth/Settings.vue
index ec3b8f994d2abfdebf845e07c47063bc886c2dae..c417f9fbc021a9afe712cab87dac7f0b66bc6c91 100644
--- a/front/src/components/auth/Settings.vue
+++ b/front/src/components/auth/Settings.vue
@@ -1,7 +1,7 @@
 <template>
-  <div class="main pusher" v-title="labels.title">
+  <main class="main pusher" v-title="labels.title">
     <div class="ui vertical stripe segment">
-      <div class="ui small text container">
+      <section class="ui small text container">
         <h2 class="ui header">
           <translate>Account settings</translate>
         </h2>
@@ -28,9 +28,9 @@
             <translate>Update settings</translate>
           </button>
         </form>
-      </div>
+      </section>
       <div class="ui hidden divider"></div>
-      <div class="ui small text container">
+      <section class="ui small text container">
         <h2 class="ui header">
           <translate>Avatar</translate>
         </h2>
@@ -53,7 +53,7 @@
             </div>
             <div class="ui six wide column">
               <h3 class="ui header"><translate>Current avatar</translate></h3>
-              <img class="ui circular image" v-if="currentAvatar && currentAvatar.square_crop" :src="$store.getters['instance/absoluteUrl'](currentAvatar.medium_square_crop)" />
+              <img class="ui circular image" v-if="currentAvatar && currentAvatar.square_crop" v-lazy="$store.getters['instance/absoluteUrl'](currentAvatar.medium_square_crop)" />
               <div class="ui hidden divider"></div>
               <button @click="removeAvatar" v-if="currentAvatar && currentAvatar.square_crop" :class="['ui', {'loading': isLoadingAvatar}, ,'yellow', 'button']">
                 <translate>Remove avatar</translate>
@@ -61,9 +61,9 @@
             </div>
           </div>
         </div>
-      </div>
+      </section>
       <div class="ui hidden divider"></div>
-      <div class="ui small text container">
+      <section class="ui small text container">
         <h2 class="ui header">
           <translate>Change my password</translate>
         </h2>
@@ -107,18 +107,18 @@
         </form>
         <div class="ui hidden divider" />
         <subsonic-token-form />
-      </div>
+      </section>
     </div>
-  </div>
+  </main>
 </template>
 
 <script>
-import $ from 'jquery'
-import axios from 'axios'
-import logger from '@/logging'
-import PasswordInput from '@/components/forms/PasswordInput'
-import SubsonicTokenForm from '@/components/auth/SubsonicTokenForm'
-import TranslationsMixin from '@/components/mixins/Translations'
+import $ from "jquery"
+import axios from "axios"
+import logger from "@/logging"
+import PasswordInput from "@/components/forms/PasswordInput"
+import SubsonicTokenForm from "@/components/auth/SubsonicTokenForm"
+import TranslationsMixin from "@/components/mixins/Translations"
 
 export default {
   mixins: [TranslationsMixin],
@@ -126,14 +126,14 @@ export default {
     PasswordInput,
     SubsonicTokenForm
   },
-  data () {
+  data() {
     let d = {
       // We need to initialize the component with any
       // properties that will be used in it
-      old_password: '',
-      new_password: '',
+      old_password: "",
+      new_password: "",
       currentAvatar: this.$store.state.auth.profile.avatar,
-      passwordError: '',
+      passwordError: "",
       isLoading: false,
       isLoadingAvatar: false,
       avatarErrors: [],
@@ -141,12 +141,12 @@ export default {
       settings: {
         success: false,
         errors: [],
-        order: ['privacy_level'],
+        order: ["privacy_level"],
         fields: {
-          'privacy_level': {
-            type: 'dropdown',
+          privacy_level: {
+            type: "dropdown",
             initial: this.$store.state.auth.profile.privacy_level,
-            choices: ['me', 'instance']
+            choices: ["me", "instance"]
           }
         }
       }
@@ -157,105 +157,120 @@ export default {
     })
     return d
   },
-  mounted () {
-    $('select.dropdown').dropdown()
+  mounted() {
+    $("select.dropdown").dropdown()
   },
   methods: {
-    submitSettings () {
+    submitSettings() {
       this.settings.success = false
       this.settings.errors = []
       let self = this
       let payload = this.settingsValues
       let url = `users/users/${this.$store.state.auth.username}/`
-      return axios.patch(url, payload).then(response => {
-        logger.default.info('Updated settings successfully')
-        self.settings.success = true
-      }, error => {
-        logger.default.error('Error while updating settings')
-        self.isLoading = false
-        self.settings.errors = error.backendErrors
-      })
+      return axios.patch(url, payload).then(
+        response => {
+          logger.default.info("Updated settings successfully")
+          self.settings.success = true
+          return axios.get("users/users/me/").then(response => {
+            self.$store.dispatch("auth/updateProfile", response.data)
+          })
+        },
+        error => {
+          logger.default.error("Error while updating settings")
+          self.isLoading = false
+          self.settings.errors = error.backendErrors
+        }
+      )
     },
-    submitAvatar () {
+    submitAvatar() {
       this.isLoadingAvatar = true
       this.avatarErrors = []
       let self = this
       this.avatar = this.$refs.avatar.files[0]
       let formData = new FormData()
-      formData.append('avatar', this.avatar)
-      axios.patch(
-        `users/users/${this.$store.state.auth.username}/`,
-        formData,
-        {
+      formData.append("avatar", this.avatar)
+      axios
+        .patch(`users/users/${this.$store.state.auth.username}/`, formData, {
           headers: {
-            'Content-Type': 'multipart/form-data'
+            "Content-Type": "multipart/form-data"
           }
-        }
-      ).then(response => {
-        this.isLoadingAvatar = false
-        self.currentAvatar = response.data.avatar
-        self.$store.commit('auth/avatar', self.currentAvatar)
-      }, error => {
-        self.isLoadingAvatar = false
-        self.avatarErrors = error.backendErrors
-      })
+        })
+        .then(
+          response => {
+            this.isLoadingAvatar = false
+            self.currentAvatar = response.data.avatar
+            self.$store.commit("auth/avatar", self.currentAvatar)
+          },
+          error => {
+            self.isLoadingAvatar = false
+            self.avatarErrors = error.backendErrors
+          }
+        )
     },
-    removeAvatar () {
+    removeAvatar() {
       this.isLoadingAvatar = true
       let self = this
       this.avatar = null
-      axios.patch(
-        `users/users/${this.$store.state.auth.username}/`,
-        {avatar: null}
-      ).then(response => {
-        this.isLoadingAvatar = false
-        self.currentAvatar = {}
-        self.$store.commit('auth/avatar', self.currentAvatar)
-      }, error => {
-        self.isLoadingAvatar = false
-        self.avatarErrors = error.backendErrors
-      })
+      axios
+        .patch(`users/users/${this.$store.state.auth.username}/`, {
+          avatar: null
+        })
+        .then(
+          response => {
+            this.isLoadingAvatar = false
+            self.currentAvatar = {}
+            self.$store.commit("auth/avatar", self.currentAvatar)
+          },
+          error => {
+            self.isLoadingAvatar = false
+            self.avatarErrors = error.backendErrors
+          }
+        )
     },
-    submitPassword () {
+    submitPassword() {
       var self = this
       self.isLoading = true
-      this.error = ''
+      this.error = ""
       var credentials = {
         old_password: this.old_password,
         new_password1: this.new_password,
         new_password2: this.new_password
       }
-      let url = 'auth/registration/change-password/'
-      return axios.post(url, credentials).then(response => {
-        logger.default.info('Password successfully changed')
-        self.$router.push({
-          name: 'profile',
-          params: {
-            username: self.$store.state.auth.username
-          }})
-      }, error => {
-        if (error.response.status === 400) {
-          self.passwordError = 'invalid_credentials'
-        } else {
-          self.passwordError = 'unknown_error'
+      let url = "auth/registration/change-password/"
+      return axios.post(url, credentials).then(
+        response => {
+          logger.default.info("Password successfully changed")
+          self.$router.push({
+            name: "profile",
+            params: {
+              username: self.$store.state.auth.username
+            }
+          })
+        },
+        error => {
+          if (error.response.status === 400) {
+            self.passwordError = "invalid_credentials"
+          } else {
+            self.passwordError = "unknown_error"
+          }
+          self.isLoading = false
         }
-        self.isLoading = false
-      })
+      )
     }
   },
   computed: {
-    labels () {
+    labels() {
       return {
-        title: this.$gettext('Account Settings')
+        title: this.$gettext("Account Settings")
       }
     },
-    orderedSettingsFields () {
+    orderedSettingsFields() {
       let self = this
       return this.settings.order.map(id => {
         return self.settings.fields[id]
       })
     },
-    settingsValues () {
+    settingsValues() {
       let self = this
       let s = {}
       this.settings.order.forEach(setting => {
@@ -265,7 +280,6 @@ export default {
       return s
     }
   }
-
 }
 </script>
 
diff --git a/front/src/components/auth/Signup.vue b/front/src/components/auth/Signup.vue
index 8d2e80470b63d1a651e383bcf546825a1f01cacb..35bb2f6eb5531464fb75eabe5d5241952fa6838c 100644
--- a/front/src/components/auth/Signup.vue
+++ b/front/src/components/auth/Signup.vue
@@ -1,6 +1,6 @@
 <template>
-  <div class="main pusher" v-title="labels.title">
-    <div class="ui vertical stripe segment">
+  <main class="main pusher" v-title="labels.title">
+    <section class="ui vertical stripe segment">
       <div class="ui small text container">
         <h2><translate>Create a funkwhale account</translate></h2>
         <form
@@ -39,11 +39,10 @@
             <label><translate>Password</translate></label>
             <password-input v-model="password" />
           </div>
-          <div class="field">
-            <label v-if="!$store.state.instance.settings.users.registration_enabled.value"><translate>Invitation code</translate></label>
-            <label v-else><translate>Invitation code (optional)</translate></label>
+          <div class="field" v-if="!$store.state.instance.settings.users.registration_enabled.value">
+            <label><translate>Invitation code</translate></label>
             <input
-            :required="!$store.state.instance.settings.users.registration_enabled.value"
+            required
             type="text"
             :placeholder="labels.placeholder"
             v-model="invitation">
@@ -53,49 +52,51 @@
           </button>
         </form>
       </div>
-    </div>
-  </div>
+    </section>
+  </main>
 </template>
 
 <script>
-import axios from 'axios'
-import logger from '@/logging'
+import axios from "axios"
+import logger from "@/logging"
 
-import PasswordInput from '@/components/forms/PasswordInput'
+import PasswordInput from "@/components/forms/PasswordInput"
 
 export default {
   props: {
-    defaultInvitation: {type: String, required: false, default: null},
-    next: {type: String, default: '/'}
+    defaultInvitation: { type: String, required: false, default: null },
+    next: { type: String, default: "/" }
   },
   components: {
     PasswordInput
   },
-  data () {
+  data() {
     return {
-      username: '',
-      email: '',
-      password: '',
+      username: "",
+      email: "",
+      password: "",
       isLoadingInstanceSetting: true,
       errors: [],
       isLoading: false,
       invitation: this.defaultInvitation
     }
   },
-  created () {
+  created() {
     let self = this
-    this.$store.dispatch('instance/fetchSettings', {
-      callback: function () {
+    this.$store.dispatch("instance/fetchSettings", {
+      callback: function() {
         self.isLoadingInstanceSetting = false
       }
     })
   },
   computed: {
-    labels () {
-      let title = this.$gettext('Sign Up')
-      let placeholder = this.$gettext('Enter your invitation code (case insensitive)')
-      let usernamePlaceholder = this.$gettext('Enter your username')
-      let emailPlaceholder = this.$gettext('Enter your email')
+    labels() {
+      let title = this.$gettext("Sign Up")
+      let placeholder = this.$gettext(
+        "Enter your invitation code (case insensitive)"
+      )
+      let usernamePlaceholder = this.$gettext("Enter your username")
+      let emailPlaceholder = this.$gettext("Enter your email")
       return {
         title,
         usernamePlaceholder,
@@ -105,7 +106,7 @@ export default {
     }
   },
   methods: {
-    submit () {
+    submit() {
       var self = this
       self.isLoading = true
       this.errors = []
@@ -116,17 +117,21 @@ export default {
         email: this.email,
         invitation: this.invitation
       }
-      return axios.post('auth/registration/', payload).then(response => {
-        logger.default.info('Successfully created account')
-        self.$router.push({
-          name: 'profile',
-          params: {
-            username: this.username
-          }})
-      }, error => {
-        self.errors = error.backendErrors
-        self.isLoading = false
-      })
+      return axios.post("auth/registration/", payload).then(
+        response => {
+          logger.default.info("Successfully created account")
+          self.$router.push({
+            name: "profile",
+            params: {
+              username: this.username
+            }
+          })
+        },
+        error => {
+          self.errors = error.backendErrors
+          self.isLoading = false
+        }
+      )
     }
   }
 }
diff --git a/front/src/components/common/ActionTable.vue b/front/src/components/common/ActionTable.vue
index e8dec339aaa85d85172af1da44c7c11d8b4dc7b0..d6d19076c075dff427b3b51f2e67aa5681852104 100644
--- a/front/src/components/common/ActionTable.vue
+++ b/front/src/components/common/ActionTable.vue
@@ -1,9 +1,22 @@
 <template>
   <table class="ui compact very basic single line unstackable table">
     <thead>
-      <tr v-if="actions.length > 0">
+      <tr>
         <th colspan="1000">
-          <div class="ui small form">
+          <div v-if="refreshable" class="right floated">
+            <span v-if="needsRefresh">
+              <translate>Content have been updated, click refresh to see up-to-date content</translate>
+            </span>
+            <button
+              @click="$emit('refresh')"
+              class="ui basic icon button"
+              :title="labels.refresh"
+              :aria-label="labels.refresh">
+              <i class="refresh icon"></i>
+            </button>
+          </div>
+
+          <div class="ui small left floated form" v-if="actionUrl && actions.length > 0">
             <div class="ui inline fields">
               <div class="field">
                 <label><translate>Actions</translate></label>
@@ -14,14 +27,8 @@
                 </select>
               </div>
               <div class="field">
-                <div
-                  v-if="!selectAll"
-                  @click="launchAction"
-                  :disabled="checked.length === 0"
-                  :class="['ui', {disabled: checked.length === 0}, {'loading': actionLoading}, 'button']">
-                  <translate>Go</translate></div>
                 <dangerous-button
-                  v-else :class="['ui', {disabled: checked.length === 0}, {'loading': actionLoading}, 'button']"
+                  v-if="selectAll || currentAction.isDangerous" :class="['ui', {disabled: checked.length === 0}, {'loading': actionLoading}, 'button']"
                   confirm-color="green"
                   color=""
                   @confirm="launchAction">
@@ -29,17 +36,23 @@
                   <p slot="modal-header">
                     <translate
                       key="1"
-                      :translate-n="objectsData.count"
-                      :translate-params="{count: objectsData.count, action: currentActionName}"
+                      :translate-n="checked.length"
+                      :translate-params="{count: checked.length, action: currentActionName}"
                       translate-plural="Do you want to launch %{ action } on %{ count } elements?">
                       Do you want to launch %{ action } on %{ count } element?
                     </translate>
                   </p>
                   <p slot="modal-content">
-                    <translate>This may affect a lot of elements, please double check this is really what you want.</translate>
+                    <translate>This may affect a lot of elements or have irreversible consequences, please double check this is really what you want.</translate>
                   </p>
                   <p slot="modal-confirm"><translate>Launch</translate></p>
                 </dangerous-button>
+                <div
+                  v-else
+                  @click="launchAction"
+                  :disabled="checked.length === 0"
+                  :class="['ui', {disabled: checked.length === 0}, {'loading': actionLoading}, 'button']">
+                  <translate>Go</translate></div>
               </div>
               <div class="count field">
                 <translate
@@ -130,8 +143,10 @@ import axios from 'axios'
 
 export default {
   props: {
-    actionUrl: {type: String, required: true},
-    idField: {type: String, required: true, default: 'id'},
+    actionUrl: {type: String, required: false, default: null},
+    idField: {type: String, required: false, default: 'id'},
+    refreshable: {type: Boolean, required: false, default: false},
+    needsRefresh: {type: Boolean, required: false, default: false},
     objectsData: {type: Object, required: true},
     actions: {type: Array, required: true, default: () => { return [] }},
     filters: {type: Object, required: false, default: () => { return {} }},
@@ -244,13 +259,18 @@ export default {
       let self = this
       return this.objectsData.results.map((o) => {
         let custom = self.customObjects.filter((co) => {
-          return self.getId(co) == self.getId(o)
+          return self.getId(co) === self.getId(o)
         })[0]
         if (custom) {
           return custom
         }
         return o
       })
+    },
+    labels () {
+      return {
+        refresh: this.$gettext('Refresh table content')
+      }
     }
   },
   watch: {
diff --git a/front/src/components/common/AjaxButton.vue b/front/src/components/common/AjaxButton.vue
new file mode 100644
index 0000000000000000000000000000000000000000..024c98515bf71bd5bc951284f28a8436d8ab5fc5
--- /dev/null
+++ b/front/src/components/common/AjaxButton.vue
@@ -0,0 +1,33 @@
+<template>
+  <button @click="ajaxCall" :class="['ui', {loading: isLoading}, 'button']">
+    <slot></slot>
+  </button>
+</template>
+<script>
+import axios from 'axios'
+
+export default {
+  props: {
+    url: {type: String, required: true},
+    method: {type: String, required: true},
+  },
+  data () {
+    return {
+      isLoading: false,
+    }
+  },
+  methods: {
+    ajaxCall () {
+      var self = this
+      this.isLoading = true
+      axios[this.method](this.url).then(response => {
+        self.$emit('action-done', response.data)
+        self.isLoading = false
+      }, error => {
+        self.isLoading = false
+        self.$emit('action-error', error)
+      })
+    }
+  }
+}
+</script>
diff --git a/front/src/components/common/Tooltip.vue b/front/src/components/common/Tooltip.vue
new file mode 100644
index 0000000000000000000000000000000000000000..d9ba4c13cd9fbe4312c758cc6566d6734878bdd5
--- /dev/null
+++ b/front/src/components/common/Tooltip.vue
@@ -0,0 +1,12 @@
+<template>
+  <span  class="tooltip" :data-tooltip="content"><i class="question circle icon"></i></span>
+</template>
+
+<script>
+
+export default {
+  props: {
+    content: {type: String, required: true},
+  }
+}
+</script>
diff --git a/front/src/components/common/UserLink.vue b/front/src/components/common/UserLink.vue
index 0ae4d4ec8f2f544506bfd0adab65457ecfd5d6a1..194fdbe08e046c55c47fd96cdc5063ea1a024544 100644
--- a/front/src/components/common/UserLink.vue
+++ b/front/src/components/common/UserLink.vue
@@ -3,7 +3,7 @@
     <img
       class="ui tiny circular avatar"
       v-if="user.avatar && user.avatar.small_square_crop"
-      :src="$store.getters['instance/absoluteUrl'](user.avatar.small_square_crop)" />
+      v-lazy="$store.getters['instance/absoluteUrl'](user.avatar.small_square_crop)" />
     <span v-else :style="defaultAvatarStyle" class="ui circular label">{{ user.username[0]}}</span>
     &nbsp;@{{ user.username }}
   </span>
diff --git a/front/src/components/discussion/Comment.vue b/front/src/components/discussion/Comment.vue
deleted file mode 100644
index ee9ce9b1f84c851b0024d243a740cb3807eee5ae..0000000000000000000000000000000000000000
--- a/front/src/components/discussion/Comment.vue
+++ /dev/null
@@ -1,53 +0,0 @@
-<template>
-  <div class="comment">
-    <div class="content">
-      <a class="author">{{ user.username }}</a>
-      <div class="metadata">
-        <div class="date"><human-date :date="date"></human-date></div>
-      </div>
-      <div class="text" v-html="comment"></div>
-      </div>
-      <div class="actions">
-        <span
-          @click="collapsed = false"
-          v-if="truncated && collapsed"
-          class="expand">
-          <translate>Expand</translate>
-        </span>
-        <span
-          @click="collapsed = true"
-          v-if="truncated && !collapsed"
-          class="collapse">
-          <translate>Collapse</translate>
-        </span>
-      </div>
-    </div>
-  </div>
-</template>
-<script>
-  export default {
-    props: {
-      user: {type: Object, required: true},
-      date: {required: true},
-      content: {type: String, required: true}
-    },
-    data () {
-      return {
-        collapsed: true,
-        length: 50
-      }
-    },
-    computed: {
-      comment () {
-        let text = this.content
-        if (this.collapsed) {
-          text = this.$options.filters.truncate(text, this.length)
-        }
-        return this.$options.filters.markdown(text)
-      },
-      truncated () {
-        return this.content.length > this.length
-      }
-    }
-  }
-</script>
diff --git a/front/src/components/favorites/List.vue b/front/src/components/favorites/List.vue
index f178e41b38523558e17d25317a6d2d9eeb0fc9b6..8015b96762a634e85d4815d01e13b45fce908341 100644
--- a/front/src/components/favorites/List.vue
+++ b/front/src/components/favorites/List.vue
@@ -1,9 +1,9 @@
 <template>
-  <div class="main pusher" v-title="labels.title">
-    <div class="ui vertical center aligned stripe segment">
+  <main class="main pusher" v-title="labels.title">
+    <section class="ui vertical center aligned stripe segment">
       <div :class="['ui', {'active': isLoading}, 'inverted', 'dimmer']">
         <div class="ui text loader">
-          <translate>Loading your favorites...</translate>
+          <translate>Loading your favorites…</translate>
         </div>
       </div>
       <h2 v-if="results" class="ui center aligned icon header">
@@ -16,8 +16,8 @@
         </translate>
       </h2>
       <radio-button type="favorites"></radio-button>
-    </div>
-    <div class="ui vertical stripe segment">
+    </section>
+    <section class="ui vertical stripe segment">
       <div :class="['ui', {'loading': isLoading}, 'form']">
         <div class="fields">
           <div class="field">
@@ -29,7 +29,7 @@
             </select>
           </div>
           <div class="field">
-            <label><translate>Ordering direction</translate></label>
+            <label><translate>Order</translate></label>
             <select class="ui dropdown" v-model="orderingDirection">
               <option value="+"><translate>Ascending</translate></option>
               <option value="-"><translate>Descending</translate></option>
@@ -56,21 +56,21 @@
           :total="results.count"
           ></pagination>
       </div>
-    </div>
-  </div>
+    </section>
+  </main>
 </template>
 
 <script>
-import axios from 'axios'
-import $ from 'jquery'
-import logger from '@/logging'
-import TrackTable from '@/components/audio/track/Table'
-import RadioButton from '@/components/radios/Button'
-import Pagination from '@/components/Pagination'
-import OrderingMixin from '@/components/mixins/Ordering'
-import PaginationMixin from '@/components/mixins/Pagination'
-import TranslationsMixin from '@/components/mixins/Translations'
-const FAVORITES_URL = 'tracks/'
+import axios from "axios"
+import $ from "jquery"
+import logger from "@/logging"
+import TrackTable from "@/components/audio/track/Table"
+import RadioButton from "@/components/radios/Button"
+import Pagination from "@/components/Pagination"
+import OrderingMixin from "@/components/mixins/Ordering"
+import PaginationMixin from "@/components/mixins/Pagination"
+import TranslationsMixin from "@/components/mixins/Translations"
+const FAVORITES_URL = "tracks/"
 
 export default {
   mixins: [OrderingMixin, PaginationMixin, TranslationsMixin],
@@ -79,8 +79,10 @@ export default {
     RadioButton,
     Pagination
   },
-  data () {
-    let defaultOrdering = this.getOrderingFromString(this.defaultOrdering || '-creation_date')
+  data() {
+    let defaultOrdering = this.getOrderingFromString(
+      this.defaultOrdering || "-creation_date"
+    )
     return {
       results: null,
       isLoading: false,
@@ -88,31 +90,34 @@ export default {
       previousLink: null,
       page: parseInt(this.defaultPage),
       paginateBy: parseInt(this.defaultPaginateBy || 25),
-      orderingDirection: defaultOrdering.direction || '+',
+      orderingDirection: defaultOrdering.direction || "+",
       ordering: defaultOrdering.field,
       orderingOptions: [
-        ['creation_date', 'creation_date'],
-        ['title', 'track_title'],
-        ['album__title', 'album_title'],
-        ['artist__name', 'artist_name']
+        ["creation_date", "creation_date"],
+        ["title", "track_title"],
+        ["album__title", "album_title"],
+        ["artist__name", "artist_name"]
       ]
     }
   },
-  created () {
+  created() {
+    if (!this.$store.state.auth.authenticated) {
+      this.$router.push({name: 'login', query: {next: this.$router.currentRoute.fullPath}})
+    }
     this.fetchFavorites(FAVORITES_URL)
   },
-  mounted () {
-    $('.ui.dropdown').dropdown()
+  mounted() {
+    $(".ui.dropdown").dropdown()
   },
   computed: {
-    labels () {
+    labels() {
       return {
-        title: this.$gettext('Your Favorites')
+        title: this.$gettext("Your Favorites")
       }
     }
   },
   methods: {
-    updateQueryString: function () {
+    updateQueryString: function() {
       this.$router.replace({
         query: {
           page: this.page,
@@ -121,42 +126,42 @@ export default {
         }
       })
     },
-    fetchFavorites (url) {
+    fetchFavorites(url) {
       var self = this
       this.isLoading = true
       let params = {
-        favorites: 'true',
+        favorites: "true",
         page: this.page,
         page_size: this.paginateBy,
         ordering: this.getOrderingAsString()
       }
-      logger.default.time('Loading user favorites')
-      axios.get(url, {params: params}).then((response) => {
+      logger.default.time("Loading user favorites")
+      axios.get(url, { params: params }).then(response => {
         self.results = response.data
         self.nextLink = response.data.next
         self.previousLink = response.data.previous
-        self.results.results.forEach((track) => {
-          self.$store.commit('favorites/track', {id: track.id, value: true})
+        self.results.results.forEach(track => {
+          self.$store.commit("favorites/track", { id: track.id, value: true })
         })
-        logger.default.timeEnd('Loading user favorites')
+        logger.default.timeEnd("Loading user favorites")
         self.isLoading = false
       })
     },
-    selectPage: function (page) {
+    selectPage: function(page) {
       this.page = page
     }
   },
   watch: {
-    page: function () {
+    page: function() {
       this.updateQueryString()
     },
-    paginateBy: function () {
+    paginateBy: function() {
       this.updateQueryString()
     },
-    orderingDirection: function () {
+    orderingDirection: function() {
       this.updateQueryString()
     },
-    ordering: function () {
+    ordering: function() {
       this.updateQueryString()
     }
   }
diff --git a/front/src/components/favorites/TrackFavoriteIcon.vue b/front/src/components/favorites/TrackFavoriteIcon.vue
index 88402159c934b06ca7b6c5514ed9babbd5ef1b96..690dab21b67f0f2e742ed236564331dbfabfcfca 100644
--- a/front/src/components/favorites/TrackFavoriteIcon.vue
+++ b/front/src/components/favorites/TrackFavoriteIcon.vue
@@ -4,7 +4,14 @@
     <translate v-if="isFavorite">In favorites</translate>
     <translate v-else>Add to favorites</translate>
   </button>
-  <i v-else @click="$store.dispatch('favorites/toggle', track.id)" :class="['favorite-icon', 'heart', {'pink': isFavorite}, {'favorited': isFavorite}, 'link', 'icon']" :title="title"></i>
+  <button
+    v-else
+    @click="$store.dispatch('favorites/toggle', track.id)"
+    :class="['ui', 'favorite-icon', {'pink': isFavorite}, {'favorited': isFavorite}, 'basic', 'circular', 'icon', 'really', 'button']"
+    :aria-label="title"
+    :title="title">
+    <i :class="['heart', {'pink': isFavorite}, 'basic', 'icon']"></i>
+  </button>
 </template>
 
 <script>
diff --git a/front/src/components/federation/LibraryWidget.vue b/front/src/components/federation/LibraryWidget.vue
index ff73bb7a892d77d09969100e54e7137b6d15e0c4..cf33b0add400791c0f7cedaa16fbf3acfc0025af 100644
--- a/front/src/components/federation/LibraryWidget.vue
+++ b/front/src/components/federation/LibraryWidget.vue
@@ -5,9 +5,9 @@
     </h3>
     <p v-if="!isLoading && libraries.length > 0" class="ui subtitle"><slot name="subtitle"></slot></p>
     <p v-if="!isLoading && libraries.length === 0" class="ui subtitle"><translate>No matching library.</translate></p>
-    <i @click="fetchData(previousPage)" :disabled="!previousPage" :class="['ui', {disabled: !previousPage}, 'circular', 'medium', 'angle left', 'icon']">
+    <i @click="fetchData(previousPage)" :disabled="!previousPage" :class="['ui', {disabled: !previousPage}, 'circular', 'angle left', 'icon']">
     </i>
-    <i @click="fetchData(nextPage)" :disabled="!nextPage" :class="['ui', {disabled: !nextPage}, 'circular', 'medium', 'angle right', 'icon']">
+    <i @click="fetchData(nextPage)" :disabled="!nextPage" :class="['ui', {disabled: !nextPage}, 'circular', 'angle right', 'icon']">
     </i>
     <div class="ui hidden divider"></div>
     <div class="ui three cards">
@@ -26,7 +26,7 @@
 </template>
 
 <script>
-import _ from 'lodash'
+import _ from '@/lodash'
 import axios from 'axios'
 import LibraryCard from '@/views/content/remote/Card'
 
@@ -62,6 +62,7 @@ export default {
         self.nextPage = response.data.next
         self.isLoading = false
         self.libraries = response.data.results
+        self.$emit('loaded', self.libraries)
       }, error => {
         self.isLoading = false
         self.errors = error.backendErrors
diff --git a/front/src/components/globals.js b/front/src/components/globals.js
index f3bb383f06fdea38b185083ad5945ba376c5ea43..99e57095c0735a96c55d99e8fd00827203eaa929 100644
--- a/front/src/components/globals.js
+++ b/front/src/components/globals.js
@@ -36,4 +36,13 @@ import CopyInput from '@/components/common/CopyInput'
 
 Vue.component('copy-input', CopyInput)
 
+import AjaxButton from '@/components/common/AjaxButton'
+
+Vue.component('ajax-button', AjaxButton)
+
+import Tooltip from '@/components/common/Tooltip'
+
+Vue.component('tooltip', Tooltip)
+
+
 export default {}
diff --git a/front/src/components/instance/Stats.vue b/front/src/components/instance/Stats.vue
index bb23b617c29cc43d3ef8484866d264c23068d026..78632f6d23fa38702d1edefd78527bfd2d762f22 100644
--- a/front/src/components/instance/Stats.vue
+++ b/front/src/components/instance/Stats.vue
@@ -61,7 +61,7 @@
 </template>
 
 <script>
-import _ from 'lodash'
+import _ from '@/lodash'
 import axios from 'axios'
 import logger from '@/logging'
 
diff --git a/front/src/components/library/Album.vue b/front/src/components/library/Album.vue
index 03d83e064a509203515c5ec998b746c985ebe989..ba354914e04e354aa95c54dfaf5b0c404b66920a 100644
--- a/front/src/components/library/Album.vue
+++ b/front/src/components/library/Album.vue
@@ -1,10 +1,10 @@
 <template>
-  <div>
+  <main>
     <div v-if="isLoading" class="ui vertical segment" v-title="">
       <div :class="['ui', 'centered', 'active', 'inline', 'loader']"></div>
     </div>
     <template v-if="album">
-      <div :class="['ui', 'head', {'with-background': album.cover.original}, 'vertical', 'center', 'aligned', 'stripe', 'segment']" :style="headerStyle" v-title="album.title">
+      <section :class="['ui', 'head', {'with-background': album.cover.original}, 'vertical', 'center', 'aligned', 'stripe', 'segment']" :style="headerStyle" v-title="album.title">
         <div class="segment-content">
           <h2 class="ui center aligned icon header">
             <i class="circular inverted sound yellow icon"></i>
@@ -30,92 +30,164 @@
           </play-button>
 
           <a :href="wikipediaUrl" target="_blank" class="ui button">
-            <i class="wikipedia icon"></i>
+            <i class="wikipedia w icon"></i>
             <translate>Search on Wikipedia</translate>
           </a>
-          <a :href="musicbrainzUrl" target="_blank" class="ui button">
+          <a v-if="musicbrainzUrl" :href="musicbrainzUrl" target="_blank" class="ui button">
             <i class="external icon"></i>
             <translate>View on MusicBrainz</translate>
           </a>
+          <template v-if="publicLibraries.length > 0">
+            <button
+              @click="showEmbedModal = !showEmbedModal"
+              class="ui button">
+              <i class="code icon"></i>
+              <translate>Embed</translate>
+            </button>
+            <modal :show.sync="showEmbedModal">
+              <div class="header">
+                <translate>Embed this album on your website</translate>
+              </div>
+              <div class="content">
+                <div class="description">
+                  <embed-wizard type="album" :id="album.id" />
+
+                </div>
+              </div>
+              <div class="actions">
+                <div class="ui deny button">
+                  <translate>Cancel</translate>
+                </div>
+              </div>
+            </modal>
+          </template>
         </div>
-      </div>
-      <div class="ui vertical stripe segment">
-        <h2>
-          <translate>Tracks</translate>
-        </h2>
-        <track-table v-if="album" :artist="album.artist" :display-position="true" :tracks="album.tracks"></track-table>
-      </div>
-      <div class="ui vertical stripe segment">
+      </section>
+      <template v-if="discs && discs.length > 1">
+        <section v-for="(tracks, disc_number) in discs" class="ui vertical stripe segment">
+          <translate
+            tag="h2"
+            class="left floated"
+            :translate-params="{number: disc_number + 1}"
+          >Volume %{ number }</translate>
+          <play-button class="right floated orange" :tracks="tracks">
+            <translate>Play all</translate>
+          </play-button>
+          <track-table :artist="album.artist" :display-position="true" :tracks="tracks"></track-table>
+        </section>
+      </template>
+      <template v-else>
+        <section class="ui vertical stripe segment">
+          <h2>
+            <translate>Tracks</translate>
+          </h2>
+          <track-table v-if="album" :artist="album.artist" :display-position="true" :tracks="album.tracks"></track-table>
+        </section>
+      </template>
+      <section class="ui vertical stripe segment">
         <h2>
           <translate>User libraries</translate>
         </h2>
-        <library-widget :url="'albums/' + id + '/libraries/'">
+        <library-widget @loaded="libraries = $event" :url="'albums/' + id + '/libraries/'">
           <translate slot="subtitle">This album is present in the following libraries:</translate>
         </library-widget>
-      </div>
+      </section>
     </template>
-  </div>
+  </main>
 </template>
 
 <script>
-import axios from 'axios'
-import logger from '@/logging'
-import backend from '@/audio/backend'
-import PlayButton from '@/components/audio/PlayButton'
-import TrackTable from '@/components/audio/track/Table'
-import LibraryWidget from '@/components/federation/LibraryWidget'
+import axios from "axios"
+import logger from "@/logging"
+import backend from "@/audio/backend"
+import PlayButton from "@/components/audio/PlayButton"
+import TrackTable from "@/components/audio/track/Table"
+import LibraryWidget from "@/components/federation/LibraryWidget"
+import EmbedWizard from "@/components/audio/EmbedWizard"
+import Modal from '@/components/semantic/Modal'
 
-const FETCH_URL = 'albums/'
+const FETCH_URL = "albums/"
+
+function groupByDisc(acc, track) {
+  var dn = track.disc_number - 1
+  if (dn < 0) dn = 0
+  if (acc[dn] == undefined) {
+    acc.push([track])
+  } else {
+    acc[dn].push(track)
+  }
+  return acc
+}
 
 export default {
-  props: ['id'],
+  props: ["id"],
   components: {
     PlayButton,
     TrackTable,
-    LibraryWidget
+    LibraryWidget,
+    EmbedWizard,
+    Modal
   },
-  data () {
+  data() {
     return {
       isLoading: true,
-      album: null
+      album: null,
+      discs: [],
+      libraries: [],
+      showEmbedModal: false
     }
   },
-  created () {
+  created() {
     this.fetchData()
   },
   methods: {
-    fetchData () {
+    fetchData() {
       var self = this
       this.isLoading = true
-      let url = FETCH_URL + this.id + '/'
+      let url = FETCH_URL + this.id + "/"
       logger.default.debug('Fetching album "' + this.id + '"')
-      axios.get(url).then((response) => {
+      axios.get(url).then(response => {
         self.album = backend.Album.clean(response.data)
+        self.discs = self.album.tracks.reduce(groupByDisc, [])
         self.isLoading = false
       })
     }
   },
   computed: {
-    labels () {
+    labels() {
       return {
-        title: this.$gettext('Album')
+        title: this.$gettext("Album")
       }
     },
-    wikipediaUrl () {
-      return 'https://en.wikipedia.org/w/index.php?search=' + this.album.title + ' ' + this.album.artist.name
+    publicLibraries () {
+      return this.libraries.filter(l => {
+        return l.privacy_level === 'everyone'
+      })
+    },
+    wikipediaUrl() {
+      return (
+        "https://en.wikipedia.org/w/index.php?search=" +
+        encodeURI(this.album.title + " " + this.album.artist.name)
+      )
     },
-    musicbrainzUrl () {
-      return 'https://musicbrainz.org/release/' + this.album.mbid
+    musicbrainzUrl() {
+      if (this.album.mbid) {
+        return "https://musicbrainz.org/release/" + this.album.mbid
+      }
     },
-    headerStyle () {
+    headerStyle() {
       if (!this.album.cover.original) {
-        return ''
+        return ""
       }
-      return 'background-image: url(' + this.$store.getters['instance/absoluteUrl'](this.album.cover.original) + ')'
+      return (
+        "background-image: url(" +
+        this.$store.getters["instance/absoluteUrl"](this.album.cover.original) +
+        ")"
+      )
     }
   },
   watch: {
-    id () {
+    id() {
       this.fetchData()
     }
   }
@@ -124,5 +196,4 @@ export default {
 
 <!-- Add "scoped" attribute to limit CSS to this component only -->
 <style scoped lang="scss">
-
 </style>
diff --git a/front/src/components/library/Artist.vue b/front/src/components/library/Artist.vue
index fe74f6f17c717bb46be209590fb46ef428c59d8a..b7154935f4745a7ddceea4cf3707599ba8b5d928 100644
--- a/front/src/components/library/Artist.vue
+++ b/front/src/components/library/Artist.vue
@@ -1,10 +1,10 @@
 <template>
-  <div v-title="labels.title">
+  <main v-title="labels.title">
     <div v-if="isLoading" class="ui vertical segment">
       <div :class="['ui', 'centered', 'active', 'inline', 'loader']"></div>
     </div>
     <template v-if="artist">
-      <div :class="['ui', 'head', {'with-background': cover}, 'vertical', 'center', 'aligned', 'stripe', 'segment']" :style="headerStyle" v-title="artist.name">
+      <section :class="['ui', 'head', {'with-background': cover}, 'vertical', 'center', 'aligned', 'stripe', 'segment']" :style="headerStyle" v-title="artist.name">
         <div class="segment-content">
           <h2 class="ui center aligned icon header">
             <i class="circular inverted users violet icon"></i>
@@ -28,19 +28,19 @@
           </play-button>
 
           <a :href="wikipediaUrl" target="_blank" class="ui button">
-            <i class="wikipedia icon"></i>
+            <i class="wikipedia w icon"></i>
             <translate>Search on Wikipedia</translate>
           </a>
-          <a :href="musicbrainzUrl" target="_blank" class="ui button">
+          <a v-if="musicbrainzUrl" :href="musicbrainzUrl" target="_blank" class="ui button">
             <i class="external icon"></i>
             <translate>View on MusicBrainz</translate>
           </a>
         </div>
-      </div>
-      <div v-if="isLoadingAlbums" class="ui vertical stripe segment">
+      </section>
+      <section v-if="isLoadingAlbums" class="ui vertical stripe segment">
         <div :class="['ui', 'centered', 'active', 'inline', 'loader']"></div>
-      </div>
-      <div v-else-if="albums && albums.length > 0" class="ui vertical stripe segment">
+      </section>
+      <section v-else-if="albums && albums.length > 0" class="ui vertical stripe segment">
         <h2>
           <translate>Albums by this artist</translate>
         </h2>
@@ -49,38 +49,38 @@
             <album-card :mode="'rich'" class="fluid" :album="album"></album-card>
           </div>
         </div>
-      </div>
-      <div v-if="tracks.length > 0" class="ui vertical stripe segment">
+      </section>
+      <section v-if="tracks.length > 0" class="ui vertical stripe segment">
         <h2>
           <translate>Tracks by this artist</translate>
         </h2>
         <track-table :display-position="true" :tracks="tracks"></track-table>
-      </div>
-      <div class="ui vertical stripe segment">
+      </section>
+      <section class="ui vertical stripe segment">
         <h2>
           <translate>User libraries</translate>
         </h2>
         <library-widget :url="'artists/' + id + '/libraries/'">
           <translate slot="subtitle">This artist is present in the following libraries:</translate>
         </library-widget>
-      </div>
+      </section>
     </template>
-  </div>
+  </main>
 </template>
 
 <script>
-import _ from 'lodash'
-import axios from 'axios'
-import logger from '@/logging'
-import backend from '@/audio/backend'
-import AlbumCard from '@/components/audio/album/Card'
-import RadioButton from '@/components/radios/Button'
-import PlayButton from '@/components/audio/PlayButton'
-import TrackTable from '@/components/audio/track/Table'
-import LibraryWidget from '@/components/federation/LibraryWidget'
+import _ from "@/lodash"
+import axios from "axios"
+import logger from "@/logging"
+import backend from "@/audio/backend"
+import AlbumCard from "@/components/audio/album/Card"
+import RadioButton from "@/components/radios/Button"
+import PlayButton from "@/components/audio/PlayButton"
+import TrackTable from "@/components/audio/track/Table"
+import LibraryWidget from "@/components/federation/LibraryWidget"
 
 export default {
-  props: ['id'],
+  props: ["id"],
   components: {
     AlbumCard,
     RadioButton,
@@ -88,75 +88,74 @@ export default {
     TrackTable,
     LibraryWidget
   },
-  data () {
+  data() {
     return {
       isLoading: true,
       isLoadingAlbums: true,
       artist: null,
       albums: null,
+      totalTracks: 0,
+      totalAlbums: 0,
       tracks: []
     }
   },
-  created () {
+  created() {
     this.fetchData()
   },
   methods: {
-    fetchData () {
+    fetchData() {
       var self = this
       this.isLoading = true
       logger.default.debug('Fetching artist "' + this.id + '"')
-      axios.get('tracks/', {params: {artist: this.id}}).then((response) => {
+      axios.get("tracks/", { params: { artist: this.id } }).then(response => {
         self.tracks = response.data.results
+        self.totalTracks = response.data.count
       })
-      axios.get('artists/' + this.id + '/').then((response) => {
+      axios.get("artists/" + this.id + "/").then(response => {
         self.artist = response.data
         self.isLoading = false
         self.isLoadingAlbums = true
-        axios.get('albums/', {params: {artist: self.id, ordering: '-release_date'}}).then((response) => {
-          let parsed = JSON.parse(JSON.stringify(response.data.results))
-          self.albums = parsed.map((album) => {
-            return backend.Album.clean(album)
+        axios
+          .get("albums/", {
+            params: { artist: self.id, ordering: "-release_date" }
           })
+          .then(response => {
+            self.totalAlbums = response.data.count
+            let parsed = JSON.parse(JSON.stringify(response.data.results))
+            self.albums = parsed.map(album => {
+              return backend.Album.clean(album)
+            })
 
-          self.isLoadingAlbums = false
-        })
+            self.isLoadingAlbums = false
+          })
       })
     }
   },
   computed: {
-    labels () {
+    labels() {
       return {
-        title: this.$gettext('Artist')
-      }
-    },
-    totalAlbums () {
-      let trackAlbums = _.uniqBy(this.tracks, (t) => {
-        return t.album.id
-      })
-      return this.albums.length + trackAlbums.length
-    },
-    totalTracks () {
-      if (this.albums.length === 0) {
-        return 0 + this.tracks.length
+        title: this.$gettext("Artist")
       }
-      return this.albums.map((album) => {
-        return album.tracks.length
-      }).reduce((a, b) => {
-        return a + b
-      }) + this.tracks.length
     },
-    isPlayable () {
-      return this.artist.albums.filter((a) => {
-        return a.is_playable
-      }).length > 0
+    isPlayable() {
+      return (
+        this.artist.albums.filter(a => {
+          return a.is_playable
+        }).length > 0
+      )
     },
-    wikipediaUrl () {
-      return 'https://en.wikipedia.org/w/index.php?search=' + this.artist.name
+    wikipediaUrl() {
+      return (
+        "https://en.wikipedia.org/w/index.php?search=" +
+        encodeURI(this.artist.name)
+      )
     },
-    musicbrainzUrl () {
-      return 'https://musicbrainz.org/artist/' + this.artist.mbid
+    musicbrainzUrl() {
+      if (this.artist.mbid) {
+        return "https://musicbrainz.org/artist/" + this.artist.mbid
+      }
     },
-    allTracks () {
+    allTracks() {
       let tracks = []
       this.albums.forEach(album => {
         album.tracks.forEach(track => {
@@ -165,22 +164,28 @@ export default {
       })
       return tracks
     },
-    cover () {
-      return this.artist.albums.filter(album => {
-        return album.cover
-      }).map(album => {
-        return album.cover
-      })[0]
+    cover() {
+      return this.artist.albums
+        .filter(album => {
+          return album.cover
+        })
+        .map(album => {
+          return album.cover
+        })[0]
     },
-    headerStyle () {
+    headerStyle() {
       if (!this.cover || !this.cover.original) {
-        return ''
+        return ""
       }
-      return 'background-image: url(' + this.$store.getters['instance/absoluteUrl'](this.cover.original) + ')'
+      return (
+        "background-image: url(" +
+        this.$store.getters["instance/absoluteUrl"](this.cover.original) +
+        ")"
+      )
     }
   },
   watch: {
-    id () {
+    id() {
       this.fetchData()
     }
   }
diff --git a/front/src/components/library/Artists.vue b/front/src/components/library/Artists.vue
index 379d07e4b8bccd72838effeb99d8d42f0d37c8ac..93312ec2ef0830edede9498617805d7a3628211f 100644
--- a/front/src/components/library/Artists.vue
+++ b/front/src/components/library/Artists.vue
@@ -1,6 +1,6 @@
 <template>
-  <div v-title="labels.title">
-    <div class="ui vertical stripe segment">
+  <main v-title="labels.title">
+    <section class="ui vertical stripe segment">
       <h2 class="ui header">
         <translate>Browsing artists</translate>
       </h2>
@@ -64,60 +64,59 @@
           :total="result.count"
           ></pagination>
       </div>
-    </div>
-  </div>
+    </section>
+  </main>
 </template>
 
 <script>
-import axios from 'axios'
-import _ from 'lodash'
-import $ from 'jquery'
+import axios from "axios"
+import _ from "@/lodash"
+import $ from "jquery"
 
-import logger from '@/logging'
+import logger from "@/logging"
 
-import OrderingMixin from '@/components/mixins/Ordering'
-import PaginationMixin from '@/components/mixins/Pagination'
-import TranslationsMixin from '@/components/mixins/Translations'
-import ArtistCard from '@/components/audio/artist/Card'
-import Pagination from '@/components/Pagination'
+import OrderingMixin from "@/components/mixins/Ordering"
+import PaginationMixin from "@/components/mixins/Pagination"
+import TranslationsMixin from "@/components/mixins/Translations"
+import ArtistCard from "@/components/audio/artist/Card"
+import Pagination from "@/components/Pagination"
 
-const FETCH_URL = 'artists/'
+const FETCH_URL = "artists/"
 
 export default {
   mixins: [OrderingMixin, PaginationMixin, TranslationsMixin],
   props: {
-    defaultQuery: {type: String, required: false, default: ''}
+    defaultQuery: { type: String, required: false, default: "" }
   },
   components: {
     ArtistCard,
     Pagination
   },
-  data () {
-    let defaultOrdering = this.getOrderingFromString(this.defaultOrdering || '-creation_date')
+  data() {
+    let defaultOrdering = this.getOrderingFromString(
+      this.defaultOrdering || "-creation_date"
+    )
     return {
       isLoading: true,
       result: null,
       page: parseInt(this.defaultPage),
       query: this.defaultQuery,
       paginateBy: parseInt(this.defaultPaginateBy || 12),
-      orderingDirection: defaultOrdering.direction || '+',
+      orderingDirection: defaultOrdering.direction || "+",
       ordering: defaultOrdering.field,
-      orderingOptions: [
-        ['creation_date', 'creation_date'],
-        ['name', 'name']
-      ]
+      orderingOptions: [["creation_date", "creation_date"], ["name", "name"]]
     }
   },
-  created () {
+  created() {
     this.fetchData()
   },
-  mounted () {
-    $('.ui.dropdown').dropdown()
+  mounted() {
+    $(".ui.dropdown").dropdown()
   },
   computed: {
-    labels () {
-      let searchPlaceholder = this.$gettext('Enter an artist name...')
-      let title = this.$gettext('Artists')
+    labels() {
+      let searchPlaceholder = this.$gettext("Enter artist name…")
+      let title = this.$gettext("Artists")
       return {
         searchPlaceholder,
         title
@@ -125,7 +124,7 @@ export default {
     }
   },
   methods: {
-    updateQueryString: _.debounce(function () {
+    updateQueryString: _.debounce(function() {
       this.$router.replace({
         query: {
           query: this.query,
@@ -135,7 +134,7 @@ export default {
         }
       })
     }, 500),
-    fetchData: _.debounce(function () {
+    fetchData: _.debounce(function() {
       var self = this
       this.isLoading = true
       let url = FETCH_URL
@@ -144,36 +143,36 @@ export default {
         page_size: this.paginateBy,
         name__icontains: this.query,
         ordering: this.getOrderingAsString(),
-        playable: 'true'
+        playable: "true"
       }
-      logger.default.debug('Fetching artists')
-      axios.get(url, {params: params}).then((response) => {
+      logger.default.debug("Fetching artists")
+      axios.get(url, { params: params }).then(response => {
         self.result = response.data
         self.isLoading = false
       })
     }, 500),
-    selectPage: function (page) {
+    selectPage: function(page) {
       this.page = page
     }
   },
   watch: {
-    page () {
+    page() {
       this.updateQueryString()
       this.fetchData()
     },
-    paginateBy () {
+    paginateBy() {
       this.updateQueryString()
       this.fetchData()
     },
-    ordering () {
+    ordering() {
       this.updateQueryString()
       this.fetchData()
     },
-    orderingDirection () {
+    orderingDirection() {
       this.updateQueryString()
       this.fetchData()
     },
-    query () {
+    query() {
       this.updateQueryString()
       this.fetchData()
     }
diff --git a/front/src/components/library/FileUpload.vue b/front/src/components/library/FileUpload.vue
index e637210f280969e0c35fc1d38001d37a8a65e31e..7c4628511e2172a06d344d13881f0ad72db2aa51 100644
--- a/front/src/components/library/FileUpload.vue
+++ b/front/src/components/library/FileUpload.vue
@@ -38,7 +38,7 @@
           </li>
           <li>
             <translate>The music files you are uploading are tagged properly:</translate>
-            <a href="http://picard.musicbrainz.org/" target='_blank'><translate>we recommend using Picard for that purpose</translate></a>
+            <a href="http://picard.musicbrainz.org/" target='_blank'><translate>We recommend using Picard for that purpose.</translate></a>
           </li>
           <li>
             <translate>The uploaded music files are in OGG, Flac or MP3 format</translate>
@@ -66,22 +66,23 @@
           :multiple="true"
           :data="uploadData"
           :drop="true"
-          accept="audio/*"
+          :extensions="supportedExtensions"
           v-model="files"
           name="audio_file"
           :thread="1"
-          @input-filter="inputFilter"
           @input-file="inputFile"
           ref="upload">
-          <i class="upload icon"></i>
+          <i class="upload icon"></i>&nbsp;
           <translate>Click to select files to upload or drag and drop files or directories</translate>
+          <br />
+          <br />
+          <i><translate :translate-params="{extensions: supportedExtensions.join(', ')}">  Supported extensions: %{ extensions }</translate></i>
         </file-upload-widget>
       </div>
-
       <table v-if="files.length > 0" class="ui single line table">
         <thead>
           <tr>
-            <th><translate>File name</translate></th>
+            <th><translate>Filename</translate></th>
             <th><translate>Size</translate></th>
             <th><translate>Status</translate></th>
           </tr>
@@ -100,7 +101,7 @@
                 <translate key="1">Uploaded</translate>
               </span>
               <span v-else-if="file.active" class="ui yellow label">
-                <translate key="2">Uploading...</translate>
+                <translate key="2">Uploading…</translate>
               </span>
               <template v-else>
                 <span class="ui label"><translate key="3">Pending</translate></span>
@@ -114,7 +115,8 @@
     </div>
     <div :class="['ui', 'bottom', 'attached', 'segment', {hidden: currentTab != 'processing'}]">
       <library-files-table
-        :key="String(processTimestamp)"
+        :needs-refresh="needsRefresh"
+        @fetch-start="needsRefresh = false"
         :filters="{import_reference: importReference}"
         :custom-objects="Object.values(uploads.objects)"></library-files-table>
     </div>
@@ -122,184 +124,183 @@
 </template>
 
 <script>
-import $ from 'jquery'
-import axios from 'axios'
-import logger from '@/logging'
-import FileUploadWidget from './FileUploadWidget'
-import LibraryFilesTable from '@/views/content/libraries/FilesTable'
-import moment from 'moment'
+import _ from "@/lodash"
+import $ from "jquery";
+import axios from "axios";
+import logger from "@/logging";
+import FileUploadWidget from "./FileUploadWidget";
+import LibraryFilesTable from "@/views/content/libraries/FilesTable";
+import moment from "moment";
 
 export default {
-  props: ['library', 'defaultImportReference'],
+  props: ["library", "defaultImportReference"],
   components: {
     FileUploadWidget,
     LibraryFilesTable
   },
-  data () {
-    let importReference = this.defaultImportReference || moment().format()
-    this.$router.replace({query: {import: importReference}})
+  data() {
+    let importReference = this.defaultImportReference || moment().format();
+    this.$router.replace({ query: { import: importReference } });
     return {
       files: [],
-      currentTab: 'summary',
-      uploadUrl: '/api/v1/uploads/',
+      needsRefresh: false,
+      currentTab: "summary",
+      uploadUrl: "/api/v1/uploads/",
       importReference,
+      supportedExtensions: ["flac", "ogg", "mp3", "opus"],
       uploads: {
         pending: 0,
         finished: 0,
         skipped: 0,
         errored: 0,
-        objects: {},
+        objects: {}
       },
       processTimestamp: new Date()
-    }
+    };
   },
-  created () {
-    this.fetchStatus()
-    this.$store.commit('ui/addWebsocketEventHandler', {
-      eventName: 'import.status_updated',
-      id: 'fileUpload',
+  created() {
+    this.fetchStatus();
+    this.$store.commit("ui/addWebsocketEventHandler", {
+      eventName: "import.status_updated",
+      id: "fileUpload",
       handler: this.handleImportEvent
-    })
+    });
   },
-  destroyed () {
-    this.$store.commit('ui/removeWebsocketEventHandler', {
-      eventName: 'import.status_updated',
-      id: 'fileUpload',
-    })
+  destroyed() {
+    this.$store.commit("ui/removeWebsocketEventHandler", {
+      eventName: "import.status_updated",
+      id: "fileUpload"
+    });
   },
   methods: {
-    inputFilter (newFile, oldFile, prevent) {
-      if (newFile && !oldFile) {
-        let extension = newFile.name.split('.').pop()
-        if (['ogg', 'mp3', 'flac'].indexOf(extension) < 0) {
-          prevent()
-        }
-      }
+    inputFile(newFile, oldFile) {
+      this.$refs.upload.active = true;
     },
-    inputFile (newFile, oldFile) {
-      this.$refs.upload.active = true
+    fetchStatus() {
+      let self = this;
+      let statuses = ["pending", "errored", "skipped", "finished"];
+      statuses.forEach(status => {
+        axios
+          .get("uploads/", {
+            params: {
+              import_reference: self.importReference,
+              import_status: status,
+              page_size: 1
+            }
+          })
+          .then(response => {
+            self.uploads[status] = response.data.count;
+          });
+      });
     },
-    fetchStatus () {
-      let self = this
-      let statuses = ['pending', 'errored', 'skipped', 'finished']
-      statuses.forEach((status) => {
-        axios.get('uploads/', {params: {import_reference: self.importReference, import_status: status, page_size: 1}}).then((response) => {
-          self.uploads[status] = response.data.count
-        })
-      })
-    },
-    updateProgressBar () {
-      $(this.$el).find('.progress').progress({
-        total: this.uploads.length * 2,
-        value: this.uploadedFilesCount + this.finishedJobs
-      })
-    },
-    disconnect () {
-      if (!this.bridge) {
-        return
-      }
-      this.bridge.socket.close(1000, 'goodbye', {keepClosed: true})
+    updateProgressBar() {
+      $(this.$el)
+        .find(".progress")
+        .progress({
+          total: this.uploads.length * 2,
+          value: this.uploadedFilesCount + this.finishedJobs
+        });
     },
-    openWebsocket () {
-      this.disconnect()
-      let self = this
-      let token = this.$store.state.auth.token
-      const bridge = new WebSocketBridge()
-      this.bridge = bridge
-      let url = this.$store.getters['instance/absoluteUrl'](`api/v1/activity?token=${token}`)
-      url = url.replace('http://', 'ws://')
-      url = url.replace('https://', 'wss://')
-      bridge.connect(url)
-      bridge.listen(function (event) {
-        self.handleEvent(event)
-      })
-      bridge.socket.addEventListener('open', function () {
-        console.log('Connected to WebSocket')
-      })
-    },
-    handleImportEvent (event) {
-      let self = this
+    handleImportEvent(event) {
+      let self = this;
       if (event.upload.import_reference != self.importReference) {
-        return
+        return;
       }
       this.$nextTick(() => {
-        self.uploads[event.old_status] -= 1
-        self.uploads[event.new_status] += 1
-        self.uploads.objects[event.track_file.uuid] = event.track_file
-        self.triggerReload()
-      })
-    },
-    triggerReload: _.throttle(function () {
-      this.processTimestamp = new Date()
-    }, 10000, {'leading': true})
+        self.uploads[event.old_status] -= 1;
+        self.uploads[event.new_status] += 1;
+        self.uploads.objects[event.upload.uuid] = event.upload;
+        self.needsRefresh = true
+      });
+    }
   },
   computed: {
-    labels () {
-      let denied = this.$gettext('Upload refused, ensure the file is not too big and you have not reached your quota')
-      let server = this.$gettext('Impossible to upload this file, ensure it is not too big')
-      let network = this.$gettext('A network error occured while uploading this file')
-      let timeout = this.$gettext('Upload timeout, please try again')
+    labels() {
+      let denied = this.$gettext(
+        "Upload denied, ensure the file is not too big and that you have not reached your quota"
+      );
+      let server = this.$gettext(
+        "Cannot upload this file, ensure it is not too big"
+      );
+      let network = this.$gettext(
+        "A network error occured while uploading this file"
+      );
+      let timeout = this.$gettext("Upload timeout, please try again");
+      let extension = this.$gettext(
+        "Invalid file type, ensure you are uploading an audio file. Supported file extensions are %{ extensions }"
+      );
       return {
         tooltips: {
           denied,
           server,
           network,
-          timeout
+          timeout,
+          extension: this.$gettextInterpolate(extension, {
+            extensions: this.supportedExtensions.join(", ")
+          })
         }
-      }
+      };
     },
-    uploadedFilesCount () {
-      return this.files.filter((f) => {
-        return f.success
-      }).length
+    uploadedFilesCount() {
+      return this.files.filter(f => {
+        return f.success;
+      }).length;
     },
-    uploadingFilesCount () {
-      return this.files.filter((f) => {
-        return !f.success && !f.error
-      }).length
+    uploadingFilesCount() {
+      return this.files.filter(f => {
+        return !f.success && !f.error;
+      }).length;
     },
-    erroredFilesCount () {
-      return this.files.filter((f) => {
-        return f.error
-      }).length
+    erroredFilesCount() {
+      return this.files.filter(f => {
+        return f.error;
+      }).length;
     },
-    processableFiles () {
-      return this.uploads.pending + this.uploads.skipped + this.uploads.errored + this.uploads.finished + this.uploadedFilesCount
+    processableFiles() {
+      return (
+        this.uploads.pending +
+        this.uploads.skipped +
+        this.uploads.errored +
+        this.uploads.finished +
+        this.uploadedFilesCount
+      );
     },
-    processedFilesCount () {
-      return this.uploads.skipped + this.uploads.errored + this.uploads.finished
+    processedFilesCount() {
+      return (
+        this.uploads.skipped + this.uploads.errored + this.uploads.finished
+      );
     },
-    uploadData: function () {
+    uploadData: function() {
       return {
-        'library': this.library.uuid,
-        'import_reference': this.importReference,
-      }
+        library: this.library.uuid,
+        import_reference: this.importReference
+      };
     },
-    sortedFiles () {
+    sortedFiles() {
       // return errored files on top
-      return this.files.sort((f) => {
+      return this.files.sort(f => {
         if (f.errored) {
-          return -5
+          return -5;
         }
         if (f.success) {
-          return 5
+          return 5;
         }
-        return 0
-      })
+        return 0;
+      });
     }
   },
   watch: {
-    uploadedFilesCount () {
-      this.updateProgressBar()
+    uploadedFilesCount() {
+      this.updateProgressBar();
     },
-    finishedJobs () {
-      this.updateProgressBar()
+    finishedJobs() {
+      this.updateProgressBar();
     },
-    importReference: _.debounce(function () {
-      this.$router.replace({query: {import: this.importReference}})
+    importReference: _.debounce(function() {
+      this.$router.replace({ query: { import: this.importReference } });
     }, 500)
   }
-}
+};
 </script>
 
 <!-- Add "scoped" attribute to limit CSS to this component only -->
diff --git a/front/src/components/library/Home.vue b/front/src/components/library/Home.vue
index e11127608818e9024ba38f3c85ecef5860a7f7f2..5e81dbdc86acd8f495e1c667d35f8e119b768918 100644
--- a/front/src/components/library/Home.vue
+++ b/front/src/components/library/Home.vue
@@ -1,6 +1,6 @@
 <template>
-  <div v-title="labels.title">
-    <div class="ui vertical stripe segment">
+  <main v-title="labels.title">
+    <section class="ui vertical stripe segment">
       <div class="ui stackable three column grid">
         <div class="column">
           <track-widget :url="'history/listenings/'" :filters="{scope: 'user', ordering: '-creation_date'}">
@@ -26,23 +26,23 @@
           </album-widget>
         </div>
       </div>
-    </div>
-  </div>
+    </section>
+  </main>
 </template>
 
 <script>
-import axios from 'axios'
-import Search from '@/components/audio/Search'
-import logger from '@/logging'
-import ArtistCard from '@/components/audio/artist/Card'
-import TrackWidget from '@/components/audio/track/Widget'
-import AlbumWidget from '@/components/audio/album/Widget'
-import PlaylistWidget from '@/components/playlists/Widget'
+import axios from "axios"
+import Search from "@/components/audio/Search"
+import logger from "@/logging"
+import ArtistCard from "@/components/audio/artist/Card"
+import TrackWidget from "@/components/audio/track/Widget"
+import AlbumWidget from "@/components/audio/album/Widget"
+import PlaylistWidget from "@/components/playlists/Widget"
 
-const ARTISTS_URL = 'artists/'
+const ARTISTS_URL = "artists/"
 
 export default {
-  name: 'library',
+  name: "library",
   components: {
     Search,
     ArtistCard,
@@ -50,35 +50,35 @@ export default {
     AlbumWidget,
     PlaylistWidget
   },
-  data () {
+  data() {
     return {
       artists: [],
       isLoadingArtists: false
     }
   },
-  created () {
+  created() {
     this.fetchArtists()
   },
   computed: {
-    labels () {
+    labels() {
       return {
-        title: this.$gettext('Home')
+        title: this.$gettext("Home")
       }
     }
   },
   methods: {
-    fetchArtists () {
+    fetchArtists() {
       var self = this
       this.isLoadingArtists = true
       let params = {
-        ordering: '-creation_date',
+        ordering: "-creation_date",
         playable: true
       }
       let url = ARTISTS_URL
-      logger.default.time('Loading latest artists')
-      axios.get(url, {params: params}).then((response) => {
+      logger.default.time("Loading latest artists")
+      axios.get(url, { params: params }).then(response => {
         self.artists = response.data.results
-        logger.default.timeEnd('Loading latest artists')
+        logger.default.timeEnd("Loading latest artists")
         self.isLoadingArtists = false
       })
     }
diff --git a/front/src/components/library/Library.vue b/front/src/components/library/Library.vue
index 01a357724990ed107cffd4d3d7f50e06d9fb4e4d..c0371fe58800145856eaf18c30192565184a183f 100644
--- a/front/src/components/library/Library.vue
+++ b/front/src/components/library/Library.vue
@@ -1,6 +1,6 @@
 <template>
   <div class="main library pusher">
-    <div class="ui secondary pointing menu">
+    <nav class="ui secondary pointing menu" role="navigation" :aria-label="labels.secondaryMenu">
       <router-link class="ui item" to="/library" exact>
         <translate>Browse</translate>
       </router-link>
@@ -13,7 +13,7 @@
       <router-link class="ui item" to="/library/playlists" exact>
         <translate>Playlists</translate>
       </router-link>
-    </div>
+    </nav>
     <router-view :key="$route.fullPath"></router-view>
   </div>
 </template>
@@ -21,8 +21,16 @@
 <script>
 export default {
   computed: {
-    showImports () {
-      return this.$store.state.auth.availablePermissions['upload'] || this.$store.state.auth.availablePermissions['library']
+    showImports() {
+      return (
+        this.$store.state.auth.availablePermissions["upload"] ||
+        this.$store.state.auth.availablePermissions["library"]
+      )
+    },
+    labels() {
+      return {
+        secondaryMenu: this.$gettext("Secondary menu")
+      }
     }
   }
 }
@@ -30,7 +38,7 @@ export default {
 
 <!-- Add "scoped" attribute to limit CSS to this component only -->
 <style lang="scss">
-@import '../../style/vendor/media';
+@import "../../style/vendor/media";
 
 .library {
   .ui.segment.head {
@@ -46,18 +54,16 @@ export default {
     }
     &.with-background {
       .header {
-        &, .sub {
+        &,
+        .sub {
           text-shadow: 0 1px 0 rgba(0, 0, 0, 0.8);
           color: white !important;
         }
       }
       .segment-content {
-        background-color: rgba(0, 0, 0, 0.5)
+        background-color: rgba(0, 0, 0, 0.5);
       }
-
     }
   }
 }
-
-
 </style>
diff --git a/front/src/components/library/Radios.vue b/front/src/components/library/Radios.vue
index 4cc1d58df1286509747129b2fe31fde5eb22a291..6b8051cd9bc0db1a76e16c8887f3c8c6ecfffc78 100644
--- a/front/src/components/library/Radios.vue
+++ b/front/src/components/library/Radios.vue
@@ -1,6 +1,6 @@
 <template>
-  <div v-title="labels.title">
-    <div class="ui vertical stripe segment">
+  <main v-title="labels.title">
+    <section class="ui vertical stripe segment">
       <h2 class="ui header">
         <translate>Browsing radios</translate>
       </h2>
@@ -39,7 +39,7 @@
             </select>
           </div>
           <div class="field">
-            <label><translate>Ordering direction</translate></label>
+            <label><translate>Order</translate></label>
             <select class="ui dropdown" v-model="orderingDirection">
               <option value="+">
                 <translate>Ascending</translate>
@@ -86,60 +86,59 @@
           :total="result.count"
           ></pagination>
       </div>
-    </div>
-  </div>
+    </section>
+  </main>
 </template>
 
 <script>
-import axios from 'axios'
-import _ from 'lodash'
-import $ from 'jquery'
+import axios from "axios"
+import _ from "@/lodash"
+import $ from "jquery"
 
-import logger from '@/logging'
+import logger from "@/logging"
 
-import OrderingMixin from '@/components/mixins/Ordering'
-import PaginationMixin from '@/components/mixins/Pagination'
-import TranslationsMixin from '@/components/mixins/Translations'
-import RadioCard from '@/components/radios/Card'
-import Pagination from '@/components/Pagination'
+import OrderingMixin from "@/components/mixins/Ordering"
+import PaginationMixin from "@/components/mixins/Pagination"
+import TranslationsMixin from "@/components/mixins/Translations"
+import RadioCard from "@/components/radios/Card"
+import Pagination from "@/components/Pagination"
 
-const FETCH_URL = 'radios/radios/'
+const FETCH_URL = "radios/radios/"
 
 export default {
   mixins: [OrderingMixin, PaginationMixin, TranslationsMixin],
   props: {
-    defaultQuery: {type: String, required: false, default: ''}
+    defaultQuery: { type: String, required: false, default: "" }
   },
   components: {
     RadioCard,
     Pagination
   },
-  data () {
-    let defaultOrdering = this.getOrderingFromString(this.defaultOrdering || '-creation_date')
+  data() {
+    let defaultOrdering = this.getOrderingFromString(
+      this.defaultOrdering || "-creation_date"
+    )
     return {
       isLoading: true,
       result: null,
       page: parseInt(this.defaultPage),
       query: this.defaultQuery,
       paginateBy: parseInt(this.defaultPaginateBy || 12),
-      orderingDirection: defaultOrdering.direction || '+',
+      orderingDirection: defaultOrdering.direction || "+",
       ordering: defaultOrdering.field,
-      orderingOptions: [
-        ['creation_date', 'creation_date'],
-        ['name', 'name']
-      ]
+      orderingOptions: [["creation_date", "creation_date"], ["name", "name"]]
     }
   },
-  created () {
+  created() {
     this.fetchData()
   },
-  mounted () {
-    $('.ui.dropdown').dropdown()
+  mounted() {
+    $(".ui.dropdown").dropdown()
   },
   computed: {
-    labels () {
-      let searchPlaceholder = this.$gettext('Enter a radio name...')
-      let title = this.$gettext('Radios')
+    labels() {
+      let searchPlaceholder = this.$gettext("Enter a radio name…")
+      let title = this.$gettext("Radios")
       return {
         searchPlaceholder,
         title
@@ -147,7 +146,7 @@ export default {
     }
   },
   methods: {
-    updateQueryString: _.debounce(function () {
+    updateQueryString: _.debounce(function() {
       this.$router.replace({
         query: {
           query: this.query,
@@ -157,7 +156,7 @@ export default {
         }
       })
     }, 500),
-    fetchData: _.debounce(function () {
+    fetchData: _.debounce(function() {
       var self = this
       this.isLoading = true
       let url = FETCH_URL
@@ -167,34 +166,34 @@ export default {
         name__icontains: this.query,
         ordering: this.getOrderingAsString()
       }
-      logger.default.debug('Fetching radios')
-      axios.get(url, {params: params}).then((response) => {
+      logger.default.debug("Fetching radios")
+      axios.get(url, { params: params }).then(response => {
         self.result = response.data
         self.isLoading = false
       })
     }, 500),
-    selectPage: function (page) {
+    selectPage: function(page) {
       this.page = page
     }
   },
   watch: {
-    page () {
+    page() {
       this.updateQueryString()
       this.fetchData()
     },
-    paginateBy () {
+    paginateBy() {
       this.updateQueryString()
       this.fetchData()
     },
-    ordering () {
+    ordering() {
       this.updateQueryString()
       this.fetchData()
     },
-    orderingDirection () {
+    orderingDirection() {
       this.updateQueryString()
       this.fetchData()
     },
-    query () {
+    query() {
       this.updateQueryString()
       this.fetchData()
     }
diff --git a/front/src/components/library/Track.vue b/front/src/components/library/Track.vue
index 75d5f650d4cd3d1b04a702cb6136ae749f783a6f..866231b62c7cb1e407749433c1b6468c2684dfdc 100644
--- a/front/src/components/library/Track.vue
+++ b/front/src/components/library/Track.vue
@@ -1,26 +1,36 @@
 <template>
-  <div>
+  <main>
     <div v-if="isLoadingTrack" class="ui vertical segment" v-title="labels.title">
       <div :class="['ui', 'centered', 'active', 'inline', 'loader']"></div>
     </div>
     <template v-if="track">
-      <div :class="['ui', 'head', {'with-background': cover}, 'vertical', 'center', 'aligned', 'stripe', 'segment']" :style="headerStyle" v-title="track.title">
+      <section
+        :class="['ui', 'head', {'with-background': cover}, 'vertical', 'center', 'aligned', 'stripe', 'segment']"
+        :style="headerStyle"
+        v-title="track.title"
+      >
         <div class="segment-content">
           <h2 class="ui center aligned icon header">
             <i class="circular inverted music orange icon"></i>
             <div class="content">
               {{ track.title }}
               <div class="sub header">
-                <translate :translate-params="{album: track.album.title, artist: track.artist.name}">
-                  From album %{ album } by %{ artist }
-                </translate>
+                <translate
+                  :translate-params="{album: track.album.title, artist: track.artist.name}"
+                >From album %{ album } by %{ artist }</translate>
               </div>
               <br>
               <div class="ui basic buttons">
-                <router-link class="ui button" :to="{name: 'library.albums.detail', params: {id: track.album.id }}">
+                <router-link
+                  class="ui button"
+                  :to="{name: 'library.albums.detail', params: {id: track.album.id }}"
+                >
                   <translate>Album page</translate>
                 </router-link>
-                <router-link class="ui button" :to="{name: 'library.artists.detail', params: {id: track.artist.id }}">
+                <router-link
+                  class="ui button"
+                  :to="{name: 'library.artists.detail', params: {id: track.artist.id }}"
+                >
                   <translate>Artist page</translate>
                 </router-link>
               </div>
@@ -31,36 +41,77 @@
             <translate>Play</translate>
           </play-button>
           <track-favorite-icon :track="track" :button="true"></track-favorite-icon>
-          <track-playlist-icon
-            :button="true"
-            v-if="$store.state.auth.authenticated"
-            :track="track"></track-playlist-icon>
+          <track-playlist-icon :button="true" v-if="$store.state.auth.authenticated" :track="track"></track-playlist-icon>
 
           <a :href="wikipediaUrl" target="_blank" class="ui button">
-            <i class="wikipedia icon"></i>
+            <i class="wikipedia w icon"></i>
             <translate>Search on Wikipedia</translate>
           </a>
-          <a :href="musicbrainzUrl" target="_blank" class="ui button">
+          <a v-if="musicbrainzUrl" :href="musicbrainzUrl" target="_blank" class="ui button">
             <i class="external icon"></i>
             <translate>View on MusicBrainz</translate>
           </a>
-          <a v-if="track.is_playable" :href="downloadUrl" target="_blank" class="ui button">
+          <a v-if="upload" :href="downloadUrl" target="_blank" class="ui button">
             <i class="download icon"></i>
             <translate>Download</translate>
           </a>
+          <template v-if="publicLibraries.length > 0">
+            <button
+              @click="showEmbedModal = !showEmbedModal"
+              class="ui button">
+              <i class="code icon"></i>
+              <translate>Embed</translate>
+            </button>
+            <modal :show.sync="showEmbedModal">
+              <div class="header">
+                <translate>Embed this track on your website</translate>
+              </div>
+              <div class="content">
+                <div class="description">
+                  <embed-wizard type="track" :id="track.id" />
+
+                </div>
+              </div>
+              <div class="actions">
+                <div class="ui deny button">
+                  <translate>Cancel</translate>
+                </div>
+              </div>
+            </modal>
+          </template>
         </div>
-      </div>
-      <div class="ui vertical stripe center aligned segment">
-        <h2 class="ui header"><translate>Track information</translate></h2>
+      </section>
+      <section class="ui vertical stripe center aligned segment">
+        <h2 class="ui header">
+          <translate>Track information</translate>
+        </h2>
         <table class="ui very basic collapsing celled center aligned table">
           <tbody>
             <tr>
               <td>
-                <translate>Duration</translate>
+                <translate>Copyright</translate>
+              </td>
+              <td v-if="track.copyright" :title="track.copyright">{{ track.copyright|truncate(50) }}</td>
+              <td v-else>
+                <translate>We don't have any copyright information for this track</translate>
               </td>
-              <td v-if="track.duration">
-                {{ time.parse(track.duration) }}
+            </tr>
+            <tr>
+              <td>
+                <translate>License</translate>
+              </td>
+              <td v-if="license">
+                <a :href="license.url" target="_blank" rel="noopener noreferrer">{{ license.name }}</a>
+              </td>
+              <td v-else>
+                <translate>We don't have any licensing information for this track</translate>
+              </td>
+            </tr>
+            <tr>
+              <td>
+                <translate>Duration</translate>
               </td>
+              <td v-if="upload && upload.duration">{{ time.parse(upload.duration) }}</td>
               <td v-else>
                 <translate>N/A</translate>
               </td>
@@ -69,9 +120,7 @@
               <td>
                 <translate>Size</translate>
               </td>
-              <td v-if="track.size">
-                {{ track.size | humanSize }}
-              </td>
+              <td v-if="upload && upload.size">{{ upload.size | humanSize }}</td>
               <td v-else>
                 <translate>N/A</translate>
               </td>
@@ -80,9 +129,7 @@
               <td>
                 <translate>Bitrate</translate>
               </td>
-              <td v-if="track.bitrate">
-                {{ track.bitrate | humanSize }}/s
-              </td>
+              <td v-if="upload && upload.bitrate">{{ upload.bitrate | humanSize }}/s</td>
               <td v-else>
                 <translate>N/A</translate>
               </td>
@@ -91,141 +138,192 @@
               <td>
                 <translate>Type</translate>
               </td>
-              <td v-if="track.mimetype">
-                {{ track.mimetype }}
-              </td>
+              <td v-if="upload && upload.extension">{{ upload.extension }}</td>
               <td v-else>
                 <translate>N/A</translate>
               </td>
             </tr>
           </tbody>
         </table>
-      </div>
-      <div class="ui vertical stripe center aligned segment">
+      </section>
+      <section class="ui vertical stripe center aligned segment">
         <h2>
           <translate>Lyrics</translate>
         </h2>
         <div v-if="isLoadingLyrics" class="ui vertical segment">
           <div :class="['ui', 'centered', 'active', 'inline', 'loader']"></div>
         </div>
-        <div v-if="lyrics" v-html="lyrics.content_rendered">
-        </div>
+        <div v-if="lyrics" v-html="lyrics.content_rendered"></div>
         <template v-if="!isLoadingLyrics & !lyrics">
-          <p><translate>No lyrics available for this track.</translate></p>
+          <p>
+            <translate>No lyrics available for this track.</translate>
+          </p>
           <a class="ui button" target="_blank" :href="lyricsSearchUrl">
             <i class="search icon"></i>
             <translate>Search on lyrics.wikia.com</translate>
           </a>
         </template>
-      </div>
-      <div class="ui vertical stripe segment">
+      </section>
+      <section class="ui vertical stripe segment">
         <h2>
           <translate>User libraries</translate>
         </h2>
-        <library-widget :url="'tracks/' + id + '/libraries/'">
+        <library-widget @loaded="libraries = $event" :url="'tracks/' + id + '/libraries/'">
           <translate slot="subtitle">This track is present in the following libraries:</translate>
         </library-widget>
-      </div>
+      </section>
     </template>
-  </div>
+  </main>
 </template>
 
 <script>
+import time from "@/utils/time"
+import axios from "axios"
+import url from "@/utils/url"
+import logger from "@/logging"
+import PlayButton from "@/components/audio/PlayButton"
+import TrackFavoriteIcon from "@/components/favorites/TrackFavoriteIcon"
+import TrackPlaylistIcon from "@/components/playlists/TrackPlaylistIcon"
+import LibraryWidget from "@/components/federation/LibraryWidget"
+import Modal from '@/components/semantic/Modal'
+import EmbedWizard from "@/components/audio/EmbedWizard"
 
-import time from '@/utils/time'
-import axios from 'axios'
-import url from '@/utils/url'
-import logger from '@/logging'
-import PlayButton from '@/components/audio/PlayButton'
-import TrackFavoriteIcon from '@/components/favorites/TrackFavoriteIcon'
-import TrackPlaylistIcon from '@/components/playlists/TrackPlaylistIcon'
-import LibraryWidget from '@/components/federation/LibraryWidget'
-
-const FETCH_URL = 'tracks/'
+const FETCH_URL = "tracks/"
 
 export default {
-  props: ['id'],
+  props: ["id"],
   components: {
     PlayButton,
     TrackPlaylistIcon,
     TrackFavoriteIcon,
-    LibraryWidget
+    LibraryWidget,
+    Modal,
+    EmbedWizard
   },
-  data () {
+  data() {
     return {
       time,
       isLoadingTrack: true,
       isLoadingLyrics: true,
       track: null,
-      lyrics: null
+      lyrics: null,
+      licenseData: null,
+      libraries: [],
+      showEmbedModal: false
     }
   },
-  created () {
+  created() {
     this.fetchData()
     this.fetchLyrics()
   },
   methods: {
-    fetchData () {
+    fetchData() {
       var self = this
       this.isLoadingTrack = true
-      let url = FETCH_URL + this.id + '/'
+      let url = FETCH_URL + this.id + "/"
       logger.default.debug('Fetching track "' + this.id + '"')
-      axios.get(url).then((response) => {
+      axios.get(url).then(response => {
         self.track = response.data
         self.isLoadingTrack = false
       })
     },
-    fetchLyrics () {
+    fetchLicenseData(licenseId) {
+      var self = this
+      let url = `licenses/${licenseId}/`
+      axios.get(url).then(response => {
+        self.licenseData = response.data
+      })
+    },
+    fetchLyrics() {
       var self = this
       this.isLoadingLyrics = true
-      let url = FETCH_URL + this.id + '/lyrics/'
+      let url = FETCH_URL + this.id + "/lyrics/"
       logger.default.debug('Fetching lyrics for track "' + this.id + '"')
-      axios.get(url).then((response) => {
-        self.lyrics = response.data
-        self.isLoadingLyrics = false
-      }, (response) => {
-        console.error('No lyrics available')
-        self.isLoadingLyrics = false
-      })
+      axios.get(url).then(
+        response => {
+          self.lyrics = response.data
+          self.isLoadingLyrics = false
+        },
+        response => {
+          console.error("No lyrics available")
+          self.isLoadingLyrics = false
+        }
+      )
     }
   },
   computed: {
-    labels () {
+    publicLibraries () {
+      return this.libraries.filter(l => {
+        return l.privacy_level === 'everyone'
+      })
+    },
+    labels() {
       return {
-        title: this.$gettext('Track')
+        title: this.$gettext("Track")
       }
     },
-    wikipediaUrl () {
-      return 'https://en.wikipedia.org/w/index.php?search=' + this.track.title + ' ' + this.track.artist.name
+    upload() {
+      if (this.track.uploads) {
+        return this.track.uploads[0]
+      }
     },
-    musicbrainzUrl () {
-      return 'https://musicbrainz.org/recording/' + this.track.mbid
+    wikipediaUrl() {
+      return (
+        "https://en.wikipedia.org/w/index.php?search=" +
+        encodeURI(this.track.title + " " + this.track.artist.name)
+      )
+    },
+    musicbrainzUrl() {
+      if (this.track.mbid) {
+        return "https://musicbrainz.org/recording/" + this.track.mbid
+      }
     },
-    downloadUrl () {
-      let u = this.$store.getters['instance/absoluteUrl'](this.track.listen_url)
+    downloadUrl() {
+      let u = this.$store.getters["instance/absoluteUrl"](
+        this.upload.listen_url
+      )
       if (this.$store.state.auth.authenticated) {
-        u = url.updateQueryString(u, 'jwt', encodeURI(this.$store.state.auth.token))
+        u = url.updateQueryString(
+          u,
+          "jwt",
+          encodeURI(this.$store.state.auth.token)
+        )
       }
       return u
     },
-    lyricsSearchUrl () {
-      let base = 'http://lyrics.wikia.com/wiki/Special:Search?query='
-      let query = this.track.artist.name + ' ' + this.track.title
-      return base + query
+    lyricsSearchUrl() {
+      let base = "http://lyrics.wikia.com/wiki/Special:Search?query="
+      let query = this.track.artist.name + ":" + this.track.title
+      return base + encodeURI(query)
     },
-    cover () {
+    cover() {
       return null
     },
-    headerStyle () {
+    headerStyle() {
       if (!this.cover) {
-        return ''
+        return ""
       }
-      return 'background-image: url(' + this.$store.getters['instance/absoluteUrl'](this.cover) + ')'
+      return (
+        "background-image: url(" +
+        this.$store.getters["instance/absoluteUrl"](this.cover) +
+        ")"
+      )
+    },
+    license() {
+      if (!this.track || !this.track.license) {
+        return null
+      }
+      return this.licenseData
     }
   },
   watch: {
-    id () {
+    id() {
       this.fetchData()
+    },
+    track (v) {
+      if (v && v.license) {
+        this.fetchLicenseData(v.license)
+      }
     }
   }
 }
diff --git a/front/src/components/library/radios/Builder.vue b/front/src/components/library/radios/Builder.vue
index 91ea702464d1768b4ef1d3879cd5612c8f917743..0a86958634b71c794fe44242b26b918fcaf4f13a 100644
--- a/front/src/components/library/radios/Builder.vue
+++ b/front/src/components/library/radios/Builder.vue
@@ -1,7 +1,7 @@
 <template>
   <div class="ui vertical stripe segment" v-title="labels.title">
     <div>
-      <div>
+      <section>
         <h2 class="ui header">
           <translate>Builder</translate>
         </h2>
@@ -77,7 +77,7 @@
             </builder-filter>
           </tbody>
         </table>
-        <template v-if="checkResult">
+        <template v-if="checkResult && checkResult.candidates && checkResult.candidates.count">
           <h3
             class="ui header"
             v-translate="{count: checkResult.candidates.count}"
@@ -85,30 +85,30 @@
             translate-plural="%{ count } tracks matching combined filters">
             %{ count } track matching combined filters
           </h3>
-          <track-table v-if="checkResult.candidates.sample" :tracks="checkResult.candidates.sample"></track-table>
+          <track-table v-if="checkResult.candidates.sample" :tracks="checkResult.candidates.sample" :playable="true"></track-table>
         </template>
-      </div>
+      </section>
     </div>
   </div>
 </template>
 <script>
-import axios from 'axios'
-import $ from 'jquery'
-import _ from 'lodash'
-import BuilderFilter from './Filter'
-import TrackTable from '@/components/audio/track/Table'
-import RadioButton from '@/components/radios/Button'
+import axios from "axios"
+import $ from "jquery"
+import _ from "@/lodash"
+import BuilderFilter from "./Filter"
+import TrackTable from "@/components/audio/track/Table"
+import RadioButton from "@/components/radios/Button"
 
 export default {
   props: {
-    id: {required: false}
+    id: { required: false }
   },
   components: {
     BuilderFilter,
     TrackTable,
     RadioButton
   },
-  data: function () {
+  data: function() {
     return {
       isLoading: false,
       success: false,
@@ -116,12 +116,12 @@ export default {
       currentFilterType: null,
       filters: [],
       checkResult: null,
-      radioName: '',
-      radioDesc: '',
+      radioName: "",
+      radioDesc: "",
       isPublic: true
     }
   },
-  created: function () {
+  created: function() {
     let self = this
     this.fetchFilters().then(() => {
       if (self.id) {
@@ -129,18 +129,18 @@ export default {
       }
     })
   },
-  mounted () {
-    $('.ui.dropdown').dropdown()
+  mounted() {
+    $(".ui.dropdown").dropdown()
   },
   methods: {
-    fetchFilters: function () {
+    fetchFilters: function() {
       let self = this
-      let url = 'radios/radios/filters/'
-      return axios.get(url).then((response) => {
+      let url = "radios/radios/filters/"
+      return axios.get(url).then(response => {
         self.availableFilters = response.data
       })
     },
-    add () {
+    add() {
       this.filters.push({
         config: {},
         filter: this.currentFilter,
@@ -148,23 +148,25 @@ export default {
       })
       this.fetchCandidates()
     },
-    updateConfig (index, field, value) {
+    updateConfig(index, field, value) {
       this.filters[index].config[field] = value
       this.fetchCandidates()
     },
-    deleteFilter (index) {
+    deleteFilter(index) {
       this.filters.splice(index, 1)
       this.fetchCandidates()
     },
-    fetch: function () {
+    fetch: function() {
       let self = this
       self.isLoading = true
-      let url = 'radios/radios/' + this.id + '/'
-      axios.get(url).then((response) => {
+      let url = "radios/radios/" + this.id + "/"
+      axios.get(url).then(response => {
         self.filters = response.data.config.map(f => {
           return {
             config: f,
-            filter: this.availableFilters.filter(e => { return e.type === f.type })[0],
+            filter: this.availableFilters.filter(e => {
+              return e.type === f.type
+            })[0],
             hash: +new Date()
           }
         })
@@ -174,24 +176,22 @@ export default {
         self.isLoading = false
       })
     },
-    fetchCandidates: function () {
+    fetchCandidates: function() {
       let self = this
-      let url = 'radios/radios/validate/'
+      let url = "radios/radios/validate/"
       let final = this.filters.map(f => {
         let c = _.clone(f.config)
         c.type = f.filter.type
         return c
       })
       final = {
-        'filters': [
-          {'type': 'group', filters: final}
-        ]
+        filters: [{ type: "group", filters: final }]
       }
-      axios.post(url, final).then((response) => {
+      axios.post(url, final).then(response => {
         self.checkResult = response.data.filters[0]
       })
     },
-    save: function () {
+    save: function() {
       let self = this
       self.success = false
       self.isLoading = true
@@ -202,24 +202,24 @@ export default {
         return c
       })
       final = {
-        'name': this.radioName,
-        'description': this.radioDesc,
-        'is_public': this.isPublic,
-        'config': final
+        name: this.radioName,
+        description: this.radioDesc,
+        is_public: this.isPublic,
+        config: final
       }
       if (this.id) {
-        let url = 'radios/radios/' + this.id + '/'
-        axios.put(url, final).then((response) => {
+        let url = "radios/radios/" + this.id + "/"
+        axios.put(url, final).then(response => {
           self.isLoading = false
           self.success = true
         })
       } else {
-        let url = 'radios/radios/'
-        axios.post(url, final).then((response) => {
+        let url = "radios/radios/"
+        axios.post(url, final).then(response => {
           self.success = true
           self.isLoading = false
           self.$router.push({
-            name: 'library.radios.detail',
+            name: "library.radios.detail",
             params: {
               id: response.data.id
             }
@@ -229,30 +229,28 @@ export default {
     }
   },
   computed: {
-    labels () {
-      let title = this.$gettext('Radio Builder')
+    labels() {
+      let title = this.$gettext("Radio Builder")
       let placeholder = {
-        'name': this.$gettext('My awesome radio'),
-        'description': this.$gettext('My awesome description')
+        name: this.$gettext("My awesome radio"),
+        description: this.$gettext("My awesome description")
       }
       return {
         title,
         placeholder
       }
     },
-    canSave: function () {
-      return (
-        this.radioName.length > 0 && this.checkErrors.length === 0
-      )
+    canSave: function() {
+      return this.radioName.length > 0 && this.checkErrors.length === 0
     },
-    checkErrors: function () {
+    checkErrors: function() {
       if (!this.checkResult) {
         return []
       }
       let errors = this.checkResult.errors
       return errors
     },
-    currentFilter: function () {
+    currentFilter: function() {
       let self = this
       return this.availableFilters.filter(e => {
         return e.type === self.currentFilterType
@@ -261,7 +259,7 @@ export default {
   },
   watch: {
     filters: {
-      handler: function () {
+      handler: function() {
         this.fetchCandidates()
       },
       deep: true
diff --git a/front/src/components/library/radios/Filter.vue b/front/src/components/library/radios/Filter.vue
index 470d852fadfda8f5e292e8d256584d550d55cc8c..fcf5efb8de7d8eb751c702ae0c8c410219e63dd4 100644
--- a/front/src/components/library/radios/Filter.vue
+++ b/front/src/components/library/radios/Filter.vue
@@ -64,7 +64,7 @@
 <script>
 import axios from 'axios'
 import $ from 'jquery'
-import _ from 'lodash'
+import _ from '@/lodash'
 
 import Modal from '@/components/semantic/Modal'
 import TrackTable from '@/components/audio/track/Table'
@@ -113,7 +113,7 @@ export default {
         settings.fields = f.autocomplete_fields
         settings.minCharacters = 1
         settings.apiSettings = {
-          url: f.autocomplete + '?' + f.autocomplete_qs,
+          url: self.$store.getters['instance/absoluteUrl'](f.autocomplete + '?' + f.autocomplete_qs),
           beforeXHR: function (xhrObject) {
             xhrObject.setRequestHeader('Authorization', self.$store.getters['auth/header'])
             return xhrObject
diff --git a/front/src/components/manage/library/FilesTable.vue b/front/src/components/manage/library/FilesTable.vue
index 1f5fc397640ccc59e2e62bb38926c500f5872d01..430291a21c2587bf7cac5712fb61b287762608e0 100644
--- a/front/src/components/manage/library/FilesTable.vue
+++ b/front/src/components/manage/library/FilesTable.vue
@@ -15,7 +15,7 @@
           </select>
         </div>
         <div class="field">
-          <label><translate>Ordering direction</translate></label>
+          <label><translate>Order</translate></label>
           <select class="ui dropdown" v-model="orderingDirection">
             <option value="+"><translate>Ascending</translate></option>
             <option value="-"><translate>Descending</translate></option>
@@ -106,7 +106,7 @@
 
 <script>
 import axios from 'axios'
-import _ from 'lodash'
+import _ from '@/lodash'
 import time from '@/utils/time'
 import Pagination from '@/components/Pagination'
 import ActionTable from '@/components/common/ActionTable'
@@ -173,7 +173,7 @@ export default {
   computed: {
     labels () {
       return {
-        searchPlaceholder: this.$gettext('Search by title, artist, domain...')
+        searchPlaceholder: this.$gettext('Search by title, artist, domain…')
       }
     },
     actionFilters () {
diff --git a/front/src/components/manage/moderation/AccountsTable.vue b/front/src/components/manage/moderation/AccountsTable.vue
new file mode 100644
index 0000000000000000000000000000000000000000..d8050ecb5f1ddda804df94860fedccca5619dcf6
--- /dev/null
+++ b/front/src/components/manage/moderation/AccountsTable.vue
@@ -0,0 +1,210 @@
+<template>
+  <div>
+    <div class="ui inline form">
+      <div class="fields">
+        <div class="ui six wide field">
+          <label><translate>Search</translate></label>
+          <form @submit.prevent="search.query = $refs.search.value">
+            <input ref="search" type="text" :value="search.query" :placeholder="labels.searchPlaceholder" />
+          </form>
+        </div>
+        <div class="field">
+          <label><translate>Ordering</translate></label>
+          <select class="ui dropdown" v-model="ordering">
+            <option v-for="option in orderingOptions" :value="option[0]">
+              {{ sharedLabels.filters[option[1]] }}
+            </option>
+          </select>
+        </div>
+        <div class="field">
+          <label><translate>Ordering direction</translate></label>
+          <select class="ui dropdown" v-model="orderingDirection">
+            <option value="+"><translate>Ascending</translate></option>
+            <option value="-"><translate>Descending</translate></option>
+          </select>
+        </div>
+      </div>
+      </div>
+    <div class="dimmable">
+      <div v-if="isLoading" class="ui active inverted dimmer">
+          <div class="ui loader"></div>
+      </div>
+      <action-table
+        v-if="result"
+        @action-launched="fetchData"
+        :objects-data="result"
+        :actions="actions"
+        action-url="manage/accounts/action/"
+        :filters="actionFilters">
+        <template slot="header-cells">
+          <th><translate>Name</translate></th>
+          <th><translate>Domain</translate></th>
+          <th><translate>Uploads</translate></th>
+          <th><translate>First seen</translate></th>
+          <th><translate>Last seen</translate></th>
+          <th><translate>Under moderation rule</translate></th>
+        </template>
+        <template slot="row-cells" slot-scope="scope">
+          <td>
+            <router-link :to="{name: 'manage.moderation.accounts.detail', params: {id: scope.obj.full_username }}">{{ scope.obj.preferred_username }}</router-link>
+          </td>
+          <td>
+            <template v-if="!scope.obj.user">
+              <router-link :to="{name: 'manage.moderation.domains.detail', params: {id: scope.obj.domain }}">
+                <i class="wrench icon"></i>
+              </router-link>
+              <span role="button" class="discrete link" @click="addSearchToken('domain', scope.obj.domain)" :title="scope.obj.domain">{{ scope.obj.domain }}</span>
+            </template>
+            <span role="button" v-else class="ui tiny teal icon link label" @click="addSearchToken('domain', scope.obj.domain)">
+              <i class="home icon"></i>
+              <translate>Local account</translate>
+            </span>
+          </td>
+          <td>
+            {{ scope.obj.uploads_count }}
+          </td>
+          <td>
+            <human-date :date="scope.obj.creation_date"></human-date>
+          </td>
+          <td>
+            <human-date v-if="scope.obj.last_fetch_date" :date="scope.obj.last_fetch_date"></human-date>
+          </td>
+          <td>
+            <span v-if="scope.obj.instance_policy"><i class="shield icon"></i> <translate>Yes</translate></span>
+          </td>
+        </template>
+      </action-table>
+    </div>
+    <div>
+      <pagination
+        v-if="result && result.count > paginateBy"
+        @page-changed="selectPage"
+        :compact="true"
+        :current="page"
+        :paginate-by="paginateBy"
+        :total="result.count"
+        ></pagination>
+
+      <span v-if="result && result.results.length > 0">
+        <translate
+          :translate-params="{start: ((page-1) * paginateBy) + 1, end: ((page-1) * paginateBy) + result.results.length, total: result.count}">
+          Showing results %{ start }-%{ end } on %{ total }
+        </translate>
+      </span>
+    </div>
+  </div>
+</template>
+
+<script>
+import axios from 'axios'
+import _ from '@/lodash'
+import time from '@/utils/time'
+import {normalizeQuery, parseTokens} from '@/search'
+import Pagination from '@/components/Pagination'
+import ActionTable from '@/components/common/ActionTable'
+import OrderingMixin from '@/components/mixins/Ordering'
+import TranslationsMixin from '@/components/mixins/Translations'
+import SmartSearchMixin from '@/components/mixins/SmartSearch'
+
+
+export default {
+  mixins: [OrderingMixin, TranslationsMixin, SmartSearchMixin],
+  props: {
+    filters: {type: Object, required: false},
+  },
+  components: {
+    Pagination,
+    ActionTable
+  },
+  data () {
+    let defaultOrdering = this.getOrderingFromString(this.defaultOrdering || '-creation_date')
+    return {
+      time,
+      isLoading: false,
+      result: null,
+      page: 1,
+      paginateBy: 50,
+      search: {
+        query: this.defaultQuery,
+        tokens: parseTokens(normalizeQuery(this.defaultQuery))
+      },
+      orderingDirection: defaultOrdering.direction || '+',
+      ordering: defaultOrdering.field,
+      orderingOptions: [
+        ['creation_date', 'first_seen'],
+        ["last_fetch_date", "last_seen"],
+        ["preferred_username", "username"],
+        ["domain", "domain"],
+        ["uploads_count", "uploads"],
+      ]
+    }
+  },
+  created () {
+    this.fetchData()
+  },
+  methods: {
+    fetchData () {
+      let params = _.merge({
+        'page': this.page,
+        'page_size': this.paginateBy,
+        'q': this.search.query,
+        'ordering': this.getOrderingAsString()
+      }, this.filters)
+      let self = this
+      self.isLoading = true
+      self.checked = []
+      axios.get('/manage/accounts/', {params: params}).then((response) => {
+        self.result = response.data
+        self.isLoading = false
+      }, error => {
+        self.isLoading = false
+        self.errors = error.backendErrors
+      })
+    },
+    selectPage: function (page) {
+      this.page = page
+    }
+  },
+  computed: {
+    labels () {
+      return {
+        searchPlaceholder: this.$gettext('Search by domain, username, bio...')
+      }
+    },
+    actionFilters () {
+      var currentFilters = {
+        q: this.search.query
+      }
+      if (this.filters) {
+        return _.merge(currentFilters, this.filters)
+      } else {
+        return currentFilters
+      }
+    },
+    actions () {
+      return [
+        {
+          name: 'purge',
+          label: this.$gettext('Purge'),
+          isDangerous: true
+        }
+      ]
+    }
+  },
+  watch: {
+    search (newValue) {
+      this.page = 1
+      this.fetchData()
+    },
+    page () {
+      this.fetchData()
+    },
+    ordering () {
+      this.fetchData()
+    },
+    orderingDirection () {
+      this.fetchData()
+    }
+  }
+}
+</script>
diff --git a/front/src/components/manage/moderation/DomainsTable.vue b/front/src/components/manage/moderation/DomainsTable.vue
new file mode 100644
index 0000000000000000000000000000000000000000..835b04db585427dc66904bccb870366ca2f1e98c
--- /dev/null
+++ b/front/src/components/manage/moderation/DomainsTable.vue
@@ -0,0 +1,190 @@
+<template>
+  <div>
+    <div class="ui inline form">
+      <div class="fields">
+        <div class="ui field">
+          <label><translate>Search</translate></label>
+          <input type="text" v-model="search" :placeholder="labels.searchPlaceholder" />
+        </div>
+        <div class="field">
+          <label><translate>Ordering</translate></label>
+          <select class="ui dropdown" v-model="ordering">
+            <option v-for="option in orderingOptions" :value="option[0]">
+              {{ sharedLabels.filters[option[1]] }}
+            </option>
+          </select>
+        </div>
+        <div class="field">
+          <label><translate>Ordering direction</translate></label>
+          <select class="ui dropdown" v-model="orderingDirection">
+            <option value="+"><translate>Ascending</translate></option>
+            <option value="-"><translate>Descending</translate></option>
+          </select>
+        </div>
+      </div>
+      </div>
+    <div class="dimmable">
+      <div v-if="isLoading" class="ui active inverted dimmer">
+          <div class="ui loader"></div>
+      </div>
+      <action-table
+        v-if="result"
+        @action-launched="fetchData"
+        :objects-data="result"
+        :actions="actions"
+        action-url="manage/federation/domains/action/"
+        idField="name"
+        :filters="actionFilters">
+        <template slot="header-cells">
+          <th><translate>Name</translate></th>
+          <th><translate>Users</translate></th>
+          <th><translate>Received messages</translate></th>
+          <th><translate>First seen</translate></th>
+          <th><translate>Under moderation rule</translate></th>
+        </template>
+        <template slot="row-cells" slot-scope="scope">
+          <td>
+            <router-link :to="{name: 'manage.moderation.domains.detail', params: {id: scope.obj.name }}">{{ scope.obj.name }}</router-link>
+          </td>
+          <td>
+            {{ scope.obj.actors_count }}
+          </td>
+          <td>
+            {{ scope.obj.outbox_activities_count }}
+          </td>
+          <td>
+            <human-date :date="scope.obj.creation_date"></human-date>
+          </td>
+          <td>
+            <span v-if="scope.obj.instance_policy"><i class="shield icon"></i> <translate>Yes</translate></span>
+          </td>
+        </template>
+      </action-table>
+    </div>
+    <div>
+      <pagination
+        v-if="result && result.count > paginateBy"
+        @page-changed="selectPage"
+        :compact="true"
+        :current="page"
+        :paginate-by="paginateBy"
+        :total="result.count"
+        ></pagination>
+
+      <span v-if="result && result.results.length > 0">
+        <translate
+          :translate-params="{start: ((page-1) * paginateBy) + 1, end: ((page-1) * paginateBy) + result.results.length, total: result.count}">
+          Showing results %{ start }-%{ end } on %{ total }
+        </translate>
+      </span>
+    </div>
+  </div>
+</template>
+
+<script>
+import axios from 'axios'
+import _ from '@/lodash'
+import time from '@/utils/time'
+import Pagination from '@/components/Pagination'
+import ActionTable from '@/components/common/ActionTable'
+import OrderingMixin from '@/components/mixins/Ordering'
+import TranslationsMixin from '@/components/mixins/Translations'
+
+export default {
+  mixins: [OrderingMixin, TranslationsMixin],
+  props: {
+    filters: {type: Object, required: false}
+  },
+  components: {
+    Pagination,
+    ActionTable
+  },
+  data () {
+    let defaultOrdering = this.getOrderingFromString(this.defaultOrdering || '-creation_date')
+    return {
+      time,
+      isLoading: false,
+      result: null,
+      page: 1,
+      paginateBy: 50,
+      search: '',
+      orderingDirection: defaultOrdering.direction || '+',
+      ordering: defaultOrdering.field,
+      orderingOptions: [
+        ['name', 'name'],
+        ['creation_date', 'first_seen'],
+        ['actors_count', 'users'],
+        ['outbox_activities_count', 'received_messages']
+      ]
+
+    }
+  },
+  created () {
+    this.fetchData()
+  },
+  methods: {
+    fetchData () {
+      let params = _.merge({
+        'page': this.page,
+        'page_size': this.paginateBy,
+        'q': this.search,
+        'ordering': this.getOrderingAsString()
+      }, this.filters)
+      let self = this
+      self.isLoading = true
+      self.checked = []
+      axios.get('/manage/federation/domains/', {params: params}).then((response) => {
+        self.result = response.data
+        self.isLoading = false
+      }, error => {
+        self.isLoading = false
+        self.errors = error.backendErrors
+      })
+    },
+    selectPage: function (page) {
+      this.page = page
+    }
+  },
+  computed: {
+    labels () {
+      return {
+        searchPlaceholder: this.$gettext('Search by name...')
+      }
+    },
+    actionFilters () {
+      var currentFilters = {
+        q: this.search
+      }
+      if (this.filters) {
+        return _.merge(currentFilters, this.filters)
+      } else {
+        return currentFilters
+      }
+    },
+    actions () {
+      return [
+        {
+          name: 'purge',
+          label: this.$gettext('Purge'),
+          isDangerous: true
+        }
+      ]
+    }
+  },
+  watch: {
+    search (newValue) {
+      this.page = 1
+      this.fetchData()
+    },
+    page () {
+      this.fetchData()
+    },
+    ordering () {
+      this.fetchData()
+    },
+    orderingDirection () {
+      this.fetchData()
+    }
+  }
+}
+</script>
diff --git a/front/src/components/manage/moderation/InstancePolicyCard.vue b/front/src/components/manage/moderation/InstancePolicyCard.vue
new file mode 100644
index 0000000000000000000000000000000000000000..c7d11585611fa02aab39f2d88ff36aaa31249523
--- /dev/null
+++ b/front/src/components/manage/moderation/InstancePolicyCard.vue
@@ -0,0 +1,72 @@
+<template>
+  <div>
+    <slot></slot>
+    <p>
+      <i class="clock outline icon"></i><human-date :date="object.creation_date" /> &nbsp;
+      <i class="user icon"></i>{{ object.actor }}  &nbsp;
+      <template v-if="object.is_active">
+        <i class="play icon"></i>
+        <translate>Enabled</translate>
+      </template>
+      <template v-if="!object.is_active">
+        <i class="pause icon"></i>
+        <translate>Paused</translate>
+      </template>
+    </p>
+    <div>
+      <p><strong><translate>Rule</translate></strong></p>
+      <p v-if="object.block_all">
+        <i class="ban icon"></i>
+        <translate>Block everything</translate>
+      </p>
+      <div v-else class="ui list">
+        <div class="ui item" v-if="object.silence_activity">
+          <i class="feed icon"></i>
+          <div class="content"><translate>Silence activity</translate></div>
+        </div>
+        <div class="ui item" v-if="object.silence_notifications">
+          <i class="bell icon"></i>
+          <div class="content"><translate>Silence notifications</translate></div>
+        </div>
+        <div class="ui item" v-if="object.reject_media">
+          <i class="file icon"></i>
+          <div class="content"><translate>Reject media</translate></div>
+        </div>
+
+      </div>
+    </div>
+    <div v-if="markdown && object.summary">
+      <div class="ui hidden divider"></div>
+      <p><strong><translate>Reason</translate></strong></p>
+      <div v-html="markdown.makeHtml(object.summary)"></div>
+    </div>
+    <div class="ui hidden divider"></div>
+    <button @click="$emit('update')" class="ui right floated labeled icon button">
+      <i class="edit icon"></i>
+      <translate>Update</translate>
+    </button>
+  </div>
+</template>
+
+<script>
+
+export default {
+  props: {
+    object: {type: Object, default: null},
+  },
+  data () {
+    return {
+      markdown: null
+    }
+  },
+  created () {
+    let self = this
+    import('showdown').then(module => {
+      self.markdown = new module.default.Converter({simplifiedAutoLink: true, openLinksInNewWindow: true})
+    })
+  }
+}
+</script>
+
+<style scoped>
+</style>
diff --git a/front/src/components/manage/moderation/InstancePolicyForm.vue b/front/src/components/manage/moderation/InstancePolicyForm.vue
new file mode 100644
index 0000000000000000000000000000000000000000..98fd1d644fcbf3c12477a6c1125ceac03fdd63d7
--- /dev/null
+++ b/front/src/components/manage/moderation/InstancePolicyForm.vue
@@ -0,0 +1,214 @@
+<template>
+  <form class="ui form" @submit.prevent="createOrUpdate">
+    <h3 class="ui header">
+      <translate v-if="object" key="1">Update moderation rule</translate>
+      <translate v-else key="2">Add a new moderation rule</translate>
+    </h3>
+    <div v-if="errors && errors.length > 0" class="ui negative message">
+      <div class="header"><translate>Error while creating rule</translate></div>
+      <ul class="list">
+        <li v-for="error in errors">{{ error }}</li>
+      </ul>
+    </div>
+
+    <div class="field" v-if="object">
+      <div class="ui toggle checkbox">
+        <input id="policy-is-active" v-model="current.isActive" type="checkbox">
+        <label for="policy-is-active">
+          <translate v-if="current.isActive" key="1">Enabled</translate>
+          <translate v-else key="2">Disabled</translate>
+          <tooltip :content="labels.isActiveHelp" />
+        </label>
+      </div>
+    </div>
+    <div class="field">
+      <label for="policy-summary">
+        <translate>Reason</translate>
+        <tooltip :content="labels.summaryHelp" />
+      </label>
+      <textarea name="policy-summary" id="policy-summary" rows="5" v-model="current.summary"></textarea>
+    </div>
+    <div class="field">
+      <div class="ui toggle checkbox">
+        <input id="policy-is-active" v-model="current.blockAll" type="checkbox">
+        <label for="policy-is-active">
+          <translate>Block everything</translate>
+          <tooltip :content="labels.blockAllHelp" />
+        </label>
+      </div>
+    </div>
+    <div class="ui horizontal divider">
+      <translate>Or customize your rule</translate>
+    </div>
+    <div v-for="config in fieldConfig" :class="['field']">
+      <div class="ui toggle checkbox">
+        <input :id="'policy-' + config.id" v-model="current[config.id]" type="checkbox">
+        <label :for="'policy-' + config.id">
+          <i :class="[config.icon, 'icon']"></i>
+          {{ labels[config.id].label }}
+          <tooltip :content="labels[config.id].help" />
+        </label>
+      </div>
+    </div>
+    <div class="ui hidden divider"></div>
+    <button @click="$emit('cancel')" class="ui basic left floated button">
+      <translate>Cancel</translate>
+    </button>
+    <button :class="['ui', 'right', 'floated', 'green', {'disabled loading': isLoading}, 'button']" :disabled="isLoading">
+      <translate v-if="object" key="1">Update</translate>
+      <translate v-else key="2">Create</translate>
+    </button>
+    <dangerous-button v-if="object" class="right floated basic button" color='red' @confirm="remove">
+      <translate>Delete</translate>
+      <p slot="modal-header">
+        <translate>Delete this moderation rule?</translate>
+      </p>
+      <p slot="modal-content">
+        <translate>This action is irreversible.</translate>
+      </p>
+      <p slot="modal-confirm">
+        <translate>Delete moderation rule</translate>
+      </p>
+    </dangerous-button>
+  </form>
+</template>
+
+<script>
+import axios from 'axios'
+import _ from 'lodash'
+
+export default {
+  props: {
+    type: {type: String, required: true},
+    object: {type: Object, default: null},
+    target: {type: String, required: true},
+  },
+  data () {
+    let current = this.object || {}
+    return {
+      isLoading: false,
+      errors: [],
+      current: {
+        summary: _.get(current, 'summary', ''),
+        isActive: _.get(current, 'is_active', true),
+        blockAll: _.get(current, 'block_all', true),
+        silenceActivity: _.get(current, 'silence_activity', false),
+        silenceNotifications: _.get(current, 'silence_notifications', false),
+        rejectMedia: _.get(current, 'reject_media', false),
+      },
+      fieldConfig: [
+        // we hide those until we actually have the related features implemented :)
+        // {id: "silenceActivity", icon: "feed"},
+        // {id: "silenceNotifications", icon: "bell"},
+        {id: "rejectMedia", icon: "file"},
+      ]
+    }
+  },
+  computed: {
+    labels () {
+      return {
+        summaryHelp: this.$gettext("Explain why you're applying this policy. Depending on your instance configuration, this will help you remember why you acted on this account or domain, and may be displayed publicly to help users understand what moderation rules are in place."),
+        isActiveHelp: this.$gettext("Use this setting to temporarily enable/disable the policy without completely removing it."),
+        blockAllHelp: this.$gettext("Block everything from this account or domain. This will prevent any interaction with the entity, and purge related content (uploads, libraries, follows, etc.)"),
+        silenceActivity: {
+          help: this.$gettext("Hide account or domain content, except from followers."),
+          label: this.$gettext("Silence activity"),
+        },
+        silenceNotifications: {
+          help: this.$gettext("Prevent account or domain from triggering notifications, except from followers."),
+          label: this.$gettext("Silence notifications"),
+        },
+        rejectMedia: {
+          help: this.$gettext("Do not download any media file (audio, album cover, account avatar…) from this account or domain. This will purge existing content as well."),
+          label: this.$gettext("Reject media"),
+        }
+      }
+    }
+  },
+  methods: {
+    createOrUpdate () {
+      let self = this
+      this.isLoading = true
+      this.errors = []
+      let url, method
+      let data = {
+        summary: this.current.summary,
+        is_active: this.current.isActive,
+        block_all: this.current.blockAll,
+        silence_activity: this.current.silenceActivity,
+        silence_notifications: this.current.silenceNotifications,
+        reject_media: this.current.rejectMedia,
+        target: {
+          type: this.type,
+          id: this.target,
+        }
+      }
+      if (this.object) {
+        url = `manage/moderation/instance-policies/${this.object.id}/`
+        method = 'patch'
+      } else {
+        url = `manage/moderation/instance-policies/`
+        method = 'post'
+      }
+      axios[method](url, data).then((response) => {
+        this.isLoading = false
+        self.$emit('save', response.data)
+      }, (error) => {
+        self.isLoading = false
+        self.errors = error.backendErrors
+      })
+    },
+    remove () {
+      let self = this
+      this.isLoading = true
+      this.errors = []
+
+      let url = `manage/moderation/instance-policies/${this.object.id}/`
+      axios.delete(url).then((response) => {
+        this.isLoading = false
+        self.$emit('delete')
+      }, (error) => {
+        self.isLoading = false
+        self.errors = error.backendErrors
+      })
+    }
+  },
+  watch: {
+    'current.silenceActivity': function (v) {
+      if (v) {
+        this.current.blockAll = false
+      }
+    },
+    'current.silenceNotifications': function (v) {
+      if (v) {
+        this.current.blockAll = false
+      }
+    },
+    'current.rejectMedia': function (v) {
+      if (v) {
+        this.current.blockAll = false
+      }
+    },
+    'current.blockAll': function (v) {
+      if (v) {
+        let self = this
+        this.fieldConfig.forEach((f) => {
+          self.current[f.id] = false
+        })
+      }
+    }
+  }
+}
+</script>
+
+<style scoped>
+.ui.placeholder.segment .field,
+.ui.placeholder.segment textarea,
+.ui.placeholder.segment > .ui.input,
+.ui.placeholder.segment .button {
+  max-width: 100%;
+}
+.segment .right.floated.button {
+  margin-left: 1em;
+}
+</style>
diff --git a/front/src/components/manage/users/InvitationsTable.vue b/front/src/components/manage/users/InvitationsTable.vue
index d697c3821d7a7b019fcb9e12c3ba01d6401f7834..2fb767ad0a0011570ad0705772e2f213f8124d13 100644
--- a/front/src/components/manage/users/InvitationsTable.vue
+++ b/front/src/components/manage/users/InvitationsTable.vue
@@ -86,7 +86,7 @@
 <script>
 import axios from 'axios'
 import moment from 'moment'
-import _ from 'lodash'
+import _ from '@/lodash'
 import Pagination from '@/components/Pagination'
 import ActionTable from '@/components/common/ActionTable'
 import OrderingMixin from '@/components/mixins/Ordering'
@@ -150,7 +150,7 @@ export default {
   computed: {
     labels () {
       return {
-        searchPlaceholder: this.$gettext('Search by username, email, code...')
+        searchPlaceholder: this.$gettext('Search by username, e-mail address, code…')
       }
     },
     actionFilters () {
diff --git a/front/src/components/manage/users/UsersTable.vue b/front/src/components/manage/users/UsersTable.vue
index cb46ed811fbdcb228b8de252f949f40f44fd2d10..f44ae89a07e541431f8c859d769d55b190a87f76 100644
--- a/front/src/components/manage/users/UsersTable.vue
+++ b/front/src/components/manage/users/UsersTable.vue
@@ -15,7 +15,7 @@
           </select>
         </div>
         <div class="field">
-          <label><translate>Ordering direction</translate></label>
+          <label><translate>Order</translate></label>
           <select class="ui dropdown" v-model="orderingDirection">
             <option value="+"><translate>Ascending</translate></option>
             <option value="-"><translate>Descending</translate></option>
@@ -45,7 +45,7 @@
         </template>
         <template slot="row-cells" slot-scope="scope">
           <td>
-            <router-link :to="{name: 'manage.users.users.detail', params: {id: scope.obj.id }}">{{ scope.obj.username }}</router-link>
+            <router-link :to="{name: 'manage.moderation.accounts.detail', params: {id: scope.obj.full_username }}">{{ scope.obj.username }}</router-link>
           </td>
           <td>
             <span>{{ scope.obj.email }}</span>
@@ -96,7 +96,7 @@
 
 <script>
 import axios from 'axios'
-import _ from 'lodash'
+import _ from '@/lodash'
 import time from '@/utils/time'
 import Pagination from '@/components/Pagination'
 import ActionTable from '@/components/common/ActionTable'
@@ -160,7 +160,7 @@ export default {
   computed: {
     labels () {
       return {
-        searchPlaceholder: this.$gettext('Search by username, email, name...')
+        searchPlaceholder: this.$gettext('Search by username, e-mail address, name…')
       }
     },
     privacyLevels () {
@@ -168,17 +168,13 @@ export default {
     },
     permissions () {
       return [
-        {
-          'code': 'upload',
-          'label': this.$gettext('Upload')
-        },
         {
           'code': 'library',
           'label': this.$gettext('Library')
         },
         {
-          'code': 'federation',
-          'label': this.$gettext('Federation')
+          'code': 'moderation',
+          'label': this.$gettext('Moderation')
         },
         {
           'code': 'settings',
diff --git a/front/src/components/metadata/ArtistCard.vue b/front/src/components/metadata/ArtistCard.vue
index ef2fc616af41523a33fa564d97cdc0905a93024d..98c35337ece4e0c093fc4d77fe0519b835f3b04a 100644
--- a/front/src/components/metadata/ArtistCard.vue
+++ b/front/src/components/metadata/ArtistCard.vue
@@ -5,9 +5,9 @@
         <div :class="['ui', 'centered', 'active', 'inline', 'loader']"></div>
       </div>
       <template v-if="data.id">
-        <div class="header">
+        <header class="header">
           <a :href="getMusicbrainzUrl('artist', data.id)" target="_blank" :title="labels.musicbrainz">{{ data.name }}</a>
-        </div>
+        </header>
         <div class="description">
           <table class="ui very basic fixed single line compact table">
             <tbody>
@@ -32,29 +32,29 @@
 </template>
 
 <script>
-import Vue from 'vue'
-import CardMixin from './CardMixin'
-import time from '@/utils/time'
+import Vue from "vue"
+import CardMixin from "./CardMixin"
+import time from "@/utils/time"
 
 export default Vue.extend({
   mixins: [CardMixin],
-  data () {
+  data() {
     return {
       time
     }
   },
   computed: {
-    labels () {
+    labels() {
       return {
-        musicbrainz: this.$gettext('View on MusicBrainz')
+        musicbrainz: this.$gettext("View on MusicBrainz")
       }
     },
-    type () {
-      return 'artist'
+    type() {
+      return "artist"
     },
-    releasesGroups () {
-      return this.data['release-group-list'].filter(r => {
-        return r.type === 'Album'
+    releasesGroups() {
+      return this.data["release-group-list"].filter(r => {
+        return r.type === "Album"
       })
     }
   }
@@ -64,6 +64,6 @@ export default Vue.extend({
 <!-- Add "scoped" attribute to limit CSS to this component only -->
 <style scoped lang="scss">
 .ui.card {
-    width: 100% !important;
+  width: 100% !important;
 }
 </style>
diff --git a/front/src/components/metadata/Search.vue b/front/src/components/metadata/Search.vue
index 4e8bf357d3fbd8e8e310c5971bf9015626e7c47f..c06e2706297fb4da0960434ced776c8f79db3298 100644
--- a/front/src/components/metadata/Search.vue
+++ b/front/src/components/metadata/Search.vue
@@ -111,7 +111,7 @@ export default {
   computed: {
     labels () {
       return {
-        placeholder: this.$gettext('Enter your search query...')
+        placeholder: this.$gettext('Enter your search query…')
       }
     },
     currentTypeObject: function () {
diff --git a/front/src/components/mixins/SmartSearch.vue b/front/src/components/mixins/SmartSearch.vue
new file mode 100644
index 0000000000000000000000000000000000000000..8b03becbbd8e7fb7b3bd38eaa673d9b01615a728
--- /dev/null
+++ b/front/src/components/mixins/SmartSearch.vue
@@ -0,0 +1,65 @@
+<script>
+
+import {normalizeQuery, parseTokens, compileTokens} from '@/search'
+
+export default {
+  props: {
+    defaultQuery: {type: String, required: false},
+    updateUrl: {type: Boolean, required: false, default: false},
+  },
+  methods: {
+    getTokenValue (key, fallback) {
+      let matching = this.search.tokens.filter(t => {
+        return t.field === key
+      })
+      if (matching.length > 0) {
+        return matching[0].value
+      }
+      return fallback
+    },
+    addSearchToken (key, value) {
+      if (!value) {
+        // we remove existing matching tokens, if any
+        this.search.tokens = this.search.tokens.filter(t => {
+          return t.field != key
+        })
+      } else {
+        let existing = this.search.tokens.filter(t => {
+          return t.field === key
+        })
+        if (existing.length > 0) {
+          // we replace the value in existing tokens, if any
+          existing.forEach(t => {
+            t.value = value
+          })
+        } else {
+          // we add a new token
+          this.search.tokens.push({field: key, value})
+        }
+      }
+    },
+  },
+  watch: {
+    'search.query' (newValue) {
+      this.search.tokens = parseTokens(normalizeQuery(newValue))
+    },
+    'search.tokens': {
+      handler (newValue) {
+        this.search.query = compileTokens(newValue)
+        this.page = 1
+        this.fetchData()
+        if (this.updateUrl) {
+          let params = {}
+          if (this.search.query) {
+            params.q = this.search.query
+          }
+          this.$router.replace({
+            query: params
+          })
+        }
+      },
+      deep: true
+    },
+  }
+}
+</script>
diff --git a/front/src/components/mixins/Translations.vue b/front/src/components/mixins/Translations.vue
index be35c2f3432d419123a7432ac976cb7b21d49cc0..9d237c9161bb14fb26339f18de51399ac924ac11 100644
--- a/front/src/components/mixins/Translations.vue
+++ b/front/src/components/mixins/Translations.vue
@@ -15,6 +15,8 @@ export default {
         },
         filters: {
           creation_date: this.$gettext('Creation date'),
+          first_seen: this.$gettext('First seen date'),
+          last_seen: this.$gettext('Last seen date'),
           accessed_date: this.$gettext('Accessed date'),
           modification_date: this.$gettext('Modification date'),
           imported_date: this.$gettext('Imported date'),
@@ -30,6 +32,11 @@ export default {
           date_joined: this.$gettext('Sign-up date'),
           last_activity: this.$gettext('Last activity'),
           username: this.$gettext('Username'),
+          domain: this.$gettext('Domain'),
+          users: this.$gettext('Users'),
+          received_messages: this.$gettext('Received messages'),
+          uploads: this.$gettext('Uploads'),
+          followers: this.$gettext('Followers'),
         }
       }
     }
diff --git a/front/src/components/playlists/Editor.vue b/front/src/components/playlists/Editor.vue
index 0dc76589093cf481a8cfa5bd7554a24c30d4f06f..8e7e0ae9dca1d126c51f04adf1f423e9583e0e74 100644
--- a/front/src/components/playlists/Editor.vue
+++ b/front/src/components/playlists/Editor.vue
@@ -7,7 +7,7 @@
     <div class="ui attached segment">
       <template v-if="status === 'loading'">
         <div class="ui active tiny inline loader"></div>
-        <translate>Syncing changes to server...</translate>
+        <translate>Syncing changes to server…</translate>
       </template>
       <template v-else-if="status === 'errored'">
         <i class="red close icon"></i>
diff --git a/front/src/components/playlists/PlaylistModal.vue b/front/src/components/playlists/PlaylistModal.vue
index a5a7e9ea0234c96ecea210c49e1e1444a305296a..3065631afb376deb5473d98188c81daf6a903aaf 100644
--- a/front/src/components/playlists/PlaylistModal.vue
+++ b/front/src/components/playlists/PlaylistModal.vue
@@ -67,7 +67,7 @@
 </template>
 
 <script>
-import _ from 'lodash'
+import _ from '@/lodash'
 import axios from 'axios'
 import {mapState} from 'vuex'
 
diff --git a/front/src/components/playlists/TrackPlaylistIcon.vue b/front/src/components/playlists/TrackPlaylistIcon.vue
index a75c217f4419935ee807fd7460404fcf756a677e..8487e6777b23c181749e8b8764fdc79bfeb7dc61 100644
--- a/front/src/components/playlists/TrackPlaylistIcon.vue
+++ b/front/src/components/playlists/TrackPlaylistIcon.vue
@@ -4,14 +4,16 @@
     v-if="button"
     :class="['ui', 'button']">
     <i class="list icon"></i>
-    <translate>Add to playlist...</translate>
+    <translate>Add to playlist…</translate>
   </button>
-  <i
+  <button
     v-else
     @click="$store.commit('playlists/chooseTrack', track)"
-    :class="['playlist-icon', 'list', 'link', 'icon']"
+    :class="['ui', 'basic', 'circular', 'icon', 'really', 'button']"
+    :aria-label="labels.addToPlaylist"
     :title="labels.addToPlaylist">
-  </i>
+    <i :class="['list', 'basic', 'icon']"></i>
+  </button>
 </template>
 
 <script>
@@ -29,7 +31,7 @@ export default {
   computed: {
     labels () {
       return {
-        addToPlaylist: this.$gettext('Add to playlist...')
+        addToPlaylist: this.$gettext('Add to playlist…')
       }
     }
   }
diff --git a/front/src/components/playlists/Widget.vue b/front/src/components/playlists/Widget.vue
index 65904a12447fc0a7d9e0250bbc987f1f286b72e8..c289e6de9fafaa506a6398070beb251a0ba5ed50 100644
--- a/front/src/components/playlists/Widget.vue
+++ b/front/src/components/playlists/Widget.vue
@@ -3,12 +3,10 @@
     <h3 class="ui header">
       <slot name="title"></slot>
     </h3>
-    <i @click="fetchData(previousPage)" :disabled="!previousPage" :class="['ui', {disabled: !previousPage}, 'circular', 'medium', 'angle up', 'icon']">
-    </i>
-    <i @click="fetchData(nextPage)" :disabled="!nextPage" :class="['ui', {disabled: !nextPage}, 'circular', 'medium', 'angle down', 'icon']">
-    </i>
-    <i @click="fetchData(url)" :class="['ui', 'circular', 'medium', 'refresh', 'icon']">
-    </i>
+    <button :disabled="!previousPage" @click="fetchData(previousPage)" :class="['ui', {disabled: !previousPage}, 'circular', 'icon', 'basic', 'button']"><i :class="['ui', 'angle up', 'icon']"></i></button>
+    <button :disabled="!nextPage" @click="fetchData(nextPage)" :class="['ui', {disabled: !nextPage}, 'circular', 'icon', 'basic', 'button']"><i :class="['ui', 'angle down', 'icon']"></i></button>
+    <button @click="fetchData(url)" :class="['ui', 'circular', 'icon', 'basic', 'button']"><i :class="['ui', 'refresh', 'icon']"></i></button>
+
     <div v-if="isLoading" class="ui inverted active dimmer">
       <div class="ui loader"></div>
     </div>
@@ -17,7 +15,7 @@
 </template>
 
 <script>
-import _ from 'lodash'
+import _ from '@/lodash'
 import axios from 'axios'
 import PlaylistCard from '@/components/playlists/Card'
 
diff --git a/front/src/components/radios/Card.vue b/front/src/components/radios/Card.vue
index 20300f7ec67ed2e59489d084540cada456b30990..ae0ae20960e36e4f076b1da6c50fc4b3b7a9fa58 100644
--- a/front/src/components/radios/Card.vue
+++ b/front/src/components/radios/Card.vue
@@ -14,13 +14,13 @@
         </div>
       </div>
       <div class="extra content">
-        <user-link :user="radio.user" class="left floated" />
+        <user-link v-if="radio.user" :user="radio.user" class="left floated" />
         <radio-button class="right floated button" :type="type" :custom-radio-id="customRadioId"></radio-button>
         <router-link
           class="ui basic yellow button right floated"
           v-if="$store.state.auth.authenticated && type === 'custom' && radio.user.id === $store.state.auth.profile.id"
           :to="{name: 'library.radios.edit', params: {id: customRadioId }}">
-          <translate>Edit...</translate>
+          <translate>Edit…</translate>
         </router-link>
       </div>
     </div>
diff --git a/front/src/components/requests/Card.vue b/front/src/components/requests/Card.vue
deleted file mode 100644
index 36bbc944e5a6c0d47b4527235f6df2f9259351a3..0000000000000000000000000000000000000000
--- a/front/src/components/requests/Card.vue
+++ /dev/null
@@ -1,61 +0,0 @@
-<template>
-  <div :class="['ui', {collapsed: collapsed}, 'card']">
-    <div class="content">
-      <div class="header">{{ request.artist_name }}</div>
-      <div class="description">
-        <div
-          v-if="request.albums" v-html="$options.filters.markdown(request.albums)"></div>
-        <div class="ui comments">
-          <comment
-            :user="request.user"
-            :content="request.comment || ''"
-            :date="request.creation_date"></comment>
-        </div>
-      </div>
-    </div>
-    <div class="extra content">
-      <span >
-        <i v-if="request.status === 'pending'" class="hourglass start icon"></i>
-        <i v-if="request.status === 'accepted'" class="hourglass half icon"></i>
-        <i v-if="request.status === 'imported'" class="check icon"></i>
-        {{ request.status | capitalize }}
-      </span>
-      <button
-        @click="createImport"
-        v-if="request.status === 'pending' && importAction && $store.state.auth.availablePermissions['library']"
-        class="ui mini basic green right floated button"><translate>Create import</translate></button>
-
-    </div>
-  </div>
-</template>
-
-<script>
-import Comment from '@/components/discussion/Comment'
-
-export default {
-  props: {
-    request: {type: Object, required: true},
-    importAction: {type: Boolean, default: true}
-  },
-  components: {
-    Comment
-  },
-  data () {
-    return {
-      collapsed: true
-    }
-  },
-  methods: {
-    createImport () {
-      this.$router.push({
-        name: 'library.import.launch',
-        query: {request: this.request.id}})
-    }
-  }
-}
-</script>
-
-<!-- Add "scoped" attribute to limit CSS to this component only -->
-<style scoped>
-
-</style>
diff --git a/front/src/components/requests/Form.vue b/front/src/components/requests/Form.vue
deleted file mode 100644
index 667bd5f5acb7b7c6e0c0b00a3e5905d6f127f53c..0000000000000000000000000000000000000000
--- a/front/src/components/requests/Form.vue
+++ /dev/null
@@ -1,127 +0,0 @@
-<template>
-  <div>
-    <form v-if="!over" class="ui form" @submit.prevent="submit">
-      <p><translate>Something's missing in the library? Let us know what you would like to listen!</translate></p>
-      <div class="required field">
-        <label><translate>Artist name</translate></label>
-        <input v-model="currentArtistName" :placeholder="labels.artistNamePlaceholder" required maxlength="200">
-      </div>
-      <div class="field">
-        <label><translate>Albums</translate></label>
-        <p><translate>Leave this field empty if you're requesting the whole discography.</translate></p>
-        <input v-model="currentAlbums" :placeholder="labels.albumTitlePlaceholder" maxlength="2000">
-      </div>
-      <div class="field">
-        <label><translate>Comment</translate></label>
-        <textarea v-model="currentComment" rows="3" :placeholder="labels.commentPlaceholder" maxlength="2000"></textarea>
-      </div>
-      <button class="ui submit button" type="submit"><translate>Submit</translate></button>
-    </form>
-    <div v-else class="ui success message">
-      <div class="header"><translate>Request submitted!</translate></div>
-      <p><translate>We've received your request, you'll get some groove soon ;)</translate></p>
-      <button @click="reset" class="ui button"><translate>Submit another request</translate></button>
-    </div>
-    <div v-if="requests.length > 0">
-      <div class="ui divider"></div>
-      <h3 class="ui header"><translate>Pending requests</translate></h3>
-      <div class="ui list">
-        <div v-for="request in requests" class="item">
-          <div class="content">
-            <div class="header">{{ request.artist_name }}</div>
-            <div v-if="request.albums" class="description">
-              {{ request.albums|truncate }}</div>
-            <div v-if="request.comment" class="description">
-              {{ request.comment|truncate }}</div>
-          </div>
-        </div>
-      </div>
-    </div>
-  </div>
-</template>
-
-<script>
-import $ from 'jquery'
-import axios from 'axios'
-
-import logger from '@/logging'
-
-export default {
-  props: {
-    defaultArtistName: {type: String, default: ''},
-    defaultAlbums: {type: String, default: ''},
-    defaultComment: {type: String, default: ''}
-  },
-  created () {
-    this.fetchRequests()
-  },
-  mounted () {
-    $('.ui.radio.checkbox').checkbox()
-  },
-  data () {
-    return {
-      currentArtistName: this.defaultArtistName,
-      currentAlbums: this.defaultAlbums,
-      currentComment: this.defaultComment,
-      isLoading: false,
-      over: false,
-      requests: []
-    }
-  },
-  computed: {
-    labels () {
-      let artistNamePlaceholder = this.$gettext('The Beatles, Mickael Jackson…')
-      let albumTitlePlaceholder = this.$gettext('The White Album, Thriller…')
-      let commentPlaceholder = this.$gettext('Use this comment box to add details to your request if needed')
-      return {
-        artistNamePlaceholder,
-        albumTitlePlaceholder,
-        commentPlaceholder
-      }
-    }
-  },
-  methods: {
-    fetchRequests () {
-      let self = this
-      let url = 'requests/import-requests/'
-      axios.get(url, {}).then((response) => {
-        self.requests = response.data.results
-      })
-    },
-    submit () {
-      let self = this
-      this.isLoading = true
-      let url = 'requests/import-requests/'
-      let payload = {
-        artist_name: this.currentArtistName,
-        albums: this.currentAlbums,
-        comment: this.currentComment
-      }
-      axios.post(url, payload).then((response) => {
-        logger.default.info('Submitted request!')
-        self.isLoading = false
-        self.over = true
-        self.requests.unshift(response.data)
-      }, (response) => {
-        logger.default.error('error while submitting request')
-        self.isLoading = false
-      })
-    },
-    reset () {
-      this.over = false
-      this.currentArtistName = ''
-      this.currentAlbums = ''
-      this.currentComment = ''
-    },
-    truncate (string, length) {
-      if (string.length > length) {
-        return string.substring(0, length) + '…'
-      }
-      return string
-    }
-  }
-}
-</script>
-
-<style scoped>
-</style>
diff --git a/front/src/embed.js b/front/src/embed.js
new file mode 100644
index 0000000000000000000000000000000000000000..6de3ca1870aaad756f0e9b0dc8b7e4c5a0657c3f
--- /dev/null
+++ b/front/src/embed.js
@@ -0,0 +1,15 @@
+
+import Vue from 'vue'
+import Embed from './Embed'
+import VuePlyr from 'vue-plyr'
+
+Vue.use(VuePlyr)
+
+Vue.config.productionTip = false
+
+/* eslint-disable no-new */
+new Vue({
+  el: '#app',
+  template: '<Embed/>',
+  components: { Embed }
+})
diff --git a/front/src/filters.js b/front/src/filters.js
index 878b3c9f2813756914afdbe62c8f4459768b61ac..97dd2d5ee3abf93929ca67df2f87dabe56478f1d 100644
--- a/front/src/filters.js
+++ b/front/src/filters.js
@@ -1,7 +1,6 @@
 import Vue from 'vue'
 
 import moment from 'moment'
-import showdown from 'showdown'
 
 export function truncate (str, max, ellipsis) {
   max = max || 100
@@ -14,13 +13,6 @@ export function truncate (str, max, ellipsis) {
 
 Vue.filter('truncate', truncate)
 
-export function markdown (str) {
-  const converter = new showdown.Converter()
-  return converter.makeHtml(str)
-}
-
-Vue.filter('markdown', markdown)
-
 export function ago (date) {
   const m = moment(date)
   return m.fromNow()
diff --git a/front/src/locales.js b/front/src/locales.js
index db2d988078e1e727ffeff3a09ebb269f61c1a367..93f8fd4392b2eeeeac55596f61a2253f8af3b8b1 100644
--- a/front/src/locales.js
+++ b/front/src/locales.js
@@ -16,6 +16,10 @@ export default {
       "code": "de",
       "label": "Deutsch"
     },
+    {
+      "code": "eo",
+      "label": "Esperanto"
+    },
     {
       "code": "es",
       "label": "Español"
@@ -24,6 +28,10 @@ export default {
       "code": "fr_FR",
       "label": "Français"
     },
+    {
+      "code": "gl",
+      "label": "Galego"
+    },
     {
       "code": "it",
       "label": "Italiano"
@@ -39,6 +47,10 @@ export default {
     {
       "code": "pt_PT",
       "label": "Português (Portugal)"
+    },
+    {
+      "code": "ru",
+      "label": "Русский"
     }
   ]
 }
diff --git a/front/src/lodash.js b/front/src/lodash.js
new file mode 100644
index 0000000000000000000000000000000000000000..91e1a0eac30bdf5104a18913578bafcb35298fa6
--- /dev/null
+++ b/front/src/lodash.js
@@ -0,0 +1,13 @@
+// cherry-pick specific lodash methods here to reduce bundle size
+
+export default {
+  clone: require('lodash/clone'),
+  debounce: require('lodash/debounce'),
+  get: require('lodash/get'),
+  merge: require('lodash/merge'),
+  range: require('lodash/range'),
+  shuffle: require('lodash/shuffle'),
+  sortBy: require('lodash/sortBy'),
+  throttle: require('lodash/throttle'),
+  uniq: require('lodash/uniq'),
+}
diff --git a/front/src/main.js b/front/src/main.js
index eca2e620545a46e66dfc84606c3b85a0c2bab9f6..fbe676106bb40dbfdd44bd05b29e08e8768929ea 100644
--- a/front/src/main.js
+++ b/front/src/main.js
@@ -14,7 +14,6 @@ import VueLazyload from 'vue-lazyload'
 import store from './store'
 import GetTextPlugin from 'vue-gettext'
 import { sync } from 'vuex-router-sync'
-import translations from './translations.json'
 import locales from '@/locales'
 
 import filters from '@/filters' // eslint-disable-line
@@ -23,12 +22,9 @@ import globals from '@/components/globals' // eslint-disable-line
 sync(store, router)
 
 window.$ = window.jQuery = require('jquery')
-
-// this is absolutely dirty but at the moment, semantic UI does not
-// play really nice with webpack and I want to get rid of Google Fonts
-// require('./semantic/semantic.css')
-require('semantic-ui-css/semantic.js')
+require('./semantic.js')
 require('masonry-layout')
+
 let availableLanguages = (function () {
   let l = {}
   locales.locales.forEach(c => {
@@ -54,7 +50,7 @@ Vue.use(GetTextPlugin, {
       }
     }
   },
-  translations: translations,
+  translations: {},
   silent: true
 })
 
@@ -101,7 +97,7 @@ axios.interceptors.response.use(function (response) {
   error.backendErrors = []
   if (error.response.status === 401) {
     store.commit('auth/authenticated', false)
-    logger.default.warn('Received 401 response from API, redirecting to login form')
+    logger.default.warn('Received 401 response from API, redirecting to login form', router.currentRoute.fullPath)
     router.push({name: 'login', query: {next: router.currentRoute.fullPath}})
   }
   if (error.response.status === 404) {
@@ -130,15 +126,15 @@ axios.interceptors.response.use(function (response) {
   return Promise.reject(error)
 })
 
-store.dispatch('instance/fetchFrontSettings')
+store.dispatch('instance/fetchFrontSettings').finally(() => {
+  /* eslint-disable no-new */
+  new Vue({
+    el: '#app',
+    router,
+    store,
+    template: '<App/>',
+    components: { App }
+  })
 
-/* eslint-disable no-new */
-new Vue({
-  el: '#app',
-  router,
-  store,
-  template: '<App/>',
-  components: { App }
+  logger.default.info('Everything loaded!')
 })
-
-logger.default.info('Everything loaded!')
diff --git a/front/src/router/index.js b/front/src/router/index.js
index 148e45b8a2297c5404ce712f45b5804af4a86d77..1b60a681331fe0e0c9e58691eec1b305658fb35a 100644
--- a/front/src/router/index.js
+++ b/front/src/router/index.js
@@ -3,7 +3,6 @@ import Router from 'vue-router'
 import PageNotFound from '@/components/PageNotFound'
 import About from '@/components/About'
 import Home from '@/components/Home'
-import InstanceTimeline from '@/views/instance/Timeline'
 import Login from '@/components/auth/Login'
 import Signup from '@/components/auth/Signup'
 import Profile from '@/components/auth/Profile'
@@ -28,9 +27,13 @@ import AdminSettings from '@/views/admin/Settings'
 import AdminLibraryBase from '@/views/admin/library/Base'
 import AdminLibraryFilesList from '@/views/admin/library/FilesList'
 import AdminUsersBase from '@/views/admin/users/Base'
-import AdminUsersDetail from '@/views/admin/users/UsersDetail'
 import AdminUsersList from '@/views/admin/users/UsersList'
 import AdminInvitationsList from '@/views/admin/users/InvitationsList'
+import AdminModerationBase from '@/views/admin/moderation/Base'
+import AdminDomainsList from '@/views/admin/moderation/DomainsList'
+import AdminDomainsDetail from '@/views/admin/moderation/DomainsDetail'
+import AdminAccountsList from '@/views/admin/moderation/AccountsList'
+import AdminAccountsDetail from '@/views/admin/moderation/AccountsDetail'
 import ContentBase from '@/views/content/Base'
 import ContentHome from '@/views/content/Home'
 import LibrariesHome from '@/views/content/libraries/Home'
@@ -51,16 +54,16 @@ export default new Router({
       name: 'index',
       component: Home
     },
+    {
+      path: '/front',
+      name: 'front',
+      redirect: '/'
+    },
     {
       path: '/about',
       name: 'about',
       component: About
     },
-    {
-      path: '/activity',
-      name: 'activity',
-      component: InstanceTimeline
-    },
     {
       path: '/login',
       name: 'login',
@@ -217,12 +220,6 @@ export default new Router({
           name: 'manage.users.users.list',
           component: AdminUsersList
         },
-        {
-          path: 'users/:id',
-          name: 'manage.users.users.detail',
-          component: AdminUsersDetail,
-          props: true
-        },
         {
           path: 'invitations',
           name: 'manage.users.invitations.list',
@@ -230,6 +227,40 @@ export default new Router({
         }
       ]
     },
+    {
+      path: '/manage/moderation',
+      component: AdminModerationBase,
+      children: [
+        {
+          path: 'domains',
+          name: 'manage.moderation.domains.list',
+          component: AdminDomainsList
+        },
+        {
+          path: 'domains/:id',
+          name: 'manage.moderation.domains.detail',
+          component: AdminDomainsDetail,
+          props: true
+        },
+        {
+          path: 'accounts',
+          name: 'manage.moderation.accounts.list',
+          component: AdminAccountsList,
+          props: (route) => {
+            return {
+              defaultQuery: route.query.q,
+
+            }
+          }
+        },
+        {
+          path: 'accounts/:id',
+          name: 'manage.moderation.accounts.detail',
+          component: AdminAccountsDetail,
+          props: true
+        }
+      ]
+    },
     {
       path: '/library',
       component: Library,
diff --git a/front/src/semantic.js b/front/src/semantic.js
new file mode 100644
index 0000000000000000000000000000000000000000..f5dad819256c1d08940c9dd304b4a1888ae1e6c0
--- /dev/null
+++ b/front/src/semantic.js
@@ -0,0 +1,24 @@
+// require('semantic-ui-css/components/accordion.min.js')
+require('semantic-ui-css/components/api.min.js')
+require('semantic-ui-css/components/checkbox.min.js')
+// require('semantic-ui-css/components/colorize.min.js')
+require('semantic-ui-css/components/dimmer.min.js')
+require('semantic-ui-css/components/dropdown.min.js')
+// require('semantic-ui-css/components/embed.min.js')
+// require('semantic-ui-css/components/form.min.js')
+require('semantic-ui-css/components/modal.min.js')
+// require('semantic-ui-css/components/nag.min.js')
+// require('semantic-ui-css/components/popup.min.js')
+require('semantic-ui-css/components/progress.min.js')
+// require('semantic-ui-css/components/rating.min.js')
+require('semantic-ui-css/components/search.min.js')
+// require('semantic-ui-css/components/shape.min.js')
+// require('semantic-ui-css/components/sidebar.min.js')
+require('semantic-ui-css/components/site.min.js')
+require('semantic-ui-css/components/state.min.js')
+require('semantic-ui-css/components/sticky.min.js')
+// require('semantic-ui-css/components/tab.min.js')
+require('semantic-ui-css/components/transition.min.js')
+// require('semantic-ui-css/components/video.min.js')
+require('semantic-ui-css/components/visibility.min.js')
+// require('semantic-ui-css/components/visit.min.js')
diff --git a/front/src/semantic/semantic.css b/front/src/semantic/semantic.css
deleted file mode 100755
index a6b2763598ffc337f788c6e53729ba1b70cfd098..0000000000000000000000000000000000000000
--- a/front/src/semantic/semantic.css
+++ /dev/null
@@ -1,39268 +0,0 @@
-/*
-* # Semantic UI - 2.3.0
-* https://github.com/Semantic-Org/Semantic-UI
-* http://www.semantic-ui.com/
-*
-* Copyright 2014 Contributors
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-/* @import url('https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic&subset=latin'); */
-/*!
-* # Semantic UI 2.3.0 - Reset
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-            Reset
-*******************************/
-
-/* Border-Box */
-
-*,
-*:before,
-*:after {
- -webkit-box-sizing: inherit;
- box-sizing: inherit;
-}
-
-html {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
-}
-
-/* iPad Input Shadows */
-
-input[type="text"],
-input[type="email"],
-input[type="search"],
-input[type="password"] {
- -webkit-appearance: none;
- -moz-appearance: none;
- /* mobile firefox too! */
-}
-
-/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */
-
-/* Document
-  ========================================================================== */
-
-/**
-* 1. Correct the line height in all browsers.
-* 2. Prevent adjustments of font size after orientation changes in
-*    IE on Windows Phone and in iOS.
-*/
-
-html {
- line-height: 1.15;
- /* 1 */
- -ms-text-size-adjust: 100%;
- /* 2 */
- -webkit-text-size-adjust: 100%;
- /* 2 */
-}
-
-/* Sections
-  ========================================================================== */
-
-/**
-* Remove the margin in all browsers (opinionated).
-*/
-
-body {
- margin: 0;
-}
-
-/**
-* Add the correct display in IE 9-.
-*/
-
-article,
-aside,
-footer,
-header,
-nav,
-section {
- display: block;
-}
-
-/**
-* Correct the font size and margin on `h1` elements within `section` and
-* `article` contexts in Chrome, Firefox, and Safari.
-*/
-
-h1 {
- font-size: 2em;
- margin: 0.67em 0;
-}
-
-/* Grouping content
-  ========================================================================== */
-
-/**
-* Add the correct display in IE 9-.
-* 1. Add the correct display in IE.
-*/
-
-figcaption,
-figure,
-main {
- /* 1 */
- display: block;
-}
-
-/**
-* Add the correct margin in IE 8.
-*/
-
-figure {
- margin: 1em 40px;
-}
-
-/**
-* 1. Add the correct box sizing in Firefox.
-* 2. Show the overflow in Edge and IE.
-*/
-
-hr {
- -webkit-box-sizing: content-box;
- box-sizing: content-box;
- /* 1 */
- height: 0;
- /* 1 */
- overflow: visible;
- /* 2 */
-}
-
-/**
-* 1. Correct the inheritance and scaling of font size in all browsers.
-* 2. Correct the odd `em` font sizing in all browsers.
-*/
-
-pre {
- font-family: monospace, monospace;
- /* 1 */
- font-size: 1em;
- /* 2 */
-}
-
-/* Text-level semantics
-  ========================================================================== */
-
-/**
-* 1. Remove the gray background on active links in IE 10.
-* 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
-*/
-
-a {
- background-color: transparent;
- /* 1 */
- -webkit-text-decoration-skip: objects;
- /* 2 */
-}
-
-/**
-* 1. Remove the bottom border in Chrome 57- and Firefox 39-.
-* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
-*/
-
-abbr[title] {
- border-bottom: none;
- /* 1 */
- text-decoration: underline;
- /* 2 */
- -webkit-text-decoration: underline dotted;
- text-decoration: underline dotted;
- /* 2 */
-}
-
-/**
-* Prevent the duplicate application of `bolder` by the next rule in Safari 6.
-*/
-
-b,
-strong {
- font-weight: inherit;
-}
-
-/**
-* Add the correct font weight in Chrome, Edge, and Safari.
-*/
-
-b,
-strong {
- font-weight: bolder;
-}
-
-/**
-* 1. Correct the inheritance and scaling of font size in all browsers.
-* 2. Correct the odd `em` font sizing in all browsers.
-*/
-
-code,
-kbd,
-samp {
- font-family: monospace, monospace;
- /* 1 */
- font-size: 1em;
- /* 2 */
-}
-
-/**
-* Add the correct font style in Android 4.3-.
-*/
-
-dfn {
- font-style: italic;
-}
-
-/**
-* Add the correct background and color in IE 9-.
-*/
-
-mark {
- background-color: #ff0;
- color: #000;
-}
-
-/**
-* Add the correct font size in all browsers.
-*/
-
-small {
- font-size: 80%;
-}
-
-/**
-* Prevent `sub` and `sup` elements from affecting the line height in
-* all browsers.
-*/
-
-sub,
-sup {
- font-size: 75%;
- line-height: 0;
- position: relative;
- vertical-align: baseline;
-}
-
-sub {
- bottom: -0.25em;
-}
-
-sup {
- top: -0.5em;
-}
-
-/* Embedded content
-  ========================================================================== */
-
-/**
-* Add the correct display in IE 9-.
-*/
-
-audio,
-video {
- display: inline-block;
-}
-
-/**
-* Add the correct display in iOS 4-7.
-*/
-
-audio:not([controls]) {
- display: none;
- height: 0;
-}
-
-/**
-* Remove the border on images inside links in IE 10-.
-*/
-
-img {
- border-style: none;
-}
-
-/**
-* Hide the overflow in IE.
-*/
-
-svg:not(:root) {
- overflow: hidden;
-}
-
-/* Forms
-  ========================================================================== */
-
-/**
-* 1. Change the font styles in all browsers (opinionated).
-* 2. Remove the margin in Firefox and Safari.
-*/
-
-button,
-input,
-optgroup,
-select,
-textarea {
- font-family: sans-serif;
- /* 1 */
- font-size: 100%;
- /* 1 */
- line-height: 1.15;
- /* 1 */
- margin: 0;
- /* 2 */
-}
-
-/**
-* Show the overflow in IE.
-* 1. Show the overflow in Edge.
-*/
-
-button,
-input {
- /* 1 */
- overflow: visible;
-}
-
-/**
-* Remove the inheritance of text transform in Edge, Firefox, and IE.
-* 1. Remove the inheritance of text transform in Firefox.
-*/
-
-button,
-select {
- /* 1 */
- text-transform: none;
-}
-
-/**
-* 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
-*    controls in Android 4.
-* 2. Correct the inability to style clickable types in iOS and Safari.
-*/
-
-button,
-html [type="button"],
-[type="reset"],
-[type="submit"] {
- -webkit-appearance: button;
- /* 2 */
-}
-
-/**
-* Remove the inner border and padding in Firefox.
-*/
-
-button::-moz-focus-inner,
-[type="button"]::-moz-focus-inner,
-[type="reset"]::-moz-focus-inner,
-[type="submit"]::-moz-focus-inner {
- border-style: none;
- padding: 0;
-}
-
-/**
-* Restore the focus styles unset by the previous rule.
-*/
-
-button:-moz-focusring,
-[type="button"]:-moz-focusring,
-[type="reset"]:-moz-focusring,
-[type="submit"]:-moz-focusring {
- outline: 1px dotted ButtonText;
-}
-
-/**
-* Correct the padding in Firefox.
-*/
-
-fieldset {
- padding: 0.35em 0.75em 0.625em;
-}
-
-/**
-* 1. Correct the text wrapping in Edge and IE.
-* 2. Correct the color inheritance from `fieldset` elements in IE.
-* 3. Remove the padding so developers are not caught out when they zero out
-*    `fieldset` elements in all browsers.
-*/
-
-legend {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- /* 1 */
- color: inherit;
- /* 2 */
- display: table;
- /* 1 */
- max-width: 100%;
- /* 1 */
- padding: 0;
- /* 3 */
- white-space: normal;
- /* 1 */
-}
-
-/**
-* 1. Add the correct display in IE 9-.
-* 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
-*/
-
-progress {
- display: inline-block;
- /* 1 */
- vertical-align: baseline;
- /* 2 */
-}
-
-/**
-* Remove the default vertical scrollbar in IE.
-*/
-
-textarea {
- overflow: auto;
-}
-
-/**
-* 1. Add the correct box sizing in IE 10-.
-* 2. Remove the padding in IE 10-.
-*/
-
-[type="checkbox"],
-[type="radio"] {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- /* 1 */
- padding: 0;
- /* 2 */
-}
-
-/**
-* Correct the cursor style of increment and decrement buttons in Chrome.
-*/
-
-[type="number"]::-webkit-inner-spin-button,
-[type="number"]::-webkit-outer-spin-button {
- height: auto;
-}
-
-/**
-* 1. Correct the odd appearance in Chrome and Safari.
-* 2. Correct the outline style in Safari.
-*/
-
-[type="search"] {
- -webkit-appearance: textfield;
- /* 1 */
- outline-offset: -2px;
- /* 2 */
-}
-
-/**
-* Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
-*/
-
-[type="search"]::-webkit-search-cancel-button,
-[type="search"]::-webkit-search-decoration {
- -webkit-appearance: none;
-}
-
-/**
-* 1. Correct the inability to style clickable types in iOS and Safari.
-* 2. Change font properties to `inherit` in Safari.
-*/
-
-::-webkit-file-upload-button {
- -webkit-appearance: button;
- /* 1 */
- font: inherit;
- /* 2 */
-}
-
-/* Interactive
-  ========================================================================== */
-
-/*
-* Add the correct display in IE 9-.
-* 1. Add the correct display in Edge, IE, and Firefox.
-*/
-
-details,
-menu {
- display: block;
-}
-
-/*
-* Add the correct display in all browsers.
-*/
-
-summary {
- display: list-item;
-}
-
-/* Scripting
-  ========================================================================== */
-
-/**
-* Add the correct display in IE 9-.
-*/
-
-canvas {
- display: inline-block;
-}
-
-/**
-* Add the correct display in IE.
-*/
-
-template {
- display: none;
-}
-
-/* Hidden
-  ========================================================================== */
-
-/**
-* Add the correct display in IE 10-.
-*/
-
-[hidden] {
- display: none;
-}
-
-/*******************************
-        Site Overrides
-*******************************/
-/*!
-* # Semantic UI 2.3.0 - Site
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-            Page
-*******************************/
-
-html,
-body {
- height: 100%;
-}
-
-html {
- font-size: 14px;
-}
-
-body {
- margin: 0px;
- padding: 0px;
- overflow-x: hidden;
- min-width: 320px;
- background: #FFFFFF;
- font-family: 'Lato', 'Helvetica Neue', Arial, Helvetica, sans-serif;
- font-size: 14px;
- line-height: 1.4285em;
- color: rgba(0, 0, 0, 0.87);
- font-smoothing: antialiased;
-}
-
-/*******************************
-            Headers
-*******************************/
-
-h1,
-h2,
-h3,
-h4,
-h5 {
- font-family: 'Lato', 'Helvetica Neue', Arial, Helvetica, sans-serif;
- line-height: 1.28571429em;
- margin: calc(2rem -  0.14285714em ) 0em 1rem;
- font-weight: bold;
- padding: 0em;
-}
-
-h1 {
- min-height: 1rem;
- font-size: 2rem;
-}
-
-h2 {
- font-size: 1.71428571rem;
-}
-
-h3 {
- font-size: 1.28571429rem;
-}
-
-h4 {
- font-size: 1.07142857rem;
-}
-
-h5 {
- font-size: 1rem;
-}
-
-h1:first-child,
-h2:first-child,
-h3:first-child,
-h4:first-child,
-h5:first-child {
- margin-top: 0em;
-}
-
-h1:last-child,
-h2:last-child,
-h3:last-child,
-h4:last-child,
-h5:last-child {
- margin-bottom: 0em;
-}
-
-/*******************************
-            Text
-*******************************/
-
-p {
- margin: 0em 0em 1em;
- line-height: 1.4285em;
-}
-
-p:first-child {
- margin-top: 0em;
-}
-
-p:last-child {
- margin-bottom: 0em;
-}
-
-/*-------------------
-       Links
---------------------*/
-
-a {
- color: #4183C4;
- text-decoration: none;
-}
-
-a:hover {
- color: #1e70bf;
- text-decoration: none;
-}
-
-/*******************************
-        Scrollbars
-*******************************/
-
-/*******************************
-         Highlighting
-*******************************/
-
-/* Site */
-
-::-webkit-selection {
- background-color: #CCE2FF;
- color: rgba(0, 0, 0, 0.87);
-}
-
-::-moz-selection {
- background-color: #CCE2FF;
- color: rgba(0, 0, 0, 0.87);
-}
-
-::selection {
- background-color: #CCE2FF;
- color: rgba(0, 0, 0, 0.87);
-}
-
-/* Form */
-
-textarea::-webkit-selection,
-input::-webkit-selection {
- background-color: rgba(100, 100, 100, 0.4);
- color: rgba(0, 0, 0, 0.87);
-}
-
-textarea::-moz-selection,
-input::-moz-selection {
- background-color: rgba(100, 100, 100, 0.4);
- color: rgba(0, 0, 0, 0.87);
-}
-
-textarea::selection,
-input::selection {
- background-color: rgba(100, 100, 100, 0.4);
- color: rgba(0, 0, 0, 0.87);
-}
-
-/* Force Simple Scrollbars */
-
-body ::-webkit-scrollbar {
- -webkit-appearance: none;
- width: 10px;
- height: 10px;
-}
-
-body ::-webkit-scrollbar-track {
- background: rgba(0, 0, 0, 0.1);
- border-radius: 0px;
-}
-
-body ::-webkit-scrollbar-thumb {
- cursor: pointer;
- border-radius: 5px;
- background: rgba(0, 0, 0, 0.25);
- -webkit-transition: color 0.2s ease;
- transition: color 0.2s ease;
-}
-
-body ::-webkit-scrollbar-thumb:window-inactive {
- background: rgba(0, 0, 0, 0.15);
-}
-
-body ::-webkit-scrollbar-thumb:hover {
- background: rgba(128, 135, 139, 0.8);
-}
-
-/* Inverted UI */
-
-body .ui.inverted::-webkit-scrollbar-track {
- background: rgba(255, 255, 255, 0.1);
-}
-
-body .ui.inverted::-webkit-scrollbar-thumb {
- background: rgba(255, 255, 255, 0.25);
-}
-
-body .ui.inverted::-webkit-scrollbar-thumb:window-inactive {
- background: rgba(255, 255, 255, 0.15);
-}
-
-body .ui.inverted::-webkit-scrollbar-thumb:hover {
- background: rgba(255, 255, 255, 0.35);
-}
-
-/*******************************
-       Global Overrides
-*******************************/
-
-/*******************************
-        Site Overrides
-*******************************/
-/*!
-* # Semantic UI 2.3.0 - Button
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-           Button
-*******************************/
-
-.ui.button {
- cursor: pointer;
- display: inline-block;
- min-height: 1em;
- outline: none;
- border: none;
- vertical-align: baseline;
- background: #E0E1E2 none;
- color: rgba(0, 0, 0, 0.6);
- font-family: 'Lato', 'Helvetica Neue', Arial, Helvetica, sans-serif;
- margin: 0em 0.25em 0em 0em;
- padding: 0.78571429em 1.5em 0.78571429em;
- text-transform: none;
- text-shadow: none;
- font-weight: bold;
- line-height: 1em;
- font-style: normal;
- text-align: center;
- text-decoration: none;
- border-radius: 0.28571429rem;
- -webkit-box-shadow: 0px 0px 0px 1px transparent inset, 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
- box-shadow: 0px 0px 0px 1px transparent inset, 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- -webkit-transition: opacity 0.1s ease, background-color 0.1s ease, color 0.1s ease, background 0.1s ease, -webkit-box-shadow 0.1s ease;
- transition: opacity 0.1s ease, background-color 0.1s ease, color 0.1s ease, background 0.1s ease, -webkit-box-shadow 0.1s ease;
- transition: opacity 0.1s ease, background-color 0.1s ease, color 0.1s ease, box-shadow 0.1s ease, background 0.1s ease;
- transition: opacity 0.1s ease, background-color 0.1s ease, color 0.1s ease, box-shadow 0.1s ease, background 0.1s ease, -webkit-box-shadow 0.1s ease;
- will-change: '';
- -webkit-tap-highlight-color: transparent;
-}
-
-/*******************************
-           States
-*******************************/
-
-/*--------------
-     Hover
----------------*/
-
-.ui.button:hover {
- background-color: #CACBCD;
- background-image: none;
- -webkit-box-shadow: 0px 0px 0px 1px transparent inset, 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
- box-shadow: 0px 0px 0px 1px transparent inset, 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
- color: rgba(0, 0, 0, 0.8);
-}
-
-.ui.button:hover .icon {
- opacity: 0.85;
-}
-
-/*--------------
-     Focus
----------------*/
-
-.ui.button:focus {
- background-color: #CACBCD;
- color: rgba(0, 0, 0, 0.8);
- background-image: '' !important;
- -webkit-box-shadow: '' !important;
- box-shadow: '' !important;
-}
-
-.ui.button:focus .icon {
- opacity: 0.85;
-}
-
-/*--------------
-     Down
----------------*/
-
-.ui.button:active,
-.ui.active.button:active {
- background-color: #BABBBC;
- background-image: '';
- color: rgba(0, 0, 0, 0.9);
- -webkit-box-shadow: 0px 0px 0px 1px transparent inset, none;
- box-shadow: 0px 0px 0px 1px transparent inset, none;
-}
-
-/*--------------
-    Active
----------------*/
-
-.ui.active.button {
- background-color: #C0C1C2;
- background-image: none;
- -webkit-box-shadow: 0px 0px 0px 1px transparent inset;
- box-shadow: 0px 0px 0px 1px transparent inset;
- color: rgba(0, 0, 0, 0.95);
-}
-
-.ui.active.button:hover {
- background-color: #C0C1C2;
- background-image: none;
- color: rgba(0, 0, 0, 0.95);
-}
-
-.ui.active.button:active {
- background-color: #C0C1C2;
- background-image: none;
-}
-
-/*--------------
-   Loading
----------------*/
-
-/* Specificity hack */
-
-.ui.loading.loading.loading.loading.loading.loading.button {
- position: relative;
- cursor: default;
- text-shadow: none !important;
- color: transparent !important;
- opacity: 1;
- pointer-events: auto;
- -webkit-transition: all 0s linear, opacity 0.1s ease;
- transition: all 0s linear, opacity 0.1s ease;
-}
-
-.ui.loading.button:before {
- position: absolute;
- content: '';
- top: 50%;
- left: 50%;
- margin: -0.64285714em 0em 0em -0.64285714em;
- width: 1.28571429em;
- height: 1.28571429em;
- border-radius: 500rem;
- border: 0.2em solid rgba(0, 0, 0, 0.15);
-}
-
-.ui.loading.button:after {
- position: absolute;
- content: '';
- top: 50%;
- left: 50%;
- margin: -0.64285714em 0em 0em -0.64285714em;
- width: 1.28571429em;
- height: 1.28571429em;
- -webkit-animation: button-spin 0.6s linear;
- animation: button-spin 0.6s linear;
- -webkit-animation-iteration-count: infinite;
- animation-iteration-count: infinite;
- border-radius: 500rem;
- border-color: #FFFFFF transparent transparent;
- border-style: solid;
- border-width: 0.2em;
- -webkit-box-shadow: 0px 0px 0px 1px transparent;
- box-shadow: 0px 0px 0px 1px transparent;
-}
-
-.ui.labeled.icon.loading.button .icon {
- background-color: transparent;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-@-webkit-keyframes button-spin {
- from {
-   -webkit-transform: rotate(0deg);
-   transform: rotate(0deg);
- }
-
- to {
-   -webkit-transform: rotate(360deg);
-   transform: rotate(360deg);
- }
-}
-
-@keyframes button-spin {
- from {
-   -webkit-transform: rotate(0deg);
-   transform: rotate(0deg);
- }
-
- to {
-   -webkit-transform: rotate(360deg);
-   transform: rotate(360deg);
- }
-}
-
-.ui.basic.loading.button:not(.inverted):before {
- border-color: rgba(0, 0, 0, 0.1);
-}
-
-.ui.basic.loading.button:not(.inverted):after {
- border-top-color: #767676;
-}
-
-/*-------------------
-     Disabled
---------------------*/
-
-.ui.buttons .disabled.button,
-.ui.disabled.button,
-.ui.button:disabled,
-.ui.disabled.button:hover,
-.ui.disabled.active.button {
- cursor: default;
- opacity: 0.45 !important;
- background-image: none !important;
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
- pointer-events: none !important;
-}
-
-/* Basic Group With Disabled */
-
-.ui.basic.buttons .ui.disabled.button {
- border-color: rgba(34, 36, 38, 0.5);
-}
-
-/*******************************
-            Types
-*******************************/
-
-/*-------------------
-      Animated
---------------------*/
-
-.ui.animated.button {
- position: relative;
- overflow: hidden;
- padding-right: 0em !important;
- vertical-align: middle;
- z-index: 1;
-}
-
-.ui.animated.button .content {
- will-change: transform, opacity;
-}
-
-.ui.animated.button .visible.content {
- position: relative;
- margin-right: 1.5em;
-}
-
-.ui.animated.button .hidden.content {
- position: absolute;
- width: 100%;
-}
-
-/* Horizontal */
-
-.ui.animated.button .visible.content,
-.ui.animated.button .hidden.content {
- -webkit-transition: right 0.3s ease 0s;
- transition: right 0.3s ease 0s;
-}
-
-.ui.animated.button .visible.content {
- left: auto;
- right: 0%;
-}
-
-.ui.animated.button .hidden.content {
- top: 50%;
- left: auto;
- right: -100%;
- margin-top: -0.5em;
-}
-
-.ui.animated.button:focus .visible.content,
-.ui.animated.button:hover .visible.content {
- left: auto;
- right: 200%;
-}
-
-.ui.animated.button:focus .hidden.content,
-.ui.animated.button:hover .hidden.content {
- left: auto;
- right: 0%;
-}
-
-/* Vertical */
-
-.ui.vertical.animated.button .visible.content,
-.ui.vertical.animated.button .hidden.content {
- -webkit-transition: top 0.3s ease, -webkit-transform 0.3s ease;
- transition: top 0.3s ease, -webkit-transform 0.3s ease;
- transition: top 0.3s ease, transform 0.3s ease;
- transition: top 0.3s ease, transform 0.3s ease, -webkit-transform 0.3s ease;
-}
-
-.ui.vertical.animated.button .visible.content {
- -webkit-transform: translateY(0%);
- transform: translateY(0%);
- right: auto;
-}
-
-.ui.vertical.animated.button .hidden.content {
- top: -50%;
- left: 0%;
- right: auto;
-}
-
-.ui.vertical.animated.button:focus .visible.content,
-.ui.vertical.animated.button:hover .visible.content {
- -webkit-transform: translateY(200%);
- transform: translateY(200%);
- right: auto;
-}
-
-.ui.vertical.animated.button:focus .hidden.content,
-.ui.vertical.animated.button:hover .hidden.content {
- top: 50%;
- right: auto;
-}
-
-/* Fade */
-
-.ui.fade.animated.button .visible.content,
-.ui.fade.animated.button .hidden.content {
- -webkit-transition: opacity 0.3s ease, -webkit-transform 0.3s ease;
- transition: opacity 0.3s ease, -webkit-transform 0.3s ease;
- transition: opacity 0.3s ease, transform 0.3s ease;
- transition: opacity 0.3s ease, transform 0.3s ease, -webkit-transform 0.3s ease;
-}
-
-.ui.fade.animated.button .visible.content {
- left: auto;
- right: auto;
- opacity: 1;
- -webkit-transform: scale(1);
- transform: scale(1);
-}
-
-.ui.fade.animated.button .hidden.content {
- opacity: 0;
- left: 0%;
- right: auto;
- -webkit-transform: scale(1.5);
- transform: scale(1.5);
-}
-
-.ui.fade.animated.button:focus .visible.content,
-.ui.fade.animated.button:hover .visible.content {
- left: auto;
- right: auto;
- opacity: 0;
- -webkit-transform: scale(0.75);
- transform: scale(0.75);
-}
-
-.ui.fade.animated.button:focus .hidden.content,
-.ui.fade.animated.button:hover .hidden.content {
- left: 0%;
- right: auto;
- opacity: 1;
- -webkit-transform: scale(1);
- transform: scale(1);
-}
-
-/*-------------------
-      Inverted
---------------------*/
-
-.ui.inverted.button {
- -webkit-box-shadow: 0px 0px 0px 2px #FFFFFF inset !important;
- box-shadow: 0px 0px 0px 2px #FFFFFF inset !important;
- background: transparent none;
- color: #FFFFFF;
- text-shadow: none !important;
-}
-
-/* Group */
-
-.ui.inverted.buttons .button {
- margin: 0px 0px 0px -2px;
-}
-
-.ui.inverted.buttons .button:first-child {
- margin-left: 0em;
-}
-
-.ui.inverted.vertical.buttons .button {
- margin: 0px 0px -2px 0px;
-}
-
-.ui.inverted.vertical.buttons .button:first-child {
- margin-top: 0em;
-}
-
-/* States */
-
-/* Hover */
-
-.ui.inverted.button:hover {
- background: #FFFFFF;
- -webkit-box-shadow: 0px 0px 0px 2px #FFFFFF inset !important;
- box-shadow: 0px 0px 0px 2px #FFFFFF inset !important;
- color: rgba(0, 0, 0, 0.8);
-}
-
-/* Active / Focus */
-
-.ui.inverted.button:focus,
-.ui.inverted.button.active {
- background: #FFFFFF;
- -webkit-box-shadow: 0px 0px 0px 2px #FFFFFF inset !important;
- box-shadow: 0px 0px 0px 2px #FFFFFF inset !important;
- color: rgba(0, 0, 0, 0.8);
-}
-
-/* Active Focus */
-
-.ui.inverted.button.active:focus {
- background: #DCDDDE;
- -webkit-box-shadow: 0px 0px 0px 2px #DCDDDE inset !important;
- box-shadow: 0px 0px 0px 2px #DCDDDE inset !important;
- color: rgba(0, 0, 0, 0.8);
-}
-
-/*-------------------
-   Labeled Button
---------------------*/
-
-.ui.labeled.button:not(.icon) {
- display: -webkit-inline-box;
- display: -ms-inline-flexbox;
- display: inline-flex;
- -webkit-box-orient: horizontal;
- -webkit-box-direction: normal;
- -ms-flex-direction: row;
- flex-direction: row;
- background: none !important;
- padding: 0px !important;
- border: none !important;
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
-}
-
-.ui.labeled.button > .button {
- margin: 0px;
-}
-
-.ui.labeled.button > .label {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- margin: 0px 0px 0px -1px !important;
- padding: '';
- font-size: 1em;
- border-color: rgba(34, 36, 38, 0.15);
-}
-
-/* Tag */
-
-.ui.labeled.button > .tag.label:before {
- width: 1.85em;
- height: 1.85em;
-}
-
-/* Right */
-
-.ui.labeled.button:not([class*="left labeled"]) > .button {
- border-top-right-radius: 0px;
- border-bottom-right-radius: 0px;
-}
-
-.ui.labeled.button:not([class*="left labeled"]) > .label {
- border-top-left-radius: 0px;
- border-bottom-left-radius: 0px;
-}
-
-/* Left Side */
-
-.ui[class*="left labeled"].button > .button {
- border-top-left-radius: 0px;
- border-bottom-left-radius: 0px;
-}
-
-.ui[class*="left labeled"].button > .label {
- border-top-right-radius: 0px;
- border-bottom-right-radius: 0px;
-}
-
-/*-------------------
-      Social
---------------------*/
-
-/* Facebook */
-
-.ui.facebook.button {
- background-color: #3B5998;
- color: #FFFFFF;
- text-shadow: none;
- background-image: none;
- -webkit-box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
- box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
-}
-
-.ui.facebook.button:hover {
- background-color: #304d8a;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.facebook.button:active {
- background-color: #2d4373;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-/* Twitter */
-
-.ui.twitter.button {
- background-color: #55ACEE;
- color: #FFFFFF;
- text-shadow: none;
- background-image: none;
- -webkit-box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
- box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
-}
-
-.ui.twitter.button:hover {
- background-color: #35a2f4;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.twitter.button:active {
- background-color: #2795e9;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-/* Google Plus */
-
-.ui.google.plus.button {
- background-color: #DD4B39;
- color: #FFFFFF;
- text-shadow: none;
- background-image: none;
- -webkit-box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
- box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
-}
-
-.ui.google.plus.button:hover {
- background-color: #e0321c;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.google.plus.button:active {
- background-color: #c23321;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-/* Linked In */
-
-.ui.linkedin.button {
- background-color: #1F88BE;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.linkedin.button:hover {
- background-color: #147baf;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.linkedin.button:active {
- background-color: #186992;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-/* YouTube */
-
-.ui.youtube.button {
- background-color: #FF0000;
- color: #FFFFFF;
- text-shadow: none;
- background-image: none;
- -webkit-box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
- box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
-}
-
-.ui.youtube.button:hover {
- background-color: #e60000;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.youtube.button:active {
- background-color: #cc0000;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-/* Instagram */
-
-.ui.instagram.button {
- background-color: #49769C;
- color: #FFFFFF;
- text-shadow: none;
- background-image: none;
- -webkit-box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
- box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
-}
-
-.ui.instagram.button:hover {
- background-color: #3d698e;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.instagram.button:active {
- background-color: #395c79;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-/* Pinterest */
-
-.ui.pinterest.button {
- background-color: #BD081C;
- color: #FFFFFF;
- text-shadow: none;
- background-image: none;
- -webkit-box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
- box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
-}
-
-.ui.pinterest.button:hover {
- background-color: #ac0013;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.pinterest.button:active {
- background-color: #8c0615;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-/* VK */
-
-.ui.vk.button {
- background-color: #4D7198;
- color: #FFFFFF;
- background-image: none;
- -webkit-box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
- box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
-}
-
-.ui.vk.button:hover {
- background-color: #41648a;
- color: #FFFFFF;
-}
-
-.ui.vk.button:active {
- background-color: #3c5876;
- color: #FFFFFF;
-}
-
-/*--------------
-    Icon
----------------*/
-
-.ui.button > .icon:not(.button) {
- height: 0.85714286em;
- opacity: 0.8;
- margin: 0em 0.42857143em 0em -0.21428571em;
- -webkit-transition: opacity 0.1s ease;
- transition: opacity 0.1s ease;
- vertical-align: '';
- color: '';
-}
-
-.ui.button:not(.icon) > .icon:not(.button):not(.dropdown) {
- margin: 0em 0.42857143em 0em -0.21428571em;
-}
-
-.ui.button:not(.icon) > .right.icon:not(.button):not(.dropdown) {
- margin: 0em -0.21428571em 0em 0.42857143em;
-}
-
-/*******************************
-          Variations
-*******************************/
-
-/*-------------------
-      Floated
---------------------*/
-
-.ui[class*="left floated"].buttons,
-.ui[class*="left floated"].button {
- float: left;
- margin-left: 0em;
- margin-right: 0.25em;
-}
-
-.ui[class*="right floated"].buttons,
-.ui[class*="right floated"].button {
- float: right;
- margin-right: 0em;
- margin-left: 0.25em;
-}
-
-/*-------------------
-      Compact
---------------------*/
-
-.ui.compact.buttons .button,
-.ui.compact.button {
- padding: 0.58928571em 1.125em 0.58928571em;
-}
-
-.ui.compact.icon.buttons .button,
-.ui.compact.icon.button {
- padding: 0.58928571em 0.58928571em 0.58928571em;
-}
-
-.ui.compact.labeled.icon.buttons .button,
-.ui.compact.labeled.icon.button {
- padding: 0.58928571em 3.69642857em 0.58928571em;
-}
-
-/*-------------------
-       Sizes
---------------------*/
-
-.ui.mini.buttons .button,
-.ui.mini.buttons .or,
-.ui.mini.button {
- font-size: 0.78571429rem;
-}
-
-.ui.tiny.buttons .button,
-.ui.tiny.buttons .or,
-.ui.tiny.button {
- font-size: 0.85714286rem;
-}
-
-.ui.small.buttons .button,
-.ui.small.buttons .or,
-.ui.small.button {
- font-size: 0.92857143rem;
-}
-
-.ui.buttons .button,
-.ui.buttons .or,
-.ui.button {
- font-size: 1rem;
-}
-
-.ui.large.buttons .button,
-.ui.large.buttons .or,
-.ui.large.button {
- font-size: 1.14285714rem;
-}
-
-.ui.big.buttons .button,
-.ui.big.buttons .or,
-.ui.big.button {
- font-size: 1.28571429rem;
-}
-
-.ui.huge.buttons .button,
-.ui.huge.buttons .or,
-.ui.huge.button {
- font-size: 1.42857143rem;
-}
-
-.ui.massive.buttons .button,
-.ui.massive.buttons .or,
-.ui.massive.button {
- font-size: 1.71428571rem;
-}
-
-/*--------------
-   Icon Only
----------------*/
-
-.ui.icon.buttons .button,
-.ui.icon.button {
- padding: 0.78571429em 0.78571429em 0.78571429em;
-}
-
-.ui.icon.buttons .button > .icon,
-.ui.icon.button > .icon {
- opacity: 0.9;
- margin: 0em !important;
- vertical-align: top;
-}
-
-/*-------------------
-       Basic
---------------------*/
-
-.ui.basic.buttons .button,
-.ui.basic.button {
- background: transparent none !important;
- color: rgba(0, 0, 0, 0.6) !important;
- font-weight: normal;
- border-radius: 0.28571429rem;
- text-transform: none;
- text-shadow: none !important;
- -webkit-box-shadow: 0px 0px 0px 1px rgba(34, 36, 38, 0.15) inset;
- box-shadow: 0px 0px 0px 1px rgba(34, 36, 38, 0.15) inset;
-}
-
-.ui.basic.buttons {
- -webkit-box-shadow: none;
- box-shadow: none;
- border: 1px solid rgba(34, 36, 38, 0.15);
- border-radius: 0.28571429rem;
-}
-
-.ui.basic.buttons .button {
- border-radius: 0em;
-}
-
-.ui.basic.buttons .button:hover,
-.ui.basic.button:hover {
- background: #FFFFFF !important;
- color: rgba(0, 0, 0, 0.8) !important;
- -webkit-box-shadow: 0px 0px 0px 1px rgba(34, 36, 38, 0.35) inset, 0px 0px 0px 0px rgba(34, 36, 38, 0.15) inset;
- box-shadow: 0px 0px 0px 1px rgba(34, 36, 38, 0.35) inset, 0px 0px 0px 0px rgba(34, 36, 38, 0.15) inset;
-}
-
-.ui.basic.buttons .button:focus,
-.ui.basic.button:focus {
- background: #FFFFFF !important;
- color: rgba(0, 0, 0, 0.8) !important;
- -webkit-box-shadow: 0px 0px 0px 1px rgba(34, 36, 38, 0.35) inset, 0px 0px 0px 0px rgba(34, 36, 38, 0.15) inset;
- box-shadow: 0px 0px 0px 1px rgba(34, 36, 38, 0.35) inset, 0px 0px 0px 0px rgba(34, 36, 38, 0.15) inset;
-}
-
-.ui.basic.buttons .button:active,
-.ui.basic.button:active {
- background: #F8F8F8 !important;
- color: rgba(0, 0, 0, 0.9) !important;
- -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.15) inset, 0px 1px 4px 0px rgba(34, 36, 38, 0.15) inset;
- box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.15) inset, 0px 1px 4px 0px rgba(34, 36, 38, 0.15) inset;
-}
-
-.ui.basic.buttons .active.button,
-.ui.basic.active.button {
- background: rgba(0, 0, 0, 0.05) !important;
- -webkit-box-shadow: '' !important;
- box-shadow: '' !important;
- color: rgba(0, 0, 0, 0.95) !important;
-}
-
-.ui.basic.buttons .active.button:hover,
-.ui.basic.active.button:hover {
- background-color: rgba(0, 0, 0, 0.05);
-}
-
-/* Vertical */
-
-.ui.basic.buttons .button:hover {
- -webkit-box-shadow: 0px 0px 0px 1px rgba(34, 36, 38, 0.35) inset, 0px 0px 0px 0px rgba(34, 36, 38, 0.15) inset inset;
- box-shadow: 0px 0px 0px 1px rgba(34, 36, 38, 0.35) inset, 0px 0px 0px 0px rgba(34, 36, 38, 0.15) inset inset;
-}
-
-.ui.basic.buttons .button:active {
- -webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.15) inset, 0px 1px 4px 0px rgba(34, 36, 38, 0.15) inset inset;
- box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.15) inset, 0px 1px 4px 0px rgba(34, 36, 38, 0.15) inset inset;
-}
-
-.ui.basic.buttons .active.button {
- -webkit-box-shadow: '' !important;
- box-shadow: '' !important;
-}
-
-/* Standard Basic Inverted */
-
-.ui.basic.inverted.buttons .button,
-.ui.basic.inverted.button {
- background-color: transparent !important;
- color: #F9FAFB !important;
- -webkit-box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
- box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
-}
-
-.ui.basic.inverted.buttons .button:hover,
-.ui.basic.inverted.button:hover {
- color: #FFFFFF !important;
- -webkit-box-shadow: 0px 0px 0px 2px #ffffff inset !important;
- box-shadow: 0px 0px 0px 2px #ffffff inset !important;
-}
-
-.ui.basic.inverted.buttons .button:focus,
-.ui.basic.inverted.button:focus {
- color: #FFFFFF !important;
- -webkit-box-shadow: 0px 0px 0px 2px #ffffff inset !important;
- box-shadow: 0px 0px 0px 2px #ffffff inset !important;
-}
-
-.ui.basic.inverted.buttons .button:active,
-.ui.basic.inverted.button:active {
- background-color: rgba(255, 255, 255, 0.08) !important;
- color: #FFFFFF !important;
- -webkit-box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.9) inset !important;
- box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.9) inset !important;
-}
-
-.ui.basic.inverted.buttons .active.button,
-.ui.basic.inverted.active.button {
- background-color: rgba(255, 255, 255, 0.08);
- color: #FFFFFF;
- text-shadow: none;
- -webkit-box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.7) inset;
- box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.7) inset;
-}
-
-.ui.basic.inverted.buttons .active.button:hover,
-.ui.basic.inverted.active.button:hover {
- background-color: rgba(255, 255, 255, 0.15);
- -webkit-box-shadow: 0px 0px 0px 2px #ffffff inset !important;
- box-shadow: 0px 0px 0px 2px #ffffff inset !important;
-}
-
-/* Basic Group */
-
-.ui.basic.buttons .button {
- border-left: 1px solid rgba(34, 36, 38, 0.15);
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-.ui.basic.vertical.buttons .button {
- border-left: none;
-}
-
-.ui.basic.vertical.buttons .button {
- border-left-width: 0px;
- border-top: 1px solid rgba(34, 36, 38, 0.15);
-}
-
-.ui.basic.vertical.buttons .button:first-child {
- border-top-width: 0px;
-}
-
-/*--------------
- Labeled Icon
----------------*/
-
-.ui.labeled.icon.buttons .button,
-.ui.labeled.icon.button {
- position: relative;
- padding-left: 4.07142857em !important;
- padding-right: 1.5em !important;
-}
-
-/* Left Labeled */
-
-.ui.labeled.icon.buttons > .button > .icon,
-.ui.labeled.icon.button > .icon {
- position: absolute;
- height: 100%;
- line-height: 1;
- border-radius: 0px;
- border-top-left-radius: inherit;
- border-bottom-left-radius: inherit;
- text-align: center;
- margin: 0em;
- width: 2.57142857em;
- background-color: rgba(0, 0, 0, 0.05);
- color: '';
- -webkit-box-shadow: -1px 0px 0px 0px transparent inset;
- box-shadow: -1px 0px 0px 0px transparent inset;
-}
-
-/* Left Labeled */
-
-.ui.labeled.icon.buttons > .button > .icon,
-.ui.labeled.icon.button > .icon {
- top: 0em;
- left: 0em;
-}
-
-/* Right Labeled */
-
-.ui[class*="right labeled"].icon.button {
- padding-right: 4.07142857em !important;
- padding-left: 1.5em !important;
-}
-
-.ui[class*="right labeled"].icon.button > .icon {
- left: auto;
- right: 0em;
- border-radius: 0px;
- border-top-right-radius: inherit;
- border-bottom-right-radius: inherit;
- -webkit-box-shadow: 1px 0px 0px 0px transparent inset;
- box-shadow: 1px 0px 0px 0px transparent inset;
-}
-
-.ui.labeled.icon.buttons > .button > .icon:before,
-.ui.labeled.icon.button > .icon:before,
-.ui.labeled.icon.buttons > .button > .icon:after,
-.ui.labeled.icon.button > .icon:after {
- display: block;
- position: absolute;
- width: 100%;
- top: 50%;
- text-align: center;
- -webkit-transform: translateY(-50%);
- transform: translateY(-50%);
-}
-
-.ui.labeled.icon.buttons .button > .icon {
- border-radius: 0em;
-}
-
-.ui.labeled.icon.buttons .button:first-child > .icon {
- border-top-left-radius: 0.28571429rem;
- border-bottom-left-radius: 0.28571429rem;
-}
-
-.ui.labeled.icon.buttons .button:last-child > .icon {
- border-top-right-radius: 0.28571429rem;
- border-bottom-right-radius: 0.28571429rem;
-}
-
-.ui.vertical.labeled.icon.buttons .button:first-child > .icon {
- border-radius: 0em;
- border-top-left-radius: 0.28571429rem;
-}
-
-.ui.vertical.labeled.icon.buttons .button:last-child > .icon {
- border-radius: 0em;
- border-bottom-left-radius: 0.28571429rem;
-}
-
-/* Fluid Labeled */
-
-.ui.fluid[class*="left labeled"].icon.button,
-.ui.fluid[class*="right labeled"].icon.button {
- padding-left: 1.5em !important;
- padding-right: 1.5em !important;
-}
-
-/*--------------
-    Toggle
----------------*/
-
-/* Toggle (Modifies active state to give affordances) */
-
-.ui.toggle.buttons .active.button,
-.ui.buttons .button.toggle.active,
-.ui.button.toggle.active {
- background-color: #21BA45 !important;
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
- text-shadow: none;
- color: #FFFFFF !important;
-}
-
-.ui.button.toggle.active:hover {
- background-color: #16ab39 !important;
- text-shadow: none;
- color: #FFFFFF !important;
-}
-
-/*--------------
-   Circular
----------------*/
-
-.ui.circular.button {
- border-radius: 10em;
-}
-
-.ui.circular.button > .icon {
- width: 1em;
- vertical-align: baseline;
-}
-
-/*-------------------
-     Or Buttons
---------------------*/
-
-.ui.buttons .or {
- position: relative;
- width: 0.3em;
- height: 2.57142857em;
- z-index: 3;
-}
-
-.ui.buttons .or:before {
- position: absolute;
- text-align: center;
- border-radius: 500rem;
- content: 'or';
- top: 50%;
- left: 50%;
- background-color: #FFFFFF;
- text-shadow: none;
- margin-top: -0.89285714em;
- margin-left: -0.89285714em;
- width: 1.78571429em;
- height: 1.78571429em;
- line-height: 1.78571429em;
- color: rgba(0, 0, 0, 0.4);
- font-style: normal;
- font-weight: bold;
- -webkit-box-shadow: 0px 0px 0px 1px transparent inset;
- box-shadow: 0px 0px 0px 1px transparent inset;
-}
-
-.ui.buttons .or[data-text]:before {
- content: attr(data-text);
-}
-
-/* Fluid Or */
-
-.ui.fluid.buttons .or {
- width: 0em !important;
-}
-
-.ui.fluid.buttons .or:after {
- display: none;
-}
-
-/*-------------------
-      Attached
---------------------*/
-
-/* Singular */
-
-.ui.attached.button {
- position: relative;
- display: block;
- margin: 0em;
- border-radius: 0em;
- -webkit-box-shadow: 0px 0px 0px 1px rgba(34, 36, 38, 0.15) !important;
- box-shadow: 0px 0px 0px 1px rgba(34, 36, 38, 0.15) !important;
-}
-
-/* Top / Bottom */
-
-.ui.attached.top.button {
- border-radius: 0.28571429rem 0.28571429rem 0em 0em;
-}
-
-.ui.attached.bottom.button {
- border-radius: 0em 0em 0.28571429rem 0.28571429rem;
-}
-
-/* Left / Right */
-
-.ui.left.attached.button {
- display: inline-block;
- border-left: none;
- text-align: right;
- padding-right: 0.75em;
- border-radius: 0.28571429rem 0em 0em 0.28571429rem;
-}
-
-.ui.right.attached.button {
- display: inline-block;
- text-align: left;
- padding-left: 0.75em;
- border-radius: 0em 0.28571429rem 0.28571429rem 0em;
-}
-
-/* Plural */
-
-.ui.attached.buttons {
- position: relative;
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- border-radius: 0em;
- width: auto !important;
- z-index: 2;
- margin-left: -1px;
- margin-right: -1px;
-}
-
-.ui.attached.buttons .button {
- margin: 0em;
-}
-
-.ui.attached.buttons .button:first-child {
- border-radius: 0em;
-}
-
-.ui.attached.buttons .button:last-child {
- border-radius: 0em;
-}
-
-/* Top / Bottom */
-
-.ui[class*="top attached"].buttons {
- margin-bottom: -1px;
- border-radius: 0.28571429rem 0.28571429rem 0em 0em;
-}
-
-.ui[class*="top attached"].buttons .button:first-child {
- border-radius: 0.28571429rem 0em 0em 0em;
-}
-
-.ui[class*="top attached"].buttons .button:last-child {
- border-radius: 0em 0.28571429rem 0em 0em;
-}
-
-.ui[class*="bottom attached"].buttons {
- margin-top: -1px;
- border-radius: 0em 0em 0.28571429rem 0.28571429rem;
-}
-
-.ui[class*="bottom attached"].buttons .button:first-child {
- border-radius: 0em 0em 0em 0.28571429rem;
-}
-
-.ui[class*="bottom attached"].buttons .button:last-child {
- border-radius: 0em 0em 0.28571429rem 0em;
-}
-
-/* Left / Right */
-
-.ui[class*="left attached"].buttons {
- display: -webkit-inline-box;
- display: -ms-inline-flexbox;
- display: inline-flex;
- margin-right: 0em;
- margin-left: -1px;
- border-radius: 0em 0.28571429rem 0.28571429rem 0em;
-}
-
-.ui[class*="left attached"].buttons .button:first-child {
- margin-left: -1px;
- border-radius: 0em 0.28571429rem 0em 0em;
-}
-
-.ui[class*="left attached"].buttons .button:last-child {
- margin-left: -1px;
- border-radius: 0em 0em 0.28571429rem 0em;
-}
-
-.ui[class*="right attached"].buttons {
- display: -webkit-inline-box;
- display: -ms-inline-flexbox;
- display: inline-flex;
- margin-left: 0em;
- margin-right: -1px;
- border-radius: 0.28571429rem 0em 0em 0.28571429rem;
-}
-
-.ui[class*="right attached"].buttons .button:first-child {
- margin-left: -1px;
- border-radius: 0.28571429rem 0em 0em 0em;
-}
-
-.ui[class*="right attached"].buttons .button:last-child {
- margin-left: -1px;
- border-radius: 0em 0em 0em 0.28571429rem;
-}
-
-/*-------------------
-       Fluid
---------------------*/
-
-.ui.fluid.buttons,
-.ui.fluid.button {
- width: 100%;
-}
-
-.ui.fluid.button {
- display: block;
-}
-
-.ui.two.buttons {
- width: 100%;
-}
-
-.ui.two.buttons > .button {
- width: 50%;
-}
-
-.ui.three.buttons {
- width: 100%;
-}
-
-.ui.three.buttons > .button {
- width: 33.333%;
-}
-
-.ui.four.buttons {
- width: 100%;
-}
-
-.ui.four.buttons > .button {
- width: 25%;
-}
-
-.ui.five.buttons {
- width: 100%;
-}
-
-.ui.five.buttons > .button {
- width: 20%;
-}
-
-.ui.six.buttons {
- width: 100%;
-}
-
-.ui.six.buttons > .button {
- width: 16.666%;
-}
-
-.ui.seven.buttons {
- width: 100%;
-}
-
-.ui.seven.buttons > .button {
- width: 14.285%;
-}
-
-.ui.eight.buttons {
- width: 100%;
-}
-
-.ui.eight.buttons > .button {
- width: 12.500%;
-}
-
-.ui.nine.buttons {
- width: 100%;
-}
-
-.ui.nine.buttons > .button {
- width: 11.11%;
-}
-
-.ui.ten.buttons {
- width: 100%;
-}
-
-.ui.ten.buttons > .button {
- width: 10%;
-}
-
-.ui.eleven.buttons {
- width: 100%;
-}
-
-.ui.eleven.buttons > .button {
- width: 9.09%;
-}
-
-.ui.twelve.buttons {
- width: 100%;
-}
-
-.ui.twelve.buttons > .button {
- width: 8.3333%;
-}
-
-/* Fluid Vertical Buttons */
-
-.ui.fluid.vertical.buttons,
-.ui.fluid.vertical.buttons > .button {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- width: auto;
-}
-
-.ui.two.vertical.buttons > .button {
- height: 50%;
-}
-
-.ui.three.vertical.buttons > .button {
- height: 33.333%;
-}
-
-.ui.four.vertical.buttons > .button {
- height: 25%;
-}
-
-.ui.five.vertical.buttons > .button {
- height: 20%;
-}
-
-.ui.six.vertical.buttons > .button {
- height: 16.666%;
-}
-
-.ui.seven.vertical.buttons > .button {
- height: 14.285%;
-}
-
-.ui.eight.vertical.buttons > .button {
- height: 12.500%;
-}
-
-.ui.nine.vertical.buttons > .button {
- height: 11.11%;
-}
-
-.ui.ten.vertical.buttons > .button {
- height: 10%;
-}
-
-.ui.eleven.vertical.buttons > .button {
- height: 9.09%;
-}
-
-.ui.twelve.vertical.buttons > .button {
- height: 8.3333%;
-}
-
-/*-------------------
-      Colors
---------------------*/
-
-/*--- Black ---*/
-
-.ui.black.buttons .button,
-.ui.black.button {
- background-color: #1B1C1D;
- color: #FFFFFF;
- text-shadow: none;
- background-image: none;
-}
-
-.ui.black.button {
- -webkit-box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
- box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
-}
-
-.ui.black.buttons .button:hover,
-.ui.black.button:hover {
- background-color: #27292a;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.black.buttons .button:focus,
-.ui.black.button:focus {
- background-color: #2f3032;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.black.buttons .button:active,
-.ui.black.button:active {
- background-color: #343637;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.black.buttons .active.button,
-.ui.black.buttons .active.button:active,
-.ui.black.active.button,
-.ui.black.button .active.button:active {
- background-color: #0f0f10;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-/* Basic */
-
-.ui.basic.black.buttons .button,
-.ui.basic.black.button {
- -webkit-box-shadow: 0px 0px 0px 1px #1B1C1D inset !important;
- box-shadow: 0px 0px 0px 1px #1B1C1D inset !important;
- color: #1B1C1D !important;
-}
-
-.ui.basic.black.buttons .button:hover,
-.ui.basic.black.button:hover {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #27292a inset !important;
- box-shadow: 0px 0px 0px 1px #27292a inset !important;
- color: #27292a !important;
-}
-
-.ui.basic.black.buttons .button:focus,
-.ui.basic.black.button:focus {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #2f3032 inset !important;
- box-shadow: 0px 0px 0px 1px #2f3032 inset !important;
- color: #27292a !important;
-}
-
-.ui.basic.black.buttons .active.button,
-.ui.basic.black.active.button {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #0f0f10 inset !important;
- box-shadow: 0px 0px 0px 1px #0f0f10 inset !important;
- color: #343637 !important;
-}
-
-.ui.basic.black.buttons .button:active,
-.ui.basic.black.button:active {
- -webkit-box-shadow: 0px 0px 0px 1px #343637 inset !important;
- box-shadow: 0px 0px 0px 1px #343637 inset !important;
- color: #343637 !important;
-}
-
-.ui.buttons:not(.vertical) > .basic.black.button:not(:first-child) {
- margin-left: -1px;
-}
-
-/* Inverted */
-
-.ui.inverted.black.buttons .button,
-.ui.inverted.black.button {
- background-color: transparent;
- -webkit-box-shadow: 0px 0px 0px 2px #D4D4D5 inset !important;
- box-shadow: 0px 0px 0px 2px #D4D4D5 inset !important;
- color: #FFFFFF;
-}
-
-.ui.inverted.black.buttons .button:hover,
-.ui.inverted.black.button:hover,
-.ui.inverted.black.buttons .button:focus,
-.ui.inverted.black.button:focus,
-.ui.inverted.black.buttons .button.active,
-.ui.inverted.black.button.active,
-.ui.inverted.black.buttons .button:active,
-.ui.inverted.black.button:active {
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
- color: #FFFFFF;
-}
-
-.ui.inverted.black.buttons .button:hover,
-.ui.inverted.black.button:hover {
- background-color: #000000;
-}
-
-.ui.inverted.black.buttons .button:focus,
-.ui.inverted.black.button:focus {
- background-color: #000000;
-}
-
-.ui.inverted.black.buttons .active.button,
-.ui.inverted.black.active.button {
- background-color: #000000;
-}
-
-.ui.inverted.black.buttons .button:active,
-.ui.inverted.black.button:active {
- background-color: #000000;
-}
-
-/* Inverted Basic */
-
-.ui.inverted.black.basic.buttons .button,
-.ui.inverted.black.buttons .basic.button,
-.ui.inverted.black.basic.button {
- background-color: transparent;
- -webkit-box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
- box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
- color: #FFFFFF !important;
-}
-
-.ui.inverted.black.basic.buttons .button:hover,
-.ui.inverted.black.buttons .basic.button:hover,
-.ui.inverted.black.basic.button:hover {
- -webkit-box-shadow: 0px 0px 0px 2px #000000 inset !important;
- box-shadow: 0px 0px 0px 2px #000000 inset !important;
- color: #FFFFFF !important;
-}
-
-.ui.inverted.black.basic.buttons .button:focus,
-.ui.inverted.black.basic.buttons .button:focus,
-.ui.inverted.black.basic.button:focus {
- -webkit-box-shadow: 0px 0px 0px 2px #000000 inset !important;
- box-shadow: 0px 0px 0px 2px #000000 inset !important;
- color: #545454 !important;
-}
-
-.ui.inverted.black.basic.buttons .active.button,
-.ui.inverted.black.buttons .basic.active.button,
-.ui.inverted.black.basic.active.button {
- -webkit-box-shadow: 0px 0px 0px 2px #000000 inset !important;
- box-shadow: 0px 0px 0px 2px #000000 inset !important;
- color: #FFFFFF !important;
-}
-
-.ui.inverted.black.basic.buttons .button:active,
-.ui.inverted.black.buttons .basic.button:active,
-.ui.inverted.black.basic.button:active {
- -webkit-box-shadow: 0px 0px 0px 2px #000000 inset !important;
- box-shadow: 0px 0px 0px 2px #000000 inset !important;
- color: #FFFFFF !important;
-}
-
-/*--- Grey ---*/
-
-.ui.grey.buttons .button,
-.ui.grey.button {
- background-color: #767676;
- color: #FFFFFF;
- text-shadow: none;
- background-image: none;
-}
-
-.ui.grey.button {
- -webkit-box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
- box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
-}
-
-.ui.grey.buttons .button:hover,
-.ui.grey.button:hover {
- background-color: #838383;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.grey.buttons .button:focus,
-.ui.grey.button:focus {
- background-color: #8a8a8a;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.grey.buttons .button:active,
-.ui.grey.button:active {
- background-color: #909090;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.grey.buttons .active.button,
-.ui.grey.buttons .active.button:active,
-.ui.grey.active.button,
-.ui.grey.button .active.button:active {
- background-color: #696969;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-/* Basic */
-
-.ui.basic.grey.buttons .button,
-.ui.basic.grey.button {
- -webkit-box-shadow: 0px 0px 0px 1px #767676 inset !important;
- box-shadow: 0px 0px 0px 1px #767676 inset !important;
- color: #767676 !important;
-}
-
-.ui.basic.grey.buttons .button:hover,
-.ui.basic.grey.button:hover {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #838383 inset !important;
- box-shadow: 0px 0px 0px 1px #838383 inset !important;
- color: #838383 !important;
-}
-
-.ui.basic.grey.buttons .button:focus,
-.ui.basic.grey.button:focus {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #8a8a8a inset !important;
- box-shadow: 0px 0px 0px 1px #8a8a8a inset !important;
- color: #838383 !important;
-}
-
-.ui.basic.grey.buttons .active.button,
-.ui.basic.grey.active.button {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #696969 inset !important;
- box-shadow: 0px 0px 0px 1px #696969 inset !important;
- color: #909090 !important;
-}
-
-.ui.basic.grey.buttons .button:active,
-.ui.basic.grey.button:active {
- -webkit-box-shadow: 0px 0px 0px 1px #909090 inset !important;
- box-shadow: 0px 0px 0px 1px #909090 inset !important;
- color: #909090 !important;
-}
-
-.ui.buttons:not(.vertical) > .basic.grey.button:not(:first-child) {
- margin-left: -1px;
-}
-
-/* Inverted */
-
-.ui.inverted.grey.buttons .button,
-.ui.inverted.grey.button {
- background-color: transparent;
- -webkit-box-shadow: 0px 0px 0px 2px #D4D4D5 inset !important;
- box-shadow: 0px 0px 0px 2px #D4D4D5 inset !important;
- color: #FFFFFF;
-}
-
-.ui.inverted.grey.buttons .button:hover,
-.ui.inverted.grey.button:hover,
-.ui.inverted.grey.buttons .button:focus,
-.ui.inverted.grey.button:focus,
-.ui.inverted.grey.buttons .button.active,
-.ui.inverted.grey.button.active,
-.ui.inverted.grey.buttons .button:active,
-.ui.inverted.grey.button:active {
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
- color: rgba(0, 0, 0, 0.6);
-}
-
-.ui.inverted.grey.buttons .button:hover,
-.ui.inverted.grey.button:hover {
- background-color: #cfd0d2;
-}
-
-.ui.inverted.grey.buttons .button:focus,
-.ui.inverted.grey.button:focus {
- background-color: #c7c9cb;
-}
-
-.ui.inverted.grey.buttons .active.button,
-.ui.inverted.grey.active.button {
- background-color: #cfd0d2;
-}
-
-.ui.inverted.grey.buttons .button:active,
-.ui.inverted.grey.button:active {
- background-color: #c2c4c5;
-}
-
-/* Inverted Basic */
-
-.ui.inverted.grey.basic.buttons .button,
-.ui.inverted.grey.buttons .basic.button,
-.ui.inverted.grey.basic.button {
- background-color: transparent;
- -webkit-box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
- box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
- color: #FFFFFF !important;
-}
-
-.ui.inverted.grey.basic.buttons .button:hover,
-.ui.inverted.grey.buttons .basic.button:hover,
-.ui.inverted.grey.basic.button:hover {
- -webkit-box-shadow: 0px 0px 0px 2px #cfd0d2 inset !important;
- box-shadow: 0px 0px 0px 2px #cfd0d2 inset !important;
- color: #FFFFFF !important;
-}
-
-.ui.inverted.grey.basic.buttons .button:focus,
-.ui.inverted.grey.basic.buttons .button:focus,
-.ui.inverted.grey.basic.button:focus {
- -webkit-box-shadow: 0px 0px 0px 2px #c7c9cb inset !important;
- box-shadow: 0px 0px 0px 2px #c7c9cb inset !important;
- color: #DCDDDE !important;
-}
-
-.ui.inverted.grey.basic.buttons .active.button,
-.ui.inverted.grey.buttons .basic.active.button,
-.ui.inverted.grey.basic.active.button {
- -webkit-box-shadow: 0px 0px 0px 2px #cfd0d2 inset !important;
- box-shadow: 0px 0px 0px 2px #cfd0d2 inset !important;
- color: #FFFFFF !important;
-}
-
-.ui.inverted.grey.basic.buttons .button:active,
-.ui.inverted.grey.buttons .basic.button:active,
-.ui.inverted.grey.basic.button:active {
- -webkit-box-shadow: 0px 0px 0px 2px #c2c4c5 inset !important;
- box-shadow: 0px 0px 0px 2px #c2c4c5 inset !important;
- color: #FFFFFF !important;
-}
-
-/*--- Brown ---*/
-
-.ui.brown.buttons .button,
-.ui.brown.button {
- background-color: #A5673F;
- color: #FFFFFF;
- text-shadow: none;
- background-image: none;
-}
-
-.ui.brown.button {
- -webkit-box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
- box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
-}
-
-.ui.brown.buttons .button:hover,
-.ui.brown.button:hover {
- background-color: #975b33;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.brown.buttons .button:focus,
-.ui.brown.button:focus {
- background-color: #90532b;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.brown.buttons .button:active,
-.ui.brown.button:active {
- background-color: #805031;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.brown.buttons .active.button,
-.ui.brown.buttons .active.button:active,
-.ui.brown.active.button,
-.ui.brown.button .active.button:active {
- background-color: #995a31;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-/* Basic */
-
-.ui.basic.brown.buttons .button,
-.ui.basic.brown.button {
- -webkit-box-shadow: 0px 0px 0px 1px #A5673F inset !important;
- box-shadow: 0px 0px 0px 1px #A5673F inset !important;
- color: #A5673F !important;
-}
-
-.ui.basic.brown.buttons .button:hover,
-.ui.basic.brown.button:hover {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #975b33 inset !important;
- box-shadow: 0px 0px 0px 1px #975b33 inset !important;
- color: #975b33 !important;
-}
-
-.ui.basic.brown.buttons .button:focus,
-.ui.basic.brown.button:focus {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #90532b inset !important;
- box-shadow: 0px 0px 0px 1px #90532b inset !important;
- color: #975b33 !important;
-}
-
-.ui.basic.brown.buttons .active.button,
-.ui.basic.brown.active.button {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #995a31 inset !important;
- box-shadow: 0px 0px 0px 1px #995a31 inset !important;
- color: #805031 !important;
-}
-
-.ui.basic.brown.buttons .button:active,
-.ui.basic.brown.button:active {
- -webkit-box-shadow: 0px 0px 0px 1px #805031 inset !important;
- box-shadow: 0px 0px 0px 1px #805031 inset !important;
- color: #805031 !important;
-}
-
-.ui.buttons:not(.vertical) > .basic.brown.button:not(:first-child) {
- margin-left: -1px;
-}
-
-/* Inverted */
-
-.ui.inverted.brown.buttons .button,
-.ui.inverted.brown.button {
- background-color: transparent;
- -webkit-box-shadow: 0px 0px 0px 2px #D67C1C inset !important;
- box-shadow: 0px 0px 0px 2px #D67C1C inset !important;
- color: #D67C1C;
-}
-
-.ui.inverted.brown.buttons .button:hover,
-.ui.inverted.brown.button:hover,
-.ui.inverted.brown.buttons .button:focus,
-.ui.inverted.brown.button:focus,
-.ui.inverted.brown.buttons .button.active,
-.ui.inverted.brown.button.active,
-.ui.inverted.brown.buttons .button:active,
-.ui.inverted.brown.button:active {
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
- color: #FFFFFF;
-}
-
-.ui.inverted.brown.buttons .button:hover,
-.ui.inverted.brown.button:hover {
- background-color: #c86f11;
-}
-
-.ui.inverted.brown.buttons .button:focus,
-.ui.inverted.brown.button:focus {
- background-color: #c16808;
-}
-
-.ui.inverted.brown.buttons .active.button,
-.ui.inverted.brown.active.button {
- background-color: #cc6f0d;
-}
-
-.ui.inverted.brown.buttons .button:active,
-.ui.inverted.brown.button:active {
- background-color: #a96216;
-}
-
-/* Inverted Basic */
-
-.ui.inverted.brown.basic.buttons .button,
-.ui.inverted.brown.buttons .basic.button,
-.ui.inverted.brown.basic.button {
- background-color: transparent;
- -webkit-box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
- box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
- color: #FFFFFF !important;
-}
-
-.ui.inverted.brown.basic.buttons .button:hover,
-.ui.inverted.brown.buttons .basic.button:hover,
-.ui.inverted.brown.basic.button:hover {
- -webkit-box-shadow: 0px 0px 0px 2px #c86f11 inset !important;
- box-shadow: 0px 0px 0px 2px #c86f11 inset !important;
- color: #D67C1C !important;
-}
-
-.ui.inverted.brown.basic.buttons .button:focus,
-.ui.inverted.brown.basic.buttons .button:focus,
-.ui.inverted.brown.basic.button:focus {
- -webkit-box-shadow: 0px 0px 0px 2px #c16808 inset !important;
- box-shadow: 0px 0px 0px 2px #c16808 inset !important;
- color: #D67C1C !important;
-}
-
-.ui.inverted.brown.basic.buttons .active.button,
-.ui.inverted.brown.buttons .basic.active.button,
-.ui.inverted.brown.basic.active.button {
- -webkit-box-shadow: 0px 0px 0px 2px #cc6f0d inset !important;
- box-shadow: 0px 0px 0px 2px #cc6f0d inset !important;
- color: #D67C1C !important;
-}
-
-.ui.inverted.brown.basic.buttons .button:active,
-.ui.inverted.brown.buttons .basic.button:active,
-.ui.inverted.brown.basic.button:active {
- -webkit-box-shadow: 0px 0px 0px 2px #a96216 inset !important;
- box-shadow: 0px 0px 0px 2px #a96216 inset !important;
- color: #D67C1C !important;
-}
-
-/*--- Blue ---*/
-
-.ui.blue.buttons .button,
-.ui.blue.button {
- background-color: #2185D0;
- color: #FFFFFF;
- text-shadow: none;
- background-image: none;
-}
-
-.ui.blue.button {
- -webkit-box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
- box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
-}
-
-.ui.blue.buttons .button:hover,
-.ui.blue.button:hover {
- background-color: #1678c2;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.blue.buttons .button:focus,
-.ui.blue.button:focus {
- background-color: #0d71bb;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.blue.buttons .button:active,
-.ui.blue.button:active {
- background-color: #1a69a4;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.blue.buttons .active.button,
-.ui.blue.buttons .active.button:active,
-.ui.blue.active.button,
-.ui.blue.button .active.button:active {
- background-color: #1279c6;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-/* Basic */
-
-.ui.basic.blue.buttons .button,
-.ui.basic.blue.button {
- -webkit-box-shadow: 0px 0px 0px 1px #2185D0 inset !important;
- box-shadow: 0px 0px 0px 1px #2185D0 inset !important;
- color: #2185D0 !important;
-}
-
-.ui.basic.blue.buttons .button:hover,
-.ui.basic.blue.button:hover {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #1678c2 inset !important;
- box-shadow: 0px 0px 0px 1px #1678c2 inset !important;
- color: #1678c2 !important;
-}
-
-.ui.basic.blue.buttons .button:focus,
-.ui.basic.blue.button:focus {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #0d71bb inset !important;
- box-shadow: 0px 0px 0px 1px #0d71bb inset !important;
- color: #1678c2 !important;
-}
-
-.ui.basic.blue.buttons .active.button,
-.ui.basic.blue.active.button {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #1279c6 inset !important;
- box-shadow: 0px 0px 0px 1px #1279c6 inset !important;
- color: #1a69a4 !important;
-}
-
-.ui.basic.blue.buttons .button:active,
-.ui.basic.blue.button:active {
- -webkit-box-shadow: 0px 0px 0px 1px #1a69a4 inset !important;
- box-shadow: 0px 0px 0px 1px #1a69a4 inset !important;
- color: #1a69a4 !important;
-}
-
-.ui.buttons:not(.vertical) > .basic.blue.button:not(:first-child) {
- margin-left: -1px;
-}
-
-/* Inverted */
-
-.ui.inverted.blue.buttons .button,
-.ui.inverted.blue.button {
- background-color: transparent;
- -webkit-box-shadow: 0px 0px 0px 2px #54C8FF inset !important;
- box-shadow: 0px 0px 0px 2px #54C8FF inset !important;
- color: #54C8FF;
-}
-
-.ui.inverted.blue.buttons .button:hover,
-.ui.inverted.blue.button:hover,
-.ui.inverted.blue.buttons .button:focus,
-.ui.inverted.blue.button:focus,
-.ui.inverted.blue.buttons .button.active,
-.ui.inverted.blue.button.active,
-.ui.inverted.blue.buttons .button:active,
-.ui.inverted.blue.button:active {
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
- color: #FFFFFF;
-}
-
-.ui.inverted.blue.buttons .button:hover,
-.ui.inverted.blue.button:hover {
- background-color: #3ac0ff;
-}
-
-.ui.inverted.blue.buttons .button:focus,
-.ui.inverted.blue.button:focus {
- background-color: #2bbbff;
-}
-
-.ui.inverted.blue.buttons .active.button,
-.ui.inverted.blue.active.button {
- background-color: #3ac0ff;
-}
-
-.ui.inverted.blue.buttons .button:active,
-.ui.inverted.blue.button:active {
- background-color: #21b8ff;
-}
-
-/* Inverted Basic */
-
-.ui.inverted.blue.basic.buttons .button,
-.ui.inverted.blue.buttons .basic.button,
-.ui.inverted.blue.basic.button {
- background-color: transparent;
- -webkit-box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
- box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
- color: #FFFFFF !important;
-}
-
-.ui.inverted.blue.basic.buttons .button:hover,
-.ui.inverted.blue.buttons .basic.button:hover,
-.ui.inverted.blue.basic.button:hover {
- -webkit-box-shadow: 0px 0px 0px 2px #3ac0ff inset !important;
- box-shadow: 0px 0px 0px 2px #3ac0ff inset !important;
- color: #54C8FF !important;
-}
-
-.ui.inverted.blue.basic.buttons .button:focus,
-.ui.inverted.blue.basic.buttons .button:focus,
-.ui.inverted.blue.basic.button:focus {
- -webkit-box-shadow: 0px 0px 0px 2px #2bbbff inset !important;
- box-shadow: 0px 0px 0px 2px #2bbbff inset !important;
- color: #54C8FF !important;
-}
-
-.ui.inverted.blue.basic.buttons .active.button,
-.ui.inverted.blue.buttons .basic.active.button,
-.ui.inverted.blue.basic.active.button {
- -webkit-box-shadow: 0px 0px 0px 2px #3ac0ff inset !important;
- box-shadow: 0px 0px 0px 2px #3ac0ff inset !important;
- color: #54C8FF !important;
-}
-
-.ui.inverted.blue.basic.buttons .button:active,
-.ui.inverted.blue.buttons .basic.button:active,
-.ui.inverted.blue.basic.button:active {
- -webkit-box-shadow: 0px 0px 0px 2px #21b8ff inset !important;
- box-shadow: 0px 0px 0px 2px #21b8ff inset !important;
- color: #54C8FF !important;
-}
-
-/*--- Green ---*/
-
-.ui.green.buttons .button,
-.ui.green.button {
- background-color: #21BA45;
- color: #FFFFFF;
- text-shadow: none;
- background-image: none;
-}
-
-.ui.green.button {
- -webkit-box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
- box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
-}
-
-.ui.green.buttons .button:hover,
-.ui.green.button:hover {
- background-color: #16ab39;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.green.buttons .button:focus,
-.ui.green.button:focus {
- background-color: #0ea432;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.green.buttons .button:active,
-.ui.green.button:active {
- background-color: #198f35;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.green.buttons .active.button,
-.ui.green.buttons .active.button:active,
-.ui.green.active.button,
-.ui.green.button .active.button:active {
- background-color: #13ae38;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-/* Basic */
-
-.ui.basic.green.buttons .button,
-.ui.basic.green.button {
- -webkit-box-shadow: 0px 0px 0px 1px #21BA45 inset !important;
- box-shadow: 0px 0px 0px 1px #21BA45 inset !important;
- color: #21BA45 !important;
-}
-
-.ui.basic.green.buttons .button:hover,
-.ui.basic.green.button:hover {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #16ab39 inset !important;
- box-shadow: 0px 0px 0px 1px #16ab39 inset !important;
- color: #16ab39 !important;
-}
-
-.ui.basic.green.buttons .button:focus,
-.ui.basic.green.button:focus {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #0ea432 inset !important;
- box-shadow: 0px 0px 0px 1px #0ea432 inset !important;
- color: #16ab39 !important;
-}
-
-.ui.basic.green.buttons .active.button,
-.ui.basic.green.active.button {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #13ae38 inset !important;
- box-shadow: 0px 0px 0px 1px #13ae38 inset !important;
- color: #198f35 !important;
-}
-
-.ui.basic.green.buttons .button:active,
-.ui.basic.green.button:active {
- -webkit-box-shadow: 0px 0px 0px 1px #198f35 inset !important;
- box-shadow: 0px 0px 0px 1px #198f35 inset !important;
- color: #198f35 !important;
-}
-
-.ui.buttons:not(.vertical) > .basic.green.button:not(:first-child) {
- margin-left: -1px;
-}
-
-/* Inverted */
-
-.ui.inverted.green.buttons .button,
-.ui.inverted.green.button {
- background-color: transparent;
- -webkit-box-shadow: 0px 0px 0px 2px #2ECC40 inset !important;
- box-shadow: 0px 0px 0px 2px #2ECC40 inset !important;
- color: #2ECC40;
-}
-
-.ui.inverted.green.buttons .button:hover,
-.ui.inverted.green.button:hover,
-.ui.inverted.green.buttons .button:focus,
-.ui.inverted.green.button:focus,
-.ui.inverted.green.buttons .button.active,
-.ui.inverted.green.button.active,
-.ui.inverted.green.buttons .button:active,
-.ui.inverted.green.button:active {
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
- color: #FFFFFF;
-}
-
-.ui.inverted.green.buttons .button:hover,
-.ui.inverted.green.button:hover {
- background-color: #22be34;
-}
-
-.ui.inverted.green.buttons .button:focus,
-.ui.inverted.green.button:focus {
- background-color: #19b82b;
-}
-
-.ui.inverted.green.buttons .active.button,
-.ui.inverted.green.active.button {
- background-color: #1fc231;
-}
-
-.ui.inverted.green.buttons .button:active,
-.ui.inverted.green.button:active {
- background-color: #25a233;
-}
-
-/* Inverted Basic */
-
-.ui.inverted.green.basic.buttons .button,
-.ui.inverted.green.buttons .basic.button,
-.ui.inverted.green.basic.button {
- background-color: transparent;
- -webkit-box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
- box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
- color: #FFFFFF !important;
-}
-
-.ui.inverted.green.basic.buttons .button:hover,
-.ui.inverted.green.buttons .basic.button:hover,
-.ui.inverted.green.basic.button:hover {
- -webkit-box-shadow: 0px 0px 0px 2px #22be34 inset !important;
- box-shadow: 0px 0px 0px 2px #22be34 inset !important;
- color: #2ECC40 !important;
-}
-
-.ui.inverted.green.basic.buttons .button:focus,
-.ui.inverted.green.basic.buttons .button:focus,
-.ui.inverted.green.basic.button:focus {
- -webkit-box-shadow: 0px 0px 0px 2px #19b82b inset !important;
- box-shadow: 0px 0px 0px 2px #19b82b inset !important;
- color: #2ECC40 !important;
-}
-
-.ui.inverted.green.basic.buttons .active.button,
-.ui.inverted.green.buttons .basic.active.button,
-.ui.inverted.green.basic.active.button {
- -webkit-box-shadow: 0px 0px 0px 2px #1fc231 inset !important;
- box-shadow: 0px 0px 0px 2px #1fc231 inset !important;
- color: #2ECC40 !important;
-}
-
-.ui.inverted.green.basic.buttons .button:active,
-.ui.inverted.green.buttons .basic.button:active,
-.ui.inverted.green.basic.button:active {
- -webkit-box-shadow: 0px 0px 0px 2px #25a233 inset !important;
- box-shadow: 0px 0px 0px 2px #25a233 inset !important;
- color: #2ECC40 !important;
-}
-
-/*--- Orange ---*/
-
-.ui.orange.buttons .button,
-.ui.orange.button {
- background-color: #F2711C;
- color: #FFFFFF;
- text-shadow: none;
- background-image: none;
-}
-
-.ui.orange.button {
- -webkit-box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
- box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
-}
-
-.ui.orange.buttons .button:hover,
-.ui.orange.button:hover {
- background-color: #f26202;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.orange.buttons .button:focus,
-.ui.orange.button:focus {
- background-color: #e55b00;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.orange.buttons .button:active,
-.ui.orange.button:active {
- background-color: #cf590c;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.orange.buttons .active.button,
-.ui.orange.buttons .active.button:active,
-.ui.orange.active.button,
-.ui.orange.button .active.button:active {
- background-color: #f56100;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-/* Basic */
-
-.ui.basic.orange.buttons .button,
-.ui.basic.orange.button {
- -webkit-box-shadow: 0px 0px 0px 1px #F2711C inset !important;
- box-shadow: 0px 0px 0px 1px #F2711C inset !important;
- color: #F2711C !important;
-}
-
-.ui.basic.orange.buttons .button:hover,
-.ui.basic.orange.button:hover {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #f26202 inset !important;
- box-shadow: 0px 0px 0px 1px #f26202 inset !important;
- color: #f26202 !important;
-}
-
-.ui.basic.orange.buttons .button:focus,
-.ui.basic.orange.button:focus {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #e55b00 inset !important;
- box-shadow: 0px 0px 0px 1px #e55b00 inset !important;
- color: #f26202 !important;
-}
-
-.ui.basic.orange.buttons .active.button,
-.ui.basic.orange.active.button {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #f56100 inset !important;
- box-shadow: 0px 0px 0px 1px #f56100 inset !important;
- color: #cf590c !important;
-}
-
-.ui.basic.orange.buttons .button:active,
-.ui.basic.orange.button:active {
- -webkit-box-shadow: 0px 0px 0px 1px #cf590c inset !important;
- box-shadow: 0px 0px 0px 1px #cf590c inset !important;
- color: #cf590c !important;
-}
-
-.ui.buttons:not(.vertical) > .basic.orange.button:not(:first-child) {
- margin-left: -1px;
-}
-
-/* Inverted */
-
-.ui.inverted.orange.buttons .button,
-.ui.inverted.orange.button {
- background-color: transparent;
- -webkit-box-shadow: 0px 0px 0px 2px #FF851B inset !important;
- box-shadow: 0px 0px 0px 2px #FF851B inset !important;
- color: #FF851B;
-}
-
-.ui.inverted.orange.buttons .button:hover,
-.ui.inverted.orange.button:hover,
-.ui.inverted.orange.buttons .button:focus,
-.ui.inverted.orange.button:focus,
-.ui.inverted.orange.buttons .button.active,
-.ui.inverted.orange.button.active,
-.ui.inverted.orange.buttons .button:active,
-.ui.inverted.orange.button:active {
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
- color: #FFFFFF;
-}
-
-.ui.inverted.orange.buttons .button:hover,
-.ui.inverted.orange.button:hover {
- background-color: #ff7701;
-}
-
-.ui.inverted.orange.buttons .button:focus,
-.ui.inverted.orange.button:focus {
- background-color: #f17000;
-}
-
-.ui.inverted.orange.buttons .active.button,
-.ui.inverted.orange.active.button {
- background-color: #ff7701;
-}
-
-.ui.inverted.orange.buttons .button:active,
-.ui.inverted.orange.button:active {
- background-color: #e76b00;
-}
-
-/* Inverted Basic */
-
-.ui.inverted.orange.basic.buttons .button,
-.ui.inverted.orange.buttons .basic.button,
-.ui.inverted.orange.basic.button {
- background-color: transparent;
- -webkit-box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
- box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
- color: #FFFFFF !important;
-}
-
-.ui.inverted.orange.basic.buttons .button:hover,
-.ui.inverted.orange.buttons .basic.button:hover,
-.ui.inverted.orange.basic.button:hover {
- -webkit-box-shadow: 0px 0px 0px 2px #ff7701 inset !important;
- box-shadow: 0px 0px 0px 2px #ff7701 inset !important;
- color: #FF851B !important;
-}
-
-.ui.inverted.orange.basic.buttons .button:focus,
-.ui.inverted.orange.basic.buttons .button:focus,
-.ui.inverted.orange.basic.button:focus {
- -webkit-box-shadow: 0px 0px 0px 2px #f17000 inset !important;
- box-shadow: 0px 0px 0px 2px #f17000 inset !important;
- color: #FF851B !important;
-}
-
-.ui.inverted.orange.basic.buttons .active.button,
-.ui.inverted.orange.buttons .basic.active.button,
-.ui.inverted.orange.basic.active.button {
- -webkit-box-shadow: 0px 0px 0px 2px #ff7701 inset !important;
- box-shadow: 0px 0px 0px 2px #ff7701 inset !important;
- color: #FF851B !important;
-}
-
-.ui.inverted.orange.basic.buttons .button:active,
-.ui.inverted.orange.buttons .basic.button:active,
-.ui.inverted.orange.basic.button:active {
- -webkit-box-shadow: 0px 0px 0px 2px #e76b00 inset !important;
- box-shadow: 0px 0px 0px 2px #e76b00 inset !important;
- color: #FF851B !important;
-}
-
-/*--- Pink ---*/
-
-.ui.pink.buttons .button,
-.ui.pink.button {
- background-color: #E03997;
- color: #FFFFFF;
- text-shadow: none;
- background-image: none;
-}
-
-.ui.pink.button {
- -webkit-box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
- box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
-}
-
-.ui.pink.buttons .button:hover,
-.ui.pink.button:hover {
- background-color: #e61a8d;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.pink.buttons .button:focus,
-.ui.pink.button:focus {
- background-color: #e10f85;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.pink.buttons .button:active,
-.ui.pink.button:active {
- background-color: #c71f7e;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.pink.buttons .active.button,
-.ui.pink.buttons .active.button:active,
-.ui.pink.active.button,
-.ui.pink.button .active.button:active {
- background-color: #ea158d;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-/* Basic */
-
-.ui.basic.pink.buttons .button,
-.ui.basic.pink.button {
- -webkit-box-shadow: 0px 0px 0px 1px #E03997 inset !important;
- box-shadow: 0px 0px 0px 1px #E03997 inset !important;
- color: #E03997 !important;
-}
-
-.ui.basic.pink.buttons .button:hover,
-.ui.basic.pink.button:hover {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #e61a8d inset !important;
- box-shadow: 0px 0px 0px 1px #e61a8d inset !important;
- color: #e61a8d !important;
-}
-
-.ui.basic.pink.buttons .button:focus,
-.ui.basic.pink.button:focus {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #e10f85 inset !important;
- box-shadow: 0px 0px 0px 1px #e10f85 inset !important;
- color: #e61a8d !important;
-}
-
-.ui.basic.pink.buttons .active.button,
-.ui.basic.pink.active.button {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #ea158d inset !important;
- box-shadow: 0px 0px 0px 1px #ea158d inset !important;
- color: #c71f7e !important;
-}
-
-.ui.basic.pink.buttons .button:active,
-.ui.basic.pink.button:active {
- -webkit-box-shadow: 0px 0px 0px 1px #c71f7e inset !important;
- box-shadow: 0px 0px 0px 1px #c71f7e inset !important;
- color: #c71f7e !important;
-}
-
-.ui.buttons:not(.vertical) > .basic.pink.button:not(:first-child) {
- margin-left: -1px;
-}
-
-/* Inverted */
-
-.ui.inverted.pink.buttons .button,
-.ui.inverted.pink.button {
- background-color: transparent;
- -webkit-box-shadow: 0px 0px 0px 2px #FF8EDF inset !important;
- box-shadow: 0px 0px 0px 2px #FF8EDF inset !important;
- color: #FF8EDF;
-}
-
-.ui.inverted.pink.buttons .button:hover,
-.ui.inverted.pink.button:hover,
-.ui.inverted.pink.buttons .button:focus,
-.ui.inverted.pink.button:focus,
-.ui.inverted.pink.buttons .button.active,
-.ui.inverted.pink.button.active,
-.ui.inverted.pink.buttons .button:active,
-.ui.inverted.pink.button:active {
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
- color: #FFFFFF;
-}
-
-.ui.inverted.pink.buttons .button:hover,
-.ui.inverted.pink.button:hover {
- background-color: #ff74d8;
-}
-
-.ui.inverted.pink.buttons .button:focus,
-.ui.inverted.pink.button:focus {
- background-color: #ff65d3;
-}
-
-.ui.inverted.pink.buttons .active.button,
-.ui.inverted.pink.active.button {
- background-color: #ff74d8;
-}
-
-.ui.inverted.pink.buttons .button:active,
-.ui.inverted.pink.button:active {
- background-color: #ff5bd1;
-}
-
-/* Inverted Basic */
-
-.ui.inverted.pink.basic.buttons .button,
-.ui.inverted.pink.buttons .basic.button,
-.ui.inverted.pink.basic.button {
- background-color: transparent;
- -webkit-box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
- box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
- color: #FFFFFF !important;
-}
-
-.ui.inverted.pink.basic.buttons .button:hover,
-.ui.inverted.pink.buttons .basic.button:hover,
-.ui.inverted.pink.basic.button:hover {
- -webkit-box-shadow: 0px 0px 0px 2px #ff74d8 inset !important;
- box-shadow: 0px 0px 0px 2px #ff74d8 inset !important;
- color: #FF8EDF !important;
-}
-
-.ui.inverted.pink.basic.buttons .button:focus,
-.ui.inverted.pink.basic.buttons .button:focus,
-.ui.inverted.pink.basic.button:focus {
- -webkit-box-shadow: 0px 0px 0px 2px #ff65d3 inset !important;
- box-shadow: 0px 0px 0px 2px #ff65d3 inset !important;
- color: #FF8EDF !important;
-}
-
-.ui.inverted.pink.basic.buttons .active.button,
-.ui.inverted.pink.buttons .basic.active.button,
-.ui.inverted.pink.basic.active.button {
- -webkit-box-shadow: 0px 0px 0px 2px #ff74d8 inset !important;
- box-shadow: 0px 0px 0px 2px #ff74d8 inset !important;
- color: #FF8EDF !important;
-}
-
-.ui.inverted.pink.basic.buttons .button:active,
-.ui.inverted.pink.buttons .basic.button:active,
-.ui.inverted.pink.basic.button:active {
- -webkit-box-shadow: 0px 0px 0px 2px #ff5bd1 inset !important;
- box-shadow: 0px 0px 0px 2px #ff5bd1 inset !important;
- color: #FF8EDF !important;
-}
-
-/*--- Violet ---*/
-
-.ui.violet.buttons .button,
-.ui.violet.button {
- background-color: #6435C9;
- color: #FFFFFF;
- text-shadow: none;
- background-image: none;
-}
-
-.ui.violet.button {
- -webkit-box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
- box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
-}
-
-.ui.violet.buttons .button:hover,
-.ui.violet.button:hover {
- background-color: #5829bb;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.violet.buttons .button:focus,
-.ui.violet.button:focus {
- background-color: #4f20b5;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.violet.buttons .button:active,
-.ui.violet.button:active {
- background-color: #502aa1;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.violet.buttons .active.button,
-.ui.violet.buttons .active.button:active,
-.ui.violet.active.button,
-.ui.violet.button .active.button:active {
- background-color: #5626bf;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-/* Basic */
-
-.ui.basic.violet.buttons .button,
-.ui.basic.violet.button {
- -webkit-box-shadow: 0px 0px 0px 1px #6435C9 inset !important;
- box-shadow: 0px 0px 0px 1px #6435C9 inset !important;
- color: #6435C9 !important;
-}
-
-.ui.basic.violet.buttons .button:hover,
-.ui.basic.violet.button:hover {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #5829bb inset !important;
- box-shadow: 0px 0px 0px 1px #5829bb inset !important;
- color: #5829bb !important;
-}
-
-.ui.basic.violet.buttons .button:focus,
-.ui.basic.violet.button:focus {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #4f20b5 inset !important;
- box-shadow: 0px 0px 0px 1px #4f20b5 inset !important;
- color: #5829bb !important;
-}
-
-.ui.basic.violet.buttons .active.button,
-.ui.basic.violet.active.button {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #5626bf inset !important;
- box-shadow: 0px 0px 0px 1px #5626bf inset !important;
- color: #502aa1 !important;
-}
-
-.ui.basic.violet.buttons .button:active,
-.ui.basic.violet.button:active {
- -webkit-box-shadow: 0px 0px 0px 1px #502aa1 inset !important;
- box-shadow: 0px 0px 0px 1px #502aa1 inset !important;
- color: #502aa1 !important;
-}
-
-.ui.buttons:not(.vertical) > .basic.violet.button:not(:first-child) {
- margin-left: -1px;
-}
-
-/* Inverted */
-
-.ui.inverted.violet.buttons .button,
-.ui.inverted.violet.button {
- background-color: transparent;
- -webkit-box-shadow: 0px 0px 0px 2px #A291FB inset !important;
- box-shadow: 0px 0px 0px 2px #A291FB inset !important;
- color: #A291FB;
-}
-
-.ui.inverted.violet.buttons .button:hover,
-.ui.inverted.violet.button:hover,
-.ui.inverted.violet.buttons .button:focus,
-.ui.inverted.violet.button:focus,
-.ui.inverted.violet.buttons .button.active,
-.ui.inverted.violet.button.active,
-.ui.inverted.violet.buttons .button:active,
-.ui.inverted.violet.button:active {
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
- color: #FFFFFF;
-}
-
-.ui.inverted.violet.buttons .button:hover,
-.ui.inverted.violet.button:hover {
- background-color: #8a73ff;
-}
-
-.ui.inverted.violet.buttons .button:focus,
-.ui.inverted.violet.button:focus {
- background-color: #7d64ff;
-}
-
-.ui.inverted.violet.buttons .active.button,
-.ui.inverted.violet.active.button {
- background-color: #8a73ff;
-}
-
-.ui.inverted.violet.buttons .button:active,
-.ui.inverted.violet.button:active {
- background-color: #7860f9;
-}
-
-/* Inverted Basic */
-
-.ui.inverted.violet.basic.buttons .button,
-.ui.inverted.violet.buttons .basic.button,
-.ui.inverted.violet.basic.button {
- background-color: transparent;
- -webkit-box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
- box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
- color: #FFFFFF !important;
-}
-
-.ui.inverted.violet.basic.buttons .button:hover,
-.ui.inverted.violet.buttons .basic.button:hover,
-.ui.inverted.violet.basic.button:hover {
- -webkit-box-shadow: 0px 0px 0px 2px #8a73ff inset !important;
- box-shadow: 0px 0px 0px 2px #8a73ff inset !important;
- color: #A291FB !important;
-}
-
-.ui.inverted.violet.basic.buttons .button:focus,
-.ui.inverted.violet.basic.buttons .button:focus,
-.ui.inverted.violet.basic.button:focus {
- -webkit-box-shadow: 0px 0px 0px 2px #7d64ff inset !important;
- box-shadow: 0px 0px 0px 2px #7d64ff inset !important;
- color: #A291FB !important;
-}
-
-.ui.inverted.violet.basic.buttons .active.button,
-.ui.inverted.violet.buttons .basic.active.button,
-.ui.inverted.violet.basic.active.button {
- -webkit-box-shadow: 0px 0px 0px 2px #8a73ff inset !important;
- box-shadow: 0px 0px 0px 2px #8a73ff inset !important;
- color: #A291FB !important;
-}
-
-.ui.inverted.violet.basic.buttons .button:active,
-.ui.inverted.violet.buttons .basic.button:active,
-.ui.inverted.violet.basic.button:active {
- -webkit-box-shadow: 0px 0px 0px 2px #7860f9 inset !important;
- box-shadow: 0px 0px 0px 2px #7860f9 inset !important;
- color: #A291FB !important;
-}
-
-/*--- Purple ---*/
-
-.ui.purple.buttons .button,
-.ui.purple.button {
- background-color: #A333C8;
- color: #FFFFFF;
- text-shadow: none;
- background-image: none;
-}
-
-.ui.purple.button {
- -webkit-box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
- box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
-}
-
-.ui.purple.buttons .button:hover,
-.ui.purple.button:hover {
- background-color: #9627ba;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.purple.buttons .button:focus,
-.ui.purple.button:focus {
- background-color: #8f1eb4;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.purple.buttons .button:active,
-.ui.purple.button:active {
- background-color: #82299f;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.purple.buttons .active.button,
-.ui.purple.buttons .active.button:active,
-.ui.purple.active.button,
-.ui.purple.button .active.button:active {
- background-color: #9724be;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-/* Basic */
-
-.ui.basic.purple.buttons .button,
-.ui.basic.purple.button {
- -webkit-box-shadow: 0px 0px 0px 1px #A333C8 inset !important;
- box-shadow: 0px 0px 0px 1px #A333C8 inset !important;
- color: #A333C8 !important;
-}
-
-.ui.basic.purple.buttons .button:hover,
-.ui.basic.purple.button:hover {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #9627ba inset !important;
- box-shadow: 0px 0px 0px 1px #9627ba inset !important;
- color: #9627ba !important;
-}
-
-.ui.basic.purple.buttons .button:focus,
-.ui.basic.purple.button:focus {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #8f1eb4 inset !important;
- box-shadow: 0px 0px 0px 1px #8f1eb4 inset !important;
- color: #9627ba !important;
-}
-
-.ui.basic.purple.buttons .active.button,
-.ui.basic.purple.active.button {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #9724be inset !important;
- box-shadow: 0px 0px 0px 1px #9724be inset !important;
- color: #82299f !important;
-}
-
-.ui.basic.purple.buttons .button:active,
-.ui.basic.purple.button:active {
- -webkit-box-shadow: 0px 0px 0px 1px #82299f inset !important;
- box-shadow: 0px 0px 0px 1px #82299f inset !important;
- color: #82299f !important;
-}
-
-.ui.buttons:not(.vertical) > .basic.purple.button:not(:first-child) {
- margin-left: -1px;
-}
-
-/* Inverted */
-
-.ui.inverted.purple.buttons .button,
-.ui.inverted.purple.button {
- background-color: transparent;
- -webkit-box-shadow: 0px 0px 0px 2px #DC73FF inset !important;
- box-shadow: 0px 0px 0px 2px #DC73FF inset !important;
- color: #DC73FF;
-}
-
-.ui.inverted.purple.buttons .button:hover,
-.ui.inverted.purple.button:hover,
-.ui.inverted.purple.buttons .button:focus,
-.ui.inverted.purple.button:focus,
-.ui.inverted.purple.buttons .button.active,
-.ui.inverted.purple.button.active,
-.ui.inverted.purple.buttons .button:active,
-.ui.inverted.purple.button:active {
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
- color: #FFFFFF;
-}
-
-.ui.inverted.purple.buttons .button:hover,
-.ui.inverted.purple.button:hover {
- background-color: #d65aff;
-}
-
-.ui.inverted.purple.buttons .button:focus,
-.ui.inverted.purple.button:focus {
- background-color: #d24aff;
-}
-
-.ui.inverted.purple.buttons .active.button,
-.ui.inverted.purple.active.button {
- background-color: #d65aff;
-}
-
-.ui.inverted.purple.buttons .button:active,
-.ui.inverted.purple.button:active {
- background-color: #cf40ff;
-}
-
-/* Inverted Basic */
-
-.ui.inverted.purple.basic.buttons .button,
-.ui.inverted.purple.buttons .basic.button,
-.ui.inverted.purple.basic.button {
- background-color: transparent;
- -webkit-box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
- box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
- color: #FFFFFF !important;
-}
-
-.ui.inverted.purple.basic.buttons .button:hover,
-.ui.inverted.purple.buttons .basic.button:hover,
-.ui.inverted.purple.basic.button:hover {
- -webkit-box-shadow: 0px 0px 0px 2px #d65aff inset !important;
- box-shadow: 0px 0px 0px 2px #d65aff inset !important;
- color: #DC73FF !important;
-}
-
-.ui.inverted.purple.basic.buttons .button:focus,
-.ui.inverted.purple.basic.buttons .button:focus,
-.ui.inverted.purple.basic.button:focus {
- -webkit-box-shadow: 0px 0px 0px 2px #d24aff inset !important;
- box-shadow: 0px 0px 0px 2px #d24aff inset !important;
- color: #DC73FF !important;
-}
-
-.ui.inverted.purple.basic.buttons .active.button,
-.ui.inverted.purple.buttons .basic.active.button,
-.ui.inverted.purple.basic.active.button {
- -webkit-box-shadow: 0px 0px 0px 2px #d65aff inset !important;
- box-shadow: 0px 0px 0px 2px #d65aff inset !important;
- color: #DC73FF !important;
-}
-
-.ui.inverted.purple.basic.buttons .button:active,
-.ui.inverted.purple.buttons .basic.button:active,
-.ui.inverted.purple.basic.button:active {
- -webkit-box-shadow: 0px 0px 0px 2px #cf40ff inset !important;
- box-shadow: 0px 0px 0px 2px #cf40ff inset !important;
- color: #DC73FF !important;
-}
-
-/*--- Red ---*/
-
-.ui.red.buttons .button,
-.ui.red.button {
- background-color: #DB2828;
- color: #FFFFFF;
- text-shadow: none;
- background-image: none;
-}
-
-.ui.red.button {
- -webkit-box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
- box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
-}
-
-.ui.red.buttons .button:hover,
-.ui.red.button:hover {
- background-color: #d01919;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.red.buttons .button:focus,
-.ui.red.button:focus {
- background-color: #ca1010;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.red.buttons .button:active,
-.ui.red.button:active {
- background-color: #b21e1e;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.red.buttons .active.button,
-.ui.red.buttons .active.button:active,
-.ui.red.active.button,
-.ui.red.button .active.button:active {
- background-color: #d41515;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-/* Basic */
-
-.ui.basic.red.buttons .button,
-.ui.basic.red.button {
- -webkit-box-shadow: 0px 0px 0px 1px #DB2828 inset !important;
- box-shadow: 0px 0px 0px 1px #DB2828 inset !important;
- color: #DB2828 !important;
-}
-
-.ui.basic.red.buttons .button:hover,
-.ui.basic.red.button:hover {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #d01919 inset !important;
- box-shadow: 0px 0px 0px 1px #d01919 inset !important;
- color: #d01919 !important;
-}
-
-.ui.basic.red.buttons .button:focus,
-.ui.basic.red.button:focus {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #ca1010 inset !important;
- box-shadow: 0px 0px 0px 1px #ca1010 inset !important;
- color: #d01919 !important;
-}
-
-.ui.basic.red.buttons .active.button,
-.ui.basic.red.active.button {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #d41515 inset !important;
- box-shadow: 0px 0px 0px 1px #d41515 inset !important;
- color: #b21e1e !important;
-}
-
-.ui.basic.red.buttons .button:active,
-.ui.basic.red.button:active {
- -webkit-box-shadow: 0px 0px 0px 1px #b21e1e inset !important;
- box-shadow: 0px 0px 0px 1px #b21e1e inset !important;
- color: #b21e1e !important;
-}
-
-.ui.buttons:not(.vertical) > .basic.red.button:not(:first-child) {
- margin-left: -1px;
-}
-
-/* Inverted */
-
-.ui.inverted.red.buttons .button,
-.ui.inverted.red.button {
- background-color: transparent;
- -webkit-box-shadow: 0px 0px 0px 2px #FF695E inset !important;
- box-shadow: 0px 0px 0px 2px #FF695E inset !important;
- color: #FF695E;
-}
-
-.ui.inverted.red.buttons .button:hover,
-.ui.inverted.red.button:hover,
-.ui.inverted.red.buttons .button:focus,
-.ui.inverted.red.button:focus,
-.ui.inverted.red.buttons .button.active,
-.ui.inverted.red.button.active,
-.ui.inverted.red.buttons .button:active,
-.ui.inverted.red.button:active {
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
- color: #FFFFFF;
-}
-
-.ui.inverted.red.buttons .button:hover,
-.ui.inverted.red.button:hover {
- background-color: #ff5144;
-}
-
-.ui.inverted.red.buttons .button:focus,
-.ui.inverted.red.button:focus {
- background-color: #ff4335;
-}
-
-.ui.inverted.red.buttons .active.button,
-.ui.inverted.red.active.button {
- background-color: #ff5144;
-}
-
-.ui.inverted.red.buttons .button:active,
-.ui.inverted.red.button:active {
- background-color: #ff392b;
-}
-
-/* Inverted Basic */
-
-.ui.inverted.red.basic.buttons .button,
-.ui.inverted.red.buttons .basic.button,
-.ui.inverted.red.basic.button {
- background-color: transparent;
- -webkit-box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
- box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
- color: #FFFFFF !important;
-}
-
-.ui.inverted.red.basic.buttons .button:hover,
-.ui.inverted.red.buttons .basic.button:hover,
-.ui.inverted.red.basic.button:hover {
- -webkit-box-shadow: 0px 0px 0px 2px #ff5144 inset !important;
- box-shadow: 0px 0px 0px 2px #ff5144 inset !important;
- color: #FF695E !important;
-}
-
-.ui.inverted.red.basic.buttons .button:focus,
-.ui.inverted.red.basic.buttons .button:focus,
-.ui.inverted.red.basic.button:focus {
- -webkit-box-shadow: 0px 0px 0px 2px #ff4335 inset !important;
- box-shadow: 0px 0px 0px 2px #ff4335 inset !important;
- color: #FF695E !important;
-}
-
-.ui.inverted.red.basic.buttons .active.button,
-.ui.inverted.red.buttons .basic.active.button,
-.ui.inverted.red.basic.active.button {
- -webkit-box-shadow: 0px 0px 0px 2px #ff5144 inset !important;
- box-shadow: 0px 0px 0px 2px #ff5144 inset !important;
- color: #FF695E !important;
-}
-
-.ui.inverted.red.basic.buttons .button:active,
-.ui.inverted.red.buttons .basic.button:active,
-.ui.inverted.red.basic.button:active {
- -webkit-box-shadow: 0px 0px 0px 2px #ff392b inset !important;
- box-shadow: 0px 0px 0px 2px #ff392b inset !important;
- color: #FF695E !important;
-}
-
-/*--- Teal ---*/
-
-.ui.teal.buttons .button,
-.ui.teal.button {
- background-color: #00B5AD;
- color: #FFFFFF;
- text-shadow: none;
- background-image: none;
-}
-
-.ui.teal.button {
- -webkit-box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
- box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
-}
-
-.ui.teal.buttons .button:hover,
-.ui.teal.button:hover {
- background-color: #009c95;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.teal.buttons .button:focus,
-.ui.teal.button:focus {
- background-color: #008c86;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.teal.buttons .button:active,
-.ui.teal.button:active {
- background-color: #00827c;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.teal.buttons .active.button,
-.ui.teal.buttons .active.button:active,
-.ui.teal.active.button,
-.ui.teal.button .active.button:active {
- background-color: #009c95;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-/* Basic */
-
-.ui.basic.teal.buttons .button,
-.ui.basic.teal.button {
- -webkit-box-shadow: 0px 0px 0px 1px #00B5AD inset !important;
- box-shadow: 0px 0px 0px 1px #00B5AD inset !important;
- color: #00B5AD !important;
-}
-
-.ui.basic.teal.buttons .button:hover,
-.ui.basic.teal.button:hover {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #009c95 inset !important;
- box-shadow: 0px 0px 0px 1px #009c95 inset !important;
- color: #009c95 !important;
-}
-
-.ui.basic.teal.buttons .button:focus,
-.ui.basic.teal.button:focus {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #008c86 inset !important;
- box-shadow: 0px 0px 0px 1px #008c86 inset !important;
- color: #009c95 !important;
-}
-
-.ui.basic.teal.buttons .active.button,
-.ui.basic.teal.active.button {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #009c95 inset !important;
- box-shadow: 0px 0px 0px 1px #009c95 inset !important;
- color: #00827c !important;
-}
-
-.ui.basic.teal.buttons .button:active,
-.ui.basic.teal.button:active {
- -webkit-box-shadow: 0px 0px 0px 1px #00827c inset !important;
- box-shadow: 0px 0px 0px 1px #00827c inset !important;
- color: #00827c !important;
-}
-
-.ui.buttons:not(.vertical) > .basic.teal.button:not(:first-child) {
- margin-left: -1px;
-}
-
-/* Inverted */
-
-.ui.inverted.teal.buttons .button,
-.ui.inverted.teal.button {
- background-color: transparent;
- -webkit-box-shadow: 0px 0px 0px 2px #6DFFFF inset !important;
- box-shadow: 0px 0px 0px 2px #6DFFFF inset !important;
- color: #6DFFFF;
-}
-
-.ui.inverted.teal.buttons .button:hover,
-.ui.inverted.teal.button:hover,
-.ui.inverted.teal.buttons .button:focus,
-.ui.inverted.teal.button:focus,
-.ui.inverted.teal.buttons .button.active,
-.ui.inverted.teal.button.active,
-.ui.inverted.teal.buttons .button:active,
-.ui.inverted.teal.button:active {
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
- color: rgba(0, 0, 0, 0.6);
-}
-
-.ui.inverted.teal.buttons .button:hover,
-.ui.inverted.teal.button:hover {
- background-color: #54ffff;
-}
-
-.ui.inverted.teal.buttons .button:focus,
-.ui.inverted.teal.button:focus {
- background-color: #44ffff;
-}
-
-.ui.inverted.teal.buttons .active.button,
-.ui.inverted.teal.active.button {
- background-color: #54ffff;
-}
-
-.ui.inverted.teal.buttons .button:active,
-.ui.inverted.teal.button:active {
- background-color: #3affff;
-}
-
-/* Inverted Basic */
-
-.ui.inverted.teal.basic.buttons .button,
-.ui.inverted.teal.buttons .basic.button,
-.ui.inverted.teal.basic.button {
- background-color: transparent;
- -webkit-box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
- box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
- color: #FFFFFF !important;
-}
-
-.ui.inverted.teal.basic.buttons .button:hover,
-.ui.inverted.teal.buttons .basic.button:hover,
-.ui.inverted.teal.basic.button:hover {
- -webkit-box-shadow: 0px 0px 0px 2px #54ffff inset !important;
- box-shadow: 0px 0px 0px 2px #54ffff inset !important;
- color: #6DFFFF !important;
-}
-
-.ui.inverted.teal.basic.buttons .button:focus,
-.ui.inverted.teal.basic.buttons .button:focus,
-.ui.inverted.teal.basic.button:focus {
- -webkit-box-shadow: 0px 0px 0px 2px #44ffff inset !important;
- box-shadow: 0px 0px 0px 2px #44ffff inset !important;
- color: #6DFFFF !important;
-}
-
-.ui.inverted.teal.basic.buttons .active.button,
-.ui.inverted.teal.buttons .basic.active.button,
-.ui.inverted.teal.basic.active.button {
- -webkit-box-shadow: 0px 0px 0px 2px #54ffff inset !important;
- box-shadow: 0px 0px 0px 2px #54ffff inset !important;
- color: #6DFFFF !important;
-}
-
-.ui.inverted.teal.basic.buttons .button:active,
-.ui.inverted.teal.buttons .basic.button:active,
-.ui.inverted.teal.basic.button:active {
- -webkit-box-shadow: 0px 0px 0px 2px #3affff inset !important;
- box-shadow: 0px 0px 0px 2px #3affff inset !important;
- color: #6DFFFF !important;
-}
-
-/*--- Olive ---*/
-
-.ui.olive.buttons .button,
-.ui.olive.button {
- background-color: #B5CC18;
- color: #FFFFFF;
- text-shadow: none;
- background-image: none;
-}
-
-.ui.olive.button {
- -webkit-box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
- box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
-}
-
-.ui.olive.buttons .button:hover,
-.ui.olive.button:hover {
- background-color: #a7bd0d;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.olive.buttons .button:focus,
-.ui.olive.button:focus {
- background-color: #a0b605;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.olive.buttons .button:active,
-.ui.olive.button:active {
- background-color: #8d9e13;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.olive.buttons .active.button,
-.ui.olive.buttons .active.button:active,
-.ui.olive.active.button,
-.ui.olive.button .active.button:active {
- background-color: #aac109;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-/* Basic */
-
-.ui.basic.olive.buttons .button,
-.ui.basic.olive.button {
- -webkit-box-shadow: 0px 0px 0px 1px #B5CC18 inset !important;
- box-shadow: 0px 0px 0px 1px #B5CC18 inset !important;
- color: #B5CC18 !important;
-}
-
-.ui.basic.olive.buttons .button:hover,
-.ui.basic.olive.button:hover {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #a7bd0d inset !important;
- box-shadow: 0px 0px 0px 1px #a7bd0d inset !important;
- color: #a7bd0d !important;
-}
-
-.ui.basic.olive.buttons .button:focus,
-.ui.basic.olive.button:focus {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #a0b605 inset !important;
- box-shadow: 0px 0px 0px 1px #a0b605 inset !important;
- color: #a7bd0d !important;
-}
-
-.ui.basic.olive.buttons .active.button,
-.ui.basic.olive.active.button {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #aac109 inset !important;
- box-shadow: 0px 0px 0px 1px #aac109 inset !important;
- color: #8d9e13 !important;
-}
-
-.ui.basic.olive.buttons .button:active,
-.ui.basic.olive.button:active {
- -webkit-box-shadow: 0px 0px 0px 1px #8d9e13 inset !important;
- box-shadow: 0px 0px 0px 1px #8d9e13 inset !important;
- color: #8d9e13 !important;
-}
-
-.ui.buttons:not(.vertical) > .basic.olive.button:not(:first-child) {
- margin-left: -1px;
-}
-
-/* Inverted */
-
-.ui.inverted.olive.buttons .button,
-.ui.inverted.olive.button {
- background-color: transparent;
- -webkit-box-shadow: 0px 0px 0px 2px #D9E778 inset !important;
- box-shadow: 0px 0px 0px 2px #D9E778 inset !important;
- color: #D9E778;
-}
-
-.ui.inverted.olive.buttons .button:hover,
-.ui.inverted.olive.button:hover,
-.ui.inverted.olive.buttons .button:focus,
-.ui.inverted.olive.button:focus,
-.ui.inverted.olive.buttons .button.active,
-.ui.inverted.olive.button.active,
-.ui.inverted.olive.buttons .button:active,
-.ui.inverted.olive.button:active {
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
- color: rgba(0, 0, 0, 0.6);
-}
-
-.ui.inverted.olive.buttons .button:hover,
-.ui.inverted.olive.button:hover {
- background-color: #d8ea5c;
-}
-
-.ui.inverted.olive.buttons .button:focus,
-.ui.inverted.olive.button:focus {
- background-color: #daef47;
-}
-
-.ui.inverted.olive.buttons .active.button,
-.ui.inverted.olive.active.button {
- background-color: #daed59;
-}
-
-.ui.inverted.olive.buttons .button:active,
-.ui.inverted.olive.button:active {
- background-color: #cddf4d;
-}
-
-/* Inverted Basic */
-
-.ui.inverted.olive.basic.buttons .button,
-.ui.inverted.olive.buttons .basic.button,
-.ui.inverted.olive.basic.button {
- background-color: transparent;
- -webkit-box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
- box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
- color: #FFFFFF !important;
-}
-
-.ui.inverted.olive.basic.buttons .button:hover,
-.ui.inverted.olive.buttons .basic.button:hover,
-.ui.inverted.olive.basic.button:hover {
- -webkit-box-shadow: 0px 0px 0px 2px #d8ea5c inset !important;
- box-shadow: 0px 0px 0px 2px #d8ea5c inset !important;
- color: #D9E778 !important;
-}
-
-.ui.inverted.olive.basic.buttons .button:focus,
-.ui.inverted.olive.basic.buttons .button:focus,
-.ui.inverted.olive.basic.button:focus {
- -webkit-box-shadow: 0px 0px 0px 2px #daef47 inset !important;
- box-shadow: 0px 0px 0px 2px #daef47 inset !important;
- color: #D9E778 !important;
-}
-
-.ui.inverted.olive.basic.buttons .active.button,
-.ui.inverted.olive.buttons .basic.active.button,
-.ui.inverted.olive.basic.active.button {
- -webkit-box-shadow: 0px 0px 0px 2px #daed59 inset !important;
- box-shadow: 0px 0px 0px 2px #daed59 inset !important;
- color: #D9E778 !important;
-}
-
-.ui.inverted.olive.basic.buttons .button:active,
-.ui.inverted.olive.buttons .basic.button:active,
-.ui.inverted.olive.basic.button:active {
- -webkit-box-shadow: 0px 0px 0px 2px #cddf4d inset !important;
- box-shadow: 0px 0px 0px 2px #cddf4d inset !important;
- color: #D9E778 !important;
-}
-
-/*--- Yellow ---*/
-
-.ui.yellow.buttons .button,
-.ui.yellow.button {
- background-color: #FBBD08;
- color: #FFFFFF;
- text-shadow: none;
- background-image: none;
-}
-
-.ui.yellow.button {
- -webkit-box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
- box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
-}
-
-.ui.yellow.buttons .button:hover,
-.ui.yellow.button:hover {
- background-color: #eaae00;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.yellow.buttons .button:focus,
-.ui.yellow.button:focus {
- background-color: #daa300;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.yellow.buttons .button:active,
-.ui.yellow.button:active {
- background-color: #cd9903;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.yellow.buttons .active.button,
-.ui.yellow.buttons .active.button:active,
-.ui.yellow.active.button,
-.ui.yellow.button .active.button:active {
- background-color: #eaae00;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-/* Basic */
-
-.ui.basic.yellow.buttons .button,
-.ui.basic.yellow.button {
- -webkit-box-shadow: 0px 0px 0px 1px #FBBD08 inset !important;
- box-shadow: 0px 0px 0px 1px #FBBD08 inset !important;
- color: #FBBD08 !important;
-}
-
-.ui.basic.yellow.buttons .button:hover,
-.ui.basic.yellow.button:hover {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #eaae00 inset !important;
- box-shadow: 0px 0px 0px 1px #eaae00 inset !important;
- color: #eaae00 !important;
-}
-
-.ui.basic.yellow.buttons .button:focus,
-.ui.basic.yellow.button:focus {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #daa300 inset !important;
- box-shadow: 0px 0px 0px 1px #daa300 inset !important;
- color: #eaae00 !important;
-}
-
-.ui.basic.yellow.buttons .active.button,
-.ui.basic.yellow.active.button {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #eaae00 inset !important;
- box-shadow: 0px 0px 0px 1px #eaae00 inset !important;
- color: #cd9903 !important;
-}
-
-.ui.basic.yellow.buttons .button:active,
-.ui.basic.yellow.button:active {
- -webkit-box-shadow: 0px 0px 0px 1px #cd9903 inset !important;
- box-shadow: 0px 0px 0px 1px #cd9903 inset !important;
- color: #cd9903 !important;
-}
-
-.ui.buttons:not(.vertical) > .basic.yellow.button:not(:first-child) {
- margin-left: -1px;
-}
-
-/* Inverted */
-
-.ui.inverted.yellow.buttons .button,
-.ui.inverted.yellow.button {
- background-color: transparent;
- -webkit-box-shadow: 0px 0px 0px 2px #FFE21F inset !important;
- box-shadow: 0px 0px 0px 2px #FFE21F inset !important;
- color: #FFE21F;
-}
-
-.ui.inverted.yellow.buttons .button:hover,
-.ui.inverted.yellow.button:hover,
-.ui.inverted.yellow.buttons .button:focus,
-.ui.inverted.yellow.button:focus,
-.ui.inverted.yellow.buttons .button.active,
-.ui.inverted.yellow.button.active,
-.ui.inverted.yellow.buttons .button:active,
-.ui.inverted.yellow.button:active {
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
- color: rgba(0, 0, 0, 0.6);
-}
-
-.ui.inverted.yellow.buttons .button:hover,
-.ui.inverted.yellow.button:hover {
- background-color: #ffdf05;
-}
-
-.ui.inverted.yellow.buttons .button:focus,
-.ui.inverted.yellow.button:focus {
- background-color: #f5d500;
-}
-
-.ui.inverted.yellow.buttons .active.button,
-.ui.inverted.yellow.active.button {
- background-color: #ffdf05;
-}
-
-.ui.inverted.yellow.buttons .button:active,
-.ui.inverted.yellow.button:active {
- background-color: #ebcd00;
-}
-
-/* Inverted Basic */
-
-.ui.inverted.yellow.basic.buttons .button,
-.ui.inverted.yellow.buttons .basic.button,
-.ui.inverted.yellow.basic.button {
- background-color: transparent;
- -webkit-box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
- box-shadow: 0px 0px 0px 2px rgba(255, 255, 255, 0.5) inset !important;
- color: #FFFFFF !important;
-}
-
-.ui.inverted.yellow.basic.buttons .button:hover,
-.ui.inverted.yellow.buttons .basic.button:hover,
-.ui.inverted.yellow.basic.button:hover {
- -webkit-box-shadow: 0px 0px 0px 2px #ffdf05 inset !important;
- box-shadow: 0px 0px 0px 2px #ffdf05 inset !important;
- color: #FFE21F !important;
-}
-
-.ui.inverted.yellow.basic.buttons .button:focus,
-.ui.inverted.yellow.basic.buttons .button:focus,
-.ui.inverted.yellow.basic.button:focus {
- -webkit-box-shadow: 0px 0px 0px 2px #f5d500 inset !important;
- box-shadow: 0px 0px 0px 2px #f5d500 inset !important;
- color: #FFE21F !important;
-}
-
-.ui.inverted.yellow.basic.buttons .active.button,
-.ui.inverted.yellow.buttons .basic.active.button,
-.ui.inverted.yellow.basic.active.button {
- -webkit-box-shadow: 0px 0px 0px 2px #ffdf05 inset !important;
- box-shadow: 0px 0px 0px 2px #ffdf05 inset !important;
- color: #FFE21F !important;
-}
-
-.ui.inverted.yellow.basic.buttons .button:active,
-.ui.inverted.yellow.buttons .basic.button:active,
-.ui.inverted.yellow.basic.button:active {
- -webkit-box-shadow: 0px 0px 0px 2px #ebcd00 inset !important;
- box-shadow: 0px 0px 0px 2px #ebcd00 inset !important;
- color: #FFE21F !important;
-}
-
-/*-------------------
-      Primary
---------------------*/
-
-/*--- Standard ---*/
-
-.ui.primary.buttons .button,
-.ui.primary.button {
- background-color: #2185D0;
- color: #FFFFFF;
- text-shadow: none;
- background-image: none;
-}
-
-.ui.primary.button {
- -webkit-box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
- box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
-}
-
-.ui.primary.buttons .button:hover,
-.ui.primary.button:hover {
- background-color: #1678c2;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.primary.buttons .button:focus,
-.ui.primary.button:focus {
- background-color: #0d71bb;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.primary.buttons .button:active,
-.ui.primary.button:active {
- background-color: #1a69a4;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.primary.buttons .active.button,
-.ui.primary.buttons .active.button:active,
-.ui.primary.active.button,
-.ui.primary.button .active.button:active {
- background-color: #1279c6;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-/* Basic */
-
-.ui.basic.primary.buttons .button,
-.ui.basic.primary.button {
- -webkit-box-shadow: 0px 0px 0px 1px #2185D0 inset !important;
- box-shadow: 0px 0px 0px 1px #2185D0 inset !important;
- color: #2185D0 !important;
-}
-
-.ui.basic.primary.buttons .button:hover,
-.ui.basic.primary.button:hover {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #1678c2 inset !important;
- box-shadow: 0px 0px 0px 1px #1678c2 inset !important;
- color: #1678c2 !important;
-}
-
-.ui.basic.primary.buttons .button:focus,
-.ui.basic.primary.button:focus {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #0d71bb inset !important;
- box-shadow: 0px 0px 0px 1px #0d71bb inset !important;
- color: #1678c2 !important;
-}
-
-.ui.basic.primary.buttons .active.button,
-.ui.basic.primary.active.button {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #1279c6 inset !important;
- box-shadow: 0px 0px 0px 1px #1279c6 inset !important;
- color: #1a69a4 !important;
-}
-
-.ui.basic.primary.buttons .button:active,
-.ui.basic.primary.button:active {
- -webkit-box-shadow: 0px 0px 0px 1px #1a69a4 inset !important;
- box-shadow: 0px 0px 0px 1px #1a69a4 inset !important;
- color: #1a69a4 !important;
-}
-
-.ui.buttons:not(.vertical) > .basic.primary.button:not(:first-child) {
- margin-left: -1px;
-}
-
-/*-------------------
-     Secondary
---------------------*/
-
-/* Standard */
-
-.ui.secondary.buttons .button,
-.ui.secondary.button {
- background-color: #1B1C1D;
- color: #FFFFFF;
- text-shadow: none;
- background-image: none;
-}
-
-.ui.secondary.button {
- -webkit-box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
- box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
-}
-
-.ui.secondary.buttons .button:hover,
-.ui.secondary.button:hover {
- background-color: #27292a;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.secondary.buttons .button:focus,
-.ui.secondary.button:focus {
- background-color: #2e3032;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.secondary.buttons .button:active,
-.ui.secondary.button:active {
- background-color: #343637;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.secondary.buttons .active.button,
-.ui.secondary.buttons .active.button:active,
-.ui.secondary.active.button,
-.ui.secondary.button .active.button:active {
- background-color: #27292a;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-/* Basic */
-
-.ui.basic.secondary.buttons .button,
-.ui.basic.secondary.button {
- -webkit-box-shadow: 0px 0px 0px 1px #1B1C1D inset !important;
- box-shadow: 0px 0px 0px 1px #1B1C1D inset !important;
- color: #1B1C1D !important;
-}
-
-.ui.basic.secondary.buttons .button:hover,
-.ui.basic.secondary.button:hover {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #27292a inset !important;
- box-shadow: 0px 0px 0px 1px #27292a inset !important;
- color: #27292a !important;
-}
-
-.ui.basic.secondary.buttons .button:focus,
-.ui.basic.secondary.button:focus {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #2e3032 inset !important;
- box-shadow: 0px 0px 0px 1px #2e3032 inset !important;
- color: #27292a !important;
-}
-
-.ui.basic.secondary.buttons .active.button,
-.ui.basic.secondary.active.button {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #27292a inset !important;
- box-shadow: 0px 0px 0px 1px #27292a inset !important;
- color: #343637 !important;
-}
-
-.ui.basic.secondary.buttons .button:active,
-.ui.basic.secondary.button:active {
- -webkit-box-shadow: 0px 0px 0px 1px #343637 inset !important;
- box-shadow: 0px 0px 0px 1px #343637 inset !important;
- color: #343637 !important;
-}
-
-.ui.buttons:not(.vertical) > .basic.primary.button:not(:first-child) {
- margin-left: -1px;
-}
-
-/*---------------
-   Positive
-----------------*/
-
-/* Standard */
-
-.ui.positive.buttons .button,
-.ui.positive.button {
- background-color: #21BA45;
- color: #FFFFFF;
- text-shadow: none;
- background-image: none;
-}
-
-.ui.positive.button {
- -webkit-box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
- box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
-}
-
-.ui.positive.buttons .button:hover,
-.ui.positive.button:hover {
- background-color: #16ab39;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.positive.buttons .button:focus,
-.ui.positive.button:focus {
- background-color: #0ea432;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.positive.buttons .button:active,
-.ui.positive.button:active {
- background-color: #198f35;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.positive.buttons .active.button,
-.ui.positive.buttons .active.button:active,
-.ui.positive.active.button,
-.ui.positive.button .active.button:active {
- background-color: #13ae38;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-/* Basic */
-
-.ui.basic.positive.buttons .button,
-.ui.basic.positive.button {
- -webkit-box-shadow: 0px 0px 0px 1px #21BA45 inset !important;
- box-shadow: 0px 0px 0px 1px #21BA45 inset !important;
- color: #21BA45 !important;
-}
-
-.ui.basic.positive.buttons .button:hover,
-.ui.basic.positive.button:hover {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #16ab39 inset !important;
- box-shadow: 0px 0px 0px 1px #16ab39 inset !important;
- color: #16ab39 !important;
-}
-
-.ui.basic.positive.buttons .button:focus,
-.ui.basic.positive.button:focus {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #0ea432 inset !important;
- box-shadow: 0px 0px 0px 1px #0ea432 inset !important;
- color: #16ab39 !important;
-}
-
-.ui.basic.positive.buttons .active.button,
-.ui.basic.positive.active.button {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #13ae38 inset !important;
- box-shadow: 0px 0px 0px 1px #13ae38 inset !important;
- color: #198f35 !important;
-}
-
-.ui.basic.positive.buttons .button:active,
-.ui.basic.positive.button:active {
- -webkit-box-shadow: 0px 0px 0px 1px #198f35 inset !important;
- box-shadow: 0px 0px 0px 1px #198f35 inset !important;
- color: #198f35 !important;
-}
-
-.ui.buttons:not(.vertical) > .basic.primary.button:not(:first-child) {
- margin-left: -1px;
-}
-
-/*---------------
-    Negative
-----------------*/
-
-/* Standard */
-
-.ui.negative.buttons .button,
-.ui.negative.button {
- background-color: #DB2828;
- color: #FFFFFF;
- text-shadow: none;
- background-image: none;
-}
-
-.ui.negative.button {
- -webkit-box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
- box-shadow: 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
-}
-
-.ui.negative.buttons .button:hover,
-.ui.negative.button:hover {
- background-color: #d01919;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.negative.buttons .button:focus,
-.ui.negative.button:focus {
- background-color: #ca1010;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.negative.buttons .button:active,
-.ui.negative.button:active {
- background-color: #b21e1e;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-.ui.negative.buttons .active.button,
-.ui.negative.buttons .active.button:active,
-.ui.negative.active.button,
-.ui.negative.button .active.button:active {
- background-color: #d41515;
- color: #FFFFFF;
- text-shadow: none;
-}
-
-/* Basic */
-
-.ui.basic.negative.buttons .button,
-.ui.basic.negative.button {
- -webkit-box-shadow: 0px 0px 0px 1px #DB2828 inset !important;
- box-shadow: 0px 0px 0px 1px #DB2828 inset !important;
- color: #DB2828 !important;
-}
-
-.ui.basic.negative.buttons .button:hover,
-.ui.basic.negative.button:hover {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #d01919 inset !important;
- box-shadow: 0px 0px 0px 1px #d01919 inset !important;
- color: #d01919 !important;
-}
-
-.ui.basic.negative.buttons .button:focus,
-.ui.basic.negative.button:focus {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #ca1010 inset !important;
- box-shadow: 0px 0px 0px 1px #ca1010 inset !important;
- color: #d01919 !important;
-}
-
-.ui.basic.negative.buttons .active.button,
-.ui.basic.negative.active.button {
- background: transparent !important;
- -webkit-box-shadow: 0px 0px 0px 1px #d41515 inset !important;
- box-shadow: 0px 0px 0px 1px #d41515 inset !important;
- color: #b21e1e !important;
-}
-
-.ui.basic.negative.buttons .button:active,
-.ui.basic.negative.button:active {
- -webkit-box-shadow: 0px 0px 0px 1px #b21e1e inset !important;
- box-shadow: 0px 0px 0px 1px #b21e1e inset !important;
- color: #b21e1e !important;
-}
-
-.ui.buttons:not(.vertical) > .basic.primary.button:not(:first-child) {
- margin-left: -1px;
-}
-
-/*******************************
-           Groups
-*******************************/
-
-.ui.buttons {
- display: -webkit-inline-box;
- display: -ms-inline-flexbox;
- display: inline-flex;
- -webkit-box-orient: horizontal;
- -webkit-box-direction: normal;
- -ms-flex-direction: row;
- flex-direction: row;
- font-size: 0em;
- vertical-align: baseline;
- margin: 0em 0.25em 0em 0em;
-}
-
-.ui.buttons:not(.basic):not(.inverted) {
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-/* Clearfix */
-
-.ui.buttons:after {
- content: ".";
- display: block;
- height: 0;
- clear: both;
- visibility: hidden;
-}
-
-/* Standard Group */
-
-.ui.buttons .button {
- -webkit-box-flex: 1;
- -ms-flex: 1 0 auto;
- flex: 1 0 auto;
- margin: 0em;
- border-radius: 0em;
- margin: 0px 0px 0px 0px;
-}
-
-.ui.buttons > .ui.button:not(.basic):not(.inverted),
-.ui.buttons:not(.basic):not(.inverted) > .button {
- -webkit-box-shadow: 0px 0px 0px 1px transparent inset, 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
- box-shadow: 0px 0px 0px 1px transparent inset, 0px 0em 0px 0px rgba(34, 36, 38, 0.15) inset;
-}
-
-.ui.buttons .button:first-child {
- border-left: none;
- margin-left: 0em;
- border-top-left-radius: 0.28571429rem;
- border-bottom-left-radius: 0.28571429rem;
-}
-
-.ui.buttons .button:last-child {
- border-top-right-radius: 0.28571429rem;
- border-bottom-right-radius: 0.28571429rem;
-}
-
-/* Vertical  Style */
-
-.ui.vertical.buttons {
- display: -webkit-inline-box;
- display: -ms-inline-flexbox;
- display: inline-flex;
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
-}
-
-.ui.vertical.buttons .button {
- display: block;
- float: none;
- width: 100%;
- margin: 0px 0px 0px 0px;
- -webkit-box-shadow: none;
- box-shadow: none;
- border-radius: 0em;
-}
-
-.ui.vertical.buttons .button:first-child {
- border-top-left-radius: 0.28571429rem;
- border-top-right-radius: 0.28571429rem;
-}
-
-.ui.vertical.buttons .button:last-child {
- margin-bottom: 0px;
- border-bottom-left-radius: 0.28571429rem;
- border-bottom-right-radius: 0.28571429rem;
-}
-
-.ui.vertical.buttons .button:only-child {
- border-radius: 0.28571429rem;
-}
-
-/*******************************
-        Theme Overrides
-*******************************/
-
-/*******************************
-        Site Overrides
-*******************************/
-/*!
-* # Semantic UI 2.3.0 - Container
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-           Container
-*******************************/
-
-/* All Sizes */
-
-.ui.container {
- display: block;
- max-width: 100% !important;
-}
-
-/* Mobile */
-
-@media only screen and (max-width: 767px) {
- .ui.container {
-   width: auto !important;
-   margin-left: 1em !important;
-   margin-right: 1em !important;
- }
-
- .ui.grid.container {
-   width: auto !important;
- }
-
- .ui.relaxed.grid.container {
-   width: auto !important;
- }
-
- .ui.very.relaxed.grid.container {
-   width: auto !important;
- }
-}
-
-/* Tablet */
-
-@media only screen and (min-width: 768px) and (max-width: 991px) {
- .ui.container {
-   width: 723px;
-   margin-left: auto !important;
-   margin-right: auto !important;
- }
-
- .ui.grid.container {
-   width: calc( 723px  +  2rem ) !important;
- }
-
- .ui.relaxed.grid.container {
-   width: calc( 723px  +  3rem ) !important;
- }
-
- .ui.very.relaxed.grid.container {
-   width: calc( 723px  +  5rem ) !important;
- }
-}
-
-/* Small Monitor */
-
-@media only screen and (min-width: 992px) and (max-width: 1199px) {
- .ui.container {
-   width: 933px;
-   margin-left: auto !important;
-   margin-right: auto !important;
- }
-
- .ui.grid.container {
-   width: calc( 933px  +  2rem ) !important;
- }
-
- .ui.relaxed.grid.container {
-   width: calc( 933px  +  3rem ) !important;
- }
-
- .ui.very.relaxed.grid.container {
-   width: calc( 933px  +  5rem ) !important;
- }
-}
-
-/* Large Monitor */
-
-@media only screen and (min-width: 1200px) {
- .ui.container {
-   width: 1127px;
-   margin-left: auto !important;
-   margin-right: auto !important;
- }
-
- .ui.grid.container {
-   width: calc( 1127px  +  2rem ) !important;
- }
-
- .ui.relaxed.grid.container {
-   width: calc( 1127px  +  3rem ) !important;
- }
-
- .ui.very.relaxed.grid.container {
-   width: calc( 1127px  +  5rem ) !important;
- }
-}
-
-/*******************************
-            Types
-*******************************/
-
-/* Text Container */
-
-.ui.text.container {
- font-family: 'Lato', 'Helvetica Neue', Arial, Helvetica, sans-serif;
- max-width: 700px !important;
- line-height: 1.5;
-}
-
-.ui.text.container {
- font-size: 1.14285714rem;
-}
-
-/* Fluid */
-
-.ui.fluid.container {
- width: 100%;
-}
-
-/*******************************
-          Variations
-*******************************/
-
-.ui[class*="left aligned"].container {
- text-align: left;
-}
-
-.ui[class*="center aligned"].container {
- text-align: center;
-}
-
-.ui[class*="right aligned"].container {
- text-align: right;
-}
-
-.ui.justified.container {
- text-align: justify;
- -webkit-hyphens: auto;
- -ms-hyphens: auto;
- hyphens: auto;
-}
-
-/*******************************
-        Theme Overrides
-*******************************/
-
-/*******************************
-        Site Overrides
-*******************************/
-/*!
-* # Semantic UI 2.3.0 - Divider
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-           Divider
-*******************************/
-
-.ui.divider {
- margin: 1rem 0rem;
- line-height: 1;
- height: 0em;
- font-weight: bold;
- text-transform: uppercase;
- letter-spacing: 0.05em;
- color: rgba(0, 0, 0, 0.85);
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
-}
-
-/*--------------
-     Basic
----------------*/
-
-.ui.divider:not(.vertical):not(.horizontal) {
- border-top: 1px solid rgba(34, 36, 38, 0.15);
- border-bottom: 1px solid rgba(255, 255, 255, 0.1);
-}
-
-/*--------------
-   Coupling
----------------*/
-
-/* Allow divider between each column row */
-
-.ui.grid > .column + .divider,
-.ui.grid > .row > .column + .divider {
- left: auto;
-}
-
-/*--------------
-  Horizontal
----------------*/
-
-.ui.horizontal.divider {
- display: table;
- white-space: nowrap;
- height: auto;
- margin: '';
- line-height: 1;
- text-align: center;
-}
-
-.ui.horizontal.divider:before,
-.ui.horizontal.divider:after {
- content: '';
- display: table-cell;
- position: relative;
- top: 50%;
- width: 50%;
- background-repeat: no-repeat;
-}
-
-.ui.horizontal.divider:before {
- background-position: right 1em top 50%;
-}
-
-.ui.horizontal.divider:after {
- background-position: left 1em top 50%;
-}
-
-/*--------------
-   Vertical
----------------*/
-
-.ui.vertical.divider {
- position: absolute;
- z-index: 2;
- top: 50%;
- left: 50%;
- margin: 0rem;
- padding: 0em;
- width: auto;
- height: 50%;
- line-height: 0em;
- text-align: center;
- -webkit-transform: translateX(-50%);
- transform: translateX(-50%);
-}
-
-.ui.vertical.divider:before,
-.ui.vertical.divider:after {
- position: absolute;
- left: 50%;
- content: '';
- z-index: 3;
- border-left: 1px solid rgba(34, 36, 38, 0.15);
- border-right: 1px solid rgba(255, 255, 255, 0.1);
- width: 0%;
- height: calc(100% -  1rem );
-}
-
-.ui.vertical.divider:before {
- top: -100%;
-}
-
-.ui.vertical.divider:after {
- top: auto;
- bottom: 0px;
-}
-
-/* Inside grid */
-
-@media only screen and (max-width: 767px) {
- .ui.stackable.grid .ui.vertical.divider,
- .ui.grid .stackable.row .ui.vertical.divider {
-   display: table;
-   white-space: nowrap;
-   height: auto;
-   margin: '';
-   overflow: hidden;
-   line-height: 1;
-   text-align: center;
-   position: static;
-   top: 0;
-   left: 0;
-   -webkit-transform: none;
-   transform: none;
- }
-
- .ui.stackable.grid .ui.vertical.divider:before,
- .ui.grid .stackable.row .ui.vertical.divider:before,
- .ui.stackable.grid .ui.vertical.divider:after,
- .ui.grid .stackable.row .ui.vertical.divider:after {
-   position: static;
-   left: 0;
-   border-left: none;
-   border-right: none;
-   content: '';
-   display: table-cell;
-   position: relative;
-   top: 50%;
-   width: 50%;
-   background-repeat: no-repeat;
- }
-
- .ui.stackable.grid .ui.vertical.divider:before,
- .ui.grid .stackable.row .ui.vertical.divider:before {
-   background-position: right 1em top 50%;
- }
-
- .ui.stackable.grid .ui.vertical.divider:after,
- .ui.grid .stackable.row .ui.vertical.divider:after {
-   background-position: left 1em top 50%;
- }
-}
-
-/*--------------
-     Icon
----------------*/
-
-.ui.divider > .icon {
- margin: 0rem;
- font-size: 1rem;
- height: 1em;
- vertical-align: middle;
-}
-
-/*******************************
-         Variations
-*******************************/
-
-/*--------------
-   Hidden
----------------*/
-
-.ui.hidden.divider {
- border-color: transparent !important;
-}
-
-.ui.hidden.divider:before,
-.ui.hidden.divider:after {
- display: none;
-}
-
-/*--------------
-   Inverted
----------------*/
-
-.ui.divider.inverted,
-.ui.vertical.inverted.divider,
-.ui.horizontal.inverted.divider {
- color: #FFFFFF;
-}
-
-.ui.divider.inverted,
-.ui.divider.inverted:after,
-.ui.divider.inverted:before {
- border-top-color: rgba(34, 36, 38, 0.15) !important;
- border-left-color: rgba(34, 36, 38, 0.15) !important;
- border-bottom-color: rgba(255, 255, 255, 0.15) !important;
- border-right-color: rgba(255, 255, 255, 0.15) !important;
-}
-
-/*--------------
-   Fitted
----------------*/
-
-.ui.fitted.divider {
- margin: 0em;
-}
-
-/*--------------
-   Clearing
----------------*/
-
-.ui.clearing.divider {
- clear: both;
-}
-
-/*--------------
-   Section
----------------*/
-
-.ui.section.divider {
- margin-top: 2rem;
- margin-bottom: 2rem;
-}
-
-/*--------------
-    Sizes
----------------*/
-
-.ui.divider {
- font-size: 1rem;
-}
-
-/*******************************
-        Theme Overrides
-*******************************/
-
-.ui.horizontal.divider:before,
-.ui.horizontal.divider:after {
- background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABaAAAAACCAYAAACuTHuKAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1OThBRDY4OUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1OThBRDY4QUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU5OEFENjg3Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU5OEFENjg4Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+VU513gAAADVJREFUeNrs0DENACAQBDBIWLGBJQby/mUcJn5sJXQmOQMAAAAAAJqt+2prAAAAAACg2xdgANk6BEVuJgyMAAAAAElFTkSuQmCC');
-}
-
-@media only screen and (max-width: 767px) {
- .ui.stackable.grid .ui.vertical.divider:before,
- .ui.grid .stackable.row .ui.vertical.divider:before,
- .ui.stackable.grid .ui.vertical.divider:after,
- .ui.grid .stackable.row .ui.vertical.divider:after {
-   background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABaAAAAACCAYAAACuTHuKAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1OThBRDY4OUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1OThBRDY4QUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU5OEFENjg3Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU5OEFENjg4Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+VU513gAAADVJREFUeNrs0DENACAQBDBIWLGBJQby/mUcJn5sJXQmOQMAAAAAAJqt+2prAAAAAACg2xdgANk6BEVuJgyMAAAAAElFTkSuQmCC');
- }
-}
-
-/*******************************
-        Site Overrides
-*******************************/
-/*!
-* # Semantic UI 2.3.0 - Flag
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-            Flag
-*******************************/
-
-i.flag:not(.icon) {
- display: inline-block;
- width: 16px;
- height: 11px;
- line-height: 11px;
- vertical-align: baseline;
- margin: 0em 0.5em 0em 0em;
- text-decoration: inherit;
- speak: none;
- font-smoothing: antialiased;
- -webkit-backface-visibility: hidden;
- backface-visibility: hidden;
-}
-
-/* Sprite */
-
-i.flag:not(.icon):before {
- display: inline-block;
- content: '';
- background: url("./themes/default/assets/images/flags.png") no-repeat -108px -1976px;
- width: 16px;
- height: 11px;
-}
-
-/* Flag Sprite Based On http://www.famfamfam.com/lab/icons/flags/ */
-
-/*******************************
-        Theme Overrides
-*******************************/
-
-i.flag.ad:before,
-i.flag.andorra:before {
- background-position: 0px 0px;
-}
-
-i.flag.ae:before,
-i.flag.united.arab.emirates:before,
-i.flag.uae:before {
- background-position: 0px -26px;
-}
-
-i.flag.af:before,
-i.flag.afghanistan:before {
- background-position: 0px -52px;
-}
-
-i.flag.ag:before,
-i.flag.antigua:before {
- background-position: 0px -78px;
-}
-
-i.flag.ai:before,
-i.flag.anguilla:before {
- background-position: 0px -104px;
-}
-
-i.flag.al:before,
-i.flag.albania:before {
- background-position: 0px -130px;
-}
-
-i.flag.am:before,
-i.flag.armenia:before {
- background-position: 0px -156px;
-}
-
-i.flag.an:before,
-i.flag.netherlands.antilles:before {
- background-position: 0px -182px;
-}
-
-i.flag.ao:before,
-i.flag.angola:before {
- background-position: 0px -208px;
-}
-
-i.flag.ar:before,
-i.flag.argentina:before {
- background-position: 0px -234px;
-}
-
-i.flag.as:before,
-i.flag.american.samoa:before {
- background-position: 0px -260px;
-}
-
-i.flag.at:before,
-i.flag.austria:before {
- background-position: 0px -286px;
-}
-
-i.flag.au:before,
-i.flag.australia:before {
- background-position: 0px -312px;
-}
-
-i.flag.aw:before,
-i.flag.aruba:before {
- background-position: 0px -338px;
-}
-
-i.flag.ax:before,
-i.flag.aland.islands:before {
- background-position: 0px -364px;
-}
-
-i.flag.az:before,
-i.flag.azerbaijan:before {
- background-position: 0px -390px;
-}
-
-i.flag.ba:before,
-i.flag.bosnia:before {
- background-position: 0px -416px;
-}
-
-i.flag.bb:before,
-i.flag.barbados:before {
- background-position: 0px -442px;
-}
-
-i.flag.bd:before,
-i.flag.bangladesh:before {
- background-position: 0px -468px;
-}
-
-i.flag.be:before,
-i.flag.belgium:before {
- background-position: 0px -494px;
-}
-
-i.flag.bf:before,
-i.flag.burkina.faso:before {
- background-position: 0px -520px;
-}
-
-i.flag.bg:before,
-i.flag.bulgaria:before {
- background-position: 0px -546px;
-}
-
-i.flag.bh:before,
-i.flag.bahrain:before {
- background-position: 0px -572px;
-}
-
-i.flag.bi:before,
-i.flag.burundi:before {
- background-position: 0px -598px;
-}
-
-i.flag.bj:before,
-i.flag.benin:before {
- background-position: 0px -624px;
-}
-
-i.flag.bm:before,
-i.flag.bermuda:before {
- background-position: 0px -650px;
-}
-
-i.flag.bn:before,
-i.flag.brunei:before {
- background-position: 0px -676px;
-}
-
-i.flag.bo:before,
-i.flag.bolivia:before {
- background-position: 0px -702px;
-}
-
-i.flag.br:before,
-i.flag.brazil:before {
- background-position: 0px -728px;
-}
-
-i.flag.bs:before,
-i.flag.bahamas:before {
- background-position: 0px -754px;
-}
-
-i.flag.bt:before,
-i.flag.bhutan:before {
- background-position: 0px -780px;
-}
-
-i.flag.bv:before,
-i.flag.bouvet.island:before {
- background-position: 0px -806px;
-}
-
-i.flag.bw:before,
-i.flag.botswana:before {
- background-position: 0px -832px;
-}
-
-i.flag.by:before,
-i.flag.belarus:before {
- background-position: 0px -858px;
-}
-
-i.flag.bz:before,
-i.flag.belize:before {
- background-position: 0px -884px;
-}
-
-i.flag.ca:before,
-i.flag.canada:before {
- background-position: 0px -910px;
-}
-
-i.flag.cc:before,
-i.flag.cocos.islands:before {
- background-position: 0px -962px;
-}
-
-i.flag.cd:before,
-i.flag.congo:before {
- background-position: 0px -988px;
-}
-
-i.flag.cf:before,
-i.flag.central.african.republic:before {
- background-position: 0px -1014px;
-}
-
-i.flag.cg:before,
-i.flag.congo.brazzaville:before {
- background-position: 0px -1040px;
-}
-
-i.flag.ch:before,
-i.flag.switzerland:before {
- background-position: 0px -1066px;
-}
-
-i.flag.ci:before,
-i.flag.cote.divoire:before {
- background-position: 0px -1092px;
-}
-
-i.flag.ck:before,
-i.flag.cook.islands:before {
- background-position: 0px -1118px;
-}
-
-i.flag.cl:before,
-i.flag.chile:before {
- background-position: 0px -1144px;
-}
-
-i.flag.cm:before,
-i.flag.cameroon:before {
- background-position: 0px -1170px;
-}
-
-i.flag.cn:before,
-i.flag.china:before {
- background-position: 0px -1196px;
-}
-
-i.flag.co:before,
-i.flag.colombia:before {
- background-position: 0px -1222px;
-}
-
-i.flag.cr:before,
-i.flag.costa.rica:before {
- background-position: 0px -1248px;
-}
-
-i.flag.cs:before,
-i.flag.serbia:before {
- background-position: 0px -1274px;
-}
-
-i.flag.cu:before,
-i.flag.cuba:before {
- background-position: 0px -1300px;
-}
-
-i.flag.cv:before,
-i.flag.cape.verde:before {
- background-position: 0px -1326px;
-}
-
-i.flag.cx:before,
-i.flag.christmas.island:before {
- background-position: 0px -1352px;
-}
-
-i.flag.cy:before,
-i.flag.cyprus:before {
- background-position: 0px -1378px;
-}
-
-i.flag.cz:before,
-i.flag.czech.republic:before {
- background-position: 0px -1404px;
-}
-
-i.flag.de:before,
-i.flag.germany:before {
- background-position: 0px -1430px;
-}
-
-i.flag.dj:before,
-i.flag.djibouti:before {
- background-position: 0px -1456px;
-}
-
-i.flag.dk:before,
-i.flag.denmark:before {
- background-position: 0px -1482px;
-}
-
-i.flag.dm:before,
-i.flag.dominica:before {
- background-position: 0px -1508px;
-}
-
-i.flag.do:before,
-i.flag.dominican.republic:before {
- background-position: 0px -1534px;
-}
-
-i.flag.dz:before,
-i.flag.algeria:before {
- background-position: 0px -1560px;
-}
-
-i.flag.ec:before,
-i.flag.ecuador:before {
- background-position: 0px -1586px;
-}
-
-i.flag.ee:before,
-i.flag.estonia:before {
- background-position: 0px -1612px;
-}
-
-i.flag.eg:before,
-i.flag.egypt:before {
- background-position: 0px -1638px;
-}
-
-i.flag.eh:before,
-i.flag.western.sahara:before {
- background-position: 0px -1664px;
-}
-
-i.flag.gb.eng:before,
-i.flag.england:before {
- background-position: 0px -1690px;
-}
-
-i.flag.er:before,
-i.flag.eritrea:before {
- background-position: 0px -1716px;
-}
-
-i.flag.es:before,
-i.flag.spain:before {
- background-position: 0px -1742px;
-}
-
-i.flag.et:before,
-i.flag.ethiopia:before {
- background-position: 0px -1768px;
-}
-
-i.flag.eu:before,
-i.flag.european.union:before {
- background-position: 0px -1794px;
-}
-
-i.flag.fi:before,
-i.flag.finland:before {
- background-position: 0px -1846px;
-}
-
-i.flag.fj:before,
-i.flag.fiji:before {
- background-position: 0px -1872px;
-}
-
-i.flag.fk:before,
-i.flag.falkland.islands:before {
- background-position: 0px -1898px;
-}
-
-i.flag.fm:before,
-i.flag.micronesia:before {
- background-position: 0px -1924px;
-}
-
-i.flag.fo:before,
-i.flag.faroe.islands:before {
- background-position: 0px -1950px;
-}
-
-i.flag.fr:before,
-i.flag.france:before {
- background-position: 0px -1976px;
-}
-
-i.flag.ga:before,
-i.flag.gabon:before {
- background-position: -36px 0px;
-}
-
-i.flag.gb:before,
-i.flag.united.kingdom:before {
- background-position: -36px -26px;
-}
-
-i.flag.gd:before,
-i.flag.grenada:before {
- background-position: -36px -52px;
-}
-
-i.flag.ge:before,
-i.flag.georgia:before {
- background-position: -36px -78px;
-}
-
-i.flag.gf:before,
-i.flag.french.guiana:before {
- background-position: -36px -104px;
-}
-
-i.flag.gh:before,
-i.flag.ghana:before {
- background-position: -36px -130px;
-}
-
-i.flag.gi:before,
-i.flag.gibraltar:before {
- background-position: -36px -156px;
-}
-
-i.flag.gl:before,
-i.flag.greenland:before {
- background-position: -36px -182px;
-}
-
-i.flag.gm:before,
-i.flag.gambia:before {
- background-position: -36px -208px;
-}
-
-i.flag.gn:before,
-i.flag.guinea:before {
- background-position: -36px -234px;
-}
-
-i.flag.gp:before,
-i.flag.guadeloupe:before {
- background-position: -36px -260px;
-}
-
-i.flag.gq:before,
-i.flag.equatorial.guinea:before {
- background-position: -36px -286px;
-}
-
-i.flag.gr:before,
-i.flag.greece:before {
- background-position: -36px -312px;
-}
-
-i.flag.gs:before,
-i.flag.sandwich.islands:before {
- background-position: -36px -338px;
-}
-
-i.flag.gt:before,
-i.flag.guatemala:before {
- background-position: -36px -364px;
-}
-
-i.flag.gu:before,
-i.flag.guam:before {
- background-position: -36px -390px;
-}
-
-i.flag.gw:before,
-i.flag.guinea-bissau:before {
- background-position: -36px -416px;
-}
-
-i.flag.gy:before,
-i.flag.guyana:before {
- background-position: -36px -442px;
-}
-
-i.flag.hk:before,
-i.flag.hong.kong:before {
- background-position: -36px -468px;
-}
-
-i.flag.hm:before,
-i.flag.heard.island:before {
- background-position: -36px -494px;
-}
-
-i.flag.hn:before,
-i.flag.honduras:before {
- background-position: -36px -520px;
-}
-
-i.flag.hr:before,
-i.flag.croatia:before {
- background-position: -36px -546px;
-}
-
-i.flag.ht:before,
-i.flag.haiti:before {
- background-position: -36px -572px;
-}
-
-i.flag.hu:before,
-i.flag.hungary:before {
- background-position: -36px -598px;
-}
-
-i.flag.id:before,
-i.flag.indonesia:before {
- background-position: -36px -624px;
-}
-
-i.flag.ie:before,
-i.flag.ireland:before {
- background-position: -36px -650px;
-}
-
-i.flag.il:before,
-i.flag.israel:before {
- background-position: -36px -676px;
-}
-
-i.flag.in:before,
-i.flag.india:before {
- background-position: -36px -702px;
-}
-
-i.flag.io:before,
-i.flag.indian.ocean.territory:before {
- background-position: -36px -728px;
-}
-
-i.flag.iq:before,
-i.flag.iraq:before {
- background-position: -36px -754px;
-}
-
-i.flag.ir:before,
-i.flag.iran:before {
- background-position: -36px -780px;
-}
-
-i.flag.is:before,
-i.flag.iceland:before {
- background-position: -36px -806px;
-}
-
-i.flag.it:before,
-i.flag.italy:before {
- background-position: -36px -832px;
-}
-
-i.flag.jm:before,
-i.flag.jamaica:before {
- background-position: -36px -858px;
-}
-
-i.flag.jo:before,
-i.flag.jordan:before {
- background-position: -36px -884px;
-}
-
-i.flag.jp:before,
-i.flag.japan:before {
- background-position: -36px -910px;
-}
-
-i.flag.ke:before,
-i.flag.kenya:before {
- background-position: -36px -936px;
-}
-
-i.flag.kg:before,
-i.flag.kyrgyzstan:before {
- background-position: -36px -962px;
-}
-
-i.flag.kh:before,
-i.flag.cambodia:before {
- background-position: -36px -988px;
-}
-
-i.flag.ki:before,
-i.flag.kiribati:before {
- background-position: -36px -1014px;
-}
-
-i.flag.km:before,
-i.flag.comoros:before {
- background-position: -36px -1040px;
-}
-
-i.flag.kn:before,
-i.flag.saint.kitts.and.nevis:before {
- background-position: -36px -1066px;
-}
-
-i.flag.kp:before,
-i.flag.north.korea:before {
- background-position: -36px -1092px;
-}
-
-i.flag.kr:before,
-i.flag.south.korea:before {
- background-position: -36px -1118px;
-}
-
-i.flag.kw:before,
-i.flag.kuwait:before {
- background-position: -36px -1144px;
-}
-
-i.flag.ky:before,
-i.flag.cayman.islands:before {
- background-position: -36px -1170px;
-}
-
-i.flag.kz:before,
-i.flag.kazakhstan:before {
- background-position: -36px -1196px;
-}
-
-i.flag.la:before,
-i.flag.laos:before {
- background-position: -36px -1222px;
-}
-
-i.flag.lb:before,
-i.flag.lebanon:before {
- background-position: -36px -1248px;
-}
-
-i.flag.lc:before,
-i.flag.saint.lucia:before {
- background-position: -36px -1274px;
-}
-
-i.flag.li:before,
-i.flag.liechtenstein:before {
- background-position: -36px -1300px;
-}
-
-i.flag.lk:before,
-i.flag.sri.lanka:before {
- background-position: -36px -1326px;
-}
-
-i.flag.lr:before,
-i.flag.liberia:before {
- background-position: -36px -1352px;
-}
-
-i.flag.ls:before,
-i.flag.lesotho:before {
- background-position: -36px -1378px;
-}
-
-i.flag.lt:before,
-i.flag.lithuania:before {
- background-position: -36px -1404px;
-}
-
-i.flag.lu:before,
-i.flag.luxembourg:before {
- background-position: -36px -1430px;
-}
-
-i.flag.lv:before,
-i.flag.latvia:before {
- background-position: -36px -1456px;
-}
-
-i.flag.ly:before,
-i.flag.libya:before {
- background-position: -36px -1482px;
-}
-
-i.flag.ma:before,
-i.flag.morocco:before {
- background-position: -36px -1508px;
-}
-
-i.flag.mc:before,
-i.flag.monaco:before {
- background-position: -36px -1534px;
-}
-
-i.flag.md:before,
-i.flag.moldova:before {
- background-position: -36px -1560px;
-}
-
-i.flag.me:before,
-i.flag.montenegro:before {
- background-position: -36px -1586px;
-}
-
-i.flag.mg:before,
-i.flag.madagascar:before {
- background-position: -36px -1613px;
-}
-
-i.flag.mh:before,
-i.flag.marshall.islands:before {
- background-position: -36px -1639px;
-}
-
-i.flag.mk:before,
-i.flag.macedonia:before {
- background-position: -36px -1665px;
-}
-
-i.flag.ml:before,
-i.flag.mali:before {
- background-position: -36px -1691px;
-}
-
-i.flag.mm:before,
-i.flag.myanmar:before,
-i.flag.burma:before {
- background-position: -73px -1821px;
-}
-
-i.flag.mn:before,
-i.flag.mongolia:before {
- background-position: -36px -1743px;
-}
-
-i.flag.mo:before,
-i.flag.macau:before {
- background-position: -36px -1769px;
-}
-
-i.flag.mp:before,
-i.flag.northern.mariana.islands:before {
- background-position: -36px -1795px;
-}
-
-i.flag.mq:before,
-i.flag.martinique:before {
- background-position: -36px -1821px;
-}
-
-i.flag.mr:before,
-i.flag.mauritania:before {
- background-position: -36px -1847px;
-}
-
-i.flag.ms:before,
-i.flag.montserrat:before {
- background-position: -36px -1873px;
-}
-
-i.flag.mt:before,
-i.flag.malta:before {
- background-position: -36px -1899px;
-}
-
-i.flag.mu:before,
-i.flag.mauritius:before {
- background-position: -36px -1925px;
-}
-
-i.flag.mv:before,
-i.flag.maldives:before {
- background-position: -36px -1951px;
-}
-
-i.flag.mw:before,
-i.flag.malawi:before {
- background-position: -36px -1977px;
-}
-
-i.flag.mx:before,
-i.flag.mexico:before {
- background-position: -72px 0px;
-}
-
-i.flag.my:before,
-i.flag.malaysia:before {
- background-position: -72px -26px;
-}
-
-i.flag.mz:before,
-i.flag.mozambique:before {
- background-position: -72px -52px;
-}
-
-i.flag.na:before,
-i.flag.namibia:before {
- background-position: -72px -78px;
-}
-
-i.flag.nc:before,
-i.flag.new.caledonia:before {
- background-position: -72px -104px;
-}
-
-i.flag.ne:before,
-i.flag.niger:before {
- background-position: -72px -130px;
-}
-
-i.flag.nf:before,
-i.flag.norfolk.island:before {
- background-position: -72px -156px;
-}
-
-i.flag.ng:before,
-i.flag.nigeria:before {
- background-position: -72px -182px;
-}
-
-i.flag.ni:before,
-i.flag.nicaragua:before {
- background-position: -72px -208px;
-}
-
-i.flag.nl:before,
-i.flag.netherlands:before {
- background-position: -72px -234px;
-}
-
-i.flag.no:before,
-i.flag.norway:before {
- background-position: -72px -260px;
-}
-
-i.flag.np:before,
-i.flag.nepal:before {
- background-position: -72px -286px;
-}
-
-i.flag.nr:before,
-i.flag.nauru:before {
- background-position: -72px -312px;
-}
-
-i.flag.nu:before,
-i.flag.niue:before {
- background-position: -72px -338px;
-}
-
-i.flag.nz:before,
-i.flag.new.zealand:before {
- background-position: -72px -364px;
-}
-
-i.flag.om:before,
-i.flag.oman:before {
- background-position: -72px -390px;
-}
-
-i.flag.pa:before,
-i.flag.panama:before {
- background-position: -72px -416px;
-}
-
-i.flag.pe:before,
-i.flag.peru:before {
- background-position: -72px -442px;
-}
-
-i.flag.pf:before,
-i.flag.french.polynesia:before {
- background-position: -72px -468px;
-}
-
-i.flag.pg:before,
-i.flag.new.guinea:before {
- background-position: -72px -494px;
-}
-
-i.flag.ph:before,
-i.flag.philippines:before {
- background-position: -72px -520px;
-}
-
-i.flag.pk:before,
-i.flag.pakistan:before {
- background-position: -72px -546px;
-}
-
-i.flag.pl:before,
-i.flag.poland:before {
- background-position: -72px -572px;
-}
-
-i.flag.pm:before,
-i.flag.saint.pierre:before {
- background-position: -72px -598px;
-}
-
-i.flag.pn:before,
-i.flag.pitcairn.islands:before {
- background-position: -72px -624px;
-}
-
-i.flag.pr:before,
-i.flag.puerto.rico:before {
- background-position: -72px -650px;
-}
-
-i.flag.ps:before,
-i.flag.palestine:before {
- background-position: -72px -676px;
-}
-
-i.flag.pt:before,
-i.flag.portugal:before {
- background-position: -72px -702px;
-}
-
-i.flag.pw:before,
-i.flag.palau:before {
- background-position: -72px -728px;
-}
-
-i.flag.py:before,
-i.flag.paraguay:before {
- background-position: -72px -754px;
-}
-
-i.flag.qa:before,
-i.flag.qatar:before {
- background-position: -72px -780px;
-}
-
-i.flag.re:before,
-i.flag.reunion:before {
- background-position: -72px -806px;
-}
-
-i.flag.ro:before,
-i.flag.romania:before {
- background-position: -72px -832px;
-}
-
-i.flag.rs:before,
-i.flag.serbia:before {
- background-position: -72px -858px;
-}
-
-i.flag.ru:before,
-i.flag.russia:before {
- background-position: -72px -884px;
-}
-
-i.flag.rw:before,
-i.flag.rwanda:before {
- background-position: -72px -910px;
-}
-
-i.flag.sa:before,
-i.flag.saudi.arabia:before {
- background-position: -72px -936px;
-}
-
-i.flag.sb:before,
-i.flag.solomon.islands:before {
- background-position: -72px -962px;
-}
-
-i.flag.sc:before,
-i.flag.seychelles:before {
- background-position: -72px -988px;
-}
-
-i.flag.gb.sct:before,
-i.flag.scotland:before {
- background-position: -72px -1014px;
-}
-
-i.flag.sd:before,
-i.flag.sudan:before {
- background-position: -72px -1040px;
-}
-
-i.flag.se:before,
-i.flag.sweden:before {
- background-position: -72px -1066px;
-}
-
-i.flag.sg:before,
-i.flag.singapore:before {
- background-position: -72px -1092px;
-}
-
-i.flag.sh:before,
-i.flag.saint.helena:before {
- background-position: -72px -1118px;
-}
-
-i.flag.si:before,
-i.flag.slovenia:before {
- background-position: -72px -1144px;
-}
-
-i.flag.sj:before,
-i.flag.svalbard:before,
-i.flag.jan.mayen:before {
- background-position: -72px -1170px;
-}
-
-i.flag.sk:before,
-i.flag.slovakia:before {
- background-position: -72px -1196px;
-}
-
-i.flag.sl:before,
-i.flag.sierra.leone:before {
- background-position: -72px -1222px;
-}
-
-i.flag.sm:before,
-i.flag.san.marino:before {
- background-position: -72px -1248px;
-}
-
-i.flag.sn:before,
-i.flag.senegal:before {
- background-position: -72px -1274px;
-}
-
-i.flag.so:before,
-i.flag.somalia:before {
- background-position: -72px -1300px;
-}
-
-i.flag.sr:before,
-i.flag.suriname:before {
- background-position: -72px -1326px;
-}
-
-i.flag.st:before,
-i.flag.sao.tome:before {
- background-position: -72px -1352px;
-}
-
-i.flag.sv:before,
-i.flag.el.salvador:before {
- background-position: -72px -1378px;
-}
-
-i.flag.sy:before,
-i.flag.syria:before {
- background-position: -72px -1404px;
-}
-
-i.flag.sz:before,
-i.flag.swaziland:before {
- background-position: -72px -1430px;
-}
-
-i.flag.tc:before,
-i.flag.caicos.islands:before {
- background-position: -72px -1456px;
-}
-
-i.flag.td:before,
-i.flag.chad:before {
- background-position: -72px -1482px;
-}
-
-i.flag.tf:before,
-i.flag.french.territories:before {
- background-position: -72px -1508px;
-}
-
-i.flag.tg:before,
-i.flag.togo:before {
- background-position: -72px -1534px;
-}
-
-i.flag.th:before,
-i.flag.thailand:before {
- background-position: -72px -1560px;
-}
-
-i.flag.tj:before,
-i.flag.tajikistan:before {
- background-position: -72px -1586px;
-}
-
-i.flag.tk:before,
-i.flag.tokelau:before {
- background-position: -72px -1612px;
-}
-
-i.flag.tl:before,
-i.flag.timorleste:before {
- background-position: -72px -1638px;
-}
-
-i.flag.tm:before,
-i.flag.turkmenistan:before {
- background-position: -72px -1664px;
-}
-
-i.flag.tn:before,
-i.flag.tunisia:before {
- background-position: -72px -1690px;
-}
-
-i.flag.to:before,
-i.flag.tonga:before {
- background-position: -72px -1716px;
-}
-
-i.flag.tr:before,
-i.flag.turkey:before {
- background-position: -72px -1742px;
-}
-
-i.flag.tt:before,
-i.flag.trinidad:before {
- background-position: -72px -1768px;
-}
-
-i.flag.tv:before,
-i.flag.tuvalu:before {
- background-position: -72px -1794px;
-}
-
-i.flag.tw:before,
-i.flag.taiwan:before {
- background-position: -72px -1820px;
-}
-
-i.flag.tz:before,
-i.flag.tanzania:before {
- background-position: -72px -1846px;
-}
-
-i.flag.ua:before,
-i.flag.ukraine:before {
- background-position: -72px -1872px;
-}
-
-i.flag.ug:before,
-i.flag.uganda:before {
- background-position: -72px -1898px;
-}
-
-i.flag.um:before,
-i.flag.us.minor.islands:before {
- background-position: -72px -1924px;
-}
-
-i.flag.us:before,
-i.flag.america:before,
-i.flag.united.states:before {
- background-position: -72px -1950px;
-}
-
-i.flag.uy:before,
-i.flag.uruguay:before {
- background-position: -72px -1976px;
-}
-
-i.flag.uz:before,
-i.flag.uzbekistan:before {
- background-position: -108px 0px;
-}
-
-i.flag.va:before,
-i.flag.vatican.city:before {
- background-position: -108px -26px;
-}
-
-i.flag.vc:before,
-i.flag.saint.vincent:before {
- background-position: -108px -52px;
-}
-
-i.flag.ve:before,
-i.flag.venezuela:before {
- background-position: -108px -78px;
-}
-
-i.flag.vg:before,
-i.flag.british.virgin.islands:before {
- background-position: -108px -104px;
-}
-
-i.flag.vi:before,
-i.flag.us.virgin.islands:before {
- background-position: -108px -130px;
-}
-
-i.flag.vn:before,
-i.flag.vietnam:before {
- background-position: -108px -156px;
-}
-
-i.flag.vu:before,
-i.flag.vanuatu:before {
- background-position: -108px -182px;
-}
-
-i.flag.gb.wls:before,
-i.flag.wales:before {
- background-position: -108px -208px;
-}
-
-i.flag.wf:before,
-i.flag.wallis.and.futuna:before {
- background-position: -108px -234px;
-}
-
-i.flag.ws:before,
-i.flag.samoa:before {
- background-position: -108px -260px;
-}
-
-i.flag.ye:before,
-i.flag.yemen:before {
- background-position: -108px -286px;
-}
-
-i.flag.yt:before,
-i.flag.mayotte:before {
- background-position: -108px -312px;
-}
-
-i.flag.za:before,
-i.flag.south.africa:before {
- background-position: -108px -338px;
-}
-
-i.flag.zm:before,
-i.flag.zambia:before {
- background-position: -108px -364px;
-}
-
-i.flag.zw:before,
-i.flag.zimbabwe:before {
- background-position: -108px -390px;
-}
-
-/*******************************
-        Site Overrides
-*******************************/
-/*!
-* # Semantic UI 2.3.0 - Header
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-           Header
-*******************************/
-
-/* Standard */
-
-.ui.header {
- border: none;
- margin: calc(2rem -  0.14285714em ) 0em 1rem;
- padding: 0em 0em;
- font-family: 'Lato', 'Helvetica Neue', Arial, Helvetica, sans-serif;
- font-weight: bold;
- line-height: 1.28571429em;
- text-transform: none;
- color: rgba(0, 0, 0, 0.87);
-}
-
-.ui.header:first-child {
- margin-top: -0.14285714em;
-}
-
-.ui.header:last-child {
- margin-bottom: 0em;
-}
-
-/*--------------
-  Sub Header
----------------*/
-
-.ui.header .sub.header {
- display: block;
- font-weight: normal;
- padding: 0em;
- margin: 0em;
- font-size: 1rem;
- line-height: 1.2em;
- color: rgba(0, 0, 0, 0.6);
-}
-
-/*--------------
-     Icon
----------------*/
-
-.ui.header > .icon {
- display: table-cell;
- opacity: 1;
- font-size: 1.5em;
- padding-top: 0em;
- vertical-align: middle;
-}
-
-/* With Text Node */
-
-.ui.header .icon:only-child {
- display: inline-block;
- padding: 0em;
- margin-right: 0.75rem;
-}
-
-/*-------------------
-       Image
---------------------*/
-
-.ui.header > .image:not(.icon),
-.ui.header > img {
- display: inline-block;
- margin-top: 0.14285714em;
- width: 2.5em;
- height: auto;
- vertical-align: middle;
-}
-
-.ui.header > .image:not(.icon):only-child,
-.ui.header > img:only-child {
- margin-right: 0.75rem;
-}
-
-/*--------------
-    Content
----------------*/
-
-.ui.header .content {
- display: inline-block;
- vertical-align: top;
-}
-
-/* After Image */
-
-.ui.header > img + .content,
-.ui.header > .image + .content {
- padding-left: 0.75rem;
- vertical-align: middle;
-}
-
-/* After Icon */
-
-.ui.header > .icon + .content {
- padding-left: 0.75rem;
- display: table-cell;
- vertical-align: middle;
-}
-
-/*--------------
-Loose Coupling
----------------*/
-
-.ui.header .ui.label {
- font-size: '';
- margin-left: 0.5rem;
- vertical-align: middle;
-}
-
-/* Positioning */
-
-.ui.header + p {
- margin-top: 0em;
-}
-
-/*******************************
-           Types
-*******************************/
-
-/*--------------
-    Page
----------------*/
-
-h1.ui.header {
- font-size: 2rem;
-}
-
-h2.ui.header {
- font-size: 1.71428571rem;
-}
-
-h3.ui.header {
- font-size: 1.28571429rem;
-}
-
-h4.ui.header {
- font-size: 1.07142857rem;
-}
-
-h5.ui.header {
- font-size: 1rem;
-}
-
-/* Sub Header */
-
-h1.ui.header .sub.header {
- font-size: 1.14285714rem;
-}
-
-h2.ui.header .sub.header {
- font-size: 1.14285714rem;
-}
-
-h3.ui.header .sub.header {
- font-size: 1rem;
-}
-
-h4.ui.header .sub.header {
- font-size: 1rem;
-}
-
-h5.ui.header .sub.header {
- font-size: 0.92857143rem;
-}
-
-/*--------------
-Content Heading
----------------*/
-
-.ui.huge.header {
- min-height: 1em;
- font-size: 2em;
-}
-
-.ui.large.header {
- font-size: 1.71428571em;
-}
-
-.ui.medium.header {
- font-size: 1.28571429em;
-}
-
-.ui.small.header {
- font-size: 1.07142857em;
-}
-
-.ui.tiny.header {
- font-size: 1em;
-}
-
-/* Sub Header */
-
-.ui.huge.header .sub.header {
- font-size: 1.14285714rem;
-}
-
-.ui.large.header .sub.header {
- font-size: 1.14285714rem;
-}
-
-.ui.header .sub.header {
- font-size: 1rem;
-}
-
-.ui.small.header .sub.header {
- font-size: 1rem;
-}
-
-.ui.tiny.header .sub.header {
- font-size: 0.92857143rem;
-}
-
-/*--------------
-  Sub Heading
----------------*/
-
-.ui.sub.header {
- padding: 0em;
- margin-bottom: 0.14285714rem;
- font-weight: bold;
- font-size: 0.85714286em;
- text-transform: uppercase;
- color: '';
-}
-
-.ui.small.sub.header {
- font-size: 0.78571429em;
-}
-
-.ui.sub.header {
- font-size: 0.85714286em;
-}
-
-.ui.large.sub.header {
- font-size: 0.92857143em;
-}
-
-.ui.huge.sub.header {
- font-size: 1em;
-}
-
-/*-------------------
-       Icon
---------------------*/
-
-.ui.icon.header {
- display: inline-block;
- text-align: center;
- margin: 2rem 0em 1rem;
-}
-
-.ui.icon.header:after {
- content: '';
- display: block;
- height: 0px;
- clear: both;
- visibility: hidden;
-}
-
-.ui.icon.header:first-child {
- margin-top: 0em;
-}
-
-.ui.icon.header .icon {
- float: none;
- display: block;
- width: auto;
- height: auto;
- line-height: 1;
- padding: 0em;
- font-size: 3em;
- margin: 0em auto 0.5rem;
- opacity: 1;
-}
-
-.ui.icon.header .content {
- display: block;
- padding: 0em;
-}
-
-.ui.icon.header .circular.icon {
- font-size: 2em;
-}
-
-.ui.icon.header .square.icon {
- font-size: 2em;
-}
-
-.ui.block.icon.header .icon {
- margin-bottom: 0em;
-}
-
-.ui.icon.header.aligned {
- margin-left: auto;
- margin-right: auto;
- display: block;
-}
-
-/*******************************
-           States
-*******************************/
-
-.ui.disabled.header {
- opacity: 0.45;
-}
-
-/*******************************
-          Variations
-*******************************/
-
-/*-------------------
-     Inverted
---------------------*/
-
-.ui.inverted.header {
- color: #FFFFFF;
-}
-
-.ui.inverted.header .sub.header {
- color: rgba(255, 255, 255, 0.8);
-}
-
-.ui.inverted.attached.header {
- background: #545454 -webkit-gradient(linear, left top, left bottom, from(transparent), to(rgba(0, 0, 0, 0.05)));
- background: #545454 -webkit-linear-gradient(transparent, rgba(0, 0, 0, 0.05));
- background: #545454 linear-gradient(transparent, rgba(0, 0, 0, 0.05));
- -webkit-box-shadow: none;
- box-shadow: none;
- border-color: transparent;
-}
-
-.ui.inverted.block.header {
- background: #545454 -webkit-gradient(linear, left top, left bottom, from(transparent), to(rgba(0, 0, 0, 0.05)));
- background: #545454 -webkit-linear-gradient(transparent, rgba(0, 0, 0, 0.05));
- background: #545454 linear-gradient(transparent, rgba(0, 0, 0, 0.05));
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-.ui.inverted.block.header {
- border-bottom: none;
-}
-
-/*-------------------
-      Colors
---------------------*/
-
-/*--- Red ---*/
-
-.ui.red.header {
- color: #DB2828 !important;
-}
-
-a.ui.red.header:hover {
- color: #d01919 !important;
-}
-
-.ui.red.dividing.header {
- border-bottom: 2px solid #DB2828;
-}
-
-/* Inverted */
-
-.ui.inverted.red.header {
- color: #FF695E !important;
-}
-
-a.ui.inverted.red.header:hover {
- color: #ff5144 !important;
-}
-
-/*--- Orange ---*/
-
-.ui.orange.header {
- color: #F2711C !important;
-}
-
-a.ui.orange.header:hover {
- color: #f26202 !important;
-}
-
-.ui.orange.dividing.header {
- border-bottom: 2px solid #F2711C;
-}
-
-/* Inverted */
-
-.ui.inverted.orange.header {
- color: #FF851B !important;
-}
-
-a.ui.inverted.orange.header:hover {
- color: #ff7701 !important;
-}
-
-/*--- Olive ---*/
-
-.ui.olive.header {
- color: #B5CC18 !important;
-}
-
-a.ui.olive.header:hover {
- color: #a7bd0d !important;
-}
-
-.ui.olive.dividing.header {
- border-bottom: 2px solid #B5CC18;
-}
-
-/* Inverted */
-
-.ui.inverted.olive.header {
- color: #D9E778 !important;
-}
-
-a.ui.inverted.olive.header:hover {
- color: #d8ea5c !important;
-}
-
-/*--- Yellow ---*/
-
-.ui.yellow.header {
- color: #FBBD08 !important;
-}
-
-a.ui.yellow.header:hover {
- color: #eaae00 !important;
-}
-
-.ui.yellow.dividing.header {
- border-bottom: 2px solid #FBBD08;
-}
-
-/* Inverted */
-
-.ui.inverted.yellow.header {
- color: #FFE21F !important;
-}
-
-a.ui.inverted.yellow.header:hover {
- color: #ffdf05 !important;
-}
-
-/*--- Green ---*/
-
-.ui.green.header {
- color: #21BA45 !important;
-}
-
-a.ui.green.header:hover {
- color: #16ab39 !important;
-}
-
-.ui.green.dividing.header {
- border-bottom: 2px solid #21BA45;
-}
-
-/* Inverted */
-
-.ui.inverted.green.header {
- color: #2ECC40 !important;
-}
-
-a.ui.inverted.green.header:hover {
- color: #22be34 !important;
-}
-
-/*--- Teal ---*/
-
-.ui.teal.header {
- color: #00B5AD !important;
-}
-
-a.ui.teal.header:hover {
- color: #009c95 !important;
-}
-
-.ui.teal.dividing.header {
- border-bottom: 2px solid #00B5AD;
-}
-
-/* Inverted */
-
-.ui.inverted.teal.header {
- color: #6DFFFF !important;
-}
-
-a.ui.inverted.teal.header:hover {
- color: #54ffff !important;
-}
-
-/*--- Blue ---*/
-
-.ui.blue.header {
- color: #2185D0 !important;
-}
-
-a.ui.blue.header:hover {
- color: #1678c2 !important;
-}
-
-.ui.blue.dividing.header {
- border-bottom: 2px solid #2185D0;
-}
-
-/* Inverted */
-
-.ui.inverted.blue.header {
- color: #54C8FF !important;
-}
-
-a.ui.inverted.blue.header:hover {
- color: #3ac0ff !important;
-}
-
-/*--- Violet ---*/
-
-.ui.violet.header {
- color: #6435C9 !important;
-}
-
-a.ui.violet.header:hover {
- color: #5829bb !important;
-}
-
-.ui.violet.dividing.header {
- border-bottom: 2px solid #6435C9;
-}
-
-/* Inverted */
-
-.ui.inverted.violet.header {
- color: #A291FB !important;
-}
-
-a.ui.inverted.violet.header:hover {
- color: #8a73ff !important;
-}
-
-/*--- Purple ---*/
-
-.ui.purple.header {
- color: #A333C8 !important;
-}
-
-a.ui.purple.header:hover {
- color: #9627ba !important;
-}
-
-.ui.purple.dividing.header {
- border-bottom: 2px solid #A333C8;
-}
-
-/* Inverted */
-
-.ui.inverted.purple.header {
- color: #DC73FF !important;
-}
-
-a.ui.inverted.purple.header:hover {
- color: #d65aff !important;
-}
-
-/*--- Pink ---*/
-
-.ui.pink.header {
- color: #E03997 !important;
-}
-
-a.ui.pink.header:hover {
- color: #e61a8d !important;
-}
-
-.ui.pink.dividing.header {
- border-bottom: 2px solid #E03997;
-}
-
-/* Inverted */
-
-.ui.inverted.pink.header {
- color: #FF8EDF !important;
-}
-
-a.ui.inverted.pink.header:hover {
- color: #ff74d8 !important;
-}
-
-/*--- Brown ---*/
-
-.ui.brown.header {
- color: #A5673F !important;
-}
-
-a.ui.brown.header:hover {
- color: #975b33 !important;
-}
-
-.ui.brown.dividing.header {
- border-bottom: 2px solid #A5673F;
-}
-
-/* Inverted */
-
-.ui.inverted.brown.header {
- color: #D67C1C !important;
-}
-
-a.ui.inverted.brown.header:hover {
- color: #c86f11 !important;
-}
-
-/*--- Grey ---*/
-
-.ui.grey.header {
- color: #767676 !important;
-}
-
-a.ui.grey.header:hover {
- color: #838383 !important;
-}
-
-.ui.grey.dividing.header {
- border-bottom: 2px solid #767676;
-}
-
-/* Inverted */
-
-.ui.inverted.grey.header {
- color: #DCDDDE !important;
-}
-
-a.ui.inverted.grey.header:hover {
- color: #cfd0d2 !important;
-}
-
-/*-------------------
-      Aligned
---------------------*/
-
-.ui.left.aligned.header {
- text-align: left;
-}
-
-.ui.right.aligned.header {
- text-align: right;
-}
-
-.ui.centered.header,
-.ui.center.aligned.header {
- text-align: center;
-}
-
-.ui.justified.header {
- text-align: justify;
-}
-
-.ui.justified.header:after {
- display: inline-block;
- content: '';
- width: 100%;
-}
-
-/*-------------------
-      Floated
---------------------*/
-
-.ui.floated.header,
-.ui[class*="left floated"].header {
- float: left;
- margin-top: 0em;
- margin-right: 0.5em;
-}
-
-.ui[class*="right floated"].header {
- float: right;
- margin-top: 0em;
- margin-left: 0.5em;
-}
-
-/*-------------------
-      Fitted
---------------------*/
-
-.ui.fitted.header {
- padding: 0em;
-}
-
-/*-------------------
-     Dividing
---------------------*/
-
-.ui.dividing.header {
- padding-bottom: 0.21428571rem;
- border-bottom: 1px solid rgba(34, 36, 38, 0.15);
-}
-
-.ui.dividing.header .sub.header {
- padding-bottom: 0.21428571rem;
-}
-
-.ui.dividing.header .icon {
- margin-bottom: 0em;
-}
-
-.ui.inverted.dividing.header {
- border-bottom-color: rgba(255, 255, 255, 0.1);
-}
-
-/*-------------------
-       Block
---------------------*/
-
-.ui.block.header {
- background: #F3F4F5;
- padding: 0.78571429rem 1rem;
- -webkit-box-shadow: none;
- box-shadow: none;
- border: 1px solid #D4D4D5;
- border-radius: 0.28571429rem;
-}
-
-.ui.tiny.block.header {
- font-size: 0.85714286rem;
-}
-
-.ui.small.block.header {
- font-size: 0.92857143rem;
-}
-
-.ui.block.header:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) {
- font-size: 1rem;
-}
-
-.ui.large.block.header {
- font-size: 1.14285714rem;
-}
-
-.ui.huge.block.header {
- font-size: 1.42857143rem;
-}
-
-/*-------------------
-      Attached
---------------------*/
-
-.ui.attached.header {
- background: #FFFFFF;
- padding: 0.78571429rem 1rem;
- margin-left: -1px;
- margin-right: -1px;
- -webkit-box-shadow: none;
- box-shadow: none;
- border: 1px solid #D4D4D5;
-}
-
-.ui.attached.block.header {
- background: #F3F4F5;
-}
-
-.ui.attached:not(.top):not(.bottom).header {
- margin-top: 0em;
- margin-bottom: 0em;
- border-top: none;
- border-radius: 0em;
-}
-
-.ui.top.attached.header {
- margin-bottom: 0em;
- border-radius: 0.28571429rem 0.28571429rem 0em 0em;
-}
-
-.ui.bottom.attached.header {
- margin-top: 0em;
- border-top: none;
- border-radius: 0em 0em 0.28571429rem 0.28571429rem;
-}
-
-/* Attached Sizes */
-
-.ui.tiny.attached.header {
- font-size: 0.85714286em;
-}
-
-.ui.small.attached.header {
- font-size: 0.92857143em;
-}
-
-.ui.attached.header:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) {
- font-size: 1em;
-}
-
-.ui.large.attached.header {
- font-size: 1.14285714em;
-}
-
-.ui.huge.attached.header {
- font-size: 1.42857143em;
-}
-
-/*-------------------
-       Sizing
---------------------*/
-
-.ui.header:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) {
- font-size: 1.28571429em;
-}
-
-/*******************************
-        Theme Overrides
-*******************************/
-
-/*******************************
-        Site Overrides
-*******************************/
-/*!
-* # Semantic UI 2.3.0 - Icon
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-            Icon
-*******************************/
-
-@font-face {
- font-family: 'Icons';
- src: url("./themes/default/assets/fonts/icons.eot");
- src: url("./themes/default/assets/fonts/icons.eot?#iefix") format('embedded-opentype'), url("./themes/default/assets/fonts/icons.woff2") format('woff2'), url("./themes/default/assets/fonts/icons.woff") format('woff'), url("./themes/default/assets/fonts/icons.ttf") format('truetype'), url("./themes/default/assets/fonts/icons.svg#icons") format('svg');
- font-style: normal;
- font-weight: normal;
- font-variant: normal;
- text-decoration: inherit;
- text-transform: none;
-}
-
-i.icon {
- display: inline-block;
- opacity: 1;
- margin: 0em 0.25rem 0em 0em;
- width: 1.18em;
- height: 1em;
- font-family: 'Icons';
- font-style: normal;
- font-weight: normal;
- text-decoration: inherit;
- text-align: center;
- speak: none;
- font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
- -webkit-font-smoothing: antialiased;
- -webkit-backface-visibility: hidden;
- backface-visibility: hidden;
-}
-
-i.icon:before {
- background: none !important;
-}
-
-/*******************************
-            Types
-*******************************/
-
-/*--------------
-   Loading
----------------*/
-
-i.icon.loading {
- height: 1em;
- line-height: 1;
- -webkit-animation: icon-loading 2s linear infinite;
- animation: icon-loading 2s linear infinite;
-}
-
-@-webkit-keyframes icon-loading {
- from {
-   -webkit-transform: rotate(0deg);
-   transform: rotate(0deg);
- }
-
- to {
-   -webkit-transform: rotate(360deg);
-   transform: rotate(360deg);
- }
-}
-
-@keyframes icon-loading {
- from {
-   -webkit-transform: rotate(0deg);
-   transform: rotate(0deg);
- }
-
- to {
-   -webkit-transform: rotate(360deg);
-   transform: rotate(360deg);
- }
-}
-
-/*******************************
-            States
-*******************************/
-
-i.icon.hover {
- opacity: 1 !important;
-}
-
-i.icon.active {
- opacity: 1 !important;
-}
-
-i.emphasized.icon {
- opacity: 1 !important;
-}
-
-i.disabled.icon {
- opacity: 0.45 !important;
-}
-
-/*******************************
-          Variations
-*******************************/
-
-/*-------------------
-       Fitted
---------------------*/
-
-i.fitted.icon {
- width: auto;
- margin: 0em;
-}
-
-/*-------------------
-        Link
---------------------*/
-
-i.link.icon,
-i.link.icons {
- cursor: pointer;
- opacity: 0.8;
- -webkit-transition: opacity 0.1s ease;
- transition: opacity 0.1s ease;
-}
-
-i.link.icon:hover,
-i.link.icons:hover {
- opacity: 1 !important;
-}
-
-/*-------------------
-     Circular
---------------------*/
-
-i.circular.icon {
- border-radius: 500em !important;
- line-height: 1 !important;
- padding: 0.5em 0.5em !important;
- -webkit-box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
- box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
- width: 2em !important;
- height: 2em !important;
-}
-
-i.circular.inverted.icon {
- border: none;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-/*-------------------
-     Flipped
---------------------*/
-
-i.flipped.icon,
-i.horizontally.flipped.icon {
- -webkit-transform: scale(-1, 1);
- transform: scale(-1, 1);
-}
-
-i.vertically.flipped.icon {
- -webkit-transform: scale(1, -1);
- transform: scale(1, -1);
-}
-
-/*-------------------
-     Rotated
---------------------*/
-
-i.rotated.icon,
-i.right.rotated.icon,
-i.clockwise.rotated.icon {
- -webkit-transform: rotate(90deg);
- transform: rotate(90deg);
-}
-
-i.left.rotated.icon,
-i.counterclockwise.rotated.icon {
- -webkit-transform: rotate(-90deg);
- transform: rotate(-90deg);
-}
-
-/*-------------------
-     Bordered
---------------------*/
-
-i.bordered.icon {
- line-height: 1;
- vertical-align: baseline;
- width: 2em;
- height: 2em;
- padding: 0.5em 0.41em !important;
- -webkit-box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
- box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;
-}
-
-i.bordered.inverted.icon {
- border: none;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-/*-------------------
-     Inverted
---------------------*/
-
-/* Inverted Shapes */
-
-i.inverted.bordered.icon,
-i.inverted.circular.icon {
- background-color: #1B1C1D !important;
- color: #FFFFFF !important;
-}
-
-i.inverted.icon {
- color: #FFFFFF;
-}
-
-/*-------------------
-      Colors
---------------------*/
-
-/* Red */
-
-i.red.icon {
- color: #DB2828 !important;
-}
-
-i.inverted.red.icon {
- color: #FF695E !important;
-}
-
-i.inverted.bordered.red.icon,
-i.inverted.circular.red.icon {
- background-color: #DB2828 !important;
- color: #FFFFFF !important;
-}
-
-/* Orange */
-
-i.orange.icon {
- color: #F2711C !important;
-}
-
-i.inverted.orange.icon {
- color: #FF851B !important;
-}
-
-i.inverted.bordered.orange.icon,
-i.inverted.circular.orange.icon {
- background-color: #F2711C !important;
- color: #FFFFFF !important;
-}
-
-/* Yellow */
-
-i.yellow.icon {
- color: #FBBD08 !important;
-}
-
-i.inverted.yellow.icon {
- color: #FFE21F !important;
-}
-
-i.inverted.bordered.yellow.icon,
-i.inverted.circular.yellow.icon {
- background-color: #FBBD08 !important;
- color: #FFFFFF !important;
-}
-
-/* Olive */
-
-i.olive.icon {
- color: #B5CC18 !important;
-}
-
-i.inverted.olive.icon {
- color: #D9E778 !important;
-}
-
-i.inverted.bordered.olive.icon,
-i.inverted.circular.olive.icon {
- background-color: #B5CC18 !important;
- color: #FFFFFF !important;
-}
-
-/* Green */
-
-i.green.icon {
- color: #21BA45 !important;
-}
-
-i.inverted.green.icon {
- color: #2ECC40 !important;
-}
-
-i.inverted.bordered.green.icon,
-i.inverted.circular.green.icon {
- background-color: #21BA45 !important;
- color: #FFFFFF !important;
-}
-
-/* Teal */
-
-i.teal.icon {
- color: #00B5AD !important;
-}
-
-i.inverted.teal.icon {
- color: #6DFFFF !important;
-}
-
-i.inverted.bordered.teal.icon,
-i.inverted.circular.teal.icon {
- background-color: #00B5AD !important;
- color: #FFFFFF !important;
-}
-
-/* Blue */
-
-i.blue.icon {
- color: #2185D0 !important;
-}
-
-i.inverted.blue.icon {
- color: #54C8FF !important;
-}
-
-i.inverted.bordered.blue.icon,
-i.inverted.circular.blue.icon {
- background-color: #2185D0 !important;
- color: #FFFFFF !important;
-}
-
-/* Violet */
-
-i.violet.icon {
- color: #6435C9 !important;
-}
-
-i.inverted.violet.icon {
- color: #A291FB !important;
-}
-
-i.inverted.bordered.violet.icon,
-i.inverted.circular.violet.icon {
- background-color: #6435C9 !important;
- color: #FFFFFF !important;
-}
-
-/* Purple */
-
-i.purple.icon {
- color: #A333C8 !important;
-}
-
-i.inverted.purple.icon {
- color: #DC73FF !important;
-}
-
-i.inverted.bordered.purple.icon,
-i.inverted.circular.purple.icon {
- background-color: #A333C8 !important;
- color: #FFFFFF !important;
-}
-
-/* Pink */
-
-i.pink.icon {
- color: #E03997 !important;
-}
-
-i.inverted.pink.icon {
- color: #FF8EDF !important;
-}
-
-i.inverted.bordered.pink.icon,
-i.inverted.circular.pink.icon {
- background-color: #E03997 !important;
- color: #FFFFFF !important;
-}
-
-/* Brown */
-
-i.brown.icon {
- color: #A5673F !important;
-}
-
-i.inverted.brown.icon {
- color: #D67C1C !important;
-}
-
-i.inverted.bordered.brown.icon,
-i.inverted.circular.brown.icon {
- background-color: #A5673F !important;
- color: #FFFFFF !important;
-}
-
-/* Grey */
-
-i.grey.icon {
- color: #767676 !important;
-}
-
-i.inverted.grey.icon {
- color: #DCDDDE !important;
-}
-
-i.inverted.bordered.grey.icon,
-i.inverted.circular.grey.icon {
- background-color: #767676 !important;
- color: #FFFFFF !important;
-}
-
-/* Black */
-
-i.black.icon {
- color: #1B1C1D !important;
-}
-
-i.inverted.black.icon {
- color: #545454 !important;
-}
-
-i.inverted.bordered.black.icon,
-i.inverted.circular.black.icon {
- background-color: #1B1C1D !important;
- color: #FFFFFF !important;
-}
-
-/*-------------------
-       Sizes
---------------------*/
-
-i.mini.icon,
-i.mini.icons {
- line-height: 1;
- font-size: 0.4em;
-}
-
-i.tiny.icon,
-i.tiny.icons {
- line-height: 1;
- font-size: 0.5em;
-}
-
-i.small.icon,
-i.small.icons {
- line-height: 1;
- font-size: 0.75em;
-}
-
-i.icon,
-i.icons {
- font-size: 1em;
-}
-
-i.large.icon,
-i.large.icons {
- line-height: 1;
- vertical-align: middle;
- font-size: 1.5em;
-}
-
-i.big.icon,
-i.big.icons {
- line-height: 1;
- vertical-align: middle;
- font-size: 2em;
-}
-
-i.huge.icon,
-i.huge.icons {
- line-height: 1;
- vertical-align: middle;
- font-size: 4em;
-}
-
-i.massive.icon,
-i.massive.icons {
- line-height: 1;
- vertical-align: middle;
- font-size: 8em;
-}
-
-/*******************************
-           Groups
-*******************************/
-
-i.icons {
- display: inline-block;
- position: relative;
- line-height: 1;
-}
-
-i.icons .icon {
- position: absolute;
- top: 50%;
- left: 50%;
- -webkit-transform: translateX(-50%) translateY(-50%);
- transform: translateX(-50%) translateY(-50%);
- margin: 0em;
- margin: 0;
-}
-
-i.icons .icon:first-child {
- position: static;
- width: auto;
- height: auto;
- vertical-align: top;
- -webkit-transform: none;
- transform: none;
- margin-right: 0.25rem;
-}
-
-/* Corner Icon */
-
-i.icons .corner.icon {
- top: auto;
- left: auto;
- right: 0;
- bottom: 0;
- -webkit-transform: none;
- transform: none;
- font-size: 0.45em;
- text-shadow: -1px -1px 0 #FFFFFF, 1px -1px 0 #FFFFFF, -1px 1px 0 #FFFFFF, 1px 1px 0 #FFFFFF;
-}
-
-i.icons .top.right.corner.icon {
- top: 0;
- left: auto;
- right: 0;
- bottom: auto;
-}
-
-i.icons .top.left.corner.icon {
- top: 0;
- left: 0;
- right: auto;
- bottom: auto;
-}
-
-i.icons .bottom.left.corner.icon {
- top: auto;
- left: 0;
- right: auto;
- bottom: 0;
-}
-
-i.icons .bottom.right.corner.icon {
- top: auto;
- left: auto;
- right: 0;
- bottom: 0;
-}
-
-i.icons .inverted.corner.icon {
- text-shadow: -1px -1px 0 #1B1C1D, 1px -1px 0 #1B1C1D, -1px 1px 0 #1B1C1D, 1px 1px 0 #1B1C1D;
-}
-
-/*
-* Font Awesome 5.0.6 by @fontawesome - http://fontawesome.io - @fontawesome
-* License - https://fontawesome.com/license (Icons: CC BY 4.0 License, Fonts: SIL OFL 1.1 License, CSS: MIT License)
-*/
-
-/*******************************
-
-Semantic-UI integration of font-awesome :
-
-///class names are separated
-i.icon.circle => i.icon.circle
-i.icon.circle-o => i.icon.circle.outline
-
-//abbreviation are replaced by full letters:
-i.icon.ellipsis-h => i.icon.ellipsis.horizontal
-i.icon.ellipsis-v => i.icon.ellipsis.vertical
-.alpha => .i.icon.alphabet
-.asc => .i.icon.ascending
-.desc => .i.icon.descending
-.alt =>.alternate
-
-ASCII order is conserved for easier maintenance.
-
-Icons that only have one style 'outline', 'square' etc do not require this class
-for instance `lemon icon` not `lemon outline icon` since there is only one lemon
-
-*******************************/
-
-/*******************************
-           Icons
-*******************************/
-
-/* Accessibility */
-
-i.icon.american.sign.language.interpreting:before {
- content: "\f2a3";
-}
-
-i.icon.assistive.listening.systems:before {
- content: "\f2a2";
-}
-
-i.icon.audio.description:before {
- content: "\f29e";
-}
-
-i.icon.blind:before {
- content: "\f29d";
-}
-
-i.icon.braille:before {
- content: "\f2a1";
-}
-
-i.icon.closed.captioning.outline:before {
- content: "\f327";
-}
-
-i.icon.closed.captioning:before {
- content: "\f20a";
-}
-
-i.icon.deaf:before {
- content: "\f2a4";
-}
-
-i.icon.low.vision:before {
- content: "\f2a8";
-}
-
-i.icon.phone.volume:before {
- content: "\f2a0";
-}
-
-i.icon.question.circle.outline:before {
- content: "\f628";
-}
-
-i.icon.question.circle:before {
- content: "\f059";
-}
-
-i.icon.sign.language:before {
- content: "\f2a7";
-}
-
-i.icon.tty:before {
- content: "\f1e4";
-}
-
-i.icon.universal.access:before {
- content: "\f29a";
-}
-
-i.icon.wheelchair:before {
- content: "\f193";
-}
-
-/* Arrows */
-
-i.icon.angle.double.down:before {
- content: "\f103";
-}
-
-i.icon.angle.double.left:before {
- content: "\f100";
-}
-
-i.icon.angle.double.right:before {
- content: "\f101";
-}
-
-i.icon.angle.double.up:before {
- content: "\f102";
-}
-
-i.icon.angle.down:before {
- content: "\f107";
-}
-
-i.icon.angle.left:before {
- content: "\f104";
-}
-
-i.icon.angle.right:before {
- content: "\f105";
-}
-
-i.icon.angle.up:before {
- content: "\f106";
-}
-
-i.icon.arrow.alternate.circle.down.outline:before {
- content: "\f608";
-}
-
-i.icon.arrow.alternate.circle.down:before {
- content: "\f358";
-}
-
-i.icon.arrow.alternate.circle.left.outline:before {
- content: "\f605";
-}
-
-i.icon.arrow.alternate.circle.left:before {
- content: "\f359";
-}
-
-i.icon.arrow.alternate.circle.right.outline:before {
- content: "\f304";
-}
-
-i.icon.arrow.alternate.circle.right:before {
- content: "\f35a";
-}
-
-i.icon.arrow.alternate.circle.up.outline:before {
- content: "\f305";
-}
-
-i.icon.arrow.alternate.circle.up:before {
- content: "\f35b";
-}
-
-i.icon.arrow.circle.down:before {
- content: "\f0ab";
-}
-
-i.icon.arrow.circle.left:before {
- content: "\f0a8";
-}
-
-i.icon.arrow.circle.right:before {
- content: "\f0a9";
-}
-
-i.icon.arrow.circle.up:before {
- content: "\f0aa";
-}
-
-i.icon.arrow.down:before {
- content: "\f063";
-}
-
-i.icon.arrow.left:before {
- content: "\f060";
-}
-
-i.icon.arrow.right:before {
- content: "\f061";
-}
-
-i.icon.arrow.up:before {
- content: "\f062";
-}
-
-i.icon.arrows.alternate.horizontal:before {
- content: "\f337";
-}
-
-i.icon.arrows.alternate.vertical:before {
- content: "\f338";
-}
-
-i.icon.arrows.alternate:before {
- content: "\f0b2";
-}
-
-i.icon.caret.down:before {
- content: "\f0d7";
-}
-
-i.icon.caret.left:before {
- content: "\f0d9";
-}
-
-i.icon.caret.right:before {
- content: "\f0da";
-}
-
-i.icon.caret.square.down.outline:before {
- content: "\f316";
-}
-
-i.icon.caret.square.down:before {
- content: "\f150";
-}
-
-i.icon.caret.square.left.outline:before {
- content: "\f317";
-}
-
-i.icon.caret.square.left:before {
- content: "\f191";
-}
-
-i.icon.caret.square.right.outline:before {
- content: "\f318";
-}
-
-i.icon.caret.square.right:before {
- content: "\f152";
-}
-
-i.icon.caret.square.up.outline:before {
- content: "\f319";
-}
-
-i.icon.caret.square.up:before {
- content: "\f151";
-}
-
-i.icon.caret.up:before {
- content: "\f0d8";
-}
-
-i.icon.cart.arrow.down:before {
- content: "\f218";
-}
-
-i.icon.chart.line:before {
- content: "\f201";
-}
-
-i.icon.chevron.circle.down:before {
- content: "\f13a";
-}
-
-i.icon.chevron.circle.left:before {
- content: "\f137";
-}
-
-i.icon.chevron.circle.right:before {
- content: "\f138";
-}
-
-i.icon.chevron.circle.up:before {
- content: "\f139";
-}
-
-i.icon.chevron.down:before {
- content: "\f078";
-}
-
-i.icon.chevron.left:before {
- content: "\f053";
-}
-
-i.icon.chevron.right:before {
- content: "\f054";
-}
-
-i.icon.chevron.up:before {
- content: "\f077";
-}
-
-i.icon.cloud.download.alternate:before {
- content: "\f600";
-}
-
-i.icon.cloud.upload.alternate:before {
- content: "\f601";
-}
-
-i.icon.download:before {
- content: "\f019";
-}
-
-i.icon.exchange.alternate:before {
- content: "\f362";
-}
-
-i.icon.expand.arrows.alternate:before {
- content: "\f31e";
-}
-
-i.icon.external.link.alternate:before {
- content: "\f35d";
-}
-
-i.icon.external.link.square.alternate:before {
- content: "\f360";
-}
-
-i.icon.hand.point.down.outline:before {
- content: "\f602";
-}
-
-i.icon.hand.point.down:before {
- content: "\f0a7";
-}
-
-i.icon.hand.point.left.outline:before {
- content: "\f361";
-}
-
-i.icon.hand.point.left:before {
- content: "\f0a5";
-}
-
-i.icon.hand.point.right.outline:before {
- content: "\f362";
-}
-
-i.icon.hand.point.right:before {
- content: "\f0a4";
-}
-
-i.icon.hand.point.up.outline:before {
- content: "\f363";
-}
-
-i.icon.hand.point.up:before {
- content: "\f0a6";
-}
-
-i.icon.hand.pointer.outline:before {
- content: "\f364";
-}
-
-i.icon.hand.pointer:before {
- content: "\f25a";
-}
-
-i.icon.history:before {
- content: "\f1da";
-}
-
-i.icon.level.down.alternate:before {
- content: "\f3be";
-}
-
-i.icon.level.up.alternate:before {
- content: "\f3bf";
-}
-
-i.icon.location.arrow:before {
- content: "\f124";
-}
-
-i.icon.long.arrow.alternate.down:before {
- content: "\f309";
-}
-
-i.icon.long.arrow.alternate.left:before {
- content: "\f30a";
-}
-
-i.icon.long.arrow.alternate.right:before {
- content: "\f30b";
-}
-
-i.icon.long.arrow.alternate.up:before {
- content: "\f30c";
-}
-
-i.icon.mouse.pointer:before {
- content: "\f245";
-}
-
-i.icon.play:before {
- content: "\f04b";
-}
-
-i.icon.random:before {
- content: "\f074";
-}
-
-i.icon.recycle:before {
- content: "\f1b8";
-}
-
-i.icon.redo.alternate:before {
- content: "\f2f9";
-}
-
-i.icon.redo:before {
- content: "\f01e";
-}
-
-i.icon.reply.all:before {
- content: "\f122";
-}
-
-i.icon.reply:before {
- content: "\f3e5";
-}
-
-i.icon.retweet:before {
- content: "\f079";
-}
-
-i.icon.share.square.outline:before {
- content: "\f631";
-}
-
-i.icon.share.square:before {
- content: "\f14d";
-}
-
-i.icon.share:before {
- content: "\f064";
-}
-
-i.icon.sign.in.alternate:before {
- content: "\f2f6";
-}
-
-i.icon.sign.out.alternate:before {
- content: "\f2f5";
-}
-
-i.icon.sort.alphabet.down:before {
- content: "\f15d";
-}
-
-i.icon.sort.alphabet.up:before {
- content: "\f15e";
-}
-
-i.icon.sort.amount.down:before {
- content: "\f160";
-}
-
-i.icon.sort.amount.up:before {
- content: "\f161";
-}
-
-i.icon.sort.down:before {
- content: "\f0dd";
-}
-
-i.icon.sort.numeric.down:before {
- content: "\f162";
-}
-
-i.icon.sort.numeric.up:before {
- content: "\f163";
-}
-
-i.icon.sort.up:before {
- content: "\f0de";
-}
-
-i.icon.sort:before {
- content: "\f0dc";
-}
-
-i.icon.sync.alternate:before {
- content: "\f2f1";
-}
-
-i.icon.sync:before {
- content: "\f021";
-}
-
-i.icon.text.height:before {
- content: "\f034";
-}
-
-i.icon.text.width:before {
- content: "\f035";
-}
-
-i.icon.undo.alternate:before {
- content: "\f2ea";
-}
-
-i.icon.undo:before {
- content: "\f0e2";
-}
-
-i.icon.upload:before {
- content: "\f093";
-}
-
-/* Audio & Video */
-
-i.icon.backward:before {
- content: "\f04a";
-}
-
-i.icon.circle.outline:before {
- content: "\f323";
-}
-
-i.icon.circle:before {
- content: "\f111";
-}
-
-i.icon.compress:before {
- content: "\f066";
-}
-
-i.icon.eject:before {
- content: "\f052";
-}
-
-i.icon.expand:before {
- content: "\f065";
-}
-
-i.icon.fast.backward:before {
- content: "\f049";
-}
-
-i.icon.fast.forward:before {
- content: "\f050";
-}
-
-i.icon.file.audio.outline:before {
- content: "\f342";
-}
-
-i.icon.file.audio:before {
- content: "\f1c7";
-}
-
-i.icon.file.video.outline:before {
- content: "\f348";
-}
-
-i.icon.file.video:before {
- content: "\f1c8";
-}
-
-i.icon.film:before {
- content: "\f008";
-}
-
-i.icon.forward:before {
- content: "\f04e";
-}
-
-i.icon.headphones:before {
- content: "\f025";
-}
-
-i.icon.microphone.slash:before {
- content: "\f131";
-}
-
-i.icon.microphone:before {
- content: "\f130";
-}
-
-i.icon.music:before {
- content: "\f001";
-}
-
-i.icon.pause.circle.outline:before {
- content: "\f625";
-}
-
-i.icon.pause.circle:before {
- content: "\f28b";
-}
-
-i.icon.pause:before {
- content: "\f04c";
-}
-
-i.icon.play.circle.outline:before {
- content: "\f626";
-}
-
-i.icon.play.circle:before {
- content: "\f144";
-}
-
-i.icon.podcast:before {
- content: "\f2ce";
-}
-
-i.icon.rss.square:before {
- content: "\f143";
-}
-
-i.icon.rss:before {
- content: "\f09e";
-}
-
-i.icon.step.backward:before {
- content: "\f048";
-}
-
-i.icon.step.forward:before {
- content: "\f051";
-}
-
-i.icon.stop.circle.outline:before {
- content: "\f636";
-}
-
-i.icon.stop.circle:before {
- content: "\f28d";
-}
-
-i.icon.stop:before {
- content: "\f04d";
-}
-
-i.icon.video:before {
- content: "\f03d";
-}
-
-i.icon.volume.down:before {
- content: "\f027";
-}
-
-i.icon.volume.off:before {
- content: "\f026";
-}
-
-i.icon.volume.up:before {
- content: "\f028";
-}
-
-/* Business */
-
-i.icon.address.book.outline:before {
- content: "\f300";
-}
-
-i.icon.address.book:before {
- content: "\f2b9";
-}
-
-i.icon.address.card.outline:before {
- content: "\f301";
-}
-
-i.icon.address.card:before {
- content: "\f2bb";
-}
-
-i.icon.archive:before {
- content: "\f187";
-}
-
-i.icon.balance.scale:before {
- content: "\f24e";
-}
-
-i.icon.birthday.cake:before {
- content: "\f1fd";
-}
-
-i.icon.book:before {
- content: "\f02d";
-}
-
-i.icon.briefcase:before {
- content: "\f0b1";
-}
-
-i.icon.building.outline:before {
- content: "\f603";
-}
-
-i.icon.building:before {
- content: "\f1ad";
-}
-
-i.icon.bullhorn:before {
- content: "\f0a1";
-}
-
-i.icon.calculator:before {
- content: "\f1ec";
-}
-
-i.icon.calendar.alternate.outline:before {
- content: "\f310";
-}
-
-i.icon.calendar.alternate:before {
- content: "\f073";
-}
-
-i.icon.calendar.outline:before {
- content: "\f315";
-}
-
-i.icon.calendar:before {
- content: "\f133";
-}
-
-i.icon.certificate:before {
- content: "\f0a3";
-}
-
-i.icon.chart.area:before {
- content: "\f1fe";
-}
-
-i.icon.chart.bar.outline:before {
- content: "\f320";
-}
-
-i.icon.chart.bar:before {
- content: "\f080";
-}
-
-i.icon.chart.pie:before {
- content: "\f200";
-}
-
-i.icon.clipboard.outline:before {
- content: "\f324";
-}
-
-i.icon.clipboard:before {
- content: "\f328";
-}
-
-i.icon.coffee:before {
- content: "\f0f4";
-}
-
-i.icon.columns:before {
- content: "\f0db";
-}
-
-i.icon.compass.outline:before {
- content: "\f331";
-}
-
-i.icon.compass:before {
- content: "\f14e";
-}
-
-i.icon.copy.outline:before {
- content: "\f332";
-}
-
-i.icon.copy:before {
- content: "\f0c5";
-}
-
-i.icon.copyright.outline:before {
- content: "\f333";
-}
-
-i.icon.copyright:before {
- content: "\f1f9";
-}
-
-i.icon.cut:before {
- content: "\f0c4";
-}
-
-i.icon.edit.outline:before {
- content: "\f336";
-}
-
-i.icon.edit:before {
- content: "\f044";
-}
-
-i.icon.envelope.open.outline:before {
- content: "\f337";
-}
-
-i.icon.envelope.open:before {
- content: "\f2b6";
-}
-
-i.icon.envelope.outline:before {
- content: "\f338";
-}
-
-i.icon.envelope.square:before {
- content: "\f199";
-}
-
-i.icon.envelope:before {
- content: "\f0e0";
-}
-
-i.icon.eraser:before {
- content: "\f12d";
-}
-
-i.icon.fax:before {
- content: "\f1ac";
-}
-
-i.icon.file.alternate.outline:before {
- content: "\f340";
-}
-
-i.icon.file.alternate:before {
- content: "\f15c";
-}
-
-i.icon.file.outline:before {
- content: "\f350";
-}
-
-i.icon.file:before {
- content: "\f15b";
-}
-
-i.icon.folder.open.outline:before {
- content: "\f352";
-}
-
-i.icon.folder.open:before {
- content: "\f07c";
-}
-
-i.icon.folder.outline:before {
- content: "\f353";
-}
-
-i.icon.folder:before {
- content: "\f07b";
-}
-
-i.icon.globe:before {
- content: "\f0ac";
-}
-
-i.icon.industry:before {
- content: "\f275";
-}
-
-i.icon.paperclip:before {
- content: "\f0c6";
-}
-
-i.icon.paste:before {
- content: "\f0ea";
-}
-
-i.icon.pen.square:before {
- content: "\f14b";
-}
-
-i.icon.pencil.alternate:before {
- content: "\f303";
-}
-
-i.icon.percent:before {
- content: "\f295";
-}
-
-i.icon.phone.square:before {
- content: "\f098";
-}
-
-i.icon.phone:before {
- content: "\f095";
-}
-
-i.icon.registered.outline:before {
- content: "\f629";
-}
-
-i.icon.registered:before {
- content: "\f25d";
-}
-
-i.icon.save.outline:before {
- content: "\f630";
-}
-
-i.icon.save:before {
- content: "\f0c7";
-}
-
-i.icon.sitemap:before {
- content: "\f0e8";
-}
-
-i.icon.sticky.note.outline:before {
- content: "\f635";
-}
-
-i.icon.sticky.note:before {
- content: "\f249";
-}
-
-i.icon.suitcase:before {
- content: "\f0f2";
-}
-
-i.icon.table:before {
- content: "\f0ce";
-}
-
-i.icon.tag:before {
- content: "\f02b";
-}
-
-i.icon.tags:before {
- content: "\f02c";
-}
-
-i.icon.tasks:before {
- content: "\f0ae";
-}
-
-i.icon.thumbtack:before {
- content: "\f08d";
-}
-
-i.icon.trademark:before {
- content: "\f25c";
-}
-
-/* Chess */
-
-i.icon.chess:before {
- content: "\f439";
-}
-
-i.icon.chess.bishop:before {
- content: "\f43a";
-}
-
-i.icon.chess.board:before {
- content: "\f43c";
-}
-
-i.icon.chess.king:before {
- content: "\f43f";
-}
-
-i.icon.chess.knight:before {
- content: "\f441";
-}
-
-i.icon.chess.pawn:before {
- content: "\f443";
-}
-
-i.icon.chess.queen:before {
- content: "\f445";
-}
-
-i.icon.chess.rock:before {
- content: "\f447";
-}
-
-i.icon.square.full:before {
- content: "\f45c";
-}
-
-/* Code */
-
-i.icon.barcode:before {
- content: "\f02a";
-}
-
-i.icon.bath:before {
- content: "\f2cd";
-}
-
-i.icon.bug:before {
- content: "\f188";
-}
-
-i.icon.code:before {
- content: "\f121";
-}
-
-i.icon.code.branch:before {
- content: "\f126";
-}
-
-i.icon.file.code.outline:before {
- content: "\f343";
-}
-
-i.icon.file.code:before {
- content: "\f1c9";
-}
-
-i.icon.filter:before {
- content: "\f0b0";
-}
-
-i.icon.fire.extinguisher:before {
- content: "\f134";
-}
-
-i.icon.keyboard.outline:before {
- content: "\f377";
-}
-
-i.icon.keyboard:before {
- content: "\f11c";
-}
-
-i.icon.microchip:before {
- content: "\f2db";
-}
-
-i.icon.qrcode:before {
- content: "\f029";
-}
-
-i.icon.shield.alternate:before {
- content: "\f3ed";
-}
-
-i.icon.terminal:before {
- content: "\f120";
-}
-
-i.icon.user.secret:before {
- content: "\f21b";
-}
-
-i.icon.window.close.outline:before {
- content: "\f642";
-}
-
-i.icon.window.close:before {
- content: "\f410";
-}
-
-i.icon.window.maximize.outline:before {
- content: "\f644";
-}
-
-i.icon.window.maximize:before {
- content: "\f2d0";
-}
-
-i.icon.window.minimize.outline:before {
- content: "\f643";
-}
-
-i.icon.window.minimize:before {
- content: "\f2d1";
-}
-
-i.icon.window.restore.outline:before {
- content: "\f416";
-}
-
-i.icon.window.restore:before {
- content: "\f2d2";
-}
-
-/* Communication */
-
-i.icon.at:before {
- content: "\f1fa";
-}
-
-i.icon.bell.outline:before {
- content: "\f307";
-}
-
-i.icon.bell.slash.outline:before {
- content: "\f306";
-}
-
-i.icon.bell.slash:before {
- content: "\f1f6";
-}
-
-i.icon.bell:before {
- content: "\f0f3";
-}
-
-i.icon.comment.alternate.outline:before {
- content: "\f604";
-}
-
-i.icon.comment.alternate:before {
- content: "\f27a";
-}
-
-i.icon.comment.outline:before {
- content: "\f329";
-}
-
-i.icon.comment:before {
- content: "\f075";
-}
-
-i.icon.comments.outline:before {
- content: "\f330";
-}
-
-i.icon.comments:before {
- content: "\f086";
-}
-
-i.icon.inbox:before {
- content: "\f01c";
-}
-
-i.icon.language:before {
- content: "\f1ab";
-}
-
-i.icon.mobile.alternate:before {
- content: "\f3cd";
-}
-
-i.icon.mobile:before {
- content: "\f10b";
-}
-
-i.icon.paper.plane.outline:before {
- content: "\f390";
-}
-
-i.icon.paper.plane:before {
- content: "\f1d8";
-}
-
-i.icon.wifi:before {
- content: "\f1eb";
-}
-
-/* Computers */
-
-i.icon.desktop:before {
- content: "\f108";
-}
-
-i.icon.hdd.outline:before {
- content: "\f611";
-}
-
-i.icon.hdd:before {
- content: "\f0a0";
-}
-
-i.icon.laptop:before {
- content: "\f109";
-}
-
-i.icon.plug:before {
- content: "\f1e6";
-}
-
-i.icon.power.off:before {
- content: "\f011";
-}
-
-i.icon.print:before {
- content: "\f02f";
-}
-
-i.icon.server:before {
- content: "\f233";
-}
-
-i.icon.tablet.alternate:before {
- content: "\f3fa";
-}
-
-i.icon.tablet:before {
- content: "\f10a";
-}
-
-i.icon.tv:before {
- content: "\f26c";
-}
-
-/* Currency */
-
-i.icon.dollar.sign:before {
- content: "\f155";
-}
-
-i.icon.euro.sign:before {
- content: "\f153";
-}
-
-i.icon.lira.sign:before {
- content: "\f195";
-}
-
-i.icon.money.bill.alternate.outline:before {
- content: "\f623";
-}
-
-i.icon.money.bill.alternate:before {
- content: "\f3d1";
-}
-
-i.icon.pound.sign:before {
- content: "\f154";
-}
-
-i.icon.ruble.sign:before {
- content: "\f158";
-}
-
-i.icon.rupee.sign:before {
- content: "\f156";
-}
-
-i.icon.shekel.sign:before {
- content: "\f20b";
-}
-
-i.icon.won.sign:before {
- content: "\f159";
-}
-
-i.icon.yen.sign:before {
- content: "\f157";
-}
-
-/* Date & Time */
-
-i.icon.calendar.check.outline:before {
- content: "\f311";
-}
-
-i.icon.calendar.check:before {
- content: "\f274";
-}
-
-i.icon.calendar.minus.outline:before {
- content: "\f312";
-}
-
-i.icon.calendar.minus:before {
- content: "\f272";
-}
-
-i.icon.calendar.plus.outline:before {
- content: "\f313";
-}
-
-i.icon.calendar.plus:before {
- content: "\f271";
-}
-
-i.icon.calendar.times.outline:before {
- content: "\f314";
-}
-
-i.icon.calendar.times:before {
- content: "\f273";
-}
-
-i.icon.clock.outline:before {
- content: "\f325";
-}
-
-i.icon.clock:before {
- content: "\f017";
-}
-
-i.icon.hourglass.end:before {
- content: "\f253";
-}
-
-i.icon.hourglass.half:before {
- content: "\f252";
-}
-
-i.icon.hourglass.outline:before {
- content: "\f614";
-}
-
-i.icon.hourglass.start:before {
- content: "\f251";
-}
-
-i.icon.hourglass:before {
- content: "\f254";
-}
-
-i.icon.stopwatch:before {
- content: "\f2f2";
-}
-
-/* Design */
-
-i.icon.adjust:before {
- content: "\f042";
-}
-
-i.icon.clone.outline:before {
- content: "\f326";
-}
-
-i.icon.clone:before {
- content: "\f24d";
-}
-
-i.icon.crop:before {
- content: "\f125";
-}
-
-i.icon.crosshairs:before {
- content: "\f05b";
-}
-
-i.icon.eye.dropper:before {
- content: "\f1fb";
-}
-
-i.icon.eye.slash.outline:before {
- content: "\f339";
-}
-
-i.icon.eye.slash:before {
- content: "\f070";
-}
-
-i.icon.eye:before {
- content: "\f06e";
-}
-
-i.icon.object.group.outline:before {
- content: "\f624";
-}
-
-i.icon.object.group:before {
- content: "\f247";
-}
-
-i.icon.object.ungroup.outline:before {
- content: "\f389";
-}
-
-i.icon.object.ungroup:before {
- content: "\f248";
-}
-
-i.icon.paint.brush:before {
- content: "\f1fc";
-}
-
-i.icon.tint:before {
- content: "\f043";
-}
-
-/* Editors */
-
-i.icon.align.center:before {
- content: "\f037";
-}
-
-i.icon.align.justify:before {
- content: "\f039";
-}
-
-i.icon.align.left:before {
- content: "\f036";
-}
-
-i.icon.align.right:before {
- content: "\f038";
-}
-
-i.icon.bold:before {
- content: "\f032";
-}
-
-i.icon.font:before {
- content: "\f031";
-}
-
-i.icon.heading:before {
- content: "\f1dc";
-}
-
-i.icon.i.cursor:before {
- content: "\f246";
-}
-
-i.icon.indent:before {
- content: "\f03c";
-}
-
-i.icon.italic:before {
- content: "\f033";
-}
-
-i.icon.link:before {
- content: "\f0c1";
-}
-
-i.icon.list.alternate.outline:before {
- content: "\f381";
-}
-
-i.icon.list.alternate:before {
- content: "\f022";
-}
-
-i.icon.ordered.list:before {
- content: "\f0cb";
-}
-
-i.icon.unordered.list:before {
- content: "\f0ca";
-}
-
-i.icon.list:before {
- content: "\f03a";
-}
-
-i.icon.outdent:before {
- content: "\f03b";
-}
-
-i.icon.paragraph:before {
- content: "\f1dd";
-}
-
-i.icon.quote.left:before {
- content: "\f10d";
-}
-
-i.icon.quote.right:before {
- content: "\f10e";
-}
-
-i.icon.strikethrough:before {
- content: "\f0cc";
-}
-
-i.icon.subscript:before {
- content: "\f12c";
-}
-
-i.icon.superscript:before {
- content: "\f12b";
-}
-
-i.icon.th.large:before {
- content: "\f009";
-}
-
-i.icon.th.list:before {
- content: "\f00b";
-}
-
-i.icon.th:before {
- content: "\f00a";
-}
-
-i.icon.trash.alternate.outline:before {
- content: "\f640";
-}
-
-i.icon.trash.alternate:before {
- content: "\f2ed";
-}
-
-i.icon.trash:before {
- content: "\f1f8";
-}
-
-i.icon.underline:before {
- content: "\f0cd";
-}
-
-i.icon.unlink:before {
- content: "\f127";
-}
-
-/* Files */
-
-i.icon.file.archive.outline:before {
- content: "\f341";
-}
-
-i.icon.file.archive:before {
- content: "\f1c6";
-}
-
-i.icon.file.excel.outline:before {
- content: "\f344";
-}
-
-i.icon.file.excel:before {
- content: "\f1c3";
-}
-
-i.icon.file.image.outline:before {
- content: "\f617";
-}
-
-i.icon.file.image:before {
- content: "\f1c5";
-}
-
-i.icon.file.pdf.outline:before {
- content: "\f346";
-}
-
-i.icon.file.pdf:before {
- content: "\f1c1";
-}
-
-i.icon.file.powerpoint.outline:before {
- content: "\f347";
-}
-
-i.icon.file.powerpoint:before {
- content: "\f1c4";
-}
-
-i.icon.file.word.outline:before {
- content: "\f349";
-}
-
-i.icon.file.word:before {
- content: "\f1c2";
-}
-
-/* Genders */
-
-i.icon.genderless:before {
- content: "\f22d";
-}
-
-i.icon.mars.double:before {
- content: "\f227";
-}
-
-i.icon.mars.stroke.horizontal:before {
- content: "\f22b";
-}
-
-i.icon.mars.stroke.vertical:before {
- content: "\f22a";
-}
-
-i.icon.mars.stroke:before {
- content: "\f229";
-}
-
-i.icon.mars:before {
- content: "\f222";
-}
-
-i.icon.mercury:before {
- content: "\f223";
-}
-
-i.icon.neuter:before {
- content: "\f22c";
-}
-
-i.icon.transgender.alternate:before {
- content: "\f225";
-}
-
-i.icon.transgender:before {
- content: "\f224";
-}
-
-i.icon.venus.double:before {
- content: "\f226";
-}
-
-i.icon.venus.mars:before {
- content: "\f228";
-}
-
-i.icon.venus:before {
- content: "\f221";
-}
-
-/* Hands */
-
-i.icon.hand.lizard.outline:before {
- content: "\f357";
-}
-
-i.icon.hand.lizard:before {
- content: "\f258";
-}
-
-i.icon.hand.paper.outline:before {
- content: "\f358";
-}
-
-i.icon.hand.paper:before {
- content: "\f256";
-}
-
-i.icon.hand.peace.outline:before {
- content: "\f359";
-}
-
-i.icon.hand.peace:before {
- content: "\f25b";
-}
-
-i.icon.hand.rock.outline:before {
- content: "\f365";
-}
-
-i.icon.hand.rock:before {
- content: "\f255";
-}
-
-i.icon.hand.scissors.outline:before {
- content: "\f366";
-}
-
-i.icon.hand.scissors:before {
- content: "\f257";
-}
-
-i.icon.hand.spock.outline:before {
- content: "\f367";
-}
-
-i.icon.hand.spock:before {
- content: "\f259";
-}
-
-i.icon.handshake.outline:before {
- content: "\f610";
-}
-
-i.icon.handshake:before {
- content: "\f2b5";
-}
-
-i.icon.thumbs.down.outline:before {
- content: "\f406";
-}
-
-i.icon.thumbs.down:before {
- content: "\f165";
-}
-
-i.icon.thumbs.up.outline:before {
- content: "\f638";
-}
-
-i.icon.thumbs.up:before {
- content: "\f164";
-}
-
-/* Health */
-
-i.icon.ambulance:before {
- content: "\f0f9";
-}
-
-i.icon.h.square:before {
- content: "\f0fd";
-}
-
-i.icon.heart.outline:before {
- content: "\f612";
-}
-
-i.icon.heart:before {
- content: "\f004";
-}
-
-i.icon.heartbeat:before {
- content: "\f21e";
-}
-
-i.icon.hospital.outline:before {
- content: "\f613";
-}
-
-i.icon.hospital:before {
- content: "\f0f8";
-}
-
-i.icon.medkit:before {
- content: "\f0fa";
-}
-
-i.icon.plus.square.outline:before {
- content: "\f627";
-}
-
-i.icon.plus.square:before {
- content: "\f0fe";
-}
-
-i.icon.stethoscope:before {
- content: "\f0f1";
-}
-
-i.icon.user.doctor:before {
- content: "\f0f0";
-}
-
-/* Images */
-
-i.icon.bolt:before {
- content: "\f0e7";
-}
-
-i.icon.camera.retro:before {
- content: "\f083";
-}
-
-i.icon.camera:before {
- content: "\f030";
-}
-
-i.icon.id.badge.outline:before {
- content: "\f615";
-}
-
-i.icon.id.badge:before {
- content: "\f2c1";
-}
-
-i.icon.id.card.outline:before {
- content: "\f616";
-}
-
-i.icon.id.card:before {
- content: "\f2c2";
-}
-
-i.icon.image.outline:before {
- content: "\f617";
-}
-
-i.icon.image:before {
- content: "\f03e";
-}
-
-i.icon.images.outline:before {
- content: "\f376";
-}
-
-i.icon.images:before {
- content: "\f302";
-}
-
-i.icon.sliders.horizontal:before {
- content: "\f1de";
-}
-
-/* Interfaces */
-
-i.icon.ban:before {
- content: "\f05e";
-}
-
-i.icon.bars:before {
- content: "\f0c9";
-}
-
-i.icon.beer:before {
- content: "\f0fc";
-}
-
-i.icon.bullseye:before {
- content: "\f140";
-}
-
-i.icon.check.circle.outline:before {
- content: "\f321";
-}
-
-i.icon.check.circle:before {
- content: "\f058";
-}
-
-i.icon.check.square.outline:before {
- content: "\f322";
-}
-
-i.icon.check.square:before {
- content: "\f14a";
-}
-
-i.icon.check:before {
- content: "\f00c";
-}
-
-i.icon.cloud:before {
- content: "\f0c2";
-}
-
-i.icon.cog:before {
- content: "\f013";
-}
-
-i.icon.cogs:before {
- content: "\f085";
-}
-
-i.icon.database:before {
- content: "\f1c0";
-}
-
-i.icon.dot.circle.outline:before {
- content: "\f335";
-}
-
-i.icon.dot.circle:before {
- content: "\f192";
-}
-
-i.icon.ellipsis.horizontal:before {
- content: "\f141";
-}
-
-i.icon.ellipsis.vertical:before {
- content: "\f142";
-}
-
-i.icon.exclamation.circle:before {
- content: "\f06a";
-}
-
-i.icon.exclamation.triangle:before {
- content: "\f071";
-}
-
-i.icon.exclamation:before {
- content: "\f12a";
-}
-
-i.icon.flag.checkered:before {
- content: "\f11e";
-}
-
-i.icon.flag.outline:before {
- content: "\f351";
-}
-
-i.icon.flag:before {
- content: "\f024";
-}
-
-i.icon.frown.outline:before {
- content: "\f354";
-}
-
-i.icon.frown:before {
- content: "\f119";
-}
-
-i.icon.hashtag:before {
- content: "\f292";
-}
-
-i.icon.home:before {
- content: "\f015";
-}
-
-i.icon.info.circle:before {
- content: "\f05a";
-}
-
-i.icon.info:before {
- content: "\f129";
-}
-
-i.icon.magic:before {
- content: "\f0d0";
-}
-
-i.icon.meh.outline:before {
- content: "\f621";
-}
-
-i.icon.meh:before {
- content: "\f11a";
-}
-
-i.icon.minus.circle:before {
- content: "\f056";
-}
-
-i.icon.minus.square.outline:before {
- content: "\f622";
-}
-
-i.icon.minus.square:before {
- content: "\f146";
-}
-
-i.icon.minus:before {
- content: "\f068";
-}
-
-i.icon.plus.circle:before {
- content: "\f055";
-}
-
-i.icon.plus:before {
- content: "\f067";
-}
-
-i.icon.question:before {
- content: "\f128";
-}
-
-i.icon.search.minus:before {
- content: "\f010";
-}
-
-i.icon.search.plus:before {
- content: "\f00e";
-}
-
-i.icon.search:before {
- content: "\f002";
-}
-
-i.icon.share.alternate.square:before {
- content: "\f1e1";
-}
-
-i.icon.share.alternate:before {
- content: "\f1e0";
-}
-
-i.icon.shield:before {
- content: "\f3ed";
-}
-
-i.icon.signal:before {
- content: "\f012";
-}
-
-i.icon.smile.outline:before {
- content: "\f398";
-}
-
-i.icon.smile:before {
- content: "\f118";
-}
-
-i.icon.star.half.outline:before {
- content: "\f401";
-}
-
-i.icon.star.half:before {
- content: "\f089";
-}
-
-i.icon.star.outline:before {
- content: "\f634";
-}
-
-i.icon.star:before {
- content: "\f005";
-}
-
-i.icon.times.circle.outline:before {
- content: "\f639";
-}
-
-i.icon.times.circle:before {
- content: "\f057";
-}
-
-i.icon.times:before {
- content: "\f00d";
-}
-
-i.icon.toggle.off:before {
- content: "\f204";
-}
-
-i.icon.toggle.on:before {
- content: "\f205";
-}
-
-i.icon.trophy:before {
- content: "\f091";
-}
-
-i.icon.user.circle.outline:before {
- content: "\f606";
-}
-
-i.icon.user.circle:before {
- content: "\f2bd";
-}
-
-i.icon.user.outline:before {
- content: "\f641";
-}
-
-i.icon.user:before {
- content: "\f007";
-}
-
-/* Maps */
-
-i.icon.anchor:before {
- content: "\f13d";
-}
-
-i.icon.bed:before {
- content: "\f236";
-}
-
-i.icon.bicycle:before {
- content: "\f206";
-}
-
-i.icon.binoculars:before {
- content: "\f1e5";
-}
-
-i.icon.bomb:before {
- content: "\f1e2";
-}
-
-i.icon.bookmark.outline:before {
- content: "\f308";
-}
-
-i.icon.bookmark:before {
- content: "\f02e";
-}
-
-i.icon.car:before {
- content: "\f1b9";
-}
-
-i.icon.fighter.jet:before {
- content: "\f0fb";
-}
-
-i.icon.fire:before {
- content: "\f06d";
-}
-
-i.icon.flask:before {
- content: "\f0c3";
-}
-
-i.icon.gamepad:before {
- content: "\f11b";
-}
-
-i.icon.gavel:before {
- content: "\f0e3";
-}
-
-i.icon.gift:before {
- content: "\f06b";
-}
-
-i.icon.glass.martini:before {
- content: "\f000";
-}
-
-i.icon.graduation.cap:before {
- content: "\f19d";
-}
-
-i.icon.key:before {
- content: "\f084";
-}
-
-i.icon.leaf:before {
- content: "\f06c";
-}
-
-i.icon.lemon.outline:before {
- content: "\f618";
-}
-
-i.icon.lemon:before {
- content: "\f094";
-}
-
-i.icon.life.ring.outline:before {
- content: "\f619";
-}
-
-i.icon.life.ring:before {
- content: "\f1cd";
-}
-
-i.icon.lightbulb.outline:before {
- content: "\f620";
-}
-
-i.icon.lightbulb:before {
- content: "\f0eb";
-}
-
-i.icon.magnet:before {
- content: "\f076";
-}
-
-i.icon.male:before {
- content: "\f183";
-}
-
-i.icon.map.marker.alternate:before {
- content: "\f3c5";
-}
-
-i.icon.map.marker:before {
- content: "\f041";
-}
-
-i.icon.map.outline:before {
- content: "\f382";
-}
-
-i.icon.map.pin:before {
- content: "\f276";
-}
-
-i.icon.map.signs:before {
- content: "\f277";
-}
-
-i.icon.map:before {
- content: "\f279";
-}
-
-i.icon.motorcycle:before {
- content: "\f21c";
-}
-
-i.icon.newspaper.outline:before {
- content: "\f387";
-}
-
-i.icon.newspaper:before {
- content: "\f1ea";
-}
-
-i.icon.paw:before {
- content: "\f1b0";
-}
-
-i.icon.plane:before {
- content: "\f072";
-}
-
-i.icon.road:before {
- content: "\f018";
-}
-
-i.icon.rocket:before {
- content: "\f135";
-}
-
-i.icon.ship:before {
- content: "\f21a";
-}
-
-i.icon.shopping.bag:before {
- content: "\f290";
-}
-
-i.icon.shopping.basket:before {
- content: "\f291";
-}
-
-i.icon.shopping.cart:before {
- content: "\f07a";
-}
-
-i.icon.shower:before {
- content: "\f2cc";
-}
-
-i.icon.street.view:before {
- content: "\f21d";
-}
-
-i.icon.subway:before {
- content: "\f239";
-}
-
-i.icon.taxi:before {
- content: "\f1ba";
-}
-
-i.icon.ticket.alternate:before {
- content: "\f3ff";
-}
-
-i.icon.train:before {
- content: "\f238";
-}
-
-i.icon.tree:before {
- content: "\f1bb";
-}
-
-i.icon.truck:before {
- content: "\f0d1";
-}
-
-i.icon.umbrella:before {
- content: "\f0e9";
-}
-
-i.icon.university:before {
- content: "\f19c";
-}
-
-i.icon.utensil.spoon:before {
- content: "\f2e5";
-}
-
-i.icon.utensils:before {
- content: "\f2e7";
-}
-
-i.icon.wrench:before {
- content: "\f0ad";
-}
-
-/* Objects */
-
-i.icon.bus:before {
- content: "\f207";
-}
-
-i.icon.cube:before {
- content: "\f1b2";
-}
-
-i.icon.cubes:before {
- content: "\f1b3";
-}
-
-i.icon.futbol.outline:before {
- content: "\f633";
-}
-
-i.icon.futbol:before {
- content: "\f1e3";
-}
-
-i.icon.gem.outline:before {
- content: "\f356";
-}
-
-i.icon.gem:before {
- content: "\f3a5";
-}
-
-i.icon.lock.open:before {
- content: "\f3c1";
-}
-
-i.icon.lock:before {
- content: "\f023";
-}
-
-i.icon.moon.outline:before {
- content: "\f386";
-}
-
-i.icon.moon:before {
- content: "\f186";
-}
-
-i.icon.puzzle:before {
- content: "\f12e";
-}
-
-i.icon.snowflake.outline:before {
- content: "\f632";
-}
-
-i.icon.snowflake:before {
- content: "\f2dc";
-}
-
-i.icon.space.shuttle:before {
- content: "\f197";
-}
-
-i.icon.sun.outline:before {
- content: "\f637";
-}
-
-i.icon.sun:before {
- content: "\f185";
-}
-
-i.icon.tachometer.alternate:before {
- content: "\f3fd";
-}
-
-i.icon.unlock.alternate:before {
- content: "\f13e";
-}
-
-i.icon.unlock:before {
- content: "\f09c";
-}
-
-/* Payments & Shopping */
-
-i.icon.cart.plus:before {
- content: "\f217";
-}
-
-i.icon.credit.card.outline:before {
- content: "\f334";
-}
-
-i.icon.credit.card:before {
- content: "\f09d";
-}
-
-/* Shapes */
-
-i.icon.square.outline:before {
- content: "\f400";
-}
-
-i.icon.square:before {
- content: "\f0c8";
-}
-
-/* Spinners */
-
-i.icon.asterisk:before {
- content: "\f069";
-}
-
-i.icon.circle.notch:before {
- content: "\f1ce";
-}
-
-i.icon.spinner:before {
- content: "\f110";
-}
-
-/* Sports */
-
-i.icon.baseball.ball:before {
- content: "\f433";
-}
-
-i.icon.basketball.ball:before {
- content: "\f434";
-}
-
-i.icon.bowling.ball:before {
- content: "\f436";
-}
-
-i.icon.football.ball:before {
- content: "\f44e";
-}
-
-i.icon.golf.ball:before {
- content: "\f450";
-}
-
-i.icon.hockey.puck:before {
- content: "\f453";
-}
-
-i.icon.quidditch:before {
- content: "\f458";
-}
-
-i.icon.table.tennis:before {
- content: "\f45d";
-}
-
-i.icon.volleyball.ball:before {
- content: "\f45f";
-}
-
-/* Status */
-
-i.icon.battery.empty:before {
- content: "\f244";
-}
-
-i.icon.battery.full:before {
- content: "\f240";
-}
-
-i.icon.battery.half:before {
- content: "\f242";
-}
-
-i.icon.battery.quarter:before {
- content: "\f243";
-}
-
-i.icon.battery.three.quarters:before {
- content: "\f241";
-}
-
-i.icon.thermometer.empty:before {
- content: "\f2cb";
-}
-
-i.icon.thermometer.full:before {
- content: "\f2c7";
-}
-
-i.icon.thermometer.half:before {
- content: "\f2c9";
-}
-
-i.icon.thermometer.quarter:before {
- content: "\f2ca";
-}
-
-i.icon.thermometer.three.quarters:before {
- content: "\f2c8";
-}
-
-/* Users & People */
-
-i.icon.child:before {
- content: "\f1ae";
-}
-
-i.icon.female:before {
- content: "\f182";
-}
-
-i.icon.user.circle.outline:before {
- content: "\f410";
-}
-
-i.icon.user.plus:before {
- content: "\f234";
-}
-
-i.icon.user.times:before {
- content: "\f235";
-}
-
-i.icon.users:before {
- content: "\f0c0";
-}
-
-/* Brands */
-
-i.icon.\35 00px:before {
- content: "\f26e";
-}
-
-i.icon.accessible.icon:before {
- content: "\f368";
-}
-
-i.icon.accusoft:before {
- content: "\f369";
-}
-
-i.icon.adn:before {
- content: "\f170";
-}
-
-i.icon.adversal:before {
- content: "\f36a";
-}
-
-i.icon.affiliatetheme:before {
- content: "\f36b";
-}
-
-i.icon.algolia:before {
- content: "\f36c";
-}
-
-i.icon.amazon.pay:before {
- content: "\f42c";
-}
-
-i.icon.amazon:before {
- content: "\f270";
-}
-
-i.icon.amilia:before {
- content: "\f36d";
-}
-
-i.icon.android:before {
- content: "\f17b";
-}
-
-i.icon.angellist:before {
- content: "\f209";
-}
-
-i.icon.angrycreative:before {
- content: "\f36e";
-}
-
-i.icon.angular:before {
- content: "\f420";
-}
-
-i.icon.app.store.ios:before {
- content: "\f370";
-}
-
-i.icon.app.store:before {
- content: "\f36f";
-}
-
-i.icon.apper:before {
- content: "\f371";
-}
-
-i.icon.apple.pay:before {
- content: "\f609";
-}
-
-i.icon.apple:before {
- content: "\f179";
-}
-
-i.icon.asymmetrik:before {
- content: "\f372";
-}
-
-i.icon.audible:before {
- content: "\f373";
-}
-
-i.icon.autoprefixer:before {
- content: "\f41c";
-}
-
-i.icon.avianex:before {
- content: "\f374";
-}
-
-i.icon.aviato:before {
- content: "\f421";
-}
-
-i.icon.aws:before {
- content: "\f375";
-}
-
-i.icon.bandcamp:before {
- content: "\f2d5";
-}
-
-i.icon.behance.square:before {
- content: "\f1b5";
-}
-
-i.icon.behance:before {
- content: "\f1b4";
-}
-
-i.icon.bimobject:before {
- content: "\f378";
-}
-
-i.icon.bitbucket:before {
- content: "\f171";
-}
-
-i.icon.bitcoin:before {
- content: "\f379";
-}
-
-i.icon.bity:before {
- content: "\f37a";
-}
-
-i.icon.black.tie:before {
- content: "\f27e";
-}
-
-i.icon.blackberry:before {
- content: "\f37b";
-}
-
-i.icon.blogger.b:before {
- content: "\f37d";
-}
-
-i.icon.blogger:before {
- content: "\f37c";
-}
-
-i.icon.bluetooth.b:before {
- content: "\f294";
-}
-
-i.icon.bluetooth:before {
- content: "\f293";
-}
-
-i.icon.btc:before {
- content: "\f15a";
-}
-
-i.icon.buromobelexperte:before {
- content: "\f37f";
-}
-
-i.icon.buysellads:before {
- content: "\f20d";
-}
-
-i.icon.credit.card.amazon.pay:before {
- content: "\f42d";
-}
-
-i.icon.credit.card.american.express:before {
- content: "\f1f3";
-}
-
-i.icon.credit.card.apple.pay:before {
- content: "\f607";
-}
-
-i.icon.credit.card.diners.club:before {
- content: "\f24c";
-}
-
-i.icon.credit.card.discover:before {
- content: "\f1f2";
-}
-
-i.icon.credit.card.jcb:before {
- content: "\f24b";
-}
-
-i.icon.credit.card.mastercard:before {
- content: "\f1f1";
-}
-
-i.icon.credit.card.paypal:before {
- content: "\f1f4";
-}
-
-i.icon.credit.card.stripe:before {
- content: "\f1f5";
-}
-
-i.icon.credit.card.visa:before {
- content: "\f1f0";
-}
-
-i.icon.centercode:before {
- content: "\f380";
-}
-
-i.icon.chrome:before {
- content: "\f268";
-}
-
-i.icon.cloudscale:before {
- content: "\f383";
-}
-
-i.icon.cloudsmith:before {
- content: "\f384";
-}
-
-i.icon.cloudversify:before {
- content: "\f385";
-}
-
-i.icon.codepen:before {
- content: "\f1cb";
-}
-
-i.icon.codiepie:before {
- content: "\f284";
-}
-
-i.icon.connectdevelop:before {
- content: "\f20e";
-}
-
-i.icon.contao:before {
- content: "\f26d";
-}
-
-i.icon.cpanel:before {
- content: "\f388";
-}
-
-i.icon.creative.commons:before {
- content: "\f25e";
-}
-
-i.icon.css3.alternate:before {
- content: "\f38b";
-}
-
-i.icon.css3:before {
- content: "\f13c";
-}
-
-i.icon.cuttlefish:before {
- content: "\f38c";
-}
-
-i.icon.d.and.d:before {
- content: "\f38d";
-}
-
-i.icon.dashcube:before {
- content: "\f210";
-}
-
-i.icon.delicious:before {
- content: "\f1a5";
-}
-
-i.icon.deploydog:before {
- content: "\f38e";
-}
-
-i.icon.deskpro:before {
- content: "\f38f";
-}
-
-i.icon.deviantart:before {
- content: "\f1bd";
-}
-
-i.icon.digg:before {
- content: "\f1a6";
-}
-
-i.icon.digital.ocean:before {
- content: "\f391";
-}
-
-i.icon.discord:before {
- content: "\f392";
-}
-
-i.icon.discourse:before {
- content: "\f393";
-}
-
-i.icon.dochub:before {
- content: "\f394";
-}
-
-i.icon.docker:before {
- content: "\f395";
-}
-
-i.icon.draft2digital:before {
- content: "\f396";
-}
-
-i.icon.dribbble.square:before {
- content: "\f397";
-}
-
-i.icon.dribbble:before {
- content: "\f17d";
-}
-
-i.icon.dropbox:before {
- content: "\f16b";
-}
-
-i.icon.drupal:before {
- content: "\f1a9";
-}
-
-i.icon.dyalog:before {
- content: "\f399";
-}
-
-i.icon.earlybirds:before {
- content: "\f39a";
-}
-
-i.icon.edge:before {
- content: "\f282";
-}
-
-i.icon.elementor:before {
- content: "\f430";
-}
-
-i.icon.ember:before {
- content: "\f423";
-}
-
-i.icon.empire:before {
- content: "\f1d1";
-}
-
-i.icon.envira:before {
- content: "\f299";
-}
-
-i.icon.erlang:before {
- content: "\f39d";
-}
-
-i.icon.ethereum:before {
- content: "\f42e";
-}
-
-i.icon.etsy:before {
- content: "\f2d7";
-}
-
-i.icon.expeditedssl:before {
- content: "\f23e";
-}
-
-i.icon.facebook.f:before {
- content: "\f39e";
-}
-
-i.icon.facebook.messenger:before {
- content: "\f39f";
-}
-
-i.icon.facebook.square:before {
- content: "\f082";
-}
-
-i.icon.facebook:before {
- content: "\f09a";
-}
-
-i.icon.firefox:before {
- content: "\f269";
-}
-
-i.icon.first.order:before {
- content: "\f2b0";
-}
-
-i.icon.firstdraft:before {
- content: "\f3a1";
-}
-
-i.icon.flickr:before {
- content: "\f16e";
-}
-
-i.icon.flipboard:before {
- content: "\f44d";
-}
-
-i.icon.fly:before {
- content: "\f417";
-}
-
-i.icon.font.awesome.alternate:before {
- content: "\f35c";
-}
-
-i.icon.font.awesome.flag:before {
- content: "\f425";
-}
-
-i.icon.font.awesome:before {
- content: "\f2b4";
-}
-
-i.icon.fonticons.fi:before {
- content: "\f3a2";
-}
-
-i.icon.fonticons:before {
- content: "\f280";
-}
-
-i.icon.fort.awesome.alternate:before {
- content: "\f3a3";
-}
-
-i.icon.fort.awesome:before {
- content: "\f286";
-}
-
-i.icon.forumbee:before {
- content: "\f211";
-}
-
-i.icon.foursquare:before {
- content: "\f180";
-}
-
-i.icon.free.code.camp:before {
- content: "\f2c5";
-}
-
-i.icon.freebsd:before {
- content: "\f3a4";
-}
-
-i.icon.get.pocket:before {
- content: "\f265";
-}
-
-i.icon.gg.circle:before {
- content: "\f261";
-}
-
-i.icon.gg:before {
- content: "\f260";
-}
-
-i.icon.git.square:before {
- content: "\f1d2";
-}
-
-i.icon.git:before {
- content: "\f1d3";
-}
-
-i.icon.github.alternate:before {
- content: "\f113";
-}
-
-i.icon.github.square:before {
- content: "\f092";
-}
-
-i.icon.github:before {
- content: "\f09b";
-}
-
-i.icon.gitkraken:before {
- content: "\f3a6";
-}
-
-i.icon.gitlab:before {
- content: "\f296";
-}
-
-i.icon.gitter:before {
- content: "\f426";
-}
-
-i.icon.glide.g:before {
- content: "\f2a6";
-}
-
-i.icon.glide:before {
- content: "\f2a5";
-}
-
-i.icon.gofore:before {
- content: "\f3a7";
-}
-
-i.icon.goodreads.g:before {
- content: "\f3a9";
-}
-
-i.icon.goodreads:before {
- content: "\f3a8";
-}
-
-i.icon.google.drive:before {
- content: "\f3aa";
-}
-
-i.icon.google.play:before {
- content: "\f3ab";
-}
-
-i.icon.google.plus.g:before {
- content: "\f0d5";
-}
-
-i.icon.google.plus.square:before {
- content: "\f0d4";
-}
-
-i.icon.google.plus:before {
- content: "\f2b3";
-}
-
-i.icon.google.wallet:before {
- content: "\f1ee";
-}
-
-i.icon.google:before {
- content: "\f1a0";
-}
-
-i.icon.gratipay:before {
- content: "\f184";
-}
-
-i.icon.grav:before {
- content: "\f2d6";
-}
-
-i.icon.gripfire:before {
- content: "\f3ac";
-}
-
-i.icon.grunt:before {
- content: "\f3ad";
-}
-
-i.icon.gulp:before {
- content: "\f3ae";
-}
-
-i.icon.hacker.news.square:before {
- content: "\f3af";
-}
-
-i.icon.hacker.news:before {
- content: "\f1d4";
-}
-
-i.icon.hips:before {
- content: "\f452";
-}
-
-i.icon.hire.a.helper:before {
- content: "\f3b0";
-}
-
-i.icon.hooli:before {
- content: "\f427";
-}
-
-i.icon.hotjar:before {
- content: "\f3b1";
-}
-
-i.icon.houzz:before {
- content: "\f27c";
-}
-
-i.icon.html5:before {
- content: "\f13b";
-}
-
-i.icon.hubspot:before {
- content: "\f3b2";
-}
-
-i.icon.imdb:before {
- content: "\f2d8";
-}
-
-i.icon.instagram:before {
- content: "\f16d";
-}
-
-i.icon.internet.explorer:before {
- content: "\f26b";
-}
-
-i.icon.ioxhost:before {
- content: "\f208";
-}
-
-i.icon.itunes.note:before {
- content: "\f3b5";
-}
-
-i.icon.itunes:before {
- content: "\f3b4";
-}
-
-i.icon.jenkins:before {
- content: "\f3b6";
-}
-
-i.icon.joget:before {
- content: "\f3b7";
-}
-
-i.icon.joomla:before {
- content: "\f1aa";
-}
-
-i.icon.js.square:before {
- content: "\f3b9";
-}
-
-i.icon.js:before {
- content: "\f3b8";
-}
-
-i.icon.jsfiddle:before {
- content: "\f1cc";
-}
-
-i.icon.keycdn:before {
- content: "\f3ba";
-}
-
-i.icon.kickstarter.k:before {
- content: "\f3bc";
-}
-
-i.icon.kickstarter:before {
- content: "\f3bb";
-}
-
-i.icon.korvue:before {
- content: "\f42f";
-}
-
-i.icon.laravel:before {
- content: "\f3bd";
-}
-
-i.icon.lastfm.square:before {
- content: "\f203";
-}
-
-i.icon.lastfm:before {
- content: "\f202";
-}
-
-i.icon.leanpub:before {
- content: "\f212";
-}
-
-i.icon.less:before {
- content: "\f41d";
-}
-
-i.icon.line:before {
- content: "\f3c0";
-}
-
-i.icon.linkedin.in:before {
- content: "\f0e1";
-}
-
-i.icon.linkedin:before {
- content: "\f08c";
-}
-
-i.icon.linode:before {
- content: "\f2b8";
-}
-
-i.icon.linux:before {
- content: "\f17c";
-}
-
-i.icon.lyft:before {
- content: "\f3c3";
-}
-
-i.icon.magento:before {
- content: "\f3c4";
-}
-
-i.icon.maxcdn:before {
- content: "\f136";
-}
-
-i.icon.medapps:before {
- content: "\f3c6";
-}
-
-i.icon.medium.m:before {
- content: "\f3c7";
-}
-
-i.icon.medium:before {
- content: "\f23a";
-}
-
-i.icon.medrt:before {
- content: "\f3c8";
-}
-
-i.icon.meetup:before {
- content: "\f2e0";
-}
-
-i.icon.microsoft:before {
- content: "\f3ca";
-}
-
-i.icon.mix:before {
- content: "\f3cb";
-}
-
-i.icon.mixcloud:before {
- content: "\f289";
-}
-
-i.icon.mizuni:before {
- content: "\f3cc";
-}
-
-i.icon.modx:before {
- content: "\f285";
-}
-
-i.icon.monero:before {
- content: "\f3d0";
-}
-
-i.icon.napster:before {
- content: "\f3d2";
-}
-
-i.icon.nintendo.switch:before {
- content: "\f418";
-}
-
-i.icon.node.js:before {
- content: "\f3d3";
-}
-
-i.icon.node:before {
- content: "\f419";
-}
-
-i.icon.npm:before {
- content: "\f3d4";
-}
-
-i.icon.ns8:before {
- content: "\f3d5";
-}
-
-i.icon.nutritionix:before {
- content: "\f3d6";
-}
-
-i.icon.odnoklassniki.square:before {
- content: "\f264";
-}
-
-i.icon.odnoklassniki:before {
- content: "\f263";
-}
-
-i.icon.opencart:before {
- content: "\f23d";
-}
-
-i.icon.openid:before {
- content: "\f19b";
-}
-
-i.icon.opera:before {
- content: "\f26a";
-}
-
-i.icon.optin.monster:before {
- content: "\f23c";
-}
-
-i.icon.osi:before {
- content: "\f41a";
-}
-
-i.icon.page4:before {
- content: "\f3d7";
-}
-
-i.icon.pagelines:before {
- content: "\f18c";
-}
-
-i.icon.palfed:before {
- content: "\f3d8";
-}
-
-i.icon.patreon:before {
- content: "\f3d9";
-}
-
-i.icon.paypal:before {
- content: "\f1ed";
-}
-
-i.icon.periscope:before {
- content: "\f3da";
-}
-
-i.icon.phabricator:before {
- content: "\f3db";
-}
-
-i.icon.phoenix.framework:before {
- content: "\f3dc";
-}
-
-i.icon.php:before {
- content: "\f457";
-}
-
-i.icon.pied.piper.alternate:before {
- content: "\f1a8";
-}
-
-i.icon.pied.piper.pp:before {
- content: "\f1a7";
-}
-
-i.icon.pied.piper:before {
- content: "\f2ae";
-}
-
-i.icon.pinterest.p:before {
- content: "\f231";
-}
-
-i.icon.pinterest.square:before {
- content: "\f0d3";
-}
-
-i.icon.pinterest:before {
- content: "\f0d2";
-}
-
-i.icon.playstation:before {
- content: "\f3df";
-}
-
-i.icon.product.hunt:before {
- content: "\f288";
-}
-
-i.icon.pushed:before {
- content: "\f3e1";
-}
-
-i.icon.python:before {
- content: "\f3e2";
-}
-
-i.icon.qq:before {
- content: "\f1d6";
-}
-
-i.icon.quinscape:before {
- content: "\f459";
-}
-
-i.icon.quora:before {
- content: "\f2c4";
-}
-
-i.icon.ravelry:before {
- content: "\f2d9";
-}
-
-i.icon.react:before {
- content: "\f41b";
-}
-
-i.icon.rebel:before {
- content: "\f1d0";
-}
-
-i.icon.redriver:before {
- content: "\f3e3";
-}
-
-i.icon.reddit.alien:before {
- content: "\f281";
-}
-
-i.icon.reddit.square:before {
- content: "\f1a2";
-}
-
-i.icon.reddit:before {
- content: "\f1a1";
-}
-
-i.icon.rendact:before {
- content: "\f3e4";
-}
-
-i.icon.renren:before {
- content: "\f18b";
-}
-
-i.icon.replyd:before {
- content: "\f3e6";
-}
-
-i.icon.resolving:before {
- content: "\f3e7";
-}
-
-i.icon.rocketchat:before {
- content: "\f3e8";
-}
-
-i.icon.rockrms:before {
- content: "\f3e9";
-}
-
-i.icon.safari:before {
- content: "\f267";
-}
-
-i.icon.sass:before {
- content: "\f41e";
-}
-
-i.icon.schlix:before {
- content: "\f3ea";
-}
-
-i.icon.scribd:before {
- content: "\f28a";
-}
-
-i.icon.searchengin:before {
- content: "\f3eb";
-}
-
-i.icon.sellcast:before {
- content: "\f2da";
-}
-
-i.icon.sellsy:before {
- content: "\f213";
-}
-
-i.icon.servicestack:before {
- content: "\f3ec";
-}
-
-i.icon.shirtsinbulk:before {
- content: "\f214";
-}
-
-i.icon.simplybuilt:before {
- content: "\f215";
-}
-
-i.icon.sistrix:before {
- content: "\f3ee";
-}
-
-i.icon.skyatlas:before {
- content: "\f216";
-}
-
-i.icon.skype:before {
- content: "\f17e";
-}
-
-i.icon.slack.hash:before {
- content: "\f3ef";
-}
-
-i.icon.slack:before {
- content: "\f198";
-}
-
-i.icon.slideshare:before {
- content: "\f1e7";
-}
-
-i.icon.snapchat.ghost:before {
- content: "\f2ac";
-}
-
-i.icon.snapchat.square:before {
- content: "\f2ad";
-}
-
-i.icon.snapchat:before {
- content: "\f2ab";
-}
-
-i.icon.soundcloud:before {
- content: "\f1be";
-}
-
-i.icon.speakap:before {
- content: "\f3f3";
-}
-
-i.icon.spotify:before {
- content: "\f1bc";
-}
-
-i.icon.stack.exchange:before {
- content: "\f18d";
-}
-
-i.icon.stack.overflow:before {
- content: "\f16c";
-}
-
-i.icon.staylinked:before {
- content: "\f3f5";
-}
-
-i.icon.steam.square:before {
- content: "\f1b7";
-}
-
-i.icon.steam.symbol:before {
- content: "\f3f6";
-}
-
-i.icon.steam:before {
- content: "\f1b6";
-}
-
-i.icon.sticker.mule:before {
- content: "\f3f7";
-}
-
-i.icon.strava:before {
- content: "\f428";
-}
-
-i.icon.stripe.s:before {
- content: "\f42a";
-}
-
-i.icon.stripe:before {
- content: "\f429";
-}
-
-i.icon.studiovinari:before {
- content: "\f3f8";
-}
-
-i.icon.stumbleupon.circle:before {
- content: "\f1a3";
-}
-
-i.icon.stumbleupon:before {
- content: "\f1a4";
-}
-
-i.icon.superpowers:before {
- content: "\f2dd";
-}
-
-i.icon.supple:before {
- content: "\f3f9";
-}
-
-i.icon.telegram.plane:before {
- content: "\f3fe";
-}
-
-i.icon.telegram:before {
- content: "\f2c6";
-}
-
-i.icon.tencent.weibo:before {
- content: "\f1d5";
-}
-
-i.icon.themeisle:before {
- content: "\f2b2";
-}
-
-i.icon.trello:before {
- content: "\f181";
-}
-
-i.icon.tripadvisor:before {
- content: "\f262";
-}
-
-i.icon.tumblr.square:before {
- content: "\f174";
-}
-
-i.icon.tumblr:before {
- content: "\f173";
-}
-
-i.icon.twitch:before {
- content: "\f1e8";
-}
-
-i.icon.twitter.square:before {
- content: "\f081";
-}
-
-i.icon.twitter:before {
- content: "\f099";
-}
-
-i.icon.typo3:before {
- content: "\f42b";
-}
-
-i.icon.uber:before {
- content: "\f402";
-}
-
-i.icon.uikit:before {
- content: "\f403";
-}
-
-i.icon.uniregistry:before {
- content: "\f404";
-}
-
-i.icon.untappd:before {
- content: "\f405";
-}
-
-i.icon.usb:before {
- content: "\f287";
-}
-
-i.icon.ussunnah:before {
- content: "\f407";
-}
-
-i.icon.vaadin:before {
- content: "\f408";
-}
-
-i.icon.viacoin:before {
- content: "\f237";
-}
-
-i.icon.viadeo.square:before {
- content: "\f2aa";
-}
-
-i.icon.viadeo:before {
- content: "\f2a9";
-}
-
-i.icon.viber:before {
- content: "\f409";
-}
-
-i.icon.vimeo.square:before {
- content: "\f194";
-}
-
-i.icon.vimeo.v:before {
- content: "\f27d";
-}
-
-i.icon.vimeo:before {
- content: "\f40a";
-}
-
-i.icon.vine:before {
- content: "\f1ca";
-}
-
-i.icon.vk:before {
- content: "\f189";
-}
-
-i.icon.vnv:before {
- content: "\f40b";
-}
-
-i.icon.vuejs:before {
- content: "\f41f";
-}
-
-i.icon.weibo:before {
- content: "\f18a";
-}
-
-i.icon.weixin:before {
- content: "\f1d7";
-}
-
-i.icon.whatsapp.square:before {
- content: "\f40c";
-}
-
-i.icon.whatsapp:before {
- content: "\f232";
-}
-
-i.icon.whmcs:before {
- content: "\f40d";
-}
-
-i.icon.wikipedia.w:before {
- content: "\f266";
-}
-
-i.icon.windows:before {
- content: "\f17a";
-}
-
-i.icon.wordpress.simple:before {
- content: "\f411";
-}
-
-i.icon.wordpress:before {
- content: "\f19a";
-}
-
-i.icon.wpbeginner:before {
- content: "\f297";
-}
-
-i.icon.wpexplorer:before {
- content: "\f2de";
-}
-
-i.icon.wpforms:before {
- content: "\f298";
-}
-
-i.icon.xbox:before {
- content: "\f412";
-}
-
-i.icon.xing.square:before {
- content: "\f169";
-}
-
-i.icon.xing:before {
- content: "\f168";
-}
-
-i.icon.y.combinator:before {
- content: "\f23b";
-}
-
-i.icon.yahoo:before {
- content: "\f19e";
-}
-
-i.icon.yandex.international:before {
- content: "\f414";
-}
-
-i.icon.yandex:before {
- content: "\f413";
-}
-
-i.icon.yelp:before {
- content: "\f1e9";
-}
-
-i.icon.yoast:before {
- content: "\f2b1";
-}
-
-i.icon.youtube.square:before {
- content: "\f431";
-}
-
-i.icon.youtube:before {
- content: "\f167";
-}
-
-/*  Aliases */
-
-i.icon.add.circle:before {
- content: "\f055";
-}
-
-i.icon.add.square:before {
- content: "\f0fe";
-}
-
-i.icon.add.to.calendar:before {
- content: "\f271";
-}
-
-i.icon.add.to.cart:before {
- content: "\f217";
-}
-
-i.icon.add.user:before {
- content: "\f234";
-}
-
-i.icon.add:before {
- content: "\f067";
-}
-
-i.icon.alarm.mute:before {
- content: "\f1f6";
-}
-
-i.icon.alarm:before {
- content: "\f0f3";
-}
-
-i.icon.ald:before {
- content: "\f2a2";
-}
-
-i.icon.als:before {
- content: "\f2a2";
-}
-
-i.icon.american.express.card:before {
- content: "\f1f3";
-}
-
-i.icon.american.express:before {
- content: "\f1f3";
-}
-
-i.icon.amex:before {
- content: "\f1f3";
-}
-
-i.icon.announcement:before {
- content: "\f0a1";
-}
-
-i.icon.area.chart:before {
- content: "\f1fe";
-}
-
-i.icon.area.graph:before {
- content: "\f1fe";
-}
-
-i.icon.arrow.down.cart:before {
- content: "\f218";
-}
-
-i.icon.asexual:before {
- content: "\f22d";
-}
-
-i.icon.asl.interpreting:before {
- content: "\f2a3";
-}
-
-i.icon.asl:before {
- content: "\f2a3";
-}
-
-i.icon.assistive.listening.devices:before {
- content: "\f2a2";
-}
-
-i.icon.attach:before {
- content: "\f0c6";
-}
-
-i.icon.attention:before {
- content: "\f06a";
-}
-
-i.icon.balance:before {
- content: "\f24e";
-}
-
-i.icon.bar.chart:before {
- content: "\f080";
-}
-
-i.icon.bar.graph:before {
- content: "\f080";
-}
-
-i.icon.bar:before {
- content: "\f0fc";
-}
-
-i.icon.bathtub:before {
- content: "\f2cd";
-}
-
-i.icon.battery.four:before {
- content: "\f240";
-}
-
-i.icon.battery.high:before {
- content: "\f241";
-}
-
-i.icon.battery.low:before {
- content: "\f243";
-}
-
-i.icon.battery.medium:before {
- content: "\f242";
-}
-
-i.icon.battery.one:before {
- content: "\f243";
-}
-
-i.icon.battery.three:before {
- content: "\f241";
-}
-
-i.icon.battery.two:before {
- content: "\f242";
-}
-
-i.icon.battery.zero:before {
- content: "\f244";
-}
-
-i.icon.birthday:before {
- content: "\f1fd";
-}
-
-i.icon.block.layout:before {
- content: "\f009";
-}
-
-i.icon.bluetooth.alternative:before {
- content: "\f294";
-}
-
-i.icon.broken.chain:before {
- content: "\f127";
-}
-
-i.icon.browser:before {
- content: "\f022";
-}
-
-i.icon.call.square:before {
- content: "\f098";
-}
-
-i.icon.call:before {
- content: "\f095";
-}
-
-i.icon.cancel:before {
- content: "\f00d";
-}
-
-i.icon.cart:before {
- content: "\f07a";
-}
-
-i.icon.cc:before {
- content: "\f20a";
-}
-
-i.icon.chain:before {
- content: "\f0c1";
-}
-
-i.icon.chat:before {
- content: "\f075";
-}
-
-i.icon.checked.calendar:before {
- content: "\f274";
-}
-
-i.icon.checkmark:before {
- content: "\f00c";
-}
-
-i.icon.circle.notched:before {
- content: "\f1ce";
-}
-
-i.icon.close:before {
- content: "\f00d";
-}
-
-i.icon.cny:before {
- content: "\f157";
-}
-
-i.icon.cocktail:before {
- content: "\f000";
-}
-
-i.icon.commenting:before {
- content: "\f27a";
-}
-
-i.icon.computer:before {
- content: "\f108";
-}
-
-i.icon.configure:before {
- content: "\f0ad";
-}
-
-i.icon.content:before {
- content: "\f0c9";
-}
-
-i.icon.deafness:before {
- content: "\f2a4";
-}
-
-i.icon.delete.calendar:before {
- content: "\f273";
-}
-
-i.icon.delete:before {
- content: "\f00d";
-}
-
-i.icon.detective:before {
- content: "\f21b";
-}
-
-i.icon.diners.club.card:before {
- content: "\f24c";
-}
-
-i.icon.diners.club:before {
- content: "\f24c";
-}
-
-i.icon.discover.card:before {
- content: "\f1f2";
-}
-
-i.icon.discover:before {
- content: "\f1f2";
-}
-
-i.icon.discussions:before {
- content: "\f086";
-}
-
-i.icon.doctor:before {
- content: "\f0f0";
-}
-
-i.icon.dollar:before {
- content: "\f155";
-}
-
-i.icon.dont:before {
- content: "\f05e";
-}
-
-i.icon.dribble:before {
- content: "\f17d";
-}
-
-i.icon.drivers.license:before {
- content: "\f2c2";
-}
-
-i.icon.dropdown:before {
- content: "\f0d7";
-}
-
-i.icon.eercast:before {
- content: "\f2da";
-}
-
-i.icon.emergency:before {
- content: "\f0f9";
-}
-
-i.icon.envira.gallery:before {
- content: "\f299";
-}
-
-i.icon.erase:before {
- content: "\f12d";
-}
-
-i.icon.eur:before {
- content: "\f153";
-}
-
-i.icon.euro:before {
- content: "\f153";
-}
-
-i.icon.eyedropper:before {
- content: "\f1fb";
-}
-
-i.icon.fa:before {
- content: "\f2b4";
-}
-
-i.icon.factory:before {
- content: "\f275";
-}
-
-i.icon.favorite:before {
- content: "\f005";
-}
-
-i.icon.feed:before {
- content: "\f09e";
-}
-
-i.icon.female.homosexual:before {
- content: "\f226";
-}
-
-i.icon.file.text:before {
- content: "\f15c";
-}
-
-i.icon.find:before {
- content: "\f1e5";
-}
-
-i.icon.first.aid:before {
- content: "\f0fa";
-}
-
-i.icon.five.hundred.pixels:before {
- content: "\f26e";
-}
-
-i.icon.fork:before {
- content: "\f126";
-}
-
-i.icon.game:before {
- content: "\f11b";
-}
-
-i.icon.gay:before {
- content: "\f227";
-}
-
-i.icon.gbp:before {
- content: "\f154";
-}
-
-i.icon.gittip:before {
- content: "\f184";
-}
-
-i.icon.google.plus.circle:before {
- content: "\f2b3";
-}
-
-i.icon.google.plus.official:before {
- content: "\f2b3";
-}
-
-i.icon.grab:before {
- content: "\f255";
-}
-
-i.icon.graduation:before {
- content: "\f19d";
-}
-
-i.icon.grid.layout:before {
- content: "\f00a";
-}
-
-i.icon.group:before {
- content: "\f0c0";
-}
-
-i.icon.h:before {
- content: "\f0fd";
-}
-
-i.icon.hand.victory:before {
- content: "\f25b";
-}
-
-i.icon.handicap:before {
- content: "\f193";
-}
-
-i.icon.hard.of.hearing:before {
- content: "\f2a4";
-}
-
-i.icon.header:before {
- content: "\f1dc";
-}
-
-i.icon.help.circle:before {
- content: "\f059";
-}
-
-i.icon.help:before {
- content: "\f128";
-}
-
-i.icon.heterosexual:before {
- content: "\f228";
-}
-
-i.icon.hide:before {
- content: "\f070";
-}
-
-i.icon.hotel:before {
- content: "\f236";
-}
-
-i.icon.hourglass.four:before {
- content: "\f254";
-}
-
-i.icon.hourglass.full:before {
- content: "\f254";
-}
-
-i.icon.hourglass.one:before {
- content: "\f251";
-}
-
-i.icon.hourglass.three:before {
- content: "\f253";
-}
-
-i.icon.hourglass.two:before {
- content: "\f252";
-}
-
-i.icon.idea:before {
- content: "\f0eb";
-}
-
-i.icon.ils:before {
- content: "\f20b";
-}
-
-i.icon.in.cart:before {
- content: "\f218";
-}
-
-i.icon.inr:before {
- content: "\f156";
-}
-
-i.icon.intergender:before {
- content: "\f224";
-}
-
-i.icon.intersex:before {
- content: "\f224";
-}
-
-i.icon.japan.credit.bureau.card:before {
- content: "\f24b";
-}
-
-i.icon.japan.credit.bureau:before {
- content: "\f24b";
-}
-
-i.icon.jcb:before {
- content: "\f24b";
-}
-
-i.icon.jpy:before {
- content: "\f157";
-}
-
-i.icon.krw:before {
- content: "\f159";
-}
-
-i.icon.lab:before {
- content: "\f0c3";
-}
-
-i.icon.law:before {
- content: "\f24e";
-}
-
-i.icon.legal:before {
- content: "\f0e3";
-}
-
-i.icon.lesbian:before {
- content: "\f226";
-}
-
-i.icon.lightning:before {
- content: "\f0e7";
-}
-
-i.icon.like:before {
- content: "\f004";
-}
-
-i.icon.line.chart:before {
- content: "\f201";
-}
-
-i.icon.line.graph:before {
- content: "\f201";
-}
-
-i.icon.linkedin.square:before {
- content: "\f08c";
-}
-
-i.icon.linkify:before {
- content: "\f0c1";
-}
-
-i.icon.lira:before {
- content: "\f195";
-}
-
-i.icon.list.layout:before {
- content: "\f00b";
-}
-
-i.icon.magnify:before {
- content: "\f00e";
-}
-
-i.icon.mail.forward:before {
- content: "\f064";
-}
-
-i.icon.mail.square:before {
- content: "\f199";
-}
-
-i.icon.mail:before {
- content: "\f0e0";
-}
-
-i.icon.male.homosexual:before {
- content: "\f227";
-}
-
-i.icon.man:before {
- content: "\f222";
-}
-
-i.icon.marker:before {
- content: "\f041";
-}
-
-i.icon.mars.alternate:before {
- content: "\f229";
-}
-
-i.icon.mars.horizontal:before {
- content: "\f22b";
-}
-
-i.icon.mars.vertical:before {
- content: "\f22a";
-}
-
-i.icon.mastercard.card:before {
- content: "\f1f1";
-}
-
-i.icon.mastercard:before {
- content: "\f1f1";
-}
-
-i.icon.maximize:before {
- content: "\f0b2";
-}
-
-i.icon.microsoft.edge:before {
- content: "\f282";
-}
-
-i.icon.military:before {
- content: "\f0fb";
-}
-
-i.icon.minimize:before {
- content: "\f066";
-}
-
-i.icon.ms.edge:before {
- content: "\f282";
-}
-
-i.icon.mute:before {
- content: "\f131";
-}
-
-i.icon.new.pied.piper:before {
- content: "\f2ae";
-}
-
-i.icon.non.binary.transgender:before {
- content: "\f223";
-}
-
-i.icon.numbered.list:before {
- content: "\f0cb";
-}
-
-i.icon.optinmonster:before {
- content: "\f23c";
-}
-
-i.icon.options:before {
- content: "\f1de";
-}
-
-i.icon.other.gender.horizontal:before {
- content: "\f22b";
-}
-
-i.icon.other.gender.vertical:before {
- content: "\f22a";
-}
-
-i.icon.other.gender:before {
- content: "\f229";
-}
-
-i.icon.payment:before {
- content: "\f09d";
-}
-
-i.icon.paypal.card:before {
- content: "\f1f4";
-}
-
-i.icon.pencil.square:before {
- content: "\f14b";
-}
-
-i.icon.photo:before {
- content: "\f030";
-}
-
-i.icon.picture:before {
- content: "\f03e";
-}
-
-i.icon.pie.chart:before {
- content: "\f200";
-}
-
-i.icon.pie.graph:before {
- content: "\f200";
-}
-
-i.icon.pied.piper.hat:before {
- content: "\f2ae";
-}
-
-i.icon.pin:before {
- content: "\f08d";
-}
-
-i.icon.plus.cart:before {
- content: "\f217";
-}
-
-i.icon.pocket:before {
- content: "\f265";
-}
-
-i.icon.point:before {
- content: "\f041";
-}
-
-i.icon.pointing.down:before {
- content: "\f0a7";
-}
-
-i.icon.pointing.left:before {
- content: "\f0a5";
-}
-
-i.icon.pointing.right:before {
- content: "\f0a4";
-}
-
-i.icon.pointing.up:before {
- content: "\f0a6";
-}
-
-i.icon.pound:before {
- content: "\f154";
-}
-
-i.icon.power.cord:before {
- content: "\f1e6";
-}
-
-i.icon.power:before {
- content: "\f011";
-}
-
-i.icon.privacy:before {
- content: "\f084";
-}
-
-i.icon.r.circle:before {
- content: "\f25d";
-}
-
-i.icon.rain:before {
- content: "\f0e9";
-}
-
-i.icon.record:before {
- content: "\f03d";
-}
-
-i.icon.refresh:before {
- content: "\f021";
-}
-
-i.icon.remove.circle:before {
- content: "\f057";
-}
-
-i.icon.remove.from.calendar:before {
- content: "\f272";
-}
-
-i.icon.remove.user:before {
- content: "\f235";
-}
-
-i.icon.remove:before {
- content: "\f00d";
-}
-
-i.icon.repeat:before {
- content: "\f01e";
-}
-
-i.icon.rmb:before {
- content: "\f157";
-}
-
-i.icon.rouble:before {
- content: "\f158";
-}
-
-i.icon.rub:before {
- content: "\f158";
-}
-
-i.icon.ruble:before {
- content: "\f158";
-}
-
-i.icon.rupee:before {
- content: "\f156";
-}
-
-i.icon.s15:before {
- content: "\f2cd";
-}
-
-i.icon.selected.radio:before {
- content: "\f192";
-}
-
-i.icon.send:before {
- content: "\f1d8";
-}
-
-i.icon.setting:before {
- content: "\f013";
-}
-
-i.icon.settings:before {
- content: "\f085";
-}
-
-i.icon.shekel:before {
- content: "\f20b";
-}
-
-i.icon.sheqel:before {
- content: "\f20b";
-}
-
-i.icon.shipping:before {
- content: "\f0d1";
-}
-
-i.icon.shop:before {
- content: "\f07a";
-}
-
-i.icon.shuffle:before {
- content: "\f074";
-}
-
-i.icon.shutdown:before {
- content: "\f011";
-}
-
-i.icon.sidebar:before {
- content: "\f0c9";
-}
-
-i.icon.signing:before {
- content: "\f2a7";
-}
-
-i.icon.signup:before {
- content: "\f044";
-}
-
-i.icon.sliders:before {
- content: "\f1de";
-}
-
-i.icon.soccer:before {
- content: "\f1e3";
-}
-
-i.icon.sort.alphabet.ascending:before {
- content: "\f15d";
-}
-
-i.icon.sort.alphabet.descending:before {
- content: "\f15e";
-}
-
-i.icon.sort.ascending:before {
- content: "\f0de";
-}
-
-i.icon.sort.content.ascending:before {
- content: "\f160";
-}
-
-i.icon.sort.content.descending:before {
- content: "\f161";
-}
-
-i.icon.sort.descending:before {
- content: "\f0dd";
-}
-
-i.icon.sort.numeric.ascending:before {
- content: "\f162";
-}
-
-i.icon.sort.numeric.descending:before {
- content: "\f163";
-}
-
-i.icon.sound:before {
- content: "\f025";
-}
-
-i.icon.spy:before {
- content: "\f21b";
-}
-
-i.icon.stripe.card:before {
- content: "\f1f5";
-}
-
-i.icon.student:before {
- content: "\f19d";
-}
-
-i.icon.talk:before {
- content: "\f27a";
-}
-
-i.icon.target:before {
- content: "\f140";
-}
-
-i.icon.teletype:before {
- content: "\f1e4";
-}
-
-i.icon.television:before {
- content: "\f26c";
-}
-
-i.icon.text.cursor:before {
- content: "\f246";
-}
-
-i.icon.text.telephone:before {
- content: "\f1e4";
-}
-
-i.icon.theme.isle:before {
- content: "\f2b2";
-}
-
-i.icon.theme:before {
- content: "\f043";
-}
-
-i.icon.thermometer:before {
- content: "\f2c7";
-}
-
-i.icon.thumb.tack:before {
- content: "\f08d";
-}
-
-i.icon.time:before {
- content: "\f017";
-}
-
-i.icon.tm:before {
- content: "\f25c";
-}
-
-i.icon.toggle.down:before {
- content: "\f150";
-}
-
-i.icon.toggle.left:before {
- content: "\f191";
-}
-
-i.icon.toggle.right:before {
- content: "\f152";
-}
-
-i.icon.toggle.up:before {
- content: "\f151";
-}
-
-i.icon.translate:before {
- content: "\f1ab";
-}
-
-i.icon.travel:before {
- content: "\f0b1";
-}
-
-i.icon.treatment:before {
- content: "\f0f1";
-}
-
-i.icon.triangle.down:before {
- content: "\f0d7";
-}
-
-i.icon.triangle.left:before {
- content: "\f0d9";
-}
-
-i.icon.triangle.right:before {
- content: "\f0da";
-}
-
-i.icon.triangle.up:before {
- content: "\f0d8";
-}
-
-i.icon.try:before {
- content: "\f195";
-}
-
-i.icon.unhide:before {
- content: "\f06e";
-}
-
-i.icon.unlinkify:before {
- content: "\f127";
-}
-
-i.icon.unmute:before {
- content: "\f130";
-}
-
-i.icon.usd:before {
- content: "\f155";
-}
-
-i.icon.user.cancel:before {
- content: "\f235";
-}
-
-i.icon.user.close:before {
- content: "\f235";
-}
-
-i.icon.user.delete:before {
- content: "\f235";
-}
-
-i.icon.user.x:before {
- content: "\f235";
-}
-
-i.icon.vcard:before {
- content: "\f2bb";
-}
-
-i.icon.video.camera:before {
- content: "\f03d";
-}
-
-i.icon.video.play:before {
- content: "\f144";
-}
-
-i.icon.visa.card:before {
- content: "\f1f0";
-}
-
-i.icon.visa:before {
- content: "\f1f0";
-}
-
-i.icon.volume.control.phone:before {
- content: "\f2a0";
-}
-
-i.icon.wait:before {
- content: "\f017";
-}
-
-i.icon.warning.circle:before {
- content: "\f06a";
-}
-
-i.icon.warning.sign:before {
- content: "\f071";
-}
-
-i.icon.warning:before {
- content: "\f12a";
-}
-
-i.icon.wechat:before {
- content: "\f1d7";
-}
-
-i.icon.wi-fi:before {
- content: "\f1eb";
-}
-
-i.icon.wikipedia:before {
- content: "\f266";
-}
-
-i.icon.winner:before {
- content: "\f091";
-}
-
-i.icon.wizard:before {
- content: "\f0d0";
-}
-
-i.icon.woman:before {
- content: "\f221";
-}
-
-i.icon.won:before {
- content: "\f159";
-}
-
-i.icon.wordpress.beginner:before {
- content: "\f297";
-}
-
-i.icon.wordpress.forms:before {
- content: "\f298";
-}
-
-i.icon.world:before {
- content: "\f0ac";
-}
-
-i.icon.write.square:before {
- content: "\f14b";
-}
-
-i.icon.x:before {
- content: "\f00d";
-}
-
-i.icon.yc:before {
- content: "\f23b";
-}
-
-i.icon.ycombinator:before {
- content: "\f23b";
-}
-
-i.icon.yen:before {
- content: "\f157";
-}
-
-i.icon.zip:before {
- content: "\f187";
-}
-
-i.icon.zoom.in:before {
- content: "\f00e";
-}
-
-i.icon.zoom.out:before {
- content: "\f010";
-}
-
-i.icon.zoom:before {
- content: "\f00e";
-}
-
-/*
- Icons which where removed in FontAwesome 5
- (Added the classes but pointed them to another icon which matches or is similar for compatibility reasons)
-*/
-
-i.icon.bitbucket.square:before {
- content: "\f171";
-}
-
-i.icon.checkmark.box:before {
- content: "\f14a";
-}
-
-i.icon.circle.thin:before {
- content: "\f111";
-}
-
-i.icon.cloud.download:before {
- content: "\f381";
-}
-
-i.icon.cloud.upload:before {
- content: "\f382";
-}
-
-i.icon.compose:before {
- content: "\f303";
-}
-
-i.icon.conversation:before {
- content: "\f086";
-}
-
-i.icon.credit.card.alternative:before {
- content: "\f09d";
-}
-
-i.icon.currency:before {
- content: "\f3d1";
-}
-
-i.icon.dashboard:before {
- content: "\f3fd";
-}
-
-i.icon.diamond:before {
- content: "\f3a5";
-}
-
-i.icon.disk.outline:before {
- content: "\f369";
-}
-
-i.icon.disk:before {
- content: "\f0a0";
-}
-
-i.icon.exchange:before {
- content: "\f362";
-}
-
-i.icon.external.share:before {
- content: "\f14d";
-}
-
-i.icon.external.square:before {
- content: "\f360";
-}
-
-i.icon.external:before {
- content: "\f35d";
-}
-
-i.icon.facebook.official:before {
- content: "\f082";
-}
-
-i.icon.food:before {
- content: "\f2e7";
-}
-
-i.icon.heart.empty:before {
- content: "\f004";
-}
-
-i.icon.hourglass.zero:before {
- content: "\f253";
-}
-
-i.icon.level.down:before {
- content: "\f3be";
-}
-
-i.icon.level.up:before {
- content: "\f3bf";
-}
-
-i.icon.log.out:before {
- content: "\f2f5";
-}
-
-i.icon.meanpath:before {
- content: "\f0c8";
-}
-
-i.icon.money:before {
- content: "\f3d1";
-}
-
-i.icon.move:before {
- content: "\f0b2";
-}
-
-i.icon.pencil:before {
- content: "\f303";
-}
-
-i.icon.protect:before {
- content: "\f023";
-}
-
-i.icon.radio:before {
- content: "\f192";
-}
-
-i.icon.remove.bookmark:before {
- content: "\f02e";
-}
-
-i.icon.resize.horizontal:before {
- content: "\f337";
-}
-
-i.icon.resize.vertical:before {
- content: "\f338";
-}
-
-i.icon.sign.in:before {
- content: "\f2f6";
-}
-
-i.icon.sign.out:before {
- content: "\f2f5";
-}
-
-i.icon.spoon:before {
- content: "\f2e5";
-}
-
-i.icon.star.empty:before {
- content: "\f089";
-}
-
-i.icon.star.half.empty:before {
- content: "\f089";
-}
-
-i.icon.star.half.full:before {
- content: "\f089";
-}
-
-i.icon.ticket:before {
- content: "\f3ff";
-}
-
-i.icon.times.rectangle:before {
- content: "\f410";
-}
-
-i.icon.write:before {
- content: "\f303";
-}
-
-i.icon.youtube.play:before {
- content: "\f167";
-}
-
-/*******************************
-        Site Overrides
-*******************************/
-/*!
-* # Semantic UI 2.3.0 - Image
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-            Image
-*******************************/
-
-.ui.image {
- position: relative;
- display: inline-block;
- vertical-align: middle;
- max-width: 100%;
- background-color: transparent;
-}
-
-img.ui.image {
- display: block;
-}
-
-.ui.image svg,
-.ui.image img {
- display: block;
- max-width: 100%;
- height: auto;
-}
-
-/*******************************
-           States
-*******************************/
-
-.ui.hidden.images,
-.ui.hidden.image {
- display: none;
-}
-
-.ui.hidden.transition.images,
-.ui.hidden.transition.image {
- display: block;
- visibility: hidden;
-}
-
-.ui.images > .hidden.transition {
- display: inline-block;
- visibility: hidden;
-}
-
-.ui.disabled.images,
-.ui.disabled.image {
- cursor: default;
- opacity: 0.45;
-}
-
-/*******************************
-         Variations
-*******************************/
-
-/*--------------
-    Inline
----------------*/
-
-.ui.inline.image,
-.ui.inline.image svg,
-.ui.inline.image img {
- display: inline-block;
-}
-
-/*------------------
- Vertical Aligned
--------------------*/
-
-.ui.top.aligned.images .image,
-.ui.top.aligned.image,
-.ui.top.aligned.image svg,
-.ui.top.aligned.image img {
- display: inline-block;
- vertical-align: top;
-}
-
-.ui.middle.aligned.images .image,
-.ui.middle.aligned.image,
-.ui.middle.aligned.image svg,
-.ui.middle.aligned.image img {
- display: inline-block;
- vertical-align: middle;
-}
-
-.ui.bottom.aligned.images .image,
-.ui.bottom.aligned.image,
-.ui.bottom.aligned.image svg,
-.ui.bottom.aligned.image img {
- display: inline-block;
- vertical-align: bottom;
-}
-
-/*--------------
-    Rounded
----------------*/
-
-.ui.rounded.images .image,
-.ui.rounded.image,
-.ui.rounded.images .image > *,
-.ui.rounded.image > * {
- border-radius: 0.3125em;
-}
-
-/*--------------
-   Bordered
----------------*/
-
-.ui.bordered.images .image,
-.ui.bordered.images img,
-.ui.bordered.images svg,
-.ui.bordered.image img,
-.ui.bordered.image svg,
-img.ui.bordered.image {
- border: 1px solid rgba(0, 0, 0, 0.1);
-}
-
-/*--------------
-   Circular
----------------*/
-
-.ui.circular.images,
-.ui.circular.image {
- overflow: hidden;
-}
-
-.ui.circular.images .image,
-.ui.circular.image,
-.ui.circular.images .image > *,
-.ui.circular.image > * {
- border-radius: 500rem;
-}
-
-/*--------------
-    Fluid
----------------*/
-
-.ui.fluid.images,
-.ui.fluid.image,
-.ui.fluid.images img,
-.ui.fluid.images svg,
-.ui.fluid.image svg,
-.ui.fluid.image img {
- display: block;
- width: 100%;
- height: auto;
-}
-
-/*--------------
-    Avatar
----------------*/
-
-.ui.avatar.images .image,
-.ui.avatar.images img,
-.ui.avatar.images svg,
-.ui.avatar.image img,
-.ui.avatar.image svg,
-.ui.avatar.image {
- margin-right: 0.25em;
- display: inline-block;
- width: 2em;
- height: 2em;
- border-radius: 500rem;
-}
-
-/*-------------------
-      Spaced
---------------------*/
-
-.ui.spaced.image {
- display: inline-block !important;
- margin-left: 0.5em;
- margin-right: 0.5em;
-}
-
-.ui[class*="left spaced"].image {
- margin-left: 0.5em;
- margin-right: 0em;
-}
-
-.ui[class*="right spaced"].image {
- margin-left: 0em;
- margin-right: 0.5em;
-}
-
-/*-------------------
-      Floated
---------------------*/
-
-.ui.floated.image,
-.ui.floated.images {
- float: left;
- margin-right: 1em;
- margin-bottom: 1em;
-}
-
-.ui.right.floated.images,
-.ui.right.floated.image {
- float: right;
- margin-right: 0em;
- margin-bottom: 1em;
- margin-left: 1em;
-}
-
-.ui.floated.images:last-child,
-.ui.floated.image:last-child {
- margin-bottom: 0em;
-}
-
-.ui.centered.images,
-.ui.centered.image {
- margin-left: auto;
- margin-right: auto;
-}
-
-/*--------------
-    Sizes
----------------*/
-
-.ui.mini.images .image,
-.ui.mini.images img,
-.ui.mini.images svg,
-.ui.mini.image {
- width: 35px;
- height: auto;
- font-size: 0.78571429rem;
-}
-
-.ui.tiny.images .image,
-.ui.tiny.images img,
-.ui.tiny.images svg,
-.ui.tiny.image {
- width: 80px;
- height: auto;
- font-size: 0.85714286rem;
-}
-
-.ui.small.images .image,
-.ui.small.images img,
-.ui.small.images svg,
-.ui.small.image {
- width: 150px;
- height: auto;
- font-size: 0.92857143rem;
-}
-
-.ui.medium.images .image,
-.ui.medium.images img,
-.ui.medium.images svg,
-.ui.medium.image {
- width: 300px;
- height: auto;
- font-size: 1rem;
-}
-
-.ui.large.images .image,
-.ui.large.images img,
-.ui.large.images svg,
-.ui.large.image {
- width: 450px;
- height: auto;
- font-size: 1.14285714rem;
-}
-
-.ui.big.images .image,
-.ui.big.images img,
-.ui.big.images svg,
-.ui.big.image {
- width: 600px;
- height: auto;
- font-size: 1.28571429rem;
-}
-
-.ui.huge.images .image,
-.ui.huge.images img,
-.ui.huge.images svg,
-.ui.huge.image {
- width: 800px;
- height: auto;
- font-size: 1.42857143rem;
-}
-
-.ui.massive.images .image,
-.ui.massive.images img,
-.ui.massive.images svg,
-.ui.massive.image {
- width: 960px;
- height: auto;
- font-size: 1.71428571rem;
-}
-
-/*******************************
-             Groups
-*******************************/
-
-.ui.images {
- font-size: 0em;
- margin: 0em -0.25rem 0rem;
-}
-
-.ui.images .image,
-.ui.images img,
-.ui.images svg {
- display: inline-block;
- margin: 0em 0.25rem 0.5rem;
-}
-
-/*******************************
-        Theme Overrides
-*******************************/
-
-/*******************************
-        Site Overrides
-*******************************/
-/*!
-* # Semantic UI 2.3.0 - Input
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-          Standard
-*******************************/
-
-/*--------------------
-       Inputs
----------------------*/
-
-.ui.input {
- position: relative;
- font-weight: normal;
- font-style: normal;
- display: -webkit-inline-box;
- display: -ms-inline-flexbox;
- display: inline-flex;
- color: rgba(0, 0, 0, 0.87);
-}
-
-.ui.input > input {
- margin: 0em;
- max-width: 100%;
- -webkit-box-flex: 1;
- -ms-flex: 1 0 auto;
- flex: 1 0 auto;
- outline: none;
- -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
- text-align: left;
- line-height: 1.21428571em;
- font-family: 'Lato', 'Helvetica Neue', Arial, Helvetica, sans-serif;
- padding: 0.67857143em 1em;
- background: #FFFFFF;
- border: 1px solid rgba(34, 36, 38, 0.15);
- color: rgba(0, 0, 0, 0.87);
- border-radius: 0.28571429rem;
- -webkit-transition: border-color 0.1s ease, -webkit-box-shadow 0.1s ease;
- transition: border-color 0.1s ease, -webkit-box-shadow 0.1s ease;
- transition: box-shadow 0.1s ease, border-color 0.1s ease;
- transition: box-shadow 0.1s ease, border-color 0.1s ease, -webkit-box-shadow 0.1s ease;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-/*--------------------
-     Placeholder
----------------------*/
-
-/* browsers require these rules separate */
-
-.ui.input > input::-webkit-input-placeholder {
- color: rgba(191, 191, 191, 0.87);
-}
-
-.ui.input > input::-moz-placeholder {
- color: rgba(191, 191, 191, 0.87);
-}
-
-.ui.input > input:-ms-input-placeholder {
- color: rgba(191, 191, 191, 0.87);
-}
-
-/*******************************
-           States
-*******************************/
-
-/*--------------------
-       Disabled
----------------------*/
-
-.ui.disabled.input,
-.ui.input:not(.disabled) input[disabled] {
- opacity: 0.45;
-}
-
-.ui.disabled.input > input,
-.ui.input:not(.disabled) input[disabled] {
- pointer-events: none;
-}
-
-/*--------------------
-       Active
----------------------*/
-
-.ui.input > input:active,
-.ui.input.down input {
- border-color: rgba(0, 0, 0, 0.3);
- background: #FAFAFA;
- color: rgba(0, 0, 0, 0.87);
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-/*--------------------
-      Loading
----------------------*/
-
-.ui.loading.loading.input > i.icon:before {
- position: absolute;
- content: '';
- top: 50%;
- left: 50%;
- margin: -0.64285714em 0em 0em -0.64285714em;
- width: 1.28571429em;
- height: 1.28571429em;
- border-radius: 500rem;
- border: 0.2em solid rgba(0, 0, 0, 0.1);
-}
-
-.ui.loading.loading.input > i.icon:after {
- position: absolute;
- content: '';
- top: 50%;
- left: 50%;
- margin: -0.64285714em 0em 0em -0.64285714em;
- width: 1.28571429em;
- height: 1.28571429em;
- -webkit-animation: button-spin 0.6s linear;
- animation: button-spin 0.6s linear;
- -webkit-animation-iteration-count: infinite;
- animation-iteration-count: infinite;
- border-radius: 500rem;
- border-color: #767676 transparent transparent;
- border-style: solid;
- border-width: 0.2em;
- -webkit-box-shadow: 0px 0px 0px 1px transparent;
- box-shadow: 0px 0px 0px 1px transparent;
-}
-
-/*--------------------
-       Focus
----------------------*/
-
-.ui.input.focus > input,
-.ui.input > input:focus {
- border-color: #85B7D9;
- background: #FFFFFF;
- color: rgba(0, 0, 0, 0.8);
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-.ui.input.focus > input::-webkit-input-placeholder,
-.ui.input > input:focus::-webkit-input-placeholder {
- color: rgba(115, 115, 115, 0.87);
-}
-
-.ui.input.focus > input::-moz-placeholder,
-.ui.input > input:focus::-moz-placeholder {
- color: rgba(115, 115, 115, 0.87);
-}
-
-.ui.input.focus > input:-ms-input-placeholder,
-.ui.input > input:focus:-ms-input-placeholder {
- color: rgba(115, 115, 115, 0.87);
-}
-
-/*--------------------
-       Error
----------------------*/
-
-.ui.input.error > input {
- background-color: #FFF6F6;
- border-color: #E0B4B4;
- color: #9F3A38;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-/* Error Placeholder */
-
-.ui.input.error > input::-webkit-input-placeholder {
- color: #e7bdbc;
-}
-
-.ui.input.error > input::-moz-placeholder {
- color: #e7bdbc;
-}
-
-.ui.input.error > input:-ms-input-placeholder {
- color: #e7bdbc !important;
-}
-
-/* Focused Error Placeholder */
-
-.ui.input.error > input:focus::-webkit-input-placeholder {
- color: #da9796;
-}
-
-.ui.input.error > input:focus::-moz-placeholder {
- color: #da9796;
-}
-
-.ui.input.error > input:focus:-ms-input-placeholder {
- color: #da9796 !important;
-}
-
-/*******************************
-          Variations
-*******************************/
-
-/*--------------------
-     Transparent
----------------------*/
-
-.ui.transparent.input > input {
- border-color: transparent !important;
- background-color: transparent !important;
- padding: 0em !important;
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
- border-radius: 0px !important;
-}
-
-/* Transparent Icon */
-
-.ui.transparent.icon.input > i.icon {
- width: 1.1em;
-}
-
-.ui.transparent.icon.input > input {
- padding-left: 0em !important;
- padding-right: 2em !important;
-}
-
-.ui.transparent[class*="left icon"].input > input {
- padding-left: 2em !important;
- padding-right: 0em !important;
-}
-
-/* Transparent Inverted */
-
-.ui.transparent.inverted.input {
- color: #FFFFFF;
-}
-
-.ui.transparent.inverted.input > input {
- color: inherit;
-}
-
-.ui.transparent.inverted.input > input::-webkit-input-placeholder {
- color: rgba(255, 255, 255, 0.5);
-}
-
-.ui.transparent.inverted.input > input::-moz-placeholder {
- color: rgba(255, 255, 255, 0.5);
-}
-
-.ui.transparent.inverted.input > input:-ms-input-placeholder {
- color: rgba(255, 255, 255, 0.5);
-}
-
-/*--------------------
-        Icon
----------------------*/
-
-.ui.icon.input > i.icon {
- cursor: default;
- position: absolute;
- line-height: 1;
- text-align: center;
- top: 0px;
- right: 0px;
- margin: 0em;
- height: 100%;
- width: 2.67142857em;
- opacity: 0.5;
- border-radius: 0em 0.28571429rem 0.28571429rem 0em;
- -webkit-transition: opacity 0.3s ease;
- transition: opacity 0.3s ease;
-}
-
-.ui.icon.input > i.icon:not(.link) {
- pointer-events: none;
-}
-
-.ui.icon.input > input {
- padding-right: 2.67142857em !important;
-}
-
-.ui.icon.input > i.icon:before,
-.ui.icon.input > i.icon:after {
- left: 0;
- position: absolute;
- text-align: center;
- top: 50%;
- width: 100%;
- margin-top: -0.5em;
-}
-
-.ui.icon.input > i.link.icon {
- cursor: pointer;
-}
-
-.ui.icon.input > i.circular.icon {
- top: 0.35em;
- right: 0.5em;
-}
-
-/* Left Icon Input */
-
-.ui[class*="left icon"].input > i.icon {
- right: auto;
- left: 1px;
- border-radius: 0.28571429rem 0em 0em 0.28571429rem;
-}
-
-.ui[class*="left icon"].input > i.circular.icon {
- right: auto;
- left: 0.5em;
-}
-
-.ui[class*="left icon"].input > input {
- padding-left: 2.67142857em !important;
- padding-right: 1em !important;
-}
-
-/* Focus */
-
-.ui.icon.input > input:focus ~ i.icon {
- opacity: 1;
-}
-
-/*--------------------
-       Labeled
----------------------*/
-
-/* Adjacent Label */
-
-.ui.labeled.input > .label {
- -webkit-box-flex: 0;
- -ms-flex: 0 0 auto;
- flex: 0 0 auto;
- margin: 0;
- font-size: 1em;
-}
-
-.ui.labeled.input > .label:not(.corner) {
- padding-top: 0.78571429em;
- padding-bottom: 0.78571429em;
-}
-
-/* Regular Label on Left */
-
-.ui.labeled.input:not([class*="corner labeled"]) .label:first-child {
- border-top-right-radius: 0px;
- border-bottom-right-radius: 0px;
-}
-
-.ui.labeled.input:not([class*="corner labeled"]) .label:first-child + input {
- border-top-left-radius: 0px;
- border-bottom-left-radius: 0px;
- border-left-color: transparent;
-}
-
-.ui.labeled.input:not([class*="corner labeled"]) .label:first-child + input:focus {
- border-left-color: #85B7D9;
-}
-
-/* Regular Label on Right */
-
-.ui[class*="right labeled"].input > input {
- border-top-right-radius: 0px !important;
- border-bottom-right-radius: 0px !important;
- border-right-color: transparent !important;
-}
-
-.ui[class*="right labeled"].input > input + .label {
- border-top-left-radius: 0px;
- border-bottom-left-radius: 0px;
-}
-
-.ui[class*="right labeled"].input > input:focus {
- border-right-color: #85B7D9 !important;
-}
-
-/* Corner Label */
-
-.ui.labeled.input .corner.label {
- top: 1px;
- right: 1px;
- font-size: 0.64285714em;
- border-radius: 0em 0.28571429rem 0em 0em;
-}
-
-/* Spacing with corner label */
-
-.ui[class*="corner labeled"]:not([class*="left corner labeled"]).labeled.input > input {
- padding-right: 2.5em !important;
-}
-
-.ui[class*="corner labeled"].icon.input:not([class*="left corner labeled"]) > input {
- padding-right: 3.25em !important;
-}
-
-.ui[class*="corner labeled"].icon.input:not([class*="left corner labeled"]) > .icon {
- margin-right: 1.25em;
-}
-
-/* Left Labeled */
-
-.ui[class*="left corner labeled"].labeled.input > input {
- padding-left: 2.5em !important;
-}
-
-.ui[class*="left corner labeled"].icon.input > input {
- padding-left: 3.25em !important;
-}
-
-.ui[class*="left corner labeled"].icon.input > .icon {
- margin-left: 1.25em;
-}
-
-/* Corner Label Position  */
-
-.ui.input > .ui.corner.label {
- top: 1px;
- right: 1px;
-}
-
-.ui.input > .ui.left.corner.label {
- right: auto;
- left: 1px;
-}
-
-/*--------------------
-       Action
----------------------*/
-
-.ui.action.input > .button,
-.ui.action.input > .buttons {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 auto;
- flex: 0 0 auto;
-}
-
-.ui.action.input > .button,
-.ui.action.input > .buttons > .button {
- padding-top: 0.78571429em;
- padding-bottom: 0.78571429em;
- margin: 0;
-}
-
-/* Button on Right */
-
-.ui.action.input:not([class*="left action"]) > input {
- border-top-right-radius: 0px !important;
- border-bottom-right-radius: 0px !important;
- border-right-color: transparent !important;
-}
-
-.ui.action.input:not([class*="left action"]) > .dropdown:not(:first-child),
-.ui.action.input:not([class*="left action"]) > .button:not(:first-child),
-.ui.action.input:not([class*="left action"]) > .buttons:not(:first-child) > .button {
- border-radius: 0px;
-}
-
-.ui.action.input:not([class*="left action"]) > .dropdown:last-child,
-.ui.action.input:not([class*="left action"]) > .button:last-child,
-.ui.action.input:not([class*="left action"]) > .buttons:last-child > .button {
- border-radius: 0px 0.28571429rem 0.28571429rem 0px;
-}
-
-/* Input Focus */
-
-.ui.action.input:not([class*="left action"]) > input:focus {
- border-right-color: #85B7D9 !important;
-}
-
-/* Button on Left */
-
-.ui[class*="left action"].input > input {
- border-top-left-radius: 0px !important;
- border-bottom-left-radius: 0px !important;
- border-left-color: transparent !important;
-}
-
-.ui[class*="left action"].input > .dropdown,
-.ui[class*="left action"].input > .button,
-.ui[class*="left action"].input > .buttons > .button {
- border-radius: 0px;
-}
-
-.ui[class*="left action"].input > .dropdown:first-child,
-.ui[class*="left action"].input > .button:first-child,
-.ui[class*="left action"].input > .buttons:first-child > .button {
- border-radius: 0.28571429rem 0px 0px 0.28571429rem;
-}
-
-/* Input Focus */
-
-.ui[class*="left action"].input > input:focus {
- border-left-color: #85B7D9 !important;
-}
-
-/*--------------------
-      Inverted
----------------------*/
-
-/* Standard */
-
-.ui.inverted.input > input {
- border: none;
-}
-
-/*--------------------
-       Fluid
----------------------*/
-
-.ui.fluid.input {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
-}
-
-.ui.fluid.input > input {
- width: 0px !important;
-}
-
-/*--------------------
-       Size
----------------------*/
-
-.ui.mini.input {
- font-size: 0.78571429em;
-}
-
-.ui.small.input {
- font-size: 0.92857143em;
-}
-
-.ui.input {
- font-size: 1em;
-}
-
-.ui.large.input {
- font-size: 1.14285714em;
-}
-
-.ui.big.input {
- font-size: 1.28571429em;
-}
-
-.ui.huge.input {
- font-size: 1.42857143em;
-}
-
-.ui.massive.input {
- font-size: 1.71428571em;
-}
-
-/*******************************
-        Theme Overrides
-*******************************/
-
-/*******************************
-        Site Overrides
-*******************************/
-/*!
-* # Semantic UI 2.3.0 - Label
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-           Label
-*******************************/
-
-.ui.label {
- display: inline-block;
- line-height: 1;
- vertical-align: baseline;
- margin: 0em 0.14285714em;
- background-color: #E8E8E8;
- background-image: none;
- padding: 0.5833em 0.833em;
- color: rgba(0, 0, 0, 0.6);
- text-transform: none;
- font-weight: bold;
- border: 0px solid transparent;
- border-radius: 0.28571429rem;
- -webkit-transition: background 0.1s ease;
- transition: background 0.1s ease;
-}
-
-.ui.label:first-child {
- margin-left: 0em;
-}
-
-.ui.label:last-child {
- margin-right: 0em;
-}
-
-/* Link */
-
-a.ui.label {
- cursor: pointer;
-}
-
-/* Inside Link */
-
-.ui.label > a {
- cursor: pointer;
- color: inherit;
- opacity: 0.5;
- -webkit-transition: 0.1s opacity ease;
- transition: 0.1s opacity ease;
-}
-
-.ui.label > a:hover {
- opacity: 1;
-}
-
-/* Image */
-
-.ui.label > img {
- width: auto !important;
- vertical-align: middle;
- height: 2.1666em !important;
-}
-
-/* Icon */
-
-.ui.label > .icon {
- width: auto;
- margin: 0em 0.75em 0em 0em;
-}
-
-/* Detail */
-
-.ui.label > .detail {
- display: inline-block;
- vertical-align: top;
- font-weight: bold;
- margin-left: 1em;
- opacity: 0.8;
-}
-
-.ui.label > .detail .icon {
- margin: 0em 0.25em 0em 0em;
-}
-
-/* Removable label */
-
-.ui.label > .close.icon,
-.ui.label > .delete.icon {
- cursor: pointer;
- margin-right: 0em;
- margin-left: 0.5em;
- font-size: 0.92857143em;
- opacity: 0.5;
- -webkit-transition: background 0.1s ease;
- transition: background 0.1s ease;
-}
-
-.ui.label > .delete.icon:hover {
- opacity: 1;
-}
-
-/*-------------------
-      Group
---------------------*/
-
-.ui.labels > .label {
- margin: 0em 0.5em 0.5em 0em;
-}
-
-/*-------------------
-      Coupling
---------------------*/
-
-.ui.header > .ui.label {
- margin-top: -0.29165em;
-}
-
-/* Remove border radius on attached segment */
-
-.ui.attached.segment > .ui.top.left.attached.label,
-.ui.bottom.attached.segment > .ui.top.left.attached.label {
- border-top-left-radius: 0;
-}
-
-.ui.attached.segment > .ui.top.right.attached.label,
-.ui.bottom.attached.segment > .ui.top.right.attached.label {
- border-top-right-radius: 0;
-}
-
-.ui.top.attached.segment > .ui.bottom.left.attached.label {
- border-bottom-left-radius: 0;
-}
-
-.ui.top.attached.segment > .ui.bottom.right.attached.label {
- border-bottom-right-radius: 0;
-}
-
-/* Padding on next content after a label */
-
-.ui.top.attached.label:first-child + :not(.attached),
-.ui.top.attached.label + [class*="right floated"] + * {
- margin-top: 2rem !important;
-}
-
-.ui.bottom.attached.label:first-child ~ :last-child:not(.attached) {
- margin-top: 0em;
- margin-bottom: 2rem !important;
-}
-
-/*******************************
-            Types
-*******************************/
-
-.ui.image.label {
- width: auto !important;
- margin-top: 0em;
- margin-bottom: 0em;
- max-width: 9999px;
- vertical-align: baseline;
- text-transform: none;
- background: #E8E8E8;
- padding: 0.5833em 0.833em 0.5833em 0.5em;
- border-radius: 0.28571429rem;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-.ui.image.label img {
- display: inline-block;
- vertical-align: top;
- height: 2.1666em;
- margin: -0.5833em 0.5em -0.5833em -0.5em;
- border-radius: 0.28571429rem 0em 0em 0.28571429rem;
-}
-
-.ui.image.label .detail {
- background: rgba(0, 0, 0, 0.1);
- margin: -0.5833em -0.833em -0.5833em 0.5em;
- padding: 0.5833em 0.833em;
- border-radius: 0em 0.28571429rem 0.28571429rem 0em;
-}
-
-/*-------------------
-        Tag
---------------------*/
-
-.ui.tag.labels .label,
-.ui.tag.label {
- margin-left: 1em;
- position: relative;
- padding-left: 1.5em;
- padding-right: 1.5em;
- border-radius: 0em 0.28571429rem 0.28571429rem 0em;
- -webkit-transition: none;
- transition: none;
-}
-
-.ui.tag.labels .label:before,
-.ui.tag.label:before {
- position: absolute;
- -webkit-transform: translateY(-50%) translateX(50%) rotate(-45deg);
- transform: translateY(-50%) translateX(50%) rotate(-45deg);
- top: 50%;
- right: 100%;
- content: '';
- background-color: inherit;
- background-image: none;
- width: 1.56em;
- height: 1.56em;
- -webkit-transition: none;
- transition: none;
-}
-
-.ui.tag.labels .label:after,
-.ui.tag.label:after {
- position: absolute;
- content: '';
- top: 50%;
- left: -0.25em;
- margin-top: -0.25em;
- background-color: #FFFFFF !important;
- width: 0.5em;
- height: 0.5em;
- -webkit-box-shadow: 0 -1px 1px 0 rgba(0, 0, 0, 0.3);
- box-shadow: 0 -1px 1px 0 rgba(0, 0, 0, 0.3);
- border-radius: 500rem;
-}
-
-/*-------------------
-   Corner Label
---------------------*/
-
-.ui.corner.label {
- position: absolute;
- top: 0em;
- right: 0em;
- margin: 0em;
- padding: 0em;
- text-align: center;
- border-color: #E8E8E8;
- width: 4em;
- height: 4em;
- z-index: 1;
- -webkit-transition: border-color 0.1s ease;
- transition: border-color 0.1s ease;
-}
-
-/* Icon Label */
-
-.ui.corner.label {
- background-color: transparent !important;
-}
-
-.ui.corner.label:after {
- position: absolute;
- content: "";
- right: 0em;
- top: 0em;
- z-index: -1;
- width: 0em;
- height: 0em;
- background-color: transparent !important;
- border-top: 0em solid transparent;
- border-right: 4em solid transparent;
- border-bottom: 4em solid transparent;
- border-left: 0em solid transparent;
- border-right-color: inherit;
- -webkit-transition: border-color 0.1s ease;
- transition: border-color 0.1s ease;
-}
-
-.ui.corner.label .icon {
- cursor: default;
- position: relative;
- top: 0.64285714em;
- left: 0.78571429em;
- font-size: 1.14285714em;
- margin: 0em;
-}
-
-/* Left Corner */
-
-.ui.left.corner.label,
-.ui.left.corner.label:after {
- right: auto;
- left: 0em;
-}
-
-.ui.left.corner.label:after {
- border-top: 4em solid transparent;
- border-right: 4em solid transparent;
- border-bottom: 0em solid transparent;
- border-left: 0em solid transparent;
- border-top-color: inherit;
-}
-
-.ui.left.corner.label .icon {
- left: -0.78571429em;
-}
-
-/* Segment */
-
-.ui.segment > .ui.corner.label {
- top: -1px;
- right: -1px;
-}
-
-.ui.segment > .ui.left.corner.label {
- right: auto;
- left: -1px;
-}
-
-/*-------------------
-      Ribbon
---------------------*/
-
-.ui.ribbon.label {
- position: relative;
- margin: 0em;
- min-width: -webkit-max-content;
- min-width: -moz-max-content;
- min-width: max-content;
- border-radius: 0em 0.28571429rem 0.28571429rem 0em;
- border-color: rgba(0, 0, 0, 0.15);
-}
-
-.ui.ribbon.label:after {
- position: absolute;
- content: '';
- top: 100%;
- left: 0%;
- background-color: transparent !important;
- border-style: solid;
- border-width: 0em 1.2em 1.2em 0em;
- border-color: transparent;
- border-right-color: inherit;
- width: 0em;
- height: 0em;
-}
-
-/* Positioning */
-
-.ui.ribbon.label {
- left: calc( -1rem  -  1.2em );
- margin-right: -1.2em;
- padding-left: calc( 1rem  +  1.2em );
- padding-right: 1.2em;
-}
-
-.ui[class*="right ribbon"].label {
- left: calc(100% +  1rem  +  1.2em );
- padding-left: 1.2em;
- padding-right: calc( 1rem  +  1.2em );
-}
-
-/* Right Ribbon */
-
-.ui[class*="right ribbon"].label {
- text-align: left;
- -webkit-transform: translateX(-100%);
- transform: translateX(-100%);
- border-radius: 0.28571429rem 0em 0em 0.28571429rem;
-}
-
-.ui[class*="right ribbon"].label:after {
- left: auto;
- right: 0%;
- border-style: solid;
- border-width: 1.2em 1.2em 0em 0em;
- border-color: transparent;
- border-top-color: inherit;
-}
-
-/* Inside Table */
-
-.ui.image > .ribbon.label,
-.ui.card .image > .ribbon.label {
- position: absolute;
- top: 1rem;
-}
-
-.ui.card .image > .ui.ribbon.label,
-.ui.image > .ui.ribbon.label {
- left: calc( 0.05rem  -  1.2em );
-}
-
-.ui.card .image > .ui[class*="right ribbon"].label,
-.ui.image > .ui[class*="right ribbon"].label {
- left: calc(100% +  -0.05rem  +  1.2em );
- padding-left: 0.833em;
-}
-
-/* Inside Table */
-
-.ui.table td > .ui.ribbon.label {
- left: calc( -0.78571429em  -  1.2em );
-}
-
-.ui.table td > .ui[class*="right ribbon"].label {
- left: calc(100% +  0.78571429em  +  1.2em );
- padding-left: 0.833em;
-}
-
-/*-------------------
-     Attached
---------------------*/
-
-.ui[class*="top attached"].label,
-.ui.attached.label {
- width: 100%;
- position: absolute;
- margin: 0em;
- top: 0em;
- left: 0em;
- padding: 0.75em 1em;
- border-radius: 0.21428571rem 0.21428571rem 0em 0em;
-}
-
-.ui[class*="bottom attached"].label {
- top: auto;
- bottom: 0em;
- border-radius: 0em 0em 0.21428571rem 0.21428571rem;
-}
-
-.ui[class*="top left attached"].label {
- width: auto;
- margin-top: 0em !important;
- border-radius: 0.21428571rem 0em 0.28571429rem 0em;
-}
-
-.ui[class*="top right attached"].label {
- width: auto;
- left: auto;
- right: 0em;
- border-radius: 0em 0.21428571rem 0em 0.28571429rem;
-}
-
-.ui[class*="bottom left attached"].label {
- width: auto;
- top: auto;
- bottom: 0em;
- border-radius: 0em 0.28571429rem 0em 0.21428571rem;
-}
-
-.ui[class*="bottom right attached"].label {
- top: auto;
- bottom: 0em;
- left: auto;
- right: 0em;
- width: auto;
- border-radius: 0.28571429rem 0em 0.21428571rem 0em;
-}
-
-/*******************************
-            States
-*******************************/
-
-/*-------------------
-     Disabled
---------------------*/
-
-.ui.label.disabled {
- opacity: 0.5;
-}
-
-/*-------------------
-       Hover
---------------------*/
-
-a.ui.labels .label:hover,
-a.ui.label:hover {
- background-color: #E0E0E0;
- border-color: #E0E0E0;
- background-image: none;
- color: rgba(0, 0, 0, 0.8);
-}
-
-.ui.labels a.label:hover:before,
-a.ui.label:hover:before {
- color: rgba(0, 0, 0, 0.8);
-}
-
-/*-------------------
-       Active
---------------------*/
-
-.ui.active.label {
- background-color: #D0D0D0;
- border-color: #D0D0D0;
- background-image: none;
- color: rgba(0, 0, 0, 0.95);
-}
-
-.ui.active.label:before {
- background-color: #D0D0D0;
- background-image: none;
- color: rgba(0, 0, 0, 0.95);
-}
-
-/*-------------------
-    Active Hover
---------------------*/
-
-a.ui.labels .active.label:hover,
-a.ui.active.label:hover {
- background-color: #C8C8C8;
- border-color: #C8C8C8;
- background-image: none;
- color: rgba(0, 0, 0, 0.95);
-}
-
-.ui.labels a.active.label:ActiveHover:before,
-a.ui.active.label:ActiveHover:before {
- background-color: #C8C8C8;
- background-image: none;
- color: rgba(0, 0, 0, 0.95);
-}
-
-/*-------------------
-     Visible
---------------------*/
-
-.ui.labels.visible .label,
-.ui.label.visible:not(.dropdown) {
- display: inline-block !important;
-}
-
-/*-------------------
-     Hidden
---------------------*/
-
-.ui.labels.hidden .label,
-.ui.label.hidden {
- display: none !important;
-}
-
-/*******************************
-          Variations
-*******************************/
-
-/*-------------------
-      Colors
---------------------*/
-
-/*--- Red ---*/
-
-.ui.red.labels .label,
-.ui.red.label {
- background-color: #DB2828 !important;
- border-color: #DB2828 !important;
- color: #FFFFFF !important;
-}
-
-/* Link */
-
-.ui.red.labels .label:hover,
-a.ui.red.label:hover {
- background-color: #d01919 !important;
- border-color: #d01919 !important;
- color: #FFFFFF !important;
-}
-
-/* Corner */
-
-.ui.red.corner.label,
-.ui.red.corner.label:hover {
- background-color: transparent !important;
-}
-
-/* Ribbon */
-
-.ui.red.ribbon.label {
- border-color: #b21e1e !important;
-}
-
-/* Basic */
-
-.ui.basic.red.label {
- background-color: #FFFFFF !important;
- color: #DB2828 !important;
- border-color: #DB2828 !important;
-}
-
-.ui.basic.red.labels a.label:hover,
-a.ui.basic.red.label:hover {
- background-color: #FFFFFF !important;
- color: #d01919 !important;
- border-color: #d01919 !important;
-}
-
-/*--- Orange ---*/
-
-.ui.orange.labels .label,
-.ui.orange.label {
- background-color: #F2711C !important;
- border-color: #F2711C !important;
- color: #FFFFFF !important;
-}
-
-/* Link */
-
-.ui.orange.labels .label:hover,
-a.ui.orange.label:hover {
- background-color: #f26202 !important;
- border-color: #f26202 !important;
- color: #FFFFFF !important;
-}
-
-/* Corner */
-
-.ui.orange.corner.label,
-.ui.orange.corner.label:hover {
- background-color: transparent !important;
-}
-
-/* Ribbon */
-
-.ui.orange.ribbon.label {
- border-color: #cf590c !important;
-}
-
-/* Basic */
-
-.ui.basic.orange.label {
- background-color: #FFFFFF !important;
- color: #F2711C !important;
- border-color: #F2711C !important;
-}
-
-.ui.basic.orange.labels a.label:hover,
-a.ui.basic.orange.label:hover {
- background-color: #FFFFFF !important;
- color: #f26202 !important;
- border-color: #f26202 !important;
-}
-
-/*--- Yellow ---*/
-
-.ui.yellow.labels .label,
-.ui.yellow.label {
- background-color: #FBBD08 !important;
- border-color: #FBBD08 !important;
- color: #FFFFFF !important;
-}
-
-/* Link */
-
-.ui.yellow.labels .label:hover,
-a.ui.yellow.label:hover {
- background-color: #eaae00 !important;
- border-color: #eaae00 !important;
- color: #FFFFFF !important;
-}
-
-/* Corner */
-
-.ui.yellow.corner.label,
-.ui.yellow.corner.label:hover {
- background-color: transparent !important;
-}
-
-/* Ribbon */
-
-.ui.yellow.ribbon.label {
- border-color: #cd9903 !important;
-}
-
-/* Basic */
-
-.ui.basic.yellow.label {
- background-color: #FFFFFF !important;
- color: #FBBD08 !important;
- border-color: #FBBD08 !important;
-}
-
-.ui.basic.yellow.labels a.label:hover,
-a.ui.basic.yellow.label:hover {
- background-color: #FFFFFF !important;
- color: #eaae00 !important;
- border-color: #eaae00 !important;
-}
-
-/*--- Olive ---*/
-
-.ui.olive.labels .label,
-.ui.olive.label {
- background-color: #B5CC18 !important;
- border-color: #B5CC18 !important;
- color: #FFFFFF !important;
-}
-
-/* Link */
-
-.ui.olive.labels .label:hover,
-a.ui.olive.label:hover {
- background-color: #a7bd0d !important;
- border-color: #a7bd0d !important;
- color: #FFFFFF !important;
-}
-
-/* Corner */
-
-.ui.olive.corner.label,
-.ui.olive.corner.label:hover {
- background-color: transparent !important;
-}
-
-/* Ribbon */
-
-.ui.olive.ribbon.label {
- border-color: #198f35 !important;
-}
-
-/* Basic */
-
-.ui.basic.olive.label {
- background-color: #FFFFFF !important;
- color: #B5CC18 !important;
- border-color: #B5CC18 !important;
-}
-
-.ui.basic.olive.labels a.label:hover,
-a.ui.basic.olive.label:hover {
- background-color: #FFFFFF !important;
- color: #a7bd0d !important;
- border-color: #a7bd0d !important;
-}
-
-/*--- Green ---*/
-
-.ui.green.labels .label,
-.ui.green.label {
- background-color: #21BA45 !important;
- border-color: #21BA45 !important;
- color: #FFFFFF !important;
-}
-
-/* Link */
-
-.ui.green.labels .label:hover,
-a.ui.green.label:hover {
- background-color: #16ab39 !important;
- border-color: #16ab39 !important;
- color: #FFFFFF !important;
-}
-
-/* Corner */
-
-.ui.green.corner.label,
-.ui.green.corner.label:hover {
- background-color: transparent !important;
-}
-
-/* Ribbon */
-
-.ui.green.ribbon.label {
- border-color: #198f35 !important;
-}
-
-/* Basic */
-
-.ui.basic.green.label {
- background-color: #FFFFFF !important;
- color: #21BA45 !important;
- border-color: #21BA45 !important;
-}
-
-.ui.basic.green.labels a.label:hover,
-a.ui.basic.green.label:hover {
- background-color: #FFFFFF !important;
- color: #16ab39 !important;
- border-color: #16ab39 !important;
-}
-
-/*--- Teal ---*/
-
-.ui.teal.labels .label,
-.ui.teal.label {
- background-color: #00B5AD !important;
- border-color: #00B5AD !important;
- color: #FFFFFF !important;
-}
-
-/* Link */
-
-.ui.teal.labels .label:hover,
-a.ui.teal.label:hover {
- background-color: #009c95 !important;
- border-color: #009c95 !important;
- color: #FFFFFF !important;
-}
-
-/* Corner */
-
-.ui.teal.corner.label,
-.ui.teal.corner.label:hover {
- background-color: transparent !important;
-}
-
-/* Ribbon */
-
-.ui.teal.ribbon.label {
- border-color: #00827c !important;
-}
-
-/* Basic */
-
-.ui.basic.teal.label {
- background-color: #FFFFFF !important;
- color: #00B5AD !important;
- border-color: #00B5AD !important;
-}
-
-.ui.basic.teal.labels a.label:hover,
-a.ui.basic.teal.label:hover {
- background-color: #FFFFFF !important;
- color: #009c95 !important;
- border-color: #009c95 !important;
-}
-
-/*--- Blue ---*/
-
-.ui.blue.labels .label,
-.ui.blue.label {
- background-color: #2185D0 !important;
- border-color: #2185D0 !important;
- color: #FFFFFF !important;
-}
-
-/* Link */
-
-.ui.blue.labels .label:hover,
-a.ui.blue.label:hover {
- background-color: #1678c2 !important;
- border-color: #1678c2 !important;
- color: #FFFFFF !important;
-}
-
-/* Corner */
-
-.ui.blue.corner.label,
-.ui.blue.corner.label:hover {
- background-color: transparent !important;
-}
-
-/* Ribbon */
-
-.ui.blue.ribbon.label {
- border-color: #1a69a4 !important;
-}
-
-/* Basic */
-
-.ui.basic.blue.label {
- background-color: #FFFFFF !important;
- color: #2185D0 !important;
- border-color: #2185D0 !important;
-}
-
-.ui.basic.blue.labels a.label:hover,
-a.ui.basic.blue.label:hover {
- background-color: #FFFFFF !important;
- color: #1678c2 !important;
- border-color: #1678c2 !important;
-}
-
-/*--- Violet ---*/
-
-.ui.violet.labels .label,
-.ui.violet.label {
- background-color: #6435C9 !important;
- border-color: #6435C9 !important;
- color: #FFFFFF !important;
-}
-
-/* Link */
-
-.ui.violet.labels .label:hover,
-a.ui.violet.label:hover {
- background-color: #5829bb !important;
- border-color: #5829bb !important;
- color: #FFFFFF !important;
-}
-
-/* Corner */
-
-.ui.violet.corner.label,
-.ui.violet.corner.label:hover {
- background-color: transparent !important;
-}
-
-/* Ribbon */
-
-.ui.violet.ribbon.label {
- border-color: #502aa1 !important;
-}
-
-/* Basic */
-
-.ui.basic.violet.label {
- background-color: #FFFFFF !important;
- color: #6435C9 !important;
- border-color: #6435C9 !important;
-}
-
-.ui.basic.violet.labels a.label:hover,
-a.ui.basic.violet.label:hover {
- background-color: #FFFFFF !important;
- color: #5829bb !important;
- border-color: #5829bb !important;
-}
-
-/*--- Purple ---*/
-
-.ui.purple.labels .label,
-.ui.purple.label {
- background-color: #A333C8 !important;
- border-color: #A333C8 !important;
- color: #FFFFFF !important;
-}
-
-/* Link */
-
-.ui.purple.labels .label:hover,
-a.ui.purple.label:hover {
- background-color: #9627ba !important;
- border-color: #9627ba !important;
- color: #FFFFFF !important;
-}
-
-/* Corner */
-
-.ui.purple.corner.label,
-.ui.purple.corner.label:hover {
- background-color: transparent !important;
-}
-
-/* Ribbon */
-
-.ui.purple.ribbon.label {
- border-color: #82299f !important;
-}
-
-/* Basic */
-
-.ui.basic.purple.label {
- background-color: #FFFFFF !important;
- color: #A333C8 !important;
- border-color: #A333C8 !important;
-}
-
-.ui.basic.purple.labels a.label:hover,
-a.ui.basic.purple.label:hover {
- background-color: #FFFFFF !important;
- color: #9627ba !important;
- border-color: #9627ba !important;
-}
-
-/*--- Pink ---*/
-
-.ui.pink.labels .label,
-.ui.pink.label {
- background-color: #E03997 !important;
- border-color: #E03997 !important;
- color: #FFFFFF !important;
-}
-
-/* Link */
-
-.ui.pink.labels .label:hover,
-a.ui.pink.label:hover {
- background-color: #e61a8d !important;
- border-color: #e61a8d !important;
- color: #FFFFFF !important;
-}
-
-/* Corner */
-
-.ui.pink.corner.label,
-.ui.pink.corner.label:hover {
- background-color: transparent !important;
-}
-
-/* Ribbon */
-
-.ui.pink.ribbon.label {
- border-color: #c71f7e !important;
-}
-
-/* Basic */
-
-.ui.basic.pink.label {
- background-color: #FFFFFF !important;
- color: #E03997 !important;
- border-color: #E03997 !important;
-}
-
-.ui.basic.pink.labels a.label:hover,
-a.ui.basic.pink.label:hover {
- background-color: #FFFFFF !important;
- color: #e61a8d !important;
- border-color: #e61a8d !important;
-}
-
-/*--- Brown ---*/
-
-.ui.brown.labels .label,
-.ui.brown.label {
- background-color: #A5673F !important;
- border-color: #A5673F !important;
- color: #FFFFFF !important;
-}
-
-/* Link */
-
-.ui.brown.labels .label:hover,
-a.ui.brown.label:hover {
- background-color: #975b33 !important;
- border-color: #975b33 !important;
- color: #FFFFFF !important;
-}
-
-/* Corner */
-
-.ui.brown.corner.label,
-.ui.brown.corner.label:hover {
- background-color: transparent !important;
-}
-
-/* Ribbon */
-
-.ui.brown.ribbon.label {
- border-color: #805031 !important;
-}
-
-/* Basic */
-
-.ui.basic.brown.label {
- background-color: #FFFFFF !important;
- color: #A5673F !important;
- border-color: #A5673F !important;
-}
-
-.ui.basic.brown.labels a.label:hover,
-a.ui.basic.brown.label:hover {
- background-color: #FFFFFF !important;
- color: #975b33 !important;
- border-color: #975b33 !important;
-}
-
-/*--- Grey ---*/
-
-.ui.grey.labels .label,
-.ui.grey.label {
- background-color: #767676 !important;
- border-color: #767676 !important;
- color: #FFFFFF !important;
-}
-
-/* Link */
-
-.ui.grey.labels .label:hover,
-a.ui.grey.label:hover {
- background-color: #838383 !important;
- border-color: #838383 !important;
- color: #FFFFFF !important;
-}
-
-/* Corner */
-
-.ui.grey.corner.label,
-.ui.grey.corner.label:hover {
- background-color: transparent !important;
-}
-
-/* Ribbon */
-
-.ui.grey.ribbon.label {
- border-color: #805031 !important;
-}
-
-/* Basic */
-
-.ui.basic.grey.label {
- background-color: #FFFFFF !important;
- color: #767676 !important;
- border-color: #767676 !important;
-}
-
-.ui.basic.grey.labels a.label:hover,
-a.ui.basic.grey.label:hover {
- background-color: #FFFFFF !important;
- color: #838383 !important;
- border-color: #838383 !important;
-}
-
-/*--- Black ---*/
-
-.ui.black.labels .label,
-.ui.black.label {
- background-color: #1B1C1D !important;
- border-color: #1B1C1D !important;
- color: #FFFFFF !important;
-}
-
-/* Link */
-
-.ui.black.labels .label:hover,
-a.ui.black.label:hover {
- background-color: #27292a !important;
- border-color: #27292a !important;
- color: #FFFFFF !important;
-}
-
-/* Corner */
-
-.ui.black.corner.label,
-.ui.black.corner.label:hover {
- background-color: transparent !important;
-}
-
-/* Ribbon */
-
-.ui.black.ribbon.label {
- border-color: #805031 !important;
-}
-
-/* Basic */
-
-.ui.basic.black.label {
- background-color: #FFFFFF !important;
- color: #1B1C1D !important;
- border-color: #1B1C1D !important;
-}
-
-.ui.basic.black.labels a.label:hover,
-a.ui.basic.black.label:hover {
- background-color: #FFFFFF !important;
- color: #27292a !important;
- border-color: #27292a !important;
-}
-
-/*-------------------
-       Basic
---------------------*/
-
-.ui.basic.label {
- background: none #FFFFFF;
- border: 1px solid rgba(34, 36, 38, 0.15);
- color: rgba(0, 0, 0, 0.87);
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-/* Link */
-
-a.ui.basic.label:hover {
- text-decoration: none;
- background: none #FFFFFF;
- color: #1e70bf;
- -webkit-box-shadow: 1px solid rgba(34, 36, 38, 0.15);
- box-shadow: 1px solid rgba(34, 36, 38, 0.15);
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-/* Pointing */
-
-.ui.basic.pointing.label:before {
- border-color: inherit;
-}
-
-/*-------------------
-      Fluid
---------------------*/
-
-.ui.label.fluid,
-.ui.fluid.labels > .label {
- width: 100%;
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
-}
-
-/*-------------------
-      Inverted
---------------------*/
-
-.ui.inverted.labels .label,
-.ui.inverted.label {
- color: rgba(255, 255, 255, 0.9) !important;
-}
-
-/*-------------------
-    Horizontal
---------------------*/
-
-.ui.horizontal.labels .label,
-.ui.horizontal.label {
- margin: 0em 0.5em 0em 0em;
- padding: 0.4em 0.833em;
- min-width: 3em;
- text-align: center;
-}
-
-/*-------------------
-      Circular
---------------------*/
-
-.ui.circular.labels .label,
-.ui.circular.label {
- min-width: 2em;
- min-height: 2em;
- padding: 0.5em !important;
- line-height: 1em;
- text-align: center;
- border-radius: 500rem;
-}
-
-.ui.empty.circular.labels .label,
-.ui.empty.circular.label {
- min-width: 0em;
- min-height: 0em;
- overflow: hidden;
- width: 0.5em;
- height: 0.5em;
- vertical-align: baseline;
-}
-
-/*-------------------
-      Pointing
---------------------*/
-
-.ui.pointing.label {
- position: relative;
-}
-
-.ui.attached.pointing.label {
- position: absolute;
-}
-
-.ui.pointing.label:before {
- background-color: inherit;
- background-image: inherit;
- border-width: none;
- border-style: solid;
- border-color: inherit;
-}
-
-/* Arrow */
-
-.ui.pointing.label:before {
- position: absolute;
- content: '';
- -webkit-transform: rotate(45deg);
- transform: rotate(45deg);
- background-image: none;
- z-index: 2;
- width: 0.6666em;
- height: 0.6666em;
- -webkit-transition: background 0.1s ease;
- transition: background 0.1s ease;
-}
-
-/*--- Above ---*/
-
-.ui.pointing.label,
-.ui[class*="pointing above"].label {
- margin-top: 1em;
-}
-
-.ui.pointing.label:before,
-.ui[class*="pointing above"].label:before {
- border-width: 1px 0px 0px 1px;
- -webkit-transform: translateX(-50%) translateY(-50%) rotate(45deg);
- transform: translateX(-50%) translateY(-50%) rotate(45deg);
- top: 0%;
- left: 50%;
-}
-
-/*--- Below ---*/
-
-.ui[class*="bottom pointing"].label,
-.ui[class*="pointing below"].label {
- margin-top: 0em;
- margin-bottom: 1em;
-}
-
-.ui[class*="bottom pointing"].label:before,
-.ui[class*="pointing below"].label:before {
- border-width: 0px 1px 1px 0px;
- top: auto;
- right: auto;
- -webkit-transform: translateX(-50%) translateY(-50%) rotate(45deg);
- transform: translateX(-50%) translateY(-50%) rotate(45deg);
- top: 100%;
- left: 50%;
-}
-
-/*--- Left ---*/
-
-.ui[class*="left pointing"].label {
- margin-top: 0em;
- margin-left: 0.6666em;
-}
-
-.ui[class*="left pointing"].label:before {
- border-width: 0px 0px 1px 1px;
- -webkit-transform: translateX(-50%) translateY(-50%) rotate(45deg);
- transform: translateX(-50%) translateY(-50%) rotate(45deg);
- bottom: auto;
- right: auto;
- top: 50%;
- left: 0em;
-}
-
-/*--- Right ---*/
-
-.ui[class*="right pointing"].label {
- margin-top: 0em;
- margin-right: 0.6666em;
-}
-
-.ui[class*="right pointing"].label:before {
- border-width: 1px 1px 0px 0px;
- -webkit-transform: translateX(50%) translateY(-50%) rotate(45deg);
- transform: translateX(50%) translateY(-50%) rotate(45deg);
- top: 50%;
- right: 0%;
- bottom: auto;
- left: auto;
-}
-
-/* Basic Pointing */
-
-/*--- Above ---*/
-
-.ui.basic.pointing.label:before,
-.ui.basic[class*="pointing above"].label:before {
- margin-top: -1px;
-}
-
-/*--- Below ---*/
-
-.ui.basic[class*="bottom pointing"].label:before,
-.ui.basic[class*="pointing below"].label:before {
- bottom: auto;
- top: 100%;
- margin-top: 1px;
-}
-
-/*--- Left ---*/
-
-.ui.basic[class*="left pointing"].label:before {
- top: 50%;
- left: -1px;
-}
-
-/*--- Right ---*/
-
-.ui.basic[class*="right pointing"].label:before {
- top: 50%;
- right: -1px;
-}
-
-/*------------------
-  Floating Label
--------------------*/
-
-.ui.floating.label {
- position: absolute;
- z-index: 100;
- top: -1em;
- left: 100%;
- margin: 0em 0em 0em -1.5em !important;
-}
-
-/*-------------------
-       Sizes
---------------------*/
-
-.ui.mini.labels .label,
-.ui.mini.label {
- font-size: 0.64285714rem;
-}
-
-.ui.tiny.labels .label,
-.ui.tiny.label {
- font-size: 0.71428571rem;
-}
-
-.ui.small.labels .label,
-.ui.small.label {
- font-size: 0.78571429rem;
-}
-
-.ui.labels .label,
-.ui.label {
- font-size: 0.85714286rem;
-}
-
-.ui.large.labels .label,
-.ui.large.label {
- font-size: 1rem;
-}
-
-.ui.big.labels .label,
-.ui.big.label {
- font-size: 1.28571429rem;
-}
-
-.ui.huge.labels .label,
-.ui.huge.label {
- font-size: 1.42857143rem;
-}
-
-.ui.massive.labels .label,
-.ui.massive.label {
- font-size: 1.71428571rem;
-}
-
-/*******************************
-        Theme Overrides
-*******************************/
-
-/*******************************
-        Site Overrides
-*******************************/
-/*!
-* # Semantic UI 2.3.0 - List
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-           List
-*******************************/
-
-ul.ui.list,
-ol.ui.list,
-.ui.list {
- list-style-type: none;
- margin: 1em 0em;
- padding: 0em 0em;
-}
-
-ul.ui.list:first-child,
-ol.ui.list:first-child,
-.ui.list:first-child {
- margin-top: 0em;
- padding-top: 0em;
-}
-
-ul.ui.list:last-child,
-ol.ui.list:last-child,
-.ui.list:last-child {
- margin-bottom: 0em;
- padding-bottom: 0em;
-}
-
-/*******************************
-           Content
-*******************************/
-
-/* List Item */
-
-ul.ui.list li,
-ol.ui.list li,
-.ui.list > .item,
-.ui.list .list > .item {
- display: list-item;
- table-layout: fixed;
- list-style-type: none;
- list-style-position: outside;
- padding: 0.21428571em 0em;
- line-height: 1.14285714em;
-}
-
-ul.ui.list > li:first-child:after,
-ol.ui.list > li:first-child:after,
-.ui.list > .list > .item,
-.ui.list > .item:after {
- content: '';
- display: block;
- height: 0;
- clear: both;
- visibility: hidden;
-}
-
-ul.ui.list li:first-child,
-ol.ui.list li:first-child,
-.ui.list .list > .item:first-child,
-.ui.list > .item:first-child {
- padding-top: 0em;
-}
-
-ul.ui.list li:last-child,
-ol.ui.list li:last-child,
-.ui.list .list > .item:last-child,
-.ui.list > .item:last-child {
- padding-bottom: 0em;
-}
-
-/* Child List */
-
-ul.ui.list ul,
-ol.ui.list ol,
-.ui.list .list {
- clear: both;
- margin: 0em;
- padding: 0.75em 0em 0.25em 0.5em;
-}
-
-/* Child Item */
-
-ul.ui.list ul li,
-ol.ui.list ol li,
-.ui.list .list > .item {
- padding: 0.14285714em 0em;
- line-height: inherit;
-}
-
-/* Icon */
-
-.ui.list .list > .item > i.icon,
-.ui.list > .item > i.icon {
- display: table-cell;
- margin: 0em;
- padding-top: 0em;
- padding-right: 0.28571429em;
- vertical-align: top;
- -webkit-transition: color 0.1s ease;
- transition: color 0.1s ease;
-}
-
-.ui.list .list > .item > i.icon:only-child,
-.ui.list > .item > i.icon:only-child {
- display: inline-block;
- vertical-align: top;
-}
-
-/* Image */
-
-.ui.list .list > .item > .image,
-.ui.list > .item > .image {
- display: table-cell;
- background-color: transparent;
- margin: 0em;
- vertical-align: top;
-}
-
-.ui.list .list > .item > .image:not(:only-child):not(img),
-.ui.list > .item > .image:not(:only-child):not(img) {
- padding-right: 0.5em;
-}
-
-.ui.list .list > .item > .image img,
-.ui.list > .item > .image img {
- vertical-align: top;
-}
-
-.ui.list .list > .item > img.image,
-.ui.list .list > .item > .image:only-child,
-.ui.list > .item > img.image,
-.ui.list > .item > .image:only-child {
- display: inline-block;
-}
-
-/* Content */
-
-.ui.list .list > .item > .content,
-.ui.list > .item > .content {
- line-height: 1.14285714em;
-}
-
-.ui.list .list > .item > .image + .content,
-.ui.list .list > .item > .icon + .content,
-.ui.list > .item > .image + .content,
-.ui.list > .item > .icon + .content {
- display: table-cell;
- padding: 0em 0em 0em 0.5em;
- vertical-align: top;
-}
-
-.ui.list .list > .item > img.image + .content,
-.ui.list > .item > img.image + .content {
- display: inline-block;
-}
-
-.ui.list .list > .item > .content > .list,
-.ui.list > .item > .content > .list {
- margin-left: 0em;
- padding-left: 0em;
-}
-
-/* Header */
-
-.ui.list .list > .item .header,
-.ui.list > .item .header {
- display: block;
- margin: 0em;
- font-family: 'Lato', 'Helvetica Neue', Arial, Helvetica, sans-serif;
- font-weight: bold;
- color: rgba(0, 0, 0, 0.87);
-}
-
-/* Description */
-
-.ui.list .list > .item .description,
-.ui.list > .item .description {
- display: block;
- color: rgba(0, 0, 0, 0.7);
-}
-
-/* Child Link */
-
-.ui.list > .item a,
-.ui.list .list > .item a {
- cursor: pointer;
-}
-
-/* Linking Item */
-
-.ui.list .list > a.item,
-.ui.list > a.item {
- cursor: pointer;
- color: #4183C4;
-}
-
-.ui.list .list > a.item:hover,
-.ui.list > a.item:hover {
- color: #1e70bf;
-}
-
-/* Linked Item Icons */
-
-.ui.list .list > a.item i.icon,
-.ui.list > a.item i.icon {
- color: rgba(0, 0, 0, 0.4);
-}
-
-/* Header Link */
-
-.ui.list .list > .item a.header,
-.ui.list > .item a.header {
- cursor: pointer;
- color: #4183C4 !important;
-}
-
-.ui.list .list > .item a.header:hover,
-.ui.list > .item a.header:hover {
- color: #1e70bf !important;
-}
-
-/* Floated Content */
-
-.ui[class*="left floated"].list {
- float: left;
-}
-
-.ui[class*="right floated"].list {
- float: right;
-}
-
-.ui.list .list > .item [class*="left floated"],
-.ui.list > .item [class*="left floated"] {
- float: left;
- margin: 0em 1em 0em 0em;
-}
-
-.ui.list .list > .item [class*="right floated"],
-.ui.list > .item [class*="right floated"] {
- float: right;
- margin: 0em 0em 0em 1em;
-}
-
-/*******************************
-           Coupling
-*******************************/
-
-.ui.menu .ui.list > .item,
-.ui.menu .ui.list .list > .item {
- display: list-item;
- table-layout: fixed;
- background-color: transparent;
- list-style-type: none;
- list-style-position: outside;
- padding: 0.21428571em 0em;
- line-height: 1.14285714em;
-}
-
-.ui.menu .ui.list .list > .item:before,
-.ui.menu .ui.list > .item:before {
- border: none;
- background: none;
-}
-
-.ui.menu .ui.list .list > .item:first-child,
-.ui.menu .ui.list > .item:first-child {
- padding-top: 0em;
-}
-
-.ui.menu .ui.list .list > .item:last-child,
-.ui.menu .ui.list > .item:last-child {
- padding-bottom: 0em;
-}
-
-/*******************************
-           Types
-*******************************/
-
-/*-------------------
-     Horizontal
---------------------*/
-
-.ui.horizontal.list {
- display: inline-block;
- font-size: 0em;
-}
-
-.ui.horizontal.list > .item {
- display: inline-block;
- margin-left: 1em;
- font-size: 1rem;
-}
-
-.ui.horizontal.list:not(.celled) > .item:first-child {
- margin-left: 0em !important;
- padding-left: 0em !important;
-}
-
-.ui.horizontal.list .list {
- padding-left: 0em;
- padding-bottom: 0em;
-}
-
-.ui.horizontal.list > .item > .image,
-.ui.horizontal.list .list > .item > .image,
-.ui.horizontal.list > .item > .icon,
-.ui.horizontal.list .list > .item > .icon,
-.ui.horizontal.list > .item > .content,
-.ui.horizontal.list .list > .item > .content {
- vertical-align: middle;
-}
-
-/* Padding on all elements */
-
-.ui.horizontal.list > .item:first-child,
-.ui.horizontal.list > .item:last-child {
- padding-top: 0.21428571em;
- padding-bottom: 0.21428571em;
-}
-
-/* Horizontal List */
-
-.ui.horizontal.list > .item > i.icon {
- margin: 0em;
- padding: 0em 0.25em 0em 0em;
-}
-
-.ui.horizontal.list > .item > .icon,
-.ui.horizontal.list > .item > .icon + .content {
- float: none;
- display: inline-block;
-}
-
-/*******************************
-            States
-*******************************/
-
-/*-------------------
-      Disabled
---------------------*/
-
-.ui.list .list > .disabled.item,
-.ui.list > .disabled.item {
- pointer-events: none;
- color: rgba(40, 40, 40, 0.3) !important;
-}
-
-.ui.inverted.list .list > .disabled.item,
-.ui.inverted.list > .disabled.item {
- color: rgba(225, 225, 225, 0.3) !important;
-}
-
-/*-------------------
-       Hover
---------------------*/
-
-.ui.list .list > a.item:hover .icon,
-.ui.list > a.item:hover .icon {
- color: rgba(0, 0, 0, 0.87);
-}
-
-/*******************************
-          Variations
-*******************************/
-
-/*-------------------
-      Inverted
---------------------*/
-
-.ui.inverted.list .list > a.item > .icon,
-.ui.inverted.list > a.item > .icon {
- color: rgba(255, 255, 255, 0.7);
-}
-
-.ui.inverted.list .list > .item .header,
-.ui.inverted.list > .item .header {
- color: rgba(255, 255, 255, 0.9);
-}
-
-.ui.inverted.list .list > .item .description,
-.ui.inverted.list > .item .description {
- color: rgba(255, 255, 255, 0.7);
-}
-
-/* Item Link */
-
-.ui.inverted.list .list > a.item,
-.ui.inverted.list > a.item {
- cursor: pointer;
- color: rgba(255, 255, 255, 0.9);
-}
-
-.ui.inverted.list .list > a.item:hover,
-.ui.inverted.list > a.item:hover {
- color: #1e70bf;
-}
-
-/* Linking Content */
-
-.ui.inverted.list .item a:not(.ui) {
- color: rgba(255, 255, 255, 0.9) !important;
-}
-
-.ui.inverted.list .item a:not(.ui):hover {
- color: #1e70bf !important;
-}
-
-/*-------------------
-      Aligned
---------------------*/
-
-.ui.list[class*="top aligned"] .image,
-.ui.list[class*="top aligned"] .content,
-.ui.list [class*="top aligned"] {
- vertical-align: top !important;
-}
-
-.ui.list[class*="middle aligned"] .image,
-.ui.list[class*="middle aligned"] .content,
-.ui.list [class*="middle aligned"] {
- vertical-align: middle !important;
-}
-
-.ui.list[class*="bottom aligned"] .image,
-.ui.list[class*="bottom aligned"] .content,
-.ui.list [class*="bottom aligned"] {
- vertical-align: bottom !important;
-}
-
-/*-------------------
-      Link
---------------------*/
-
-.ui.link.list .item,
-.ui.link.list a.item,
-.ui.link.list .item a:not(.ui) {
- color: rgba(0, 0, 0, 0.4);
- -webkit-transition: 0.1s color ease;
- transition: 0.1s color ease;
-}
-
-.ui.link.list.list a.item:hover,
-.ui.link.list.list .item a:not(.ui):hover {
- color: rgba(0, 0, 0, 0.8);
-}
-
-.ui.link.list.list a.item:active,
-.ui.link.list.list .item a:not(.ui):active {
- color: rgba(0, 0, 0, 0.9);
-}
-
-.ui.link.list.list .active.item,
-.ui.link.list.list .active.item a:not(.ui) {
- color: rgba(0, 0, 0, 0.95);
-}
-
-/* Inverted */
-
-.ui.inverted.link.list .item,
-.ui.inverted.link.list a.item,
-.ui.inverted.link.list .item a:not(.ui) {
- color: rgba(255, 255, 255, 0.5);
-}
-
-.ui.inverted.link.list.list a.item:hover,
-.ui.inverted.link.list.list .item a:not(.ui):hover {
- color: #ffffff;
-}
-
-.ui.inverted.link.list.list a.item:active,
-.ui.inverted.link.list.list .item a:not(.ui):active {
- color: #ffffff;
-}
-
-.ui.inverted.link.list.list a.active.item,
-.ui.inverted.link.list.list .active.item a:not(.ui) {
- color: #ffffff;
-}
-
-/*-------------------
-     Selection
---------------------*/
-
-.ui.selection.list .list > .item,
-.ui.selection.list > .item {
- cursor: pointer;
- background: transparent;
- padding: 0.5em 0.5em;
- margin: 0em;
- color: rgba(0, 0, 0, 0.4);
- border-radius: 0.5em;
- -webkit-transition: 0.1s color ease, 0.1s padding-left ease, 0.1s background-color ease;
- transition: 0.1s color ease, 0.1s padding-left ease, 0.1s background-color ease;
-}
-
-.ui.selection.list .list > .item:last-child,
-.ui.selection.list > .item:last-child {
- margin-bottom: 0em;
-}
-
-.ui.selection.list.list > .item:hover,
-.ui.selection.list > .item:hover {
- background: rgba(0, 0, 0, 0.03);
- color: rgba(0, 0, 0, 0.8);
-}
-
-.ui.selection.list .list > .item:active,
-.ui.selection.list > .item:active {
- background: rgba(0, 0, 0, 0.05);
- color: rgba(0, 0, 0, 0.9);
-}
-
-.ui.selection.list .list > .item.active,
-.ui.selection.list > .item.active {
- background: rgba(0, 0, 0, 0.05);
- color: rgba(0, 0, 0, 0.95);
-}
-
-/* Inverted */
-
-.ui.inverted.selection.list > .item,
-.ui.inverted.selection.list > .item {
- background: transparent;
- color: rgba(255, 255, 255, 0.5);
-}
-
-.ui.inverted.selection.list > .item:hover,
-.ui.inverted.selection.list > .item:hover {
- background: rgba(255, 255, 255, 0.02);
- color: #ffffff;
-}
-
-.ui.inverted.selection.list > .item:active,
-.ui.inverted.selection.list > .item:active {
- background: rgba(255, 255, 255, 0.08);
- color: #ffffff;
-}
-
-.ui.inverted.selection.list > .item.active,
-.ui.inverted.selection.list > .item.active {
- background: rgba(255, 255, 255, 0.08);
- color: #ffffff;
-}
-
-/* Celled / Divided Selection List */
-
-.ui.celled.selection.list .list > .item,
-.ui.divided.selection.list .list > .item,
-.ui.celled.selection.list > .item,
-.ui.divided.selection.list > .item {
- border-radius: 0em;
-}
-
-/*-------------------
-      Animated
---------------------*/
-
-.ui.animated.list > .item {
- -webkit-transition: 0.25s color ease 0.1s, 0.25s padding-left ease 0.1s, 0.25s background-color ease 0.1s;
- transition: 0.25s color ease 0.1s, 0.25s padding-left ease 0.1s, 0.25s background-color ease 0.1s;
-}
-
-.ui.animated.list:not(.horizontal) > .item:hover {
- padding-left: 1em;
-}
-
-/*-------------------
-      Fitted
---------------------*/
-
-.ui.fitted.list:not(.selection) .list > .item,
-.ui.fitted.list:not(.selection) > .item {
- padding-left: 0em;
- padding-right: 0em;
-}
-
-.ui.fitted.selection.list .list > .item,
-.ui.fitted.selection.list > .item {
- margin-left: -0.5em;
- margin-right: -0.5em;
-}
-
-/*-------------------
-     Bulleted
---------------------*/
-
-ul.ui.list,
-.ui.bulleted.list {
- margin-left: 1.25rem;
-}
-
-ul.ui.list li,
-.ui.bulleted.list .list > .item,
-.ui.bulleted.list > .item {
- position: relative;
-}
-
-ul.ui.list li:before,
-.ui.bulleted.list .list > .item:before,
-.ui.bulleted.list > .item:before {
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- pointer-events: none;
- position: absolute;
- top: auto;
- left: auto;
- font-weight: normal;
- margin-left: -1.25rem;
- content: '•';
- opacity: 1;
- color: inherit;
- vertical-align: top;
-}
-
-ul.ui.list li:before,
-.ui.bulleted.list .list > a.item:before,
-.ui.bulleted.list > a.item:before {
- color: rgba(0, 0, 0, 0.87);
-}
-
-ul.ui.list ul,
-.ui.bulleted.list .list {
- padding-left: 1.25rem;
-}
-
-/* Horizontal Bulleted */
-
-ul.ui.horizontal.bulleted.list,
-.ui.horizontal.bulleted.list {
- margin-left: 0em;
-}
-
-ul.ui.horizontal.bulleted.list li,
-.ui.horizontal.bulleted.list > .item {
- margin-left: 1.75rem;
-}
-
-ul.ui.horizontal.bulleted.list li:first-child,
-.ui.horizontal.bulleted.list > .item:first-child {
- margin-left: 0em;
-}
-
-ul.ui.horizontal.bulleted.list li::before,
-.ui.horizontal.bulleted.list > .item::before {
- color: rgba(0, 0, 0, 0.87);
-}
-
-ul.ui.horizontal.bulleted.list li:first-child::before,
-.ui.horizontal.bulleted.list > .item:first-child::before {
- display: none;
-}
-
-/*-------------------
-      Ordered
---------------------*/
-
-ol.ui.list,
-.ui.ordered.list,
-.ui.ordered.list .list,
-ol.ui.list ol {
- counter-reset: ordered;
- margin-left: 1.25rem;
- list-style-type: none;
-}
-
-ol.ui.list li,
-.ui.ordered.list .list > .item,
-.ui.ordered.list > .item {
- list-style-type: none;
- position: relative;
-}
-
-ol.ui.list li:before,
-.ui.ordered.list .list > .item:before,
-.ui.ordered.list > .item:before {
- position: absolute;
- top: auto;
- left: auto;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- pointer-events: none;
- margin-left: -1.25rem;
- counter-increment: ordered;
- content: counters(ordered, ".") " ";
- text-align: right;
- color: rgba(0, 0, 0, 0.87);
- vertical-align: middle;
- opacity: 0.8;
-}
-
-ol.ui.inverted.list li:before,
-.ui.ordered.inverted.list .list > .item:before,
-.ui.ordered.inverted.list > .item:before {
- color: rgba(255, 255, 255, 0.7);
-}
-
-/* Value */
-
-.ui.ordered.list > .list > .item[data-value],
-.ui.ordered.list > .item[data-value] {
- content: attr(data-value);
-}
-
-ol.ui.list li[value]:before {
- content: attr(value);
-}
-
-/* Child Lists */
-
-ol.ui.list ol,
-.ui.ordered.list .list {
- margin-left: 1em;
-}
-
-ol.ui.list ol li:before,
-.ui.ordered.list .list > .item:before {
- margin-left: -2em;
-}
-
-/* Horizontal Ordered */
-
-ol.ui.horizontal.list,
-.ui.ordered.horizontal.list {
- margin-left: 0em;
-}
-
-ol.ui.horizontal.list li:before,
-.ui.ordered.horizontal.list .list > .item:before,
-.ui.ordered.horizontal.list > .item:before {
- position: static;
- margin: 0em 0.5em 0em 0em;
-}
-
-/*-------------------
-      Divided
---------------------*/
-
-.ui.divided.list > .item {
- border-top: 1px solid rgba(34, 36, 38, 0.15);
-}
-
-.ui.divided.list .list > .item {
- border-top: none;
-}
-
-.ui.divided.list .item .list > .item {
- border-top: none;
-}
-
-.ui.divided.list .list > .item:first-child,
-.ui.divided.list > .item:first-child {
- border-top: none;
-}
-
-/* Sub Menu */
-
-.ui.divided.list:not(.horizontal) .list > .item:first-child {
- border-top-width: 1px;
-}
-
-/* Divided bulleted */
-
-.ui.divided.bulleted.list:not(.horizontal),
-.ui.divided.bulleted.list .list {
- margin-left: 0em;
- padding-left: 0em;
-}
-
-.ui.divided.bulleted.list > .item:not(.horizontal) {
- padding-left: 1.25rem;
-}
-
-/* Divided Ordered */
-
-.ui.divided.ordered.list {
- margin-left: 0em;
-}
-
-.ui.divided.ordered.list .list > .item,
-.ui.divided.ordered.list > .item {
- padding-left: 1.25rem;
-}
-
-.ui.divided.ordered.list .item .list {
- margin-left: 0em;
- margin-right: 0em;
- padding-bottom: 0.21428571em;
-}
-
-.ui.divided.ordered.list .item .list > .item {
- padding-left: 1em;
-}
-
-/* Divided Selection */
-
-.ui.divided.selection.list .list > .item,
-.ui.divided.selection.list > .item {
- margin: 0em;
- border-radius: 0em;
-}
-
-/* Divided horizontal */
-
-.ui.divided.horizontal.list {
- margin-left: 0em;
-}
-
-.ui.divided.horizontal.list > .item:not(:first-child) {
- padding-left: 0.5em;
-}
-
-.ui.divided.horizontal.list > .item:not(:last-child) {
- padding-right: 0.5em;
-}
-
-.ui.divided.horizontal.list > .item {
- border-top: none;
- border-left: 1px solid rgba(34, 36, 38, 0.15);
- margin: 0em;
- line-height: 0.6;
-}
-
-.ui.horizontal.divided.list > .item:first-child {
- border-left: none;
-}
-
-/* Inverted */
-
-.ui.divided.inverted.list > .item,
-.ui.divided.inverted.list > .list,
-.ui.divided.inverted.horizontal.list > .item {
- border-color: rgba(255, 255, 255, 0.1);
-}
-
-/*-------------------
-       Celled
---------------------*/
-
-.ui.celled.list > .item,
-.ui.celled.list > .list {
- border-top: 1px solid rgba(34, 36, 38, 0.15);
- padding-left: 0.5em;
- padding-right: 0.5em;
-}
-
-.ui.celled.list > .item:last-child {
- border-bottom: 1px solid rgba(34, 36, 38, 0.15);
-}
-
-/* Padding on all elements */
-
-.ui.celled.list > .item:first-child,
-.ui.celled.list > .item:last-child {
- padding-top: 0.21428571em;
- padding-bottom: 0.21428571em;
-}
-
-/* Sub Menu */
-
-.ui.celled.list .item .list > .item {
- border-width: 0px;
-}
-
-.ui.celled.list .list > .item:first-child {
- border-top-width: 0px;
-}
-
-/* Celled Bulleted */
-
-.ui.celled.bulleted.list {
- margin-left: 0em;
-}
-
-.ui.celled.bulleted.list .list > .item,
-.ui.celled.bulleted.list > .item {
- padding-left: 1.25rem;
-}
-
-.ui.celled.bulleted.list .item .list {
- margin-left: -1.25rem;
- margin-right: -1.25rem;
- padding-bottom: 0.21428571em;
-}
-
-/* Celled Ordered */
-
-.ui.celled.ordered.list {
- margin-left: 0em;
-}
-
-.ui.celled.ordered.list .list > .item,
-.ui.celled.ordered.list > .item {
- padding-left: 1.25rem;
-}
-
-.ui.celled.ordered.list .item .list {
- margin-left: 0em;
- margin-right: 0em;
- padding-bottom: 0.21428571em;
-}
-
-.ui.celled.ordered.list .list > .item {
- padding-left: 1em;
-}
-
-/* Celled Horizontal */
-
-.ui.horizontal.celled.list {
- margin-left: 0em;
-}
-
-.ui.horizontal.celled.list .list > .item,
-.ui.horizontal.celled.list > .item {
- border-top: none;
- border-left: 1px solid rgba(34, 36, 38, 0.15);
- margin: 0em;
- padding-left: 0.5em;
- padding-right: 0.5em;
- line-height: 0.6;
-}
-
-.ui.horizontal.celled.list .list > .item:last-child,
-.ui.horizontal.celled.list > .item:last-child {
- border-bottom: none;
- border-right: 1px solid rgba(34, 36, 38, 0.15);
-}
-
-/* Inverted */
-
-.ui.celled.inverted.list > .item,
-.ui.celled.inverted.list > .list {
- border-color: 1px solid rgba(255, 255, 255, 0.1);
-}
-
-.ui.celled.inverted.horizontal.list .list > .item,
-.ui.celled.inverted.horizontal.list > .item {
- border-color: 1px solid rgba(255, 255, 255, 0.1);
-}
-
-/*-------------------
-      Relaxed
---------------------*/
-
-.ui.relaxed.list:not(.horizontal) > .item:not(:first-child) {
- padding-top: 0.42857143em;
-}
-
-.ui.relaxed.list:not(.horizontal) > .item:not(:last-child) {
- padding-bottom: 0.42857143em;
-}
-
-.ui.horizontal.relaxed.list .list > .item:not(:first-child),
-.ui.horizontal.relaxed.list > .item:not(:first-child) {
- padding-left: 1rem;
-}
-
-.ui.horizontal.relaxed.list .list > .item:not(:last-child),
-.ui.horizontal.relaxed.list > .item:not(:last-child) {
- padding-right: 1rem;
-}
-
-/* Very Relaxed */
-
-.ui[class*="very relaxed"].list:not(.horizontal) > .item:not(:first-child) {
- padding-top: 0.85714286em;
-}
-
-.ui[class*="very relaxed"].list:not(.horizontal) > .item:not(:last-child) {
- padding-bottom: 0.85714286em;
-}
-
-.ui.horizontal[class*="very relaxed"].list .list > .item:not(:first-child),
-.ui.horizontal[class*="very relaxed"].list > .item:not(:first-child) {
- padding-left: 1.5rem;
-}
-
-.ui.horizontal[class*="very relaxed"].list .list > .item:not(:last-child),
-.ui.horizontal[class*="very relaxed"].list > .item:not(:last-child) {
- padding-right: 1.5rem;
-}
-
-/*-------------------
-     Sizes
---------------------*/
-
-.ui.mini.list {
- font-size: 0.78571429em;
-}
-
-.ui.tiny.list {
- font-size: 0.85714286em;
-}
-
-.ui.small.list {
- font-size: 0.92857143em;
-}
-
-.ui.list {
- font-size: 1em;
-}
-
-.ui.large.list {
- font-size: 1.14285714em;
-}
-
-.ui.big.list {
- font-size: 1.28571429em;
-}
-
-.ui.huge.list {
- font-size: 1.42857143em;
-}
-
-.ui.massive.list {
- font-size: 1.71428571em;
-}
-
-.ui.mini.horizontal.list .list > .item,
-.ui.mini.horizontal.list > .item {
- font-size: 0.78571429rem;
-}
-
-.ui.tiny.horizontal.list .list > .item,
-.ui.tiny.horizontal.list > .item {
- font-size: 0.85714286rem;
-}
-
-.ui.small.horizontal.list .list > .item,
-.ui.small.horizontal.list > .item {
- font-size: 0.92857143rem;
-}
-
-.ui.horizontal.list .list > .item,
-.ui.horizontal.list > .item {
- font-size: 1rem;
-}
-
-.ui.large.horizontal.list .list > .item,
-.ui.large.horizontal.list > .item {
- font-size: 1.14285714rem;
-}
-
-.ui.big.horizontal.list .list > .item,
-.ui.big.horizontal.list > .item {
- font-size: 1.28571429rem;
-}
-
-.ui.huge.horizontal.list .list > .item,
-.ui.huge.horizontal.list > .item {
- font-size: 1.42857143rem;
-}
-
-.ui.massive.horizontal.list .list > .item,
-.ui.massive.horizontal.list > .item {
- font-size: 1.71428571rem;
-}
-
-/*******************************
-        Theme Overrides
-*******************************/
-
-/*******************************
-   User Variable Overrides
-*******************************/
-/*!
-* # Semantic UI 2.3.0 - Loader
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-           Loader
-*******************************/
-
-/* Standard Size */
-
-.ui.loader {
- display: none;
- position: absolute;
- top: 50%;
- left: 50%;
- margin: 0px;
- text-align: center;
- z-index: 1000;
- -webkit-transform: translateX(-50%) translateY(-50%);
- transform: translateX(-50%) translateY(-50%);
-}
-
-/* Static Shape */
-
-.ui.loader:before {
- position: absolute;
- content: '';
- top: 0%;
- left: 50%;
- width: 100%;
- height: 100%;
- border-radius: 500rem;
- border: 0.2em solid rgba(0, 0, 0, 0.1);
-}
-
-/* Active Shape */
-
-.ui.loader:after {
- position: absolute;
- content: '';
- top: 0%;
- left: 50%;
- width: 100%;
- height: 100%;
- -webkit-animation: loader 0.6s linear;
- animation: loader 0.6s linear;
- -webkit-animation-iteration-count: infinite;
- animation-iteration-count: infinite;
- border-radius: 500rem;
- border-color: #767676 transparent transparent;
- border-style: solid;
- border-width: 0.2em;
- -webkit-box-shadow: 0px 0px 0px 1px transparent;
- box-shadow: 0px 0px 0px 1px transparent;
-}
-
-/* Active Animation */
-
-@-webkit-keyframes loader {
- from {
-   -webkit-transform: rotate(0deg);
-   transform: rotate(0deg);
- }
-
- to {
-   -webkit-transform: rotate(360deg);
-   transform: rotate(360deg);
- }
-}
-
-@keyframes loader {
- from {
-   -webkit-transform: rotate(0deg);
-   transform: rotate(0deg);
- }
-
- to {
-   -webkit-transform: rotate(360deg);
-   transform: rotate(360deg);
- }
-}
-
-/* Sizes */
-
-.ui.mini.loader:before,
-.ui.mini.loader:after {
- width: 1rem;
- height: 1rem;
- margin: 0em 0em 0em -0.5rem;
-}
-
-.ui.tiny.loader:before,
-.ui.tiny.loader:after {
- width: 1.14285714rem;
- height: 1.14285714rem;
- margin: 0em 0em 0em -0.57142857rem;
-}
-
-.ui.small.loader:before,
-.ui.small.loader:after {
- width: 1.71428571rem;
- height: 1.71428571rem;
- margin: 0em 0em 0em -0.85714286rem;
-}
-
-.ui.loader:before,
-.ui.loader:after {
- width: 2.28571429rem;
- height: 2.28571429rem;
- margin: 0em 0em 0em -1.14285714rem;
-}
-
-.ui.large.loader:before,
-.ui.large.loader:after {
- width: 3.42857143rem;
- height: 3.42857143rem;
- margin: 0em 0em 0em -1.71428571rem;
-}
-
-.ui.big.loader:before,
-.ui.big.loader:after {
- width: 3.71428571rem;
- height: 3.71428571rem;
- margin: 0em 0em 0em -1.85714286rem;
-}
-
-.ui.huge.loader:before,
-.ui.huge.loader:after {
- width: 4.14285714rem;
- height: 4.14285714rem;
- margin: 0em 0em 0em -2.07142857rem;
-}
-
-.ui.massive.loader:before,
-.ui.massive.loader:after {
- width: 4.57142857rem;
- height: 4.57142857rem;
- margin: 0em 0em 0em -2.28571429rem;
-}
-
-/*-------------------
-     Coupling
---------------------*/
-
-/* Show inside active dimmer */
-
-.ui.dimmer .loader {
- display: block;
-}
-
-/* Black Dimmer */
-
-.ui.dimmer .ui.loader {
- color: rgba(255, 255, 255, 0.9);
-}
-
-.ui.dimmer .ui.loader:before {
- border-color: rgba(255, 255, 255, 0.15);
-}
-
-.ui.dimmer .ui.loader:after {
- border-color: #FFFFFF transparent transparent;
-}
-
-/* White Dimmer (Inverted) */
-
-.ui.inverted.dimmer .ui.loader {
- color: rgba(0, 0, 0, 0.87);
-}
-
-.ui.inverted.dimmer .ui.loader:before {
- border-color: rgba(0, 0, 0, 0.1);
-}
-
-.ui.inverted.dimmer .ui.loader:after {
- border-color: #767676 transparent transparent;
-}
-
-/*******************************
-            Types
-*******************************/
-
-/*-------------------
-       Text
---------------------*/
-
-.ui.text.loader {
- width: auto !important;
- height: auto !important;
- text-align: center;
- font-style: normal;
-}
-
-/*******************************
-           States
-*******************************/
-
-.ui.indeterminate.loader:after {
- animation-direction: reverse;
- -webkit-animation-duration: 1.2s;
- animation-duration: 1.2s;
-}
-
-.ui.loader.active,
-.ui.loader.visible {
- display: block;
-}
-
-.ui.loader.disabled,
-.ui.loader.hidden {
- display: none;
-}
-
-/*******************************
-           Variations
-*******************************/
-
-/*-------------------
-       Sizes
---------------------*/
-
-/* Loader */
-
-.ui.inverted.dimmer .ui.mini.loader,
-.ui.mini.loader {
- width: 1rem;
- height: 1rem;
- font-size: 0.78571429em;
-}
-
-.ui.inverted.dimmer .ui.tiny.loader,
-.ui.tiny.loader {
- width: 1.14285714rem;
- height: 1.14285714rem;
- font-size: 0.85714286em;
-}
-
-.ui.inverted.dimmer .ui.small.loader,
-.ui.small.loader {
- width: 1.71428571rem;
- height: 1.71428571rem;
- font-size: 0.92857143em;
-}
-
-.ui.inverted.dimmer .ui.loader,
-.ui.loader {
- width: 2.28571429rem;
- height: 2.28571429rem;
- font-size: 1em;
-}
-
-.ui.inverted.dimmer .ui.large.loader,
-.ui.large.loader {
- width: 3.42857143rem;
- height: 3.42857143rem;
- font-size: 1.14285714em;
-}
-
-.ui.inverted.dimmer .ui.big.loader,
-.ui.big.loader {
- width: 3.71428571rem;
- height: 3.71428571rem;
- font-size: 1.28571429em;
-}
-
-.ui.inverted.dimmer .ui.huge.loader,
-.ui.huge.loader {
- width: 4.14285714rem;
- height: 4.14285714rem;
- font-size: 1.42857143em;
-}
-
-.ui.inverted.dimmer .ui.massive.loader,
-.ui.massive.loader {
- width: 4.57142857rem;
- height: 4.57142857rem;
- font-size: 1.71428571em;
-}
-
-/* Text Loader */
-
-.ui.mini.text.loader {
- min-width: 1rem;
- padding-top: 1.78571429rem;
-}
-
-.ui.tiny.text.loader {
- min-width: 1.14285714rem;
- padding-top: 1.92857143rem;
-}
-
-.ui.small.text.loader {
- min-width: 1.71428571rem;
- padding-top: 2.5rem;
-}
-
-.ui.text.loader {
- min-width: 2.28571429rem;
- padding-top: 3.07142857rem;
-}
-
-.ui.large.text.loader {
- min-width: 3.42857143rem;
- padding-top: 4.21428571rem;
-}
-
-.ui.big.text.loader {
- min-width: 3.71428571rem;
- padding-top: 4.5rem;
-}
-
-.ui.huge.text.loader {
- min-width: 4.14285714rem;
- padding-top: 4.92857143rem;
-}
-
-.ui.massive.text.loader {
- min-width: 4.57142857rem;
- padding-top: 5.35714286rem;
-}
-
-/*-------------------
-      Inverted
---------------------*/
-
-.ui.inverted.loader {
- color: rgba(255, 255, 255, 0.9);
-}
-
-.ui.inverted.loader:before {
- border-color: rgba(255, 255, 255, 0.15);
-}
-
-.ui.inverted.loader:after {
- border-top-color: #FFFFFF;
-}
-
-/*-------------------
-      Inline
---------------------*/
-
-.ui.inline.loader {
- position: relative;
- vertical-align: middle;
- margin: 0em;
- left: 0em;
- top: 0em;
- -webkit-transform: none;
- transform: none;
-}
-
-.ui.inline.loader.active,
-.ui.inline.loader.visible {
- display: inline-block;
-}
-
-/* Centered Inline */
-
-.ui.centered.inline.loader.active,
-.ui.centered.inline.loader.visible {
- display: block;
- margin-left: auto;
- margin-right: auto;
-}
-
-/*******************************
-        Theme Overrides
-*******************************/
-
-/*******************************
-        Site Overrides
-*******************************/
-/*!
-* # Semantic UI 2.3.0 - Rail
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-            Rails
-*******************************/
-
-.ui.rail {
- position: absolute;
- top: 0%;
- width: 300px;
- height: 100%;
-}
-
-.ui.left.rail {
- left: auto;
- right: 100%;
- padding: 0em 2rem 0em 0em;
- margin: 0em 2rem 0em 0em;
-}
-
-.ui.right.rail {
- left: 100%;
- right: auto;
- padding: 0em 0em 0em 2rem;
- margin: 0em 0em 0em 2rem;
-}
-
-/*******************************
-          Variations
-*******************************/
-
-/*--------------
-    Internal
----------------*/
-
-.ui.left.internal.rail {
- left: 0%;
- right: auto;
- padding: 0em 0em 0em 2rem;
- margin: 0em 0em 0em 2rem;
-}
-
-.ui.right.internal.rail {
- left: auto;
- right: 0%;
- padding: 0em 2rem 0em 0em;
- margin: 0em 2rem 0em 0em;
-}
-
-/*--------------
-   Dividing
----------------*/
-
-.ui.dividing.rail {
- width: 302.5px;
-}
-
-.ui.left.dividing.rail {
- padding: 0em 2.5rem 0em 0em;
- margin: 0em 2.5rem 0em 0em;
- border-right: 1px solid rgba(34, 36, 38, 0.15);
-}
-
-.ui.right.dividing.rail {
- border-left: 1px solid rgba(34, 36, 38, 0.15);
- padding: 0em 0em 0em 2.5rem;
- margin: 0em 0em 0em 2.5rem;
-}
-
-/*--------------
-   Distance
----------------*/
-
-.ui.close.rail {
- width: calc( 300px  +  1em );
-}
-
-.ui.close.left.rail {
- padding: 0em 1em 0em 0em;
- margin: 0em 1em 0em 0em;
-}
-
-.ui.close.right.rail {
- padding: 0em 0em 0em 1em;
- margin: 0em 0em 0em 1em;
-}
-
-.ui.very.close.rail {
- width: calc( 300px  +  0.5em );
-}
-
-.ui.very.close.left.rail {
- padding: 0em 0.5em 0em 0em;
- margin: 0em 0.5em 0em 0em;
-}
-
-.ui.very.close.right.rail {
- padding: 0em 0em 0em 0.5em;
- margin: 0em 0em 0em 0.5em;
-}
-
-/*--------------
-   Attached
----------------*/
-
-.ui.attached.left.rail,
-.ui.attached.right.rail {
- padding: 0em;
- margin: 0em;
-}
-
-/*--------------
-    Sizing
----------------*/
-
-.ui.mini.rail {
- font-size: 0.78571429rem;
-}
-
-.ui.tiny.rail {
- font-size: 0.85714286rem;
-}
-
-.ui.small.rail {
- font-size: 0.92857143rem;
-}
-
-.ui.rail {
- font-size: 1rem;
-}
-
-.ui.large.rail {
- font-size: 1.14285714rem;
-}
-
-.ui.big.rail {
- font-size: 1.28571429rem;
-}
-
-.ui.huge.rail {
- font-size: 1.42857143rem;
-}
-
-.ui.massive.rail {
- font-size: 1.71428571rem;
-}
-
-/*******************************
-        Theme Overrides
-*******************************/
-
-/*******************************
-        Site Overrides
-*******************************/
-/*!
-* # Semantic UI 2.3.0 - Reveal
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-           Reveal
-*******************************/
-
-.ui.reveal {
- display: inherit;
- position: relative !important;
- font-size: 0em !important;
-}
-
-.ui.reveal > .visible.content {
- position: absolute !important;
- top: 0em !important;
- left: 0em !important;
- z-index: 3 !important;
- -webkit-transition: all 0.5s ease 0.1s;
- transition: all 0.5s ease 0.1s;
-}
-
-.ui.reveal > .hidden.content {
- position: relative !important;
- z-index: 2 !important;
-}
-
-/* Make sure hovered element is on top of other reveal */
-
-.ui.active.reveal .visible.content,
-.ui.reveal:hover .visible.content {
- z-index: 4 !important;
-}
-
-/*******************************
-             Types
-*******************************/
-
-/*--------------
-     Slide
----------------*/
-
-.ui.slide.reveal {
- position: relative !important;
- overflow: hidden !important;
- white-space: nowrap;
-}
-
-.ui.slide.reveal > .content {
- display: block;
- width: 100%;
- float: left;
- margin: 0em;
- -webkit-transition: -webkit-transform 0.5s ease 0.1s;
- transition: -webkit-transform 0.5s ease 0.1s;
- transition: transform 0.5s ease 0.1s;
- transition: transform 0.5s ease 0.1s, -webkit-transform 0.5s ease 0.1s;
-}
-
-.ui.slide.reveal > .visible.content {
- position: relative !important;
-}
-
-.ui.slide.reveal > .hidden.content {
- position: absolute !important;
- left: 0% !important;
- width: 100% !important;
- -webkit-transform: translateX(100%) !important;
- transform: translateX(100%) !important;
-}
-
-.ui.slide.active.reveal > .visible.content,
-.ui.slide.reveal:hover > .visible.content {
- -webkit-transform: translateX(-100%) !important;
- transform: translateX(-100%) !important;
-}
-
-.ui.slide.active.reveal > .hidden.content,
-.ui.slide.reveal:hover > .hidden.content {
- -webkit-transform: translateX(0%) !important;
- transform: translateX(0%) !important;
-}
-
-.ui.slide.right.reveal > .visible.content {
- -webkit-transform: translateX(0%) !important;
- transform: translateX(0%) !important;
-}
-
-.ui.slide.right.reveal > .hidden.content {
- -webkit-transform: translateX(-100%) !important;
- transform: translateX(-100%) !important;
-}
-
-.ui.slide.right.active.reveal > .visible.content,
-.ui.slide.right.reveal:hover > .visible.content {
- -webkit-transform: translateX(100%) !important;
- transform: translateX(100%) !important;
-}
-
-.ui.slide.right.active.reveal > .hidden.content,
-.ui.slide.right.reveal:hover > .hidden.content {
- -webkit-transform: translateX(0%) !important;
- transform: translateX(0%) !important;
-}
-
-.ui.slide.up.reveal > .hidden.content {
- -webkit-transform: translateY(100%) !important;
- transform: translateY(100%) !important;
-}
-
-.ui.slide.up.active.reveal > .visible.content,
-.ui.slide.up.reveal:hover > .visible.content {
- -webkit-transform: translateY(-100%) !important;
- transform: translateY(-100%) !important;
-}
-
-.ui.slide.up.active.reveal > .hidden.content,
-.ui.slide.up.reveal:hover > .hidden.content {
- -webkit-transform: translateY(0%) !important;
- transform: translateY(0%) !important;
-}
-
-.ui.slide.down.reveal > .hidden.content {
- -webkit-transform: translateY(-100%) !important;
- transform: translateY(-100%) !important;
-}
-
-.ui.slide.down.active.reveal > .visible.content,
-.ui.slide.down.reveal:hover > .visible.content {
- -webkit-transform: translateY(100%) !important;
- transform: translateY(100%) !important;
-}
-
-.ui.slide.down.active.reveal > .hidden.content,
-.ui.slide.down.reveal:hover > .hidden.content {
- -webkit-transform: translateY(0%) !important;
- transform: translateY(0%) !important;
-}
-
-/*--------------
-     Fade
----------------*/
-
-.ui.fade.reveal > .visible.content {
- opacity: 1;
-}
-
-.ui.fade.active.reveal > .visible.content,
-.ui.fade.reveal:hover > .visible.content {
- opacity: 0;
-}
-
-/*--------------
-     Move
----------------*/
-
-.ui.move.reveal {
- position: relative !important;
- overflow: hidden !important;
- white-space: nowrap;
-}
-
-.ui.move.reveal > .content {
- display: block;
- float: left;
- margin: 0em;
- -webkit-transition: -webkit-transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1) 0.1s;
- transition: -webkit-transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1) 0.1s;
- transition: transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1) 0.1s;
- transition: transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1) 0.1s, -webkit-transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1) 0.1s;
-}
-
-.ui.move.reveal > .visible.content {
- position: relative !important;
-}
-
-.ui.move.reveal > .hidden.content {
- position: absolute !important;
- left: 0% !important;
- width: 100% !important;
-}
-
-.ui.move.active.reveal > .visible.content,
-.ui.move.reveal:hover > .visible.content {
- -webkit-transform: translateX(-100%) !important;
- transform: translateX(-100%) !important;
-}
-
-.ui.move.right.active.reveal > .visible.content,
-.ui.move.right.reveal:hover > .visible.content {
- -webkit-transform: translateX(100%) !important;
- transform: translateX(100%) !important;
-}
-
-.ui.move.up.active.reveal > .visible.content,
-.ui.move.up.reveal:hover > .visible.content {
- -webkit-transform: translateY(-100%) !important;
- transform: translateY(-100%) !important;
-}
-
-.ui.move.down.active.reveal > .visible.content,
-.ui.move.down.reveal:hover > .visible.content {
- -webkit-transform: translateY(100%) !important;
- transform: translateY(100%) !important;
-}
-
-/*--------------
-    Rotate
----------------*/
-
-.ui.rotate.reveal > .visible.content {
- -webkit-transition-duration: 0.5s;
- transition-duration: 0.5s;
- -webkit-transform: rotate(0deg);
- transform: rotate(0deg);
-}
-
-.ui.rotate.reveal > .visible.content,
-.ui.rotate.right.reveal > .visible.content {
- -webkit-transform-origin: bottom right;
- transform-origin: bottom right;
-}
-
-.ui.rotate.active.reveal > .visible.content,
-.ui.rotate.reveal:hover > .visible.content,
-.ui.rotate.right.active.reveal > .visible.content,
-.ui.rotate.right.reveal:hover > .visible.content {
- -webkit-transform: rotate(110deg);
- transform: rotate(110deg);
-}
-
-.ui.rotate.left.reveal > .visible.content {
- -webkit-transform-origin: bottom left;
- transform-origin: bottom left;
-}
-
-.ui.rotate.left.active.reveal > .visible.content,
-.ui.rotate.left.reveal:hover > .visible.content {
- -webkit-transform: rotate(-110deg);
- transform: rotate(-110deg);
-}
-
-/*******************************
-             States
-*******************************/
-
-.ui.disabled.reveal:hover > .visible.visible.content {
- position: static !important;
- display: block !important;
- opacity: 1 !important;
- top: 0 !important;
- left: 0 !important;
- right: auto !important;
- bottom: auto !important;
- -webkit-transform: none !important;
- transform: none !important;
-}
-
-.ui.disabled.reveal:hover > .hidden.hidden.content {
- display: none !important;
-}
-
-/*******************************
-          Coupling
-*******************************/
-
-.ui.reveal > .ui.ribbon.label {
- z-index: 5;
-}
-
-/*******************************
-          Variations
-*******************************/
-
-/*--------------
-    Visible
----------------*/
-
-.ui.visible.reveal {
- overflow: visible;
-}
-
-/*--------------
-    Instant
----------------*/
-
-.ui.instant.reveal > .content {
- -webkit-transition-delay: 0s !important;
- transition-delay: 0s !important;
-}
-
-/*--------------
-    Sizing
----------------*/
-
-.ui.reveal > .content {
- font-size: 1rem !important;
-}
-
-/*******************************
-        Theme Overrides
-*******************************/
-
-/*******************************
-        Site Overrides
-*******************************/
-/*!
-* # Semantic UI 2.3.0 - Segment
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-           Segment
-*******************************/
-
-.ui.segment {
- position: relative;
- background: #FFFFFF;
- -webkit-box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15);
- box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15);
- margin: 1rem 0em;
- padding: 1em 1em;
- border-radius: 0.28571429rem;
- border: 1px solid rgba(34, 36, 38, 0.15);
-}
-
-.ui.segment:first-child {
- margin-top: 0em;
-}
-
-.ui.segment:last-child {
- margin-bottom: 0em;
-}
-
-/* Vertical */
-
-.ui.vertical.segment {
- margin: 0em;
- padding-left: 0em;
- padding-right: 0em;
- background: none transparent;
- border-radius: 0px;
- -webkit-box-shadow: none;
- box-shadow: none;
- border: none;
- border-bottom: 1px solid rgba(34, 36, 38, 0.15);
-}
-
-.ui.vertical.segment:last-child {
- border-bottom: none;
-}
-
-/*-------------------
-   Loose Coupling
---------------------*/
-
-/* Header */
-
-.ui.inverted.segment > .ui.header {
- color: #FFFFFF;
-}
-
-/* Label */
-
-.ui[class*="bottom attached"].segment > [class*="top attached"].label {
- border-top-left-radius: 0em;
- border-top-right-radius: 0em;
-}
-
-.ui[class*="top attached"].segment > [class*="bottom attached"].label {
- border-bottom-left-radius: 0em;
- border-bottom-right-radius: 0em;
-}
-
-.ui.attached.segment:not(.top):not(.bottom) > [class*="top attached"].label {
- border-top-left-radius: 0em;
- border-top-right-radius: 0em;
-}
-
-.ui.attached.segment:not(.top):not(.bottom) > [class*="bottom attached"].label {
- border-bottom-left-radius: 0em;
- border-bottom-right-radius: 0em;
-}
-
-/* Grid */
-
-.ui.page.grid.segment,
-.ui.grid > .row > .ui.segment.column,
-.ui.grid > .ui.segment.column {
- padding-top: 2em;
- padding-bottom: 2em;
-}
-
-.ui.grid.segment {
- margin: 1rem 0em;
- border-radius: 0.28571429rem;
-}
-
-/* Table */
-
-.ui.basic.table.segment {
- background: #FFFFFF;
- border: 1px solid rgba(34, 36, 38, 0.15);
- -webkit-box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15);
- box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15);
-}
-
-.ui[class*="very basic"].table.segment {
- padding: 1em 1em;
-}
-
-/*******************************
-            Types
-*******************************/
-
-/*-------------------
-       Piled
---------------------*/
-
-.ui.piled.segments,
-.ui.piled.segment {
- margin: 3em 0em;
- -webkit-box-shadow: '';
- box-shadow: '';
- z-index: auto;
-}
-
-.ui.piled.segment:first-child {
- margin-top: 0em;
-}
-
-.ui.piled.segment:last-child {
- margin-bottom: 0em;
-}
-
-.ui.piled.segments:after,
-.ui.piled.segments:before,
-.ui.piled.segment:after,
-.ui.piled.segment:before {
- background-color: #FFFFFF;
- visibility: visible;
- content: '';
- display: block;
- height: 100%;
- left: 0px;
- position: absolute;
- width: 100%;
- border: 1px solid rgba(34, 36, 38, 0.15);
- -webkit-box-shadow: '';
- box-shadow: '';
-}
-
-.ui.piled.segments:before,
-.ui.piled.segment:before {
- -webkit-transform: rotate(-1.2deg);
- transform: rotate(-1.2deg);
- top: 0;
- z-index: -2;
-}
-
-.ui.piled.segments:after,
-.ui.piled.segment:after {
- -webkit-transform: rotate(1.2deg);
- transform: rotate(1.2deg);
- top: 0;
- z-index: -1;
-}
-
-/* Piled Attached */
-
-.ui[class*="top attached"].piled.segment {
- margin-top: 3em;
- margin-bottom: 0em;
-}
-
-.ui.piled.segment[class*="top attached"]:first-child {
- margin-top: 0em;
-}
-
-.ui.piled.segment[class*="bottom attached"] {
- margin-top: 0em;
- margin-bottom: 3em;
-}
-
-.ui.piled.segment[class*="bottom attached"]:last-child {
- margin-bottom: 0em;
-}
-
-/*-------------------
-      Stacked
---------------------*/
-
-.ui.stacked.segment {
- padding-bottom: 1.4em;
-}
-
-.ui.stacked.segments:before,
-.ui.stacked.segments:after,
-.ui.stacked.segment:before,
-.ui.stacked.segment:after {
- content: '';
- position: absolute;
- bottom: -3px;
- left: 0%;
- border-top: 1px solid rgba(34, 36, 38, 0.15);
- background: rgba(0, 0, 0, 0.03);
- width: 100%;
- height: 6px;
- visibility: visible;
-}
-
-.ui.stacked.segments:before,
-.ui.stacked.segment:before {
- display: none;
-}
-
-/* Add additional page */
-
-.ui.tall.stacked.segments:before,
-.ui.tall.stacked.segment:before {
- display: block;
- bottom: 0px;
-}
-
-/* Inverted */
-
-.ui.stacked.inverted.segments:before,
-.ui.stacked.inverted.segments:after,
-.ui.stacked.inverted.segment:before,
-.ui.stacked.inverted.segment:after {
- background-color: rgba(0, 0, 0, 0.03);
- border-top: 1px solid rgba(34, 36, 38, 0.35);
-}
-
-/*-------------------
-      Padded
---------------------*/
-
-.ui.padded.segment {
- padding: 1.5em;
-}
-
-.ui[class*="very padded"].segment {
- padding: 3em;
-}
-
-/* Padded vertical */
-
-.ui.padded.segment.vertical.segment,
-.ui[class*="very padded"].vertical.segment {
- padding-left: 0px;
- padding-right: 0px;
-}
-
-/*-------------------
-      Compact
---------------------*/
-
-.ui.compact.segment {
- display: table;
-}
-
-/* Compact Group */
-
-.ui.compact.segments {
- display: -webkit-inline-box;
- display: -ms-inline-flexbox;
- display: inline-flex;
-}
-
-.ui.compact.segments .segment,
-.ui.segments .compact.segment {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 1 auto;
- flex: 0 1 auto;
-}
-
-/*-------------------
-      Circular
---------------------*/
-
-.ui.circular.segment {
- display: table-cell;
- padding: 2em;
- text-align: center;
- vertical-align: middle;
- border-radius: 500em;
-}
-
-/*-------------------
-      Raised
---------------------*/
-
-.ui.raised.segments,
-.ui.raised.segment {
- -webkit-box-shadow: 0px 2px 4px 0px rgba(34, 36, 38, 0.12), 0px 2px 10px 0px rgba(34, 36, 38, 0.15);
- box-shadow: 0px 2px 4px 0px rgba(34, 36, 38, 0.12), 0px 2px 10px 0px rgba(34, 36, 38, 0.15);
-}
-
-/*******************************
-           Groups
-*******************************/
-
-/* Group */
-
-.ui.segments {
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
- position: relative;
- margin: 1rem 0em;
- border: 1px solid rgba(34, 36, 38, 0.15);
- -webkit-box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15);
- box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15);
- border-radius: 0.28571429rem;
-}
-
-.ui.segments:first-child {
- margin-top: 0em;
-}
-
-.ui.segments:last-child {
- margin-bottom: 0em;
-}
-
-/* Nested Segment */
-
-.ui.segments > .segment {
- top: 0px;
- bottom: 0px;
- border-radius: 0px;
- margin: 0em;
- width: auto;
- -webkit-box-shadow: none;
- box-shadow: none;
- border: none;
- border-top: 1px solid rgba(34, 36, 38, 0.15);
-}
-
-.ui.segments:not(.horizontal) > .segment:first-child {
- border-top: none;
- margin-top: 0em;
- bottom: 0px;
- margin-bottom: 0em;
- top: 0px;
- border-radius: 0.28571429rem 0.28571429rem 0em 0em;
-}
-
-/* Bottom */
-
-.ui.segments:not(.horizontal) > .segment:last-child {
- top: 0px;
- bottom: 0px;
- margin-top: 0em;
- margin-bottom: 0em;
- -webkit-box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15), none;
- box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15), none;
- border-radius: 0em 0em 0.28571429rem 0.28571429rem;
-}
-
-/* Only */
-
-.ui.segments:not(.horizontal) > .segment:only-child {
- border-radius: 0.28571429rem;
-}
-
-/* Nested Group */
-
-.ui.segments > .ui.segments {
- border-top: 1px solid rgba(34, 36, 38, 0.15);
- margin: 1rem 1rem;
-}
-
-.ui.segments > .segments:first-child {
- border-top: none;
-}
-
-.ui.segments > .segment + .segments:not(.horizontal) {
- margin-top: 0em;
-}
-
-/* Horizontal Group */
-
-.ui.horizontal.segments {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-orient: horizontal;
- -webkit-box-direction: normal;
- -ms-flex-direction: row;
- flex-direction: row;
- background-color: transparent;
- border-radius: 0px;
- padding: 0em;
- background-color: #FFFFFF;
- -webkit-box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15);
- box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15);
- margin: 1rem 0em;
- border-radius: 0.28571429rem;
- border: 1px solid rgba(34, 36, 38, 0.15);
-}
-
-/* Nested Horizontal Group */
-
-.ui.segments > .horizontal.segments {
- margin: 0em;
- background-color: transparent;
- border-radius: 0px;
- border: none;
- -webkit-box-shadow: none;
- box-shadow: none;
- border-top: 1px solid rgba(34, 36, 38, 0.15);
-}
-
-/* Horizontal Segment */
-
-.ui.horizontal.segments > .segment {
- -webkit-box-flex: 1;
- flex: 1 1 auto;
- -ms-flex: 1 1 0px;
- /* Solves #2550 MS Flex */
- margin: 0em;
- min-width: 0px;
- background-color: transparent;
- border-radius: 0px;
- border: none;
- -webkit-box-shadow: none;
- box-shadow: none;
- border-left: 1px solid rgba(34, 36, 38, 0.15);
-}
-
-/* Border Fixes */
-
-.ui.segments > .horizontal.segments:first-child {
- border-top: none;
-}
-
-.ui.horizontal.segments > .segment:first-child {
- border-left: none;
-}
-
-/*******************************
-           States
-*******************************/
-
-/*--------------
-   Disabled
----------------*/
-
-.ui.disabled.segment {
- opacity: 0.45;
- color: rgba(40, 40, 40, 0.3);
-}
-
-/*--------------
-   Loading
----------------*/
-
-.ui.loading.segment {
- position: relative;
- cursor: default;
- pointer-events: none;
- text-shadow: none !important;
- color: transparent !important;
- -webkit-transition: all 0s linear;
- transition: all 0s linear;
-}
-
-.ui.loading.segment:before {
- position: absolute;
- content: '';
- top: 0%;
- left: 0%;
- background: rgba(255, 255, 255, 0.8);
- width: 100%;
- height: 100%;
- border-radius: 0.28571429rem;
- z-index: 100;
-}
-
-.ui.loading.segment:after {
- position: absolute;
- content: '';
- top: 50%;
- left: 50%;
- margin: -1.5em 0em 0em -1.5em;
- width: 3em;
- height: 3em;
- -webkit-animation: segment-spin 0.6s linear;
- animation: segment-spin 0.6s linear;
- -webkit-animation-iteration-count: infinite;
- animation-iteration-count: infinite;
- border-radius: 500rem;
- border-color: #767676 rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1);
- border-style: solid;
- border-width: 0.2em;
- -webkit-box-shadow: 0px 0px 0px 1px transparent;
- box-shadow: 0px 0px 0px 1px transparent;
- visibility: visible;
- z-index: 101;
-}
-
-@-webkit-keyframes segment-spin {
- from {
-   -webkit-transform: rotate(0deg);
-   transform: rotate(0deg);
- }
-
- to {
-   -webkit-transform: rotate(360deg);
-   transform: rotate(360deg);
- }
-}
-
-@keyframes segment-spin {
- from {
-   -webkit-transform: rotate(0deg);
-   transform: rotate(0deg);
- }
-
- to {
-   -webkit-transform: rotate(360deg);
-   transform: rotate(360deg);
- }
-}
-
-/*******************************
-          Variations
-*******************************/
-
-/*-------------------
-      Basic
---------------------*/
-
-.ui.basic.segment {
- background: none transparent;
- -webkit-box-shadow: none;
- box-shadow: none;
- border: none;
- border-radius: 0px;
-}
-
-/*-------------------
-      Clearing
---------------------*/
-
-.ui.clearing.segment:after {
- content: ".";
- display: block;
- height: 0;
- clear: both;
- visibility: hidden;
-}
-
-/*-------------------
-      Colors
---------------------*/
-
-/* Red */
-
-.ui.red.segment:not(.inverted) {
- border-top: 2px solid #DB2828 !important;
-}
-
-.ui.inverted.red.segment {
- background-color: #DB2828 !important;
- color: #FFFFFF !important;
-}
-
-/* Orange */
-
-.ui.orange.segment:not(.inverted) {
- border-top: 2px solid #F2711C !important;
-}
-
-.ui.inverted.orange.segment {
- background-color: #F2711C !important;
- color: #FFFFFF !important;
-}
-
-/* Yellow */
-
-.ui.yellow.segment:not(.inverted) {
- border-top: 2px solid #FBBD08 !important;
-}
-
-.ui.inverted.yellow.segment {
- background-color: #FBBD08 !important;
- color: #FFFFFF !important;
-}
-
-/* Olive */
-
-.ui.olive.segment:not(.inverted) {
- border-top: 2px solid #B5CC18 !important;
-}
-
-.ui.inverted.olive.segment {
- background-color: #B5CC18 !important;
- color: #FFFFFF !important;
-}
-
-/* Green */
-
-.ui.green.segment:not(.inverted) {
- border-top: 2px solid #21BA45 !important;
-}
-
-.ui.inverted.green.segment {
- background-color: #21BA45 !important;
- color: #FFFFFF !important;
-}
-
-/* Teal */
-
-.ui.teal.segment:not(.inverted) {
- border-top: 2px solid #00B5AD !important;
-}
-
-.ui.inverted.teal.segment {
- background-color: #00B5AD !important;
- color: #FFFFFF !important;
-}
-
-/* Blue */
-
-.ui.blue.segment:not(.inverted) {
- border-top: 2px solid #2185D0 !important;
-}
-
-.ui.inverted.blue.segment {
- background-color: #2185D0 !important;
- color: #FFFFFF !important;
-}
-
-/* Violet */
-
-.ui.violet.segment:not(.inverted) {
- border-top: 2px solid #6435C9 !important;
-}
-
-.ui.inverted.violet.segment {
- background-color: #6435C9 !important;
- color: #FFFFFF !important;
-}
-
-/* Purple */
-
-.ui.purple.segment:not(.inverted) {
- border-top: 2px solid #A333C8 !important;
-}
-
-.ui.inverted.purple.segment {
- background-color: #A333C8 !important;
- color: #FFFFFF !important;
-}
-
-/* Pink */
-
-.ui.pink.segment:not(.inverted) {
- border-top: 2px solid #E03997 !important;
-}
-
-.ui.inverted.pink.segment {
- background-color: #E03997 !important;
- color: #FFFFFF !important;
-}
-
-/* Brown */
-
-.ui.brown.segment:not(.inverted) {
- border-top: 2px solid #A5673F !important;
-}
-
-.ui.inverted.brown.segment {
- background-color: #A5673F !important;
- color: #FFFFFF !important;
-}
-
-/* Grey */
-
-.ui.grey.segment:not(.inverted) {
- border-top: 2px solid #767676 !important;
-}
-
-.ui.inverted.grey.segment {
- background-color: #767676 !important;
- color: #FFFFFF !important;
-}
-
-/* Black */
-
-.ui.black.segment:not(.inverted) {
- border-top: 2px solid #1B1C1D !important;
-}
-
-.ui.inverted.black.segment {
- background-color: #1B1C1D !important;
- color: #FFFFFF !important;
-}
-
-/*-------------------
-      Aligned
---------------------*/
-
-.ui[class*="left aligned"].segment {
- text-align: left;
-}
-
-.ui[class*="right aligned"].segment {
- text-align: right;
-}
-
-.ui[class*="center aligned"].segment {
- text-align: center;
-}
-
-/*-------------------
-      Floated
---------------------*/
-
-.ui.floated.segment,
-.ui[class*="left floated"].segment {
- float: left;
- margin-right: 1em;
-}
-
-.ui[class*="right floated"].segment {
- float: right;
- margin-left: 1em;
-}
-
-/*-------------------
-     Inverted
---------------------*/
-
-.ui.inverted.segment {
- border: none;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-.ui.inverted.segment,
-.ui.primary.inverted.segment {
- background: #1B1C1D;
- color: rgba(255, 255, 255, 0.9);
-}
-
-/* Nested */
-
-.ui.inverted.segment .segment {
- color: rgba(0, 0, 0, 0.87);
-}
-
-.ui.inverted.segment .inverted.segment {
- color: rgba(255, 255, 255, 0.9);
-}
-
-/* Attached */
-
-.ui.inverted.attached.segment {
- border-color: #555555;
-}
-
-/*-------------------
-    Emphasis
---------------------*/
-
-/* Secondary */
-
-.ui.secondary.segment {
- background: #F3F4F5;
- color: rgba(0, 0, 0, 0.6);
-}
-
-.ui.secondary.inverted.segment {
- background: #4c4f52 -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.2)), to(rgba(255, 255, 255, 0.2)));
- background: #4c4f52 -webkit-linear-gradient(rgba(255, 255, 255, 0.2) 0%, rgba(255, 255, 255, 0.2) 100%);
- background: #4c4f52 linear-gradient(rgba(255, 255, 255, 0.2) 0%, rgba(255, 255, 255, 0.2) 100%);
- color: rgba(255, 255, 255, 0.8);
-}
-
-/* Tertiary */
-
-.ui.tertiary.segment {
- background: #DCDDDE;
- color: rgba(0, 0, 0, 0.6);
-}
-
-.ui.tertiary.inverted.segment {
- background: #717579 -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.35)), to(rgba(255, 255, 255, 0.35)));
- background: #717579 -webkit-linear-gradient(rgba(255, 255, 255, 0.35) 0%, rgba(255, 255, 255, 0.35) 100%);
- background: #717579 linear-gradient(rgba(255, 255, 255, 0.35) 0%, rgba(255, 255, 255, 0.35) 100%);
- color: rgba(255, 255, 255, 0.8);
-}
-
-/*-------------------
-     Attached
---------------------*/
-
-/* Middle */
-
-.ui.attached.segment {
- top: 0px;
- bottom: 0px;
- border-radius: 0px;
- margin: 0em -1px;
- width: calc(100% +  2px );
- max-width: calc(100% +  2px );
- -webkit-box-shadow: none;
- box-shadow: none;
- border: 1px solid #D4D4D5;
-}
-
-.ui.attached:not(.message) + .ui.attached.segment:not(.top) {
- border-top: none;
-}
-
-/* Top */
-
-.ui[class*="top attached"].segment {
- bottom: 0px;
- margin-bottom: 0em;
- top: 0px;
- margin-top: 1rem;
- border-radius: 0.28571429rem 0.28571429rem 0em 0em;
-}
-
-.ui.segment[class*="top attached"]:first-child {
- margin-top: 0em;
-}
-
-/* Bottom */
-
-.ui.segment[class*="bottom attached"] {
- bottom: 0px;
- margin-top: 0em;
- top: 0px;
- margin-bottom: 1rem;
- -webkit-box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15), none;
- box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15), none;
- border-radius: 0em 0em 0.28571429rem 0.28571429rem;
-}
-
-.ui.segment[class*="bottom attached"]:last-child {
- margin-bottom: 0em;
-}
-
-/*-------------------
-       Size
---------------------*/
-
-.ui.mini.segments .segment,
-.ui.mini.segment {
- font-size: 0.78571429rem;
-}
-
-.ui.tiny.segments .segment,
-.ui.tiny.segment {
- font-size: 0.85714286rem;
-}
-
-.ui.small.segments .segment,
-.ui.small.segment {
- font-size: 0.92857143rem;
-}
-
-.ui.segments .segment,
-.ui.segment {
- font-size: 1rem;
-}
-
-.ui.large.segments .segment,
-.ui.large.segment {
- font-size: 1.14285714rem;
-}
-
-.ui.big.segments .segment,
-.ui.big.segment {
- font-size: 1.28571429rem;
-}
-
-.ui.huge.segments .segment,
-.ui.huge.segment {
- font-size: 1.42857143rem;
-}
-
-.ui.massive.segments .segment,
-.ui.massive.segment {
- font-size: 1.71428571rem;
-}
-
-/*******************************
-        Theme Overrides
-*******************************/
-
-/*******************************
-        Site Overrides
-*******************************/
-/*!
-* # Semantic UI 2.3.0 - Step
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-           Plural
-*******************************/
-
-.ui.steps {
- display: -webkit-inline-box;
- display: -ms-inline-flexbox;
- display: inline-flex;
- -webkit-box-orient: horizontal;
- -webkit-box-direction: normal;
- -ms-flex-direction: row;
- flex-direction: row;
- -webkit-box-align: stretch;
- -ms-flex-align: stretch;
- align-items: stretch;
- margin: 1em 0em;
- background: '';
- -webkit-box-shadow: none;
- box-shadow: none;
- line-height: 1.14285714em;
- border-radius: 0.28571429rem;
- border: 1px solid rgba(34, 36, 38, 0.15);
-}
-
-/* First Steps */
-
-.ui.steps:first-child {
- margin-top: 0em;
-}
-
-/* Last Steps */
-
-.ui.steps:last-child {
- margin-bottom: 0em;
-}
-
-/*******************************
-          Singular
-*******************************/
-
-.ui.steps .step {
- position: relative;
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-flex: 1;
- -ms-flex: 1 0 auto;
- flex: 1 0 auto;
- -ms-flex-wrap: wrap;
- flex-wrap: wrap;
- -webkit-box-orient: horizontal;
- -webkit-box-direction: normal;
- -ms-flex-direction: row;
- flex-direction: row;
- vertical-align: middle;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- -webkit-box-pack: center;
- -ms-flex-pack: center;
- justify-content: center;
- margin: 0em 0em;
- padding: 1.14285714em 2em;
- background: #FFFFFF;
- color: rgba(0, 0, 0, 0.87);
- -webkit-box-shadow: none;
- box-shadow: none;
- border-radius: 0em;
- border: none;
- border-right: 1px solid rgba(34, 36, 38, 0.15);
- -webkit-transition: background-color 0.1s ease, opacity 0.1s ease, color 0.1s ease, -webkit-box-shadow 0.1s ease;
- transition: background-color 0.1s ease, opacity 0.1s ease, color 0.1s ease, -webkit-box-shadow 0.1s ease;
- transition: background-color 0.1s ease, opacity 0.1s ease, color 0.1s ease, box-shadow 0.1s ease;
- transition: background-color 0.1s ease, opacity 0.1s ease, color 0.1s ease, box-shadow 0.1s ease, -webkit-box-shadow 0.1s ease;
-}
-
-/* Arrow */
-
-.ui.steps .step:after {
- display: none;
- position: absolute;
- z-index: 2;
- content: '';
- top: 50%;
- right: 0%;
- border: medium none;
- background-color: #FFFFFF;
- width: 1.14285714em;
- height: 1.14285714em;
- border-style: solid;
- border-color: rgba(34, 36, 38, 0.15);
- border-width: 0px 1px 1px 0px;
- -webkit-transition: background-color 0.1s ease, opacity 0.1s ease, color 0.1s ease, -webkit-box-shadow 0.1s ease;
- transition: background-color 0.1s ease, opacity 0.1s ease, color 0.1s ease, -webkit-box-shadow 0.1s ease;
- transition: background-color 0.1s ease, opacity 0.1s ease, color 0.1s ease, box-shadow 0.1s ease;
- transition: background-color 0.1s ease, opacity 0.1s ease, color 0.1s ease, box-shadow 0.1s ease, -webkit-box-shadow 0.1s ease;
- -webkit-transform: translateY(-50%) translateX(50%) rotate(-45deg);
- transform: translateY(-50%) translateX(50%) rotate(-45deg);
-}
-
-/* First Step */
-
-.ui.steps .step:first-child {
- padding-left: 2em;
- border-radius: 0.28571429rem 0em 0em 0.28571429rem;
-}
-
-/* Last Step */
-
-.ui.steps .step:last-child {
- border-radius: 0em 0.28571429rem 0.28571429rem 0em;
-}
-
-.ui.steps .step:last-child {
- border-right: none;
- margin-right: 0em;
-}
-
-/* Only Step */
-
-.ui.steps .step:only-child {
- border-radius: 0.28571429rem;
-}
-
-/*******************************
-           Content
-*******************************/
-
-/* Title */
-
-.ui.steps .step .title {
- font-family: 'Lato', 'Helvetica Neue', Arial, Helvetica, sans-serif;
- font-size: 1.14285714em;
- font-weight: bold;
-}
-
-.ui.steps .step > .title {
- width: 100%;
-}
-
-/* Description */
-
-.ui.steps .step .description {
- font-weight: normal;
- font-size: 0.92857143em;
- color: rgba(0, 0, 0, 0.87);
-}
-
-.ui.steps .step > .description {
- width: 100%;
-}
-
-.ui.steps .step .title ~ .description {
- margin-top: 0.25em;
-}
-
-/* Icon */
-
-.ui.steps .step > .icon {
- line-height: 1;
- font-size: 2.5em;
- margin: 0em 1rem 0em 0em;
-}
-
-.ui.steps .step > .icon,
-.ui.steps .step > .icon ~ .content {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 1 auto;
- flex: 0 1 auto;
- -ms-flex-item-align: middle;
- align-self: middle;
-}
-
-.ui.steps .step > .icon ~ .content {
- -webkit-box-flex: 1 0 auto;
- -ms-flex-positive: 1 0 auto;
- flex-grow: 1 0 auto;
-}
-
-/* Horizontal Icon */
-
-.ui.steps:not(.vertical) .step > .icon {
- width: auto;
-}
-
-/* Link */
-
-.ui.steps .link.step,
-.ui.steps a.step {
- cursor: pointer;
-}
-
-/*******************************
-           Types
-*******************************/
-
-/*--------------
-    Ordered
----------------*/
-
-.ui.ordered.steps {
- counter-reset: ordered;
-}
-
-.ui.ordered.steps .step:before {
- display: block;
- position: static;
- text-align: center;
- content: counters(ordered, ".");
- -ms-flex-item-align: middle;
- align-self: middle;
- margin-right: 1rem;
- font-size: 2.5em;
- counter-increment: ordered;
- font-family: inherit;
- font-weight: bold;
-}
-
-.ui.ordered.steps .step > * {
- display: block;
- -ms-flex-item-align: middle;
- align-self: middle;
-}
-
-/*--------------
-   Vertical
----------------*/
-
-.ui.vertical.steps {
- display: -webkit-inline-box;
- display: -ms-inline-flexbox;
- display: inline-flex;
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
- overflow: visible;
-}
-
-.ui.vertical.steps .step {
- -webkit-box-pack: start;
- -ms-flex-pack: start;
- justify-content: flex-start;
- border-radius: 0em;
- padding: 1.14285714em 2em;
- border-right: none;
- border-bottom: 1px solid rgba(34, 36, 38, 0.15);
-}
-
-.ui.vertical.steps .step:first-child {
- padding: 1.14285714em 2em;
- border-radius: 0.28571429rem 0.28571429rem 0em 0em;
-}
-
-.ui.vertical.steps .step:last-child {
- border-bottom: none;
- border-radius: 0em 0em 0.28571429rem 0.28571429rem;
-}
-
-.ui.vertical.steps .step:only-child {
- border-radius: 0.28571429rem;
-}
-
-/* Arrow */
-
-.ui.vertical.steps .step:after {
- display: none;
-}
-
-.ui.vertical.steps .step:after {
- top: 50%;
- right: 0%;
- border-width: 0px 1px 1px 0px;
-}
-
-.ui.vertical.steps .step:after {
- display: none;
-}
-
-.ui.vertical.steps .active.step:after {
- display: block;
-}
-
-.ui.vertical.steps .step:last-child:after {
- display: none;
-}
-
-.ui.vertical.steps .active.step:last-child:after {
- display: block;
-}
-
-/*---------------
-   Responsive
-----------------*/
-
-/* Mobile (Default) */
-
-@media only screen and (max-width: 767px) {
- .ui.steps:not(.unstackable) {
-   display: -webkit-inline-box;
-   display: -ms-inline-flexbox;
-   display: inline-flex;
-   overflow: visible;
-   -webkit-box-orient: vertical;
-   -webkit-box-direction: normal;
-   -ms-flex-direction: column;
-   flex-direction: column;
- }
-
- .ui.steps:not(.unstackable) .step {
-   width: 100% !important;
-   -webkit-box-orient: vertical;
-   -webkit-box-direction: normal;
-   -ms-flex-direction: column;
-   flex-direction: column;
-   border-radius: 0em;
-   padding: 1.14285714em 2em;
- }
-
- .ui.steps:not(.unstackable) .step:first-child {
-   padding: 1.14285714em 2em;
-   border-radius: 0.28571429rem 0.28571429rem 0em 0em;
- }
-
- .ui.steps:not(.unstackable) .step:last-child {
-   border-radius: 0em 0em 0.28571429rem 0.28571429rem;
- }
-
- /* Arrow */
-
- .ui.steps:not(.unstackable) .step:after {
-   display: none !important;
- }
-
- /* Content */
-
- .ui.steps:not(.unstackable) .step .content {
-   text-align: center;
- }
-
- /* Icon */
-
- .ui.steps:not(.unstackable) .step > .icon,
- .ui.ordered.steps:not(.unstackable) .step:before {
-   margin: 0em 0em 1rem 0em;
- }
-}
-
-/*******************************
-            States
-*******************************/
-
-/* Link Hover */
-
-.ui.steps .link.step:hover::after,
-.ui.steps .link.step:hover,
-.ui.steps a.step:hover::after,
-.ui.steps a.step:hover {
- background: #F9FAFB;
- color: rgba(0, 0, 0, 0.8);
-}
-
-/* Link Down */
-
-.ui.steps .link.step:active::after,
-.ui.steps .link.step:active,
-.ui.steps a.step:active::after,
-.ui.steps a.step:active {
- background: #F3F4F5;
- color: rgba(0, 0, 0, 0.9);
-}
-
-/* Active */
-
-.ui.steps .step.active {
- cursor: auto;
- background: #F3F4F5;
-}
-
-.ui.steps .step.active:after {
- background: #F3F4F5;
-}
-
-.ui.steps .step.active .title {
- color: #4183C4;
-}
-
-.ui.ordered.steps .step.active:before,
-.ui.steps .active.step .icon {
- color: rgba(0, 0, 0, 0.85);
-}
-
-/* Active Arrow */
-
-.ui.steps .step:after {
- display: block;
-}
-
-.ui.steps .active.step:after {
- display: block;
-}
-
-.ui.steps .step:last-child:after {
- display: none;
-}
-
-.ui.steps .active.step:last-child:after {
- display: none;
-}
-
-/* Active Hover */
-
-.ui.steps .link.active.step:hover::after,
-.ui.steps .link.active.step:hover,
-.ui.steps a.active.step:hover::after,
-.ui.steps a.active.step:hover {
- cursor: pointer;
- background: #DCDDDE;
- color: rgba(0, 0, 0, 0.87);
-}
-
-/* Completed */
-
-.ui.steps .step.completed > .icon:before,
-.ui.ordered.steps .step.completed:before {
- color: #21BA45;
-}
-
-/* Disabled */
-
-.ui.steps .disabled.step {
- cursor: auto;
- background: #FFFFFF;
- pointer-events: none;
-}
-
-.ui.steps .disabled.step,
-.ui.steps .disabled.step .title,
-.ui.steps .disabled.step .description {
- color: rgba(40, 40, 40, 0.3);
-}
-
-.ui.steps .disabled.step:after {
- background: #FFFFFF;
-}
-
-/*******************************
-          Variations
-*******************************/
-
-/*--------------
-  Stackable
----------------*/
-
-/* Tablet Or Below */
-
-@media only screen and (max-width: 991px) {
- .ui[class*="tablet stackable"].steps {
-   display: -webkit-inline-box;
-   display: -ms-inline-flexbox;
-   display: inline-flex;
-   overflow: visible;
-   -webkit-box-orient: vertical;
-   -webkit-box-direction: normal;
-   -ms-flex-direction: column;
-   flex-direction: column;
- }
-
- /* Steps */
-
- .ui[class*="tablet stackable"].steps .step {
-   -webkit-box-orient: vertical;
-   -webkit-box-direction: normal;
-   -ms-flex-direction: column;
-   flex-direction: column;
-   border-radius: 0em;
-   padding: 1.14285714em 2em;
- }
-
- .ui[class*="tablet stackable"].steps .step:first-child {
-   padding: 1.14285714em 2em;
-   border-radius: 0.28571429rem 0.28571429rem 0em 0em;
- }
-
- .ui[class*="tablet stackable"].steps .step:last-child {
-   border-radius: 0em 0em 0.28571429rem 0.28571429rem;
- }
-
- /* Arrow */
-
- .ui[class*="tablet stackable"].steps .step:after {
-   display: none !important;
- }
-
- /* Content */
-
- .ui[class*="tablet stackable"].steps .step .content {
-   text-align: center;
- }
-
- /* Icon */
-
- .ui[class*="tablet stackable"].steps .step > .icon,
- .ui[class*="tablet stackable"].ordered.steps .step:before {
-   margin: 0em 0em 1rem 0em;
- }
-}
-
-/*--------------
-     Fluid
----------------*/
-
-/* Fluid */
-
-.ui.fluid.steps {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- width: 100%;
-}
-
-/*--------------
-   Attached
----------------*/
-
-/* Top */
-
-.ui.attached.steps {
- width: calc(100% +  2px ) !important;
- margin: 0em -1px 0;
- max-width: calc(100% +  2px );
- border-radius: 0.28571429rem 0.28571429rem 0em 0em;
-}
-
-.ui.attached.steps .step:first-child {
- border-radius: 0.28571429rem 0em 0em 0em;
-}
-
-.ui.attached.steps .step:last-child {
- border-radius: 0em 0.28571429rem 0em 0em;
-}
-
-/* Bottom */
-
-.ui.bottom.attached.steps {
- margin: 0 -1px 0em;
- border-radius: 0em 0em 0.28571429rem 0.28571429rem;
-}
-
-.ui.bottom.attached.steps .step:first-child {
- border-radius: 0em 0em 0em 0.28571429rem;
-}
-
-.ui.bottom.attached.steps .step:last-child {
- border-radius: 0em 0em 0.28571429rem 0em;
-}
-
-/*-------------------
-   Evenly Divided
---------------------*/
-
-.ui.one.steps,
-.ui.two.steps,
-.ui.three.steps,
-.ui.four.steps,
-.ui.five.steps,
-.ui.six.steps,
-.ui.seven.steps,
-.ui.eight.steps {
- width: 100%;
-}
-
-.ui.one.steps > .step,
-.ui.two.steps > .step,
-.ui.three.steps > .step,
-.ui.four.steps > .step,
-.ui.five.steps > .step,
-.ui.six.steps > .step,
-.ui.seven.steps > .step,
-.ui.eight.steps > .step {
- -ms-flex-wrap: nowrap;
- flex-wrap: nowrap;
-}
-
-.ui.one.steps > .step {
- width: 100%;
-}
-
-.ui.two.steps > .step {
- width: 50%;
-}
-
-.ui.three.steps > .step {
- width: 33.333%;
-}
-
-.ui.four.steps > .step {
- width: 25%;
-}
-
-.ui.five.steps > .step {
- width: 20%;
-}
-
-.ui.six.steps > .step {
- width: 16.666%;
-}
-
-.ui.seven.steps > .step {
- width: 14.285%;
-}
-
-.ui.eight.steps > .step {
- width: 12.500%;
-}
-
-/*-------------------
-      Sizes
---------------------*/
-
-.ui.mini.steps .step,
-.ui.mini.step {
- font-size: 0.78571429rem;
-}
-
-.ui.tiny.steps .step,
-.ui.tiny.step {
- font-size: 0.85714286rem;
-}
-
-.ui.small.steps .step,
-.ui.small.step {
- font-size: 0.92857143rem;
-}
-
-.ui.steps .step,
-.ui.step {
- font-size: 1rem;
-}
-
-.ui.large.steps .step,
-.ui.large.step {
- font-size: 1.14285714rem;
-}
-
-.ui.big.steps .step,
-.ui.big.step {
- font-size: 1.28571429rem;
-}
-
-.ui.huge.steps .step,
-.ui.huge.step {
- font-size: 1.42857143rem;
-}
-
-.ui.massive.steps .step,
-.ui.massive.step {
- font-size: 1.71428571rem;
-}
-
-/*******************************
-        Theme Overrides
-*******************************/
-
-@font-face {
- font-family: 'Step';
- src: url(data:application/x-font-ttf;charset=utf-8;;base64,AAEAAAAOAIAAAwBgT1MvMj3hSQEAAADsAAAAVmNtYXDQEhm3AAABRAAAAUpjdnQgBkn/lAAABuwAAAAcZnBnbYoKeDsAAAcIAAAJkWdhc3AAAAAQAAAG5AAAAAhnbHlm32cEdgAAApAAAAC2aGVhZAErPHsAAANIAAAANmhoZWEHUwNNAAADgAAAACRobXR4CykAAAAAA6QAAAAMbG9jYQA4AFsAAAOwAAAACG1heHAApgm8AAADuAAAACBuYW1lzJ0aHAAAA9gAAALNcG9zdK69QJgAAAaoAAAAO3ByZXCSoZr/AAAQnAAAAFYAAQO4AZAABQAIAnoCvAAAAIwCegK8AAAB4AAxAQIAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABA6ADoAQNS/2oAWgMLAE8AAAABAAAAAAAAAAAAAwAAAAMAAAAcAAEAAAAAAEQAAwABAAAAHAAEACgAAAAGAAQAAQACAADoAf//AAAAAOgA//8AABgBAAEAAAAAAAAAAAEGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAADpAKYABUAHEAZDwEAAQFCAAIBAmoAAQABagAAAGEUFxQDEisBFAcBBiInASY0PwE2Mh8BATYyHwEWA6QP/iAQLBD+6g8PTBAsEKQBbhAsEEwPAhYWEP4gDw8BFhAsEEwQEKUBbxAQTBAAAAH//f+xA18DCwAMABJADwABAQpDAAAACwBEFRMCESsBFA4BIi4CPgEyHgEDWXLG6MhuBnq89Lp+AV51xHR0xOrEdHTEAAAAAAEAAAABAADDeRpdXw889QALA+gAAAAAzzWYjQAAAADPNWBN//3/sQOkAwsAAAAIAAIAAAAAAAAAAQAAA1L/agBaA+gAAP/3A6QAAQAAAAAAAAAAAAAAAAAAAAMD6AAAA+gAAANZAAAAAAAAADgAWwABAAAAAwAWAAEAAAAAAAIABgATAG4AAAAtCZEAAAAAAAAAEgDeAAEAAAAAAAAANQAAAAEAAAAAAAEACAA1AAEAAAAAAAIABwA9AAEAAAAAAAMACABEAAEAAAAAAAQACABMAAEAAAAAAAUACwBUAAEAAAAAAAYACABfAAEAAAAAAAoAKwBnAAEAAAAAAAsAEwCSAAMAAQQJAAAAagClAAMAAQQJAAEAEAEPAAMAAQQJAAIADgEfAAMAAQQJAAMAEAEtAAMAAQQJAAQAEAE9AAMAAQQJAAUAFgFNAAMAAQQJAAYAEAFjAAMAAQQJAAoAVgFzAAMAAQQJAAsAJgHJQ29weXJpZ2h0IChDKSAyMDE0IGJ5IG9yaWdpbmFsIGF1dGhvcnMgQCBmb250ZWxsby5jb21mb250ZWxsb1JlZ3VsYXJmb250ZWxsb2ZvbnRlbGxvVmVyc2lvbiAxLjBmb250ZWxsb0dlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAEMAbwBwAHkAcgBpAGcAaAB0ACAAKABDACkAIAAyADAAMQA0ACAAYgB5ACAAbwByAGkAZwBpAG4AYQBsACAAYQB1AHQAaABvAHIAcwAgAEAAIABmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQBmAG8AbgB0AGUAbABsAG8AUgBlAGcAdQBsAGEAcgBmAG8AbgB0AGUAbABsAG8AZgBvAG4AdABlAGwAbABvAFYAZQByAHMAaQBvAG4AIAAxAC4AMABmAG8AbgB0AGUAbABsAG8ARwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABzAHYAZwAyAHQAdABmACAAZgByAG8AbQAgAEYAbwBuAHQAZQBsAGwAbwAgAHAAcgBvAGoAZQBjAHQALgBoAHQAdABwADoALwAvAGYAbwBuAHQAZQBsAGwAbwAuAGMAbwBtAAAAAAIAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAQIBAwljaGVja21hcmsGY2lyY2xlAAAAAAEAAf//AA8AAAAAAAAAAAAAAAAAAAAAADIAMgML/7EDC/+xsAAssCBgZi2wASwgZCCwwFCwBCZasARFW1ghIyEbilggsFBQWCGwQFkbILA4UFghsDhZWSCwCkVhZLAoUFghsApFILAwUFghsDBZGyCwwFBYIGYgiophILAKUFhgGyCwIFBYIbAKYBsgsDZQWCGwNmAbYFlZWRuwACtZWSOwAFBYZVlZLbACLCBFILAEJWFkILAFQ1BYsAUjQrAGI0IbISFZsAFgLbADLCMhIyEgZLEFYkIgsAYjQrIKAAIqISCwBkMgiiCKsAArsTAFJYpRWGBQG2FSWVgjWSEgsEBTWLAAKxshsEBZI7AAUFhlWS2wBCywB0MrsgACAENgQi2wBSywByNCIyCwACNCYbCAYrABYLAEKi2wBiwgIEUgsAJFY7ABRWJgRLABYC2wBywgIEUgsAArI7ECBCVgIEWKI2EgZCCwIFBYIbAAG7AwUFiwIBuwQFlZI7AAUFhlWbADJSNhRESwAWAtsAgssQUFRbABYUQtsAkssAFgICCwCUNKsABQWCCwCSNCWbAKQ0qwAFJYILAKI0JZLbAKLCC4BABiILgEAGOKI2GwC0NgIIpgILALI0IjLbALLEtUWLEHAURZJLANZSN4LbAMLEtRWEtTWLEHAURZGyFZJLATZSN4LbANLLEADENVWLEMDEOwAWFCsAorWbAAQ7ACJUKxCQIlQrEKAiVCsAEWIyCwAyVQWLEBAENgsAQlQoqKIIojYbAJKiEjsAFhIIojYbAJKiEbsQEAQ2CwAiVCsAIlYbAJKiFZsAlDR7AKQ0dgsIBiILACRWOwAUViYLEAABMjRLABQ7AAPrIBAQFDYEItsA4ssQAFRVRYALAMI0IgYLABYbUNDQEACwBCQopgsQ0FK7BtKxsiWS2wDyyxAA4rLbAQLLEBDistsBEssQIOKy2wEiyxAw4rLbATLLEEDistsBQssQUOKy2wFSyxBg4rLbAWLLEHDistsBcssQgOKy2wGCyxCQ4rLbAZLLAIK7EABUVUWACwDCNCIGCwAWG1DQ0BAAsAQkKKYLENBSuwbSsbIlktsBossQAZKy2wGyyxARkrLbAcLLECGSstsB0ssQMZKy2wHiyxBBkrLbAfLLEFGSstsCAssQYZKy2wISyxBxkrLbAiLLEIGSstsCMssQkZKy2wJCwgPLABYC2wJSwgYLANYCBDI7ABYEOwAiVhsAFgsCQqIS2wJiywJSuwJSotsCcsICBHICCwAkVjsAFFYmAjYTgjIIpVWCBHICCwAkVjsAFFYmAjYTgbIVktsCgssQAFRVRYALABFrAnKrABFTAbIlktsCkssAgrsQAFRVRYALABFrAnKrABFTAbIlktsCosIDWwAWAtsCssALADRWOwAUVisAArsAJFY7ABRWKwACuwABa0AAAAAABEPiM4sSoBFSotsCwsIDwgRyCwAkVjsAFFYmCwAENhOC2wLSwuFzwtsC4sIDwgRyCwAkVjsAFFYmCwAENhsAFDYzgtsC8ssQIAFiUgLiBHsAAjQrACJUmKikcjRyNhIFhiGyFZsAEjQrIuAQEVFCotsDAssAAWsAQlsAQlRyNHI2GwBkUrZYouIyAgPIo4LbAxLLAAFrAEJbAEJSAuRyNHI2EgsAQjQrAGRSsgsGBQWCCwQFFYswIgAyAbswImAxpZQkIjILAIQyCKI0cjRyNhI0ZgsARDsIBiYCCwACsgiophILACQ2BkI7ADQ2FkUFiwAkNhG7ADQ2BZsAMlsIBiYSMgILAEJiNGYTgbI7AIQ0awAiWwCENHI0cjYWAgsARDsIBiYCMgsAArI7AEQ2CwACuwBSVhsAUlsIBisAQmYSCwBCVgZCOwAyVgZFBYIRsjIVkjICCwBCYjRmE4WS2wMiywABYgICCwBSYgLkcjRyNhIzw4LbAzLLAAFiCwCCNCICAgRiNHsAArI2E4LbA0LLAAFrADJbACJUcjRyNhsABUWC4gPCMhG7ACJbACJUcjRyNhILAFJbAEJUcjRyNhsAYlsAUlSbACJWGwAUVjIyBYYhshWWOwAUViYCMuIyAgPIo4IyFZLbA1LLAAFiCwCEMgLkcjRyNhIGCwIGBmsIBiIyAgPIo4LbA2LCMgLkawAiVGUlggPFkusSYBFCstsDcsIyAuRrACJUZQWCA8WS6xJgEUKy2wOCwjIC5GsAIlRlJYIDxZIyAuRrACJUZQWCA8WS6xJgEUKy2wOSywMCsjIC5GsAIlRlJYIDxZLrEmARQrLbA6LLAxK4ogIDywBCNCijgjIC5GsAIlRlJYIDxZLrEmARQrsARDLrAmKy2wOyywABawBCWwBCYgLkcjRyNhsAZFKyMgPCAuIzixJgEUKy2wPCyxCAQlQrAAFrAEJbAEJSAuRyNHI2EgsAQjQrAGRSsgsGBQWCCwQFFYswIgAyAbswImAxpZQkIjIEewBEOwgGJgILAAKyCKimEgsAJDYGQjsANDYWRQWLACQ2EbsANDYFmwAyWwgGJhsAIlRmE4IyA8IzgbISAgRiNHsAArI2E4IVmxJgEUKy2wPSywMCsusSYBFCstsD4ssDErISMgIDywBCNCIzixJgEUK7AEQy6wJistsD8ssAAVIEewACNCsgABARUUEy6wLCotsEAssAAVIEewACNCsgABARUUEy6wLCotsEEssQABFBOwLSotsEIssC8qLbBDLLAAFkUjIC4gRoojYTixJgEUKy2wRCywCCNCsEMrLbBFLLIAADwrLbBGLLIAATwrLbBHLLIBADwrLbBILLIBATwrLbBJLLIAAD0rLbBKLLIAAT0rLbBLLLIBAD0rLbBMLLIBAT0rLbBNLLIAADkrLbBOLLIAATkrLbBPLLIBADkrLbBQLLIBATkrLbBRLLIAADsrLbBSLLIAATsrLbBTLLIBADsrLbBULLIBATsrLbBVLLIAAD4rLbBWLLIAAT4rLbBXLLIBAD4rLbBYLLIBAT4rLbBZLLIAADorLbBaLLIAATorLbBbLLIBADorLbBcLLIBATorLbBdLLAyKy6xJgEUKy2wXiywMiuwNistsF8ssDIrsDcrLbBgLLAAFrAyK7A4Ky2wYSywMysusSYBFCstsGIssDMrsDYrLbBjLLAzK7A3Ky2wZCywMyuwOCstsGUssDQrLrEmARQrLbBmLLA0K7A2Ky2wZyywNCuwNystsGgssDQrsDgrLbBpLLA1Ky6xJgEUKy2waiywNSuwNistsGsssDUrsDcrLbBsLLA1K7A4Ky2wbSwrsAhlsAMkUHiwARUwLQAAAEu4AMhSWLEBAY5ZuQgACABjILABI0SwAyNwsgQoCUVSRLIKAgcqsQYBRLEkAYhRWLBAiFixBgNEsSYBiFFYuAQAiFixBgFEWVlZWbgB/4WwBI2xBQBEAAA=) format('truetype'), url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAAoUAA4AAAAAEPQAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAABRAAAAEQAAABWPeFJAWNtYXAAAAGIAAAAOgAAAUrQEhm3Y3Z0IAAAAcQAAAAUAAAAHAZJ/5RmcGdtAAAB2AAABPkAAAmRigp4O2dhc3AAAAbUAAAACAAAAAgAAAAQZ2x5ZgAABtwAAACuAAAAtt9nBHZoZWFkAAAHjAAAADUAAAA2ASs8e2hoZWEAAAfEAAAAIAAAACQHUwNNaG10eAAAB+QAAAAMAAAADAspAABsb2NhAAAH8AAAAAgAAAAIADgAW21heHAAAAf4AAAAIAAAACAApgm8bmFtZQAACBgAAAF3AAACzcydGhxwb3N0AAAJkAAAACoAAAA7rr1AmHByZXAAAAm8AAAAVgAAAFaSoZr/eJxjYGTewTiBgZWBg6mKaQ8DA0MPhGZ8wGDIyMTAwMTAysyAFQSkuaYwOLxgeMHIHPQ/iyGKmZvBHyjMCJIDAPe9C2B4nGNgYGBmgGAZBkYGEHAB8hjBfBYGDSDNBqQZGZgYGF4w/v8PUvCCAURLMELVAwEjG8OIBwBk5AavAAB4nGNgQANGDEbM3P83gjAAELQD4XicnVXZdtNWFJU8ZHASOmSgoA7X3DhQ68qEKRgwaSrFdiEdHAitBB2kDHTkncc+62uOQrtWH/m07n09JLR0rbYsls++R1tn2DrnRhwjKn0aiGvUoZKXA6msPZZK90lc13Uvj5UMBnFdthJPSZuonSRKat3sUC7xWOsqWSdYJ+PlIFZPVZ5noAziFB5lSUQbRBuplyZJ4onjJ4kWZxAfJUkgJaMQp9LIUEI1GsRS1aFM6dCr1xNx00DKRqMedVhU90PFJ8c1p9SsA0YqVznCFevVRr4bpwMve5DEOsGzrYcxHnisfpQqkIqR6cg/dkpOlIaBVHHUoVbi6DCTX/eRTCrNQKaMYkWl7oG43f102xYxPXQ6vi5KlUaqurnOKJrt0fGogygP2cbppNzQ2fbw5RlTVKtdcbPtQGYNXErJbHSfRAAdJlLj6QFONZwCqRn1R8XZ588BEslclKo8VTKHegOZMzt7cTHtbiersnCknwcyb3Z2452HQ6dXh3/R+hdM4cxHj+Jifj5C+lBqfiJOJKVGWMzyp4YfcVcgQrkxiAsXyuBThDl0RdrZZl3jtTH2hs/5SqlhPQna6KP4fgr9TiQrHGdRo/VInM1j13Wt3GdQS7W7Fzsyr0OVIu7vCwuuM+eEYZ4WC1VfnvneBTT/Bohn/EDeNIVL+5YpSrRvm6JMu2iKCu0SVKVdNsUU7YoppmnPmmKG9h1TzNKeMzLj/8vc55H7HN7xkJv2XeSmfQ+5ad9HbtoPkJtWITdtHblpLyA3rUZu2lWjOnYEGgZpF1IVQdA0svph3Fab9UDWjDR8aWDyLmLI+upER521tcofxX914gsHcmmip7siF5viLq/bFj483e6rj5pG3bDV+MaR8jAeRnocmtBZ+c3hv+1N3S6a7jKqMugBFUwKwABl7UAC0zrbCaT1mqf48gdgXIZ4zkpDtVSfO4am7+V5X/exOfG+x+3GLrdcd3kJWdYNcmP28N9SZKrrH+UtrVQnR6wrJ49VaxhDKrwour6SlHu0tRu/KKmy8l6U1srnk5CbPYMbQlu27mGwI0xpyiUeXlOlKD3UUo6yQyxvKco84JSLC1qGxLgOdQ9qa8TpoXoYGwshhqG0vRBwSCldFd+0ynfxHqtr2Oj4xRXh6XpyEhGf4ir7UfBU10b96A7avGbdMoMpVaqn+4xPsa/b9lFZaaSOsxe3VAfXNOsaORXTT+Rr4HRvOGjdAz1UfDRBI1U1x+jGKGM0ljXl3wR0MVZ+w2jVYvs93E+dpFWsuUuY7JsT9+C0u/0q+7WcW0bW/dcGvW3kip8jMb8tCvw7B2K3ZA3UO5OBGAvIWdAYxhYmdxiug23EbfY/Jqf/34aFRXJXOxq7eerD1ZNRJXfZ8rjLTXZZ16M2R9VOGvsIjS0PN+bY4XIstsRgQbb+wf8x7gF3aVEC4NDIZZiI2nShnurh6h6rsW04VxIBds2x43QAegAuQd8cu9bzCYD13CPnLsB9cgh2yCH4lByCz8i5BfA5OQRfkEMwIIdgl5w7AA/IIXhIDsEeOQSPyNkE+JIcgq/IIYjJIUjIuQ3wmByCJ+QQfE0OwTdGrk5k/pYH2QD6zqKbQKmdGhzaOGRGrk3Y+zxY9oFFZB9aROqRkesT6lMeLPV7i0j9wSJSfzRyY0L9iQdL/dkiUn+xiNRnxpeZIymvDp7zjg7+BJfqrV4AAAAAAQAB//8AD3icY2BkAALmJUwzGEQZZBwk+RkZGBmdGJgYmbIYgMwsoGSiiLgIs5A2owg7I5uSOqOaiT2jmZE8I5gQY17C/09BQEfg3yt+fh8gvYQxD0j68DOJiQn8U+DnZxQDcQUEljLmCwBpBgbG/3//b2SOZ+Zm4GEQcuAH2sblDLSEm8FFVJhJEGgLH6OSHpMdo5EcI3Nk0bEXJ/LYqvZ82VXHGFd6pKTkyCsQwQAAq+QkqAAAeJxjYGRgYADiw5VSsfH8Nl8ZuJlfAEUYzpvO6IXQCb7///7fyLyEmRvI5WBgAokCAFb/DJAAAAB4nGNgZGBgDvqfxRDF/IKB4f935iUMQBEUwAwAi5YFpgPoAAAD6AAAA1kAAAAAAAAAOABbAAEAAAADABYAAQAAAAAAAgAGABMAbgAAAC0JkQAAAAB4nHWQy2rCQBSG//HSi0JbWui2sypKabxgN4IgWHTTbqS4LTHGJBIzMhkFX6Pv0IfpS/RZ+puMpShNmMx3vjlz5mQAXOMbAvnzxJGzwBmjnAs4Rc9ykf7Zcon8YrmMKt4sn9C/W67gAYHlKm7wwQqidM5ogU/LAlfi0nIBF+LOcpH+0XKJ3LNcxq14tXxC71muYCJSy1Xci6+BWm11FIRG1gZ12W62OnK6lYoqStxYumsTKp3KvpyrxPhxrBxPLfc89oN17Op9uJ8nvk4jlciW09yrkZ/42jX+bFc93QRtY+ZyrtVSDm2GXGm18D3jhMasuo3G3/MwgMIKW2hEvKoQBhI12jrnNppooUOaMkMyM8+KkMBFTONizR1htpIy7nPMGSW0PjNisgOP3+WRH5MC7o9ZRR+tHsYT0u6MKPOSfTns7jBrREqyTDezs9/eU2x4WpvWcNeuS511JTE8qCF5H7u1BY1H72S3Ymi7aPD95/9+AN1fhEsAeJxjYGKAAC4G7ICZgYGRiZGZMzkjNTk7N7Eomy05syg5J5WBAQBE1QZBAABLuADIUlixAQGOWbkIAAgAYyCwASNEsAMjcLIEKAlFUkSyCgIHKrEGAUSxJAGIUViwQIhYsQYDRLEmAYhRWLgEAIhYsQYBRFlZWVm4Af+FsASNsQUARAAA) format('woff');
-}
-
-.ui.steps .step.completed > .icon:before,
-.ui.ordered.steps .step.completed:before {
- font-family: 'Step';
- content: '\e800';
- /* 'î €' */
-}
-
-/*******************************
-        Site Overrides
-*******************************/
-/*!
-* # Semantic UI 2.3.0 - Breadcrumb
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-          Breadcrumb
-*******************************/
-
-.ui.breadcrumb {
- line-height: 1;
- display: inline-block;
- margin: 0em 0em;
- vertical-align: middle;
-}
-
-.ui.breadcrumb:first-child {
- margin-top: 0em;
-}
-
-.ui.breadcrumb:last-child {
- margin-bottom: 0em;
-}
-
-/*******************************
-         Content
-*******************************/
-
-/* Divider */
-
-.ui.breadcrumb .divider {
- display: inline-block;
- opacity: 0.7;
- margin: 0em 0.21428571rem 0em;
- font-size: 0.92857143em;
- color: rgba(0, 0, 0, 0.4);
- vertical-align: baseline;
-}
-
-/* Link */
-
-.ui.breadcrumb a {
- color: #4183C4;
-}
-
-.ui.breadcrumb a:hover {
- color: #1e70bf;
-}
-
-/* Icon Divider */
-
-.ui.breadcrumb .icon.divider {
- font-size: 0.85714286em;
- vertical-align: baseline;
-}
-
-/* Section */
-
-.ui.breadcrumb a.section {
- cursor: pointer;
-}
-
-.ui.breadcrumb .section {
- display: inline-block;
- margin: 0em;
- padding: 0em;
-}
-
-/* Loose Coupling */
-
-.ui.breadcrumb.segment {
- display: inline-block;
- padding: 0.78571429em 1em;
-}
-
-/*******************************
-           States
-*******************************/
-
-.ui.breadcrumb .active.section {
- font-weight: bold;
-}
-
-/*******************************
-          Variations
-*******************************/
-
-.ui.mini.breadcrumb {
- font-size: 0.78571429rem;
-}
-
-.ui.tiny.breadcrumb {
- font-size: 0.85714286rem;
-}
-
-.ui.small.breadcrumb {
- font-size: 0.92857143rem;
-}
-
-.ui.breadcrumb {
- font-size: 1rem;
-}
-
-.ui.large.breadcrumb {
- font-size: 1.14285714rem;
-}
-
-.ui.big.breadcrumb {
- font-size: 1.28571429rem;
-}
-
-.ui.huge.breadcrumb {
- font-size: 1.42857143rem;
-}
-
-.ui.massive.breadcrumb {
- font-size: 1.71428571rem;
-}
-
-/*******************************
-        Theme Overrides
-*******************************/
-
-/*******************************
-        Site Overrides
-*******************************/
-/*!
-* # Semantic UI 2.3.0 - Form
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-           Elements
-*******************************/
-
-/*--------------------
-       Form
----------------------*/
-
-.ui.form {
- position: relative;
- max-width: 100%;
-}
-
-/*--------------------
-       Content
----------------------*/
-
-.ui.form > p {
- margin: 1em 0em;
-}
-
-/*--------------------
-       Field
----------------------*/
-
-.ui.form .field {
- clear: both;
- margin: 0em 0em 1em;
-}
-
-.ui.form .field:last-child,
-.ui.form .fields:last-child .field {
- margin-bottom: 0em;
-}
-
-.ui.form .fields .field {
- clear: both;
- margin: 0em;
-}
-
-/*--------------------
-       Labels
----------------------*/
-
-.ui.form .field > label {
- display: block;
- margin: 0em 0em 0.28571429rem 0em;
- color: rgba(0, 0, 0, 0.87);
- font-size: 0.92857143em;
- font-weight: bold;
- text-transform: none;
-}
-
-/*--------------------
-   Standard Inputs
----------------------*/
-
-.ui.form textarea,
-.ui.form input:not([type]),
-.ui.form input[type="date"],
-.ui.form input[type="datetime-local"],
-.ui.form input[type="email"],
-.ui.form input[type="number"],
-.ui.form input[type="password"],
-.ui.form input[type="search"],
-.ui.form input[type="tel"],
-.ui.form input[type="time"],
-.ui.form input[type="text"],
-.ui.form input[type="file"],
-.ui.form input[type="url"] {
- width: 100%;
- vertical-align: top;
-}
-
-/* Set max height on unusual input */
-
-.ui.form ::-webkit-datetime-edit,
-.ui.form ::-webkit-inner-spin-button {
- height: 1.21428571em;
-}
-
-.ui.form input:not([type]),
-.ui.form input[type="date"],
-.ui.form input[type="datetime-local"],
-.ui.form input[type="email"],
-.ui.form input[type="number"],
-.ui.form input[type="password"],
-.ui.form input[type="search"],
-.ui.form input[type="tel"],
-.ui.form input[type="time"],
-.ui.form input[type="text"],
-.ui.form input[type="file"],
-.ui.form input[type="url"] {
- font-family: 'Lato', 'Helvetica Neue', Arial, Helvetica, sans-serif;
- margin: 0em;
- outline: none;
- -webkit-appearance: none;
- tap-highlight-color: rgba(255, 255, 255, 0);
- line-height: 1.21428571em;
- padding: 0.67857143em 1em;
- font-size: 1em;
- background: #FFFFFF;
- border: 1px solid rgba(34, 36, 38, 0.15);
- color: rgba(0, 0, 0, 0.87);
- border-radius: 0.28571429rem;
- -webkit-box-shadow: 0em 0em 0em 0em transparent inset;
- box-shadow: 0em 0em 0em 0em transparent inset;
- -webkit-transition: color 0.1s ease, border-color 0.1s ease;
- transition: color 0.1s ease, border-color 0.1s ease;
-}
-
-/* Text Area */
-
-.ui.form textarea {
- margin: 0em;
- -webkit-appearance: none;
- tap-highlight-color: rgba(255, 255, 255, 0);
- padding: 0.78571429em 1em;
- background: #FFFFFF;
- border: 1px solid rgba(34, 36, 38, 0.15);
- outline: none;
- color: rgba(0, 0, 0, 0.87);
- border-radius: 0.28571429rem;
- -webkit-box-shadow: 0em 0em 0em 0em transparent inset;
- box-shadow: 0em 0em 0em 0em transparent inset;
- -webkit-transition: color 0.1s ease, border-color 0.1s ease;
- transition: color 0.1s ease, border-color 0.1s ease;
- font-size: 1em;
- line-height: 1.2857;
- resize: vertical;
-}
-
-.ui.form textarea:not([rows]) {
- height: 12em;
- min-height: 8em;
- max-height: 24em;
-}
-
-.ui.form textarea,
-.ui.form input[type="checkbox"] {
- vertical-align: top;
-}
-
-/*--------------------------
- Input w/ attached Button
----------------------------*/
-
-.ui.form input.attached {
- width: auto;
-}
-
-/*--------------------
-    Basic Select
----------------------*/
-
-.ui.form select {
- display: block;
- height: auto;
- width: 100%;
- background: #FFFFFF;
- border: 1px solid rgba(34, 36, 38, 0.15);
- border-radius: 0.28571429rem;
- -webkit-box-shadow: 0em 0em 0em 0em transparent inset;
- box-shadow: 0em 0em 0em 0em transparent inset;
- padding: 0.62em 1em;
- color: rgba(0, 0, 0, 0.87);
- -webkit-transition: color 0.1s ease, border-color 0.1s ease;
- transition: color 0.1s ease, border-color 0.1s ease;
-}
-
-/*--------------------
-      Dropdown
----------------------*/
-
-/* Block */
-
-.ui.form .field > .selection.dropdown {
- width: 100%;
-}
-
-.ui.form .field > .selection.dropdown > .dropdown.icon {
- float: right;
-}
-
-/* Inline */
-
-.ui.form .inline.fields .field > .selection.dropdown,
-.ui.form .inline.field > .selection.dropdown {
- width: auto;
-}
-
-.ui.form .inline.fields .field > .selection.dropdown > .dropdown.icon,
-.ui.form .inline.field > .selection.dropdown > .dropdown.icon {
- float: none;
-}
-
-/*--------------------
-      UI Input
----------------------*/
-
-/* Block */
-
-.ui.form .field .ui.input,
-.ui.form .fields .field .ui.input,
-.ui.form .wide.field .ui.input {
- width: 100%;
-}
-
-/* Inline  */
-
-.ui.form .inline.fields .field:not(.wide) .ui.input,
-.ui.form .inline.field:not(.wide) .ui.input {
- width: auto;
- vertical-align: middle;
-}
-
-/* Auto Input */
-
-.ui.form .fields .field .ui.input input,
-.ui.form .field .ui.input input {
- width: auto;
-}
-
-/* Full Width Input */
-
-.ui.form .ten.fields .ui.input input,
-.ui.form .nine.fields .ui.input input,
-.ui.form .eight.fields .ui.input input,
-.ui.form .seven.fields .ui.input input,
-.ui.form .six.fields .ui.input input,
-.ui.form .five.fields .ui.input input,
-.ui.form .four.fields .ui.input input,
-.ui.form .three.fields .ui.input input,
-.ui.form .two.fields .ui.input input,
-.ui.form .wide.field .ui.input input {
- -webkit-box-flex: 1;
- -ms-flex: 1 0 auto;
- flex: 1 0 auto;
- width: 0px;
-}
-
-/*--------------------
-  Types of Messages
----------------------*/
-
-.ui.form .success.message,
-.ui.form .warning.message,
-.ui.form .error.message {
- display: none;
-}
-
-/* Assumptions */
-
-.ui.form .message:first-child {
- margin-top: 0px;
-}
-
-/*--------------------
-  Validation Prompt
----------------------*/
-
-.ui.form .field .prompt.label {
- white-space: normal;
- background: #FFFFFF !important;
- border: 1px solid #E0B4B4 !important;
- color: #9F3A38 !important;
-}
-
-.ui.form .inline.fields .field .prompt,
-.ui.form .inline.field .prompt {
- vertical-align: top;
- margin: -0.25em 0em -0.5em 0.5em;
-}
-
-.ui.form .inline.fields .field .prompt:before,
-.ui.form .inline.field .prompt:before {
- border-width: 0px 0px 1px 1px;
- bottom: auto;
- right: auto;
- top: 50%;
- left: 0em;
-}
-
-/*******************************
-           States
-*******************************/
-
-/*--------------------
-     Autofilled
----------------------*/
-
-.ui.form .field.field input:-webkit-autofill {
- -webkit-box-shadow: 0px 0px 0px 100px #FFFFF0 inset !important;
- box-shadow: 0px 0px 0px 100px #FFFFF0 inset !important;
- border-color: #E5DFA1 !important;
-}
-
-/* Focus */
-
-.ui.form .field.field input:-webkit-autofill:focus {
- -webkit-box-shadow: 0px 0px 0px 100px #FFFFF0 inset !important;
- box-shadow: 0px 0px 0px 100px #FFFFF0 inset !important;
- border-color: #D5C315 !important;
-}
-
-/* Error */
-
-.ui.form .error.error input:-webkit-autofill {
- -webkit-box-shadow: 0px 0px 0px 100px #FFFAF0 inset !important;
- box-shadow: 0px 0px 0px 100px #FFFAF0 inset !important;
- border-color: #E0B4B4 !important;
-}
-
-/*--------------------
-     Placeholder
----------------------*/
-
-/* browsers require these rules separate */
-
-.ui.form ::-webkit-input-placeholder {
- color: rgba(191, 191, 191, 0.87);
-}
-
-.ui.form :-ms-input-placeholder {
- color: rgba(191, 191, 191, 0.87);
-}
-
-.ui.form ::-moz-placeholder {
- color: rgba(191, 191, 191, 0.87);
-}
-
-.ui.form :focus::-webkit-input-placeholder {
- color: rgba(115, 115, 115, 0.87);
-}
-
-.ui.form :focus:-ms-input-placeholder {
- color: rgba(115, 115, 115, 0.87);
-}
-
-.ui.form :focus::-moz-placeholder {
- color: rgba(115, 115, 115, 0.87);
-}
-
-/* Error Placeholder */
-
-.ui.form .error ::-webkit-input-placeholder {
- color: #e7bdbc;
-}
-
-.ui.form .error :-ms-input-placeholder {
- color: #e7bdbc !important;
-}
-
-.ui.form .error ::-moz-placeholder {
- color: #e7bdbc;
-}
-
-.ui.form .error :focus::-webkit-input-placeholder {
- color: #da9796;
-}
-
-.ui.form .error :focus:-ms-input-placeholder {
- color: #da9796 !important;
-}
-
-.ui.form .error :focus::-moz-placeholder {
- color: #da9796;
-}
-
-/*--------------------
-       Focus
----------------------*/
-
-.ui.form input:not([type]):focus,
-.ui.form input[type="date"]:focus,
-.ui.form input[type="datetime-local"]:focus,
-.ui.form input[type="email"]:focus,
-.ui.form input[type="number"]:focus,
-.ui.form input[type="password"]:focus,
-.ui.form input[type="search"]:focus,
-.ui.form input[type="tel"]:focus,
-.ui.form input[type="time"]:focus,
-.ui.form input[type="text"]:focus,
-.ui.form input[type="file"]:focus,
-.ui.form input[type="url"]:focus {
- color: rgba(0, 0, 0, 0.95);
- border-color: #85B7D9;
- border-radius: 0.28571429rem;
- background: #FFFFFF;
- -webkit-box-shadow: 0px 0em 0em 0em rgba(34, 36, 38, 0.35) inset;
- box-shadow: 0px 0em 0em 0em rgba(34, 36, 38, 0.35) inset;
-}
-
-.ui.form textarea:focus {
- color: rgba(0, 0, 0, 0.95);
- border-color: #85B7D9;
- border-radius: 0.28571429rem;
- background: #FFFFFF;
- -webkit-box-shadow: 0px 0em 0em 0em rgba(34, 36, 38, 0.35) inset;
- box-shadow: 0px 0em 0em 0em rgba(34, 36, 38, 0.35) inset;
- -webkit-appearance: none;
-}
-
-/*--------------------
-       Success
----------------------*/
-
-/* On Form */
-
-.ui.form.success .success.message:not(:empty) {
- display: block;
-}
-
-.ui.form.success .compact.success.message:not(:empty) {
- display: inline-block;
-}
-
-.ui.form.success .icon.success.message:not(:empty) {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
-}
-
-/*--------------------
-       Warning
----------------------*/
-
-/* On Form */
-
-.ui.form.warning .warning.message:not(:empty) {
- display: block;
-}
-
-.ui.form.warning .compact.warning.message:not(:empty) {
- display: inline-block;
-}
-
-.ui.form.warning .icon.warning.message:not(:empty) {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
-}
-
-/*--------------------
-       Error
----------------------*/
-
-/* On Form */
-
-.ui.form.error .error.message:not(:empty) {
- display: block;
-}
-
-.ui.form.error .compact.error.message:not(:empty) {
- display: inline-block;
-}
-
-.ui.form.error .icon.error.message:not(:empty) {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
-}
-
-/* On Field(s) */
-
-.ui.form .fields.error .field label,
-.ui.form .field.error label,
-.ui.form .fields.error .field .input,
-.ui.form .field.error .input {
- color: #9F3A38;
-}
-
-.ui.form .fields.error .field .corner.label,
-.ui.form .field.error .corner.label {
- border-color: #9F3A38;
- color: #FFFFFF;
-}
-
-.ui.form .fields.error .field textarea,
-.ui.form .fields.error .field select,
-.ui.form .fields.error .field input:not([type]),
-.ui.form .fields.error .field input[type="date"],
-.ui.form .fields.error .field input[type="datetime-local"],
-.ui.form .fields.error .field input[type="email"],
-.ui.form .fields.error .field input[type="number"],
-.ui.form .fields.error .field input[type="password"],
-.ui.form .fields.error .field input[type="search"],
-.ui.form .fields.error .field input[type="tel"],
-.ui.form .fields.error .field input[type="time"],
-.ui.form .fields.error .field input[type="text"],
-.ui.form .fields.error .field input[type="file"],
-.ui.form .fields.error .field input[type="url"],
-.ui.form .field.error textarea,
-.ui.form .field.error select,
-.ui.form .field.error input:not([type]),
-.ui.form .field.error input[type="date"],
-.ui.form .field.error input[type="datetime-local"],
-.ui.form .field.error input[type="email"],
-.ui.form .field.error input[type="number"],
-.ui.form .field.error input[type="password"],
-.ui.form .field.error input[type="search"],
-.ui.form .field.error input[type="tel"],
-.ui.form .field.error input[type="time"],
-.ui.form .field.error input[type="text"],
-.ui.form .field.error input[type="file"],
-.ui.form .field.error input[type="url"] {
- background: #FFF6F6;
- border-color: #E0B4B4;
- color: #9F3A38;
- border-radius: '';
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-.ui.form .field.error textarea:focus,
-.ui.form .field.error select:focus,
-.ui.form .field.error input:not([type]):focus,
-.ui.form .field.error input[type="date"]:focus,
-.ui.form .field.error input[type="datetime-local"]:focus,
-.ui.form .field.error input[type="email"]:focus,
-.ui.form .field.error input[type="number"]:focus,
-.ui.form .field.error input[type="password"]:focus,
-.ui.form .field.error input[type="search"]:focus,
-.ui.form .field.error input[type="tel"]:focus,
-.ui.form .field.error input[type="time"]:focus,
-.ui.form .field.error input[type="text"]:focus,
-.ui.form .field.error input[type="file"]:focus,
-.ui.form .field.error input[type="url"]:focus {
- background: #FFF6F6;
- border-color: #E0B4B4;
- color: #9F3A38;
- -webkit-appearance: none;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-/* Preserve Native Select Stylings */
-
-.ui.form .field.error select {
- -webkit-appearance: menulist-button;
-}
-
-/*------------------
-   Dropdown Error
---------------------*/
-
-.ui.form .fields.error .field .ui.dropdown,
-.ui.form .fields.error .field .ui.dropdown .item,
-.ui.form .field.error .ui.dropdown,
-.ui.form .field.error .ui.dropdown .text,
-.ui.form .field.error .ui.dropdown .item {
- background: #FFF6F6;
- color: #9F3A38;
-}
-
-.ui.form .fields.error .field .ui.dropdown,
-.ui.form .field.error .ui.dropdown {
- border-color: #E0B4B4 !important;
-}
-
-.ui.form .fields.error .field .ui.dropdown:hover,
-.ui.form .field.error .ui.dropdown:hover {
- border-color: #E0B4B4 !important;
-}
-
-.ui.form .fields.error .field .ui.dropdown:hover .menu,
-.ui.form .field.error .ui.dropdown:hover .menu {
- border-color: #E0B4B4;
-}
-
-.ui.form .fields.error .field .ui.multiple.selection.dropdown > .label,
-.ui.form .field.error .ui.multiple.selection.dropdown > .label {
- background-color: #EACBCB;
- color: #9F3A38;
-}
-
-/* Hover */
-
-.ui.form .fields.error .field .ui.dropdown .menu .item:hover,
-.ui.form .field.error .ui.dropdown .menu .item:hover {
- background-color: #FBE7E7;
-}
-
-/* Selected */
-
-.ui.form .fields.error .field .ui.dropdown .menu .selected.item,
-.ui.form .field.error .ui.dropdown .menu .selected.item {
- background-color: #FBE7E7;
-}
-
-/* Active */
-
-.ui.form .fields.error .field .ui.dropdown .menu .active.item,
-.ui.form .field.error .ui.dropdown .menu .active.item {
- background-color: #FDCFCF !important;
-}
-
-/*--------------------
-   Checkbox Error
----------------------*/
-
-.ui.form .fields.error .field .checkbox:not(.toggle):not(.slider) label,
-.ui.form .field.error .checkbox:not(.toggle):not(.slider) label,
-.ui.form .fields.error .field .checkbox:not(.toggle):not(.slider) .box,
-.ui.form .field.error .checkbox:not(.toggle):not(.slider) .box {
- color: #9F3A38;
-}
-
-.ui.form .fields.error .field .checkbox:not(.toggle):not(.slider) label:before,
-.ui.form .field.error .checkbox:not(.toggle):not(.slider) label:before,
-.ui.form .fields.error .field .checkbox:not(.toggle):not(.slider) .box:before,
-.ui.form .field.error .checkbox:not(.toggle):not(.slider) .box:before {
- background: #FFF6F6;
- border-color: #E0B4B4;
-}
-
-.ui.form .fields.error .field .checkbox label:after,
-.ui.form .field.error .checkbox label:after,
-.ui.form .fields.error .field .checkbox .box:after,
-.ui.form .field.error .checkbox .box:after {
- color: #9F3A38;
-}
-
-/*--------------------
-      Disabled
----------------------*/
-
-.ui.form .disabled.fields .field,
-.ui.form .disabled.field,
-.ui.form .field :disabled {
- pointer-events: none;
- opacity: 0.45;
-}
-
-.ui.form .field.disabled > label,
-.ui.form .fields.disabled > label {
- opacity: 0.45;
-}
-
-.ui.form .field.disabled :disabled {
- opacity: 1;
-}
-
-/*--------------
-   Loading
----------------*/
-
-.ui.loading.form {
- position: relative;
- cursor: default;
- pointer-events: none;
-}
-
-.ui.loading.form:before {
- position: absolute;
- content: '';
- top: 0%;
- left: 0%;
- background: rgba(255, 255, 255, 0.8);
- width: 100%;
- height: 100%;
- z-index: 100;
-}
-
-.ui.loading.form:after {
- position: absolute;
- content: '';
- top: 50%;
- left: 50%;
- margin: -1.5em 0em 0em -1.5em;
- width: 3em;
- height: 3em;
- -webkit-animation: form-spin 0.6s linear;
- animation: form-spin 0.6s linear;
- -webkit-animation-iteration-count: infinite;
- animation-iteration-count: infinite;
- border-radius: 500rem;
- border-color: #767676 rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1);
- border-style: solid;
- border-width: 0.2em;
- -webkit-box-shadow: 0px 0px 0px 1px transparent;
- box-shadow: 0px 0px 0px 1px transparent;
- visibility: visible;
- z-index: 101;
-}
-
-@-webkit-keyframes form-spin {
- from {
-   -webkit-transform: rotate(0deg);
-   transform: rotate(0deg);
- }
-
- to {
-   -webkit-transform: rotate(360deg);
-   transform: rotate(360deg);
- }
-}
-
-@keyframes form-spin {
- from {
-   -webkit-transform: rotate(0deg);
-   transform: rotate(0deg);
- }
-
- to {
-   -webkit-transform: rotate(360deg);
-   transform: rotate(360deg);
- }
-}
-
-/*******************************
-        Element Types
-*******************************/
-
-/*--------------------
-    Required Field
----------------------*/
-
-.ui.form .required.fields:not(.grouped) > .field > label:after,
-.ui.form .required.fields.grouped > label:after,
-.ui.form .required.field > label:after,
-.ui.form .required.fields:not(.grouped) > .field > .checkbox:after,
-.ui.form .required.field > .checkbox:after {
- margin: -0.2em 0em 0em 0.2em;
- content: '*';
- color: #DB2828;
-}
-
-.ui.form .required.fields:not(.grouped) > .field > label:after,
-.ui.form .required.fields.grouped > label:after,
-.ui.form .required.field > label:after {
- display: inline-block;
- vertical-align: top;
-}
-
-.ui.form .required.fields:not(.grouped) > .field > .checkbox:after,
-.ui.form .required.field > .checkbox:after {
- position: absolute;
- top: 0%;
- left: 100%;
-}
-
-/*******************************
-          Variations
-*******************************/
-
-/*--------------------
-   Inverted Colors
----------------------*/
-
-.ui.inverted.form label,
-.ui.form .inverted.segment label,
-.ui.form .inverted.segment .ui.checkbox label,
-.ui.form .inverted.segment .ui.checkbox .box,
-.ui.inverted.form .ui.checkbox label,
-.ui.inverted.form .ui.checkbox .box,
-.ui.inverted.form .inline.fields > label,
-.ui.inverted.form .inline.fields .field > label,
-.ui.inverted.form .inline.fields .field > p,
-.ui.inverted.form .inline.field > label,
-.ui.inverted.form .inline.field > p {
- color: rgba(255, 255, 255, 0.9);
-}
-
-/* Inverted Field */
-
-.ui.inverted.form input:not([type]),
-.ui.inverted.form input[type="date"],
-.ui.inverted.form input[type="datetime-local"],
-.ui.inverted.form input[type="email"],
-.ui.inverted.form input[type="number"],
-.ui.inverted.form input[type="password"],
-.ui.inverted.form input[type="search"],
-.ui.inverted.form input[type="tel"],
-.ui.inverted.form input[type="time"],
-.ui.inverted.form input[type="text"],
-.ui.inverted.form input[type="file"],
-.ui.inverted.form input[type="url"] {
- background: #FFFFFF;
- border-color: rgba(255, 255, 255, 0.1);
- color: rgba(0, 0, 0, 0.87);
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-/*--------------------
-    Field Groups
----------------------*/
-
-/* Grouped Vertically */
-
-.ui.form .grouped.fields {
- display: block;
- margin: 0em 0em 1em;
-}
-
-.ui.form .grouped.fields:last-child {
- margin-bottom: 0em;
-}
-
-.ui.form .grouped.fields > label {
- margin: 0em 0em 0.28571429rem 0em;
- color: rgba(0, 0, 0, 0.87);
- font-size: 0.92857143em;
- font-weight: bold;
- text-transform: none;
-}
-
-.ui.form .grouped.fields .field,
-.ui.form .grouped.inline.fields .field {
- display: block;
- margin: 0.5em 0em;
- padding: 0em;
-}
-
-/*--------------------
-       Fields
----------------------*/
-
-/* Split fields */
-
-.ui.form .fields {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-orient: horizontal;
- -webkit-box-direction: normal;
- -ms-flex-direction: row;
- flex-direction: row;
- margin: 0em -0.5em 1em;
-}
-
-.ui.form .fields > .field {
- -webkit-box-flex: 0;
- -ms-flex: 0 1 auto;
- flex: 0 1 auto;
- padding-left: 0.5em;
- padding-right: 0.5em;
-}
-
-.ui.form .fields > .field:first-child {
- border-left: none;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-/* Other Combinations */
-
-.ui.form .two.fields > .fields,
-.ui.form .two.fields > .field {
- width: 50%;
-}
-
-.ui.form .three.fields > .fields,
-.ui.form .three.fields > .field {
- width: 33.33333333%;
-}
-
-.ui.form .four.fields > .fields,
-.ui.form .four.fields > .field {
- width: 25%;
-}
-
-.ui.form .five.fields > .fields,
-.ui.form .five.fields > .field {
- width: 20%;
-}
-
-.ui.form .six.fields > .fields,
-.ui.form .six.fields > .field {
- width: 16.66666667%;
-}
-
-.ui.form .seven.fields > .fields,
-.ui.form .seven.fields > .field {
- width: 14.28571429%;
-}
-
-.ui.form .eight.fields > .fields,
-.ui.form .eight.fields > .field {
- width: 12.5%;
-}
-
-.ui.form .nine.fields > .fields,
-.ui.form .nine.fields > .field {
- width: 11.11111111%;
-}
-
-.ui.form .ten.fields > .fields,
-.ui.form .ten.fields > .field {
- width: 10%;
-}
-
-/* Swap to full width on mobile */
-
-@media only screen and (max-width: 767px) {
- .ui.form .fields {
-   -ms-flex-wrap: wrap;
-   flex-wrap: wrap;
- }
-
- .ui[class*="equal width"].form:not(.unstackable) .fields > .field,
- .ui.form:not(.unstackable) [class*="equal width"].fields:not(.unstackable) > .field,
- .ui.form:not(.unstackable) .two.fields:not(.unstackable) > .fields,
- .ui.form:not(.unstackable) .two.fields:not(.unstackable) > .field,
- .ui.form:not(.unstackable) .three.fields:not(.unstackable) > .fields,
- .ui.form:not(.unstackable) .three.fields:not(.unstackable) > .field,
- .ui.form:not(.unstackable) .four.fields:not(.unstackable) > .fields,
- .ui.form:not(.unstackable) .four.fields:not(.unstackable) > .field,
- .ui.form:not(.unstackable) .five.fields:not(.unstackable) > .fields,
- .ui.form:not(.unstackable) .five.fields:not(.unstackable) > .field,
- .ui.form:not(.unstackable) .six.fields:not(.unstackable) > .fields,
- .ui.form:not(.unstackable) .six.fields:not(.unstackable) > .field,
- .ui.form:not(.unstackable) .seven.fields:not(.unstackable) > .fields,
- .ui.form:not(.unstackable) .seven.fields:not(.unstackable) > .field,
- .ui.form:not(.unstackable) .eight.fields:not(.unstackable) > .fields,
- .ui.form:not(.unstackable) .eight.fields:not(.unstackable) > .field,
- .ui.form:not(.unstackable) .nine.fields:not(.unstackable) > .fields,
- .ui.form:not(.unstackable) .nine.fields:not(.unstackable) > .field,
- .ui.form:not(.unstackable) .ten.fields:not(.unstackable) > .fields,
- .ui.form:not(.unstackable) .ten.fields:not(.unstackable) > .field {
-   width: 100% !important;
-   margin: 0em 0em 1em;
- }
-}
-
-/* Sizing Combinations */
-
-.ui.form .fields .wide.field {
- width: 6.25%;
- padding-left: 0.5em;
- padding-right: 0.5em;
-}
-
-.ui.form .one.wide.field {
- width: 6.25% !important;
-}
-
-.ui.form .two.wide.field {
- width: 12.5% !important;
-}
-
-.ui.form .three.wide.field {
- width: 18.75% !important;
-}
-
-.ui.form .four.wide.field {
- width: 25% !important;
-}
-
-.ui.form .five.wide.field {
- width: 31.25% !important;
-}
-
-.ui.form .six.wide.field {
- width: 37.5% !important;
-}
-
-.ui.form .seven.wide.field {
- width: 43.75% !important;
-}
-
-.ui.form .eight.wide.field {
- width: 50% !important;
-}
-
-.ui.form .nine.wide.field {
- width: 56.25% !important;
-}
-
-.ui.form .ten.wide.field {
- width: 62.5% !important;
-}
-
-.ui.form .eleven.wide.field {
- width: 68.75% !important;
-}
-
-.ui.form .twelve.wide.field {
- width: 75% !important;
-}
-
-.ui.form .thirteen.wide.field {
- width: 81.25% !important;
-}
-
-.ui.form .fourteen.wide.field {
- width: 87.5% !important;
-}
-
-.ui.form .fifteen.wide.field {
- width: 93.75% !important;
-}
-
-.ui.form .sixteen.wide.field {
- width: 100% !important;
-}
-
-/* Swap to full width on mobile */
-
-@media only screen and (max-width: 767px) {
- .ui.form:not(.unstackable) .two.fields:not(.unstackable) > .fields,
- .ui.form:not(.unstackable) .two.fields:not(.unstackable) > .field,
- .ui.form:not(.unstackable) .three.fields:not(.unstackable) > .fields,
- .ui.form:not(.unstackable) .three.fields:not(.unstackable) > .field,
- .ui.form:not(.unstackable) .four.fields:not(.unstackable) > .fields,
- .ui.form:not(.unstackable) .four.fields:not(.unstackable) > .field,
- .ui.form:not(.unstackable) .five.fields:not(.unstackable) > .fields,
- .ui.form:not(.unstackable) .five.fields:not(.unstackable) > .field,
- .ui.form:not(.unstackable) .fields:not(.unstackable) > .two.wide.field,
- .ui.form:not(.unstackable) .fields:not(.unstackable) > .three.wide.field,
- .ui.form:not(.unstackable) .fields:not(.unstackable) > .four.wide.field,
- .ui.form:not(.unstackable) .fields:not(.unstackable) > .five.wide.field,
- .ui.form:not(.unstackable) .fields:not(.unstackable) > .six.wide.field,
- .ui.form:not(.unstackable) .fields:not(.unstackable) > .seven.wide.field,
- .ui.form:not(.unstackable) .fields:not(.unstackable) > .eight.wide.field,
- .ui.form:not(.unstackable) .fields:not(.unstackable) > .nine.wide.field,
- .ui.form:not(.unstackable) .fields:not(.unstackable) > .ten.wide.field,
- .ui.form:not(.unstackable) .fields:not(.unstackable) > .eleven.wide.field,
- .ui.form:not(.unstackable) .fields:not(.unstackable) > .twelve.wide.field,
- .ui.form:not(.unstackable) .fields:not(.unstackable) > .thirteen.wide.field,
- .ui.form:not(.unstackable) .fields:not(.unstackable) > .fourteen.wide.field,
- .ui.form:not(.unstackable) .fields:not(.unstackable) > .fifteen.wide.field,
- .ui.form:not(.unstackable) .fields:not(.unstackable) > .sixteen.wide.field {
-   width: 100% !important;
- }
-
- .ui.form .fields {
-   margin-bottom: 0em;
- }
-}
-
-/*--------------------
-    Equal Width
----------------------*/
-
-.ui[class*="equal width"].form .fields > .field,
-.ui.form [class*="equal width"].fields > .field {
- width: 100%;
- -webkit-box-flex: 1;
- -ms-flex: 1 1 auto;
- flex: 1 1 auto;
-}
-
-/*--------------------
-   Inline Fields
----------------------*/
-
-.ui.form .inline.fields {
- margin: 0em 0em 1em;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
-}
-
-.ui.form .inline.fields .field {
- margin: 0em;
- padding: 0em 1em 0em 0em;
-}
-
-/* Inline Label */
-
-.ui.form .inline.fields > label,
-.ui.form .inline.fields .field > label,
-.ui.form .inline.fields .field > p,
-.ui.form .inline.field > label,
-.ui.form .inline.field > p {
- display: inline-block;
- width: auto;
- margin-top: 0em;
- margin-bottom: 0em;
- vertical-align: baseline;
- font-size: 0.92857143em;
- font-weight: bold;
- color: rgba(0, 0, 0, 0.87);
- text-transform: none;
-}
-
-/* Grouped Inline Label */
-
-.ui.form .inline.fields > label {
- margin: 0.035714em 1em 0em 0em;
-}
-
-/* Inline Input */
-
-.ui.form .inline.fields .field > input,
-.ui.form .inline.fields .field > select,
-.ui.form .inline.field > input,
-.ui.form .inline.field > select {
- display: inline-block;
- width: auto;
- margin-top: 0em;
- margin-bottom: 0em;
- vertical-align: middle;
- font-size: 1em;
-}
-
-/* Label */
-
-.ui.form .inline.fields .field > :first-child,
-.ui.form .inline.field > :first-child {
- margin: 0em 0.85714286em 0em 0em;
-}
-
-.ui.form .inline.fields .field > :only-child,
-.ui.form .inline.field > :only-child {
- margin: 0em;
-}
-
-/* Wide */
-
-.ui.form .inline.fields .wide.field {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
-}
-
-.ui.form .inline.fields .wide.field > input,
-.ui.form .inline.fields .wide.field > select {
- width: 100%;
-}
-
-/*--------------------
-       Sizes
----------------------*/
-
-.ui.mini.form {
- font-size: 0.78571429rem;
-}
-
-.ui.tiny.form {
- font-size: 0.85714286rem;
-}
-
-.ui.small.form {
- font-size: 0.92857143rem;
-}
-
-.ui.form {
- font-size: 1rem;
-}
-
-.ui.large.form {
- font-size: 1.14285714rem;
-}
-
-.ui.big.form {
- font-size: 1.28571429rem;
-}
-
-.ui.huge.form {
- font-size: 1.42857143rem;
-}
-
-.ui.massive.form {
- font-size: 1.71428571rem;
-}
-
-/*******************************
-        Theme Overrides
-*******************************/
-
-/*******************************
-        Site Overrides
-*******************************/
-/*!
-* # Semantic UI 2.3.0 - Grid
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-           Standard
-*******************************/
-
-.ui.grid {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-orient: horizontal;
- -webkit-box-direction: normal;
- -ms-flex-direction: row;
- flex-direction: row;
- -ms-flex-wrap: wrap;
- flex-wrap: wrap;
- -webkit-box-align: stretch;
- -ms-flex-align: stretch;
- align-items: stretch;
- padding: 0em;
-}
-
-/*----------------------
-     Remove Gutters
------------------------*/
-
-.ui.grid {
- margin-top: -1rem;
- margin-bottom: -1rem;
- margin-left: -1rem;
- margin-right: -1rem;
-}
-
-.ui.relaxed.grid {
- margin-left: -1.5rem;
- margin-right: -1.5rem;
-}
-
-.ui[class*="very relaxed"].grid {
- margin-left: -2.5rem;
- margin-right: -2.5rem;
-}
-
-/* Preserve Rows Spacing on Consecutive Grids */
-
-.ui.grid + .grid {
- margin-top: 1rem;
-}
-
-/*-------------------
-      Columns
---------------------*/
-
-/* Standard 16 column */
-
-.ui.grid > .column:not(.row),
-.ui.grid > .row > .column {
- position: relative;
- display: inline-block;
- width: 6.25%;
- padding-left: 1rem;
- padding-right: 1rem;
- vertical-align: top;
-}
-
-.ui.grid > * {
- padding-left: 1rem;
- padding-right: 1rem;
-}
-
-/*-------------------
-       Rows
---------------------*/
-
-.ui.grid > .row {
- position: relative;
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-orient: horizontal;
- -webkit-box-direction: normal;
- -ms-flex-direction: row;
- flex-direction: row;
- -ms-flex-wrap: wrap;
- flex-wrap: wrap;
- -webkit-box-pack: inherit;
- -ms-flex-pack: inherit;
- justify-content: inherit;
- -webkit-box-align: stretch;
- -ms-flex-align: stretch;
- align-items: stretch;
- width: 100% !important;
- padding: 0rem;
- padding-top: 1rem;
- padding-bottom: 1rem;
-}
-
-/*-------------------
-      Columns
---------------------*/
-
-/* Vertical padding when no rows */
-
-.ui.grid > .column:not(.row) {
- padding-top: 1rem;
- padding-bottom: 1rem;
-}
-
-.ui.grid > .row > .column {
- margin-top: 0em;
- margin-bottom: 0em;
-}
-
-/*-------------------
-     Content
---------------------*/
-
-.ui.grid > .row > img,
-.ui.grid > .row > .column > img {
- max-width: 100%;
-}
-
-/*-------------------
-   Loose Coupling
---------------------*/
-
-/* Collapse Margin on Consecutive Grid */
-
-.ui.grid > .ui.grid:first-child {
- margin-top: 0em;
-}
-
-.ui.grid > .ui.grid:last-child {
- margin-bottom: 0em;
-}
-
-/* Segment inside Aligned Grid */
-
-.ui.grid .aligned.row > .column > .segment:not(.compact):not(.attached),
-.ui.aligned.grid .column > .segment:not(.compact):not(.attached) {
- width: 100%;
-}
-
-/* Align Dividers with Gutter */
-
-.ui.grid .row + .ui.divider {
- -webkit-box-flex: 1;
- -ms-flex-positive: 1;
- flex-grow: 1;
- margin: 1rem 1rem;
-}
-
-.ui.grid .column + .ui.vertical.divider {
- height: calc(50% -  1rem );
-}
-
-/* Remove Border on Last Horizontal Segment */
-
-.ui.grid > .row > .column:last-child > .horizontal.segment,
-.ui.grid > .column:last-child > .horizontal.segment {
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-/*******************************
-          Variations
-*******************************/
-
-/*-----------------------
-      Page Grid
--------------------------*/
-
-@media only screen and (max-width: 767px) {
- .ui.page.grid {
-   width: auto;
-   padding-left: 0em;
-   padding-right: 0em;
-   margin-left: 0em;
-   margin-right: 0em;
- }
-}
-
-@media only screen and (min-width: 768px) and (max-width: 991px) {
- .ui.page.grid {
-   width: auto;
-   margin-left: 0em;
-   margin-right: 0em;
-   padding-left: 2em;
-   padding-right: 2em;
- }
-}
-
-@media only screen and (min-width: 992px) and (max-width: 1199px) {
- .ui.page.grid {
-   width: auto;
-   margin-left: 0em;
-   margin-right: 0em;
-   padding-left: 3%;
-   padding-right: 3%;
- }
-}
-
-@media only screen and (min-width: 1200px) and (max-width: 1919px) {
- .ui.page.grid {
-   width: auto;
-   margin-left: 0em;
-   margin-right: 0em;
-   padding-left: 15%;
-   padding-right: 15%;
- }
-}
-
-@media only screen and (min-width: 1920px) {
- .ui.page.grid {
-   width: auto;
-   margin-left: 0em;
-   margin-right: 0em;
-   padding-left: 23%;
-   padding-right: 23%;
- }
-}
-
-/*-------------------
-    Column Count
---------------------*/
-
-/* Assume full width with one column */
-
-.ui.grid > .column:only-child,
-.ui.grid > .row > .column:only-child {
- width: 100%;
-}
-
-/* Grid Based */
-
-.ui[class*="one column"].grid > .row > .column,
-.ui[class*="one column"].grid > .column:not(.row) {
- width: 100%;
-}
-
-.ui[class*="two column"].grid > .row > .column,
-.ui[class*="two column"].grid > .column:not(.row) {
- width: 50%;
-}
-
-.ui[class*="three column"].grid > .row > .column,
-.ui[class*="three column"].grid > .column:not(.row) {
- width: 33.33333333%;
-}
-
-.ui[class*="four column"].grid > .row > .column,
-.ui[class*="four column"].grid > .column:not(.row) {
- width: 25%;
-}
-
-.ui[class*="five column"].grid > .row > .column,
-.ui[class*="five column"].grid > .column:not(.row) {
- width: 20%;
-}
-
-.ui[class*="six column"].grid > .row > .column,
-.ui[class*="six column"].grid > .column:not(.row) {
- width: 16.66666667%;
-}
-
-.ui[class*="seven column"].grid > .row > .column,
-.ui[class*="seven column"].grid > .column:not(.row) {
- width: 14.28571429%;
-}
-
-.ui[class*="eight column"].grid > .row > .column,
-.ui[class*="eight column"].grid > .column:not(.row) {
- width: 12.5%;
-}
-
-.ui[class*="nine column"].grid > .row > .column,
-.ui[class*="nine column"].grid > .column:not(.row) {
- width: 11.11111111%;
-}
-
-.ui[class*="ten column"].grid > .row > .column,
-.ui[class*="ten column"].grid > .column:not(.row) {
- width: 10%;
-}
-
-.ui[class*="eleven column"].grid > .row > .column,
-.ui[class*="eleven column"].grid > .column:not(.row) {
- width: 9.09090909%;
-}
-
-.ui[class*="twelve column"].grid > .row > .column,
-.ui[class*="twelve column"].grid > .column:not(.row) {
- width: 8.33333333%;
-}
-
-.ui[class*="thirteen column"].grid > .row > .column,
-.ui[class*="thirteen column"].grid > .column:not(.row) {
- width: 7.69230769%;
-}
-
-.ui[class*="fourteen column"].grid > .row > .column,
-.ui[class*="fourteen column"].grid > .column:not(.row) {
- width: 7.14285714%;
-}
-
-.ui[class*="fifteen column"].grid > .row > .column,
-.ui[class*="fifteen column"].grid > .column:not(.row) {
- width: 6.66666667%;
-}
-
-.ui[class*="sixteen column"].grid > .row > .column,
-.ui[class*="sixteen column"].grid > .column:not(.row) {
- width: 6.25%;
-}
-
-/* Row Based Overrides */
-
-.ui.grid > [class*="one column"].row > .column {
- width: 100% !important;
-}
-
-.ui.grid > [class*="two column"].row > .column {
- width: 50% !important;
-}
-
-.ui.grid > [class*="three column"].row > .column {
- width: 33.33333333% !important;
-}
-
-.ui.grid > [class*="four column"].row > .column {
- width: 25% !important;
-}
-
-.ui.grid > [class*="five column"].row > .column {
- width: 20% !important;
-}
-
-.ui.grid > [class*="six column"].row > .column {
- width: 16.66666667% !important;
-}
-
-.ui.grid > [class*="seven column"].row > .column {
- width: 14.28571429% !important;
-}
-
-.ui.grid > [class*="eight column"].row > .column {
- width: 12.5% !important;
-}
-
-.ui.grid > [class*="nine column"].row > .column {
- width: 11.11111111% !important;
-}
-
-.ui.grid > [class*="ten column"].row > .column {
- width: 10% !important;
-}
-
-.ui.grid > [class*="eleven column"].row > .column {
- width: 9.09090909% !important;
-}
-
-.ui.grid > [class*="twelve column"].row > .column {
- width: 8.33333333% !important;
-}
-
-.ui.grid > [class*="thirteen column"].row > .column {
- width: 7.69230769% !important;
-}
-
-.ui.grid > [class*="fourteen column"].row > .column {
- width: 7.14285714% !important;
-}
-
-.ui.grid > [class*="fifteen column"].row > .column {
- width: 6.66666667% !important;
-}
-
-.ui.grid > [class*="sixteen column"].row > .column {
- width: 6.25% !important;
-}
-
-/* Celled Page */
-
-.ui.celled.page.grid {
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-/*-------------------
-   Column Width
---------------------*/
-
-/* Sizing Combinations */
-
-.ui.grid > .row > [class*="one wide"].column,
-.ui.grid > .column.row > [class*="one wide"].column,
-.ui.grid > [class*="one wide"].column,
-.ui.column.grid > [class*="one wide"].column {
- width: 6.25% !important;
-}
-
-.ui.grid > .row > [class*="two wide"].column,
-.ui.grid > .column.row > [class*="two wide"].column,
-.ui.grid > [class*="two wide"].column,
-.ui.column.grid > [class*="two wide"].column {
- width: 12.5% !important;
-}
-
-.ui.grid > .row > [class*="three wide"].column,
-.ui.grid > .column.row > [class*="three wide"].column,
-.ui.grid > [class*="three wide"].column,
-.ui.column.grid > [class*="three wide"].column {
- width: 18.75% !important;
-}
-
-.ui.grid > .row > [class*="four wide"].column,
-.ui.grid > .column.row > [class*="four wide"].column,
-.ui.grid > [class*="four wide"].column,
-.ui.column.grid > [class*="four wide"].column {
- width: 25% !important;
-}
-
-.ui.grid > .row > [class*="five wide"].column,
-.ui.grid > .column.row > [class*="five wide"].column,
-.ui.grid > [class*="five wide"].column,
-.ui.column.grid > [class*="five wide"].column {
- width: 31.25% !important;
-}
-
-.ui.grid > .row > [class*="six wide"].column,
-.ui.grid > .column.row > [class*="six wide"].column,
-.ui.grid > [class*="six wide"].column,
-.ui.column.grid > [class*="six wide"].column {
- width: 37.5% !important;
-}
-
-.ui.grid > .row > [class*="seven wide"].column,
-.ui.grid > .column.row > [class*="seven wide"].column,
-.ui.grid > [class*="seven wide"].column,
-.ui.column.grid > [class*="seven wide"].column {
- width: 43.75% !important;
-}
-
-.ui.grid > .row > [class*="eight wide"].column,
-.ui.grid > .column.row > [class*="eight wide"].column,
-.ui.grid > [class*="eight wide"].column,
-.ui.column.grid > [class*="eight wide"].column {
- width: 50% !important;
-}
-
-.ui.grid > .row > [class*="nine wide"].column,
-.ui.grid > .column.row > [class*="nine wide"].column,
-.ui.grid > [class*="nine wide"].column,
-.ui.column.grid > [class*="nine wide"].column {
- width: 56.25% !important;
-}
-
-.ui.grid > .row > [class*="ten wide"].column,
-.ui.grid > .column.row > [class*="ten wide"].column,
-.ui.grid > [class*="ten wide"].column,
-.ui.column.grid > [class*="ten wide"].column {
- width: 62.5% !important;
-}
-
-.ui.grid > .row > [class*="eleven wide"].column,
-.ui.grid > .column.row > [class*="eleven wide"].column,
-.ui.grid > [class*="eleven wide"].column,
-.ui.column.grid > [class*="eleven wide"].column {
- width: 68.75% !important;
-}
-
-.ui.grid > .row > [class*="twelve wide"].column,
-.ui.grid > .column.row > [class*="twelve wide"].column,
-.ui.grid > [class*="twelve wide"].column,
-.ui.column.grid > [class*="twelve wide"].column {
- width: 75% !important;
-}
-
-.ui.grid > .row > [class*="thirteen wide"].column,
-.ui.grid > .column.row > [class*="thirteen wide"].column,
-.ui.grid > [class*="thirteen wide"].column,
-.ui.column.grid > [class*="thirteen wide"].column {
- width: 81.25% !important;
-}
-
-.ui.grid > .row > [class*="fourteen wide"].column,
-.ui.grid > .column.row > [class*="fourteen wide"].column,
-.ui.grid > [class*="fourteen wide"].column,
-.ui.column.grid > [class*="fourteen wide"].column {
- width: 87.5% !important;
-}
-
-.ui.grid > .row > [class*="fifteen wide"].column,
-.ui.grid > .column.row > [class*="fifteen wide"].column,
-.ui.grid > [class*="fifteen wide"].column,
-.ui.column.grid > [class*="fifteen wide"].column {
- width: 93.75% !important;
-}
-
-.ui.grid > .row > [class*="sixteen wide"].column,
-.ui.grid > .column.row > [class*="sixteen wide"].column,
-.ui.grid > [class*="sixteen wide"].column,
-.ui.column.grid > [class*="sixteen wide"].column {
- width: 100% !important;
-}
-
-/*----------------------
-   Width per Device
------------------------*/
-
-/* Mobile Sizing Combinations */
-
-@media only screen and (min-width: 320px) and (max-width: 767px) {
- .ui.grid > .row > [class*="one wide mobile"].column,
- .ui.grid > .column.row > [class*="one wide mobile"].column,
- .ui.grid > [class*="one wide mobile"].column,
- .ui.column.grid > [class*="one wide mobile"].column {
-   width: 6.25% !important;
- }
-
- .ui.grid > .row > [class*="two wide mobile"].column,
- .ui.grid > .column.row > [class*="two wide mobile"].column,
- .ui.grid > [class*="two wide mobile"].column,
- .ui.column.grid > [class*="two wide mobile"].column {
-   width: 12.5% !important;
- }
-
- .ui.grid > .row > [class*="three wide mobile"].column,
- .ui.grid > .column.row > [class*="three wide mobile"].column,
- .ui.grid > [class*="three wide mobile"].column,
- .ui.column.grid > [class*="three wide mobile"].column {
-   width: 18.75% !important;
- }
-
- .ui.grid > .row > [class*="four wide mobile"].column,
- .ui.grid > .column.row > [class*="four wide mobile"].column,
- .ui.grid > [class*="four wide mobile"].column,
- .ui.column.grid > [class*="four wide mobile"].column {
-   width: 25% !important;
- }
-
- .ui.grid > .row > [class*="five wide mobile"].column,
- .ui.grid > .column.row > [class*="five wide mobile"].column,
- .ui.grid > [class*="five wide mobile"].column,
- .ui.column.grid > [class*="five wide mobile"].column {
-   width: 31.25% !important;
- }
-
- .ui.grid > .row > [class*="six wide mobile"].column,
- .ui.grid > .column.row > [class*="six wide mobile"].column,
- .ui.grid > [class*="six wide mobile"].column,
- .ui.column.grid > [class*="six wide mobile"].column {
-   width: 37.5% !important;
- }
-
- .ui.grid > .row > [class*="seven wide mobile"].column,
- .ui.grid > .column.row > [class*="seven wide mobile"].column,
- .ui.grid > [class*="seven wide mobile"].column,
- .ui.column.grid > [class*="seven wide mobile"].column {
-   width: 43.75% !important;
- }
-
- .ui.grid > .row > [class*="eight wide mobile"].column,
- .ui.grid > .column.row > [class*="eight wide mobile"].column,
- .ui.grid > [class*="eight wide mobile"].column,
- .ui.column.grid > [class*="eight wide mobile"].column {
-   width: 50% !important;
- }
-
- .ui.grid > .row > [class*="nine wide mobile"].column,
- .ui.grid > .column.row > [class*="nine wide mobile"].column,
- .ui.grid > [class*="nine wide mobile"].column,
- .ui.column.grid > [class*="nine wide mobile"].column {
-   width: 56.25% !important;
- }
-
- .ui.grid > .row > [class*="ten wide mobile"].column,
- .ui.grid > .column.row > [class*="ten wide mobile"].column,
- .ui.grid > [class*="ten wide mobile"].column,
- .ui.column.grid > [class*="ten wide mobile"].column {
-   width: 62.5% !important;
- }
-
- .ui.grid > .row > [class*="eleven wide mobile"].column,
- .ui.grid > .column.row > [class*="eleven wide mobile"].column,
- .ui.grid > [class*="eleven wide mobile"].column,
- .ui.column.grid > [class*="eleven wide mobile"].column {
-   width: 68.75% !important;
- }
-
- .ui.grid > .row > [class*="twelve wide mobile"].column,
- .ui.grid > .column.row > [class*="twelve wide mobile"].column,
- .ui.grid > [class*="twelve wide mobile"].column,
- .ui.column.grid > [class*="twelve wide mobile"].column {
-   width: 75% !important;
- }
-
- .ui.grid > .row > [class*="thirteen wide mobile"].column,
- .ui.grid > .column.row > [class*="thirteen wide mobile"].column,
- .ui.grid > [class*="thirteen wide mobile"].column,
- .ui.column.grid > [class*="thirteen wide mobile"].column {
-   width: 81.25% !important;
- }
-
- .ui.grid > .row > [class*="fourteen wide mobile"].column,
- .ui.grid > .column.row > [class*="fourteen wide mobile"].column,
- .ui.grid > [class*="fourteen wide mobile"].column,
- .ui.column.grid > [class*="fourteen wide mobile"].column {
-   width: 87.5% !important;
- }
-
- .ui.grid > .row > [class*="fifteen wide mobile"].column,
- .ui.grid > .column.row > [class*="fifteen wide mobile"].column,
- .ui.grid > [class*="fifteen wide mobile"].column,
- .ui.column.grid > [class*="fifteen wide mobile"].column {
-   width: 93.75% !important;
- }
-
- .ui.grid > .row > [class*="sixteen wide mobile"].column,
- .ui.grid > .column.row > [class*="sixteen wide mobile"].column,
- .ui.grid > [class*="sixteen wide mobile"].column,
- .ui.column.grid > [class*="sixteen wide mobile"].column {
-   width: 100% !important;
- }
-}
-
-/* Tablet Sizing Combinations */
-
-@media only screen and (min-width: 768px) and (max-width: 991px) {
- .ui.grid > .row > [class*="one wide tablet"].column,
- .ui.grid > .column.row > [class*="one wide tablet"].column,
- .ui.grid > [class*="one wide tablet"].column,
- .ui.column.grid > [class*="one wide tablet"].column {
-   width: 6.25% !important;
- }
-
- .ui.grid > .row > [class*="two wide tablet"].column,
- .ui.grid > .column.row > [class*="two wide tablet"].column,
- .ui.grid > [class*="two wide tablet"].column,
- .ui.column.grid > [class*="two wide tablet"].column {
-   width: 12.5% !important;
- }
-
- .ui.grid > .row > [class*="three wide tablet"].column,
- .ui.grid > .column.row > [class*="three wide tablet"].column,
- .ui.grid > [class*="three wide tablet"].column,
- .ui.column.grid > [class*="three wide tablet"].column {
-   width: 18.75% !important;
- }
-
- .ui.grid > .row > [class*="four wide tablet"].column,
- .ui.grid > .column.row > [class*="four wide tablet"].column,
- .ui.grid > [class*="four wide tablet"].column,
- .ui.column.grid > [class*="four wide tablet"].column {
-   width: 25% !important;
- }
-
- .ui.grid > .row > [class*="five wide tablet"].column,
- .ui.grid > .column.row > [class*="five wide tablet"].column,
- .ui.grid > [class*="five wide tablet"].column,
- .ui.column.grid > [class*="five wide tablet"].column {
-   width: 31.25% !important;
- }
-
- .ui.grid > .row > [class*="six wide tablet"].column,
- .ui.grid > .column.row > [class*="six wide tablet"].column,
- .ui.grid > [class*="six wide tablet"].column,
- .ui.column.grid > [class*="six wide tablet"].column {
-   width: 37.5% !important;
- }
-
- .ui.grid > .row > [class*="seven wide tablet"].column,
- .ui.grid > .column.row > [class*="seven wide tablet"].column,
- .ui.grid > [class*="seven wide tablet"].column,
- .ui.column.grid > [class*="seven wide tablet"].column {
-   width: 43.75% !important;
- }
-
- .ui.grid > .row > [class*="eight wide tablet"].column,
- .ui.grid > .column.row > [class*="eight wide tablet"].column,
- .ui.grid > [class*="eight wide tablet"].column,
- .ui.column.grid > [class*="eight wide tablet"].column {
-   width: 50% !important;
- }
-
- .ui.grid > .row > [class*="nine wide tablet"].column,
- .ui.grid > .column.row > [class*="nine wide tablet"].column,
- .ui.grid > [class*="nine wide tablet"].column,
- .ui.column.grid > [class*="nine wide tablet"].column {
-   width: 56.25% !important;
- }
-
- .ui.grid > .row > [class*="ten wide tablet"].column,
- .ui.grid > .column.row > [class*="ten wide tablet"].column,
- .ui.grid > [class*="ten wide tablet"].column,
- .ui.column.grid > [class*="ten wide tablet"].column {
-   width: 62.5% !important;
- }
-
- .ui.grid > .row > [class*="eleven wide tablet"].column,
- .ui.grid > .column.row > [class*="eleven wide tablet"].column,
- .ui.grid > [class*="eleven wide tablet"].column,
- .ui.column.grid > [class*="eleven wide tablet"].column {
-   width: 68.75% !important;
- }
-
- .ui.grid > .row > [class*="twelve wide tablet"].column,
- .ui.grid > .column.row > [class*="twelve wide tablet"].column,
- .ui.grid > [class*="twelve wide tablet"].column,
- .ui.column.grid > [class*="twelve wide tablet"].column {
-   width: 75% !important;
- }
-
- .ui.grid > .row > [class*="thirteen wide tablet"].column,
- .ui.grid > .column.row > [class*="thirteen wide tablet"].column,
- .ui.grid > [class*="thirteen wide tablet"].column,
- .ui.column.grid > [class*="thirteen wide tablet"].column {
-   width: 81.25% !important;
- }
-
- .ui.grid > .row > [class*="fourteen wide tablet"].column,
- .ui.grid > .column.row > [class*="fourteen wide tablet"].column,
- .ui.grid > [class*="fourteen wide tablet"].column,
- .ui.column.grid > [class*="fourteen wide tablet"].column {
-   width: 87.5% !important;
- }
-
- .ui.grid > .row > [class*="fifteen wide tablet"].column,
- .ui.grid > .column.row > [class*="fifteen wide tablet"].column,
- .ui.grid > [class*="fifteen wide tablet"].column,
- .ui.column.grid > [class*="fifteen wide tablet"].column {
-   width: 93.75% !important;
- }
-
- .ui.grid > .row > [class*="sixteen wide tablet"].column,
- .ui.grid > .column.row > [class*="sixteen wide tablet"].column,
- .ui.grid > [class*="sixteen wide tablet"].column,
- .ui.column.grid > [class*="sixteen wide tablet"].column {
-   width: 100% !important;
- }
-}
-
-/* Computer/Desktop Sizing Combinations */
-
-@media only screen and (min-width: 992px) {
- .ui.grid > .row > [class*="one wide computer"].column,
- .ui.grid > .column.row > [class*="one wide computer"].column,
- .ui.grid > [class*="one wide computer"].column,
- .ui.column.grid > [class*="one wide computer"].column {
-   width: 6.25% !important;
- }
-
- .ui.grid > .row > [class*="two wide computer"].column,
- .ui.grid > .column.row > [class*="two wide computer"].column,
- .ui.grid > [class*="two wide computer"].column,
- .ui.column.grid > [class*="two wide computer"].column {
-   width: 12.5% !important;
- }
-
- .ui.grid > .row > [class*="three wide computer"].column,
- .ui.grid > .column.row > [class*="three wide computer"].column,
- .ui.grid > [class*="three wide computer"].column,
- .ui.column.grid > [class*="three wide computer"].column {
-   width: 18.75% !important;
- }
-
- .ui.grid > .row > [class*="four wide computer"].column,
- .ui.grid > .column.row > [class*="four wide computer"].column,
- .ui.grid > [class*="four wide computer"].column,
- .ui.column.grid > [class*="four wide computer"].column {
-   width: 25% !important;
- }
-
- .ui.grid > .row > [class*="five wide computer"].column,
- .ui.grid > .column.row > [class*="five wide computer"].column,
- .ui.grid > [class*="five wide computer"].column,
- .ui.column.grid > [class*="five wide computer"].column {
-   width: 31.25% !important;
- }
-
- .ui.grid > .row > [class*="six wide computer"].column,
- .ui.grid > .column.row > [class*="six wide computer"].column,
- .ui.grid > [class*="six wide computer"].column,
- .ui.column.grid > [class*="six wide computer"].column {
-   width: 37.5% !important;
- }
-
- .ui.grid > .row > [class*="seven wide computer"].column,
- .ui.grid > .column.row > [class*="seven wide computer"].column,
- .ui.grid > [class*="seven wide computer"].column,
- .ui.column.grid > [class*="seven wide computer"].column {
-   width: 43.75% !important;
- }
-
- .ui.grid > .row > [class*="eight wide computer"].column,
- .ui.grid > .column.row > [class*="eight wide computer"].column,
- .ui.grid > [class*="eight wide computer"].column,
- .ui.column.grid > [class*="eight wide computer"].column {
-   width: 50% !important;
- }
-
- .ui.grid > .row > [class*="nine wide computer"].column,
- .ui.grid > .column.row > [class*="nine wide computer"].column,
- .ui.grid > [class*="nine wide computer"].column,
- .ui.column.grid > [class*="nine wide computer"].column {
-   width: 56.25% !important;
- }
-
- .ui.grid > .row > [class*="ten wide computer"].column,
- .ui.grid > .column.row > [class*="ten wide computer"].column,
- .ui.grid > [class*="ten wide computer"].column,
- .ui.column.grid > [class*="ten wide computer"].column {
-   width: 62.5% !important;
- }
-
- .ui.grid > .row > [class*="eleven wide computer"].column,
- .ui.grid > .column.row > [class*="eleven wide computer"].column,
- .ui.grid > [class*="eleven wide computer"].column,
- .ui.column.grid > [class*="eleven wide computer"].column {
-   width: 68.75% !important;
- }
-
- .ui.grid > .row > [class*="twelve wide computer"].column,
- .ui.grid > .column.row > [class*="twelve wide computer"].column,
- .ui.grid > [class*="twelve wide computer"].column,
- .ui.column.grid > [class*="twelve wide computer"].column {
-   width: 75% !important;
- }
-
- .ui.grid > .row > [class*="thirteen wide computer"].column,
- .ui.grid > .column.row > [class*="thirteen wide computer"].column,
- .ui.grid > [class*="thirteen wide computer"].column,
- .ui.column.grid > [class*="thirteen wide computer"].column {
-   width: 81.25% !important;
- }
-
- .ui.grid > .row > [class*="fourteen wide computer"].column,
- .ui.grid > .column.row > [class*="fourteen wide computer"].column,
- .ui.grid > [class*="fourteen wide computer"].column,
- .ui.column.grid > [class*="fourteen wide computer"].column {
-   width: 87.5% !important;
- }
-
- .ui.grid > .row > [class*="fifteen wide computer"].column,
- .ui.grid > .column.row > [class*="fifteen wide computer"].column,
- .ui.grid > [class*="fifteen wide computer"].column,
- .ui.column.grid > [class*="fifteen wide computer"].column {
-   width: 93.75% !important;
- }
-
- .ui.grid > .row > [class*="sixteen wide computer"].column,
- .ui.grid > .column.row > [class*="sixteen wide computer"].column,
- .ui.grid > [class*="sixteen wide computer"].column,
- .ui.column.grid > [class*="sixteen wide computer"].column {
-   width: 100% !important;
- }
-}
-
-/* Large Monitor Sizing Combinations */
-
-@media only screen and (min-width: 1200px) and (max-width: 1919px) {
- .ui.grid > .row > [class*="one wide large screen"].column,
- .ui.grid > .column.row > [class*="one wide large screen"].column,
- .ui.grid > [class*="one wide large screen"].column,
- .ui.column.grid > [class*="one wide large screen"].column {
-   width: 6.25% !important;
- }
-
- .ui.grid > .row > [class*="two wide large screen"].column,
- .ui.grid > .column.row > [class*="two wide large screen"].column,
- .ui.grid > [class*="two wide large screen"].column,
- .ui.column.grid > [class*="two wide large screen"].column {
-   width: 12.5% !important;
- }
-
- .ui.grid > .row > [class*="three wide large screen"].column,
- .ui.grid > .column.row > [class*="three wide large screen"].column,
- .ui.grid > [class*="three wide large screen"].column,
- .ui.column.grid > [class*="three wide large screen"].column {
-   width: 18.75% !important;
- }
-
- .ui.grid > .row > [class*="four wide large screen"].column,
- .ui.grid > .column.row > [class*="four wide large screen"].column,
- .ui.grid > [class*="four wide large screen"].column,
- .ui.column.grid > [class*="four wide large screen"].column {
-   width: 25% !important;
- }
-
- .ui.grid > .row > [class*="five wide large screen"].column,
- .ui.grid > .column.row > [class*="five wide large screen"].column,
- .ui.grid > [class*="five wide large screen"].column,
- .ui.column.grid > [class*="five wide large screen"].column {
-   width: 31.25% !important;
- }
-
- .ui.grid > .row > [class*="six wide large screen"].column,
- .ui.grid > .column.row > [class*="six wide large screen"].column,
- .ui.grid > [class*="six wide large screen"].column,
- .ui.column.grid > [class*="six wide large screen"].column {
-   width: 37.5% !important;
- }
-
- .ui.grid > .row > [class*="seven wide large screen"].column,
- .ui.grid > .column.row > [class*="seven wide large screen"].column,
- .ui.grid > [class*="seven wide large screen"].column,
- .ui.column.grid > [class*="seven wide large screen"].column {
-   width: 43.75% !important;
- }
-
- .ui.grid > .row > [class*="eight wide large screen"].column,
- .ui.grid > .column.row > [class*="eight wide large screen"].column,
- .ui.grid > [class*="eight wide large screen"].column,
- .ui.column.grid > [class*="eight wide large screen"].column {
-   width: 50% !important;
- }
-
- .ui.grid > .row > [class*="nine wide large screen"].column,
- .ui.grid > .column.row > [class*="nine wide large screen"].column,
- .ui.grid > [class*="nine wide large screen"].column,
- .ui.column.grid > [class*="nine wide large screen"].column {
-   width: 56.25% !important;
- }
-
- .ui.grid > .row > [class*="ten wide large screen"].column,
- .ui.grid > .column.row > [class*="ten wide large screen"].column,
- .ui.grid > [class*="ten wide large screen"].column,
- .ui.column.grid > [class*="ten wide large screen"].column {
-   width: 62.5% !important;
- }
-
- .ui.grid > .row > [class*="eleven wide large screen"].column,
- .ui.grid > .column.row > [class*="eleven wide large screen"].column,
- .ui.grid > [class*="eleven wide large screen"].column,
- .ui.column.grid > [class*="eleven wide large screen"].column {
-   width: 68.75% !important;
- }
-
- .ui.grid > .row > [class*="twelve wide large screen"].column,
- .ui.grid > .column.row > [class*="twelve wide large screen"].column,
- .ui.grid > [class*="twelve wide large screen"].column,
- .ui.column.grid > [class*="twelve wide large screen"].column {
-   width: 75% !important;
- }
-
- .ui.grid > .row > [class*="thirteen wide large screen"].column,
- .ui.grid > .column.row > [class*="thirteen wide large screen"].column,
- .ui.grid > [class*="thirteen wide large screen"].column,
- .ui.column.grid > [class*="thirteen wide large screen"].column {
-   width: 81.25% !important;
- }
-
- .ui.grid > .row > [class*="fourteen wide large screen"].column,
- .ui.grid > .column.row > [class*="fourteen wide large screen"].column,
- .ui.grid > [class*="fourteen wide large screen"].column,
- .ui.column.grid > [class*="fourteen wide large screen"].column {
-   width: 87.5% !important;
- }
-
- .ui.grid > .row > [class*="fifteen wide large screen"].column,
- .ui.grid > .column.row > [class*="fifteen wide large screen"].column,
- .ui.grid > [class*="fifteen wide large screen"].column,
- .ui.column.grid > [class*="fifteen wide large screen"].column {
-   width: 93.75% !important;
- }
-
- .ui.grid > .row > [class*="sixteen wide large screen"].column,
- .ui.grid > .column.row > [class*="sixteen wide large screen"].column,
- .ui.grid > [class*="sixteen wide large screen"].column,
- .ui.column.grid > [class*="sixteen wide large screen"].column {
-   width: 100% !important;
- }
-}
-
-/* Widescreen Sizing Combinations */
-
-@media only screen and (min-width: 1920px) {
- .ui.grid > .row > [class*="one wide widescreen"].column,
- .ui.grid > .column.row > [class*="one wide widescreen"].column,
- .ui.grid > [class*="one wide widescreen"].column,
- .ui.column.grid > [class*="one wide widescreen"].column {
-   width: 6.25% !important;
- }
-
- .ui.grid > .row > [class*="two wide widescreen"].column,
- .ui.grid > .column.row > [class*="two wide widescreen"].column,
- .ui.grid > [class*="two wide widescreen"].column,
- .ui.column.grid > [class*="two wide widescreen"].column {
-   width: 12.5% !important;
- }
-
- .ui.grid > .row > [class*="three wide widescreen"].column,
- .ui.grid > .column.row > [class*="three wide widescreen"].column,
- .ui.grid > [class*="three wide widescreen"].column,
- .ui.column.grid > [class*="three wide widescreen"].column {
-   width: 18.75% !important;
- }
-
- .ui.grid > .row > [class*="four wide widescreen"].column,
- .ui.grid > .column.row > [class*="four wide widescreen"].column,
- .ui.grid > [class*="four wide widescreen"].column,
- .ui.column.grid > [class*="four wide widescreen"].column {
-   width: 25% !important;
- }
-
- .ui.grid > .row > [class*="five wide widescreen"].column,
- .ui.grid > .column.row > [class*="five wide widescreen"].column,
- .ui.grid > [class*="five wide widescreen"].column,
- .ui.column.grid > [class*="five wide widescreen"].column {
-   width: 31.25% !important;
- }
-
- .ui.grid > .row > [class*="six wide widescreen"].column,
- .ui.grid > .column.row > [class*="six wide widescreen"].column,
- .ui.grid > [class*="six wide widescreen"].column,
- .ui.column.grid > [class*="six wide widescreen"].column {
-   width: 37.5% !important;
- }
-
- .ui.grid > .row > [class*="seven wide widescreen"].column,
- .ui.grid > .column.row > [class*="seven wide widescreen"].column,
- .ui.grid > [class*="seven wide widescreen"].column,
- .ui.column.grid > [class*="seven wide widescreen"].column {
-   width: 43.75% !important;
- }
-
- .ui.grid > .row > [class*="eight wide widescreen"].column,
- .ui.grid > .column.row > [class*="eight wide widescreen"].column,
- .ui.grid > [class*="eight wide widescreen"].column,
- .ui.column.grid > [class*="eight wide widescreen"].column {
-   width: 50% !important;
- }
-
- .ui.grid > .row > [class*="nine wide widescreen"].column,
- .ui.grid > .column.row > [class*="nine wide widescreen"].column,
- .ui.grid > [class*="nine wide widescreen"].column,
- .ui.column.grid > [class*="nine wide widescreen"].column {
-   width: 56.25% !important;
- }
-
- .ui.grid > .row > [class*="ten wide widescreen"].column,
- .ui.grid > .column.row > [class*="ten wide widescreen"].column,
- .ui.grid > [class*="ten wide widescreen"].column,
- .ui.column.grid > [class*="ten wide widescreen"].column {
-   width: 62.5% !important;
- }
-
- .ui.grid > .row > [class*="eleven wide widescreen"].column,
- .ui.grid > .column.row > [class*="eleven wide widescreen"].column,
- .ui.grid > [class*="eleven wide widescreen"].column,
- .ui.column.grid > [class*="eleven wide widescreen"].column {
-   width: 68.75% !important;
- }
-
- .ui.grid > .row > [class*="twelve wide widescreen"].column,
- .ui.grid > .column.row > [class*="twelve wide widescreen"].column,
- .ui.grid > [class*="twelve wide widescreen"].column,
- .ui.column.grid > [class*="twelve wide widescreen"].column {
-   width: 75% !important;
- }
-
- .ui.grid > .row > [class*="thirteen wide widescreen"].column,
- .ui.grid > .column.row > [class*="thirteen wide widescreen"].column,
- .ui.grid > [class*="thirteen wide widescreen"].column,
- .ui.column.grid > [class*="thirteen wide widescreen"].column {
-   width: 81.25% !important;
- }
-
- .ui.grid > .row > [class*="fourteen wide widescreen"].column,
- .ui.grid > .column.row > [class*="fourteen wide widescreen"].column,
- .ui.grid > [class*="fourteen wide widescreen"].column,
- .ui.column.grid > [class*="fourteen wide widescreen"].column {
-   width: 87.5% !important;
- }
-
- .ui.grid > .row > [class*="fifteen wide widescreen"].column,
- .ui.grid > .column.row > [class*="fifteen wide widescreen"].column,
- .ui.grid > [class*="fifteen wide widescreen"].column,
- .ui.column.grid > [class*="fifteen wide widescreen"].column {
-   width: 93.75% !important;
- }
-
- .ui.grid > .row > [class*="sixteen wide widescreen"].column,
- .ui.grid > .column.row > [class*="sixteen wide widescreen"].column,
- .ui.grid > [class*="sixteen wide widescreen"].column,
- .ui.column.grid > [class*="sixteen wide widescreen"].column {
-   width: 100% !important;
- }
-}
-
-/*----------------------
-       Centered
------------------------*/
-
-.ui.centered.grid,
-.ui.centered.grid > .row,
-.ui.grid > .centered.row {
- text-align: center;
- -webkit-box-pack: center;
- -ms-flex-pack: center;
- justify-content: center;
-}
-
-.ui.centered.grid > .column:not(.aligned):not(.justified):not(.row),
-.ui.centered.grid > .row > .column:not(.aligned):not(.justified),
-.ui.grid .centered.row > .column:not(.aligned):not(.justified) {
- text-align: left;
-}
-
-.ui.grid > .centered.column,
-.ui.grid > .row > .centered.column {
- display: block;
- margin-left: auto;
- margin-right: auto;
-}
-
-/*----------------------
-       Relaxed
------------------------*/
-
-.ui.relaxed.grid > .column:not(.row),
-.ui.relaxed.grid > .row > .column,
-.ui.grid > .relaxed.row > .column {
- padding-left: 1.5rem;
- padding-right: 1.5rem;
-}
-
-.ui[class*="very relaxed"].grid > .column:not(.row),
-.ui[class*="very relaxed"].grid > .row > .column,
-.ui.grid > [class*="very relaxed"].row > .column {
- padding-left: 2.5rem;
- padding-right: 2.5rem;
-}
-
-/* Coupling with UI Divider */
-
-.ui.relaxed.grid .row + .ui.divider,
-.ui.grid .relaxed.row + .ui.divider {
- margin-left: 1.5rem;
- margin-right: 1.5rem;
-}
-
-.ui[class*="very relaxed"].grid .row + .ui.divider,
-.ui.grid [class*="very relaxed"].row + .ui.divider {
- margin-left: 2.5rem;
- margin-right: 2.5rem;
-}
-
-/*----------------------
-       Padded
------------------------*/
-
-.ui.padded.grid:not(.vertically):not(.horizontally) {
- margin: 0em !important;
-}
-
-[class*="horizontally padded"].ui.grid {
- margin-left: 0em !important;
- margin-right: 0em !important;
-}
-
-[class*="vertically padded"].ui.grid {
- margin-top: 0em !important;
- margin-bottom: 0em !important;
-}
-
-/*----------------------
-      "Floated"
------------------------*/
-
-.ui.grid [class*="left floated"].column {
- margin-right: auto;
-}
-
-.ui.grid [class*="right floated"].column {
- margin-left: auto;
-}
-
-/*----------------------
-       Divided
------------------------*/
-
-.ui.divided.grid:not([class*="vertically divided"]) > .column:not(.row),
-.ui.divided.grid:not([class*="vertically divided"]) > .row > .column {
- -webkit-box-shadow: -1px 0px 0px 0px rgba(34, 36, 38, 0.15);
- box-shadow: -1px 0px 0px 0px rgba(34, 36, 38, 0.15);
-}
-
-/* Swap from padding to margin on columns to have dividers align */
-
-.ui[class*="vertically divided"].grid > .column:not(.row),
-.ui[class*="vertically divided"].grid > .row > .column {
- margin-top: 1rem;
- margin-bottom: 1rem;
- padding-top: 0rem;
- padding-bottom: 0rem;
-}
-
-.ui[class*="vertically divided"].grid > .row {
- margin-top: 0em;
- margin-bottom: 0em;
-}
-
-/* No divider on first column on row */
-
-.ui.divided.grid:not([class*="vertically divided"]) > .column:first-child,
-.ui.divided.grid:not([class*="vertically divided"]) > .row > .column:first-child {
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-/* No space on top of first row */
-
-.ui[class*="vertically divided"].grid > .row:first-child > .column {
- margin-top: 0em;
-}
-
-/* Divided Row */
-
-.ui.grid > .divided.row > .column {
- -webkit-box-shadow: -1px 0px 0px 0px rgba(34, 36, 38, 0.15);
- box-shadow: -1px 0px 0px 0px rgba(34, 36, 38, 0.15);
-}
-
-.ui.grid > .divided.row > .column:first-child {
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-/* Vertically Divided */
-
-.ui[class*="vertically divided"].grid > .row {
- position: relative;
-}
-
-.ui[class*="vertically divided"].grid > .row:before {
- position: absolute;
- content: "";
- top: 0em;
- left: 0px;
- width: calc(100% -  2rem );
- height: 1px;
- margin: 0% 1rem;
- -webkit-box-shadow: 0px -1px 0px 0px rgba(34, 36, 38, 0.15);
- box-shadow: 0px -1px 0px 0px rgba(34, 36, 38, 0.15);
-}
-
-/* Padded Horizontally Divided */
-
-[class*="horizontally padded"].ui.divided.grid,
-.ui.padded.divided.grid:not(.vertically):not(.horizontally) {
- width: 100%;
-}
-
-/* First Row Vertically Divided */
-
-.ui[class*="vertically divided"].grid > .row:first-child:before {
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-/* Inverted Divided */
-
-.ui.inverted.divided.grid:not([class*="vertically divided"]) > .column:not(.row),
-.ui.inverted.divided.grid:not([class*="vertically divided"]) > .row > .column {
- -webkit-box-shadow: -1px 0px 0px 0px rgba(255, 255, 255, 0.1);
- box-shadow: -1px 0px 0px 0px rgba(255, 255, 255, 0.1);
-}
-
-.ui.inverted.divided.grid:not([class*="vertically divided"]) > .column:not(.row):first-child,
-.ui.inverted.divided.grid:not([class*="vertically divided"]) > .row > .column:first-child {
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-.ui.inverted[class*="vertically divided"].grid > .row:before {
- -webkit-box-shadow: 0px -1px 0px 0px rgba(255, 255, 255, 0.1);
- box-shadow: 0px -1px 0px 0px rgba(255, 255, 255, 0.1);
-}
-
-/* Relaxed */
-
-.ui.relaxed[class*="vertically divided"].grid > .row:before {
- margin-left: 1.5rem;
- margin-right: 1.5rem;
- width: calc(100% -  3rem );
-}
-
-.ui[class*="very relaxed"][class*="vertically divided"].grid > .row:before {
- margin-left: 5rem;
- margin-right: 5rem;
- width: calc(100% -  5rem );
-}
-
-/*----------------------
-        Celled
------------------------*/
-
-.ui.celled.grid {
- width: 100%;
- margin: 1em 0em;
- -webkit-box-shadow: 0px 0px 0px 1px #D4D4D5;
- box-shadow: 0px 0px 0px 1px #D4D4D5;
-}
-
-.ui.celled.grid > .row {
- width: 100% !important;
- margin: 0em;
- padding: 0em;
- -webkit-box-shadow: 0px -1px 0px 0px #D4D4D5;
- box-shadow: 0px -1px 0px 0px #D4D4D5;
-}
-
-.ui.celled.grid > .column:not(.row),
-.ui.celled.grid > .row > .column {
- -webkit-box-shadow: -1px 0px 0px 0px #D4D4D5;
- box-shadow: -1px 0px 0px 0px #D4D4D5;
-}
-
-.ui.celled.grid > .column:first-child,
-.ui.celled.grid > .row > .column:first-child {
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-.ui.celled.grid > .column:not(.row),
-.ui.celled.grid > .row > .column {
- padding: 1em;
-}
-
-.ui.relaxed.celled.grid > .column:not(.row),
-.ui.relaxed.celled.grid > .row > .column {
- padding: 1.5em;
-}
-
-.ui[class*="very relaxed"].celled.grid > .column:not(.row),
-.ui[class*="very relaxed"].celled.grid > .row > .column {
- padding: 2em;
-}
-
-/* Internally Celled */
-
-.ui[class*="internally celled"].grid {
- -webkit-box-shadow: none;
- box-shadow: none;
- margin: 0em;
-}
-
-.ui[class*="internally celled"].grid > .row:first-child {
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-.ui[class*="internally celled"].grid > .row > .column:first-child {
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-/*----------------------
-  Vertically Aligned
------------------------*/
-
-/* Top Aligned */
-
-.ui[class*="top aligned"].grid > .column:not(.row),
-.ui[class*="top aligned"].grid > .row > .column,
-.ui.grid > [class*="top aligned"].row > .column,
-.ui.grid > [class*="top aligned"].column:not(.row),
-.ui.grid > .row > [class*="top aligned"].column {
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
- vertical-align: top;
- -ms-flex-item-align: start !important;
- align-self: flex-start !important;
-}
-
-/* Middle Aligned */
-
-.ui[class*="middle aligned"].grid > .column:not(.row),
-.ui[class*="middle aligned"].grid > .row > .column,
-.ui.grid > [class*="middle aligned"].row > .column,
-.ui.grid > [class*="middle aligned"].column:not(.row),
-.ui.grid > .row > [class*="middle aligned"].column {
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
- vertical-align: middle;
- -ms-flex-item-align: center !important;
- align-self: center !important;
-}
-
-/* Bottom Aligned */
-
-.ui[class*="bottom aligned"].grid > .column:not(.row),
-.ui[class*="bottom aligned"].grid > .row > .column,
-.ui.grid > [class*="bottom aligned"].row > .column,
-.ui.grid > [class*="bottom aligned"].column:not(.row),
-.ui.grid > .row > [class*="bottom aligned"].column {
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
- vertical-align: bottom;
- -ms-flex-item-align: end !important;
- align-self: flex-end !important;
-}
-
-/* Stretched */
-
-.ui.stretched.grid > .row > .column,
-.ui.stretched.grid > .column,
-.ui.grid > .stretched.row > .column,
-.ui.grid > .stretched.column:not(.row),
-.ui.grid > .row > .stretched.column {
- display: -webkit-inline-box !important;
- display: -ms-inline-flexbox !important;
- display: inline-flex !important;
- -ms-flex-item-align: stretch;
- align-self: stretch;
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
-}
-
-.ui.stretched.grid > .row > .column > *,
-.ui.stretched.grid > .column > *,
-.ui.grid > .stretched.row > .column > *,
-.ui.grid > .stretched.column:not(.row) > *,
-.ui.grid > .row > .stretched.column > * {
- -webkit-box-flex: 1;
- -ms-flex-positive: 1;
- flex-grow: 1;
-}
-
-/*----------------------
- Horizontally Centered
------------------------*/
-
-/* Left Aligned */
-
-.ui[class*="left aligned"].grid > .column,
-.ui[class*="left aligned"].grid > .row > .column,
-.ui.grid > [class*="left aligned"].row > .column,
-.ui.grid > [class*="left aligned"].column.column,
-.ui.grid > .row > [class*="left aligned"].column.column {
- text-align: left;
- -ms-flex-item-align: inherit;
- align-self: inherit;
-}
-
-/* Center Aligned */
-
-.ui[class*="center aligned"].grid > .column,
-.ui[class*="center aligned"].grid > .row > .column,
-.ui.grid > [class*="center aligned"].row > .column,
-.ui.grid > [class*="center aligned"].column.column,
-.ui.grid > .row > [class*="center aligned"].column.column {
- text-align: center;
- -ms-flex-item-align: inherit;
- align-self: inherit;
-}
-
-.ui[class*="center aligned"].grid {
- -webkit-box-pack: center;
- -ms-flex-pack: center;
- justify-content: center;
-}
-
-/* Right Aligned */
-
-.ui[class*="right aligned"].grid > .column,
-.ui[class*="right aligned"].grid > .row > .column,
-.ui.grid > [class*="right aligned"].row > .column,
-.ui.grid > [class*="right aligned"].column.column,
-.ui.grid > .row > [class*="right aligned"].column.column {
- text-align: right;
- -ms-flex-item-align: inherit;
- align-self: inherit;
-}
-
-/* Justified */
-
-.ui.justified.grid > .column,
-.ui.justified.grid > .row > .column,
-.ui.grid > .justified.row > .column,
-.ui.grid > .justified.column.column,
-.ui.grid > .row > .justified.column.column {
- text-align: justify;
- -webkit-hyphens: auto;
- -ms-hyphens: auto;
- hyphens: auto;
-}
-
-/*----------------------
-        Colored
------------------------*/
-
-.ui.grid > .row > .red.column,
-.ui.grid > .row > .orange.column,
-.ui.grid > .row > .yellow.column,
-.ui.grid > .row > .olive.column,
-.ui.grid > .row > .green.column,
-.ui.grid > .row > .teal.column,
-.ui.grid > .row > .blue.column,
-.ui.grid > .row > .violet.column,
-.ui.grid > .row > .purple.column,
-.ui.grid > .row > .pink.column,
-.ui.grid > .row > .brown.column,
-.ui.grid > .row > .grey.column,
-.ui.grid > .row > .black.column {
- margin-top: -1rem;
- margin-bottom: -1rem;
- padding-top: 1rem;
- padding-bottom: 1rem;
-}
-
-/* Red */
-
-.ui.grid > .red.row,
-.ui.grid > .red.column,
-.ui.grid > .row > .red.column {
- background-color: #DB2828 !important;
- color: #FFFFFF;
-}
-
-/* Orange */
-
-.ui.grid > .orange.row,
-.ui.grid > .orange.column,
-.ui.grid > .row > .orange.column {
- background-color: #F2711C !important;
- color: #FFFFFF;
-}
-
-/* Yellow */
-
-.ui.grid > .yellow.row,
-.ui.grid > .yellow.column,
-.ui.grid > .row > .yellow.column {
- background-color: #FBBD08 !important;
- color: #FFFFFF;
-}
-
-/* Olive */
-
-.ui.grid > .olive.row,
-.ui.grid > .olive.column,
-.ui.grid > .row > .olive.column {
- background-color: #B5CC18 !important;
- color: #FFFFFF;
-}
-
-/* Green */
-
-.ui.grid > .green.row,
-.ui.grid > .green.column,
-.ui.grid > .row > .green.column {
- background-color: #21BA45 !important;
- color: #FFFFFF;
-}
-
-/* Teal */
-
-.ui.grid > .teal.row,
-.ui.grid > .teal.column,
-.ui.grid > .row > .teal.column {
- background-color: #00B5AD !important;
- color: #FFFFFF;
-}
-
-/* Blue */
-
-.ui.grid > .blue.row,
-.ui.grid > .blue.column,
-.ui.grid > .row > .blue.column {
- background-color: #2185D0 !important;
- color: #FFFFFF;
-}
-
-/* Violet */
-
-.ui.grid > .violet.row,
-.ui.grid > .violet.column,
-.ui.grid > .row > .violet.column {
- background-color: #6435C9 !important;
- color: #FFFFFF;
-}
-
-/* Purple */
-
-.ui.grid > .purple.row,
-.ui.grid > .purple.column,
-.ui.grid > .row > .purple.column {
- background-color: #A333C8 !important;
- color: #FFFFFF;
-}
-
-/* Pink */
-
-.ui.grid > .pink.row,
-.ui.grid > .pink.column,
-.ui.grid > .row > .pink.column {
- background-color: #E03997 !important;
- color: #FFFFFF;
-}
-
-/* Brown */
-
-.ui.grid > .brown.row,
-.ui.grid > .brown.column,
-.ui.grid > .row > .brown.column {
- background-color: #A5673F !important;
- color: #FFFFFF;
-}
-
-/* Grey */
-
-.ui.grid > .grey.row,
-.ui.grid > .grey.column,
-.ui.grid > .row > .grey.column {
- background-color: #767676 !important;
- color: #FFFFFF;
-}
-
-/* Black */
-
-.ui.grid > .black.row,
-.ui.grid > .black.column,
-.ui.grid > .row > .black.column {
- background-color: #1B1C1D !important;
- color: #FFFFFF;
-}
-
-/*----------------------
-     Equal Width
------------------------*/
-
-.ui[class*="equal width"].grid > .column:not(.row),
-.ui[class*="equal width"].grid > .row > .column,
-.ui.grid > [class*="equal width"].row > .column {
- display: inline-block;
- -webkit-box-flex: 1;
- -ms-flex-positive: 1;
- flex-grow: 1;
-}
-
-.ui[class*="equal width"].grid > .wide.column,
-.ui[class*="equal width"].grid > .row > .wide.column,
-.ui.grid > [class*="equal width"].row > .wide.column {
- -webkit-box-flex: 0;
- -ms-flex-positive: 0;
- flex-grow: 0;
-}
-
-/*----------------------
-       Reverse
------------------------*/
-
-/* Mobile */
-
-@media only screen and (max-width: 767px) {
- .ui[class*="mobile reversed"].grid,
- .ui[class*="mobile reversed"].grid > .row,
- .ui.grid > [class*="mobile reversed"].row {
-   -webkit-box-orient: horizontal;
-   -webkit-box-direction: reverse;
-   -ms-flex-direction: row-reverse;
-   flex-direction: row-reverse;
- }
-
- .ui[class*="mobile vertically reversed"].grid,
- .ui.stackable[class*="mobile reversed"] {
-   -webkit-box-orient: vertical;
-   -webkit-box-direction: reverse;
-   -ms-flex-direction: column-reverse;
-   flex-direction: column-reverse;
- }
-
- /* Divided Reversed */
-
- .ui[class*="mobile reversed"].divided.grid:not([class*="vertically divided"]) > .column:first-child,
- .ui[class*="mobile reversed"].divided.grid:not([class*="vertically divided"]) > .row > .column:first-child {
-   -webkit-box-shadow: -1px 0px 0px 0px rgba(34, 36, 38, 0.15);
-   box-shadow: -1px 0px 0px 0px rgba(34, 36, 38, 0.15);
- }
-
- .ui[class*="mobile reversed"].divided.grid:not([class*="vertically divided"]) > .column:last-child,
- .ui[class*="mobile reversed"].divided.grid:not([class*="vertically divided"]) > .row > .column:last-child {
-   -webkit-box-shadow: none;
-   box-shadow: none;
- }
-
- /* Vertically Divided Reversed */
-
- .ui.grid[class*="vertically divided"][class*="mobile vertically reversed"] > .row:first-child:before {
-   -webkit-box-shadow: 0px -1px 0px 0px rgba(34, 36, 38, 0.15);
-   box-shadow: 0px -1px 0px 0px rgba(34, 36, 38, 0.15);
- }
-
- .ui.grid[class*="vertically divided"][class*="mobile vertically reversed"] > .row:last-child:before {
-   -webkit-box-shadow: none;
-   box-shadow: none;
- }
-
- /* Celled Reversed */
-
- .ui[class*="mobile reversed"].celled.grid > .row > .column:first-child {
-   -webkit-box-shadow: -1px 0px 0px 0px #D4D4D5;
-   box-shadow: -1px 0px 0px 0px #D4D4D5;
- }
-
- .ui[class*="mobile reversed"].celled.grid > .row > .column:last-child {
-   -webkit-box-shadow: none;
-   box-shadow: none;
- }
-}
-
-/* Tablet */
-
-@media only screen and (min-width: 768px) and (max-width: 991px) {
- .ui[class*="tablet reversed"].grid,
- .ui[class*="tablet reversed"].grid > .row,
- .ui.grid > [class*="tablet reversed"].row {
-   -webkit-box-orient: horizontal;
-   -webkit-box-direction: reverse;
-   -ms-flex-direction: row-reverse;
-   flex-direction: row-reverse;
- }
-
- .ui[class*="tablet vertically reversed"].grid {
-   -webkit-box-orient: vertical;
-   -webkit-box-direction: reverse;
-   -ms-flex-direction: column-reverse;
-   flex-direction: column-reverse;
- }
-
- /* Divided Reversed */
-
- .ui[class*="tablet reversed"].divided.grid:not([class*="vertically divided"]) > .column:first-child,
- .ui[class*="tablet reversed"].divided.grid:not([class*="vertically divided"]) > .row > .column:first-child {
-   -webkit-box-shadow: -1px 0px 0px 0px rgba(34, 36, 38, 0.15);
-   box-shadow: -1px 0px 0px 0px rgba(34, 36, 38, 0.15);
- }
-
- .ui[class*="tablet reversed"].divided.grid:not([class*="vertically divided"]) > .column:last-child,
- .ui[class*="tablet reversed"].divided.grid:not([class*="vertically divided"]) > .row > .column:last-child {
-   -webkit-box-shadow: none;
-   box-shadow: none;
- }
-
- /* Vertically Divided Reversed */
-
- .ui.grid[class*="vertically divided"][class*="tablet vertically reversed"] > .row:first-child:before {
-   -webkit-box-shadow: 0px -1px 0px 0px rgba(34, 36, 38, 0.15);
-   box-shadow: 0px -1px 0px 0px rgba(34, 36, 38, 0.15);
- }
-
- .ui.grid[class*="vertically divided"][class*="tablet vertically reversed"] > .row:last-child:before {
-   -webkit-box-shadow: none;
-   box-shadow: none;
- }
-
- /* Celled Reversed */
-
- .ui[class*="tablet reversed"].celled.grid > .row > .column:first-child {
-   -webkit-box-shadow: -1px 0px 0px 0px #D4D4D5;
-   box-shadow: -1px 0px 0px 0px #D4D4D5;
- }
-
- .ui[class*="tablet reversed"].celled.grid > .row > .column:last-child {
-   -webkit-box-shadow: none;
-   box-shadow: none;
- }
-}
-
-/* Computer */
-
-@media only screen and (min-width: 992px) {
- .ui[class*="computer reversed"].grid,
- .ui[class*="computer reversed"].grid > .row,
- .ui.grid > [class*="computer reversed"].row {
-   -webkit-box-orient: horizontal;
-   -webkit-box-direction: reverse;
-   -ms-flex-direction: row-reverse;
-   flex-direction: row-reverse;
- }
-
- .ui[class*="computer vertically reversed"].grid {
-   -webkit-box-orient: vertical;
-   -webkit-box-direction: reverse;
-   -ms-flex-direction: column-reverse;
-   flex-direction: column-reverse;
- }
-
- /* Divided Reversed */
-
- .ui[class*="computer reversed"].divided.grid:not([class*="vertically divided"]) > .column:first-child,
- .ui[class*="computer reversed"].divided.grid:not([class*="vertically divided"]) > .row > .column:first-child {
-   -webkit-box-shadow: -1px 0px 0px 0px rgba(34, 36, 38, 0.15);
-   box-shadow: -1px 0px 0px 0px rgba(34, 36, 38, 0.15);
- }
-
- .ui[class*="computer reversed"].divided.grid:not([class*="vertically divided"]) > .column:last-child,
- .ui[class*="computer reversed"].divided.grid:not([class*="vertically divided"]) > .row > .column:last-child {
-   -webkit-box-shadow: none;
-   box-shadow: none;
- }
-
- /* Vertically Divided Reversed */
-
- .ui.grid[class*="vertically divided"][class*="computer vertically reversed"] > .row:first-child:before {
-   -webkit-box-shadow: 0px -1px 0px 0px rgba(34, 36, 38, 0.15);
-   box-shadow: 0px -1px 0px 0px rgba(34, 36, 38, 0.15);
- }
-
- .ui.grid[class*="vertically divided"][class*="computer vertically reversed"] > .row:last-child:before {
-   -webkit-box-shadow: none;
-   box-shadow: none;
- }
-
- /* Celled Reversed */
-
- .ui[class*="computer reversed"].celled.grid > .row > .column:first-child {
-   -webkit-box-shadow: -1px 0px 0px 0px #D4D4D5;
-   box-shadow: -1px 0px 0px 0px #D4D4D5;
- }
-
- .ui[class*="computer reversed"].celled.grid > .row > .column:last-child {
-   -webkit-box-shadow: none;
-   box-shadow: none;
- }
-}
-
-/*-------------------
-     Doubling
---------------------*/
-
-/* Tablet Only */
-
-@media only screen and (min-width: 768px) and (max-width: 991px) {
- .ui.doubling.grid {
-   width: auto;
- }
-
- .ui.grid > .doubling.row,
- .ui.doubling.grid > .row {
-   margin: 0em !important;
-   padding: 0em !important;
- }
-
- .ui.grid > .doubling.row > .column,
- .ui.doubling.grid > .row > .column {
-   display: inline-block !important;
-   padding-top: 1rem !important;
-   padding-bottom: 1rem !important;
-   -webkit-box-shadow: none !important;
-   box-shadow: none !important;
-   margin: 0em;
- }
-
- .ui[class*="two column"].doubling.grid > .row > .column,
- .ui[class*="two column"].doubling.grid > .column:not(.row),
- .ui.grid > [class*="two column"].doubling.row.row > .column {
-   width: 100% !important;
- }
-
- .ui[class*="three column"].doubling.grid > .row > .column,
- .ui[class*="three column"].doubling.grid > .column:not(.row),
- .ui.grid > [class*="three column"].doubling.row.row > .column {
-   width: 50% !important;
- }
-
- .ui[class*="four column"].doubling.grid > .row > .column,
- .ui[class*="four column"].doubling.grid > .column:not(.row),
- .ui.grid > [class*="four column"].doubling.row.row > .column {
-   width: 50% !important;
- }
-
- .ui[class*="five column"].doubling.grid > .row > .column,
- .ui[class*="five column"].doubling.grid > .column:not(.row),
- .ui.grid > [class*="five column"].doubling.row.row > .column {
-   width: 33.33333333% !important;
- }
-
- .ui[class*="six column"].doubling.grid > .row > .column,
- .ui[class*="six column"].doubling.grid > .column:not(.row),
- .ui.grid > [class*="six column"].doubling.row.row > .column {
-   width: 33.33333333% !important;
- }
-
- .ui[class*="seven column"].doubling.grid > .row > .column,
- .ui[class*="seven column"].doubling.grid > .column:not(.row),
- .ui.grid > [class*="seven column"].doubling.row.row > .column {
-   width: 33.33333333% !important;
- }
-
- .ui[class*="eight column"].doubling.grid > .row > .column,
- .ui[class*="eight column"].doubling.grid > .column:not(.row),
- .ui.grid > [class*="eight column"].doubling.row.row > .column {
-   width: 25% !important;
- }
-
- .ui[class*="nine column"].doubling.grid > .row > .column,
- .ui[class*="nine column"].doubling.grid > .column:not(.row),
- .ui.grid > [class*="nine column"].doubling.row.row > .column {
-   width: 25% !important;
- }
-
- .ui[class*="ten column"].doubling.grid > .row > .column,
- .ui[class*="ten column"].doubling.grid > .column:not(.row),
- .ui.grid > [class*="ten column"].doubling.row.row > .column {
-   width: 20% !important;
- }
-
- .ui[class*="eleven column"].doubling.grid > .row > .column,
- .ui[class*="eleven column"].doubling.grid > .column:not(.row),
- .ui.grid > [class*="eleven column"].doubling.row.row > .column {
-   width: 20% !important;
- }
-
- .ui[class*="twelve column"].doubling.grid > .row > .column,
- .ui[class*="twelve column"].doubling.grid > .column:not(.row),
- .ui.grid > [class*="twelve column"].doubling.row.row > .column {
-   width: 16.66666667% !important;
- }
-
- .ui[class*="thirteen column"].doubling.grid > .row > .column,
- .ui[class*="thirteen column"].doubling.grid > .column:not(.row),
- .ui.grid > [class*="thirteen column"].doubling.row.row > .column {
-   width: 16.66666667% !important;
- }
-
- .ui[class*="fourteen column"].doubling.grid > .row > .column,
- .ui[class*="fourteen column"].doubling.grid > .column:not(.row),
- .ui.grid > [class*="fourteen column"].doubling.row.row > .column {
-   width: 14.28571429% !important;
- }
-
- .ui[class*="fifteen column"].doubling.grid > .row > .column,
- .ui[class*="fifteen column"].doubling.grid > .column:not(.row),
- .ui.grid > [class*="fifteen column"].doubling.row.row > .column {
-   width: 14.28571429% !important;
- }
-
- .ui[class*="sixteen column"].doubling.grid > .row > .column,
- .ui[class*="sixteen column"].doubling.grid > .column:not(.row),
- .ui.grid > [class*="sixteen column"].doubling.row.row > .column {
-   width: 12.5% !important;
- }
-}
-
-/* Mobile Only */
-
-@media only screen and (max-width: 767px) {
- .ui.grid > .doubling.row,
- .ui.doubling.grid > .row {
-   margin: 0em !important;
-   padding: 0em !important;
- }
-
- .ui.grid > .doubling.row > .column,
- .ui.doubling.grid > .row > .column {
-   padding-top: 1rem !important;
-   padding-bottom: 1rem !important;
-   margin: 0em !important;
-   -webkit-box-shadow: none !important;
-   box-shadow: none !important;
- }
-
- .ui[class*="two column"].doubling:not(.stackable).grid > .row > .column,
- .ui[class*="two column"].doubling:not(.stackable).grid > .column:not(.row),
- .ui.grid > [class*="two column"].doubling:not(.stackable).row.row > .column {
-   width: 100% !important;
- }
-
- .ui[class*="three column"].doubling:not(.stackable).grid > .row > .column,
- .ui[class*="three column"].doubling:not(.stackable).grid > .column:not(.row),
- .ui.grid > [class*="three column"].doubling:not(.stackable).row.row > .column {
-   width: 50% !important;
- }
-
- .ui[class*="four column"].doubling:not(.stackable).grid > .row > .column,
- .ui[class*="four column"].doubling:not(.stackable).grid > .column:not(.row),
- .ui.grid > [class*="four column"].doubling:not(.stackable).row.row > .column {
-   width: 50% !important;
- }
-
- .ui[class*="five column"].doubling:not(.stackable).grid > .row > .column,
- .ui[class*="five column"].doubling:not(.stackable).grid > .column:not(.row),
- .ui.grid > [class*="five column"].doubling:not(.stackable).row.row > .column {
-   width: 50% !important;
- }
-
- .ui[class*="six column"].doubling:not(.stackable).grid > .row > .column,
- .ui[class*="six column"].doubling:not(.stackable).grid > .column:not(.row),
- .ui.grid > [class*="six column"].doubling:not(.stackable).row.row > .column {
-   width: 50% !important;
- }
-
- .ui[class*="seven column"].doubling:not(.stackable).grid > .row > .column,
- .ui[class*="seven column"].doubling:not(.stackable).grid > .column:not(.row),
- .ui.grid > [class*="seven column"].doubling:not(.stackable).row.row > .column {
-   width: 50% !important;
- }
-
- .ui[class*="eight column"].doubling:not(.stackable).grid > .row > .column,
- .ui[class*="eight column"].doubling:not(.stackable).grid > .column:not(.row),
- .ui.grid > [class*="eight column"].doubling:not(.stackable).row.row > .column {
-   width: 50% !important;
- }
-
- .ui[class*="nine column"].doubling:not(.stackable).grid > .row > .column,
- .ui[class*="nine column"].doubling:not(.stackable).grid > .column:not(.row),
- .ui.grid > [class*="nine column"].doubling:not(.stackable).row.row > .column {
-   width: 33.33333333% !important;
- }
-
- .ui[class*="ten column"].doubling:not(.stackable).grid > .row > .column,
- .ui[class*="ten column"].doubling:not(.stackable).grid > .column:not(.row),
- .ui.grid > [class*="ten column"].doubling:not(.stackable).row.row > .column {
-   width: 33.33333333% !important;
- }
-
- .ui[class*="eleven column"].doubling:not(.stackable).grid > .row > .column,
- .ui[class*="eleven column"].doubling:not(.stackable).grid > .column:not(.row),
- .ui.grid > [class*="eleven column"].doubling:not(.stackable).row.row > .column {
-   width: 33.33333333% !important;
- }
-
- .ui[class*="twelve column"].doubling:not(.stackable).grid > .row > .column,
- .ui[class*="twelve column"].doubling:not(.stackable).grid > .column:not(.row),
- .ui.grid > [class*="twelve column"].doubling:not(.stackable).row.row > .column {
-   width: 33.33333333% !important;
- }
-
- .ui[class*="thirteen column"].doubling:not(.stackable).grid > .row > .column,
- .ui[class*="thirteen column"].doubling:not(.stackable).grid > .column:not(.row),
- .ui.grid > [class*="thirteen column"].doubling:not(.stackable).row.row > .column {
-   width: 33.33333333% !important;
- }
-
- .ui[class*="fourteen column"].doubling:not(.stackable).grid > .row > .column,
- .ui[class*="fourteen column"].doubling:not(.stackable).grid > .column:not(.row),
- .ui.grid > [class*="fourteen column"].doubling:not(.stackable).row.row > .column {
-   width: 25% !important;
- }
-
- .ui[class*="fifteen column"].doubling:not(.stackable).grid > .row > .column,
- .ui[class*="fifteen column"].doubling:not(.stackable).grid > .column:not(.row),
- .ui.grid > [class*="fifteen column"].doubling:not(.stackable).row.row > .column {
-   width: 25% !important;
- }
-
- .ui[class*="sixteen column"].doubling:not(.stackable).grid > .row > .column,
- .ui[class*="sixteen column"].doubling:not(.stackable).grid > .column:not(.row),
- .ui.grid > [class*="sixteen column"].doubling:not(.stackable).row.row > .column {
-   width: 25% !important;
- }
-}
-
-/*-------------------
-     Stackable
---------------------*/
-
-@media only screen and (max-width: 767px) {
- .ui.stackable.grid {
-   width: auto;
-   margin-left: 0em !important;
-   margin-right: 0em !important;
- }
-
- .ui.stackable.grid > .row > .wide.column,
- .ui.stackable.grid > .wide.column,
- .ui.stackable.grid > .column.grid > .column,
- .ui.stackable.grid > .column.row > .column,
- .ui.stackable.grid > .row > .column,
- .ui.stackable.grid > .column:not(.row),
- .ui.grid > .stackable.stackable.row > .column {
-   width: 100% !important;
-   margin: 0em 0em !important;
-   -webkit-box-shadow: none !important;
-   box-shadow: none !important;
-   padding: 1rem 1rem !important;
- }
-
- .ui.stackable.grid:not(.vertically) > .row {
-   margin: 0em;
-   padding: 0em;
- }
-
- /* Coupling */
-
- .ui.container > .ui.stackable.grid > .column,
- .ui.container > .ui.stackable.grid > .row > .column {
-   padding-left: 0em !important;
-   padding-right: 0em !important;
- }
-
- /* Don't pad inside segment or nested grid */
-
- .ui.grid .ui.stackable.grid,
- .ui.segment:not(.vertical) .ui.stackable.page.grid {
-   margin-left: -1rem !important;
-   margin-right: -1rem !important;
- }
-
- /* Divided Stackable */
-
- .ui.stackable.divided.grid > .row:first-child > .column:first-child,
- .ui.stackable.celled.grid > .row:first-child > .column:first-child,
- .ui.stackable.divided.grid > .column:not(.row):first-child,
- .ui.stackable.celled.grid > .column:not(.row):first-child {
-   border-top: none !important;
- }
-
- .ui.inverted.stackable.celled.grid > .column:not(.row),
- .ui.inverted.stackable.divided.grid > .column:not(.row),
- .ui.inverted.stackable.celled.grid > .row > .column,
- .ui.inverted.stackable.divided.grid > .row > .column {
-   border-top: 1px solid rgba(255, 255, 255, 0.1);
- }
-
- .ui.stackable.celled.grid > .column:not(.row),
- .ui.stackable.divided:not(.vertically).grid > .column:not(.row),
- .ui.stackable.celled.grid > .row > .column,
- .ui.stackable.divided:not(.vertically).grid > .row > .column {
-   border-top: 1px solid rgba(34, 36, 38, 0.15);
-   -webkit-box-shadow: none !important;
-   box-shadow: none !important;
-   padding-top: 2rem !important;
-   padding-bottom: 2rem !important;
- }
-
- .ui.stackable.celled.grid > .row {
-   -webkit-box-shadow: none !important;
-   box-shadow: none !important;
- }
-
- .ui.stackable.divided:not(.vertically).grid > .column:not(.row),
- .ui.stackable.divided:not(.vertically).grid > .row > .column {
-   padding-left: 0em !important;
-   padding-right: 0em !important;
- }
-}
-
-/*----------------------
-    Only (Device)
------------------------*/
-
-/* These include arbitrary class repetitions for forced specificity */
-
-/* Mobile Only Hide */
-
-@media only screen and (max-width: 767px) {
- .ui[class*="tablet only"].grid.grid.grid:not(.mobile),
- .ui.grid.grid.grid > [class*="tablet only"].row:not(.mobile),
- .ui.grid.grid.grid > [class*="tablet only"].column:not(.mobile),
- .ui.grid.grid.grid > .row > [class*="tablet only"].column:not(.mobile) {
-   display: none !important;
- }
-
- .ui[class*="computer only"].grid.grid.grid:not(.mobile),
- .ui.grid.grid.grid > [class*="computer only"].row:not(.mobile),
- .ui.grid.grid.grid > [class*="computer only"].column:not(.mobile),
- .ui.grid.grid.grid > .row > [class*="computer only"].column:not(.mobile) {
-   display: none !important;
- }
-
- .ui[class*="large screen only"].grid.grid.grid:not(.mobile),
- .ui.grid.grid.grid > [class*="large screen only"].row:not(.mobile),
- .ui.grid.grid.grid > [class*="large screen only"].column:not(.mobile),
- .ui.grid.grid.grid > .row > [class*="large screen only"].column:not(.mobile) {
-   display: none !important;
- }
-
- .ui[class*="widescreen only"].grid.grid.grid:not(.mobile),
- .ui.grid.grid.grid > [class*="widescreen only"].row:not(.mobile),
- .ui.grid.grid.grid > [class*="widescreen only"].column:not(.mobile),
- .ui.grid.grid.grid > .row > [class*="widescreen only"].column:not(.mobile) {
-   display: none !important;
- }
-}
-
-/* Tablet Only Hide */
-
-@media only screen and (min-width: 768px) and (max-width: 991px) {
- .ui[class*="mobile only"].grid.grid.grid:not(.tablet),
- .ui.grid.grid.grid > [class*="mobile only"].row:not(.tablet),
- .ui.grid.grid.grid > [class*="mobile only"].column:not(.tablet),
- .ui.grid.grid.grid > .row > [class*="mobile only"].column:not(.tablet) {
-   display: none !important;
- }
-
- .ui[class*="computer only"].grid.grid.grid:not(.tablet),
- .ui.grid.grid.grid > [class*="computer only"].row:not(.tablet),
- .ui.grid.grid.grid > [class*="computer only"].column:not(.tablet),
- .ui.grid.grid.grid > .row > [class*="computer only"].column:not(.tablet) {
-   display: none !important;
- }
-
- .ui[class*="large screen only"].grid.grid.grid:not(.mobile),
- .ui.grid.grid.grid > [class*="large screen only"].row:not(.mobile),
- .ui.grid.grid.grid > [class*="large screen only"].column:not(.mobile),
- .ui.grid.grid.grid > .row > [class*="large screen only"].column:not(.mobile) {
-   display: none !important;
- }
-
- .ui[class*="widescreen only"].grid.grid.grid:not(.mobile),
- .ui.grid.grid.grid > [class*="widescreen only"].row:not(.mobile),
- .ui.grid.grid.grid > [class*="widescreen only"].column:not(.mobile),
- .ui.grid.grid.grid > .row > [class*="widescreen only"].column:not(.mobile) {
-   display: none !important;
- }
-}
-
-/* Computer Only Hide */
-
-@media only screen and (min-width: 992px) and (max-width: 1199px) {
- .ui[class*="mobile only"].grid.grid.grid:not(.computer),
- .ui.grid.grid.grid > [class*="mobile only"].row:not(.computer),
- .ui.grid.grid.grid > [class*="mobile only"].column:not(.computer),
- .ui.grid.grid.grid > .row > [class*="mobile only"].column:not(.computer) {
-   display: none !important;
- }
-
- .ui[class*="tablet only"].grid.grid.grid:not(.computer),
- .ui.grid.grid.grid > [class*="tablet only"].row:not(.computer),
- .ui.grid.grid.grid > [class*="tablet only"].column:not(.computer),
- .ui.grid.grid.grid > .row > [class*="tablet only"].column:not(.computer) {
-   display: none !important;
- }
-
- .ui[class*="large screen only"].grid.grid.grid:not(.mobile),
- .ui.grid.grid.grid > [class*="large screen only"].row:not(.mobile),
- .ui.grid.grid.grid > [class*="large screen only"].column:not(.mobile),
- .ui.grid.grid.grid > .row > [class*="large screen only"].column:not(.mobile) {
-   display: none !important;
- }
-
- .ui[class*="widescreen only"].grid.grid.grid:not(.mobile),
- .ui.grid.grid.grid > [class*="widescreen only"].row:not(.mobile),
- .ui.grid.grid.grid > [class*="widescreen only"].column:not(.mobile),
- .ui.grid.grid.grid > .row > [class*="widescreen only"].column:not(.mobile) {
-   display: none !important;
- }
-}
-
-/* Large Screen Only Hide */
-
-@media only screen and (min-width: 1200px) and (max-width: 1919px) {
- .ui[class*="mobile only"].grid.grid.grid:not(.computer),
- .ui.grid.grid.grid > [class*="mobile only"].row:not(.computer),
- .ui.grid.grid.grid > [class*="mobile only"].column:not(.computer),
- .ui.grid.grid.grid > .row > [class*="mobile only"].column:not(.computer) {
-   display: none !important;
- }
-
- .ui[class*="tablet only"].grid.grid.grid:not(.computer),
- .ui.grid.grid.grid > [class*="tablet only"].row:not(.computer),
- .ui.grid.grid.grid > [class*="tablet only"].column:not(.computer),
- .ui.grid.grid.grid > .row > [class*="tablet only"].column:not(.computer) {
-   display: none !important;
- }
-
- .ui[class*="widescreen only"].grid.grid.grid:not(.mobile),
- .ui.grid.grid.grid > [class*="widescreen only"].row:not(.mobile),
- .ui.grid.grid.grid > [class*="widescreen only"].column:not(.mobile),
- .ui.grid.grid.grid > .row > [class*="widescreen only"].column:not(.mobile) {
-   display: none !important;
- }
-}
-
-/* Widescreen Only Hide */
-
-@media only screen and (min-width: 1920px) {
- .ui[class*="mobile only"].grid.grid.grid:not(.computer),
- .ui.grid.grid.grid > [class*="mobile only"].row:not(.computer),
- .ui.grid.grid.grid > [class*="mobile only"].column:not(.computer),
- .ui.grid.grid.grid > .row > [class*="mobile only"].column:not(.computer) {
-   display: none !important;
- }
-
- .ui[class*="tablet only"].grid.grid.grid:not(.computer),
- .ui.grid.grid.grid > [class*="tablet only"].row:not(.computer),
- .ui.grid.grid.grid > [class*="tablet only"].column:not(.computer),
- .ui.grid.grid.grid > .row > [class*="tablet only"].column:not(.computer) {
-   display: none !important;
- }
-}
-
-/*******************************
-        Theme Overrides
-*******************************/
-
-/*******************************
-        Site Overrides
-*******************************/
-/*
-* # Semantic - Menu
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Copyright 2015 Contributor
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-           Standard
-*******************************/
-
-/*--------------
-     Menu
----------------*/
-
-.ui.menu {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- margin: 1rem 0em;
- font-family: 'Lato', 'Helvetica Neue', Arial, Helvetica, sans-serif;
- background: #FFFFFF;
- font-weight: normal;
- border: 1px solid rgba(34, 36, 38, 0.15);
- -webkit-box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15);
- box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15);
- border-radius: 0.28571429rem;
- min-height: 2.85714286em;
-}
-
-.ui.menu:after {
- content: '';
- display: block;
- height: 0px;
- clear: both;
- visibility: hidden;
-}
-
-.ui.menu:first-child {
- margin-top: 0rem;
-}
-
-.ui.menu:last-child {
- margin-bottom: 0rem;
-}
-
-/*--------------
-   Sub-Menu
----------------*/
-
-.ui.menu .menu {
- margin: 0em;
-}
-
-.ui.menu:not(.vertical) > .menu {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
-}
-
-/*--------------
-     Item
----------------*/
-
-.ui.menu:not(.vertical) .item {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
-}
-
-.ui.menu .item {
- position: relative;
- vertical-align: middle;
- line-height: 1;
- text-decoration: none;
- -webkit-tap-highlight-color: transparent;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 auto;
- flex: 0 0 auto;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- background: none;
- padding: 0.92857143em 1.14285714em;
- text-transform: none;
- color: rgba(0, 0, 0, 0.87);
- font-weight: normal;
- -webkit-transition: background 0.1s ease, color 0.1s ease, -webkit-box-shadow 0.1s ease;
- transition: background 0.1s ease, color 0.1s ease, -webkit-box-shadow 0.1s ease;
- transition: background 0.1s ease, box-shadow 0.1s ease, color 0.1s ease;
- transition: background 0.1s ease, box-shadow 0.1s ease, color 0.1s ease, -webkit-box-shadow 0.1s ease;
-}
-
-.ui.menu > .item:first-child {
- border-radius: 0.28571429rem 0px 0px 0.28571429rem;
-}
-
-/* Border */
-
-.ui.menu .item:before {
- position: absolute;
- content: '';
- top: 0%;
- right: 0px;
- height: 100%;
- width: 1px;
- background: rgba(34, 36, 38, 0.1);
-}
-
-/*--------------
- Text Content
----------------*/
-
-.ui.menu .text.item > *,
-.ui.menu .item > a:not(.ui),
-.ui.menu .item > p:only-child {
- -webkit-user-select: text;
- -moz-user-select: text;
- -ms-user-select: text;
- user-select: text;
- line-height: 1.3;
-}
-
-.ui.menu .item > p:first-child {
- margin-top: 0;
-}
-
-.ui.menu .item > p:last-child {
- margin-bottom: 0;
-}
-
-/*--------------
-     Icons
----------------*/
-
-.ui.menu .item > i.icon {
- opacity: 0.9;
- float: none;
- margin: 0em 0.35714286em 0em 0em;
-}
-
-/*--------------
-    Button
----------------*/
-
-.ui.menu:not(.vertical) .item > .button {
- position: relative;
- top: 0em;
- margin: -0.5em 0em;
- padding-bottom: 0.78571429em;
- padding-top: 0.78571429em;
- font-size: 1em;
-}
-
-/*----------------
-Grid / Container
------------------*/
-
-.ui.menu > .grid,
-.ui.menu > .container {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: inherit;
- -ms-flex-align: inherit;
- align-items: inherit;
- -webkit-box-orient: inherit;
- -webkit-box-direction: inherit;
- -ms-flex-direction: inherit;
- flex-direction: inherit;
-}
-
-/*--------------
-    Inputs
----------------*/
-
-.ui.menu .item > .input {
- width: 100%;
-}
-
-.ui.menu:not(.vertical) .item > .input {
- position: relative;
- top: 0em;
- margin: -0.5em 0em;
-}
-
-.ui.menu .item > .input input {
- font-size: 1em;
- padding-top: 0.57142857em;
- padding-bottom: 0.57142857em;
-}
-
-/*--------------
-    Header
----------------*/
-
-.ui.menu .header.item,
-.ui.vertical.menu .header.item {
- margin: 0em;
- background: '';
- text-transform: normal;
- font-weight: bold;
-}
-
-.ui.vertical.menu .item > .header:not(.ui) {
- margin: 0em 0em 0.5em;
- font-size: 1em;
- font-weight: bold;
-}
-
-/*--------------
-   Dropdowns
----------------*/
-
-/* Dropdown Icon */
-
-.ui.menu .item > i.dropdown.icon {
- padding: 0em;
- float: right;
- margin: 0em 0em 0em 1em;
-}
-
-/* Menu */
-
-.ui.menu .dropdown.item .menu {
- min-width: calc(100% - 1px);
- border-radius: 0em 0em 0.28571429rem 0.28571429rem;
- background: #FFFFFF;
- margin: 0em 0px 0px;
- -webkit-box-shadow: 0px 1px 3px 0px rgba(0, 0, 0, 0.08);
- box-shadow: 0px 1px 3px 0px rgba(0, 0, 0, 0.08);
- -webkit-box-orient: vertical !important;
- -webkit-box-direction: normal !important;
- -ms-flex-direction: column !important;
- flex-direction: column !important;
-}
-
-/* Menu Items */
-
-.ui.menu .ui.dropdown .menu > .item {
- margin: 0;
- text-align: left;
- font-size: 1em !important;
- padding: 0.78571429em 1.14285714em !important;
- background: transparent !important;
- color: rgba(0, 0, 0, 0.87) !important;
- text-transform: none !important;
- font-weight: normal !important;
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
- -webkit-transition: none !important;
- transition: none !important;
-}
-
-.ui.menu .ui.dropdown .menu > .item:hover {
- background: rgba(0, 0, 0, 0.05) !important;
- color: rgba(0, 0, 0, 0.95) !important;
-}
-
-.ui.menu .ui.dropdown .menu > .selected.item {
- background: rgba(0, 0, 0, 0.05) !important;
- color: rgba(0, 0, 0, 0.95) !important;
-}
-
-.ui.menu .ui.dropdown .menu > .active.item {
- background: rgba(0, 0, 0, 0.03) !important;
- font-weight: bold !important;
- color: rgba(0, 0, 0, 0.95) !important;
-}
-
-.ui.menu .ui.dropdown.item .menu .item:not(.filtered) {
- display: block;
-}
-
-.ui.menu .ui.dropdown .menu > .item .icon:not(.dropdown) {
- display: inline-block;
- font-size: 1em !important;
- float: none;
- margin: 0em 0.75em 0em 0em;
-}
-
-/* Secondary */
-
-.ui.secondary.menu .dropdown.item > .menu,
-.ui.text.menu .dropdown.item > .menu {
- border-radius: 0.28571429rem;
- margin-top: 0.35714286em;
-}
-
-/* Pointing */
-
-.ui.menu .pointing.dropdown.item .menu {
- margin-top: 0.75em;
-}
-
-/* Inverted */
-
-.ui.inverted.menu .search.dropdown.item > .search,
-.ui.inverted.menu .search.dropdown.item > .text {
- color: rgba(255, 255, 255, 0.9);
-}
-
-/* Vertical */
-
-.ui.vertical.menu .dropdown.item > .icon {
- float: right;
- content: "\f0da";
- margin-left: 1em;
-}
-
-.ui.vertical.menu .dropdown.item .menu {
- left: 100%;
- min-width: 0;
- margin: 0em 0em 0em 0em;
- -webkit-box-shadow: 0 1px 3px 0px rgba(0, 0, 0, 0.08);
- box-shadow: 0 1px 3px 0px rgba(0, 0, 0, 0.08);
- border-radius: 0em 0.28571429rem 0.28571429rem 0.28571429rem;
-}
-
-.ui.vertical.menu .dropdown.item.upward .menu {
- bottom: 0;
-}
-
-.ui.vertical.menu .dropdown.item:not(.upward) .menu {
- top: 0;
-}
-
-.ui.vertical.menu .active.dropdown.item {
- border-top-right-radius: 0em;
- border-bottom-right-radius: 0em;
-}
-
-.ui.vertical.menu .dropdown.active.item {
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-/* Evenly Divided */
-
-.ui.item.menu .dropdown .menu .item {
- width: 100%;
-}
-
-/*--------------
-    Labels
----------------*/
-
-.ui.menu .item > .label {
- background: #999999;
- color: #FFFFFF;
- margin-left: 1em;
- padding: 0.3em 0.78571429em;
-}
-
-.ui.vertical.menu .item > .label {
- background: #999999;
- color: #FFFFFF;
- margin-top: -0.15em;
- margin-bottom: -0.15em;
- padding: 0.3em 0.78571429em;
-}
-
-.ui.menu .item > .floating.label {
- padding: 0.3em 0.78571429em;
-}
-
-/*--------------
-    Images
----------------*/
-
-.ui.menu .item > img:not(.ui) {
- display: inline-block;
- vertical-align: middle;
- margin: -0.3em 0em;
- width: 2.5em;
-}
-
-.ui.vertical.menu .item > img:not(.ui):only-child {
- display: block;
- max-width: 100%;
- width: auto;
-}
-
-/*******************************
-         Coupling
-*******************************/
-
-/*--------------
-    List
----------------*/
-
-/* Menu divider shouldnt apply */
-
-.ui.menu .list .item:before {
- background: none !important;
-}
-
-/*--------------
-    Sidebar
----------------*/
-
-/* Show vertical dividers below last */
-
-.ui.vertical.sidebar.menu > .item:first-child:before {
- display: block !important;
-}
-
-.ui.vertical.sidebar.menu > .item::before {
- top: auto;
- bottom: 0px;
-}
-
-/*--------------
-   Container
----------------*/
-
-@media only screen and (max-width: 767px) {
- .ui.menu > .ui.container {
-   width: 100% !important;
-   margin-left: 0em !important;
-   margin-right: 0em !important;
- }
-}
-
-@media only screen and (min-width: 768px) {
- .ui.menu:not(.secondary):not(.text):not(.tabular):not(.borderless) > .container > .item:not(.right):not(.borderless):first-child {
-   border-left: 1px solid rgba(34, 36, 38, 0.1);
- }
-}
-
-/*******************************
-            States
-*******************************/
-
-/*--------------
-     Hover
----------------*/
-
-.ui.link.menu .item:hover,
-.ui.menu .dropdown.item:hover,
-.ui.menu .link.item:hover,
-.ui.menu a.item:hover {
- cursor: pointer;
- background: rgba(0, 0, 0, 0.03);
- color: rgba(0, 0, 0, 0.95);
-}
-
-/*--------------
-    Pressed
----------------*/
-
-.ui.link.menu .item:active,
-.ui.menu .link.item:active,
-.ui.menu a.item:active {
- background: rgba(0, 0, 0, 0.03);
- color: rgba(0, 0, 0, 0.95);
-}
-
-/*--------------
-    Active
----------------*/
-
-.ui.menu .active.item {
- background: rgba(0, 0, 0, 0.05);
- color: rgba(0, 0, 0, 0.95);
- font-weight: normal;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-.ui.menu .active.item > i.icon {
- opacity: 1;
-}
-
-/*--------------
- Active Hover
----------------*/
-
-.ui.menu .active.item:hover,
-.ui.vertical.menu .active.item:hover {
- background-color: rgba(0, 0, 0, 0.05);
- color: rgba(0, 0, 0, 0.95);
-}
-
-/*--------------
-    Disabled
----------------*/
-
-.ui.menu .item.disabled,
-.ui.menu .item.disabled:hover {
- cursor: default;
- background-color: transparent !important;
- color: rgba(40, 40, 40, 0.3);
-}
-
-/*******************************
-            Types
-*******************************/
-
-/*------------------
-Floated Menu / Item
--------------------*/
-
-/* Left Floated */
-
-.ui.menu:not(.vertical) .left.item,
-.ui.menu:not(.vertical) .left.menu {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- margin-right: auto !important;
-}
-
-/* Right Floated */
-
-.ui.menu:not(.vertical) .right.item,
-.ui.menu:not(.vertical) .right.menu {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- margin-left: auto !important;
-}
-
-/* Swapped Borders */
-
-.ui.menu .right.item::before,
-.ui.menu .right.menu > .item::before {
- right: auto;
- left: 0;
-}
-
-/*--------------
-   Vertical
----------------*/
-
-.ui.vertical.menu {
- display: block;
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
- background: #FFFFFF;
- -webkit-box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15);
- box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15);
-}
-
-/*--- Item ---*/
-
-.ui.vertical.menu .item {
- display: block;
- background: none;
- border-top: none;
- border-right: none;
-}
-
-.ui.vertical.menu > .item:first-child {
- border-radius: 0.28571429rem 0.28571429rem 0px 0px;
-}
-
-.ui.vertical.menu > .item:last-child {
- border-radius: 0px 0px 0.28571429rem 0.28571429rem;
-}
-
-/*--- Label ---*/
-
-.ui.vertical.menu .item > .label {
- float: right;
- text-align: center;
-}
-
-/*--- Icon ---*/
-
-.ui.vertical.menu .item > i.icon {
- width: 1.18em;
- float: right;
- margin: 0em 0em 0em 0.5em;
-}
-
-.ui.vertical.menu .item > .label + i.icon {
- float: none;
- margin: 0em 0.5em 0em 0em;
-}
-
-/*--- Border ---*/
-
-.ui.vertical.menu .item:before {
- position: absolute;
- content: '';
- top: 0%;
- left: 0px;
- width: 100%;
- height: 1px;
- background: rgba(34, 36, 38, 0.1);
-}
-
-.ui.vertical.menu .item:first-child:before {
- display: none !important;
-}
-
-/*--- Sub Menu ---*/
-
-.ui.vertical.menu .item > .menu {
- margin: 0.5em -1.14285714em 0em;
-}
-
-.ui.vertical.menu .menu .item {
- background: none;
- padding: 0.5em 1.33333333em;
- font-size: 0.85714286em;
- color: rgba(0, 0, 0, 0.5);
-}
-
-.ui.vertical.menu .item .menu a.item:hover,
-.ui.vertical.menu .item .menu .link.item:hover {
- color: rgba(0, 0, 0, 0.85);
-}
-
-.ui.vertical.menu .menu .item:before {
- display: none;
-}
-
-/* Vertical Active */
-
-.ui.vertical.menu .active.item {
- background: rgba(0, 0, 0, 0.05);
- border-radius: 0em;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-.ui.vertical.menu > .active.item:first-child {
- border-radius: 0.28571429rem 0.28571429rem 0em 0em;
-}
-
-.ui.vertical.menu > .active.item:last-child {
- border-radius: 0em 0em 0.28571429rem 0.28571429rem;
-}
-
-.ui.vertical.menu > .active.item:only-child {
- border-radius: 0.28571429rem;
-}
-
-.ui.vertical.menu .active.item .menu .active.item {
- border-left: none;
-}
-
-.ui.vertical.menu .item .menu .active.item {
- background-color: transparent;
- font-weight: bold;
- color: rgba(0, 0, 0, 0.95);
-}
-
-/*--------------
-    Tabular
----------------*/
-
-.ui.tabular.menu {
- border-radius: 0em;
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
- border: none;
- background: none transparent;
- border-bottom: 1px solid #D4D4D5;
-}
-
-.ui.tabular.fluid.menu {
- width: calc(100% +  2px ) !important;
-}
-
-.ui.tabular.menu .item {
- background: transparent;
- border-bottom: none;
- border-left: 1px solid transparent;
- border-right: 1px solid transparent;
- border-top: 2px solid transparent;
- padding: 0.92857143em 1.42857143em;
- color: rgba(0, 0, 0, 0.87);
-}
-
-.ui.tabular.menu .item:before {
- display: none;
-}
-
-/* Hover */
-
-.ui.tabular.menu .item:hover {
- background-color: transparent;
- color: rgba(0, 0, 0, 0.8);
-}
-
-/* Active */
-
-.ui.tabular.menu .active.item {
- background: none #FFFFFF;
- color: rgba(0, 0, 0, 0.95);
- border-top-width: 1px;
- border-color: #D4D4D5;
- font-weight: bold;
- margin-bottom: -1px;
- -webkit-box-shadow: none;
- box-shadow: none;
- border-radius: 0.28571429rem 0.28571429rem 0px 0px !important;
-}
-
-/* Coupling with segment for attachment */
-
-.ui.tabular.menu + .attached:not(.top).segment,
-.ui.tabular.menu + .attached:not(.top).segment + .attached:not(.top).segment {
- border-top: none;
- margin-left: 0px;
- margin-top: 0px;
- margin-right: 0px;
- width: 100%;
-}
-
-.top.attached.segment + .ui.bottom.tabular.menu {
- position: relative;
- width: calc(100% +  2px );
- left: -1px;
-}
-
-/* Bottom Vertical Tabular */
-
-.ui.bottom.tabular.menu {
- background: none transparent;
- border-radius: 0em;
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
- border-bottom: none;
- border-top: 1px solid #D4D4D5;
-}
-
-.ui.bottom.tabular.menu .item {
- background: none;
- border-left: 1px solid transparent;
- border-right: 1px solid transparent;
- border-bottom: 1px solid transparent;
- border-top: none;
-}
-
-.ui.bottom.tabular.menu .active.item {
- background: none #FFFFFF;
- color: rgba(0, 0, 0, 0.95);
- border-color: #D4D4D5;
- margin: -1px 0px 0px 0px;
- border-radius: 0px 0px 0.28571429rem 0.28571429rem !important;
-}
-
-/* Vertical Tabular (Left) */
-
-.ui.vertical.tabular.menu {
- background: none transparent;
- border-radius: 0em;
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
- border-bottom: none;
- border-right: 1px solid #D4D4D5;
-}
-
-.ui.vertical.tabular.menu .item {
- background: none;
- border-left: 1px solid transparent;
- border-bottom: 1px solid transparent;
- border-top: 1px solid transparent;
- border-right: none;
-}
-
-.ui.vertical.tabular.menu .active.item {
- background: none #FFFFFF;
- color: rgba(0, 0, 0, 0.95);
- border-color: #D4D4D5;
- margin: 0px -1px 0px 0px;
- border-radius: 0.28571429rem 0px 0px 0.28571429rem !important;
-}
-
-/* Vertical Right Tabular */
-
-.ui.vertical.right.tabular.menu {
- background: none transparent;
- border-radius: 0em;
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
- border-bottom: none;
- border-right: none;
- border-left: 1px solid #D4D4D5;
-}
-
-.ui.vertical.right.tabular.menu .item {
- background: none;
- border-right: 1px solid transparent;
- border-bottom: 1px solid transparent;
- border-top: 1px solid transparent;
- border-left: none;
-}
-
-.ui.vertical.right.tabular.menu .active.item {
- background: none #FFFFFF;
- color: rgba(0, 0, 0, 0.95);
- border-color: #D4D4D5;
- margin: 0px 0px 0px -1px;
- border-radius: 0px 0.28571429rem 0.28571429rem 0px !important;
-}
-
-/* Dropdown */
-
-.ui.tabular.menu .active.dropdown.item {
- margin-bottom: 0px;
- border-left: 1px solid transparent;
- border-right: 1px solid transparent;
- border-top: 2px solid transparent;
- border-bottom: none;
-}
-
-/*--------------
-  Pagination
----------------*/
-
-.ui.pagination.menu {
- margin: 0em;
- display: -webkit-inline-box;
- display: -ms-inline-flexbox;
- display: inline-flex;
- vertical-align: middle;
-}
-
-.ui.pagination.menu .item:last-child {
- border-radius: 0em 0.28571429rem 0.28571429rem 0em;
-}
-
-.ui.compact.menu .item:last-child {
- border-radius: 0em 0.28571429rem 0.28571429rem 0em;
-}
-
-.ui.pagination.menu .item:last-child:before {
- display: none;
-}
-
-.ui.pagination.menu .item {
- min-width: 3em;
- text-align: center;
-}
-
-.ui.pagination.menu .icon.item i.icon {
- vertical-align: top;
-}
-
-/* Active */
-
-.ui.pagination.menu .active.item {
- border-top: none;
- padding-top: 0.92857143em;
- background-color: rgba(0, 0, 0, 0.05);
- color: rgba(0, 0, 0, 0.95);
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-/*--------------
-  Secondary
----------------*/
-
-.ui.secondary.menu {
- background: none;
- margin-left: -0.35714286em;
- margin-right: -0.35714286em;
- border-radius: 0em;
- border: none;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-/* Item */
-
-.ui.secondary.menu .item {
- -ms-flex-item-align: center;
- align-self: center;
- -webkit-box-shadow: none;
- box-shadow: none;
- border: none;
- padding: 0.78571429em 0.92857143em;
- margin: 0em 0.35714286em;
- background: none;
- -webkit-transition: color 0.1s ease;
- transition: color 0.1s ease;
- border-radius: 0.28571429rem;
-}
-
-/* No Divider */
-
-.ui.secondary.menu .item:before {
- display: none !important;
-}
-
-/* Header */
-
-.ui.secondary.menu .header.item {
- border-radius: 0em;
- border-right: none;
- background: none transparent;
-}
-
-/* Image */
-
-.ui.secondary.menu .item > img:not(.ui) {
- margin: 0em;
-}
-
-/* Hover */
-
-.ui.secondary.menu .dropdown.item:hover,
-.ui.secondary.menu .link.item:hover,
-.ui.secondary.menu a.item:hover {
- background: rgba(0, 0, 0, 0.05);
- color: rgba(0, 0, 0, 0.95);
-}
-
-/* Active */
-
-.ui.secondary.menu .active.item {
- -webkit-box-shadow: none;
- box-shadow: none;
- background: rgba(0, 0, 0, 0.05);
- color: rgba(0, 0, 0, 0.95);
- border-radius: 0.28571429rem;
-}
-
-/* Active Hover */
-
-.ui.secondary.menu .active.item:hover {
- -webkit-box-shadow: none;
- box-shadow: none;
- background: rgba(0, 0, 0, 0.05);
- color: rgba(0, 0, 0, 0.95);
-}
-
-/* Inverted */
-
-.ui.secondary.inverted.menu .link.item,
-.ui.secondary.inverted.menu a.item {
- color: rgba(255, 255, 255, 0.7) !important;
-}
-
-.ui.secondary.inverted.menu .dropdown.item:hover,
-.ui.secondary.inverted.menu .link.item:hover,
-.ui.secondary.inverted.menu a.item:hover {
- background: rgba(255, 255, 255, 0.08);
- color: #ffffff !important;
-}
-
-.ui.secondary.inverted.menu .active.item {
- background: rgba(255, 255, 255, 0.15);
- color: #ffffff !important;
-}
-
-/* Fix item margins */
-
-.ui.secondary.item.menu {
- margin-left: 0em;
- margin-right: 0em;
-}
-
-.ui.secondary.item.menu .item:last-child {
- margin-right: 0em;
-}
-
-.ui.secondary.attached.menu {
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-/* Sub Menu */
-
-.ui.vertical.secondary.menu .item:not(.dropdown) > .menu {
- margin: 0em -0.92857143em;
-}
-
-.ui.vertical.secondary.menu .item:not(.dropdown) > .menu > .item {
- margin: 0em;
- padding: 0.5em 1.33333333em;
-}
-
-/*---------------------
-  Secondary Vertical
------------------------*/
-
-.ui.secondary.vertical.menu > .item {
- border: none;
- margin: 0em 0em 0.35714286em;
- border-radius: 0.28571429rem !important;
-}
-
-.ui.secondary.vertical.menu > .header.item {
- border-radius: 0em;
-}
-
-/* Sub Menu */
-
-.ui.vertical.secondary.menu .item > .menu .item {
- background-color: transparent;
-}
-
-/* Inverted */
-
-.ui.secondary.inverted.menu {
- background-color: transparent;
-}
-
-/*---------------------
-  Secondary Pointing
------------------------*/
-
-.ui.secondary.pointing.menu {
- margin-left: 0em;
- margin-right: 0em;
- border-bottom: 2px solid rgba(34, 36, 38, 0.15);
-}
-
-.ui.secondary.pointing.menu .item {
- border-bottom-color: transparent;
- border-bottom-style: solid;
- border-radius: 0em;
- -ms-flex-item-align: end;
- align-self: flex-end;
- margin: 0em 0em -2px;
- padding: 0.85714286em 1.14285714em;
- border-bottom-width: 2px;
- -webkit-transition: color 0.1s ease;
- transition: color 0.1s ease;
-}
-
-/* Item Types */
-
-.ui.secondary.pointing.menu .header.item {
- color: rgba(0, 0, 0, 0.85) !important;
-}
-
-.ui.secondary.pointing.menu .text.item {
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
-}
-
-.ui.secondary.pointing.menu .item:after {
- display: none;
-}
-
-/* Hover */
-
-.ui.secondary.pointing.menu .dropdown.item:hover,
-.ui.secondary.pointing.menu .link.item:hover,
-.ui.secondary.pointing.menu a.item:hover {
- background-color: transparent;
- color: rgba(0, 0, 0, 0.87);
-}
-
-/* Pressed */
-
-.ui.secondary.pointing.menu .dropdown.item:active,
-.ui.secondary.pointing.menu .link.item:active,
-.ui.secondary.pointing.menu a.item:active {
- background-color: transparent;
- border-color: rgba(34, 36, 38, 0.15);
-}
-
-/* Active */
-
-.ui.secondary.pointing.menu .active.item {
- background-color: transparent;
- -webkit-box-shadow: none;
- box-shadow: none;
- border-color: #1B1C1D;
- font-weight: bold;
- color: rgba(0, 0, 0, 0.95);
-}
-
-/* Active Hover */
-
-.ui.secondary.pointing.menu .active.item:hover {
- border-color: #1B1C1D;
- color: rgba(0, 0, 0, 0.95);
-}
-
-/* Active Dropdown */
-
-.ui.secondary.pointing.menu .active.dropdown.item {
- border-color: transparent;
-}
-
-/* Vertical Pointing */
-
-.ui.secondary.vertical.pointing.menu {
- border-bottom-width: 0px;
- border-right-width: 2px;
- border-right-style: solid;
- border-right-color: rgba(34, 36, 38, 0.15);
-}
-
-.ui.secondary.vertical.pointing.menu .item {
- border-bottom: none;
- border-right-style: solid;
- border-right-color: transparent;
- border-radius: 0em !important;
- margin: 0em -2px 0em 0em;
- border-right-width: 2px;
-}
-
-/* Vertical Active */
-
-.ui.secondary.vertical.pointing.menu .active.item {
- border-color: #1B1C1D;
-}
-
-/* Inverted */
-
-.ui.secondary.inverted.pointing.menu {
- border-color: rgba(255, 255, 255, 0.1);
-}
-
-.ui.secondary.inverted.pointing.menu {
- border-width: 2px;
- border-color: rgba(34, 36, 38, 0.15);
-}
-
-.ui.secondary.inverted.pointing.menu .item {
- color: rgba(255, 255, 255, 0.9);
-}
-
-.ui.secondary.inverted.pointing.menu .header.item {
- color: #FFFFFF !important;
-}
-
-/* Hover */
-
-.ui.secondary.inverted.pointing.menu .link.item:hover,
-.ui.secondary.inverted.pointing.menu a.item:hover {
- color: rgba(0, 0, 0, 0.95);
-}
-
-/* Active */
-
-.ui.secondary.inverted.pointing.menu .active.item {
- border-color: #FFFFFF;
- color: #ffffff;
-}
-
-/*--------------
-   Text Menu
----------------*/
-
-.ui.text.menu {
- background: none transparent;
- border-radius: 0px;
- -webkit-box-shadow: none;
- box-shadow: none;
- border: none;
- margin: 1em -0.5em;
-}
-
-.ui.text.menu .item {
- border-radius: 0px;
- -webkit-box-shadow: none;
- box-shadow: none;
- -ms-flex-item-align: center;
- align-self: center;
- margin: 0em 0em;
- padding: 0.35714286em 0.5em;
- font-weight: normal;
- color: rgba(0, 0, 0, 0.6);
- -webkit-transition: opacity 0.1s ease;
- transition: opacity 0.1s ease;
-}
-
-/* Border */
-
-.ui.text.menu .item:before,
-.ui.text.menu .menu .item:before {
- display: none !important;
-}
-
-/* Header */
-
-.ui.text.menu .header.item {
- background-color: transparent;
- opacity: 1;
- color: rgba(0, 0, 0, 0.85);
- font-size: 0.92857143em;
- text-transform: uppercase;
- font-weight: bold;
-}
-
-/* Image */
-
-.ui.text.menu .item > img:not(.ui) {
- margin: 0em;
-}
-
-/*--- fluid text ---*/
-
-.ui.text.item.menu .item {
- margin: 0em;
-}
-
-/*--- vertical text ---*/
-
-.ui.vertical.text.menu {
- margin: 1em 0em;
-}
-
-.ui.vertical.text.menu:first-child {
- margin-top: 0rem;
-}
-
-.ui.vertical.text.menu:last-child {
- margin-bottom: 0rem;
-}
-
-.ui.vertical.text.menu .item {
- margin: 0.57142857em 0em;
- padding-left: 0em;
- padding-right: 0em;
-}
-
-.ui.vertical.text.menu .item > i.icon {
- float: none;
- margin: 0em 0.35714286em 0em 0em;
-}
-
-.ui.vertical.text.menu .header.item {
- margin: 0.57142857em 0em 0.71428571em;
-}
-
-/* Vertical Sub Menu */
-
-.ui.vertical.text.menu .item:not(.dropdown) > .menu {
- margin: 0em;
-}
-
-.ui.vertical.text.menu .item:not(.dropdown) > .menu > .item {
- margin: 0em;
- padding: 0.5em 0em;
-}
-
-/*--- hover ---*/
-
-.ui.text.menu .item:hover {
- opacity: 1;
- background-color: transparent;
-}
-
-/*--- active ---*/
-
-.ui.text.menu .active.item {
- background-color: transparent;
- border: none;
- -webkit-box-shadow: none;
- box-shadow: none;
- font-weight: normal;
- color: rgba(0, 0, 0, 0.95);
-}
-
-/*--- active hover ---*/
-
-.ui.text.menu .active.item:hover {
- background-color: transparent;
-}
-
-/* Disable Bariations */
-
-.ui.text.pointing.menu .active.item:after {
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-.ui.text.attached.menu {
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-/* Inverted */
-
-.ui.inverted.text.menu,
-.ui.inverted.text.menu .item,
-.ui.inverted.text.menu .item:hover,
-.ui.inverted.text.menu .active.item {
- background-color: transparent !important;
-}
-
-/* Fluid */
-
-.ui.fluid.text.menu {
- margin-left: 0em;
- margin-right: 0em;
-}
-
-/*--------------
-   Icon Only
----------------*/
-
-/* Vertical Menu */
-
-.ui.vertical.icon.menu {
- display: inline-block;
- width: auto;
-}
-
-/* Item */
-
-.ui.icon.menu .item {
- height: auto;
- text-align: center;
- color: #1B1C1D;
-}
-
-/* Icon */
-
-.ui.icon.menu .item > .icon:not(.dropdown) {
- margin: 0;
- opacity: 1;
-}
-
-/* Icon Gylph */
-
-.ui.icon.menu .icon:before {
- opacity: 1;
-}
-
-/* (x) Item Icon */
-
-.ui.menu .icon.item > .icon {
- width: auto;
- margin: 0em auto;
-}
-
-/* Vertical Icon */
-
-.ui.vertical.icon.menu .item > .icon:not(.dropdown) {
- display: block;
- opacity: 1;
- margin: 0em auto;
- float: none;
-}
-
-/* Inverted */
-
-.ui.inverted.icon.menu .item {
- color: #FFFFFF;
-}
-
-/*--------------
-  Labeled Icon
----------------*/
-
-/* Menu */
-
-.ui.labeled.icon.menu {
- text-align: center;
-}
-
-/* Item */
-
-.ui.labeled.icon.menu .item {
- min-width: 6em;
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
-}
-
-/* Icon */
-
-.ui.labeled.icon.menu .item > .icon:not(.dropdown) {
- height: 1em;
- display: block;
- font-size: 1.71428571em !important;
- margin: 0em auto 0.5rem !important;
-}
-
-/* Fluid */
-
-.ui.fluid.labeled.icon.menu > .item {
- min-width: 0em;
-}
-
-/*******************************
-          Variations
-*******************************/
-
-/*--------------
-   Stackable
----------------*/
-
-@media only screen and (max-width: 767px) {
- .ui.stackable.menu {
-   -webkit-box-orient: vertical;
-   -webkit-box-direction: normal;
-   -ms-flex-direction: column;
-   flex-direction: column;
- }
-
- .ui.stackable.menu .item {
-   width: 100% !important;
- }
-
- .ui.stackable.menu .item:before {
-   position: absolute;
-   content: '';
-   top: auto;
-   bottom: 0px;
-   left: 0px;
-   width: 100%;
-   height: 1px;
-   background: rgba(34, 36, 38, 0.1);
- }
-
- .ui.stackable.menu .left.menu,
- .ui.stackable.menu .left.item {
-   margin-right: 0 !important;
- }
-
- .ui.stackable.menu .right.menu,
- .ui.stackable.menu .right.item {
-   margin-left: 0 !important;
- }
-
- .ui.stackable.menu .right.menu,
- .ui.stackable.menu .left.menu {
-   -webkit-box-orient: vertical;
-   -webkit-box-direction: normal;
-   -ms-flex-direction: column;
-   flex-direction: column;
- }
-}
-
-/*--------------
-    Colors
----------------*/
-
-/*--- Standard Colors  ---*/
-
-.ui.menu .red.active.item,
-.ui.red.menu .active.item {
- border-color: #DB2828 !important;
- color: #DB2828 !important;
-}
-
-.ui.menu .orange.active.item,
-.ui.orange.menu .active.item {
- border-color: #F2711C !important;
- color: #F2711C !important;
-}
-
-.ui.menu .yellow.active.item,
-.ui.yellow.menu .active.item {
- border-color: #FBBD08 !important;
- color: #FBBD08 !important;
-}
-
-.ui.menu .olive.active.item,
-.ui.olive.menu .active.item {
- border-color: #B5CC18 !important;
- color: #B5CC18 !important;
-}
-
-.ui.menu .green.active.item,
-.ui.green.menu .active.item {
- border-color: #21BA45 !important;
- color: #21BA45 !important;
-}
-
-.ui.menu .teal.active.item,
-.ui.teal.menu .active.item {
- border-color: #00B5AD !important;
- color: #00B5AD !important;
-}
-
-.ui.menu .blue.active.item,
-.ui.blue.menu .active.item {
- border-color: #2185D0 !important;
- color: #2185D0 !important;
-}
-
-.ui.menu .violet.active.item,
-.ui.violet.menu .active.item {
- border-color: #6435C9 !important;
- color: #6435C9 !important;
-}
-
-.ui.menu .purple.active.item,
-.ui.purple.menu .active.item {
- border-color: #A333C8 !important;
- color: #A333C8 !important;
-}
-
-.ui.menu .pink.active.item,
-.ui.pink.menu .active.item {
- border-color: #E03997 !important;
- color: #E03997 !important;
-}
-
-.ui.menu .brown.active.item,
-.ui.brown.menu .active.item {
- border-color: #A5673F !important;
- color: #A5673F !important;
-}
-
-.ui.menu .grey.active.item,
-.ui.grey.menu .active.item {
- border-color: #767676 !important;
- color: #767676 !important;
-}
-
-/*--------------
-   Inverted
----------------*/
-
-.ui.inverted.menu {
- border: 0px solid transparent;
- background: #1B1C1D;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-/* Menu Item */
-
-.ui.inverted.menu .item,
-.ui.inverted.menu .item > a:not(.ui) {
- background: transparent;
- color: rgba(255, 255, 255, 0.9);
-}
-
-.ui.inverted.menu .item.menu {
- background: transparent;
-}
-
-/*--- Border ---*/
-
-.ui.inverted.menu .item:before {
- background: rgba(255, 255, 255, 0.08);
-}
-
-.ui.vertical.inverted.menu .item:before {
- background: rgba(255, 255, 255, 0.08);
-}
-
-/* Sub Menu */
-
-.ui.vertical.inverted.menu .menu .item,
-.ui.vertical.inverted.menu .menu .item a:not(.ui) {
- color: rgba(255, 255, 255, 0.5);
-}
-
-/* Header */
-
-.ui.inverted.menu .header.item {
- margin: 0em;
- background: transparent;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-/* Disabled */
-
-.ui.inverted.menu .item.disabled,
-.ui.inverted.menu .item.disabled:hover {
- color: rgba(225, 225, 225, 0.3);
-}
-
-/*--- Hover ---*/
-
-.ui.link.inverted.menu .item:hover,
-.ui.inverted.menu .dropdown.item:hover,
-.ui.inverted.menu .link.item:hover,
-.ui.inverted.menu a.item:hover {
- background: rgba(255, 255, 255, 0.08);
- color: #ffffff;
-}
-
-.ui.vertical.inverted.menu .item .menu a.item:hover,
-.ui.vertical.inverted.menu .item .menu .link.item:hover {
- background: transparent;
- color: #ffffff;
-}
-
-/*--- Pressed ---*/
-
-.ui.inverted.menu a.item:active,
-.ui.inverted.menu .link.item:active {
- background: rgba(255, 255, 255, 0.08);
- color: #ffffff;
-}
-
-/*--- Active ---*/
-
-.ui.inverted.menu .active.item {
- background: rgba(255, 255, 255, 0.15);
- color: #ffffff !important;
-}
-
-.ui.inverted.vertical.menu .item .menu .active.item {
- background: transparent;
- color: #FFFFFF;
-}
-
-.ui.inverted.pointing.menu .active.item:after {
- background: #3D3E3F !important;
- margin: 0em !important;
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
- border: none !important;
-}
-
-/*--- Active Hover ---*/
-
-.ui.inverted.menu .active.item:hover {
- background: rgba(255, 255, 255, 0.15);
- color: #FFFFFF !important;
-}
-
-.ui.inverted.pointing.menu .active.item:hover:after {
- background: #3D3E3F !important;
-}
-
-/*--------------
-    Floated
----------------*/
-
-.ui.floated.menu {
- float: left;
- margin: 0rem 0.5rem 0rem 0rem;
-}
-
-.ui.floated.menu .item:last-child:before {
- display: none;
-}
-
-.ui.right.floated.menu {
- float: right;
- margin: 0rem 0rem 0rem 0.5rem;
-}
-
-/*--------------
-   Inverted
----------------*/
-
-/* Red */
-
-.ui.inverted.menu .red.active.item,
-.ui.inverted.red.menu {
- background-color: #DB2828;
-}
-
-.ui.inverted.red.menu .item:before {
- background-color: rgba(34, 36, 38, 0.1);
-}
-
-.ui.inverted.red.menu .active.item {
- background-color: rgba(0, 0, 0, 0.1) !important;
-}
-
-/* Orange */
-
-.ui.inverted.menu .orange.active.item,
-.ui.inverted.orange.menu {
- background-color: #F2711C;
-}
-
-.ui.inverted.orange.menu .item:before {
- background-color: rgba(34, 36, 38, 0.1);
-}
-
-.ui.inverted.orange.menu .active.item {
- background-color: rgba(0, 0, 0, 0.1) !important;
-}
-
-/* Yellow */
-
-.ui.inverted.menu .yellow.active.item,
-.ui.inverted.yellow.menu {
- background-color: #FBBD08;
-}
-
-.ui.inverted.yellow.menu .item:before {
- background-color: rgba(34, 36, 38, 0.1);
-}
-
-.ui.inverted.yellow.menu .active.item {
- background-color: rgba(0, 0, 0, 0.1) !important;
-}
-
-/* Olive */
-
-.ui.inverted.menu .olive.active.item,
-.ui.inverted.olive.menu {
- background-color: #B5CC18;
-}
-
-.ui.inverted.olive.menu .item:before {
- background-color: rgba(34, 36, 38, 0.1);
-}
-
-.ui.inverted.olive.menu .active.item {
- background-color: rgba(0, 0, 0, 0.1) !important;
-}
-
-/* Green */
-
-.ui.inverted.menu .green.active.item,
-.ui.inverted.green.menu {
- background-color: #21BA45;
-}
-
-.ui.inverted.green.menu .item:before {
- background-color: rgba(34, 36, 38, 0.1);
-}
-
-.ui.inverted.green.menu .active.item {
- background-color: rgba(0, 0, 0, 0.1) !important;
-}
-
-/* Teal */
-
-.ui.inverted.menu .teal.active.item,
-.ui.inverted.teal.menu {
- background-color: #00B5AD;
-}
-
-.ui.inverted.teal.menu .item:before {
- background-color: rgba(34, 36, 38, 0.1);
-}
-
-.ui.inverted.teal.menu .active.item {
- background-color: rgba(0, 0, 0, 0.1) !important;
-}
-
-/* Blue */
-
-.ui.inverted.menu .blue.active.item,
-.ui.inverted.blue.menu {
- background-color: #2185D0;
-}
-
-.ui.inverted.blue.menu .item:before {
- background-color: rgba(34, 36, 38, 0.1);
-}
-
-.ui.inverted.blue.menu .active.item {
- background-color: rgba(0, 0, 0, 0.1) !important;
-}
-
-/* Violet */
-
-.ui.inverted.menu .violet.active.item,
-.ui.inverted.violet.menu {
- background-color: #6435C9;
-}
-
-.ui.inverted.violet.menu .item:before {
- background-color: rgba(34, 36, 38, 0.1);
-}
-
-.ui.inverted.violet.menu .active.item {
- background-color: rgba(0, 0, 0, 0.1) !important;
-}
-
-/* Purple */
-
-.ui.inverted.menu .purple.active.item,
-.ui.inverted.purple.menu {
- background-color: #A333C8;
-}
-
-.ui.inverted.purple.menu .item:before {
- background-color: rgba(34, 36, 38, 0.1);
-}
-
-.ui.inverted.purple.menu .active.item {
- background-color: rgba(0, 0, 0, 0.1) !important;
-}
-
-/* Pink */
-
-.ui.inverted.menu .pink.active.item,
-.ui.inverted.pink.menu {
- background-color: #E03997;
-}
-
-.ui.inverted.pink.menu .item:before {
- background-color: rgba(34, 36, 38, 0.1);
-}
-
-.ui.inverted.pink.menu .active.item {
- background-color: rgba(0, 0, 0, 0.1) !important;
-}
-
-/* Brown */
-
-.ui.inverted.menu .brown.active.item,
-.ui.inverted.brown.menu {
- background-color: #A5673F;
-}
-
-.ui.inverted.brown.menu .item:before {
- background-color: rgba(34, 36, 38, 0.1);
-}
-
-.ui.inverted.brown.menu .active.item {
- background-color: rgba(0, 0, 0, 0.1) !important;
-}
-
-/* Grey */
-
-.ui.inverted.menu .grey.active.item,
-.ui.inverted.grey.menu {
- background-color: #767676;
-}
-
-.ui.inverted.grey.menu .item:before {
- background-color: rgba(34, 36, 38, 0.1);
-}
-
-.ui.inverted.grey.menu .active.item {
- background-color: rgba(0, 0, 0, 0.1) !important;
-}
-
-/*--------------
-    Fitted
----------------*/
-
-.ui.fitted.menu .item,
-.ui.fitted.menu .item .menu .item,
-.ui.menu .fitted.item {
- padding: 0em;
-}
-
-.ui.horizontally.fitted.menu .item,
-.ui.horizontally.fitted.menu .item .menu .item,
-.ui.menu .horizontally.fitted.item {
- padding-top: 0.92857143em;
- padding-bottom: 0.92857143em;
-}
-
-.ui.vertically.fitted.menu .item,
-.ui.vertically.fitted.menu .item .menu .item,
-.ui.menu .vertically.fitted.item {
- padding-left: 1.14285714em;
- padding-right: 1.14285714em;
-}
-
-/*--------------
-  Borderless
----------------*/
-
-.ui.borderless.menu .item:before,
-.ui.borderless.menu .item .menu .item:before,
-.ui.menu .borderless.item:before {
- background: none !important;
-}
-
-/*-------------------
-      Compact
---------------------*/
-
-.ui.compact.menu {
- display: -webkit-inline-box;
- display: -ms-inline-flexbox;
- display: inline-flex;
- margin: 0em;
- vertical-align: middle;
-}
-
-.ui.compact.vertical.menu {
- display: inline-block;
-}
-
-.ui.compact.menu .item:last-child {
- border-radius: 0em 0.28571429rem 0.28571429rem 0em;
-}
-
-.ui.compact.menu .item:last-child:before {
- display: none;
-}
-
-.ui.compact.vertical.menu {
- width: auto !important;
-}
-
-.ui.compact.vertical.menu .item:last-child::before {
- display: block;
-}
-
-/*-------------------
-       Fluid
---------------------*/
-
-.ui.menu.fluid,
-.ui.vertical.menu.fluid {
- width: 100% !important;
-}
-
-/*-------------------
-     Evenly Sized
---------------------*/
-
-.ui.item.menu,
-.ui.item.menu .item {
- width: 100%;
- padding-left: 0em !important;
- padding-right: 0em !important;
- margin-left: 0em !important;
- margin-right: 0em !important;
- text-align: center;
- -webkit-box-pack: center;
- -ms-flex-pack: center;
- justify-content: center;
-}
-
-.ui.attached.item.menu {
- margin: 0em -1px !important;
-}
-
-.ui.item.menu .item:last-child:before {
- display: none;
-}
-
-.ui.menu.two.item .item {
- width: 50%;
-}
-
-.ui.menu.three.item .item {
- width: 33.333%;
-}
-
-.ui.menu.four.item .item {
- width: 25%;
-}
-
-.ui.menu.five.item .item {
- width: 20%;
-}
-
-.ui.menu.six.item .item {
- width: 16.666%;
-}
-
-.ui.menu.seven.item .item {
- width: 14.285%;
-}
-
-.ui.menu.eight.item .item {
- width: 12.500%;
-}
-
-.ui.menu.nine.item .item {
- width: 11.11%;
-}
-
-.ui.menu.ten.item .item {
- width: 10.0%;
-}
-
-.ui.menu.eleven.item .item {
- width: 9.09%;
-}
-
-.ui.menu.twelve.item .item {
- width: 8.333%;
-}
-
-/*--------------
-    Fixed
----------------*/
-
-.ui.menu.fixed {
- position: fixed;
- z-index: 101;
- margin: 0em;
- width: 100%;
-}
-
-.ui.menu.fixed,
-.ui.menu.fixed .item:first-child,
-.ui.menu.fixed .item:last-child {
- border-radius: 0px !important;
-}
-
-.ui.fixed.menu,
-.ui[class*="top fixed"].menu {
- top: 0px;
- left: 0px;
- right: auto;
- bottom: auto;
-}
-
-.ui[class*="top fixed"].menu {
- border-top: none;
- border-left: none;
- border-right: none;
-}
-
-.ui[class*="right fixed"].menu {
- border-top: none;
- border-bottom: none;
- border-right: none;
- top: 0px;
- right: 0px;
- left: auto;
- bottom: auto;
- width: auto;
- height: 100%;
-}
-
-.ui[class*="bottom fixed"].menu {
- border-bottom: none;
- border-left: none;
- border-right: none;
- bottom: 0px;
- left: 0px;
- top: auto;
- right: auto;
-}
-
-.ui[class*="left fixed"].menu {
- border-top: none;
- border-bottom: none;
- border-left: none;
- top: 0px;
- left: 0px;
- right: auto;
- bottom: auto;
- width: auto;
- height: 100%;
-}
-
-/* Coupling with Grid */
-
-.ui.fixed.menu + .ui.grid {
- padding-top: 2.75rem;
-}
-
-/*-------------------
-      Pointing
---------------------*/
-
-.ui.pointing.menu .item:after {
- visibility: hidden;
- position: absolute;
- content: '';
- top: 100%;
- left: 50%;
- -webkit-transform: translateX(-50%) translateY(-50%) rotate(45deg);
- transform: translateX(-50%) translateY(-50%) rotate(45deg);
- background: none;
- margin: 0.5px 0em 0em;
- width: 0.57142857em;
- height: 0.57142857em;
- border: none;
- border-bottom: 1px solid #D4D4D5;
- border-right: 1px solid #D4D4D5;
- z-index: 2;
- -webkit-transition: background 0.1s ease;
- transition: background 0.1s ease;
-}
-
-.ui.vertical.pointing.menu .item:after {
- position: absolute;
- top: 50%;
- right: 0%;
- bottom: auto;
- left: auto;
- -webkit-transform: translateX(50%) translateY(-50%) rotate(45deg);
- transform: translateX(50%) translateY(-50%) rotate(45deg);
- margin: 0em -0.5px 0em 0em;
- border: none;
- border-top: 1px solid #D4D4D5;
- border-right: 1px solid #D4D4D5;
-}
-
-/* Active */
-
-.ui.pointing.menu .active.item:after {
- visibility: visible;
-}
-
-.ui.pointing.menu .active.dropdown.item:after {
- visibility: hidden;
-}
-
-/* Don't double up pointers */
-
-.ui.pointing.menu .dropdown.active.item:after,
-.ui.pointing.menu .active.item .menu .active.item:after {
- display: none;
-}
-
-/* Colors */
-
-.ui.pointing.menu .active.item:hover:after {
- background-color: #F2F2F2;
-}
-
-.ui.pointing.menu .active.item:after {
- background-color: #F2F2F2;
-}
-
-.ui.pointing.menu .active.item:hover:after {
- background-color: #F2F2F2;
-}
-
-.ui.vertical.pointing.menu .active.item:hover:after {
- background-color: #F2F2F2;
-}
-
-.ui.vertical.pointing.menu .active.item:after {
- background-color: #F2F2F2;
-}
-
-.ui.vertical.pointing.menu .menu .active.item:after {
- background-color: #FFFFFF;
-}
-
-/*--------------
-   Attached
----------------*/
-
-/* Middle */
-
-.ui.attached.menu {
- top: 0px;
- bottom: 0px;
- border-radius: 0px;
- margin: 0em -1px;
- width: calc(100% +  2px );
- max-width: calc(100% +  2px );
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-.ui.attached + .ui.attached.menu:not(.top) {
- border-top: none;
-}
-
-/* Top */
-
-.ui[class*="top attached"].menu {
- bottom: 0px;
- margin-bottom: 0em;
- top: 0px;
- margin-top: 1rem;
- border-radius: 0.28571429rem 0.28571429rem 0em 0em;
-}
-
-.ui.menu[class*="top attached"]:first-child {
- margin-top: 0em;
-}
-
-/* Bottom */
-
-.ui[class*="bottom attached"].menu {
- bottom: 0px;
- margin-top: 0em;
- top: 0px;
- margin-bottom: 1rem;
- -webkit-box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15), none;
- box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15), none;
- border-radius: 0em 0em 0.28571429rem 0.28571429rem;
-}
-
-.ui[class*="bottom attached"].menu:last-child {
- margin-bottom: 0em;
-}
-
-/* Attached Menu Item */
-
-.ui.top.attached.menu > .item:first-child {
- border-radius: 0.28571429rem 0em 0em 0em;
-}
-
-.ui.bottom.attached.menu > .item:first-child {
- border-radius: 0em 0em 0em 0.28571429rem;
-}
-
-/* Tabular Attached */
-
-.ui.attached.menu:not(.tabular) {
- border: 1px solid #D4D4D5;
-}
-
-.ui.attached.inverted.menu {
- border: none;
-}
-
-.ui.attached.tabular.menu {
- margin-left: 0;
- margin-right: 0;
- width: 100%;
-}
-
-/*--------------
-    Sizes
----------------*/
-
-/* Mini */
-
-.ui.mini.menu {
- font-size: 0.78571429rem;
-}
-
-.ui.mini.vertical.menu {
- width: 9rem;
-}
-
-/* Tiny */
-
-.ui.tiny.menu {
- font-size: 0.85714286rem;
-}
-
-.ui.tiny.vertical.menu {
- width: 11rem;
-}
-
-/* Small */
-
-.ui.small.menu {
- font-size: 0.92857143rem;
-}
-
-.ui.small.vertical.menu {
- width: 13rem;
-}
-
-/* Medium */
-
-.ui.menu {
- font-size: 1rem;
-}
-
-.ui.vertical.menu {
- width: 15rem;
-}
-
-/* Large */
-
-.ui.large.menu {
- font-size: 1.07142857rem;
-}
-
-.ui.large.vertical.menu {
- width: 18rem;
-}
-
-/* Huge */
-
-.ui.huge.menu {
- font-size: 1.21428571rem;
-}
-
-.ui.huge.vertical.menu {
- width: 22rem;
-}
-
-/* Big */
-
-.ui.big.menu {
- font-size: 1.14285714rem;
-}
-
-.ui.big.vertical.menu {
- width: 20rem;
-}
-
-/* Massive */
-
-.ui.massive.menu {
- font-size: 1.28571429rem;
-}
-
-.ui.massive.vertical.menu {
- width: 25rem;
-}
-
-/*******************************
-        Theme Overrides
-*******************************/
-
-/*******************************
-        Site Overrides
-*******************************/
-/*!
-* # Semantic UI 2.3.0 - Message
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-           Message
-*******************************/
-
-.ui.message {
- position: relative;
- min-height: 1em;
- margin: 1em 0em;
- background: #F8F8F9;
- padding: 1em 1.5em;
- line-height: 1.4285em;
- color: rgba(0, 0, 0, 0.87);
- -webkit-transition: opacity 0.1s ease, color 0.1s ease, background 0.1s ease, -webkit-box-shadow 0.1s ease;
- transition: opacity 0.1s ease, color 0.1s ease, background 0.1s ease, -webkit-box-shadow 0.1s ease;
- transition: opacity 0.1s ease, color 0.1s ease, background 0.1s ease, box-shadow 0.1s ease;
- transition: opacity 0.1s ease, color 0.1s ease, background 0.1s ease, box-shadow 0.1s ease, -webkit-box-shadow 0.1s ease;
- border-radius: 0.28571429rem;
- -webkit-box-shadow: 0px 0px 0px 1px rgba(34, 36, 38, 0.22) inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
- box-shadow: 0px 0px 0px 1px rgba(34, 36, 38, 0.22) inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
-}
-
-.ui.message:first-child {
- margin-top: 0em;
-}
-
-.ui.message:last-child {
- margin-bottom: 0em;
-}
-
-/*--------------
-    Content
----------------*/
-
-/* Header */
-
-.ui.message .header {
- display: block;
- font-family: 'Lato', 'Helvetica Neue', Arial, Helvetica, sans-serif;
- font-weight: bold;
- margin: -0.14285714em 0em 0rem 0em;
-}
-
-/* Default font size */
-
-.ui.message .header:not(.ui) {
- font-size: 1.14285714em;
-}
-
-/* Paragraph */
-
-.ui.message p {
- opacity: 0.85;
- margin: 0.75em 0em;
-}
-
-.ui.message p:first-child {
- margin-top: 0em;
-}
-
-.ui.message p:last-child {
- margin-bottom: 0em;
-}
-
-.ui.message .header + p {
- margin-top: 0.25em;
-}
-
-/* List */
-
-.ui.message .list:not(.ui) {
- text-align: left;
- padding: 0em;
- opacity: 0.85;
- list-style-position: inside;
- margin: 0.5em 0em 0em;
-}
-
-.ui.message .list:not(.ui):first-child {
- margin-top: 0em;
-}
-
-.ui.message .list:not(.ui):last-child {
- margin-bottom: 0em;
-}
-
-.ui.message .list:not(.ui) li {
- position: relative;
- list-style-type: none;
- margin: 0em 0em 0.3em 1em;
- padding: 0em;
-}
-
-.ui.message .list:not(.ui) li:before {
- position: absolute;
- content: '•';
- left: -1em;
- height: 100%;
- vertical-align: baseline;
-}
-
-.ui.message .list:not(.ui) li:last-child {
- margin-bottom: 0em;
-}
-
-/* Icon */
-
-.ui.message > .icon {
- margin-right: 0.6em;
-}
-
-/* Close Icon */
-
-.ui.message > .close.icon {
- cursor: pointer;
- position: absolute;
- margin: 0em;
- top: 0.78575em;
- right: 0.5em;
- opacity: 0.7;
- -webkit-transition: opacity 0.1s ease;
- transition: opacity 0.1s ease;
-}
-
-.ui.message > .close.icon:hover {
- opacity: 1;
-}
-
-/* First / Last Element */
-
-.ui.message > :first-child {
- margin-top: 0em;
-}
-
-.ui.message > :last-child {
- margin-bottom: 0em;
-}
-
-/*******************************
-           Coupling
-*******************************/
-
-.ui.dropdown .menu > .message {
- margin: 0px -1px;
-}
-
-/*******************************
-           States
-*******************************/
-
-/*--------------
-   Visible
----------------*/
-
-.ui.visible.visible.visible.visible.message {
- display: block;
-}
-
-.ui.icon.visible.visible.visible.visible.message {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
-}
-
-/*--------------
-    Hidden
----------------*/
-
-.ui.hidden.hidden.hidden.hidden.message {
- display: none;
-}
-
-/*******************************
-           Variations
-*******************************/
-
-/*--------------
-   Compact
----------------*/
-
-.ui.compact.message {
- display: inline-block;
-}
-
-.ui.compact.icon.message {
- display: -webkit-inline-box;
- display: -ms-inline-flexbox;
- display: inline-flex;
-}
-
-/*--------------
-   Attached
----------------*/
-
-.ui.attached.message {
- margin-bottom: -1px;
- border-radius: 0.28571429rem 0.28571429rem 0em 0em;
- -webkit-box-shadow: 0em 0em 0em 1px rgba(34, 36, 38, 0.15) inset;
- box-shadow: 0em 0em 0em 1px rgba(34, 36, 38, 0.15) inset;
- margin-left: -1px;
- margin-right: -1px;
-}
-
-.ui.attached + .ui.attached.message:not(.top):not(.bottom) {
- margin-top: -1px;
- border-radius: 0em;
-}
-
-.ui.bottom.attached.message {
- margin-top: -1px;
- border-radius: 0em 0em 0.28571429rem 0.28571429rem;
- -webkit-box-shadow: 0em 0em 0em 1px rgba(34, 36, 38, 0.15) inset, 0px 1px 2px 0 rgba(34, 36, 38, 0.15);
- box-shadow: 0em 0em 0em 1px rgba(34, 36, 38, 0.15) inset, 0px 1px 2px 0 rgba(34, 36, 38, 0.15);
-}
-
-.ui.bottom.attached.message:not(:last-child) {
- margin-bottom: 1em;
-}
-
-.ui.attached.icon.message {
- width: auto;
-}
-
-/*--------------
-     Icon
----------------*/
-
-.ui.icon.message {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- width: 100%;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
-}
-
-.ui.icon.message > .icon:not(.close) {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 auto;
- flex: 0 0 auto;
- width: auto;
- line-height: 1;
- vertical-align: middle;
- font-size: 3em;
- opacity: 0.8;
-}
-
-.ui.icon.message > .content {
- display: block;
- -webkit-box-flex: 1;
- -ms-flex: 1 1 auto;
- flex: 1 1 auto;
- vertical-align: middle;
-}
-
-.ui.icon.message .icon:not(.close) + .content {
- padding-left: 0rem;
-}
-
-.ui.icon.message .circular.icon {
- width: 1em;
-}
-
-/*--------------
-   Floating
----------------*/
-
-.ui.floating.message {
- -webkit-box-shadow: 0px 0px 0px 1px rgba(34, 36, 38, 0.22) inset, 0px 2px 4px 0px rgba(34, 36, 38, 0.12), 0px 2px 10px 0px rgba(34, 36, 38, 0.15);
- box-shadow: 0px 0px 0px 1px rgba(34, 36, 38, 0.22) inset, 0px 2px 4px 0px rgba(34, 36, 38, 0.12), 0px 2px 10px 0px rgba(34, 36, 38, 0.15);
-}
-
-/*--------------
-    Colors
----------------*/
-
-.ui.black.message {
- background-color: #1B1C1D;
- color: rgba(255, 255, 255, 0.9);
-}
-
-/*--------------
-    Types
----------------*/
-
-/* Positive */
-
-.ui.positive.message {
- background-color: #FCFFF5;
- color: #2C662D;
-}
-
-.ui.positive.message,
-.ui.attached.positive.message {
- -webkit-box-shadow: 0px 0px 0px 1px #A3C293 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
- box-shadow: 0px 0px 0px 1px #A3C293 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
-}
-
-.ui.positive.message .header {
- color: #1A531B;
-}
-
-/* Negative */
-
-.ui.negative.message {
- background-color: #FFF6F6;
- color: #9F3A38;
-}
-
-.ui.negative.message,
-.ui.attached.negative.message {
- -webkit-box-shadow: 0px 0px 0px 1px #E0B4B4 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
- box-shadow: 0px 0px 0px 1px #E0B4B4 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
-}
-
-.ui.negative.message .header {
- color: #912D2B;
-}
-
-/* Info */
-
-.ui.info.message {
- background-color: #F8FFFF;
- color: #276F86;
-}
-
-.ui.info.message,
-.ui.attached.info.message {
- -webkit-box-shadow: 0px 0px 0px 1px #A9D5DE inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
- box-shadow: 0px 0px 0px 1px #A9D5DE inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
-}
-
-.ui.info.message .header {
- color: #0E566C;
-}
-
-/* Warning */
-
-.ui.warning.message {
- background-color: #FFFAF3;
- color: #573A08;
-}
-
-.ui.warning.message,
-.ui.attached.warning.message {
- -webkit-box-shadow: 0px 0px 0px 1px #C9BA9B inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
- box-shadow: 0px 0px 0px 1px #C9BA9B inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
-}
-
-.ui.warning.message .header {
- color: #794B02;
-}
-
-/* Error */
-
-.ui.error.message {
- background-color: #FFF6F6;
- color: #9F3A38;
-}
-
-.ui.error.message,
-.ui.attached.error.message {
- -webkit-box-shadow: 0px 0px 0px 1px #E0B4B4 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
- box-shadow: 0px 0px 0px 1px #E0B4B4 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
-}
-
-.ui.error.message .header {
- color: #912D2B;
-}
-
-/* Success */
-
-.ui.success.message {
- background-color: #FCFFF5;
- color: #2C662D;
-}
-
-.ui.success.message,
-.ui.attached.success.message {
- -webkit-box-shadow: 0px 0px 0px 1px #A3C293 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
- box-shadow: 0px 0px 0px 1px #A3C293 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
-}
-
-.ui.success.message .header {
- color: #1A531B;
-}
-
-/* Colors */
-
-.ui.inverted.message,
-.ui.black.message {
- background-color: #1B1C1D;
- color: rgba(255, 255, 255, 0.9);
-}
-
-.ui.red.message {
- background-color: #FFE8E6;
- color: #DB2828;
- -webkit-box-shadow: 0px 0px 0px 1px #DB2828 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
- box-shadow: 0px 0px 0px 1px #DB2828 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
-}
-
-.ui.red.message .header {
- color: #c82121;
-}
-
-.ui.orange.message {
- background-color: #FFEDDE;
- color: #F2711C;
- -webkit-box-shadow: 0px 0px 0px 1px #F2711C inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
- box-shadow: 0px 0px 0px 1px #F2711C inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
-}
-
-.ui.orange.message .header {
- color: #e7640d;
-}
-
-.ui.yellow.message {
- background-color: #FFF8DB;
- color: #B58105;
- -webkit-box-shadow: 0px 0px 0px 1px #B58105 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
- box-shadow: 0px 0px 0px 1px #B58105 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
-}
-
-.ui.yellow.message .header {
- color: #9c6f04;
-}
-
-.ui.olive.message {
- background-color: #FBFDEF;
- color: #8ABC1E;
- -webkit-box-shadow: 0px 0px 0px 1px #8ABC1E inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
- box-shadow: 0px 0px 0px 1px #8ABC1E inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
-}
-
-.ui.olive.message .header {
- color: #7aa61a;
-}
-
-.ui.green.message {
- background-color: #E5F9E7;
- color: #1EBC30;
- -webkit-box-shadow: 0px 0px 0px 1px #1EBC30 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
- box-shadow: 0px 0px 0px 1px #1EBC30 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
-}
-
-.ui.green.message .header {
- color: #1aa62a;
-}
-
-.ui.teal.message {
- background-color: #E1F7F7;
- color: #10A3A3;
- -webkit-box-shadow: 0px 0px 0px 1px #10A3A3 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
- box-shadow: 0px 0px 0px 1px #10A3A3 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
-}
-
-.ui.teal.message .header {
- color: #0e8c8c;
-}
-
-.ui.blue.message {
- background-color: #DFF0FF;
- color: #2185D0;
- -webkit-box-shadow: 0px 0px 0px 1px #2185D0 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
- box-shadow: 0px 0px 0px 1px #2185D0 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
-}
-
-.ui.blue.message .header {
- color: #1e77ba;
-}
-
-.ui.violet.message {
- background-color: #EAE7FF;
- color: #6435C9;
- -webkit-box-shadow: 0px 0px 0px 1px #6435C9 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
- box-shadow: 0px 0px 0px 1px #6435C9 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
-}
-
-.ui.violet.message .header {
- color: #5a30b5;
-}
-
-.ui.purple.message {
- background-color: #F6E7FF;
- color: #A333C8;
- -webkit-box-shadow: 0px 0px 0px 1px #A333C8 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
- box-shadow: 0px 0px 0px 1px #A333C8 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
-}
-
-.ui.purple.message .header {
- color: #922eb4;
-}
-
-.ui.pink.message {
- background-color: #FFE3FB;
- color: #E03997;
- -webkit-box-shadow: 0px 0px 0px 1px #E03997 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
- box-shadow: 0px 0px 0px 1px #E03997 inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
-}
-
-.ui.pink.message .header {
- color: #dd238b;
-}
-
-.ui.brown.message {
- background-color: #F1E2D3;
- color: #A5673F;
- -webkit-box-shadow: 0px 0px 0px 1px #A5673F inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
- box-shadow: 0px 0px 0px 1px #A5673F inset, 0px 0px 0px 0px rgba(0, 0, 0, 0);
-}
-
-.ui.brown.message .header {
- color: #935b38;
-}
-
-/*--------------
-    Sizes
----------------*/
-
-.ui.mini.message {
- font-size: 0.78571429em;
-}
-
-.ui.tiny.message {
- font-size: 0.85714286em;
-}
-
-.ui.small.message {
- font-size: 0.92857143em;
-}
-
-.ui.message {
- font-size: 1em;
-}
-
-.ui.large.message {
- font-size: 1.14285714em;
-}
-
-.ui.big.message {
- font-size: 1.28571429em;
-}
-
-.ui.huge.message {
- font-size: 1.42857143em;
-}
-
-.ui.massive.message {
- font-size: 1.71428571em;
-}
-
-/*******************************
-        Theme Overrides
-*******************************/
-
-/*******************************
-       Site Overrides
-*******************************/
-/*!
-* # Semantic UI 2.3.0 - Table
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-            Table
-*******************************/
-
-/* Prototype */
-
-.ui.table {
- width: 100%;
- background: #FFFFFF;
- margin: 1em 0em;
- border: 1px solid rgba(34, 36, 38, 0.15);
- -webkit-box-shadow: none;
- box-shadow: none;
- border-radius: 0.28571429rem;
- text-align: left;
- color: rgba(0, 0, 0, 0.87);
- border-collapse: separate;
- border-spacing: 0px;
-}
-
-.ui.table:first-child {
- margin-top: 0em;
-}
-
-.ui.table:last-child {
- margin-bottom: 0em;
-}
-
-/*******************************
-            Parts
-*******************************/
-
-/* Table Content */
-
-.ui.table th,
-.ui.table td {
- -webkit-transition: background 0.1s ease, color 0.1s ease;
- transition: background 0.1s ease, color 0.1s ease;
-}
-
-/* Headers */
-
-.ui.table thead {
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-.ui.table thead th {
- cursor: auto;
- background: #F9FAFB;
- text-align: inherit;
- color: rgba(0, 0, 0, 0.87);
- padding: 0.92857143em 0.78571429em;
- vertical-align: inherit;
- font-style: none;
- font-weight: bold;
- text-transform: none;
- border-bottom: 1px solid rgba(34, 36, 38, 0.1);
- border-left: none;
-}
-
-.ui.table thead tr > th:first-child {
- border-left: none;
-}
-
-.ui.table thead tr:first-child > th:first-child {
- border-radius: 0.28571429rem 0em 0em 0em;
-}
-
-.ui.table thead tr:first-child > th:last-child {
- border-radius: 0em 0.28571429rem 0em 0em;
-}
-
-.ui.table thead tr:first-child > th:only-child {
- border-radius: 0.28571429rem 0.28571429rem 0em 0em;
-}
-
-/* Footer */
-
-.ui.table tfoot {
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-.ui.table tfoot th {
- cursor: auto;
- border-top: 1px solid rgba(34, 36, 38, 0.15);
- background: #F9FAFB;
- text-align: inherit;
- color: rgba(0, 0, 0, 0.87);
- padding: 0.78571429em 0.78571429em;
- vertical-align: middle;
- font-style: normal;
- font-weight: normal;
- text-transform: none;
-}
-
-.ui.table tfoot tr > th:first-child {
- border-left: none;
-}
-
-.ui.table tfoot tr:first-child > th:first-child {
- border-radius: 0em 0em 0em 0.28571429rem;
-}
-
-.ui.table tfoot tr:first-child > th:last-child {
- border-radius: 0em 0em 0.28571429rem 0em;
-}
-
-.ui.table tfoot tr:first-child > th:only-child {
- border-radius: 0em 0em 0.28571429rem 0.28571429rem;
-}
-
-/* Table Row */
-
-.ui.table tr td {
- border-top: 1px solid rgba(34, 36, 38, 0.1);
-}
-
-.ui.table tr:first-child td {
- border-top: none;
-}
-
-/* Repeated tbody */
-
-.ui.table tbody + tbody tr:first-child td {
- border-top: 1px solid rgba(34, 36, 38, 0.1);
-}
-
-/* Table Cells */
-
-.ui.table td {
- padding: 0.78571429em 0.78571429em;
- text-align: inherit;
-}
-
-/* Icons */
-
-.ui.table > .icon {
- vertical-align: baseline;
-}
-
-.ui.table > .icon:only-child {
- margin: 0em;
-}
-
-/* Table Segment */
-
-.ui.table.segment {
- padding: 0em;
-}
-
-.ui.table.segment:after {
- display: none;
-}
-
-.ui.table.segment.stacked:after {
- display: block;
-}
-
-/* Responsive */
-
-@media only screen and (max-width: 767px) {
- .ui.table:not(.unstackable) {
-   width: 100%;
- }
-
- .ui.table:not(.unstackable) tbody,
- .ui.table:not(.unstackable) tr,
- .ui.table:not(.unstackable) tr > th,
- .ui.table:not(.unstackable) tr > td {
-   width: auto !important;
-   display: block !important;
- }
-
- .ui.table:not(.unstackable) {
-   padding: 0em;
- }
-
- .ui.table:not(.unstackable) thead {
-   display: block;
- }
-
- .ui.table:not(.unstackable) tfoot {
-   display: block;
- }
-
- .ui.table:not(.unstackable) tr {
-   padding-top: 1em;
-   padding-bottom: 1em;
-   -webkit-box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.1) inset !important;
-   box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.1) inset !important;
- }
-
- .ui.table:not(.unstackable) tr > th,
- .ui.table:not(.unstackable) tr > td {
-   background: none;
-   border: none !important;
-   padding: 0.25em 0.75em !important;
-   -webkit-box-shadow: none !important;
-   box-shadow: none !important;
- }
-
- .ui.table:not(.unstackable) th:first-child,
- .ui.table:not(.unstackable) td:first-child {
-   font-weight: bold;
- }
-
- /* Definition Table */
-
- .ui.definition.table:not(.unstackable) thead th:first-child {
-   -webkit-box-shadow: none !important;
-   box-shadow: none !important;
- }
-}
-
-/*******************************
-           Coupling
-*******************************/
-
-/* UI Image */
-
-.ui.table th .image,
-.ui.table th .image img,
-.ui.table td .image,
-.ui.table td .image img {
- max-width: none;
-}
-
-/*******************************
-            Types
-*******************************/
-
-/*--------------
-   Complex
----------------*/
-
-.ui.structured.table {
- border-collapse: collapse;
-}
-
-.ui.structured.table thead th {
- border-left: none;
- border-right: none;
-}
-
-.ui.structured.sortable.table thead th {
- border-left: 1px solid rgba(34, 36, 38, 0.15);
- border-right: 1px solid rgba(34, 36, 38, 0.15);
-}
-
-.ui.structured.basic.table th {
- border-left: none;
- border-right: none;
-}
-
-.ui.structured.celled.table tr th,
-.ui.structured.celled.table tr td {
- border-left: 1px solid rgba(34, 36, 38, 0.1);
- border-right: 1px solid rgba(34, 36, 38, 0.1);
-}
-
-/*--------------
-  Definition
----------------*/
-
-.ui.definition.table thead:not(.full-width) th:first-child {
- pointer-events: none;
- background: transparent;
- font-weight: normal;
- color: rgba(0, 0, 0, 0.4);
- -webkit-box-shadow: -1px -1px 0px 1px #FFFFFF;
- box-shadow: -1px -1px 0px 1px #FFFFFF;
-}
-
-.ui.definition.table tfoot:not(.full-width) th:first-child {
- pointer-events: none;
- background: transparent;
- font-weight: rgba(0, 0, 0, 0.4);
- color: normal;
- -webkit-box-shadow: 1px 1px 0px 1px #FFFFFF;
- box-shadow: 1px 1px 0px 1px #FFFFFF;
-}
-
-/* Remove Border */
-
-.ui.celled.definition.table thead:not(.full-width) th:first-child {
- -webkit-box-shadow: 0px -1px 0px 1px #FFFFFF;
- box-shadow: 0px -1px 0px 1px #FFFFFF;
-}
-
-.ui.celled.definition.table tfoot:not(.full-width) th:first-child {
- -webkit-box-shadow: 0px 1px 0px 1px #FFFFFF;
- box-shadow: 0px 1px 0px 1px #FFFFFF;
-}
-
-/* Highlight Defining Column */
-
-.ui.definition.table tr td:first-child:not(.ignored),
-.ui.definition.table tr td.definition {
- background: rgba(0, 0, 0, 0.03);
- font-weight: bold;
- color: rgba(0, 0, 0, 0.95);
- text-transform: '';
- -webkit-box-shadow: '';
- box-shadow: '';
- text-align: '';
- font-size: 1em;
- padding-left: '';
- padding-right: '';
-}
-
-/* Fix 2nd Column */
-
-.ui.definition.table thead:not(.full-width) th:nth-child(2) {
- border-left: 1px solid rgba(34, 36, 38, 0.15);
-}
-
-.ui.definition.table tfoot:not(.full-width) th:nth-child(2) {
- border-left: 1px solid rgba(34, 36, 38, 0.15);
-}
-
-.ui.definition.table td:nth-child(2) {
- border-left: 1px solid rgba(34, 36, 38, 0.15);
-}
-
-/*******************************
-            States
-*******************************/
-
-/*--------------
-   Positive
----------------*/
-
-.ui.table tr.positive,
-.ui.table td.positive {
- -webkit-box-shadow: 0px 0px 0px #A3C293 inset;
- box-shadow: 0px 0px 0px #A3C293 inset;
-}
-
-.ui.table tr.positive,
-.ui.table td.positive {
- background: #FCFFF5 !important;
- color: #2C662D !important;
-}
-
-/*--------------
-    Negative
----------------*/
-
-.ui.table tr.negative,
-.ui.table td.negative {
- -webkit-box-shadow: 0px 0px 0px #E0B4B4 inset;
- box-shadow: 0px 0px 0px #E0B4B4 inset;
-}
-
-.ui.table tr.negative,
-.ui.table td.negative {
- background: #FFF6F6 !important;
- color: #9F3A38 !important;
-}
-
-/*--------------
-     Error
----------------*/
-
-.ui.table tr.error,
-.ui.table td.error {
- -webkit-box-shadow: 0px 0px 0px #E0B4B4 inset;
- box-shadow: 0px 0px 0px #E0B4B4 inset;
-}
-
-.ui.table tr.error,
-.ui.table td.error {
- background: #FFF6F6 !important;
- color: #9F3A38 !important;
-}
-
-/*--------------
-    Warning
----------------*/
-
-.ui.table tr.warning,
-.ui.table td.warning {
- -webkit-box-shadow: 0px 0px 0px #C9BA9B inset;
- box-shadow: 0px 0px 0px #C9BA9B inset;
-}
-
-.ui.table tr.warning,
-.ui.table td.warning {
- background: #FFFAF3 !important;
- color: #573A08 !important;
-}
-
-/*--------------
-    Active
----------------*/
-
-.ui.table tr.active,
-.ui.table td.active {
- -webkit-box-shadow: 0px 0px 0px rgba(0, 0, 0, 0.87) inset;
- box-shadow: 0px 0px 0px rgba(0, 0, 0, 0.87) inset;
-}
-
-.ui.table tr.active,
-.ui.table td.active {
- background: #E0E0E0 !important;
- color: rgba(0, 0, 0, 0.87) !important;
-}
-
-/*--------------
-    Disabled
----------------*/
-
-.ui.table tr.disabled td,
-.ui.table tr td.disabled,
-.ui.table tr.disabled:hover,
-.ui.table tr:hover td.disabled {
- pointer-events: none;
- color: rgba(40, 40, 40, 0.3);
-}
-
-/*******************************
-         Variations
-*******************************/
-
-/*--------------
-   Stackable
----------------*/
-
-@media only screen and (max-width: 991px) {
- .ui[class*="tablet stackable"].table,
- .ui[class*="tablet stackable"].table tbody,
- .ui[class*="tablet stackable"].table tr,
- .ui[class*="tablet stackable"].table tr > th,
- .ui[class*="tablet stackable"].table tr > td {
-   width: 100% !important;
-   display: block !important;
- }
-
- .ui[class*="tablet stackable"].table {
-   padding: 0em;
- }
-
- .ui[class*="tablet stackable"].table thead {
-   display: block;
- }
-
- .ui[class*="tablet stackable"].table tfoot {
-   display: block;
- }
-
- .ui[class*="tablet stackable"].table tr {
-   padding-top: 1em;
-   padding-bottom: 1em;
-   -webkit-box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.1) inset !important;
-   box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.1) inset !important;
- }
-
- .ui[class*="tablet stackable"].table tr > th,
- .ui[class*="tablet stackable"].table tr > td {
-   background: none;
-   border: none !important;
-   padding: 0.25em 0.75em;
-   -webkit-box-shadow: none !important;
-   box-shadow: none !important;
- }
-
- /* Definition Table */
-
- .ui.definition[class*="tablet stackable"].table thead th:first-child {
-   -webkit-box-shadow: none !important;
-   box-shadow: none !important;
- }
-}
-
-/*--------------
-Text Alignment
----------------*/
-
-.ui.table[class*="left aligned"],
-.ui.table [class*="left aligned"] {
- text-align: left;
-}
-
-.ui.table[class*="center aligned"],
-.ui.table [class*="center aligned"] {
- text-align: center;
-}
-
-.ui.table[class*="right aligned"],
-.ui.table [class*="right aligned"] {
- text-align: right;
-}
-
-/*------------------
-Vertical Alignment
-------------------*/
-
-.ui.table[class*="top aligned"],
-.ui.table [class*="top aligned"] {
- vertical-align: top;
-}
-
-.ui.table[class*="middle aligned"],
-.ui.table [class*="middle aligned"] {
- vertical-align: middle;
-}
-
-.ui.table[class*="bottom aligned"],
-.ui.table [class*="bottom aligned"] {
- vertical-align: bottom;
-}
-
-/*--------------
-   Collapsing
----------------*/
-
-.ui.table th.collapsing,
-.ui.table td.collapsing {
- width: 1px;
- white-space: nowrap;
-}
-
-/*--------------
-    Fixed
----------------*/
-
-.ui.fixed.table {
- table-layout: fixed;
-}
-
-.ui.fixed.table th,
-.ui.fixed.table td {
- overflow: hidden;
- text-overflow: ellipsis;
-}
-
-/*--------------
-  Selectable
----------------*/
-
-.ui.selectable.table tbody tr:hover,
-.ui.table tbody tr td.selectable:hover {
- background: rgba(0, 0, 0, 0.05) !important;
- color: rgba(0, 0, 0, 0.95) !important;
-}
-
-.ui.selectable.inverted.table tbody tr:hover,
-.ui.inverted.table tbody tr td.selectable:hover {
- background: rgba(255, 255, 255, 0.08) !important;
- color: #ffffff !important;
-}
-
-/* Selectable Cell Link */
-
-.ui.table tbody tr td.selectable {
- padding: 0em;
-}
-
-.ui.table tbody tr td.selectable > a:not(.ui) {
- display: block;
- color: inherit;
- padding: 0.78571429em 0.78571429em;
-}
-
-/* Other States */
-
-.ui.selectable.table tr.error:hover,
-.ui.table tr td.selectable.error:hover,
-.ui.selectable.table tr:hover td.error {
- background: #ffe7e7 !important;
- color: #943634 !important;
-}
-
-.ui.selectable.table tr.warning:hover,
-.ui.table tr td.selectable.warning:hover,
-.ui.selectable.table tr:hover td.warning {
- background: #fff4e4 !important;
- color: #493107 !important;
-}
-
-.ui.selectable.table tr.active:hover,
-.ui.table tr td.selectable.active:hover,
-.ui.selectable.table tr:hover td.active {
- background: #E0E0E0 !important;
- color: rgba(0, 0, 0, 0.87) !important;
-}
-
-.ui.selectable.table tr.positive:hover,
-.ui.table tr td.selectable.positive:hover,
-.ui.selectable.table tr:hover td.positive {
- background: #f7ffe6 !important;
- color: #275b28 !important;
-}
-
-.ui.selectable.table tr.negative:hover,
-.ui.table tr td.selectable.negative:hover,
-.ui.selectable.table tr:hover td.negative {
- background: #ffe7e7 !important;
- color: #943634 !important;
-}
-
-/*-------------------
-     Attached
---------------------*/
-
-/* Middle */
-
-.ui.attached.table {
- top: 0px;
- bottom: 0px;
- border-radius: 0px;
- margin: 0em -1px;
- width: calc(100% +  2px );
- max-width: calc(100% +  2px );
- -webkit-box-shadow: none;
- box-shadow: none;
- border: 1px solid #D4D4D5;
-}
-
-.ui.attached + .ui.attached.table:not(.top) {
- border-top: none;
-}
-
-/* Top */
-
-.ui[class*="top attached"].table {
- bottom: 0px;
- margin-bottom: 0em;
- top: 0px;
- margin-top: 1em;
- border-radius: 0.28571429rem 0.28571429rem 0em 0em;
-}
-
-.ui.table[class*="top attached"]:first-child {
- margin-top: 0em;
-}
-
-/* Bottom */
-
-.ui[class*="bottom attached"].table {
- bottom: 0px;
- margin-top: 0em;
- top: 0px;
- margin-bottom: 1em;
- -webkit-box-shadow: none, none;
- box-shadow: none, none;
- border-radius: 0em 0em 0.28571429rem 0.28571429rem;
-}
-
-.ui[class*="bottom attached"].table:last-child {
- margin-bottom: 0em;
-}
-
-/*--------------
-    Striped
----------------*/
-
-/* Table Striping */
-
-.ui.striped.table > tr:nth-child(2n),
-.ui.striped.table tbody tr:nth-child(2n) {
- background-color: rgba(0, 0, 50, 0.02);
-}
-
-/* Stripes */
-
-.ui.inverted.striped.table > tr:nth-child(2n),
-.ui.inverted.striped.table tbody tr:nth-child(2n) {
- background-color: rgba(255, 255, 255, 0.05);
-}
-
-/* Allow striped active hover */
-
-.ui.striped.selectable.selectable.selectable.table tbody tr.active:hover {
- background: #EFEFEF !important;
- color: rgba(0, 0, 0, 0.95) !important;
-}
-
-/*--------------
-  Single Line
----------------*/
-
-.ui.table[class*="single line"],
-.ui.table [class*="single line"] {
- white-space: nowrap;
-}
-
-.ui.table[class*="single line"],
-.ui.table [class*="single line"] {
- white-space: nowrap;
-}
-
-/*-------------------
-      Colors
---------------------*/
-
-/* Red */
-
-.ui.red.table {
- border-top: 0.2em solid #DB2828;
-}
-
-.ui.inverted.red.table {
- background-color: #DB2828 !important;
- color: #FFFFFF !important;
-}
-
-/* Orange */
-
-.ui.orange.table {
- border-top: 0.2em solid #F2711C;
-}
-
-.ui.inverted.orange.table {
- background-color: #F2711C !important;
- color: #FFFFFF !important;
-}
-
-/* Yellow */
-
-.ui.yellow.table {
- border-top: 0.2em solid #FBBD08;
-}
-
-.ui.inverted.yellow.table {
- background-color: #FBBD08 !important;
- color: #FFFFFF !important;
-}
-
-/* Olive */
-
-.ui.olive.table {
- border-top: 0.2em solid #B5CC18;
-}
-
-.ui.inverted.olive.table {
- background-color: #B5CC18 !important;
- color: #FFFFFF !important;
-}
-
-/* Green */
-
-.ui.green.table {
- border-top: 0.2em solid #21BA45;
-}
-
-.ui.inverted.green.table {
- background-color: #21BA45 !important;
- color: #FFFFFF !important;
-}
-
-/* Teal */
-
-.ui.teal.table {
- border-top: 0.2em solid #00B5AD;
-}
-
-.ui.inverted.teal.table {
- background-color: #00B5AD !important;
- color: #FFFFFF !important;
-}
-
-/* Blue */
-
-.ui.blue.table {
- border-top: 0.2em solid #2185D0;
-}
-
-.ui.inverted.blue.table {
- background-color: #2185D0 !important;
- color: #FFFFFF !important;
-}
-
-/* Violet */
-
-.ui.violet.table {
- border-top: 0.2em solid #6435C9;
-}
-
-.ui.inverted.violet.table {
- background-color: #6435C9 !important;
- color: #FFFFFF !important;
-}
-
-/* Purple */
-
-.ui.purple.table {
- border-top: 0.2em solid #A333C8;
-}
-
-.ui.inverted.purple.table {
- background-color: #A333C8 !important;
- color: #FFFFFF !important;
-}
-
-/* Pink */
-
-.ui.pink.table {
- border-top: 0.2em solid #E03997;
-}
-
-.ui.inverted.pink.table {
- background-color: #E03997 !important;
- color: #FFFFFF !important;
-}
-
-/* Brown */
-
-.ui.brown.table {
- border-top: 0.2em solid #A5673F;
-}
-
-.ui.inverted.brown.table {
- background-color: #A5673F !important;
- color: #FFFFFF !important;
-}
-
-/* Grey */
-
-.ui.grey.table {
- border-top: 0.2em solid #767676;
-}
-
-.ui.inverted.grey.table {
- background-color: #767676 !important;
- color: #FFFFFF !important;
-}
-
-/* Black */
-
-.ui.black.table {
- border-top: 0.2em solid #1B1C1D;
-}
-
-.ui.inverted.black.table {
- background-color: #1B1C1D !important;
- color: #FFFFFF !important;
-}
-
-/*--------------
- Column Count
----------------*/
-
-/* Grid Based */
-
-.ui.one.column.table td {
- width: 100%;
-}
-
-.ui.two.column.table td {
- width: 50%;
-}
-
-.ui.three.column.table td {
- width: 33.33333333%;
-}
-
-.ui.four.column.table td {
- width: 25%;
-}
-
-.ui.five.column.table td {
- width: 20%;
-}
-
-.ui.six.column.table td {
- width: 16.66666667%;
-}
-
-.ui.seven.column.table td {
- width: 14.28571429%;
-}
-
-.ui.eight.column.table td {
- width: 12.5%;
-}
-
-.ui.nine.column.table td {
- width: 11.11111111%;
-}
-
-.ui.ten.column.table td {
- width: 10%;
-}
-
-.ui.eleven.column.table td {
- width: 9.09090909%;
-}
-
-.ui.twelve.column.table td {
- width: 8.33333333%;
-}
-
-.ui.thirteen.column.table td {
- width: 7.69230769%;
-}
-
-.ui.fourteen.column.table td {
- width: 7.14285714%;
-}
-
-.ui.fifteen.column.table td {
- width: 6.66666667%;
-}
-
-.ui.sixteen.column.table td {
- width: 6.25%;
-}
-
-/* Column Width */
-
-.ui.table th.one.wide,
-.ui.table td.one.wide {
- width: 6.25%;
-}
-
-.ui.table th.two.wide,
-.ui.table td.two.wide {
- width: 12.5%;
-}
-
-.ui.table th.three.wide,
-.ui.table td.three.wide {
- width: 18.75%;
-}
-
-.ui.table th.four.wide,
-.ui.table td.four.wide {
- width: 25%;
-}
-
-.ui.table th.five.wide,
-.ui.table td.five.wide {
- width: 31.25%;
-}
-
-.ui.table th.six.wide,
-.ui.table td.six.wide {
- width: 37.5%;
-}
-
-.ui.table th.seven.wide,
-.ui.table td.seven.wide {
- width: 43.75%;
-}
-
-.ui.table th.eight.wide,
-.ui.table td.eight.wide {
- width: 50%;
-}
-
-.ui.table th.nine.wide,
-.ui.table td.nine.wide {
- width: 56.25%;
-}
-
-.ui.table th.ten.wide,
-.ui.table td.ten.wide {
- width: 62.5%;
-}
-
-.ui.table th.eleven.wide,
-.ui.table td.eleven.wide {
- width: 68.75%;
-}
-
-.ui.table th.twelve.wide,
-.ui.table td.twelve.wide {
- width: 75%;
-}
-
-.ui.table th.thirteen.wide,
-.ui.table td.thirteen.wide {
- width: 81.25%;
-}
-
-.ui.table th.fourteen.wide,
-.ui.table td.fourteen.wide {
- width: 87.5%;
-}
-
-.ui.table th.fifteen.wide,
-.ui.table td.fifteen.wide {
- width: 93.75%;
-}
-
-.ui.table th.sixteen.wide,
-.ui.table td.sixteen.wide {
- width: 100%;
-}
-
-/*--------------
-   Sortable
----------------*/
-
-.ui.sortable.table thead th {
- cursor: pointer;
- white-space: nowrap;
- border-left: 1px solid rgba(34, 36, 38, 0.15);
- color: rgba(0, 0, 0, 0.87);
-}
-
-.ui.sortable.table thead th:first-child {
- border-left: none;
-}
-
-.ui.sortable.table thead th.sorted,
-.ui.sortable.table thead th.sorted:hover {
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-
-.ui.sortable.table thead th:after {
- display: none;
- font-style: normal;
- font-weight: normal;
- text-decoration: inherit;
- content: '';
- height: 1em;
- width: auto;
- opacity: 0.8;
- margin: 0em 0em 0em 0.5em;
- font-family: 'Icons';
-}
-
-.ui.sortable.table thead th.ascending:after {
- content: '\f0d8';
-}
-
-.ui.sortable.table thead th.descending:after {
- content: '\f0d7';
-}
-
-/* Hover */
-
-.ui.sortable.table th.disabled:hover {
- cursor: auto;
- color: rgba(40, 40, 40, 0.3);
-}
-
-.ui.sortable.table thead th:hover {
- background: rgba(0, 0, 0, 0.05);
- color: rgba(0, 0, 0, 0.8);
-}
-
-/* Sorted */
-
-.ui.sortable.table thead th.sorted {
- background: rgba(0, 0, 0, 0.05);
- color: rgba(0, 0, 0, 0.95);
-}
-
-.ui.sortable.table thead th.sorted:after {
- display: inline-block;
-}
-
-/* Sorted Hover */
-
-.ui.sortable.table thead th.sorted:hover {
- background: rgba(0, 0, 0, 0.05);
- color: rgba(0, 0, 0, 0.95);
-}
-
-/* Inverted */
-
-.ui.inverted.sortable.table thead th.sorted {
- background: rgba(255, 255, 255, 0.15) -webkit-gradient(linear, left top, left bottom, from(transparent), to(rgba(0, 0, 0, 0.05)));
- background: rgba(255, 255, 255, 0.15) -webkit-linear-gradient(transparent, rgba(0, 0, 0, 0.05));
- background: rgba(255, 255, 255, 0.15) linear-gradient(transparent, rgba(0, 0, 0, 0.05));
- color: #ffffff;
-}
-
-.ui.inverted.sortable.table thead th:hover {
- background: rgba(255, 255, 255, 0.08) -webkit-gradient(linear, left top, left bottom, from(transparent), to(rgba(0, 0, 0, 0.05)));
- background: rgba(255, 255, 255, 0.08) -webkit-linear-gradient(transparent, rgba(0, 0, 0, 0.05));
- background: rgba(255, 255, 255, 0.08) linear-gradient(transparent, rgba(0, 0, 0, 0.05));
- color: #ffffff;
-}
-
-.ui.inverted.sortable.table thead th {
- border-left-color: transparent;
- border-right-color: transparent;
-}
-
-/*--------------
-   Inverted
----------------*/
-
-/* Text Color */
-
-.ui.inverted.table {
- background: #333333;
- color: rgba(255, 255, 255, 0.9);
- border: none;
-}
-
-.ui.inverted.table th {
- background-color: rgba(0, 0, 0, 0.15);
- border-color: rgba(255, 255, 255, 0.1) !important;
- color: rgba(255, 255, 255, 0.9) !important;
-}
-
-.ui.inverted.table tr td {
- border-color: rgba(255, 255, 255, 0.1) !important;
-}
-
-.ui.inverted.table tr.disabled td,
-.ui.inverted.table tr td.disabled,
-.ui.inverted.table tr.disabled:hover td,
-.ui.inverted.table tr:hover td.disabled {
- pointer-events: none;
- color: rgba(225, 225, 225, 0.3);
-}
-
-/* Definition */
-
-.ui.inverted.definition.table tfoot:not(.full-width) th:first-child,
-.ui.inverted.definition.table thead:not(.full-width) th:first-child {
- background: #FFFFFF;
-}
-
-.ui.inverted.definition.table tr td:first-child {
- background: rgba(255, 255, 255, 0.02);
- color: #ffffff;
-}
-
-/*--------------
-  Collapsing
----------------*/
-
-.ui.collapsing.table {
- width: auto;
-}
-
-/*--------------
-     Basic
----------------*/
-
-.ui.basic.table {
- background: transparent;
- border: 1px solid rgba(34, 36, 38, 0.15);
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-.ui.basic.table thead,
-.ui.basic.table tfoot {
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-.ui.basic.table th {
- background: transparent;
- border-left: none;
-}
-
-.ui.basic.table tbody tr {
- border-bottom: 1px solid rgba(0, 0, 0, 0.1);
-}
-
-.ui.basic.table td {
- background: transparent;
-}
-
-.ui.basic.striped.table tbody tr:nth-child(2n) {
- background-color: rgba(0, 0, 0, 0.05) !important;
-}
-
-/* Very Basic */
-
-.ui[class*="very basic"].table {
- border: none;
-}
-
-.ui[class*="very basic"].table:not(.sortable):not(.striped) th,
-.ui[class*="very basic"].table:not(.sortable):not(.striped) td {
- padding: '';
-}
-
-.ui[class*="very basic"].table:not(.sortable):not(.striped) th:first-child,
-.ui[class*="very basic"].table:not(.sortable):not(.striped) td:first-child {
- padding-left: 0em;
-}
-
-.ui[class*="very basic"].table:not(.sortable):not(.striped) th:last-child,
-.ui[class*="very basic"].table:not(.sortable):not(.striped) td:last-child {
- padding-right: 0em;
-}
-
-.ui[class*="very basic"].table:not(.sortable):not(.striped) thead tr:first-child th {
- padding-top: 0em;
-}
-
-/*--------------
-    Celled
----------------*/
-
-.ui.celled.table tr th,
-.ui.celled.table tr td {
- border-left: 1px solid rgba(34, 36, 38, 0.1);
-}
-
-.ui.celled.table tr th:first-child,
-.ui.celled.table tr td:first-child {
- border-left: none;
-}
-
-/*--------------
-    Padded
----------------*/
-
-.ui.padded.table th {
- padding-left: 1em;
- padding-right: 1em;
-}
-
-.ui.padded.table th,
-.ui.padded.table td {
- padding: 1em 1em;
-}
-
-/* Very */
-
-.ui[class*="very padded"].table th {
- padding-left: 1.5em;
- padding-right: 1.5em;
-}
-
-.ui[class*="very padded"].table td {
- padding: 1.5em 1.5em;
-}
-
-/*--------------
-    Compact
----------------*/
-
-.ui.compact.table th {
- padding-left: 0.7em;
- padding-right: 0.7em;
-}
-
-.ui.compact.table td {
- padding: 0.5em 0.7em;
-}
-
-/* Very */
-
-.ui[class*="very compact"].table th {
- padding-left: 0.6em;
- padding-right: 0.6em;
-}
-
-.ui[class*="very compact"].table td {
- padding: 0.4em 0.6em;
-}
-
-/*--------------
-     Sizes
----------------*/
-
-/* Small */
-
-.ui.small.table {
- font-size: 0.9em;
-}
-
-/* Standard */
-
-.ui.table {
- font-size: 1em;
-}
-
-/* Large */
-
-.ui.large.table {
- font-size: 1.1em;
-}
-
-/*******************************
-        Site Overrides
-*******************************/
-/*!
-* # Semantic UI 2.3.0 - Ad
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Copyright 2013 Contributors
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-        Advertisement
-*******************************/
-
-.ui.ad {
- display: block;
- overflow: hidden;
- margin: 1em 0em;
-}
-
-.ui.ad:first-child {
- margin: 0em;
-}
-
-.ui.ad:last-child {
- margin: 0em;
-}
-
-.ui.ad iframe {
- margin: 0em;
- padding: 0em;
- border: none;
- overflow: hidden;
-}
-
-/*--------------
-    Common
----------------*/
-
-/* Leaderboard */
-
-.ui.leaderboard.ad {
- width: 728px;
- height: 90px;
-}
-
-/* Medium Rectangle */
-
-.ui[class*="medium rectangle"].ad {
- width: 300px;
- height: 250px;
-}
-
-/* Large Rectangle */
-
-.ui[class*="large rectangle"].ad {
- width: 336px;
- height: 280px;
-}
-
-/* Half Page */
-
-.ui[class*="half page"].ad {
- width: 300px;
- height: 600px;
-}
-
-/*--------------
-    Square
----------------*/
-
-/* Square */
-
-.ui.square.ad {
- width: 250px;
- height: 250px;
-}
-
-/* Small Square */
-
-.ui[class*="small square"].ad {
- width: 200px;
- height: 200px;
-}
-
-/*--------------
-   Rectangle
----------------*/
-
-/* Small Rectangle */
-
-.ui[class*="small rectangle"].ad {
- width: 180px;
- height: 150px;
-}
-
-/* Vertical Rectangle */
-
-.ui[class*="vertical rectangle"].ad {
- width: 240px;
- height: 400px;
-}
-
-/*--------------
-    Button
----------------*/
-
-.ui.button.ad {
- width: 120px;
- height: 90px;
-}
-
-.ui[class*="square button"].ad {
- width: 125px;
- height: 125px;
-}
-
-.ui[class*="small button"].ad {
- width: 120px;
- height: 60px;
-}
-
-/*--------------
-  Skyscrapers
----------------*/
-
-/* Skyscraper */
-
-.ui.skyscraper.ad {
- width: 120px;
- height: 600px;
-}
-
-/* Wide Skyscraper */
-
-.ui[class*="wide skyscraper"].ad {
- width: 160px;
-}
-
-/*--------------
-    Banners
----------------*/
-
-/* Banner */
-
-.ui.banner.ad {
- width: 468px;
- height: 60px;
-}
-
-/* Vertical Banner */
-
-.ui[class*="vertical banner"].ad {
- width: 120px;
- height: 240px;
-}
-
-/* Top Banner */
-
-.ui[class*="top banner"].ad {
- width: 930px;
- height: 180px;
-}
-
-/* Half Banner */
-
-.ui[class*="half banner"].ad {
- width: 234px;
- height: 60px;
-}
-
-/*--------------
-   Boards
----------------*/
-
-/* Leaderboard */
-
-.ui[class*="large leaderboard"].ad {
- width: 970px;
- height: 90px;
-}
-
-/* Billboard */
-
-.ui.billboard.ad {
- width: 970px;
- height: 250px;
-}
-
-/*--------------
-   Panorama
----------------*/
-
-/* Panorama */
-
-.ui.panorama.ad {
- width: 980px;
- height: 120px;
-}
-
-/*--------------
-    Netboard
----------------*/
-
-/* Netboard */
-
-.ui.netboard.ad {
- width: 580px;
- height: 400px;
-}
-
-/*--------------
-    Mobile
----------------*/
-
-/* Large Mobile Banner */
-
-.ui[class*="large mobile banner"].ad {
- width: 320px;
- height: 100px;
-}
-
-/* Mobile Leaderboard */
-
-.ui[class*="mobile leaderboard"].ad {
- width: 320px;
- height: 50px;
-}
-
-/*******************************
-            Types
-*******************************/
-
-/* Mobile Sizes */
-
-.ui.mobile.ad {
- display: none;
-}
-
-@media only screen and (max-width: 767px) {
- .ui.mobile.ad {
-   display: block;
- }
-}
-
-/*******************************
-          Variations
-*******************************/
-
-.ui.centered.ad {
- margin-left: auto;
- margin-right: auto;
-}
-
-.ui.test.ad {
- position: relative;
- background: #545454;
-}
-
-.ui.test.ad:after {
- position: absolute;
- top: 50%;
- left: 50%;
- width: 100%;
- text-align: center;
- -webkit-transform: translateX(-50%) translateY(-50%);
- transform: translateX(-50%) translateY(-50%);
- content: 'Ad';
- color: #FFFFFF;
- font-size: 1em;
- font-weight: bold;
-}
-
-.ui.mobile.test.ad:after {
- font-size: 0.85714286em;
-}
-
-.ui.test.ad[data-text]:after {
- content: attr(data-text);
-}
-
-/*******************************
-        Theme Overrides
-*******************************/
-
-/*******************************
-   User Variable Overrides
-*******************************/
-/*!
-* # Semantic UI 2.3.0 - Item
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-           Standard
-*******************************/
-
-/*--------------
-     Card
----------------*/
-
-.ui.cards > .card,
-.ui.card {
- max-width: 100%;
- position: relative;
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
- width: 290px;
- min-height: 0px;
- background: #FFFFFF;
- padding: 0em;
- border: none;
- border-radius: 0.28571429rem;
- -webkit-box-shadow: 0px 1px 3px 0px #D4D4D5, 0px 0px 0px 1px #D4D4D5;
- box-shadow: 0px 1px 3px 0px #D4D4D5, 0px 0px 0px 1px #D4D4D5;
- -webkit-transition: -webkit-box-shadow 0.1s ease, -webkit-transform 0.1s ease;
- transition: -webkit-box-shadow 0.1s ease, -webkit-transform 0.1s ease;
- transition: box-shadow 0.1s ease, transform 0.1s ease;
- transition: box-shadow 0.1s ease, transform 0.1s ease, -webkit-box-shadow 0.1s ease, -webkit-transform 0.1s ease;
- z-index: '';
-}
-
-.ui.card {
- margin: 1em 0em;
-}
-
-.ui.cards > .card a,
-.ui.card a {
- cursor: pointer;
-}
-
-.ui.card:first-child {
- margin-top: 0em;
-}
-
-.ui.card:last-child {
- margin-bottom: 0em;
-}
-
-/*--------------
-     Cards
----------------*/
-
-.ui.cards {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- margin: -0.875em -0.5em;
- -ms-flex-wrap: wrap;
- flex-wrap: wrap;
-}
-
-.ui.cards > .card {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- margin: 0.875em 0.5em;
- float: none;
-}
-
-/* Clearing */
-
-.ui.cards:after,
-.ui.card:after {
- display: block;
- content: ' ';
- height: 0px;
- clear: both;
- overflow: hidden;
- visibility: hidden;
-}
-
-/* Consecutive Card Groups Preserve Row Spacing */
-
-.ui.cards ~ .ui.cards {
- margin-top: 0.875em;
-}
-
-/*--------------
- Rounded Edges
----------------*/
-
-.ui.cards > .card > :first-child,
-.ui.card > :first-child {
- border-radius: 0.28571429rem 0.28571429rem 0em 0em !important;
- border-top: none !important;
-}
-
-.ui.cards > .card > :last-child,
-.ui.card > :last-child {
- border-radius: 0em 0em 0.28571429rem 0.28571429rem !important;
-}
-
-.ui.cards > .card > :only-child,
-.ui.card > :only-child {
- border-radius: 0.28571429rem !important;
-}
-
-/*--------------
-    Images
----------------*/
-
-.ui.cards > .card > .image,
-.ui.card > .image {
- position: relative;
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 auto;
- flex: 0 0 auto;
- padding: 0em;
- background: rgba(0, 0, 0, 0.05);
-}
-
-.ui.cards > .card > .image > img,
-.ui.card > .image > img {
- display: block;
- width: 100%;
- height: auto;
- border-radius: inherit;
-}
-
-.ui.cards > .card > .image:not(.ui) > img,
-.ui.card > .image:not(.ui) > img {
- border: none;
-}
-
-/*--------------
-    Content
----------------*/
-
-.ui.cards > .card > .content,
-.ui.card > .content {
- -webkit-box-flex: 1;
- -ms-flex-positive: 1;
- flex-grow: 1;
- border: none;
- border-top: 1px solid rgba(34, 36, 38, 0.1);
- background: none;
- margin: 0em;
- padding: 1em 1em;
- -webkit-box-shadow: none;
- box-shadow: none;
- font-size: 1em;
- border-radius: 0em;
-}
-
-.ui.cards > .card > .content:after,
-.ui.card > .content:after {
- display: block;
- content: ' ';
- height: 0px;
- clear: both;
- overflow: hidden;
- visibility: hidden;
-}
-
-.ui.cards > .card > .content > .header,
-.ui.card > .content > .header {
- display: block;
- margin: '';
- font-family: 'Lato', 'Helvetica Neue', Arial, Helvetica, sans-serif;
- color: rgba(0, 0, 0, 0.85);
-}
-
-/* Default Header Size */
-
-.ui.cards > .card > .content > .header:not(.ui),
-.ui.card > .content > .header:not(.ui) {
- font-weight: bold;
- font-size: 1.28571429em;
- margin-top: -0.21425em;
- line-height: 1.28571429em;
-}
-
-.ui.cards > .card > .content > .meta + .description,
-.ui.cards > .card > .content > .header + .description,
-.ui.card > .content > .meta + .description,
-.ui.card > .content > .header + .description {
- margin-top: 0.5em;
-}
-
-/*----------------
-Floated Content
------------------*/
-
-.ui.cards > .card [class*="left floated"],
-.ui.card [class*="left floated"] {
- float: left;
-}
-
-.ui.cards > .card [class*="right floated"],
-.ui.card [class*="right floated"] {
- float: right;
-}
-
-/*--------------
-    Aligned
----------------*/
-
-.ui.cards > .card [class*="left aligned"],
-.ui.card [class*="left aligned"] {
- text-align: left;
-}
-
-.ui.cards > .card [class*="center aligned"],
-.ui.card [class*="center aligned"] {
- text-align: center;
-}
-
-.ui.cards > .card [class*="right aligned"],
-.ui.card [class*="right aligned"] {
- text-align: right;
-}
-
-/*--------------
- Content Image
----------------*/
-
-.ui.cards > .card .content img,
-.ui.card .content img {
- display: inline-block;
- vertical-align: middle;
- width: '';
-}
-
-.ui.cards > .card img.avatar,
-.ui.cards > .card .avatar img,
-.ui.card img.avatar,
-.ui.card .avatar img {
- width: 2em;
- height: 2em;
- border-radius: 500rem;
-}
-
-/*--------------
-  Description
----------------*/
-
-.ui.cards > .card > .content > .description,
-.ui.card > .content > .description {
- clear: both;
- color: rgba(0, 0, 0, 0.68);
-}
-
-/*--------------
-   Paragraph
----------------*/
-
-.ui.cards > .card > .content p,
-.ui.card > .content p {
- margin: 0em 0em 0.5em;
-}
-
-.ui.cards > .card > .content p:last-child,
-.ui.card > .content p:last-child {
- margin-bottom: 0em;
-}
-
-/*--------------
-     Meta
----------------*/
-
-.ui.cards > .card .meta,
-.ui.card .meta {
- font-size: 1em;
- color: rgba(0, 0, 0, 0.4);
-}
-
-.ui.cards > .card .meta *,
-.ui.card .meta * {
- margin-right: 0.3em;
-}
-
-.ui.cards > .card .meta :last-child,
-.ui.card .meta :last-child {
- margin-right: 0em;
-}
-
-.ui.cards > .card .meta [class*="right floated"],
-.ui.card .meta [class*="right floated"] {
- margin-right: 0em;
- margin-left: 0.3em;
-}
-
-/*--------------
-     Links
----------------*/
-
-/* Generic */
-
-.ui.cards > .card > .content a:not(.ui),
-.ui.card > .content a:not(.ui) {
- color: '';
- -webkit-transition: color 0.1s ease;
- transition: color 0.1s ease;
-}
-
-.ui.cards > .card > .content a:not(.ui):hover,
-.ui.card > .content a:not(.ui):hover {
- color: '';
-}
-
-/* Header */
-
-.ui.cards > .card > .content > a.header,
-.ui.card > .content > a.header {
- color: rgba(0, 0, 0, 0.85);
-}
-
-.ui.cards > .card > .content > a.header:hover,
-.ui.card > .content > a.header:hover {
- color: #1e70bf;
-}
-
-/* Meta */
-
-.ui.cards > .card .meta > a:not(.ui),
-.ui.card .meta > a:not(.ui) {
- color: rgba(0, 0, 0, 0.4);
-}
-
-.ui.cards > .card .meta > a:not(.ui):hover,
-.ui.card .meta > a:not(.ui):hover {
- color: rgba(0, 0, 0, 0.87);
-}
-
-/*--------------
-    Buttons
----------------*/
-
-.ui.cards > .card > .buttons,
-.ui.card > .buttons,
-.ui.cards > .card > .button,
-.ui.card > .button {
- margin: 0px -1px;
- width: calc(100% +  2px );
-}
-
-/*--------------
-     Dimmer
----------------*/
-
-.ui.cards > .card .dimmer,
-.ui.card .dimmer {
- background-color: '';
- z-index: 10;
-}
-
-/*--------------
-    Labels
----------------*/
-
-/*-----Star----- */
-
-/* Icon */
-
-.ui.cards > .card > .content .star.icon,
-.ui.card > .content .star.icon {
- cursor: pointer;
- opacity: 0.75;
- -webkit-transition: color 0.1s ease;
- transition: color 0.1s ease;
-}
-
-.ui.cards > .card > .content .star.icon:hover,
-.ui.card > .content .star.icon:hover {
- opacity: 1;
- color: #FFB70A;
-}
-
-.ui.cards > .card > .content .active.star.icon,
-.ui.card > .content .active.star.icon {
- color: #FFE623;
-}
-
-/*-----Like----- */
-
-/* Icon */
-
-.ui.cards > .card > .content .like.icon,
-.ui.card > .content .like.icon {
- cursor: pointer;
- opacity: 0.75;
- -webkit-transition: color 0.1s ease;
- transition: color 0.1s ease;
-}
-
-.ui.cards > .card > .content .like.icon:hover,
-.ui.card > .content .like.icon:hover {
- opacity: 1;
- color: #FF2733;
-}
-
-.ui.cards > .card > .content .active.like.icon,
-.ui.card > .content .active.like.icon {
- color: #FF2733;
-}
-
-/*----------------
- Extra Content
------------------*/
-
-.ui.cards > .card > .extra,
-.ui.card > .extra {
- max-width: 100%;
- min-height: 0em !important;
- -webkit-box-flex: 0;
- -ms-flex-positive: 0;
- flex-grow: 0;
- border-top: 1px solid rgba(0, 0, 0, 0.05) !important;
- position: static;
- background: none;
- width: auto;
- margin: 0em 0em;
- padding: 0.75em 1em;
- top: 0em;
- left: 0em;
- color: rgba(0, 0, 0, 0.4);
- -webkit-box-shadow: none;
- box-shadow: none;
- -webkit-transition: color 0.1s ease;
- transition: color 0.1s ease;
-}
-
-.ui.cards > .card > .extra a:not(.ui),
-.ui.card > .extra a:not(.ui) {
- color: rgba(0, 0, 0, 0.4);
-}
-
-.ui.cards > .card > .extra a:not(.ui):hover,
-.ui.card > .extra a:not(.ui):hover {
- color: #1e70bf;
-}
-
-/*******************************
-          Variations
-*******************************/
-
-/*-------------------
-      Raised
---------------------*/
-
-.ui.raised.cards > .card,
-.ui.raised.card {
- -webkit-box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 4px 0px rgba(34, 36, 38, 0.12), 0px 2px 10px 0px rgba(34, 36, 38, 0.15);
- box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 4px 0px rgba(34, 36, 38, 0.12), 0px 2px 10px 0px rgba(34, 36, 38, 0.15);
-}
-
-.ui.raised.cards a.card:hover,
-.ui.link.cards .raised.card:hover,
-a.ui.raised.card:hover,
-.ui.link.raised.card:hover {
- -webkit-box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 4px 0px rgba(34, 36, 38, 0.15), 0px 2px 10px 0px rgba(34, 36, 38, 0.25);
- box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 4px 0px rgba(34, 36, 38, 0.15), 0px 2px 10px 0px rgba(34, 36, 38, 0.25);
-}
-
-.ui.raised.cards > .card,
-.ui.raised.card {
- -webkit-box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 4px 0px rgba(34, 36, 38, 0.12), 0px 2px 10px 0px rgba(34, 36, 38, 0.15);
- box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 4px 0px rgba(34, 36, 38, 0.12), 0px 2px 10px 0px rgba(34, 36, 38, 0.15);
-}
-
-/*-------------------
-      Centered
---------------------*/
-
-.ui.centered.cards {
- -webkit-box-pack: center;
- -ms-flex-pack: center;
- justify-content: center;
-}
-
-.ui.centered.card {
- margin-left: auto;
- margin-right: auto;
-}
-
-/*-------------------
-       Fluid
---------------------*/
-
-.ui.fluid.card {
- width: 100%;
- max-width: 9999px;
-}
-
-/*-------------------
-       Link
---------------------*/
-
-.ui.cards a.card,
-.ui.link.cards .card,
-a.ui.card,
-.ui.link.card {
- -webkit-transform: none;
- transform: none;
-}
-
-.ui.cards a.card:hover,
-.ui.link.cards .card:hover,
-a.ui.card:hover,
-.ui.link.card:hover {
- cursor: pointer;
- z-index: 5;
- background: #FFFFFF;
- border: none;
- -webkit-box-shadow: 0px 1px 3px 0px #BCBDBD, 0px 0px 0px 1px #D4D4D5;
- box-shadow: 0px 1px 3px 0px #BCBDBD, 0px 0px 0px 1px #D4D4D5;
- -webkit-transform: translateY(-3px);
- transform: translateY(-3px);
-}
-
-/*-------------------
-      Colors
---------------------*/
-
-/* Red */
-
-.ui.red.cards > .card,
-.ui.cards > .red.card,
-.ui.red.card {
- -webkit-box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #DB2828, 0px 1px 3px 0px #D4D4D5;
- box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #DB2828, 0px 1px 3px 0px #D4D4D5;
-}
-
-.ui.red.cards > .card:hover,
-.ui.cards > .red.card:hover,
-.ui.red.card:hover {
- -webkit-box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #d01919, 0px 1px 3px 0px #BCBDBD;
- box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #d01919, 0px 1px 3px 0px #BCBDBD;
-}
-
-/* Orange */
-
-.ui.orange.cards > .card,
-.ui.cards > .orange.card,
-.ui.orange.card {
- -webkit-box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #F2711C, 0px 1px 3px 0px #D4D4D5;
- box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #F2711C, 0px 1px 3px 0px #D4D4D5;
-}
-
-.ui.orange.cards > .card:hover,
-.ui.cards > .orange.card:hover,
-.ui.orange.card:hover {
- -webkit-box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #f26202, 0px 1px 3px 0px #BCBDBD;
- box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #f26202, 0px 1px 3px 0px #BCBDBD;
-}
-
-/* Yellow */
-
-.ui.yellow.cards > .card,
-.ui.cards > .yellow.card,
-.ui.yellow.card {
- -webkit-box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #FBBD08, 0px 1px 3px 0px #D4D4D5;
- box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #FBBD08, 0px 1px 3px 0px #D4D4D5;
-}
-
-.ui.yellow.cards > .card:hover,
-.ui.cards > .yellow.card:hover,
-.ui.yellow.card:hover {
- -webkit-box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #eaae00, 0px 1px 3px 0px #BCBDBD;
- box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #eaae00, 0px 1px 3px 0px #BCBDBD;
-}
-
-/* Olive */
-
-.ui.olive.cards > .card,
-.ui.cards > .olive.card,
-.ui.olive.card {
- -webkit-box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #B5CC18, 0px 1px 3px 0px #D4D4D5;
- box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #B5CC18, 0px 1px 3px 0px #D4D4D5;
-}
-
-.ui.olive.cards > .card:hover,
-.ui.cards > .olive.card:hover,
-.ui.olive.card:hover {
- -webkit-box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #a7bd0d, 0px 1px 3px 0px #BCBDBD;
- box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #a7bd0d, 0px 1px 3px 0px #BCBDBD;
-}
-
-/* Green */
-
-.ui.green.cards > .card,
-.ui.cards > .green.card,
-.ui.green.card {
- -webkit-box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #21BA45, 0px 1px 3px 0px #D4D4D5;
- box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #21BA45, 0px 1px 3px 0px #D4D4D5;
-}
-
-.ui.green.cards > .card:hover,
-.ui.cards > .green.card:hover,
-.ui.green.card:hover {
- -webkit-box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #16ab39, 0px 1px 3px 0px #BCBDBD;
- box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #16ab39, 0px 1px 3px 0px #BCBDBD;
-}
-
-/* Teal */
-
-.ui.teal.cards > .card,
-.ui.cards > .teal.card,
-.ui.teal.card {
- -webkit-box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #00B5AD, 0px 1px 3px 0px #D4D4D5;
- box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #00B5AD, 0px 1px 3px 0px #D4D4D5;
-}
-
-.ui.teal.cards > .card:hover,
-.ui.cards > .teal.card:hover,
-.ui.teal.card:hover {
- -webkit-box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #009c95, 0px 1px 3px 0px #BCBDBD;
- box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #009c95, 0px 1px 3px 0px #BCBDBD;
-}
-
-/* Blue */
-
-.ui.blue.cards > .card,
-.ui.cards > .blue.card,
-.ui.blue.card {
- -webkit-box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #2185D0, 0px 1px 3px 0px #D4D4D5;
- box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #2185D0, 0px 1px 3px 0px #D4D4D5;
-}
-
-.ui.blue.cards > .card:hover,
-.ui.cards > .blue.card:hover,
-.ui.blue.card:hover {
- -webkit-box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #1678c2, 0px 1px 3px 0px #BCBDBD;
- box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #1678c2, 0px 1px 3px 0px #BCBDBD;
-}
-
-/* Violet */
-
-.ui.violet.cards > .card,
-.ui.cards > .violet.card,
-.ui.violet.card {
- -webkit-box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #6435C9, 0px 1px 3px 0px #D4D4D5;
- box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #6435C9, 0px 1px 3px 0px #D4D4D5;
-}
-
-.ui.violet.cards > .card:hover,
-.ui.cards > .violet.card:hover,
-.ui.violet.card:hover {
- -webkit-box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #5829bb, 0px 1px 3px 0px #BCBDBD;
- box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #5829bb, 0px 1px 3px 0px #BCBDBD;
-}
-
-/* Purple */
-
-.ui.purple.cards > .card,
-.ui.cards > .purple.card,
-.ui.purple.card {
- -webkit-box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #A333C8, 0px 1px 3px 0px #D4D4D5;
- box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #A333C8, 0px 1px 3px 0px #D4D4D5;
-}
-
-.ui.purple.cards > .card:hover,
-.ui.cards > .purple.card:hover,
-.ui.purple.card:hover {
- -webkit-box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #9627ba, 0px 1px 3px 0px #BCBDBD;
- box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #9627ba, 0px 1px 3px 0px #BCBDBD;
-}
-
-/* Pink */
-
-.ui.pink.cards > .card,
-.ui.cards > .pink.card,
-.ui.pink.card {
- -webkit-box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #E03997, 0px 1px 3px 0px #D4D4D5;
- box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #E03997, 0px 1px 3px 0px #D4D4D5;
-}
-
-.ui.pink.cards > .card:hover,
-.ui.cards > .pink.card:hover,
-.ui.pink.card:hover {
- -webkit-box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #e61a8d, 0px 1px 3px 0px #BCBDBD;
- box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #e61a8d, 0px 1px 3px 0px #BCBDBD;
-}
-
-/* Brown */
-
-.ui.brown.cards > .card,
-.ui.cards > .brown.card,
-.ui.brown.card {
- -webkit-box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #A5673F, 0px 1px 3px 0px #D4D4D5;
- box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #A5673F, 0px 1px 3px 0px #D4D4D5;
-}
-
-.ui.brown.cards > .card:hover,
-.ui.cards > .brown.card:hover,
-.ui.brown.card:hover {
- -webkit-box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #975b33, 0px 1px 3px 0px #BCBDBD;
- box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #975b33, 0px 1px 3px 0px #BCBDBD;
-}
-
-/* Grey */
-
-.ui.grey.cards > .card,
-.ui.cards > .grey.card,
-.ui.grey.card {
- -webkit-box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #767676, 0px 1px 3px 0px #D4D4D5;
- box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #767676, 0px 1px 3px 0px #D4D4D5;
-}
-
-.ui.grey.cards > .card:hover,
-.ui.cards > .grey.card:hover,
-.ui.grey.card:hover {
- -webkit-box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #838383, 0px 1px 3px 0px #BCBDBD;
- box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #838383, 0px 1px 3px 0px #BCBDBD;
-}
-
-/* Black */
-
-.ui.black.cards > .card,
-.ui.cards > .black.card,
-.ui.black.card {
- -webkit-box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #1B1C1D, 0px 1px 3px 0px #D4D4D5;
- box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #1B1C1D, 0px 1px 3px 0px #D4D4D5;
-}
-
-.ui.black.cards > .card:hover,
-.ui.cards > .black.card:hover,
-.ui.black.card:hover {
- -webkit-box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #27292a, 0px 1px 3px 0px #BCBDBD;
- box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #27292a, 0px 1px 3px 0px #BCBDBD;
-}
-
-/*--------------
-  Card Count
----------------*/
-
-.ui.one.cards {
- margin-left: 0em;
- margin-right: 0em;
-}
-
-.ui.one.cards > .card {
- width: 100%;
-}
-
-.ui.two.cards {
- margin-left: -1em;
- margin-right: -1em;
-}
-
-.ui.two.cards > .card {
- width: calc( 50%  -  2em );
- margin-left: 1em;
- margin-right: 1em;
-}
-
-.ui.three.cards {
- margin-left: -1em;
- margin-right: -1em;
-}
-
-.ui.three.cards > .card {
- width: calc( 33.33333333%  -  2em );
- margin-left: 1em;
- margin-right: 1em;
-}
-
-.ui.four.cards {
- margin-left: -0.75em;
- margin-right: -0.75em;
-}
-
-.ui.four.cards > .card {
- width: calc( 25%  -  1.5em );
- margin-left: 0.75em;
- margin-right: 0.75em;
-}
-
-.ui.five.cards {
- margin-left: -0.75em;
- margin-right: -0.75em;
-}
-
-.ui.five.cards > .card {
- width: calc( 20%  -  1.5em );
- margin-left: 0.75em;
- margin-right: 0.75em;
-}
-
-.ui.six.cards {
- margin-left: -0.75em;
- margin-right: -0.75em;
-}
-
-.ui.six.cards > .card {
- width: calc( 16.66666667%  -  1.5em );
- margin-left: 0.75em;
- margin-right: 0.75em;
-}
-
-.ui.seven.cards {
- margin-left: -0.5em;
- margin-right: -0.5em;
-}
-
-.ui.seven.cards > .card {
- width: calc( 14.28571429%  -  1em );
- margin-left: 0.5em;
- margin-right: 0.5em;
-}
-
-.ui.eight.cards {
- margin-left: -0.5em;
- margin-right: -0.5em;
-}
-
-.ui.eight.cards > .card {
- width: calc( 12.5%  -  1em );
- margin-left: 0.5em;
- margin-right: 0.5em;
- font-size: 11px;
-}
-
-.ui.nine.cards {
- margin-left: -0.5em;
- margin-right: -0.5em;
-}
-
-.ui.nine.cards > .card {
- width: calc( 11.11111111%  -  1em );
- margin-left: 0.5em;
- margin-right: 0.5em;
- font-size: 10px;
-}
-
-.ui.ten.cards {
- margin-left: -0.5em;
- margin-right: -0.5em;
-}
-
-.ui.ten.cards > .card {
- width: calc( 10%  -  1em );
- margin-left: 0.5em;
- margin-right: 0.5em;
-}
-
-/*-------------------
-     Doubling
---------------------*/
-
-/* Mobile Only */
-
-@media only screen and (max-width: 767px) {
- .ui.two.doubling.cards {
-   margin-left: 0em;
-   margin-right: 0em;
- }
-
- .ui.two.doubling.cards > .card {
-   width: 100%;
-   margin-left: 0em;
-   margin-right: 0em;
- }
-
- .ui.three.doubling.cards {
-   margin-left: -1em;
-   margin-right: -1em;
- }
-
- .ui.three.doubling.cards > .card {
-   width: calc( 50%  -  2em );
-   margin-left: 1em;
-   margin-right: 1em;
- }
-
- .ui.four.doubling.cards {
-   margin-left: -1em;
-   margin-right: -1em;
- }
-
- .ui.four.doubling.cards > .card {
-   width: calc( 50%  -  2em );
-   margin-left: 1em;
-   margin-right: 1em;
- }
-
- .ui.five.doubling.cards {
-   margin-left: -1em;
-   margin-right: -1em;
- }
-
- .ui.five.doubling.cards > .card {
-   width: calc( 50%  -  2em );
-   margin-left: 1em;
-   margin-right: 1em;
- }
-
- .ui.six.doubling.cards {
-   margin-left: -1em;
-   margin-right: -1em;
- }
-
- .ui.six.doubling.cards > .card {
-   width: calc( 50%  -  2em );
-   margin-left: 1em;
-   margin-right: 1em;
- }
-
- .ui.seven.doubling.cards {
-   margin-left: -1em;
-   margin-right: -1em;
- }
-
- .ui.seven.doubling.cards > .card {
-   width: calc( 33.33333333%  -  2em );
-   margin-left: 1em;
-   margin-right: 1em;
- }
-
- .ui.eight.doubling.cards {
-   margin-left: -1em;
-   margin-right: -1em;
- }
-
- .ui.eight.doubling.cards > .card {
-   width: calc( 33.33333333%  -  2em );
-   margin-left: 1em;
-   margin-right: 1em;
- }
-
- .ui.nine.doubling.cards {
-   margin-left: -1em;
-   margin-right: -1em;
- }
-
- .ui.nine.doubling.cards > .card {
-   width: calc( 33.33333333%  -  2em );
-   margin-left: 1em;
-   margin-right: 1em;
- }
-
- .ui.ten.doubling.cards {
-   margin-left: -1em;
-   margin-right: -1em;
- }
-
- .ui.ten.doubling.cards > .card {
-   width: calc( 33.33333333%  -  2em );
-   margin-left: 1em;
-   margin-right: 1em;
- }
-}
-
-/* Tablet Only */
-
-@media only screen and (min-width: 768px) and (max-width: 991px) {
- .ui.two.doubling.cards {
-   margin-left: 0em;
-   margin-right: 0em;
- }
-
- .ui.two.doubling.cards > .card {
-   width: 100%;
-   margin-left: 0em;
-   margin-right: 0em;
- }
-
- .ui.three.doubling.cards {
-   margin-left: -1em;
-   margin-right: -1em;
- }
-
- .ui.three.doubling.cards > .card {
-   width: calc( 50%  -  2em );
-   margin-left: 1em;
-   margin-right: 1em;
- }
-
- .ui.four.doubling.cards {
-   margin-left: -1em;
-   margin-right: -1em;
- }
-
- .ui.four.doubling.cards > .card {
-   width: calc( 50%  -  2em );
-   margin-left: 1em;
-   margin-right: 1em;
- }
-
- .ui.five.doubling.cards {
-   margin-left: -1em;
-   margin-right: -1em;
- }
-
- .ui.five.doubling.cards > .card {
-   width: calc( 33.33333333%  -  2em );
-   margin-left: 1em;
-   margin-right: 1em;
- }
-
- .ui.six.doubling.cards {
-   margin-left: -1em;
-   margin-right: -1em;
- }
-
- .ui.six.doubling.cards > .card {
-   width: calc( 33.33333333%  -  2em );
-   margin-left: 1em;
-   margin-right: 1em;
- }
-
- .ui.eight.doubling.cards {
-   margin-left: -1em;
-   margin-right: -1em;
- }
-
- .ui.eight.doubling.cards > .card {
-   width: calc( 33.33333333%  -  2em );
-   margin-left: 1em;
-   margin-right: 1em;
- }
-
- .ui.eight.doubling.cards {
-   margin-left: -0.75em;
-   margin-right: -0.75em;
- }
-
- .ui.eight.doubling.cards > .card {
-   width: calc( 25%  -  1.5em );
-   margin-left: 0.75em;
-   margin-right: 0.75em;
- }
-
- .ui.nine.doubling.cards {
-   margin-left: -0.75em;
-   margin-right: -0.75em;
- }
-
- .ui.nine.doubling.cards > .card {
-   width: calc( 25%  -  1.5em );
-   margin-left: 0.75em;
-   margin-right: 0.75em;
- }
-
- .ui.ten.doubling.cards {
-   margin-left: -0.75em;
-   margin-right: -0.75em;
- }
-
- .ui.ten.doubling.cards > .card {
-   width: calc( 20%  -  1.5em );
-   margin-left: 0.75em;
-   margin-right: 0.75em;
- }
-}
-
-/*-------------------
-     Stackable
---------------------*/
-
-@media only screen and (max-width: 767px) {
- .ui.stackable.cards {
-   display: block !important;
- }
-
- .ui.stackable.cards .card:first-child {
-   margin-top: 0em !important;
- }
-
- .ui.stackable.cards > .card {
-   display: block !important;
-   height: auto !important;
-   margin: 1em 1em;
-   padding: 0 !important;
-   width: calc( 100%  -  2em ) !important;
- }
-}
-
-/*--------------
-     Size
----------------*/
-
-.ui.cards > .card {
- font-size: 1em;
-}
-
-/*******************************
-        Theme Overrides
-*******************************/
-
-/*******************************
-   User Variable Overrides
-*******************************/
-/*!
-* # Semantic UI 2.3.0 - Comment
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-           Standard
-*******************************/
-
-/*--------------
-   Comments
----------------*/
-
-.ui.comments {
- margin: 1.5em 0em;
- max-width: 650px;
-}
-
-.ui.comments:first-child {
- margin-top: 0em;
-}
-
-.ui.comments:last-child {
- margin-bottom: 0em;
-}
-
-/*--------------
-    Comment
----------------*/
-
-.ui.comments .comment {
- position: relative;
- background: none;
- margin: 0.5em 0em 0em;
- padding: 0.5em 0em 0em;
- border: none;
- border-top: none;
- line-height: 1.2;
-}
-
-.ui.comments .comment:first-child {
- margin-top: 0em;
- padding-top: 0em;
-}
-
-/*--------------------
-   Nested Comments
----------------------*/
-
-.ui.comments .comment .comments {
- margin: 0em 0em 0.5em 0.5em;
- padding: 1em 0em 1em 1em;
-}
-
-.ui.comments .comment .comments:before {
- position: absolute;
- top: 0px;
- left: 0px;
-}
-
-.ui.comments .comment .comments .comment {
- border: none;
- border-top: none;
- background: none;
-}
-
-/*--------------
-    Avatar
----------------*/
-
-.ui.comments .comment .avatar {
- display: block;
- width: 2.5em;
- height: auto;
- float: left;
- margin: 0.2em 0em 0em;
-}
-
-.ui.comments .comment img.avatar,
-.ui.comments .comment .avatar img {
- display: block;
- margin: 0em auto;
- width: 100%;
- height: 100%;
- border-radius: 0.25rem;
-}
-
-/*--------------
-    Content
----------------*/
-
-.ui.comments .comment > .content {
- display: block;
-}
-
-/* If there is an avatar move content over */
-
-.ui.comments .comment > .avatar ~ .content {
- margin-left: 3.5em;
-}
-
-/*--------------
-    Author
----------------*/
-
-.ui.comments .comment .author {
- font-size: 1em;
- color: rgba(0, 0, 0, 0.87);
- font-weight: bold;
-}
-
-.ui.comments .comment a.author {
- cursor: pointer;
-}
-
-.ui.comments .comment a.author:hover {
- color: #1e70bf;
-}
-
-/*--------------
-    Metadata
----------------*/
-
-.ui.comments .comment .metadata {
- display: inline-block;
- margin-left: 0.5em;
- color: rgba(0, 0, 0, 0.4);
- font-size: 0.875em;
-}
-
-.ui.comments .comment .metadata > * {
- display: inline-block;
- margin: 0em 0.5em 0em 0em;
-}
-
-.ui.comments .comment .metadata > :last-child {
- margin-right: 0em;
-}
-
-/*--------------------
-    Comment Text
----------------------*/
-
-.ui.comments .comment .text {
- margin: 0.25em 0em 0.5em;
- font-size: 1em;
- word-wrap: break-word;
- color: rgba(0, 0, 0, 0.87);
- line-height: 1.3;
-}
-
-/*--------------------
-    User Actions
----------------------*/
-
-.ui.comments .comment .actions {
- font-size: 0.875em;
-}
-
-.ui.comments .comment .actions a {
- cursor: pointer;
- display: inline-block;
- margin: 0em 0.75em 0em 0em;
- color: rgba(0, 0, 0, 0.4);
-}
-
-.ui.comments .comment .actions a:last-child {
- margin-right: 0em;
-}
-
-.ui.comments .comment .actions a.active,
-.ui.comments .comment .actions a:hover {
- color: rgba(0, 0, 0, 0.8);
-}
-
-/*--------------------
-     Reply Form
----------------------*/
-
-.ui.comments > .reply.form {
- margin-top: 1em;
-}
-
-.ui.comments .comment .reply.form {
- width: 100%;
- margin-top: 1em;
-}
-
-.ui.comments .reply.form textarea {
- font-size: 1em;
- height: 12em;
-}
-
-/*******************************
-           State
-*******************************/
-
-.ui.collapsed.comments,
-.ui.comments .collapsed.comments,
-.ui.comments .collapsed.comment {
- display: none;
-}
-
-/*******************************
-          Variations
-*******************************/
-
-/*--------------------
-       Threaded
----------------------*/
-
-.ui.threaded.comments .comment .comments {
- margin: -1.5em 0 -1em 1.25em;
- padding: 3em 0em 2em 2.25em;
- -webkit-box-shadow: -1px 0px 0px rgba(34, 36, 38, 0.15);
- box-shadow: -1px 0px 0px rgba(34, 36, 38, 0.15);
-}
-
-/*--------------------
-       Minimal
----------------------*/
-
-.ui.minimal.comments .comment .actions {
- opacity: 0;
- position: absolute;
- top: 0px;
- right: 0px;
- left: auto;
- -webkit-transition: opacity 0.2s ease;
- transition: opacity 0.2s ease;
- -webkit-transition-delay: 0.1s;
- transition-delay: 0.1s;
-}
-
-.ui.minimal.comments .comment > .content:hover > .actions {
- opacity: 1;
-}
-
-/*-------------------
-       Sizes
---------------------*/
-
-.ui.mini.comments {
- font-size: 0.78571429rem;
-}
-
-.ui.tiny.comments {
- font-size: 0.85714286rem;
-}
-
-.ui.small.comments {
- font-size: 0.92857143rem;
-}
-
-.ui.comments {
- font-size: 1rem;
-}
-
-.ui.large.comments {
- font-size: 1.14285714rem;
-}
-
-.ui.big.comments {
- font-size: 1.28571429rem;
-}
-
-.ui.huge.comments {
- font-size: 1.42857143rem;
-}
-
-.ui.massive.comments {
- font-size: 1.71428571rem;
-}
-
-/*******************************
-        Theme Overrides
-*******************************/
-
-/*******************************
-   User Variable Overrides
-*******************************/
-/*!
-* # Semantic UI 2.3.0 - Feed
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-        Activity Feed
-*******************************/
-
-.ui.feed {
- margin: 1em 0em;
-}
-
-.ui.feed:first-child {
- margin-top: 0em;
-}
-
-.ui.feed:last-child {
- margin-bottom: 0em;
-}
-
-/*******************************
-           Content
-*******************************/
-
-/* Event */
-
-.ui.feed > .event {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-orient: horizontal;
- -webkit-box-direction: normal;
- -ms-flex-direction: row;
- flex-direction: row;
- width: 100%;
- padding: 0.21428571rem 0em;
- margin: 0em;
- background: none;
- border-top: none;
-}
-
-.ui.feed > .event:first-child {
- border-top: 0px;
- padding-top: 0em;
-}
-
-.ui.feed > .event:last-child {
- padding-bottom: 0em;
-}
-
-/* Event Label */
-
-.ui.feed > .event > .label {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 auto;
- flex: 0 0 auto;
- width: 2.5em;
- height: auto;
- -ms-flex-item-align: stretch;
- align-self: stretch;
- text-align: left;
-}
-
-.ui.feed > .event > .label .icon {
- opacity: 1;
- font-size: 1.5em;
- width: 100%;
- padding: 0.25em;
- background: none;
- border: none;
- border-radius: none;
- color: rgba(0, 0, 0, 0.6);
-}
-
-.ui.feed > .event > .label img {
- width: 100%;
- height: auto;
- border-radius: 500rem;
-}
-
-.ui.feed > .event > .label + .content {
- margin: 0.5em 0em 0.35714286em 1.14285714em;
-}
-
-/*--------------
-    Content
----------------*/
-
-/* Content */
-
-.ui.feed > .event > .content {
- display: block;
- -webkit-box-flex: 1;
- -ms-flex: 1 1 auto;
- flex: 1 1 auto;
- -ms-flex-item-align: stretch;
- align-self: stretch;
- text-align: left;
- word-wrap: break-word;
-}
-
-.ui.feed > .event:last-child > .content {
- padding-bottom: 0em;
-}
-
-/* Link */
-
-.ui.feed > .event > .content a {
- cursor: pointer;
-}
-
-/*--------------
-     Date
----------------*/
-
-.ui.feed > .event > .content .date {
- margin: -0.5rem 0em 0em;
- padding: 0em;
- font-weight: normal;
- font-size: 1em;
- font-style: normal;
- color: rgba(0, 0, 0, 0.4);
-}
-
-/*--------------
-    Summary
----------------*/
-
-.ui.feed > .event > .content .summary {
- margin: 0em;
- font-size: 1em;
- font-weight: bold;
- color: rgba(0, 0, 0, 0.87);
-}
-
-/* Summary Image */
-
-.ui.feed > .event > .content .summary img {
- display: inline-block;
- width: auto;
- height: 10em;
- margin: -0.25em 0.25em 0em 0em;
- border-radius: 0.25em;
- vertical-align: middle;
-}
-
-/*--------------
-     User
----------------*/
-
-.ui.feed > .event > .content .user {
- display: inline-block;
- font-weight: bold;
- margin-right: 0em;
- vertical-align: baseline;
-}
-
-.ui.feed > .event > .content .user img {
- margin: -0.25em 0.25em 0em 0em;
- width: auto;
- height: 10em;
- vertical-align: middle;
-}
-
-/*--------------
-  Inline Date
----------------*/
-
-/* Date inside Summary */
-
-.ui.feed > .event > .content .summary > .date {
- display: inline-block;
- float: none;
- font-weight: normal;
- font-size: 0.85714286em;
- font-style: normal;
- margin: 0em 0em 0em 0.5em;
- padding: 0em;
- color: rgba(0, 0, 0, 0.4);
-}
-
-/*--------------
- Extra Summary
----------------*/
-
-.ui.feed > .event > .content .extra {
- margin: 0.5em 0em 0em;
- background: none;
- padding: 0em;
- color: rgba(0, 0, 0, 0.87);
-}
-
-/* Images */
-
-.ui.feed > .event > .content .extra.images img {
- display: inline-block;
- margin: 0em 0.25em 0em 0em;
- width: 6em;
-}
-
-/* Text */
-
-.ui.feed > .event > .content .extra.text {
- padding: 0em;
- border-left: none;
- font-size: 1em;
- max-width: 500px;
- line-height: 1.4285em;
-}
-
-/*--------------
-     Meta
----------------*/
-
-.ui.feed > .event > .content .meta {
- display: inline-block;
- font-size: 0.85714286em;
- margin: 0.5em 0em 0em;
- background: none;
- border: none;
- border-radius: 0;
- -webkit-box-shadow: none;
- box-shadow: none;
- padding: 0em;
- color: rgba(0, 0, 0, 0.6);
-}
-
-.ui.feed > .event > .content .meta > * {
- position: relative;
- margin-left: 0.75em;
-}
-
-.ui.feed > .event > .content .meta > *:after {
- content: '';
- color: rgba(0, 0, 0, 0.2);
- top: 0em;
- left: -1em;
- opacity: 1;
- position: absolute;
- vertical-align: top;
-}
-
-.ui.feed > .event > .content .meta .like {
- color: '';
- -webkit-transition: 0.2s color ease;
- transition: 0.2s color ease;
-}
-
-.ui.feed > .event > .content .meta .like:hover .icon {
- color: #FF2733;
-}
-
-.ui.feed > .event > .content .meta .active.like .icon {
- color: #EF404A;
-}
-
-/* First element */
-
-.ui.feed > .event > .content .meta > :first-child {
- margin-left: 0em;
-}
-
-.ui.feed > .event > .content .meta > :first-child::after {
- display: none;
-}
-
-/* Action */
-
-.ui.feed > .event > .content .meta a,
-.ui.feed > .event > .content .meta > .icon {
- cursor: pointer;
- opacity: 1;
- color: rgba(0, 0, 0, 0.5);
- -webkit-transition: color 0.1s ease;
- transition: color 0.1s ease;
-}
-
-.ui.feed > .event > .content .meta a:hover,
-.ui.feed > .event > .content .meta a:hover .icon,
-.ui.feed > .event > .content .meta > .icon:hover {
- color: rgba(0, 0, 0, 0.95);
-}
-
-/*******************************
-           Variations
-*******************************/
-
-.ui.small.feed {
- font-size: 0.92857143rem;
-}
-
-.ui.feed {
- font-size: 1rem;
-}
-
-.ui.large.feed {
- font-size: 1.14285714rem;
-}
-
-/*******************************
-        Theme Overrides
-*******************************/
-
-/*******************************
-   User Variable Overrides
-*******************************/
-/*!
-* # Semantic UI 2.3.0 - Item
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-           Standard
-*******************************/
-
-/*--------------
-     Item
----------------*/
-
-.ui.items > .item {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- margin: 1em 0em;
- width: 100%;
- min-height: 0px;
- background: transparent;
- padding: 0em;
- border: none;
- border-radius: 0rem;
- -webkit-box-shadow: none;
- box-shadow: none;
- -webkit-transition: -webkit-box-shadow 0.1s ease;
- transition: -webkit-box-shadow 0.1s ease;
- transition: box-shadow 0.1s ease;
- transition: box-shadow 0.1s ease, -webkit-box-shadow 0.1s ease;
- z-index: '';
-}
-
-.ui.items > .item a {
- cursor: pointer;
-}
-
-/*--------------
-     Items
----------------*/
-
-.ui.items {
- margin: 1.5em 0em;
-}
-
-.ui.items:first-child {
- margin-top: 0em !important;
-}
-
-.ui.items:last-child {
- margin-bottom: 0em !important;
-}
-
-/*--------------
-     Item
----------------*/
-
-.ui.items > .item:after {
- display: block;
- content: ' ';
- height: 0px;
- clear: both;
- overflow: hidden;
- visibility: hidden;
-}
-
-.ui.items > .item:first-child {
- margin-top: 0em;
-}
-
-.ui.items > .item:last-child {
- margin-bottom: 0em;
-}
-
-/*--------------
-    Images
----------------*/
-
-.ui.items > .item > .image {
- position: relative;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 auto;
- flex: 0 0 auto;
- display: block;
- float: none;
- margin: 0em;
- padding: 0em;
- max-height: '';
- -ms-flex-item-align: top;
- align-self: top;
-}
-
-.ui.items > .item > .image > img {
- display: block;
- width: 100%;
- height: auto;
- border-radius: 0.125rem;
- border: none;
-}
-
-.ui.items > .item > .image:only-child > img {
- border-radius: 0rem;
-}
-
-/*--------------
-    Content
----------------*/
-
-.ui.items > .item > .content {
- display: block;
- -webkit-box-flex: 1;
- -ms-flex: 1 1 auto;
- flex: 1 1 auto;
- background: none;
- margin: 0em;
- padding: 0em;
- -webkit-box-shadow: none;
- box-shadow: none;
- font-size: 1em;
- border: none;
- border-radius: 0em;
-}
-
-.ui.items > .item > .content:after {
- display: block;
- content: ' ';
- height: 0px;
- clear: both;
- overflow: hidden;
- visibility: hidden;
-}
-
-.ui.items > .item > .image + .content {
- min-width: 0;
- width: auto;
- display: block;
- margin-left: 0em;
- -ms-flex-item-align: top;
- align-self: top;
- padding-left: 1.5em;
-}
-
-.ui.items > .item > .content > .header {
- display: inline-block;
- margin: -0.21425em 0em 0em;
- font-family: 'Lato', 'Helvetica Neue', Arial, Helvetica, sans-serif;
- font-weight: bold;
- color: rgba(0, 0, 0, 0.85);
-}
-
-/* Default Header Size */
-
-.ui.items > .item > .content > .header:not(.ui) {
- font-size: 1.28571429em;
-}
-
-/*--------------
-    Floated
----------------*/
-
-.ui.items > .item [class*="left floated"] {
- float: left;
-}
-
-.ui.items > .item [class*="right floated"] {
- float: right;
-}
-
-/*--------------
- Content Image
----------------*/
-
-.ui.items > .item .content img {
- -ms-flex-item-align: middle;
- align-self: middle;
- width: '';
-}
-
-.ui.items > .item img.avatar,
-.ui.items > .item .avatar img {
- width: '';
- height: '';
- border-radius: 500rem;
-}
-
-/*--------------
-  Description
----------------*/
-
-.ui.items > .item > .content > .description {
- margin-top: 0.6em;
- max-width: auto;
- font-size: 1em;
- line-height: 1.4285em;
- color: rgba(0, 0, 0, 0.87);
-}
-
-/*--------------
-   Paragraph
----------------*/
-
-.ui.items > .item > .content p {
- margin: 0em 0em 0.5em;
-}
-
-.ui.items > .item > .content p:last-child {
- margin-bottom: 0em;
-}
-
-/*--------------
-     Meta
----------------*/
-
-.ui.items > .item .meta {
- margin: 0.5em 0em 0.5em;
- font-size: 1em;
- line-height: 1em;
- color: rgba(0, 0, 0, 0.6);
-}
-
-.ui.items > .item .meta * {
- margin-right: 0.3em;
-}
-
-.ui.items > .item .meta :last-child {
- margin-right: 0em;
-}
-
-.ui.items > .item .meta [class*="right floated"] {
- margin-right: 0em;
- margin-left: 0.3em;
-}
-
-/*--------------
-     Links
----------------*/
-
-/* Generic */
-
-.ui.items > .item > .content a:not(.ui) {
- color: '';
- -webkit-transition: color 0.1s ease;
- transition: color 0.1s ease;
-}
-
-.ui.items > .item > .content a:not(.ui):hover {
- color: '';
-}
-
-/* Header */
-
-.ui.items > .item > .content > a.header {
- color: rgba(0, 0, 0, 0.85);
-}
-
-.ui.items > .item > .content > a.header:hover {
- color: #1e70bf;
-}
-
-/* Meta */
-
-.ui.items > .item .meta > a:not(.ui) {
- color: rgba(0, 0, 0, 0.4);
-}
-
-.ui.items > .item .meta > a:not(.ui):hover {
- color: rgba(0, 0, 0, 0.87);
-}
-
-/*--------------
-    Labels
----------------*/
-
-/*-----Star----- */
-
-/* Icon */
-
-.ui.items > .item > .content .favorite.icon {
- cursor: pointer;
- opacity: 0.75;
- -webkit-transition: color 0.1s ease;
- transition: color 0.1s ease;
-}
-
-.ui.items > .item > .content .favorite.icon:hover {
- opacity: 1;
- color: #FFB70A;
-}
-
-.ui.items > .item > .content .active.favorite.icon {
- color: #FFE623;
-}
-
-/*-----Like----- */
-
-/* Icon */
-
-.ui.items > .item > .content .like.icon {
- cursor: pointer;
- opacity: 0.75;
- -webkit-transition: color 0.1s ease;
- transition: color 0.1s ease;
-}
-
-.ui.items > .item > .content .like.icon:hover {
- opacity: 1;
- color: #FF2733;
-}
-
-.ui.items > .item > .content .active.like.icon {
- color: #FF2733;
-}
-
-/*----------------
- Extra Content
------------------*/
-
-.ui.items > .item .extra {
- display: block;
- position: relative;
- background: none;
- margin: 0.5rem 0em 0em;
- width: 100%;
- padding: 0em 0em 0em;
- top: 0em;
- left: 0em;
- color: rgba(0, 0, 0, 0.4);
- -webkit-box-shadow: none;
- box-shadow: none;
- -webkit-transition: color 0.1s ease;
- transition: color 0.1s ease;
- border-top: none;
-}
-
-.ui.items > .item .extra > * {
- margin: 0.25rem 0.5rem 0.25rem 0em;
-}
-
-.ui.items > .item .extra > [class*="right floated"] {
- margin: 0.25rem 0em 0.25rem 0.5rem;
-}
-
-.ui.items > .item .extra:after {
- display: block;
- content: ' ';
- height: 0px;
- clear: both;
- overflow: hidden;
- visibility: hidden;
-}
-
-/*******************************
-         Responsive
-*******************************/
-
-/* Default Image Width */
-
-.ui.items > .item > .image:not(.ui) {
- width: 175px;
-}
-
-/* Tablet Only */
-
-@media only screen and (min-width: 768px) and (max-width: 991px) {
- .ui.items > .item {
-   margin: 1em 0em;
- }
-
- .ui.items > .item > .image:not(.ui) {
-   width: 150px;
- }
-
- .ui.items > .item > .image + .content {
-   display: block;
-   padding: 0em 0em 0em 1em;
- }
-}
-
-/* Mobile Only */
-
-@media only screen and (max-width: 767px) {
- .ui.items:not(.unstackable) > .item {
-   -webkit-box-orient: vertical;
-   -webkit-box-direction: normal;
-   -ms-flex-direction: column;
-   flex-direction: column;
-   margin: 2em 0em;
- }
-
- .ui.items:not(.unstackable) > .item > .image {
-   display: block;
-   margin-left: auto;
-   margin-right: auto;
- }
-
- .ui.items:not(.unstackable) > .item > .image,
- .ui.items:not(.unstackable) > .item > .image > img {
-   max-width: 100% !important;
-   width: auto !important;
-   max-height: 250px !important;
- }
-
- .ui.items:not(.unstackable) > .item > .image + .content {
-   display: block;
-   padding: 1.5em 0em 0em;
- }
-}
-
-/*******************************
-          Variations
-*******************************/
-
-/*-------------------
-      Aligned
---------------------*/
-
-.ui.items > .item > .image + [class*="top aligned"].content {
- -ms-flex-item-align: start;
- align-self: flex-start;
-}
-
-.ui.items > .item > .image + [class*="middle aligned"].content {
- -ms-flex-item-align: center;
- align-self: center;
-}
-
-.ui.items > .item > .image + [class*="bottom aligned"].content {
- -ms-flex-item-align: end;
- align-self: flex-end;
-}
-
-/*--------------
-    Relaxed
----------------*/
-
-.ui.relaxed.items > .item {
- margin: 1.5em 0em;
-}
-
-.ui[class*="very relaxed"].items > .item {
- margin: 2em 0em;
-}
-
-/*-------------------
-     Divided
---------------------*/
-
-.ui.divided.items > .item {
- border-top: 1px solid rgba(34, 36, 38, 0.15);
- margin: 0em;
- padding: 1em 0em;
-}
-
-.ui.divided.items > .item:first-child {
- border-top: none;
- margin-top: 0em !important;
- padding-top: 0em !important;
-}
-
-.ui.divided.items > .item:last-child {
- margin-bottom: 0em !important;
- padding-bottom: 0em !important;
-}
-
-/* Relaxed Divided */
-
-.ui.relaxed.divided.items > .item {
- margin: 0em;
- padding: 1.5em 0em;
-}
-
-.ui[class*="very relaxed"].divided.items > .item {
- margin: 0em;
- padding: 2em 0em;
-}
-
-/*-------------------
-       Link
---------------------*/
-
-.ui.items a.item:hover,
-.ui.link.items > .item:hover {
- cursor: pointer;
-}
-
-.ui.items a.item:hover .content .header,
-.ui.link.items > .item:hover .content .header {
- color: #1e70bf;
-}
-
-/*--------------
-     Size
----------------*/
-
-.ui.items > .item {
- font-size: 1em;
-}
-
-/*---------------
-  Unstackable
-----------------*/
-
-@media only screen and (max-width: 767px) {
- .ui.unstackable.items > .item > .image,
- .ui.unstackable.items > .item > .image > img {
-   width: 125px !important;
- }
-}
-
-/*******************************
-        Theme Overrides
-*******************************/
-
-/*******************************
-   User Variable Overrides
-*******************************/
-/*!
-* # Semantic UI 2.3.0 - Statistic
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-          Statistic
-*******************************/
-
-/* Standalone */
-
-.ui.statistic {
- display: -webkit-inline-box;
- display: -ms-inline-flexbox;
- display: inline-flex;
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
- margin: 1em 0em;
- max-width: auto;
-}
-
-.ui.statistic + .ui.statistic {
- margin: 0em 0em 0em 1.5em;
-}
-
-.ui.statistic:first-child {
- margin-top: 0em;
-}
-
-.ui.statistic:last-child {
- margin-bottom: 0em;
-}
-
-/*******************************
-           Group
-*******************************/
-
-/* Grouped */
-
-.ui.statistics {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: start;
- -ms-flex-align: start;
- align-items: flex-start;
- -ms-flex-wrap: wrap;
- flex-wrap: wrap;
-}
-
-.ui.statistics > .statistic {
- display: -webkit-inline-box;
- display: -ms-inline-flexbox;
- display: inline-flex;
- -webkit-box-flex: 0;
- -ms-flex: 0 1 auto;
- flex: 0 1 auto;
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
- margin: 0em 1.5em 2em;
- max-width: auto;
-}
-
-.ui.statistics {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- margin: 1em -1.5em -2em;
-}
-
-/* Clearing */
-
-.ui.statistics:after {
- display: block;
- content: ' ';
- height: 0px;
- clear: both;
- overflow: hidden;
- visibility: hidden;
-}
-
-.ui.statistics:first-child {
- margin-top: 0em;
-}
-
-.ui.statistics:last-child {
- margin-bottom: 0em;
-}
-
-/*******************************
-           Content
-*******************************/
-
-/*--------------
-     Value
----------------*/
-
-.ui.statistics .statistic > .value,
-.ui.statistic > .value {
- font-family: 'Lato', 'Helvetica Neue', Arial, Helvetica, sans-serif;
- font-size: 4rem;
- font-weight: normal;
- line-height: 1em;
- color: #1B1C1D;
- text-transform: uppercase;
- text-align: center;
-}
-
-/*--------------
-    Label
----------------*/
-
-.ui.statistics .statistic > .label,
-.ui.statistic > .label {
- font-family: 'Lato', 'Helvetica Neue', Arial, Helvetica, sans-serif;
- font-size: 1em;
- font-weight: bold;
- color: rgba(0, 0, 0, 0.87);
- text-transform: uppercase;
- text-align: center;
-}
-
-/* Top Label */
-
-.ui.statistics .statistic > .label ~ .value,
-.ui.statistic > .label ~ .value {
- margin-top: 0rem;
-}
-
-/* Bottom Label */
-
-.ui.statistics .statistic > .value ~ .label,
-.ui.statistic > .value ~ .label {
- margin-top: 0rem;
-}
-
-/*******************************
-            Types
-*******************************/
-
-/*--------------
-  Icon Value
----------------*/
-
-.ui.statistics .statistic > .value .icon,
-.ui.statistic > .value .icon {
- opacity: 1;
- width: auto;
- margin: 0em;
-}
-
-/*--------------
-  Text Value
----------------*/
-
-.ui.statistics .statistic > .text.value,
-.ui.statistic > .text.value {
- line-height: 1em;
- min-height: 2em;
- font-weight: bold;
- text-align: center;
-}
-
-.ui.statistics .statistic > .text.value + .label,
-.ui.statistic > .text.value + .label {
- text-align: center;
-}
-
-/*--------------
-  Image Value
----------------*/
-
-.ui.statistics .statistic > .value img,
-.ui.statistic > .value img {
- max-height: 3rem;
- vertical-align: baseline;
-}
-
-/*******************************
-           Variations
-*******************************/
-
-/*--------------
-     Count
----------------*/
-
-.ui.ten.statistics {
- margin: 0em 0em -2em;
-}
-
-.ui.ten.statistics .statistic {
- min-width: 10%;
- margin: 0em 0em 2em;
-}
-
-.ui.nine.statistics {
- margin: 0em 0em -2em;
-}
-
-.ui.nine.statistics .statistic {
- min-width: 11.11111111%;
- margin: 0em 0em 2em;
-}
-
-.ui.eight.statistics {
- margin: 0em 0em -2em;
-}
-
-.ui.eight.statistics .statistic {
- min-width: 12.5%;
- margin: 0em 0em 2em;
-}
-
-.ui.seven.statistics {
- margin: 0em 0em -2em;
-}
-
-.ui.seven.statistics .statistic {
- min-width: 14.28571429%;
- margin: 0em 0em 2em;
-}
-
-.ui.six.statistics {
- margin: 0em 0em -2em;
-}
-
-.ui.six.statistics .statistic {
- min-width: 16.66666667%;
- margin: 0em 0em 2em;
-}
-
-.ui.five.statistics {
- margin: 0em 0em -2em;
-}
-
-.ui.five.statistics .statistic {
- min-width: 20%;
- margin: 0em 0em 2em;
-}
-
-.ui.four.statistics {
- margin: 0em 0em -2em;
-}
-
-.ui.four.statistics .statistic {
- min-width: 25%;
- margin: 0em 0em 2em;
-}
-
-.ui.three.statistics {
- margin: 0em 0em -2em;
-}
-
-.ui.three.statistics .statistic {
- min-width: 33.33333333%;
- margin: 0em 0em 2em;
-}
-
-.ui.two.statistics {
- margin: 0em 0em -2em;
-}
-
-.ui.two.statistics .statistic {
- min-width: 50%;
- margin: 0em 0em 2em;
-}
-
-.ui.one.statistics {
- margin: 0em 0em -2em;
-}
-
-.ui.one.statistics .statistic {
- min-width: 100%;
- margin: 0em 0em 2em;
-}
-
-/*--------------
-  Horizontal
----------------*/
-
-.ui.horizontal.statistic {
- -webkit-box-orient: horizontal;
- -webkit-box-direction: normal;
- -ms-flex-direction: row;
- flex-direction: row;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
-}
-
-.ui.horizontal.statistics {
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
- margin: 0em;
- max-width: none;
-}
-
-.ui.horizontal.statistics .statistic {
- -webkit-box-orient: horizontal;
- -webkit-box-direction: normal;
- -ms-flex-direction: row;
- flex-direction: row;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- max-width: none;
- margin: 1em 0em;
-}
-
-.ui.horizontal.statistic > .text.value,
-.ui.horizontal.statistics > .statistic > .text.value {
- min-height: 0em !important;
-}
-
-.ui.horizontal.statistics .statistic > .value .icon,
-.ui.horizontal.statistic > .value .icon {
- width: 1.18em;
-}
-
-.ui.horizontal.statistics .statistic > .value,
-.ui.horizontal.statistic > .value {
- display: inline-block;
- vertical-align: middle;
-}
-
-.ui.horizontal.statistics .statistic > .label,
-.ui.horizontal.statistic > .label {
- display: inline-block;
- vertical-align: middle;
- margin: 0em 0em 0em 0.75em;
-}
-
-/*--------------
-    Colors
----------------*/
-
-.ui.red.statistics .statistic > .value,
-.ui.statistics .red.statistic > .value,
-.ui.red.statistic > .value {
- color: #DB2828;
-}
-
-.ui.orange.statistics .statistic > .value,
-.ui.statistics .orange.statistic > .value,
-.ui.orange.statistic > .value {
- color: #F2711C;
-}
-
-.ui.yellow.statistics .statistic > .value,
-.ui.statistics .yellow.statistic > .value,
-.ui.yellow.statistic > .value {
- color: #FBBD08;
-}
-
-.ui.olive.statistics .statistic > .value,
-.ui.statistics .olive.statistic > .value,
-.ui.olive.statistic > .value {
- color: #B5CC18;
-}
-
-.ui.green.statistics .statistic > .value,
-.ui.statistics .green.statistic > .value,
-.ui.green.statistic > .value {
- color: #21BA45;
-}
-
-.ui.teal.statistics .statistic > .value,
-.ui.statistics .teal.statistic > .value,
-.ui.teal.statistic > .value {
- color: #00B5AD;
-}
-
-.ui.blue.statistics .statistic > .value,
-.ui.statistics .blue.statistic > .value,
-.ui.blue.statistic > .value {
- color: #2185D0;
-}
-
-.ui.violet.statistics .statistic > .value,
-.ui.statistics .violet.statistic > .value,
-.ui.violet.statistic > .value {
- color: #6435C9;
-}
-
-.ui.purple.statistics .statistic > .value,
-.ui.statistics .purple.statistic > .value,
-.ui.purple.statistic > .value {
- color: #A333C8;
-}
-
-.ui.pink.statistics .statistic > .value,
-.ui.statistics .pink.statistic > .value,
-.ui.pink.statistic > .value {
- color: #E03997;
-}
-
-.ui.brown.statistics .statistic > .value,
-.ui.statistics .brown.statistic > .value,
-.ui.brown.statistic > .value {
- color: #A5673F;
-}
-
-.ui.grey.statistics .statistic > .value,
-.ui.statistics .grey.statistic > .value,
-.ui.grey.statistic > .value {
- color: #767676;
-}
-
-/*--------------
-   Inverted
----------------*/
-
-.ui.inverted.statistics .statistic > .value,
-.ui.inverted.statistic .value {
- color: #FFFFFF;
-}
-
-.ui.inverted.statistics .statistic > .label,
-.ui.inverted.statistic .label {
- color: rgba(255, 255, 255, 0.9);
-}
-
-.ui.inverted.red.statistics .statistic > .value,
-.ui.statistics .inverted.red.statistic > .value,
-.ui.inverted.red.statistic > .value {
- color: #FF695E;
-}
-
-.ui.inverted.orange.statistics .statistic > .value,
-.ui.statistics .inverted.orange.statistic > .value,
-.ui.inverted.orange.statistic > .value {
- color: #FF851B;
-}
-
-.ui.inverted.yellow.statistics .statistic > .value,
-.ui.statistics .inverted.yellow.statistic > .value,
-.ui.inverted.yellow.statistic > .value {
- color: #FFE21F;
-}
-
-.ui.inverted.olive.statistics .statistic > .value,
-.ui.statistics .inverted.olive.statistic > .value,
-.ui.inverted.olive.statistic > .value {
- color: #D9E778;
-}
-
-.ui.inverted.green.statistics .statistic > .value,
-.ui.statistics .inverted.green.statistic > .value,
-.ui.inverted.green.statistic > .value {
- color: #2ECC40;
-}
-
-.ui.inverted.teal.statistics .statistic > .value,
-.ui.statistics .inverted.teal.statistic > .value,
-.ui.inverted.teal.statistic > .value {
- color: #6DFFFF;
-}
-
-.ui.inverted.blue.statistics .statistic > .value,
-.ui.statistics .inverted.blue.statistic > .value,
-.ui.inverted.blue.statistic > .value {
- color: #54C8FF;
-}
-
-.ui.inverted.violet.statistics .statistic > .value,
-.ui.statistics .inverted.violet.statistic > .value,
-.ui.inverted.violet.statistic > .value {
- color: #A291FB;
-}
-
-.ui.inverted.purple.statistics .statistic > .value,
-.ui.statistics .inverted.purple.statistic > .value,
-.ui.inverted.purple.statistic > .value {
- color: #DC73FF;
-}
-
-.ui.inverted.pink.statistics .statistic > .value,
-.ui.statistics .inverted.pink.statistic > .value,
-.ui.inverted.pink.statistic > .value {
- color: #FF8EDF;
-}
-
-.ui.inverted.brown.statistics .statistic > .value,
-.ui.statistics .inverted.brown.statistic > .value,
-.ui.inverted.brown.statistic > .value {
- color: #D67C1C;
-}
-
-.ui.inverted.grey.statistics .statistic > .value,
-.ui.statistics .inverted.grey.statistic > .value,
-.ui.inverted.grey.statistic > .value {
- color: #DCDDDE;
-}
-
-/*--------------
-   Floated
----------------*/
-
-.ui[class*="left floated"].statistic {
- float: left;
- margin: 0em 2em 1em 0em;
-}
-
-.ui[class*="right floated"].statistic {
- float: right;
- margin: 0em 0em 1em 2em;
-}
-
-.ui.floated.statistic:last-child {
- margin-bottom: 0em;
-}
-
-/*--------------
-    Sizes
----------------*/
-
-/* Mini */
-
-.ui.mini.statistics .statistic > .value,
-.ui.mini.statistic > .value {
- font-size: 1.5rem !important;
-}
-
-.ui.mini.horizontal.statistics .statistic > .value,
-.ui.mini.horizontal.statistic > .value {
- font-size: 1.5rem !important;
-}
-
-.ui.mini.statistics .statistic > .text.value,
-.ui.mini.statistic > .text.value {
- font-size: 1rem !important;
-}
-
-/* Tiny */
-
-.ui.tiny.statistics .statistic > .value,
-.ui.tiny.statistic > .value {
- font-size: 2rem !important;
-}
-
-.ui.tiny.horizontal.statistics .statistic > .value,
-.ui.tiny.horizontal.statistic > .value {
- font-size: 2rem !important;
-}
-
-.ui.tiny.statistics .statistic > .text.value,
-.ui.tiny.statistic > .text.value {
- font-size: 1rem !important;
-}
-
-/* Small */
-
-.ui.small.statistics .statistic > .value,
-.ui.small.statistic > .value {
- font-size: 3rem !important;
-}
-
-.ui.small.horizontal.statistics .statistic > .value,
-.ui.small.horizontal.statistic > .value {
- font-size: 2rem !important;
-}
-
-.ui.small.statistics .statistic > .text.value,
-.ui.small.statistic > .text.value {
- font-size: 1rem !important;
-}
-
-/* Medium */
-
-.ui.statistics .statistic > .value,
-.ui.statistic > .value {
- font-size: 4rem !important;
-}
-
-.ui.horizontal.statistics .statistic > .value,
-.ui.horizontal.statistic > .value {
- font-size: 3rem !important;
-}
-
-.ui.statistics .statistic > .text.value,
-.ui.statistic > .text.value {
- font-size: 2rem !important;
-}
-
-/* Large */
-
-.ui.large.statistics .statistic > .value,
-.ui.large.statistic > .value {
- font-size: 5rem !important;
-}
-
-.ui.large.horizontal.statistics .statistic > .value,
-.ui.large.horizontal.statistic > .value {
- font-size: 4rem !important;
-}
-
-.ui.large.statistics .statistic > .text.value,
-.ui.large.statistic > .text.value {
- font-size: 2.5rem !important;
-}
-
-/* Huge */
-
-.ui.huge.statistics .statistic > .value,
-.ui.huge.statistic > .value {
- font-size: 6rem !important;
-}
-
-.ui.huge.horizontal.statistics .statistic > .value,
-.ui.huge.horizontal.statistic > .value {
- font-size: 5rem !important;
-}
-
-.ui.huge.statistics .statistic > .text.value,
-.ui.huge.statistic > .text.value {
- font-size: 2.5rem !important;
-}
-
-/*******************************
-        Theme Overrides
-*******************************/
-
-/*******************************
-   User Variable Overrides
-*******************************/
-/*!
-* # Semantic UI 2.3.0 - Accordion
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-           Accordion
-*******************************/
-
-.ui.accordion,
-.ui.accordion .accordion {
- max-width: 100%;
-}
-
-.ui.accordion .accordion {
- margin: 1em 0em 0em;
- padding: 0em;
-}
-
-/* Title */
-
-.ui.accordion .title,
-.ui.accordion .accordion .title {
- cursor: pointer;
-}
-
-/* Default Styling */
-
-.ui.accordion .title:not(.ui) {
- padding: 0.5em 0em;
- font-family: 'Lato', 'Helvetica Neue', Arial, Helvetica, sans-serif;
- font-size: 1em;
- color: rgba(0, 0, 0, 0.87);
-}
-
-/* Content */
-
-.ui.accordion .title ~ .content,
-.ui.accordion .accordion .title ~ .content {
- display: none;
-}
-
-/* Default Styling */
-
-.ui.accordion:not(.styled) .title ~ .content:not(.ui),
-.ui.accordion:not(.styled) .accordion .title ~ .content:not(.ui) {
- margin: '';
- padding: 0.5em 0em 1em;
-}
-
-.ui.accordion:not(.styled) .title ~ .content:not(.ui):last-child {
- padding-bottom: 0em;
-}
-
-/* Arrow */
-
-.ui.accordion .title .dropdown.icon,
-.ui.accordion .accordion .title .dropdown.icon {
- display: inline-block;
- float: none;
- opacity: 1;
- width: 1.25em;
- height: 1em;
- margin: 0em 0.25rem 0em 0rem;
- padding: 0em;
- font-size: 1em;
- -webkit-transition: opacity 0.1s ease, -webkit-transform 0.1s ease;
- transition: opacity 0.1s ease, -webkit-transform 0.1s ease;
- transition: transform 0.1s ease, opacity 0.1s ease;
- transition: transform 0.1s ease, opacity 0.1s ease, -webkit-transform 0.1s ease;
- vertical-align: baseline;
- -webkit-transform: none;
- transform: none;
-}
-
-/*--------------
-   Coupling
----------------*/
-
-/* Menu */
-
-.ui.accordion.menu .item .title {
- display: block;
- padding: 0em;
-}
-
-.ui.accordion.menu .item .title > .dropdown.icon {
- float: right;
- margin: 0.21425em 0em 0em 1em;
- -webkit-transform: rotate(180deg);
- transform: rotate(180deg);
-}
-
-/* Header */
-
-.ui.accordion .ui.header .dropdown.icon {
- font-size: 1em;
- margin: 0em 0.25rem 0em 0rem;
-}
-
-/*******************************
-           States
-*******************************/
-
-.ui.accordion .active.title .dropdown.icon,
-.ui.accordion .accordion .active.title .dropdown.icon {
- -webkit-transform: rotate(90deg);
- transform: rotate(90deg);
-}
-
-.ui.accordion.menu .item .active.title > .dropdown.icon {
- -webkit-transform: rotate(90deg);
- transform: rotate(90deg);
-}
-
-/*******************************
-           Types
-*******************************/
-
-/*--------------
-    Styled
----------------*/
-
-.ui.styled.accordion {
- width: 600px;
-}
-
-.ui.styled.accordion,
-.ui.styled.accordion .accordion {
- border-radius: 0.28571429rem;
- background: #FFFFFF;
- -webkit-box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15), 0px 0px 0px 1px rgba(34, 36, 38, 0.15);
- box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15), 0px 0px 0px 1px rgba(34, 36, 38, 0.15);
-}
-
-.ui.styled.accordion .title,
-.ui.styled.accordion .accordion .title {
- margin: 0em;
- padding: 0.75em 1em;
- color: rgba(0, 0, 0, 0.4);
- font-weight: bold;
- border-top: 1px solid rgba(34, 36, 38, 0.15);
- -webkit-transition: background 0.1s ease, color 0.1s ease;
- transition: background 0.1s ease, color 0.1s ease;
-}
-
-.ui.styled.accordion > .title:first-child,
-.ui.styled.accordion .accordion .title:first-child {
- border-top: none;
-}
-
-/* Content */
-
-.ui.styled.accordion .content,
-.ui.styled.accordion .accordion .content {
- margin: 0em;
- padding: 0.5em 1em 1.5em;
-}
-
-.ui.styled.accordion .accordion .content {
- padding: 0em;
- padding: 0.5em 1em 1.5em;
-}
-
-/* Hover */
-
-.ui.styled.accordion .title:hover,
-.ui.styled.accordion .active.title,
-.ui.styled.accordion .accordion .title:hover,
-.ui.styled.accordion .accordion .active.title {
- background: transparent;
- color: rgba(0, 0, 0, 0.87);
-}
-
-.ui.styled.accordion .accordion .title:hover,
-.ui.styled.accordion .accordion .active.title {
- background: transparent;
- color: rgba(0, 0, 0, 0.87);
-}
-
-/* Active */
-
-.ui.styled.accordion .active.title {
- background: transparent;
- color: rgba(0, 0, 0, 0.95);
-}
-
-.ui.styled.accordion .accordion .active.title {
- background: transparent;
- color: rgba(0, 0, 0, 0.95);
-}
-
-/*******************************
-           States
-*******************************/
-
-/*--------------
-    Active
----------------*/
-
-.ui.accordion .active.content,
-.ui.accordion .accordion .active.content {
- display: block;
-}
-
-/*******************************
-          Variations
-*******************************/
-
-/*--------------
-    Fluid
----------------*/
-
-.ui.fluid.accordion,
-.ui.fluid.accordion .accordion {
- width: 100%;
-}
-
-/*--------------
-    Inverted
----------------*/
-
-.ui.inverted.accordion .title:not(.ui) {
- color: rgba(255, 255, 255, 0.9);
-}
-
-/*******************************
-        Theme Overrides
-*******************************/
-
-@font-face {
- font-family: 'Accordion';
- src: url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMggjB5AAAAC8AAAAYGNtYXAPfOIKAAABHAAAAExnYXNwAAAAEAAAAWgAAAAIZ2x5Zryj6HgAAAFwAAAAyGhlYWT/0IhHAAACOAAAADZoaGVhApkB5wAAAnAAAAAkaG10eAJuABIAAAKUAAAAGGxvY2EAjABWAAACrAAAAA5tYXhwAAgAFgAAArwAAAAgbmFtZfC1n04AAALcAAABPHBvc3QAAwAAAAAEGAAAACAAAwIAAZAABQAAAUwBZgAAAEcBTAFmAAAA9QAZAIQAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADw2gHg/+D/4AHgACAAAAABAAAAAAAAAAAAAAAgAAAAAAACAAAAAwAAABQAAwABAAAAFAAEADgAAAAKAAgAAgACAAEAIPDa//3//wAAAAAAIPDZ//3//wAB/+MPKwADAAEAAAAAAAAAAAAAAAEAAf//AA8AAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQASAEkAtwFuABMAADc0PwE2FzYXFh0BFAcGJwYvASY1EgaABQgHBQYGBQcIBYAG2wcGfwcBAQcECf8IBAcBAQd/BgYAAAAAAQAAAEkApQFuABMAADcRNDc2MzIfARYVFA8BBiMiJyY1AAUGBwgFgAYGgAUIBwYFWwEACAUGBoAFCAcFgAYGBQcAAAABAAAAAQAAqWYls18PPPUACwIAAAAAAM/9o+4AAAAAz/2j7gAAAAAAtwFuAAAACAACAAAAAAAAAAEAAAHg/+AAAAIAAAAAAAC3AAEAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAQAAAAC3ABIAtwAAAAAAAAAKABQAHgBCAGQAAAABAAAABgAUAAEAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAADgCuAAEAAAAAAAEADAAAAAEAAAAAAAIADgBAAAEAAAAAAAMADAAiAAEAAAAAAAQADABOAAEAAAAAAAUAFgAMAAEAAAAAAAYABgAuAAEAAAAAAAoANABaAAMAAQQJAAEADAAAAAMAAQQJAAIADgBAAAMAAQQJAAMADAAiAAMAAQQJAAQADABOAAMAAQQJAAUAFgAMAAMAAQQJAAYADAA0AAMAAQQJAAoANABaAHIAYQB0AGkAbgBnAFYAZQByAHMAaQBvAG4AIAAxAC4AMAByAGEAdABpAG4AZ3JhdGluZwByAGEAdABpAG4AZwBSAGUAZwB1AGwAYQByAHIAYQB0AGkAbgBnAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format('truetype'), url(data:application/font-woff;charset=utf-8;base64,d09GRk9UVE8AAASwAAoAAAAABGgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABDRkYgAAAA9AAAAS0AAAEtFpovuE9TLzIAAAIkAAAAYAAAAGAIIweQY21hcAAAAoQAAABMAAAATA984gpnYXNwAAAC0AAAAAgAAAAIAAAAEGhlYWQAAALYAAAANgAAADb/0IhHaGhlYQAAAxAAAAAkAAAAJAKZAedobXR4AAADNAAAABgAAAAYAm4AEm1heHAAAANMAAAABgAAAAYABlAAbmFtZQAAA1QAAAE8AAABPPC1n05wb3N0AAAEkAAAACAAAAAgAAMAAAEABAQAAQEBB3JhdGluZwABAgABADr4HAL4GwP4GAQeCgAZU/+Lix4KABlT/4uLDAeLa/iU+HQFHQAAAHkPHQAAAH4RHQAAAAkdAAABJBIABwEBBw0PERQZHnJhdGluZ3JhdGluZ3UwdTF1MjB1RjBEOXVGMERBAAACAYkABAAGAQEEBwoNVp38lA78lA78lA77lA773Z33bxWLkI2Qj44I9xT3FAWOj5CNkIuQi4+JjoePiI2Gi4YIi/uUBYuGiYeHiIiHh4mGi4aLho2Ijwj7FPcUBYeOiY+LkAgO+92L5hWL95QFi5CNkI6Oj4+PjZCLkIuQiY6HCPcU+xQFj4iNhouGi4aJh4eICPsU+xQFiIeGiYaLhouHjYePiI6Jj4uQCA74lBT4lBWLDAoAAAAAAwIAAZAABQAAAUwBZgAAAEcBTAFmAAAA9QAZAIQAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADw2gHg/+D/4AHgACAAAAABAAAAAAAAAAAAAAAgAAAAAAACAAAAAwAAABQAAwABAAAAFAAEADgAAAAKAAgAAgACAAEAIPDa//3//wAAAAAAIPDZ//3//wAB/+MPKwADAAEAAAAAAAAAAAAAAAEAAf//AA8AAQAAAAEAADfYOJZfDzz1AAsCAAAAAADP/aPuAAAAAM/9o+4AAAAAALcBbgAAAAgAAgAAAAAAAAABAAAB4P/gAAACAAAAAAAAtwABAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAEAAAAAtwASALcAAAAAUAAABgAAAAAADgCuAAEAAAAAAAEADAAAAAEAAAAAAAIADgBAAAEAAAAAAAMADAAiAAEAAAAAAAQADABOAAEAAAAAAAUAFgAMAAEAAAAAAAYABgAuAAEAAAAAAAoANABaAAMAAQQJAAEADAAAAAMAAQQJAAIADgBAAAMAAQQJAAMADAAiAAMAAQQJAAQADABOAAMAAQQJAAUAFgAMAAMAAQQJAAYADAA0AAMAAQQJAAoANABaAHIAYQB0AGkAbgBnAFYAZQByAHMAaQBvAG4AIAAxAC4AMAByAGEAdABpAG4AZ3JhdGluZwByAGEAdABpAG4AZwBSAGUAZwB1AGwAYQByAHIAYQB0AGkAbgBnAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format('woff');
- font-weight: normal;
- font-style: normal;
-}
-
-/* Dropdown Icon */
-
-.ui.accordion .title .dropdown.icon,
-.ui.accordion .accordion .title .dropdown.icon {
- font-family: Accordion;
- line-height: 1;
- -webkit-backface-visibility: hidden;
- backface-visibility: hidden;
- font-weight: normal;
- font-style: normal;
- text-align: center;
-}
-
-.ui.accordion .title .dropdown.icon:before,
-.ui.accordion .accordion .title .dropdown.icon:before {
- content: '\f0da' ;
-}
-
-/*******************************
-       User Overrides
-*******************************/
-/*!
-* # Semantic UI 2.3.0 - Checkbox
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-          Checkbox
-*******************************/
-
-/*--------------
-   Content
----------------*/
-
-.ui.checkbox {
- position: relative;
- display: inline-block;
- -webkit-backface-visibility: hidden;
- backface-visibility: hidden;
- outline: none;
- vertical-align: baseline;
- font-style: normal;
- min-height: 17px;
- font-size: 1rem;
- line-height: 17px;
- min-width: 17px;
-}
-
-/* HTML Checkbox */
-
-.ui.checkbox input[type="checkbox"],
-.ui.checkbox input[type="radio"] {
- cursor: pointer;
- position: absolute;
- top: 0px;
- left: 0px;
- opacity: 0 !important;
- outline: none;
- z-index: 3;
- width: 17px;
- height: 17px;
-}
-
-/*--------------
-     Box
----------------*/
-
-.ui.checkbox .box,
-.ui.checkbox label {
- cursor: auto;
- position: relative;
- display: block;
- padding-left: 1.85714em;
- outline: none;
- font-size: 1em;
-}
-
-.ui.checkbox .box:before,
-.ui.checkbox label:before {
- position: absolute;
- top: 0px;
- left: 0px;
- width: 17px;
- height: 17px;
- content: '';
- background: #FFFFFF;
- border-radius: 0.21428571rem;
- -webkit-transition: border 0.1s ease, opacity 0.1s ease, -webkit-transform 0.1s ease, -webkit-box-shadow 0.1s ease;
- transition: border 0.1s ease, opacity 0.1s ease, -webkit-transform 0.1s ease, -webkit-box-shadow 0.1s ease;
- transition: border 0.1s ease, opacity 0.1s ease, transform 0.1s ease, box-shadow 0.1s ease;
- transition: border 0.1s ease, opacity 0.1s ease, transform 0.1s ease, box-shadow 0.1s ease, -webkit-transform 0.1s ease, -webkit-box-shadow 0.1s ease;
- border: 1px solid #D4D4D5;
-}
-
-/*--------------
-   Checkmark
----------------*/
-
-.ui.checkbox .box:after,
-.ui.checkbox label:after {
- position: absolute;
- font-size: 14px;
- top: 0px;
- left: 0px;
- width: 17px;
- height: 17px;
- text-align: center;
- opacity: 0;
- color: rgba(0, 0, 0, 0.87);
- -webkit-transition: border 0.1s ease, opacity 0.1s ease, -webkit-transform 0.1s ease, -webkit-box-shadow 0.1s ease;
- transition: border 0.1s ease, opacity 0.1s ease, -webkit-transform 0.1s ease, -webkit-box-shadow 0.1s ease;
- transition: border 0.1s ease, opacity 0.1s ease, transform 0.1s ease, box-shadow 0.1s ease;
- transition: border 0.1s ease, opacity 0.1s ease, transform 0.1s ease, box-shadow 0.1s ease, -webkit-transform 0.1s ease, -webkit-box-shadow 0.1s ease;
-}
-
-/*--------------
-     Label
----------------*/
-
-/* Inside */
-
-.ui.checkbox label,
-.ui.checkbox + label {
- color: rgba(0, 0, 0, 0.87);
- -webkit-transition: color 0.1s ease;
- transition: color 0.1s ease;
-}
-
-/* Outside */
-
-.ui.checkbox + label {
- vertical-align: middle;
-}
-
-/*******************************
-          States
-*******************************/
-
-/*--------------
-     Hover
----------------*/
-
-.ui.checkbox .box:hover::before,
-.ui.checkbox label:hover::before {
- background: #FFFFFF;
- border-color: rgba(34, 36, 38, 0.35);
-}
-
-.ui.checkbox label:hover,
-.ui.checkbox + label:hover {
- color: rgba(0, 0, 0, 0.8);
-}
-
-/*--------------
-     Down
----------------*/
-
-.ui.checkbox .box:active::before,
-.ui.checkbox label:active::before {
- background: #F9FAFB;
- border-color: rgba(34, 36, 38, 0.35);
-}
-
-.ui.checkbox .box:active::after,
-.ui.checkbox label:active::after {
- color: rgba(0, 0, 0, 0.95);
-}
-
-.ui.checkbox input:active ~ label {
- color: rgba(0, 0, 0, 0.95);
-}
-
-/*--------------
-    Focus
----------------*/
-
-.ui.checkbox input:focus ~ .box:before,
-.ui.checkbox input:focus ~ label:before {
- background: #FFFFFF;
- border-color: #96C8DA;
-}
-
-.ui.checkbox input:focus ~ .box:after,
-.ui.checkbox input:focus ~ label:after {
- color: rgba(0, 0, 0, 0.95);
-}
-
-.ui.checkbox input:focus ~ label {
- color: rgba(0, 0, 0, 0.95);
-}
-
-/*--------------
-    Active
----------------*/
-
-.ui.checkbox input:checked ~ .box:before,
-.ui.checkbox input:checked ~ label:before {
- background: #FFFFFF;
- border-color: rgba(34, 36, 38, 0.35);
-}
-
-.ui.checkbox input:checked ~ .box:after,
-.ui.checkbox input:checked ~ label:after {
- opacity: 1;
- color: rgba(0, 0, 0, 0.95);
-}
-
-/*--------------
- Indeterminate
----------------*/
-
-.ui.checkbox input:not([type=radio]):indeterminate ~ .box:before,
-.ui.checkbox input:not([type=radio]):indeterminate ~ label:before {
- background: #FFFFFF;
- border-color: rgba(34, 36, 38, 0.35);
-}
-
-.ui.checkbox input:not([type=radio]):indeterminate ~ .box:after,
-.ui.checkbox input:not([type=radio]):indeterminate ~ label:after {
- opacity: 1;
- color: rgba(0, 0, 0, 0.95);
-}
-
-/*--------------
- Active Focus
----------------*/
-
-.ui.checkbox input:not([type=radio]):indeterminate:focus ~ .box:before,
-.ui.checkbox input:not([type=radio]):indeterminate:focus ~ label:before,
-.ui.checkbox input:checked:focus ~ .box:before,
-.ui.checkbox input:checked:focus ~ label:before {
- background: #FFFFFF;
- border-color: #96C8DA;
-}
-
-.ui.checkbox input:not([type=radio]):indeterminate:focus ~ .box:after,
-.ui.checkbox input:not([type=radio]):indeterminate:focus ~ label:after,
-.ui.checkbox input:checked:focus ~ .box:after,
-.ui.checkbox input:checked:focus ~ label:after {
- color: rgba(0, 0, 0, 0.95);
-}
-
-/*--------------
-   Read-Only
----------------*/
-
-.ui.read-only.checkbox,
-.ui.read-only.checkbox label {
- cursor: default;
-}
-
-/*--------------
-    Disabled
----------------*/
-
-.ui.disabled.checkbox .box:after,
-.ui.disabled.checkbox label,
-.ui.checkbox input[disabled] ~ .box:after,
-.ui.checkbox input[disabled] ~ label {
- cursor: default !important;
- opacity: 0.5;
- color: #000000;
-}
-
-/*--------------
-    Hidden
----------------*/
-
-/* Initialized checkbox moves input below element
-to prevent manually triggering */
-
-.ui.checkbox input.hidden {
- z-index: -1;
-}
-
-/* Selectable Label */
-
-.ui.checkbox input.hidden + label {
- cursor: pointer;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-
-/*******************************
-            Types
-*******************************/
-
-/*--------------
-    Radio
----------------*/
-
-.ui.radio.checkbox {
- min-height: 15px;
-}
-
-.ui.radio.checkbox .box,
-.ui.radio.checkbox label {
- padding-left: 1.85714em;
-}
-
-/* Box */
-
-.ui.radio.checkbox .box:before,
-.ui.radio.checkbox label:before {
- content: '';
- -webkit-transform: none;
- transform: none;
- width: 15px;
- height: 15px;
- border-radius: 500rem;
- top: 1px;
- left: 0px;
-}
-
-/* Bullet */
-
-.ui.radio.checkbox .box:after,
-.ui.radio.checkbox label:after {
- border: none;
- content: '' !important;
- width: 15px;
- height: 15px;
- line-height: 15px;
-}
-
-/* Radio Checkbox */
-
-.ui.radio.checkbox .box:after,
-.ui.radio.checkbox label:after {
- top: 1px;
- left: 0px;
- width: 15px;
- height: 15px;
- border-radius: 500rem;
- -webkit-transform: scale(0.46666667);
- transform: scale(0.46666667);
- background-color: rgba(0, 0, 0, 0.87);
-}
-
-/* Focus */
-
-.ui.radio.checkbox input:focus ~ .box:before,
-.ui.radio.checkbox input:focus ~ label:before {
- background-color: #FFFFFF;
-}
-
-.ui.radio.checkbox input:focus ~ .box:after,
-.ui.radio.checkbox input:focus ~ label:after {
- background-color: rgba(0, 0, 0, 0.95);
-}
-
-/* Indeterminate */
-
-.ui.radio.checkbox input:indeterminate ~ .box:after,
-.ui.radio.checkbox input:indeterminate ~ label:after {
- opacity: 0;
-}
-
-/* Active */
-
-.ui.radio.checkbox input:checked ~ .box:before,
-.ui.radio.checkbox input:checked ~ label:before {
- background-color: #FFFFFF;
-}
-
-.ui.radio.checkbox input:checked ~ .box:after,
-.ui.radio.checkbox input:checked ~ label:after {
- background-color: rgba(0, 0, 0, 0.95);
-}
-
-/* Active Focus */
-
-.ui.radio.checkbox input:focus:checked ~ .box:before,
-.ui.radio.checkbox input:focus:checked ~ label:before {
- background-color: #FFFFFF;
-}
-
-.ui.radio.checkbox input:focus:checked ~ .box:after,
-.ui.radio.checkbox input:focus:checked ~ label:after {
- background-color: rgba(0, 0, 0, 0.95);
-}
-
-/*--------------
-    Slider
----------------*/
-
-.ui.slider.checkbox {
- min-height: 1.25rem;
-}
-
-/* Input */
-
-.ui.slider.checkbox input {
- width: 3.5rem;
- height: 1.25rem;
-}
-
-/* Label */
-
-.ui.slider.checkbox .box,
-.ui.slider.checkbox label {
- padding-left: 4.5rem;
- line-height: 1rem;
- color: rgba(0, 0, 0, 0.4);
-}
-
-/* Line */
-
-.ui.slider.checkbox .box:before,
-.ui.slider.checkbox label:before {
- display: block;
- position: absolute;
- content: '';
- border: none !important;
- left: 0em;
- z-index: 1;
- top: 0.4rem;
- background-color: rgba(0, 0, 0, 0.05);
- width: 3.5rem;
- height: 0.21428571rem;
- -webkit-transform: none;
- transform: none;
- border-radius: 500rem;
- -webkit-transition: background 0.3s ease;
- transition: background 0.3s ease;
-}
-
-/* Handle */
-
-.ui.slider.checkbox .box:after,
-.ui.slider.checkbox label:after {
- background: #FFFFFF -webkit-gradient(linear, left top, left bottom, from(transparent), to(rgba(0, 0, 0, 0.05)));
- background: #FFFFFF -webkit-linear-gradient(transparent, rgba(0, 0, 0, 0.05));
- background: #FFFFFF linear-gradient(transparent, rgba(0, 0, 0, 0.05));
- position: absolute;
- content: '' !important;
- opacity: 1;
- z-index: 2;
- border: none;
- -webkit-box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15), 0px 0px 0px 1px rgba(34, 36, 38, 0.15) inset;
- box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15), 0px 0px 0px 1px rgba(34, 36, 38, 0.15) inset;
- width: 1.5rem;
- height: 1.5rem;
- top: -0.25rem;
- left: 0em;
- -webkit-transform: none;
- transform: none;
- border-radius: 500rem;
- -webkit-transition: left 0.3s ease;
- transition: left 0.3s ease;
-}
-
-/* Focus */
-
-.ui.slider.checkbox input:focus ~ .box:before,
-.ui.slider.checkbox input:focus ~ label:before {
- background-color: rgba(0, 0, 0, 0.15);
- border: none;
-}
-
-/* Hover */
-
-.ui.slider.checkbox .box:hover,
-.ui.slider.checkbox label:hover {
- color: rgba(0, 0, 0, 0.8);
-}
-
-.ui.slider.checkbox .box:hover::before,
-.ui.slider.checkbox label:hover::before {
- background: rgba(0, 0, 0, 0.15);
-}
-
-/* Active */
-
-.ui.slider.checkbox input:checked ~ .box,
-.ui.slider.checkbox input:checked ~ label {
- color: rgba(0, 0, 0, 0.95) !important;
-}
-
-.ui.slider.checkbox input:checked ~ .box:before,
-.ui.slider.checkbox input:checked ~ label:before {
- background-color: #545454 !important;
-}
-
-.ui.slider.checkbox input:checked ~ .box:after,
-.ui.slider.checkbox input:checked ~ label:after {
- left: 2rem;
-}
-
-/* Active Focus */
-
-.ui.slider.checkbox input:focus:checked ~ .box,
-.ui.slider.checkbox input:focus:checked ~ label {
- color: rgba(0, 0, 0, 0.95) !important;
-}
-
-.ui.slider.checkbox input:focus:checked ~ .box:before,
-.ui.slider.checkbox input:focus:checked ~ label:before {
- background-color: #000000 !important;
-}
-
-/*--------------
-    Toggle
----------------*/
-
-.ui.toggle.checkbox {
- min-height: 1.5rem;
-}
-
-/* Input */
-
-.ui.toggle.checkbox input {
- width: 3.5rem;
- height: 1.5rem;
-}
-
-/* Label */
-
-.ui.toggle.checkbox .box,
-.ui.toggle.checkbox label {
- min-height: 1.5rem;
- padding-left: 4.5rem;
- color: rgba(0, 0, 0, 0.87);
-}
-
-.ui.toggle.checkbox label {
- padding-top: 0.15em;
-}
-
-/* Switch */
-
-.ui.toggle.checkbox .box:before,
-.ui.toggle.checkbox label:before {
- display: block;
- position: absolute;
- content: '';
- z-index: 1;
- -webkit-transform: none;
- transform: none;
- border: none;
- top: 0rem;
- background: rgba(0, 0, 0, 0.05);
- -webkit-box-shadow: none;
- box-shadow: none;
- width: 3.5rem;
- height: 1.5rem;
- border-radius: 500rem;
-}
-
-/* Handle */
-
-.ui.toggle.checkbox .box:after,
-.ui.toggle.checkbox label:after {
- background: #FFFFFF -webkit-gradient(linear, left top, left bottom, from(transparent), to(rgba(0, 0, 0, 0.05)));
- background: #FFFFFF -webkit-linear-gradient(transparent, rgba(0, 0, 0, 0.05));
- background: #FFFFFF linear-gradient(transparent, rgba(0, 0, 0, 0.05));
- position: absolute;
- content: '' !important;
- opacity: 1;
- z-index: 2;
- border: none;
- -webkit-box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15), 0px 0px 0px 1px rgba(34, 36, 38, 0.15) inset;
- box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15), 0px 0px 0px 1px rgba(34, 36, 38, 0.15) inset;
- width: 1.5rem;
- height: 1.5rem;
- top: 0rem;
- left: 0em;
- border-radius: 500rem;
- -webkit-transition: background 0.3s ease, left 0.3s ease;
- transition: background 0.3s ease, left 0.3s ease;
-}
-
-.ui.toggle.checkbox input ~ .box:after,
-.ui.toggle.checkbox input ~ label:after {
- left: -0.05rem;
- -webkit-box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15), 0px 0px 0px 1px rgba(34, 36, 38, 0.15) inset;
- box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15), 0px 0px 0px 1px rgba(34, 36, 38, 0.15) inset;
-}
-
-/* Focus */
-
-.ui.toggle.checkbox input:focus ~ .box:before,
-.ui.toggle.checkbox input:focus ~ label:before {
- background-color: rgba(0, 0, 0, 0.15);
- border: none;
-}
-
-/* Hover */
-
-.ui.toggle.checkbox .box:hover::before,
-.ui.toggle.checkbox label:hover::before {
- background-color: rgba(0, 0, 0, 0.15);
- border: none;
-}
-
-/* Active */
-
-.ui.toggle.checkbox input:checked ~ .box,
-.ui.toggle.checkbox input:checked ~ label {
- color: rgba(0, 0, 0, 0.95) !important;
-}
-
-.ui.toggle.checkbox input:checked ~ .box:before,
-.ui.toggle.checkbox input:checked ~ label:before {
- background-color: #2185D0 !important;
-}
-
-.ui.toggle.checkbox input:checked ~ .box:after,
-.ui.toggle.checkbox input:checked ~ label:after {
- left: 2.15rem;
- -webkit-box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15), 0px 0px 0px 1px rgba(34, 36, 38, 0.15) inset;
- box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15), 0px 0px 0px 1px rgba(34, 36, 38, 0.15) inset;
-}
-
-/* Active Focus */
-
-.ui.toggle.checkbox input:focus:checked ~ .box,
-.ui.toggle.checkbox input:focus:checked ~ label {
- color: rgba(0, 0, 0, 0.95) !important;
-}
-
-.ui.toggle.checkbox input:focus:checked ~ .box:before,
-.ui.toggle.checkbox input:focus:checked ~ label:before {
- background-color: #0d71bb !important;
-}
-
-/*******************************
-           Variations
-*******************************/
-
-/*--------------
-    Fitted
----------------*/
-
-.ui.fitted.checkbox .box,
-.ui.fitted.checkbox label {
- padding-left: 0em !important;
-}
-
-.ui.fitted.toggle.checkbox,
-.ui.fitted.toggle.checkbox {
- width: 3.5rem;
-}
-
-.ui.fitted.slider.checkbox,
-.ui.fitted.slider.checkbox {
- width: 3.5rem;
-}
-
-/*******************************
-        Theme Overrides
-*******************************/
-
-@font-face {
- font-family: 'Checkbox';
- src: url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg8SBD8AAAC8AAAAYGNtYXAYVtCJAAABHAAAAFRnYXNwAAAAEAAAAXAAAAAIZ2x5Zn4huwUAAAF4AAABYGhlYWQGPe1ZAAAC2AAAADZoaGVhB30DyAAAAxAAAAAkaG10eBBKAEUAAAM0AAAAHGxvY2EAmgESAAADUAAAABBtYXhwAAkALwAAA2AAAAAgbmFtZSC8IugAAAOAAAABknBvc3QAAwAAAAAFFAAAACAAAwMTAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADoAgPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAOAAAAAoACAACAAIAAQAg6AL//f//AAAAAAAg6AD//f//AAH/4xgEAAMAAQAAAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAABAEUAUQO7AvgAGgAAARQHAQYjIicBJjU0PwE2MzIfAQE2MzIfARYVA7sQ/hQQFhcQ/uMQEE4QFxcQqAF2EBcXEE4QAnMWEP4UEBABHRAXFhBOEBCoAXcQEE4QFwAAAAABAAABbgMlAkkAFAAAARUUBwYjISInJj0BNDc2MyEyFxYVAyUQEBf9SRcQEBAQFwK3FxAQAhJtFxAQEBAXbRcQEBAQFwAAAAABAAAASQMlA24ALAAAARUUBwYrARUUBwYrASInJj0BIyInJj0BNDc2OwE1NDc2OwEyFxYdATMyFxYVAyUQEBfuEBAXbhYQEO4XEBAQEBfuEBAWbhcQEO4XEBACEm0XEBDuFxAQEBAX7hAQF20XEBDuFxAQEBAX7hAQFwAAAQAAAAIAAHRSzT9fDzz1AAsEAAAAAADRsdR3AAAAANGx1HcAAAAAA7sDbgAAAAgAAgAAAAAAAAABAAADwP/AAAAEAAAAAAADuwABAAAAAAAAAAAAAAAAAAAABwQAAAAAAAAAAAAAAAIAAAAEAABFAyUAAAMlAAAAAAAAAAoAFAAeAE4AcgCwAAEAAAAHAC0AAQAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAOAK4AAQAAAAAAAQAIAAAAAQAAAAAAAgAHAGkAAQAAAAAAAwAIADkAAQAAAAAABAAIAH4AAQAAAAAABQALABgAAQAAAAAABgAIAFEAAQAAAAAACgAaAJYAAwABBAkAAQAQAAgAAwABBAkAAgAOAHAAAwABBAkAAwAQAEEAAwABBAkABAAQAIYAAwABBAkABQAWACMAAwABBAkABgAQAFkAAwABBAkACgA0ALBDaGVja2JveABDAGgAZQBjAGsAYgBvAHhWZXJzaW9uIDIuMABWAGUAcgBzAGkAbwBuACAAMgAuADBDaGVja2JveABDAGgAZQBjAGsAYgBvAHhDaGVja2JveABDAGgAZQBjAGsAYgBvAHhSZWd1bGFyAFIAZQBnAHUAbABhAHJDaGVja2JveABDAGgAZQBjAGsAYgBvAHhGb250IGdlbmVyYXRlZCBieSBJY29Nb29uLgBGAG8AbgB0ACAAZwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABJAGMAbwBNAG8AbwBuAC4AAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format('truetype');
-}
-
-/* Checkmark */
-
-.ui.checkbox label:after,
-.ui.checkbox .box:after {
- font-family: 'Checkbox';
-}
-
-/* Checked */
-
-.ui.checkbox input:checked ~ .box:after,
-.ui.checkbox input:checked ~ label:after {
- content: '\e800';
-}
-
-/* Indeterminate */
-
-.ui.checkbox input:indeterminate ~ .box:after,
-.ui.checkbox input:indeterminate ~ label:after {
- font-size: 12px;
- content: '\e801';
-}
-
-/*  UTF Reference
-.check:before { content: '\e800'; }
-.dash:before  { content: '\e801'; }
-.plus:before { content: '\e802'; }
-*/
-
-/*******************************
-        Site Overrides
-*******************************/
-/*!
-* # Semantic UI 2.3.0 - Dimmer
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-           Dimmer
-*******************************/
-
-.dimmable:not(body) {
- position: relative;
-}
-
-.ui.dimmer {
- display: none;
- position: absolute;
- top: 0em !important;
- left: 0em !important;
- width: 100%;
- height: 100%;
- text-align: center;
- vertical-align: middle;
- padding: 1em;
- background-color: rgba(0, 0, 0, 0.85);
- opacity: 0;
- line-height: 1;
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
- -webkit-animation-duration: 0.5s;
- animation-duration: 0.5s;
- -webkit-transition: background-color 0.5s linear;
- transition: background-color 0.5s linear;
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- -webkit-box-pack: center;
- -ms-flex-pack: center;
- justify-content: center;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- will-change: opacity;
- z-index: 1000;
-}
-
-/* Dimmer Content */
-
-.ui.dimmer > .content {
- -webkit-user-select: text;
- -moz-user-select: text;
- -ms-user-select: text;
- user-select: text;
- color: #FFFFFF;
-}
-
-/* Loose Coupling */
-
-.ui.segment > .ui.dimmer {
- border-radius: inherit !important;
-}
-
-/* Scrollbars */
-
-.ui.dimmer:not(.inverted)::-webkit-scrollbar-track {
- background: rgba(255, 255, 255, 0.1);
-}
-
-.ui.dimmer:not(.inverted)::-webkit-scrollbar-thumb {
- background: rgba(255, 255, 255, 0.25);
-}
-
-.ui.dimmer:not(.inverted)::-webkit-scrollbar-thumb:window-inactive {
- background: rgba(255, 255, 255, 0.15);
-}
-
-.ui.dimmer:not(.inverted)::-webkit-scrollbar-thumb:hover {
- background: rgba(255, 255, 255, 0.35);
-}
-
-/*******************************
-           States
-*******************************/
-
-/* Animating */
-
-.animating.dimmable:not(body),
-.dimmed.dimmable:not(body) {
- overflow: hidden;
-}
-
-/* Animating / Active / Visible */
-
-.dimmed.dimmable > .ui.animating.dimmer,
-.dimmed.dimmable > .ui.visible.dimmer,
-.ui.active.dimmer {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- opacity: 1;
-}
-
-/* Disabled */
-
-.ui.disabled.dimmer {
- width: 0 !important;
- height: 0 !important;
-}
-
-/*******************************
-          Variations
-*******************************/
-
-/*--------------
-   Alignment
----------------*/
-
-.ui[class*="top aligned"].dimmer {
- -webkit-box-pack: start;
- -ms-flex-pack: start;
- justify-content: flex-start;
-}
-
-.ui[class*="bottom aligned"].dimmer {
- -webkit-box-pack: end;
- -ms-flex-pack: end;
- justify-content: flex-end;
-}
-
-/*--------------
-     Page
----------------*/
-
-.ui.page.dimmer {
- position: fixed;
- -webkit-transform-style: '';
- transform-style: '';
- -webkit-perspective: 2000px;
- perspective: 2000px;
- -webkit-transform-origin: center center;
- transform-origin: center center;
-}
-
-body.animating.in.dimmable,
-body.dimmed.dimmable {
- overflow: hidden;
-}
-
-body.dimmable > .dimmer {
- position: fixed;
-}
-
-/*--------------
-   Blurring
----------------*/
-
-.blurring.dimmable > :not(.dimmer) {
- -webkit-filter: blur(0px) grayscale(0);
- filter: blur(0px) grayscale(0);
- -webkit-transition: 800ms -webkit-filter ease;
- transition: 800ms -webkit-filter ease;
- transition: 800ms filter ease;
- transition: 800ms filter ease, 800ms -webkit-filter ease;
-}
-
-.blurring.dimmed.dimmable > :not(.dimmer) {
- -webkit-filter: blur(5px) grayscale(0.7);
- filter: blur(5px) grayscale(0.7);
-}
-
-/* Dimmer Color */
-
-.blurring.dimmable > .dimmer {
- background-color: rgba(0, 0, 0, 0.6);
-}
-
-.blurring.dimmable > .inverted.dimmer {
- background-color: rgba(255, 255, 255, 0.6);
-}
-
-/*--------------
-   Aligned
----------------*/
-
-.ui.dimmer > .top.aligned.content > * {
- vertical-align: top;
-}
-
-.ui.dimmer > .bottom.aligned.content > * {
- vertical-align: bottom;
-}
-
-/*--------------
-   Inverted
----------------*/
-
-.ui.inverted.dimmer {
- background-color: rgba(255, 255, 255, 0.85);
-}
-
-.ui.inverted.dimmer > .content > * {
- color: #FFFFFF;
-}
-
-/*--------------
-    Simple
----------------*/
-
-/* Displays without javascript */
-
-.ui.simple.dimmer {
- display: block;
- overflow: hidden;
- opacity: 1;
- width: 0%;
- height: 0%;
- z-index: -100;
- background-color: rgba(0, 0, 0, 0);
-}
-
-.dimmed.dimmable > .ui.simple.dimmer {
- overflow: visible;
- opacity: 1;
- width: 100%;
- height: 100%;
- background-color: rgba(0, 0, 0, 0.85);
- z-index: 1;
-}
-
-.ui.simple.inverted.dimmer {
- background-color: rgba(255, 255, 255, 0);
-}
-
-.dimmed.dimmable > .ui.simple.inverted.dimmer {
- background-color: rgba(255, 255, 255, 0.85);
-}
-
-/*******************************
-        Theme Overrides
-*******************************/
-
-/*******************************
-       User Overrides
-*******************************/
-/*!
-* # Semantic UI 2.3.0 - Dropdown
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-           Dropdown
-*******************************/
-
-.ui.dropdown {
- cursor: pointer;
- position: relative;
- display: inline-block;
- outline: none;
- text-align: left;
- -webkit-transition: width 0.1s ease, -webkit-box-shadow 0.1s ease;
- transition: width 0.1s ease, -webkit-box-shadow 0.1s ease;
- transition: box-shadow 0.1s ease, width 0.1s ease;
- transition: box-shadow 0.1s ease, width 0.1s ease, -webkit-box-shadow 0.1s ease;
- -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
-}
-
-/*******************************
-           Content
-*******************************/
-
-/*--------------
-     Menu
----------------*/
-
-.ui.dropdown .menu {
- cursor: auto;
- position: absolute;
- display: none;
- outline: none;
- top: 100%;
- min-width: -webkit-max-content;
- min-width: -moz-max-content;
- min-width: max-content;
- margin: 0em;
- padding: 0em 0em;
- background: #FFFFFF;
- font-size: 1em;
- text-shadow: none;
- text-align: left;
- -webkit-box-shadow: 0px 2px 3px 0px rgba(34, 36, 38, 0.15);
- box-shadow: 0px 2px 3px 0px rgba(34, 36, 38, 0.15);
- border: 1px solid rgba(34, 36, 38, 0.15);
- border-radius: 0.28571429rem;
- -webkit-transition: opacity 0.1s ease;
- transition: opacity 0.1s ease;
- z-index: 11;
- will-change: transform, opacity;
-}
-
-.ui.dropdown .menu > * {
- white-space: nowrap;
-}
-
-/*--------------
- Hidden Input
----------------*/
-
-.ui.dropdown > input:not(.search):first-child,
-.ui.dropdown > select {
- display: none !important;
-}
-
-/*--------------
-Dropdown Icon
----------------*/
-
-.ui.dropdown > .dropdown.icon {
- position: relative;
- width: auto;
- font-size: 0.85714286em;
- margin: 0em 0em 0em 1em;
-}
-
-.ui.dropdown .menu > .item .dropdown.icon {
- width: auto;
- float: right;
- margin: 0em 0em 0em 1em;
-}
-
-.ui.dropdown .menu > .item .dropdown.icon + .text {
- margin-right: 1em;
-}
-
-/*--------------
-     Text
----------------*/
-
-.ui.dropdown > .text {
- display: inline-block;
- -webkit-transition: none;
- transition: none;
-}
-
-/*--------------
-   Menu Item
----------------*/
-
-.ui.dropdown .menu > .item {
- position: relative;
- cursor: pointer;
- display: block;
- border: none;
- height: auto;
- text-align: left;
- border-top: none;
- line-height: 1em;
- color: rgba(0, 0, 0, 0.87);
- padding: 0.78571429rem 1.14285714rem !important;
- font-size: 1rem;
- text-transform: none;
- font-weight: normal;
- -webkit-box-shadow: none;
- box-shadow: none;
- -webkit-touch-callout: none;
-}
-
-.ui.dropdown .menu > .item:first-child {
- border-top-width: 0px;
-}
-
-/*--------------
- Floated Content
----------------*/
-
-.ui.dropdown > .text > [class*="right floated"],
-.ui.dropdown .menu .item > [class*="right floated"] {
- float: right !important;
- margin-right: 0em !important;
- margin-left: 1em !important;
-}
-
-.ui.dropdown > .text > [class*="left floated"],
-.ui.dropdown .menu .item > [class*="left floated"] {
- float: left !important;
- margin-left: 0em !important;
- margin-right: 1em !important;
-}
-
-.ui.dropdown .menu .item > .icon.floated,
-.ui.dropdown .menu .item > .flag.floated,
-.ui.dropdown .menu .item > .image.floated,
-.ui.dropdown .menu .item > img.floated {
- margin-top: 0em;
-}
-
-/*--------------
- Menu Divider
----------------*/
-
-.ui.dropdown .menu > .header {
- margin: 1rem 0rem 0.75rem;
- padding: 0em 1.14285714rem;
- color: rgba(0, 0, 0, 0.85);
- font-size: 0.78571429em;
- font-weight: bold;
- text-transform: uppercase;
-}
-
-.ui.dropdown .menu > .divider {
- border-top: 1px solid rgba(34, 36, 38, 0.1);
- height: 0em;
- margin: 0.5em 0em;
-}
-
-.ui.dropdown.dropdown .menu > .input {
- width: auto;
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- margin: 1.14285714rem 0.78571429rem;
- min-width: 10rem;
-}
-
-.ui.dropdown .menu > .header + .input {
- margin-top: 0em;
-}
-
-.ui.dropdown .menu > .input:not(.transparent) input {
- padding: 0.5em 1em;
-}
-
-.ui.dropdown .menu > .input:not(.transparent) .button,
-.ui.dropdown .menu > .input:not(.transparent) .icon,
-.ui.dropdown .menu > .input:not(.transparent) .label {
- padding-top: 0.5em;
- padding-bottom: 0.5em;
-}
-
-/*-----------------
- Item Description
--------------------*/
-
-.ui.dropdown > .text > .description,
-.ui.dropdown .menu > .item > .description {
- float: right;
- margin: 0em 0em 0em 1em;
- color: rgba(0, 0, 0, 0.4);
-}
-
-/*-----------------
-      Message
--------------------*/
-
-.ui.dropdown .menu > .message {
- padding: 0.78571429rem 1.14285714rem;
- font-weight: normal;
-}
-
-.ui.dropdown .menu > .message:not(.ui) {
- color: rgba(0, 0, 0, 0.4);
-}
-
-/*--------------
-   Sub Menu
----------------*/
-
-.ui.dropdown .menu .menu {
- top: 0% !important;
- left: 100%;
- right: auto;
- margin: 0em 0em 0em -0.5em !important;
- border-radius: 0.28571429rem !important;
- z-index: 21 !important;
-}
-
-/* Hide Arrow */
-
-.ui.dropdown .menu .menu:after {
- display: none;
-}
-
-/*--------------
-  Sub Elements
----------------*/
-
-/* Icons / Flags / Labels / Image */
-
-.ui.dropdown > .text > .icon,
-.ui.dropdown > .text > .label,
-.ui.dropdown > .text > .flag,
-.ui.dropdown > .text > img,
-.ui.dropdown > .text > .image {
- margin-top: 0em;
-}
-
-.ui.dropdown .menu > .item > .icon,
-.ui.dropdown .menu > .item > .label,
-.ui.dropdown .menu > .item > .flag,
-.ui.dropdown .menu > .item > .image,
-.ui.dropdown .menu > .item > img {
- margin-top: 0em;
-}
-
-.ui.dropdown > .text > .icon,
-.ui.dropdown > .text > .label,
-.ui.dropdown > .text > .flag,
-.ui.dropdown > .text > img,
-.ui.dropdown > .text > .image,
-.ui.dropdown .menu > .item > .icon,
-.ui.dropdown .menu > .item > .label,
-.ui.dropdown .menu > .item > .flag,
-.ui.dropdown .menu > .item > .image,
-.ui.dropdown .menu > .item > img {
- margin-left: 0em;
- float: none;
- margin-right: 0.78571429rem;
-}
-
-/*--------------
-    Image
----------------*/
-
-.ui.dropdown > .text > img,
-.ui.dropdown > .text > .image,
-.ui.dropdown .menu > .item > .image,
-.ui.dropdown .menu > .item > img {
- display: inline-block;
- vertical-align: top;
- width: auto;
- margin-top: -0.5em;
- margin-bottom: -0.5em;
- max-height: 2em;
-}
-
-/*******************************
-           Coupling
-*******************************/
-
-/*--------------
-     Menu
----------------*/
-
-/* Remove Menu Item Divider */
-
-.ui.dropdown .ui.menu > .item:before,
-.ui.menu .ui.dropdown .menu > .item:before {
- display: none;
-}
-
-/* Prevent Menu Item Border */
-
-.ui.menu .ui.dropdown .menu .active.item {
- border-left: none;
-}
-
-/* Automatically float dropdown menu right on last menu item */
-
-.ui.menu .right.menu .dropdown:last-child .menu,
-.ui.menu .right.dropdown.item .menu,
-.ui.buttons > .ui.dropdown:last-child .menu {
- left: auto;
- right: 0em;
-}
-
-/*--------------
-     Label
----------------*/
-
-/* Dropdown Menu */
-
-.ui.label.dropdown .menu {
- min-width: 100%;
-}
-
-/*--------------
-    Button
----------------*/
-
-/* No Margin On Icon Button */
-
-.ui.dropdown.icon.button > .dropdown.icon {
- margin: 0em;
-}
-
-.ui.button.dropdown .menu {
- min-width: 100%;
-}
-
-/*******************************
-             Types
-*******************************/
-
-/*--------------
-   Selection
----------------*/
-
-/* Displays like a select box */
-
-.ui.selection.dropdown {
- cursor: pointer;
- word-wrap: break-word;
- line-height: 1em;
- white-space: normal;
- outline: 0;
- -webkit-transform: rotateZ(0deg);
- transform: rotateZ(0deg);
- min-width: 14em;
- min-height: 2.71428571em;
- background: #FFFFFF;
- display: inline-block;
- padding: 0.78571429em 2.1em 0.78571429em 1em;
- color: rgba(0, 0, 0, 0.87);
- -webkit-box-shadow: none;
- box-shadow: none;
- border: 1px solid rgba(34, 36, 38, 0.15);
- border-radius: 0.28571429rem;
- -webkit-transition: width 0.1s ease, -webkit-box-shadow 0.1s ease;
- transition: width 0.1s ease, -webkit-box-shadow 0.1s ease;
- transition: box-shadow 0.1s ease, width 0.1s ease;
- transition: box-shadow 0.1s ease, width 0.1s ease, -webkit-box-shadow 0.1s ease;
-}
-
-.ui.selection.dropdown.visible,
-.ui.selection.dropdown.active {
- z-index: 10;
-}
-
-select.ui.dropdown {
- height: 38px;
- padding: 0.5em;
- border: 1px solid rgba(34, 36, 38, 0.15);
- visibility: visible;
-}
-
-.ui.selection.dropdown > .search.icon,
-.ui.selection.dropdown > .delete.icon,
-.ui.selection.dropdown > .dropdown.icon {
- cursor: pointer;
- position: absolute;
- width: auto;
- height: auto;
- line-height: 1.21428571em;
- top: 0.78571429em;
- right: 1em;
- z-index: 3;
- margin: -0.78571429em;
- padding: 0.91666667em;
- opacity: 0.8;
- -webkit-transition: opacity 0.1s ease;
- transition: opacity 0.1s ease;
-}
-
-/* Compact */
-
-.ui.compact.selection.dropdown {
- min-width: 0px;
-}
-
-/*  Selection Menu */
-
-.ui.selection.dropdown .menu {
- overflow-x: hidden;
- overflow-y: auto;
- -webkit-backface-visibility: hidden;
- backface-visibility: hidden;
- -webkit-overflow-scrolling: touch;
- border-top-width: 0px !important;
- width: auto;
- outline: none;
- margin: 0px -1px;
- min-width: calc(100% +  2px );
- width: calc(100% +  2px );
- border-radius: 0em 0em 0.28571429rem 0.28571429rem;
- -webkit-box-shadow: 0px 2px 3px 0px rgba(34, 36, 38, 0.15);
- box-shadow: 0px 2px 3px 0px rgba(34, 36, 38, 0.15);
- -webkit-transition: opacity 0.1s ease;
- transition: opacity 0.1s ease;
-}
-
-.ui.selection.dropdown .menu:after,
-.ui.selection.dropdown .menu:before {
- display: none;
-}
-
-/*--------------
-   Message
----------------*/
-
-.ui.selection.dropdown .menu > .message {
- padding: 0.78571429rem 1.14285714rem;
-}
-
-@media only screen and (max-width: 767px) {
- .ui.selection.dropdown .menu {
-   max-height: 8.01428571rem;
- }
-}
-
-@media only screen and (min-width: 768px) {
- .ui.selection.dropdown .menu {
-   max-height: 10.68571429rem;
- }
-}
-
-@media only screen and (min-width: 992px) {
- .ui.selection.dropdown .menu {
-   max-height: 16.02857143rem;
- }
-}
-
-@media only screen and (min-width: 1920px) {
- .ui.selection.dropdown .menu {
-   max-height: 21.37142857rem;
- }
-}
-
-/* Menu Item */
-
-.ui.selection.dropdown .menu > .item {
- border-top: 1px solid #FAFAFA;
- padding: 0.78571429rem 1.14285714rem !important;
- white-space: normal;
- word-wrap: normal;
-}
-
-/* User Item */
-
-.ui.selection.dropdown .menu > .hidden.addition.item {
- display: none;
-}
-
-/* Hover */
-
-.ui.selection.dropdown:hover {
- border-color: rgba(34, 36, 38, 0.35);
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-/* Active */
-
-.ui.selection.active.dropdown {
- border-color: #96C8DA;
- -webkit-box-shadow: 0px 2px 3px 0px rgba(34, 36, 38, 0.15);
- box-shadow: 0px 2px 3px 0px rgba(34, 36, 38, 0.15);
-}
-
-.ui.selection.active.dropdown .menu {
- border-color: #96C8DA;
- -webkit-box-shadow: 0px 2px 3px 0px rgba(34, 36, 38, 0.15);
- box-shadow: 0px 2px 3px 0px rgba(34, 36, 38, 0.15);
-}
-
-/* Focus */
-
-.ui.selection.dropdown:focus {
- border-color: #96C8DA;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-.ui.selection.dropdown:focus .menu {
- border-color: #96C8DA;
- -webkit-box-shadow: 0px 2px 3px 0px rgba(34, 36, 38, 0.15);
- box-shadow: 0px 2px 3px 0px rgba(34, 36, 38, 0.15);
-}
-
-/* Visible */
-
-.ui.selection.visible.dropdown > .text:not(.default) {
- font-weight: normal;
- color: rgba(0, 0, 0, 0.8);
-}
-
-/* Visible Hover */
-
-.ui.selection.active.dropdown:hover {
- border-color: #96C8DA;
- -webkit-box-shadow: 0px 2px 3px 0px rgba(34, 36, 38, 0.15);
- box-shadow: 0px 2px 3px 0px rgba(34, 36, 38, 0.15);
-}
-
-.ui.selection.active.dropdown:hover .menu {
- border-color: #96C8DA;
- -webkit-box-shadow: 0px 2px 3px 0px rgba(34, 36, 38, 0.15);
- box-shadow: 0px 2px 3px 0px rgba(34, 36, 38, 0.15);
-}
-
-/* Dropdown Icon */
-
-.ui.active.selection.dropdown > .dropdown.icon,
-.ui.visible.selection.dropdown > .dropdown.icon {
- opacity: 1;
- z-index: 3;
-}
-
-/* Connecting Border */
-
-.ui.active.selection.dropdown {
- border-bottom-left-radius: 0em !important;
- border-bottom-right-radius: 0em !important;
-}
-
-/* Empty Connecting Border */
-
-.ui.active.empty.selection.dropdown {
- border-radius: 0.28571429rem !important;
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
-}
-
-.ui.active.empty.selection.dropdown .menu {
- border: none !important;
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
-}
-
-/*--------------
-  Searchable
----------------*/
-
-/* Search Selection */
-
-.ui.search.dropdown {
- min-width: '';
-}
-
-/* Search Dropdown */
-
-.ui.search.dropdown > input.search {
- background: none transparent !important;
- border: none !important;
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
- cursor: text;
- top: 0em;
- left: 1px;
- width: 100%;
- outline: none;
- -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
- padding: inherit;
-}
-
-/* Text Layering */
-
-.ui.search.dropdown > input.search {
- position: absolute;
- z-index: 2;
-}
-
-.ui.search.dropdown > .text {
- cursor: text;
- position: relative;
- left: 1px;
- z-index: 3;
-}
-
-/* Search Selection */
-
-.ui.search.selection.dropdown > input.search {
- line-height: 1.21428571em;
- padding: 0.67857143em 2.1em 0.67857143em 1em;
-}
-
-/* Used to size multi select input to character width */
-
-.ui.search.selection.dropdown > span.sizer {
- line-height: 1.21428571em;
- padding: 0.67857143em 2.1em 0.67857143em 1em;
- display: none;
- white-space: pre;
-}
-
-/* Active/Visible Search */
-
-.ui.search.dropdown.active > input.search,
-.ui.search.dropdown.visible > input.search {
- cursor: auto;
-}
-
-.ui.search.dropdown.active > .text,
-.ui.search.dropdown.visible > .text {
- pointer-events: none;
-}
-
-/* Filtered Text */
-
-.ui.active.search.dropdown input.search:focus + .text .icon,
-.ui.active.search.dropdown input.search:focus + .text .flag {
- opacity: 0.45;
-}
-
-.ui.active.search.dropdown input.search:focus + .text {
- color: rgba(115, 115, 115, 0.87) !important;
-}
-
-/* Search Menu */
-
-.ui.search.dropdown .menu {
- overflow-x: hidden;
- overflow-y: auto;
- -webkit-backface-visibility: hidden;
- backface-visibility: hidden;
- -webkit-overflow-scrolling: touch;
-}
-
-@media only screen and (max-width: 767px) {
- .ui.search.dropdown .menu {
-   max-height: 8.01428571rem;
- }
-}
-
-@media only screen and (min-width: 768px) {
- .ui.search.dropdown .menu {
-   max-height: 10.68571429rem;
- }
-}
-
-@media only screen and (min-width: 992px) {
- .ui.search.dropdown .menu {
-   max-height: 16.02857143rem;
- }
-}
-
-@media only screen and (min-width: 1920px) {
- .ui.search.dropdown .menu {
-   max-height: 21.37142857rem;
- }
-}
-
-/*--------------
-   Multiple
----------------*/
-
-/* Multiple Selection */
-
-.ui.multiple.dropdown {
- padding: 0.22619048em 2.1em 0.22619048em 0.35714286em;
-}
-
-.ui.multiple.dropdown .menu {
- cursor: auto;
-}
-
-/* Multiple Search Selection */
-
-.ui.multiple.search.dropdown,
-.ui.multiple.search.dropdown > input.search {
- cursor: text;
-}
-
-/* Selection Label */
-
-.ui.multiple.dropdown > .label {
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- display: inline-block;
- vertical-align: top;
- white-space: normal;
- font-size: 1em;
- padding: 0.35714286em 0.78571429em;
- margin: 0.14285714rem 0.28571429rem 0.14285714rem 0em;
- -webkit-box-shadow: 0px 0px 0px 1px rgba(34, 36, 38, 0.15) inset;
- box-shadow: 0px 0px 0px 1px rgba(34, 36, 38, 0.15) inset;
-}
-
-/* Dropdown Icon */
-
-.ui.multiple.dropdown .dropdown.icon {
- margin: '';
- padding: '';
-}
-
-/* Text */
-
-.ui.multiple.dropdown > .text {
- position: static;
- padding: 0;
- max-width: 100%;
- margin: 0.45238095em 0em 0.45238095em 0.64285714em;
- line-height: 1.21428571em;
-}
-
-.ui.multiple.dropdown > .label ~ input.search {
- margin-left: 0.14285714em !important;
-}
-
-.ui.multiple.dropdown > .label ~ .text {
- display: none;
-}
-
-/*-----------------
- Multiple Search
------------------*/
-
-/* Prompt Text */
-
-.ui.multiple.search.dropdown > .text {
- display: inline-block;
- position: absolute;
- top: 0;
- left: 0;
- padding: inherit;
- margin: 0.45238095em 0em 0.45238095em 0.64285714em;
- line-height: 1.21428571em;
-}
-
-.ui.multiple.search.dropdown > .label ~ .text {
- display: none;
-}
-
-/* Search */
-
-.ui.multiple.search.dropdown > input.search {
- position: static;
- padding: 0;
- max-width: 100%;
- margin: 0.45238095em 0em 0.45238095em 0.64285714em;
- width: 2.2em;
- line-height: 1.21428571em;
-}
-
-/*--------------
-    Inline
----------------*/
-
-.ui.inline.dropdown {
- cursor: pointer;
- display: inline-block;
- color: inherit;
-}
-
-.ui.inline.dropdown .dropdown.icon {
- margin: 0em 0.5em 0em 0.21428571em;
- vertical-align: baseline;
-}
-
-.ui.inline.dropdown > .text {
- font-weight: bold;
-}
-
-.ui.inline.dropdown .menu {
- cursor: auto;
- margin-top: 0.21428571em;
- border-radius: 0.28571429rem;
-}
-
-/*******************************
-           States
-*******************************/
-
-/*--------------------
-       Active
-----------------------*/
-
-/* Menu Item Active */
-
-.ui.dropdown .menu .active.item {
- background: transparent;
- font-weight: bold;
- color: rgba(0, 0, 0, 0.95);
- -webkit-box-shadow: none;
- box-shadow: none;
- z-index: 12;
-}
-
-/*--------------------
-       Hover
-----------------------*/
-
-/* Menu Item Hover */
-
-.ui.dropdown .menu > .item:hover {
- background: rgba(0, 0, 0, 0.05);
- color: rgba(0, 0, 0, 0.95);
- z-index: 13;
-}
-
-/*--------------------
-      Loading
----------------------*/
-
-.ui.loading.dropdown > i.icon {
- height: 1em !important;
-}
-
-.ui.loading.selection.dropdown > i.icon {
- padding: 1.5em 1.28571429em !important;
-}
-
-.ui.loading.dropdown > i.icon:before {
- position: absolute;
- content: '';
- top: 50%;
- left: 50%;
- margin: -0.64285714em 0em 0em -0.64285714em;
- width: 1.28571429em;
- height: 1.28571429em;
- border-radius: 500rem;
- border: 0.2em solid rgba(0, 0, 0, 0.1);
-}
-
-.ui.loading.dropdown > i.icon:after {
- position: absolute;
- content: '';
- top: 50%;
- left: 50%;
- -webkit-box-shadow: 0px 0px 0px 1px transparent;
- box-shadow: 0px 0px 0px 1px transparent;
- margin: -0.64285714em 0em 0em -0.64285714em;
- width: 1.28571429em;
- height: 1.28571429em;
- -webkit-animation: dropdown-spin 0.6s linear;
- animation: dropdown-spin 0.6s linear;
- -webkit-animation-iteration-count: infinite;
- animation-iteration-count: infinite;
- border-radius: 500rem;
- border-color: #767676 transparent transparent;
- border-style: solid;
- border-width: 0.2em;
-}
-
-/* Coupling */
-
-.ui.loading.dropdown.button > i.icon:before,
-.ui.loading.dropdown.button > i.icon:after {
- display: none;
-}
-
-@-webkit-keyframes dropdown-spin {
- from {
-   -webkit-transform: rotate(0deg);
-   transform: rotate(0deg);
- }
-
- to {
-   -webkit-transform: rotate(360deg);
-   transform: rotate(360deg);
- }
-}
-
-@keyframes dropdown-spin {
- from {
-   -webkit-transform: rotate(0deg);
-   transform: rotate(0deg);
- }
-
- to {
-   -webkit-transform: rotate(360deg);
-   transform: rotate(360deg);
- }
-}
-
-/*--------------------
-    Default Text
-----------------------*/
-
-.ui.dropdown:not(.button) > .default.text,
-.ui.default.dropdown:not(.button) > .text {
- color: rgba(191, 191, 191, 0.87);
-}
-
-.ui.dropdown:not(.button) > input:focus ~ .default.text,
-.ui.default.dropdown:not(.button) > input:focus ~ .text {
- color: rgba(115, 115, 115, 0.87);
-}
-
-/*--------------------
-       Loading
-----------------------*/
-
-.ui.loading.dropdown > .text {
- -webkit-transition: none;
- transition: none;
-}
-
-/* Used To Check Position */
-
-.ui.dropdown .loading.menu {
- display: block;
- visibility: hidden;
- z-index: -1;
-}
-
-.ui.dropdown > .loading.menu {
- left: 0px !important;
- right: auto !important;
-}
-
-.ui.dropdown > .menu .loading.menu {
- left: 100% !important;
- right: auto !important;
-}
-
-/*--------------------
-   Keyboard Select
-----------------------*/
-
-/* Selected Item */
-
-.ui.dropdown.selected,
-.ui.dropdown .menu .selected.item {
- background: rgba(0, 0, 0, 0.03);
- color: rgba(0, 0, 0, 0.95);
-}
-
-/*--------------------
-   Search Filtered
-----------------------*/
-
-/* Filtered Item */
-
-.ui.dropdown > .filtered.text {
- visibility: hidden;
-}
-
-.ui.dropdown .filtered.item {
- display: none !important;
-}
-
-/*--------------------
-       Error
-----------------------*/
-
-.ui.dropdown.error,
-.ui.dropdown.error > .text,
-.ui.dropdown.error > .default.text {
- color: #9F3A38;
-}
-
-.ui.selection.dropdown.error {
- background: #FFF6F6;
- border-color: #E0B4B4;
-}
-
-.ui.selection.dropdown.error:hover {
- border-color: #E0B4B4;
-}
-
-.ui.dropdown.error > .menu,
-.ui.dropdown.error > .menu .menu {
- border-color: #E0B4B4;
-}
-
-.ui.dropdown.error > .menu > .item {
- color: #9F3A38;
-}
-
-.ui.multiple.selection.error.dropdown > .label {
- border-color: #E0B4B4;
-}
-
-/* Item Hover */
-
-.ui.dropdown.error > .menu > .item:hover {
- background-color: #FFF2F2;
-}
-
-/* Item Active */
-
-.ui.dropdown.error > .menu .active.item {
- background-color: #FDCFCF;
-}
-
-/*--------------------
-       Disabled
-----------------------*/
-
-/* Disabled */
-
-.ui.disabled.dropdown,
-.ui.dropdown .menu > .disabled.item {
- cursor: default;
- pointer-events: none;
- opacity: 0.45;
-}
-
-/*******************************
-          Variations
-*******************************/
-
-/*--------------
-   Direction
----------------*/
-
-/* Flyout Direction */
-
-.ui.dropdown .menu {
- left: 0px;
-}
-
-/* Default Side (Right) */
-
-.ui.dropdown .right.menu > .menu,
-.ui.dropdown .menu .right.menu {
- left: 100% !important;
- right: auto !important;
- border-radius: 0.28571429rem !important;
-}
-
-/* Leftward Opening Menu */
-
-.ui.dropdown > .left.menu {
- left: auto !important;
- right: 0px !important;
-}
-
-.ui.dropdown > .left.menu .menu,
-.ui.dropdown .menu .left.menu {
- left: auto;
- right: 100%;
- margin: 0em -0.5em 0em 0em !important;
- border-radius: 0.28571429rem !important;
-}
-
-.ui.dropdown .item .left.dropdown.icon,
-.ui.dropdown .left.menu .item .dropdown.icon {
- width: auto;
- float: left;
- margin: 0em 0em 0em 0em;
-}
-
-.ui.dropdown .item .left.dropdown.icon,
-.ui.dropdown .left.menu .item .dropdown.icon {
- width: auto;
- float: left;
- margin: 0em 0em 0em 0em;
-}
-
-.ui.dropdown .item .left.dropdown.icon + .text,
-.ui.dropdown .left.menu .item .dropdown.icon + .text {
- margin-left: 1em;
- margin-right: 0em;
-}
-
-/*--------------
-    Upward
----------------*/
-
-/* Upward Main Menu */
-
-.ui.upward.dropdown > .menu {
- top: auto;
- bottom: 100%;
- -webkit-box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.08);
- box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.08);
- border-radius: 0.28571429rem 0.28571429rem 0em 0em;
-}
-
-/* Upward Sub Menu */
-
-.ui.dropdown .upward.menu {
- top: auto !important;
- bottom: 0 !important;
-}
-
-/* Active Upward */
-
-.ui.simple.upward.active.dropdown,
-.ui.simple.upward.dropdown:hover {
- border-radius: 0.28571429rem 0.28571429rem 0em 0em !important;
-}
-
-.ui.upward.dropdown.button:not(.pointing):not(.floating).active {
- border-radius: 0.28571429rem 0.28571429rem 0em 0em;
-}
-
-/* Selection */
-
-.ui.upward.selection.dropdown .menu {
- border-top-width: 1px !important;
- border-bottom-width: 0px !important;
- -webkit-box-shadow: 0px -2px 3px 0px rgba(0, 0, 0, 0.08);
- box-shadow: 0px -2px 3px 0px rgba(0, 0, 0, 0.08);
-}
-
-.ui.upward.selection.dropdown:hover {
- -webkit-box-shadow: 0px 0px 2px 0px rgba(0, 0, 0, 0.05);
- box-shadow: 0px 0px 2px 0px rgba(0, 0, 0, 0.05);
-}
-
-/* Active Upward */
-
-.ui.active.upward.selection.dropdown {
- border-radius: 0em 0em 0.28571429rem 0.28571429rem !important;
-}
-
-/* Visible Upward */
-
-.ui.upward.selection.dropdown.visible {
- -webkit-box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.08);
- box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.08);
- border-radius: 0em 0em 0.28571429rem 0.28571429rem !important;
-}
-
-/* Visible Hover Upward */
-
-.ui.upward.active.selection.dropdown:hover {
- -webkit-box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.05);
- box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.05);
-}
-
-.ui.upward.active.selection.dropdown:hover .menu {
- -webkit-box-shadow: 0px -2px 3px 0px rgba(0, 0, 0, 0.08);
- box-shadow: 0px -2px 3px 0px rgba(0, 0, 0, 0.08);
-}
-
-/*--------------
-    Simple
----------------*/
-
-/*  Selection Menu */
-
-.ui.scrolling.dropdown .menu,
-.ui.dropdown .scrolling.menu {
- overflow-x: hidden;
- overflow-y: auto;
-}
-
-.ui.scrolling.dropdown .menu {
- overflow-x: hidden;
- overflow-y: auto;
- -webkit-backface-visibility: hidden;
- backface-visibility: hidden;
- -webkit-overflow-scrolling: touch;
- min-width: 100% !important;
- width: auto !important;
-}
-
-.ui.dropdown .scrolling.menu {
- position: static;
- overflow-y: auto;
- border: none;
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
- border-radius: 0 !important;
- margin: 0 !important;
- min-width: 100% !important;
- width: auto !important;
- border-top: 1px solid rgba(34, 36, 38, 0.15);
-}
-
-.ui.scrolling.dropdown .menu .item.item.item,
-.ui.dropdown .scrolling.menu > .item.item.item {
- border-top: none;
-}
-
-.ui.scrolling.dropdown .menu .item:first-child,
-.ui.dropdown .scrolling.menu .item:first-child {
- border-top: none;
-}
-
-.ui.dropdown > .animating.menu .scrolling.menu,
-.ui.dropdown > .visible.menu .scrolling.menu {
- display: block;
-}
-
-/* Scrollbar in IE */
-
-@media all and (-ms-high-contrast: none) {
- .ui.scrolling.dropdown .menu,
- .ui.dropdown .scrolling.menu {
-   min-width: calc(100% -  17px );
- }
-}
-
-@media only screen and (max-width: 767px) {
- .ui.scrolling.dropdown .menu,
- .ui.dropdown .scrolling.menu {
-   max-height: 10.28571429rem;
- }
-}
-
-@media only screen and (min-width: 768px) {
- .ui.scrolling.dropdown .menu,
- .ui.dropdown .scrolling.menu {
-   max-height: 15.42857143rem;
- }
-}
-
-@media only screen and (min-width: 992px) {
- .ui.scrolling.dropdown .menu,
- .ui.dropdown .scrolling.menu {
-   max-height: 20.57142857rem;
- }
-}
-
-@media only screen and (min-width: 1920px) {
- .ui.scrolling.dropdown .menu,
- .ui.dropdown .scrolling.menu {
-   max-height: 20.57142857rem;
- }
-}
-
-/*--------------
-    Simple
----------------*/
-
-/* Displays without javascript */
-
-.ui.simple.dropdown .menu:before,
-.ui.simple.dropdown .menu:after {
- display: none;
-}
-
-.ui.simple.dropdown .menu {
- position: absolute;
- display: block;
- overflow: hidden;
- top: -9999px !important;
- opacity: 0;
- width: 0;
- height: 0;
- -webkit-transition: opacity 0.1s ease;
- transition: opacity 0.1s ease;
-}
-
-.ui.simple.active.dropdown,
-.ui.simple.dropdown:hover {
- border-bottom-left-radius: 0em !important;
- border-bottom-right-radius: 0em !important;
-}
-
-.ui.simple.active.dropdown > .menu,
-.ui.simple.dropdown:hover > .menu {
- overflow: visible;
- width: auto;
- height: auto;
- top: 100% !important;
- opacity: 1;
-}
-
-.ui.simple.dropdown > .menu > .item:active > .menu,
-.ui.simple.dropdown:hover > .menu > .item:hover > .menu {
- overflow: visible;
- width: auto;
- height: auto;
- top: 0% !important;
- left: 100% !important;
- opacity: 1;
-}
-
-.ui.simple.disabled.dropdown:hover .menu {
- display: none;
- height: 0px;
- width: 0px;
- overflow: hidden;
-}
-
-/* Visible */
-
-.ui.simple.visible.dropdown > .menu {
- display: block;
-}
-
-/*--------------
-     Fluid
----------------*/
-
-.ui.fluid.dropdown {
- display: block;
- width: 100%;
- min-width: 0em;
-}
-
-.ui.fluid.dropdown > .dropdown.icon {
- float: right;
-}
-
-/*--------------
-   Floating
----------------*/
-
-.ui.floating.dropdown .menu {
- left: 0;
- right: auto;
- -webkit-box-shadow: 0px 2px 4px 0px rgba(34, 36, 38, 0.12), 0px 2px 10px 0px rgba(34, 36, 38, 0.15) !important;
- box-shadow: 0px 2px 4px 0px rgba(34, 36, 38, 0.12), 0px 2px 10px 0px rgba(34, 36, 38, 0.15) !important;
- border-radius: 0.28571429rem !important;
-}
-
-.ui.floating.dropdown > .menu {
- margin-top: 0.5em !important;
- border-radius: 0.28571429rem !important;
-}
-
-/*--------------
-    Pointing
----------------*/
-
-.ui.pointing.dropdown > .menu {
- top: 100%;
- margin-top: 0.78571429rem;
- border-radius: 0.28571429rem;
-}
-
-.ui.pointing.dropdown > .menu:after {
- display: block;
- position: absolute;
- pointer-events: none;
- content: '';
- visibility: visible;
- -webkit-transform: rotate(45deg);
- transform: rotate(45deg);
- width: 0.5em;
- height: 0.5em;
- -webkit-box-shadow: -1px -1px 0px 0px rgba(34, 36, 38, 0.15);
- box-shadow: -1px -1px 0px 0px rgba(34, 36, 38, 0.15);
- background: #FFFFFF;
- z-index: 2;
-}
-
-.ui.pointing.dropdown > .menu:after {
- top: -0.25em;
- left: 50%;
- margin: 0em 0em 0em -0.25em;
-}
-
-/* Top Left Pointing */
-
-.ui.top.left.pointing.dropdown > .menu {
- top: 100%;
- bottom: auto;
- left: 0%;
- right: auto;
- margin: 1em 0em 0em;
-}
-
-.ui.top.left.pointing.dropdown > .menu {
- top: 100%;
- bottom: auto;
- left: 0%;
- right: auto;
- margin: 1em 0em 0em;
-}
-
-.ui.top.left.pointing.dropdown > .menu:after {
- top: -0.25em;
- left: 1em;
- right: auto;
- margin: 0em;
- -webkit-transform: rotate(45deg);
- transform: rotate(45deg);
-}
-
-/* Top Right Pointing */
-
-.ui.top.right.pointing.dropdown > .menu {
- top: 100%;
- bottom: auto;
- right: 0%;
- left: auto;
- margin: 1em 0em 0em;
-}
-
-.ui.top.pointing.dropdown > .left.menu:after,
-.ui.top.right.pointing.dropdown > .menu:after {
- top: -0.25em;
- left: auto !important;
- right: 1em !important;
- margin: 0em;
- -webkit-transform: rotate(45deg);
- transform: rotate(45deg);
-}
-
-/* Left Pointing */
-
-.ui.left.pointing.dropdown > .menu {
- top: 0%;
- left: 100%;
- right: auto;
- margin: 0em 0em 0em 1em;
-}
-
-.ui.left.pointing.dropdown > .menu:after {
- top: 1em;
- left: -0.25em;
- margin: 0em 0em 0em 0em;
- -webkit-transform: rotate(-45deg);
- transform: rotate(-45deg);
-}
-
-.ui.left:not(.top):not(.bottom).pointing.dropdown > .left.menu {
- left: auto !important;
- right: 100% !important;
- margin: 0em 1em 0em 0em;
-}
-
-.ui.left:not(.top):not(.bottom).pointing.dropdown > .left.menu:after {
- top: 1em;
- left: auto;
- right: -0.25em;
- margin: 0em 0em 0em 0em;
- -webkit-transform: rotate(135deg);
- transform: rotate(135deg);
-}
-
-/* Right Pointing */
-
-.ui.right.pointing.dropdown > .menu {
- top: 0%;
- left: auto;
- right: 100%;
- margin: 0em 1em 0em 0em;
-}
-
-.ui.right.pointing.dropdown > .menu:after {
- top: 1em;
- left: auto;
- right: -0.25em;
- margin: 0em 0em 0em 0em;
- -webkit-transform: rotate(135deg);
- transform: rotate(135deg);
-}
-
-/* Bottom Pointing */
-
-.ui.bottom.pointing.dropdown > .menu {
- top: auto;
- bottom: 100%;
- left: 0%;
- right: auto;
- margin: 0em 0em 1em;
-}
-
-.ui.bottom.pointing.dropdown > .menu:after {
- top: auto;
- bottom: -0.25em;
- right: auto;
- margin: 0em;
- -webkit-transform: rotate(-135deg);
- transform: rotate(-135deg);
-}
-
-/* Reverse Sub-Menu Direction */
-
-.ui.bottom.pointing.dropdown > .menu .menu {
- top: auto !important;
- bottom: 0px !important;
-}
-
-/* Bottom Left */
-
-.ui.bottom.left.pointing.dropdown > .menu {
- left: 0%;
- right: auto;
-}
-
-.ui.bottom.left.pointing.dropdown > .menu:after {
- left: 1em;
- right: auto;
-}
-
-/* Bottom Right */
-
-.ui.bottom.right.pointing.dropdown > .menu {
- right: 0%;
- left: auto;
-}
-
-.ui.bottom.right.pointing.dropdown > .menu:after {
- left: auto;
- right: 1em;
-}
-
-/* Upward pointing */
-
-.ui.pointing.upward.dropdown .menu,
-.ui.top.pointing.upward.dropdown .menu {
- top: auto !important;
- bottom: 100% !important;
- margin: 0em 0em 0.78571429rem;
- border-radius: 0.28571429rem;
-}
-
-.ui.pointing.upward.dropdown .menu:after,
-.ui.top.pointing.upward.dropdown .menu:after {
- top: 100% !important;
- bottom: auto !important;
- -webkit-box-shadow: 1px 1px 0px 0px rgba(34, 36, 38, 0.15);
- box-shadow: 1px 1px 0px 0px rgba(34, 36, 38, 0.15);
- margin: -0.25em 0em 0em;
-}
-
-/* Right Pointing Upward */
-
-.ui.right.pointing.upward.dropdown:not(.top):not(.bottom) .menu {
- top: auto !important;
- bottom: 0 !important;
- margin: 0em 1em 0em 0em;
-}
-
-.ui.right.pointing.upward.dropdown:not(.top):not(.bottom) .menu:after {
- top: auto !important;
- bottom: 0 !important;
- margin: 0em 0em 1em 0em;
- -webkit-box-shadow: -1px -1px 0px 0px rgba(34, 36, 38, 0.15);
- box-shadow: -1px -1px 0px 0px rgba(34, 36, 38, 0.15);
-}
-
-/* Left Pointing Upward */
-
-.ui.left.pointing.upward.dropdown:not(.top):not(.bottom) .menu {
- top: auto !important;
- bottom: 0 !important;
- margin: 0em 0em 0em 1em;
-}
-
-.ui.left.pointing.upward.dropdown:not(.top):not(.bottom) .menu:after {
- top: auto !important;
- bottom: 0 !important;
- margin: 0em 0em 1em 0em;
- -webkit-box-shadow: -1px -1px 0px 0px rgba(34, 36, 38, 0.15);
- box-shadow: -1px -1px 0px 0px rgba(34, 36, 38, 0.15);
-}
-
-/*******************************
-        Theme Overrides
-*******************************/
-
-/* Dropdown Carets */
-
-@font-face {
- font-family: 'Dropdown';
- src: url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMggjB5AAAAC8AAAAYGNtYXAPfuIIAAABHAAAAExnYXNwAAAAEAAAAWgAAAAIZ2x5Zjo82LgAAAFwAAABVGhlYWQAQ88bAAACxAAAADZoaGVhAwcB6QAAAvwAAAAkaG10eAS4ABIAAAMgAAAAIGxvY2EBNgDeAAADQAAAABJtYXhwAAoAFgAAA1QAAAAgbmFtZVcZpu4AAAN0AAABRXBvc3QAAwAAAAAEvAAAACAAAwIAAZAABQAAAUwBZgAAAEcBTAFmAAAA9QAZAIQAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADw2gHg/+D/4AHgACAAAAABAAAAAAAAAAAAAAAgAAAAAAACAAAAAwAAABQAAwABAAAAFAAEADgAAAAKAAgAAgACAAEAIPDa//3//wAAAAAAIPDX//3//wAB/+MPLQADAAEAAAAAAAAAAAAAAAEAAf//AA8AAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAIABJQElABMAABM0NzY3BTYXFhUUDwEGJwYvASY1AAUGBwEACAUGBoAFCAcGgAUBEgcGBQEBAQcECQYHfwYBAQZ/BwYAAQAAAG4BJQESABMAADc0PwE2MzIfARYVFAcGIyEiJyY1AAWABgcIBYAGBgUI/wAHBgWABwaABQWABgcHBgUFBgcAAAABABIASQC3AW4AEwAANzQ/ATYXNhcWHQEUBwYnBi8BJjUSBoAFCAcFBgYFBwgFgAbbBwZ/BwEBBwQJ/wgEBwEBB38GBgAAAAABAAAASQClAW4AEwAANxE0NzYzMh8BFhUUDwEGIyInJjUABQYHCAWABgaABQgHBgVbAQAIBQYGgAUIBwWABgYFBwAAAAEAAAABAADZuaKOXw889QALAgAAAAAA0ABHWAAAAADQAEdYAAAAAAElAW4AAAAIAAIAAAAAAAAAAQAAAeD/4AAAAgAAAAAAASUAAQAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAABAAAAASUAAAElAAAAtwASALcAAAAAAAAACgAUAB4AQgBkAIgAqgAAAAEAAAAIABQAAQAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAOAK4AAQAAAAAAAQAOAAAAAQAAAAAAAgAOAEcAAQAAAAAAAwAOACQAAQAAAAAABAAOAFUAAQAAAAAABQAWAA4AAQAAAAAABgAHADIAAQAAAAAACgA0AGMAAwABBAkAAQAOAAAAAwABBAkAAgAOAEcAAwABBAkAAwAOACQAAwABBAkABAAOAFUAAwABBAkABQAWAA4AAwABBAkABgAOADkAAwABBAkACgA0AGMAaQBjAG8AbQBvAG8AbgBWAGUAcgBzAGkAbwBuACAAMQAuADAAaQBjAG8AbQBvAG8Abmljb21vb24AaQBjAG8AbQBvAG8AbgBSAGUAZwB1AGwAYQByAGkAYwBvAG0AbwBvAG4ARgBvAG4AdAAgAGcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAASQBjAG8ATQBvAG8AbgAuAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=) format('truetype'), url(data:application/font-woff;charset=utf-8;base64,d09GRk9UVE8AAAVwAAoAAAAABSgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABDRkYgAAAA9AAAAdkAAAHZLDXE/09TLzIAAALQAAAAYAAAAGAIIweQY21hcAAAAzAAAABMAAAATA9+4ghnYXNwAAADfAAAAAgAAAAIAAAAEGhlYWQAAAOEAAAANgAAADYAQ88baGhlYQAAA7wAAAAkAAAAJAMHAelobXR4AAAD4AAAACAAAAAgBLgAEm1heHAAAAQAAAAABgAAAAYACFAAbmFtZQAABAgAAAFFAAABRVcZpu5wb3N0AAAFUAAAACAAAAAgAAMAAAEABAQAAQEBCGljb21vb24AAQIAAQA6+BwC+BsD+BgEHgoAGVP/i4seCgAZU/+LiwwHi2v4lPh0BR0AAACIDx0AAACNER0AAAAJHQAAAdASAAkBAQgPERMWGyAlKmljb21vb25pY29tb29udTB1MXUyMHVGMEQ3dUYwRDh1RjBEOXVGMERBAAACAYkABgAIAgABAAQABwAKAA0AVgCfAOgBL/yUDvyUDvyUDvuUDvtvi/emFYuQjZCOjo+Pj42Qiwj3lIsFkIuQiY6Hj4iNhouGi4aJh4eHCPsU+xQFiIiGiYaLhouHjYeOCPsU9xQFiI+Jj4uQCA77b4v3FBWLkI2Pjo8I9xT3FAWPjo+NkIuQi5CJjogI9xT7FAWPh42Hi4aLhomHh4eIiIaJhosI+5SLBYaLh42HjoiPiY+LkAgO+92d928Vi5CNkI+OCPcU9xQFjo+QjZCLkIuPiY6Hj4iNhouGCIv7lAWLhomHh4iIh4eJhouGi4aNiI8I+xT3FAWHjomPi5AIDvvdi+YVi/eUBYuQjZCOjo+Pj42Qi5CLkImOhwj3FPsUBY+IjYaLhouGiYeHiAj7FPsUBYiHhomGi4aLh42Hj4iOiY+LkAgO+JQU+JQViwwKAAAAAAMCAAGQAAUAAAFMAWYAAABHAUwBZgAAAPUAGQCEAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAA8NoB4P/g/+AB4AAgAAAAAQAAAAAAAAAAAAAAIAAAAAAAAgAAAAMAAAAUAAMAAQAAABQABAA4AAAACgAIAAIAAgABACDw2v/9//8AAAAAACDw1//9//8AAf/jDy0AAwABAAAAAAAAAAAAAAABAAH//wAPAAEAAAABAAA5emozXw889QALAgAAAAAA0ABHWAAAAADQAEdYAAAAAAElAW4AAAAIAAIAAAAAAAAAAQAAAeD/4AAAAgAAAAAAASUAAQAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAABAAAAASUAAAElAAAAtwASALcAAAAAUAAACAAAAAAADgCuAAEAAAAAAAEADgAAAAEAAAAAAAIADgBHAAEAAAAAAAMADgAkAAEAAAAAAAQADgBVAAEAAAAAAAUAFgAOAAEAAAAAAAYABwAyAAEAAAAAAAoANABjAAMAAQQJAAEADgAAAAMAAQQJAAIADgBHAAMAAQQJAAMADgAkAAMAAQQJAAQADgBVAAMAAQQJAAUAFgAOAAMAAQQJAAYADgA5AAMAAQQJAAoANABjAGkAYwBvAG0AbwBvAG4AVgBlAHIAcwBpAG8AbgAgADEALgAwAGkAYwBvAG0AbwBvAG5pY29tb29uAGkAYwBvAG0AbwBvAG4AUgBlAGcAdQBsAGEAcgBpAGMAbwBtAG8AbwBuAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format('woff');
- font-weight: normal;
- font-style: normal;
-}
-
-.ui.dropdown > .dropdown.icon {
- font-family: 'Dropdown';
- line-height: 1;
- height: 1em;
- width: 1.23em;
- -webkit-backface-visibility: hidden;
- backface-visibility: hidden;
- font-weight: normal;
- font-style: normal;
- text-align: center;
-}
-
-.ui.dropdown > .dropdown.icon {
- width: auto;
-}
-
-.ui.dropdown > .dropdown.icon:before {
- content: '\f0d7';
-}
-
-/* Sub Menu */
-
-.ui.dropdown .menu .item .dropdown.icon:before {
- content: '\f0da' ;
-}
-
-.ui.dropdown .item .left.dropdown.icon:before,
-.ui.dropdown .left.menu .item .dropdown.icon:before {
- content: "\f0d9" ;
-}
-
-/* Vertical Menu Dropdown */
-
-.ui.vertical.menu .dropdown.item > .dropdown.icon:before {
- content: "\f0da" ;
-}
-
-/* Icons for Reference
-.dropdown.down.icon {
- content: "\f0d7";
-}
-.dropdown.up.icon {
- content: "\f0d8";
-}
-.dropdown.left.icon {
- content: "\f0d9";
-}
-.dropdown.icon.icon {
- content: "\f0da";
-}
-*/
-
-/*******************************
-       User Overrides
-*******************************/
-/*!
-* # Semantic UI 2.3.0 - Video
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-           Types
-*******************************/
-
-.ui.embed {
- position: relative;
- max-width: 100%;
- height: 0px;
- overflow: hidden;
- background: #DCDDDE;
- padding-bottom: 56.25%;
-}
-
-/*-----------------
- Embedded Content
-------------------*/
-
-.ui.embed iframe,
-.ui.embed embed,
-.ui.embed object {
- position: absolute;
- border: none;
- width: 100%;
- height: 100%;
- top: 0px;
- left: 0px;
- margin: 0em;
- padding: 0em;
-}
-
-/*-----------------
-     Embed
-------------------*/
-
-.ui.embed > .embed {
- display: none;
-}
-
-/*--------------
-  Placeholder
----------------*/
-
-.ui.embed > .placeholder {
- position: absolute;
- cursor: pointer;
- top: 0px;
- left: 0px;
- display: block;
- width: 100%;
- height: 100%;
- background-color: radial-gradient(transparent 45%, rgba(0, 0, 0, 0.3));
-}
-
-/*--------------
-     Icon
----------------*/
-
-.ui.embed > .icon {
- cursor: pointer;
- position: absolute;
- top: 0px;
- left: 0px;
- width: 100%;
- height: 100%;
- z-index: 2;
-}
-
-.ui.embed > .icon:after {
- position: absolute;
- top: 0%;
- left: 0%;
- width: 100%;
- height: 100%;
- z-index: 3;
- content: '';
- background: -webkit-radial-gradient(transparent 45%, rgba(0, 0, 0, 0.3));
- background: radial-gradient(transparent 45%, rgba(0, 0, 0, 0.3));
- opacity: 0.5;
- -webkit-transition: opacity 0.5s ease;
- transition: opacity 0.5s ease;
-}
-
-.ui.embed > .icon:before {
- position: absolute;
- top: 50%;
- left: 50%;
- z-index: 4;
- -webkit-transform: translateX(-50%) translateY(-50%);
- transform: translateX(-50%) translateY(-50%);
- color: #FFFFFF;
- font-size: 6rem;
- text-shadow: 0px 2px 10px rgba(34, 36, 38, 0.2);
- -webkit-transition: opacity 0.5s ease, color 0.5s ease;
- transition: opacity 0.5s ease, color 0.5s ease;
- z-index: 10;
-}
-
-/*******************************
-           States
-*******************************/
-
-/*--------------
-    Hover
----------------*/
-
-.ui.embed .icon:hover:after {
- background: -webkit-radial-gradient(transparent 45%, rgba(0, 0, 0, 0.3));
- background: radial-gradient(transparent 45%, rgba(0, 0, 0, 0.3));
- opacity: 1;
-}
-
-.ui.embed .icon:hover:before {
- color: #FFFFFF;
-}
-
-/*--------------
-    Active
----------------*/
-
-.ui.active.embed > .icon,
-.ui.active.embed > .placeholder {
- display: none;
-}
-
-.ui.active.embed > .embed {
- display: block;
-}
-
-/*******************************
-       Video Overrides
-*******************************/
-
-/*******************************
-        Site Overrides
-*******************************/
-
-/*******************************
-         Variations
-*******************************/
-
-.ui.square.embed {
- padding-bottom: 100%;
-}
-
-.ui[class*="4:3"].embed {
- padding-bottom: 75%;
-}
-
-.ui[class*="16:9"].embed {
- padding-bottom: 56.25%;
-}
-
-.ui[class*="21:9"].embed {
- padding-bottom: 42.85714286%;
-}
-/*!
-* # Semantic UI 2.3.0 - Modal
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-            Modal
-*******************************/
-
-.ui.modal {
- display: none;
- z-index: 1001;
- text-align: left;
- background: #FFFFFF;
- border: none;
- -webkit-box-shadow: 1px 3px 3px 0px rgba(0, 0, 0, 0.2), 1px 3px 15px 2px rgba(0, 0, 0, 0.2);
- box-shadow: 1px 3px 3px 0px rgba(0, 0, 0, 0.2), 1px 3px 15px 2px rgba(0, 0, 0, 0.2);
- -webkit-transform-origin: 50% 25%;
- transform-origin: 50% 25%;
- -webkit-box-flex: 0;
- -ms-flex: 0 0 auto;
- flex: 0 0 auto;
- border-radius: 0.28571429rem;
- -webkit-user-select: text;
- -moz-user-select: text;
- -ms-user-select: text;
- user-select: text;
- will-change: top, left, margin, transform, opacity;
-}
-
-.ui.modal > :first-child:not(.icon),
-.ui.modal > .icon:first-child + * {
- border-top-left-radius: 0.28571429rem;
- border-top-right-radius: 0.28571429rem;
-}
-
-.ui.modal > :last-child {
- border-bottom-left-radius: 0.28571429rem;
- border-bottom-right-radius: 0.28571429rem;
-}
-
-/*******************************
-           Content
-*******************************/
-
-/*--------------
-    Close
----------------*/
-
-.ui.modal > .close {
- cursor: pointer;
- position: absolute;
- top: -2.5rem;
- right: -2.5rem;
- z-index: 1;
- opacity: 0.8;
- font-size: 1.25em;
- color: #FFFFFF;
- width: 2.25rem;
- height: 2.25rem;
- padding: 0.625rem 0rem 0rem 0rem;
-}
-
-.ui.modal > .close:hover {
- opacity: 1;
-}
-
-/*--------------
-    Header
----------------*/
-
-.ui.modal > .header {
- display: block;
- font-family: 'Lato', 'Helvetica Neue', Arial, Helvetica, sans-serif;
- background: #FFFFFF;
- margin: 0em;
- padding: 1.25rem 1.5rem;
- -webkit-box-shadow: none;
- box-shadow: none;
- color: rgba(0, 0, 0, 0.85);
- border-bottom: 1px solid rgba(34, 36, 38, 0.15);
-}
-
-.ui.modal > .header:not(.ui) {
- font-size: 1.42857143rem;
- line-height: 1.28571429em;
- font-weight: bold;
-}
-
-/*--------------
-    Content
----------------*/
-
-.ui.modal > .content {
- display: block;
- width: 100%;
- font-size: 1em;
- line-height: 1.4;
- padding: 1.5rem;
- background: #FFFFFF;
-}
-
-.ui.modal > .image.content {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-orient: horizontal;
- -webkit-box-direction: normal;
- -ms-flex-direction: row;
- flex-direction: row;
-}
-
-/* Image */
-
-.ui.modal > .content > .image {
- display: block;
- -webkit-box-flex: 0;
- -ms-flex: 0 1 auto;
- flex: 0 1 auto;
- width: '';
- -ms-flex-item-align: top;
- align-self: top;
-}
-
-.ui.modal > [class*="top aligned"] {
- -ms-flex-item-align: top;
- align-self: top;
-}
-
-.ui.modal > [class*="middle aligned"] {
- -ms-flex-item-align: middle;
- align-self: middle;
-}
-
-.ui.modal > [class*="stretched"] {
- -ms-flex-item-align: stretch;
- align-self: stretch;
-}
-
-/* Description */
-
-.ui.modal > .content > .description {
- display: block;
- -webkit-box-flex: 1;
- -ms-flex: 1 0 auto;
- flex: 1 0 auto;
- min-width: 0px;
- -ms-flex-item-align: top;
- align-self: top;
-}
-
-.ui.modal > .content > .icon + .description,
-.ui.modal > .content > .image + .description {
- -webkit-box-flex: 0;
- -ms-flex: 0 1 auto;
- flex: 0 1 auto;
- min-width: '';
- width: auto;
- padding-left: 2em;
-}
-
-/*rtl:ignore*/
-
-.ui.modal > .content > .image > i.icon {
- margin: 0em;
- opacity: 1;
- width: auto;
- line-height: 1;
- font-size: 8rem;
-}
-
-/*--------------
-    Actions
----------------*/
-
-.ui.modal > .actions {
- background: #F9FAFB;
- padding: 1rem 1rem;
- border-top: 1px solid rgba(34, 36, 38, 0.15);
- text-align: right;
-}
-
-.ui.modal .actions > .button {
- margin-left: 0.75em;
-}
-
-/*-------------------
-      Responsive
---------------------*/
-
-/* Modal Width */
-
-@media only screen and (max-width: 767px) {
- .ui.modal {
-   width: 95%;
-   margin: 0em 0em 0em 0em;
- }
-}
-
-@media only screen and (min-width: 768px) {
- .ui.modal {
-   width: 88%;
-   margin: 0em 0em 0em 0em;
- }
-}
-
-@media only screen and (min-width: 992px) {
- .ui.modal {
-   width: 850px;
-   margin: 0em 0em 0em 0em;
- }
-}
-
-@media only screen and (min-width: 1200px) {
- .ui.modal {
-   width: 900px;
-   margin: 0em 0em 0em 0em;
- }
-}
-
-@media only screen and (min-width: 1920px) {
- .ui.modal {
-   width: 950px;
-   margin: 0em 0em 0em 0em;
- }
-}
-
-/* Tablet and Mobile */
-
-@media only screen and (max-width: 991px) {
- .ui.modal > .header {
-   padding-right: 2.25rem;
- }
-
- .ui.modal > .close {
-   top: 1.0535rem;
-   right: 1rem;
-   color: rgba(0, 0, 0, 0.87);
- }
-}
-
-/* Mobile */
-
-@media only screen and (max-width: 767px) {
- .ui.modal > .header {
-   padding: 0.75rem 1rem !important;
-   padding-right: 2.25rem !important;
- }
-
- .ui.modal > .content {
-   display: block;
-   padding: 1rem !important;
- }
-
- .ui.modal > .close {
-   top: 0.5rem !important;
-   right: 0.5rem !important;
- }
-
- /*rtl:ignore*/
-
- .ui.modal .image.content {
-   -webkit-box-orient: vertical;
-   -webkit-box-direction: normal;
-   -ms-flex-direction: column;
-   flex-direction: column;
- }
-
- .ui.modal .content > .image {
-   display: block;
-   max-width: 100%;
-   margin: 0em auto !important;
-   text-align: center;
-   padding: 0rem 0rem 1rem !important;
- }
-
- .ui.modal > .content > .image > i.icon {
-   font-size: 5rem;
-   text-align: center;
- }
-
- /*rtl:ignore*/
-
- .ui.modal .content > .description {
-   display: block;
-   width: 100% !important;
-   margin: 0em !important;
-   padding: 1rem 0rem !important;
-   -webkit-box-shadow: none;
-   box-shadow: none;
- }
-
- /* Let Buttons Stack */
-
- .ui.modal > .actions {
-   padding: 1rem 1rem 0rem !important;
- }
-
- .ui.modal .actions > .buttons,
- .ui.modal .actions > .button {
-   margin-bottom: 1rem;
- }
-}
-
-/*--------------
-   Coupling
----------------*/
-
-.ui.inverted.dimmer > .ui.modal {
- -webkit-box-shadow: 1px 3px 10px 2px rgba(0, 0, 0, 0.2);
- box-shadow: 1px 3px 10px 2px rgba(0, 0, 0, 0.2);
-}
-
-/*******************************
-            Types
-*******************************/
-
-.ui.basic.modal {
- background-color: transparent;
- border: none;
- border-radius: 0em;
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
- color: #FFFFFF;
-}
-
-.ui.basic.modal > .header,
-.ui.basic.modal > .content,
-.ui.basic.modal > .actions {
- background-color: transparent;
-}
-
-.ui.basic.modal > .header {
- color: #FFFFFF;
-}
-
-.ui.basic.modal > .close {
- top: 1rem;
- right: 1.5rem;
-}
-
-.ui.inverted.dimmer > .basic.modal {
- color: rgba(0, 0, 0, 0.87);
-}
-
-.ui.inverted.dimmer > .ui.basic.modal > .header {
- color: rgba(0, 0, 0, 0.85);
-}
-
-/* Tablet and Mobile */
-
-@media only screen and (max-width: 991px) {
- .ui.basic.modal > .close {
-   color: #FFFFFF;
- }
-}
-
-/*******************************
-            States
-*******************************/
-
-.ui.loading.modal {
- display: block;
- visibility: hidden;
- z-index: -1;
-}
-
-.ui.active.modal {
- display: block;
-}
-
-/*******************************
-          Variations
-*******************************/
-
-/*--------------
-  Top Aligned
----------------*/
-
-/* Top Aligned Modal */
-
-.modals.dimmer[class*="top aligned"] .modal {
- margin: 5vh auto;
-}
-
-/*--------------
-   Scrolling
----------------*/
-
-/* Scrolling Dimmer */
-
-.scrolling.dimmable.dimmed {
- overflow: hidden;
-}
-
-.scrolling.dimmable > .dimmer {
- -webkit-box-pack: start;
- -ms-flex-pack: start;
- justify-content: flex-start;
-}
-
-.scrolling.dimmable.dimmed > .dimmer {
- overflow: auto;
- -webkit-overflow-scrolling: touch;
-}
-
-.scrolling.dimmable > .dimmer {
- position: fixed;
-}
-
-.modals.dimmer .ui.scrolling.modal {
- margin: 1rem auto !important;
-}
-
-/* Undetached Scrolling */
-
-.scrolling.undetached.dimmable.dimmed {
- overflow: auto;
- -webkit-overflow-scrolling: touch;
-}
-
-.scrolling.undetached.dimmable.dimmed > .dimmer {
- overflow: hidden;
-}
-
-.scrolling.undetached.dimmable .ui.scrolling.modal {
- position: absolute;
- left: 50%;
- margin-top: 1rem !important;
-}
-
-/* Scrolling Content */
-
-.ui.modal .scrolling.content {
- max-height: calc(70vh);
- overflow: auto;
-}
-
-/*--------------
-  Full Screen
----------------*/
-
-.ui.fullscreen.modal {
- width: 95% !important;
- left: 0em !important;
- margin: 1em auto;
-}
-
-.ui.fullscreen.scrolling.modal {
- left: 0em !important;
-}
-
-.ui.fullscreen.modal > .header {
- padding-right: 2.25rem;
-}
-
-.ui.fullscreen.modal > .close {
- top: 1.0535rem;
- right: 1rem;
- color: rgba(0, 0, 0, 0.87);
-}
-
-/*--------------
-     Size
----------------*/
-
-.ui.modal {
- font-size: 1rem;
-}
-
-/* Mini */
-
-.ui.mini.modal > .header:not(.ui) {
- font-size: 1.3em;
-}
-
-/* Mini Modal Width */
-
-@media only screen and (max-width: 767px) {
- .ui.mini.modal {
-   width: 95%;
-   margin: 0em 0em 0em 0em;
- }
-}
-
-@media only screen and (min-width: 768px) {
- .ui.mini.modal {
-   width: 35.2%;
-   margin: 0em 0em 0em 0em;
- }
-}
-
-@media only screen and (min-width: 992px) {
- .ui.mini.modal {
-   width: 340px;
-   margin: 0em 0em 0em 0em;
- }
-}
-
-@media only screen and (min-width: 1200px) {
- .ui.mini.modal {
-   width: 360px;
-   margin: 0em 0em 0em 0em;
- }
-}
-
-@media only screen and (min-width: 1920px) {
- .ui.mini.modal {
-   width: 380px;
-   margin: 0em 0em 0em 0em;
- }
-}
-
-/* mini */
-
-.ui.small.modal > .header:not(.ui) {
- font-size: 1.3em;
-}
-
-/* Tiny Modal Width */
-
-@media only screen and (max-width: 767px) {
- .ui.tiny.modal {
-   width: 95%;
-   margin: 0em 0em 0em 0em;
- }
-}
-
-@media only screen and (min-width: 768px) {
- .ui.tiny.modal {
-   width: 52.8%;
-   margin: 0em 0em 0em 0em;
- }
-}
-
-@media only screen and (min-width: 992px) {
- .ui.tiny.modal {
-   width: 510px;
-   margin: 0em 0em 0em 0em;
- }
-}
-
-@media only screen and (min-width: 1200px) {
- .ui.tiny.modal {
-   width: 540px;
-   margin: 0em 0em 0em 0em;
- }
-}
-
-@media only screen and (min-width: 1920px) {
- .ui.tiny.modal {
-   width: 570px;
-   margin: 0em 0em 0em 0em;
- }
-}
-
-/* Small */
-
-.ui.small.modal > .header:not(.ui) {
- font-size: 1.3em;
-}
-
-/* Small Modal Width */
-
-@media only screen and (max-width: 767px) {
- .ui.small.modal {
-   width: 95%;
-   margin: 0em 0em 0em 0em;
- }
-}
-
-@media only screen and (min-width: 768px) {
- .ui.small.modal {
-   width: 70.4%;
-   margin: 0em 0em 0em 0em;
- }
-}
-
-@media only screen and (min-width: 992px) {
- .ui.small.modal {
-   width: 680px;
-   margin: 0em 0em 0em 0em;
- }
-}
-
-@media only screen and (min-width: 1200px) {
- .ui.small.modal {
-   width: 720px;
-   margin: 0em 0em 0em 0em;
- }
-}
-
-@media only screen and (min-width: 1920px) {
- .ui.small.modal {
-   width: 760px;
-   margin: 0em 0em 0em 0em;
- }
-}
-
-/* Large Modal Width */
-
-.ui.large.modal > .header {
- font-size: 1.6em;
-}
-
-@media only screen and (max-width: 767px) {
- .ui.large.modal {
-   width: 95%;
-   margin: 0em 0em 0em 0em;
- }
-}
-
-@media only screen and (min-width: 768px) {
- .ui.large.modal {
-   width: 88%;
-   margin: 0em 0em 0em 0em;
- }
-}
-
-@media only screen and (min-width: 992px) {
- .ui.large.modal {
-   width: 1020px;
-   margin: 0em 0em 0em 0em;
- }
-}
-
-@media only screen and (min-width: 1200px) {
- .ui.large.modal {
-   width: 1080px;
-   margin: 0em 0em 0em 0em;
- }
-}
-
-@media only screen and (min-width: 1920px) {
- .ui.large.modal {
-   width: 1140px;
-   margin: 0em 0em 0em 0em;
- }
-}
-
-/*******************************
-        Theme Overrides
-*******************************/
-
-/*******************************
-        Site Overrides
-*******************************/
-/*!
-* # Semantic UI 2.3.0 - Nag
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-            Nag
-*******************************/
-
-.ui.nag {
- display: none;
- opacity: 0.95;
- position: relative;
- top: 0em;
- left: 0px;
- z-index: 999;
- min-height: 0em;
- width: 100%;
- margin: 0em;
- padding: 0.75em 1em;
- background: #555555;
- -webkit-box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.2);
- box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.2);
- font-size: 1rem;
- text-align: center;
- color: rgba(0, 0, 0, 0.87);
- border-radius: 0em 0em 0.28571429rem 0.28571429rem;
- -webkit-transition: 0.2s background ease;
- transition: 0.2s background ease;
-}
-
-a.ui.nag {
- cursor: pointer;
-}
-
-.ui.nag > .title {
- display: inline-block;
- margin: 0em 0.5em;
- color: #FFFFFF;
-}
-
-.ui.nag > .close.icon {
- cursor: pointer;
- opacity: 0.4;
- position: absolute;
- top: 50%;
- right: 1em;
- font-size: 1em;
- margin: -0.5em 0em 0em;
- color: #FFFFFF;
- -webkit-transition: opacity 0.2s ease;
- transition: opacity 0.2s ease;
-}
-
-/*******************************
-            States
-*******************************/
-
-/* Hover */
-
-.ui.nag:hover {
- background: #555555;
- opacity: 1;
-}
-
-.ui.nag .close:hover {
- opacity: 1;
-}
-
-/*******************************
-          Variations
-*******************************/
-
-/*--------------
-    Static
----------------*/
-
-.ui.overlay.nag {
- position: absolute;
- display: block;
-}
-
-/*--------------
-    Fixed
----------------*/
-
-.ui.fixed.nag {
- position: fixed;
-}
-
-/*--------------
-    Bottom
----------------*/
-
-.ui.bottom.nags,
-.ui.bottom.nag {
- border-radius: 0.28571429rem 0.28571429rem 0em 0em;
- top: auto;
- bottom: 0em;
-}
-
-/*--------------
-    White
----------------*/
-
-.ui.inverted.nags .nag,
-.ui.inverted.nag {
- background-color: #F3F4F5;
- color: rgba(0, 0, 0, 0.85);
-}
-
-.ui.inverted.nags .nag .close,
-.ui.inverted.nags .nag .title,
-.ui.inverted.nag .close,
-.ui.inverted.nag .title {
- color: rgba(0, 0, 0, 0.4);
-}
-
-/*******************************
-          Groups
-*******************************/
-
-.ui.nags .nag {
- border-radius: 0em !important;
-}
-
-.ui.nags .nag:last-child {
- border-radius: 0em 0em 0.28571429rem 0.28571429rem;
-}
-
-.ui.bottom.nags .nag:last-child {
- border-radius: 0.28571429rem 0.28571429rem 0em 0em;
-}
-
-/*******************************
-        Theme Overrides
-*******************************/
-
-/*******************************
-       User Overrides
-*******************************/
-/*!
-* # Semantic UI 2.3.0 - Popup
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-           Popup
-*******************************/
-
-.ui.popup {
- display: none;
- position: absolute;
- top: 0px;
- right: 0px;
- /* Fixes content being squished when inline (moz only) */
- min-width: -webkit-min-content;
- min-width: -moz-min-content;
- min-width: min-content;
- z-index: 1900;
- border: 1px solid #D4D4D5;
- line-height: 1.4285em;
- max-width: 250px;
- background: #FFFFFF;
- padding: 0.833em 1em;
- font-weight: normal;
- font-style: normal;
- color: rgba(0, 0, 0, 0.87);
- border-radius: 0.28571429rem;
- -webkit-box-shadow: 0px 2px 4px 0px rgba(34, 36, 38, 0.12), 0px 2px 10px 0px rgba(34, 36, 38, 0.15);
- box-shadow: 0px 2px 4px 0px rgba(34, 36, 38, 0.12), 0px 2px 10px 0px rgba(34, 36, 38, 0.15);
-}
-
-.ui.popup > .header {
- padding: 0em;
- font-family: 'Lato', 'Helvetica Neue', Arial, Helvetica, sans-serif;
- font-size: 1.14285714em;
- line-height: 1.2;
- font-weight: bold;
-}
-
-.ui.popup > .header + .content {
- padding-top: 0.5em;
-}
-
-.ui.popup:before {
- position: absolute;
- content: '';
- width: 0.71428571em;
- height: 0.71428571em;
- background: #FFFFFF;
- -webkit-transform: rotate(45deg);
- transform: rotate(45deg);
- z-index: 2;
- -webkit-box-shadow: 1px 1px 0px 0px #bababc;
- box-shadow: 1px 1px 0px 0px #bababc;
-}
-
-/*******************************
-           Types
-*******************************/
-
-/*--------------
-   Tooltip
----------------*/
-
-/* Content */
-
-[data-tooltip] {
- position: relative;
-}
-
-/* Arrow */
-
-[data-tooltip]:before {
- pointer-events: none;
- position: absolute;
- content: '';
- font-size: 1rem;
- width: 0.71428571em;
- height: 0.71428571em;
- background: #FFFFFF;
- -webkit-transform: rotate(45deg);
- transform: rotate(45deg);
- z-index: 2;
- -webkit-box-shadow: 1px 1px 0px 0px #bababc;
- box-shadow: 1px 1px 0px 0px #bababc;
-}
-
-/* Popup */
-
-[data-tooltip]:after {
- pointer-events: none;
- content: attr(data-tooltip);
- position: absolute;
- text-transform: none;
- text-align: left;
- white-space: nowrap;
- font-size: 1rem;
- border: 1px solid #D4D4D5;
- line-height: 1.4285em;
- max-width: none;
- background: #FFFFFF;
- padding: 0.833em 1em;
- font-weight: normal;
- font-style: normal;
- color: rgba(0, 0, 0, 0.87);
- border-radius: 0.28571429rem;
- -webkit-box-shadow: 0px 2px 4px 0px rgba(34, 36, 38, 0.12), 0px 2px 10px 0px rgba(34, 36, 38, 0.15);
- box-shadow: 0px 2px 4px 0px rgba(34, 36, 38, 0.12), 0px 2px 10px 0px rgba(34, 36, 38, 0.15);
- z-index: 1;
-}
-
-/* Default Position (Top Center) */
-
-[data-tooltip]:not([data-position]):before {
- top: auto;
- right: auto;
- bottom: 100%;
- left: 50%;
- background: #FFFFFF;
- margin-left: -0.07142857rem;
- margin-bottom: 0.14285714rem;
-}
-
-[data-tooltip]:not([data-position]):after {
- left: 50%;
- -webkit-transform: translateX(-50%);
- transform: translateX(-50%);
- bottom: 100%;
- margin-bottom: 0.5em;
-}
-
-/* Animation */
-
-[data-tooltip]:before,
-[data-tooltip]:after {
- pointer-events: none;
- visibility: hidden;
-}
-
-[data-tooltip]:before {
- opacity: 0;
- -webkit-transform: rotate(45deg) scale(0) !important;
- transform: rotate(45deg) scale(0) !important;
- -webkit-transform-origin: center top;
- transform-origin: center top;
- -webkit-transition: all 0.1s ease;
- transition: all 0.1s ease;
-}
-
-[data-tooltip]:after {
- opacity: 1;
- -webkit-transform-origin: center bottom;
- transform-origin: center bottom;
- -webkit-transition: all 0.1s ease;
- transition: all 0.1s ease;
-}
-
-[data-tooltip]:hover:before,
-[data-tooltip]:hover:after {
- visibility: visible;
- pointer-events: auto;
-}
-
-[data-tooltip]:hover:before {
- -webkit-transform: rotate(45deg) scale(1) !important;
- transform: rotate(45deg) scale(1) !important;
- opacity: 1;
-}
-
-/* Animation Position */
-
-[data-tooltip]:after,
-[data-tooltip][data-position="top center"]:after,
-[data-tooltip][data-position="bottom center"]:after {
- -webkit-transform: translateX(-50%) scale(0) !important;
- transform: translateX(-50%) scale(0) !important;
-}
-
-[data-tooltip]:hover:after,
-[data-tooltip][data-position="bottom center"]:hover:after {
- -webkit-transform: translateX(-50%) scale(1) !important;
- transform: translateX(-50%) scale(1) !important;
-}
-
-[data-tooltip][data-position="left center"]:after,
-[data-tooltip][data-position="right center"]:after {
- -webkit-transform: translateY(-50%) scale(0) !important;
- transform: translateY(-50%) scale(0) !important;
-}
-
-[data-tooltip][data-position="left center"]:hover:after,
-[data-tooltip][data-position="right center"]:hover:after {
- -webkit-transform: translateY(-50%) scale(1) !important;
- transform: translateY(-50%) scale(1) !important;
-}
-
-[data-tooltip][data-position="top left"]:after,
-[data-tooltip][data-position="top right"]:after,
-[data-tooltip][data-position="bottom left"]:after,
-[data-tooltip][data-position="bottom right"]:after {
- -webkit-transform: scale(0) !important;
- transform: scale(0) !important;
-}
-
-[data-tooltip][data-position="top left"]:hover:after,
-[data-tooltip][data-position="top right"]:hover:after,
-[data-tooltip][data-position="bottom left"]:hover:after,
-[data-tooltip][data-position="bottom right"]:hover:after {
- -webkit-transform: scale(1) !important;
- transform: scale(1) !important;
-}
-
-/*--------------
-   Inverted
----------------*/
-
-/* Arrow */
-
-[data-tooltip][data-inverted]:before {
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
-}
-
-/* Arrow Position */
-
-[data-tooltip][data-inverted]:before {
- background: #1B1C1D;
-}
-
-/* Popup  */
-
-[data-tooltip][data-inverted]:after {
- background: #1B1C1D;
- color: #FFFFFF;
- border: none;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-[data-tooltip][data-inverted]:after .header {
- background-color: none;
- color: #FFFFFF;
-}
-
-/*--------------
-   Position
----------------*/
-
-/* Top Center */
-
-[data-position="top center"][data-tooltip]:after {
- top: auto;
- right: auto;
- left: 50%;
- bottom: 100%;
- -webkit-transform: translateX(-50%);
- transform: translateX(-50%);
- margin-bottom: 0.5em;
-}
-
-[data-position="top center"][data-tooltip]:before {
- top: auto;
- right: auto;
- bottom: 100%;
- left: 50%;
- background: #FFFFFF;
- margin-left: -0.07142857rem;
- margin-bottom: 0.14285714rem;
-}
-
-/* Top Left */
-
-[data-position="top left"][data-tooltip]:after {
- top: auto;
- right: auto;
- left: 0;
- bottom: 100%;
- margin-bottom: 0.5em;
-}
-
-[data-position="top left"][data-tooltip]:before {
- top: auto;
- right: auto;
- bottom: 100%;
- left: 1em;
- margin-left: -0.07142857rem;
- margin-bottom: 0.14285714rem;
-}
-
-/* Top Right */
-
-[data-position="top right"][data-tooltip]:after {
- top: auto;
- left: auto;
- right: 0;
- bottom: 100%;
- margin-bottom: 0.5em;
-}
-
-[data-position="top right"][data-tooltip]:before {
- top: auto;
- left: auto;
- bottom: 100%;
- right: 1em;
- margin-left: -0.07142857rem;
- margin-bottom: 0.14285714rem;
-}
-
-/* Bottom Center */
-
-[data-position="bottom center"][data-tooltip]:after {
- bottom: auto;
- right: auto;
- left: 50%;
- top: 100%;
- -webkit-transform: translateX(-50%);
- transform: translateX(-50%);
- margin-top: 0.5em;
-}
-
-[data-position="bottom center"][data-tooltip]:before {
- bottom: auto;
- right: auto;
- top: 100%;
- left: 50%;
- margin-left: -0.07142857rem;
- margin-top: 0.14285714rem;
-}
-
-/* Bottom Left */
-
-[data-position="bottom left"][data-tooltip]:after {
- left: 0;
- top: 100%;
- margin-top: 0.5em;
-}
-
-[data-position="bottom left"][data-tooltip]:before {
- bottom: auto;
- right: auto;
- top: 100%;
- left: 1em;
- margin-left: -0.07142857rem;
- margin-top: 0.14285714rem;
-}
-
-/* Bottom Right */
-
-[data-position="bottom right"][data-tooltip]:after {
- right: 0;
- top: 100%;
- margin-top: 0.5em;
-}
-
-[data-position="bottom right"][data-tooltip]:before {
- bottom: auto;
- left: auto;
- top: 100%;
- right: 1em;
- margin-left: -0.14285714rem;
- margin-top: 0.07142857rem;
-}
-
-/* Left Center */
-
-[data-position="left center"][data-tooltip]:after {
- right: 100%;
- top: 50%;
- margin-right: 0.5em;
- -webkit-transform: translateY(-50%);
- transform: translateY(-50%);
-}
-
-[data-position="left center"][data-tooltip]:before {
- right: 100%;
- top: 50%;
- margin-top: -0.14285714rem;
- margin-right: -0.07142857rem;
-}
-
-/* Right Center */
-
-[data-position="right center"][data-tooltip]:after {
- left: 100%;
- top: 50%;
- margin-left: 0.5em;
- -webkit-transform: translateY(-50%);
- transform: translateY(-50%);
-}
-
-[data-position="right center"][data-tooltip]:before {
- left: 100%;
- top: 50%;
- margin-top: -0.07142857rem;
- margin-left: 0.14285714rem;
-}
-
-/* Arrow */
-
-[data-position~="bottom"][data-tooltip]:before {
- background: #FFFFFF;
- -webkit-box-shadow: -1px -1px 0px 0px #bababc;
- box-shadow: -1px -1px 0px 0px #bababc;
-}
-
-[data-position="left center"][data-tooltip]:before {
- background: #FFFFFF;
- -webkit-box-shadow: 1px -1px 0px 0px #bababc;
- box-shadow: 1px -1px 0px 0px #bababc;
-}
-
-[data-position="right center"][data-tooltip]:before {
- background: #FFFFFF;
- -webkit-box-shadow: -1px 1px 0px 0px #bababc;
- box-shadow: -1px 1px 0px 0px #bababc;
-}
-
-[data-position~="top"][data-tooltip]:before {
- background: #FFFFFF;
-}
-
-/* Inverted Arrow Color */
-
-[data-inverted][data-position~="bottom"][data-tooltip]:before {
- background: #1B1C1D;
- -webkit-box-shadow: -1px -1px 0px 0px #bababc;
- box-shadow: -1px -1px 0px 0px #bababc;
-}
-
-[data-inverted][data-position="left center"][data-tooltip]:before {
- background: #1B1C1D;
- -webkit-box-shadow: 1px -1px 0px 0px #bababc;
- box-shadow: 1px -1px 0px 0px #bababc;
-}
-
-[data-inverted][data-position="right center"][data-tooltip]:before {
- background: #1B1C1D;
- -webkit-box-shadow: -1px 1px 0px 0px #bababc;
- box-shadow: -1px 1px 0px 0px #bababc;
-}
-
-[data-inverted][data-position~="top"][data-tooltip]:before {
- background: #1B1C1D;
-}
-
-[data-position~="bottom"][data-tooltip]:before {
- -webkit-transform-origin: center bottom;
- transform-origin: center bottom;
-}
-
-[data-position~="bottom"][data-tooltip]:after {
- -webkit-transform-origin: center top;
- transform-origin: center top;
-}
-
-[data-position="left center"][data-tooltip]:before {
- -webkit-transform-origin: top center;
- transform-origin: top center;
-}
-
-[data-position="left center"][data-tooltip]:after {
- -webkit-transform-origin: right center;
- transform-origin: right center;
-}
-
-[data-position="right center"][data-tooltip]:before {
- -webkit-transform-origin: right center;
- transform-origin: right center;
-}
-
-[data-position="right center"][data-tooltip]:after {
- -webkit-transform-origin: left center;
- transform-origin: left center;
-}
-
-/*--------------
-    Spacing
----------------*/
-
-.ui.popup {
- margin: 0em;
-}
-
-/* Extending from Top */
-
-.ui.top.popup {
- margin: 0em 0em 0.71428571em;
-}
-
-.ui.top.left.popup {
- -webkit-transform-origin: left bottom;
- transform-origin: left bottom;
-}
-
-.ui.top.center.popup {
- -webkit-transform-origin: center bottom;
- transform-origin: center bottom;
-}
-
-.ui.top.right.popup {
- -webkit-transform-origin: right bottom;
- transform-origin: right bottom;
-}
-
-/* Extending from Vertical Center */
-
-.ui.left.center.popup {
- margin: 0em 0.71428571em 0em 0em;
- -webkit-transform-origin: right 50%;
- transform-origin: right 50%;
-}
-
-.ui.right.center.popup {
- margin: 0em 0em 0em 0.71428571em;
- -webkit-transform-origin: left 50%;
- transform-origin: left 50%;
-}
-
-/* Extending from Bottom */
-
-.ui.bottom.popup {
- margin: 0.71428571em 0em 0em;
-}
-
-.ui.bottom.left.popup {
- -webkit-transform-origin: left top;
- transform-origin: left top;
-}
-
-.ui.bottom.center.popup {
- -webkit-transform-origin: center top;
- transform-origin: center top;
-}
-
-.ui.bottom.right.popup {
- -webkit-transform-origin: right top;
- transform-origin: right top;
-}
-
-/*--------------
-    Pointer
----------------*/
-
-/*--- Below ---*/
-
-.ui.bottom.center.popup:before {
- margin-left: -0.30714286em;
- top: -0.30714286em;
- left: 50%;
- right: auto;
- bottom: auto;
- -webkit-box-shadow: -1px -1px 0px 0px #bababc;
- box-shadow: -1px -1px 0px 0px #bababc;
-}
-
-.ui.bottom.left.popup {
- margin-left: 0em;
-}
-
-/*rtl:rename*/
-
-.ui.bottom.left.popup:before {
- top: -0.30714286em;
- left: 1em;
- right: auto;
- bottom: auto;
- margin-left: 0em;
- -webkit-box-shadow: -1px -1px 0px 0px #bababc;
- box-shadow: -1px -1px 0px 0px #bababc;
-}
-
-.ui.bottom.right.popup {
- margin-right: 0em;
-}
-
-/*rtl:rename*/
-
-.ui.bottom.right.popup:before {
- top: -0.30714286em;
- right: 1em;
- bottom: auto;
- left: auto;
- margin-left: 0em;
- -webkit-box-shadow: -1px -1px 0px 0px #bababc;
- box-shadow: -1px -1px 0px 0px #bababc;
-}
-
-/*--- Above ---*/
-
-.ui.top.center.popup:before {
- top: auto;
- right: auto;
- bottom: -0.30714286em;
- left: 50%;
- margin-left: -0.30714286em;
-}
-
-.ui.top.left.popup {
- margin-left: 0em;
-}
-
-/*rtl:rename*/
-
-.ui.top.left.popup:before {
- bottom: -0.30714286em;
- left: 1em;
- top: auto;
- right: auto;
- margin-left: 0em;
-}
-
-.ui.top.right.popup {
- margin-right: 0em;
-}
-
-/*rtl:rename*/
-
-.ui.top.right.popup:before {
- bottom: -0.30714286em;
- right: 1em;
- top: auto;
- left: auto;
- margin-left: 0em;
-}
-
-/*--- Left Center ---*/
-
-/*rtl:rename*/
-
-.ui.left.center.popup:before {
- top: 50%;
- right: -0.30714286em;
- bottom: auto;
- left: auto;
- margin-top: -0.30714286em;
- -webkit-box-shadow: 1px -1px 0px 0px #bababc;
- box-shadow: 1px -1px 0px 0px #bababc;
-}
-
-/*--- Right Center  ---*/
-
-/*rtl:rename*/
-
-.ui.right.center.popup:before {
- top: 50%;
- left: -0.30714286em;
- bottom: auto;
- right: auto;
- margin-top: -0.30714286em;
- -webkit-box-shadow: -1px 1px 0px 0px #bababc;
- box-shadow: -1px 1px 0px 0px #bababc;
-}
-
-/* Arrow Color By Location */
-
-.ui.bottom.popup:before {
- background: #FFFFFF;
-}
-
-.ui.right.center.popup:before,
-.ui.left.center.popup:before {
- background: #FFFFFF;
-}
-
-.ui.top.popup:before {
- background: #FFFFFF;
-}
-
-/* Inverted Arrow Color */
-
-.ui.inverted.bottom.popup:before {
- background: #1B1C1D;
-}
-
-.ui.inverted.right.center.popup:before,
-.ui.inverted.left.center.popup:before {
- background: #1B1C1D;
-}
-
-.ui.inverted.top.popup:before {
- background: #1B1C1D;
-}
-
-/*******************************
-           Coupling
-*******************************/
-
-/* Immediate Nested Grid */
-
-.ui.popup > .ui.grid:not(.padded) {
- width: calc(100% + 1.75rem);
- margin: -0.7rem -0.875rem;
-}
-
-/*******************************
-           States
-*******************************/
-
-.ui.loading.popup {
- display: block;
- visibility: hidden;
- z-index: -1;
-}
-
-.ui.animating.popup,
-.ui.visible.popup {
- display: block;
-}
-
-.ui.visible.popup {
- -webkit-transform: translateZ(0px);
- transform: translateZ(0px);
- -webkit-backface-visibility: hidden;
- backface-visibility: hidden;
-}
-
-/*******************************
-           Variations
-*******************************/
-
-/*--------------
-    Basic
----------------*/
-
-.ui.basic.popup:before {
- display: none;
-}
-
-/*--------------
-    Wide
----------------*/
-
-.ui.wide.popup {
- max-width: 350px;
-}
-
-.ui[class*="very wide"].popup {
- max-width: 550px;
-}
-
-@media only screen and (max-width: 767px) {
- .ui.wide.popup,
- .ui[class*="very wide"].popup {
-   max-width: 250px;
- }
-}
-
-/*--------------
-    Fluid
----------------*/
-
-.ui.fluid.popup {
- width: 100%;
- max-width: none;
-}
-
-/*--------------
-    Colors
----------------*/
-
-/* Inverted colors  */
-
-.ui.inverted.popup {
- background: #1B1C1D;
- color: #FFFFFF;
- border: none;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-.ui.inverted.popup .header {
- background-color: none;
- color: #FFFFFF;
-}
-
-.ui.inverted.popup:before {
- background-color: #1B1C1D;
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
-}
-
-/*--------------
-    Flowing
----------------*/
-
-.ui.flowing.popup {
- max-width: none;
-}
-
-/*--------------
-    Sizes
----------------*/
-
-.ui.mini.popup {
- font-size: 0.78571429rem;
-}
-
-.ui.tiny.popup {
- font-size: 0.85714286rem;
-}
-
-.ui.small.popup {
- font-size: 0.92857143rem;
-}
-
-.ui.popup {
- font-size: 1rem;
-}
-
-.ui.large.popup {
- font-size: 1.14285714rem;
-}
-
-.ui.huge.popup {
- font-size: 1.42857143rem;
-}
-
-/*******************************
-        Theme Overrides
-*******************************/
-
-/*******************************
-       User Overrides
-*******************************/
-/*!
-* # Semantic UI 2.3.0 - Progress Bar
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-           Progress
-*******************************/
-
-.ui.progress {
- position: relative;
- display: block;
- max-width: 100%;
- border: none;
- margin: 1em 0em 2.5em;
- -webkit-box-shadow: none;
- box-shadow: none;
- background: rgba(0, 0, 0, 0.1);
- padding: 0em;
- border-radius: 0.28571429rem;
-}
-
-.ui.progress:first-child {
- margin: 0em 0em 2.5em;
-}
-
-.ui.progress:last-child {
- margin: 0em 0em 1.5em;
-}
-
-/*******************************
-           Content
-*******************************/
-
-/* Activity Bar */
-
-.ui.progress .bar {
- display: block;
- line-height: 1;
- position: relative;
- width: 0%;
- min-width: 2em;
- background: #888888;
- border-radius: 0.28571429rem;
- -webkit-transition: width 0.1s ease, background-color 0.1s ease;
- transition: width 0.1s ease, background-color 0.1s ease;
-}
-
-/* Percent Complete */
-
-.ui.progress .bar > .progress {
- white-space: nowrap;
- position: absolute;
- width: auto;
- font-size: 0.92857143em;
- top: 50%;
- right: 0.5em;
- left: auto;
- bottom: auto;
- color: rgba(255, 255, 255, 0.7);
- text-shadow: none;
- margin-top: -0.5em;
- font-weight: bold;
- text-align: left;
-}
-
-/* Label */
-
-.ui.progress > .label {
- position: absolute;
- width: 100%;
- font-size: 1em;
- top: 100%;
- right: auto;
- left: 0%;
- bottom: auto;
- color: rgba(0, 0, 0, 0.87);
- font-weight: bold;
- text-shadow: none;
- margin-top: 0.2em;
- text-align: center;
- -webkit-transition: color 0.4s ease;
- transition: color 0.4s ease;
-}
-
-/*******************************
-           Types
-*******************************/
-
-/* Indicating */
-
-.ui.indicating.progress[data-percent^="1"] .bar,
-.ui.indicating.progress[data-percent^="2"] .bar {
- background-color: #D95C5C;
-}
-
-.ui.indicating.progress[data-percent^="3"] .bar {
- background-color: #EFBC72;
-}
-
-.ui.indicating.progress[data-percent^="4"] .bar,
-.ui.indicating.progress[data-percent^="5"] .bar {
- background-color: #E6BB48;
-}
-
-.ui.indicating.progress[data-percent^="6"] .bar {
- background-color: #DDC928;
-}
-
-.ui.indicating.progress[data-percent^="7"] .bar,
-.ui.indicating.progress[data-percent^="8"] .bar {
- background-color: #B4D95C;
-}
-
-.ui.indicating.progress[data-percent^="9"] .bar,
-.ui.indicating.progress[data-percent^="100"] .bar {
- background-color: #66DA81;
-}
-
-/* Indicating Label */
-
-.ui.indicating.progress[data-percent^="1"] .label,
-.ui.indicating.progress[data-percent^="2"] .label {
- color: rgba(0, 0, 0, 0.87);
-}
-
-.ui.indicating.progress[data-percent^="3"] .label {
- color: rgba(0, 0, 0, 0.87);
-}
-
-.ui.indicating.progress[data-percent^="4"] .label,
-.ui.indicating.progress[data-percent^="5"] .label {
- color: rgba(0, 0, 0, 0.87);
-}
-
-.ui.indicating.progress[data-percent^="6"] .label {
- color: rgba(0, 0, 0, 0.87);
-}
-
-.ui.indicating.progress[data-percent^="7"] .label,
-.ui.indicating.progress[data-percent^="8"] .label {
- color: rgba(0, 0, 0, 0.87);
-}
-
-.ui.indicating.progress[data-percent^="9"] .label,
-.ui.indicating.progress[data-percent^="100"] .label {
- color: rgba(0, 0, 0, 0.87);
-}
-
-/* Single Digits */
-
-.ui.indicating.progress[data-percent="1"] .bar,
-.ui.indicating.progress[data-percent="2"] .bar,
-.ui.indicating.progress[data-percent="3"] .bar,
-.ui.indicating.progress[data-percent="4"] .bar,
-.ui.indicating.progress[data-percent="5"] .bar,
-.ui.indicating.progress[data-percent="6"] .bar,
-.ui.indicating.progress[data-percent="7"] .bar,
-.ui.indicating.progress[data-percent="8"] .bar,
-.ui.indicating.progress[data-percent="9"] .bar {
- background-color: #D95C5C;
-}
-
-.ui.indicating.progress[data-percent="1"] .label,
-.ui.indicating.progress[data-percent="2"] .label,
-.ui.indicating.progress[data-percent="3"] .label,
-.ui.indicating.progress[data-percent="4"] .label,
-.ui.indicating.progress[data-percent="5"] .label,
-.ui.indicating.progress[data-percent="6"] .label,
-.ui.indicating.progress[data-percent="7"] .label,
-.ui.indicating.progress[data-percent="8"] .label,
-.ui.indicating.progress[data-percent="9"] .label {
- color: rgba(0, 0, 0, 0.87);
-}
-
-/* Indicating Success */
-
-.ui.indicating.progress.success .label {
- color: #1A531B;
-}
-
-/*******************************
-            States
-*******************************/
-
-/*--------------
-    Success
----------------*/
-
-.ui.progress.success .bar {
- background-color: #21BA45 !important;
-}
-
-.ui.progress.success .bar,
-.ui.progress.success .bar::after {
- -webkit-animation: none !important;
- animation: none !important;
-}
-
-.ui.progress.success > .label {
- color: #1A531B;
-}
-
-/*--------------
-    Warning
----------------*/
-
-.ui.progress.warning .bar {
- background-color: #F2C037 !important;
-}
-
-.ui.progress.warning .bar,
-.ui.progress.warning .bar::after {
- -webkit-animation: none !important;
- animation: none !important;
-}
-
-.ui.progress.warning > .label {
- color: #794B02;
-}
-
-/*--------------
-    Error
----------------*/
-
-.ui.progress.error .bar {
- background-color: #DB2828 !important;
-}
-
-.ui.progress.error .bar,
-.ui.progress.error .bar::after {
- -webkit-animation: none !important;
- animation: none !important;
-}
-
-.ui.progress.error > .label {
- color: #912D2B;
-}
-
-/*--------------
-    Active
----------------*/
-
-.ui.active.progress .bar {
- position: relative;
- min-width: 2em;
-}
-
-.ui.active.progress .bar::after {
- content: '';
- opacity: 0;
- position: absolute;
- top: 0px;
- left: 0px;
- right: 0px;
- bottom: 0px;
- background: #FFFFFF;
- border-radius: 0.28571429rem;
- -webkit-animation: progress-active 2s ease infinite;
- animation: progress-active 2s ease infinite;
-}
-
-@-webkit-keyframes progress-active {
- 0% {
-   opacity: 0.3;
-   width: 0;
- }
-
- 100% {
-   opacity: 0;
-   width: 100%;
- }
-}
-
-@keyframes progress-active {
- 0% {
-   opacity: 0.3;
-   width: 0;
- }
-
- 100% {
-   opacity: 0;
-   width: 100%;
- }
-}
-
-/*--------------
-   Disabled
----------------*/
-
-.ui.disabled.progress {
- opacity: 0.35;
-}
-
-.ui.disabled.progress .bar,
-.ui.disabled.progress .bar::after {
- -webkit-animation: none !important;
- animation: none !important;
-}
-
-/*******************************
-          Variations
-*******************************/
-
-/*--------------
-   Inverted
----------------*/
-
-.ui.inverted.progress {
- background: rgba(255, 255, 255, 0.08);
- border: none;
-}
-
-.ui.inverted.progress .bar {
- background: #888888;
-}
-
-.ui.inverted.progress .bar > .progress {
- color: #F9FAFB;
-}
-
-.ui.inverted.progress > .label {
- color: #FFFFFF;
-}
-
-.ui.inverted.progress.success > .label {
- color: #21BA45;
-}
-
-.ui.inverted.progress.warning > .label {
- color: #F2C037;
-}
-
-.ui.inverted.progress.error > .label {
- color: #DB2828;
-}
-
-/*--------------
-   Attached
----------------*/
-
-/* bottom attached */
-
-.ui.progress.attached {
- background: transparent;
- position: relative;
- border: none;
- margin: 0em;
-}
-
-.ui.progress.attached,
-.ui.progress.attached .bar {
- display: block;
- height: 0.2rem;
- padding: 0px;
- overflow: hidden;
- border-radius: 0em 0em 0.28571429rem 0.28571429rem;
-}
-
-.ui.progress.attached .bar {
- border-radius: 0em;
-}
-
-/* top attached */
-
-.ui.progress.top.attached,
-.ui.progress.top.attached .bar {
- top: 0px;
- border-radius: 0.28571429rem 0.28571429rem 0em 0em;
-}
-
-.ui.progress.top.attached .bar {
- border-radius: 0em;
-}
-
-/* Coupling */
-
-.ui.segment > .ui.attached.progress,
-.ui.card > .ui.attached.progress {
- position: absolute;
- top: auto;
- left: 0;
- bottom: 100%;
- width: 100%;
-}
-
-.ui.segment > .ui.bottom.attached.progress,
-.ui.card > .ui.bottom.attached.progress {
- top: 100%;
- bottom: auto;
-}
-
-/*--------------
-    Colors
----------------*/
-
-/* Red */
-
-.ui.red.progress .bar {
- background-color: #DB2828;
-}
-
-.ui.red.inverted.progress .bar {
- background-color: #FF695E;
-}
-
-/* Orange */
-
-.ui.orange.progress .bar {
- background-color: #F2711C;
-}
-
-.ui.orange.inverted.progress .bar {
- background-color: #FF851B;
-}
-
-/* Yellow */
-
-.ui.yellow.progress .bar {
- background-color: #FBBD08;
-}
-
-.ui.yellow.inverted.progress .bar {
- background-color: #FFE21F;
-}
-
-/* Olive */
-
-.ui.olive.progress .bar {
- background-color: #B5CC18;
-}
-
-.ui.olive.inverted.progress .bar {
- background-color: #D9E778;
-}
-
-/* Green */
-
-.ui.green.progress .bar {
- background-color: #21BA45;
-}
-
-.ui.green.inverted.progress .bar {
- background-color: #2ECC40;
-}
-
-/* Teal */
-
-.ui.teal.progress .bar {
- background-color: #00B5AD;
-}
-
-.ui.teal.inverted.progress .bar {
- background-color: #6DFFFF;
-}
-
-/* Blue */
-
-.ui.blue.progress .bar {
- background-color: #2185D0;
-}
-
-.ui.blue.inverted.progress .bar {
- background-color: #54C8FF;
-}
-
-/* Violet */
-
-.ui.violet.progress .bar {
- background-color: #6435C9;
-}
-
-.ui.violet.inverted.progress .bar {
- background-color: #A291FB;
-}
-
-/* Purple */
-
-.ui.purple.progress .bar {
- background-color: #A333C8;
-}
-
-.ui.purple.inverted.progress .bar {
- background-color: #DC73FF;
-}
-
-/* Pink */
-
-.ui.pink.progress .bar {
- background-color: #E03997;
-}
-
-.ui.pink.inverted.progress .bar {
- background-color: #FF8EDF;
-}
-
-/* Brown */
-
-.ui.brown.progress .bar {
- background-color: #A5673F;
-}
-
-.ui.brown.inverted.progress .bar {
- background-color: #D67C1C;
-}
-
-/* Grey */
-
-.ui.grey.progress .bar {
- background-color: #767676;
-}
-
-.ui.grey.inverted.progress .bar {
- background-color: #DCDDDE;
-}
-
-/* Black */
-
-.ui.black.progress .bar {
- background-color: #1B1C1D;
-}
-
-.ui.black.inverted.progress .bar {
- background-color: #545454;
-}
-
-/*--------------
-    Sizes
----------------*/
-
-.ui.tiny.progress {
- font-size: 0.85714286rem;
-}
-
-.ui.tiny.progress .bar {
- height: 0.5em;
-}
-
-.ui.small.progress {
- font-size: 0.92857143rem;
-}
-
-.ui.small.progress .bar {
- height: 1em;
-}
-
-.ui.progress {
- font-size: 1rem;
-}
-
-.ui.progress .bar {
- height: 1.75em;
-}
-
-.ui.large.progress {
- font-size: 1.14285714rem;
-}
-
-.ui.large.progress .bar {
- height: 2.5em;
-}
-
-.ui.big.progress {
- font-size: 1.28571429rem;
-}
-
-.ui.big.progress .bar {
- height: 3.5em;
-}
-
-/*******************************
-           Progress
-*******************************/
-
-/*******************************
-        Site Overrides
-*******************************/
-/*!
-* # Semantic UI 2.3.0 - Rating
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-          Rating
-*******************************/
-
-.ui.rating {
- display: -webkit-inline-box;
- display: -ms-inline-flexbox;
- display: inline-flex;
- white-space: nowrap;
- vertical-align: baseline;
-}
-
-.ui.rating:last-child {
- margin-right: 0em;
-}
-
-/* Icon */
-
-.ui.rating .icon {
- padding: 0em;
- margin: 0em;
- text-align: center;
- font-weight: normal;
- font-style: normal;
- -webkit-box-flex: 1;
- -ms-flex: 1 0 auto;
- flex: 1 0 auto;
- cursor: pointer;
- width: 1.25em;
- height: auto;
- -webkit-transition: opacity 0.1s ease, background 0.1s ease, text-shadow 0.1s ease, color 0.1s ease;
- transition: opacity 0.1s ease, background 0.1s ease, text-shadow 0.1s ease, color 0.1s ease;
-}
-
-/*******************************
-            Types
-*******************************/
-
-/*-------------------
-     Standard
---------------------*/
-
-/* Inactive Icon */
-
-.ui.rating .icon {
- background: transparent;
- color: rgba(0, 0, 0, 0.15);
-}
-
-/* Active Icon */
-
-.ui.rating .active.icon {
- background: transparent;
- color: rgba(0, 0, 0, 0.85);
-}
-
-/* Selected Icon */
-
-.ui.rating .icon.selected,
-.ui.rating .icon.selected.active {
- background: transparent;
- color: rgba(0, 0, 0, 0.87);
-}
-
-/*-------------------
-       Star
---------------------*/
-
-/* Inactive */
-
-.ui.star.rating .icon {
- width: 1.25em;
- height: auto;
- background: transparent;
- color: rgba(0, 0, 0, 0.15);
- text-shadow: none;
-}
-
-/* Active Star */
-
-.ui.star.rating .active.icon {
- background: transparent !important;
- color: #FFE623 !important;
- text-shadow: 0px -1px 0px #DDC507, -1px 0px 0px #DDC507, 0px 1px 0px #DDC507, 1px 0px 0px #DDC507 !important;
-}
-
-/* Selected Star */
-
-.ui.star.rating .icon.selected,
-.ui.star.rating .icon.selected.active {
- background: transparent !important;
- color: #FFCC00 !important;
- text-shadow: 0px -1px 0px #E6A200, -1px 0px 0px #E6A200, 0px 1px 0px #E6A200, 1px 0px 0px #E6A200 !important;
-}
-
-/*-------------------
-       Heart
---------------------*/
-
-.ui.heart.rating .icon {
- width: 1.4em;
- height: auto;
- background: transparent;
- color: rgba(0, 0, 0, 0.15);
- text-shadow: none !important;
-}
-
-/* Active Heart */
-
-.ui.heart.rating .active.icon {
- background: transparent !important;
- color: #FF6D75 !important;
- text-shadow: 0px -1px 0px #CD0707, -1px 0px 0px #CD0707, 0px 1px 0px #CD0707, 1px 0px 0px #CD0707 !important;
-}
-
-/* Selected Heart */
-
-.ui.heart.rating .icon.selected,
-.ui.heart.rating .icon.selected.active {
- background: transparent !important;
- color: #FF3000 !important;
- text-shadow: 0px -1px 0px #AA0101, -1px 0px 0px #AA0101, 0px 1px 0px #AA0101, 1px 0px 0px #AA0101 !important;
-}
-
-/*******************************
-            States
-*******************************/
-
-/*-------------------
-      Disabled
---------------------*/
-
-/* disabled rating */
-
-.ui.disabled.rating .icon {
- cursor: default;
-}
-
-/*-------------------
-  User Interactive
---------------------*/
-
-/* Selected Rating */
-
-.ui.rating.selected .active.icon {
- opacity: 1;
-}
-
-.ui.rating.selected .icon.selected,
-.ui.rating .icon.selected {
- opacity: 1;
-}
-
-/*******************************
-         Variations
-*******************************/
-
-.ui.mini.rating {
- font-size: 0.78571429rem;
-}
-
-.ui.tiny.rating {
- font-size: 0.85714286rem;
-}
-
-.ui.small.rating {
- font-size: 0.92857143rem;
-}
-
-.ui.rating {
- font-size: 1rem;
-}
-
-.ui.large.rating {
- font-size: 1.14285714rem;
-}
-
-.ui.huge.rating {
- font-size: 1.42857143rem;
-}
-
-.ui.massive.rating {
- font-size: 2rem;
-}
-
-/*******************************
-        Theme Overrides
-*******************************/
-
-@font-face {
- font-family: 'Rating';
- src: url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMggjCBsAAAC8AAAAYGNtYXCj2pm8AAABHAAAAKRnYXNwAAAAEAAAAcAAAAAIZ2x5ZlJbXMYAAAHIAAARnGhlYWQBGAe5AAATZAAAADZoaGVhA+IB/QAAE5wAAAAkaG10eCzgAEMAABPAAAAAcGxvY2EwXCxOAAAUMAAAADptYXhwACIAnAAAFGwAAAAgbmFtZfC1n04AABSMAAABPHBvc3QAAwAAAAAVyAAAACAAAwIAAZAABQAAAUwBZgAAAEcBTAFmAAAA9QAZAIQAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADxZQHg/+D/4AHgACAAAAABAAAAAAAAAAAAAAAgAAAAAAACAAAAAwAAABQAAwABAAAAFAAEAJAAAAAgACAABAAAAAEAIOYF8AbwDfAj8C7wbvBw8Irwl/Cc8SPxZf/9//8AAAAAACDmAPAE8AzwI/Au8G7wcPCH8JfwnPEj8WT//f//AAH/4xoEEAYQAQ/sD+IPow+iD4wPgA98DvYOtgADAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAPAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAIAAP/tAgAB0wAKABUAAAEvAQ8BFwc3Fyc3BQc3Jz8BHwEHFycCALFPT7GAHp6eHoD/AHAWW304OH1bFnABGRqgoBp8sFNTsHyyOnxYEnFxElh8OgAAAAACAAD/7QIAAdMACgASAAABLwEPARcHNxcnNwUxER8BBxcnAgCxT0+xgB6enh6A/wA4fVsWcAEZGqCgGnywU1OwfLIBHXESWHw6AAAAAQAA/+0CAAHTAAoAAAEvAQ8BFwc3Fyc3AgCxT0+xgB6enh6AARkaoKAafLBTU7B8AAAAAAEAAAAAAgABwAArAAABFA4CBzEHDgMjIi4CLwEuAzU0PgIzMh4CFz4DMzIeAhUCAAcMEgugBgwMDAYGDAwMBqALEgwHFyg2HhAfGxkKChkbHxAeNigXAS0QHxsZCqAGCwkGBQkLBqAKGRsfEB42KBcHDBILCxIMBxcoNh4AAAAAAgAAAAACAAHAACsAWAAAATQuAiMiDgIHLgMjIg4CFRQeAhcxFx4DMzI+Aj8BPgM1DwEiFCIGMTAmIjQjJy4DNTQ+AjMyHgIfATc+AzMyHgIVFA4CBwIAFyg2HhAfGxkKChkbHxAeNigXBwwSC6AGDAwMBgYMDAwGoAsSDAdbogEBAQEBAaIGCgcEDRceEQkREA4GLy8GDhARCREeFw0EBwoGAS0eNigXBwwSCwsSDAcXKDYeEB8bGQqgBgsJBgUJCwagChkbHxA+ogEBAQGiBg4QEQkRHhcNBAcKBjQ0BgoHBA0XHhEJERAOBgABAAAAAAIAAcAAMQAAARQOAgcxBw4DIyIuAi8BLgM1ND4CMzIeAhcHFwc3Jzc+AzMyHgIVAgAHDBILoAYMDAwGBgwMDAagCxIMBxcoNh4KFRMSCC9wQLBwJwUJCgkFHjYoFwEtEB8bGQqgBgsJBgUJCwagChkbHxAeNigXAwUIBUtAoMBAOwECAQEXKDYeAAABAAAAAAIAAbcAKgAAEzQ3NjMyFxYXFhcWFzY3Njc2NzYzMhcWFRQPAQYjIi8BJicmJyYnJicmNQAkJUARExIQEAsMCgoMCxAQEhMRQCUkQbIGBwcGsgMFBQsKCQkGBwExPyMkBgYLCgkKCgoKCQoLBgYkIz8/QawFBawCBgUNDg4OFRQTAAAAAQAAAA0B2wHSACYAABM0PwI2FzYfAhYVFA8BFxQVFAcGByYvAQcGByYnJjU0PwEnJjUAEI9BBQkIBkCPEAdoGQMDBgUGgIEGBQYDAwEYaAcBIwsCFoEMAQEMgRYCCwYIZJABBQUFAwEBAkVFAgEBAwUFAwOQZAkFAAAAAAIAAAANAdsB0gAkAC4AABM0PwI2FzYfAhYVFA8BFxQVFAcmLwEHBgcmJyY1ND8BJyY1HwEHNxcnNy8BBwAQj0EFCQgGQI8QB2gZDAUGgIEGBQYDAwEYaAc/WBVsaxRXeDY2ASMLAhaBDAEBDIEWAgsGCGSQAQUNAQECRUUCAQEDBQUDA5BkCQURVXg4OHhVEW5uAAABACMAKQHdAXwAGgAANzQ/ATYXNh8BNzYXNh8BFhUUDwEGByYvASY1IwgmCAwLCFS8CAsMCCYICPUIDAsIjgjSCwkmCQEBCVS7CQEBCSYJCg0H9gcBAQePBwwAAAEAHwAfAXMBcwAsAAA3ND8BJyY1ND8BNjMyHwE3NjMyHwEWFRQPARcWFRQPAQYjIi8BBwYjIi8BJjUfCFRUCAgnCAwLCFRUCAwLCCcICFRUCAgnCAsMCFRUCAsMCCcIYgsIVFQIDAsIJwgIVFQICCcICwwIVFQICwwIJwgIVFQICCcIDAAAAAACAAAAJQFJAbcAHwArAAA3NTQ3NjsBNTQ3NjMyFxYdATMyFxYdARQHBiMhIicmNTczNTQnJiMiBwYdAQAICAsKJSY1NCYmCQsICAgIC/7tCwgIW5MWFR4fFRZApQsICDc0JiYmJjQ3CAgLpQsICAgIC8A3HhYVFRYeNwAAAQAAAAcBbgG3ACEAADcRNDc2NzYzITIXFhcWFREUBwYHBiMiLwEHBiMiJyYnJjUABgUKBgYBLAYGCgUGBgUKBQcOCn5+Cg4GBgoFBicBcAoICAMDAwMICAr+kAoICAQCCXl5CQIECAgKAAAAAwAAACUCAAFuABgAMQBKAAA3NDc2NzYzMhcWFxYVFAcGBwYjIicmJyY1MxYXFjMyNzY3JicWFRQHBiMiJyY1NDcGBzcUFxYzMjc2NTQ3NjMyNzY1NCcmIyIHBhUABihDREtLREMoBgYoQ0RLS0RDKAYlJjk5Q0M5OSYrQREmJTU1JSYRQSuEBAQGBgQEEREZBgQEBAQGJBkayQoKQSgoKChBCgoKCkEoJycoQQoKOiMjIyM6RCEeIjUmJSUmNSIeIUQlBgQEBAQGGBIRBAQGBgQEGhojAAAABQAAAAkCAAGJACwAOABRAGgAcAAANzQ3Njc2MzIXNzYzMhcWFxYXFhcWFxYVFDEGBwYPAQYjIicmNTQ3JicmJyY1MxYXNyYnJjU0NwYHNxQXFjMyNzY1NDc2MzI3NjU0JyYjIgcGFRc3Njc2NyYnNxYXFhcWFRQHBgcGBwYjPwEWFRQHBgcABitBQU0ZGhADBQEEBAUFBAUEBQEEHjw8Hg4DBQQiBQ0pIyIZBiUvSxYZDg4RQSuEBAQGBgQEEREZBgQEBAQGJBkaVxU9MzQiIDASGxkZEAYGCxQrODk/LlACFxYlyQsJQycnBRwEAgEDAwIDAwIBAwUCNmxsNhkFFAMFBBUTHh8nCQtKISgSHBsfIh4hRCUGBAQEBAYYEhEEBAYGBAQaGiPJJQUiIjYzISASGhkbCgoKChIXMRsbUZANCyghIA8AAAMAAAAAAbcB2wA5AEoAlAAANzU0NzY7ATY3Njc2NzY3Njc2MzIXFhcWFRQHMzIXFhUUBxYVFAcUFRQHFgcGKwEiJyYnJisBIicmNTcUFxYzMjc2NTQnJiMiBwYVFzMyFxYXFhcWFxYXFhcWOwEyNTQnNjc2NTQnNjU0JyYnNjc2NTQnJisBNDc2NTQnJiMGBwYHBgcGBwYHBgcGBwYHBgcGBwYrARUACwoQTgodEQ4GBAMFBgwLDxgTEwoKDjMdFhYOAgoRARkZKCUbGxsjIQZSEAoLJQUFCAcGBQUGBwgFBUkJBAUFBAQHBwMDBwcCPCUjNwIJBQUFDwMDBAkGBgsLDmUODgoJGwgDAwYFDAYQAQUGAwQGBgYFBgUGBgQJSbcPCwsGJhUPCBERExMMCgkJFBQhGxwWFR4ZFQoKFhMGBh0WKBcXBgcMDAoLDxIHBQYGBQcIBQYGBQgSAQEBAQICAQEDAgEULwgIBQoLCgsJDhQHCQkEAQ0NCg8LCxAdHREcDQ4IEBETEw0GFAEHBwUECAgFBQUFAgO3AAADAAD/2wG3AbcAPABNAJkAADc1NDc2OwEyNzY3NjsBMhcWBxUWFRQVFhUUBxYVFAcGKwEWFRQHBgcGIyInJicmJyYnJicmJyYnIyInJjU3FBcWMzI3NjU0JyYjIgcGFRczMhcWFxYXFhcWFxYXFhcWFxYXFhcWFzI3NjU0JyY1MzI3NjU0JyYjNjc2NTQnNjU0JyYnNjU0JyYrASIHIgcGBwYHBgcGIwYrARUACwoQUgYhJRsbHiAoGRkBEQoCDhYWHTMOCgoTExgPCwoFBgIBBAMFDhEdCk4QCgslBQUIBwYFBQYHCAUFSQkEBgYFBgUGBgYEAwYFARAGDAUGAwMIGwkKDg5lDgsLBgYJBAMDDwUFBQkCDg4ZJSU8AgcHAwMHBwQEBQUECbe3DwsKDAwHBhcWJwIWHQYGExYKChUZHhYVHRoiExQJCgsJDg4MDAwNBg4WJQcLCw+kBwUGBgUHCAUGBgUIpAMCBQYFBQcIBAUHBwITBwwTExERBw0OHBEdHRALCw8KDQ0FCQkHFA4JCwoLCgUICBgMCxUDAgEBAgMBAQG3AAAAAQAAAA0A7gHSABQAABM0PwI2FxEHBgcmJyY1ND8BJyY1ABCPQQUJgQYFBgMDARhoBwEjCwIWgQwB/oNFAgEBAwUFAwOQZAkFAAAAAAIAAAAAAgABtwAqAFkAABM0NzYzMhcWFxYXFhc2NzY3Njc2MzIXFhUUDwEGIyIvASYnJicmJyYnJjUzFB8BNzY1NCcmJyYnJicmIyIHBgcGBwYHBiMiJyYnJicmJyYjIgcGBwYHBgcGFQAkJUARExIQEAsMCgoMCxAQEhMRQCUkQbIGBwcGsgMFBQsKCQkGByU1pqY1BgYJCg4NDg0PDhIRDg8KCgcFCQkFBwoKDw4REg4PDQ4NDgoJBgYBMT8jJAYGCwoJCgoKCgkKCwYGJCM/P0GsBQWsAgYFDQ4ODhUUEzA1oJ82MBcSEgoLBgcCAgcHCwsKCQgHBwgJCgsLBwcCAgcGCwoSEhcAAAACAAAABwFuAbcAIQAoAAA3ETQ3Njc2MyEyFxYXFhURFAcGBwYjIi8BBwYjIicmJyY1PwEfAREhEQAGBQoGBgEsBgYKBQYGBQoFBw4Kfn4KDgYGCgUGJZIZef7cJwFwCggIAwMDAwgICv6QCggIBAIJeXkJAgQICAoIjRl0AWP+nQAAAAABAAAAJQHbAbcAMgAANzU0NzY7ATU0NzYzMhcWHQEUBwYrASInJj0BNCcmIyIHBh0BMzIXFh0BFAcGIyEiJyY1AAgIC8AmJjQ1JiUFBQgSCAUFFhUfHhUWHAsICAgIC/7tCwgIQKULCAg3NSUmJiU1SQgFBgYFCEkeFhUVFh43CAgLpQsICAgICwAAAAIAAQANAdsB0gAiAC0AABM2PwI2MzIfAhYXFg8BFxYHBiMiLwEHBiMiJyY/AScmNx8CLwE/AS8CEwEDDJBABggJBUGODgIDCmcYAgQCCAMIf4IFBgYEAgEZaQgC7hBbEgINSnkILgEBJggCFYILC4IVAggICWWPCgUFA0REAwUFCo9lCQipCTBmEw1HEhFc/u0AAAADAAAAAAHJAbcAFAAlAHkAADc1NDc2OwEyFxYdARQHBisBIicmNTcUFxYzMjc2NTQnJiMiBwYVFzU0NzYzNjc2NzY3Njc2NzY3Njc2NzY3NjMyFxYXFhcWFxYXFhUUFRQHBgcGBxQHBgcGBzMyFxYVFAcWFRYHFgcGBxYHBgcjIicmJyYnJiciJyY1AAUGB1MHBQYGBQdTBwYFJQUFCAcGBQUGBwgFBWQFBQgGDw8OFAkFBAQBAQMCAQIEBAYFBw4KCgcHBQQCAwEBAgMDAgYCAgIBAU8XEBAQBQEOBQUECwMREiYlExYXDAwWJAoHBQY3twcGBQUGB7cIBQUFBQgkBwYFBQYHCAUGBgUIJLcHBQYBEBATGQkFCQgGBQwLBgcICQUGAwMFBAcHBgYICQQEBwsLCwYGCgIDBAMCBBEQFhkSDAoVEhAREAsgFBUBBAUEBAcMAQUFCAAAAAADAAD/2wHJAZIAFAAlAHkAADcUFxYXNxY3Nj0BNCcmBycGBwYdATc0NzY3FhcWFRQHBicGJyY1FzU0NzY3Fjc2NzY3NjcXNhcWBxYXFgcWBxQHFhUUBwYHJxYXFhcWFRYXFhcWFRQVFAcGBwYHBgcGBwYnBicmJyYnJicmJyYnJicmJyYnJiciJyY1AAUGB1MHBQYGBQdTBwYFJQUFCAcGBQUGBwgFBWQGBQcKJBYMDBcWEyUmEhEDCwQFBQ4BBRAQEBdPAQECAgIGAgMDAgEBAwIEBQcHCgoOBwUGBAQCAQIDAQEEBAUJFA4PDwYIBQWlBwYFAQEBBwQJtQkEBwEBAQUGB7eTBwYEAQEEBgcJBAYBAQYECZS4BwYEAgENBwUCBgMBAQEXEyEJEhAREBcIDhAaFhEPAQEFAgQCBQELBQcKDAkIBAUHCgUGBwgDBgIEAQEHBQkIBwUMCwcECgcGCRoREQ8CBgQIAAAAAQAAAAEAAJth57dfDzz1AAsCAAAAAADP/GODAAAAAM/8Y4MAAP/bAgAB2wAAAAgAAgAAAAAAAAABAAAB4P/gAAACAAAAAAACAAABAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAEAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAdwAAAHcAAACAAAjAZMAHwFJAAABbgAAAgAAAAIAAAACAAAAAgAAAAEAAAACAAAAAW4AAAHcAAAB3AABAdwAAAHcAAAAAAAAAAoAFAAeAEoAcACKAMoBQAGIAcwCCgJUAoICxgMEAzoDpgRKBRgF7AYSBpgG2gcgB2oIGAjOAAAAAQAAABwAmgAFAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAA4ArgABAAAAAAABAAwAAAABAAAAAAACAA4AQAABAAAAAAADAAwAIgABAAAAAAAEAAwATgABAAAAAAAFABYADAABAAAAAAAGAAYALgABAAAAAAAKADQAWgADAAEECQABAAwAAAADAAEECQACAA4AQAADAAEECQADAAwAIgADAAEECQAEAAwATgADAAEECQAFABYADAADAAEECQAGAAwANAADAAEECQAKADQAWgByAGEAdABpAG4AZwBWAGUAcgBzAGkAbwBuACAAMQAuADAAcgBhAHQAaQBuAGdyYXRpbmcAcgBhAHQAaQBuAGcAUgBlAGcAdQBsAGEAcgByAGEAdABpAG4AZwBGAG8AbgB0ACAAZwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABJAGMAbwBNAG8AbwBuAC4AAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==) format('truetype'), url(data:application/font-woff;charset=utf-8;base64,d09GRk9UVE8AABcUAAoAAAAAFswAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABDRkYgAAAA9AAAEuEAABLho6TvIE9TLzIAABPYAAAAYAAAAGAIIwgbY21hcAAAFDgAAACkAAAApKPambxnYXNwAAAU3AAAAAgAAAAIAAAAEGhlYWQAABTkAAAANgAAADYBGAe5aGhlYQAAFRwAAAAkAAAAJAPiAf1obXR4AAAVQAAAAHAAAABwLOAAQ21heHAAABWwAAAABgAAAAYAHFAAbmFtZQAAFbgAAAE8AAABPPC1n05wb3N0AAAW9AAAACAAAAAgAAMAAAEABAQAAQEBB3JhdGluZwABAgABADr4HAL4GwP4GAQeCgAZU/+Lix4KABlT/4uLDAeLZviU+HQFHQAAAP0PHQAAAQIRHQAAAAkdAAAS2BIAHQEBBw0PERQZHiMoLTI3PEFGS1BVWl9kaW5zeH2Ch4xyYXRpbmdyYXRpbmd1MHUxdTIwdUU2MDB1RTYwMXVFNjAydUU2MDN1RTYwNHVFNjA1dUYwMDR1RjAwNXVGMDA2dUYwMEN1RjAwRHVGMDIzdUYwMkV1RjA2RXVGMDcwdUYwODd1RjA4OHVGMDg5dUYwOEF1RjA5N3VGMDlDdUYxMjN1RjE2NHVGMTY1AAACAYkAGgAcAgABAAQABwAKAA0AVgCWAL0BAgGMAeQCbwLwA4cD5QR0BQMFdgZgB8MJkQtxC7oM2Q1jDggOmRAYEZr8lA78lA78lA77lA74lPetFftFpTz3NDz7NPtFcfcU+xBt+0T3Mt73Mjht90T3FPcQBfuU+0YV+wRRofcQMOP3EZ3D9wXD+wX3EXkwM6H7EPsExQUO+JT3rRX7RaU89zQ8+zT7RXH3FPsQbftE9zLe9zI4bfdE9xT3EAX7lPtGFYuLi/exw/sF9xF5MDOh+xD7BMUFDviU960V+0WlPPc0PPs0+0Vx9xT7EG37RPcy3vcyOG33RPcU9xAFDviU98EVi2B4ZG5wCIuL+zT7NAV7e3t7e4t7i3ube5sI+zT3NAVupniyi7aL3M3N3Iu2i7J4pm6mqLKetovci81JizoIDviU98EVi9xJzTqLYItkeHBucKhknmCLOotJSYs6i2CeZKhwCIuL9zT7NAWbe5t7m4ubi5ubm5sI9zT3NAWopp6yi7YIME0V+zb7NgWKioqKiouKi4qMiowI+zb3NgV6m4Ghi6OLubCwuYuji6GBm3oIule6vwWbnKGVo4u5i7Bmi12Lc4F1ensIDviU98EVi2B4ZG5wCIuL+zT7NAV7e3t7e4t7i3ube5sI+zT3NAVupniyi7aL3M3N3Iuni6WDoX4IXED3BEtL+zT3RPdU+wTLssYFl46YjZiL3IvNSYs6CA6L98UVi7WXrKOio6Otl7aLlouXiZiHl4eWhZaEloSUhZKFk4SShZKEkpKSkZOSkpGUkZaSCJaSlpGXj5iPl42Wi7aLrX+jc6N0l2qLYYthdWBgYAj7RvtABYeIh4mGi4aLh42Hjgj7RvdABYmNiY2Hj4iOhpGDlISUhZWFlIWVhpaHmYaYiZiLmAgOZ4v3txWLkpCPlo0I9yOgzPcWBY6SkI+Ri5CLkIePhAjL+xb3I3YFlomQh4uEi4aJh4aGCCMmpPsjBYuKi4mLiIuHioiJiImIiIqHi4iLh4yHjQj7FM/7FUcFh4mHioiLh4uIjImOiY6KjouPi4yLjYyOCKP3IyPwBYaQiZCLjwgOZ4v3txWLkpCPlo0I9yOgzPcWBY6SkI+Ri5CLkIePhAjL+xb3I3YFlomQh4uEi4aJh4aGCCMmpPsjBYuKi4mLiIuCh4aDi4iLh4yHjQj7FM/7FUcFh4mHioiLh4uIjImOiY6KjouPi4yLjYyOCKP3IyPwBYaQiZCLjwjKeRXjN3b7DfcAxPZSd/cN4t/7DJ1V9wFV+wEFDq73ZhWLk42RkZEIsbIFkZCRjpOLkouSiJCGCN8291D3UAWQkJKOkouTi5GIkYYIsWQFkYaNhIuEi4OJhYWFCPuJ+4kFhYWFiYOLhIuEjYaRCPsi9yIFhZCJkouSCA77AartFYuSjpKQkAjf3zffBYaQiJKLk4uSjpKQkAiysgWRkJGOk4uSi5KIkIYI3zff3wWQkJKOk4uSi5KIkIYIsmQFkIaOhIuEi4OIhIaGCDc33zcFkIaOhIuEi4OIhYaFCGRkBYaGhIiEi4OLhI6GkAg33zc3BYaGhIiEi4OLhY6FkAhksgWGkYiRi5MIDvtLi8sVi/c5BYuSjpKQkJCQko6SiwiVi4vCBYuul6mkpKSkqpiui66LqX6kcqRymG2LaAiLVJSLBZKLkoiQhpCGjoSLhAiL+zkFi4OIhYaGhoWEiYSLCPuniwWEi4SNhpGGkIiRi5MI5vdUFfcni4vCBYufhJx8mn2ZepJ3i3aLeoR9fX18g3qLdwiLVAUO+yaLshWL+AQFi5GNkY+RjpCQj5KNj42PjI+LCPfAiwWPi4+Kj4mRiZCHj4aPhY2Fi4UIi/wEBYuEiYWHhoeGhoeFiIiKhoqHi4GLhI6EkQj7EvcN+xL7DQWEhYOIgouHi4eLh42EjoaPiJCHkImRi5IIDov3XRWLko2Rj5Kltq+vuKW4pbuZvYu9i7t9uHG4ca9npWCPhI2Fi4SLhYmEh4RxYGdoXnAIXnFbflmLWYtbmF6lXqZnrnG2h5KJkouRCLCLFaRkq2yxdLF0tH+4i7iLtJexorGiq6qksm64Z61goZZ3kXaLdItnfm1ycnJybX9oiwhoi22XcqRypH6pi6+LopGglp9gdWdpbl4I9xiwFYuHjIiOiI6IjoqPi4+LjoyOjo2OjY6Lj4ubkJmXl5eWmZGbi4+LjoyOjo2OjY6LjwiLj4mOiY6IjYiNh4tzi3eCenp6eoJ3i3MIDov3XRWLko2Sj5GouK+utqW3pbqYvouci5yJnIgIm6cFjY6NjI+LjIuNi42JjYqOio+JjomOiY6KjomOiY6JjoqNioyKjomMiYuHi4qLiouLCHdnbVVjQ2NDbVV3Zwh9cgWJiIiJiIuJi36SdJiIjYmOi46LjY+UlJlvl3KcdJ90oHeie6WHkYmSi5IIsIsVqlq0Z711CKGzBXqXfpqCnoKdhp6LoIuikaCWn2B1Z2luXgj3GLAVi4eMiI6IjoiOio+Lj4uOjI6OjY6NjouPi5uQmZeXl5aZkZuLj4uOjI6OjY6NjouPCIuPiY6JjoiNiI2Hi3OLd4J6enp6gneLcwji+10VoLAFtI+wmK2hrqKnqKKvdq1wp2uhCJ2rBZ1/nHycepx6mHqWeY+EjYWLhIuEiYWHhIR/gH1+fG9qaXJmeWV5Y4Jhiwi53BXb9yQFjIKMg4uEi3CDc3x1fHV3fHOBCA6L1BWL90sFi5WPlJKSkpKTj5aLCNmLBZKPmJqepJaZlZeVlY+Qj5ONl42WjpeOmI+YkZWTk5OSk46Vi5uLmYiYhZiFlIGSfgiSfo55i3WLeYd5gXgIvosFn4uchJl8mn2Seot3i3qGfIJ9jYSLhYuEi3yIfoR+i4eLh4uHi3eGen99i3CDdnt8CHt8dYNwiwhmiwV5i3mNeY95kHeRc5N1k36Ph4sIOYsFgIuDjoSShJKHlIuVCLCdFYuGjIePiI+Hj4mQi5CLj42Pj46OjY+LkIuQiZCIjoePh42Gi4aLh4mHh4eIioaLhgjUeRWUiwWNi46Lj4qOi4+KjYqOi4+Kj4mQio6KjYqNio+Kj4mQio6KjIqzfquEpIsIrosFr4uemouri5CKkYqQkY6QkI6SjpKNkouSi5KJkoiRlZWQlouYi5CKkImRiZGJj4iOCJGMkI+PlI+UjZKLkouViJODk4SSgo+CiwgmiwWLlpCalJ6UnpCbi5aLnoiYhJSFlH+QeYuGhoeDiYCJf4h/h3+IfoWBg4KHh4SCgH4Ii4qIiYiGh4aIh4mIiIiIh4eGh4aHh4eHiIiHiIeHiIiHiIeKh4mIioiLCIKLi/tLBQ6L90sVi/dLBYuVj5OSk5KSk46WiwjdiwWPi5iPoZOkk6CRnZCdj56Nn4sIq4sFpougg5x8m3yTd4txCIuJBZd8kHuLd4uHi4eLh5J+jn6LfIuEi4SJhZR9kHyLeot3hHp8fH19eoR3iwhYiwWVeI95i3mLdIh6hH6EfoKBfoV+hX2He4uBi4OPg5KFkYaTh5SHlYiTipOKk4qTiJMIiZSIkYiPgZSBl4CaeKR+moSPCD2LBYCLg4+EkoSSh5SLlQiw9zgVi4aMh4+Ij4ePiZCLkIuPjY+Pjo6Nj4uQi5CJkIiOh4+HjYaLhouHiYeHh4iKhouGCNT7OBWUiwWOi46Kj4mPio+IjoiPh4+IjoePiI+Hj4aPho6HjoiNiI6Hj4aOho6Ii4qWfpKDj4YIk4ORgY5+j36OgI1/jYCPg5CGnYuXj5GUkpSOmYuei5aGmoKfgp6GmouWCPCLBZSLlI+SkpOTjpOLlYuSiZKHlIeUho+Fi46PjY+NkY2RjJCLkIuYhpaBlY6RjZKLkgiLkomSiJKIkoaQhY6MkIyRi5CLm4aXgpOBkn6Pe4sIZosFcotrhGN9iouIioaJh4qHiomKiYqIioaKh4mHioiKiYuHioiLh4qIi4mLCIKLi/tLBQ77lIv3txWLkpCPlo0I9yOgzPcWBY6SkI+RiwiL/BL7FUcFh4mHioiLh4uIjImOiY6KjouPi4yLjYyOCKP3IyPwBYaQiZCLjwgOi/fFFYu1l6yjoqOjrZe2i5aLl4mYh5eHloWWhJaElIWShZOEkoWShJKSkpGTkpKRlJGWkgiWkpaRl4+Yj5eNlou2i61/o3OjdJdqi2GLYXVgYGAI+0b7QAWHiIeJhouGi4eNh44I+0b3QAWJjYmNh4+IjoaRg5SElIWVhZSFlYaWh5mGmImYi5gIsIsVi2ucaa9oCPc6+zT3OvczBa+vnK2Lq4ubiZiHl4eXhpSFkoSSg5GCj4KQgo2CjYONgYuBi4KLgIl/hoCGgIWChAiBg4OFhISEhYaFhoaIhoaJhYuFi4aNiJCGkIaRhJGEkoORgZOCkoCRgJB/kICNgosIgYuBi4OJgomCiYKGgoeDhYSEhYSGgod/h3+Jfot7CA77JouyFYv4BAWLkY2Rj5GOkJCPko2PjY+Mj4sI98CLBY+Lj4qPiZGJkIePho+FjYWLhQiL/AQFi4SJhYeGh4aGh4WIiIqGioeLgYuEjoSRCPsS9w37EvsNBYSFg4iCi4eLh4uHjYSOho+IkIeQiZGLkgiwkxX3JvchpHL3DfsIi/f3+7iLi/v3BQ5ni8sVi/c5BYuSjpKQkJCQko6Siwj3VIuLwgWLrpippKSkpKmYrouvi6l+pHKkcpdti2gIi0IFi4aKhoeIh4eHiYaLCHmLBYaLh42Hj4eOipCLkAiL1AWLn4OcfZp9mXqSdot3i3qEfX18fIR6i3cIi1SniwWSi5KIkIaQho6Ei4QIi/s5BYuDiIWGhoaFhImEiwj7p4sFhIuEjYaRhpCIkYuTCA5njPe6FYyQkI6UjQj3I6DM9xYFj5KPj5GLkIuQh4+ECMv7FvcjdgWUiZCIjYaNhoiFhYUIIyak+yMFjIWKhomHiYiIiYaLiIuHjIeNCPsUz/sVRwWHiYeKiIuHi4eNiY6Jj4uQjJEIo/cjI/AFhZGJkY2QCPeB+z0VnILlW3rxiJ6ZmNTS+wydgpxe54v7pwUOZ4vCFYv3SwWLkI2Pjo+Pjo+NkIsI3osFkIuPiY6Ij4eNh4uGCIv7SwWLhomHh4eIh4eKhosIOIsFhouHjIePiI+Jj4uQCLCvFYuGjIePh46IkImQi5CLj42Pjo6PjY+LkIuQiZCIjoePh42Gi4aLhomIh4eIioaLhgjvZxWL90sFi5CNj46Oj4+PjZCLj4ySkJWWlZaVl5SXmJuVl5GRjo6OkI6RjZCNkIyPjI6MkY2TCIySjJGMj4yPjZCOkY6RjpCPjo6Pj42Qi5SLk4qSiZKJkYiPiJCIjoiPho6GjYeMhwiNh4yGjIaMhYuHi4iLiIuHi4eLg4uEiYSJhImFiYeJh4mFh4WLioqJiomJiIqJiokIi4qKiIqJCNqLBZqLmIWWgJaAkH+LfIt6hn2Af46DjYSLhIt9h36Cf4+Bi3+HgImAhYKEhI12hnmAfgh/fXiDcosIZosFfot+jHyOfI5/joOOg41/j32Qc5N8j4SMhouHjYiOh4+Jj4uQCA5ni/c5FYuGjYaOiI+Hj4mQiwjeiwWQi4+Njo+Pjo2Qi5AIi/dKBYuQiZCHjoiPh42Giwg4iwWGi4eJh4eIiImGi4YIi/tKBbD3JhWLkIyPj4+OjpCNkIuQi4+Jj4iOh42Hi4aLhomHiIeHh4eKhouGi4aMiI+Hj4qPi5AI7/snFYv3SwWLkI2Qj46Oj4+NkIuSi5qPo5OZkJePk46TjZeOmo6ajpiMmIsIsIsFpIueg5d9ln6Qeol1koSRgo2Aj4CLgIeAlH+Pfot9i4WJhIiCloCQfIt7i3yFfoGACICAfoZ8iwg8iwWMiIyJi4mMiYyJjYmMiIyKi4mPhI2GjYeNh42GjYOMhIyEi4SLhouHi4iLiYuGioYIioWKhomHioeJh4iGh4eIh4aIh4iFiISJhImDioKLhouHjYiPh4+Ij4iRiJGJkIqPCIqPipGKkomTipGKj4qOiZCJkYiQiJCIjoWSgZZ+nIKXgZaBloGWhJGHi4aLh42HjwiIjomQi48IDviUFPiUFYsMCgAAAAADAgABkAAFAAABTAFmAAAARwFMAWYAAAD1ABkAhAAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAAAAAAAAAAAAAAEAAAPFlAeD/4P/gAeAAIAAAAAEAAAAAAAAAAAAAACAAAAAAAAIAAAADAAAAFAADAAEAAAAUAAQAkAAAACAAIAAEAAAAAQAg5gXwBvAN8CPwLvBu8HDwivCX8JzxI/Fl//3//wAAAAAAIOYA8ATwDPAj8C7wbvBw8Ifwl/Cc8SPxZP/9//8AAf/jGgQQBhABD+wP4g+jD6IPjA+AD3wO9g62AAMAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAf//AA8AAQAAAAEAAJrVlLJfDzz1AAsCAAAAAADP/GODAAAAAM/8Y4MAAP/bAgAB2wAAAAgAAgAAAAAAAAABAAAB4P/gAAACAAAAAAACAAABAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAEAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAdwAAAHcAAACAAAjAZMAHwFJAAABbgAAAgAAAAIAAAACAAAAAgAAAAEAAAACAAAAAW4AAAHcAAAB3AABAdwAAAHcAAAAAFAAABwAAAAAAA4ArgABAAAAAAABAAwAAAABAAAAAAACAA4AQAABAAAAAAADAAwAIgABAAAAAAAEAAwATgABAAAAAAAFABYADAABAAAAAAAGAAYALgABAAAAAAAKADQAWgADAAEECQABAAwAAAADAAEECQACAA4AQAADAAEECQADAAwAIgADAAEECQAEAAwATgADAAEECQAFABYADAADAAEECQAGAAwANAADAAEECQAKADQAWgByAGEAdABpAG4AZwBWAGUAcgBzAGkAbwBuACAAMQAuADAAcgBhAHQAaQBuAGdyYXRpbmcAcgBhAHQAaQBuAGcAUgBlAGcAdQBsAGEAcgByAGEAdABpAG4AZwBGAG8AbgB0ACAAZwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABJAGMAbwBNAG8AbwBuAC4AAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==) format('woff');
- font-weight: normal;
- font-style: normal;
-}
-
-.ui.rating .icon {
- font-family: 'Rating';
- line-height: 1;
- -webkit-backface-visibility: hidden;
- backface-visibility: hidden;
- font-weight: normal;
- font-style: normal;
- text-align: center;
-}
-
-/* Empty Star */
-
-.ui.rating .icon:before {
- content: '\f005';
-}
-
-/* Active Star */
-
-.ui.rating .active.icon:before {
- content: '\f005';
-}
-
-/*-------------------
-       Star
---------------------*/
-
-/* Unfilled Star */
-
-.ui.star.rating .icon:before {
- content: '\f005';
-}
-
-/* Active Star */
-
-.ui.star.rating .active.icon:before {
- content: '\f005';
-}
-
-/* Partial */
-
-.ui.star.rating .partial.icon:before {
- content: '\f006';
-}
-
-.ui.star.rating .partial.icon {
- content: '\f005';
-}
-
-/*-------------------
-       Heart
---------------------*/
-
-/* Empty Heart
-.ui.heart.rating .icon:before {
- content: '\f08a';
-}
-*/
-
-.ui.heart.rating .icon:before {
- content: '\f004';
-}
-
-/* Active */
-
-.ui.heart.rating .active.icon:before {
- content: '\f004';
-}
-
-/*******************************
-        Site Overrides
-*******************************/
-/*!
-* # Semantic UI 2.3.0 - Search
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-            Search
-*******************************/
-
-.ui.search {
- position: relative;
-}
-
-.ui.search > .prompt {
- margin: 0em;
- outline: none;
- -webkit-appearance: none;
- -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
- text-shadow: none;
- font-style: normal;
- font-weight: normal;
- line-height: 1.21428571em;
- padding: 0.67857143em 1em;
- font-size: 1em;
- background: #FFFFFF;
- border: 1px solid rgba(34, 36, 38, 0.15);
- color: rgba(0, 0, 0, 0.87);
- -webkit-box-shadow: 0em 0em 0em 0em transparent inset;
- box-shadow: 0em 0em 0em 0em transparent inset;
- -webkit-transition: background-color 0.1s ease, color 0.1s ease, border-color 0.1s ease, -webkit-box-shadow 0.1s ease;
- transition: background-color 0.1s ease, color 0.1s ease, border-color 0.1s ease, -webkit-box-shadow 0.1s ease;
- transition: background-color 0.1s ease, color 0.1s ease, box-shadow 0.1s ease, border-color 0.1s ease;
- transition: background-color 0.1s ease, color 0.1s ease, box-shadow 0.1s ease, border-color 0.1s ease, -webkit-box-shadow 0.1s ease;
-}
-
-.ui.search .prompt {
- border-radius: 500rem;
-}
-
-/*--------------
-    Icon
----------------*/
-
-.ui.search .prompt ~ .search.icon {
- cursor: pointer;
-}
-
-/*--------------
-   Results
----------------*/
-
-.ui.search > .results {
- display: none;
- position: absolute;
- top: 100%;
- left: 0%;
- -webkit-transform-origin: center top;
- transform-origin: center top;
- white-space: normal;
- background: #FFFFFF;
- margin-top: 0.5em;
- width: 18em;
- border-radius: 0.28571429rem;
- -webkit-box-shadow: 0px 2px 4px 0px rgba(34, 36, 38, 0.12), 0px 2px 10px 0px rgba(34, 36, 38, 0.15);
- box-shadow: 0px 2px 4px 0px rgba(34, 36, 38, 0.12), 0px 2px 10px 0px rgba(34, 36, 38, 0.15);
- border: 1px solid #D4D4D5;
- z-index: 998;
-}
-
-.ui.search > .results > :first-child {
- border-radius: 0.28571429rem 0.28571429rem 0em 0em;
-}
-
-.ui.search > .results > :last-child {
- border-radius: 0em 0em 0.28571429rem 0.28571429rem;
-}
-
-/*--------------
-   Result
----------------*/
-
-.ui.search > .results .result {
- cursor: pointer;
- display: block;
- overflow: hidden;
- font-size: 1em;
- padding: 0.85714286em 1.14285714em;
- color: rgba(0, 0, 0, 0.87);
- line-height: 1.33;
- border-bottom: 1px solid rgba(34, 36, 38, 0.1);
-}
-
-.ui.search > .results .result:last-child {
- border-bottom: none !important;
-}
-
-/* Image */
-
-.ui.search > .results .result .image {
- float: right;
- overflow: hidden;
- background: none;
- width: 5em;
- height: 3em;
- border-radius: 0.25em;
-}
-
-.ui.search > .results .result .image img {
- display: block;
- width: auto;
- height: 100%;
-}
-
-/*--------------
-     Info
----------------*/
-
-.ui.search > .results .result .image + .content {
- margin: 0em 6em 0em 0em;
-}
-
-.ui.search > .results .result .title {
- margin: -0.14285714em 0em 0em;
- font-family: 'Lato', 'Helvetica Neue', Arial, Helvetica, sans-serif;
- font-weight: bold;
- font-size: 1em;
- color: rgba(0, 0, 0, 0.85);
-}
-
-.ui.search > .results .result .description {
- margin-top: 0;
- font-size: 0.92857143em;
- color: rgba(0, 0, 0, 0.4);
-}
-
-.ui.search > .results .result .price {
- float: right;
- color: #21BA45;
-}
-
-/*--------------
-   Message
----------------*/
-
-.ui.search > .results > .message {
- padding: 1em 1em;
-}
-
-.ui.search > .results > .message .header {
- font-family: 'Lato', 'Helvetica Neue', Arial, Helvetica, sans-serif;
- font-size: 1rem;
- font-weight: bold;
- color: rgba(0, 0, 0, 0.87);
-}
-
-.ui.search > .results > .message .description {
- margin-top: 0.25rem;
- font-size: 1em;
- color: rgba(0, 0, 0, 0.87);
-}
-
-/* View All Results */
-
-.ui.search > .results > .action {
- display: block;
- border-top: none;
- background: #F3F4F5;
- padding: 0.92857143em 1em;
- color: rgba(0, 0, 0, 0.87);
- font-weight: bold;
- text-align: center;
-}
-
-/*******************************
-           States
-*******************************/
-
-/*--------------------
-      Focus
----------------------*/
-
-.ui.search > .prompt:focus {
- border-color: rgba(34, 36, 38, 0.35);
- background: #FFFFFF;
- color: rgba(0, 0, 0, 0.95);
-}
-
-/*--------------------
-      Loading
----------------------*/
-
-.ui.loading.search .input > i.icon:before {
- position: absolute;
- content: '';
- top: 50%;
- left: 50%;
- margin: -0.64285714em 0em 0em -0.64285714em;
- width: 1.28571429em;
- height: 1.28571429em;
- border-radius: 500rem;
- border: 0.2em solid rgba(0, 0, 0, 0.1);
-}
-
-.ui.loading.search .input > i.icon:after {
- position: absolute;
- content: '';
- top: 50%;
- left: 50%;
- margin: -0.64285714em 0em 0em -0.64285714em;
- width: 1.28571429em;
- height: 1.28571429em;
- -webkit-animation: button-spin 0.6s linear;
- animation: button-spin 0.6s linear;
- -webkit-animation-iteration-count: infinite;
- animation-iteration-count: infinite;
- border-radius: 500rem;
- border-color: #767676 transparent transparent;
- border-style: solid;
- border-width: 0.2em;
- -webkit-box-shadow: 0px 0px 0px 1px transparent;
- box-shadow: 0px 0px 0px 1px transparent;
-}
-
-/*--------------
-     Hover
----------------*/
-
-.ui.search > .results .result:hover,
-.ui.category.search > .results .category .result:hover {
- background: #F9FAFB;
-}
-
-.ui.search .action:hover {
- background: #E0E0E0;
-}
-
-/*--------------
-     Active
----------------*/
-
-.ui.category.search > .results .category.active {
- background: #F3F4F5;
-}
-
-.ui.category.search > .results .category.active > .name {
- color: rgba(0, 0, 0, 0.87);
-}
-
-.ui.search > .results .result.active,
-.ui.category.search > .results .category .result.active {
- position: relative;
- border-left-color: rgba(34, 36, 38, 0.1);
- background: #F3F4F5;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-.ui.search > .results .result.active .title {
- color: rgba(0, 0, 0, 0.85);
-}
-
-.ui.search > .results .result.active .description {
- color: rgba(0, 0, 0, 0.85);
-}
-
-/*******************************
-          Types
-*******************************/
-
-/*--------------
-   Selection
----------------*/
-
-.ui.search.selection .prompt {
- border-radius: 0.28571429rem;
-}
-
-/* Remove input */
-
-.ui.search.selection > .icon.input > .remove.icon {
- pointer-events: none;
- position: absolute;
- left: auto;
- opacity: 0;
- color: '';
- top: 0em;
- right: 0em;
- -webkit-transition: color 0.1s ease, opacity 0.1s ease;
- transition: color 0.1s ease, opacity 0.1s ease;
-}
-
-.ui.search.selection > .icon.input > .active.remove.icon {
- cursor: pointer;
- opacity: 0.8;
- pointer-events: auto;
-}
-
-.ui.search.selection > .icon.input:not([class*="left icon"]) > .icon ~ .remove.icon {
- right: 1.85714em;
-}
-
-.ui.search.selection > .icon.input > .remove.icon:hover {
- opacity: 1;
- color: #DB2828;
-}
-
-/*--------------
-   Category
----------------*/
-
-.ui.category.search .results {
- width: 28em;
-}
-
-.ui.category.search .results.animating,
-.ui.category.search .results.visible {
- display: table;
-}
-
-/* Category */
-
-.ui.category.search > .results .category {
- display: table-row;
- background: #F3F4F5;
- -webkit-box-shadow: none;
- box-shadow: none;
- -webkit-transition: background 0.1s ease, border-color 0.1s ease;
- transition: background 0.1s ease, border-color 0.1s ease;
-}
-
-/* Last Category */
-
-.ui.category.search > .results .category:last-child {
- border-bottom: none;
-}
-
-/* First / Last */
-
-.ui.category.search > .results .category:first-child .name + .result {
- border-radius: 0em 0.28571429rem 0em 0em;
-}
-
-.ui.category.search > .results .category:last-child .result:last-child {
- border-radius: 0em 0em 0.28571429rem 0em;
-}
-
-/* Category Result Name */
-
-.ui.category.search > .results .category > .name {
- display: table-cell;
- text-overflow: ellipsis;
- width: 100px;
- white-space: nowrap;
- background: transparent;
- font-family: 'Lato', 'Helvetica Neue', Arial, Helvetica, sans-serif;
- font-size: 1em;
- padding: 0.4em 1em;
- font-weight: bold;
- color: rgba(0, 0, 0, 0.4);
- border-bottom: 1px solid rgba(34, 36, 38, 0.1);
-}
-
-/* Category Result */
-
-.ui.category.search > .results .category .results {
- display: table-cell;
- background: #FFFFFF;
- border-left: 1px solid rgba(34, 36, 38, 0.15);
- border-bottom: 1px solid rgba(34, 36, 38, 0.1);
-}
-
-.ui.category.search > .results .category .result {
- border-bottom: 1px solid rgba(34, 36, 38, 0.1);
- -webkit-transition: background 0.1s ease, border-color 0.1s ease;
- transition: background 0.1s ease, border-color 0.1s ease;
- padding: 0.85714286em 1.14285714em;
-}
-
-/*******************************
-          Variations
-*******************************/
-
-/*-------------------
-    Left / Right
---------------------*/
-
-.ui[class*="left aligned"].search > .results {
- right: auto;
- left: 0%;
-}
-
-.ui[class*="right aligned"].search > .results {
- right: 0%;
- left: auto;
-}
-
-/*--------------
-   Fluid
----------------*/
-
-.ui.fluid.search .results {
- width: 100%;
-}
-
-/*--------------
-     Sizes
----------------*/
-
-.ui.mini.search {
- font-size: 0.78571429em;
-}
-
-.ui.small.search {
- font-size: 0.92857143em;
-}
-
-.ui.search {
- font-size: 1em;
-}
-
-.ui.large.search {
- font-size: 1.14285714em;
-}
-
-.ui.big.search {
- font-size: 1.28571429em;
-}
-
-.ui.huge.search {
- font-size: 1.42857143em;
-}
-
-.ui.massive.search {
- font-size: 1.71428571em;
-}
-
-/*--------------
-     Mobile
----------------*/
-
-@media only screen and (max-width: 767px) {
- .ui.search .results {
-   max-width: calc(100vw - 2rem);
- }
-}
-
-/*******************************
-        Theme Overrides
-*******************************/
-
-/*******************************
-        Site Overrides
-*******************************/
-/*!
-* # Semantic UI 2.3.0 - Shape
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-             Shape
-*******************************/
-
-.ui.shape {
- position: relative;
- vertical-align: top;
- display: inline-block;
- -webkit-perspective: 2000px;
- perspective: 2000px;
- -webkit-transition: left 0.6s ease-in-out, width 0.6s ease-in-out, height 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out;
- transition: left 0.6s ease-in-out, width 0.6s ease-in-out, height 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out;
- transition: transform 0.6s ease-in-out, left 0.6s ease-in-out, width 0.6s ease-in-out, height 0.6s ease-in-out;
- transition: transform 0.6s ease-in-out, left 0.6s ease-in-out, width 0.6s ease-in-out, height 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out;
-}
-
-.ui.shape .sides {
- -webkit-transform-style: preserve-3d;
- transform-style: preserve-3d;
-}
-
-.ui.shape .side {
- opacity: 1;
- width: 100%;
- margin: 0em !important;
- -webkit-backface-visibility: hidden;
- backface-visibility: hidden;
-}
-
-.ui.shape .side {
- display: none;
-}
-
-.ui.shape .side * {
- -webkit-backface-visibility: visible !important;
- backface-visibility: visible !important;
-}
-
-/*******************************
-            Types
-*******************************/
-
-.ui.cube.shape .side {
- min-width: 15em;
- height: 15em;
- padding: 2em;
- background-color: #E6E6E6;
- color: rgba(0, 0, 0, 0.87);
- -webkit-box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.3);
- box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.3);
-}
-
-.ui.cube.shape .side > .content {
- width: 100%;
- height: 100%;
- display: table;
- text-align: center;
- -webkit-user-select: text;
- -moz-user-select: text;
- -ms-user-select: text;
- user-select: text;
-}
-
-.ui.cube.shape .side > .content > div {
- display: table-cell;
- vertical-align: middle;
- font-size: 2em;
-}
-
-/*******************************
-         Variations
-*******************************/
-
-.ui.text.shape.animating .sides {
- position: static;
-}
-
-.ui.text.shape .side {
- white-space: nowrap;
-}
-
-.ui.text.shape .side > * {
- white-space: normal;
-}
-
-/*******************************
-            States
-*******************************/
-
-/*--------------
-   Loading
----------------*/
-
-.ui.loading.shape {
- position: absolute;
- top: -9999px;
- left: -9999px;
-}
-
-/*--------------
-   Animating
----------------*/
-
-.ui.shape .animating.side {
- position: absolute;
- top: 0px;
- left: 0px;
- display: block;
- z-index: 100;
-}
-
-.ui.shape .hidden.side {
- opacity: 0.6;
-}
-
-/*--------------
-     CSS
----------------*/
-
-.ui.shape.animating .sides {
- position: absolute;
-}
-
-.ui.shape.animating .sides {
- -webkit-transition: left 0.6s ease-in-out, width 0.6s ease-in-out, height 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out;
- transition: left 0.6s ease-in-out, width 0.6s ease-in-out, height 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out;
- transition: transform 0.6s ease-in-out, left 0.6s ease-in-out, width 0.6s ease-in-out, height 0.6s ease-in-out;
- transition: transform 0.6s ease-in-out, left 0.6s ease-in-out, width 0.6s ease-in-out, height 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out;
-}
-
-.ui.shape.animating .side {
- -webkit-transition: opacity 0.6s ease-in-out;
- transition: opacity 0.6s ease-in-out;
-}
-
-/*--------------
-    Active
----------------*/
-
-.ui.shape .active.side {
- display: block;
-}
-
-/*******************************
-        Theme Overrides
-*******************************/
-
-/*******************************
-       User Overrides
-*******************************/
-/*!
-* # Semantic UI 2.3.0 - Sidebar
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-           Sidebar
-*******************************/
-
-/* Sidebar Menu */
-
-.ui.sidebar {
- position: fixed;
- top: 0;
- left: 0;
- -webkit-backface-visibility: hidden;
- backface-visibility: hidden;
- -webkit-transition: none;
- transition: none;
- will-change: transform;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- visibility: hidden;
- -webkit-overflow-scrolling: touch;
- height: 100% !important;
- max-height: 100%;
- border-radius: 0em !important;
- margin: 0em !important;
- overflow-y: auto !important;
- z-index: 102;
-}
-
-/* GPU Layers for Child Elements */
-
-.ui.sidebar > * {
- -webkit-backface-visibility: hidden;
- backface-visibility: hidden;
-}
-
-/*--------------
-  Direction
----------------*/
-
-.ui.left.sidebar {
- right: auto;
- left: 0px;
- -webkit-transform: translate3d(-100%, 0, 0);
- transform: translate3d(-100%, 0, 0);
-}
-
-.ui.right.sidebar {
- right: 0px !important;
- left: auto !important;
- -webkit-transform: translate3d(100%, 0%, 0);
- transform: translate3d(100%, 0%, 0);
-}
-
-.ui.top.sidebar,
-.ui.bottom.sidebar {
- width: 100% !important;
- height: auto !important;
-}
-
-.ui.top.sidebar {
- top: 0px !important;
- bottom: auto !important;
- -webkit-transform: translate3d(0, -100%, 0);
- transform: translate3d(0, -100%, 0);
-}
-
-.ui.bottom.sidebar {
- top: auto !important;
- bottom: 0px !important;
- -webkit-transform: translate3d(0, 100%, 0);
- transform: translate3d(0, 100%, 0);
-}
-
-/*--------------
-    Pushable
----------------*/
-
-.pushable {
- height: 100%;
- overflow-x: hidden;
- padding: 0em !important;
-}
-
-/* Whole Page */
-
-body.pushable {
- background: #545454 !important;
-}
-
-/* Page Context */
-
-.pushable:not(body) {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
-}
-
-.pushable:not(body) > .ui.sidebar,
-.pushable:not(body) > .fixed,
-.pushable:not(body) > .pusher:after {
- position: absolute;
-}
-
-/*--------------
-    Fixed
----------------*/
-
-.pushable > .fixed {
- position: fixed;
- -webkit-backface-visibility: hidden;
- backface-visibility: hidden;
- -webkit-transition: -webkit-transform 500ms ease;
- transition: -webkit-transform 500ms ease;
- transition: transform 500ms ease;
- transition: transform 500ms ease, -webkit-transform 500ms ease;
- will-change: transform;
- z-index: 101;
-}
-
-/*--------------
-    Page
----------------*/
-
-.pushable > .pusher {
- position: relative;
- -webkit-backface-visibility: hidden;
- backface-visibility: hidden;
- overflow: hidden;
- min-height: 100%;
- -webkit-transition: -webkit-transform 500ms ease;
- transition: -webkit-transform 500ms ease;
- transition: transform 500ms ease;
- transition: transform 500ms ease, -webkit-transform 500ms ease;
- z-index: 2;
-}
-
-body.pushable > .pusher {
- background: #FFFFFF;
-}
-
-/* Pusher should inherit background from context */
-
-.pushable > .pusher {
- background: inherit;
-}
-
-/*--------------
-    Dimmer
----------------*/
-
-.pushable > .pusher:after {
- position: fixed;
- top: 0px;
- right: 0px;
- content: '';
- background-color: rgba(0, 0, 0, 0.4);
- overflow: hidden;
- opacity: 0;
- -webkit-transition: opacity 500ms;
- transition: opacity 500ms;
- will-change: opacity;
- z-index: 1000;
-}
-
-/*--------------
-   Coupling
----------------*/
-
-.ui.sidebar.menu .item {
- border-radius: 0em !important;
-}
-
-/*******************************
-           States
-*******************************/
-
-/*--------------
-    Dimmed
----------------*/
-
-.pushable > .pusher.dimmed:after {
- width: 100% !important;
- height: 100% !important;
- opacity: 1 !important;
-}
-
-/*--------------
-   Animating
----------------*/
-
-.ui.animating.sidebar {
- visibility: visible;
-}
-
-/*--------------
-    Visible
----------------*/
-
-.ui.visible.sidebar {
- visibility: visible;
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
-}
-
-/* Shadow Direction */
-
-.ui.left.visible.sidebar,
-.ui.right.visible.sidebar {
- -webkit-box-shadow: 0px 0px 20px rgba(34, 36, 38, 0.15);
- box-shadow: 0px 0px 20px rgba(34, 36, 38, 0.15);
-}
-
-.ui.top.visible.sidebar,
-.ui.bottom.visible.sidebar {
- -webkit-box-shadow: 0px 0px 20px rgba(34, 36, 38, 0.15);
- box-shadow: 0px 0px 20px rgba(34, 36, 38, 0.15);
-}
-
-/* Visible On Load */
-
-.ui.visible.left.sidebar ~ .fixed,
-.ui.visible.left.sidebar ~ .pusher {
- -webkit-transform: translate3d(260px, 0, 0);
- transform: translate3d(260px, 0, 0);
-}
-
-.ui.visible.right.sidebar ~ .fixed,
-.ui.visible.right.sidebar ~ .pusher {
- -webkit-transform: translate3d(-260px, 0, 0);
- transform: translate3d(-260px, 0, 0);
-}
-
-.ui.visible.top.sidebar ~ .fixed,
-.ui.visible.top.sidebar ~ .pusher {
- -webkit-transform: translate3d(0, 36px, 0);
- transform: translate3d(0, 36px, 0);
-}
-
-.ui.visible.bottom.sidebar ~ .fixed,
-.ui.visible.bottom.sidebar ~ .pusher {
- -webkit-transform: translate3d(0, -36px, 0);
- transform: translate3d(0, -36px, 0);
-}
-
-/* opposite sides visible forces content overlay */
-
-.ui.visible.left.sidebar ~ .ui.visible.right.sidebar ~ .fixed,
-.ui.visible.left.sidebar ~ .ui.visible.right.sidebar ~ .pusher,
-.ui.visible.right.sidebar ~ .ui.visible.left.sidebar ~ .fixed,
-.ui.visible.right.sidebar ~ .ui.visible.left.sidebar ~ .pusher {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
-}
-
-/*--------------
-      iOS
----------------*/
-
-/*******************************
-         Variations
-*******************************/
-
-/*--------------
-    Width
----------------*/
-
-/* Left / Right */
-
-.ui.thin.left.sidebar,
-.ui.thin.right.sidebar {
- width: 150px;
-}
-
-.ui[class*="very thin"].left.sidebar,
-.ui[class*="very thin"].right.sidebar {
- width: 60px;
-}
-
-.ui.left.sidebar,
-.ui.right.sidebar {
- width: 260px;
-}
-
-.ui.wide.left.sidebar,
-.ui.wide.right.sidebar {
- width: 350px;
-}
-
-.ui[class*="very wide"].left.sidebar,
-.ui[class*="very wide"].right.sidebar {
- width: 475px;
-}
-
-/* Left Visible */
-
-.ui.visible.thin.left.sidebar ~ .fixed,
-.ui.visible.thin.left.sidebar ~ .pusher {
- -webkit-transform: translate3d(150px, 0, 0);
- transform: translate3d(150px, 0, 0);
-}
-
-.ui.visible[class*="very thin"].left.sidebar ~ .fixed,
-.ui.visible[class*="very thin"].left.sidebar ~ .pusher {
- -webkit-transform: translate3d(60px, 0, 0);
- transform: translate3d(60px, 0, 0);
-}
-
-.ui.visible.wide.left.sidebar ~ .fixed,
-.ui.visible.wide.left.sidebar ~ .pusher {
- -webkit-transform: translate3d(350px, 0, 0);
- transform: translate3d(350px, 0, 0);
-}
-
-.ui.visible[class*="very wide"].left.sidebar ~ .fixed,
-.ui.visible[class*="very wide"].left.sidebar ~ .pusher {
- -webkit-transform: translate3d(475px, 0, 0);
- transform: translate3d(475px, 0, 0);
-}
-
-/* Right Visible */
-
-.ui.visible.thin.right.sidebar ~ .fixed,
-.ui.visible.thin.right.sidebar ~ .pusher {
- -webkit-transform: translate3d(-150px, 0, 0);
- transform: translate3d(-150px, 0, 0);
-}
-
-.ui.visible[class*="very thin"].right.sidebar ~ .fixed,
-.ui.visible[class*="very thin"].right.sidebar ~ .pusher {
- -webkit-transform: translate3d(-60px, 0, 0);
- transform: translate3d(-60px, 0, 0);
-}
-
-.ui.visible.wide.right.sidebar ~ .fixed,
-.ui.visible.wide.right.sidebar ~ .pusher {
- -webkit-transform: translate3d(-350px, 0, 0);
- transform: translate3d(-350px, 0, 0);
-}
-
-.ui.visible[class*="very wide"].right.sidebar ~ .fixed,
-.ui.visible[class*="very wide"].right.sidebar ~ .pusher {
- -webkit-transform: translate3d(-475px, 0, 0);
- transform: translate3d(-475px, 0, 0);
-}
-
-/*******************************
-         Animations
-*******************************/
-
-/*--------------
-   Overlay
----------------*/
-
-/* Set-up */
-
-.ui.overlay.sidebar {
- z-index: 102;
-}
-
-/* Initial */
-
-.ui.left.overlay.sidebar {
- -webkit-transform: translate3d(-100%, 0%, 0);
- transform: translate3d(-100%, 0%, 0);
-}
-
-.ui.right.overlay.sidebar {
- -webkit-transform: translate3d(100%, 0%, 0);
- transform: translate3d(100%, 0%, 0);
-}
-
-.ui.top.overlay.sidebar {
- -webkit-transform: translate3d(0%, -100%, 0);
- transform: translate3d(0%, -100%, 0);
-}
-
-.ui.bottom.overlay.sidebar {
- -webkit-transform: translate3d(0%, 100%, 0);
- transform: translate3d(0%, 100%, 0);
-}
-
-/* Animation */
-
-.animating.ui.overlay.sidebar,
-.ui.visible.overlay.sidebar {
- -webkit-transition: -webkit-transform 500ms ease;
- transition: -webkit-transform 500ms ease;
- transition: transform 500ms ease;
- transition: transform 500ms ease, -webkit-transform 500ms ease;
-}
-
-/* End - Sidebar */
-
-.ui.visible.left.overlay.sidebar {
- -webkit-transform: translate3d(0%, 0%, 0);
- transform: translate3d(0%, 0%, 0);
-}
-
-.ui.visible.right.overlay.sidebar {
- -webkit-transform: translate3d(0%, 0%, 0);
- transform: translate3d(0%, 0%, 0);
-}
-
-.ui.visible.top.overlay.sidebar {
- -webkit-transform: translate3d(0%, 0%, 0);
- transform: translate3d(0%, 0%, 0);
-}
-
-.ui.visible.bottom.overlay.sidebar {
- -webkit-transform: translate3d(0%, 0%, 0);
- transform: translate3d(0%, 0%, 0);
-}
-
-/* End - Pusher */
-
-.ui.visible.overlay.sidebar ~ .fixed,
-.ui.visible.overlay.sidebar ~ .pusher {
- -webkit-transform: none !important;
- transform: none !important;
-}
-
-/*--------------
-     Push
----------------*/
-
-/* Initial */
-
-.ui.push.sidebar {
- -webkit-transition: -webkit-transform 500ms ease;
- transition: -webkit-transform 500ms ease;
- transition: transform 500ms ease;
- transition: transform 500ms ease, -webkit-transform 500ms ease;
- z-index: 102;
-}
-
-/* Sidebar - Initial */
-
-.ui.left.push.sidebar {
- -webkit-transform: translate3d(-100%, 0, 0);
- transform: translate3d(-100%, 0, 0);
-}
-
-.ui.right.push.sidebar {
- -webkit-transform: translate3d(100%, 0, 0);
- transform: translate3d(100%, 0, 0);
-}
-
-.ui.top.push.sidebar {
- -webkit-transform: translate3d(0%, -100%, 0);
- transform: translate3d(0%, -100%, 0);
-}
-
-.ui.bottom.push.sidebar {
- -webkit-transform: translate3d(0%, 100%, 0);
- transform: translate3d(0%, 100%, 0);
-}
-
-/* End */
-
-.ui.visible.push.sidebar {
- -webkit-transform: translate3d(0%, 0, 0);
- transform: translate3d(0%, 0, 0);
-}
-
-/*--------------
-   Uncover
----------------*/
-
-/* Initial */
-
-.ui.uncover.sidebar {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- z-index: 1;
-}
-
-/* End */
-
-.ui.visible.uncover.sidebar {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- -webkit-transition: -webkit-transform 500ms ease;
- transition: -webkit-transform 500ms ease;
- transition: transform 500ms ease;
- transition: transform 500ms ease, -webkit-transform 500ms ease;
-}
-
-/*--------------
-  Slide Along
----------------*/
-
-/* Initial */
-
-.ui.slide.along.sidebar {
- z-index: 1;
-}
-
-/* Sidebar - Initial */
-
-.ui.left.slide.along.sidebar {
- -webkit-transform: translate3d(-50%, 0, 0);
- transform: translate3d(-50%, 0, 0);
-}
-
-.ui.right.slide.along.sidebar {
- -webkit-transform: translate3d(50%, 0, 0);
- transform: translate3d(50%, 0, 0);
-}
-
-.ui.top.slide.along.sidebar {
- -webkit-transform: translate3d(0, -50%, 0);
- transform: translate3d(0, -50%, 0);
-}
-
-.ui.bottom.slide.along.sidebar {
- -webkit-transform: translate3d(0%, 50%, 0);
- transform: translate3d(0%, 50%, 0);
-}
-
-/* Animation */
-
-.ui.animating.slide.along.sidebar {
- -webkit-transition: -webkit-transform 500ms ease;
- transition: -webkit-transform 500ms ease;
- transition: transform 500ms ease;
- transition: transform 500ms ease, -webkit-transform 500ms ease;
-}
-
-/* End */
-
-.ui.visible.slide.along.sidebar {
- -webkit-transform: translate3d(0%, 0, 0);
- transform: translate3d(0%, 0, 0);
-}
-
-/*--------------
-  Slide Out
----------------*/
-
-/* Initial */
-
-.ui.slide.out.sidebar {
- z-index: 1;
-}
-
-/* Sidebar - Initial */
-
-.ui.left.slide.out.sidebar {
- -webkit-transform: translate3d(50%, 0, 0);
- transform: translate3d(50%, 0, 0);
-}
-
-.ui.right.slide.out.sidebar {
- -webkit-transform: translate3d(-50%, 0, 0);
- transform: translate3d(-50%, 0, 0);
-}
-
-.ui.top.slide.out.sidebar {
- -webkit-transform: translate3d(0%, 50%, 0);
- transform: translate3d(0%, 50%, 0);
-}
-
-.ui.bottom.slide.out.sidebar {
- -webkit-transform: translate3d(0%, -50%, 0);
- transform: translate3d(0%, -50%, 0);
-}
-
-/* Animation */
-
-.ui.animating.slide.out.sidebar {
- -webkit-transition: -webkit-transform 500ms ease;
- transition: -webkit-transform 500ms ease;
- transition: transform 500ms ease;
- transition: transform 500ms ease, -webkit-transform 500ms ease;
-}
-
-/* End */
-
-.ui.visible.slide.out.sidebar {
- -webkit-transform: translate3d(0%, 0, 0);
- transform: translate3d(0%, 0, 0);
-}
-
-/*--------------
-  Scale Down
----------------*/
-
-/* Initial */
-
-.ui.scale.down.sidebar {
- -webkit-transition: -webkit-transform 500ms ease;
- transition: -webkit-transform 500ms ease;
- transition: transform 500ms ease;
- transition: transform 500ms ease, -webkit-transform 500ms ease;
- z-index: 102;
-}
-
-/* Sidebar - Initial  */
-
-.ui.left.scale.down.sidebar {
- -webkit-transform: translate3d(-100%, 0, 0);
- transform: translate3d(-100%, 0, 0);
-}
-
-.ui.right.scale.down.sidebar {
- -webkit-transform: translate3d(100%, 0, 0);
- transform: translate3d(100%, 0, 0);
-}
-
-.ui.top.scale.down.sidebar {
- -webkit-transform: translate3d(0%, -100%, 0);
- transform: translate3d(0%, -100%, 0);
-}
-
-.ui.bottom.scale.down.sidebar {
- -webkit-transform: translate3d(0%, 100%, 0);
- transform: translate3d(0%, 100%, 0);
-}
-
-/* Pusher - Initial */
-
-.ui.scale.down.left.sidebar ~ .pusher {
- -webkit-transform-origin: 75% 50%;
- transform-origin: 75% 50%;
-}
-
-.ui.scale.down.right.sidebar ~ .pusher {
- -webkit-transform-origin: 25% 50%;
- transform-origin: 25% 50%;
-}
-
-.ui.scale.down.top.sidebar ~ .pusher {
- -webkit-transform-origin: 50% 75%;
- transform-origin: 50% 75%;
-}
-
-.ui.scale.down.bottom.sidebar ~ .pusher {
- -webkit-transform-origin: 50% 25%;
- transform-origin: 50% 25%;
-}
-
-/* Animation */
-
-.ui.animating.scale.down > .visible.ui.sidebar {
- -webkit-transition: -webkit-transform 500ms ease;
- transition: -webkit-transform 500ms ease;
- transition: transform 500ms ease;
- transition: transform 500ms ease, -webkit-transform 500ms ease;
-}
-
-.ui.visible.scale.down.sidebar ~ .pusher,
-.ui.animating.scale.down.sidebar ~ .pusher {
- display: block !important;
- width: 100%;
- height: 100%;
- overflow: hidden !important;
-}
-
-/* End */
-
-.ui.visible.scale.down.sidebar {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
-}
-
-.ui.visible.scale.down.sidebar ~ .pusher {
- -webkit-transform: scale(0.75);
- transform: scale(0.75);
-}
-
-/*******************************
-        Theme Overrides
-*******************************/
-
-/*******************************
-        Site Overrides
-*******************************/
-/*!
-* # Semantic UI 2.3.0 - Sticky
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-           Sticky
-*******************************/
-
-.ui.sticky {
- position: static;
- -webkit-transition: none;
- transition: none;
- z-index: 800;
-}
-
-/*******************************
-           States
-*******************************/
-
-/* Bound */
-
-.ui.sticky.bound {
- position: absolute;
- left: auto;
- right: auto;
-}
-
-/* Fixed */
-
-.ui.sticky.fixed {
- position: fixed;
- left: auto;
- right: auto;
-}
-
-/* Bound/Fixed Position */
-
-.ui.sticky.bound.top,
-.ui.sticky.fixed.top {
- top: 0px;
- bottom: auto;
-}
-
-.ui.sticky.bound.bottom,
-.ui.sticky.fixed.bottom {
- top: auto;
- bottom: 0px;
-}
-
-/*******************************
-           Types
-*******************************/
-
-.ui.native.sticky {
- position: -webkit-sticky;
- position: -moz-sticky;
- position: -ms-sticky;
- position: -o-sticky;
- position: sticky;
-}
-
-/*******************************
-        Theme Overrides
-*******************************/
-
-/*******************************
-        Site Overrides
-*******************************/
-/*!
-* # Semantic UI 2.3.0 - Tab
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-          UI Tabs
-*******************************/
-
-.ui.tab {
- display: none;
-}
-
-/*******************************
-            States
-*******************************/
-
-/*--------------------
-      Active
----------------------*/
-
-.ui.tab.active,
-.ui.tab.open {
- display: block;
-}
-
-/*--------------------
-      Loading
----------------------*/
-
-.ui.tab.loading {
- position: relative;
- overflow: hidden;
- display: block;
- min-height: 250px;
-}
-
-.ui.tab.loading * {
- position: relative !important;
- left: -10000px !important;
-}
-
-.ui.tab.loading:before,
-.ui.tab.loading.segment:before {
- position: absolute;
- content: '';
- top: 100px;
- left: 50%;
- margin: -1.25em 0em 0em -1.25em;
- width: 2.5em;
- height: 2.5em;
- border-radius: 500rem;
- border: 0.2em solid rgba(0, 0, 0, 0.1);
-}
-
-.ui.tab.loading:after,
-.ui.tab.loading.segment:after {
- position: absolute;
- content: '';
- top: 100px;
- left: 50%;
- margin: -1.25em 0em 0em -1.25em;
- width: 2.5em;
- height: 2.5em;
- -webkit-animation: button-spin 0.6s linear;
- animation: button-spin 0.6s linear;
- -webkit-animation-iteration-count: infinite;
- animation-iteration-count: infinite;
- border-radius: 500rem;
- border-color: #767676 transparent transparent;
- border-style: solid;
- border-width: 0.2em;
- -webkit-box-shadow: 0px 0px 0px 1px transparent;
- box-shadow: 0px 0px 0px 1px transparent;
-}
-
-/*******************************
-        Tab Overrides
-*******************************/
-
-/*******************************
-       User Overrides
-*******************************/
-/*!
-* # Semantic UI 2.3.0 - Transition
-* http://github.com/semantic-org/semantic-ui/
-*
-*
-* Released under the MIT license
-* http://opensource.org/licenses/MIT
-*
-*/
-
-/*******************************
-         Transitions
-*******************************/
-
-.transition {
- -webkit-animation-iteration-count: 1;
- animation-iteration-count: 1;
- -webkit-animation-duration: 300ms;
- animation-duration: 300ms;
- -webkit-animation-timing-function: ease;
- animation-timing-function: ease;
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
-}
-
-/*******************************
-           States
-*******************************/
-
-/* Animating */
-
-.animating.transition {
- -webkit-backface-visibility: hidden;
- backface-visibility: hidden;
- visibility: visible !important;
-}
-
-/* Loading */
-
-.loading.transition {
- position: absolute;
- top: -99999px;
- left: -99999px;
-}
-
-/* Hidden */
-
-.hidden.transition {
- display: none;
- visibility: hidden;
-}
-
-/* Visible */
-
-.visible.transition {
- display: block !important;
- visibility: visible !important;
- /*  backface-visibility: @backfaceVisibility;
- transform: @use3DAcceleration;*/
-}
-
-/* Disabled */
-
-.disabled.transition {
- -webkit-animation-play-state: paused;
- animation-play-state: paused;
-}
-
-/*******************************
-         Variations
-*******************************/
-
-.looping.transition {
- -webkit-animation-iteration-count: infinite;
- animation-iteration-count: infinite;
-}
-
-/*******************************
-         Transitions
-*******************************/
-
-/*
- Some transitions adapted from Animate CSS
- https://github.com/daneden/animate.css
-
- Additional transitions adapted from Glide
- by Nick Pettit - https://github.com/nickpettit/glide
-*/
-
-/*--------------
-    Browse
----------------*/
-
-.transition.browse {
- -webkit-animation-duration: 500ms;
- animation-duration: 500ms;
-}
-
-.transition.browse.in {
- -webkit-animation-name: browseIn;
- animation-name: browseIn;
-}
-
-.transition.browse.out,
-.transition.browse.left.out {
- -webkit-animation-name: browseOutLeft;
- animation-name: browseOutLeft;
-}
-
-.transition.browse.right.out {
- -webkit-animation-name: browseOutRight;
- animation-name: browseOutRight;
-}
-
-/* In */
-
-@-webkit-keyframes browseIn {
- 0% {
-   -webkit-transform: scale(0.8) translateZ(0px);
-   transform: scale(0.8) translateZ(0px);
-   z-index: -1;
- }
-
- 10% {
-   -webkit-transform: scale(0.8) translateZ(0px);
-   transform: scale(0.8) translateZ(0px);
-   z-index: -1;
-   opacity: 0.7;
- }
-
- 80% {
-   -webkit-transform: scale(1.05) translateZ(0px);
-   transform: scale(1.05) translateZ(0px);
-   opacity: 1;
-   z-index: 999;
- }
-
- 100% {
-   -webkit-transform: scale(1) translateZ(0px);
-   transform: scale(1) translateZ(0px);
-   z-index: 999;
- }
-}
-
-@keyframes browseIn {
- 0% {
-   -webkit-transform: scale(0.8) translateZ(0px);
-   transform: scale(0.8) translateZ(0px);
-   z-index: -1;
- }
-
- 10% {
-   -webkit-transform: scale(0.8) translateZ(0px);
-   transform: scale(0.8) translateZ(0px);
-   z-index: -1;
-   opacity: 0.7;
- }
-
- 80% {
-   -webkit-transform: scale(1.05) translateZ(0px);
-   transform: scale(1.05) translateZ(0px);
-   opacity: 1;
-   z-index: 999;
- }
-
- 100% {
-   -webkit-transform: scale(1) translateZ(0px);
-   transform: scale(1) translateZ(0px);
-   z-index: 999;
- }
-}
-
-/* Out */
-
-@-webkit-keyframes browseOutLeft {
- 0% {
-   z-index: 999;
-   -webkit-transform: translateX(0%) rotateY(0deg) rotateX(0deg);
-   transform: translateX(0%) rotateY(0deg) rotateX(0deg);
- }
-
- 50% {
-   z-index: -1;
-   -webkit-transform: translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);
-   transform: translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);
- }
-
- 80% {
-   opacity: 1;
- }
-
- 100% {
-   z-index: -1;
-   -webkit-transform: translateX(0%) rotateY(0deg) rotateX(0deg) translateZ(-10px);
-   transform: translateX(0%) rotateY(0deg) rotateX(0deg) translateZ(-10px);
-   opacity: 0;
- }
-}
-
-@keyframes browseOutLeft {
- 0% {
-   z-index: 999;
-   -webkit-transform: translateX(0%) rotateY(0deg) rotateX(0deg);
-   transform: translateX(0%) rotateY(0deg) rotateX(0deg);
- }
-
- 50% {
-   z-index: -1;
-   -webkit-transform: translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);
-   transform: translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);
- }
-
- 80% {
-   opacity: 1;
- }
-
- 100% {
-   z-index: -1;
-   -webkit-transform: translateX(0%) rotateY(0deg) rotateX(0deg) translateZ(-10px);
-   transform: translateX(0%) rotateY(0deg) rotateX(0deg) translateZ(-10px);
-   opacity: 0;
- }
-}
-
-@-webkit-keyframes browseOutRight {
- 0% {
-   z-index: 999;
-   -webkit-transform: translateX(0%) rotateY(0deg) rotateX(0deg);
-   transform: translateX(0%) rotateY(0deg) rotateX(0deg);
- }
-
- 50% {
-   z-index: 1;
-   -webkit-transform: translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);
-   transform: translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);
- }
-
- 80% {
-   opacity: 1;
- }
-
- 100% {
-   z-index: 1;
-   -webkit-transform: translateX(0%) rotateY(0deg) rotateX(0deg) translateZ(-10px);
-   transform: translateX(0%) rotateY(0deg) rotateX(0deg) translateZ(-10px);
-   opacity: 0;
- }
-}
-
-@keyframes browseOutRight {
- 0% {
-   z-index: 999;
-   -webkit-transform: translateX(0%) rotateY(0deg) rotateX(0deg);
-   transform: translateX(0%) rotateY(0deg) rotateX(0deg);
- }
-
- 50% {
-   z-index: 1;
-   -webkit-transform: translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);
-   transform: translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px);
- }
-
- 80% {
-   opacity: 1;
- }
-
- 100% {
-   z-index: 1;
-   -webkit-transform: translateX(0%) rotateY(0deg) rotateX(0deg) translateZ(-10px);
-   transform: translateX(0%) rotateY(0deg) rotateX(0deg) translateZ(-10px);
-   opacity: 0;
- }
-}
-
-/*--------------
-    Drop
----------------*/
-
-.drop.transition {
- -webkit-transform-origin: top center;
- transform-origin: top center;
- -webkit-animation-duration: 400ms;
- animation-duration: 400ms;
- -webkit-animation-timing-function: cubic-bezier(0.34, 1.61, 0.7, 1);
- animation-timing-function: cubic-bezier(0.34, 1.61, 0.7, 1);
-}
-
-.drop.transition.in {
- -webkit-animation-name: dropIn;
- animation-name: dropIn;
-}
-
-.drop.transition.out {
- -webkit-animation-name: dropOut;
- animation-name: dropOut;
-}
-
-/* Drop */
-
-@-webkit-keyframes dropIn {
- 0% {
-   opacity: 0;
-   -webkit-transform: scale(0);
-   transform: scale(0);
- }
-
- 100% {
-   opacity: 1;
-   -webkit-transform: scale(1);
-   transform: scale(1);
- }
-}
-
-@keyframes dropIn {
- 0% {
-   opacity: 0;
-   -webkit-transform: scale(0);
-   transform: scale(0);
- }
-
- 100% {
-   opacity: 1;
-   -webkit-transform: scale(1);
-   transform: scale(1);
- }
-}
-
-@-webkit-keyframes dropOut {
- 0% {
-   opacity: 1;
-   -webkit-transform: scale(1);
-   transform: scale(1);
- }
-
- 100% {
-   opacity: 0;
-   -webkit-transform: scale(0);
-   transform: scale(0);
- }
-}
-
-@keyframes dropOut {
- 0% {
-   opacity: 1;
-   -webkit-transform: scale(1);
-   transform: scale(1);
- }
-
- 100% {
-   opacity: 0;
-   -webkit-transform: scale(0);
-   transform: scale(0);
- }
-}
-
-/*--------------
-     Fade
----------------*/
-
-.transition.fade.in {
- -webkit-animation-name: fadeIn;
- animation-name: fadeIn;
-}
-
-.transition[class*="fade up"].in {
- -webkit-animation-name: fadeInUp;
- animation-name: fadeInUp;
-}
-
-.transition[class*="fade down"].in {
- -webkit-animation-name: fadeInDown;
- animation-name: fadeInDown;
-}
-
-.transition[class*="fade left"].in {
- -webkit-animation-name: fadeInLeft;
- animation-name: fadeInLeft;
-}
-
-.transition[class*="fade right"].in {
- -webkit-animation-name: fadeInRight;
- animation-name: fadeInRight;
-}
-
-.transition.fade.out {
- -webkit-animation-name: fadeOut;
- animation-name: fadeOut;
-}
-
-.transition[class*="fade up"].out {
- -webkit-animation-name: fadeOutUp;
- animation-name: fadeOutUp;
-}
-
-.transition[class*="fade down"].out {
- -webkit-animation-name: fadeOutDown;
- animation-name: fadeOutDown;
-}
-
-.transition[class*="fade left"].out {
- -webkit-animation-name: fadeOutLeft;
- animation-name: fadeOutLeft;
-}
-
-.transition[class*="fade right"].out {
- -webkit-animation-name: fadeOutRight;
- animation-name: fadeOutRight;
-}
-
-/* In */
-
-@-webkit-keyframes fadeIn {
- 0% {
-   opacity: 0;
- }
-
- 100% {
-   opacity: 1;
- }
-}
-
-@keyframes fadeIn {
- 0% {
-   opacity: 0;
- }
-
- 100% {
-   opacity: 1;
- }
-}
-
-@-webkit-keyframes fadeInUp {
- 0% {
-   opacity: 0;
-   -webkit-transform: translateY(10%);
-   transform: translateY(10%);
- }
-
- 100% {
-   opacity: 1;
-   -webkit-transform: translateY(0%);
-   transform: translateY(0%);
- }
-}
-
-@keyframes fadeInUp {
- 0% {
-   opacity: 0;
-   -webkit-transform: translateY(10%);
-   transform: translateY(10%);
- }
-
- 100% {
-   opacity: 1;
-   -webkit-transform: translateY(0%);
-   transform: translateY(0%);
- }
-}
-
-@-webkit-keyframes fadeInDown {
- 0% {
-   opacity: 0;
-   -webkit-transform: translateY(-10%);
-   transform: translateY(-10%);
- }
-
- 100% {
-   opacity: 1;
-   -webkit-transform: translateY(0%);
-   transform: translateY(0%);
- }
-}
-
-@keyframes fadeInDown {
- 0% {
-   opacity: 0;
-   -webkit-transform: translateY(-10%);
-   transform: translateY(-10%);
- }
-
- 100% {
-   opacity: 1;
-   -webkit-transform: translateY(0%);
-   transform: translateY(0%);
- }
-}
-
-@-webkit-keyframes fadeInLeft {
- 0% {
-   opacity: 0;
-   -webkit-transform: translateX(10%);
-   transform: translateX(10%);
- }
-
- 100% {
-   opacity: 1;
-   -webkit-transform: translateX(0%);
-   transform: translateX(0%);
- }
-}
-
-@keyframes fadeInLeft {
- 0% {
-   opacity: 0;
-   -webkit-transform: translateX(10%);
-   transform: translateX(10%);
- }
-
- 100% {
-   opacity: 1;
-   -webkit-transform: translateX(0%);
-   transform: translateX(0%);
- }
-}
-
-@-webkit-keyframes fadeInRight {
- 0% {
-   opacity: 0;
-   -webkit-transform: translateX(-10%);
-   transform: translateX(-10%);
- }
-
- 100% {
-   opacity: 1;
-   -webkit-transform: translateX(0%);
-   transform: translateX(0%);
- }
-}
-
-@keyframes fadeInRight {
- 0% {
-   opacity: 0;
-   -webkit-transform: translateX(-10%);
-   transform: translateX(-10%);
- }
-
- 100% {
-   opacity: 1;
-   -webkit-transform: translateX(0%);
-   transform: translateX(0%);
- }
-}
-
-/* Out */
-
-@-webkit-keyframes fadeOut {
- 0% {
-   opacity: 1;
- }
-
- 100% {
-   opacity: 0;
- }
-}
-
-@keyframes fadeOut {
- 0% {
-   opacity: 1;
- }
-
- 100% {
-   opacity: 0;
- }
-}
-
-@-webkit-keyframes fadeOutUp {
- 0% {
-   opacity: 1;
-   -webkit-transform: translateY(0%);
-   transform: translateY(0%);
- }
-
- 100% {
-   opacity: 0;
-   -webkit-transform: translateY(5%);
-   transform: translateY(5%);
- }
-}
-
-@keyframes fadeOutUp {
- 0% {
-   opacity: 1;
-   -webkit-transform: translateY(0%);
-   transform: translateY(0%);
- }
-
- 100% {
-   opacity: 0;
-   -webkit-transform: translateY(5%);
-   transform: translateY(5%);
- }
-}
-
-@-webkit-keyframes fadeOutDown {
- 0% {
-   opacity: 1;
-   -webkit-transform: translateY(0%);
-   transform: translateY(0%);
- }
-
- 100% {
-   opacity: 0;
-   -webkit-transform: translateY(-5%);
-   transform: translateY(-5%);
- }
-}
-
-@keyframes fadeOutDown {
- 0% {
-   opacity: 1;
-   -webkit-transform: translateY(0%);
-   transform: translateY(0%);
- }
-
- 100% {
-   opacity: 0;
-   -webkit-transform: translateY(-5%);
-   transform: translateY(-5%);
- }
-}
-
-@-webkit-keyframes fadeOutLeft {
- 0% {
-   opacity: 1;
-   -webkit-transform: translateX(0%);
-   transform: translateX(0%);
- }
-
- 100% {
-   opacity: 0;
-   -webkit-transform: translateX(5%);
-   transform: translateX(5%);
- }
-}
-
-@keyframes fadeOutLeft {
- 0% {
-   opacity: 1;
-   -webkit-transform: translateX(0%);
-   transform: translateX(0%);
- }
-
- 100% {
-   opacity: 0;
-   -webkit-transform: translateX(5%);
-   transform: translateX(5%);
- }
-}
-
-@-webkit-keyframes fadeOutRight {
- 0% {
-   opacity: 1;
-   -webkit-transform: translateX(0%);
-   transform: translateX(0%);
- }
-
- 100% {
-   opacity: 0;
-   -webkit-transform: translateX(-5%);
-   transform: translateX(-5%);
- }
-}
-
-@keyframes fadeOutRight {
- 0% {
-   opacity: 1;
-   -webkit-transform: translateX(0%);
-   transform: translateX(0%);
- }
-
- 100% {
-   opacity: 0;
-   -webkit-transform: translateX(-5%);
-   transform: translateX(-5%);
- }
-}
-
-/*--------------
-    Flips
----------------*/
-
-.flip.transition.in,
-.flip.transition.out {
- -webkit-animation-duration: 600ms;
- animation-duration: 600ms;
-}
-
-.horizontal.flip.transition.in {
- -webkit-animation-name: horizontalFlipIn;
- animation-name: horizontalFlipIn;
-}
-
-.horizontal.flip.transition.out {
- -webkit-animation-name: horizontalFlipOut;
- animation-name: horizontalFlipOut;
-}
-
-.vertical.flip.transition.in {
- -webkit-animation-name: verticalFlipIn;
- animation-name: verticalFlipIn;
-}
-
-.vertical.flip.transition.out {
- -webkit-animation-name: verticalFlipOut;
- animation-name: verticalFlipOut;
-}
-
-/* In */
-
-@-webkit-keyframes horizontalFlipIn {
- 0% {
-   -webkit-transform: perspective(2000px) rotateY(-90deg);
-   transform: perspective(2000px) rotateY(-90deg);
-   opacity: 0;
- }
-
- 100% {
-   -webkit-transform: perspective(2000px) rotateY(0deg);
-   transform: perspective(2000px) rotateY(0deg);
-   opacity: 1;
- }
-}
-
-@keyframes horizontalFlipIn {
- 0% {
-   -webkit-transform: perspective(2000px) rotateY(-90deg);
-   transform: perspective(2000px) rotateY(-90deg);
-   opacity: 0;
- }
-
- 100% {
-   -webkit-transform: perspective(2000px) rotateY(0deg);
-   transform: perspective(2000px) rotateY(0deg);
-   opacity: 1;
- }
-}
-
-@-webkit-keyframes verticalFlipIn {
- 0% {
-   -webkit-transform: perspective(2000px) rotateX(-90deg);
-   transform: perspective(2000px) rotateX(-90deg);
-   opacity: 0;
- }
-
- 100% {
-   -webkit-transform: perspective(2000px) rotateX(0deg);
-   transform: perspective(2000px) rotateX(0deg);
-   opacity: 1;
- }
-}
-
-@keyframes verticalFlipIn {
- 0% {
-   -webkit-transform: perspective(2000px) rotateX(-90deg);
-   transform: perspective(2000px) rotateX(-90deg);
-   opacity: 0;
- }
-
- 100% {
-   -webkit-transform: perspective(2000px) rotateX(0deg);
-   transform: perspective(2000px) rotateX(0deg);
-   opacity: 1;
- }
-}
-
-/* Out */
-
-@-webkit-keyframes horizontalFlipOut {
- 0% {
-   -webkit-transform: perspective(2000px) rotateY(0deg);
-   transform: perspective(2000px) rotateY(0deg);
-   opacity: 1;
- }
-
- 100% {
-   -webkit-transform: perspective(2000px) rotateY(90deg);
-   transform: perspective(2000px) rotateY(90deg);
-   opacity: 0;
- }
-}
-
-@keyframes horizontalFlipOut {
- 0% {
-   -webkit-transform: perspective(2000px) rotateY(0deg);
-   transform: perspective(2000px) rotateY(0deg);
-   opacity: 1;
- }
-
- 100% {
-   -webkit-transform: perspective(2000px) rotateY(90deg);
-   transform: perspective(2000px) rotateY(90deg);
-   opacity: 0;
- }
-}
-
-@-webkit-keyframes verticalFlipOut {
- 0% {
-   -webkit-transform: perspective(2000px) rotateX(0deg);
-   transform: perspective(2000px) rotateX(0deg);
-   opacity: 1;
- }
-
- 100% {
-   -webkit-transform: perspective(2000px) rotateX(-90deg);
-   transform: perspective(2000px) rotateX(-90deg);
-   opacity: 0;
- }
-}
-
-@keyframes verticalFlipOut {
- 0% {
-   -webkit-transform: perspective(2000px) rotateX(0deg);
-   transform: perspective(2000px) rotateX(0deg);
-   opacity: 1;
- }
-
- 100% {
-   -webkit-transform: perspective(2000px) rotateX(-90deg);
-   transform: perspective(2000px) rotateX(-90deg);
-   opacity: 0;
- }
-}
-
-/*--------------
-     Scale
----------------*/
-
-.scale.transition.in {
- -webkit-animation-name: scaleIn;
- animation-name: scaleIn;
-}
-
-.scale.transition.out {
- -webkit-animation-name: scaleOut;
- animation-name: scaleOut;
-}
-
-@-webkit-keyframes scaleIn {
- 0% {
-   opacity: 0;
-   -webkit-transform: scale(0.8);
-   transform: scale(0.8);
- }
-
- 100% {
-   opacity: 1;
-   -webkit-transform: scale(1);
-   transform: scale(1);
- }
-}
-
-@keyframes scaleIn {
- 0% {
-   opacity: 0;
-   -webkit-transform: scale(0.8);
-   transform: scale(0.8);
- }
-
- 100% {
-   opacity: 1;
-   -webkit-transform: scale(1);
-   transform: scale(1);
- }
-}
-
-/* Out */
-
-@-webkit-keyframes scaleOut {
- 0% {
-   opacity: 1;
-   -webkit-transform: scale(1);
-   transform: scale(1);
- }
-
- 100% {
-   opacity: 0;
-   -webkit-transform: scale(0.9);
-   transform: scale(0.9);
- }
-}
-
-@keyframes scaleOut {
- 0% {
-   opacity: 1;
-   -webkit-transform: scale(1);
-   transform: scale(1);
- }
-
- 100% {
-   opacity: 0;
-   -webkit-transform: scale(0.9);
-   transform: scale(0.9);
- }
-}
-
-/*--------------
-     Fly
----------------*/
-
-/* Inward */
-
-.transition.fly {
- -webkit-animation-duration: 0.6s;
- animation-duration: 0.6s;
- -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
- transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
-}
-
-.transition.fly.in {
- -webkit-animation-name: flyIn;
- animation-name: flyIn;
-}
-
-.transition[class*="fly up"].in {
- -webkit-animation-name: flyInUp;
- animation-name: flyInUp;
-}
-
-.transition[class*="fly down"].in {
- -webkit-animation-name: flyInDown;
- animation-name: flyInDown;
-}
-
-.transition[class*="fly left"].in {
- -webkit-animation-name: flyInLeft;
- animation-name: flyInLeft;
-}
-
-.transition[class*="fly right"].in {
- -webkit-animation-name: flyInRight;
- animation-name: flyInRight;
-}
-
-/* Outward */
-
-.transition.fly.out {
- -webkit-animation-name: flyOut;
- animation-name: flyOut;
-}
-
-.transition[class*="fly up"].out {
- -webkit-animation-name: flyOutUp;
- animation-name: flyOutUp;
-}
-
-.transition[class*="fly down"].out {
- -webkit-animation-name: flyOutDown;
- animation-name: flyOutDown;
-}
-
-.transition[class*="fly left"].out {
- -webkit-animation-name: flyOutLeft;
- animation-name: flyOutLeft;
-}
-
-.transition[class*="fly right"].out {
- -webkit-animation-name: flyOutRight;
- animation-name: flyOutRight;
-}
-
-/* In */
-
-@-webkit-keyframes flyIn {
- 0% {
-   opacity: 0;
-   -webkit-transform: scale3d(0.3, 0.3, 0.3);
-   transform: scale3d(0.3, 0.3, 0.3);
- }
-
- 20% {
-   -webkit-transform: scale3d(1.1, 1.1, 1.1);
-   transform: scale3d(1.1, 1.1, 1.1);
- }
-
- 40% {
-   -webkit-transform: scale3d(0.9, 0.9, 0.9);
-   transform: scale3d(0.9, 0.9, 0.9);
- }
-
- 60% {
-   opacity: 1;
-   -webkit-transform: scale3d(1.03, 1.03, 1.03);
-   transform: scale3d(1.03, 1.03, 1.03);
- }
-
- 80% {
-   -webkit-transform: scale3d(0.97, 0.97, 0.97);
-   transform: scale3d(0.97, 0.97, 0.97);
- }
-
- 100% {
-   opacity: 1;
-   -webkit-transform: scale3d(1, 1, 1);
-   transform: scale3d(1, 1, 1);
- }
-}
-
-@keyframes flyIn {
- 0% {
-   opacity: 0;
-   -webkit-transform: scale3d(0.3, 0.3, 0.3);
-   transform: scale3d(0.3, 0.3, 0.3);
- }
-
- 20% {
-   -webkit-transform: scale3d(1.1, 1.1, 1.1);
-   transform: scale3d(1.1, 1.1, 1.1);
- }
-
- 40% {
-   -webkit-transform: scale3d(0.9, 0.9, 0.9);
-   transform: scale3d(0.9, 0.9, 0.9);
- }
-
- 60% {
-   opacity: 1;
-   -webkit-transform: scale3d(1.03, 1.03, 1.03);
-   transform: scale3d(1.03, 1.03, 1.03);
- }
-
- 80% {
-   -webkit-transform: scale3d(0.97, 0.97, 0.97);
-   transform: scale3d(0.97, 0.97, 0.97);
- }
-
- 100% {
-   opacity: 1;
-   -webkit-transform: scale3d(1, 1, 1);
-   transform: scale3d(1, 1, 1);
- }
-}
-
-@-webkit-keyframes flyInUp {
- 0% {
-   opacity: 0;
-   -webkit-transform: translate3d(0, 1500px, 0);
-   transform: translate3d(0, 1500px, 0);
- }
-
- 60% {
-   opacity: 1;
-   -webkit-transform: translate3d(0, -20px, 0);
-   transform: translate3d(0, -20px, 0);
- }
-
- 75% {
-   -webkit-transform: translate3d(0, 10px, 0);
-   transform: translate3d(0, 10px, 0);
- }
-
- 90% {
-   -webkit-transform: translate3d(0, -5px, 0);
-   transform: translate3d(0, -5px, 0);
- }
-
- 100% {
-   -webkit-transform: translate3d(0, 0, 0);
-   transform: translate3d(0, 0, 0);
- }
-}
-
-@keyframes flyInUp {
- 0% {
-   opacity: 0;
-   -webkit-transform: translate3d(0, 1500px, 0);
-   transform: translate3d(0, 1500px, 0);
- }
-
- 60% {
-   opacity: 1;
-   -webkit-transform: translate3d(0, -20px, 0);
-   transform: translate3d(0, -20px, 0);
- }
-
- 75% {
-   -webkit-transform: translate3d(0, 10px, 0);
-   transform: translate3d(0, 10px, 0);
- }
-
- 90% {
-   -webkit-transform: translate3d(0, -5px, 0);
-   transform: translate3d(0, -5px, 0);
- }
-
- 100% {
-   -webkit-transform: translate3d(0, 0, 0);
-   transform: translate3d(0, 0, 0);
- }
-}
-
-@-webkit-keyframes flyInDown {
- 0% {
-   opacity: 0;
-   -webkit-transform: translate3d(0, -1500px, 0);
-   transform: translate3d(0, -1500px, 0);
- }
-
- 60% {
-   opacity: 1;
-   -webkit-transform: translate3d(0, 25px, 0);
-   transform: translate3d(0, 25px, 0);
- }
-
- 75% {
-   -webkit-transform: translate3d(0, -10px, 0);
-   transform: translate3d(0, -10px, 0);
- }
-
- 90% {
-   -webkit-transform: translate3d(0, 5px, 0);
-   transform: translate3d(0, 5px, 0);
- }
-
- 100% {
-   -webkit-transform: none;
-   transform: none;
- }
-}
-
-@keyframes flyInDown {
- 0% {
-   opacity: 0;
-   -webkit-transform: translate3d(0, -1500px, 0);
-   transform: translate3d(0, -1500px, 0);
- }
-
- 60% {
-   opacity: 1;
-   -webkit-transform: translate3d(0, 25px, 0);
-   transform: translate3d(0, 25px, 0);
- }
-
- 75% {
-   -webkit-transform: translate3d(0, -10px, 0);
-   transform: translate3d(0, -10px, 0);
- }
-
- 90% {
-   -webkit-transform: translate3d(0, 5px, 0);
-   transform: translate3d(0, 5px, 0);
- }
-
- 100% {
-   -webkit-transform: none;
-   transform: none;
- }
-}
-
-@-webkit-keyframes flyInLeft {
- 0% {
-   opacity: 0;
-   -webkit-transform: translate3d(1500px, 0, 0);
-   transform: translate3d(1500px, 0, 0);
- }
-
- 60% {
-   opacity: 1;
-   -webkit-transform: translate3d(-25px, 0, 0);
-   transform: translate3d(-25px, 0, 0);
- }
-
- 75% {
-   -webkit-transform: translate3d(10px, 0, 0);
-   transform: translate3d(10px, 0, 0);
- }
-
- 90% {
-   -webkit-transform: translate3d(-5px, 0, 0);
-   transform: translate3d(-5px, 0, 0);
- }
-
- 100% {
-   -webkit-transform: none;
-   transform: none;
- }
-}
-
-@keyframes flyInLeft {
- 0% {
-   opacity: 0;
-   -webkit-transform: translate3d(1500px, 0, 0);
-   transform: translate3d(1500px, 0, 0);
- }
-
- 60% {
-   opacity: 1;
-   -webkit-transform: translate3d(-25px, 0, 0);
-   transform: translate3d(-25px, 0, 0);
- }
-
- 75% {
-   -webkit-transform: translate3d(10px, 0, 0);
-   transform: translate3d(10px, 0, 0);
- }
-
- 90% {
-   -webkit-transform: translate3d(-5px, 0, 0);
-   transform: translate3d(-5px, 0, 0);
- }
-
- 100% {
-   -webkit-transform: none;
-   transform: none;
- }
-}
-
-@-webkit-keyframes flyInRight {
- 0% {
-   opacity: 0;
-   -webkit-transform: translate3d(-1500px, 0, 0);
-   transform: translate3d(-1500px, 0, 0);
- }
-
- 60% {
-   opacity: 1;
-   -webkit-transform: translate3d(25px, 0, 0);
-   transform: translate3d(25px, 0, 0);
- }
-
- 75% {
-   -webkit-transform: translate3d(-10px, 0, 0);
-   transform: translate3d(-10px, 0, 0);
- }
-
- 90% {
-   -webkit-transform: translate3d(5px, 0, 0);
-   transform: translate3d(5px, 0, 0);
- }
-
- 100% {
-   -webkit-transform: none;
-   transform: none;
- }
-}
-
-@keyframes flyInRight {
- 0% {
-   opacity: 0;
-   -webkit-transform: translate3d(-1500px, 0, 0);
-   transform: translate3d(-1500px, 0, 0);
- }
-
- 60% {
-   opacity: 1;
-   -webkit-transform: translate3d(25px, 0, 0);
-   transform: translate3d(25px, 0, 0);
- }
-
- 75% {
-   -webkit-transform: translate3d(-10px, 0, 0);
-   transform: translate3d(-10px, 0, 0);
- }
-
- 90% {
-   -webkit-transform: translate3d(5px, 0, 0);
-   transform: translate3d(5px, 0, 0);
- }
-
- 100% {
-   -webkit-transform: none;
-   transform: none;
- }
-}
-
-/* Out */
-
-@-webkit-keyframes flyOut {
- 20% {
-   -webkit-transform: scale3d(0.9, 0.9, 0.9);
-   transform: scale3d(0.9, 0.9, 0.9);
- }
-
- 50%, 55% {
-   opacity: 1;
-   -webkit-transform: scale3d(1.1, 1.1, 1.1);
-   transform: scale3d(1.1, 1.1, 1.1);
- }
-
- 100% {
-   opacity: 0;
-   -webkit-transform: scale3d(0.3, 0.3, 0.3);
-   transform: scale3d(0.3, 0.3, 0.3);
- }
-}
-
-@keyframes flyOut {
- 20% {
-   -webkit-transform: scale3d(0.9, 0.9, 0.9);
-   transform: scale3d(0.9, 0.9, 0.9);
- }
-
- 50%, 55% {
-   opacity: 1;
-   -webkit-transform: scale3d(1.1, 1.1, 1.1);
-   transform: scale3d(1.1, 1.1, 1.1);
- }
-
- 100% {
-   opacity: 0;
-   -webkit-transform: scale3d(0.3, 0.3, 0.3);
-   transform: scale3d(0.3, 0.3, 0.3);
- }
-}
-
-@-webkit-keyframes flyOutUp {
- 20% {
-   -webkit-transform: translate3d(0, 10px, 0);
-   transform: translate3d(0, 10px, 0);
- }
-
- 40%, 45% {
-   opacity: 1;
-   -webkit-transform: translate3d(0, -20px, 0);
-   transform: translate3d(0, -20px, 0);
- }
-
- 100% {
-   opacity: 0;
-   -webkit-transform: translate3d(0, 2000px, 0);
-   transform: translate3d(0, 2000px, 0);
- }
-}
-
-@keyframes flyOutUp {
- 20% {
-   -webkit-transform: translate3d(0, 10px, 0);
-   transform: translate3d(0, 10px, 0);
- }
-
- 40%, 45% {
-   opacity: 1;
-   -webkit-transform: translate3d(0, -20px, 0);
-   transform: translate3d(0, -20px, 0);
- }
-
- 100% {
-   opacity: 0;
-   -webkit-transform: translate3d(0, 2000px, 0);
-   transform: translate3d(0, 2000px, 0);
- }
-}
-
-@-webkit-keyframes flyOutDown {
- 20% {
-   -webkit-transform: translate3d(0, -10px, 0);
-   transform: translate3d(0, -10px, 0);
- }
-
- 40%, 45% {
-   opacity: 1;
-   -webkit-transform: translate3d(0, 20px, 0);
-   transform: translate3d(0, 20px, 0);
- }
-
- 100% {
-   opacity: 0;
-   -webkit-transform: translate3d(0, -2000px, 0);
-   transform: translate3d(0, -2000px, 0);
- }
-}
-
-@keyframes flyOutDown {
- 20% {
-   -webkit-transform: translate3d(0, -10px, 0);
-   transform: translate3d(0, -10px, 0);
- }
-
- 40%, 45% {
-   opacity: 1;
-   -webkit-transform: translate3d(0, 20px, 0);
-   transform: translate3d(0, 20px, 0);
- }
-
- 100% {
-   opacity: 0;
-   -webkit-transform: translate3d(0, -2000px, 0);
-   transform: translate3d(0, -2000px, 0);
- }
-}
-
-@-webkit-keyframes flyOutRight {
- 20% {
-   opacity: 1;
-   -webkit-transform: translate3d(20px, 0, 0);
-   transform: translate3d(20px, 0, 0);
- }
-
- 100% {
-   opacity: 0;
-   -webkit-transform: translate3d(-2000px, 0, 0);
-   transform: translate3d(-2000px, 0, 0);
- }
-}
-
-@keyframes flyOutRight {
- 20% {
-   opacity: 1;
-   -webkit-transform: translate3d(20px, 0, 0);
-   transform: translate3d(20px, 0, 0);
- }
-
- 100% {
-   opacity: 0;
-   -webkit-transform: translate3d(-2000px, 0, 0);
-   transform: translate3d(-2000px, 0, 0);
- }
-}
-
-@-webkit-keyframes flyOutLeft {
- 20% {
-   opacity: 1;
-   -webkit-transform: translate3d(-20px, 0, 0);
-   transform: translate3d(-20px, 0, 0);
- }
-
- 100% {
-   opacity: 0;
-   -webkit-transform: translate3d(2000px, 0, 0);
-   transform: translate3d(2000px, 0, 0);
- }
-}
-
-@keyframes flyOutLeft {
- 20% {
-   opacity: 1;
-   -webkit-transform: translate3d(-20px, 0, 0);
-   transform: translate3d(-20px, 0, 0);
- }
-
- 100% {
-   opacity: 0;
-   -webkit-transform: translate3d(2000px, 0, 0);
-   transform: translate3d(2000px, 0, 0);
- }
-}
-
-/*--------------
-    Slide
----------------*/
-
-.transition.slide.in,
-.transition[class*="slide down"].in {
- -webkit-animation-name: slideInY;
- animation-name: slideInY;
- -webkit-transform-origin: top center;
- transform-origin: top center;
-}
-
-.transition[class*="slide up"].in {
- -webkit-animation-name: slideInY;
- animation-name: slideInY;
- -webkit-transform-origin: bottom center;
- transform-origin: bottom center;
-}
-
-.transition[class*="slide left"].in {
- -webkit-animation-name: slideInX;
- animation-name: slideInX;
- -webkit-transform-origin: center right;
- transform-origin: center right;
-}
-
-.transition[class*="slide right"].in {
- -webkit-animation-name: slideInX;
- animation-name: slideInX;
- -webkit-transform-origin: center left;
- transform-origin: center left;
-}
-
-.transition.slide.out,
-.transition[class*="slide down"].out {
- -webkit-animation-name: slideOutY;
- animation-name: slideOutY;
- -webkit-transform-origin: top center;
- transform-origin: top center;
-}
-
-.transition[class*="slide up"].out {
- -webkit-animation-name: slideOutY;
- animation-name: slideOutY;
- -webkit-transform-origin: bottom center;
- transform-origin: bottom center;
-}
-
-.transition[class*="slide left"].out {
- -webkit-animation-name: slideOutX;
- animation-name: slideOutX;
- -webkit-transform-origin: center right;
- transform-origin: center right;
-}
-
-.transition[class*="slide right"].out {
- -webkit-animation-name: slideOutX;
- animation-name: slideOutX;
- -webkit-transform-origin: center left;
- transform-origin: center left;
-}
-
-/* In */
-
-@-webkit-keyframes slideInY {
- 0% {
-   opacity: 0;
-   -webkit-transform: scaleY(0);
-   transform: scaleY(0);
- }
-
- 100% {
-   opacity: 1;
-   -webkit-transform: scaleY(1);
-   transform: scaleY(1);
- }
-}
-
-@keyframes slideInY {
- 0% {
-   opacity: 0;
-   -webkit-transform: scaleY(0);
-   transform: scaleY(0);
- }
-
- 100% {
-   opacity: 1;
-   -webkit-transform: scaleY(1);
-   transform: scaleY(1);
- }
-}
-
-@-webkit-keyframes slideInX {
- 0% {
-   opacity: 0;
-   -webkit-transform: scaleX(0);
-   transform: scaleX(0);
- }
-
- 100% {
-   opacity: 1;
-   -webkit-transform: scaleX(1);
-   transform: scaleX(1);
- }
-}
-
-@keyframes slideInX {
- 0% {
-   opacity: 0;
-   -webkit-transform: scaleX(0);
-   transform: scaleX(0);
- }
-
- 100% {
-   opacity: 1;
-   -webkit-transform: scaleX(1);
-   transform: scaleX(1);
- }
-}
-
-/* Out */
-
-@-webkit-keyframes slideOutY {
- 0% {
-   opacity: 1;
-   -webkit-transform: scaleY(1);
-   transform: scaleY(1);
- }
-
- 100% {
-   opacity: 0;
-   -webkit-transform: scaleY(0);
-   transform: scaleY(0);
- }
-}
-
-@keyframes slideOutY {
- 0% {
-   opacity: 1;
-   -webkit-transform: scaleY(1);
-   transform: scaleY(1);
- }
-
- 100% {
-   opacity: 0;
-   -webkit-transform: scaleY(0);
-   transform: scaleY(0);
- }
-}
-
-@-webkit-keyframes slideOutX {
- 0% {
-   opacity: 1;
-   -webkit-transform: scaleX(1);
-   transform: scaleX(1);
- }
-
- 100% {
-   opacity: 0;
-   -webkit-transform: scaleX(0);
-   transform: scaleX(0);
- }
-}
-
-@keyframes slideOutX {
- 0% {
-   opacity: 1;
-   -webkit-transform: scaleX(1);
-   transform: scaleX(1);
- }
-
- 100% {
-   opacity: 0;
-   -webkit-transform: scaleX(0);
-   transform: scaleX(0);
- }
-}
-
-/*--------------
-    Swing
----------------*/
-
-.transition.swing {
- -webkit-animation-duration: 800ms;
- animation-duration: 800ms;
-}
-
-.transition[class*="swing down"].in {
- -webkit-animation-name: swingInX;
- animation-name: swingInX;
- -webkit-transform-origin: top center;
- transform-origin: top center;
-}
-
-.transition[class*="swing up"].in {
- -webkit-animation-name: swingInX;
- animation-name: swingInX;
- -webkit-transform-origin: bottom center;
- transform-origin: bottom center;
-}
-
-.transition[class*="swing left"].in {
- -webkit-animation-name: swingInY;
- animation-name: swingInY;
- -webkit-transform-origin: center right;
- transform-origin: center right;
-}
-
-.transition[class*="swing right"].in {
- -webkit-animation-name: swingInY;
- animation-name: swingInY;
- -webkit-transform-origin: center left;
- transform-origin: center left;
-}
-
-.transition.swing.out,
-.transition[class*="swing down"].out {
- -webkit-animation-name: swingOutX;
- animation-name: swingOutX;
- -webkit-transform-origin: top center;
- transform-origin: top center;
-}
-
-.transition[class*="swing up"].out {
- -webkit-animation-name: swingOutX;
- animation-name: swingOutX;
- -webkit-transform-origin: bottom center;
- transform-origin: bottom center;
-}
-
-.transition[class*="swing left"].out {
- -webkit-animation-name: swingOutY;
- animation-name: swingOutY;
- -webkit-transform-origin: center right;
- transform-origin: center right;
-}
-
-.transition[class*="swing right"].out {
- -webkit-animation-name: swingOutY;
- animation-name: swingOutY;
- -webkit-transform-origin: center left;
- transform-origin: center left;
-}
-
-/* In */
-
-@-webkit-keyframes swingInX {
- 0% {
-   -webkit-transform: perspective(1000px) rotateX(90deg);
-   transform: perspective(1000px) rotateX(90deg);
-   opacity: 0;
- }
-
- 40% {
-   -webkit-transform: perspective(1000px) rotateX(-30deg);
-   transform: perspective(1000px) rotateX(-30deg);
-   opacity: 1;
- }
-
- 60% {
-   -webkit-transform: perspective(1000px) rotateX(15deg);
-   transform: perspective(1000px) rotateX(15deg);
- }
-
- 80% {
-   -webkit-transform: perspective(1000px) rotateX(-7.5deg);
-   transform: perspective(1000px) rotateX(-7.5deg);
- }
-
- 100% {
-   -webkit-transform: perspective(1000px) rotateX(0deg);
-   transform: perspective(1000px) rotateX(0deg);
- }
-}
-
-@keyframes swingInX {
- 0% {
-   -webkit-transform: perspective(1000px) rotateX(90deg);
-   transform: perspective(1000px) rotateX(90deg);
-   opacity: 0;
- }
-
- 40% {
-   -webkit-transform: perspective(1000px) rotateX(-30deg);
-   transform: perspective(1000px) rotateX(-30deg);
-   opacity: 1;
- }
-
- 60% {
-   -webkit-transform: perspective(1000px) rotateX(15deg);
-   transform: perspective(1000px) rotateX(15deg);
- }
-
- 80% {
-   -webkit-transform: perspective(1000px) rotateX(-7.5deg);
-   transform: perspective(1000px) rotateX(-7.5deg);
- }
-
- 100% {
-   -webkit-transform: perspective(1000px) rotateX(0deg);
-   transform: perspective(1000px) rotateX(0deg);
- }
-}
-
-@-webkit-keyframes swingInY {
- 0% {
-   -webkit-transform: perspective(1000px) rotateY(-90deg);
-   transform: perspective(1000px) rotateY(-90deg);
-   opacity: 0;
- }
-
- 40% {
-   -webkit-transform: perspective(1000px) rotateY(30deg);
-   transform: perspective(1000px) rotateY(30deg);
-   opacity: 1;
- }
-
- 60% {
-   -webkit-transform: perspective(1000px) rotateY(-17.5deg);
-   transform: perspective(1000px) rotateY(-17.5deg);
- }
-
- 80% {
-   -webkit-transform: perspective(1000px) rotateY(7.5deg);
-   transform: perspective(1000px) rotateY(7.5deg);
- }
-
- 100% {
-   -webkit-transform: perspective(1000px) rotateY(0deg);
-   transform: perspective(1000px) rotateY(0deg);
- }
-}
-
-@keyframes swingInY {
- 0% {
-   -webkit-transform: perspective(1000px) rotateY(-90deg);
-   transform: perspective(1000px) rotateY(-90deg);
-   opacity: 0;
- }
-
- 40% {
-   -webkit-transform: perspective(1000px) rotateY(30deg);
-   transform: perspective(1000px) rotateY(30deg);
-   opacity: 1;
- }
-
- 60% {
-   -webkit-transform: perspective(1000px) rotateY(-17.5deg);
-   transform: perspective(1000px) rotateY(-17.5deg);
- }
-
- 80% {
-   -webkit-transform: perspective(1000px) rotateY(7.5deg);
-   transform: perspective(1000px) rotateY(7.5deg);
- }
-
- 100% {
-   -webkit-transform: perspective(1000px) rotateY(0deg);
-   transform: perspective(1000px) rotateY(0deg);
- }
-}
-
-/* Out */
-
-@-webkit-keyframes swingOutX {
- 0% {
-   -webkit-transform: perspective(1000px) rotateX(0deg);
-   transform: perspective(1000px) rotateX(0deg);
- }
-
- 40% {
-   -webkit-transform: perspective(1000px) rotateX(-7.5deg);
-   transform: perspective(1000px) rotateX(-7.5deg);
- }
-
- 60% {
-   -webkit-transform: perspective(1000px) rotateX(17.5deg);
-   transform: perspective(1000px) rotateX(17.5deg);
- }
-
- 80% {
-   -webkit-transform: perspective(1000px) rotateX(-30deg);
-   transform: perspective(1000px) rotateX(-30deg);
-   opacity: 1;
- }
-
- 100% {
-   -webkit-transform: perspective(1000px) rotateX(90deg);
-   transform: perspective(1000px) rotateX(90deg);
-   opacity: 0;
- }
-}
-
-@keyframes swingOutX {
- 0% {
-   -webkit-transform: perspective(1000px) rotateX(0deg);
-   transform: perspective(1000px) rotateX(0deg);
- }
-
- 40% {
-   -webkit-transform: perspective(1000px) rotateX(-7.5deg);
-   transform: perspective(1000px) rotateX(-7.5deg);
- }
-
- 60% {
-   -webkit-transform: perspective(1000px) rotateX(17.5deg);
-   transform: perspective(1000px) rotateX(17.5deg);
- }
-
- 80% {
-   -webkit-transform: perspective(1000px) rotateX(-30deg);
-   transform: perspective(1000px) rotateX(-30deg);
-   opacity: 1;
- }
-
- 100% {
-   -webkit-transform: perspective(1000px) rotateX(90deg);
-   transform: perspective(1000px) rotateX(90deg);
-   opacity: 0;
- }
-}
-
-@-webkit-keyframes swingOutY {
- 0% {
-   -webkit-transform: perspective(1000px) rotateY(0deg);
-   transform: perspective(1000px) rotateY(0deg);
- }
-
- 40% {
-   -webkit-transform: perspective(1000px) rotateY(7.5deg);
-   transform: perspective(1000px) rotateY(7.5deg);
- }
-
- 60% {
-   -webkit-transform: perspective(1000px) rotateY(-10deg);
-   transform: perspective(1000px) rotateY(-10deg);
- }
-
- 80% {
-   -webkit-transform: perspective(1000px) rotateY(30deg);
-   transform: perspective(1000px) rotateY(30deg);
-   opacity: 1;
- }
-
- 100% {
-   -webkit-transform: perspective(1000px) rotateY(-90deg);
-   transform: perspective(1000px) rotateY(-90deg);
-   opacity: 0;
- }
-}
-
-@keyframes swingOutY {
- 0% {
-   -webkit-transform: perspective(1000px) rotateY(0deg);
-   transform: perspective(1000px) rotateY(0deg);
- }
-
- 40% {
-   -webkit-transform: perspective(1000px) rotateY(7.5deg);
-   transform: perspective(1000px) rotateY(7.5deg);
- }
-
- 60% {
-   -webkit-transform: perspective(1000px) rotateY(-10deg);
-   transform: perspective(1000px) rotateY(-10deg);
- }
-
- 80% {
-   -webkit-transform: perspective(1000px) rotateY(30deg);
-   transform: perspective(1000px) rotateY(30deg);
-   opacity: 1;
- }
-
- 100% {
-   -webkit-transform: perspective(1000px) rotateY(-90deg);
-   transform: perspective(1000px) rotateY(-90deg);
-   opacity: 0;
- }
-}
-
-/*--------------
-     Zoom
----------------*/
-
-.transition.zoom.in {
- -webkit-animation-name: zoomIn;
- animation-name: zoomIn;
-}
-
-.transition.zoom.out {
- -webkit-animation-name: zoomOut;
- animation-name: zoomOut;
-}
-
-@-webkit-keyframes zoomIn {
- 0% {
-   opacity: 1;
-   -webkit-transform: scale(0);
-   transform: scale(0);
- }
-
- 100% {
-   opacity: 1;
-   -webkit-transform: scale(1);
-   transform: scale(1);
- }
-}
-
-@keyframes zoomIn {
- 0% {
-   opacity: 1;
-   -webkit-transform: scale(0);
-   transform: scale(0);
- }
-
- 100% {
-   opacity: 1;
-   -webkit-transform: scale(1);
-   transform: scale(1);
- }
-}
-
-@-webkit-keyframes zoomOut {
- 0% {
-   opacity: 1;
-   -webkit-transform: scale(1);
-   transform: scale(1);
- }
-
- 100% {
-   opacity: 1;
-   -webkit-transform: scale(0);
-   transform: scale(0);
- }
-}
-
-@keyframes zoomOut {
- 0% {
-   opacity: 1;
-   -webkit-transform: scale(1);
-   transform: scale(1);
- }
-
- 100% {
-   opacity: 1;
-   -webkit-transform: scale(0);
-   transform: scale(0);
- }
-}
-
-/*******************************
-      Static Animations
-*******************************/
-
-/*--------------
-   Emphasis
----------------*/
-
-.flash.transition {
- -webkit-animation-duration: 750ms;
- animation-duration: 750ms;
- -webkit-animation-name: flash;
- animation-name: flash;
-}
-
-.shake.transition {
- -webkit-animation-duration: 750ms;
- animation-duration: 750ms;
- -webkit-animation-name: shake;
- animation-name: shake;
-}
-
-.bounce.transition {
- -webkit-animation-duration: 750ms;
- animation-duration: 750ms;
- -webkit-animation-name: bounce;
- animation-name: bounce;
-}
-
-.tada.transition {
- -webkit-animation-duration: 750ms;
- animation-duration: 750ms;
- -webkit-animation-name: tada;
- animation-name: tada;
-}
-
-.pulse.transition {
- -webkit-animation-duration: 500ms;
- animation-duration: 500ms;
- -webkit-animation-name: pulse;
- animation-name: pulse;
-}
-
-.jiggle.transition {
- -webkit-animation-duration: 750ms;
- animation-duration: 750ms;
- -webkit-animation-name: jiggle;
- animation-name: jiggle;
-}
-
-.transition.glow {
- -webkit-animation-duration: 2000ms;
- animation-duration: 2000ms;
- -webkit-animation-timing-function: cubic-bezier(0.19, 1, 0.22, 1);
- animation-timing-function: cubic-bezier(0.19, 1, 0.22, 1);
-}
-
-.transition.glow {
- -webkit-animation-name: glow;
- animation-name: glow;
-}
-
-/* Flash */
-
-@-webkit-keyframes flash {
- 0%, 50%, 100% {
-   opacity: 1;
- }
-
- 25%, 75% {
-   opacity: 0;
- }
-}
-
-@keyframes flash {
- 0%, 50%, 100% {
-   opacity: 1;
- }
-
- 25%, 75% {
-   opacity: 0;
- }
-}
-
-/* Shake */
-
-@-webkit-keyframes shake {
- 0%, 100% {
-   -webkit-transform: translateX(0);
-   transform: translateX(0);
- }
-
- 10%, 30%, 50%, 70%, 90% {
-   -webkit-transform: translateX(-10px);
-   transform: translateX(-10px);
- }
-
- 20%, 40%, 60%, 80% {
-   -webkit-transform: translateX(10px);
-   transform: translateX(10px);
- }
-}
-
-@keyframes shake {
- 0%, 100% {
-   -webkit-transform: translateX(0);
-   transform: translateX(0);
- }
-
- 10%, 30%, 50%, 70%, 90% {
-   -webkit-transform: translateX(-10px);
-   transform: translateX(-10px);
- }
-
- 20%, 40%, 60%, 80% {
-   -webkit-transform: translateX(10px);
-   transform: translateX(10px);
- }
-}
-
-/* Bounce */
-
-@-webkit-keyframes bounce {
- 0%, 20%, 50%, 80%, 100% {
-   -webkit-transform: translateY(0);
-   transform: translateY(0);
- }
-
- 40% {
-   -webkit-transform: translateY(-30px);
-   transform: translateY(-30px);
- }
-
- 60% {
-   -webkit-transform: translateY(-15px);
-   transform: translateY(-15px);
- }
-}
-
-@keyframes bounce {
- 0%, 20%, 50%, 80%, 100% {
-   -webkit-transform: translateY(0);
-   transform: translateY(0);
- }
-
- 40% {
-   -webkit-transform: translateY(-30px);
-   transform: translateY(-30px);
- }
-
- 60% {
-   -webkit-transform: translateY(-15px);
-   transform: translateY(-15px);
- }
-}
-
-/* Tada */
-
-@-webkit-keyframes tada {
- 0% {
-   -webkit-transform: scale(1);
-   transform: scale(1);
- }
-
- 10%, 20% {
-   -webkit-transform: scale(0.9) rotate(-3deg);
-   transform: scale(0.9) rotate(-3deg);
- }
-
- 30%, 50%, 70%, 90% {
-   -webkit-transform: scale(1.1) rotate(3deg);
-   transform: scale(1.1) rotate(3deg);
- }
-
- 40%, 60%, 80% {
-   -webkit-transform: scale(1.1) rotate(-3deg);
-   transform: scale(1.1) rotate(-3deg);
- }
-
- 100% {
-   -webkit-transform: scale(1) rotate(0);
-   transform: scale(1) rotate(0);
- }
-}
-
-@keyframes tada {
- 0% {
-   -webkit-transform: scale(1);
-   transform: scale(1);
- }
-
- 10%, 20% {
-   -webkit-transform: scale(0.9) rotate(-3deg);
-   transform: scale(0.9) rotate(-3deg);
- }
-
- 30%, 50%, 70%, 90% {
-   -webkit-transform: scale(1.1) rotate(3deg);
-   transform: scale(1.1) rotate(3deg);
- }
-
- 40%, 60%, 80% {
-   -webkit-transform: scale(1.1) rotate(-3deg);
-   transform: scale(1.1) rotate(-3deg);
- }
-
- 100% {
-   -webkit-transform: scale(1) rotate(0);
-   transform: scale(1) rotate(0);
- }
-}
-
-/* Pulse */
-
-@-webkit-keyframes pulse {
- 0% {
-   -webkit-transform: scale(1);
-   transform: scale(1);
-   opacity: 1;
- }
-
- 50% {
-   -webkit-transform: scale(0.9);
-   transform: scale(0.9);
-   opacity: 0.7;
- }
-
- 100% {
-   -webkit-transform: scale(1);
-   transform: scale(1);
-   opacity: 1;
- }
-}
-
-@keyframes pulse {
- 0% {
-   -webkit-transform: scale(1);
-   transform: scale(1);
-   opacity: 1;
- }
-
- 50% {
-   -webkit-transform: scale(0.9);
-   transform: scale(0.9);
-   opacity: 0.7;
- }
-
- 100% {
-   -webkit-transform: scale(1);
-   transform: scale(1);
-   opacity: 1;
- }
-}
-
-/* Jiggle */
-
-@-webkit-keyframes jiggle {
- 0% {
-   -webkit-transform: scale3d(1, 1, 1);
-   transform: scale3d(1, 1, 1);
- }
-
- 30% {
-   -webkit-transform: scale3d(1.25, 0.75, 1);
-   transform: scale3d(1.25, 0.75, 1);
- }
-
- 40% {
-   -webkit-transform: scale3d(0.75, 1.25, 1);
-   transform: scale3d(0.75, 1.25, 1);
- }
-
- 50% {
-   -webkit-transform: scale3d(1.15, 0.85, 1);
-   transform: scale3d(1.15, 0.85, 1);
- }
-
- 65% {
-   -webkit-transform: scale3d(0.95, 1.05, 1);
-   transform: scale3d(0.95, 1.05, 1);
- }
-
- 75% {
-   -webkit-transform: scale3d(1.05, 0.95, 1);
-   transform: scale3d(1.05, 0.95, 1);
- }
-
- 100% {
-   -webkit-transform: scale3d(1, 1, 1);
-   transform: scale3d(1, 1, 1);
- }
-}
-
-@keyframes jiggle {
- 0% {
-   -webkit-transform: scale3d(1, 1, 1);
-   transform: scale3d(1, 1, 1);
- }
-
- 30% {
-   -webkit-transform: scale3d(1.25, 0.75, 1);
-   transform: scale3d(1.25, 0.75, 1);
- }
-
- 40% {
-   -webkit-transform: scale3d(0.75, 1.25, 1);
-   transform: scale3d(0.75, 1.25, 1);
- }
-
- 50% {
-   -webkit-transform: scale3d(1.15, 0.85, 1);
-   transform: scale3d(1.15, 0.85, 1);
- }
-
- 65% {
-   -webkit-transform: scale3d(0.95, 1.05, 1);
-   transform: scale3d(0.95, 1.05, 1);
- }
-
- 75% {
-   -webkit-transform: scale3d(1.05, 0.95, 1);
-   transform: scale3d(1.05, 0.95, 1);
- }
-
- 100% {
-   -webkit-transform: scale3d(1, 1, 1);
-   transform: scale3d(1, 1, 1);
- }
-}
-
-/* Glow */
-
-@-webkit-keyframes glow {
- 0% {
-   background-color: #FCFCFD;
- }
-
- 30% {
-   background-color: #FFF6CD;
- }
-
- 100% {
-   background-color: #FCFCFD;
- }
-}
-
-@keyframes glow {
- 0% {
-   background-color: #FCFCFD;
- }
-
- 30% {
-   background-color: #FFF6CD;
- }
-
- 100% {
-   background-color: #FCFCFD;
- }
-}
-
-/*******************************
-        Site Overrides
-*******************************/
diff --git a/front/src/semantic/themes/default/assets/fonts/icons.eot b/front/src/semantic/themes/default/assets/fonts/icons.eot
deleted file mode 100644
index 769e6fabef464631c52fffb35dcf41d2d1da6c18..0000000000000000000000000000000000000000
Binary files a/front/src/semantic/themes/default/assets/fonts/icons.eot and /dev/null differ
diff --git a/front/src/semantic/themes/default/assets/fonts/icons.otf b/front/src/semantic/themes/default/assets/fonts/icons.otf
deleted file mode 100644
index f7936cc1e789eea5438d576d6b12de20191da09d..0000000000000000000000000000000000000000
Binary files a/front/src/semantic/themes/default/assets/fonts/icons.otf and /dev/null differ
diff --git a/front/src/semantic/themes/default/assets/fonts/icons.svg b/front/src/semantic/themes/default/assets/fonts/icons.svg
deleted file mode 100644
index 6a09bb19689ad6f19c72a2a69a95cb1ec79df1e7..0000000000000000000000000000000000000000
--- a/front/src/semantic/themes/default/assets/fonts/icons.svg
+++ /dev/null
@@ -1,947 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!--
-Font Awesome Free 5.0.2 by @fontawesome - http://fontawesome.com
-License - http://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
--->
-<svg xmlns="http://www.w3.org/2000/svg">
-	<defs>
-		<font id="fontawesome-free" horiz-adv-x="640">
-			<font-face font-family="Font Awesome 5 Free" units-per-em="512" ascent="448" descent="64" font-weight="900" font-style="Solid" />
-			<missing-glyph horiz-adv-x="0" />
-			<glyph glyph-name="address-book" unicode="" horiz-adv-x="448" d=" M436 288C442.627 288 448 293.373 448 300V340C448 346.627 442.627 352 436 352H416V400C416 426.51 394.51 448 368 448H80C53.49 448 32 426.51 32 400V-16C32 -42.51 53.49 -64 80 -64H368C394.51 -64 416 -42.51 416 -16V32H436C442.627 32 448 37.373 448 44V84C448 90.627 442.627 96 436 96H416V160H436C442.627 160 448 165.373 448 172V212C448 218.627 442.627 224 436 224H416V288H436zM224 352C277.019 352 320 309.019 320 256S277.019 160 224 160S128 202.981 128 256S170.981 352 224 352zM352 48C352 21.49 330.51 0 304 0H144C117.49 0 96 21.49 96 48V96.711C96 117.7050000000001 109.644 136.264 129.683 142.526L152.637 149.699C173.563 135.587 198.198 128 224 128S274.437 135.587 295.363 149.699L318.317 142.526C338.356 136.264 352 117.705 352 96.711V48z" />
-			<glyph glyph-name="address-card" unicode="" horiz-adv-x="512" d=" M464 384H48C21.49 384 0 362.51 0 336V48C0 21.49 21.49 0 48 0H464C490.51 0 512 21.49 512 48V336C512 362.51 490.51 384 464 384zM176 320C220.183 320 256 284.183 256 240S220.183 160 176 160S96 195.817 96 240S131.817 320 176 320zM288 88C288 74.745 277.255 64 264 64H88C74.745 64 64 74.745 64 88V117.897A24 24 0 0 0 81.407 140.974L110.345 149.242C129.323 135.451 152.087 128 176 128S222.677 135.451 241.656 149.241L270.594 140.973A23.999000000000002 23.999000000000002 0 0 0 288 117.897V88zM448 140C448 133.373 442.627 128 436 128H332C325.373 128 320 133.373 320 140V148C320 154.627 325.373 160 332 160H436C442.627 160 448 154.627 448 148V140zM448 204C448 197.373 442.627 192 436 192H332C325.373 192 320 197.373 320 204V212C320 218.627 325.373 224 332 224H436C442.627 224 448 218.627 448 212V204zM448 268C448 261.373 442.627 256 436 256H332C325.373 256 320 261.373 320 268V276C320 282.627 325.373 288 332 288H436C442.627 288 448 282.627 448 276V268z" />
-			<glyph glyph-name="adjust" unicode="" horiz-adv-x="512" d=" M8 192C8 55.034 119.033 -56 256 -56S504 55.034 504 192S392.966 440 256 440S8 328.967 8 192zM256 8V376C357.705 376 440 293.689 440 192C440 90.295 357.689 8 256 8z" />
-			<glyph glyph-name="align-center" unicode="" horiz-adv-x="448" d=" M352 404V364C352 355.163 344.837 348 336 348H112C103.163 348 96 355.163 96 364V404C96 412.837 103.163 420 112 420H336C344.837 420 352 412.837 352 404zM16 220H432C440.837 220 448 227.163 448 236V276C448 284.837 440.837 292 432 292H16C7.163 292 0 284.837 0 276V236C0 227.163 7.163 220 16 220zM16 -36H432C440.837 -36 448 -28.837 448 -20V20C448 28.837 440.837 36 432 36H16C7.163 36 0 28.837 0 20V-20C0 -28.837 7.163 -36 16 -36zM336 164H112C103.163 164 96 156.837 96 148V108C96 99.163 103.163 92 112 92H336C344.837 92 352 99.163 352 108V148C352 156.837 344.837 164 336 164z" />
-			<glyph glyph-name="align-justify" unicode="" horiz-adv-x="448" d=" M0 364V404C0 412.837 7.163 420 16 420H432C440.837 420 448 412.837 448 404V364C448 355.163 440.837 348 432 348H16C7.163 348 0 355.163 0 364zM16 220H432C440.837 220 448 227.163 448 236V276C448 284.837 440.837 292 432 292H16C7.163 292 0 284.837 0 276V236C0 227.163 7.163 220 16 220zM16 -36H432C440.837 -36 448 -28.837 448 -20V20C448 28.837 440.837 36 432 36H16C7.163 36 0 28.837 0 20V-20C0 -28.837 7.163 -36 16 -36zM16 92H432C440.837 92 448 99.163 448 108V148C448 156.837 440.837 164 432 164H16C7.163 164 0 156.837 0 148V108C0 99.163 7.163 92 16 92z" />
-			<glyph glyph-name="align-left" unicode="" horiz-adv-x="448" d=" M288 404V364C288 355.163 280.837 348 272 348H16C7.163 348 0 355.163 0 364V404C0 412.837 7.163 420 16 420H272C280.837 420 288 412.837 288 404zM0 276V236C0 227.163 7.163 220 16 220H432C440.837 220 448 227.163 448 236V276C448 284.837 440.837 292 432 292H16C7.163 292 0 284.837 0 276zM16 -36H432C440.837 -36 448 -28.837 448 -20V20C448 28.837 440.837 36 432 36H16C7.163 36 0 28.837 0 20V-20C0 -28.837 7.163 -36 16 -36zM272 164H16C7.163 164 0 156.837 0 148V108C0 99.163 7.163 92 16 92H272C280.837 92 288 99.163 288 108V148C288 156.837 280.837 164 272 164z" />
-			<glyph glyph-name="align-right" unicode="" horiz-adv-x="448" d=" M160 364V404C160 412.837 167.163 420 176 420H432C440.837 420 448 412.837 448 404V364C448 355.163 440.837 348 432 348H176C167.163 348 160 355.163 160 364zM16 220H432C440.837 220 448 227.163 448 236V276C448 284.837 440.837 292 432 292H16C7.163 292 0 284.837 0 276V236C0 227.163 7.163 220 16 220zM16 -36H432C440.837 -36 448 -28.837 448 -20V20C448 28.837 440.837 36 432 36H16C7.163 36 0 28.837 0 20V-20C0 -28.837 7.163 -36 16 -36zM176 92H432C440.837 92 448 99.163 448 108V148C448 156.837 440.837 164 432 164H176C167.163 164 160 156.837 160 148V108C160 99.163 167.163 92 176 92z" />
-			<glyph glyph-name="ambulance" unicode="" horiz-adv-x="640" d=" M592 448H272C245.49 448 224 426.51 224 400V352H179.882A48 48 0 0 1 145.941 337.9410000000001L46.059 238.059A48 48 0 0 1 32 204.118V96H24C10.745 96 0 85.255 0 72V56C0 42.745 10.745 32 24 32H64C64 -21.019 106.981 -64 160 -64S256 -21.019 256 32H384C384 -21.019 426.981 -64 480 -64S576 -21.019 576 32H616C629.255 32 640 42.745 640 56V400C640 426.51 618.51 448 592 448zM160 -16C133.533 -16 112 5.533 112 32S133.533 80 160 80S208 58.467 208 32S186.467 -16 160 -16zM224 192H80V204.118L179.882 304H224V192zM480 -16C453.533 -16 432 5.533 432 32S453.533 80 480 80S528 58.467 528 32S506.467 -16 480 -16zM512 272V240C512 233.373 506.627 228 500 228H444V172C444 165.373 438.627 160 432 160H400C393.373 160 388 165.373 388 172V228H332C325.373 228 320 233.373 320 240V272C320 278.627 325.373 284 332 284H388V340C388 346.627 393.373 352 400 352H432C438.627 352 444 346.627 444 340V284H500C506.627 284 512 278.627 512 272z" />
-			<glyph glyph-name="american-sign-language-interpreting" unicode="" horiz-adv-x="640" d=" M290.5470000000001 258.961C270.252 269.11 246.4000000000001 270.1600000000001 225.808 262.851C268.4140000000001 262.851 297.016 242.376 311.386 212.275C319.9620000000001 194.376 306.238 174.204 287.769 174.204C306.198 174.204 319.98 154.068 311.386 136.1330000000001C296.661 105.287 265.2630000000001 85.2790000000001 231.088 85.2790000000001C230.5310000000001 85.2790000000001 136.617 93.8940000000001 136.617 93.8940000000001L70.211 60.5470000000001C60.827 55.8540000000001 50.396 60.1680000000001 46.316 68.3280000000001L1.86 157.253C-2.307 165.868 0.749 176.15 8.806 180.874L66.878 213.943L108 288.139C114.39 345.384 142.731 397.906 187.743 434.865C199.134 444.313 216.084 442.646 225.253 431.252C234.699 419.858 233.033 403.185 221.641 393.736C209.138 383.177 198.023 371.227 189.132 358.166C210.804 372.895 235.811 382.898 263.318 386.233C278.043 388.178 291.381 377.897 293.048 363.168C294.993 348.44 284.712 335.101 269.986 333.434C253.87 331.4890000000001 238.866 325.931 225.808 318.15C251.922 323.863 284.52 321.288 313.887 307.035C327.223 300.366 332.78 284.526 326.111 271.187C319.722 258.127 303.607 252.57 290.547 258.961zM263.3180000000001 189.489C257.206 201.994 244.9800000000001 209.775 231.0870000000001 209.775A35.46 35.46 0 0 1 195.5220000000001 174.2050000000001C195.5220000000001 152.7770000000001 213.3300000000001 138.6350000000001 231.0870000000001 138.6350000000001C244.9800000000001 138.6350000000001 257.206 146.4160000000001 263.3180000000001 158.9210000000001C267.7640000000001 168.3700000000001 276.932 173.927 286.6570000000001 174.2050000000001C276.932 174.482 267.764 180.04 263.3180000000001 189.489zM638.1390000000001 226.7260000000001C642.3070000000001 218.111 639.2500000000001 207.829 631.1930000000001 203.105L573.1220000000001 170.036L532 95.84C525.61 38.595 497.269 -13.927 452.257 -50.886C441.325 -59.998 424.4580000000001 -59.03 414.747 -47.273C405.301 -35.879 406.9670000000001 -19.206 418.36 -9.757C430.863 0.802 441.9770000000001 12.752 450.868 25.813C429.196 11.084 404.189 1.081 376.682 -2.254C366.661 -4.76 349.13 3.389 346.952 20.811C345.007 35.539 355.288 48.878 370.014 50.545C386.13 52.491 401.134 58.048 414.192 65.829C388.0780000000001 60.1159999999999 355.48 62.691 326.113 76.944C312.777 83.6129999999999 307.2200000000001 99.453 313.889 112.792C320.278 125.853 336.394 131.411 349.454 125.019C369.749 114.87 393.601 113.8199999999999 414.193 121.129C371.587 121.129 342.985 141.604 328.615 171.705C320.039 189.604 333.7630000000001 209.776 352.2320000000001 209.776C333.8030000000001 209.776 320.021 229.912 328.615 247.847C342.648 277.243 372.654 298.734 410.581 298.701L503.384 290.086L569.79 323.433C579.198 328.137 589.6179999999999 323.787 593.684 315.652L638.139 226.726zM408.9120000000002 245.344C395.0190000000001 245.344 382.7930000000001 237.563 376.6810000000002 225.058C372.2350000000002 215.609 363.0670000000002 210.052 353.3420000000002 209.774C363.0670000000002 209.4960000000001 372.2350000000002 203.938 376.6810000000002 194.4900000000001C382.7930000000002 181.985 395.0190000000002 174.2040000000001 408.9120000000002 174.2040000000001A35.46 35.46 0 0 1 444.4770000000002 209.7740000000001C444.4770000000002 231.2030000000001 426.6690000000002 245.3440000000001 408.9120000000002 245.3440000000001z" />
-			<glyph glyph-name="anchor" unicode="" horiz-adv-x="576" d=" M12.971 96H45.365C67.172 -6.735 181.944 -64 288 -64C394.229 -64 508.853 -6.62 530.635 96H563.029C573.72 96 579.074 108.926 571.514 116.485L504.485 183.514C499.799 188.2 492.201 188.2 487.514 183.514L420.485 116.485C412.925 108.925 418.279 96 428.9700000000001 96H464.116C443.826 41.683 379.153 9.412 319.999 1.985V192H371.999C378.6260000000001 192 383.999 197.373 383.999 204V244C383.999 250.627 378.6260000000001 256 371.999 256H319.999V261.4700000000001C357.2800000000001 274.648 383.9940000000001 310.195 383.999 351.988C384.005 404.228 341.605 447.262 289.37 447.99C235.723 448.739 192 405.475 192 352C192 310.202 218.716 274.65 256 261.4700000000001V256H204C197.373 256 192 250.627 192 244V204C192 197.373 197.373 192 204 192H256V1.985C197.064 9.384 132.18 41.664 111.883 96H147.029C157.72 96 163.074 108.926 155.514 116.485L88.485 183.514C83.799 188.2 76.201 188.2 71.514 183.514L4.485 116.485C-3.074 108.926 2.28 96 12.971 96zM288 384C305.645 384 320 369.645 320 352S305.645 320 288 320S256 334.355 256 352S270.355 384 288 384z" />
-			<glyph glyph-name="angle-double-down" unicode="" horiz-adv-x="320" d=" M143 191.7L7 327.7C-2.4 337.1 -2.4 352.3 7 361.6L29.6 384.2C39 393.6 54.2 393.6 63.5 384.2L159.9 287.8L256.3 384.2C265.7 393.6 280.9000000000001 393.6 290.2 384.2L313 361.7C322.4 352.3 322.4 337.1 313 327.8L177 191.8C167.6 182.3 152.4 182.3 143 191.7zM177 -0.3L313 135.7C322.4 145.1 322.4 160.3 313 169.6L290.4 192.2C281 201.6 265.8 201.6 256.5 192.2L160 95.9L63.6 192.3C54.2 201.7 39 201.7 29.7 192.3L7 169.7C-2.4 160.3 -2.4 145.1 7 135.8L143 -0.2C152.4 -9.7 167.6 -9.7 177 -0.3z" />
-			<glyph glyph-name="angle-double-left" unicode="ï„€" horiz-adv-x="448" d=" M223.7 209L359.7 345C369.1 354.4 384.3 354.4 393.6 345L416.2 322.4C425.6 313 425.6 297.8 416.2 288.5L319.9 192L416.3 95.6C425.7 86.2000000000001 425.7 71 416.3 61.7000000000001L393.7 39C384.3 29.6 369.1 29.6 359.8 39L223.8 175C214.3 184.4 214.3 199.6 223.7 209zM31.7 175L167.7 39C177.1 29.6 192.3 29.6 201.6 39L224.2 61.6C233.6 71 233.6 86.2000000000001 224.2 95.5L127.9 192L224.3 288.4C233.7 297.8 233.7 313 224.3 322.3L201.7 345C192.3 354.4 177.1 354.4 167.8 345L31.8 209C22.3 199.6 22.3 184.4 31.7 175z" />
-			<glyph glyph-name="angle-double-right" unicode="" horiz-adv-x="448" d=" M224.3 175L88.3 39C78.9 29.6 63.7 29.6 54.4 39L31.8 61.6C22.4 71 22.4 86.2000000000001 31.8 95.5L128.2 191.9L31.8 288.3C22.4 297.7 22.4 312.9 31.8 322.2L54.3 345C63.7 354.4 78.9 354.4 88.2 345L224.2 209C233.7 199.6 233.7 184.4 224.3 175zM416.3 209L280.3 345C270.9000000000001 354.4 255.7 354.4 246.4 345L223.8 322.4C214.4 313 214.4 297.8 223.8 288.5L320.2000000000001 192.1L223.8000000000001 95.7C214.4 86.3 214.4 71.1 223.8000000000001 61.8L246.4000000000001 39.2C255.8000000000001 29.8 271.0000000000001 29.8 280.3 39.2L416.3 175.2C425.7 184.4 425.7 199.6 416.3 209z" />
-			<glyph glyph-name="angle-double-up" unicode="ï„‚" horiz-adv-x="320" d=" M177 192.3L313 56.3C322.4 46.9 322.4 31.7 313 22.4L290.4 -0.2C281 -9.6 265.8 -9.6 256.5 -0.2L160 96.1L63.6 -0.3C54.2 -9.6999999999999 39 -9.6999999999999 29.7 -0.3L7 22.3C-2.4 31.7 -2.4 46.9 7 56.2L143 192.2C152.4 201.7 167.6 201.7 177 192.3zM143 384.3L7 248.3C-2.4 238.9 -2.4 223.7 7 214.4L29.6 191.8C39 182.4 54.2 182.4 63.5 191.8L159.9 288.2000000000001L256.3 191.8C265.7 182.4 280.9000000000001 182.4 290.2 191.8L312.8 214.4C322.2 223.8 322.2 239 312.8 248.3L176.8 384.3C167.6 393.7 152.4 393.7 143 384.3z" />
-			<glyph glyph-name="angle-down" unicode="" horiz-adv-x="320" d=" M143 95.7L7 231.7C-2.4 241.1 -2.4 256.3 7 265.6L29.6 288.2C39 297.6 54.2 297.6 63.5 288.2L159.9 191.8L256.3 288.2C265.7 297.6 280.9000000000001 297.6 290.2 288.2L312.8 265.6C322.2 256.2 322.2 241 312.8 231.7L176.8 95.6999999999999C167.6 86.3 152.4 86.3 143 95.6999999999999z" />
-			<glyph glyph-name="angle-left" unicode="ï„„" horiz-adv-x="256" d=" M31.7 209L167.7 345C177.1 354.4 192.3 354.4 201.6 345L224.2 322.4C233.6 313 233.6 297.8 224.2 288.5L127.9 192L224.3 95.6C233.7 86.2000000000001 233.7 71 224.3 61.7000000000001L201.7 39C192.3 29.6 177.1 29.6 167.8 39L31.8 175C22.3 184.4 22.3 199.6 31.7 209z" />
-			<glyph glyph-name="angle-right" unicode="ï„…" horiz-adv-x="256" d=" M224.3 175L88.3 39C78.9 29.6 63.7 29.6 54.4 39L31.8 61.6C22.4 71 22.4 86.2000000000001 31.8 95.5L128.2 191.9L31.8 288.3C22.4 297.7 22.4 312.9 31.8 322.2L54.3 345C63.7 354.4 78.9 354.4 88.2 345L224.2 209C233.7 199.6 233.7 184.4 224.3 175z" />
-			<glyph glyph-name="angle-up" unicode="" horiz-adv-x="320" d=" M177 288.3L313 152.3C322.4 142.9 322.4 127.7 313 118.4L290.4 95.8C281 86.4 265.8 86.4 256.5 95.8L160 192.1L63.6 95.7C54.2 86.3 39 86.3 29.7 95.7L7 118.3C-2.4 127.7 -2.4 142.9 7 152.2L143 288.2C152.4 297.7 167.6 297.7 177 288.3z" />
-			<glyph glyph-name="archive" unicode="" horiz-adv-x="512" d=" M488 320H24C10.745 320 0 330.745 0 344V392C0 405.255 10.745 416 24 416H488C501.255 416 512 405.255 512 392V344C512 330.745 501.255 320 488 320zM480 -8V264C480 277.255 469.255 288 456 288H56C42.745 288 32 277.255 32 264V-8C32 -21.255 42.745 -32 56 -32H456C469.255 -32 480 -21.255 480 -8zM308 192H204C197.373 192 192 197.373 192 204V212C192 218.627 197.373 224 204 224H308C314.627 224 320 218.627 320 212V204C320 197.373 314.627 192 308 192z" />
-			<glyph glyph-name="arrow-alt-circle-down" unicode="" horiz-adv-x="512" d=" M504 192C504 55 393 -56 256 -56S8 55 8 192S119 440 256 440S504 329 504 192zM212 308V192H141.1C130.4 192 125 179 132.6 171.5L247.5 57.2C252.2 52.5 259.7 52.5 264.4 57.2L379.3 171.5C386.9 179.1 381.5 192 370.8 192H300V308C300 314.6 294.6 320 288 320H224C217.4 320 212 314.6 212 308z" />
-			<glyph glyph-name="arrow-alt-circle-left" unicode="" horiz-adv-x="512" d=" M256 -56C119 -56 8 55 8 192S119 440 256 440S504 329 504 192S393 -56 256 -56zM372 236H256V306.9C256 317.6 243 323 235.5 315.4L121.2 200.5C116.5 195.8 116.5 188.3 121.2 183.6L235.5 68.7000000000001C243.1 61.1 256 66.5000000000001 256 77.2000000000001V148H372C378.6 148 384 153.4 384 160V224C384 230.6 378.6 236 372 236z" />
-			<glyph glyph-name="arrow-alt-circle-right" unicode="" horiz-adv-x="512" d=" M256 440C393 440 504 329 504 192S393 -56 256 -56S8 55 8 192S119 440 256 440zM140 148H256V77.1C256 66.4 269 61 276.5 68.6L390.8 183.5C395.5 188.2 395.5 195.7 390.8 200.4L276.5 315.4C268.9 323 256 317.6 256 306.9V236H140C133.4 236 128 230.6 128 224V160C128 153.4 133.4 148 140 148z" />
-			<glyph glyph-name="arrow-alt-circle-up" unicode="" horiz-adv-x="512" d=" M8 192C8 329 119 440 256 440S504 329 504 192S393 -56 256 -56S8 55 8 192zM300 76V192H370.9C381.6 192 387 205 379.4 212.5L264.5 326.8C259.8 331.5 252.3 331.5 247.6 326.8L132.6 212.5C125 204.9 130.4 192 141.1 192H212V76C212 69.4 217.4 64 224 64H288C294.6 64 300 69.4 300 76z" />
-			<glyph glyph-name="arrow-circle-down" unicode="ï‚«" horiz-adv-x="512" d=" M504 192C504 55 393 -56 256 -56S8 55 8 192S119 440 256 440S504 329 504 192zM360.4 220.9L288 145.4V328C288 341.3 277.3 352 264 352H248C234.7 352 224 341.3 224 328V145.4L151.6 220.9C142.3 230.6 126.8 230.8 117.3 221.3L106.4 210.3C97 200.9 97 185.7 106.4 176.4L239 43.7C248.4 34.3 263.6 34.3 272.9 43.7L405.6 176.4C415 185.8 415 201 405.6 210.3L394.7 221.3C385.2 230.8 369.7 230.6 360.4 220.9z" />
-			<glyph glyph-name="arrow-circle-left" unicode="" horiz-adv-x="512" d=" M256 -56C119 -56 8 55 8 192S119 440 256 440S504 329 504 192S393 -56 256 -56zM284.9 87.6L209.4 160H392C405.3 160 416 170.7 416 184V200C416 213.3 405.3 224 392 224H209.4L284.9 296.4C294.6 305.7000000000001 294.8 321.2 285.3 330.7L274.3 341.6C264.9 351 249.7 351 240.4 341.6L107.7 209C98.3 199.6 98.3 184.4 107.7 175.1L240.4 42.4C249.8 33.0000000000001 265 33.0000000000001 274.3 42.4L285.3 53.3C294.8 62.8 294.6 78.3 284.9 87.6z" />
-			<glyph glyph-name="arrow-circle-right" unicode="ï‚©" horiz-adv-x="512" d=" M256 440C393 440 504 329 504 192S393 -56 256 -56S8 55 8 192S119 440 256 440zM227.1 296.4L302.6 224H120C106.7 224 96 213.3 96 200V184C96 170.7 106.7 160 120 160H302.6L227.1 87.6C217.4 78.3 217.2 62.8 226.7 53.3L237.7 42.4C247.1 33.0000000000001 262.3 33.0000000000001 271.6 42.4L404.3 175C413.7 184.4 413.7 199.6 404.3 208.9L271.6 341.7C262.2000000000001 351.1 247.0000000000001 351.1 237.7 341.7L226.7 330.8C217.2 321.2 217.4 305.7 227.1 296.4z" />
-			<glyph glyph-name="arrow-circle-up" unicode="" horiz-adv-x="512" d=" M8 192C8 329 119 440 256 440S504 329 504 192S393 -56 256 -56S8 55 8 192zM151.6 163.1L224 238.6V56C224 42.7 234.7 32 248 32H264C277.3 32 288 42.7 288 56V238.6L360.4 163.1C369.7 153.4 385.2 153.2000000000001 394.7 162.7000000000001L405.6 173.7000000000001C415 183.1 415 198.3000000000001 405.6 207.6000000000001L273 340.3C263.6 349.7 248.4 349.7 239.1 340.3L106.3 207.6C96.9 198.2 96.9 183 106.3 173.7L117.2 162.7C126.8 153.2 142.3 153.4 151.6 163.1z" />
-			<glyph glyph-name="arrow-down" unicode="" horiz-adv-x="448" d=" M413.1 225.5L435.3 203.3C444.7 193.9 444.7 178.7 435.3 169.4L241 -25C231.6 -34.4 216.4 -34.4 207.1 -25L12.7 169.4C3.3 178.8 3.3 194 12.7 203.3L34.9 225.5C44.4 235 59.9 234.8 69.2 225.1L184 104.6V392C184 405.3 194.7 416 208 416H240C253.3 416 264 405.3 264 392V104.6L378.8 225.1C388.1 234.9000000000001 403.6 235.1 413.1 225.5000000000001z" />
-			<glyph glyph-name="arrow-left" unicode="" horiz-adv-x="448" d=" M257.5 2.9L235.3 -19.3C225.9 -28.7 210.7 -28.7 201.4 -19.3L7 175C-2.4 184.4 -2.4 199.6 7 208.9L201.4 403.3C210.8 412.7 226 412.7 235.3 403.3L257.5 381.1C267 371.6 266.8 356.1 257.1 346.8L136.6 232H424C437.3 232 448 221.3 448 208V176C448 162.7 437.3 152 424 152H136.6L257.1 37.2C266.9000000000001 27.9 267.1 12.4 257.5 2.9z" />
-			<glyph glyph-name="arrow-right" unicode="" horiz-adv-x="448" d=" M190.5 381.1L212.7 403.3C222.1 412.7 237.3 412.7 246.6 403.3L441 209C450.4 199.6 450.4 184.4 441 175.1L246.6 -19.3C237.2 -28.7 222 -28.7 212.7 -19.3L190.5 2.9C181 12.4 181.2 27.9 190.9 37.2L311.4 152H24C10.7 152 0 162.7 0 176V208C0 221.3 10.7 232 24 232H311.4L190.9 346.8C181.1 356.1 180.9 371.6 190.5 381.1z" />
-			<glyph glyph-name="arrow-up" unicode="" horiz-adv-x="448" d=" M34.9 158.5L12.7 180.7C3.3 190.1 3.3 205.3 12.7 214.6L207 409C216.4 418.4 231.6 418.4 240.9 409L435.2000000000001 214.7C444.6 205.3 444.6 190.1 435.2000000000001 180.8L413 158.6C403.5 149.1 388 149.3 378.7 159L264 279.4V-8C264 -21.3 253.3 -32 240 -32H208C194.7 -32 184 -21.3 184 -8V279.4L69.2 158.9C59.9 149.1 44.4 148.9 34.9 158.5z" />
-			<glyph glyph-name="arrows-alt-h" unicode="" horiz-adv-x="512" d=" M377.941 278.059V232H134.059V278.059C134.059 299.4410000000001 108.208 310.149 93.088 295.03L7.029 208.971C-2.344 199.598 -2.344 184.403 7.029 175.03L93.088 88.971C108.207 73.852 134.059 84.56 134.059 105.942V152H377.9410000000001V105.941C377.9410000000001 84.559 403.7920000000001 73.851 418.9120000000001 88.97L504.971 175.029C514.344 184.402 514.344 199.597 504.971 208.97L418.9120000000001 295.029C403.793 310.149 377.9410000000001 299.4410000000001 377.9410000000001 278.059z" />
-			<glyph glyph-name="arrows-alt-v" unicode="" horiz-adv-x="256" d=" M214.059 70.059H168V313.9410000000001H214.059C235.441 313.9410000000001 246.149 339.7920000000001 231.03 354.9120000000001L144.971 440.971C135.598 450.344 120.403 450.344 111.03 440.971L24.971 354.9120000000001C9.852 339.793 20.56 313.9410000000001 41.942 313.9410000000001H88V70.059H41.941C20.559 70.059 9.851 44.208 24.97 29.088L111.029 -56.971C120.402 -66.344 135.597 -66.344 144.97 -56.971L231.029 29.088C246.149 44.207 235.441 70.059 214.059 70.059z" />
-			<glyph glyph-name="arrows-alt" unicode="" horiz-adv-x="512" d=" M352.201 22.225L273.005 -56.971C263.632 -66.344 248.437 -66.344 239.064 -56.971L159.868 22.225C144.749 37.3440000000001 155.457 63.196 176.839 63.1950000000001H228.001L228 164H127.196V112.838C127.196 91.456 101.345 80.7480000000001 86.225 95.867L7.029 175.063C-2.344 184.436 -2.344 199.632 7.029 209.004L86.225 288.2C101.344 303.319 127.196 292.611 127.196 271.229V220H228V320.804H176.77C155.388 320.804 144.68 346.655 159.799 361.775L238.995 440.971C248.368 450.344 263.563 450.344 272.9360000000001 440.971L352.1320000000001 361.775C367.2510000000001 346.656 356.5430000000001 320.804 335.1610000000001 320.804H283.9990000000001V220H384.8030000000001V271.1620000000001C384.8030000000001 292.544 410.6540000000001 303.252 425.7730000000002 288.1330000000001L504.9690000000002 208.937C514.3420000000002 199.564 514.3420000000002 184.368 504.9690000000002 174.996L425.773 95.8C410.654 80.681 384.802 91.389 384.803 112.771V164H284V63.196H335.23C356.612 63.196 367.3200000000001 37.345 352.201 22.225z" />
-			<glyph glyph-name="assistive-listening-systems" unicode="" horiz-adv-x="512" d=" M216 188C216 172.536 203.464 160 188 160S160 172.536 160 188C160 232.112 195.888 268 240 268S320 232.112 320 188C320 172.536 307.464 160 292 160S264 172.536 264 188C264 201.234 253.233 212 240 212S216 201.234 216 188zM240 364C142.953 364 64 285.0470000000001 64 188C64 172.536 76.536 160 92 160S120 172.536 120 188C120 254.168 173.832 308 240 308S360 254.168 360 188C360 112.836 288.991 117.689 288.003 44.378L288 44C288 15.327 264.673 -8 236 -8C220.536 -8 208 -20.536 208 -36S220.536 -64 236 -64C295.475 -64 343.876 -15.672 344 43.774C344.5950000000001 78.202 416 92.014 416 188C416 285.0470000000001 337.0470000000001 364 240 364zM160 128C142.327 128 128 113.673 128 96S142.327 64 160 64S192 78.327 192 96S177.673 128 160 128zM32 0C14.327 0 0 -14.327 0 -32S14.327 -64 32 -64S64 -49.673 64 -32S49.673 0 32 0zM512 187.993C512 189.511 511.988 191.018 511.955 192.524C510.076 307.475 436.157 409.53 327.9940000000001 446.489C313.3610000000001 451.487 297.4450000000001 443.68 292.444 429.0470000000001C287.444 414.414 295.254 398.498 309.886 393.497C395.7920000000001 364.1430000000001 454.496 282.984 455.963 191.544L455.966 191.356C455.992 190.238 455.999 189.12 455.999 187.993C455.999 172.529 468.535 159.993 483.999 159.993S512 172.529 512 187.993zM152.971 8.971L72.971 88.971L39.03 55.03L119.03 -24.97L152.971 8.971z" />
-			<glyph glyph-name="asterisk" unicode="" horiz-adv-x="512" d=" M478.21 113.907L336 192L478.21 270.093C490.0050000000001 276.5700000000001 494.171 291.4770000000001 487.442 303.13L467.962 336.8710000000001C461.234 348.524 446.242 352.37 434.735 345.394L296 261.2820000000001L299.475 423.486C299.763 436.939 288.937 448 275.48 448H236.52C223.064 448 212.237 436.939 212.526 423.486L216 261.2820000000001L77.265 345.3930000000001C65.759 352.3690000000001 50.766 348.523 44.038 336.87L24.558 303.129C17.83 291.476 21.996 276.569 33.791 270.092L176 192L33.79 113.907C21.995 107.43 17.829 92.523 24.558 80.87L44.038 47.129C50.766 35.476 65.759 31.63 77.265 38.606L216 122.718L212.525 -39.486C212.237 -52.939 223.064 -64 236.52 -64H275.481C288.937 -64 299.764 -52.939 299.476 -39.486L296 122.718L434.735 38.607C446.241 31.631 461.234 35.477 467.962 47.1300000000001L487.442 80.871C494.17 92.5240000000001 490.005 107.4300000000001 478.21 113.9070000000001z" />
-			<glyph glyph-name="at" unicode="" horiz-adv-x="512" d=" M256 440C118.941 440 8 329.081 8 192C8 54.941 118.919 -56 256 -56C304.154 -56 351.342 -41.86 391.408 -15.777C403.413 -7.962 406.033 8.511 396.9600000000001 19.595L386.783 32.028C379.112 41.399 365.6040000000001 43.695 355.4100000000001 37.157C325.92 18.243 291.314 8 256 8C154.542 8 72 90.542 72 192S154.542 376 256 376C356.139 376 440 318.381 440 216C440 177.214 418.907 136.258 381.83 132.307C364.481 132.761 364.92 145.164 368.354 162.331L391.787 283.4410000000001C394.653 298.25 383.308 312 368.225 312H323.2440000000001A13.518 13.518 0 0 1 309.812 300.007L309.802 299.915C295.105 317.8160000000001 269.3540000000001 321.69 249.831 321.69C175.251 321.69 112 259.456 112 170.23C112 104.927 148.785 64.36 208 64.36C234.9840000000001 64.36 265.3690000000001 79.997 282.9910000000001 102.693C292.5130000000001 68.589 323.6040000000001 68.59 353.701 68.59C462.609 68.59 504 140.202 504 216C504 352.347 394.023 440 256 440zM234.32 135.57C212.071 135.57 198.25 151.193 198.25 176.341C198.25 221.334 229.029 249.07 256.88 249.07C279.1720000000001 249.07 292.481 233.829 292.481 208.3C292.481 163.239 258.606 135.57 234.32 135.57z" />
-			<glyph glyph-name="audio-description" unicode="" horiz-adv-x="512" d=" M162.925 209.291L171.747 178.636H146.141L155.182 209.288C156.459 213.709 157.833 219.282 159.054 224.533C160.274 219.282 161.648 213.71 162.9250000000001 209.291zM329.399 241.39H314.876V142.609H329.399C359.175 142.609 375.574 160.287 375.574 192.385C375.574 224.624 358.084 241.39 329.399 241.39zM512 336V48C512 21.49 490.51 0 464 0H48C21.49 0 0 21.49 0 48V336C0 362.51 21.49 384 48 384H464C490.51 384 512 362.51 512 336zM245.459 111.861L188.362 279.861A12.001000000000001 12.001000000000001 0 0 1 177 288H141.106A12.001000000000001 12.001000000000001 0 0 1 129.744 279.861L72.647 111.861C70.003 104.078 75.789 96 84.009 96H113.142A12 12 0 0 1 124.677 104.693L133.251 134.599H184.618L193.411 104.622A12 12 0 0 1 204.926 96H234.098C242.318 96 248.104 104.078 245.459 111.861zM430.16 192.386C430.16 251.363 392.241 288 331.2 288H273.834C267.207 288 261.834 282.627 261.834 276V108C261.834 101.373 267.207 96 273.834 96H331.2C392.241 96 430.16 132.933 430.16 192.386z" />
-			<glyph glyph-name="backward" unicode="" horiz-adv-x="512" d=" M11.5 167.4L203.5 7.4C224.1 -9.8 256 4.6 256 32V352C256 379.4 224.1 393.8 203.5 376.6L11.5 216.6C-3.8 203.8 -3.8 180.2 11.5 167.4zM267.5 167.4L459.5 7.4C480.1 -9.8 512 4.6 512 32V352C512 379.4 480.1 393.8 459.5 376.6L267.5 216.6C252.2 203.8 252.2 180.2 267.5 167.4z" />
-			<glyph glyph-name="balance-scale" unicode="" horiz-adv-x="640" d=" M352 0H520C533.255 0 544 -10.745 544 -24V-40C544 -53.255 533.255 -64 520 -64H120C106.745 -64 96 -53.255 96 -40V-24C96 -10.745 106.745 0 120 0H288V294.676C264.469 304.9600000000001 246.836 326.222 241.603 352H120C106.745 352 96 362.745 96 376V392C96 405.255 106.745 416 120 416H255.999C270.594 435.43 293.828 448 320 448S369.406 435.43 384.001 416H520C533.255 416 544 405.255 544 392V376C544 362.745 533.255 352 520 352H398.397C393.164 326.222 375.531 304.9600000000001 352 294.676V0zM639.981 112C639.982 128.182 641.323 120.726 554.933 293.506C537.286 328.8 486.747 328.8640000000001 469.068 293.506C381.94 119.25 384.019 127.669 384.019 112H384C384 67.817 441.308 32 512 32S640 67.817 640 112H639.981zM512 272L584 128H440L512 272zM255.981 112C255.982 128.182 257.323 120.726 170.933 293.506C153.286 328.8 102.747 328.8640000000001 85.068 293.506C-2.06 119.25 0.019 127.669 0.019 112H0C0 67.817 57.308 32 128 32S256 67.817 256 112H255.981zM128 272L200 128H56L128 272z" />
-			<glyph glyph-name="ban" unicode="" horiz-adv-x="512" d=" M256 440C119.034 440 8 328.967 8 192S119.034 -56 256 -56S504 55.034 504 192S392.967 440 256 440zM386.108 322.108C451.556 256.6600000000001 456.108 156.627 406.7850000000001 86.471L150.47 342.784C220.674 392.14 320.6960000000001 387.519 386.108 322.108zM125.892 61.892C60.444 127.34 55.892 227.373 105.215 297.529L361.53 41.216C291.327 -8.14 191.304 -3.52 125.892 61.892z" />
-			<glyph glyph-name="barcode" unicode="" horiz-adv-x="512" d=" M0 0V384H18V0H0zM26.857 0.273V384H36V0.273H26.857zM54 0.273V384H62.857V0.273H54zM98.857 0.273V384H107.714V0.273H98.857zM134.857 0.273V384H152.571V0.273H134.857zM179.714 0.273V384H188.571V0.273H179.714zM197.714 0.273V384H206.571V0.273H197.714zM215.714 0.273V384H224.571V0.273H215.714zM251.429 0.273V384H269.429V0.273H251.429zM296.286 0.273V384H314.286V0.273H296.286zM332.2850000000001 0.273V384H350.286V0.273H332.2850000000001zM368.286 0.273V384H386.287V0.273H368.286zM395.1430000000001 0.273V384H413.1430000000001V0.273H395.1430000000001zM440.2860000000001 0.273V384H467.143V0.273H440.2860000000001zM476.0000000000001 0.273V384H485.143V0.273H476zM494.0000000000001 0V384H512V0H494z" />
-			<glyph glyph-name="bars" unicode="" horiz-adv-x="448" d=" M16 316H432C440.837 316 448 323.163 448 332V372C448 380.837 440.837 388 432 388H16C7.163 388 0 380.837 0 372V332C0 323.163 7.163 316 16 316zM16 156H432C440.837 156 448 163.163 448 172V212C448 220.837 440.837 228 432 228H16C7.163 228 0 220.837 0 212V172C0 163.163 7.163 156 16 156zM16 -4H432C440.837 -4 448 3.163 448 12V52C448 60.837 440.837 68 432 68H16C7.163 68 0 60.837 0 52V12C0 3.163 7.163 -4 16 -4z" />
-			<glyph glyph-name="bath" unicode="" horiz-adv-x="512" d=" M488 192H80V336C80 353.645 94.355 368 112 368C123.351 368 133.332 362.055 139.015 353.12C122.523 327.913 124.328 293.544 145.853 270.0850000000001C141.677 265.372 141.832 258.169 146.344 253.657L157.658 242.343C162.344 237.657 169.942 237.657 174.629 242.343L269.659 337.372C274.345 342.058 274.345 349.656 269.659 354.343L258.345 365.6570000000001C253.833 370.169 246.63 370.323 241.917 366.148C223.968 382.617 199.623 387.577 177.739 381.5130000000001C163.281 402.333 139.212 416 112 416C67.888 416 32 380.112 32 336V192H24C10.745 192 0 181.255 0 168V152C0 138.745 10.745 128 24 128H32V96C32 67.57 44.362 42.031 64 24.453V-8C64 -21.255 74.745 -32 88 -32H104C117.255 -32 128 -21.255 128 -8V0H384V-8C384 -21.255 394.745 -32 408 -32H424C437.255 -32 448 -21.255 448 -8V24.453C467.638 42.031 480 67.57 480 96V128H488C501.255 128 512 138.745 512 152V168C512 181.255 501.255 192 488 192z" />
-			<glyph glyph-name="battery-empty" unicode="" horiz-adv-x="640" d=" M544 288V224H576V160H544V96H64V288H544M560 352H48C21.49 352 0 330.51 0 304V80C0 53.49 21.49 32 48 32H560C586.51 32 608 53.49 608 80V96H616C629.255 96 640 106.745 640 120V264C640 277.255 629.255 288 616 288H608V304C608 330.51 586.51 352 560 352z" />
-			<glyph glyph-name="battery-full" unicode="" horiz-adv-x="640" d=" M544 288V224H576V160H544V96H64V288H544M560 352H48C21.49 352 0 330.51 0 304V80C0 53.49 21.49 32 48 32H560C586.51 32 608 53.49 608 80V96H616C629.255 96 640 106.745 640 120V264C640 277.255 629.255 288 616 288H608V304C608 330.51 586.51 352 560 352zM512 256H96V128H512V256z" />
-			<glyph glyph-name="battery-half" unicode="" horiz-adv-x="640" d=" M544 288V224H576V160H544V96H64V288H544M560 352H48C21.49 352 0 330.51 0 304V80C0 53.49 21.49 32 48 32H560C586.51 32 608 53.49 608 80V96H616C629.255 96 640 106.745 640 120V264C640 277.255 629.255 288 616 288H608V304C608 330.51 586.51 352 560 352zM320 256H96V128H320V256z" />
-			<glyph glyph-name="battery-quarter" unicode="" horiz-adv-x="640" d=" M544 288V224H576V160H544V96H64V288H544M560 352H48C21.49 352 0 330.51 0 304V80C0 53.49 21.49 32 48 32H560C586.51 32 608 53.49 608 80V96H616C629.255 96 640 106.745 640 120V264C640 277.255 629.255 288 616 288H608V304C608 330.51 586.51 352 560 352zM224 256H96V128H224V256z" />
-			<glyph glyph-name="battery-three-quarters" unicode="" horiz-adv-x="640" d=" M544 288V224H576V160H544V96H64V288H544M560 352H48C21.49 352 0 330.51 0 304V80C0 53.49 21.49 32 48 32H560C586.51 32 608 53.49 608 80V96H616C629.255 96 640 106.745 640 120V264C640 277.255 629.255 288 616 288H608V304C608 330.51 586.51 352 560 352zM416 256H96V128H416V256z" />
-			<glyph glyph-name="bed" unicode="" horiz-adv-x="576" d=" M552 160C565.255 160 576 149.255 576 136V0H480V64H96V0H0V360C0 373.255 10.745 384 24 384H72C85.255 384 96 373.255 96 360V160H552zM192 352C147.817 352 112 316.183 112 272S147.817 192 192 192S272 227.817 272 272S236.183 352 192 352zM576 224C576 277.019 533.019 320 480 320H312C298.745 320 288 309.255 288 296V192H576V224z" />
-			<glyph glyph-name="beer" unicode="" horiz-adv-x="448" d=" M368 352H320V392C320 405.255 309.255 416 296 416H24C10.745 416 0 405.255 0 392V-8C0 -21.255 10.745 -32 24 -32H296C309.255 -32 320 -21.255 320 -8V34.11L400.606 70.087C429.396 82.937 448 111.612 448 143.14V272C448 316.112 412.112 352 368 352zM384 143.14A16.018 16.018 0 0 0 374.521 128.529L320 104.195V288H368C376.822 288 384 280.822 384 272V143.14zM208 64C199.164 64 192 71.164 192 80V304C192 312.836 199.164 320 208 320S224 312.836 224 304V80C224 71.164 216.836 64 208 64zM112 64C103.164 64 96 71.164 96 80V304C96 312.836 103.164 320 112 320S128 312.836 128 304V80C128 71.164 120.836 64 112 64z" />
-			<glyph glyph-name="bell-slash" unicode="" horiz-adv-x="576" d=" M78.107 81.941C47.958 51.792 69.325 0 112.048 0H224C224 -35.346 252.654 -64 288 -64C323.346 -64 352 -35.346 352 0H384.685L127.848 226.621C125.65 129.543 99.409 103.243 78.107 81.941zM264 0C264 -13.234 274.766 -24 288 -24A8 8 0 0 0 288 -40C265.944 -40 248 -22.056 248 0H264zM569.896 -43.733L559.134 -55.819C550.219 -65.831 534.801 -66.7860000000001 524.697 -57.952L8.256 393.607C-1.848 402.442 -2.811 417.7200000000001 6.104 427.733L16.865 439.819C25.781 449.831 41.199 450.786 51.303 441.951L165.113 342.439C189.13 371.217 223.059 391.435 261.663 397.829A31.85 31.85 0 0 0 256 416C256 433.673 270.327 448 288 448S320 433.673 320 416C320 409.25 317.905 402.992 314.337 397.83C390.169 385.269 448 319.394 448 240C448 131.882 475.634 104.191 497.884 81.941C510.033 69.792 513.807 54.165 511.214 39.8200000000001L567.744 -9.607C577.8480000000001 -18.4419999999999 578.811 -33.72 569.8960000000001 -43.7329999999999z" />
-			<glyph glyph-name="bell" unicode="" horiz-adv-x="448" d=" M433.884 81.941C411.634 104.191 384 131.882 384 240C384 319.394 326.169 385.269 250.337 397.8300000000001A31.845000000000002 31.845000000000002 0 0 1 256 416C256 433.673 241.673 448 224 448S192 433.673 192 416C192 409.25 194.095 402.992 197.663 397.83C121.831 385.269 64 319.394 64 240C64 131.882 36.357 104.191 14.107 81.941C-16.042 51.792 5.325 0 48.048 0H160C160 -35.346 188.654 -64 224 -64S288 -35.346 288 0H399.943C442.581 0 464.094 51.731 433.884 81.941zM224 -24A8 8 0 0 0 224 -40C201.944 -40 184 -22.056 184 0H200C200 -13.234 210.766 -24 224 -24z" />
-			<glyph glyph-name="bicycle" unicode="" horiz-adv-x="640" d=" M512.509 255.999C496.136 256.063 480.479 253.044 466.073 247.504L388.3930000000001 372.657A24 24 0 0 1 368.001 384H304.001C295.164 384 288.001 376.837 288.001 368V352C288.001 343.163 295.164 336 304.001 336H354.65L369.546 312H256.002V328C256.002 336.837 248.839 344 240.002 344H152.543C139.102 344 127.766 333.001 128.007 319.563C128.239 306.519 138.883 296 152.002 296H200.728L171.311 248.48C157.878 253.31 143.407 255.963 128.319 256C58.094 256.17 0.412 198.988 0.002 128.764C-0.413 57.721 57.055 0 128.002 0C187.644 0 237.76 40.793 251.969 96H304.002A24 24 0 0 1 324.408 107.367L410.37 246.23L425.308 222.163C399.853 198.715 383.923 165.082 384.001 127.726C384.146 58.893 441.9 0.675 510.73 0.007C581.336 -0.678 638.911 55.81 639.9849999999999 126.003C641.0709999999999 196.944 583.459 255.723 512.5089999999999 255.999zM186.75 182.228C196.477 171.699 203.423 158.567 206.392 144H163.086L186.75 182.228zM128.002 48C83.89 48 48.002 83.888 48.002 128S83.89 208 128.002 208C133.871 208 139.588 207.347 145.101 206.141L99.596 132.632C89.715 116.673 101.213 96 120.002 96H201.302C188.932 67.775 160.74 48 128.002 48zM290.632 144H255.008C251.048 175.756 235.452 203.894 212.625 224.026L237.371 264H364.918L290.632 144zM507.689 48.114C466.653 50.2790000000001 433.64 83.806 432.062 124.869C431.25 145.99 438.695 165.3870000000001 451.3969999999999 180.132L495.8299999999999 108.546C500.49 101.038 510.3539999999999 98.73 517.862 103.39L531.456 111.827C538.964 116.487 541.273 126.351 536.612 133.859L492.1439999999999 205.502A79.901 79.901 0 0 0 512.002 207.999C556.1139999999999 207.999 592.002 172.111 592.002 127.999C592.001 82.459 553.75 45.683 507.689 48.114z" />
-			<glyph glyph-name="binoculars" unicode="" horiz-adv-x="512" d=" M192 344H96V392C96 405.255 106.745 416 120 416H168C181.255 416 192 405.255 192 392V344zM416 392C416 405.255 405.255 416 392 416H344C330.745 416 320 405.255 320 392V344H416V392zM0 -8C0 -21.255 10.745 -32 24 -32H144C157.255 -32 168 -21.255 168 -8V8H0V-8zM88 320C74.745 320 64 309.255 64 296C64 192 0 176 0 32H168V136C168 149.255 178.745 160 192 160V320H88zM344 -8C344 -21.255 354.745 -32 368 -32H488C501.255 -32 512 -21.255 512 -8V8H344V-8zM216 320V160H296V320H216zM344 32H512C512 176 448 192 448 296C448 309.255 437.255 320 424 320H320V160C333.255 160 344 149.255 344 136V32z" />
-			<glyph glyph-name="birthday-cake" unicode="" horiz-adv-x="448" d=" M448 64C419.98 64 416.74 96 373.5 96C330.07 96 326.675 64 298.75 64C271.055 64 267.296 96 224 96C181.158 96 176.782 64 149.5 64C121.352 64 118.298 96 74.75 96C31.203 96 28.097 64 0 64V144C0 170.5 21.5 192 48 192H64V336H128V192H192V336H256V192H320V336H384V192H400C426.5 192 448 170.5 448 144V64zM448 -64H0V32C43.356 32 46.767 64 74.75 64C102.701 64 106.003 32 149.5 32C192.343 32 196.717 64 224 64C252.148 64 255.201 32 298.75 32C342.107 32 345.517 64 373.5 64C400.988 64 404.752 32 448 32V-64zM96 352C78.25 352 64 366.25 64 384C64 415 96 407 96 448C108 448 128 418.5 128 392S113.75 352 96 352zM224 352C206.25 352 192 366.25 192 384C192 415 224 407 224 448C236 448 256 418.5 256 392S241.75 352 224 352zM352 352C334.25 352 320 366.25 320 384C320 415 352 407 352 448C364 448 384 418.5 384 392S369.75 352 352 352z" />
-			<glyph glyph-name="blind" unicode="" horiz-adv-x="384" d=" M380.15 -62.837A8 8 0 0 0 369.161 -60.15L243.831 146.2770000000001A31.923 31.923 0 0 1 256.7890000000001 155.7620000000001L382.8370000000001 -51.8459999999999A8 8 0 0 0 380.1500000000001 -62.8369999999999zM142.803 133.662L110.263 44.177L146.383 -44.1080000000001C153.076 -60.4680000000001 171.76 -68.3000000000001 188.116 -61.609C204.473 -54.917 212.309 -36.2330000000001 205.617 -19.8750000000001L142.803 133.6619999999999zM96 360C120.301 360 140 379.699 140 404S120.301 448 96 448S52 428.301 52 404S71.699 360 96 360zM250.837 190.872L130.837 342.872C126.104 348.867 119.087 351.98 112 351.9840000000001V352H80V351.974C72.854 351.971 65.783 348.813 61.056 342.7340000000001L0 264.2340000000001V168.54C0 155.085 11.011 143.749 24.464 144.004C37.505 144.252 48 154.9 48 168V247.766L64 268.337V127.639L9.927 -21.055C3.887 -37.664 12.455 -56.024 29.065 -62.064C45.667 -68.1030000000001 64.033 -59.54 70.074 -42.926L136 138.362V245.559L104.594 285.375A4 4 0 1 0 110.863 290.346L213.163 161.129C222.308 149.545 237.531 149.79 246.871 157.1640000000001C257.281 165.3800000000001 259.0300000000001 180.4980000000001 250.837 190.8720000000001z" />
-			<glyph glyph-name="bold" unicode="" horiz-adv-x="384" d=" M304.793 204.109C338.432 222.646 358.45 258.269 358.45 299.802C358.45 348.038 332.2 387.428 289.824 403.981C265.138 413.99 240.849 416 209.661 416H24C15.163 416 8 408.837 8 400V366.951C8 358.114 15.163 350.951 24 350.951H57.113V32.4210000000001H24C15.163 32.4210000000001 8 25.258 8 16.4210000000001V-16C8 -24.837 15.163 -32 24 -32H219.69C243.893 -32 264.524 -30.711 286.556 -24.416C337.52 -9.193 376 37.353 376 97.986C376 150.154 349.427 189.67 304.793 204.109zM142.217 347.1910000000001H209.661C225.955 347.1910000000001 237.197 345.1720000000001 247.186 340.474C263.014 331.995 272.092 313.972 272.092 291.028C272.092 255.999 251.772 234.2380000000001 219.063 234.2380000000001H142.217V347.1910000000001zM254.859 41.716C244.719 37.66 232.182 36.809 223.45 36.809H142.217V166.057H226.584C266.229 166.057 289.641 140.677 289.641 103C289.642 74.575 275.981 50.517 254.8590000000001 41.716z" />
-			<glyph glyph-name="bolt" unicode="" horiz-adv-x="320" d=" M295.973 288H180.572L215.19 417.816C219.25 433.044 207.756 448 192 448H56C43.971 448 33.8 439.0950000000001 32.211 427.1720000000001L0.215 187.172C-1.704 172.783 9.504 160 24.004 160H142.705L96.646 -34.466C93.05 -49.649 104.659 -64 119.992 -64C128.342 -64 136.368 -59.626 140.77 -52.022L316.7430000000001 251.975C325.9870000000001 267.942 314.4550000000001 288 295.9730000000001 288z" />
-			<glyph glyph-name="bomb" unicode="" horiz-adv-x="512" d=" M440.5 359.5L388.5 307.5L415 281C424.4 271.6 424.4 256.4 415 247.1L397.6 229.7C409.4000000000001 203.6 416 174.6 416 144.1C416 29.2 322.9 -63.9 208 -63.9S0 29.1 0 144S93.1 352 208 352C238.5 352 267.5 345.4 293.6 333.6L311 351C320.4 360.4 335.6 360.4 344.9 351L371.4 324.5L423.4 376.5L440.5 359.5zM500 388H476C469.4 388 464 382.6 464 376S469.4 364 476 364H500C506.6 364 512 369.4 512 376S506.6 388 500 388zM440 448C433.4 448 428 442.6 428 436V412C428 405.4 433.4 400 440 400S452 405.4 452 412V436C452 442.6 446.6 448 440 448zM473.9 393L490.9 410C495.6 414.7 495.6 422.3 490.9 427C486.2 431.7 478.6 431.7 473.9 427L456.9 410C452.2 405.3 452.2 397.7 456.9 393C461.7 388.3 469.3 388.3 473.9 393zM406.1 393C410.8 388.3 418.4 388.3 423.1 393C427.8 397.7 427.8 405.3 423.1 410L406.1 427C401.4 431.7 393.8 431.7 389.1 427C384.4 422.3 384.4 414.7 389.1 410L406.1 393zM473.9 359C469.2 363.7 461.6 363.7 456.9 359C452.2 354.3 452.2 346.7 456.9 342L473.9 325C478.6 320.3 486.2 320.3 490.9 325C495.6 329.7 495.6 337.3 490.9 342L473.9 359zM112 176C112 211.3 140.7 240 176 240C184.8 240 192 247.2 192 256S184.8 272 176 272C123.1 272 80 228.9 80 176C80 167.2 87.2 160 96 160S112 167.2 112 176z" />
-			<glyph glyph-name="book" unicode="" horiz-adv-x="448" d=" M448 88V424C448 437.3 437.3 448 424 448H96C43 448 0 405 0 352V32C0 -21 43 -64 96 -64H424C437.3 -64 448 -53.3 448 -40V-24C448 -16.5 444.5 -9.7 439.1 -5.3C434.9000000000001 10.1 434.9000000000001 54 439.1 69.4C444.5 73.7 448 80.5 448 88zM128 314C128 317.3 130.7 320 134 320H346C349.3 320 352 317.3 352 314V294C352 290.7 349.3 288 346 288H134C130.7 288 128 290.7 128 294V314zM128 250C128 253.3 130.7 256 134 256H346C349.3 256 352 253.3 352 250V230C352 226.7 349.3 224 346 224H134C130.7 224 128 226.7 128 230V250zM381.4 0H96C78.3 0 64 14.3 64 32C64 49.6 78.4 64 96 64H381.4C379.5 46.9 379.5 17.1 381.4 0z" />
-			<glyph glyph-name="bookmark" unicode="" horiz-adv-x="384" d=" M0 -64V400C0 426.51 21.49 448 48 448H336C362.51 448 384 426.51 384 400V-64L192 48L0 -64z" />
-			<glyph glyph-name="braille" unicode="" horiz-adv-x="640" d=" M128 192C128 156.654 99.346 128 64 128S0 156.654 0 192S28.654 256 64 256S128 227.346 128 192zM64 64C46.327 64 32 49.673 32 32S46.327 0 64 0S96 14.327 96 32S81.673 64 64 64zM64 416C28.654 416 0 387.346 0 352S28.654 288 64 288S128 316.654 128 352S99.346 416 64 416zM224 224C206.327 224 192 209.673 192 192S206.327 160 224 160S256 174.327 256 192S241.673 224 224 224zM224 64C206.327 64 192 49.673 192 32S206.327 0 224 0S256 14.327 256 32S241.673 64 224 64zM224 416C188.654 416 160 387.346 160 352S188.654 288 224 288S288 316.654 288 352S259.346 416 224 416zM448 224C430.327 224 416 209.673 416 192S430.327 160 448 160S480 174.327 480 192S465.673 224 448 224zM448 64C430.327 64 416 49.673 416 32S430.327 0 448 0S480 14.327 480 32S465.673 64 448 64zM448 416C412.654 416 384 387.346 384 352S412.654 288 448 288S512 316.654 512 352S483.346 416 448 416zM608 224C590.327 224 576 209.673 576 192S590.327 160 608 160S640 174.327 640 192S625.673 224 608 224zM608 64C590.327 64 576 49.673 576 32S590.327 0 608 0S640 14.327 640 32S625.673 64 608 64zM608 384C590.327 384 576 369.673 576 352S590.327 320 608 320S640 334.327 640 352S625.673 384 608 384z" />
-			<glyph glyph-name="briefcase" unicode="" horiz-adv-x="512" d=" M320 160H512V16C512 -10.51 490.51 -32 464 -32H48C21.49 -32 0 -10.51 0 16V160H192V140C192 133.373 197.373 128 204 128H308C314.627 128 320 133.373 320 140V160zM512 272V192H0V272C0 298.51 21.49 320 48 320H128V368C128 394.51 149.49 416 176 416H336C362.51 416 384 394.51 384 368V320H464C490.51 320 512 298.51 512 272zM320 352H192V320H320V352z" />
-			<glyph glyph-name="bug" unicode="" horiz-adv-x="512" d=" M511.988 159.1C511.51 141.67 496.771 128 479.335 128H424V112C424 90.136 419.118 69.416 410.4 50.855L470.628 -9.373C483.124 -21.87 483.124 -42.131 470.628 -54.628C458.13 -67.125 437.869 -67.124 425.372 -54.628L370.636 0.108C345.886 -19.965 314.351 -32 280 -32V212C280 218.627 274.627 224 268 224H244C237.373 224 232 218.627 232 212V-32C197.649 -32 166.114 -19.965 141.364 0.108L86.628 -54.628C74.13 -67.125 53.869 -67.124 41.372 -54.628C28.876 -42.131 28.876 -21.87 41.372 -9.373L101.6 50.855C92.882 69.416 88 90.136 88 112V128H32.666C15.23 128 0.491 141.67 0.013 159.1C-0.484 177.184 14.028 192 32 192H88V250.745L41.372 297.373C28.876 309.87 28.876 330.131 41.372 342.628C53.87 355.125 74.13 355.125 86.628 342.628L141.255 288H370.7440000000001L425.3710000000001 342.627C437.8690000000001 355.124 458.129 355.124 470.6270000000001 342.627C483.123 330.13 483.123 309.8690000000001 470.6270000000001 297.372L424 250.745V192H480C497.972 192 512.484 177.184 511.988 159.1zM257 448C195.144 448 145 397.856 145 336H369C369 397.856 318.856 448 257 448z" />
-			<glyph glyph-name="building" unicode="" horiz-adv-x="448" d=" M436 -32H416V424C416 437.255 405.255 448 392 448H56C42.745 448 32 437.255 32 424V-32H12C5.373 -32 0 -37.373 0 -44V-64H448V-44C448 -37.373 442.627 -32 436 -32zM128 372C128 378.627 133.373 384 140 384H180C186.627 384 192 378.627 192 372V332C192 325.373 186.627 320 180 320H140C133.373 320 128 325.373 128 332V372zM128 276C128 282.627 133.373 288 140 288H180C186.627 288 192 282.627 192 276V236C192 229.373 186.627 224 180 224H140C133.373 224 128 229.373 128 236V276zM180 128H140C133.373 128 128 133.373 128 140V180C128 186.627 133.373 192 140 192H180C186.627 192 192 186.627 192 180V140C192 133.373 186.627 128 180 128zM256 -32H192V52C192 58.627 197.373 64 204 64H244C250.627 64 256 58.627 256 52V-32zM320 140C320 133.373 314.627 128 308 128H268C261.373 128 256 133.373 256 140V180C256 186.627 261.373 192 268 192H308C314.627 192 320 186.627 320 180V140zM320 236C320 229.373 314.627 224 308 224H268C261.373 224 256 229.373 256 236V276C256 282.627 261.373 288 268 288H308C314.627 288 320 282.627 320 276V236zM320 332C320 325.373 314.627 320 308 320H268C261.373 320 256 325.373 256 332V372C256 378.627 261.373 384 268 384H308C314.627 384 320 378.627 320 372V332z" />
-			<glyph glyph-name="bullhorn" unicode="ï‚¡" horiz-adv-x="576" d=" M576 224C576 244.896 562.64 262.666 544 269.2580000000001V384C544 419.346 515.346 448 480 448C415.015 392 337.969 320 208 320H48C21.49 320 0 298.51 0 272V176C0 149.49 21.49 128 48 128H91.263C72.521 63.35 93.742 11.621 110.077 -39.44C111.779 -44.76 115.28 -49.333 119.999 -52.32C140.779 -65.475 188.354 -67.977 213.772 -57.471C229.818 -50.838 233.732 -30.048 221.294 -17.934C202.786 0.092 191.158 18.976 201.499 42.924A12.278 12.278 0 0 1 200.454 54.597C184.145 79.276 196.873 116.704 228.971 127.349C346.403 120.113 418.591 52.919 480 0C515.346 0 544 28.654 544 64V178.742C562.64 185.334 576 203.104 576 224zM480 84.145C425.391 129.124 354.967 177.085 256 189.127V258.874C354.967 270.916 425.391 318.876 480 363.856V84.145z" />
-			<glyph glyph-name="bullseye" unicode="ï…€" horiz-adv-x="512" d=" M256 376C357.689 376 440 293.705 440 192C440 90.311 357.705 8 256 8C154.311 8 72 90.295 72 192C72 293.689 154.295 376 256 376M256 440C119.033 440 8 328.967 8 192S119.033 -56 256 -56S504 55.033 504 192S392.967 440 256 440zM256 256C291.29 256 320 227.29 320 192S291.29 128 256 128S192 156.71 192 192S220.71 256 256 256M256 320C185.308 320 128 262.692 128 192S185.308 64 256 64S384 121.308 384 192S326.692 320 256 320z" />
-			<glyph glyph-name="bus" unicode="" horiz-adv-x="512" d=" M512 296V216C512 202.745 501.255 192 488 192H480V24C480 10.745 469.255 0 456 0H448V-40C448 -53.255 437.255 -64 424 -64H376C362.745 -64 352 -53.255 352 -40V0H160V-40C160 -53.255 149.255 -64 136 -64H88C74.745 -64 64 -53.255 64 -40V0H56C42.745 0 32 10.745 32 24V192H24C10.745 192 0 202.745 0 216V296C0 309.255 10.745 320 24 320H32V368C32 412.183 132.288 448 256 448S480 412.183 480 368V320H488C501.255 320 512 309.255 512 296zM112 128C89.909 128 72 110.091 72 88S89.909 48 112 48S152 65.909 152 88S134.091 128 112 128zM400 128C377.909 128 360 110.091 360 88S377.909 48 400 48S440 65.909 440 88S422.091 128 400 128zM432 184V328C432 341.255 421.255 352 408 352H104C90.745 352 80 341.255 80 328V184C80 170.745 90.745 160 104 160H408C421.255 160 432 170.745 432 184z" />
-			<glyph glyph-name="calculator" unicode="" horiz-adv-x="448" d=" M0 -16V400C0 426.51 21.49 448 48 448H400C426.51 448 448 426.51 448 400V-16C448 -42.51 426.51 -64 400 -64H48C21.49 -64 0 -42.51 0 -16zM384 268V372C384 378.627 378.627 384 372 384H76C69.373 384 64 378.627 64 372V268C64 261.373 69.373 256 76 256H372C378.627 256 384 261.373 384 268zM128 140V180C128 186.627 122.627 192 116 192H76C69.373 192 64 186.627 64 180V140C64 133.373 69.373 128 76 128H116C122.627 128 128 133.373 128 140zM384 12V180C384 186.627 378.627 192 372 192H332C325.373 192 320 186.627 320 180V12C320 5.373 325.373 0 332 0H372C378.627 0 384 5.373 384 12zM128 12V52C128 58.627 122.627 64 116 64H76C69.373 64 64 58.627 64 52V12C64 5.373 69.373 0 76 0H116C122.627 0 128 5.373 128 12zM256 140V180C256 186.627 250.627 192 244 192H204C197.373 192 192 186.627 192 180V140C192 133.373 197.373 128 204 128H244C250.627 128 256 133.373 256 140zM256 12V52C256 58.627 250.627 64 244 64H204C197.373 64 192 58.627 192 52V12C192 5.373 197.373 0 204 0H244C250.627 0 256 5.373 256 12z" />
-			<glyph glyph-name="calendar-alt" unicode="" horiz-adv-x="448" d=" M436 288H12C5.4 288 0 293.4 0 300V336C0 362.5 21.5 384 48 384H96V436C96 442.6 101.4 448 108 448H148C154.6 448 160 442.6 160 436V384H288V436C288 442.6 293.4 448 300 448H340C346.6 448 352 442.6 352 436V384H400C426.5 384 448 362.5 448 336V300C448 293.4 442.6 288 436 288zM12 256H436C442.6 256 448 250.6 448 244V-16C448 -42.5 426.5 -64 400 -64H48C21.5 -64 0 -42.5 0 -16V244C0 250.6 5.4 256 12 256zM128 52C128 58.6 122.6 64 116 64H76C69.4 64 64 58.6 64 52V12C64 5.4 69.4 0 76 0H116C122.6 0 128 5.4 128 12V52zM128 180C128 186.6 122.6 192 116 192H76C69.4 192 64 186.6 64 180V140C64 133.4 69.4 128 76 128H116C122.6 128 128 133.4 128 140V180zM256 52C256 58.6 250.6 64 244 64H204C197.4 64 192 58.6 192 52V12C192 5.4 197.4 0 204 0H244C250.6 0 256 5.4 256 12V52zM256 180C256 186.6 250.6 192 244 192H204C197.4 192 192 186.6 192 180V140C192 133.4 197.4 128 204 128H244C250.6 128 256 133.4 256 140V180zM384 52C384 58.6 378.6 64 372 64H332C325.4 64 320 58.6 320 52V12C320 5.4 325.4 0 332 0H372C378.6 0 384 5.4 384 12V52zM384 180C384 186.6 378.6 192 372 192H332C325.4 192 320 186.6 320 180V140C320 133.4 325.4 128 332 128H372C378.6 128 384 133.4 384 140V180z" />
-			<glyph glyph-name="calendar-check" unicode="" horiz-adv-x="448" d=" M436 288H12C5.373 288 0 293.373 0 300V336C0 362.51 21.49 384 48 384H96V436C96 442.627 101.373 448 108 448H148C154.627 448 160 442.627 160 436V384H288V436C288 442.627 293.373 448 300 448H340C346.627 448 352 442.627 352 436V384H400C426.51 384 448 362.51 448 336V300C448 293.373 442.627 288 436 288zM12 256H436C442.627 256 448 250.627 448 244V-16C448 -42.51 426.51 -64 400 -64H48C21.49 -64 0 -42.51 0 -16V244C0 250.627 5.373 256 12 256zM345.296 160.053L317.127 188.451C312.4600000000001 193.156 304.862 193.187 300.1570000000001 188.519L194.12 83.335L148.14 129.687C143.473 134.392 135.874 134.423 131.169 129.755L102.772 101.5849999999999C98.067 96.918 98.036 89.3199999999999 102.704 84.6149999999999L185.305 1.3459999999999C189.972 -3.3590000000001 197.57 -3.3900000000001 202.275 1.2779999999999L345.228 143.0829999999999C349.933 147.7499999999999 349.964 155.3479999999999 345.296 160.0529999999999z" />
-			<glyph glyph-name="calendar-minus" unicode="" horiz-adv-x="448" d=" M436 288H12C5.4 288 0 293.4 0 300V336C0 362.5 21.5 384 48 384H96V436C96 442.6 101.4 448 108 448H148C154.6 448 160 442.6 160 436V384H288V436C288 442.6 293.4 448 300 448H340C346.6 448 352 442.6 352 436V384H400C426.5 384 448 362.5 448 336V300C448 293.4 442.6 288 436 288zM12 256H436C442.6 256 448 250.6 448 244V-16C448 -42.5 426.5 -64 400 -64H48C21.5 -64 0 -42.5 0 -16V244C0 250.6 5.4 256 12 256zM316 64C322.6 64 328 69.4 328 76V116C328 122.6 322.6 128 316 128H132C125.4 128 120 122.6 120 116V76C120 69.4 125.4 64 132 64H316z" />
-			<glyph glyph-name="calendar-plus" unicode="" horiz-adv-x="448" d=" M436 288H12C5.4 288 0 293.4 0 300V336C0 362.5 21.5 384 48 384H96V436C96 442.6 101.4 448 108 448H148C154.6 448 160 442.6 160 436V384H288V436C288 442.6 293.4 448 300 448H340C346.6 448 352 442.6 352 436V384H400C426.5 384 448 362.5 448 336V300C448 293.4 442.6 288 436 288zM12 256H436C442.6 256 448 250.6 448 244V-16C448 -42.5 426.5 -64 400 -64H48C21.5 -64 0 -42.5 0 -16V244C0 250.6 5.4 256 12 256zM328 116C328 122.6 322.6 128 316 128H256V188C256 194.6 250.6 200 244 200H204C197.4 200 192 194.6 192 188V128H132C125.4 128 120 122.6 120 116V76C120 69.4 125.4 64 132 64H192V4C192 -2.6 197.4 -8 204 -8H244C250.6 -8 256 -2.6 256 4V64H316C322.6 64 328 69.4 328 76V116z" />
-			<glyph glyph-name="calendar-times" unicode="" horiz-adv-x="448" d=" M436 288H12C5.4 288 0 293.4 0 300V336C0 362.5 21.5 384 48 384H96V436C96 442.6 101.4 448 108 448H148C154.6 448 160 442.6 160 436V384H288V436C288 442.6 293.4 448 300 448H340C346.6 448 352 442.6 352 436V384H400C426.5 384 448 362.5 448 336V300C448 293.4 442.6 288 436 288zM12 256H436C442.6 256 448 250.6 448 244V-16C448 -42.5 426.5 -64 400 -64H48C21.5 -64 0 -42.5 0 -16V244C0 250.6 5.4 256 12 256zM269.3 96L317.4000000000001 144.1C322.1 148.8 322.1 156.4 317.4000000000001 161.1L289.1 189.4C284.4000000000001 194.1 276.8 194.1 272.1 189.4L224 141.3L175.9 189.4C171.2 194.1 163.6 194.1 158.9 189.4L130.6 161.1C125.9 156.4 125.9 148.8 130.6 144.1L178.7 96L130.6 47.9C125.9 43.2 125.9 35.6 130.6 30.9L158.9 2.6C163.6 -2.1 171.2 -2.1 175.9 2.6L224 50.7L272.1 2.6C276.8 -2.1 284.4000000000001 -2.1 289.1 2.6L317.4000000000001 30.9C322.1 35.6 322.1 43.2 317.4000000000001 47.9L269.3 96z" />
-			<glyph glyph-name="calendar" unicode="" horiz-adv-x="448" d=" M12 256H436C442.6 256 448 250.6 448 244V-16C448 -42.5 426.5 -64 400 -64H48C21.5 -64 0 -42.5 0 -16V244C0 250.6 5.4 256 12 256zM448 300V336C448 362.5 426.5 384 400 384H352V436C352 442.6 346.6 448 340 448H300C293.4 448 288 442.6 288 436V384H160V436C160 442.6 154.6 448 148 448H108C101.4 448 96 442.6 96 436V384H48C21.5 384 0 362.5 0 336V300C0 293.4 5.4 288 12 288H436C442.6 288 448 293.4 448 300z" />
-			<glyph glyph-name="camera-retro" unicode="" horiz-adv-x="512" d=" M48 416C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H464C490.5 -32 512 -10.5 512 16V368C512 394.5 490.5 416 464 416H48zM48 384H154C157.3 384 160 381.3 160 378V358C160 354.7 157.3 352 154 352H38C34.7 352 32 354.7 32 358V368C32 376.8 39.2 384 48 384zM474 288H38C34.7 288 32 290.7 32 294V330C32 333.3 34.7 336 38 336H176L206.2 381.3C207.3 383 209.2 384 211.2 384H464C472.8 384 480 376.8 480 368V294C480 290.7 477.3 288 474 288zM256 24C189.8 24 136 77.8 136 144S189.8 264 256 264S376 210.2 376 144S322.2 24 256 24zM256 232C207.5 232 168 192.5 168 144S207.5 56 256 56S344 95.5 344 144S304.5 232 256 232zM208 128C199.2 128 192 135.2 192 144C192 179.3 220.7 208 256 208C264.8 208 272 200.8 272 192S264.8 176 256 176C238.4 176 224 161.6 224 144C224 135.2 216.8 128 208 128z" />
-			<glyph glyph-name="camera" unicode="" horiz-adv-x="512" d=" M512 304V16C512 -10.5 490.5 -32 464 -32H48C21.5 -32 0 -10.5 0 16V304C0 330.5 21.5 352 48 352H136L148.3 384.9C155.3 403.6 173.2 416 193.2 416H318.7000000000001C338.7000000000001 416 356.6 403.6 363.6 384.9L376 352H464C490.5 352 512 330.5 512 304zM376 160C376 226.2 322.2 280 256 280S136 226.2 136 160S189.8 40 256 40S376 93.8 376 160zM344 160C344 111.5 304.5 72 256 72S168 111.5 168 160S207.5 248 256 248S344 208.5 344 160z" />
-			<glyph glyph-name="car" unicode="" horiz-adv-x="512" d=" M499.991 280H445.176L437.322 300.944C428.13 325.457 411.897 346.295 390.38 361.207S343.651 384 317.472 384H194.528C168.348 384 143.137 376.118 121.62 361.207C100.102 346.295 83.87 325.457 74.678 300.944L66.824 280H12.009C3.818 280 -1.965 271.976 0.625 264.2050000000001L8.625 240.205A12 12 0 0 1 20.009 232H48.824L48.772 231.86C29.222 220.907 16 200.003 16 176V128C16 111.775 22.049 96.971 32 85.691V24C32 10.745 42.745 0 56 0H104C117.255 0 128 10.745 128 24V64H384V24C384 10.745 394.745 0 408 0H456C469.255 0 480 10.745 480 24V85.691C489.951 96.972 496 111.776 496 128V176C496 200.003 482.778 220.907 463.228 231.86L463.176 232H491.991A12 12 0 0 1 503.375 240.205L511.375 264.2050000000001C513.965 271.976 508.182 280 499.991 280zM134.603 278.472C143.918 303.3110000000001 168 320 194.528 320H317.472C344 320 368.082 303.3110000000001 377.397 278.472L391.824 240H120.176L134.603 278.472zM88 120C70.327 120 56 134.327 56 152C56 169.673 70.327 184 88 184S136 153.673 136 136S105.673 120 88 120zM424 120C406.327 120 376 118.327 376 136C376 153.673 406.327 184 424 184S456 169.673 456 152C456 134.327 441.673 120 424 120z" />
-			<glyph glyph-name="caret-down" unicode="" horiz-adv-x="320" d=" M31.3 256H288.6C306.4000000000001 256 315.3 234.5 302.7000000000001 221.9L174.1 93.2C166.3 85.4 153.6 85.4 145.8 93.2L17.2 221.9C4.6 234.5 13.5 256 31.3 256z" />
-			<glyph glyph-name="caret-left" unicode="" horiz-adv-x="192" d=" M192 320.6620000000001V63.338C192 45.52 170.457 36.597 157.858 49.196L29.196 177.858C21.386 185.668 21.386 198.332 29.196 206.142L157.858 334.804C170.457 347.404 192 338.48 192 320.6620000000001z" />
-			<glyph glyph-name="caret-right" unicode="" horiz-adv-x="192" d=" M0 63.338V320.6620000000001C0 338.48 21.543 347.403 34.142 334.804L162.804 206.142C170.614 198.332 170.614 185.668 162.804 177.858L34.142 49.196C21.543 36.596 0 45.52 0 63.338z" />
-			<glyph glyph-name="caret-square-down" unicode="" horiz-adv-x="448" d=" M448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM92.5 227.5L215.5 104.5C220.2 99.8 227.8 99.8 232.5 104.5L355.5 227.5C363.1 235.1 357.7 248 347 248H101C90.3 248 84.9 235.1 92.5 227.5z" />
-			<glyph glyph-name="caret-square-left" unicode="" horiz-adv-x="448" d=" M400 -32H48C21.49 -32 0 -10.51 0 16V368C0 394.51 21.49 416 48 416H400C426.51 416 448 394.51 448 368V16C448 -10.51 426.51 -32 400 -32zM259.515 323.515L136.485 200.485C131.799 195.799 131.799 188.201 136.485 183.514L259.514 60.485C267.074 52.925 279.999 58.279 279.999 68.97V315.029C280 325.7200000000001 267.074 331.074 259.5150000000001 323.515z" />
-			<glyph glyph-name="caret-square-right" unicode="ï…’" horiz-adv-x="448" d=" M48 416H400C426.51 416 448 394.51 448 368V16C448 -10.51 426.51 -32 400 -32H48C21.49 -32 0 -10.51 0 16V368C0 394.51 21.49 416 48 416zM188.485 60.485L311.514 183.514C316.2 188.2 316.2 195.798 311.514 200.485L188.485 323.515C180.925 331.0750000000001 168 325.721 168 315.0300000000001V68.971C168 58.28 180.926 52.926 188.485 60.485z" />
-			<glyph glyph-name="caret-square-up" unicode="ï…‘" horiz-adv-x="448" d=" M0 16V368C0 394.51 21.49 416 48 416H400C426.51 416 448 394.51 448 368V16C448 -10.51 426.51 -32 400 -32H48C21.49 -32 0 -10.51 0 16zM355.515 156.485L232.485 279.515C227.799 284.201 220.201 284.201 215.514 279.515L92.485 156.485C84.925 148.925 90.279 136 100.97 136H347.029C357.72 136 363.074 148.926 355.515 156.485z" />
-			<glyph glyph-name="caret-up" unicode="" horiz-adv-x="320" d=" M288.662 96H31.338C13.52 96 4.597 117.543 17.196 130.142L145.858 258.804C153.668 266.6140000000001 166.332 266.6140000000001 174.142 258.804L302.804 130.142C315.404 117.543 306.48 96 288.662 96z" />
-			<glyph glyph-name="cart-arrow-down" unicode="" horiz-adv-x="576" d=" M504.717 128H211.572L218.117 96H486.535C501.936 96 513.351 81.699 509.938 66.681L504.421 42.405C523.112 33.332 536 14.172 536 -8C536 -39.202 510.481 -64.444 479.176 -63.994C449.353 -63.565 424.826 -39.3630000000001 424.021 -9.547C423.581 6.74 430.106 21.502 440.824 32.001H231.176C241.553 21.835 248 7.674 248 -8C248 -39.813 221.472 -65.431 189.33 -63.938C160.79 -62.613 137.579 -39.553 136.079 -11.021C134.921 11.013 146.515 30.434 164.13 40.5650000000001L93.883 384H24C10.745 384 0 394.745 0 408V424C0 437.255 10.745 448 24 448H126.529C137.93 448 147.757 439.979 150.042 428.81L159.208 384H551.99C567.391 384 578.806 369.699 575.393 354.681L528.12 146.681C525.637 135.754 515.923 128 504.717 128zM403.029 256H360V316C360 322.627 354.627 328 348 328H324C317.373 328 312 322.627 312 316V256H268.971C258.2800000000001 256 252.926 243.074 260.486 235.515L327.515 168.486C332.201 163.8 339.799 163.8 344.486 168.486L411.515 235.515C419.074 243.074 413.72 256 403.029 256z" />
-			<glyph glyph-name="cart-plus" unicode="" horiz-adv-x="576" d=" M504.717 128H211.572L218.117 96H486.535C501.936 96 513.351 81.699 509.938 66.681L504.421 42.405C523.112 33.332 536 14.172 536 -8C536 -39.202 510.481 -64.444 479.176 -63.994C449.353 -63.565 424.826 -39.3630000000001 424.021 -9.547C423.581 6.74 430.106 21.502 440.824 32.001H231.176C241.553 21.835 248 7.674 248 -8C248 -39.813 221.472 -65.431 189.33 -63.938C160.79 -62.613 137.579 -39.553 136.079 -11.021C134.921 11.013 146.515 30.434 164.13 40.5650000000001L93.883 384H24C10.745 384 0 394.745 0 408V424C0 437.255 10.745 448 24 448H126.529C137.93 448 147.757 439.979 150.042 428.81L159.208 384H551.99C567.391 384 578.806 369.699 575.393 354.681L528.12 146.681C525.637 135.754 515.923 128 504.717 128zM408 280H360V320C360 328.837 352.837 336 344 336H328C319.163 336 312 328.837 312 320V280H264C255.163 280 248 272.837 248 264V248C248 239.163 255.163 232 264 232H312V192C312 183.163 319.163 176 328 176H344C352.837 176 360 183.163 360 192V232H408C416.837 232 424 239.163 424 248V264C424 272.837 416.837 280 408 280z" />
-			<glyph glyph-name="certificate" unicode="ï‚£" horiz-adv-x="512" d=" M458.622 192.08L504.607 237.085C518.315 250.062 511.923 273.124 493.943 277.424L431.2930000000001 293.414L448.9540000000001 355.4290000000001C453.9450000000001 373.2670000000001 437.1250000000001 390.092 419.2930000000001 385.1L357.2990000000001 367.433L341.3150000000001 430.1040000000001C337.085 447.803 313.765 454.276 300.99 440.772L256 394.43L211.011 440.771C198.381 454.122 174.964 448.005 170.686 430.103L154.702 367.432L92.707 385.099C74.87 390.093 58.056 373.262 63.046 355.428L80.707 293.413L18.057 277.423C0.069 273.122 -6.31 250.056 7.392 237.085L53.377 192.08L7.392 147.076C-6.316 134.0990000000001 0.076 111.037 18.056 106.737L80.706 90.747L63.045 28.732C58.054 10.894 74.874 -5.931 92.706 -0.939L154.7 16.7280000000001L170.684 -45.9429999999999C175.123 -64.5179999999999 198.38 -69.9609999999999 211.009 -56.6109999999999L256 -10.61L300.989 -56.611C313.489 -70.0989999999999 336.976 -64.097 341.314 -45.943L357.298 16.728L419.2919999999999 -0.939C437.128 -5.933 453.9429999999999 10.898 448.9529999999999 28.732L431.2919999999999 90.747L493.9419999999999 106.737C511.9289999999999 111.0390000000001 518.3079999999999 134.1040000000001 504.6059999999999 147.076L458.6219999999999 192.08z" />
-			<glyph glyph-name="chart-area" unicode="" horiz-adv-x="512" d=" M500 64C506.6 64 512 58.6 512 52V12C512 5.4 506.6 0 500 0H12C5.4 0 0 5.4 0 12V372C0 378.6 5.4 384 12 384H52C58.6 384 64 378.6 64 372V64H500zM372.7 288.5L288 232L202.7 345.7C197.6 352.5 187.2 352 182.8 344.7L96 200V96H480L390.1 283.8C386.9000000000001 290.3 378.7000000000001 292.5 372.7000000000001 288.5z" />
-			<glyph glyph-name="chart-bar" unicode="ï‚€" horiz-adv-x="512" d=" M500 64C506.6 64 512 58.6 512 52V12C512 5.4 506.6 0 500 0H12C5.4 0 0 5.4 0 12V372C0 378.6 5.4 384 12 384H52C58.6 384 64 378.6 64 372V64H500zM192 108V180C192 186.6 186.6 192 180 192H140C133.4 192 128 186.6 128 180V108C128 101.4 133.4 96 140 96H180C186.6 96 192 101.4 192 108zM384 108V244C384 250.6 378.6 256 372 256H332C325.4 256 320 250.6 320 244V108C320 101.4 325.4 96 332 96H372C378.6 96 384 101.4 384 108zM288 108V308C288 314.6 282.6 320 276 320H236C229.4 320 224 314.6 224 308V108C224 101.4 229.4 96 236 96H276C282.6 96 288 101.4 288 108zM480 108V340C480 346.6 474.6 352 468 352H428C421.4 352 416 346.6 416 340V108C416 101.4 421.4 96 428 96H468C474.6 96 480 101.4 480 108z" />
-			<glyph glyph-name="chart-line" unicode="" horiz-adv-x="512" d=" M500 64C506.6 64 512 58.6 512 52V12C512 5.4 506.6 0 500 0H12C5.4 0 0 5.4 0 12V372C0 378.6 5.4 384 12 384H52C58.6 384 64 378.6 64 372V64H500zM456 352H344C322.6 352 311.9 326.1 327 311L359.9 278.1L287.9 205.2L232.3 260.8C227.6 265.5 220.1 265.5 215.4 260.8L96.4 143C91.7 138.4 91.6 130.8 96.2 126.1L124.7 96.7000000000001C129.4 91.9 137.1 91.8000000000001 141.8 96.6L223.9 178.7000000000001L279.4 123.2000000000001C284.1 118.5000000000001 291.7 118.5000000000001 296.4 123.2000000000001L405.6 232.4000000000001L439 199C454.1 183.9 480 194.6 480 216V328C480 341.3 469.3 352 456 352z" />
-			<glyph glyph-name="chart-pie" unicode="" horiz-adv-x="576" d=" M288 435.7V208H515.7C522.6 208 528 213.8 527.7 220.7C521.3000000000001 343.1 423.2000000000001 441.3 300.7000000000001 447.7C293.8000000000001 448 288.0000000000001 442.6 288.0000000000001 435.7zM552.7 160C559.6 160 565 154.2 564.7 147.3C561.9000000000001 94.1 541.5 41.7 503.5000000000001 -0.5C498.9 -5.6 490.9 -5.9 486.0000000000001 -1L325 160H552.7zM401 15C405.8 10.2 405.7 2.2 400.6 -2.3C358 -40.7 301.6 -64 239.8 -64C107.6 -63.9 -0.2 44.2 0 176.5C0.2 304.6 100.8 409.1 227.3 415.7C234.2 416.1 240 410.6 240 403.7V176L401 15z" />
-			<glyph glyph-name="check-circle" unicode="" horiz-adv-x="512" d=" M504 192C504 55.033 392.967 -56 256 -56S8 55.033 8 192S119.033 440 256 440S504 328.967 504 192zM227.314 60.686L411.314 244.686C417.562 250.934 417.562 261.065 411.314 267.313L388.687 289.94C382.439 296.189 372.308 296.189 366.059 289.94L216 139.882L145.941 209.941C139.693 216.189 129.562 216.189 123.313 209.941L100.686 187.314C94.438 181.066 94.438 170.935 100.686 164.687L204.686 60.687C210.935 54.438 221.065 54.438 227.314 60.686z" />
-			<glyph glyph-name="check-square" unicode="ï…Š" horiz-adv-x="448" d=" M400 -32H48C21.49 -32 0 -10.51 0 16V368C0 394.51 21.49 416 48 416H400C426.51 416 448 394.51 448 368V16C448 -10.51 426.51 -32 400 -32zM195.314 66.059L379.314 250.059C385.562 256.307 385.562 266.438 379.314 272.686L356.687 295.313C350.439 301.561 340.308 301.562 334.059 295.313L184 145.255L113.941 215.314C107.693 221.562 97.562 221.562 91.313 215.314L68.686 192.687C62.438 186.439 62.438 176.308 68.686 170.06L172.686 66.06C178.935 59.81 189.065 59.81 195.314 66.059z" />
-			<glyph glyph-name="check" unicode="" horiz-adv-x="512" d=" M173.898 8.596L7.498 174.996C-2.499 184.993 -2.499 201.202 7.498 211.2L43.701 247.404C53.698 257.402 69.908 257.402 79.905 247.404L192 135.31L432.0950000000001 375.404C442.0920000000001 385.401 458.302 385.401 468.299 375.404L504.5020000000001 339.2C514.499 329.203 514.499 312.9940000000001 504.5020000000001 302.996L210.1020000000001 8.595C200.1040000000001 -1.402 183.8950000000001 -1.402 173.8980000000001 8.5959999999999z" />
-			<glyph glyph-name="chevron-circle-down" unicode="" horiz-adv-x="512" d=" M504 192C504 55 393 -56 256 -56S8 55 8 192S119 440 256 440S504 329 504 192zM273 78.1L408.5 213.6C417.9 223 417.9 238.2 408.5 247.5000000000001L391.5 264.5C382.1 273.9000000000001 366.9 273.9000000000001 357.6 264.5L256 162.9L154.4 264.5C145 273.9 129.8 273.9 120.5 264.5L103.5 247.5C94.1 238.1 94.1 222.9 103.5 213.6L239 78.1C248.4 68.7000000000001 263.6 68.7000000000001 273 78.1z" />
-			<glyph glyph-name="chevron-circle-left" unicode="ï„·" horiz-adv-x="512" d=" M256 -56C119 -56 8 55 8 192S119 440 256 440S504 329 504 192S393 -56 256 -56zM142.1 175L277.6 39.5C287 30.1 302.2000000000001 30.1 311.5 39.5L328.5 56.5C337.9 65.9 337.9 81.1 328.5 90.4L226.9 192L328.5 293.6C337.9 303 337.9 318.2 328.5 327.5L311.5 344.5C302.1 353.9 286.9 353.9 277.6 344.5L142.1 209C132.7 199.6 132.7 184.4 142.1 175z" />
-			<glyph glyph-name="chevron-circle-right" unicode="" horiz-adv-x="512" d=" M256 440C393 440 504 329 504 192S393 -56 256 -56S8 55 8 192S119 440 256 440zM369.9 209L234.4 344.5C225 353.9 209.8 353.9 200.5 344.5L183.5 327.5C174.1 318.1 174.1 302.9 183.5 293.6L285.1 192L183.5 90.4C174.1 81 174.1 65.8 183.5 56.5L200.5 39.5C209.9 30.1 225.1 30.1 234.4 39.5L369.9 175C379.3 184.4 379.3 199.6 369.9 209z" />
-			<glyph glyph-name="chevron-circle-up" unicode="" horiz-adv-x="512" d=" M8 192C8 329 119 440 256 440S504 329 504 192S393 -56 256 -56S8 55 8 192zM239 305.9L103.5 170.4C94.1 161 94.1 145.8 103.5 136.5L120.5 119.5C129.9 110.1 145.1 110.1 154.4 119.5L256 221.1L357.6 119.5C367 110.1 382.2000000000001 110.1 391.5 119.5L408.5 136.5C417.9 145.9 417.9 161.1 408.5 170.4L273 305.9C263.6 315.3 248.4 315.3 239 305.9z" />
-			<glyph glyph-name="chevron-down" unicode="" horiz-adv-x="448" d=" M207.029 66.524L12.686 260.868C3.313 270.241 3.313 285.437 12.686 294.809L35.353 317.476C44.71 326.833 59.875 326.851 69.254 317.516L224 163.495L378.745 317.516C388.124 326.851 403.289 326.833 412.646 317.476L435.313 294.809C444.686 285.4360000000001 444.686 270.24 435.313 260.868L240.971 66.524C231.598 57.152 216.402 57.152 207.029 66.524z" />
-			<glyph glyph-name="chevron-left" unicode="" horiz-adv-x="320" d=" M34.52 208.97L228.87 403.31C238.24 412.68 253.44 412.68 262.81 403.31L285.48 380.64C294.8400000000001 371.28 294.85 356.12 285.5200000000001 346.74L131.49 192L285.51 37.25C294.85 27.87 294.83 12.71 285.47 3.35L262.8 -19.32C253.43 -28.69 238.23 -28.69 228.86 -19.32L34.52 175.03C25.15 184.4 25.15 199.6 34.52 208.97z" />
-			<glyph glyph-name="chevron-right" unicode="" horiz-adv-x="320" d=" M285.476 175.029L91.132 -19.314C81.759 -28.687 66.563 -28.687 57.191 -19.314L34.524 3.353C25.167 12.7099999999999 25.149 27.8749999999999 34.484 37.254L188.505 192L34.484 346.745C25.149 356.124 25.167 371.289 34.524 380.646L57.191 403.313C66.564 412.6860000000001 81.76 412.6860000000001 91.132 403.313L285.475 208.97C294.848 199.598 294.848 184.402 285.476 175.029z" />
-			<glyph glyph-name="chevron-up" unicode="" horiz-adv-x="448" d=" M240.971 317.476L435.314 123.1330000000001C444.687 113.7600000000001 444.687 98.564 435.314 89.192L412.647 66.525C403.29 57.168 388.125 57.15 378.7459999999999 66.485L224 220.505L69.255 66.484C59.876 57.149 44.711 57.167 35.354 66.524L12.687 89.191C3.314 98.564 3.314 113.7600000000001 12.687 123.1320000000001L207.03 317.475C216.402 326.848 231.598 326.848 240.971 317.476z" />
-			<glyph glyph-name="child" unicode="" horiz-adv-x="384" d=" M120 376C120 415.765 152.235 448 192 448S264 415.765 264 376C264 336.236 231.765 304 192 304S120 336.236 120 376zM374.627 374.627C362.1310000000001 387.124 341.8690000000001 387.124 329.373 374.627L242.745 288H141.254L54.627 374.627C42.131 387.124 21.869 387.124 9.373 374.627C-3.124 362.13 -3.124 341.8690000000001 9.373 329.372L104 234.746V-32C104 -49.673 118.327 -64 136 -64H152C169.673 -64 184 -49.673 184 -32V80H200V-32C200 -49.673 214.327 -64 232 -64H248C265.673 -64 280 -49.673 280 -32V234.746L374.627 329.373C387.124 341.87 387.124 362.13 374.627 374.627z" />
-			<glyph glyph-name="circle-notch" unicode="" horiz-adv-x="512" d=" M288 408.944V392.2850000000001C288 381.481 295.281 372.126 305.686 369.219C383.204 347.5660000000001 440 276.482 440 192C440 90.311 357.705 8 256 8C154.311 8 72 90.295 72 192C72 276.4700000000001 128.786 347.564 206.312 369.219C216.719 372.126 224 381.483 224 392.288V408.936C224 424.645 209.166 436.089 193.954 432.17C86.603 404.5180000000001 7.394 306.794 8.003 190.668C8.723 53.616 119.48 -56.288 256.534 -55.999C393.255 -55.711 504 55.212 504 192C504 307.633 424.86 404.779 317.789 432.236C302.678 436.111 288 424.544 288 408.944z" />
-			<glyph glyph-name="circle" unicode="ï„‘" horiz-adv-x="512" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440z" />
-			<glyph glyph-name="clipboard" unicode="" horiz-adv-x="384" d=" M384 336V-16C384 -42.51 362.51 -64 336 -64H48C21.49 -64 0 -42.51 0 -16V336C0 362.51 21.49 384 48 384H128C128 419.29 156.71 448 192 448S256 419.29 256 384H336C362.51 384 384 362.51 384 336zM192 408C178.745 408 168 397.255 168 384S178.745 360 192 360S216 370.745 216 384S205.255 408 192 408M288 294V314A6 6 0 0 1 282 320H102A6 6 0 0 1 96 314V294A6 6 0 0 1 102 288H282A6 6 0 0 1 288 294z" />
-			<glyph glyph-name="clock" unicode="" horiz-adv-x="512" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM313.1 89.9L224.9 154C221.8 156.3 220 159.9 220 163.7V332C220 338.6 225.4 344 232 344H280C286.6 344 292 338.6 292 332V194.3L355.5 148.1C360.9 144.2000000000001 362 136.7000000000001 358.1 131.3L329.9000000000001 92.5C326.0000000000001 87.2 318.5000000000001 86 313.1 89.9z" />
-			<glyph glyph-name="clone" unicode="" horiz-adv-x="512" d=" M464 448C490.51 448 512 426.51 512 400V112C512 85.49 490.51 64 464 64H176C149.49 64 128 85.49 128 112V400C128 426.51 149.49 448 176 448H464M176 32C131.888 32 96 67.888 96 112V320H48C21.49 320 0 298.51 0 272V-16C0 -42.51 21.49 -64 48 -64H336C362.51 -64 384 -42.51 384 -16V32H176z" />
-			<glyph glyph-name="closed-captioning" unicode="" horiz-adv-x="512" d=" M464 384H48C21.5 384 0 362.5 0 336V48C0 21.5 21.5 0 48 0H464C490.5 0 512 21.5 512 48V336C512 362.5 490.5 384 464 384zM218.1 160.3C220.9 162.8 225.2 162.4 227.3 159.4L246.8 131.7000000000001C248.5 129.3000000000001 248.3 126.1 246.3 124.0000000000001C192.7 67.2000000000001 73.5 91.9 73.5 191.9000000000001C73.5 289.2000000000001 195.2 311.4000000000001 246 262.0000000000001C248.1 260.0000000000001 248.5 258.8000000000001 247 256.3000000000001L229.5 225.8000000000001C227.6 222.7000000000001 223.3 221.8000000000001 220.4 224.1000000000001C179.6 256.1000000000002 125.8 239.0000000000001 125.8 192.9000000000001C125.9 144.9000000000001 176.9 122.4000000000001 218.1 160.3000000000001zM408.5 160.3C411.3 162.8 415.6 162.4 417.7 159.4L437.2 131.7000000000001C438.9 129.3000000000001 438.7 126.1 436.7 124.0000000000001C383.2 67.1000000000001 264 91.9 264 191.9000000000001C264 289.2000000000001 385.7 311.4000000000001 436.5 262.0000000000001C438.6 260.0000000000001 439 258.8000000000001 437.5 256.3000000000001L420 225.8C418.1 222.7 413.8 221.8 410.9 224.1C370.1 256.1 316.3 239.0000000000001 316.3 192.9C316.3 144.9 367.3 122.4 408.5 160.3z" />
-			<glyph glyph-name="cloud-download-alt" unicode="" horiz-adv-x="640" d=" M640 96C640 25.308 582.692 -32 512 -32H144C64.471 -32 0 32.471 0 112C0 174.773 40.171 228.155 96.204 247.867A163.68 163.68 0 0 0 96 256C96 344.366 167.634 416 256 416C315.288 416 367.0420000000001 383.752 394.684 335.841C409.935 346.046 428.271 352 448 352C501.019 352 544 309.019 544 256C544 243.816 541.725 232.164 537.585 221.44C596.017 209.586 640 157.93 640 96zM393.373 160H328V272C328 280.837 320.836 288 312 288H264C255.164 288 248 280.837 248 272V160H182.627C168.373 160 161.234 142.766 171.313 132.686L276.6860000000001 27.313C282.9340000000001 21.065 293.0650000000001 21.065 299.3130000000001 27.313L404.6860000000001 132.686C414.766 142.766 407.627 160 393.3730000000001 160z" />
-			<glyph glyph-name="cloud-upload-alt" unicode="" horiz-adv-x="640" d=" M640 96C640 25.308 582.692 -32 512 -32H144C64.471 -32 0 32.471 0 112C0 174.773 40.171 228.155 96.204 247.867A163.68 163.68 0 0 0 96 256C96 344.366 167.634 416 256 416C315.288 416 367.0420000000001 383.752 394.684 335.841C409.935 346.046 428.271 352 448 352C501.019 352 544 309.019 544 256C544 243.816 541.725 232.164 537.585 221.44C596.017 209.586 640 157.93 640 96zM404.6860000000001 187.314L299.314 292.6860000000001C293.0660000000001 298.934 282.935 298.934 276.687 292.6860000000001L171.314 187.314C161.234 177.234 168.373 160 182.627 160H248V48C248 39.163 255.164 32 264 32H312C320.836 32 328 39.163 328 48V160H393.373C407.627 160 414.766 177.234 404.686 187.314z" />
-			<glyph glyph-name="cloud" unicode="" horiz-adv-x="640" d=" M537.585 221.44C541.725 232.164 544 243.816 544 256C544 309.019 501.019 352 448 352C428.271 352 409.935 346.046 394.684 335.841C367.042 383.752 315.288 416 256 416C167.634 416 96 344.366 96 256C96 253.272 96.07 250.561 96.204 247.867C40.171 228.155 0 174.773 0 112C0 32.471 64.471 -32 144 -32H512C582.692 -32 640 25.308 640 96C640 157.93 596.017 209.586 537.585 221.44z" />
-			<glyph glyph-name="code-branch" unicode="" horiz-adv-x="384" d=" M384 304C384 348.2 348.2 384 304 384S224 348.2 224 304C224 267.6 248.3 236.9 281.5 227.2C280.9 211.1 277.3 198.7 270.5 190.3C255.1 171.1 221.2 167.9 185.3 164.6C157.1 162 127.9 159.2000000000001 104 147.7000000000001V291.7000000000001C136.5 301.9000000000001 160 332.2000000000001 160 368.0000000000001C160 412.2000000000001 124.2 448.0000000000001 80 448.0000000000001S0 412.2 0 368C0 332.2 23.5 301.9 56 291.7V92.4C23.5 82.1 0 51.8 0 16C0 -28.2 35.8 -64 80 -64S160 -28.2 160 16C160 50 138.8 79.1 108.8 90.6C111.9 95.8 116.6 100.4 123.7 104C139.9 112.2 164.1 114.4 189.8 116.8C232 120.7 279.8 125.2 308 160.2C322 177.6 329.1 200 329.6 228.1C361.2000000000001 238.9 384 268.8 384 304zM80 384C88.8 384 96 376.8 96 368S88.8 352 80 352S64 359.2 64 368S71.2 384 80 384zM80 0C71.2 0 64 7.2 64 16S71.2 32 80 32S96 24.8 96 16S88.8 0 80 0zM304 320C312.8 320 320 312.8 320 304S312.8 288 304 288S288 295.2 288 304S295.2 320 304 320z" />
-			<glyph glyph-name="code" unicode="ï„¡" horiz-adv-x="640" d=" M278.9 -63.5L217.9 -45.8C211.5 -44 207.9 -37.3 209.7 -30.9L346.2 439.3C348 445.7 354.7 449.3 361.1 447.5L422.1 429.8C428.5 428 432.1 421.3 430.3 414.9L293.8 -55.3C291.9000000000001 -61.7 285.3 -65.4 278.9000000000001 -63.5zM164.9 48.7L208.4 95.1C213 99.9999999999999 212.7 107.8 207.6 112.3L117 192L207.6 271.7C212.7 276.2 213.1 284 208.4 288.9L164.9 335.3C160.4 340.1 152.8 340.4 147.9 335.8L3.8 200.8C-1.3 196.1 -1.3 188 3.8 183.3L147.9 48.2C152.8 43.6 160.4 43.8000000000001 164.9 48.7zM492.1 48.1L636.1999999999999 183.1999999999999C641.3 187.8999999999999 641.3 196 636.1999999999999 200.6999999999999L492.1 335.9C487.3 340.4 479.7 340.2 475.1 335.4L431.6 289C427 284.1 427.3 276.3 432.4000000000001 271.8L523 192L432.4 112.3C427.3 107.8 426.9 100 431.6 95.1L475.1 48.7C479.6 43.8000000000001 487.2 43.6 492.1 48.1z" />
-			<glyph glyph-name="coffee" unicode="" horiz-adv-x="640" d=" M192 64H384C437 64 480 107 480 160H512C582.6 160 640 217.4 640 288S582.6 416 512 416H120C106.7 416 96 405.3 96 392V160C96 107 139 64 192 64zM512 352C547.3 352 576 323.3 576 288S547.3 224 512 224H480V352H512zM559.7 -32H48.3C0.7 -32 -12.7 32 12.3 32H595.5999999999999C620.5999999999999 32 607.3999999999999 -32 559.6999999999999 -32z" />
-			<glyph glyph-name="cog" unicode="" horiz-adv-x="512" d=" M444.788 156.9L487.404 132.301C492.271 129.492 494.53 123.683 492.863 118.316C481.793 82.674 462.893 50.474 438.174 23.73A12.015999999999998 12.015999999999998 0 0 0 423.342 21.4759999999999L380.758 46.0709999999999A191.577 191.577 0 0 0 319.999 10.9409999999999V-38.2410000000001A12.01 12.01 0 0 0 310.622 -49.9590000000001C275.666 -57.8090000000001 238.123 -58.2150000000001 201.403 -49.9660000000001C195.913 -48.7330000000001 192 -43.8700000000001 192 -38.2430000000001V10.9409999999999A191.555 191.555 0 0 0 131.241 46.0709999999999L88.657 21.4759999999999A12.015999999999998 12.015999999999998 0 0 0 73.825 23.7299999999999C49.107 50.4739999999999 30.206 82.6739999999999 19.136 118.3159999999999C17.469 123.6819999999999 19.728 129.4909999999999 24.595 132.3009999999999L67.212 156.9A193.48000000000002 193.48000000000002 0 0 0 67.212 227.099L24.596 251.698C19.729 254.507 17.47 260.316 19.137 265.683C30.207 301.325 49.107 333.525 73.826 360.269A12.015999999999998 12.015999999999998 0 0 0 88.658 362.523L131.242 337.928A191.577 191.577 0 0 0 192.001 373.058V422.241A12.01 12.01 0 0 0 201.3780000000001 433.959C236.3340000000001 441.8090000000001 273.8770000000001 442.215 310.5970000000001 433.966C316.0870000000001 432.733 320.0000000000001 427.87 320.0000000000001 422.243V373.059A191.555 191.555 0 0 0 380.7590000000001 337.929L423.3430000000001 362.524A12.015999999999998 12.015999999999998 0 0 0 438.1750000000001 360.27C462.8930000000001 333.526 481.7940000000001 301.326 492.8640000000001 265.684C494.5310000000001 260.318 492.2720000000001 254.509 487.4050000000001 251.699L444.788 227.1A193.485 193.485 0 0 0 444.788 156.9zM336 192C336 236.112 300.112 272 256 272S176 236.112 176 192S211.888 112 256 112S336 147.888 336 192z" />
-			<glyph glyph-name="cogs" unicode="ï‚…" horiz-adv-x="640" d=" M512.1 257L503.9 242.7C500.9 237.4 494.5000000000001 235.2 488.8 237.3C477 241.7 466.2 248 456.7 255.9C452.1 259.7 450.9 266.4 453.9 271.6L462.1 285.9C455.2 293.9 449.8 303.2 446.2 313.3H429.7C423.7 313.3 418.5 317.6 417.5 323.6C415.5 335.6 415.4 348.2 417.5 360.7C418.5 366.7 423.7 371.1 429.7 371.1H446.2C449.8 381.2 455.2 390.5 462.1 398.5L453.9 412.8C450.9 418 452 424.7 456.7 428.5C466.2 436.4 477.1 442.7 488.8 447.1C494.5 449.2 500.9 447 503.9 441.7L512.1 427.4C522.6 429.3 533.3000000000001 429.3 543.8000000000001 427.4L552 441.7C555 447 561.4 449.2 567.1 447.1C578.9 442.7 589.7 436.4 599.2 428.5C603.8000000000001 424.7 605 418 602 412.8L593.8 398.5C600.6999999999999 390.5 606.0999999999999 381.2 609.6999999999999 371.1H626.1999999999999C632.1999999999999 371.1 637.4 366.8 638.4 360.8C640.4 348.8 640.5 336.2 638.4 323.7C637.4 317.7 632.1999999999999 313.3 626.1999999999999 313.3H609.6999999999999C606.0999999999999 303.2 600.6999999999999 293.9 593.8 285.9L602 271.6C605 266.4 603.9 259.7 599.2 255.9C589.7 248 578.8000000000001 241.7 567.1 237.3C561.4 235.2 555 237.4 552 242.7L543.8 257C533.4 255.1 522.5999999999999 255.1 512.0999999999999 257zM501.6 315.8C540.1 286.2000000000001 584 330.1 554.4 368.6C515.9 398.3 472 354.3 501.6 315.8zM386.3 161.9L420 145.1C430.1 139.3 434.5 127 430.5 116C421.6 91.8 404.1 69.6 387.9 50.1999999999999C380.5 41.3 367.7 39.0999999999999 357.6 44.8999999999999L328.5 61.6999999999999C312.5 47.9999999999999 293.8999999999999 37.0999999999999 273.6 29.9999999999999V-3.6000000000001C273.6 -15.2000000000001 265.3 -25.2000000000001 253.9 -27.2000000000001C229.3 -31.4000000000001 203.5 -31.6000000000001 178 -27.2000000000001C166.5 -25.2000000000001 158 -15.3000000000001 158 -3.6000000000001V30C137.7 37.2 119.1 48 103.1 61.7L74 45C64 39.2 51.1 41.4 43.7 50.3C27.5 69.7 10.4 91.9 1.5 116C-2.5 126.9 1.9 139.2 12 145.1L45.3 161.9C41.4 182.8 41.4 204.3000000000001 45.3 225.3000000000001L12 242.2C1.9 248 -2.6 260.3 1.5 271.2C10.4 295.4 27.5 317.6 43.7 337C51.1 345.9 63.9 348.1 74 342.3L103.1 325.5C119.1 339.2 137.7 350.1 158 357.2V390.9C158 402.4 166.2 412.4 177.6 414.4C202.2 418.6 228.1 418.8 253.6 414.5C265.1 412.5 273.6 402.6 273.6 390.9V357.3C293.9000000000001 350.1 312.5 339.3 328.5 325.6L357.6 342.4C367.6 348.2 380.5 346 387.9000000000001 337.1C404.1 317.7 421.1 295.5 430.0000000000001 271.3C434.0000000000001 260.4 430.1000000000001 248.1 420.0000000000001 242.2L386.3000000000001 225.4C390.2000000000001 204.4 390.2000000000001 182.9 386.3000000000001 161.9zM268.7000000000001 140.8C327.9000000000001 217.8 240.0000000000001 305.7 163.0000000000001 246.5C103.8000000000001 169.5 191.7000000000001 81.5999999999999 268.7000000000001 140.8zM512.1 -41.9L503.9 -56.2C500.9 -61.5000000000001 494.5000000000001 -63.7 488.8 -61.6C477 -57.2 466.2 -50.9 456.7 -43C452.1 -39.2 450.9 -32.5 453.9 -27.3L462.1 -13C455.2 -5 449.8 4.3 446.2 14.4H429.7C423.7 14.4 418.5 18.7 417.5 24.7C415.5 36.7 415.4 49.3 417.5 61.8C418.5 67.8 423.7 72.2 429.7 72.2H446.2C449.8 82.3 455.2 91.6 462.1 99.6L453.9 113.9C450.9 119.1 452 125.8 456.7 129.6C466.2 137.5 477.1 143.8 488.8 148.2C494.5 150.3 500.9 148.1 503.9 142.8L512.1 128.5C522.6 130.4 533.3000000000001 130.4 543.8000000000001 128.5L552.0000000000001 142.8C555.0000000000001 148.1 561.4000000000001 150.3 567.1000000000001 148.2C578.9000000000001 143.8 589.7000000000002 137.5 599.2000000000002 129.6C603.8000000000002 125.8 605.0000000000001 119.1 602.0000000000001 113.9L593.8000000000001 99.6C600.7 91.6 606.1 82.3 609.7 72.2H626.2C632.2 72.2 637.4000000000001 67.9 638.4000000000001 61.9C640.4000000000001 49.9 640.5000000000001 37.3 638.4000000000001 24.8C637.4000000000001 18.8 632.2 14.4 626.2 14.4H609.7C606.1 4.3 600.7 -5 593.8000000000001 -13L602.0000000000001 -27.3C605.0000000000001 -32.5 603.9000000000001 -39.2 599.2000000000002 -43C589.7000000000002 -50.9 578.8000000000002 -57.2 567.1000000000001 -61.6C561.4000000000001 -63.7 555.0000000000001 -61.5 552.0000000000001 -56.2L543.8000000000001 -41.9C533.4000000000001 -43.8 522.6 -43.8 512.1 -41.9zM501.6 17C540.1 -12.6 584 31.3 554.4 69.8C515.9 99.4 472 55.5 501.6 17z" />
-			<glyph glyph-name="columns" unicode="" horiz-adv-x="512" d=" M464 416H48C21.49 416 0 394.51 0 368V16C0 -10.51 21.49 -32 48 -32H464C490.51 -32 512 -10.51 512 16V368C512 394.51 490.51 416 464 416zM224 32H64V288H224V32zM448 32H288V288H448V32z" />
-			<glyph glyph-name="comment-alt" unicode="" horiz-adv-x="576" d=" M576 208C576 93 447 0 288 0C239.7 0 194.1 8.6 154.1 23.8C113.8 -7.4 64.3 -26.5 11.7 -31.9C6.5 -32.5 1.5 -29.1 0.2 -24.2C-1.1 -19.2 2.9 -16.1 6.8 -12.4C26.1 6 49.5 20.4 58.7 82.2000000000001C21.9 117.1 0 160.7 0 208C0 322.9 129 416 288 416S576 322.9 576 208zM160 256C133.5 256 112 234.5 112 208S133.5 160 160 160S208 181.5 208 208S186.5 256 160 256zM288 256C261.5 256 240 234.5 240 208S261.5 160 288 160S336 181.5 336 208S314.5 256 288 256zM416 256C389.5 256 368 234.5 368 208S389.5 160 416 160S464 181.5 464 208S442.5 256 416 256z" />
-			<glyph glyph-name="comment" unicode="" horiz-adv-x="576" d=" M576 208C576 93 447 0 288 0C239.7 0 194.1 8.6 154.1 23.8C113.8 -7.4 64.3 -26.5 11.7 -31.9C6.5 -32.5 1.5 -29.1 0.2 -24.2C-1.1 -19.2 2.9 -16.1 6.8 -12.4C26.1 6 49.5 20.4 58.7 82.2000000000001C21.9 117.1 0 160.7 0 208C0 322.9 129 416 288 416S576 322.9 576 208z" />
-			<glyph glyph-name="comments" unicode="" horiz-adv-x="576" d=" M224 89.143C186.401 89.143 150.973 95.906 119.857 107.843C88.482 83.294 49.988 68.335 9.093 64.047A8.632 8.632 0 0 0 8.203 63.9999999999999C4.467 63.9999999999999 1.092 66.4979999999999 0.186 70.0609999999999C-0.794 74.0219999999999 2.274 76.4599999999999 5.312 79.3659999999999C20.329 93.805 38.534 105.156 45.654 153.6629999999999C17.015 181.114 0 215.378 0 252.571C0 342.8400000000001 100.297 416 224 416S448 342.841 448 252.571C447.999 162.239 347.703 89.143 224 89.143zM571.067 -18.0310000000001C557.123 -4.9040000000001 540.218 5.415 533.607 49.5119999999999C602.415 114.0799999999999 585.778 206.447 495.933 256.577C495.964 255.243 495.999 253.91 495.999 252.571C495.999 130.078 366.416 36.1769999999999 211.747 41.3489999999999C249.868 10.3879999999999 305.736 -9.1430000000001 367.999 -9.1430000000001C402.913 -9.1430000000001 435.81 -2.9950000000001 464.703 7.8569999999999C493.837 -14.4600000000001 529.581 -28.0590000000001 567.5559999999999 -31.9570000000001C571.3419999999999 -32.3520000000001 574.919 -29.9840000000001 575.8259999999999 -26.4900000000001C576.7369999999999 -22.8890000000001 573.8879999999999 -20.6730000000001 571.0669999999999 -18.0310000000001z" />
-			<glyph glyph-name="compass" unicode="ï…Ž" horiz-adv-x="512" d=" M504 192C504 55.033 392.967 -56 256 -56S8 55.033 8 192S119.033 440 256 440S504 328.967 504 192zM307.4460000000001 327.156L204.804 229.377A23.997 23.997 0 0 1 198.0320000000001 217.648L164.673 79.869C158.993 56.41 187.4500000000001 40.551 204.553 56.845L307.1930000000001 154.624A23.99 23.99 0 0 1 313.9650000000001 166.353L347.324 304.132C352.942 327.3300000000001 324.733 343.625 307.4460000000001 327.156zM256 224C238.327 224 224 209.673 224 192S238.327 160 256 160S288 174.327 288 192S273.673 224 256 224z" />
-			<glyph glyph-name="compress" unicode="" horiz-adv-x="448" d=" M436 256H312C298.7 256 288 266.7 288 280V404C288 410.6 293.4 416 300 416H340C346.6 416 352 410.6 352 404V320H436C442.6 320 448 314.6 448 308V268C448 261.4 442.6 256 436 256zM160 280V404C160 410.6 154.6 416 148 416H108C101.4 416 96 410.6 96 404V320H12C5.4 320 0 314.6 0 308V268C0 261.4 5.4 256 12 256H136C149.3 256 160 266.7 160 280zM160 -20V104C160 117.3 149.3 128 136 128H12C5.4 128 0 122.6 0 116V76C0 69.4 5.4 64 12 64H96V-20C96 -26.6 101.4 -32 108 -32H148C154.6 -32 160 -26.6 160 -20zM352 -20V64H436C442.6 64 448 69.4 448 76V116C448 122.6 442.6 128 436 128H312C298.7 128 288 117.3 288 104V-20C288 -26.6 293.4 -32 300 -32H340C346.6 -32 352 -26.6 352 -20z" />
-			<glyph glyph-name="copy" unicode="" horiz-adv-x="448" d=" M320 0V-40C320 -53.255 309.255 -64 296 -64H24C10.745 -64 0 -53.255 0 -40V328C0 341.255 10.745 352 24 352H96V56C96 25.121 121.121 0 152 0H320zM320 344V448H152C138.745 448 128 437.255 128 424V56C128 42.745 138.745 32 152 32H424C437.255 32 448 42.745 448 56V320H344C330.8 320 320 330.8 320 344zM440.971 375.029L375.029 440.971A24 24 0 0 1 358.0590000000001 448H352V352H448V358.059A24 24 0 0 1 440.971 375.029z" />
-			<glyph glyph-name="copyright" unicode="" horiz-adv-x="512" d=" M256 440C119.033 440 8 328.967 8 192S119.033 -56 256 -56S504 55.033 504 192S392.967 440 256 440zM373.134 93.247C371.5420000000001 91.38 333.358 47.516 263.283 47.516C178.591 47.516 118.799 110.776 118.799 193.083C118.799 274.386 180.803 336.4840000000001 262.5610000000001 336.4840000000001C329.5180000000001 336.4840000000001 364.5260000000001 299.1690000000001 365.9830000000001 297.5800000000001A12 12 0 0 0 367.2210000000001 282.9570000000001L344.8410000000001 248.3020000000001C340.7920000000001 242.0350000000001 332.0670000000001 240.9510000000001 326.6070000000001 246.0070000000001C326.3740000000001 246.2210000000001 300.0780000000001 269.8870000000001 264.7270000000001 269.8870000000001C218.6110000000001 269.8870000000001 190.8110000000001 236.3120000000001 190.8110000000001 193.8050000000001C190.8110000000001 154.2030000000001 216.3250000000001 114.1130000000001 265.0880000000001 114.1130000000001C303.7850000000001 114.1130000000001 330.3680000000001 142.4510000000001 330.6320000000001 142.7380000000001C335.7640000000001 148.3030000000001 344.6910000000001 147.7710000000001 349.1400000000001 141.6850000000001L373.6870000000001 108.1130000000001A12.001000000000001 12.001000000000001 0 0 0 373.1340000000001 93.2470000000001z" />
-			<glyph glyph-name="credit-card" unicode="" horiz-adv-x="576" d=" M0 16C0 -10.5 21.5 -32 48 -32H528C554.5 -32 576 -10.5 576 16V192H0V16zM192 84C192 90.6 197.4 96 204 96H340C346.6 96 352 90.6 352 84V44C352 37.4 346.6 32 340 32H204C197.4 32 192 37.4 192 44V84zM64 84C64 90.6 69.4 96 76 96H148C154.6 96 160 90.6 160 84V44C160 37.4 154.6 32 148 32H76C69.4 32 64 37.4 64 44V84zM576 368V320H0V368C0 394.5 21.5 416 48 416H528C554.5 416 576 394.5 576 368z" />
-			<glyph glyph-name="crop" unicode="ï„¥" horiz-adv-x="512" d=" M488 96H448V338.7L505 395.7C514.4 405.1 514.4 420.3 505 429.6L493.7 441C484.3 450.4 469.1 450.4 459.8 441L402.8 384H160V424C160 437.3 149.3 448 136 448H88C74.7 448 64 437.3 64 424V384H24C10.7 384 0 373.3 0 360V312C0 298.7 10.7 288 24 288H64V24C64 10.7 74.7 0 88 0H352V-40C352 -53.3 362.7 -64 376 -64H424C437.3 -64 448 -53.3 448 -40V0H488C501.3 0 512 10.7 512 24V72C512 85.3 501.3 96 488 96zM306.7 288L160 141.3V288H306.7zM205.3 96L352 242.7V96H205.3z" />
-			<glyph glyph-name="crosshairs" unicode="" horiz-adv-x="512" d=" M500 224H469.636C455.724 317.675 381.675 391.724 288 405.636V436C288 442.627 282.627 448 276 448H236C229.373 448 224 442.627 224 436V405.636C130.325 391.724 56.276 317.675 42.364 224H12C5.373 224 0 218.627 0 212V172C0 165.373 5.373 160 12 160H42.364C56.276 66.325 130.325 -7.724 224 -21.636V-52C224 -58.627 229.373 -64 236 -64H276C282.627 -64 288 -58.627 288 -52V-21.636C381.675 -7.724 455.724 66.325 469.636 160H500C506.627 160 512 165.373 512 172V212C512 218.627 506.627 224 500 224zM288 43.366V84C288 90.627 282.627 96 276 96H236C229.373 96 224 90.627 224 84V43.366C165.826 55.768 119.783 101.757 107.366 160H148C154.627 160 160 165.373 160 172V212C160 218.627 154.627 224 148 224H107.366C119.768 282.174 165.757 328.217 224 340.634V300C224 293.373 229.373 288 236 288H276C282.627 288 288 293.373 288 300V340.634C346.174 328.232 392.217 282.243 404.634 224H364C357.373 224 352 218.627 352 212V172C352 165.373 357.373 160 364 160H404.634C392.2320000000001 101.826 346.243 55.783 288 43.366zM288 192C288 174.327 273.673 160 256 160S224 174.327 224 192C224 209.673 238.327 224 256 224S288 209.673 288 192z" />
-			<glyph glyph-name="cube" unicode="" horiz-adv-x="512" d=" M239.1 441.7L31.1 363.7C12.4 356.7 0 338.7 0 318.7V93.6C0 75.4 10.3 58.8 26.5 50.7L234.5 -53.3C248 -60.1 263.9 -60.1 277.4 -53.3L485.4 50.7C501.7 58.8000000000001 511.9 75.5000000000001 511.9 93.6V318.7C511.9 338.7 499.5 356.6 480.8 363.6L272.8 441.6C262 445.8 250 445.8 239.1 441.7zM256 379.6L448 307.6V306.5L256 228.5L64 306.5V307.6L256 379.6zM288 23.6V172.5L448 237.5V103.6L288 23.6z" />
-			<glyph glyph-name="cubes" unicode="" horiz-adv-x="512" d=" M488.6 197.8L392 234V342.5C392 357.5 382.7 370.9 368.6 376.2L268.6 413.7C260.5 416.8 251.5000000000001 416.8 243.3 413.7L143.3 376.2C129.2 370.9 119.9 357.5 119.9 342.5V234L23.3 197.8C9.3 192.5 0 179.1 0 164.1V54C0 40.4 7.7 27.9 19.9 21.8L119.9 -28.2C130 -33.3 142 -33.3 152.1 -28.2L256 23.8L359.9 -28.2C370 -33.3 382 -33.3 392.1 -28.2L492.1 21.8C504.3 27.9 511.9999999999999 40.4 511.9999999999999 54V164.1C511.9999999999999 179.1 502.6999999999999 192.5 488.6 197.8zM358 233.2L273 201.3V269.5L358 306.5V233.2zM154 343.9L256 382.1L358 343.9V343.3L256 301.9L154 343.3V343.9zM238 52.8L153 10.3V89.4L238 128.2V52.8zM238 164.8L136 123.4L34 164.8V165.4L136 203.6L238 165.4V164.8zM478 52.8L393 10.3V89.4L478 128.2V52.8zM478 164.8L376 123.4L274 164.8V165.4L376 203.6L478 165.4V164.8z" />
-			<glyph glyph-name="cut" unicode="" horiz-adv-x="448" d=" M444.485 25.574C449.1740000000001 20.885 449.1690000000001 13.287 444.485 8.603C411.6810000000001 -24.201 358.4940000000001 -24.201 325.69 8.603L210.176 124.117L185.317 99.258C189.63 88.343 192 76.448 192 64C192 10.981 149.019 -32 96 -32S0 10.981 0 64S42.981 160 96 160C100.536 160 104.995 159.678 109.363 159.07L142.293 192L109.363 224.93C104.995 224.322 100.536 224 96 224C42.981 224 0 266.981 0 320S42.981 416 96 416S192 373.019 192 320C192 307.552 189.63 295.6570000000001 185.318 284.742L210.177 259.883L325.69 375.397C358.4940000000001 408.201 411.681 408.201 444.485 375.397C449.1690000000001 370.713 449.1740000000001 363.115 444.485 358.426L278.0590000000001 192L444.485 25.574zM96 352C78.355 352 64 337.645 64 320S78.355 288 96 288S128 302.355 128 320S113.645 352 96 352M96 96C78.355 96 64 81.645 64 64S78.355 32 96 32S128 46.355 128 64S113.645 96 96 96M208 204C201.373 204 196 198.627 196 192S201.373 180 208 180S220 185.373 220 192S214.627 204 208 204z" />
-			<glyph glyph-name="database" unicode="" horiz-adv-x="448" d=" M448 374.857V329.1430000000001C448 288.857 347.667 256 224 256S0 288.857 0 329.1430000000001V374.857C0 415.1430000000001 100.333 448 224 448S448 415.1430000000001 448 374.857zM448 272V169.143C448 128.857 347.667 96 224 96S0 128.857 0 169.143V272C48.125 238.857 136.208 223.428 224 223.428S399.874 238.857 448 272zM448 112V9.143C448 -31.143 347.667 -64 224 -64S0 -31.143 0 9.143V112C48.125 78.857 136.208 63.428 224 63.428S399.874 78.857 448 112z" />
-			<glyph glyph-name="deaf" unicode="" horiz-adv-x="512" d=" M216 188C216 172.536 203.464 160 188 160S160 172.536 160 188C160 232.112 195.888 268 240 268S320 232.112 320 188C320 172.536 307.464 160 292 160S264 172.536 264 188C264 201.234 253.233 212 240 212S216 201.234 216 188zM240 364C142.953 364 64 285.0470000000001 64 188C64 172.536 76.536 160 92 160S120 172.536 120 188C120 254.168 173.832 308 240 308S360 254.168 360 188C360 112.836 288.991 117.689 288.003 44.378L288 44C288 15.327 264.673 -8 236 -8C220.536 -8 208 -20.536 208 -36S220.536 -64 236 -64C295.475 -64 343.876 -15.672 344 43.774C344.5950000000001 78.202 416 92.014 416 188C416 285.0470000000001 337.0470000000001 364 240 364zM508.485 416.201L480.2 444.485C475.513 449.171 467.916 449.171 463.229 444.485L376.2 357.456C371.514 352.77 371.514 345.1720000000001 376.2 340.485L404.485 312.2C409.171 307.514 416.769 307.514 421.4550000000001 312.2L508.485 399.229C513.172 403.917 513.172 411.515 508.485 416.201zM168.97 133.255C164.284 137.941 156.686 137.941 152 133.255L3.515 -15.23C-1.171 -19.916 -1.171 -27.514 3.515 -32.201L31.8 -60.485C36.487 -65.171 44.084 -65.171 48.771 -60.485L197.256 88C201.942 92.686 201.942 100.284 197.256 104.971L168.97 133.255z" />
-			<glyph glyph-name="desktop" unicode="" horiz-adv-x="576" d=" M528 448H48C21.5 448 0 426.5 0 400V80C0 53.5 21.5 32 48 32H240L224 -16H152C138.7 -16 128 -26.7 128 -40S138.7 -64 152 -64H424C437.3 -64 448 -53.3 448 -40S437.3 -16 424 -16H352L336 32H528C554.5 32 576 53.5 576 80V400C576 426.5 554.5 448 528 448zM512 96H64V384H512V96z" />
-			<glyph glyph-name="dollar-sign" unicode="ï…•" horiz-adv-x="320" d=" M113.411 278.625C113.411 301.962 134.947 317.0420000000001 168.276 317.0420000000001C195.002 317.0420000000001 222.392 304.779 244.737 288.709C250.617 284.48 258.867 286.355 262.312 292.726L285.8640000000001 336.275C288.5130000000001 341.173 287.4600000000001 347.266 283.2890000000001 350.9550000000001C259.0080000000001 372.432 224.1540000000001 385.045 192.0000000000001 388.761V436C192.0000000000001 442.627 186.6270000000001 448 180.0000000000001 448H140.0000000000001C133.3730000000001 448 128.0000000000001 442.627 128.0000000000001 436V386.168C69.3730000000001 372.878 30.7010000000001 330.251 30.7010000000001 277.529C30.7010000000001 153.996 215.466 166.719 215.466 108.115C215.466 88.292 199.155 66.957 163.3420000000001 66.957C132.591 66.957 100.41 82.837 75.494 102.844C70.184 107.108 62.412 106.159 58.335 100.704L27.946 60.037C24.319 55.1830000000001 24.871 48.3800000000001 29.248 44.1900000000001C53.297 21.1700000000001 88.497 2.9350000000001 127.9990000000001 -3.783V-52C127.9990000000001 -58.627 133.3720000000001 -64 139.9990000000001 -64H179.9990000000001C186.6260000000001 -64 191.9990000000001 -58.627 191.9990000000001 -52V-4.562C257.7190000000001 5.653 298.1750000000001 54.624 298.1750000000001 111.954C298.1760000000001 231.642 113.4110000000001 215.661 113.4110000000001 278.625z" />
-			<glyph glyph-name="dot-circle" unicode="" horiz-adv-x="512" d=" M256 440C119.033 440 8 328.967 8 192S119.033 -56 256 -56S504 55.033 504 192S392.967 440 256 440zM336 192C336 147.888 300.112 112 256 112S176 147.888 176 192S211.888 272 256 272S336 236.112 336 192z" />
-			<glyph glyph-name="download" unicode="" horiz-adv-x="512" d=" M216 448H296C309.3 448 320 437.3 320 424V256H407.7C425.5 256 434.4 234.5 421.8 221.9L269.7 69.7C262.2 62.2 249.9 62.2 242.4 69.7L90.1 221.9C77.5 234.5 86.4 256 104.2 256H192V424C192 437.3 202.7 448 216 448zM512 72V-40C512 -53.3 501.3 -64 488 -64H24C10.7 -64 0 -53.3 0 -40V72C0 85.3 10.7 96 24 96H170.7L219.7 47C239.8 26.9 272.2 26.9 292.3 47L341.3 96H488C501.3 96 512 85.3 512 72zM388 -16C388 -5 379 4 368 4S348 -5 348 -16S357 -36 368 -36S388 -27 388 -16zM452 -16C452 -5 443 4 432 4S412 -5 412 -16S421 -36 432 -36S452 -27 452 -16z" />
-			<glyph glyph-name="edit" unicode="" horiz-adv-x="576" d=" M402.6 364.8L492.8 274.6C496.6 270.8 496.6 264.6 492.8 260.8L274.4 42.4L181.6 32.1C169.2 30.7 158.7 41.2 160.1 53.6L170.4 146.4L388.8 364.8C392.6 368.6 398.8 368.6 402.6 364.8zM564.6 387.7L515.8000000000001 436.5C500.6000000000001 451.7 475.9000000000001 451.7 460.6000000000001 436.5L425.2000000000001 401.1C421.4000000000001 397.3 421.4000000000001 391.1 425.2000000000001 387.3L515.4000000000001 297.1C519.2 293.3 525.4000000000001 293.3 529.2 297.1L564.6 332.5C579.8000000000001 347.8 579.8000000000001 372.5 564.6 387.7zM384 101.8V0H64V320H293.8C297 320 300 321.3 302.3 323.5L342.3 363.5C349.9000000000001 371.1 344.5 384 333.8 384H48C21.5 384 0 362.5 0 336V-16C0 -42.5 21.5 -64 48 -64H400C426.5 -64 448 -42.5 448 -16V141.8C448 152.5 435.1 157.8 427.5 150.3L387.5 110.3C385.3 108 384 105 384 101.8z" />
-			<glyph glyph-name="eject" unicode="" horiz-adv-x="448" d=" M448 64V0C448 -17.673 433.673 -32 416 -32H32C14.327 -32 0 -17.673 0 0V64C0 81.673 14.327 96 32 96H416C433.673 96 448 81.673 448 64zM48.053 128H399.939C441.5900000000001 128 463.52 177.674 435.322 208.435L259.383 400.442C240.369 421.185 207.632 421.186 188.616 400.442L12.67 208.435C-15.475 177.732 6.324 128 48.053 128z" />
-			<glyph glyph-name="ellipsis-h" unicode="" horiz-adv-x="512" d=" M328 192C328 152.2 295.8 120 256 120S184 152.2 184 192S216.2 264 256 264S328 231.8 328 192zM432 264C392.2 264 360 231.8 360 192S392.2 120 432 120S504 152.2 504 192S471.8 264 432 264zM80 264C40.2 264 8 231.8 8 192S40.2 120 80 120S152 152.2 152 192S119.8 264 80 264z" />
-			<glyph glyph-name="ellipsis-v" unicode="ï…‚" horiz-adv-x="192" d=" M96 264C135.8 264 168 231.8 168 192S135.8 120 96 120S24 152.2 24 192S56.2 264 96 264zM24 368C24 328.2 56.2 296 96 296S168 328.2 168 368S135.8 440 96 440S24 407.8 24 368zM24 16C24 -23.8 56.2 -56 96 -56S168 -23.8 168 16S135.8 88 96 88S24 55.8 24 16z" />
-			<glyph glyph-name="envelope-open" unicode="" horiz-adv-x="512" d=" M512 -16C512 -42.51 490.51 -64 464 -64H48C21.49 -64 0 -42.51 0 -16V247.276A48 48 0 0 0 18.387 285.052C43.3 304.581 63.888 320.4170000000001 182.587 406.563C199.412 418.83 232.797 448.347 256 447.997C279.198 448.351 312.596 418.825 329.413 406.564C448.1 320.427 468.716 304.569 493.613 285.052A48 48 0 0 0 512 247.276V-16zM446.334 180.605C443.771 184.333 438.634 185.2000000000001 434.995 182.512C412.15 165.639 379.533 141.807 329.413 105.433C312.588 93.167 279.2030000000001 63.652 256 64.003C232.789 63.659 199.441 93.146 182.587 105.433C132.473 141.803 99.853 165.637 77.005 182.512C73.366 185.2 68.229 184.333 65.666 180.605L56.594 167.409A7.997999999999999 7.997999999999999 0 0 1 58.433 156.442C81.32 139.543 113.887 115.752 163.736 79.574C184.01 64.793 220.26 31.761 256 32.001C291.724 31.759 327.961 64.7720000000001 348.2630000000001 79.574C398.1130000000001 115.7530000000001 430.6810000000001 139.544 453.566 156.442A7.997999999999999 7.997999999999999 0 0 1 455.405 167.409L446.334 180.605z" />
-			<glyph glyph-name="envelope-square" unicode="" horiz-adv-x="448" d=" M400 416H48C21.49 416 0 394.51 0 368V16C0 -10.51 21.49 -32 48 -32H400C426.51 -32 448 -10.51 448 16V368C448 394.51 426.51 416 400 416zM178.117 185.896C87.429 251.713 88.353 251.879 64 270.833V296C64 309.255 74.745 320 88 320H360C373.255 320 384 309.255 384 296V270.833C359.629 251.864 360.566 251.709 269.883 185.895C259.383 178.24 238.491 159.775 224 160.001C209.497 159.783 188.633 178.228 178.117 185.896zM384 230.225V88C384 74.745 373.255 64 360 64H88C74.745 64 64 74.745 64 88V230.225C77.958 219.431 97.329 204.989 159.303 160.011C173.465 149.67 197.278 127.866 223.997 128.001C250.884 127.867 275.034 150.042 288.717 160.026C350.675 204.991 370.042 219.432 384 230.225z" />
-			<glyph glyph-name="envelope" unicode="" horiz-adv-x="512" d=" M502.3 257.2C506.2 260.3 512 257.4 512 252.5V48C512 21.5 490.5 0 464 0H48C21.5 0 0 21.5 0 48V252.4C0 257.4 5.7 260.2000000000001 9.7 257.1C32.1 239.7 61.8 217.6 163.8 143.5C184.9 128.1 220.5 95.7 256 95.9C291.7 95.6 328 128.7 348.3 143.5C450.3 217.6 479.9 239.8 502.3 257.2zM256 128C279.2 127.6 312.6 157.2 329.4 169.4C462.1 265.7 472.2 274.1 502.8 298.1C508.6 302.6 511.9999999999999 309.6 511.9999999999999 317V336C511.9999999999999 362.5 490.4999999999999 384 463.9999999999999 384H48C21.5 384 0 362.5 0 336V317C0 309.6 3.4 302.7 9.2 298.1C39.8 274.2 49.9 265.7 182.6 169.4C199.4 157.2 232.8 127.6 256 128z" />
-			<glyph glyph-name="eraser" unicode="ï„­" horiz-adv-x="512" d=" M497.941 174.059C516.6859999999999 192.804 516.6859999999999 223.196 497.941 241.9410000000001L337.941 401.9410000000001C319.196 420.6860000000001 288.805 420.687 270.058 401.9410000000001L14.058 145.941C-4.687 127.196 -4.687 96.804 14.058 78.059L110.058 -17.941A48.004000000000005 48.004000000000005 0 0 1 144 -32H500C506.627 -32 512 -26.627 512 -20V20C512 26.627 506.627 32 500 32H355.883L497.941 174.059zM195.314 236.6860000000001L332.687 99.3130000000001L265.373 32H150.628L70.628 112L195.314 236.686z" />
-			<glyph glyph-name="euro-sign" unicode="ï…“" horiz-adv-x="320" d=" M310.706 34.235C309.392 40.865 302.8710000000001 45.107 296.2820000000001 43.604C285.5900000000001 41.165 268.86 38.191 250.8560000000001 38.191C194.0930000000001 38.191 148.9270000000001 72.9810000000001 129.3950000000001 123.6400000000001H243.0840000000001A12 12 0 0 1 254.7920000000001 133.009L261.165 161.369C262.851 168.8710000000001 257.146 176 249.457 176H115.22C114.01 190.328 113.806 204.287 115.357 218.245H261.95A12 12 0 0 1 273.673 227.679L280.185 257.434C281.823 264.918 276.124 272 268.462 272H130.184C150.817 316.991 192.874 347.03 247.803 347.03C262.289 347.03 276.367 344.78 285.654 342.885C291.87 341.617 298.001 345.3830000000001 299.656 351.5080000000001L311.647 395.8760000000001C313.469 402.617 309.182 409.492 302.321 410.793C290.217 413.088 270.71 416 249.635 416C152.451 416 74.03 355.748 45.075 272H12C5.373 272 0 266.627 0 260V230.245C0 223.618 5.373 218.245 12 218.245H33.569C32.56 204.638 32.388 188.958 33.388 176H12C5.373 176 0 170.627 0 164V135.64C0 129.013 5.373 123.64 12 123.64H42.114C67.139 33.308 145.264 -32 249.635 -32C275.936 -32 298.197 -27.456 310.736 -24.212C316.903 -22.617 320.763 -16.504 319.524 -10.255L310.706 34.235z" />
-			<glyph glyph-name="exchange-alt" unicode="" horiz-adv-x="512" d=" M0 280V296C0 309.255 10.745 320 24 320H384V368C384 389.367 409.899 400.0420000000001 424.971 384.971L504.971 304.971C514.343 295.598 514.343 280.4020000000001 504.971 271.03L424.971 191.03C409.956 176.018 384 186.544 384 208V256H24C10.745 256 0 266.745 0 280zM488 128H128V176C128 197.314 102.138 208.08 87.029 192.971L7.029 112.971C-2.343 103.598 -2.343 88.402 7.029 79.03L87.029 -0.97C102.057 -15.997 128 -5.437 128 16V64H488C501.255 64 512 74.745 512 88V104C512 117.255 501.255 128 488 128z" />
-			<glyph glyph-name="exclamation-circle" unicode="" horiz-adv-x="512" d=" M504 192C504 55.003 392.957 -56 256 -56S8 55.003 8 192C8 328.9170000000001 119.043 440 256 440S504 328.9170000000001 504 192zM256 142C230.595 142 210 121.405 210 96S230.595 50 256 50S302 70.595 302 96S281.405 142 256 142zM212.327 307.346L219.745 171.346C220.092 164.982 225.354 160 231.727 160H280.273C286.646 160 291.908 164.982 292.255 171.346L299.673 307.346C300.048 314.2200000000001 294.575 320 287.6910000000001 320H224.308C217.424 320 211.952 314.2200000000001 212.327 307.346z" />
-			<glyph glyph-name="exclamation-triangle" unicode="" horiz-adv-x="576" d=" M569.517 7.987C587.975 -24.007 564.806 -64 527.94 -64H48.054C11.117 -64 -11.945 -23.945 6.477 7.987L246.423 424.015C264.89 456.024 311.1430000000001 455.966 329.577 424.015L569.517 7.987zM288 94C262.5950000000001 94 242 73.405 242 48S262.5950000000001 2 288 2S334 22.595 334 48S313.405 94 288 94zM244.327 259.346L251.745 123.346C252.092 116.982 257.354 112 263.727 112H312.273C318.646 112 323.908 116.982 324.255 123.346L331.673 259.346C332.048 266.2200000000001 326.575 272 319.6910000000001 272H256.3080000000001C249.4240000000001 272 243.9520000000001 266.2200000000001 244.3270000000001 259.346z" />
-			<glyph glyph-name="exclamation" unicode="" horiz-adv-x="192" d=" M176 16C176 -28.112 140.112 -64 96 -64S16 -28.112 16 16S51.888 96 96 96S176 60.112 176 16zM25.26 422.801L38.86 150.801C39.499 138.028 50.041 128 62.83 128H129.17C141.959 128 152.501 138.028 153.14 150.801L166.74 422.801C167.425 436.51 156.496 448 142.77 448H49.23C35.504 448 24.575 436.51 25.26 422.801z" />
-			<glyph glyph-name="expand-arrows-alt" unicode="" horiz-adv-x="448.1" d=" M448.1 104V-8C448.1 -21.3 437.4000000000001 -32 424.1 -32H312.1C290.7000000000001 -32 280 -6.1 295.1 9L331.3 45.2L224 152.4L116.8 45.1L153 9C168.1 -6.1 157.4 -32 136 -32H24C10.7 -32 0 -21.3 0 -8V104C0 125.4 25.9 136.1 41 121L77.2 84.8L184.5 192L77.2 299.3L41 263C25.9 247.9 0 258.6 0 280V392C0 405.3 10.7 416 24 416H136C157.4 416 168.1 390.1 153 375L116.8 338.8L224 231.6L331.3 338.9L295.1 375C280 390.1 290.7000000000001 416 312.1 416H424.1C437.4000000000001 416 448.1 405.3 448.1 392V280C448.1 258.6 422.2000000000001 247.9 407.1 263L370.9000000000001 299.2L263.6 192L370.9000000000001 84.7L407.1 120.9C422.2000000000001 136.1 448.1 125.4 448.1 104z" />
-			<glyph glyph-name="expand" unicode="" horiz-adv-x="448" d=" M0 268V392C0 405.3 10.7 416 24 416H148C154.6 416 160 410.6 160 404V364C160 357.4 154.6 352 148 352H64V268C64 261.4 58.6 256 52 256H12C5.4 256 0 261.4 0 268zM288 404V364C288 357.4 293.4 352 300 352H384V268C384 261.4 389.4 256 396 256H436C442.6 256 448 261.4 448 268V392C448 405.3 437.3 416 424 416H300C293.4 416 288 410.6 288 404zM436 128H396C389.4 128 384 122.6 384 116V32H300C293.4 32 288 26.6 288 20V-20C288 -26.6 293.4 -32 300 -32H424C437.3 -32 448 -21.3 448 -8V116C448 122.6 442.6 128 436 128zM160 -20V20C160 26.6 154.6 32 148 32H64V116C64 122.6 58.6 128 52 128H12C5.4 128 0 122.6 0 116V-8C0 -21.3 10.7 -32 24 -32H148C154.6 -32 160 -26.6 160 -20z" />
-			<glyph glyph-name="external-link-alt" unicode="" horiz-adv-x="576" d=" M576 424V296.016C576 274.555 550.04 264.0360000000001 535.029 279.045L499.322 314.754L255.799 71.231C246.426 61.858 231.231 61.858 221.858 71.231L199.231 93.858C189.858 103.231 189.858 118.427 199.231 127.799L442.756 371.324L407.053 407.029C391.9820000000001 422.1 402.656 448 424.024 448H552C565.255 448 576 437.255 576 424zM407.029 177.206L391.029 161.206A23.999000000000002 23.999000000000002 0 0 1 384 144.235V0H64V320H328A24.003 24.003 0 0 1 344.9700000000001 327.029L360.9700000000001 343.029C376.089 358.149 365.381 384 344 384H48C21.49 384 0 362.51 0 336V-16C0 -42.51 21.49 -64 48 -64H400C426.51 -64 448 -42.51 448 -16V160.236C448 181.618 422.148 192.326 407.029 177.206z" />
-			<glyph glyph-name="external-link-square-alt" unicode="" horiz-adv-x="448" d=" M448 368V16C448 -10.51 426.51 -32 400 -32H48C21.49 -32 0 -10.51 0 16V368C0 394.51 21.49 416 48 416H400C426.51 416 448 394.51 448 368zM360 352H248.029C226.716 352 215.949 326.139 231.058 311.029L263.042 279.0420000000001L67.515 83.515C62.829 78.829 62.829 71.231 67.515 66.544L98.544 35.515C103.231 30.829 110.829 30.829 115.515 35.515L311.041 231.041L343.029 199.05C358.058 184.023 384 194.575 384 216.021V328C384 341.255 373.255 352 360 352z" />
-			<glyph glyph-name="eye-dropper" unicode="" horiz-adv-x="512" d=" M177.38 241.36L39.03 103.03A24.01 24.01 0 0 1 32 86.06V24L0 -32L32 -64L88 -32H150.06C156.42 -32 162.53 -29.47 167.03 -24.97L305.38 113.36L177.38 241.36zM402.932 210.89L419.884 193.94C429.254 184.5700000000001 429.254 169.37 419.884 160L378.911 119.03C369.6190000000001 109.718 354.405 109.596 344.971 119.03L183.028 280.9700000000001C173.658 290.3400000000001 173.658 305.54 183.028 314.91L224 355.88C233.289 365.189 248.502 365.318 257.94 355.88L274.932 338.89L357.538 421.491C392.728 456.681 450.038 456.991 485.538 421.491C526.028 373.411 515.198 323.151 485.538 293.491L402.932 210.89z" />
-			<glyph glyph-name="eye-slash" unicode="" horiz-adv-x="576" d=" M286.693 56.016L319.272 9.474A333.958 333.958 0 0 0 288 8C168.19 8 63.031 71.949 6.646 167.631A47.999 47.999 0 0 0 6.646 216.37C30.669 257.136 63.559 292.145 102.67 318.907L159.747 237.368C154.736 223.18 152 207.913 152 192C152 117.264 212.135 56.718 286.693 56.016zM569.354 167.631C537.687 113.894 490.607 70.1710000000001 434.1790000000001 42.1560000000001L434.1900000000001 42.1410000000001L475.6600000000001 -17.0589999999999C483.2600000000001 -27.9189999999999 480.6200000000001 -42.8789999999999 469.7600000000001 -50.4789999999999L456.6500000000001 -59.6589999999999C445.7900000000001 -67.2589999999999 430.8300000000001 -64.6189999999999 423.2300000000001 -53.759L100.34 401.06C92.74 411.92 95.38 426.88 106.24 434.48L119.35 443.6600000000001C130.21 451.26 145.17 448.62 152.77 437.76L203.808 365.1430000000001C230.68 372.224 258.905 376 288 376C407.81 376 512.969 312.051 569.354 216.369A48.00200000000001 48.00200000000001 0 0 0 569.354 167.631zM424 192C424 267.174 363.162 328 288 328C270.061 328 252.944 324.527 237.271 318.228L256.57 291.17C282.439 299.341 311.614 297.3330000000001 336.9700000000001 283.76H336.9400000000001C313.2900000000001 283.76 294.1200000000001 264.5900000000001 294.1200000000001 240.9400000000001C294.1200000000001 217.314 313.2670000000001 198.12 336.9400000000001 198.12C360.5900000000001 198.12 379.7600000000001 217.29 379.7600000000001 240.9400000000001V240.9700000000001C398.2220000000001 206.48 396.0720000000001 163.0560000000001 371.5100000000001 130.0200000000001V130.0100000000001L390.8240000000001 102.9490000000001C411.496 126.8 424 157.926 424 192zM262.014 91.273L184.484 202.03C179.47 149.643 213.798 103.6760000000001 262.014 91.273z" />
-			<glyph glyph-name="eye" unicode="" horiz-adv-x="576" d=" M569.354 216.369C512.969 312.051 407.81 376 288 376C168.14 376 63.004 312.006 6.646 216.369A47.999 47.999 0 0 1 6.646 167.63C63.031 71.949 168.19 8 288 8C407.86 8 512.996 71.994 569.354 167.631A47.997 47.997 0 0 1 569.354 216.369zM288 56C212.838 56 152 116.827 152 192C152 267.1620000000001 212.826 328 288 328C363.1620000000001 328 424 267.174 424 192C424 116.838 363.174 56 288 56zM392 192C392 134.562 345.438 88 288 88S184 134.562 184 192C184 209.708 188.431 226.379 196.236 240.973L196.235 240.941C196.235 217.29 215.408 198.118 239.059 198.118S281.883 217.291 281.883 240.941C281.883 264.592 262.71 283.765 239.059 283.765L239.027 283.764C253.621 291.569 270.292 296 288 296C345.438 296 392 249.438 392 192z" />
-			<glyph glyph-name="fast-backward" unicode="" horiz-adv-x="512" d=" M0 12V372C0 378.6 5.4 384 12 384H52C58.6 384 64 378.6 64 372V220.1L235.5 376.6C256.1 393.7 288 379.4 288 352V220.1L459.5 376.6C480.1 393.7 512 379.4 512 352V32C512 4.6 480.1 -9.7 459.5 7.4L288 162.7V32C288 4.6 256.1 -9.7 235.5 7.4L64 162.7V12C64 5.4 58.6 0 52 0H12C5.4 0 0 5.4 0 12z" />
-			<glyph glyph-name="fast-forward" unicode="" horiz-adv-x="512" d=" M512 372V12C512 5.4 506.6 0 500 0H460C453.4 0 448 5.4 448 12V163.9L276.5 7.4C255.9 -9.8 224 4.6 224 32V163.9L52.5 7.4C31.9 -9.8 0 4.6 0 32V352C0 379.4 31.9 393.7 52.5 376.6L224 221.2V352C224 379.4 255.9 393.7 276.5 376.6L448 221.2V372C448 378.6 453.4 384 460 384H500C506.6 384 512 378.6 512 372z" />
-			<glyph glyph-name="fax" unicode="" horiz-adv-x="512" d=" M128 304V-16C128 -42.51 106.51 -64 80 -64H48C21.49 -64 0 -42.51 0 -16V304C0 330.51 21.49 352 48 352H80C106.51 352 128 330.51 128 304zM512 240V-16C512 -42.51 490.51 -64 464 -64H192C165.49 -64 144 -42.51 144 -16V408C144 430.091 161.909 448 184 448H391.432A39.996 39.996 0 0 0 419.716 436.284L468.285 387.715A39.999 39.999 0 0 0 480 359.432V285.258C498.641 278.667 512 260.898 512 240zM192 256H432V352H408C394.7970000000001 352 384 362.7970000000001 384 376V400H192V256zM288 52C288 58.627 282.627 64 276 64H236C229.373 64 224 58.627 224 52V12C224 5.373 229.373 0 236 0H276C282.627 0 288 5.373 288 12V52zM288 180C288 186.627 282.627 192 276 192H236C229.373 192 224 186.627 224 180V140C224 133.373 229.373 128 236 128H276C282.627 128 288 133.373 288 140V180zM416 52C416 58.627 410.627 64 404 64H364C357.373 64 352 58.627 352 52V12C352 5.373 357.373 0 364 0H404C410.627 0 416 5.373 416 12V52zM416 180C416 186.627 410.627 192 404 192H364C357.373 192 352 186.627 352 180V140C352 133.373 357.373 128 364 128H404C410.627 128 416 133.373 416 140V180z" />
-			<glyph glyph-name="female" unicode="" horiz-adv-x="256" d=" M128 448C163.346 448 192 419.346 192 384S163.346 320 128 320C92.654 320 64 348.654 64 384S92.654 448 128 448M247.283 93.821L199.283 285.8210000000001A24 24 0 0 1 176 304H164.64C141.929 293.557 115.05 293.106 91.36 304H80A24 24 0 0 1 56.717 285.8210000000001L8.717 93.821C4.935 78.695 16.383 64 32 64H88V-40C88 -53.255 98.745 -64 112 -64H144C157.255 -64 168 -53.255 168 -40V64H224C239.591 64 251.071 78.671 247.283 93.821z" />
-			<glyph glyph-name="fighter-jet" unicode="" horiz-adv-x="640" d=" M544 224L416 240L368 256H344L227.158 404H266.667C278.3330000000001 404 288 406.625 288 410S278.3330000000001 416 266.6670000000001 416H152V404H168V240H120L53.333 320H18.667L8 309.333V240H16V224H64V221.334L0 213.334V170.667L64 162.667V160H16V144H8V74.667L18.667 64H53.334L120 144H168V-20H152V-32H266.6670000000001C278.334 -32 288 -29.375 288 -26S278.3330000000001 -20 266.6670000000001 -20H227.158L344 128H368L416 144L544 160C640 181.333 640 186.583 640 192C640 197.417 640 202.667 544 224z" />
-			<glyph glyph-name="file-alt" unicode="" horiz-adv-x="384" d=" M224 312V448H24C10.7 448 0 437.3 0 424V-40C0 -53.3 10.7 -64 24 -64H360C373.3 -64 384 -53.3 384 -40V288H248C234.8 288 224 298.8 224 312zM288 76C288 69.4 282.6 64 276 64H108C101.4 64 96 69.4 96 76V84C96 90.6 101.4 96 108 96H276C282.6 96 288 90.6 288 84V76zM288 140C288 133.4 282.6 128 276 128H108C101.4 128 96 133.4 96 140V148C96 154.6 101.4 160 108 160H276C282.6 160 288 154.6 288 148V140zM288 212V204C288 197.4 282.6 192 276 192H108C101.4 192 96 197.4 96 204V212C96 218.6 101.4 224 108 224H276C282.6 224 288 218.6 288 212zM384 326.1V320H256V448H262.1C268.5 448 274.6 445.5 279.1 441L377 343C381.5 338.5 384 332.4 384 326.1z" />
-			<glyph glyph-name="file-archive" unicode="" horiz-adv-x="384" d=" M224 312V448H160.4V416H128.4V448H24C10.7 448 0 437.3 0 424V-40C0 -53.3 10.7 -64 24 -64H360C373.3 -64 384 -53.3 384 -40V288H248C234.8 288 224 298.8 224 312zM95.9 416H127.9V384H95.9V416zM128.2 32C95 32 70.2 62.4 76.8 94.9L96.4 192V224H128.4V256H96.4V288H128.4V320H96.4V352H128.4V384H160.4V352H128.4V320H160.4V288H128.4V256H160.4V224H128.4V192H150.5C156.2 192 161.2 187.9 162.3 182.3L179.6 94.6C186 62.2000000000001 161.2 32 128.2 32zM160.9 85C160.9 70.1 146.4 58 128.5 58S96 70 96 85C96 99.9 110.5 112 128.4 112S160.9 99.9 160.9 85zM384 326.1V320H256V448H262.1C268.5 448 274.6 445.5 279.1 441L377 343C381.5 338.5 384 332.4 384 326.1z" />
-			<glyph glyph-name="file-audio" unicode="" horiz-adv-x="384" d=" M224 312V448H24C10.7 448 0 437.3 0 424V-40C0 -53.3 10.7 -64 24 -64H360C373.3 -64 384 -53.3 384 -40V288H248C234.8 288 224 298.8 224 312zM160 44C160 33.3 147.1 28 139.5 35.5L104 72H76C69.4 72 64 77.4 64 84V140C64 146.6 69.4 152 76 152H104L139.5 188.5C147.1 196.1 160 190.7 160 180V44zM193.2 91.6C202.3 100.9 202.3 115.7000000000001 193.2 125C171.1 147.8 205.4 181.2 227.6 158.5C254.8 130.6 254.8 86.1 227.6 58.1C205.8 35.8 170.7 68.5 193.2 91.6zM279.2 208.7C333.6 152.8 333.6 63.9 279.2 7.9C257.4 -14.5 222.2 18.2 244.8 41.4C281 78.6 281.1 137.9 244.8 175.2C222.7 198 257.1 231.5 279.2 208.7zM384 326.1V320H256V448H262.1C268.5 448 274.6 445.5 279.1 441L377 343C381.5 338.5 384 332.4 384 326.1z" />
-			<glyph glyph-name="file-code" unicode="" horiz-adv-x="384" d=" M384 326.059V320H256V448H262.0590000000001C268.4240000000001 448 274.5290000000001 445.471 279.0300000000001 440.971L376.971 343.03A24.005 24.005 0 0 0 384 326.059zM248 288C234.8 288 224 298.8 224 312V448H24C10.745 448 0 437.255 0 424V-40C0 -53.255 10.745 -64 24 -64H360C373.255 -64 384 -53.255 384 -40V288H248zM123.206 47.495A5.4 5.4 0 0 0 115.573 47.249L50.707 108.061A5.4 5.4 0 0 0 50.707 115.9400000000001L115.573 176.7520000000001A5.4 5.4 0 0 0 123.206 176.5060000000001L142.785 155.6210000000001A5.4 5.4 0 0 0 142.413 147.8740000000001L101.65 112L142.413 76.126A5.4 5.4 0 0 0 142.785 68.379L123.206 47.495zM174.501 -2.984L147.048 4.986A5.401999999999999 5.401999999999999 0 0 0 143.367 11.6780000000001L204.807 223.3040000000001A5.401999999999999 5.401999999999999 0 0 0 211.499 226.9850000000001L238.951 219.0150000000001A5.4 5.4 0 0 0 242.631 212.3230000000001L181.191 0.6970000000001A5.396999999999999 5.396999999999999 0 0 0 174.501 -2.9839999999999zM335.293 108.061L270.427 47.249A5.4 5.4 0 0 0 262.7940000000001 47.495L243.2140000000001 68.38A5.4 5.4 0 0 0 243.5860000000001 76.127L284.35 112L243.587 147.874A5.4 5.4 0 0 0 243.215 155.6210000000001L262.795 176.506A5.4 5.4 0 0 0 270.428 176.752L335.294 115.94A5.4 5.4 0 0 0 335.293 108.061z" />
-			<glyph glyph-name="file-excel" unicode="" horiz-adv-x="384" d=" M224 312V448H24C10.7 448 0 437.3 0 424V-40C0 -53.3 10.7 -64 24 -64H360C373.3 -64 384 -53.3 384 -40V288H248C234.8 288 224 298.8 224 312zM284.1 205.5L224 112L284.1 18.5C289.2000000000001 10.5 283.5 0 274 0H239.1C234.7 0 230.6 2.4 228.5 6.3C208.9 42.5 192 75 192 75C185.6 60.2 182 55 155.4 6.2C153.3 2.3 149.3 -0.1 144.9 -0.1H110C100.5 -0.1 94.8 10.4 99.9 18.4L160.2 111.9L99.9 205.4C94.7 213.4 100.5 223.9 110 223.9H144.8C149.2 223.9 153.3 221.5 155.4 217.6C181.5 168.8 175.4 184 192 149.1C192 149.1 198.1 160.8 228.6 217.6C230.7 221.5 234.8 223.9 239.2 223.9H274C283.5 224 289.2 213.5 284.1 205.5zM384 326.1V320H256V448H262.1C268.5 448 274.6 445.5 279.1 441L377 343C381.5 338.5 384 332.4 384 326.1z" />
-			<glyph glyph-name="file-image" unicode="" horiz-adv-x="384" d=" M384 326.059V320H256V448H262.0590000000001A24 24 0 0 0 279.029 440.971L376.9700000000001 343.03A24.002000000000002 24.002000000000002 0 0 0 384 326.059zM248 288C234.8 288 224 298.8 224 312V448H24C10.745 448 0 437.255 0 424V-40C0 -53.255 10.745 -64 24 -64H360C373.255 -64 384 -53.255 384 -40V288H248zM112.545 272C139.055 272 160.545 250.51 160.545 224S139.055 176 112.545 176S64.545 197.49 64.545 224S86.036 272 112.545 272zM320.545 32H64.545L65.03 80.485L104.545 120C109.231 124.686 116.344 124.201 121.03 119.515L160.545 80L264.06 183.515C268.746 188.201 276.344 188.201 281.031 183.515L320.545 144V32z" />
-			<glyph glyph-name="file-pdf" unicode="" horiz-adv-x="384" d=" M181.9 191.9C176.9 207.9 177 238.8 179.9 238.8C188.3 238.8 187.5 201.9 181.9 191.9zM180.2 144.7C172.5 124.5 162.9 101.4 151.8 82C170.1 89 190.8 99.2 214.7 103.9C202 113.5 189.8 127.3 180.2 144.7zM86.1 19.9C86.1 19.1 99.3 25.3 121 60.1C114.3 53.8 91.9 35.6 86.1 19.9zM248 288H384V-40C384 -53.3 373.3 -64 360 -64H24C10.7 -64 0 -53.3 0 -40V424C0 437.3 10.7 448 24 448H224V312C224 298.8 234.8 288 248 288zM240 116.2C220 128.4 206.7 145.2 197.3 170C201.8 188.5 208.9 216.6 203.5 234.2C198.8 263.6 161.1 260.7 155.7 241C150.7 222.7 155.3 196.9 163.8 164C152.2 136.4 135.1 99.4 123 78.2C122.9 78.2 122.9 78.1 122.8 78.1C95.7 64.2 49.2 33.6 68.3 10.1C73.9 3.2 84.3 0.1 89.8 0.1C107.7 0.1 125.5 18.1 150.9 61.9C176.7 70.4 205 81 229.9 85.1C251.6 73.3 277 65.6 293.9 65.6C323.1 65.6 325.1 97.6 313.6 108.9999999999999C299.7 122.6 259.3 118.6999999999999 240 116.1999999999999zM377 343L279 441C274.5 445.5 268.4 448 262 448H256V320H384V326.1C384 332.4 381.5 338.5 377 343zM302.9 87.7C307 90.4 300.4 99.6 260.1 96.7C297.2 80.9 302.9 87.7 302.9 87.7z" />
-			<glyph glyph-name="file-powerpoint" unicode="" horiz-adv-x="384" d=" M193.7 176.8C202.5 176.8 209.2 174.1 214 168.7C223.6 157.8 223.8 136 213.8 124.6C208.9 119 201.9 116.1 192.7 116.1H165.8V176.8H193.7zM377 343L279 441C274.5 445.5 268.4 448 262 448H256V320H384V326.1C384 332.4 381.5 338.5 377 343zM224 312V448H24C10.7 448 0 437.3 0 424V-40C0 -53.3 10.7 -64 24 -64H360C373.3 -64 384 -53.3 384 -40V288H248C234.8 288 224 298.8 224 312zM277 146.8C277 56.5 188.2 69.2000000000001 165.9 69.2000000000001V12C165.9 5.4 160.5 0 153.9 0H123.1C116.5 0 111.1 5.4 111.1 12V211.8C111.1 218.4 116.5 223.8 123.1 223.8H204.1C248.6 223.8 277 191 277 146.8z" />
-			<glyph glyph-name="file-video" unicode="" horiz-adv-x="384" d=" M384 326.059V320H256V448H262.0590000000001C268.4240000000001 448 274.5290000000001 445.471 279.0300000000001 440.971L376.971 343.03A24.005 24.005 0 0 0 384 326.059zM224 312V448H24C10.745 448 0 437.255 0 424V-40C0 -53.255 10.745 -64 24 -64H360C373.255 -64 384 -53.255 384 -40V288H248C234.8 288 224 298.8 224 312zM320 167.984V56.0210000000001C320 34.5760000000001 294.057 24.0230000000001 279.029 39.0500000000001L224 94.059V56C224 42.745 213.255 32 200 32H88C74.745 32 64 42.745 64 56V168C64 181.255 74.745 192 88 192H200C213.255 192 224 181.255 224 168V129.941L279.029 184.954C294.04 199.964 320 189.445 320 167.984z" />
-			<glyph glyph-name="file-word" unicode="" horiz-adv-x="384" d=" M224 312V448H24C10.7 448 0 437.3 0 424V-40C0 -53.3 10.7 -64 24 -64H360C373.3 -64 384 -53.3 384 -40V288H248C234.8 288 224 298.8 224 312zM281.1 192H305C312.7 192 318.4 184.9 316.7 177.3L278.7 9.3C277.5 3.8 272.6 0 267 0H229C223.5 0 218.7 3.8 217.4 9.1C191.6 112.6 196.6 90.3 191.8 119.6H191.3C190.2 105.3 188.9 102.2000000000001 165.7 9.1C164.4 3.8 159.6 0 154.1 0H117C111.4 0 106.5 3.9 105.3 9.4L67.5 177.4C65.8 184.9 71.5 192 79.2 192H103.7C109.4 192 114.4 188 115.5 182.3C131.1 104.3 135.6 72.8 136.5 60.1C138.1 70.3 143.8 92.8 165.9 182.8C167.2 188.2 172 191.9 177.6 191.9H206.7C212.3 191.9 217.1 188.1 218.4 182.7000000000001C242.4 82.3000000000001 247.2 58.7000000000001 248 53.3000000000001C247.8 64.5000000000001 245.4 71.1000000000001 269.6 182.5000000000001C270.6 188.1000000000001 275.5 192.0000000000001 281.1 192.0000000000001zM384 326.1V320H256V448H262.1C268.5 448 274.6 445.5 279.1 441L377 343C381.5 338.5 384 332.4 384 326.1z" />
-			<glyph glyph-name="file" unicode="ï…›" horiz-adv-x="384" d=" M224 312V448H24C10.7 448 0 437.3 0 424V-40C0 -53.3 10.7 -64 24 -64H360C373.3 -64 384 -53.3 384 -40V288H248C234.8 288 224 298.8 224 312zM384 326.1V320H256V448H262.1C268.5 448 274.6 445.5 279.1 441L377 343C381.5 338.5 384 332.4 384 326.1z" />
-			<glyph glyph-name="film" unicode="" horiz-adv-x="512" d=" M488 384H480V364C480 357.4 474.6 352 468 352H428C421.4 352 416 357.4 416 364V384H96V364C96 357.4 90.6 352 84 352H44C37.4 352 32 357.4 32 364V384H24C10.7 384 0 373.3 0 360V24C0 10.7 10.7 0 24 0H32V20C32 26.6 37.4 32 44 32H84C90.6 32 96 26.6 96 20V0H416V20C416 26.6 421.4 32 428 32H468C474.6 32 480 26.6 480 20V0H488C501.3 0 512 10.7 512 24V360C512 373.3 501.3 384 488 384zM96 76C96 69.4 90.6 64 84 64H44C37.4 64 32 69.4 32 76V116C32 122.6 37.4 128 44 128H84C90.6 128 96 122.6 96 116V76zM96 172C96 165.4 90.6 160 84 160H44C37.4 160 32 165.4 32 172V212C32 218.6 37.4 224 44 224H84C90.6 224 96 218.6 96 212V172zM96 268C96 261.4 90.6 256 84 256H44C37.4 256 32 261.4 32 268V308C32 314.6 37.4 320 44 320H84C90.6 320 96 314.6 96 308V268zM368 60C368 53.4 362.6 48 356 48H156C149.4 48 144 53.4 144 60V156C144 162.6 149.4 168 156 168H356C362.6 168 368 162.6 368 156V60zM368 228C368 221.4 362.6 216 356 216H156C149.4 216 144 221.4 144 228V324C144 330.6 149.4 336 156 336H356C362.6 336 368 330.6 368 324V228zM480 76C480 69.4 474.6 64 468 64H428C421.4 64 416 69.4 416 76V116C416 122.6 421.4 128 428 128H468C474.6 128 480 122.6 480 116V76zM480 172C480 165.4 474.6 160 468 160H428C421.4 160 416 165.4 416 172V212C416 218.6 421.4 224 428 224H468C474.6 224 480 218.6 480 212V172zM480 268C480 261.4 474.6 256 468 256H428C421.4 256 416 261.4 416 268V308C416 314.6 421.4 320 428 320H468C474.6 320 480 314.6 480 308V268z" />
-			<glyph glyph-name="filter" unicode="ï‚°" horiz-adv-x="512" d=" M487.976 448H24.028C2.71 448 -8.047 422.134 7.058 407.029L192 222.059V16C192 8.169 195.821 0.83 202.237 -3.662L282.237 -59.642C298.02 -70.69 320 -59.493 320 -39.98V222.059L504.947 407.029C520.021 422.104 509.338 448 487.976 448z" />
-			<glyph glyph-name="fire-extinguisher" unicode="ï„´" horiz-adv-x="448" d=" M434.027 421.671L266.027 393.671C254.693 391.782 256 380.2 256 376H197.668C208.353 411.892 181.446 448 144 448C104.565 448 77.632 408.324 91.772 371.7970000000001C39.733 358.746 16.391 317.584 1.723 280.913C-3.2 268.606 2.786 254.639 15.093 249.716C27.41 244.79 41.372 250.791 46.289 263.086C75.058 335.01 106.964 328 168 328V300.924C126.457 290.062 96 251.689 96 206.795V-40C96 -53.255 106.745 -64 120 -64H264C277.255 -64 288 -53.255 288 -40V208C288 252.731 257.404 290.312 216 300.9700000000001V328H256C256 325.026 254.297 312.284 266.027 310.329L434.027 282.329C441.342 281.11 448 286.75 448 294.166V409.834C448 417.25 441.342 422.89 434.027 421.671zM144 376C135.178 376 128 383.178 128 392S135.178 408 144 408S160 400.822 160 392S152.822 376 144 376z" />
-			<glyph glyph-name="fire" unicode="" horiz-adv-x="384" d=" M216 424.142C216 447.944 185.347 456.907 171.851 437.18C48 256.149 224 248 224 160C224 124.371 194.886 95.542 159.15 96.006C123.98 96.462 96 125.78 96 160.954V246.464C96 268.1670000000001 69.529 278.689 54.568 262.968C27.801 234.842 0 186.668 0 128C0 22.131 86.131 -64 192 -64S384 22.131 384 128C384 298.29 216 321.003 216 424.142z" />
-			<glyph glyph-name="flag-checkered" unicode="ï„ž" horiz-adv-x="512" d=" M466.515 381.072C487.731 390.926 512 375.449 512 352.056V108.956C512 98.43 506.839 88.549 498.157 82.598C462.32 58.034 423.822 41.74 375.652 41.74C308.279 41.74 264.022 76.523 210.435 76.523C159.582 76.523 124.311 66.465 96 54.401V-40C96 -53.255 85.255 -64 72 -64H56C42.745 -64 32 -53.255 32 -40V346.055C17.497 356.175 8 372.974 8 392C8 423.704 34.345 449.254 66.338 447.952C94.806 446.794 118.117 423.984 119.889 395.548C120.409 387.206 119.079 379.238 116.303 371.986C137.039 379.616 159.393 384 184.348 384C251.721 384 295.978 349.217 349.5650000000001 349.217C390.0610000000001 349.217 432.177 365.123 466.515 381.072zM96 313.37V242.88C125 253.55 147.18 260.71 169.6 263.79V335.36C146.1 333.19 129.16 325.57 96 313.37zM316.8 304.18C290.3830000000001 308.852 266.914 318.159 243.2 325.52V258.1C267.375 251.3940000000001 290.766 241.6560000000001 316.8 235.79V304.18zM169.6 263.79V193.75C202.396 196.728 223.51 194.385 243.2 189.95V258.1C217.953 265.135 196.619 267.523 169.6 263.79zM243.2 121.5600000000001C269.538 116.9080000000001 292.932 107.633 316.8 100.2200000000001V167.6300000000001C292.523 174.3760000000001 269.26 184.0800000000001 243.2 189.9500000000001V121.5600000000001zM96 105.9C119.62 114.29 143.79 119.74 169.6 122.46V193.75C143.49 191.4 122.24 185.71 96 176.39V105.9zM464 327.5C442.7 318.65 417.41 309.86 390.4 305.03V233.12C417.71 237.48 440.43 247.22 464 257.01V327.5zM464 117.54V188.03C441.81 173.83 415.2200000000001 165.42 390.4 162.01V90.43C415.47 92.81 438.89 101.47 464 117.54zM316.8 235.79V167.63C342.464 160.496 363.416 158.288 390.4 162.01V233.12C364.401 228.933 340.457 230.444 316.8 235.79z" />
-			<glyph glyph-name="flag" unicode="" horiz-adv-x="512" d=" M349.565 349.217C295.978 349.217 251.721 384 184.348 384C159.393 384 137.039 379.616 116.303 371.987A55.947 55.947 0 0 1 119.889 395.549C118.117 423.985 94.806 446.794 66.338 447.952C34.345 449.254 8 423.704 8 392C8 372.974 17.497 356.175 32 346.055V-40C32 -53.255 42.745 -64 56 -64H72C85.255 -64 96 -53.255 96 -40V54.4C124.311 66.464 159.582 76.522 210.435 76.522C264.023 76.522 308.279 41.739 375.6520000000001 41.739C423.8210000000001 41.739 462.3190000000001 58.033 498.157 82.597C506.84 88.548 512 98.429 512 108.955V352.055C512 375.448 487.731 390.925 466.515 381.071C432.177 365.123 390.061 349.217 349.565 349.217z" />
-			<glyph glyph-name="flask" unicode="" horiz-adv-x="448" d=" M437.2 44.5L320 233V384H328C341.3 384 352 394.7 352 408V424C352 437.3 341.3 448 328 448H120C106.7 448 96 437.3 96 424V408C96 394.7 106.7 384 120 384H128V233L10.8 44.5C-18.5 -2.6 15.3 -64 70.9 -64H377.1C432.8 -64 466.5 -2.5 437.2000000000001 44.5zM137.9 128L186.1 205.6C189.8 210.8 191.9 217.2 191.9 224V384H255.9000000000001V224C255.9000000000001 217.1 258.1 210.8 261.7000000000001 205.6L309.9000000000001 128H137.9z" />
-			<glyph glyph-name="folder-open" unicode="" horiz-adv-x="576" d=" M572.694 155.907L500.27 31.752A63.99699999999999 63.99699999999999 0 0 0 444.989 0H45.025C26.502 0 14.961 20.093 24.294 36.093L96.718 160.2480000000001A64 64 0 0 0 152 192H551.9639999999999C570.487 192 582.0279999999999 171.907 572.694 155.907zM152 224H480V272C480 298.51 458.51 320 432 320H272L208 384H48C21.49 384 0 362.51 0 336V57.954L69.077 176.372C86.214 205.75 117.989 224 152 224z" />
-			<glyph glyph-name="folder" unicode="" horiz-adv-x="512" d=" M464 320H272L208 384H48C21.49 384 0 362.51 0 336V48C0 21.49 21.49 0 48 0H464C490.51 0 512 21.49 512 48V272C512 298.51 490.51 320 464 320z" />
-			<glyph glyph-name="font" unicode="" horiz-adv-x="448" d=" M152 32H127.987L154.573 112.782H292.8L319.386 32H296C287.163 32 280 24.837 280 16V-16C280 -24.837 287.163 -32 296 -32H432C440.837 -32 448 -24.837 448 -16V16C448 24.837 440.837 32 432 32H405.261L275.495 405.254A16 16 0 0 1 260.382 416H187.616A16 16 0 0 1 172.503 405.254L42.739 32H16C7.163 32 0 24.837 0 16V-16C0 -24.837 7.163 -32 16 -32H152C160.837 -32 168 -24.837 168 -16V16C168 24.837 160.837 32 152 32zM216.353 303.778C220.701 318.9940000000001 222.963 331.9340000000001 223.939 338.4220000000001C224.778 331.901 226.878 318.9460000000001 231.6660000000001 303.716L273.0010000000001 179.71H174.382L216.353 303.778z" />
-			<glyph glyph-name="forward" unicode="" horiz-adv-x="512" d=" M500.5 216.6L308.5 376.6C287.9 393.7 256 379.4 256 352V32C256 4.6 287.9 -9.8 308.5 7.4L500.5 167.4C515.8 180.2 515.8 203.8 500.5 216.6zM244.5 216.6L52.5 376.6C31.9 393.7 0 379.4 0 352V32C0 4.6 31.9 -9.8 52.5 7.4L244.5 167.4C259.8 180.2 259.8 203.8 244.5 216.6z" />
-			<glyph glyph-name="frown" unicode="ï„™" horiz-adv-x="512" d=" M504 192C504 55.033 392.967 -56 256 -56S8 55.033 8 192S119.033 440 256 440S504 328.967 504 192zM108 256C108 218.503 138.503 188 176 188S244 218.503 244 256S213.497 324 176 324S108 293.497 108 256zM268.5 256C268.5 218.779 298.779 188.5 336 188.5S403.5 218.779 403.5 256S373.221 323.5 336 323.5S268.5 293.221 268.5 256zM336 304A47.789 47.789 0 0 1 313.397 298.353H313.412C324.328 298.353 333.177 289.504 333.177 278.588S324.328 258.8230000000001 313.412 258.8230000000001S293.647 267.6720000000001 293.647 278.588V278.603A47.789 47.789 0 0 1 288 256C288 229.49 309.49 208 336 208S384 229.49 384 256S362.51 304 336 304zM176 304A47.789 47.789 0 0 1 153.397 298.353H153.412C164.328 298.353 173.177 289.504 173.177 278.588S164.328 258.8230000000001 153.412 258.8230000000001S133.647 267.6720000000001 133.647 278.588V278.603A47.789 47.789 0 0 1 128 256C128 229.49 149.49 208 176 208S224 229.49 224 256S202.51 304 176 304zM368.551 91.34C309.423 182.795 202.705 182.934 143.487 91.34C131.985 73.55 158.87 56.192 170.36 73.966C216.986 146.084 295.222 145.821 341.678 73.966C353.006 56.442 380.226 73.282 368.551 91.34z" />
-			<glyph glyph-name="futbol" unicode="" horiz-adv-x="512" d=" M504 192C504 55.033 392.967 -56 256 -56S8 55.033 8 192S119.033 440 256 440S504 328.967 504 192zM456 192L455.997 192.282L429.933 169.541L367.254 228.041L383.7080000000001 312.396L418.011 309.324C393.122 343.54 358.007 369.413 317.302 382.4650000000001L330.9530000000001 350.526L256 309L181.047 350.525L194.698 382.464C154.067 369.436 118.918 343.594 93.989 309.323L128.554 312.396L144.746 228.041L82.068 169.541L56.004 192.282L56.001 192C56.001 148.985 69.498 108.048 94.473 74.009L102.177 107.906L187.315 97.459L223.616 19.633L193.714 1.847C233.916 -11.275 278.004 -11.301 318.286 1.847L288.384 19.633L324.685 97.4590000000001L409.823 107.9060000000001L417.527 74.0090000000001C442.503 108.048 456 148.985 456 192zM207.898 122.429L178.004 213.741L256 270.2680000000001L333.996 213.741L304.374 122.429H207.898z" />
-			<glyph glyph-name="gamepad" unicode="ï„›" horiz-adv-x="640" d=" M480 352H160C71.6 352 0 280.4 0 192S71.6 32 160 32C204.8 32 245.2 50.4 274.2 80H365.7C394.7 50.4 435.2 32 479.9 32C568.3 32 639.9 103.6 639.9 192S568.4 352 480 352zM256 172C256 165.4 250.6 160 244 160H192V108C192 101.4 186.6 96 180 96H140C133.4 96 128 101.4 128 108V160H76C69.4 160 64 165.4 64 172V212C64 218.6 69.4 224 76 224H128V276C128 282.6 133.4 288 140 288H180C186.6 288 192 282.6 192 276V224H244C250.6 224 256 218.6 256 212V172zM440 104C413.5 104 392 125.5 392 152S413.5 200 440 200S488 178.5 488 152S466.5 104 440 104zM520 184C493.5 184 472 205.5 472 232S493.5 280 520 280S568 258.5 568 232S546.5 184 520 184z" />
-			<glyph glyph-name="gavel" unicode="" horiz-adv-x="512" d=" M504.971 248.638L482.344 271.265C472.971 280.6380000000001 457.775 280.6380000000001 448.403 271.265L442.7460000000001 265.608L329.608 378.745L335.265 384.402C344.638 393.775 344.638 408.971 335.265 418.343L312.638 440.971C303.265 450.344 288.069 450.344 278.697 440.971L154.246 316.52C144.873 307.1470000000001 144.873 291.951 154.246 282.579L176.873 259.952C186.246 250.579 201.442 250.579 210.814 259.952L216.471 265.6090000000001L256.069 226.011L175.029 144.971L169.372 150.628C156.875 163.125 136.614 163.125 124.117 150.628L9.373 35.882C-3.124 23.385 -3.124 3.124 9.373 -9.373L54.628 -54.628C67.125 -67.125 87.386 -67.125 99.883 -54.628L214.628 60.117C227.125 72.614 227.125 92.875 214.628 105.372L208.971 111.029L290.011 192.069L329.6090000000001 152.471L323.9520000000001 146.814C314.5790000000001 137.441 314.5790000000001 122.245 323.9520000000001 112.8730000000001L346.5790000000001 90.246C355.9520000000001 80.8730000000001 371.1480000000001 80.8730000000001 380.5200000000001 90.246L504.9710000000001 214.697C514.3430000000001 224.069 514.3430000000001 239.2650000000001 504.9710000000001 248.6380000000001z" />
-			<glyph glyph-name="gem" unicode="" horiz-adv-x="576" d=" M485.5 448L576 288H474.9L405.7 448H485.5zM357.5 448L426.7 288H149.3L218.5 448H357.5zM90.5 448H170.3L101.1 288H0L90.5 448zM0 256H100.7L223.7 4.3C225.2 1.2 221 -1.6 218.7 1L0 256zM148.2 256H427.8L290.8 -62.2C289.8 -64.6 286.3 -64.6 285.3 -62.2L148.2 256zM352.3 4.3L475.3 256H576L357.3 1.1C355 -1.6 350.8 1.2 352.3 4.3z" />
-			<glyph glyph-name="genderless" unicode="" horiz-adv-x="288" d=" M144 272C188.1 272 224 236.1 224 192S188.1 112 144 112S64 147.9 64 192S99.9 272 144 272M144 336C64.5 336 0 271.5 0 192S64.5 48 144 48S288 112.5 288 192S223.5 336 144 336z" />
-			<glyph glyph-name="gift" unicode="" horiz-adv-x="512" d=" M488 256H423.488C438.7200000000001 272.997 448 295.434 448 320C448 372.935 404.935 416 352 416C310.003 416 283.258 395.307 256.008 361.85C226.671 397.808 199.613 416 160 416C107.065 416 64 372.935 64 320C64 295.434 73.28 272.997 88.512 256H24C10.745 256 0 245.255 0 232V152C0 138.745 10.745 128 24 128H32V16C32 -10.51 53.49 -32 80 -32H432C458.51 -32 480 -10.51 480 16V128H488C501.255 128 512 138.745 512 152V232C512 245.255 501.255 256 488 256zM280 288C304 344 335.324 352 352 352C369.645 352 384 337.645 384 320S369.645 288 352 288H280zM160 352C176.676 352 208 344 232 288H160C142.355 288 128 302.355 128 320S142.355 352 160 352zM208 224H304V40C304 26.745 293.255 16 280 16H232C218.745 16 208 26.745 208 40V224z" />
-			<glyph glyph-name="glass-martini" unicode="" horiz-adv-x="512" d=" M507.3 420.7C517.3 430.7 510.2 448 496 448H16C1.8 448 -5.4 430.8 4.7 420.7L216 209.4V-24H124C108.5 -24 96 -36.5 96 -52C96 -58.6 101.4 -64 108 -64H404C410.6 -64 416 -58.6 416 -52C416 -36.5 403.5 -24 388 -24H296V209.4L507.3 420.7z" />
-			<glyph glyph-name="globe" unicode="" horiz-adv-x="512" d=" M364.215 256H495.645C501.084 235.581 503.999 214.132 503.999 192S501.0839999999999 148.419 495.645 128H364.215C369.369 171.049 369.154 214.746 364.215 256zM185.214 96C195.892 42.32 218.387 -16.514 255.339 -55.992C255.56 -55.9929999999999 255.779 -55.9999999999999 256 -55.9999999999999S256.44 -55.992 256.661 -55.992C293.673 -16.449 316.128 42.422 326.786 96H185.214zM359.344 288H484.729C452.802 363.976 384.128 420.695 300.95 435.925C331.188 392.805 349.771 339.593 359.344 288zM331.994 256H180.006C174.667 214.086 174.661 169.963 180.006 128H331.995C337.334 169.915 337.3400000000001 214.037 331.9940000000001 256zM152.656 96H27.271C59.197 20.024 127.871 -36.695 211.049 -51.925C180.803 -8.789 162.226 44.425 152.656 96zM359.344 96C349.769 44.395 331.181 -8.814 300.95 -51.925C384.128 -36.695 452.802 20.024 484.728 96H359.344zM326.786 288C316.108 341.68 293.612 400.514 256.661 439.992C256.44 439.992 256.221 440 256 440S255.56 439.992 255.339 439.992C218.327 400.449 195.872 341.578 185.214 288H326.786zM16.355 256C10.915 235.581 8 214.132 8 192S10.915 148.419 16.355 128H147.785C142.846 169.254 142.631 212.951 147.785 256H16.355zM152.656 288C162.231 339.602 180.817 392.81 211.05 435.925C127.872 420.695 59.198 363.976 27.271 288H152.656z" />
-			<glyph glyph-name="graduation-cap" unicode="" horiz-adv-x="640" d=" M622.884 248.995L347.067 163.895A96 96 0 0 0 292.933 163.895L92.398 225.768C83.834 214.33 81.38 202.718 80.48 187.433C89.778 181.835 96 171.645 96 160C96 148.048 89.443 137.634 79.735 132.139L95.932 9.043C96.562 4.257 92.832 0 88 0H40C35.172 0 31.438 4.253 32.068 9.044L48.265 132.14C38.557 137.634 32 148.048 32 160C32 172.034 38.646 182.511 48.465 187.976C49.412 205.927 52.439 221.207 60.617 235.573L17.115 248.995C-5.761 255.796 -5.651 288.236 17.115 295.005L292.932 380.105A96 96 0 0 0 347.0660000000001 380.105L622.883 295.005C645.76 288.204 645.6500000000001 255.764 622.884 248.995zM356.503 133.318L356.296 133.254L356.089 133.193A127.99799999999999 127.99799999999999 0 0 0 283.912 133.193L283.705 133.254L283.498 133.318L132.584 179.888L120 96C120 60.654 209.543 32 320 32S520 60.654 520 96L507.417 179.888L356.503 133.3180000000001z" />
-			<glyph glyph-name="h-square" unicode="" horiz-adv-x="448" d=" M448 368V16C448 -10.51 426.51 -32 400 -32H48C21.49 -32 0 -10.51 0 16V368C0 394.51 21.49 416 48 416H400C426.51 416 448 394.51 448 368zM336 320H304C295.163 320 288 312.837 288 304V224H160V304C160 312.837 152.837 320 144 320H112C103.163 320 96 312.837 96 304V80C96 71.163 103.163 64 112 64H144C152.837 64 160 71.163 160 80V160H288V80C288 71.163 295.163 64 304 64H336C344.837 64 352 71.163 352 80V304C352 312.837 344.837 320 336 320z" />
-			<glyph glyph-name="hand-lizard" unicode="" horiz-adv-x="576" d=" M384 -32H576V84.222A95.998 95.998 0 0 1 561.167 135.485L398.127 393.632A48 48 0 0 1 357.544 416H24C10.745 416 0 405.255 0 392V376C0 345.072 25.072 320 56 320H285.981C298.825 320 307.537 306.933 302.596 295.077L281.186 243.692A32 32 0 0 0 251.648 224H128C92.654 224 64 195.346 64 160V152C64 138.745 74.745 128 88 128H235.406A47.995 47.995 0 0 0 261.098 120.545L372.846 49.734A24.001000000000005 24.001000000000005 0 0 0 384 29.461V-32z" />
-			<glyph glyph-name="hand-paper" unicode="" horiz-adv-x="448" d=" M408.781 319.993C386.356 320.4220000000001 368 301.64 368 279.2100000000001V192H360V368.21C360 390.64 341.644 409.4220000000001 319.219 408.993C297.488 408.577 280 390.831 280 369V192H272V407.21C272 429.64 253.644 448.4220000000001 231.219 447.993C209.488 447.577 192 429.831 192 408V192H184V367.21C184 389.64 165.644 408.4220000000001 143.219 407.993C121.488 407.577 104 389.831 104 368V132.0080000000001L72.352 175.5270000000001C59.359 193.393 34.343 197.3440000000001 16.475 184.35C-1.39 171.356 -5.34 146.34 7.653 128.473L133.254 -44.232A48 48 0 0 1 172.073 -64H369.663C391.937 -64 411.2850000000001 -48.676 416.387 -26.994L442.895 85.6659999999999A192.011 192.011 0 0 1 447.999 129.641V280C448 301.831 430.512 319.577 408.781 319.993z" />
-			<glyph glyph-name="hand-peace" unicode="" horiz-adv-x="448" d=" M408 232C385.908 232 368 214.091 368 192H360V224C360 246.091 342.092 264 320 264S280 246.091 280 224V192H272V400C272 426.51 250.51 448 224 448S176 426.51 176 400V192H162.428L92.688 369.551C82.994 394.226 55.134 406.37 30.461 396.676C5.787 386.983 -6.356 359.123 3.337 334.449L78.102 144.107L47.012 119.235C31.631 106.929 27.497 85.257 37.271 68.1539999999999L101.271 -43.8460000000001A39.998 39.998 0 0 1 136 -64H376C394.562 -64 410.686 -51.23 414.937 -33.162L446.937 102.838A39.97 39.97 0 0 1 448 112V192C448 214.091 430.092 232 408 232z" />
-			<glyph glyph-name="hand-point-down" unicode="" horiz-adv-x="384" d=" M91.826 -19.2V130.034C83.578 124.193 75.268 119.464 66.908 115.881C35.098 102.248 -0.014 125.778 0 160C0.008 178.616 10.897 192.203 29.092 200C57.378 212.122 93.421 278.648 106.415 307.534C114.371 325.391 131.894 335.987 150.26 335.998L150.261 336H321.7870000000001C333.5990000000001 336 343.6840000000001 327.404 345.49 315.731C352.74 268.894 383.973 253.971 383.805 192C383.798 189.276 384 178.746 384 176C384 125.346 361.878 94.426 312.737 103.4C303.44 84.803 273.251 72.662 250.422 86.95C229.245 62.305 196.526 64.311 179.478 80.651V-19.2C179.478 -43.35 159.277 -64 135.652 -64C112.369 -64 91.826 -42.65 91.826 -19.2zM112 376V424C112 437.255 122.745 448 136 448H328C341.255 448 352 437.255 352 424V376C352 362.745 341.255 352 328 352H136C122.745 352 112 362.745 112 376zM324 400C324 411.046 315.046 420 304 420S284 411.046 284 400S292.954 380 304 380S324 388.954 324 400z" />
-			<glyph glyph-name="hand-point-left" unicode="ï‚¥" horiz-adv-x="512" d=" M44.8 292.174H194.034C188.193 300.4220000000001 183.464 308.732 179.881 317.092C166.248 348.902 189.778 384.014 224 384C242.616 383.992 256.203 373.103 264 354.908C276.122 326.622 342.648 290.579 371.534 277.5850000000001C389.391 269.629 399.987 252.106 399.998 233.74L400 233.739V62.213C400 50.401 391.404 40.316 379.731 38.51C332.894 31.26 317.971 0.027 256 0.195C253.276 0.202 242.746 0 240 0C189.346 0 158.426 22.122 167.4 71.263C148.803 80.5600000000001 136.662 110.749 150.95 133.578C126.305 154.7550000000001 128.311 187.4740000000001 144.651 204.5220000000001H44.8C20.65 204.5220000000001 0 224.7230000000001 0 248.3480000000001C0 271.6310000000001 21.35 292.1740000000001 44.8 292.1740000000001zM440 272H488C501.255 272 512 261.255 512 248V56C512 42.745 501.255 32 488 32H440C426.745 32 416 42.745 416 56V248C416 261.255 426.745 272 440 272zM464 60C475.046 60 484 68.954 484 80S475.046 100 464 100S444 91.046 444 80S452.954 60 464 60z" />
-			<glyph glyph-name="hand-point-right" unicode="" horiz-adv-x="512" d=" M512 248.348C512 224.723 491.35 204.522 467.2 204.522H367.349C383.689 187.4740000000001 385.695 154.756 361.05 133.578C375.338 110.749 363.197 80.561 344.6 71.263C353.574 22.122 322.654 0 272 0C269.254 0 258.724 0.203 256 0.195C194.029 0.027 179.106 31.26 132.269 38.51C120.596 40.317 112 50.401 112 62.214V233.739L112.002 233.74C112.013 252.106 122.609 269.629 140.466 277.5850000000001C169.352 290.579 235.879 326.623 248 354.908C255.797 373.102 269.384 383.992 288 384C322.222 384.014 345.752 348.902 332.1190000000001 317.092C328.536 308.733 323.807 300.422 317.966 292.174H467.2C490.65 292.174 512 271.631 512 248.348zM96 248V56C96 42.745 85.255 32 72 32H24C10.745 32 0 42.745 0 56V248C0 261.255 10.745 272 24 272H72C85.255 272 96 261.255 96 248zM68 80C68 91.046 59.046 100 48 100S28 91.046 28 80S36.954 60 48 60S68 68.954 68 80z" />
-			<glyph glyph-name="hand-point-up" unicode="" horiz-adv-x="384" d=" M135.652 448C159.277 448 179.478 427.35 179.478 403.2V303.349C196.526 319.689 229.244 321.695 250.422 297.05C273.251 311.338 303.439 299.197 312.737 280.6C361.878 289.574 384 258.654 384 208C384 205.254 383.7970000000001 194.724 383.805 192C383.973 130.029 352.74 115.106 345.49 68.269C343.683 56.596 333.599 48 321.786 48H150.261L150.26 48.002C131.894 48.013 114.371 58.609 106.415 76.466C93.421 105.352 57.377 171.878 29.092 184C10.897 191.797 0.008 205.384 0 224C-0.014 258.222 35.098 281.752 66.908 268.1190000000001C75.267 264.536 83.578 259.807 91.826 253.966V403.2C91.826 426.65 112.369 448 135.652 448zM136 32H328C341.255 32 352 21.255 352 8V-40C352 -53.255 341.255 -64 328 -64H136C122.745 -64 112 -53.255 112 -40V8C112 21.255 122.745 32 136 32zM304 4C292.954 4 284 -4.954 284 -16S292.954 -36 304 -36S324 -27.046 324 -16S315.046 4 304 4z" />
-			<glyph glyph-name="hand-pointer" unicode="" horiz-adv-x="448" d=" M448 208V112C448 108.916 447.644 105.841 446.937 102.838L414.937 -33.162C410.686 -51.23 394.562 -64 376 -64H168A40.004 40.004 0 0 0 135.65 -47.527L7.653 128.473C-5.34 146.339 -1.39 171.356 16.475 184.349C34.342 197.343 59.359 193.392 72.352 175.526L104 132.008V408C104 430.091 121.908 448 144 448S184 430.091 184 408V208H192V248C192 270.091 209.908 288 232 288S272 270.091 272 248V208H280V232C280 254.091 297.908 272 320 272S360 254.091 360 232V208H368C368 230.091 385.908 248 408 248S448 230.091 448 208zM192 128H184V32H192V128zM280 128H272V32H280V128zM368 128H360V32H368V128z" />
-			<glyph glyph-name="hand-rock" unicode="" horiz-adv-x="512" d=" M512 319.2100000000001C512 345.5320000000001 491.139 367.554 464.82 367.993C437.935 368.442 416 346.783 416 320H408V351.21C408 377.532 387.139 399.554 360.82 399.993C333.935 400.442 312 378.783 312 352V320H304V367.21C304 393.532 283.139 415.554 256.82 415.993C229.935 416.442 208 394.783 208 368V320H200V351.21C200 377.532 179.139 399.554 152.82 399.993C125.935 400.442 104 378.783 104 352V216L96 223.111V271.2100000000001C96 297.5320000000001 75.139 319.554 48.82 319.993C21.935 320.442 0 298.783 0 272V205.555A95.998 95.998 0 0 1 32.221 133.804L143.889 34.543A47.999 47.999 0 0 0 160 -1.333V-8C160 -21.255 170.745 -32 184 -32H424C437.255 -32 448 -21.255 448 -8V-5.079A96.01 96.01 0 0 0 455.523 32.175L504.477 148.44A96.002 96.002 0 0 1 512 185.694V319.2100000000001z" />
-			<glyph glyph-name="hand-scissors" unicode="" horiz-adv-x="512" d=" M216 8C216 30.092 233.909 48 256 48V56H224C201.909 56 184 73.908 184 96S201.909 136 224 136H256V144H48C21.49 144 0 165.49 0 192S21.49 240 48 240H256V253.572L78.449 323.312C53.775 333.006 41.631 360.867 51.324 385.54C61.017 410.214 88.878 422.357 113.552 412.664L303.894 337.899L328.766 368.9890000000001C341.072 384.37 362.7440000000001 388.504 379.8470000000001 378.73L491.847 314.73A40.002 40.002 0 0 0 512 280V40C512 21.438 499.23 5.314 481.162 1.063L345.162 -30.937A39.982 39.982 0 0 0 336 -32H256C233.909 -32 216 -14.092 216 8z" />
-			<glyph glyph-name="hand-spock" unicode="" horiz-adv-x="512" d=" M10.872 131.415C26.011 147.501 51.326 148.269 67.415 133.1280000000001L128 76.107V155.5120000000001L88.995 327.135C84.099 348.677 97.593 370.1090000000001 119.135 375.005C140.684 379.899 162.11 366.406 167.005 344.8640000000001L201.747 192H211.58L164.016 399.034C159.07 420.565 172.514 442.028 194.044 446.974C215.576 451.924 237.038 438.476 241.984 416.9460000000001L293.664 192H308.769L357.194 385.702C362.5510000000001 407.134 384.269 420.164 405.701 414.806C427.1330000000001 409.448 440.1640000000001 387.731 434.805 366.299L391.231 192H402.311L433.079 321.265C438.196 342.756 459.764 356.033 481.256 350.912C502.747 345.795 516.021 324.226 510.903 302.735L474.611 150.268A96.02400000000002 96.02400000000002 0 0 1 472 128.033V85.931A96.002 96.002 0 0 0 468.04 58.6440000000001L441.8660000000001 -29.6429999999999C435.825 -50.022 417.101 -64 395.846 -64H179.172A48.00200000000001 48.00200000000001 0 0 0 146.274 -50.954L12.585 74.872C-3.502 90.013 -4.268 115.328 10.872 131.415z" />
-			<glyph glyph-name="handshake" unicode="" horiz-adv-x="640" d=" M72 336H24C10.745 336 0 325.255 0 312V104C0 90.745 10.745 80 24 80H72C85.255 80 96 90.745 96 104V312C96 325.255 85.255 336 72 336zM48 108C36.954 108 28 116.954 28 128S36.954 148 48 148S68 139.046 68 128S59.046 108 48 108zM616 336H568C554.745 336 544 325.255 544 312V104C544 90.745 554.745 80 568 80H616C629.255 80 640 90.745 640 104V312C640 325.255 629.255 336 616 336zM592 108C580.954 108 572 116.954 572 128S580.954 148 592 148S612 139.046 612 128S603.046 108 592 108zM485.94 355.33L528 307.26V128H508.83C509.39 142.96 504.45 156.98 494.83 167.71L413.91 266.62C416.84 269.82 416.67 274.78 413.53 277.78C410.71 280.48 406.45 280.7 403.39 278.54C402.97 278.24 343.04 215.61 343.04 215.61L342.84 215.4C318.936 188.495 276.713 189.196 253.69 216.8199999999999C238.21 235.3999999999999 238.4 262.2099999999999 254.14 280.58L320.7099999999999 358.25C334.304 374.12 354.534 384 376.7 384H422.75A83.98 83.98 0 0 0 485.94 355.33zM482.57 157.41C498.03 140.63 495.16 113.5800000000001 480.2 99.66C462.489 83.198 437.767 86.656 434.27 90.46C435.923 74.802 412.881 43.211 377.85 45.78C371.525 24.595 345.552 6.871 318.67 16.17C308.45 5.96 292.85 1.2 278.86 1.2C250.17 1.2 223.94 13.19 206.28 32L112 128V312.48L173.36 363.05A71.52 71.52 0 0 0 223.93 384H261.35C278.0800000000001 384 294.0300000000001 377.16 305.56 365.15L241.99 290.99C221.15 266.68 220.9 231.18 241.4 206.57C270.775 171.323 324.4070000000001 170.717 354.7100000000001 204.65L402.82 255L482.57 157.41z" />
-			<glyph glyph-name="hashtag" unicode="" horiz-adv-x="448" d=" M440.667 265.891L447.81 305.891C449.123 313.246 443.468 320 435.997 320H361.187L375.81 401.891C377.123 409.246 371.468 416 363.997 416H323.365A12 12 0 0 1 311.552 406.109L296.175 320H197.54L212.163 401.891C213.477 409.246 207.822 416 200.35 416H159.718A12 12 0 0 1 147.905 406.109L132.528 320H53.432A12 12 0 0 1 41.619 310.1090000000001L34.476 270.1090000000001C33.163 262.754 38.818 256 46.289 256H121.099L98.242 128H19.146A12 12 0 0 1 7.333 118.109L0.19 78.109C-1.123 70.754 4.532 64 12.003 64H86.813L72.19 -17.891C70.877 -25.246 76.532 -32 84.003 -32H124.635A12 12 0 0 1 136.448 -22.109L151.826 64H250.46L235.837 -17.891C234.523 -25.246 240.178 -32 247.65 -32H288.282A12 12 0 0 1 300.095 -22.109L315.472 64H394.568A12 12 0 0 1 406.381 73.891L413.524 113.891C414.837 121.2460000000001 409.182 128 401.711 128H326.901L349.7579999999999 256H428.854A12 12 0 0 1 440.6669999999999 265.891zM261.889 128H163.255L186.112 256H284.746L261.889 128z" />
-			<glyph glyph-name="hdd" unicode="ï‚ " horiz-adv-x="576" d=" M576 144V48C576 21.49 554.51 0 528 0H48C21.49 0 0 21.49 0 48V144C0 170.51 21.49 192 48 192H528C554.51 192 576 170.51 576 144zM528 224A79.557 79.557 0 0 0 558.777 217.835L462.25 362.626A48.003 48.003 0 0 1 422.311 384H153.689A48 48 0 0 1 113.751 362.626L17.223 217.835A79.557 79.557 0 0 0 48 224H528zM480 128C462.327 128 448 113.673 448 96S462.327 64 480 64S512 78.327 512 96S497.673 128 480 128zM384 128C366.327 128 352 113.673 352 96S366.327 64 384 64S416 78.327 416 96S401.673 128 384 128z" />
-			<glyph glyph-name="heading" unicode="" horiz-adv-x="512" d=" M496 368V400C496 408.837 488.837 416 480 416H320C311.163 416 304 408.837 304 400V368C304 359.163 311.163 352 320 352H357.621V224H154.379V352H192C200.837 352 208 359.163 208 368V400C208 408.837 200.837 416 192 416H32C23.163 416 16 408.837 16 400V368C16 359.163 23.163 352 32 352H69.275V32H32C23.163 32 16 24.837 16 16V-16C16 -24.837 23.163 -32 32 -32H192C200.837 -32 208 -24.837 208 -16V16C208 24.837 200.837 32 192 32H154.379V160H357.62V32H320C311.163 32 304 24.837 304 16V-16C304 -24.837 311.163 -32 320 -32H480C488.837 -32 496 -24.837 496 -16V16C496 24.837 488.837 32 480 32H442.725V352H480C488.837 352 496 359.163 496 368z" />
-			<glyph glyph-name="headphones" unicode="" horiz-adv-x="512" d=" M256 416C114.52 416 0 301.504 0 160V112A32 32 0 0 1 17.689 83.378L32.072 76.187C34.083 16.097 83.421 -32 144 -32H168C181.255 -32 192 -21.255 192 -8V168C192 181.255 181.255 192 168 192H144C112.658 192 84.329 179.121 64 158.373V160C64 265.8690000000001 150.131 352 256 352S448 265.8690000000001 448 160V158.373C427.671 179.121 399.342 192 368 192H344C330.745 192 320 181.255 320 168V-8C320 -21.255 330.745 -32 344 -32H368C428.579 -32 477.917 16.098 479.928 76.187L494.31 83.378A32 32 0 0 1 512 112V160C512 301.4790000000001 397.504 416 256 416z" />
-			<glyph glyph-name="heart" unicode="" horiz-adv-x="576" d=" M414.9 424C361.8 424 312 382.3 288 358.7C264 382.3 214.2 424 161.1 424C70.3 424 16 371.1 16 282.5C16 209.9 82.8 149.2 85.2 147.1L272.2 -33.7C281 -42.2 295 -42.2 303.8 -33.7L490.5 146.5C493.2 149.2 560 210 560 282.5C560 371.1 505.7 424 414.9 424z" />
-			<glyph glyph-name="heartbeat" unicode="" horiz-adv-x="576" d=" M47.9 191C31.6 215.3 16 247.5 16 282.5C16 371.1 70.3 424 161.1 424C214.2 424 264 382.3 288 358.7C312 382.3 361.8 424 414.9 424C505.7 424 560 371.1 560 282.5C560 247.5 544.5 215.3 528.1 191H408L381.6 249.6C376.9000000000001 258.5 364 258.1 360 248.9L306.7 114.3L235.4 328C231.7 338.6 216.7 338.7 212.8 328.2L164.8 191H47.9zM395.9 159C391.4 159 387.3 161.5 385.3 165.4L372.5 197.9L315.6 55.1C311.2 45.2 296.9 45.7 293.3 55.9999999999999L223.6 265.2L190 166.8C188.3 162.1 183.8 159 178.8 159H73.4C78.7 153.3 60.6 171 272.3 -33.6C281.1 -42.1 295.1 -42.1 303.9000000000001 -33.6C508.2 163.6 494.9 150.4 502.9 159H395.9000000000001z" />
-			<glyph glyph-name="history" unicode="" horiz-adv-x="512" d=" M504 192.469C504.253 55.829 392.82 -55.903 256.18 -55.999C197.165 -56.041 142.957 -35.469 100.358 -1.088C89.281 7.852 88.453 24.453 98.519 34.519L109.786 45.786C118.395 54.395 132.139 55.337 141.677 47.77C173.062 22.865 212.781 8 256 8C357.705 8 440 90.311 440 192C440 293.705 357.689 376 256 376C207.186 376 162.851 357.031 129.932 326.068L180.686 275.314C190.766 265.234 183.627 248 169.373 248H24C15.163 248 8 255.163 8 264V409.373C8 423.627 25.234 430.766 35.314 420.687L84.686 371.315C129.209 413.864 189.552 440 256 440C392.81 440 503.747 329.2200000000001 504 192.469zM323.088 113.685L332.911 126.315C341.0489999999999 136.778 339.164 151.857 328.701 159.994L288 191.651V296C288 309.255 277.255 320 264 320H248C234.745 320 224 309.255 224 296V160.349L289.409 109.475C299.872 101.338 314.95 103.222 323.088 113.685z" />
-			<glyph glyph-name="home" unicode="" horiz-adv-x="576" d=" M488 135.3V-8C488 -21.3 477.3 -32 464 -32H348C341.4 -32 336 -26.6 336 -20V92C336 98.6 330.6 104 324 104H252C245.4 104 240 98.6 240 92V-20C240 -26.6 234.6 -32 228 -32H112C98.7 -32 88 -21.3 88 -8V135.3C88 138.9 89.6 142.3 92.4 144.6L280.4 299.4000000000001C284.8 303 291.2 303 295.7 299.4000000000001L483.7 144.6C486.4 142.3 488 138.9 488 135.3zM571.6 196.2L488 265.1V403.6C488 410.2 482.6 415.6 476 415.6H420C413.4 415.6 408 410.2 408 403.6V331L318.5 404.7C300.8 419.3 275.2 419.3 257.5 404.7L4.4 196.2C-0.7 192 -1.4 184.4 2.8 179.3L28.3 148.3C32.5 143.2 40.1 142.5 45.2 146.7L280.4 340.4C284.8 344 291.2 344 295.7 340.4L530.9 146.7C536 142.5 543.6 143.2 547.8 148.3L573.3 179.3C577.5 184.5 576.6999999999999 192 571.5999999999999 196.2z" />
-			<glyph glyph-name="hospital" unicode="" horiz-adv-x="448" d=" M448 -44V-64H0V-44C0 -37.373 5.373 -32 12 -32H32V328C32 341.255 42.745 352 56 352H144V424C144 437.255 154.745 448 168 448H280C293.255 448 304 437.255 304 424V352H392C405.255 352 416 341.255 416 328V-32H436C442.627 -32 448 -37.373 448 -44zM308 256H268C261.373 256 256 250.627 256 244V204C256 197.373 261.373 192 268 192H308C314.627 192 320 197.373 320 204V244C320 250.627 314.627 256 308 256zM140 192H180C186.627 192 192 197.373 192 204V244C192 250.627 186.627 256 180 256H140C133.373 256 128 250.627 128 244V204C128 197.373 133.373 192 140 192zM244 64H204C197.373 64 192 58.627 192 52V-32H256V52C256 58.627 250.627 64 244 64zM308 160H268C261.373 160 256 154.627 256 148V108C256 101.373 261.373 96 268 96H308C314.627 96 320 101.373 320 108V148C320 154.627 314.627 160 308 160zM192 148C192 154.627 186.627 160 180 160H140C133.373 160 128 154.627 128 148V108C128 101.373 133.373 96 140 96H180C186.627 96 192 101.373 192 108V148zM182 352H208V326A6 6 0 0 1 214 320H234A6 6 0 0 1 240 326V352H266A6 6 0 0 1 272 358V378A6 6 0 0 1 266 384H240V410A6 6 0 0 1 234 416H214A6 6 0 0 1 208 410V384H182A6 6 0 0 1 176 378V358A6 6 0 0 1 182 352z" />
-			<glyph glyph-name="hourglass-end" unicode="" horiz-adv-x="384" d=" M360 384C373.255 384 384 394.745 384 408V424C384 437.255 373.255 448 360 448H24C10.745 448 0 437.255 0 424V408C0 394.745 10.745 384 24 384C24 293.035 75.016 216.266 144.842 192C75.016 167.734 24 90.965 24 0C10.745 0 0 -10.745 0 -24V-40C0 -53.255 10.745 -64 24 -64H360C373.255 -64 384 -53.255 384 -40V-24C384 -10.745 373.255 0 360 0C360 90.965 308.984 167.734 239.158 192C308.984 216.266 360 293.035 360 384zM192 240C134.213 240 88 306.5180000000001 88 384H296C296 306.055 249.49 240 192 240z" />
-			<glyph glyph-name="hourglass-half" unicode="" horiz-adv-x="384" d=" M360 448H24C10.745 448 0 437.255 0 424V408C0 394.745 10.745 384 24 384C24 293.035 75.016 216.266 144.842 192C75.016 167.734 24 90.965 24 0C10.745 0 0 -10.745 0 -24V-40C0 -53.255 10.745 -64 24 -64H360C373.255 -64 384 -53.255 384 -40V-24C384 -10.745 373.255 0 360 0C360 90.965 308.984 167.734 239.158 192C308.984 216.266 360 293.035 360 384C373.255 384 384 394.745 384 408V424C384 437.255 373.255 448 360 448zM284.9220000000001 64H99.08C116.139 110.797 151.176 144 192 144C232.821 144 267.862 110.804 284.9220000000001 64zM284.9410000000001 320H99.078C91.988 339.452 88 361.252 88 384H296C296 361.195 292.013 339.413 284.941 320z" />
-			<glyph glyph-name="hourglass-start" unicode="" horiz-adv-x="384" d=" M360 448H24C10.745 448 0 437.255 0 424V408C0 394.745 10.745 384 24 384C24 293.035 75.016 216.266 144.842 192C75.016 167.734 24 90.965 24 0C10.745 0 0 -10.745 0 -24V-40C0 -53.255 10.745 -64 24 -64H360C373.255 -64 384 -53.255 384 -40V-24C384 -10.745 373.255 0 360 0C360 90.965 308.984 167.734 239.158 192C308.984 216.266 360 293.035 360 384C373.255 384 384 394.745 384 408V424C384 437.255 373.255 448 360 448zM296 0H88C88 77.458 134.204 144 192 144C249.786 144 296 77.483 296 0z" />
-			<glyph glyph-name="hourglass" unicode="" horiz-adv-x="384" d=" M360 384C373.255 384 384 394.745 384 408V424C384 437.255 373.255 448 360 448H24C10.745 448 0 437.255 0 424V408C0 394.745 10.745 384 24 384C24 293.035 75.016 216.266 144.842 192C75.016 167.734 24 90.965 24 0C10.745 0 0 -10.745 0 -24V-40C0 -53.255 10.745 -64 24 -64H360C373.255 -64 384 -53.255 384 -40V-24C384 -10.745 373.255 0 360 0C360 90.965 308.984 167.734 239.158 192C308.984 216.266 360 293.035 360 384z" />
-			<glyph glyph-name="i-cursor" unicode="" horiz-adv-x="256" d=" M256 395.952V435.935C256 442.504 250.726 447.852 244.158 447.9340000000001C211.621 448.344 166.469 447.989 128 410.041C90.266 447.264 46.979 448.114 11.913 447.886C5.318 447.843 0 442.481 0 435.886V396.241C0 389.554 5.458 384.163 12.145 384.243C38.111 384.553 96 380.757 96 335.818V224H60C53.373 224 48 218.627 48 212V172C48 165.373 53.373 160 60 160H96V48C96 3.068 39.925 -0.031 12.05 0.041C5.404 0.058 0 -5.306 0 -11.952V-51.935C0 -58.504 5.274 -63.852 11.842 -63.934C44.379 -64.3430000000001 89.531 -63.988 128 -26.04C165.734 -63.263 209.021 -64.1130000000001 244.087 -63.885C250.682 -63.842 256 -58.48 256 -51.885V-12.24C256 -5.553 250.542 -0.162 243.855 -0.242C217.889 -0.553 160 3.061 160 48V160H196C202.627 160 208 165.373 208 172V212C208 218.627 202.627 224 196 224H160V335.818C160 380.75 216.075 384.031 243.95 383.9600000000001C250.596 383.942 256 389.3060000000001 256 395.952z" />
-			<glyph glyph-name="id-badge" unicode="" horiz-adv-x="384" d=" M0 -16V400C0 426.51 21.49 448 48 448H336C362.51 448 384 426.51 384 400V-16C384 -42.51 362.51 -64 336 -64H48C21.49 -64 0 -42.51 0 -16zM192 128C245.019 128 288 170.981 288 224S245.019 320 192 320S96 277.019 96 224S138.981 128 192 128zM286.317 110.526L263.363 117.699C242.437 103.587 217.802 96 192 96S141.563 103.587 120.637 117.699L97.683 110.526C77.644 104.264 64 85.705 64 64.711V24C64 10.745 74.745 0 88 0H296C309.255 0 320 10.745 320 24V64.711C320 85.705 306.356 104.264 286.317 110.526zM352 396V404C352 410.627 346.627 416 340 416H44C37.373 416 32 410.627 32 404V396C32 389.373 37.373 384 44 384H340C346.627 384 352 389.373 352 396z" />
-			<glyph glyph-name="id-card" unicode="ï‹‚" horiz-adv-x="512" d=" M464 0H48C21.49 0 0 21.49 0 48V336C0 362.51 21.49 384 48 384H464C490.51 384 512 362.51 512 336V48C512 21.49 490.51 0 464 0zM160 288C124.654 288 96 259.346 96 224S124.654 160 160 160S224 188.654 224 224S195.346 288 160 288M239.589 133.47L211.308 142.8970000000001C196.458 133.468 178.856 128 160 128S123.542 133.468 108.691 142.897L80.41 133.47A24 24 0 0 1 64 110.702V88C64 74.745 74.745 64 88 64H232C245.255 64 256 74.745 256 88V110.702A24 24 0 0 1 239.589 133.47zM448 108V116C448 122.627 442.627 128 436 128H300C293.373 128 288 122.627 288 116V108C288 101.373 293.373 96 300 96H436C442.627 96 448 101.373 448 108zM448 172V180C448 186.627 442.627 192 436 192H300C293.373 192 288 186.627 288 180V172C288 165.373 293.373 160 300 160H436C442.627 160 448 165.373 448 172zM448 236V244C448 250.627 442.627 256 436 256H300C293.373 256 288 250.627 288 244V236C288 229.373 293.373 224 300 224H436C442.627 224 448 229.373 448 236zM480 332V340C480 346.627 474.627 352 468 352H44C37.373 352 32 346.627 32 340V332C32 325.373 37.373 320 44 320H468C474.627 320 480 325.373 480 332z" />
-			<glyph glyph-name="image" unicode="" horiz-adv-x="512" d=" M464 0H48C21.49 0 0 21.49 0 48V336C0 362.51 21.49 384 48 384H464C490.51 384 512 362.51 512 336V48C512 21.49 490.51 0 464 0zM112 328C81.072 328 56 302.928 56 272S81.072 216 112 216S168 241.072 168 272S142.928 328 112 328zM64 64H448V176L360.485 263.515C355.7990000000001 268.201 348.201 268.201 343.514 263.515L208 128L152.485 183.515C147.799 188.201 140.201 188.201 135.514 183.515L64 112V64z" />
-			<glyph glyph-name="images" unicode="" horiz-adv-x="576" d=" M480 32V16C480 -10.51 458.51 -32 432 -32H48C21.49 -32 0 -10.51 0 16V272C0 298.51 21.49 320 48 320H64V112C64 67.888 99.888 32 144 32H480zM576 112V368C576 394.51 554.51 416 528 416H144C117.49 416 96 394.51 96 368V112C96 85.49 117.49 64 144 64H528C554.51 64 576 85.49 576 112zM256 320C256 293.49 234.51 272 208 272S160 293.49 160 320S181.49 368 208 368S256 346.51 256 320zM160 176L215.515 231.515C220.201 236.201 227.799 236.201 232.486 231.515L272 192L407.515 327.515C412.201 332.201 419.799 332.201 424.486 327.515L512 240V128H160V176z" />
-			<glyph glyph-name="inbox" unicode="" horiz-adv-x="576" d=" M567.938 204.092L462.25 362.626A48.003 48.003 0 0 1 422.311 384H153.689A48 48 0 0 1 113.751 362.626L8.062 204.092A47.994 47.994 0 0 1 0 177.467V48C0 21.49 21.49 0 48 0H528C554.51 0 576 21.49 576 48V177.467A47.994 47.994 0 0 1 567.938 204.092zM162.252 320H413.749L499.082 192H376L344 128H232L200 192H76.918L162.252 320z" />
-			<glyph glyph-name="indent" unicode="" horiz-adv-x="448" d=" M0 364V404C0 412.837 7.163 420 16 420H432C440.837 420 448 412.837 448 404V364C448 355.163 440.837 348 432 348H16C7.163 348 0 355.163 0 364zM176 220H432C440.837 220 448 227.163 448 236V276C448 284.837 440.837 292 432 292H176C167.163 292 160 284.837 160 276V236C160 227.163 167.163 220 176 220zM16 -36H432C440.837 -36 448 -28.837 448 -20V20C448 28.837 440.837 36 432 36H16C7.163 36 0 28.837 0 20V-20C0 -28.837 7.163 -36 16 -36zM176 92H432C440.837 92 448 99.163 448 108V148C448 156.837 440.837 164 432 164H176C167.163 164 160 156.837 160 148V108C160 99.163 167.163 92 176 92zM123.313 203.313L27.313 299.297C17.266 309.348 0 302.224 0 287.9840000000001V96.009C0 81.68 17.325 74.705 27.313 84.696L123.313 180.6880000000001C129.562 186.9350000000001 129.562 197.0650000000001 123.313 203.3130000000001z" />
-			<glyph glyph-name="industry" unicode="" horiz-adv-x="512" d=" M475.115 284.219L336 195.691V263.971C336 282.887 315.069 294.37 299.115 284.219L160 195.691V392C160 405.255 149.255 416 136 416H24C10.745 416 0 405.255 0 392V-8C0 -21.255 10.745 -32 24 -32H488C501.255 -32 512 -21.255 512 -8V263.971C512 282.8880000000001 491.069 294.37 475.115 284.219z" />
-			<glyph glyph-name="info-circle" unicode="" horiz-adv-x="512" d=" M256 440C119.043 440 8 328.9170000000001 8 192C8 55.003 119.043 -56 256 -56S504 55.003 504 192C504 328.9170000000001 392.957 440 256 440zM256 330C279.1960000000001 330 298 311.1960000000001 298 288S279.1960000000001 246 256 246S214 264.804 214 288S232.804 330 256 330zM312 76C312 69.373 306.627 64 300 64H212C205.373 64 200 69.373 200 76V100C200 106.627 205.373 112 212 112H224V176H212C205.373 176 200 181.373 200 188V212C200 218.627 205.373 224 212 224H276C282.627 224 288 218.627 288 212V112H300C306.627 112 312 106.627 312 100V76z" />
-			<glyph glyph-name="info" unicode="ï„©" horiz-adv-x="192" d=" M20 23.771H40V168.229H20C8.954 168.229 0 177.183 0 188.229V236C0 247.046 8.954 256 20 256H132C143.046 256 152 247.046 152 236V23.771H172C183.046 23.771 192 14.817 192 3.771V-44C192 -55.046 183.046 -64 172 -64H20C8.954 -64 0 -55.046 0 -44V3.771C0 14.817 8.954 23.771 20 23.771zM96 448C56.235 448 24 415.765 24 376S56.235 304 96 304S168 336.235 168 376S135.764 448 96 448z" />
-			<glyph glyph-name="italic" unicode="" horiz-adv-x="320" d=" M204.758 32H170.909L233.0010000000001 352H273.7260000000001A16 16 0 0 1 289.4300000000001 364.937L295.6720000000001 396.937C297.599 406.8160000000001 290.034 416 279.968 416H120.235A16 16 0 0 1 104.531 403.063L98.289 371.063C96.362 361.184 103.927 352 113.993 352H147.839L85.749 32H46.278A16 16 0 0 1 30.574 19.065L24.329 -12.935C22.402 -22.815 29.967 -32 40.034 -32H198.513A16 16 0 0 1 214.217 -19.065L220.462 12.935C222.389 22.815 214.824 32 204.758 32z" />
-			<glyph glyph-name="key" unicode="ï‚„" horiz-adv-x="512" d=" M512 271.999C512 174.797 433.202 96 336 96C324.78 96 313.81 97.062 303.173 99.069L279.161 72.055A23.999000000000002 23.999000000000002 0 0 0 261.223 64H224V24C224 10.745 213.255 0 200 0H160V-40C160 -53.255 149.255 -64 136 -64H24C10.745 -64 0 -53.255 0 -40V38.059C0 44.424 2.529 50.529 7.029 55.03L168.831 216.832C163.108 234.186 160 252.729 160 272C160 369.202 238.797 447.999 335.999 448C433.488 448.001 512 369.4890000000001 512 271.999zM336 320C336 293.49 357.49 272 384 272S432 293.49 432 320S410.51 368 384 368S336 346.51 336 320z" />
-			<glyph glyph-name="keyboard" unicode="" horiz-adv-x="576" d=" M528 0H48C21.49 0 0 21.49 0 48V336C0 362.51 21.49 384 48 384H528C554.51 384 576 362.51 576 336V48C576 21.49 554.51 0 528 0zM128 268V308C128 314.627 122.627 320 116 320H76C69.373 320 64 314.627 64 308V268C64 261.373 69.373 256 76 256H116C122.627 256 128 261.373 128 268zM224 268V308C224 314.627 218.627 320 212 320H172C165.373 320 160 314.627 160 308V268C160 261.373 165.373 256 172 256H212C218.627 256 224 261.373 224 268zM320 268V308C320 314.627 314.627 320 308 320H268C261.373 320 256 314.627 256 308V268C256 261.373 261.373 256 268 256H308C314.627 256 320 261.373 320 268zM416 268V308C416 314.627 410.627 320 404 320H364C357.373 320 352 314.627 352 308V268C352 261.373 357.373 256 364 256H404C410.627 256 416 261.373 416 268zM512 268V308C512 314.627 506.627 320 500 320H460C453.373 320 448 314.627 448 308V268C448 261.373 453.373 256 460 256H500C506.627 256 512 261.373 512 268zM176 172V212C176 218.627 170.627 224 164 224H124C117.373 224 112 218.627 112 212V172C112 165.373 117.373 160 124 160H164C170.627 160 176 165.373 176 172zM272 172V212C272 218.627 266.627 224 260 224H220C213.373 224 208 218.627 208 212V172C208 165.373 213.373 160 220 160H260C266.627 160 272 165.373 272 172zM368 172V212C368 218.627 362.627 224 356 224H316C309.373 224 304 218.627 304 212V172C304 165.373 309.373 160 316 160H356C362.627 160 368 165.373 368 172zM464 172V212C464 218.627 458.627 224 452 224H412C405.373 224 400 218.627 400 212V172C400 165.373 405.373 160 412 160H452C458.627 160 464 165.373 464 172zM128 76V116C128 122.627 122.627 128 116 128H76C69.373 128 64 122.627 64 116V76C64 69.373 69.373 64 76 64H116C122.627 64 128 69.373 128 76zM416 76V116C416 122.627 410.627 128 404 128H172C165.373 128 160 122.627 160 116V76C160 69.373 165.373 64 172 64H404C410.627 64 416 69.373 416 76zM512 76V116C512 122.627 506.627 128 500 128H460C453.373 128 448 122.627 448 116V76C448 69.373 453.373 64 460 64H500C506.627 64 512 69.373 512 76z" />
-			<glyph glyph-name="language" unicode="" horiz-adv-x="640" d=" M304 32H24C10.745 32 0 42.745 0 56V328C0 341.255 10.745 352 24 352H304V32zM183.324 104.622A12 12 0 0 1 194.839 96H217.702C225.922 96 231.709 104.078 229.064 111.861L171.61 280.915A12 12 0 0 1 160.248 289.054H127.759A12.001000000000001 12.001000000000001 0 0 1 116.397 280.915L58.942 111.861C56.297 104.078 62.084 96 70.304 96H93.109A12 12 0 0 1 104.644 104.693L113.762 136.5H173.973L183.324 104.622zM144.273 245.042S148.593 223.981 152.103 211.832L162.9030000000001 174.301H124.8330000000001L135.9030000000001 211.832C139.4130000000001 223.982 143.7330000000001 245.042 143.7330000000001 245.042H144.2730000000001zM616 32H336V352H616C629.255 352 640 341.255 640 328V56C640 42.745 629.255 32 616 32zM580 260H516V276C516 282.627 510.627 288 504 288H488C481.373 288 476 282.627 476 276V260H412C405.373 260 400 254.627 400 248V232C400 225.373 405.373 220 412 220H526.106C519.843 205.701 509.588 191.028 496.083 176.794C489.523 183.692 483.686 190.704 478.718 197.727C475.079 202.871 468.133 204.402 462.723 201.173L455.443 196.827L448.945 192.948C442.989 189.392 441.252 181.527 445.21 175.831C451.275 167.102 458.308 158.495 466.194 150.105C458.0719999999999 143.879 449.353 137.861 440.091 132.141C434.57 128.731 432.7099999999999 121.585 435.929 115.951L443.87 102.055C447.232 96.172 454.8049999999999 94.2289999999999 460.576 97.7789999999999C473.308 105.61 485.147 113.954 496.0189999999999 122.67C506.9359999999999 113.9089999999999 518.785 105.568 531.415 97.789C537.189 94.233 544.7679999999999 96.171 548.132 102.059L556.0759999999999 115.962C559.2889999999999 121.585 557.4459999999999 128.722 551.9409999999999 132.133A312.737 312.737 0 0 0 525.881 150.152C546.905 172.577 561.649 196.441 568.5939999999999 220.002H580C586.627 220.002 592 225.375 592 232.002V248.002C592 254.627 586.627 260 580 260z" />
-			<glyph glyph-name="laptop" unicode="" horiz-adv-x="640" d=" M512 384V128H128V384H512M528 448H112C85.5 448 64 426.5 64 400V112C64 85.5 85.5 64 112 64H528C554.5 64 576 85.5 576 112V400C576 426.5 554.5 448 528 448zM628 32H389.5C386.5 32 384 29.9 383.6 26.9C381.2 11.7 368 0 352 0H288C272 0 258.8 11.7 256.4 26.9C255.9 29.8 253.4 32 250.5 32H12C5.4 32 0 26.6 0 20V-16C0 -42.5 21.5 -64 48 -64H592C618.5 -64 640 -42.5 640 -16V20C640 26.6 634.6 32 628 32z" />
-			<glyph glyph-name="leaf" unicode="" horiz-adv-x="576" d=" M395.4 27.2C352 5.6 303.5 -7.2 254.6 -7.2C172.4 -7.2 103.5 32.9 103.5 32.9C87.4 32.9 68.1 -32 40.2 -32C13.2 -32 0 -8 0 6.5C0 39.6 63.6 65.4 63.6 83.8C63.6 83.8 51.1 105 51.1 143C51.1 244.2 132.4 316.4 223.7 346.3C289.6 367.9 429.7 342.8 474.4 384.8C492.1 401 500.8 416 527.8 416C564.0999999999999 416 576 322.8 576 295.7C576 184.8 521.5 89.2 395.4 27.2zM141.1 102.8C204.6 192.7 285.6 231.6 398.8 222.8C407.6 222.1 415.3 228.7 416 237.5C416.7 246.3 410.1 254 401.3 254.7C277.3 264.3 185.4 220.7999999999999 115 121.1999999999999C109.9 114 111.5999999999999 103.9999999999999 118.8 98.8999999999999C126 93.7999999999999 136 95.4999999999999 141.0999999999999 102.7999999999999z" />
-			<glyph glyph-name="lemon" unicode="ï‚”" horiz-adv-x="512" d=" M489.038 425.037C465.944 448.13 434.648 453.93 413.947 441.871C355.041 407.5590000000001 232.697 494.948 92.874 355.125S40.441 92.959 6.129 34.055C-5.93 13.353 -0.131 -17.944 22.962 -41.038C46.057 -64.133 77.354 -69.929 98.057 -57.87C156.958 -23.56 279.303 -110.9489999999999 419.125 28.873S471.56 291.04 505.871 349.944C517.93 370.646 512.132 401.943 489.038 425.0370000000001zM243.881 352.478C185.692 337.931 110.073 262.323 95.523 204.12C93.706 196.85 87.181 191.996 80.012 191.996C78.728 191.996 77.422 192.152 76.119 192.477C67.547 194.621 62.335 203.307 64.477 211.88C81.901 281.573 166.316 366.07 236.119 383.522C244.694 385.665 253.38 380.453 255.522 371.88S252.453 354.621 243.881 352.478z" />
-			<glyph glyph-name="level-down-alt" unicode="" horiz-adv-x="320" d=" M313.553 55.669L209.587 -56.334C200.102 -66.548 183.911 -66.563 174.413 -56.334L70.438 55.669C56.232 70.969 67.062 96 88.025 96H152V368H68.024A11.996 11.996 0 0 0 59.539 371.515L3.539 427.515C-4.021 435.074 1.333 448 12.024 448H208C221.255 448 232 437.255 232 424V96H295.966C316.844 96 327.817 71.031 313.553 55.669z" />
-			<glyph glyph-name="level-up-alt" unicode="" horiz-adv-x="320" d=" M313.553 328.331L209.587 440.334C200.102 450.548 183.911 450.563 174.413 440.334L70.438 328.331C56.232 313.031 67.062 288 88.025 288H152V16H68.024A11.996 11.996 0 0 1 59.539 12.485L3.539 -43.515C-4.021 -51.074 1.333 -64 12.024 -64H208C221.255 -64 232 -53.255 232 -40V288H295.966C316.844 288 327.817 312.969 313.553 328.331z" />
-			<glyph glyph-name="life-ring" unicode="" horiz-adv-x="512" d=" M256 440C119.033 440 8 328.967 8 192S119.033 -56 256 -56S504 55.033 504 192S392.967 440 256 440zM429.6960000000001 320.4410000000001L366.2970000000001 257.0420000000001C355.31 275.601 339.627 291.294 321.0420000000001 302.2970000000001L384.4410000000001 365.6960000000001A218.396 218.396 0 0 0 429.6960000000001 320.4410000000001zM256 96C202.981 96 160 138.981 160 192S202.981 288 256 288S352 245.019 352 192S309.019 96 256 96zM127.559 365.6960000000001L190.958 302.2970000000001C172.399 291.31 156.706 275.627 145.703 257.0420000000001L82.304 320.4410000000001A218.372 218.372 0 0 0 127.559 365.6960000000001zM82.304 63.559L145.703 126.958C156.69 108.399 172.373 92.706 190.958 81.703L127.559 18.304A218.396 218.396 0 0 0 82.304 63.559zM384.4410000000001 18.304L321.0420000000001 81.703C339.6010000000001 92.6900000000001 355.2940000000001 108.3730000000001 366.2970000000001 126.958L429.6960000000001 63.559A218.40299999999996 218.40299999999996 0 0 0 384.4410000000001 18.304z" />
-			<glyph glyph-name="lightbulb" unicode="" horiz-adv-x="384" d=" M272 20V-8C272 -18.449 265.32 -27.334 256 -30.629V-40C256 -53.255 245.255 -64 232 -64H152C138.745 -64 128 -53.255 128 -40V-30.629C118.68 -27.334 112 -18.449 112 -8V20C112 26.627 117.373 32 124 32H260C266.627 32 272 26.627 272 20zM128.893 64C118.986 64 110.067 70.078 106.517 79.327C67.697 180.459 16 170.269 16 272C16 369.197 94.805 448 192 448S368 369.197 368 272C368 170.269 316.303 180.459 277.484 79.327C273.934 70.078 265.014 64 255.108 64H128.893zM112 272C112 316.112 147.888 352 192 352C200.837 352 208 359.164 208 368S200.837 384 192 384C130.243 384 80 333.757 80 272C80 263.164 87.164 256 96 256S112 263.164 112 272z" />
-			<glyph glyph-name="link" unicode="" horiz-adv-x="512" d=" M326.612 262.6090000000001C386.3590000000001 202.8 385.5390000000001 106.911 326.9720000000001 48.019C326.862 47.899 326.7320000000001 47.769 326.612 47.649L259.4120000000001 -19.551C200.142 -78.821 103.713 -78.813 44.452 -19.551C-14.818 39.709 -14.818 136.149 44.452 195.409L81.558 232.515C91.398 242.355 108.344 235.8150000000001 108.852 221.909C109.5 204.187 112.678 186.382 118.542 169.1880000000001C120.528 163.3660000000001 119.109 156.9260000000001 114.759 152.576L101.672 139.489C73.646 111.463 72.767 65.8290000000001 100.517 37.5290000000001C128.541 8.95 174.603 8.78 202.842 37.0190000000001L270.0420000000001 104.2090000000001C298.233 132.4 298.115 177.9660000000001 270.0420000000001 206.0390000000001C266.341 209.733 262.6130000000001 212.603 259.701 214.608A16.037 16.037 0 0 0 252.754 227.2140000000001C252.3580000000001 237.7810000000001 256.1020000000001 248.67 264.452 257.0200000000001L285.506 278.0750000000001C291.027 283.596 299.688 284.2740000000001 306.09 279.8060000000001A152.482 152.482 0 0 0 326.612 262.6090000000001zM467.547 403.551C408.286 462.813 311.8570000000001 462.821 252.587 403.551L185.387 336.351C185.267 336.231 185.137 336.101 185.027 335.981C126.461 277.089 125.64 181.2 185.387 121.391A152.454 152.454 0 0 1 205.908 104.1949999999999C212.31 99.7269999999999 220.972 100.406 226.492 105.9259999999999L247.546 126.981C255.896 135.331 259.6400000000001 146.2199999999999 259.2440000000001 156.7869999999999A16.037 16.037 0 0 1 252.2970000000001 169.3929999999999C249.385 171.3979999999999 245.6570000000001 174.2679999999999 241.956 177.9619999999999C213.883 206.035 213.765 251.601 241.956 279.7919999999999L309.156 346.9819999999999C337.395 375.2209999999999 383.456 375.051 411.481 346.4719999999999C439.231 318.1719999999999 438.353 272.5379999999999 410.326 244.5119999999999L397.2390000000001 231.425C392.889 227.075 391.4700000000001 220.6349999999999 393.456 214.8129999999999C399.32 197.619 402.498 179.8139999999999 403.146 162.0919999999999C403.6550000000001 148.1859999999999 420.6 141.6459999999999 430.44 151.4859999999999L467.546 188.5919999999999C526.817 247.851 526.817 344.291 467.547 403.551z" />
-			<glyph glyph-name="lira-sign" unicode="" horiz-adv-x="384" d=" M371.9940000000001 192H323.975C317.64 192 312 187.088 312 180.754C312 80 230.179 32 144 32V191.219L278.603 221.131A12 12 0 0 1 288 232.845V273.8210000000001C288 281.498 280.891 287.201 273.397 285.535L144 256.781V287.2200000000001L278.603 317.132A12 12 0 0 1 288 328.846V369.8210000000001C288 377.498 280.891 383.201 273.397 381.535L144 352.781V404C144 410.627 138.627 416 132 416H76C69.373 416 64 410.627 64 404V335.003L9.397 322.8690000000001A12 12 0 0 1 0 311.155V270.179C0 262.502 7.109 256.799 14.603 258.4650000000001L64 269.442V239.003L9.397 226.869A12 12 0 0 1 0 215.155V174.179C0 166.502 7.109 160.799 14.603 162.465L64 173.442V-20C64 -26.627 69.373 -32 76 -32H155.583C289.674 -32 378.838 45.834 383.991 179.592C384.252 186.374 378.78 192 371.994 192z" />
-			<glyph glyph-name="list-alt" unicode="" horiz-adv-x="512" d=" M464 -32H48C21.49 -32 0 -10.51 0 16V368C0 394.51 21.49 416 48 416H464C490.51 416 512 394.51 512 368V16C512 -10.51 490.51 -32 464 -32zM128 328C105.909 328 88 310.091 88 288S105.909 248 128 248S168 265.909 168 288S150.091 328 128 328zM128 232C105.909 232 88 214.091 88 192S105.909 152 128 152S168 169.909 168 192S150.091 232 128 232zM128 136C105.909 136 88 118.091 88 96S105.909 56 128 56S168 73.909 168 96S150.091 136 128 136zM416 272V304C416 310.627 410.627 316 404 316H204C197.373 316 192 310.627 192 304V272C192 265.373 197.373 260 204 260H404C410.627 260 416 265.373 416 272zM416 176V208C416 214.627 410.627 220 404 220H204C197.373 220 192 214.627 192 208V176C192 169.373 197.373 164 204 164H404C410.627 164 416 169.373 416 176zM416 80V112C416 118.627 410.627 124 404 124H204C197.373 124 192 118.627 192 112V80C192 73.373 197.373 68 204 68H404C410.627 68 416 73.373 416 80z" />
-			<glyph glyph-name="list-ol" unicode="" horiz-adv-x="512" d=" M3.263 308.473C3.263 315.9500000000001 7.18 320.045 14.836 320.045H29.967V359.9220000000001C29.967 365.085 30.501 370.425 30.501 370.425H30.145S28.366 367.755 27.297 366.687C22.846 362.414 16.793 362.236 11.631 367.755L6.113 373.986C0.771 379.327 1.129 385.202 6.647 390.365L28.367 410.303C32.815 414.398 36.732 416 42.785 416H54.89C62.546 416 66.639 412.084 66.639 404.428V320.044H82.127C89.782 320.044 93.699 315.95 93.699 308.472V299.5710000000001C93.699 292.094 89.782 287.999 82.127 287.999H14.836C7.18 287.999 3.263 292.094 3.263 299.5710000000001V308.473zM2.211 143.409C2.211 190.687 53.166 199.792 53.166 212.574C53.166 219.754 47.212 221.329 43.886 221.329C40.733 221.329 37.407 220.278 34.431 217.477C29.352 212.574 23.924 210.473 18.32 215.026L9.741 221.855C3.962 226.408 2.561 231.6600000000001 6.938 237.264C13.592 246.019 26.025 256 47.387 256C66.824 256 91.863 245.494 91.863 216.427C91.863 178.08 45.11 170.025 43.184 159.518H82.233C89.762 159.518 93.79 155.491 93.79 148.136V139.381C93.79 132.027 89.762 127.999 82.233 127.999H14.293C7.288 127.999 2.21 132.027 2.21 139.381V143.409zM5.654 -6.61L11.257 2.67C15.11 9.324 20.362 9.674 26.841 5.8219999999999C31.744 3.7209999999999 36.471 2.67 41.2 2.67C51.355 2.67 55.558 6.172 55.558 10.9C55.558 17.554 49.954 20.006 39.624 20.006H34.896C28.942 20.006 25.616 22.107 22.638 27.886L21.588 29.812C19.137 34.54 20.362 39.6179999999999 24.389 44.696L29.993 51.7C36.822 60.105 42.25 65.183 42.25 65.183V65.533S38.047 64.482 29.642 64.482H16.685C9.155 64.482 5.302 68.5100000000001 5.302 75.864V84.619C5.302 92.149 9.155 96.001 16.685 96.001H75.169C82.698 96.001 86.551 91.9740000000001 86.551 84.619V81.292C86.551 75.514 85.15 71.4860000000001 81.472 67.109L63.963 46.972C83.574 41.8940000000001 92.679 26.485 92.679 12.1270000000001C92.679 -9.2359999999999 78.321 -31.9989999999999 44.176 -31.9989999999999C27.54 -31.9989999999999 15.984 -27.2709999999999 8.28 -22.5439999999999C2.501 -18.3419999999999 1.976 -12.7389999999999 5.654 -6.6099999999999zM144 316H496C504.837 316 512 323.163 512 332V372C512 380.837 504.837 388 496 388H144C135.163 388 128 380.837 128 372V332C128 323.163 135.163 316 144 316zM144 156H496C504.837 156 512 163.163 512 172V212C512 220.837 504.837 228 496 228H144C135.163 228 128 220.837 128 212V172C128 163.163 135.163 156 144 156zM144 -4H496C504.837 -4 512 3.163 512 12V52C512 60.837 504.837 68 496 68H144C135.163 68 128 60.837 128 52V12C128 3.163 135.163 -4 144 -4z" />
-			<glyph glyph-name="list-ul" unicode="" horiz-adv-x="512" d=" M96 352C96 325.49 74.51 304 48 304S0 325.49 0 352S21.49 400 48 400S96 378.51 96 352zM48 240C21.49 240 0 218.51 0 192S21.49 144 48 144S96 165.49 96 192S74.51 240 48 240zM48 80C21.49 80 0 58.51 0 32S21.49 -16 48 -16S96 5.49 96 32S74.51 80 48 80zM144 316H496C504.837 316 512 323.163 512 332V372C512 380.837 504.837 388 496 388H144C135.163 388 128 380.837 128 372V332C128 323.163 135.163 316 144 316zM144 156H496C504.837 156 512 163.163 512 172V212C512 220.837 504.837 228 496 228H144C135.163 228 128 220.837 128 212V172C128 163.163 135.163 156 144 156zM144 -4H496C504.837 -4 512 3.163 512 12V52C512 60.837 504.837 68 496 68H144C135.163 68 128 60.837 128 52V12C128 3.163 135.163 -4 144 -4z" />
-			<glyph glyph-name="list" unicode="" horiz-adv-x="512" d=" M128 332V372C128 380.837 135.163 388 144 388H496C504.837 388 512 380.837 512 372V332C512 323.163 504.837 316 496 316H144C135.163 316 128 323.163 128 332zM144 156H496C504.837 156 512 163.163 512 172V212C512 220.837 504.837 228 496 228H144C135.163 228 128 220.837 128 212V172C128 163.163 135.163 156 144 156zM144 -4H496C504.837 -4 512 3.163 512 12V52C512 60.837 504.837 68 496 68H144C135.163 68 128 60.837 128 52V12C128 3.163 135.163 -4 144 -4zM16 304H80C88.837 304 96 311.163 96 320V384C96 392.837 88.837 400 80 400H16C7.163 400 0 392.837 0 384V320C0 311.163 7.163 304 16 304zM16 144H80C88.837 144 96 151.163 96 160V224C96 232.837 88.837 240 80 240H16C7.163 240 0 232.837 0 224V160C0 151.163 7.163 144 16 144zM16 -16H80C88.837 -16 96 -8.837 96 0V64C96 72.837 88.837 80 80 80H16C7.163 80 0 72.837 0 64V0C0 -8.837 7.163 -16 16 -16z" />
-			<glyph glyph-name="location-arrow" unicode="" horiz-adv-x="512" d=" M443.683 443.471L27.818 251.582C-18.702 230.111 -3.39 160 47.933 160H224V-15.993C224 -67.72 294.161 -82.519 315.582 -36.108L507.38 379.775C526.285 420.736 483.628 461.908 443.683 443.471z" />
-			<glyph glyph-name="lock-open" unicode="" horiz-adv-x="576" d=" M423.5 448C339.5 447.7 272 378.5 272 294.5V224H48C21.5 224 0 202.5 0 176V-16C0 -42.5 21.5 -64 48 -64H400C426.5 -64 448 -42.5 448 -16V176C448 202.5 426.5 224 400 224H352V295.1C352 334.7 383.7 367.6 423.3 368C463.3 368.4 496 335.9 496 296V216C496 202.7 506.7 192 520 192H552C565.3 192 576 202.7 576 216V296C576 380 507.5 448.3 423.5 448z" />
-			<glyph glyph-name="lock" unicode="" horiz-adv-x="448" d=" M400 224H376V296C376 379.8 307.8 448 224 448S72 379.8 72 296V224H48C21.5 224 0 202.5 0 176V-16C0 -42.5 21.5 -64 48 -64H400C426.5 -64 448 -42.5 448 -16V176C448 202.5 426.5 224 400 224zM296 224H152V296C152 335.7 184.3 368 224 368S296 335.7 296 296V224z" />
-			<glyph glyph-name="long-arrow-alt-down" unicode="" horiz-adv-x="256" d=" M168 102.059V404C168 410.627 162.627 416 156 416H100C93.373 416 88 410.627 88 404V102.059H41.941C20.559 102.059 9.851 76.208 24.97 61.088L111.029 -24.971C120.402 -34.344 135.598 -34.344 144.97 -24.971L231.029 61.088C246.148 76.207 235.44 102.059 214.058 102.059H168z" />
-			<glyph glyph-name="long-arrow-alt-left" unicode="" horiz-adv-x="448" d=" M134.059 152H436C442.627 152 448 157.373 448 164V220C448 226.627 442.627 232 436 232H134.059V278.059C134.059 299.4410000000001 108.208 310.149 93.088 295.03L7.029 208.971C-2.344 199.598 -2.344 184.402 7.029 175.03L93.088 88.971C108.207 73.852 134.059 84.56 134.059 105.942V152z" />
-			<glyph glyph-name="long-arrow-alt-right" unicode="" horiz-adv-x="448" d=" M313.941 232H12C5.373 232 0 226.627 0 220V164C0 157.373 5.373 152 12 152H313.941V105.941C313.941 84.559 339.792 73.851 354.912 88.97L440.971 175.029C450.344 184.402 450.344 199.598 440.971 208.97L354.9120000000001 295.029C339.793 310.148 313.9410000000001 299.44 313.9410000000001 278.058V232z" />
-			<glyph glyph-name="long-arrow-alt-up" unicode="" horiz-adv-x="256" d=" M88 281.9410000000001V-20C88 -26.627 93.373 -32 100 -32H156C162.627 -32 168 -26.627 168 -20V281.9410000000001H214.059C235.441 281.9410000000001 246.149 307.7920000000001 231.03 322.9120000000001L144.971 408.971C135.598 418.344 120.402 418.344 111.03 408.971L24.971 322.9120000000001C9.852 307.793 20.56 281.9410000000001 41.942 281.9410000000001H88z" />
-			<glyph glyph-name="low-vision" unicode="" horiz-adv-x="576" d=" M569.344 216.369C512.96 312.051 407.81 376 288 376C259.532 376 231.898 372.381 205.549 365.591L152.778 437.76C145.177 448.618 130.214 451.26 119.355 443.6600000000001L106.241 434.482C95.381 426.881 92.739 411.916 100.341 401.056L143.472 342.661C89.449 316.27 40.228 273.317 6.682 216.419C6.672 216.402 6.659 216.386 6.648 216.369C-2.117 201.494 -2.316 182.841 6.648 167.63C45.148 102.298 106.39 51.768 179.507 26.281L55.316 203.698A272.194 272.194 0 0 0 83.61 239.61L203.01 69.03H203.02L243.65 10.99A330.055 330.055 0 0 1 322.59 9.8199999999999L132.61 281.2199999999999A277.628 277.628 0 0 0 171.387 302.7829999999999L423.223 -53.7610000000001C430.824 -64.619 445.7870000000001 -67.2600000000001 456.646 -59.6610000000001L469.76 -50.4830000000001C480.62 -42.8820000000001 483.262 -27.9160000000001 475.66 -17.0570000000001L432.54 41.3199999999999L432.533 41.329C489.694 69.307 537.3679999999999 113.369 569.343 167.63A47.937999999999995 47.937999999999995 0 0 1 569.3439999999999 216.369zM390.026 102.06L370.9600000000001 129.29C395.6420000000001 161.857 398.6710000000001 205.643 379.7600000000001 240.9700000000001V240.9400000000001C379.7600000000001 217.29 360.5900000000001 198.12 336.9400000000001 198.12C313.1120000000001 198.12 294.1200000000001 217.469 294.1200000000001 240.9400000000001C294.1200000000001 264.5900000000001 313.2900000000001 283.76 336.9400000000001 283.76H336.9700000000001C312.2200000000001 297.009 283.4480000000001 299.403 257.4600000000001 291.4400000000001L238.392 318.677C253.758 324.694 270.488 328 288 328C363.1620000000001 328 424 267.174 424 192C424 157.496 411.167 126.025 390.026 102.06z" />
-			<glyph glyph-name="magic" unicode="" horiz-adv-x="512" d=" M101.1 -57L7 37.1C-2.4 46.5 -2.4 61.7000000000001 7 71L377 441C386.4 450.4 401.6 450.4 410.9 441L505 346.9C514.4 337.5 514.4 322.3 505 313L135 -57C125.7 -66.2999999999999 110.5 -66.2999999999999 101.1 -57zM304 288.8L352.8 240L442.7000000000001 329.9L393.9000000000001 378.7L304 288.8zM138.9 408.7L127.2 384.9L101 381.1C96.3 380.4 94.4 374.6 97.8 371.3L116.8 352.8L112.3 326.7000000000001C111.5 322 116.4 318.4 120.6 320.6L144 333L167.4 320.7C171.6 318.5 176.5 322.1 175.7 326.8L171.2 352.9L190.2 371.4C193.6 374.7 191.7 380.5 187 381.2L160.8 385L149.1 408.8C147.1 412.9 141 412.9 138.9 408.7zM236.6 429.4L228.8 413.6L211.3 411C208.2 410.5 206.9 406.7 209.2 404.5L221.8 392.2L218.8 374.8C218.3 371.7000000000001 221.6 369.3 224.4 370.8L240 379L255.6 370.8C258.4 369.3 261.7 371.7 261.2 374.8L258.2 392.2L270.8 404.5C273.1 406.7 271.8 410.6 268.7 411L251.2 413.5L243.4 429.3C242 432.3 238 432.3 236.6 429.4zM44.6 429.4L36.8 413.6L19.3 411C16.2 410.5 14.9 406.7 17.2 404.5L29.8 392.2L26.8 374.8C26.3 371.7000000000001 29.6 369.3 32.4 370.8L48 379L63.6 370.8C66.4 369.3 69.7 371.7 69.2 374.8L66.2 392.2L78.8 404.5C81.1 406.7 79.8 410.6 76.7 411L59.2 413.5L51.4 429.3C50 432.3 46 432.3 44.6 429.4zM460.6 205.9L452.8 190.1L435.3 187.6C432.2 187.1 430.9000000000001 183.3 433.2 181.1L445.8 168.8L442.8 151.4C442.3 148.3 445.6 145.9 448.4000000000001 147.4L464.0000000000001 155.6L479.6000000000001 147.4C482.4000000000001 145.9 485.7000000000001 148.3 485.2000000000001 151.4L482.2000000000001 168.8L494.8000000000001 181.1C497.1000000000001 183.3 495.8000000000001 187.2000000000001 492.7000000000001 187.6L475.2000000000001 190.1L467.4000000000001 205.9C466.0000000000001 208.7000000000001 462.0000000000001 208.7000000000001 460.6000000000001 205.9z" />
-			<glyph glyph-name="magnet" unicode="" horiz-adv-x="512.1" d=" M164.1 288H12C5.4 288 0 293.4 0 300V380C0 399.9 16.1 416 36 416H140C159.9 416 176 399.9 176 380V300C176.1 293.4 170.7 288 164.1 288zM512.1 300V380.1C512.1 400 496 416.1 476.1 416.1H372.1C352.2000000000001 416.1 336.1 400 336.1 380.1V300.1C336.1 293.5 341.5 288.1 348.1 288.1H500.1C506.7 288 512.1 293.4 512.1 300zM348.1 256C341.5 256 336.1 250.6 336.1 244V192C336.1 63.9 176.1 64.1 176.1 192V244C176.1 250.6 170.7 256 164.1 256H12.1C5.4 256 0.1 250.6 0.1 243.9C0.2 222.5 0.7 203.6 0.1 190.6C0.1 40 136.3 -56 256.9 -56C377.5 -56 512 40 512 190.7C511.4 203.5 511.8 223.7 512 243.9C512 250.6 506.7 256 500 256H348.1z" />
-			<glyph glyph-name="male" unicode="" horiz-adv-x="192" d=" M96 448C131.346 448 160 419.346 160 384S131.346 320 96 320S32 348.654 32 384S60.654 448 96 448M144 304H132.64C109.929 293.557 83.05 293.106 59.36 304H48C21.49 304 0 282.51 0 256V120C0 106.745 10.745 96 24 96H40V-40C40 -53.255 50.745 -64 64 -64H128C141.255 -64 152 -53.255 152 -40V96H168C181.255 96 192 106.745 192 120V256C192 282.51 170.51 304 144 304z" />
-			<glyph glyph-name="map-marker-alt" unicode="" horiz-adv-x="384" d=" M172.268 -53.67C26.97 156.969 0 178.587 0 256C0 362.039 85.961 448 192 448S384 362.039 384 256C384 178.587 357.03 156.969 211.732 -53.67C202.197 -67.444 181.802 -67.443 172.268 -53.67zM192 176C236.183 176 272 211.817 272 256S236.183 336 192 336S112 300.183 112 256S147.817 176 192 176z" />
-			<glyph glyph-name="map-marker" unicode="" horiz-adv-x="384" d=" M172.268 -53.67C26.97 156.969 0 178.587 0 256C0 362.039 85.961 448 192 448S384 362.039 384 256C384 178.587 357.03 156.969 211.732 -53.67C202.197 -67.444 181.802 -67.443 172.268 -53.67z" />
-			<glyph glyph-name="map-pin" unicode="" horiz-adv-x="320" d=" M192 147.187V-25.633L169.985 -58.656C165.235 -65.7809999999999 154.766 -65.7809999999999 150.016 -58.656L128 -25.633V147.187A162.221 162.221 0 0 1 192 147.187zM160 448C239.529 448 304 383.529 304 304S239.529 160 160 160S16 224.471 16 304S80.471 448 160 448M80 312C80 351.701 112.299 384 152 384A8 8 0 0 1 152 400C103.477 400 64 360.523 64 312A8 8 0 0 1 80 312z" />
-			<glyph glyph-name="map-signs" unicode="" horiz-adv-x="512" d=" M487.515 343.515L439.03 295.03A23.998000000000005 23.998000000000005 0 0 0 422.06 288.001H56C42.745 288.001 32 298.746 32 312.001V392C32 405.255 42.745 416 56 416H216V424C216 437.255 226.745 448 240 448H272C285.255 448 296 437.255 296 424V416H422.059A24 24 0 0 0 439.029 408.971L487.514 360.486C492.201 355.799 492.201 348.201 487.515 343.515zM216 80V-40C216 -53.255 226.745 -64 240 -64H272C285.255 -64 296 -53.255 296 -40V80H216zM456 224H296V272H216V224H89.941A24 24 0 0 1 72.971 216.971L24.486 168.486C19.8 163.8 19.8 156.202 24.486 151.515L72.971 103.03A23.998000000000005 23.998000000000005 0 0 1 89.941 96.001H456C469.255 96.001 480 106.746 480 120.001V200.001C480 213.255 469.255 224 456 224z" />
-			<glyph glyph-name="map" unicode="" horiz-adv-x="576" d=" M576 391.985V56.015A23.998000000000005 23.998000000000005 0 0 0 562.733 34.549L434.733 -29.451C418.948 -37.344 400 -25.992 400 -7.985V327.985A23.998000000000005 23.998000000000005 0 0 0 413.267 349.451L541.267 413.451C557.052 421.344 576 409.992 576 391.985zM369.747 349.915L225.747 413.915C209.996 420.915 192 409.454 192 391.983V56.016A24 24 0 0 1 206.253 34.085L350.253 -29.915C366.004 -36.915 384 -25.4539999999999 384 -7.984V327.983A24 24 0 0 1 369.747 349.915zM141.267 413.451L13.267 349.466A23.998000000000005 23.998000000000005 0 0 1 0 328V-7.985C0 -25.992 18.948 -37.344 34.733 -29.451L162.733 34.534A23.998000000000005 23.998000000000005 0 0 1 176 56V391.985C176 409.992 157.052 421.344 141.267 413.451z" />
-			<glyph glyph-name="mars-double" unicode="" horiz-adv-x="512" d=" M340 448H261C250.3 448 245 435.1 252.5 427.5L269.4 410.6L220.7 361.9C198.5 375.9 172.2 384 144 384C64.5 384 0 319.5 0 240S64.5 96 144 96S288 160.5 288 240C288 268.2 279.9 294.5 265.9 316.7L314.6 365.4L331.5 348.5C333.8999999999999 346.1 337 345 339.8999999999999 345C346.0999999999999 345 352 349.8 352 357V436C352 442.6 346.6 448 340 448zM144 160C99.9 160 64 195.9 64 240S99.9 320 144 320S224 284.1 224 240S188.1 160 144 160zM500 288.1H421C410.3 288.1 405 275.2 412.5 267.6L429.4 250.7L380.7 202C362.5 213.4 341.7 220.9 319.2 223.3C317.1 201.5 311 180 300.8 160C301.9000000000001 160 303 160.1 304 160.1C348.1 160.1 384 124.2000000000001 384 80.1S348.1 0.1 304 0.1S224 36 224 80.1C224 81.2000000000001 224 82.3 224.1 83.3C204.1 73.1 182.6 66.9 160.8 64.9C168.4 -7.6 229.6 -64 304 -64C383.5 -64 448 0.5 448 80C448 108.2 439.9 134.5 425.9 156.7L474.6 205.4L491.4999999999999 188.5C493.8999999999999 186.1 496.8999999999999 185 499.8999999999999 185C506.0999999999999 185 511.9999999999999 189.8 511.9999999999999 197V276C511.9999999999999 282.7 506.6 288.1 499.9999999999999 288.1z" />
-			<glyph glyph-name="mars-stroke-h" unicode="" horiz-adv-x="480" d=" M476.2 200.5L420.3 256.4C412.7 264 399.8 258.6 399.8 247.9V224H376V244C376 250.6 370.6 256 364 256H324C317.4 256 312 250.6 312 244V224H284.4C278.6 249.6 265.7 273.9 245.8 293.8C189.6 350 98.4 350 42.2 293.8C-14 237.6 -14 146.4 42.2 90.2000000000001C98.4 34.0000000000001 189.6 34.0000000000001 245.8 90.2000000000001C265.7 110.1 278.6 134.4 284.4000000000001 160.0000000000001H312V140.0000000000001C312 133.4 317.4 128.0000000000001 324 128.0000000000001H364C370.6 128.0000000000001 376 133.4 376 140.0000000000001V160.0000000000001H399.9V136.1000000000001C399.9 125.4000000000001 412.8 120.1000000000001 420.4 127.6000000000001L476.3 183.5000000000001C480.9 188.2000000000001 480.9 195.8000000000001 476.1999999999999 200.5000000000001zM200.6 135.4C169.4 104.2 118.7 104.2 87.5 135.4C56.3 166.6 56.3 217.3 87.5 248.5C118.7 279.7 169.4 279.7 200.6 248.5C231.8 217.4 231.8 166.6 200.6 135.4z" />
-			<glyph glyph-name="mars-stroke-v" unicode="" horiz-adv-x="288" d=" M245.8 213.8C225.9 233.7 201.6 246.6 176 252.4V277.8H196C202.6 277.8 208 283.2000000000001 208 289.8V329.8C208 336.4 202.6 341.8 196 341.8H176V366.6H199.9C210.6 366.6 215.9 379.5 208.4 387.1L152.5 442.9C147.8 447.6 140.2 447.6 135.5 442.9L79.6 387C72 379.4 77.4 366.5 88.1 366.5H112V341.8H92C85.4 341.8 80 336.4 80 329.8V289.8C80 283.2000000000001 85.4 277.8 92 277.8H112V252.4C86.4 246.6 62.1 233.7 42.2 213.8C-14 157.6 -14 66.4 42.2 10.2C98.4 -45.9999999999999 189.6 -45.9999999999999 245.8 10.2C302.1 66.4 302.1 157.6 245.8 213.8000000000001zM200.6 55.4C169.4 24.2 118.7 24.2 87.5 55.4C56.3 86.6 56.3 137.3 87.5 168.5C118.7 199.7 169.4 199.7 200.6 168.5C231.8 137.4 231.8 86.6 200.6 55.4z" />
-			<glyph glyph-name="mars-stroke" unicode="" horiz-adv-x="384" d=" M372 384H293C282.3 384 277 371.1 284.5 363.5L301.4 346.6L283.9 329.1L269.8 343.2C265.1 347.9 257.5 347.9 252.8 343.2L224.5 315C219.8 310.3 219.8 302.7 224.5 298L238.6 283.9L220.6 265.9C198.4 279.9 172.1 288 143.9 288C64.5 288 0 223.5 0 144S64.5 0 144 0S288 64.5 288 144C288 172.2 279.9 198.5 265.9 220.7L283.9 238.7L298 224.6C302.7 219.9 310.3 219.9 315 224.6L343.3 252.9C348 257.6 348 265.2000000000001 343.3 269.9L329.2 284L346.7 301.5L363.6 284.6C371.2 277 384.1 282.4 384.1 293.1V372C384 378.6 378.6 384 372 384zM144 64C99.9 64 64 99.9 64 144S99.9 224 144 224S224 188.1 224 144S188.1 64 144 64z" />
-			<glyph glyph-name="mars" unicode="" horiz-adv-x="384" d=" M372 384H293C282.3 384 277 371.1 284.5 363.5L301.4 346.6L220.7 265.9C198.5 279.9 172.2 288 144 288C64.5 288 0 223.5 0 144S64.5 0 144 0S288 64.5 288 144C288 172.2 279.9 198.5 265.9 220.7L346.6 301.4L363.5 284.5C371.1 276.9 384 282.3 384 293V372C384 378.6 378.6 384 372 384zM144 64C99.9 64 64 99.9 64 144S99.9 224 144 224S224 188.1 224 144S188.1 64 144 64z" />
-			<glyph glyph-name="medkit" unicode="" horiz-adv-x="512" d=" M96 -32H416V320H384V368C384 394.51 362.51 416 336 416H176C149.49 416 128 394.51 128 368V320H96V-32zM192 352H320V320H192V352zM512 272V16C512 -10.51 490.51 -32 464 -32H448V320H464C490.51 320 512 298.51 512 272zM64 -32H48C21.49 -32 0 -10.51 0 16V272C0 298.51 21.49 320 48 320H64V-32zM352 176V144C352 135.163 344.837 128 336 128H288V80C288 71.163 280.837 64 272 64H240C231.163 64 224 71.163 224 80V128H176C167.163 128 160 135.163 160 144V176C160 184.837 167.163 192 176 192H224V240C224 248.837 231.163 256 240 256H272C280.837 256 288 248.837 288 240V192H336C344.837 192 352 184.837 352 176z" />
-			<glyph glyph-name="meh" unicode="ï„š" horiz-adv-x="512" d=" M504 192C504 55.033 392.967 -56 256 -56S8 55.033 8 192S119.033 440 256 440S504 328.967 504 192zM108 256C108 218.503 138.503 188 176 188S244 218.503 244 256S213.497 324 176 324S108 293.497 108 256zM268.5 256C268.5 218.779 298.779 188.5 336 188.5S403.5 218.779 403.5 256S373.221 323.5 336 323.5S268.5 293.221 268.5 256zM336 304A47.789 47.789 0 0 1 313.397 298.353H313.412C324.328 298.353 333.177 289.504 333.177 278.588S324.328 258.8230000000001 313.412 258.8230000000001S293.647 267.6720000000001 293.647 278.588V278.603A47.789 47.789 0 0 1 288 256C288 229.49 309.49 208 336 208S384 229.49 384 256S362.51 304 336 304zM176 304A47.789 47.789 0 0 1 153.397 298.353H153.412C164.328 298.353 173.177 289.504 173.177 278.588S164.328 258.8230000000001 153.412 258.8230000000001S133.647 267.6720000000001 133.647 278.588V278.603A47.789 47.789 0 0 1 128 256C128 229.49 149.49 208 176 208S224 229.49 224 256S202.51 304 176 304zM336 96H176C154.822 96 154.831 64 176 64H336C357.178 64 357.169 96 336 96z" />
-			<glyph glyph-name="mercury" unicode="" horiz-adv-x="288" d=" M288 240C288 284.2 268.1 323.7 236.8 350.1C239.3 351.9 241.7 353.9 244 355.9C268.7 377.1 283.8 404.7 287.2 434.7C288.1 441.8 282.5 448 275.3 448H234.8C229 448 224.1 443.9 223 438.2C220.6 425.7 213.4 413.9 202.3 404.4C187 391.2 166.3 384 144 384S101 391.2 85.6 404.4C74.5 413.9 67.4 425.7 64.9 438.2C63.8 443.9 58.9 448 53.2 448H12.7C5.5 448 -0.1 441.8 0.8 434.7C4.2 404.6 19.2 377 44 355.8C46.3 353.8 48.7 351.9 51.2 350C19.9 323.7 0 284.2 0 240C0 171.5 47.9 114.1 112 99.6V48H76C69.4 48 64 42.6 64 36V-4C64 -10.6 69.4 -16 76 -16H112V-52C112 -58.6 117.4 -64 124 -64H164C170.6 -64 176 -58.6 176 -52V-16H212C218.6 -16 224 -10.6 224 -4V36C224 42.6 218.6 48 212 48H176V99.6C240.1 114.1 288 171.5 288 240.0000000000001zM64 240C64 284.1 99.9 320 144 320S224 284.1 224 240S188.1 160 144 160S64 195.9 64 240z" />
-			<glyph glyph-name="microchip" unicode="ï‹›" horiz-adv-x="512" d=" M416 400V-16C416 -42.51 394.51 -64 368 -64H144C117.49 -64 96 -42.51 96 -16V400C96 426.51 117.49 448 144 448H368C394.51 448 416 426.51 416 400zM512 342V330A6 6 0 0 0 506 324H488V318A6 6 0 0 0 482 312H440V360H482A6 6 0 0 0 488 354V348H506A6 6 0 0 0 512 342zM512 246V234A6 6 0 0 0 506 228H488V222A6 6 0 0 0 482 216H440V264H482A6 6 0 0 0 488 258V252H506A6 6 0 0 0 512 246zM512 150V138A6 6 0 0 0 506 132H488V126A6 6 0 0 0 482 120H440V168H482A6 6 0 0 0 488 162V156H506A6 6 0 0 0 512 150zM512 54V42A6 6 0 0 0 506 36H488V30A6 6 0 0 0 482 24H440V72H482A6 6 0 0 0 488 66V60H506A6 6 0 0 0 512 54zM30 72H72V24H30A6 6 0 0 0 24 30V36H6A6 6 0 0 0 0 42V54A6 6 0 0 0 6 60H24V66A6 6 0 0 0 30 72zM30 168H72V120H30A6 6 0 0 0 24 126V132H6A6 6 0 0 0 0 138V150A6 6 0 0 0 6 156H24V162A6 6 0 0 0 30 168zM30 264H72V216H30A6 6 0 0 0 24 222V228H6A6 6 0 0 0 0 234V246A6 6 0 0 0 6 252H24V258A6 6 0 0 0 30 264zM30 360H72V312H30A6 6 0 0 0 24 318V324H6A6 6 0 0 0 0 330V342A6 6 0 0 0 6 348H24V354A6 6 0 0 0 30 360z" />
-			<glyph glyph-name="microphone-slash" unicode="" horiz-adv-x="512" d=" M421.45 162.805L376 208.254V236C376 242.627 381.373 248 388 248H412C418.627 248 424 242.627 424 236V192C424 182.043 423.1190000000001 172.29 421.45 162.805zM352 352C352 405.019 309.019 448 256 448C223.426 448 194.646 431.773 177.29 406.9650000000001L352 232.254V352zM504.971 -11.716L52.284 440.971C42.911 450.344 27.715 450.344 18.343 440.971L7.029 429.657C-2.343 420.284 -2.343 405.089 7.029 395.716L160 242.746V193.169C160 140.0800000000001 203.436 95.717 256.524 96.002C271.15 96.08 284.995 99.442 297.378 105.368L315.124 87.622C297.595 77.651 277.33 71.956 255.752 72C189.355 72.136 136 126.947 136 193.344V236C136 242.627 130.627 248 124 248H100C93.373 248 88 242.627 88 236V192C88 107.512 150.693 37.403 232 25.722V-20H164C157.373 -20 152 -25.373 152 -32V-52C152 -58.627 157.373 -64 164 -64H348C354.627 -64 360 -58.627 360 -52V-32C360 -25.373 354.627 -20 348 -20H280V25.722C305.625 29.404 329.396 38.894 349.942 52.805L459.717 -56.97C469.09 -66.3430000000001 484.286 -66.3430000000001 493.658 -56.97L504.971 -45.657C514.343 -36.284 514.343 -21.0890000000001 504.971 -11.716z" />
-			<glyph glyph-name="microphone" unicode="ï„°" horiz-adv-x="384" d=" M96 192V352C96 405.019 138.981 448 192 448S288 405.019 288 352V192C288 138.981 245.019 96 192 96S96 138.981 96 192zM348 248H324C317.373 248 312 242.627 312 236V193.32C312 127.103 258.918 72.382 192.702 72.002C126.213 71.62 72 125.598 72 192V236C72 242.627 66.627 248 60 248H36C29.373 248 24 242.627 24 236V192C24 107.512 86.693 37.403 168 25.722V-20H100C93.373 -20 88 -25.373 88 -32V-52C88 -58.627 93.373 -64 100 -64H284C290.627 -64 296 -58.627 296 -52V-32C296 -25.373 290.627 -20 284 -20H216V25.722C297.307 37.403 360 107.512 360 192V236C360 242.627 354.627 248 348 248z" />
-			<glyph glyph-name="minus-circle" unicode="" horiz-adv-x="512" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM124 152C117.4 152 112 157.4 112 164V220C112 226.6 117.4 232 124 232H388C394.6 232 400 226.6 400 220V164C400 157.4 394.6 152 388 152H124z" />
-			<glyph glyph-name="minus-square" unicode="ï…†" horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM92 152C85.4 152 80 157.4 80 164V220C80 226.6 85.4 232 92 232H356C362.6 232 368 226.6 368 220V164C368 157.4 362.6 152 356 152H92z" />
-			<glyph glyph-name="minus" unicode="" horiz-adv-x="448" d=" M424 129.8C437.3 129.8 448 140.5 448 153.8V230.2C448 243.5000000000001 437.3 254.2 424 254.2H24C10.7 254.2 0 243.5000000000001 0 230.2V153.8C0 140.5 10.7 129.8 24 129.8H424z" />
-			<glyph glyph-name="mobile-alt" unicode="" horiz-adv-x="320" d=" M272 448H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H272C298.5 -64 320 -42.5 320 -16V400C320 426.5 298.5 448 272 448zM160 -32C142.3 -32 128 -17.7 128 0S142.3 32 160 32S192 17.7 192 0S177.7 -32 160 -32zM272 76C272 69.4 266.6 64 260 64H60C53.4 64 48 69.4 48 76V388C48 394.6 53.4 400 60 400H260C266.6 400 272 394.6 272 388V76z" />
-			<glyph glyph-name="mobile" unicode="ï„‹" horiz-adv-x="320" d=" M272 448H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H272C298.5 -64 320 -42.5 320 -16V400C320 426.5 298.5 448 272 448zM160 -32C142.3 -32 128 -17.7 128 0S142.3 32 160 32S192 17.7 192 0S177.7 -32 160 -32z" />
-			<glyph glyph-name="money-bill-alt" unicode="" horiz-adv-x="640" d=" M640 328V56C640 42.745 629.255 32 616 32H24C10.745 32 0 42.745 0 56V328C0 341.255 10.745 352 24 352H616C629.255 352 640 341.255 640 328zM96 64C96 99.346 67.346 128 32 128V64H96zM96 320H32V256C67.346 256 96 284.654 96 320zM400 192C400 245.021 364.184 288 320 288S240 245.021 240 192C240 138.988 275.814 96 320 96C364.1670000000001 96 400 138.969 400 192zM608 128C572.654 128 544 99.346 544 64H608V128zM608 320H544C544 284.654 572.654 256 608 256V320zM277.563 148.473C277.563 155.95 281.48 160.045 289.136 160.045H304.267V199.923C304.267 205.086 304.801 210.426 304.801 210.426H304.445S302.666 207.756 301.5969999999999 206.688C297.1459999999999 202.415 291.0929999999999 202.237 285.931 207.756L280.413 213.987C275.071 219.328 275.429 225.203 280.947 230.366L302.6669999999999 250.305C307.116 254.4 311.0329999999999 256.002 317.087 256.002H329.192C336.848 256.002 340.941 252.086 340.941 244.43V160.046H356.429C364.084 160.046 368.001 155.952 368.001 148.474V139.573C368.001 132.096 364.084 128.001 356.429 128.001H289.136C281.48 128.001 277.563 132.096 277.563 139.573V148.473z" />
-			<glyph glyph-name="moon" unicode="" horiz-adv-x="512" d=" M283.211 -64C362.173 -64 434.29 -28.075 482.068 30.792C489.136 39.5000000000001 481.429 52.222 470.506 50.1420000000001C346.303 26.4880000000001 232.244 121.7180000000001 232.244 247.0960000000001C232.244 319.3180000000001 270.906 385.7310000000001 333.742 421.4900000000001C343.428 427.0020000000001 340.992 441.6870000000001 329.986 443.7200000000001A258.156 258.156 0 0 1 283.211 448C141.902 448 27.211 333.4890000000001 27.211 192C27.211 50.691 141.722 -64 283.211 -64z" />
-			<glyph glyph-name="motorcycle" unicode="" horiz-adv-x="640" d=" M512.949 255.997C498.0869999999999 256.105 483.809 253.675 470.515 249.123L437.589 304H520C533.255 304 544 314.745 544 328V360C544 373.255 533.255 384 520 384H474.689A24 24 0 0 1 456.85 376.055L419.3540000000001 334.392L396.5800000000001 372.348A24 24 0 0 1 376 384H296C287.163 384 280 376.837 280 368V352C280 343.163 287.163 336 296 336H362.411L381.611 304H227.904C210.177 327.073 182.98 344 128 344H72.54C59.085 344 47.749 332.9890000000001 48.004 319.536C48.252 306.495 58.9 296 72 296H128C152.504 296 166.686 285.081 175.787 271.231L164.496 250.702C151.49 254.567 137.625 256.438 123.245 255.912C55.857 253.451 1.565 198.395 0.034 130.979C-1.603 58.924 56.317 0 128 0C187.642 0 237.744 40.794 251.953 96H336.189C349.862 96 360.778 107.421 360.165 121.077C358.0470000000001 168.197 377.687 214.742 416.35 246.103L428.8350000000001 225.295C401.189 201.641 383.7380000000001 166.415 384.004 127.116C384.4740000000001 57.56 441.207 0.664 510.762 0.006C582.391 -0.672 640.601 57.493 639.996 129.105C639.408 198.696 582.5409999999999 255.491 512.949 255.997zM128 48C83.888 48 48 83.888 48 128S83.888 208 128 208C132.242 208 136.405 207.659 140.469 207.018L98.97 131.566C90.187 115.593 101.762 96 120 96H201.297C188.927 67.775 160.737 48 128 48zM516.351 48.116C470.272 45.663 432 82.446 432 128C432 149.363 440.4340000000001 168.781 454.125 183.144L503.537 100.792C508.083 93.215 517.912 90.758 525.489 95.304L539.2090000000001 103.5360000000001C546.7860000000001 108.0820000000001 549.243 117.9110000000001 544.6970000000001 125.4880000000001L496.1410000000001 206.4150000000001A80.005 80.005 0 0 0 512 208C557.554 208 594.338 169.727 591.884 123.648C589.724 83.09 556.91 50.276 516.351 48.116z" />
-			<glyph glyph-name="mouse-pointer" unicode="" horiz-adv-x="320" d=" M302.189 118.874H196.105L251.936 -17.119C255.825 -26.547 251.381 -37.118 242.492 -41.118L193.327 -62.545C184.162 -66.5450000000001 173.884 -61.974 169.995 -52.831L116.942 76.305L30.278 -12.8330000000001C18.729 -24.71 0 -15.554 0 0.023V429.701C0 446.101 19.921 454.096 30.277 442.557L314.689 150.0150000000001C326.161 138.8360000000001 317.696 118.874 302.189 118.874z" />
-			<glyph glyph-name="music" unicode="" horiz-adv-x="512" d=" M470.4 446.5L166.4 350.5C153.1 346.3 144 334 144 320V55.4C129.9 60.8 113.5 64 96 64C43 64 0 35.3 0 0S43 -64 96 -64S192 -35.3 192 0V227.5L464 313.4V119.4C449.9 124.8 433.5 128 416 128C363 128 320 99.3 320 64S363 0 416 0S512 28.7 512 64V416C512 437.7 490.9 453 470.4 446.5z" />
-			<glyph glyph-name="neuter" unicode="" horiz-adv-x="288" d=" M288 272C288 351.5 223.5 416 144 416S0 351.5 0 272C0 203.5 47.9 146.1 112 131.6V-20C112 -26.6 117.4 -32 124 -32H164C170.6 -32 176 -26.6 176 -20V131.6C240.1 146.1 288 203.5 288 272zM144 192C99.9 192 64 227.9 64 272S99.9 352 144 352S224 316.1 224 272S188.1 192 144 192z" />
-			<glyph glyph-name="newspaper" unicode="" horiz-adv-x="576" d=" M552 384H88C74.745 384 64 373.255 64 360V352H24C10.745 352 0 341.255 0 328V56C0 25.072 25.072 0 56 0H528C554.51 0 576 21.49 576 48V360C576 373.255 565.255 384 552 384zM56 48A8 8 0 0 0 48 56V304H64V56A8 8 0 0 0 56 48zM292 64H140C133.373 64 128 69.373 128 76V84C128 90.627 133.373 96 140 96H292C298.627 96 304 90.627 304 84V76C304 69.373 298.627 64 292 64zM500 64H348C341.373 64 336 69.373 336 76V84C336 90.627 341.373 96 348 96H500C506.627 96 512 90.627 512 84V76C512 69.373 506.627 64 500 64zM292 160H140C133.373 160 128 165.373 128 172V180C128 186.627 133.373 192 140 192H292C298.627 192 304 186.627 304 180V172C304 165.373 298.627 160 292 160zM500 160H348C341.373 160 336 165.373 336 172V180C336 186.627 341.373 192 348 192H500C506.627 192 512 186.627 512 180V172C512 165.373 506.627 160 500 160zM500 256H140C133.373 256 128 261.373 128 268V308C128 314.627 133.373 320 140 320H500C506.627 320 512 314.627 512 308V268C512 261.373 506.627 256 500 256z" />
-			<glyph glyph-name="object-group" unicode="" horiz-adv-x="512" d=" M480 320V352H500C506.627 352 512 357.373 512 364V404C512 410.627 506.627 416 500 416H460C453.373 416 448 410.627 448 404V384H64V404C64 410.627 58.627 416 52 416H12C5.373 416 0 410.627 0 404V364C0 357.373 5.373 352 12 352H32V32H12C5.373 32 0 26.627 0 20V-20C0 -26.627 5.373 -32 12 -32H52C58.627 -32 64 -26.627 64 -20V0H448V-20C448 -26.627 453.373 -32 460 -32H500C506.627 -32 512 -26.627 512 -20V20C512 26.627 506.627 32 500 32H480V320zM96 172V308C96 314.627 101.373 320 108 320H276C282.627 320 288 314.627 288 308V172C288 165.373 282.627 160 276 160H108C101.373 160 96 165.373 96 172zM416 76C416 69.373 410.627 64 404 64H236C229.373 64 224 69.373 224 76V128H296C309.255 128 320 138.745 320 152V224H404C410.627 224 416 218.627 416 212V76z" />
-			<glyph glyph-name="object-ungroup" unicode="" horiz-adv-x="576" d=" M64 128V102A6 6 0 0 0 58 96H6A6 6 0 0 0 0 102V154A6 6 0 0 0 6 160H32V352H6A6 6 0 0 0 0 358V410A6 6 0 0 0 6 416H58A6 6 0 0 0 64 410V384H352V410A6 6 0 0 0 358 416H410A6 6 0 0 0 416 410V358A6 6 0 0 0 410 352H384V160H410A6 6 0 0 0 416 154V102A6 6 0 0 0 410 96H358A6 6 0 0 0 352 102V128H64zM544 192V224H570A6 6 0 0 1 576 230V282A6 6 0 0 1 570 288H518A6 6 0 0 1 512 282V256H408V184H416C429.255 184 440 173.255 440 160V96C440 82.745 429.255 72 416 72H352C338.745 72 328 82.745 328 96V104H192V32H166A6 6 0 0 1 160 26V-26A6 6 0 0 1 166 -32H218A6 6 0 0 1 224 -26V0H512V-26A6 6 0 0 1 518 -32H570A6 6 0 0 1 576 -26V26A6 6 0 0 1 570 32H544V192z" />
-			<glyph glyph-name="outdent" unicode="" horiz-adv-x="448" d=" M0 364V404C0 412.837 7.163 420 16 420H432C440.837 420 448 412.837 448 404V364C448 355.163 440.837 348 432 348H16C7.163 348 0 355.163 0 364zM208 220H432C440.837 220 448 227.163 448 236V276C448 284.837 440.837 292 432 292H208C199.163 292 192 284.837 192 276V236C192 227.163 199.163 220 208 220zM16 -36H432C440.837 -36 448 -28.837 448 -20V20C448 28.837 440.837 36 432 36H16C7.163 36 0 28.837 0 20V-20C0 -28.837 7.163 -36 16 -36zM208 92H432C440.837 92 448 99.163 448 108V148C448 156.837 440.837 164 432 164H208C199.163 164 192 156.837 192 148V108C192 99.163 199.163 92 208 92zM4.687 180.687L100.687 84.703C110.734 74.652 128 81.776 128 96.016V287.992C128 302.3210000000001 110.675 309.296 100.687 299.305L4.687 203.313C-1.562 197.065 -1.562 186.935 4.687 180.687z" />
-			<glyph glyph-name="paint-brush" unicode="" horiz-adv-x="512" d=" M269.9 83.4C271.3 77 272 70.4 272 63.7C272 -17.5 217.8 -64 137.2 -64C41.5 -64 0 12.9 0 100.4C10.4 93.3 46.9 63.9 58.7 63.9C65.7 63.9 71.7 67.9 74.2 74.5C97.8 136.7 140.7 151 187.1 151.9C202.7 118.1 233.2 92.3 269.9000000000001 83.4zM460.6 448C446.2000000000001 448 432.7000000000001 441.6 422.4000000000001 432.3C228.2 258 208 253.9 208 202.6C208 153.8 248.5 112 298.2 112C357.2 112 391.4 155.4 498.8 356.8C505.8 370.5 511.9999999999999 385.3 511.9999999999999 400.7C512 428.3 487.3 448 460.6 448z" />
-			<glyph glyph-name="paper-plane" unicode="" horiz-adv-x="512" d=" M476 444.8L12.5 177.4C-5.6 167 -3.3 141.8 14.7 134.2L121 89.6L408.3 342.8C413.8 347.7000000000001 421.6 340.2000000000001 416.9000000000001 334.5L176 41V-39.5C176 -63.1 204.5 -72.4 218.5 -55.3L282 22L406.6 -30.2C420.8 -36.2 437 -27.3 439.6 -12L511.6 420C515 440.2 493.3 454.8 476 444.8z" />
-			<glyph glyph-name="paperclip" unicode="" horiz-adv-x="448" d=" M43.246 -18.142C-15.184 42.147 -14.095 139.369 44.632 199.439L254.392 414C298.708 459.332 370.743 459.336 415.063 414C458.953 369.106 459.006 296.671 415.063 251.724L232.214 64.872C202.359 34.335 153.581 34.761 124.232 65.87C95.957 95.84 96.864 143.343 125.684 172.823L269.427 319.658C275.6090000000001 325.972 285.7390000000001 326.08 292.053 319.899L314.914 297.52C321.229 291.338 321.336 281.208 315.155 274.894L171.427 128.073C166.495 123.028 166.191 114.645 170.779 109.781C175.151 105.1469999999999 182.024 105.0699999999999 186.467 109.6159999999999L369.316 296.467C388.929 316.529 388.929 349.1919999999999 369.305 369.265C350.116 388.892 319.348 388.902 300.151 369.265L90.39 154.705C55.627 119.145 55.091 61.585 89.199 26.392C123.209 -8.701 178.184 -8.745 212.257 26.106L384.317 202.105C390.4940000000001 208.424 400.624 208.538 406.943 202.361L429.82 179.997C436.139 173.82 436.254 163.69 430.076 157.3710000000001L258.016 -18.627C198.44 -79.5649999999999 102.073 -78.843 43.246 -18.1419999999999z" />
-			<glyph glyph-name="paragraph" unicode="" horiz-adv-x="448" d=" M408 416H177.531C88.948 416 16.045 344.665 16 256.082C15.956 167.679 87.607 96 176 96V-8C176 -21.255 186.745 -32 200 -32H232C245.255 -32 256 -21.255 256 -8V336H288V-8C288 -21.255 298.745 -32 312 -32H344C357.255 -32 368 -21.255 368 -8V336H408C421.255 336 432 346.745 432 360V392C432 405.255 421.255 416 408 416z" />
-			<glyph glyph-name="paste" unicode="" horiz-adv-x="448" d=" M128 264C128 294.879 153.122 320 184 320H320V392C320 405.255 309.255 416 296 416H215.39C204.306 435.11 183.637 448 160 448S115.694 435.11 104.61 416H24C10.745 416 0 405.255 0 392V56C0 42.745 10.745 32 24 32H128V264zM160 408C173.255 408 184 397.255 184 384S173.255 360 160 360S136 370.745 136 384S146.745 408 160 408zM344 160H448V-40C448 -53.255 437.255 -64 424 -64H184C170.745 -64 160 -53.255 160 -40V264C160 277.255 170.745 288 184 288H320V184C320 170.8 330.8 160 344 160zM448 198.059V192H352V288H358.0590000000001A24 24 0 0 0 375.029 280.971L440.9700000000001 215.03A24.002000000000002 24.002000000000002 0 0 0 448 198.059z" />
-			<glyph glyph-name="pause-circle" unicode="" horiz-adv-x="512" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM240 112C240 103.2 232.8 96 224 96H176C167.2 96 160 103.2 160 112V272C160 280.8 167.2 288 176 288H224C232.8 288 240 280.8 240 272V112zM352 112C352 103.2 344.8 96 336 96H288C279.2 96 272 103.2 272 112V272C272 280.8 279.2 288 288 288H336C344.8 288 352 280.8 352 272V112z" />
-			<glyph glyph-name="pause" unicode="" horiz-adv-x="448" d=" M144 -31H48C21.5 -31 0 -9.5 0 17V369C0 395.5 21.5 417 48 417H144C170.5 417 192 395.5 192 369V17C192 -9.5 170.5 -31 144 -31zM448 17V369C448 395.5 426.5 417 400 417H304C277.5 417 256 395.5 256 369V17C256 -9.5 277.5 -31 304 -31H400C426.5 -31 448 -9.5 448 17z" />
-			<glyph glyph-name="paw" unicode="" horiz-adv-x="512" d=" M85.231 117.042C36 117.042 0 174.208 0 216.5C0 244.792 16 274.5420000000001 49.538 274.5420000000001C98.769 274.5420000000001 134.769 217.084 134.769 174.792C134.769 146.5 119.077 117.042 85.231 117.042zM433.231 10.875C433.231 -26.167 401.231 -32 369.846 -32C328.615 -32 295.384 -5.75 256 -5.75C214.769 -5.75 179.692 -31.708 135.077 -31.708C105.23 -31.708 78.769 -22.083 78.769 10.875C78.769 80 180.616 182.667 256 182.667S433.231 79.708 433.231 10.875zM182.462 244.208C132.615 244.208 102.462 303.708 102.462 344.541C102.462 377.208 120.308 416 160 416C210.154 416 240 356.5 240 315.6670000000001C240 283 222.154 244.208 182.462 244.208zM272 315.6670000000001C272 356.5 301.846 416 352 416C391.692 416 409.539 377.208 409.539 344.5420000000001C409.539 303.709 379.385 244.209 329.538 244.209C289.846 244.208 272 283 272 315.6670000000001zM512 216.5C512 174.208 476 117.042 426.769 117.042C392.9220000000001 117.042 377.231 146.5 377.231 174.792C377.231 217.083 413.23 274.5420000000001 462.462 274.5420000000001C496 274.5420000000001 512 244.792 512 216.5z" />
-			<glyph glyph-name="pen-square" unicode="ï…‹" horiz-adv-x="448" d=" M400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368V16C448 -10.5 426.5 -32 400 -32zM238.1 270.1L102.4 134.4L96.1 77.3C95.3 69.6999999999999 101.7 63.1999999999999 109.4 63.9999999999999L166.5 70.3L302.2 206C304.5 208.3 304.5 212.1 302.2 214.5L246.7 270C244.2 272.4 240.4 272.4 238.1 270.1zM345 282.9L314.9 313C305.5 322.4 290.3 322.4 281 313L257.9 289.9C255.6 287.6 255.6 283.8 257.9 281.4L313.4 225.9C315.7 223.6 319.5 223.6 321.9 225.9L345 249C354.3 258.3 354.3 273.5 345 282.9z" />
-			<glyph glyph-name="pencil-alt" unicode="" horiz-adv-x="512" d=" M497.9 305.9L451.8 259.8C447.1 255.1 439.5 255.1 434.8 259.8L323.8 370.8C319.1 375.5 319.1 383.1 323.8 387.8L369.9 433.9000000000001C388.6 452.6 419 452.6 437.8 433.9000000000001L497.9 373.8C516.6999999999999 355.1 516.6999999999999 324.7000000000001 497.9 305.9zM284.2 348.2L21.6 85.6L0.4 -35.9C-2.5 -52.3 11.8 -66.5 28.2 -63.7L149.7 -42.4L412.3 220.2000000000001C417 224.9 417 232.5000000000001 412.3 237.2000000000001L301.3 348.2000000000001C296.5 352.9000000000001 288.9000000000001 352.9000000000001 284.2 348.2000000000001zM124.1 108.1C118.6 113.6 118.6 122.4 124.1 127.9L278.1 281.9000000000001C283.6 287.4000000000001 292.4000000000001 287.4000000000001 297.9000000000001 281.9000000000001S303.4000000000001 267.6 297.9000000000001 262.1L143.9 108.1C138.4 102.6 129.6 102.6 124.1 108.1zM88 24H136V-12.3L71.5 -23.6L40.4 7.5L51.7 72H88V24z" />
-			<glyph glyph-name="percent" unicode="" horiz-adv-x="448" d=" M112 224C173.9 224 224 274.1 224 336S173.9 448 112 448S0 397.9 0 336S50.1 224 112 224zM112 384C138.5 384 160 362.5 160 336S138.5 288 112 288S64 309.5 64 336S85.5 384 112 384zM336 160C274.1 160 224 109.9 224 48S274.1 -64 336 -64S448 -13.9 448 48S397.9 160 336 160zM336 0C309.5 0 288 21.5 288 48S309.5 96 336 96S384 74.5 384 48S362.5 0 336 0zM392.3 447.8L423.9000000000001 447.9C443.3 448 454.8 426.1 443.6 410.1L77.4 -53.6A23.95 23.95 0 0 0 57.8 -63.8L24.4 -63.9C4.9 -63.9 -6.5 -42.0000000000001 4.7 -26.1L372.7 437.6C377.2 444 384.5 447.8 392.3 447.8z" />
-			<glyph glyph-name="phone-square" unicode="" horiz-adv-x="448" d=" M400 416H48C21.49 416 0 394.51 0 368V16C0 -10.51 21.49 -32 48 -32H400C426.51 -32 448 -10.51 448 16V368C448 394.51 426.51 416 400 416zM94 32C86.967 32 80.943 36.873 79.384 43.627L64.386 108.627A15 15 0 0 0 73.093 125.787L143.091 155.7860000000001A15 15 0 0 0 160.609 151.4970000000001L191.606 113.6120000000001C240.55 136.5750000000001 279.903 176.4700000000001 302.387 224.3920000000001L264.501 255.3890000000001A15.000999999999998 15.000999999999998 0 0 0 260.212 272.9070000000001L290.212 342.9050000000001A15 15 0 0 0 307.372 351.6120000000001L372.372 336.6140000000001A14.997000000000002 14.997000000000002 0 0 0 384 322C384 161.708 254.055 32 94 32z" />
-			<glyph glyph-name="phone-volume" unicode="" horiz-adv-x="384" d=" M97.333 -58.966C-32.541 70.908 -32.348 281.286 97.333 410.967C103.031 416.665 111.86 417.599 118.596 413.389L183.413 372.876A17.187 17.187 0 0 0 190.262 351.918L157.854 270.897A17.188 17.188 0 0 0 140.185 260.178L84.375 265.7580000000001C63.324 207.497 63.763 143.287 84.375 86.2430000000001L140.186 91.8240000000001A17.188 17.188 0 0 0 157.855 81.1050000000001L190.263 0.0830000000001A17.188 17.188 0 0 0 183.414 -20.8749999999999L118.597 -61.3879999999999A17.19 17.19 0 0 0 97.333 -58.9659999999998zM247.126 352.527C258.9580000000001 332.48 258.9580000000001 307.519 247.126 287.472C243.176 280.779 234.018 279.513 228.408 284.891L222.433 290.617C218.522 294.365 217.64 300.239 220.172 305.027A32.063 32.063 0 0 1 220.172 334.972C217.6390000000001 339.76 218.522 345.634 222.433 349.382L228.408 355.108C234.0180000000001 360.486 243.176 359.22 247.126 352.527zM338.913 443.714C399.053 372.11 399.005 267.832 338.913 196.286C334.439 190.959 326.3830000000001 190.54 321.361 195.353L315.563 200.91C311.003 205.281 310.586 212.439 314.633 217.289C364.32 276.827 364.279 363.222 314.633 422.711C310.586 427.561 311.002 434.719 315.563 439.09L321.361 444.647C326.383 449.46 334.439 449.041 338.913 443.714zM292.9410000000001 398.773C328.9910000000001 352.451 329.0490000000001 287.624 292.9410000000001 241.227C288.5510000000001 235.586 280.2440000000001 234.976 275.0850000000001 239.923L269.2670000000001 245.502C264.8670000000001 249.721 264.2690000000001 256.597 267.9820000000001 261.433C294.5180000000001 295.997 294.516 344.005 267.9820000000001 378.567C264.269 383.403 264.867 390.278 269.2670000000001 394.4980000000001L275.0850000000001 400.077C280.2440000000001 405.024 288.5510000000001 404.414 292.9410000000001 398.773z" />
-			<glyph glyph-name="phone" unicode="ï‚•" horiz-adv-x="512" d=" M493.397 423.385L389.397 447.382C378.083 449.993 366.518 444.13 361.941 433.451L313.941 321.454A24 24 0 0 1 320.803 293.425L381.42 243.829C345.447 167.154 282.4820000000001 103.321 204.171 66.581L154.575 127.197A24 24 0 0 1 126.546 134.059L14.549 86.059C3.873 81.484 -1.994 69.92 0.618 58.603L24.615 -45.397C27.109 -56.204 36.748 -64 48 -64C304.087 -64 512 143.5320000000001 512 400C512 411.176 504.286 420.873 493.397 423.385z" />
-			<glyph glyph-name="plane" unicode="" horiz-adv-x="576" d=" M472 248H360.211L256.013 442.289A12 12 0 0 1 245.793 448H188.006C180.156 448 174.42 440.587 176.39 432.989L209.624 248H99.766L64.862 306.174A12 12 0 0 1 54.572 312H12.004C4.432 312 -1.248 305.072 0.237 297.647L21.366 191.999L0.237 86.354C-1.248 78.928 4.432 72 12.005 72.001L54.573 72.003C58.788 72.003 62.694 74.215 64.862 77.829L99.766 136H209.624L176.39 -48.989C174.42 -56.588 180.156 -64 188.006 -64H245.793A12 12 0 0 1 256.013 -58.289L360.212 136H472C529.438 136 576 161.072 576 192S529.438 248 472 248z" />
-			<glyph glyph-name="play-circle" unicode="ï…„" horiz-adv-x="512" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM371.7 168L195.7 67C179.9 58.2 160 69.5 160 88V296C160 314.4 179.8 325.8 195.7 317L371.7 210C388.1 200.8 388.1 177.1 371.7 168z" />
-			<glyph glyph-name="play" unicode="" horiz-adv-x="448" d=" M424.4 233.3L72.4 441.4C43.8 458.3 0 441.9 0 400.1V-16C0 -53.5 40.7 -76.1 72.4 -57.3L424.4 150.7C455.8 169.2 455.9 214.8 424.4 233.3z" />
-			<glyph glyph-name="plug" unicode="" horiz-adv-x="384" d=" M256 304V416C256 433.673 270.327 448 288 448S320 433.673 320 416V304H256zM368 288H16C7.163 288 0 280.837 0 272V240C0 231.163 7.163 224 16 224H32V192C32 114.594 86.969 50.029 160 35.204V-64H224V35.204C297.031 50.029 352 114.594 352 192V224H368C376.837 224 384 231.163 384 240V272C384 280.837 376.837 288 368 288zM128 304V416C128 433.673 113.673 448 96 448S64 433.673 64 416V304H128z" />
-			<glyph glyph-name="plus-circle" unicode="" horiz-adv-x="512" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM400 164C400 157.4 394.6 152 388 152H296V60C296 53.4 290.6 48 284 48H228C221.4 48 216 53.4 216 60V152H124C117.4 152 112 157.4 112 164V220C112 226.6 117.4 232 124 232H216V324C216 330.6 221.4 336 228 336H284C290.6 336 296 330.6 296 324V232H388C394.6 232 400 226.6 400 220V164z" />
-			<glyph glyph-name="plus-square" unicode="" horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM368 164C368 157.4 362.6 152 356 152H264V60C264 53.4 258.6 48 252 48H196C189.4 48 184 53.4 184 60V152H92C85.4 152 80 157.4 80 164V220C80 226.6 85.4 232 92 232H184V324C184 330.6 189.4 336 196 336H252C258.6 336 264 330.6 264 324V232H356C362.6 232 368 226.6 368 220V164z" />
-			<glyph glyph-name="plus" unicode="" horiz-adv-x="448" d=" M448 153.8V230.2C448 243.5000000000001 437.3 254.2 424 254.2H286.2V392C286.2 405.3 275.5 416 262.2 416H185.8C172.5 416 161.8 405.3 161.8 392V254.2H24C10.7 254.2 0 243.5 0 230.2V153.8C0 140.5 10.7 129.8 24 129.8H161.8V-8C161.8 -21.3 172.5 -32 185.8 -32H262.2000000000001C275.5000000000001 -32 286.2000000000001 -21.3 286.2000000000001 -8V129.8H424C437.3 129.8 448 140.5 448 153.8z" />
-			<glyph glyph-name="podcast" unicode="ï‹Ž" horiz-adv-x="448" d=" M267.429 -40.563C262.286 -59.573 242.858 -64 224 -64C205.143 -64 185.714 -59.573 180.572 -40.563C172.927 -12.134 160 59.102 160 92.25C160 127.406 191.142 136 224 136S288 127.406 288 92.25C288 59.301 275.129 -11.929 267.429 -40.563zM156.867 159.446C138.174 177.754 126.909 203.619 128.083 232.045C130.137 281.769 170.478 322.0010000000001 220.207 323.9260000000001C274.862 326.0420000000001 320 282.193 320 228C320 201.173 308.936 176.884 291.134 159.448C288.459 156.828 288.733 152.462 291.762 150.261C301.074 143.496 308.222 134.918 312.996 124.898C314.737 121.244 319.493 120.238 322.445 123.007C351.271 150.05 368.998 188.79 367.956 231.572C366.101 307.778 304.361 369.78 228.163 371.9409999999999C146.869 374.247 80 308.785 80 228C80 186.639 97.532 149.3 125.55 123.011C128.503 120.24 133.261 121.241 135.003 124.898C139.777 134.919 146.926 143.496 156.238 150.261C159.267 152.461 159.542 156.827 156.867 159.446zM224 448C100.204 448 0 347.815 0 224C0 134.008 52.602 58.353 125.739 22.592C130.072 20.474 135.006 24.136 134.274 28.902C131.892 44.414 129.932 59.848 128.868 73.241C128.722 75.077 127.719 76.727 126.19 77.753C78.79 109.559 47.626 163.769 48.003 225.1C48.595 321.337 127.293 399.748 223.532 399.999C320.793 400.253 400 321.203 400 224C400 162.068 367.842 107.51 319.35 76.133C318.351 62.0960000000001 316.281 45.545 313.726 28.903C312.994 24.136 317.929 20.474 322.261 22.593C395.227 58.273 448 133.813 448 224C448 347.795 347.815 448 224 448zM224 288C188.654 288 160 259.346 160 224S188.654 160 224 160S288 188.654 288 224S259.346 288 224 288z" />
-			<glyph glyph-name="pound-sign" unicode="ï…”" horiz-adv-x="320" d=" M308 96H262.505C255.878 96 250.505 90.627 250.505 84V33.152H128V160H212C218.627 160 224 165.373 224 172V212C224 218.627 218.627 224 212 224H128V287.556C128 319.822 152.562 344.642 189.792 344.642C213.45 344.642 235.67 333.137 247.444 325.793C252.5950000000001 322.58 259.332 323.742 263.132 328.478L291.625 363.991C295.858 369.267 294.904 376.996 289.506 381.072C273.124 393.44 236.576 416 187.931 416C106.026 416 48 363.258 48 290.039V224H20C13.373 224 8 218.627 8 212V172C8 165.373 13.373 160 20 160H48V32H12C5.373 32 0 26.627 0 20V-20C0 -26.627 5.373 -32 12 -32H308C314.627 -32 320 -26.627 320 -20V84C320 90.627 314.627 96 308 96z" />
-			<glyph glyph-name="power-off" unicode="" horiz-adv-x="512" d=" M400 393.9C463 348.9 504 275.3 504 192C504 55.2 393.2 -55.7 256.5 -56C120 -56.3 8.2 55 8 191.6C7.9 274.9 48.9 348.7 111.8 393.8C123.5 402.1 139.8 398.6 146.8 386.1L162.6 358C168.5 347.5 165.7 334.2 156 327C114.5 296.2 88 247.4 88 192.1C87.9 99.8 162.5 24 256 24C347.6 24 424.6 98.2 424 193.1C423.7 244.9 399.3 294.9 355.9 327.1C346.2 334.3 343.5 347.6 349.4 358L365.2 386.1C372.2 398.5 388.4 402.2 400 393.9zM296 184V424C296 437.3 285.3 448 272 448H240C226.7 448 216 437.3 216 424V184C216 170.7 226.7 160 240 160H272C285.3 160 296 170.7 296 184z" />
-			<glyph glyph-name="print" unicode="" horiz-adv-x="512" d=" M464 256H448V366.059A24 24 0 0 1 440.971 383.029L383.029 440.971A24 24 0 0 1 366.0590000000001 448H88C74.745 448 64 437.255 64 424V256H48C21.49 256 0 234.51 0 208V76C0 69.373 5.373 64 12 64H64V-40C64 -53.255 74.745 -64 88 -64H424C437.255 -64 448 -53.255 448 -40V64H500C506.627 64 512 69.373 512 76V208C512 234.51 490.51 256 464 256zM384 0H128V96H384V0zM128 224V384H320V344C320 330.8 330.8 320 344 320H384V224H128zM432 152C418.746 152 408 162.746 408 176S418.746 200 432 200S456 189.254 456 176S445.254 152 432 152z" />
-			<glyph glyph-name="puzzle-piece" unicode="ï„®" horiz-adv-x="576" d=" M519.442 159.349C477.923 159.349 459.942 127.756 437.384 127.756C377.409 127.756 432 304 432 304S235.712 224 235.712 307.2970000000001C235.712 343.124 272 353.5470000000001 272 393.282C272 428.784 243.885 448 210.539 448C175.885 448 144.173 429.109 144.173 391.654C144.173 350.29 175.884 332.377 175.884 309.904C175.885 240.281 0 281.242 0 281.242V-51.995S178.635 -93.042 178.635 -23.333C178.635 -0.86 138.635 16.774 138.635 58.138C138.635 95.594 167.885 114.484 202.212 114.484C235.885 114.484 264 95.268 264 59.767C264 20.032 227.712 9.609 227.712 -26.218C227.712 -87.021 357.387 -51.948 408.942 -51.948C408.942 -51.948 374.217 68.153 434.769 68.153C470.731 68.153 481.192 32.001 521.077 32.001C556.712 32 576 60.01 576 93.557C576 127.756 557.038 159.3490000000001 519.442 159.3490000000001z" />
-			<glyph glyph-name="qrcode" unicode="" horiz-adv-x="448" d=" M0 224H192V416H0V224zM64 352H128V288H64V352zM256 416V224H448V416H256zM384 288H320V352H384V288zM0 -32H192V160H0V-32zM64 96H128V32H64V96zM416 160H448V32H352V64H320V-32H256V160H352V128H416V160zM416 0H448V-32H416V0zM352 0H384V-32H352V0z" />
-			<glyph glyph-name="question-circle" unicode="" horiz-adv-x="512" d=" M504 192C504 55.003 392.957 -56 256 -56S8 55.003 8 192C8 328.9170000000001 119.043 440 256 440S504 328.9170000000001 504 192zM262.655 358C208.158 358 173.4 335.043 146.106 294.242C142.57 288.956 143.753 281.827 148.821 277.984L183.52 251.674C188.725 247.727 196.141 248.666 200.185 253.796C218.049 276.454 230.298 289.593 257.488 289.593C277.9169999999999 289.593 303.1859999999999 276.445 303.1859999999999 256.635C303.1859999999999 241.659 290.8229999999999 233.968 270.652 222.659C247.128 209.472 216 193.059 216 152V148C216 141.373 221.373 136 228 136H284C290.627 136 296 141.373 296 148V149.333C296 177.795 379.1860000000001 178.98 379.1860000000001 256C379.1860000000001 314.0020000000001 319.021 358 262.6550000000001 358zM256 110C230.635 110 210 89.365 210 64C210 38.636 230.635 18 256 18S302 38.636 302 64C302 89.365 281.365 110 256 110z" />
-			<glyph glyph-name="question" unicode="" horiz-adv-x="384" d=" M202.021 448C122.202 448 70.503 415.2970000000001 29.914 356.974C22.551 346.394 24.821 331.8880000000001 35.092 324.1L78.23 291.391C88.603 283.526 103.362 285.365 111.483 295.539C136.532 326.92 155.113 344.988 194.24 344.988C225.004 344.988 263.0560000000001 325.189 263.0560000000001 295.357C263.0560000000001 272.805 244.4390000000001 261.223 214.0630000000001 244.193C178.6400000000001 224.333 131.7640000000001 199.617 131.7640000000001 137.788V128C131.7640000000001 114.745 142.5090000000001 104 155.7640000000001 104H228.2350000000001C241.4900000000001 104 252.2350000000001 114.745 252.2350000000001 128V133.773C252.2350000000001 176.6330000000001 377.5030000000001 178.418 377.5030000000001 294.4000000000001C377.504 381.7440000000001 286.902 448 202.021 448zM192 74.541C153.804 74.541 122.729 43.466 122.729 5.27C122.729 -32.925 153.804 -64 192 -64S261.271 -32.925 261.271 5.271S230.1960000000001 74.541 192 74.541z" />
-			<glyph glyph-name="quote-left" unicode="" horiz-adv-x="512" d=" M0 16V144C0 281.0180000000001 63.772 380.324 193.827 415.1720000000001C209.052 419.252 224 407.735 224 391.973V358.078C224 348.021 217.772 338.945 208.313 335.528C142.316 311.688 104 266.054 104 192H176C202.51 192 224 170.51 224 144V16C224 -10.51 202.51 -32 176 -32H48C21.49 -32 0 -10.51 0 16zM336 -32H464C490.51 -32 512 -10.51 512 16V144C512 170.51 490.51 192 464 192H392C392 266.054 430.3160000000001 311.688 496.313 335.528C505.772 338.945 512 348.021 512 358.078V391.973C512 407.735 497.052 419.252 481.827 415.1720000000001C351.772 380.324 288 281.0180000000001 288 144V16C288 -10.51 309.49 -32 336 -32z" />
-			<glyph glyph-name="quote-right" unicode="ï„Ž" horiz-adv-x="512" d=" M512 368V240C512 102.982 448.228 3.676 318.173 -31.172C302.948 -35.252 288 -23.735 288 -7.973V25.922C288 35.979 294.228 45.055 303.687 48.472C369.6840000000001 72.312 408 117.946 408 192H336C309.49 192 288 213.49 288 240V368C288 394.51 309.49 416 336 416H464C490.51 416 512 394.51 512 368zM176 416H48C21.49 416 0 394.51 0 368V240C0 213.49 21.49 192 48 192H120C120 117.946 81.684 72.312 15.687 48.472C6.228 45.055 0 35.979 0 25.922V-7.973C0 -23.735 14.948 -35.2519999999999 30.173 -31.172C160.228 3.676 224 102.982 224 240V368C224 394.51 202.51 416 176 416z" />
-			<glyph glyph-name="random" unicode="" horiz-adv-x="512" d=" M504.971 88.971C514.344 79.598 514.344 64.402 504.971 55.03L424.971 -24.954C409.961 -39.964 384 -29.444 384 -7.983V32H325.2150000000001A12.004 12.004 0 0 0 316.442 35.812L245.886 111.408L299.2190000000001 168.5510000000001L352 112H384V151.981C384 173.419 409.943 183.979 424.971 168.952L504.971 88.971zM12 272H96L148.781 215.449L202.114 272.592L131.558 348.188A11.999000000000002 11.999000000000002 0 0 1 122.785 352H12C5.373 352 0 346.627 0 340V284C0 277.373 5.373 272 12 272zM384 272V232.016C384 210.556 409.961 200.036 424.971 215.045L504.971 295.029C514.344 304.402 514.344 319.598 504.971 328.9700000000001L424.971 408.951C409.943 423.979 384 413.418 384 391.981V352H325.2150000000001A12.004 12.004 0 0 1 316.442 348.188L96 112H12C5.373 112 0 106.627 0 100V44C0 37.373 5.373 32 12 32H122.785C126.111 32 129.288 33.381 131.558 35.812L352 272H384z" />
-			<glyph glyph-name="recycle" unicode="" horiz-adv-x="512" d=" M184.561 186.097C187.793 172.1 172.438 161.462 160.493 168.929L119.757 194.384L68.89 112.982C55.606 91.727 70.96 64 96.012 64H148C154.627 64 160 58.627 160 52V12C160 5.373 154.627 0 148 0H96.115C20.781 0 -25.187 83.048 14.707 146.88L65.529 228.268L24.804 253.716C12.723 261.2630000000001 15.838 279.677 29.683 282.874L139.92 308.324C148.531 310.312 157.121 304.943 159.109 296.334L184.561 186.097zM283.122 369.012L324.411 302.936L283.671 277.479C271.62 269.951 274.671 251.526 288.55 248.321L398.7870000000001 222.871C407.4590000000001 220.872 416.002 226.309 417.9760000000001 234.861L443.4260000000001 345.098C446.6230000000001 358.942 431.4360000000001 369.817 419.3580000000001 362.266L378.6710000000001 336.842L337.4080000000001 402.924C299.8870000000001 462.957 212.1990000000001 463.095 174.5920000000001 402.924L156.6290000000001 374.158C153.1190000000001 368.538 154.8290000000001 361.137 160.4490000000001 357.625L194.3680000000001 336.43C199.9880000000001 332.918 207.3920000000001 334.627 210.9040000000001 340.247L228.8650000000001 368.99C241.5770000000001 389.331 270.8380000000001 388.666 283.1220000000001 369.012zM497.288 146.88L469.773 190.945C466.262 196.568 458.857 198.279 453.235 194.766L419.374 173.607C413.754 170.095 412.0440000000001 162.692 415.5560000000001 157.071L443.1200000000001 112.959C456.3770000000001 91.7479999999999 441.0630000000001 63.999 415.9840000000001 63.999H320V111.98C320 126.1930000000001 302.758 133.363 292.687 123.293L212.687 43.312C206.438 37.064 206.438 26.933 212.687 20.685L292.687 -59.304C302.689 -69.308 320 -62.3 320 -47.989V0H415.88C491.154 0 537.215 82.997 497.288 146.88z" />
-			<glyph glyph-name="redo-alt" unicode="" horiz-adv-x="512" d=" M256.455 440C322.724 439.881 382.892 413.767 427.314 371.315L463.029 407.03C478.149 422.149 504 411.4410000000001 504 390.059V256C504 242.745 493.255 232 480 232H345.941C324.559 232 313.851 257.851 328.97 272.971L370.72 314.721C339.856 343.62 299.919 359.628 257.49 359.9940000000001C165.092 360.7920000000001 87.207 286.017 88.0059999999999 190.552C88.764 99.991 162.184 24 256 24C297.127 24 335.997 38.678 366.629 65.556C371.372 69.717 378.5350000000001 69.464 382.997 65.003L422.659 25.341C427.531 20.469 427.29 12.526 422.177 7.908C378.202 -31.813 319.926 -56 256 -56C119.034 -56 8.001 55.033 8 191.998C7.999 328.807 119.646 440.245 256.455 440z" />
-			<glyph glyph-name="redo" unicode="" horiz-adv-x="512.333" d=" M500.333 448H452.922C446.069 448 440.608 442.271 440.9360000000001 435.426L444.9020000000001 352.6670000000001C399.416 406.101 331.6720000000001 440 256.001 440C119.34 440 7.899 328.474 8 191.813C8.101 54.932 119.096 -56 256 -56C319.926 -56 378.202 -31.813 422.178 7.908C427.291 12.526 427.532 20.469 422.6600000000001 25.341L388.689 59.312C384.223 63.778 377.0490000000001 64.029 372.3090000000001 59.855C341.308 32.552 300.606 16 256 16C158.733 16 80 94.716 80 192C80 289.267 158.716 368 256 368C316.892 368 370.506 337.142 402.099 290.2L300.574 295.065C293.729 295.3930000000001 288 289.932 288 283.079V235.668C288 229.041 293.373 223.668 300 223.668H500.333C506.96 223.668 512.333 229.041 512.333 235.668V436C512.333 442.627 506.96 448 500.333 448z" />
-			<glyph glyph-name="registered" unicode="" horiz-adv-x="512" d=" M285.363 240.525C285.363 221.925 275.532 212.094 256.932 212.094H227.056V268.234H250.4340000000001C279.1020000000001 268.234 285.3630000000001 259.461 285.3630000000001 240.525zM504 192C504 55.033 392.967 -56 256 -56S8 55.033 8 192S119.033 440 256 440S504 328.967 504 192zM363.411 87.586C316.682 172.411 320.112 166.222 318.709 168.566C342.141 183.7380000000001 356.654 211.545 356.654 243.052C356.654 297.2960000000001 325.154 332.3040000000001 251.156 332.3040000000001H180.489C167.234 332.3040000000001 156.489 321.5590000000001 156.489 308.3040000000001V76C156.489 62.745 167.234 52 180.489 52H203.056C216.311 52 227.056 62.745 227.056 76V147.663H252.612L296.7410000000001 64.726A24.001000000000005 24.001000000000005 0 0 1 317.9290000000001 51.999H342.3930000000001C360.6540000000001 52 372.2220000000001 71.59 363.4110000000001 87.586z" />
-			<glyph glyph-name="reply-all" unicode="ï„¢" horiz-adv-x="576" d=" M136.309 258.164L312.313 410.149C327.7200000000001 423.454 352 412.652 352 391.985V309.222C481.182 298.991 576 257.01 576 125.674C576 64.233 536.418 3.365 492.667 -28.458C479.014 -38.389 459.556 -25.925 464.59 -9.827C503.102 113.335 460.668 159.655 352 172.188V88.013C352 67.312 327.7 56.56 312.313 69.849L136.309 221.836C125.238 231.397 125.223 248.589 136.309 258.164zM8.309 221.836L184.313 69.85C199.7 56.561 224 67.313 224 88.014V103.832L115.394 197.617A55.96 55.96 0 0 0 96 240.002A55.95300000000001 55.95300000000001 0 0 0 115.393 282.382L224 376.168V391.985C224 412.652 199.72 423.454 184.313 410.149L8.309 258.164C-2.777 248.589 -2.762 231.397 8.309 221.836z" />
-			<glyph glyph-name="reply" unicode="" horiz-adv-x="512" d=" M8.309 258.164L184.313 410.149C199.719 423.454 224 412.653 224 391.985V311.932C384.629 310.093 512 277.9000000000001 512 125.674C512 64.233 472.419 3.365 428.6670000000001 -28.458C415.014 -38.389 395.5560000000001 -25.925 400.5900000000001 -9.827C445.9340000000001 135.185 379.0830000000001 173.683 224 175.915V88C224 67.3 199.7 56.547 184.3130000000001 69.836L8.3090000000001 221.836C-2.7619999999999 231.398 -2.7769999999999 248.589 8.3090000000001 258.164z" />
-			<glyph glyph-name="retweet" unicode="" horiz-adv-x="640" d=" M629.657 104.402L528.971 3.716C519.598 -5.656 504.403 -5.656 495.03 3.716L394.343 104.402C384.9700000000001 113.775 384.9700000000001 128.971 394.343 138.343L405.166 149.166C414.728 158.728 430.299 158.5059999999999 439.585 148.6739999999999L480 105.882V288H292.451A24.005 24.005 0 0 0 275.48 295.029L259.48 311.029C244.361 326.149 255.069 352 276.451 352H520C533.255 352 544 341.255 544 328V105.882L584.4159999999999 148.674C593.7009999999999 158.505 609.2719999999999 158.728 618.8349999999999 149.166L629.6579999999999 138.343C639.0299999999999 128.971 639.0299999999999 113.774 629.6569999999999 104.402zM364.5190000000001 88.971A23.999000000000002 23.999000000000002 0 0 1 347.548 96H160V278.1190000000001L200.416 235.327C209.702 225.496 225.272 225.273 234.835 234.836L245.657 245.658C255.03 255.031 255.03 270.227 245.657 279.599L144.971 380.284C135.598 389.657 120.402 389.657 111.03 380.284L10.343 279.598C0.97 270.225 0.97 255.029 10.343 245.657L21.165 234.835C30.727 225.273 46.298 225.495 55.584 235.326L96 278.1190000000001V56C96 42.745 106.745 32 120 32H363.549C384.931 32 395.639 57.851 380.52 72.971L364.519 88.971z" />
-			<glyph glyph-name="road" unicode="" horiz-adv-x="576" d=" M567.3 64.4L429.9 369.8C426 378.5 417.4 384 408 384H311.9L313.8 365.2C314.5 358.1 309 352 301.9 352H274C266.9 352 261.3 358.2 262.1 365.2L264 384H168C158.6 384 150 378.5 146.1 369.8L8.7 64.4C3.2 52.2 0 38.4 0 24C0 10.7 10.7 0 24 0H237.6C230.5 0 224.9 6.2 225.7 13.2L236.5 117.2C237.1 123.3 242.3 128 248.4 128H327.6C333.7000000000001 128 338.9000000000001 123.4 339.5 117.2L350.3 13.2C351 6.1 345.5 0 338.4000000000001 0H552C565.2 0 576 10.7 576 24C576 37.9 573 51.7 567.3 64.4zM254.7 293.2L258 325.2C258.6 331.3 263.8 336 269.9 336H306.1C312.2 336 317.4 331.4 318 325.2L321.3 293.2C322 286.1 316.5 280 309.4 280H266.6C259.5 280 253.9 286.2 254.7 293.2zM321.8 160H254.2C247.1 160 241.5000000000001 166.2 242.3 173.2L249.7 245.2C250.3 251.3 255.5000000000001 256 261.6 256H314.3C320.4000000000001 256 325.6 251.4 326.2 245.2L333.6 173.2C334.5 166.2 328.9 160 321.8 160z" />
-			<glyph glyph-name="rocket" unicode="" horiz-adv-x="512" d=" M505.1 428.9C503.8 435 499 439.8 492.9 441.1C460.7 448 435.5 448 410.4 448C307.2 448 245.3 392.8 199.1 320H94.9C76.7 320 60.1 309.7 52 293.5L2.6 194.7C-5.4 178.7 6.2 160 24.1 160H119.2C113.3 147.2 107.3 134.5 101.2 122.3C98.1 116.1 99.3 108.7 104.2 103.8L167.8 40.2C172.7 35.3 180.1 34.1 186.3 37.2C198.5 43.3 211.2 49.2 224 55.1V-40C224 -57.8 242.8 -69.4 258.7 -61.5L357.4 -12.1C373.7 -4 383.9 12.7 383.9 30.8V135.2C456.5 181.5 511.9 243.6 511.9 346.3C512 371.5 512 396.7 505.1 428.9zM400 288C373.5 288 352 309.5 352 336S373.5 384 400 384S448 362.5 448 336S426.5 288 400 288z" />
-			<glyph glyph-name="rss-square" unicode="ï…ƒ" horiz-adv-x="448" d=" M400 416H48C21.49 416 0 394.51 0 368V16C0 -10.51 21.49 -32 48 -32H400C426.51 -32 448 -10.51 448 16V368C448 394.51 426.51 416 400 416zM112 32C85.49 32 64 53.49 64 80S85.49 128 112 128S160 106.51 160 80S138.51 32 112 32zM269.533 32H235.198C229.187 32 224.147 36.636 223.756 42.634C218.542 122.684 154.513 186.554 74.633 191.757C68.636 192.147 64 197.188 64 203.198V237.533C64 244.068 69.468 249.31 75.994 248.9580000000001C186.54 242.9840000000001 274.9910000000001 154.422 280.9580000000001 43.994C281.31 37.468 276.0680000000001 32 269.533 32zM372.56 32H338.226C332.065 32 327.051 36.882 326.799 43.038C321.201 179.573 211.595 289.199 75.039 294.798C68.882 295.051 64 300.065 64 306.226V340.56C64 347.014 69.338 352.224 75.787 351.992C243.617 345.967 377.997 210.801 383.992 43.787C384.224 37.338 379.014 32.0000000000001 372.56 32.0000000000001z" />
-			<glyph glyph-name="rss" unicode="ï‚ž" horiz-adv-x="448" d=" M128.081 32.041C128.081 -3.328 99.409 -32 64.04 -32S0 -3.328 0 32.041S28.672 96.082 64.041 96.082S128.081 67.409 128.081 32.041zM303.741 -15.209C295.387 139.391 171.556 263.378 16.791 271.741C7.656 272.235 0 264.895 0 255.747V207.678C0 199.263 6.49 192.206 14.887 191.66C126.719 184.376 216.36 94.958 223.659 -17.112C224.206 -25.509 231.263 -31.999 239.677 -31.999H287.746C296.895 -32 304.235 -24.344 303.741 -15.209zM447.99 -15.497C439.596 218.323 251.465 407.555 16.503 415.99C7.473 416.314 0 409.019 0 399.984V351.916C0 343.291 6.835 336.271 15.453 335.9170000000001C206.632 328.078 360.08 174.601 367.918 -16.548C368.271 -25.166 375.291 -32.001 383.917 -32.001H431.985C441.019 -32 448.314 -24.527 447.99 -15.497z" />
-			<glyph glyph-name="ruble-sign" unicode="ï…˜" horiz-adv-x="384" d=" M239.36 128C324.48 128 384 187.458 384 272.929S324.48 416 239.36 416H76C69.373 416 64 410.627 64 404V197.368H12C5.373 197.368 0 191.995 0 185.368V140C0 133.373 5.373 128 12 128H64V96H12C5.373 96 0 90.627 0 84V44C0 37.373 5.373 32 12 32H64V-20C64 -26.627 69.373 -32 76 -32H134.56C141.187 -32 146.56 -26.627 146.56 -20V32H308C314.627 32 320 37.373 320 44V84C320 90.627 314.627 96 308 96H146.56V128H239.36zM146.56 347.252H225.28C272 347.252 300.16 318.142 300.16 272.9290000000001C300.16 227.0970000000001 272 197.368 224 197.368H146.56V347.252z" />
-			<glyph glyph-name="rupee-sign" unicode="ï…–" horiz-adv-x="320" d=" M308 352C314.627 352 320 357.373 320 364V404C320 410.627 314.627 416 308 416H12C5.373 416 0 410.627 0 404V359.252C0 352.625 5.373 347.252 12 347.252H97.28C124.588 347.252 145.541 337.294 158.25 320H12C5.373 320 0 314.627 0 308V268C0 261.373 5.373 256 12 256H170.757C164.54 219.914 137.796 197.368 96 197.368H12C5.373 197.368 0 191.995 0 185.368V132.356C0 129.007 1.4 125.81 3.861 123.538L168.913 -28.818A12.001000000000001 12.001000000000001 0 0 1 177.052 -32H259.614C270.538 -32 275.78 -18.592 267.753 -11.182L116.871 128.094C193.37 130.434 248.015 181.489 255.189 256H308C314.627 256 320 261.373 320 268V308C320 314.627 314.627 320 308 320H249.31C245.824 331.541 241.03 342.246 235.058 352H308z" />
-			<glyph glyph-name="save" unicode="" horiz-adv-x="448" d=" M433.941 318.059L350.059 401.9410000000001A48 48 0 0 1 316.118 416H48C21.49 416 0 394.51 0 368V16C0 -10.51 21.49 -32 48 -32H400C426.51 -32 448 -10.51 448 16V284.118A48 48 0 0 1 433.941 318.059zM224 32C188.654 32 160 60.654 160 96C160 131.346 188.654 160 224 160S288 131.346 288 96C288 60.654 259.346 32 224 32zM320 336.52V236C320 229.373 314.627 224 308 224H76C69.373 224 64 229.373 64 236V340C64 346.627 69.373 352 76 352H304.52C307.703 352 310.755 350.736 313.005 348.485L316.485 345.005A11.996 11.996 0 0 0 320 336.52z" />
-			<glyph glyph-name="search-minus" unicode="" horiz-adv-x="512" d=" M304 256V224C304 217.4 298.6 212 292 212H124C117.4 212 112 217.4 112 224V256C112 262.6 117.4 268 124 268H292C298.6 268 304 262.6 304 256zM505 -28.7L476.7 -57C467.3 -66.4 452.1 -66.4 442.8 -57L343 42.7C338.5 47.2 336 53.3 336 59.7V76C300.7 48.4 256.3 32 208 32C93.1 32 0 125.1 0 240S93.1 448 208 448S416 354.9 416 240C416 191.7 399.6 147.3 372 112H388.3C394.7 112 400.8 109.5 405.3 105L505 5.3C514.3 -4.1 514.3 -19.3 505 -28.7zM344 240C344 315.2 283.2 376 208 376S72 315.2 72 240S132.8 104 208 104S344 164.8 344 240z" />
-			<glyph glyph-name="search-plus" unicode="" horiz-adv-x="512" d=" M304 256V224C304 217.4 298.6 212 292 212H236V156C236 149.4 230.6 144 224 144H192C185.4 144 180 149.4 180 156V212H124C117.4 212 112 217.4 112 224V256C112 262.6 117.4 268 124 268H180V324C180 330.6 185.4 336 192 336H224C230.6 336 236 330.6 236 324V268H292C298.6 268 304 262.6 304 256zM505 -28.7L476.7 -57C467.3 -66.4 452.1 -66.4 442.8 -57L343 42.7C338.5 47.2 336 53.3 336 59.7V76C300.7 48.4 256.3 32 208 32C93.1 32 0 125.1 0 240S93.1 448 208 448S416 354.9 416 240C416 191.7 399.6 147.3 372 112H388.3C394.7 112 400.8 109.5 405.3 105L505 5.3C514.3 -4.1 514.3 -19.3 505 -28.7zM344 240C344 315.2 283.2 376 208 376S72 315.2 72 240S132.8 104 208 104S344 164.8 344 240z" />
-			<glyph glyph-name="search" unicode="" horiz-adv-x="512" d=" M505 5.3L405.3 105C400.8 109.5 394.7 112 388.3 112H372C399.6 147.3 416 191.7 416 240C416 354.9 322.9 448 208 448S0 354.9 0 240S93.1 32 208 32C256.3 32 300.7 48.4 336 76V59.7C336 53.3 338.5 47.2 343 42.7L442.7 -57C452.1 -66.4 467.3 -66.4 476.6 -57L504.9 -28.7C514.3 -19.3 514.3 -4.1 505 5.3zM208 112C137.3 112 80 169.2 80 240C80 310.7 137.2 368 208 368C278.7 368 336 310.8 336 240C336 169.3 278.8 112 208 112z" />
-			<glyph glyph-name="server" unicode="" horiz-adv-x="512" d=" M480 288H32C14.327 288 0 302.327 0 320V384C0 401.673 14.327 416 32 416H480C497.673 416 512 401.673 512 384V320C512 302.327 497.673 288 480 288zM432 376C418.745 376 408 365.255 408 352S418.745 328 432 328S456 338.745 456 352S445.255 376 432 376zM368 376C354.745 376 344 365.255 344 352S354.745 328 368 328S392 338.745 392 352S381.255 376 368 376zM480 128H32C14.327 128 0 142.327 0 160V224C0 241.673 14.327 256 32 256H480C497.673 256 512 241.673 512 224V160C512 142.327 497.673 128 480 128zM432 216C418.745 216 408 205.255 408 192S418.745 168 432 168S456 178.745 456 192S445.255 216 432 216zM368 216C354.745 216 344 205.255 344 192S354.745 168 368 168S392 178.745 392 192S381.255 216 368 216zM480 -32H32C14.327 -32 0 -17.673 0 0V64C0 81.673 14.327 96 32 96H480C497.673 96 512 81.673 512 64V0C512 -17.673 497.673 -32 480 -32zM432 56C418.745 56 408 45.255 408 32S418.745 8 432 8S456 18.745 456 32S445.255 56 432 56zM368 56C354.745 56 344 45.255 344 32S354.745 8 368 8S392 18.745 392 32S381.255 56 368 56z" />
-			<glyph glyph-name="share-alt-square" unicode="" horiz-adv-x="448" d=" M448 368V16C448 -10.51 426.51 -32 400 -32H48C21.49 -32 0 -10.51 0 16V368C0 394.51 21.49 416 48 416H400C426.51 416 448 394.51 448 368zM304 152C289.438 152 276.177 146.439 266.217 137.329L198.259 178.104A56.33899999999999 56.33899999999999 0 0 1 198.259 205.897L266.217 246.672C276.177 237.561 289.438 232 304 232C334.928 232 360 257.072 360 288S334.928 344 304 344S248 318.928 248 288C248 283.203 248.605 278.5470000000001 249.74 274.103L181.782 233.328C171.823 242.439 158.562 248 144 248C113.072 248 88 222.928 88 192S113.072 136 144 136C158.562 136 171.823 141.561 181.783 150.671L249.741 109.896A56.08800000000001 56.08800000000001 0 0 1 248.001 95.999C248.001 65.071 273.073 39.999 304.001 39.999S360.001 65.071 360.001 95.999C360 126.928 334.928 152 304 152z" />
-			<glyph glyph-name="share-alt" unicode="" horiz-adv-x="448" d=" M352 128C329.392 128 308.613 120.181 292.21 107.105L189.724 171.159A96.551 96.551 0 0 1 189.724 212.842L292.21 276.896C308.613 263.819 329.392 256 352 256C405.019 256 448 298.981 448 352S405.019 448 352 448S256 405.019 256 352C256 344.842 256.79 337.87 258.276 331.159L155.79 267.105C139.387 280.1810000000001 118.608 288 96 288C42.981 288 0 245.019 0 192S42.981 96 96 96C118.608 96 139.387 103.819 155.79 116.895L258.276 52.841A96.301 96.301 0 0 1 256 32C256 -21.019 298.981 -64 352 -64S448 -21.019 448 32S405.019 128 352 128z" />
-			<glyph glyph-name="share-square" unicode="" horiz-adv-x="576" d=" M568.482 270.552L424.479 134.567C409.3 120.232 384 130.86 384 152.015V223.978C239.425 223.008 178.434 188.865 219.225 52.625C223.708 37.652 206.379 26.058 194.219 35.295C155.252 64.895 120 121.512 120 178.661C120 322.598 237.599 351.161 384 351.973V423.988C384 445.162 409.317 455.756 424.479 441.436L568.482 305.448C578.502 295.985 578.51 280.023 568.482 270.552zM384 68.872V0H64V320H114.916A11.989999999999998 11.989999999999998 0 0 1 123.564 323.693C138.517 339.261 155.801 351.583 174.578 361.3690000000001C185.708 367.17 181.584 384 169.033 384H48C21.49 384 0 362.51 0 336V-16C0 -42.51 21.49 -64 48 -64H400C426.51 -64 448 -42.51 448 -16V72.806C448 81.094 439.803 86.872 431.989 84.108A71.83 71.83 0 0 0 397.8 80.731C390.53 81.777 384 76.217 384 68.872z" />
-			<glyph glyph-name="share" unicode="" horiz-adv-x="512" d=" M503.691 258.164L327.687 410.149C312.281 423.454 288 412.653 288 391.985V311.932C127.371 310.093 0 277.9 0 125.674C0 64.233 39.581 3.365 83.333 -28.458C96.986 -38.389 116.444 -25.925 111.41 -9.827C66.066 135.186 132.917 173.684 288 175.915V88C288 67.3 312.3 56.547 327.687 69.836L503.691 221.836C514.7620000000001 231.398 514.777 248.589 503.691 258.164z" />
-			<glyph glyph-name="shekel-sign" unicode="" horiz-adv-x="448" d=" M170.12 352H80V-20C80 -26.627 74.627 -32 68 -32H12C5.373 -32 0 -26.627 0 -20V404C0 410.627 5.373 416 12 416H180.36C265.48 416 325 358.4 325 272.929V89C325 82.373 319.627 77 313 77H269C255.745 77 245 87.745 245 101V277.677C245 322.89 216.839 352 170.12 352zM436 416H380C373.373 416 368 410.627 368 404V32H277.88C231.16 32 203 61.11 203 106.323V283C203 296.255 192.255 307 179 307H135C128.373 307 123 301.627 123 295V111.071C123 25.6 182.52 -32 267.64 -32H436C442.627 -32 448 -26.627 448 -20V404C448 410.627 442.627 416 436 416z" />
-			<glyph glyph-name="shield-alt" unicode="" horiz-adv-x="512" d=" M496 320C496 98.718 360.0660000000001 -24.645 274.461 -60.308A48 48 0 0 0 237.538 -60.308C130.495 -15.713 16 121.513 16 320A48 48 0 0 0 45.539 364.308L237.539 444.308A48 48 0 0 0 274.462 444.308L466.462 364.308A48 48 0 0 0 496 320zM256 1.687L256.066 1.653C349.801 48.342 428.563 157.961 431.883 309.382L256 382.6670000000001V1.687z" />
-			<glyph glyph-name="ship" unicode="" horiz-adv-x="640" d=" M496.616 75.361L566.6279999999999 145.373C583.5269999999999 162.273 576.5699999999999 191.144 553.7919999999999 198.465L512 211.898V352C512 369.673 497.673 384 480 384H416V424C416 437.255 405.255 448 392 448H248C234.745 448 224 437.255 224 424V384H160C142.327 384 128 369.673 128 352V211.898L86.208 198.465C63.455 191.152 56.454 162.292 73.372 145.373L143.384 75.361C125.828 31.713 85.587 0 24 0C10.745 0 0 -10.745 0 -24V-40C0 -53.255 10.745 -64 24 -64C85.023 -64 131.499 -43.39 167.258 -4.604C181.677 -39.432 216.021 -64 256 -64H384C423.979 -64 458.323 -39.432 472.742 -4.604C508.495 -43.384 554.968 -64 616 -64C629.255 -64 640 -53.255 640 -40V-24C640 -10.745 629.255 0 616 0C555.183 0 514.458 31.001 496.616 75.361zM192 320H448V232.469L329.7920000000001 270.464A31.995 31.995 0 0 1 310.2080000000001 270.464L192 232.469V320z" />
-			<glyph glyph-name="shopping-bag" unicode="" horiz-adv-x="448" d=" M352 288V320C352 390.58 294.579 448 224 448C153.42 448 96 390.58 96 320V288H0V16C0 -28.183 35.817 -64 80 -64H368C412.183 -64 448 -28.183 448 16V288H352zM160 320C160 355.29 188.71 384 224 384S288 355.29 288 320V288H160V320zM320 200C306.745 200 296 210.745 296 224S306.745 248 320 248S344 237.255 344 224S333.255 200 320 200zM128 200C114.745 200 104 210.745 104 224S114.745 248 128 248S152 237.255 152 224S141.255 200 128 200z" />
-			<glyph glyph-name="shopping-basket" unicode="" horiz-adv-x="576" d=" M576 232V216C576 202.745 565.255 192 552 192H544L517.887 9.212C514.509 -14.435 494.257 -32 470.37 -32H105.63C81.743 -32 61.491 -14.435 58.112 9.212L32 192H24C10.745 192 0 202.745 0 216V232C0 245.255 10.745 256 24 256H91.341L198.121 402.8210000000001C208.516 417.113 228.528 420.274 242.822 409.879C257.115 399.484 260.275 379.471 249.88 365.178L170.477 256H405.523L326.12 365.179C315.725 379.471 318.886 399.485 333.1790000000001 409.88C347.4700000000001 420.275 367.485 417.115 377.8800000000001 402.822L484.659 256H552C565.255 256 576 245.255 576 232zM312 56V168C312 181.255 301.255 192 288 192S264 181.255 264 168V56C264 42.745 274.745 32 288 32S312 42.745 312 56zM424 56V168C424 181.255 413.255 192 400 192S376 181.255 376 168V56C376 42.745 386.745 32 400 32S424 42.745 424 56zM200 56V168C200 181.255 189.255 192 176 192S152 181.255 152 168V56C152 42.745 162.745 32 176 32S200 42.745 200 56z" />
-			<glyph glyph-name="shopping-cart" unicode="" horiz-adv-x="576" d=" M528.12 146.681L575.393 354.681C578.806 369.699 567.391 384 551.99 384H159.208L150.042 428.81C147.758 439.979 137.93 448 126.529 448H24C10.745 448 0 437.255 0 424V408C0 394.745 10.745 384 24 384H93.883L164.131 40.565C147.325 30.9 136 12.778 136 -8C136 -38.928 161.072 -64 192 -64S248 -38.928 248 -8C248 7.674 241.553 21.835 231.176 32H440.823C430.447 21.835 424 7.674 424 -8C424 -38.928 449.072 -64 480 -64S536 -38.928 536 -8C536 14.172 523.112 33.332 504.421 42.405L509.938 66.681C513.351 81.699 501.936 96 486.535 96H218.117L211.572 128H504.717C515.923 128 525.637 135.754 528.12 146.681z" />
-			<glyph glyph-name="shower" unicode="" horiz-adv-x="512" d=" M389.6600000000001 312.4L231.6 154.34C222.23 144.97 207.03 144.97 197.66 154.34L186.34 165.66C176.97 175.03 176.97 190.23 186.34 199.6L186.45 199.71C152.42 239.92 151.29 298.65 183.06 340.09C171.09 347.64 156.92 352 141.7600000000001 352C98.88 352 64 317.12 64 274.24V-32H0V274.24C0 352.41 63.59 416 141.76 416C178.69 416 212.37 401.8 237.62 378.58C273.52 390.09 314.12 383.08 344.29 357.55L344.4000000000001 357.66C353.7700000000001 367.03 368.9700000000001 367.03 378.3400000000001 357.66L389.6600000000001 346.3400000000001C399.0300000000001 336.9700000000001 399.0300000000001 321.77 389.6600000000001 312.4zM384 240C384 231.163 376.837 224 368 224S352 231.163 352 240S359.163 256 368 256S384 248.837 384 240zM416 240C416 248.837 423.163 256 432 256S448 248.837 448 240S440.837 224 432 224S416 231.163 416 240zM512 240C512 231.163 504.837 224 496 224S480 231.163 480 240S487.163 256 496 256S512 248.837 512 240zM352 208C352 199.163 344.837 192 336 192S320 199.163 320 208S327.163 224 336 224S352 216.837 352 208zM400 224C408.837 224 416 216.837 416 208S408.837 192 400 192S384 199.163 384 208S391.163 224 400 224zM480 208C480 199.163 472.837 192 464 192S448 199.163 448 208S455.163 224 464 224S480 216.837 480 208zM320 176C320 167.163 312.837 160 304 160S288 167.163 288 176S295.163 192 304 192S320 184.837 320 176zM352 176C352 184.837 359.163 192 368 192S384 184.837 384 176S376.837 160 368 160S352 167.163 352 176zM448 176C448 167.163 440.837 160 432 160S416 167.163 416 176S423.163 192 432 192S448 184.837 448 176zM320 144C320 152.837 327.163 160 336 160S352 152.837 352 144S344.837 128 336 128S320 135.163 320 144zM416 144C416 135.163 408.837 128 400 128S384 135.163 384 144S391.163 160 400 160S416 152.837 416 144zM320 112C320 103.163 312.837 96 304 96S288 103.163 288 112S295.163 128 304 128S320 120.837 320 112zM384 112C384 103.163 376.837 96 368 96S352 103.163 352 112S359.163 128 368 128S384 120.837 384 112zM352 80C352 71.163 344.837 64 336 64S320 71.163 320 80S327.163 96 336 96S352 88.837 352 80zM320 48C320 39.163 312.837 32 304 32S288 39.163 288 48S295.163 64 304 64S320 56.837 320 48z" />
-			<glyph glyph-name="sign-in-alt" unicode="" horiz-adv-x="512" d=" M416 0H332C325.4 0 320 5.4 320 12V52C320 58.6 325.4 64 332 64H416C433.7 64 448 78.3 448 96V288C448 305.7 433.7 320 416 320H332C325.4 320 320 325.4 320 332V372C320 378.6 325.4 384 332 384H416C469 384 512 341 512 288V96C512 43 469 0 416 0zM369 201L201 369C186 384 160 373.5 160 352V256H24C10.7 256 0 245.3 0 232V136C0 122.7 10.7 112 24 112H160V16C160 -5.5 186 -16 201 -1L369 167C378.3 176.4 378.3 191.6 369 201z" />
-			<glyph glyph-name="sign-language" unicode="" horiz-adv-x="448" d=" M91.434 -35.987C91.127 -19.969 104.543 -6.858 120.564 -6.858H182.857V-1.144H56.993C40.972 -1.144 27.556 11.967 27.863 27.985C28.16 43.509 40.835 56 56.428 56H182.857V61.714H29.136C13.115 61.714 -0.301 74.825 0.006 90.843C0.303 106.365 12.979 118.856 28.572 118.856H182.858V124.57H57.707C41.686 124.57 28.27 137.681 28.577 153.699C28.874 169.221 41.55 181.712 57.143 181.712H225.709L194.624 204.318C181.862 213.599 179.041 231.467 188.322 244.23C197.603 256.991 215.472 259.812 228.234 250.532L351.5950000000001 160.817A34.287 34.287 0 0 0 365.7150000000001 133.089V-8.047C365.7150000000001 -23.957 354.769 -37.777 339.2820000000001 -41.421L258.8110000000001 -60.3550000000001A137.16 137.16 0 0 0 227.4000000000001 -64.0010000000001H120C104.407 -64.0000000000001 91.731 -51.5090000000001 91.434 -35.9870000000001zM164.683 189.714H201.106L189.919 197.8499999999999C171.34 211.3609999999999 169.606 238.737 186.749 254.386L173.745 271.0859999999999C163.902 283.7269999999999 145.315 286.257 132.865 276.1739999999999C120.8 266.4029999999999 118.732 248.7269999999999 128.312 236.4239999999999L164.683 189.714zM447.981 191.817L442.978 344.269C442.4600000000001 360.04 429.2560000000001 372.405 413.485 371.8879999999999C397.712 371.37 385.348 358.166 385.866 342.395L387.128 303.98L283.565 436.981C273.985 449.284 256.342 451.611 243.912 442.3090000000001C231.085 432.71 228.983 414.069 238.826 401.428L315.715 302.683L311.206 299.1720000000001L216.416 420.906C206.8359999999999 433.209 189.1929999999999 435.536 176.763 426.234C163.936 416.635 161.834 397.994 171.6769999999999 385.353L266.12 264.065L261.611 260.554L183.9359999999999 360.308C174.3559999999999 372.611 156.7129999999999 374.938 144.2829999999999 365.636C131.4559999999999 356.0370000000001 129.3539999999999 337.396 139.1969999999999 324.755L191.2499999999999 257.906C203.7469999999999 266.163 220.3049999999999 266.1910000000001 232.9399999999999 257.002L356.2999999999999 167.288C367.2039999999999 159.358 373.7149999999999 146.573 373.7149999999999 133.09V116.091L434.779 163.64A34.285 34.285 0 0 1 447.981 191.817z" />
-			<glyph glyph-name="sign-out-alt" unicode="" horiz-adv-x="512" d=" M497 175L329 7C314 -8 288 2.5 288 24V120H152C138.7 120 128 130.7 128 144V240C128 253.3 138.7 264 152 264H288V360C288 381.4 313.9 392 329 377L497 209C506.3 199.6 506.3 184.4 497 175zM192 12V52C192 58.6 186.6 64 180 64H96C78.3 64 64 78.3 64 96V288C64 305.7 78.3 320 96 320H180C186.6 320 192 325.4 192 332V372C192 378.6 186.6 384 180 384H96C43 384 0 341 0 288V96C0 43 43 0 96 0H180C186.6 0 192 5.4 192 12z" />
-			<glyph glyph-name="signal" unicode="" horiz-adv-x="640" d=" M36 64H92C98.6 64 104 58.6 104 52V-52C104 -58.6 98.6 -64 92 -64H36C29.4 -64 24 -58.6 24 -52V52C24 58.6 29.4 64 36 64zM152 100V-52C152 -58.6 157.4 -64 164 -64H220C226.6 -64 232 -58.6 232 -52V100C232 106.6 226.6 112 220 112H164C157.4 112 152 106.6 152 100zM280 180V-52C280 -58.6 285.4 -64 292 -64H348C354.6 -64 360 -58.6 360 -52V180C360 186.6 354.6 192 348 192H292C285.4 192 280 186.6 280 180zM408 292V-52C408 -58.6 413.4 -64 420 -64H476C482.6 -64 488 -58.6 488 -52V292C488 298.6 482.6 304 476 304H420C413.4 304 408 298.6 408 292zM536 436V-52C536 -58.6 541.4 -64 548 -64H604C610.6 -64 616 -58.6 616 -52V436C616 442.6 610.6 448 604 448H548C541.4 448 536 442.6 536 436z" />
-			<glyph glyph-name="sitemap" unicode="" horiz-adv-x="640" d=" M616 128H568V176C568 198.056 550.056 216 528 216H344V256H392C405.255 256 416 266.745 416 280V424C416 437.255 405.255 448 392 448H248C234.745 448 224 437.255 224 424V280C224 266.745 234.745 256 248 256H296V216H112C89.944 216 72 198.056 72 176V128H24C10.745 128 0 117.255 0 104V-40C0 -53.255 10.745 -64 24 -64H168C181.255 -64 192 -53.255 192 -40V104C192 117.255 181.255 128 168 128H120V168H296V128H248C234.745 128 224 117.255 224 104V-40C224 -53.255 234.745 -64 248 -64H392C405.255 -64 416 -53.255 416 -40V104C416 117.255 405.255 128 392 128H344V168H520V128H472C458.745 128 448 117.255 448 104V-40C448 -53.255 458.745 -64 472 -64H616C629.255 -64 640 -53.255 640 -40V104C640 117.255 629.255 128 616 128z" />
-			<glyph glyph-name="sliders-h" unicode="" horiz-adv-x="576" d=" M576 368V328C576 321.4 570.6 316 564 316H160V308C160 294.7 149.3 284 136 284H120C106.7 284 96 294.7 96 308V316H12C5.4 316 0 321.4 0 328V368C0 374.6 5.4 380 12 380H96V388C96 401.3 106.7 412 120 412H136C149.3 412 160 401.3 160 388V380H564C570.6 380 576 374.6 576 368zM564 220H480V228C480 241.3 469.3 252 456 252H440C426.7 252 416 241.3 416 228V220H12C5.4 220 0 214.6 0 208V168C0 161.4 5.4 156 12 156H416V148C416 134.7 426.7 124 440 124H456C469.3 124 480 134.7 480 148V156H564C570.6 156 576 161.4 576 168V208C576 214.6 570.6 220 564 220zM564 60H288V68C288 81.3 277.3 92 264 92H248C234.7 92 224 81.3 224 68V60H12C5.4 60 0 54.6 0 48V8C0 1.4 5.4 -4 12 -4H224V-12C224 -25.3 234.7 -36 248 -36H264C277.3 -36 288 -25.3 288 -12V-4H564C570.6 -4 576 1.4 576 8V48C576 54.6 570.6 60 564 60z" />
-			<glyph glyph-name="smile" unicode="" horiz-adv-x="512" d=" M504 192C504 55.033 392.967 -56 256 -56S8 55.033 8 192S119.033 440 256 440S504 328.967 504 192zM381.474 116.66C392.953 134.415 366.125 151.854 354.601 134.034C301.183 51.407 210.891 51.353 157.437 134.034C145.935 151.824 119.073 134.435 130.564 116.66C196.578 14.553 315.3590000000001 14.395 381.4740000000001 116.66zM108 256C108 218.503 138.503 188 176 188S244 218.503 244 256S213.497 324 176 324S108 293.497 108 256zM268.5 256C268.5 218.779 298.779 188.5 336 188.5S403.5 218.779 403.5 256S373.221 323.5 336 323.5S268.5 293.221 268.5 256zM336 304A47.789 47.789 0 0 1 313.397 298.353H313.412C324.328 298.353 333.177 289.504 333.177 278.588S324.328 258.8230000000001 313.412 258.8230000000001S293.647 267.6720000000001 293.647 278.588V278.603A47.789 47.789 0 0 1 288 256C288 229.49 309.49 208 336 208S384 229.49 384 256S362.51 304 336 304zM176 304A47.789 47.789 0 0 1 153.397 298.353H153.412C164.328 298.353 173.177 289.504 173.177 278.588S164.328 258.8230000000001 153.412 258.8230000000001S133.647 267.6720000000001 133.647 278.588V278.603A47.789 47.789 0 0 1 128 256C128 229.49 149.49 208 176 208S224 229.49 224 256S202.51 304 176 304z" />
-			<glyph glyph-name="snowflake" unicode="" horiz-adv-x="448" d=" M444.816 146.361A24.12 24.12 0 0 1 447.477 163.339C444.752 176.305 432.138 184.584 419.303 181.831L331.896 156.785L264 192L331.896 227.215L419.303 202.169C432.138 199.416 444.752 207.695 447.477 220.661C450.202 233.627 442.006 246.369 429.172 249.122L381.695 256.259L434.772 287.2150000000001C446.135 293.842 450.029 308.521 443.468 320C436.9070000000001 331.479 422.377 335.4120000000001 411.014 328.785L357.937 297.829L375.558 342.933C379.615 355.539 372.79 369.079 360.311 373.178C347.833 377.2770000000001 334.428 370.3810000000001 330.371 357.776L308.139 268.786L247.759 233.571V304L312.9340000000001 367.945C321.7120000000001 377.7970000000001 320.9210000000001 392.972 311.168 401.839C301.415 410.706 286.3930000000001 409.907 277.616 400.055L247.759 362.088V424C247.759 437.255 237.122 448 224.001 448S200.243 437.255 200.243 424V362.088L170.386 400.055C161.607 409.907 146.587 410.707 136.834 401.839C127.081 392.972 126.291 377.7970000000001 135.068 367.945L200.242 304V233.569L139.862 268.784L117.63 357.774C113.573 370.379 100.168 377.2750000000001 87.69 373.1760000000001C75.212 369.077 68.386 355.536 72.443 342.9310000000001L90.063 297.827L36.986 328.783C25.623 335.41 11.093 331.477 4.532 319.998S1.865 293.841 13.228 287.213L66.305 256.257L18.828 249.12C5.993 246.366 -2.203 233.625 0.523 220.659C3.248 207.694 15.862 199.414 28.697 202.167L116.104 227.213L184 192L116.104 156.785L28.698 181.83C15.863 184.583 3.249 176.304 0.524 163.338C-2.201 150.371 5.994 137.63 18.829 134.877L66.306 127.74L13.229 96.7839999999999C1.866 90.157 -2.027 75.479 4.533 64S25.624 48.588 36.987 55.215L90.064 86.171L72.444 41.067A24.157 24.157 0 0 1 74.466 21.639C77.297 16.686 81.882 12.73 87.69 10.823C100.168 6.724 113.573 13.6200000000001 117.63 26.225L139.862 115.215L200.242 150.4300000000001V80L135.067 16.055C126.289 6.203 127.08 -8.972 136.833 -17.839C146.587 -26.707 161.607 -25.907 170.385 -16.055L200.242 21.912V-40C200.242 -53.255 210.879 -64 224 -64S247.758 -53.255 247.758 -40V21.912L277.615 -16.055A23.59 23.59 0 0 1 295.282 -24A23.534 23.534 0 0 1 311.167 -17.839C320.92 -8.972 321.711 6.203 312.933 16.055L247.758 80V150.431L308.1380000000001 115.216L330.37 26.226C334.427 13.621 347.832 6.725 360.31 10.824C372.789 14.923 379.614 28.464 375.557 41.069L357.9360000000001 86.173L411.0130000000001 55.217C422.3760000000001 48.59 436.9060000000001 52.523 443.4670000000001 64.002S446.134 90.159 434.771 96.787L381.694 127.7430000000001L429.171 134.8800000000001C436.031 136.3490000000001 441.565 140.6730000000001 444.816 146.3610000000001z" />
-			<glyph glyph-name="sort-alpha-down" unicode="" horiz-adv-x="448" d=" M187.298 52.686L107.314 -27.316C101.066 -33.563 90.931 -33.561 84.687 -27.316L4.705 52.686C-5.365 62.756 1.807 80 16.019 80H64V400C64 408.837 71.163 416 80 416H112C120.837 416 128 408.837 128 400V80H175.984C190.225 80 197.347 62.736 187.298 52.686zM306.373 232.693A12 12 0 0 0 294.838 224H259.1210000000001C250.9010000000001 224 245.1140000000001 232.078 247.7590000000001 239.861L304.855 407.861A12 12 0 0 0 316.217 416H355.783C360.9220000000001 416 365.4910000000001 412.727 367.1450000000001 407.861L424.2410000000001 239.861C426.886 232.078 421.1 224 412.879 224H377.144A12 12 0 0 0 365.629 232.622L357.3280000000001 260.9210000000001H314.4650000000001L306.3730000000001 232.693zM329.23 311.39H342.5970000000001L335.997 334.327L329.23 311.39zM341.805 24.067L409.256 119.765A12 12 0 0 1 411.448 126.678V148C411.448 154.627 406.075 160 399.448 160H274.522C267.895 160 262.522 154.627 262.522 148V119.07C262.522 112.443 267.895 107.07 274.522 107.07H330.991C330.252 106.079 329.494 105.034 328.721 103.937L261.5180000000001 8.732A12.001000000000001 12.001000000000001 0 0 1 259.322 1.812V-20C259.322 -26.627 264.695 -32 271.322 -32H400.677C407.3040000000001 -32 412.677 -26.627 412.677 -20V8.93C412.677 15.557 407.3040000000001 20.93 400.677 20.93H339.531C340.271 21.923 341.031 22.969 341.805 24.067z" />
-			<glyph glyph-name="sort-alpha-up" unicode="ï…ž" horiz-adv-x="448" d=" M4.702 331.314L84.686 411.316C90.934 417.563 101.069 417.561 107.313 411.316L187.294 331.314C197.364 321.2440000000001 190.193 304 175.98 304H128V-16C128 -24.837 120.837 -32 112 -32H80C71.163 -32 64 -24.837 64 -16V304H16.016C1.775 304 -5.347 321.264 4.702 331.314zM306.373 232.693A12 12 0 0 0 294.838 224H259.1210000000001C250.9010000000001 224 245.1140000000001 232.078 247.7590000000001 239.861L304.855 407.861A12 12 0 0 0 316.217 416H355.783C360.9220000000001 416 365.4910000000001 412.727 367.1450000000001 407.861L424.2410000000001 239.861C426.886 232.078 421.1 224 412.879 224H377.144A12 12 0 0 0 365.629 232.622L357.3280000000001 260.9210000000001H314.4650000000001L306.3730000000001 232.693zM329.23 311.39H342.5970000000001L335.997 334.327L329.23 311.39zM341.805 24.067L409.256 119.765A12 12 0 0 1 411.448 126.678V148C411.448 154.627 406.075 160 399.448 160H274.522C267.895 160 262.522 154.627 262.522 148V119.07C262.522 112.443 267.895 107.07 274.522 107.07H330.991C330.252 106.079 329.494 105.034 328.721 103.937L261.5180000000001 8.732A12.001000000000001 12.001000000000001 0 0 1 259.322 1.812V-20C259.322 -26.627 264.695 -32 271.322 -32H400.677C407.3040000000001 -32 412.677 -26.627 412.677 -20V8.93C412.677 15.557 407.3040000000001 20.93 400.677 20.93H339.531C340.271 21.923 341.031 22.969 341.805 24.067z" />
-			<glyph glyph-name="sort-amount-down" unicode="ï… " horiz-adv-x="512" d=" M187.298 52.686L107.314 -27.316C101.066 -33.563 90.931 -33.561 84.687 -27.316L4.705 52.686C-5.365 62.756 1.807 80 16.019 80H64V400C64 408.837 71.163 416 80 416H112C120.837 416 128 408.837 128 400V80H175.984C190.225 80 197.347 62.736 187.298 52.686zM240 352H496C504.837 352 512 359.163 512 368V400C512 408.837 504.837 416 496 416H240C231.163 416 224 408.837 224 400V368C224 359.163 231.163 352 240 352zM224 240V272C224 280.837 231.163 288 240 288H432C440.837 288 448 280.837 448 272V240C448 231.163 440.837 224 432 224H240C231.163 224 224 231.163 224 240zM224 -16V16C224 24.837 231.163 32 240 32H304C312.837 32 320 24.837 320 16V-16C320 -24.837 312.837 -32 304 -32H240C231.163 -32 224 -24.837 224 -16zM224 112V144C224 152.837 231.163 160 240 160H368C376.837 160 384 152.837 384 144V112C384 103.163 376.837 96 368 96H240C231.163 96 224 103.163 224 112z" />
-			<glyph glyph-name="sort-amount-up" unicode="ï…¡" horiz-adv-x="512" d=" M4.702 331.314L84.686 411.316C90.934 417.563 101.069 417.561 107.313 411.316L187.294 331.314C197.364 321.2440000000001 190.193 304 175.98 304H128V-16C128 -24.837 120.837 -32 112 -32H80C71.163 -32 64 -24.837 64 -16V304H16.016C1.775 304 -5.347 321.264 4.702 331.314zM240 352H496C504.837 352 512 359.163 512 368V400C512 408.837 504.837 416 496 416H240C231.163 416 224 408.837 224 400V368C224 359.163 231.163 352 240 352zM224 240V272C224 280.837 231.163 288 240 288H432C440.837 288 448 280.837 448 272V240C448 231.163 440.837 224 432 224H240C231.163 224 224 231.163 224 240zM224 -16V16C224 24.837 231.163 32 240 32H304C312.837 32 320 24.837 320 16V-16C320 -24.837 312.837 -32 304 -32H240C231.163 -32 224 -24.837 224 -16zM224 112V144C224 152.837 231.163 160 240 160H368C376.837 160 384 152.837 384 144V112C384 103.163 376.837 96 368 96H240C231.163 96 224 103.163 224 112z" />
-			<glyph glyph-name="sort-down" unicode="" horiz-adv-x="320" d=" M41 160H279C300.4 160 311.1 134.1 296 119L177 0C167.6 -9.4 152.4 -9.4 143.1 0L24 119C8.9 134.1 19.6 160 41 160z" />
-			<glyph glyph-name="sort-numeric-down" unicode="ï…¢" horiz-adv-x="448" d=" M308.811 334.213L289.363 355.008C284.841 359.844 285.089 367.429 289.919 371.958L333.362 412.699A11.999000000000002 11.999000000000002 0 0 0 341.571 415.9460000000001H373.162C379.789 415.9460000000001 385.162 410.573 385.162 403.9460000000001V276.876H410.822C417.449 276.876 422.822 271.5030000000001 422.822 264.876V235.946C422.822 229.319 417.449 223.946 410.822 223.946H301.649C295.022 223.946 289.649 229.319 289.649 235.946V264.876C289.649 271.5030000000001 295.022 276.876 301.649 276.876H327.063V334.814C319.809 328.2340000000001 312.852 329.8930000000001 308.811 334.213zM278.241 95.644C278.241 128.297 302.106 163 346.335 163C384.588 163 425.759 134.139 425.759 70.772C425.759 19.496 393.522 -35 333.776 -35C315.94 -35 303.23 -31.443 295.228 -28.219C289.438 -25.886 286.439 -19.473 288.306 -13.516L297.543 15.964C299.5780000000001 22.46 306.592 25.947 313.01 23.68C326.039 19.078 340.888 18.405 351.113 27.818C312.371 22.746 278.241 53.178 278.241 95.644zM370.514 76.306C370.514 98.591 355.212 112.811 344.6790000000001 112.811C336.0370000000001 112.811 331.5150000000001 104.846 331.5150000000001 96.979C331.5150000000001 91.31 333.3300000000001 72.811 356.6830000000001 72.811C366.6560000000001 72.811 370.0600000000001 74.965 370.427 75.542C370.4480000000001 75.588 370.514 75.833 370.514 76.306zM175.984 80H128V400C128 408.837 120.837 416 112 416H80C71.163 416 64 408.837 64 400V80H16.019C1.807 80 -5.365 62.756 4.705 52.686L84.686 -27.316C90.931 -33.561 101.066 -33.563 107.313 -27.316L187.297 52.686C197.347 62.736 190.225 80 175.984 80z" />
-			<glyph glyph-name="sort-numeric-up" unicode="ï…£" horiz-adv-x="448" d=" M308.811 334.213L289.363 355.008C284.841 359.844 285.089 367.429 289.919 371.958L333.362 412.699A11.999000000000002 11.999000000000002 0 0 0 341.571 415.9460000000001H373.162C379.789 415.9460000000001 385.162 410.573 385.162 403.9460000000001V276.876H410.822C417.449 276.876 422.822 271.5030000000001 422.822 264.876V235.946C422.822 229.319 417.449 223.946 410.822 223.946H301.649C295.022 223.946 289.649 229.319 289.649 235.946V264.876C289.649 271.5030000000001 295.022 276.876 301.649 276.876H327.063V334.814C319.809 328.2340000000001 312.852 329.8930000000001 308.811 334.213zM278.241 95.644C278.241 128.297 302.106 163 346.335 163C384.588 163 425.759 134.139 425.759 70.772C425.759 19.496 393.522 -35 333.776 -35C315.94 -35 303.23 -31.443 295.228 -28.219C289.438 -25.886 286.439 -19.473 288.306 -13.516L297.543 15.964C299.5780000000001 22.46 306.592 25.947 313.01 23.68C326.039 19.078 340.888 18.405 351.113 27.818C312.371 22.746 278.241 53.178 278.241 95.644zM370.514 76.306C370.514 98.591 355.212 112.811 344.6790000000001 112.811C336.0370000000001 112.811 331.5150000000001 104.846 331.5150000000001 96.979C331.5150000000001 91.31 333.3300000000001 72.811 356.6830000000001 72.811C366.6560000000001 72.811 370.0600000000001 74.965 370.427 75.542C370.4480000000001 75.588 370.514 75.833 370.514 76.306zM16.016 304H64V-16C64 -24.837 71.163 -32 80 -32H112C120.837 -32 128 -24.837 128 -16V304H175.981C190.193 304 197.365 321.2440000000001 187.295 331.314L107.314 411.316C101.069 417.561 90.934 417.563 84.687 411.316L4.702 331.314C-5.347 321.264 1.775 304 16.016 304z" />
-			<glyph glyph-name="sort-up" unicode="" horiz-adv-x="320" d=" M279 224H41C19.6 224 8.9 249.9 24 265L143 384C152.4 393.4 167.6 393.4 176.9 384L295.9 265C311.1 249.9 300.4 224 279 224z" />
-			<glyph glyph-name="sort" unicode="" horiz-adv-x="320" d=" M41 160H279C300.4 160 311.1 134.1 296 119L177 0C167.6 -9.4 152.4 -9.4 143.1 0L24 119C8.9 134.1 19.6 160 41 160zM296 265L177 384C167.6 393.4 152.4 393.4 143.1 384L24 265C8.9 249.9 19.6 224 41 224H279C300.4 224 311.1 249.9 296 265z" />
-			<glyph glyph-name="space-shuttle" unicode="" horiz-adv-x="640" d=" M592.604 239.756C559.735 255.164 515.777 264 472 264H186.327C181.375 270.555 175.742 275.978 169.607 280H376C229.157 310.253 219.403 416 96.003 416H96V288H80V416C53.49 416 32 387.346 32 352V288C8.803 288 0 277.968 0 264V224C0 210.017 8.819 200 32 200V184C8.803 184 0 173.968 0 160V120C0 106.017 8.819 96 32 96V32C32 -3.346 53.49 -32 80 -32V96H96V-32H96.003C219.403 -32 229.157 73.747 376 104H169.606C175.741 108.022 181.374 113.445 186.326 120H472C515.777 120 559.735 128.836 592.604 144.244C622.282 158.155 640 176.008 640 192S622.282 225.845 592.604 239.756zM488 152A8 8 0 0 0 480 160V224A8 8 0 0 0 488 232C519.909 232 519.942 152 488 152z" />
-			<glyph glyph-name="spinner" unicode="" horiz-adv-x="512" d=" M304 400C304 373.49 282.51 352 256 352S208 373.49 208 400S229.49 448 256 448S304 426.51 304 400zM256 32C229.49 32 208 10.51 208 -16S229.49 -64 256 -64S304 -42.51 304 -16S282.51 32 256 32zM464 240C437.49 240 416 218.51 416 192S437.49 144 464 144S512 165.49 512 192S490.51 240 464 240zM96 192C96 218.51 74.51 240 48 240S0 218.51 0 192S21.49 144 48 144S96 165.49 96 192zM108.922 92.922C82.412 92.922 60.922 71.432 60.922 44.922S82.412 -3.078 108.922 -3.078S156.922 18.412 156.922 44.922C156.922 71.431 135.431 92.922 108.922 92.922zM403.078 92.922C376.568 92.922 355.078 71.432 355.078 44.922S376.568 -3.078 403.078 -3.078S451.078 18.412 451.078 44.922C451.078 71.431 429.588 92.922 403.078 92.922zM108.922 387.078C82.412 387.078 60.922 365.588 60.922 339.078S82.412 291.078 108.922 291.078S156.922 312.568 156.922 339.078S135.431 387.078 108.922 387.078z" />
-			<glyph glyph-name="square" unicode="" horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416z" />
-			<glyph glyph-name="star-half" unicode="" horiz-adv-x="576" d=" M288 448C276.6 448 265.2 442.1 259.3 430.2L194 297.8L47.9 276.6C21.7 272.8 11.2 240.5 30.2 222L135.9 119L110.9 -26.5C106.4 -52.6 133.9 -72.5 157.3 -60.2L288 8.4V448z" />
-			<glyph glyph-name="star" unicode="" horiz-adv-x="576" d=" M259.3 430.2L194 297.8L47.9 276.5C21.7 272.7 11.2 240.4 30.2 221.9L135.9 118.9L110.9 -26.6C106.4 -52.9 134.1 -72.6 157.3 -60.3L288 8.4L418.7 -60.3C441.9 -72.5 469.6 -52.9 465.1 -26.6L440.1 118.9L545.8 221.9C564.8 240.4 554.3 272.7 528.0999999999999 276.5L382 297.8L316.7 430.2C305 453.8 271.1 454.1 259.3 430.2z" />
-			<glyph glyph-name="step-backward" unicode="" horiz-adv-x="448" d=" M64 -20V404C64 410.6 69.4 416 76 416H124C130.6 416 136 410.6 136 404V227.6L331.5 408.6C352.1 425.7 384 411.4 384 384V0C384 -27.4 352.1 -41.7 331.5 -24.6L136 155.3V-20C136 -26.6 130.6 -32 124 -32H76C69.4 -32 64 -26.6 64 -20z" />
-			<glyph glyph-name="step-forward" unicode="" horiz-adv-x="448" d=" M384 404V-20C384 -26.6 378.6 -32 372 -32H324C317.4 -32 312 -26.6 312 -20V156.4L116.5 -24.6C95.9 -41.7 64 -27.4 64 0V384C64 411.4 95.9 425.7 116.5 408.6L312 228.7V404C312 410.6 317.4 416 324 416H372C378.6 416 384 410.6 384 404z" />
-			<glyph glyph-name="stethoscope" unicode="" horiz-adv-x="512" d=" M512 272C512 307.659 482.836 336.507 447.059 335.993C412.849 335.501 384.763 307.636 384.016 273.431C383.485 249.149 396.492 227.873 416 216.583V104C416 46.654 365.757 0 304 0C243.961 0 194.811 44.096 192.122 99.24C265.005 114.153 320 178.775 320 256V411.416C320 422.856 311.925 432.706 300.707 434.95L237.81 447.529C224.813 450.128 212.169 441.699 209.569 428.702L206.431 413.013C203.831 400.016 212.261 387.372 225.258 384.772L256 378.624V257.224C256 204.372 213.797 160.517 160.947 160.004C107.58 159.487 64 202.75 64 256V378.624L94.742 384.773C107.739 387.373 116.169 400.016 113.569 413.014L110.431 428.703C107.831 441.7 95.188 450.129 82.19 447.529L19.293 434.95C8.075 432.706 0 422.856 0 411.416V256C0 178.705 55.096 114.039 128.076 99.202C130.747 8.777 208.634 -64 304 -64C401.0470000000001 -64 480 11.364 480 104V216.583C499.124 227.651 512 248.315 512 272zM448 288C456.822 288 464 280.822 464 272S456.822 256 448 256S432 263.178 432 272S439.178 288 448 288z" />
-			<glyph glyph-name="sticky-note" unicode="" horiz-adv-x="448" d=" M312 128H448V392C448 405.3 437.3 416 424 416H24C10.7 416 0 405.3 0 392V-8C0 -21.3 10.7 -32 24 -32H288V104C288 117.2 298.8 128 312 128zM441 73L343 -25C338.5 -29.5 332.4 -32 326 -32H320V96H448V89.9C448 83.6 445.5 77.5 441 73z" />
-			<glyph glyph-name="stop-circle" unicode="" horiz-adv-x="512" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM352 112C352 103.2 344.8 96 336 96H176C167.2 96 160 103.2 160 112V272C160 280.8 167.2 288 176 288H336C344.8 288 352 280.8 352 272V112z" />
-			<glyph glyph-name="stop" unicode="" horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416z" />
-			<glyph glyph-name="stopwatch" unicode="" horiz-adv-x="448" d=" M432 144C432 29.1 338.9 -64 224 -64S16 29.1 16 144C16 248 92.3 334.2 192 349.5V384H164C157.4 384 152 389.4 152 396V436C152 442.6 157.4 448 164 448H284C290.6 448 296 442.6 296 436V396C296 389.4 290.6 384 284 384H256V349.5C293.5 343.7 327.7 327.9 355.7 304.9L383.2 332.4C387.9 337.1 395.5 337.1 400.2 332.4L428.5 304.1C433.2 299.4 433.2 291.8 428.5 287.1L399.1 257.7L398.5 257.1C419.7 224.7 432 185.8 432 144zM256 108V259.5C256 266.1 250.6 271.5 244 271.5H204C197.4 271.5 192 266.1 192 259.5V108C192 101.4 197.4 96 204 96H244C250.6 96 256 101.4 256 108z" />
-			<glyph glyph-name="street-view" unicode="" horiz-adv-x="512" d=" M192 384C192 419.346 220.654 448 256 448S320 419.346 320 384C320 348.654 291.346 320 256 320S192 348.654 192 384zM304 304H292.64C269.929 293.557 243.05 293.106 219.36 304H208C181.49 304 160 282.51 160 256V152C160 138.745 170.745 128 184 128H200V24C200 10.745 210.745 0 224 0H288C301.255 0 312 10.745 312 24V128H328C341.255 128 352 138.745 352 152V256C352 282.51 330.51 304 304 304zM389.642 114.848A72.50299999999999 72.50299999999999 0 0 0 360.632 87.839C391.133 82.749 480 62.146 480 32C480 -14.304 312.344 -32 256 -32C185.697 -32 32 -11.141 32 32C32 62.123 120.361 82.665 151.367 87.839A72.516 72.516 0 0 0 122.357 114.848C74.959 104.605 0 80.401 0 32C0 -45.111 178.658 -64 256 -64C333.249 -64 512 -45.135 512 32C512 80.403 437.033 104.606 389.642 114.848z" />
-			<glyph glyph-name="strikethrough" unicode="" horiz-adv-x="512" d=" M496 160H16C7.163 160 0 167.163 0 176V208C0 216.837 7.163 224 16 224H496C504.837 224 512 216.837 512 208V176C512 167.163 504.837 160 496 160zM281.334 144C308.592 131.063 327.858 115.317 327.858 87.757C327.858 54.649 298.8810000000001 34.081 252.237 34.081C219.912 34.081 175.363 46.161 175.363 78.352V80C175.363 88.837 168.1990000000001 96 159.363 96H113.75C104.914 96 97.75 88.837 97.75 80V60.796C97.75 -6.049 175.467 -41.024 252.237 -41.024C340.815 -41.024 414.25 4.414 414.25 93.4C414.25 113.215 410.632 129.817 404.107 144H281.334zM250.382 240C217.96 253.505 193.546 268.9460000000001 193.546 299.683C193.546 333.603 224.447 347.089 258.508 347.089C301.155 347.089 323.47 330.496 323.47 314.104V312C323.47 303.163 330.634 296 339.47 296H385.083C393.919 296 401.083 303.163 401.083 312V342.318C401.083 394.756 329.358 422.193 258.508 422.193C173.305 422.193 107.782 381.221 107.782 296.5470000000001C107.782 273.837 112.447 255.371 120.559 240H250.382z" />
-			<glyph glyph-name="subscript" unicode="" horiz-adv-x="512" d=" M395.198 32C398.659 42.526 413.994 53.28 431.463 64.425C448.088 75.03 466.9299999999999 87.051 481.804 103.287C499.2619999999999 122.341 507.748 143.4620000000001 507.748 167.8540000000001C507.748 228.4160000000001 457.046 256.0000000000001 409.938 256.0000000000001C367.447 256.0000000000001 333.56 233.9840000000001 315.506 205.5530000000001C310.852 198.2240000000001 312.914 188.5170000000001 320.129 183.6880000000001L350.457 163.3920000000001C357.4889999999999 158.686 366.9169999999999 160.3080000000001 372.087 167.006C380.1089999999999 177.4 390.9049999999999 185.2310000000001 403.7539999999999 185.2310000000001C423.1409999999999 185.2310000000001 430.0199999999999 172.3300000000001 430.0199999999999 161.2830000000001C430.0199999999999 125.1240000000001 310.5829999999999 104.2600000000001 310.5829999999999 1.2590000000001C310.5829999999999 -5.3949999999999 311.1439999999999 -11.7549999999999 311.998 -18.0719999999999C313.074 -26.0359999999999 319.832 -31.9999999999999 327.868 -31.9999999999999H496C504.837 -31.9999999999999 512 -24.8369999999999 512 -15.9999999999999V16.0000000000001C512 24.837 504.837 32.0000000000001 496 32.0000000000001H395.198zM272 192C280.837 192 288 184.837 288 176V144C288 135.163 280.837 128 272 128H209.601A16 16 0 0 0 196.06 135.478L150.359 208.093C148.062 211.445 145.937 215.062 144.164 218.302C142.514 215.058 140.517 211.365 138.29 207.72L93.578 135.573A15.999 15.999 0 0 0 79.978 128.001H16C7.163 128.001 0 135.1640000000001 0 144.001V176.001C0 184.838 7.163 192.001 16 192.001H42.325L98.877 274.7100000000001L46.111 352H16C7.163 352 0 359.163 0 368V400C0 408.837 7.163 416 16 416H84.806A16 16 0 0 0 98.451 408.356L138.333 343.23C140.405 339.707 142.386 336.059 144.06 332.86C145.837 336.104 147.98 339.814 150.297 343.397L190.629 408.432A15.999 15.999 0 0 0 204.226 416H272C280.837 416 288 408.837 288 400V368C288 359.163 280.837 352 272 352H244.021L191.331 276.329L249.974 192H272z" />
-			<glyph glyph-name="subway" unicode="" horiz-adv-x="448" d=" M448 352V96C448 44.185 386.376 0 317.978 0L380.9580000000001 -49.721C386.905 -54.417 383.562 -64 376 -64H72C64.422 -64 61.108 -54.406 67.043 -49.721L130.022 0C61.82 0 0 44.046 0 96V352C0 405.019 64 448 128 448H320C385 448 448 405.019 448 352zM200 216V328C200 341.255 189.255 352 176 352H72C58.745 352 48 341.255 48 328V216C48 202.745 58.745 192 72 192H176C189.255 192 200 202.745 200 216zM400 216V328C400 341.255 389.255 352 376 352H272C258.745 352 248 341.255 248 328V216C248 202.745 258.745 192 272 192H376C389.255 192 400 202.745 400 216zM352 160C325.49 160 304 138.51 304 112S325.49 64 352 64S400 85.49 400 112S378.51 160 352 160zM96 160C69.49 160 48 138.51 48 112S69.49 64 96 64S144 85.49 144 112S122.51 160 96 160z" />
-			<glyph glyph-name="suitcase" unicode="" horiz-adv-x="512" d=" M96 -32H416V320H384V368C384 394.51 362.51 416 336 416H176C149.49 416 128 394.51 128 368V320H96V-32zM192 352H320V320H192V352zM512 272V16C512 -10.51 490.51 -32 464 -32H448V320H464C490.51 320 512 298.51 512 272zM64 -32H48C21.49 -32 0 -10.51 0 16V272C0 298.51 21.49 320 48 320H64V-32z" />
-			<glyph glyph-name="sun" unicode="" horiz-adv-x="512" d=" M274.835 435.354L300.351 372.961C304.564 362.66 317.022 358.612 326.485 364.469L383.8010000000001 399.948C399.2910000000001 409.536 418.6090000000001 395.501 414.2760000000001 377.806L398.2460000000001 312.331C395.5990000000001 301.521 403.2990000000001 290.923 414.3980000000001 290.1L481.6220000000001 285.1130000000001C499.7890000000001 283.765 507.1680000000001 261.0560000000001 493.2630000000001 249.2870000000001L441.81 205.74C433.315 198.55 433.315 185.451 441.81 178.261L493.264 134.713C507.17 122.944 499.791 100.235 481.623 98.887L414.399 93.9C403.3 93.077 395.6 82.479 398.247 71.669L414.2770000000001 6.194C418.6090000000001 -11.501 399.2910000000001 -25.5360000000001 383.802 -15.948L326.486 19.531C317.023 25.389 304.564 21.341 300.352 11.0389999999999L274.836 -51.354C267.94 -68.216 244.062 -68.216 237.166 -51.354L211.65 11.039C207.437 21.34 194.979 25.388 185.516 19.531L128.199 -15.948C112.709 -25.536 93.391 -11.501 97.724 6.194L113.754 71.669C116.401 82.479 108.701 93.077 97.602 93.9L30.378 98.887C12.211 100.235 4.832 122.944 18.737 134.713L70.19 178.26C78.685 185.45 78.685 198.549 70.19 205.739L18.736 249.287C4.83 261.056 12.209 283.765 30.377 285.113L97.601 290.1C108.7 290.923 116.4 301.521 113.753 312.331L97.723 377.806C93.391 395.501 112.709 409.536 128.198 399.948L185.515 364.469C194.978 358.611 207.436 362.659 211.649 372.961L237.165 435.354C244.061 452.215 267.939 452.215 274.835 435.354zM392 192C392 266.991 330.99 328 256 328C181.009 328 120 266.991 120 192S181.009 56 256 56C330.99 56 392 117.009 392 192zM360 192C360 134.654 313.346 88 256 88S152 134.654 152 192S198.654 296 256 296S360 249.346 360 192z" />
-			<glyph glyph-name="superscript" unicode="ï„«" horiz-adv-x="512" d=" M395.198 192C398.659 202.526 413.994 213.28 431.463 224.425C448.088 235.03 466.9299999999999 247.051 481.804 263.2870000000001C499.2619999999999 282.341 507.748 303.462 507.748 327.854C507.748 388.416 457.046 416 409.938 416C367.447 416 333.56 393.984 315.506 365.553C310.852 358.224 312.914 348.517 320.129 343.688L350.457 323.392C357.4889999999999 318.6860000000001 366.9169999999999 320.308 372.087 327.006C380.1089999999999 337.4 390.9049999999999 345.231 403.7539999999999 345.231C423.1409999999999 345.231 430.0199999999999 332.33 430.0199999999999 321.283C430.0199999999999 285.124 310.5829999999999 264.26 310.5829999999999 161.259C310.5829999999999 154.605 311.1439999999999 148.245 311.998 141.928C313.074 133.964 319.832 128 327.868 128H496C504.837 128 512 135.163 512 144V176C512 184.837 504.837 192 496 192H395.198zM272 32C280.837 32 288 24.837 288 16V-16C288 -24.837 280.837 -32 272 -32H209.601A16 16 0 0 0 196.06 -24.522L150.359 48.093C148.062 51.445 145.937 55.062 144.164 58.302C142.514 55.058 140.517 51.365 138.29 47.72L93.578 -24.427A15.999 15.999 0 0 0 79.978 -31.999H16C7.163 -31.999 0 -24.836 0 -15.999V16.001C0 24.838 7.163 32.001 16 32.001H42.325L98.877 114.71L46.111 192H16C7.163 192 0 199.163 0 208V240C0 248.837 7.163 256 16 256H84.806A16 16 0 0 0 98.451 248.356L138.333 183.23C140.405 179.707 142.386 176.059 144.06 172.86C145.837 176.1040000000001 147.98 179.814 150.297 183.397L190.629 248.432A16 16 0 0 0 204.227 255.999H272C280.837 255.999 288 248.836 288 239.999V207.999C288 199.162 280.837 191.999 272 191.999H244.021L191.331 116.328L249.974 32H272z" />
-			<glyph glyph-name="sync-alt" unicode="" horiz-adv-x="512" d=" M370.7200000000001 314.7200000000001C339.4580000000001 343.992 298.888 360.038 255.848 360C178.39 359.932 111.52 306.822 93.057 233.15C91.713 227.787 86.935 224 81.406 224H24.103C16.605 224 10.909 230.807 12.296 238.176C33.933 353.076 134.813 440 256 440C322.448 440 382.791 413.8640000000001 427.315 371.315L463.03 407.03C478.149 422.149 504 411.4410000000001 504 390.059V256C504 242.745 493.255 232 480 232H345.941C324.559 232 313.851 257.851 328.97 272.971L370.72 314.7200000000001zM32 152H166.059C187.441 152 198.149 126.149 183.03 111.029L141.28 69.279C172.542 40.006 213.115 23.96 256.156 23.999C333.574 24.069 400.471 77.143 418.943 150.848C420.287 156.211 425.065 159.998 430.594 159.998H487.898C495.396 159.998 501.092 153.191 499.705 145.822C478.067 30.924 377.187 -56 256 -56C189.552 -56 129.209 -29.864 84.685 12.685L48.97 -23.03C33.851 -38.149 8 -27.441 8 -6.059V128C8 141.255 18.745 152 32 152z" />
-			<glyph glyph-name="sync" unicode="" horiz-adv-x="512.333" d=" M440.935 435.426L444.901 352.66C399.416 406.096 331.674 440 256 440C134.813 440 33.933 353.076 12.296 238.176C10.908 230.807 16.604 224 24.103 224H73.187C78.757 224 83.564 227.842 84.863 233.259C103.407 310.592 172.931 368 256 368C316.8930000000001 368 370.512 337.144 402.1040000000001 290.199L300.5740000000001 295.064C293.7290000000001 295.3920000000001 288.0000000000001 289.9310000000001 288.0000000000001 283.0780000000001V235.6670000000001C288.0000000000001 229.04 293.3730000000001 223.667 300.0000000000001 223.667H500.3330000000001C506.9600000000001 223.667 512.3330000000001 229.04 512.3330000000001 235.6670000000001V436C512.3330000000001 442.627 506.9600000000001 448 500.3330000000001 448H452.9220000000001C446.0690000000001 448 440.6070000000001 442.271 440.9350000000001 435.426zM256 16C195.105 16 141.483 46.858 109.891 93.805L211.759 88.934C218.604 88.607 224.332 94.068 224.332 100.92V148.332C224.332 154.959 218.959 160.332 212.332 160.332H12C5.373 160.332 0 154.959 0 148.332V-52C0 -58.627 5.373 -64 12 -64H59.385C66.248 -64 71.713 -58.255 71.37 -51.401L67.241 31.174C112.725 -22.166 180.405 -56 256 -56C377.187 -56 478.067 30.924 499.704 145.824C501.092 153.193 495.396 160 487.897 160H438.813C433.243 160 428.436 156.158 427.137 150.741C408.593 73.408 339.069 16 256 16z" />
-			<glyph glyph-name="table" unicode="" horiz-adv-x="512" d=" M464 416H48C21.49 416 0 394.51 0 368V16C0 -10.51 21.49 -32 48 -32H464C490.51 -32 512 -10.51 512 16V368C512 394.51 490.51 416 464 416zM224 32H64V128H224V32zM224 192H64V288H224V192zM448 32H288V128H448V32zM448 192H288V288H448V192z" />
-			<glyph glyph-name="tablet-alt" unicode="" horiz-adv-x="448" d=" M400 448H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H400C426.5 -64 448 -42.5 448 -16V400C448 426.5 426.5 448 400 448zM224 -32C206.3 -32 192 -17.7 192 0S206.3 32 224 32S256 17.7 256 0S241.7 -32 224 -32zM400 76C400 69.4 394.6 64 388 64H60C53.4 64 48 69.4 48 76V388C48 394.6 53.4 400 60 400H388C394.6 400 400 394.6 400 388V76z" />
-			<glyph glyph-name="tablet" unicode="ï„Š" horiz-adv-x="448" d=" M400 448H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H400C426.5 -64 448 -42.5 448 -16V400C448 426.5 426.5 448 400 448zM224 -32C206.3 -32 192 -17.7 192 0S206.3 32 224 32S256 17.7 256 0S241.7 -32 224 -32z" />
-			<glyph glyph-name="tachometer-alt" unicode="" horiz-adv-x="576" d=" M75.694 -32A48.02 48.02 0 0 0 33.246 -6.429C12.023 33.7 0 79.444 0 128C0 287.058 128.942 416 288 416S576 287.058 576 128C576 79.444 563.977 33.7 542.754 -6.429A48.01800000000001 48.01800000000001 0 0 0 500.306 -32H75.694zM512 160C494.327 160 480 145.673 480 128C480 110.327 494.327 96 512 96S544 110.327 544 128C544 145.673 529.673 160 512 160zM288 320C305.673 320 320 334.327 320 352C320 369.673 305.673 384 288 384S256 369.673 256 352C256 334.327 270.327 320 288 320zM64 160C46.327 160 32 145.673 32 128C32 110.327 46.327 96 64 96S96 110.327 96 128C96 145.673 81.673 160 64 160zM129.608 318.392C111.935 318.392 97.608 304.065 97.608 286.392C97.608 268.719 111.935 254.392 129.608 254.392S161.608 268.719 161.608 286.392C161.608 304.065 147.281 318.392 129.608 318.392zM446.392 318.392C428.719 318.392 414.392 304.065 414.392 286.392C414.392 268.719 428.719 254.392 446.392 254.392S478.392 268.719 478.392 286.392C478.392 304.065 464.065 318.392 446.392 318.392zM359.314 286.858C346.687 290.898 333.181 283.938 329.141 271.314L283.218 127.803C250.108 125.355 224 97.736 224 64C224 28.654 252.654 0 288 0C323.346 0 352 28.654 352 64C352 83.773 343.029 101.447 328.939 113.187L374.858 256.685C378.897 269.31 371.938 282.818 359.314 286.858z" />
-			<glyph glyph-name="tag" unicode="" horiz-adv-x="512" d=" M0 195.882V400C0 426.51 21.49 448 48 448H252.118A48 48 0 0 0 286.059 433.941L497.941 222.059C516.6859999999999 203.314 516.6859999999999 172.922 497.941 154.177L293.823 -49.941C275.078 -68.6859999999999 244.686 -68.6859999999999 225.941 -49.941L14.059 161.941A48 48 0 0 0 0 195.882zM112 384C85.49 384 64 362.51 64 336S85.49 288 112 288S160 309.49 160 336S138.51 384 112 384z" />
-			<glyph glyph-name="tags" unicode="" horiz-adv-x="640" d=" M497.941 222.059L286.0590000000001 433.941A48 48 0 0 1 252.118 448H48C21.49 448 0 426.51 0 400V195.882A48 48 0 0 1 14.059 161.941L225.941 -49.941C244.685 -68.6859999999999 275.077 -68.687 293.823 -49.941L497.941 154.177C516.6859999999999 172.922 516.6859999999999 203.314 497.941 222.059zM112 288C85.49 288 64 309.49 64 336S85.49 384 112 384S160 362.51 160 336S138.51 288 112 288zM625.941 154.177L421.823 -49.941C403.078 -68.6859999999999 372.686 -68.6859999999999 353.941 -49.941L353.581 -49.581L527.64 124.478C544.639 141.477 554 164.078 554 188.118S544.638 234.759 527.64 251.758L331.397 448H380.118A48 48 0 0 0 414.059 433.941L625.941 222.059C644.686 203.314 644.686 172.922 625.941 154.177z" />
-			<glyph glyph-name="tasks" unicode="ï‚®" horiz-adv-x="512" d=" M208 316H496C504.8 316 512 323.2 512 332V372C512 380.8 504.8 388 496 388H208C199.2 388 192 380.8 192 372V332C192 323.2 199.2 316 208 316zM208 156H496C504.8 156 512 163.2 512 172V212C512 220.8 504.8 228 496 228H208C199.2 228 192 220.8 192 212V172C192 163.2 199.2 156 208 156zM208 -4H496C504.8 -4 512 3.2 512 12V52C512 60.8 504.8 68 496 68H208C199.2 68 192 60.8 192 52V12C192 3.2 199.2 -4 208 -4zM64 80C37.5 80 15.4 58.5 15.4 32S37.5 -16 64 -16S112 5.5 112 32S90.5 80 64 80zM156.5 379L84.3 306.8L68.7 291.2000000000001C64 286.5 55.8 286.5 51.1 291.2000000000001L3.5 338.6C-1.2 343.3 -1.2 350.9 3.5 355.6L19.2 371.3C23.9 376 31.5 376 36.2 371.3L58.9 349.2L122.6 412.5C127.3 417.2 134.9 417.2 139.6 412.5L156.6 396C161.2 391.3 161.2 383.7 156.5 379zM156.5 219.4L84.3 147.2L68.6 131.5C63.9 126.8 55.7 126.8 51 131.5L3.5 179C-1.2 183.7 -1.2 191.3 3.5 196L19.2 211.7C23.9 216.4 31.5 216.4 36.2 211.7L58.9 189.6L122.6 253.3C127.3 258 134.9 258 139.6 253.3L156.6 236.3C161.2 231.7 161.2 224.1 156.5 219.4z" />
-			<glyph glyph-name="taxi" unicode="" horiz-adv-x="512" d=" M461.951 204.135L440.1350000000001 291.403A79.885 79.885 0 0 1 362.522 352H352V392C352 405.255 341.255 416 328 416H184C170.745 416 160 405.255 160 392V352H149.478A79.885 79.885 0 0 1 71.866 291.403L50.05 204.135C25.515 195.177 8 171.634 8 144V96C8 75.793 17.374 57.786 32 46.057V-8C32 -21.255 42.745 -32 56 -32H104C117.255 -32 128 -21.255 128 -8V32H384V-8C384 -21.255 394.745 -32 408 -32H456C469.255 -32 480 -21.255 480 -8V46.057C494.626 57.786 504 75.794 504 96V144C504 171.634 486.485 195.177 461.951 204.135zM149.478 288H362.523A15.975 15.975 0 0 0 378.045 275.88L395.015 208H116.985L133.955 275.881A15.975999999999999 15.975999999999999 0 0 0 149.478 288zM132 112C132 92.118 115.882 76 96 76S60 92.118 60 112S76.118 148 96 148S132 131.882 132 112zM452 112C452 92.118 435.882 76 416 76S380 92.118 380 112S396.118 148 416 148S452 131.882 452 112z" />
-			<glyph glyph-name="terminal" unicode="ï„ " horiz-adv-x="640" d=" M257.981 175.029L63.638 -19.314C54.265 -28.687 39.069 -28.687 29.697 -19.314L7.029 3.353C-2.328 12.71 -2.346 27.875 6.989 37.254L161.011 192L6.99 346.745C-2.345 356.124 -2.327 371.289 7.03 380.646L29.697 403.313C39.07 412.6860000000001 54.266 412.6860000000001 63.638 403.313L257.981 208.97C267.354 199.598 267.354 184.402 257.981 175.029zM640 -8V24C640 37.255 629.255 48 616 48H312C298.745 48 288 37.255 288 24V-8C288 -21.255 298.745 -32 312 -32H616C629.255 -32 640 -21.255 640 -8z" />
-			<glyph glyph-name="text-height" unicode="" horiz-adv-x="576" d=" M16 416H304C312.837 416 320 408.837 320 400V304C320 295.163 312.837 288 304 288H268.504C259.6670000000001 288 252.504 295.163 252.504 304V352H197.743V32H232C240.837 32 248 24.837 248 16V-16C248 -24.837 240.837 -32 232 -32H88C79.163 -32 72 -24.837 72 -16V16C72 24.837 79.163 32 88 32H122.257V352H67.496V304C67.496 295.163 60.333 288 51.496 288H16C7.163 288 0 295.163 0 304V400C0 408.837 7.163 416 16 416zM491.308 411.315L571.303 331.314C581.309 321.307 574.297 304 559.99 304H512V80H560C575.639 80 580.635 62.009 571.313 52.686L491.318 -27.3150000000001C485.071 -33.5620000000001 474.937 -33.5600000000001 468.692 -27.3150000000001L388.697 52.6859999999999C378.691 62.693 385.703 80 400.01 80H448V304H400C384.361 304 379.365 321.991 388.687 331.314L468.682 411.315C474.929 417.563 485.063 417.56 491.308 411.315z" />
-			<glyph glyph-name="text-width" unicode="" horiz-adv-x="448" d=" M16 416H432C440.837 416 448 408.837 448 400V304C448 295.163 440.837 288 432 288H396.504C387.6670000000001 288 380.504 295.163 380.504 304V352H261.743V224H296C304.837 224 312 216.837 312 208V176C312 167.163 304.837 160 296 160H152C143.163 160 136 167.163 136 176V208C136 216.837 143.163 224 152 224H186.257V352H67.496V304C67.496 295.163 60.333 288 51.496 288H16C7.163 288 0 295.163 0 304V400C0 408.837 7.163 416 16 416zM443.315 75.318L363.314 155.313C353.991 164.635 336 159.638 336 144V96H112V143.99C112 158.297 94.693 165.309 84.686 155.303L4.685 75.308C-1.56 69.063 -1.562 58.929 4.685 52.682L84.686 -27.313C94.009 -36.635 112 -31.638 112 -16V32H336V-15.99C336 -30.297 353.307 -37.309 363.314 -27.303L443.3150000000001 52.692C449.5600000000001 58.937 449.5630000000001 69.071 443.3150000000001 75.318z" />
-			<glyph glyph-name="th-large" unicode="" horiz-adv-x="512" d=" M296 416H488C501.255 416 512 405.255 512 392V232C512 218.745 501.255 208 488 208H296C282.745 208 272 218.745 272 232V392C272 405.255 282.745 416 296 416zM216 416H24C10.745 416 0 405.255 0 392V232C0 218.745 10.745 208 24 208H216C229.255 208 240 218.745 240 232V392C240 405.255 229.255 416 216 416zM0 152V-8C0 -21.255 10.745 -32 24 -32H216C229.255 -32 240 -21.255 240 -8V152C240 165.255 229.255 176 216 176H24C10.745 176 0 165.255 0 152zM296 -32H488C501.255 -32 512 -21.255 512 -8V152C512 165.255 501.255 176 488 176H296C282.745 176 272 165.255 272 152V-8C272 -21.255 282.745 -32 296 -32z" />
-			<glyph glyph-name="th-list" unicode="" horiz-adv-x="512" d=" M149.333 232V152C149.333 138.745 138.588 128 125.333 128H24C10.745 128 0 138.745 0 152V232C0 245.255 10.745 256 24 256H125.333C138.588 256 149.333 245.255 149.333 232zM0 72V-8C0 -21.255 10.745 -32 24 -32H125.333C138.588 -32 149.333 -21.255 149.333 -8V72C149.333 85.255 138.588 96 125.333 96H24C10.745 96 0 85.255 0 72zM125.333 416H24C10.745 416 0 405.255 0 392V312C0 298.745 10.745 288 24 288H125.333C138.588 288 149.333 298.745 149.333 312V392C149.333 405.255 138.588 416 125.333 416zM205.333 -32H488C501.255 -32 512 -21.255 512 -8V72C512 85.255 501.255 96 488 96H205.333C192.078 96 181.333 85.255 181.333 72V-8C181.333 -21.255 192.078 -32 205.333 -32zM181.333 392V312C181.333 298.745 192.078 288 205.333 288H488C501.255 288 512 298.745 512 312V392C512 405.255 501.255 416 488 416H205.333C192.078 416 181.333 405.255 181.333 392zM205.333 128H488C501.255 128 512 138.745 512 152V232C512 245.255 501.255 256 488 256H205.333C192.078 256 181.333 245.255 181.333 232V152C181.333 138.745 192.078 128 205.333 128z" />
-			<glyph glyph-name="th" unicode="" horiz-adv-x="512" d=" M149.333 392V312C149.333 298.745 138.588 288 125.333 288H24C10.745 288 0 298.745 0 312V392C0 405.255 10.745 416 24 416H125.333C138.588 416 149.333 405.255 149.333 392zM330.6670000000001 152V232C330.6670000000001 245.255 319.9220000000001 256 306.6670000000001 256H205.333C192.078 256 181.333 245.255 181.333 232V152C181.333 138.745 192.078 128 205.333 128H306.666C319.9220000000001 128 330.667 138.745 330.667 152zM362.6670000000001 392V312C362.6670000000001 298.745 373.4120000000001 288 386.6670000000001 288H488C501.255 288 512 298.745 512 312V392C512 405.255 501.255 416 488 416H386.667C373.412 416 362.667 405.255 362.667 392zM330.6670000000001 312V392C330.6670000000001 405.255 319.9220000000001 416 306.6670000000001 416H205.333C192.078 416 181.333 405.255 181.333 392V312C181.333 298.745 192.078 288 205.333 288H306.666C319.9220000000001 288 330.667 298.745 330.667 312zM125.333 256H24C10.745 256 0 245.255 0 232V152C0 138.745 10.745 128 24 128H125.333C138.588 128 149.333 138.745 149.333 152V232C149.333 245.255 138.588 256 125.333 256zM0 72V-8C0 -21.255 10.745 -32 24 -32H125.333C138.588 -32 149.333 -21.255 149.333 -8V72C149.333 85.255 138.588 96 125.333 96H24C10.745 96 0 85.255 0 72zM386.667 128H488C501.255 128 512 138.745 512 152V232C512 245.255 501.255 256 488 256H386.667C373.412 256 362.667 245.255 362.667 232V152C362.667 138.745 373.412 128 386.667 128zM386.667 -32H488C501.255 -32 512 -21.255 512 -8V72C512 85.255 501.255 96 488 96H386.667C373.412 96 362.667 85.255 362.667 72V-8C362.667 -21.255 373.412 -32 386.667 -32zM181.333 72V-8C181.333 -21.255 192.078 -32 205.333 -32H306.666C319.921 -32 330.666 -21.255 330.666 -8V72C330.666 85.255 319.921 96 306.666 96H205.333C192.078 96 181.333 85.255 181.333 72z" />
-			<glyph glyph-name="thermometer-empty" unicode="ï‹‹" horiz-adv-x="256" d=" M192 64C192 28.654 163.346 0 128 0S64 28.654 64 64C64 99.346 92.654 128 128 128S192 99.346 192 64zM224 148.653C243.912 126.09 256 96.459 256 64C256 -6.696 198.697 -64 128 -64C127.701 -64 127.391 -63.999 127.091 -63.997C56.789 -63.509 -0.357 -5.636 0.002 64.667C0.166 96.865 12.225 126.245 32 148.653V352C32 405.019 74.981 448 128 448S224 405.019 224 352V148.653zM208 64C208 98.339 188.63 116.19 176 130.502V352C176 378.467 154.467 400 128 400S80 378.467 80 352V130.502C67.268 116.074 48.175 98.402 48.001 64.422C47.777 20.5460000000001 83.564 -15.694 127.424 -15.998L128 -16C172.112 -16 208 19.888 208 64z" />
-			<glyph glyph-name="thermometer-full" unicode="" horiz-adv-x="256" d=" M224 352C224 405.019 181.019 448 128 448S32 405.019 32 352V148.653C12.225 126.244 0.166 96.864 0.002 64.667C-0.357 -5.636 56.789 -63.509 127.091 -63.997C127.39 -63.999 127.701 -64 128 -64C198.698 -64 256 -6.696 256 64C256 96.459 243.912 126.09 224 148.653V352zM128 -16L127.424 -15.998C83.564 -15.694 47.777 20.546 48.001 64.422C48.174 98.402 67.267 116.074 80 130.502V352C80 378.467 101.533 400 128 400S176 378.467 176 352V130.502C188.63 116.19 208 98.338 208 64C208 19.888 172.112 -16 128 -16zM192 64C192 28.654 163.346 0 128 0S64 28.654 64 64C64 87.685 76.876 108.349 96 119.417V352C96 369.673 110.327 384 128 384S160 369.673 160 352V119.417C179.124 108.3490000000001 192 87.6850000000001 192 64z" />
-			<glyph glyph-name="thermometer-half" unicode="" horiz-adv-x="256" d=" M192 64C192 28.654 163.346 0 128 0S64 28.654 64 64C64 87.685 76.876 108.349 96 119.417V224C96 241.673 110.327 256 128 256S160 241.673 160 224V119.417C179.124 108.3490000000001 192 87.6850000000001 192 64zM224 148.653C243.912 126.09 256 96.459 256 64C256 -6.696 198.697 -64 128 -64C127.701 -64 127.391 -63.999 127.091 -63.997C56.789 -63.509 -0.357 -5.636 0.002 64.667C0.166 96.865 12.225 126.245 32 148.653V352C32 405.019 74.981 448 128 448S224 405.019 224 352V148.653zM208 64C208 98.339 188.63 116.19 176 130.502V352C176 378.467 154.467 400 128 400S80 378.467 80 352V130.502C67.268 116.074 48.175 98.402 48.001 64.422C47.777 20.5460000000001 83.564 -15.694 127.424 -15.998L128 -16C172.112 -16 208 19.888 208 64z" />
-			<glyph glyph-name="thermometer-quarter" unicode="ï‹Š" horiz-adv-x="256" d=" M192 64C192 28.654 163.346 0 128 0S64 28.654 64 64C64 87.685 76.876 108.349 96 119.417V160C96 177.673 110.327 192 128 192S160 177.673 160 160V119.417C179.124 108.3490000000001 192 87.6850000000001 192 64zM224 148.653C243.912 126.09 256 96.459 256 64C256 -6.696 198.697 -64 128 -64C127.701 -64 127.391 -63.999 127.091 -63.997C56.789 -63.509 -0.357 -5.636 0.002 64.667C0.166 96.865 12.225 126.245 32 148.653V352C32 405.019 74.981 448 128 448S224 405.019 224 352V148.653zM208 64C208 98.339 188.63 116.19 176 130.502V352C176 378.467 154.467 400 128 400S80 378.467 80 352V130.502C67.268 116.074 48.175 98.402 48.001 64.422C47.777 20.5460000000001 83.564 -15.694 127.424 -15.998L128 -16C172.112 -16 208 19.888 208 64z" />
-			<glyph glyph-name="thermometer-three-quarters" unicode="" horiz-adv-x="256" d=" M192 64C192 28.654 163.346 0 128 0C92.654 0 64 28.654 64 64C64 87.685 76.876 108.349 96 119.417V288C96 305.673 110.327 320 128 320S160 305.673 160 288V119.417C179.124 108.3490000000001 192 87.6850000000001 192 64zM224 148.653C243.912 126.09 256 96.459 256 64C256 -6.696 198.697 -64 128 -64C127.701 -64 127.391 -63.999 127.091 -63.997C56.789 -63.509 -0.357 -5.636 0.002 64.667C0.166 96.865 12.225 126.245 32 148.653V352C32 405.019 74.981 448 128 448S224 405.019 224 352V148.653zM208 64C208 98.339 188.63 116.19 176 130.502V352C176 378.467 154.467 400 128 400S80 378.467 80 352V130.502C67.268 116.074 48.175 98.402 48.001 64.422C47.777 20.5460000000001 83.564 -15.694 127.424 -15.998L128 -16C172.112 -16 208 19.888 208 64z" />
-			<glyph glyph-name="thumbs-down" unicode="ï…¥" horiz-adv-x="512" d=" M0 392V152C0 138.745 10.745 128 24 128H104C117.255 128 128 138.745 128 152V392C128 405.255 117.255 416 104 416H24C10.745 416 0 405.255 0 392zM40 192C40 205.255 50.745 216 64 216S88 205.255 88 192S77.255 168 64 168S40 178.745 40 192zM312 -64C291.817 -64 282.515 -24.707 278.069 -6.205C272.863 15.461 267.48 37.865 252.676 52.697C220.207 85.221 203.173 126.664 163.559 165.808A11.98 11.98 0 0 0 160.001 174.329V388.099C160.001 394.64 165.244 399.977 171.784 400.097C187.615 400.387 208.478 409.176 224.435 416.275C256.189 430.402 295.709 447.983 343.995 448H346.839C389.616 448 440.202 447.587 460.613 418.263C469.005 406.206 471.059 391.229 466.761 373.631C483.073 356.578 491.824 324.7680000000001 483.143 298.874C500.687 275.442 502.2860000000001 242.742 492.451 219.405L492.561 219.295C504.4540000000001 207.346 512.0840000000001 188.036 512 170.098C511.844 139.746 485.843 111.9999999999999 452.447 111.9999999999999H350.723C358.03 83.66 384 59.868 384 17.452C384 -56 336 -64 312 -64z" />
-			<glyph glyph-name="thumbs-up" unicode="ï…¤" horiz-adv-x="512" d=" M104 224H24C10.745 224 0 213.255 0 200V-40C0 -53.255 10.745 -64 24 -64H104C117.255 -64 128 -53.255 128 -40V200C128 213.255 117.255 224 104 224zM64 -24C50.745 -24 40 -13.255 40 0S50.745 24 64 24S88 13.255 88 0S77.255 -24 64 -24zM384 366.548C384 324.132 358.03 300.3400000000001 350.723 272H452.446C485.843 272 511.843 244.254 511.999 213.902C512.083 195.964 504.453 176.653 492.56 164.705L492.45 164.595C502.286 141.258 500.687 108.558 483.142 85.126C491.823 59.231 483.073 27.422 466.76 10.369C471.058 -7.229 469.004 -22.206 460.612 -34.263C440.202 -63.587 389.616 -64 346.839 -64L343.994 -63.999C295.707 -63.982 256.188 -46.401 224.434 -32.274C208.477 -25.175 187.613 -16.387 171.783 -16.096C165.243 -15.976 160 -10.639 160 -4.098V209.672C160 212.872 161.282 215.943 163.558 218.193C203.172 257.337 220.206 298.78 252.675 331.304C267.479 346.136 272.863 368.54 278.068 390.206C282.515 408.707 291.817 448 312 448C336 448 384 440 384 366.548z" />
-			<glyph glyph-name="thumbtack" unicode="" horiz-adv-x="384" d=" M298.028 233.733L285.793 352H328C341.255 352 352 362.745 352 376V424C352 437.255 341.255 448 328 448H56C42.745 448 32 437.255 32 424V376C32 362.745 42.745 352 56 352H98.207L85.972 233.733C37.465 211.18 0 170.739 0 120C0 106.745 10.745 96 24 96H160V-8.007C160 -9.249 160.289 -10.474 160.845 -11.585L184.845 -59.585C187.786 -65.467 196.209 -65.4779999999999 199.156 -59.585L223.156 -11.585A8.008 8.008 0 0 1 224.001 -8.007V96H360.001C373.256 96 384.001 106.745 384.001 120C384 171.183 346.018 211.42 298.028 233.733z" />
-			<glyph glyph-name="ticket-alt" unicode="" horiz-adv-x="576" d=" M128 288H448V96H128V288zM528 192C528 165.49 549.49 144 576 144V48C576 21.49 554.51 0 528 0H48C21.49 0 0 21.49 0 48V144C26.51 144 48 165.49 48 192S26.51 240 0 240V336C0 362.51 21.49 384 48 384H528C554.51 384 576 362.51 576 336V240C549.49 240 528 218.51 528 192zM480 296C480 309.255 469.255 320 456 320H120C106.745 320 96 309.255 96 296V88C96 74.745 106.745 64 120 64H456C469.255 64 480 74.745 480 88V296z" />
-			<glyph glyph-name="times-circle" unicode="" horiz-adv-x="512" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM377.6 126.9C382.3 122.2 382.3 114.6 377.6 109.9L338 70.4C333.3 65.7 325.7 65.7 321 70.4L256 136L190.9 70.4C186.2 65.7 178.6 65.7 173.9 70.4L134.4 110C129.7 114.7 129.7 122.3 134.4 127L200 192L134.4 257.1C129.7 261.8 129.7 269.4 134.4 274.1L174 313.7C178.7 318.4 186.3 318.4 191 313.7L256 248L321.1 313.6C325.8 318.3 333.4000000000001 318.3 338.1 313.6L377.7000000000001 274C382.4000000000001 269.3 382.4000000000001 261.7 377.7000000000001 257L312 192L377.6 126.9z" />
-			<glyph glyph-name="times" unicode="" horiz-adv-x="384" d=" M323.1 7L377 60.9C386.4 70.3 386.4 85.4 377 94.8L279.8 192L377 289.2C386.4 298.6 386.4 313.7 377 323.1L323.1 377C313.7000000000001 386.4 298.6 386.4 289.2000000000001 377L192 279.8L94.8 377C85.4 386.4 70.3 386.4 60.9 377L7 323.1C-2.4 313.7 -2.4 298.6 7 289.2L104.2 192L7 94.8C-2.4 85.4 -2.4 70.3 7 60.9L60.9 7C70.3 -2.4 85.4 -2.4 94.8 7L192 104.2L289.2 7C298.5 -2.3 313.7 -2.3 323.1 7z" />
-			<glyph glyph-name="tint" unicode="" horiz-adv-x="384" d=" M192 -64C93.565 -64 13.913 15.652 13.913 114.087C13.913 225.283 115.107 268.152 162.435 425.912C171.539 456.028 213.534 454.69 221.565 425.912C269.111 267.426 370.087 225.843 370.087 114.087C370.087 15.652 290.435 -64 192 -64zM149.478 107.826C147.969 113.359 140.031 113.358 138.522 107.826C129.299 78.401 110.609 70.181 110.609 49.391C110.609 30.87 125.478 16 144 16S177.391 30.87 177.391 49.391C177.391 70.23 158.718 78.347 149.478 107.826z" />
-			<glyph glyph-name="toggle-off" unicode="" horiz-adv-x="576" d=" M384 384H192C85.961 384 0 298.039 0 192S85.961 0 192 0H384C490.039 0 576 85.961 576 192S490.039 384 384 384zM64 192C64 262.741 121.249 320 192 320C262.741 320 320 262.751 320 192C320 121.259 262.751 64 192 64C121.259 64 64 121.249 64 192zM384 64H335.0950000000001C400.312 136.858 400.331 247.12 335.0950000000001 320H384C454.741 320 512 262.751 512 192C512 121.26 454.751 64 384 64z" />
-			<glyph glyph-name="toggle-on" unicode="" horiz-adv-x="576" d=" M576 192C576 85.961 490.039 0 384 0H192C85.961 0 0 85.961 0 192S85.961 384 192 384H384C490.039 384 576 298.039 576 192zM384 320C313.259 320 256 262.751 256 192C256 121.259 313.249 64 384 64C454.741 64 512 121.249 512 192C512 262.741 454.751 320 384 320" />
-			<glyph glyph-name="trademark" unicode="" horiz-adv-x="640" d=" M97.119 284.867H12C5.373 284.867 0 290.24 0 296.867V340C0 346.627 5.373 352 12 352H260.559C267.186 352 272.559 346.627 272.559 340V296.867C272.559 290.24 267.186 284.867 260.559 284.867H175.44V44C175.44 37.373 170.067 32 163.44 32H109.118C102.491 32 97.118 37.373 97.118 44V284.867zM329.825 352H395.25A12 12 0 0 0 406.596 343.907L450.355 216.839C457.516 196.251 466.466 164.027 466.466 164.027H467.362S476.312 196.251 483.473 216.839L527.231 343.907A12 12 0 0 0 538.577 352H603.987A12 12 0 0 0 615.948 340.9700000000001L639.96 44.97C640.527 37.983 635.009 32 627.999 32H573.898A12 12 0 0 0 561.926 43.182L552.844 176.112C551.0540000000001 200.28 552.844 229.8180000000001 552.844 229.8180000000001H551.9480000000001S541.2070000000001 196.2520000000001 534.046 176.112L503.3460000000001 91.381A12 12 0 0 0 492.0640000000001 83.4690000000001H441.7620000000001A12 12 0 0 0 430.4800000000001 91.381L399.7800000000001 176.112C392.6190000000001 196.252 381.8770000000001 229.8180000000001 381.8770000000001 229.8180000000001H380.9820000000001S382.7720000000001 200.28 380.9820000000001 176.112L371.9000000000001 43.182C371.4720000000001 36.887 366.2400000000001 32 359.9300000000001 32H305.4C298.383 32 292.864 37.994 293.441 44.987L317.866 340.987A11.999000000000002 11.999000000000002 0 0 0 329.825 352z" />
-			<glyph glyph-name="train" unicode="" horiz-adv-x="448" d=" M448 352V96C448 44.185 386.376 0 317.978 0L380.9580000000001 -49.721C386.905 -54.417 383.562 -64 376 -64H72C64.422 -64 61.108 -54.406 67.043 -49.721L130.022 0C61.82 0 0 44.046 0 96V352C0 405.019 64 448 128 448H320C385 448 448 405.019 448 352zM400 216V328C400 341.255 389.255 352 376 352H72C58.745 352 48 341.255 48 328V216C48 202.745 58.745 192 72 192H376C389.255 192 400 202.745 400 216zM224 152C193.072 152 168 126.928 168 96S193.072 40 224 40S280 65.072 280 96S254.928 152 224 152z" />
-			<glyph glyph-name="transgender-alt" unicode="" horiz-adv-x="480" d=" M468 448H389C378.3 448 373 435.1 380.5 427.5L397.4 410.6L316.7 329.9C294.5 343.9 268.2 352 240 352C211.8 352 185.5 343.9 163.3 329.9L146.8 346.4L166.6 366.2C171.3 370.9 171.3 378.5 166.6 383.2L138.3 411.5C133.6 416.2 126 416.2 121.3 411.5L101.5 391.7L82.5 410.7L99.4 427.6C107.1 435.1 101.7 448 91 448H12C5.4 448 0 442.6 0 436V357C0 346.3 12.9 341 20.5 348.5L37.4 365.4L56.4 346.4L36.6 326.6C31.9 321.9 31.9 314.3 36.6 309.6L64.9 281.3C69.6 276.6 77.2 276.6 81.9 281.3L101.7 301.1L118.2 284.6C104.1 262.5 96 236.2 96 208C96 139.5 143.9 82.1 208 67.6V40H172C165.4 40 160 34.6 160 28V-12C160 -18.6 165.4 -24 172 -24H208V-52C208 -58.6 213.4 -64 220 -64H260C266.6 -64 272 -58.6 272 -52V-24H308C314.6 -24 320 -18.6 320 -12V28C320 34.6 314.6 40 308 40H272V67.6C336.1 82.2000000000001 384 139.5 384 208C384 236.2 375.9 262.5 361.9 284.7000000000001L442.6 365.4000000000001L459.4999999999999 348.5000000000001C467.1 340.9000000000001 479.9999999999999 346.3000000000001 479.9999999999999 357.0000000000001V436C479.9999999999999 442.6 474.6 448 467.9999999999999 448zM240 128C195.9 128 160 163.9 160 208S195.9 288 240 288S320 252.1 320 208S284.1 128 240 128z" />
-			<glyph glyph-name="transgender" unicode="" horiz-adv-x="384" d=" M372 448H293C282.3 448 277 435.1 284.5 427.5L301.4 410.6L220.7 329.9C198.5 343.9 172.2 352 144 352C64.5 352 0 287.5 0 208C0 139.5 47.9 82.1 112 67.6V40H76C69.4 40 64 34.6 64 28V-12C64 -18.6 69.4 -24 76 -24H112V-52C112 -58.6 117.4 -64 124 -64H164C170.6 -64 176 -58.6 176 -52V-24H212C218.6 -24 224 -18.6 224 -12V28C224 34.6 218.6 40 212 40H176V67.6C240.1 82.2000000000001 288 139.5 288 208C288 236.2 279.9 262.5 265.9 284.7000000000001L346.6 365.4000000000001L363.5 348.5000000000001C371.1 340.9000000000001 384 346.3000000000001 384 357.0000000000001V436C384 442.6 378.6 448 372 448zM144 128C99.9 128 64 163.9 64 208S99.9 288 144 288S224 252.1 224 208S188.1 128 144 128z" />
-			<glyph glyph-name="trash-alt" unicode="ï‹­" horiz-adv-x="448" d=" M0 364V392C0 405.3 10.7 416 24 416H136L145.4 434.7C149.4 442.9 157.7 448 166.8 448H281.1C290.2000000000001 448 298.5 442.9 302.6 434.7L312 416H424C437.3 416 448 405.3 448 392V364C448 357.4 442.6 352 436 352H12C5.4 352 0 357.4 0 364zM416 308V-16C416 -42.5 394.5 -64 368 -64H80C53.5 -64 32 -42.5 32 -16V308C32 314.6 37.4 320 44 320H404C410.6 320 416 314.6 416 308zM144 240C144 248.8 136.8 256 128 256S112 248.8 112 240V16C112 7.2 119.2 0 128 0S144 7.2 144 16V240zM240 240C240 248.8 232.8 256 224 256S208 248.8 208 240V16C208 7.2 215.2 0 224 0S240 7.2 240 16V240zM336 240C336 248.8 328.8 256 320 256S304 248.8 304 240V16C304 7.2 311.2 0 320 0S336 7.2 336 16V240z" />
-			<glyph glyph-name="trash" unicode="" horiz-adv-x="448" d=" M0 364V392C0 405.3 10.7 416 24 416H136L145.4 434.7C149.4 442.9 157.7 448 166.8 448H281.1C290.2000000000001 448 298.5 442.9 302.6 434.7L312 416H424C437.3 416 448 405.3 448 392V364C448 357.4 442.6 352 436 352H12C5.4 352 0 357.4 0 364zM415.2 307.3L394.8 -19C393.2 -44.3 372.2 -64 346.9000000000001 -64H101.1C75.8 -64 54.8 -44.3 53.2 -19L32.8 307.3C32.4 314.2000000000001 37.9 320 44.8 320H403.3C410.1 320 415.6 314.2000000000001 415.2 307.3z" />
-			<glyph glyph-name="tree" unicode="" horiz-adv-x="384" d=" M377.33 72.571L293.906 160H328C349.017 160 359.872 185.207 345.448 200.479L262.79 288H296C316.878 288 327.851 312.969 313.587 328.331L209.587 440.334C200.102 450.548 183.911 450.563 174.413 440.334L70.413 328.331C56.206 313.031 67.037 288 88 288H121.21L38.551 200.479C24.121 185.199 34.993 160 56 160H90.094L6.665 72.571C-7.869 57.345 2.925 32 24.025 32H144C144 -0.781 132.812 -17.26 110.005 -35.506C98.225 -44.93 104.914 -64 120 -64H264C279.086 -64 285.776 -44.931 273.995 -35.506C254.227 -19.6919999999999 240.003 -3.841 240 31.99V32H359.9700000000001C381.0200000000001 32 391.899 57.309 377.3300000000001 72.571z" />
-			<glyph glyph-name="trophy" unicode="ï‚‘" horiz-adv-x="576" d=" M552 384H448V424C448 437.3 437.3 448 424 448H152C138.7 448 128 437.3 128 424V384H24C10.7 384 0 373.3 0 360V304C0 268.3 22.5 231.6 61.9 203.3C93.4 180.6 131.7 166.2 171.9 161.6C203.3 109.5 240 88 240 88V16H192C156.7 16 128 -4.7 128 -40V-52C128 -58.6 133.4 -64 140 -64H436C442.6 -64 448 -58.6 448 -52V-40C448 -4.7 419.3 16 384 16H336V88S372.7 109.5 404.1 161.6C444.4000000000001 166.2000000000001 482.7 180.6 514.1 203.3C553.4 231.6 576 268.3 576 304V360C576 373.3 565.3 384 552 384zM99.3 255.2C74.9 272.8 64 292.4 64 304V320H128.2C129.2 287.4 134 258.8 141 233.8C125.9 239 111.8 246.2 99.3 255.2zM512 304C512 287.9 494.3 267.9 476.7 255.2C464.2 246.2 450 239 434.9 233.8C441.9 258.8 446.7 287.4 447.7 320H512V304z" />
-			<glyph glyph-name="truck" unicode="" horiz-adv-x="640" d=" M592 448H272C245.49 448 224 426.51 224 400V352H179.882A48 48 0 0 1 145.941 337.9410000000001L46.059 238.059A48 48 0 0 1 32 204.118V96H24C10.745 96 0 85.255 0 72V56C0 42.745 10.745 32 24 32H64C64 -21.019 106.981 -64 160 -64S256 -21.019 256 32H384C384 -21.019 426.981 -64 480 -64S576 -21.019 576 32H616C629.255 32 640 42.745 640 56V400C640 426.51 618.51 448 592 448zM160 -16C133.533 -16 112 5.533 112 32S133.533 80 160 80S208 58.467 208 32S186.467 -16 160 -16zM224 192H80V204.118L179.882 304H224V192zM480 -16C453.533 -16 432 5.533 432 32S453.533 80 480 80S528 58.467 528 32S506.467 -16 480 -16z" />
-			<glyph glyph-name="tty" unicode="" horiz-adv-x="512" d=" M5.37 344.178C143.902 482.71 368.306 482.504 506.632 344.178C512.71 338.1 513.706 328.682 509.215 321.497L466.001 252.359A18.332 18.332 0 0 0 443.6450000000001 245.054L357.2230000000001 279.623A18.335 18.335 0 0 0 345.7890000000001 298.469L351.741 358C289.596 380.454 221.105 379.986 160.258 358L166.211 298.468A18.331 18.331 0 0 0 154.777 279.622L68.354 245.0540000000001A18.334 18.334 0 0 0 45.998 252.3590000000001L2.787 321.498A18.333 18.333 0 0 0 5.37 344.178zM96 140V180C96 186.627 90.627 192 84 192H44C37.373 192 32 186.627 32 180V140C32 133.373 37.373 128 44 128H84C90.627 128 96 133.373 96 140zM192 140V180C192 186.627 186.627 192 180 192H140C133.373 192 128 186.627 128 180V140C128 133.373 133.373 128 140 128H180C186.627 128 192 133.373 192 140zM288 140V180C288 186.627 282.627 192 276 192H236C229.373 192 224 186.627 224 180V140C224 133.373 229.373 128 236 128H276C282.627 128 288 133.373 288 140zM384 140V180C384 186.627 378.627 192 372 192H332C325.373 192 320 186.627 320 180V140C320 133.373 325.373 128 332 128H372C378.627 128 384 133.373 384 140zM480 140V180C480 186.627 474.627 192 468 192H428C421.373 192 416 186.627 416 180V140C416 133.373 421.373 128 428 128H468C474.627 128 480 133.373 480 140zM144 44V84C144 90.627 138.627 96 132 96H92C85.373 96 80 90.627 80 84V44C80 37.373 85.373 32 92 32H132C138.627 32 144 37.373 144 44zM240 44V84C240 90.627 234.627 96 228 96H188C181.373 96 176 90.627 176 84V44C176 37.373 181.373 32 188 32H228C234.627 32 240 37.373 240 44zM336 44V84C336 90.627 330.627 96 324 96H284C277.373 96 272 90.627 272 84V44C272 37.373 277.373 32 284 32H324C330.627 32 336 37.373 336 44zM432 44V84C432 90.627 426.627 96 420 96H380C373.373 96 368 90.627 368 84V44C368 37.373 373.373 32 380 32H420C426.627 32 432 37.373 432 44zM96 -52V-12C96 -5.373 90.627 0 84 0H44C37.373 0 32 -5.373 32 -12V-52C32 -58.627 37.373 -64 44 -64H84C90.627 -64 96 -58.627 96 -52zM384 -52V-12C384 -5.373 378.627 0 372 0H140C133.373 0 128 -5.373 128 -12V-52C128 -58.627 133.373 -64 140 -64H372C378.627 -64 384 -58.627 384 -52zM480 -52V-12C480 -5.373 474.627 0 468 0H428C421.373 0 416 -5.373 416 -12V-52C416 -58.627 421.373 -64 428 -64H468C474.627 -64 480 -58.627 480 -52z" />
-			<glyph glyph-name="tv" unicode="" horiz-adv-x="640" d=" M592 448H48C21.5 448 0 426.5 0 400V80C0 53.5 21.5 32 48 32H293.1V0H133.1C115.4 0 101.1 -14.3 101.1 -32S115.4 -64 133.1 -64H517.1C534.8000000000001 -64 549.1 -49.7 549.1 -32S534.8000000000001 0 517.1 0H357.1V32H592C618.5 32 640 53.5 640 80V400C640 426.5 618.5 448 592 448zM576 96H64V384H576V96z" />
-			<glyph glyph-name="umbrella" unicode="" horiz-adv-x="576" d=" M557.011 180.369C505.579 225.586 449.439 224.067 398.444 149.638C393.146 141.7770000000001 383.538 142.473 378.708 149.638C376.225 153.2620000000001 346.49 210.446 288 210.446C242.234 210.446 217.458 179.0680000000001 197.291 149.638C192.462 142.473 182.855 141.7770000000001 177.557 149.638C126.653 223.923 70.944 226.0440000000001 18.99 180.369C8.78 172.105 -1.922 181.478 0.294 189.85C32.146 313.427 158.516 383.3880000000001 288.001 383.3880000000001C416.794 383.3880000000001 544.547 313.427 575.707 189.85C577.913 181.528 567.281 172.057 557.011 180.369zM256 186.999V32C256 14.355 241.645 0 224 0S192 14.355 192 32C192 49.673 177.673 64 160 64S128 49.673 128 32C128 -20.935 171.065 -64 224 -64S320 -20.935 320 32V186.712C298.164 197.518 274.575 196.449 256 186.999zM320 398.0060000000001V416C320 433.673 305.673 448 288 448S256 433.673 256 416V398.0130000000001A372.105 372.105 0 0 0 320 398.0060000000001z" />
-			<glyph glyph-name="underline" unicode="" horiz-adv-x="448" d=" M224.264 59.76C132.595 59.76 67.661 110.925 67.661 211.152V384H39.37C30.533 384 23.37 391.163 23.37 400V432C23.37 440.837 30.533 448 39.37 448H176.76C185.597 448 192.76 440.837 192.76 432V400C192.76 391.163 185.597 384 176.76 384H147.947V211.152C147.947 157.453 176.261 131.708 224.264 131.708C271.23 131.708 300.06 157.142 300.06 211.673V384H271.769C262.932 384 255.769 391.163 255.769 400V432C255.769 440.837 262.932 448 271.769 448H408.637C417.474 448 424.637 440.837 424.637 432V400C424.637 391.163 417.474 384 408.637 384H380.346V211.152C380.346 111.747 315.4650000000001 59.76 224.264 59.76zM16 0H432C440.837 0 448 -7.163 448 -16V-48C448 -56.837 440.837 -64 432 -64H16C7.163 -64 0 -56.837 0 -48V-16C0 -7.163 7.163 0 16 0z" />
-			<glyph glyph-name="undo-alt" unicode="" horiz-adv-x="512" d=" M255.545 440C189.276 439.881 129.107 413.767 84.685 371.315L48.971 407.029C33.851 422.149 8 411.4410000000001 8 390.059V256C8 242.745 18.745 232 32 232H166.059C187.441 232 198.149 257.851 183.03 272.971L141.28 314.721C172.144 343.62 212.081 359.628 254.51 359.9940000000001C346.908 360.7920000000001 424.793 286.017 423.9940000000001 190.552C423.236 99.991 349.816 24 256 24C214.873 24 176.003 38.678 145.37 65.556C140.627 69.717 133.464 69.464 129.002 65.003L89.34 25.341C84.468 20.469 84.709 12.526 89.822 7.908C133.798 -31.813 192.074 -56 256 -56C392.966 -56 503.999 55.033 504 191.998C504.001 328.807 392.354 440.245 255.545 440z" />
-			<glyph glyph-name="undo" unicode="" horiz-adv-x="512" d=" M212.333 223.667H12C5.373 223.667 0 229.04 0 235.667V436C0 442.627 5.373 448 12 448H60C66.627 448 72 442.627 72 436V357.8880000000001C117.773 408.721 184.26 440.53 258.175 439.993C395.081 438.999 504.623 328.37 504.332 191.461C504.041 54.742 393.12 -56 256.3330000000001 -56C192.244 -56 133.8370000000001 -31.687 89.823 8.215C84.724 12.837 84.489 20.769 89.356 25.635L123.323 59.602C127.7970000000001 64.076 134.9850000000001 64.319 139.7240000000001 60.127C170.76 32.664 211.58 16 256.3330000000001 16C353.601 16 432.3330000000001 94.716 432.3330000000001 192C432.3330000000001 289.267 353.617 368 256.3330000000001 368C197.837 368 146.053 339.524 114.059 295.6670000000001H212.333C218.96 295.6670000000001 224.333 290.294 224.333 283.6670000000001V235.667C224.333 229.04 218.96 223.667 212.333 223.667z" />
-			<glyph glyph-name="universal-access" unicode="" horiz-adv-x="512" d=" M256 400C370.953 400 464 306.971 464 192C464 77.047 370.971 -16 256 -16C141.047 -16 48 77.029 48 192C48 306.953 141.029 400 256 400M256 440C119.033 440 8 328.967 8 192S119.033 -56 256 -56S504 55.033 504 192S392.967 440 256 440zM256 384C149.961 384 64 298.039 64 192S149.961 0 256 0S448 85.961 448 192S362.039 384 256 384zM256 340C275.882 340 292 323.882 292 304S275.882 268 256 268S220 284.118 220 304S236.118 340 256 340zM373.741 241.977C345.029 235.198 318.23 229.229 291.601 226.17C292.452 125.1470000000001 303.907 103.118 316.638 70.549C320.255 61.289 315.681 50.851 306.421 47.234C297.16 43.617 286.722 48.191 283.105 57.451C274.4000000000001 79.759 266.019 98.087 260.844 136H251.158C245.991 98.149 237.624 79.792 228.896 57.451C225.281 48.196 214.846 43.615 205.581 47.234C196.321 50.8510000000001 191.747 61.29 195.364 70.549C208.077 103.09 219.549 125.09 220.401 226.1700000000001C193.772 229.2280000000001 166.973 235.1970000000001 138.26 241.9770000000001C129.66 244.0080000000001 124.334 252.6250000000001 126.365 261.226S137.012 275.1520000000001 145.614 273.1210000000001C242.3 250.2920000000001 269.897 250.338 366.389 273.1210000000001C374.988 275.1510000000001 383.6070000000001 269.827 385.6380000000001 261.226C387.6670000000001 252.6250000000001 382.341 244.0070000000001 373.7410000000001 241.9770000000001z" />
-			<glyph glyph-name="university" unicode="" horiz-adv-x="512" d=" M480 320V304A8 8 0 0 0 472 296H448V284C448 277.373 442.627 272 436 272H44C37.373 272 32 277.373 32 284V296H8A8 8 0 0 0 0 304V320A8 8 0 0 0 4.941 327.392L236.941 415.392A7.996000000000001 7.996000000000001 0 0 0 243.059 415.392L475.059 327.392A8 8 0 0 0 480 320zM456 16H24C10.745 16 0 5.255 0 -8V-24A8 8 0 0 1 8 -32H472A8 8 0 0 1 480 -24V-8C480 5.255 469.255 16 456 16zM64 256V64H44C37.373 64 32 58.627 32 52V32H448V52C448 58.627 442.627 64 436 64H416V256H352V64H320V256H256V64H224V256H160V64H128V256H64z" />
-			<glyph glyph-name="unlink" unicode="" horiz-adv-x="512" d=" M304.0830000000001 42.093C308.769 37.407 308.769 29.809 304.0830000000001 25.122L259.4090000000001 -19.552C200.1460000000001 -78.814 103.716 -78.818 44.448 -19.552C-14.816 39.713 -14.816 136.144 44.448 195.4080000000001L89.123 240.0830000000001C93.809 244.7690000000001 101.407 244.7690000000001 106.094 240.0830000000001L145.692 200.485C150.3780000000001 195.799 150.3780000000001 188.201 145.692 183.514L101.017 138.84C72.945 110.7670000000001 72.945 65.09 101.017 37.0170000000001C129.089 8.9450000000001 174.7670000000001 8.9440000000001 202.841 37.0170000000001L247.5150000000001 81.691C252.2010000000001 86.377 259.7990000000001 86.377 264.4860000000001 81.691L304.0830000000001 42.093zM247.5150000000001 302.3090000000001C252.2010000000001 297.6230000000001 259.7990000000001 297.6230000000001 264.4860000000001 302.3090000000001L309.1600000000001 346.9830000000001C337.2320000000001 375.0580000000001 382.9100000000001 375.0560000000001 410.9840000000001 346.9830000000001C439.0560000000001 318.9100000000001 439.0560000000001 273.2330000000001 410.9840000000001 245.1600000000001L366.3090000000001 200.486C361.6230000000001 195.8 361.6230000000001 188.202 366.3090000000001 183.5150000000001L405.9070000000001 143.917C410.593 139.2310000000001 418.1910000000001 139.2310000000001 422.8780000000001 143.917L467.5530000000001 188.5920000000001C526.8180000000001 247.8570000000001 526.8180000000001 344.2870000000001 467.5530000000001 403.552C408.2870000000001 462.816 311.8580000000001 462.816 252.5920000000001 403.552L207.918 358.8780000000001C203.232 354.192 203.232 346.5940000000001 207.918 341.9070000000001L247.5150000000001 302.3090000000001zM482.3430000000001 -56.9709999999999L504.9700000000001 -34.3439999999999C514.3430000000001 -24.9709999999999 514.3430000000001 -9.7749999999999 504.9700000000001 -0.4029999999999L63.598 440.971C54.225 450.344 39.029 450.344 29.657 440.971L7.029 418.343C-2.344 408.9700000000001 -2.344 393.774 7.029 384.402L448.402 -56.971C457.775 -66.343 472.971 -66.343 482.343 -56.971z" />
-			<glyph glyph-name="unlock-alt" unicode="" horiz-adv-x="448" d=" M400 192H152V295.1C152 334.7 183.7 367.6 223.3 368C263.3 368.4 296 335.9 296 296V280C296 266.7 306.7 256 320 256H352C365.3 256 376 266.7 376 280V296C376 380 307.5 448.3 223.5 448C139.5 447.7 72 378.5 72 294.5V192H48C21.5 192 0 170.5 0 144V-16C0 -42.5 21.5 -64 48 -64H400C426.5 -64 448 -42.5 448 -16V144C448 170.5 426.5 192 400 192zM264 40C264 17.9 246.1 0 224 0S184 17.9 184 40V88C184 110.1 201.9 128 224 128S264 110.1 264 88V40z" />
-			<glyph glyph-name="unlock" unicode="" horiz-adv-x="448" d=" M400 192H152V295.1C152 334.7 183.7 367.6 223.3 368C263.3 368.4 296 335.9 296 296V280C296 266.7 306.7 256 320 256H352C365.3 256 376 266.7 376 280V296C376 380 307.5 448.3 223.5 448C139.5 447.7 72 378.5 72 294.5V192H48C21.5 192 0 170.5 0 144V-16C0 -42.5 21.5 -64 48 -64H400C426.5 -64 448 -42.5 448 -16V144C448 170.5 426.5 192 400 192z" />
-			<glyph glyph-name="upload" unicode="ï‚“" horiz-adv-x="512" d=" M296 64H216C202.7 64 192 74.7 192 88V256H104.3C86.5 256 77.6 277.5 90.2 290.1L242.3 442.3C249.8 449.8 262.1 449.8 269.6 442.3L421.8 290.1C434.4000000000001 277.5 425.5 256 407.7 256H320V88C320 74.7 309.3 64 296 64zM512 72V-40C512 -53.3 501.3 -64 488 -64H24C10.7 -64 0 -53.3 0 -40V72C0 85.3 10.7 96 24 96H160V88C160 57.1 185.1 32 216 32H296C326.9 32 352 57.1 352 88V96H488C501.3 96 512 85.3 512 72zM388 -16C388 -5 379 4 368 4S348 -5 348 -16S357 -36 368 -36S388 -27 388 -16zM452 -16C452 -5 443 4 432 4S412 -5 412 -16S421 -36 432 -36S452 -27 452 -16z" />
-			<glyph glyph-name="user-circle" unicode="" horiz-adv-x="512" d=" M256 440C119.033 440 8 328.967 8 192S119.033 -56 256 -56S504 55.033 504 192S392.967 440 256 440zM144 240C144 301.856 194.144 352 256 352S368 301.856 368 240S317.856 128 256 128S144 178.144 144 240zM412.408 67.337C332.062 -33.074 180.033 -33.193 99.591 67.337C117.003 85.027 141.218 96 168 96H186.204C230.234 74.664 281.699 74.632 325.7960000000001 96H344C370.782 96 394.997 85.027 412.408 67.337z" />
-			<glyph glyph-name="user-md" unicode="" horiz-adv-x="448" d=" M96 320C96 390.692 153.308 448 224 448S352 390.692 352 320S294.692 192 224 192S96 249.308 96 320zM352 160V126.39C388.471 118.957 416 86.634 416 48V-1.441C416 -12.881 407.925 -22.731 396.707 -24.975L374.905 -29.336C368.406 -30.636 362.084 -26.421 360.785 -19.922L359.216 -12.077C357.916 -5.578 362.131 0.744 368.63 2.043L384 5.117V47.1950000000001C384 73.4780000000001 363.207 95.4920000000001 336.929 95.9920000000001C310.039 96.502 288 74.776 288 48V5.117L303.371 2.043C309.87 0.743 314.084 -5.579 312.785 -12.077L311.216 -19.922C309.916 -26.421 303.594 -30.636 297.096 -29.336L275.294 -24.975C264.075 -22.732 256 -12.882 256 -1.441V48C256 86.634 283.529 118.957 320 126.39V160H297.376C251.707 139.055 198.045 138.251 150.624 160H128V93.975C156.495 86.614 177.359 60.069 175.931 28.9980000000001C174.425 -3.78 147.834 -30.3939999999999 115.057 -31.9279999999999C78.383 -33.644 48 -4.303 48 32C48 61.767 68.427 86.852 96 93.975V160C42.981 160 0 117.019 0 64V-40C0 -53.255 10.745 -64 24 -64H424C437.255 -64 448 -53.255 448 -40V64C448 117.019 405.019 160 352 160zM80 32C80 14.355 94.355 0 112 0S144 14.355 144 32S129.645 64 112 64S80 49.645 80 32z" />
-			<glyph glyph-name="user-plus" unicode="" horiz-adv-x="640" d=" M616 116C616 122.627 610.627 128 604 128H544V188C544 194.627 538.627 200 532 200H492C485.373 200 480 194.627 480 188V128H420C413.373 128 408 122.627 408 116V76C408 69.373 413.373 64 420 64H480V4C480 -2.627 485.373 -8 492 -8H532C538.627 -8 544 -2.627 544 4V64H604C610.627 64 616 69.373 616 76V116zM448 4V-11C448 -22.598 438.598 -32 427 -32H21C9.402 -32 0 -22.598 0 -11V10C0 64.124 43.876 108 98 108H122.986C185.09 70.642 262.883 70.626 325.013 108H350A98.09 98.09 0 0 0 376 104.507V76C376 51.738 395.738 32 420 32H445.519C448.287 19.936 448 11.341 448 4zM84 276C84 353.32 146.68 416 224 416S364 353.32 364 276S301.32 136 224 136S84 198.68 84 276z" />
-			<glyph glyph-name="user-secret" unicode="" horiz-adv-x="448" d=" M388.829 152.676L409.801 207.728C412.793 215.582 406.992 224 398.587 224H340.39C347.84 240.236 352 258.297 352 277.333C352 280.964 351.84 284.557 351.544 288.111C391.0830000000001 295.926 416 307.3160000000001 416 320C416 333.2630000000001 388.769 345.112 346.053 352.937C336.868 385.742 318.875 418.734 305.339 435.787C295.887 447.695 279.466 451.421 265.868 444.621L238.311 430.842A31.997 31.997 0 0 0 209.689 430.842L182.132 444.622C168.5330000000001 451.421 152.112 447.696 142.661 435.788C129.125 418.735 111.132 385.743 101.947 352.938C59.231 345.112 32 333.2630000000001 32 320C32 307.3160000000001 56.917 295.926 96.456 288.111A129.362 129.362 0 0 1 96 277.333C96 258.296 100.159 240.235 107.608 224H50.198C41.583 224 35.775 215.191 39.169 207.273L62.075 153.826C25.799 140.118 0 105.075 0 64V-40C0 -53.255 10.745 -64 24 -64H424C437.255 -64 448 -53.255 448 -40V64C448 103.97 423.57 138.231 388.829 152.676zM184 -40L136 152L184 128L208 88L184 -40zM264 -40L240 88L264 128L312 152L264 -40zM318.778 263.746C318.7700000000001 263.703 314.4790000000001 260.515 313.653 257.975C309.7920000000001 246.111 306.627 233.403 297.139 224.616C287.068 215.289 249.182 202.211 233.143 249.645C230.306 258.04 217.696 258.043 214.858 249.645C197.895 199.477 158.839 217.228 150.862 224.616C141.374 233.402 138.209 246.111 134.348 257.975C133.522 260.515 129.23 263.703 129.223 263.746C128.669 266.671 128.242 269.63 128.003 272.596C127.694 276.444 138.081 276.254 139.081 276.343C165.384 278.669 191.384 276.922 217.104 270.846C219.667 270.24 228.657 270.317 230.897 270.846C256.617 276.9219999999999 282.617 278.67 308.92 276.343C309.922 276.254 320.307 276.445 319.998 272.596C319.759 269.63 319.332 266.671 318.7779999999999 263.746z" />
-			<glyph glyph-name="user-times" unicode="" horiz-adv-x="640" d=" M599.681 36.603C604.3670000000001 41.289 604.3670000000001 48.887 599.681 53.574L557.255 96L599.681 138.426C604.3670000000001 143.112 604.3670000000001 150.71 599.681 155.397L571.397 183.681C566.711 188.367 559.113 188.367 554.426 183.681L512 141.255L469.574 183.681C464.888 188.367 457.29 188.367 452.603 183.681L424.319 155.397C419.6330000000001 150.711 419.6330000000001 143.113 424.319 138.426L466.745 96L424.319 53.574C419.6330000000001 48.888 419.6330000000001 41.29 424.319 36.603L452.603 8.319C457.289 3.633 464.887 3.633 469.574 8.319L512 50.745L554.426 8.319C559.1120000000001 3.633 566.71 3.633 571.397 8.319L599.681 36.603zM84 276C84 353.32 146.68 416 224 416S364 353.32 364 276S301.32 136 224 136S84 198.68 84 276zM443.737 -23.645C439.904 -28.712 433.843 -32 427 -32H21C9.402 -32 0 -22.598 0 -11V10C0 64.124 43.876 108 98 108H122.986C185.09 70.642 262.883 70.626 325.013 108H350C373.366 108 394.818 99.817 411.658 86.168L401.6910000000001 76.201C384.5350000000001 59.045 384.5350000000001 31.131 401.6910000000001 13.976L429.975 -14.308A43.946000000000005 43.946000000000005 0 0 1 443.737 -23.645z" />
-			<glyph glyph-name="user" unicode="" horiz-adv-x="512" d=" M96 288C96 376.366 167.635 448 256 448S416 376.366 416 288S344.365 128 256 128S96 199.634 96 288zM400 96H371.444C300.438 53.287 211.532 53.305 140.556 96H112C50.144 96 0 45.856 0 -16V-40C0 -53.255 10.745 -64 24 -64H488C501.255 -64 512 -53.255 512 -40V-16C512 45.856 461.856 96 400 96z" />
-			<glyph glyph-name="users" unicode="" horiz-adv-x="640" d=" M220 284C220 339.229 264.772 384 320 384S420 339.229 420 284S375.228 184 320 184S220 228.771 220 284zM48 240C48 284.183 83.817 320 128 320S208 284.183 208 240S172.183 160 128 160S48 195.817 48 240zM432 240C432 284.183 467.817 320 512 320S592 284.183 592 240S556.183 160 512 160S432 195.817 432 240zM410 164C448.66 164 480 132.66 480 94V24C480 10.745 469.255 0 456 0H184C170.745 0 160 10.745 160 24V94C160 132.66 191.34 164 230 164H247.848C292.212 137.313 347.778 137.307 392.153 164H410M128 94C128 105.975 130.081 117.472 133.889 128.156C111.959 127.004 89.767 132.277 70.278 144H56C25.072 144 0 118.928 0 88V56C0 42.745 10.745 32 24 32H128V94zM584 144H569.722C550.227 132.273 528.036 127.004 506.111 128.156A101.542 101.542 0 0 0 512 94V32H616C629.255 32 640 42.745 640 56V88C640 118.928 614.928 144 584 144z" />
-			<glyph glyph-name="utensil-spoon" unicode="ï‹¥" horiz-adv-x="512" d=" M480.1 416.1C425.1 471.2 315.2000000000001 450.6 252.3 387.6C203 338.3 197.2 277.6 223.5 227.2L9 34.8C-2.6 24.3 -3.1 6.3 8 -4.7L59.3 -56C70.3 -67 88.4 -66.5 98.8 -54.9L291.2 159.5C341.6 133.2 402.3 139 451.6 188.3C514.6 251.2 535.2 361.1 480.1 416.1z" />
-			<glyph glyph-name="utensils" unicode="" horiz-adv-x="416" d=" M207.9 432.8C208.7 428.1 224 338.3 224 304C224 251.7 196.2 214.4 155.1 199.4L168 -38.7C168.7 -52.4 157.8 -64 144 -64H80C66.3 -64 55.3 -52.5 56 -38.7L68.9 199.4C27.7 214.4 0 251.8 0 304C0 338.4 15.3 428.1 16.1 432.8C19.3 453.1 61.4 453.4 64 431.7V290.5C65.3 287.1 79.1 287.3 80 290.5C81.4 315.8 87.9 429.7 88 432.3C91.3 453.1 132.7 453.1 135.9 432.3C136.1 429.6 142.5 315.8 143.9 290.5C144.8 287.3 158.7 287.1 159.9 290.5V431.7C162.5 453.3 204.7 453.1 207.9 432.8zM327.1 147.1L312.1 -38C310.9000000000001 -52 322 -64 336 -64H392C405.3 -64 416 -53.3 416 -40V424C416 437.2 405.3 448 392 448C309.5 448 170.6 269.5 327.1 147.1z" />
-			<glyph glyph-name="venus-double" unicode="" horiz-adv-x="512" d=" M288 272C288 351.5 223.5 416 144 416S0 351.5 0 272C0 203.5 47.9 146.1 112 131.6V80H76C69.4 80 64 74.6 64 68V28C64 21.4 69.4 16 76 16H112V-20C112 -26.6 117.4 -32 124 -32H164C170.6 -32 176 -26.6 176 -20V16H212C218.6 16 224 21.4 224 28V68C224 74.6 218.6 80 212 80H176V131.6C240.1 146.1 288 203.5 288 272zM64 272C64 316.1 99.9 352 144 352S224 316.1 224 272S188.1 192 144 192S64 227.9 64 272zM400 131.6V80H436C442.6 80 448 74.6 448 68V28C448 21.4 442.6 16 436 16H400V-20C400 -26.6 394.6 -32 388 -32H348C341.4 -32 336 -26.6 336 -20V16H300C293.4 16 288 21.4 288 28V68C288 74.6 293.4 80 300 80H336V131.6C314.8 136.4 295.4 145.9 278.8 158.9C292.8 175.6 303.8 194.9 310.9000000000001 216C325.4000000000001 201.2 345.6 192 368.0000000000001 192C412.1000000000001 192 448.0000000000001 227.9000000000001 448.0000000000001 272S412.1000000000001 352 368.0000000000001 352C345.7000000000001 352 325.4000000000001 342.8 310.9000000000001 328C303.8 349.1 292.9000000000001 368.4000000000001 278.8 385.1C303.4 404.4 334.3 416 368 416C447.5 416 512 351.5 512 272C512 203.5 464.1 146.1 400 131.6z" />
-			<glyph glyph-name="venus-mars" unicode="" horiz-adv-x="576" d=" M564 448H485C474.3 448 469 435.1 476.5 427.5L493.4 410.6L444.7 361.9C422.5 375.9 396.2 384 368 384C334.3 384 303.4 372.4 278.8 353.1C292.8 336.4 303.8 317.1 310.9000000000001 296C325.4000000000001 310.8 345.6 320 368.0000000000001 320C412.1000000000001 320 448.0000000000001 284.1 448.0000000000001 240S412.1000000000001 160 368.0000000000001 160C345.7000000000001 160 325.4000000000001 169.2 310.9000000000001 184C303.8 162.9 292.9000000000001 143.6 278.8 126.9C303.3 107.5 334.3 96 368 96C447.5 96 512 160.5 512 240C512 268.2 503.9 294.5 489.9 316.7L538.6 365.4L555.5 348.5C557.9 346.1 560.9 345 563.9 345C570.1 345 576 349.8 576 357V436C576 442.6 570.6 448 564 448zM144 384C64.5 384 0 319.5 0 240C0 171.5 47.9 114.1 112 99.6V48H76C69.4 48 64 42.6 64 36V-4C64 -10.6 69.4 -16 76 -16H112V-52C112 -58.6 117.4 -64 124 -64H164C170.6 -64 176 -58.6 176 -52V-16H212C218.6 -16 224 -10.6 224 -4V36C224 42.6 218.6 48 212 48H176V99.6C240.1 114.2000000000001 288 171.5 288 240.0000000000001C288 319.5 223.5 384 144 384zM144 160C99.9 160 64 195.9 64 240S99.9 320 144 320S224 284.1 224 240S188.1 160 144 160z" />
-			<glyph glyph-name="venus" unicode="" horiz-adv-x="288" d=" M288 272C288 351.5 223.5 416 144 416S0 351.5 0 272C0 203.5 47.9 146.1 112 131.6V80H76C69.4 80 64 74.6 64 68V28C64 21.4 69.4 16 76 16H112V-20C112 -26.6 117.4 -32 124 -32H164C170.6 -32 176 -26.6 176 -20V16H212C218.6 16 224 21.4 224 28V68C224 74.6 218.6 80 212 80H176V131.6C240.1 146.1 288 203.5 288 272zM64 272C64 316.1 99.9 352 144 352S224 316.1 224 272S188.1 192 144 192S64 227.9 64 272z" />
-			<glyph glyph-name="video" unicode="" horiz-adv-x="576" d=" M528 384H515.882A48 48 0 0 1 481.9409999999999 369.9410000000001L384 272V336C384 362.51 362.51 384 336 384H48C21.49 384 0 362.51 0 336V48C0 21.49 21.49 0 48 0H336C362.51 0 384 21.49 384 48V112L481.941 14.059A48 48 0 0 1 515.882 0H528C554.51 0 576 21.49 576 48V336C576 362.51 554.51 384 528 384z" />
-			<glyph glyph-name="volume-down" unicode="" horiz-adv-x="384" d=" M256 359.983V24.019C256 2.581 230.057 -7.979 215.029 7.048L126.059 96H24C10.745 96 0 106.745 0 120V264C0 277.255 10.745 288 24 288H126.059L215.03 376.954C230.04 391.964 256 381.444 256 359.983zM384 192C384 225.717 366.814 256.35 338.028 273.944C322.949 283.158 303.2530000000001 278.4070000000001 294.036 263.3280000000001S289.572 228.5530000000001 304.651 219.3360000000001C314.263 213.462 320 203.243 320 192A32.056 32.056 0 0 0 306.198 165.668C291.674 155.599 288.062 135.662 298.131 121.138C308.201 106.6130000000001 328.139 103.002 342.661 113.071C368.546 131.017 384 160.522 384 192z" />
-			<glyph glyph-name="volume-off" unicode="" horiz-adv-x="256" d=" M256 359.983V24.019C256 2.581 230.057 -7.979 215.029 7.048L126.059 96H24C10.745 96 0 106.745 0 120V264C0 277.255 10.745 288 24 288H126.059L215.03 376.954C230.04 391.964 256 381.444 256 359.983z" />
-			<glyph glyph-name="volume-up" unicode="" horiz-adv-x="576" d=" M256 359.983V24.019C256 2.581 230.057 -7.979 215.029 7.048L126.059 96H24C10.745 96 0 106.745 0 120V264C0 277.255 10.745 288 24 288H126.059L215.03 376.954C230.04 391.964 256 381.444 256 359.983zM438.0560000000001 437.8590000000001C422.9820000000001 447.08 403.283 442.332 394.061 427.255C384.84 412.178 389.588 392.481 404.665 383.26C468.967 343.937 512 273.017 512 192C512 118.569 475.923 49.708 415.493 7.794C400.971 -2.278 397.364 -22.216 407.436 -36.738C417.512 -51.266 437.452 -54.864 451.967 -44.795C529.633 9.073 576 97.594 576 192C576 295.2440000000001 521.421 386.877 438.0560000000001 437.8590000000001zM480 192C480 260.5470000000001 443.85 321.777 388.043 355.901C372.967 365.121 353.269 360.372 344.049 345.294C334.829 330.216 339.578 310.52 354.656 301.3C393.067 277.812 416 236.952 416 192C416 150.036 395.38 110.681 360.842 86.724C346.321 76.651 342.714 56.714 352.786 42.192C359.002 33.232 368.971 28.427 379.108 28.427A31.861999999999995 31.861999999999995 0 0 1 397.318 34.136C449.091 70.047 480 129.062 480 192zM384 192C384 225.717 366.814 256.35 338.028 273.944C322.949 283.158 303.2530000000001 278.4070000000001 294.036 263.3280000000001S289.572 228.5530000000001 304.651 219.3360000000001C314.263 213.462 320 203.243 320 192A32.056 32.056 0 0 0 306.198 165.668C291.674 155.599 288.062 135.662 298.131 121.138C308.201 106.6130000000001 328.139 103.002 342.661 113.071C368.546 131.017 384 160.522 384 192z" />
-			<glyph glyph-name="wheelchair" unicode="" horiz-adv-x="512" d=" M496.101 62.331L510.328 33.668C514.257 25.753 511.025 16.152 503.11 12.223L437.645 -20.663C421.596 -28.63 402.089 -21.857 394.456 -5.608L331.679 128H192C176.075 128 162.574 139.71 160.321 155.475C126.433 392.692 128.38 377.956 128 384C128 420.358 158.318 449.635 195.052 447.929C228.3230000000001 446.384 255.1 419.024 255.9770000000001 385.728C256.8450000000001 352.795 232.8250000000001 325.305 201.369 320.689L206.039 287.999H336C344.837 287.999 352 280.836 352 271.999V239.999C352 231.162 344.837 223.999 336 223.999H215.182L219.754 191.999H352A32 32 0 0 0 380.962 173.607L438.477 51.2L474.655 69.549C482.57 73.478 492.172 70.246 496.101 62.331zM311.358 96H286.852C279.064 41.796 232.324 0 176 0C114.243 0 64 50.243 64 112C64 153.505 86.694 189.809 120.324 209.156C116.612 235.121 113.48 257.016 110.836 275.4890000000001C45.956 249.536 0 186.037 0 112C0 14.953 78.953 -64 176 -64C247.87 -64 309.8060000000001 -20.692 337.11 41.192L311.358 96z" />
-			<glyph glyph-name="wifi" unicode="" horiz-adv-x="640" d=" M384 32C384 -3.346 355.346 -32 320 -32S256 -3.346 256 32C256 67.346 284.654 96 320 96S384 67.346 384 32zM520.659 156.443C527.124 162.908 526.904 173.508 520.095 179.61C406.302 281.5950000000001 233.569 281.4790000000001 119.905 179.61C113.096 173.5080000000001 112.876 162.908 119.341 156.443L153.347 122.437C159.274 116.51 168.811 116.117 175.1160000000001 121.641C257.9960000000001 194.25 382.1900000000001 194.088 464.884 121.641C471.189 116.117 480.726 116.509 486.653 122.437L520.659 156.443zM632.769 270.161C639.154 276.546 639.023 286.977 632.419 293.134C456.651 456.994 183.285 456.934 7.582 293.134C0.978 286.977 0.847 276.545 7.232 270.161L41.198 236.195C47.293 230.1 57.089 229.964 63.422 235.812C208.185 369.48 431.778 369.514 576.578 235.812C582.911 229.964 592.707 230.1 598.802 236.195L632.769 270.161z" />
-			<glyph glyph-name="window-close" unicode="" horiz-adv-x="512" d=" M464 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H464C490.5 -32 512 -10.5 512 16V368C512 394.5 490.5 416 464 416zM380.4 125.5C385.2 120.7 385.2 112.9 380.4 108.1L339.9 67.6C335.1 62.8 327.3 62.8 322.5 67.6L256 134.7L189.5 67.6C184.7 62.8 176.9 62.8 172.1 67.6L131.6 108.1C126.8 112.9 126.8 120.7000000000001 131.6 125.5L198.7 192L131.6 258.5C126.8 263.3 126.8 271.1 131.6 275.9L172.1 316.4C176.9 321.2 184.7 321.2 189.5 316.4L256 249.3L322.5 316.4C327.3 321.2 335.1 321.2 339.9 316.4L380.4 275.9C385.2 271.1 385.2 263.3 380.4 258.5L313.3 192L380.4 125.5z" />
-			<glyph glyph-name="window-maximize" unicode="" horiz-adv-x="512" d=" M464 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H464C490.5 -32 512 -10.5 512 16V368C512 394.5 490.5 416 464 416zM448 256H64V340C64 346.6 69.4 352 76 352H436C442.6 352 448 346.6 448 340V256z" />
-			<glyph glyph-name="window-minimize" unicode="ï‹‘" horiz-adv-x="512" d=" M464 96H48C21.5 96 0 74.5 0 48V16C0 -10.5 21.5 -32 48 -32H464C490.5 -32 512 -10.5 512 16V48C512 74.5 490.5 96 464 96z" />
-			<glyph glyph-name="window-restore" unicode="ï‹’" horiz-adv-x="512" d=" M512 400V112C512 85.5 490.5 64 464 64H416V272C416 316.1 380.1 352 336 352H128V400C128 426.5 149.5 448 176 448H464C490.5 448 512 426.5 512 400zM384 272V-16C384 -42.5 362.5 -64 336 -64H48C21.5 -64 0 -42.5 0 -16V272C0 298.5 21.5 320 48 320H336C362.5 320 384 298.5 384 272zM316 244C316 250.6 310.6 256 304 256H76C69.4 256 64 250.6 64 244V192H316V244z" />
-			<glyph glyph-name="won-sign" unicode="ï…™" horiz-adv-x="576" d=" M564 256C570.627 256 576 261.373 576 268V308C576 314.627 570.627 320 564 320H515.972L534.544 400.61C536.276 408.128 530.566 415.304 522.851 415.304H476.744A11.998 11.998 0 0 1 465.008 405.804L450.73 320H340.839L321.114 405.987A12 12 0 0 1 309.418 415.304H265.43A12 12 0 0 1 253.743 406.027L233.696 320H124.975L107.5 405.701A12 12 0 0 1 95.742 415.303H53.628C45.942 415.303 40.238 408.179 41.919 400.679L60 320H12C5.373 320 0 314.627 0 308V268C0 261.373 5.373 256 12 256H74.342L81.513 224H12C5.373 224 0 218.627 0 212V172C0 165.373 5.373 160 12 160H95.856L136.783 -22.624A12 12 0 0 1 148.492 -32H205.259C210.842 -32 215.687 -28.15 216.948 -22.712L259.335 160H314.421L356.807 -22.712A12 12 0 0 1 368.496 -32H425.322A12 12 0 0 1 437.016 -22.694L479.108 160H564C570.627 160 576 165.373 576 172V212C576 218.627 570.627 224 564 224H493.854L501.227 256H564zM138.024 256H218.781L211.324 224H144.548L138.024 256zM183.82 105.971C177.626 80.14 177.062 58.721 176.499 58.721H175.373S173.684 80.771 168.615 105.971L157.599 160H196.411L183.82 105.971zM274.182 224L276.178 232.602C278.034 240.564 279.635 248.57 280.981 256H292.775C294.122 248.57 295.722 240.564 297.578 232.602L299.574 224H274.182zM405.141 105.971C400.0730000000001 80.771 398.3830000000001 58.721 398.3830000000001 58.721H397.2570000000001C396.6940000000001 58.721 396.1310000000001 80.141 389.9360000000001 105.971L377.542 160H416.649L405.141 105.971zM430.281 224H362.861L355.521 256H437.098L430.281 224z" />
-			<glyph glyph-name="wrench" unicode="ï‚­" horiz-adv-x="512" d=" M481.156 248C490.456 248 496.276 237.845 491.481 229.876C466.295 188.008 420.419 160 368 160C288.778 160 224.499 223.974 224.003 303.079C223.505 382.531 288.548 448.001 368.002 448C420.3640000000001 447.999 466.198 420.051 491.402 378.257C496.24 370.234 490.523 360 481.154 360H376L336 304L376 248H481.156zM309.507 154.997L109.255 -45.255C84.261 -70.248 43.74 -70.249 18.745 -45.255C-6.248 -20.261 -6.248 20.261 18.745 45.255L218.991 245.5C235.151 204.303 268.294 171.165 309.507 154.997zM104 16C104 29.255 93.255 40 80 40S56 29.255 56 16S66.745 -8 80 -8S104 2.745 104 16z" />
-			<glyph glyph-name="yen-sign" unicode="ï…—" horiz-adv-x="384" d=" M351.2080000000001 416H285.9310000000001A12 12 0 0 1 275.153 409.276L219.763 296.113C205.25 261.409 192.63 224.181 192.63 224.181H191.368S178.748 261.409 164.235 296.113L108.845 409.276A11.997 11.997 0 0 1 98.068 416H32.792C23.735 416 17.942 406.35 22.202 398.357L102.322 248H44C37.373 248 32 242.627 32 236V204C32 197.373 37.373 192 44 192H132.162L152 154.772V128H44C37.373 128 32 122.627 32 116V84C32 77.373 37.373 72 44 72H152V-20C152 -26.627 157.373 -32 164 -32H220C226.627 -32 232 -26.627 232 -20V72H340C346.627 72 352 77.373 352 84V116C352 122.627 346.627 128 340 128H232V154.772L251.838 192H340C346.627 192 352 197.373 352 204V236C352 242.627 346.627 248 340 248H281.678L361.798 398.357C366.058 406.35 360.266 416 351.2080000000001 416z" />
-			<glyph glyph-name="500px" unicode="" horiz-adv-x="448" d=" M103.3 103.7C96.8 117.9 96.4 122 110.7 126.8C136.3 134.8 118.7 117.6 153.9 77.6H154.2V171.5C155.4 221.7 198.2 263.7 251.9000000000001 263.7C305.8 263.7 349.6 220.2 349.6 166.9C349.6 103.5 288.8 53.7 221.1 73.6C210.6 77.8 219 105.3 229.6 102.2C282.6 102.2 319 112.3 319 166.6C319 227.6 241.9 256.2000000000001 202.1 211.2C178.6 184.8 184.5 169.1 184.5 53.6C235.2 22.6 302.8 31.6 344.9 73.7000000000001C369.7 98.5000000000001 383.4 131.7000000000001 383.4 166.7000000000001C383.4 201.9 369.6 234.9000000000001 344.6 260.0000000000001C319.8 284.8000000000001 286.8 298.5000000000001 251.3 298.5000000000001S182.5 284.7000000000001 157.8 260.0000000000001C157.5 259.7000000000001 141.8 243.5000000000001 136.6 236.1000000000001L136.1 235.5000000000001C132.8 230.8000000000001 129.8 226.4000000000001 116 229.4000000000001C109.1 231.1000000000001 101.7 235.2000000000001 101.7 241.2000000000001V428C101.7 433 105.6 438.5 112.2 438.5H353.5C361.8 438.5 361.8 426.9 361.8 423.4C361.8 419.5 361.8 408.3 353.5 408.3H130.3V275.4H130.6C234.8 385.2 413.4000000000001 311.4 413.4000000000001 166.5C413.4000000000001 -11.6 168.6 -53.8 103.3 103.7zM166.6 364.5C166.1 360.3 171.2 340 181.2 343.9C306 391.4 384 303.5 390.6 303.5C395.4000000000001 303.5 413.4000000000001 318.8 404.9000000000001 326.3C311.7000000000001 415.3 170.4 383.3 166.6 364.5zM393 33.3C283 -76.6 94 -27.5 61 137.5C61 149.7 30.6 144.9 32.1 134.2C56.1 -39.2 278.1 -122.7 413.7000000000001 12.9C420.6 20.7 401.1 41.3 393.0000000000001 33.3zM213.6 141.4C213.6 137.4 217.9 134.1 219.1 132.9C222.1 129.9 225.2 128.5 227.6 128.5C231.4 128.5 230.2 128.3 249.9 148C269.5 128.7 269 128.5 272.2 128.5C277.6 128.5 290.7 138.9 282.9 146.7L265.6 164L283.8 182.2C290.1 189 273.7 204 267.6 197.9L249.7 180C231.1 198.8 231.3 199.5 228.2 199.5C223.2 199.5 210.2 187.8 215.8 182.2L234 164C215.9 146.1 213.6 144.8 213.6 141.4z" />
-			<glyph glyph-name="accessible-icon" unicode="" horiz-adv-x="448" d=" M423.9 192.2L411 34.9C407.7 -5.8 347.1 -0.2 350.4 39.8L360.4 162.3L319.3 160C329.4 139.3 335.1 116.1 335.1 91.4999999999999C335.1 50.3 319 12.8 292.8 -15.0000000000001L253.5 24.3C311.3999999999999 87.9999999999999 266.6 191.5 179.5 191.5C153.5999999999999 191.5 130 181.6 112.2999999999999 165.5L73 204.8C95 225.5 123.1 239.9 154.4 245L229.7 330.7L187.1 355.5L135.5 309.5C105.5 282.7 64.9 328 95 354.9L163 415.6C172.8 424.4000000000001 187.1 425.8 198.5 419.2C198.5 419.2 337.8 338.3 338 338.1C354.2 328 358.7 302.1 344.1 285.5L285.7 219L391.8 224.9C410.3 226 425.4 210.5 423.9 192.2zM359 346.2C387.1 346.2 409.9 369 409.9 397.1C409.9 425.2 387.1 448 359 448C330.9 448 308.1 425.2 308.1 397.1C308.1 369 330.9000000000001 346.2 359 346.2zM179.6 -8.5C99 -8.5 52.2 82.1 96.9 147.6L57.2 187.3C36.4 161 24 127.7 24 91.6C24 -39.1 174.7 -109.7999999999999 275.4 -30.9L235.7 8.8C219.7 -2.1 200.4 -8.5 179.6 -8.5z" />
-			<glyph glyph-name="accusoft" unicode="" horiz-adv-x="640" d=" M482.2 75.9C476.5 82.8 250 373 242.3 382.5C228.6 399.7 242.3 399.3 261.5 399.4C271.2 399.5 367.8 400 378 400C402.1 400.1 406.7 399.4 416.4 387.2C418.5 384.5 621.5 141.4 623.5999999999999 138.9C629.0999999999999 132.2 638.8 119.8 630.8 115.5C628.4 114.2 516.1999999999999 67.8 513 66.6C502.9 62.6 495.5 59.8 482.2 75.9M596.9 81.5000000000001S481.9 31.1000000000001 479.4 29.9C463.4 22.6 452.5 33.1 442.7 44.5000000000001L385.6 118.5000000000001C380.2 119.4 325.2 128.1000000000001 320.3 127.8000000000001C317.2 127.6000000000001 310.7 127.0000000000001 305.9 124.9000000000001C301 122.8000000000001 160.7 72.1000000000001 155.7 70.2000000000001C150.6 68.2000000000001 144.3 66.6000000000001 144.6 62.6000000000001C144.8 60.1000000000001 146.6 60.0000000000001 149.2 59.1000000000001C151.9 58.3000000000001 450.1 -8.4999999999999 457.2 -9.9999999999999C472.8 -13.2999999999999 495.7 -20.4999999999999 510.8 -11.6999999999999C512.9 -10.4999999999999 634.6 64.7000000000002 636.6 66.1000000000001C642 70.1000000000001 640.9 72.9000000000002 634.9 74.3000000000001C632.6 74.6000000000001 610.3 79.0000000000001 596.9 81.5000000000001M270.9 262.8000000000002S258.9 261.2000000000002 245.9 247.7000000000002C236.9 238.4000000000001 3.8 8.6000000000001 2.5 6.8000000000001C-4.5 -3.1999999999999 4.1 1e-13 18.2 5.1000000000001C19 5.1000000000001 132.7 41.7000000000002 132.7 41.7000000000002C133.2 42.3000000000002 132.6 41.8000000000002 133.3 42.3000000000002C132.9 47.4000000000002 132.5 68.5000000000002 132.3 70.0000000000002C131.7 75.2000000000002 134.5 76.9000000000002 139.3 78.9000000000002L231.9 112.7000000000002C232.5 113.5000000000002 320.4 194.4000000000002 322.1 196.0000000000002V197.0000000000002L270.9 262.8000000000002" />
-			<glyph glyph-name="adn" unicode="ï…°" horiz-adv-x="496" d=" M248 280.5L312.9 181.7H183.1L248 280.5zM496 192C496 55.1 384.9 -56 248 -56S0 55.1 0 192S111.1 440 248 440S496 328.9 496 192zM396.2 109.3L248 332.5L99.8 109.3H130.2L163.8 161H332.4L366 109.3H396.2z" />
-			<glyph glyph-name="adversal" unicode="" horiz-adv-x="512" d=" M482.1 416H28.7C5.8 416 0 410.1 0 387.1V-3.1C0 -26.4 5.8 -32 28.7 -32H482.1C506.4999999999999 -32 511.9999999999999 -26.8 511.9999999999999 -2.3V385.8C511.9999999999999 410.4 506.6 416 482.1 416zM178.4 227.7C150.9 247.9 106.3 236.4 94.2 204.3C89.9 193.2 84.9 194.8 76.7 196C67 197.5 59.5 199.2 54.2 201.5C25.4 212.9 62.8 256.8 79.1 265.8C120.2 287.2 162.5 288 204.4 270.6C245.3 253.8 238.9 211.4 238.9 142.1C241.6 116.3 234.6 83.8 248.2 53.3C250.1 48.9 248.6 45.4 245.5 42.6C237.1 35.9 206.2 40.4 198.9 49.9999999999999C197 52.1999999999999 197.1 53.6 195 56.1999999999999C191.4 60.0999999999999 187.7 58.3999999999999 183.1 55.1999999999999C125.7 18.8 42.8 33.8 36.1 98.4999999999999C33 127.8 48.5 155.6 75.7 169.5C113.9 189 187.9 181.3 189.7 200.4C190.8 210.5999999999999 187.8 220.5 178.4 227.7zM465.1 5.7C465.1 -9.4 454 -4.2 447.3 -4.2H52.4C45 -4.2 34.2 -9 34.6 6.5C35 20.4 45.1 15.6 51.7 15.6C184 16 316.2 16 448.5 15.6C455.3 15.6 465.1 20 465.1 5.7zM468.9 346.2V55.2C468.9 49.5 468.2 41.3 460.8 41.3C448.4000000000001 41.7 433.3 34.2 424.7 46.9C418.9 55.6 416.9 50.9 412.3 48.1C358.9000000000001 18.4 284.2000000000001 41 267.9 133.3C261.8 166.7 267.2 200.4 283.6 233.3C295.4 257.2000000000001 340.5 309.4 419.7 263.8V334.8C419.7 361 419.5999999999999 361 445.7 361C448.8 361 452.3 360.6 455.3999999999999 361C465.4999999999999 361.8 468.9999999999999 356.6 468.9999999999999 346.7000000000001C468.8999999999999 346.5 468.8999999999999 346.4000000000001 468.8999999999999 346.2000000000001zM417.4000000000001 113.9C397.9000000000001 66.3 344.5 70.6 327.4000000000001 108.7C312.3 142 311.9000000000001 176.9 327.8 210.2C344.1 244.3 387.5 245.9 409.3 215C429.9000000000001 186.2 424.2 130.4 417.4000000000001 113.9zM122.6 78.6C115.1 79.9 89.6 81.9 88.9 106.4C88.5 120.3 96.7 129.4 108.7 132.2C133.1 138.1 158 142.1 182.4 146.9C191.3000000000001 148.9 189.8000000000001 142.5 190.2000000000001 137.4C191.6000000000001 104.4 164.1000000000001 78.2 122.6000000000001 78.6z" />
-			<glyph glyph-name="affiliatetheme" unicode="" horiz-adv-x="512" d=" M159.7 210.6C108.4 139.7 43.1 99.8 14 121.4C-15.2 143.1 2.8 218 54.2 288.9C105.5 359.8 170.8 399.7 199.9 378.1C229 356.5 211 281.5 159.7 210.6zM510.9 267.9C437.1 144.5 319 80.2 246.4 124.3C221.4 139.5 205.1 165.5 197.4 198.1C163.8 133.3 104.6 84.3 33.3 64.9C83.1 5.6 157.4 -32 240.3 -32C390.3 -32 511.9 91.1 511.9 242.9C512 251.4 511.6 259.7 510.9 267.9z" />
-			<glyph glyph-name="algolia" unicode="" horiz-adv-x="448" d=" M229.3 265.4C180 265.4 140.1 225.5 140.1 176.2C140.1 126.9 180 87 229.3 87S318.5 126.9 318.5 176.2C318.5 225.5 278.5 265.4 229.3 265.4zM292 208.8L233.1 178.2C231.3 177.3 229.3 178.6 229.3 180.5V247C229.3 248.5 230.6 249.7 232 249.6C258.2 248.6 280.9 233.9 293.1 212.5C293.8 211.2 293.3 209.5 292 208.8zM389.1 416H58.9C26.4 416 0 389.6 0 357.1V27C0 -5.6 26.4 -32 58.9 -32H389C421.6 -32 447.9 -5.6 447.9 26.9V357.1C448 389.6 421.6 416 389.1 416zM186.5 331.3C186.5 342.1 195.2 350.8 206 350.8H251.3C262.1 350.8 270.8 342.1 270.8 331.3V315.9C270.8 314.1 269.1 312.9 267.5 313.4C255.2 316.8 242.4 318.5 229.4 318.5C215.9 318.5 202.7 316.7 190 313C188.3 312.5 186.6 313.8 186.6 315.5V331.3zM102.1 294.3L111.3 303.5C118.9 311.1 131.2 311.1 138.8 303.5L146.5 295.8C147.6 294.7000000000001 147.5 292.8 146.2 291.8C140 287.3 134.1 282.4 128.6 276.9C123.2 271.5 118.2 265.6 113.8 259.5C112.8 258.2 110.9 258 109.8 259.2L102.1 266.9C94.5 274.4 94.5 286.7 102.1 294.3zM229.3 49.5C159.3 49.5 102.7 106.2 102.7 176.1S159.4 302.7000000000001 229.3 302.7000000000001C299.3 302.7000000000001 355.9 246.1 355.9 176.1C355.9 106.3 299.2 49.5 229.3 49.5z" />
-			<glyph glyph-name="amazon-pay" unicode="" horiz-adv-x="611.2" d=" M0 122.8C2.3 127 5.2 127.7 9.7 125.3C20.1 119.7 30.3 113.9 40.9 108.6C81.6 88.2000000000001 124.1 73 168.3 62.3C189.2 57.3 210.2 53.3 231.5 50.5C263 46.3 294.7 44.5 326.5 45.3C343.9 45.7 361.3 47.1 378.6 49.1C435 55.8 489.5 69.9 541.9000000000001 91.9C544.8000000000001 93.1 547.8000000000001 93.9 551.0000000000001 93.1C557.7000000000002 91.3 560.0000000000001 84.1 555.1000000000001 79.2000000000001C552.3000000000002 76.4 548.8000000000002 74.1 545.5000000000001 71.8000000000001C514.8000000000001 50.7 481.3000000000001 35.4000000000001 445.9000000000001 23.9000000000001C421.3000000000001 16.0000000000001 396.3000000000001 10.1000000000001 370.8000000000001 6.3000000000001C353.2000000000001 3.7 335.4000000000001 1.9000000000001 317.6000000000001 1.5000000000001C316.8000000000001 1.5000000000001 315.9000000000001 1.3000000000001 315.1000000000001 1.2H294C293.2 1.3000000000001 292.3 1.5000000000001 291.5 1.5000000000001C287.9 1.7 284.3 1.8000000000001 280.8 1.9C263.9000000000001 2.6 247.1 4.5000000000001 230.4 7.2C203 11.7 176.2 18.6 150 28.1C95.9 47.7 47.4 76.7000000000001 4.4 115.1C2.6 116.7000000000001 1.4 118.9 0 120.8V122.8zM158 383C156.6 382.8 155.1 382.6 153.7 382.4C139.7 380.7 127.1 375.5 115.7 367.3C113.3 365.6 111.1 363.8 108.6 361.9C108.4 362.4 108.2 362.9 108.2 363.3C107.8 366 107.4 368.8 106.9 371.5C106.2 376.1 103.9 378.1 99.3 378.1H87.8C80.9 378.1 79.6 376.8 79.6 369.9V160.6C79.6 159.6 79.6 158.6 79.7 157.6C79.9 154.6 81.7 152.7000000000001 84.6 152.6C91.6 152.5 98.7 152.5 105.7 152.6C108.6 152.6 110.4 154.6 110.7 157.6C110.8 158.6 110.8 159.6 110.8 160.6V233C111.9 232.1 112.5 231.6 113 231.1C130.9 216.2 151.5 211.3 174 215.7C194.4 219.7 208.6 232.2 217.8 250.6C224.8 264.5 227.7 279.3 228.1 294.7C228.6 311.8 226.9000000000001 328.6 220 344.5C211.5 364.1 197.4 377 176.1 381.4C172.9 382.1 169.6 382.4 166.3 382.9C163.5 383 160.8 383 158 383zM110.6 341.1C110.6 342.6 111 343.5 112.3 344.4C126 353.9 141.1 358.9 157.9 357.6C172.8 356.5 185 349.2 191.4 331.7C195.3 321 196.3 309.9 196.3 298.7C196.3 288.3 195.5 278.1 192.3 268.1C185.5 246.8 169.9 238.7 149.7 239.6C135.7 240.2 123.5 245.6 112.3 253.5C111.1 254.4 110.6 255.2 110.6 256.8C110.7 270.9 110.6 284.9 110.6 299C110.6 313 110.7 327 110.6 341.1zM316.3 383C315.3 382.9 314.3 382.7 313.4000000000001 382.6C303.6 382.1 294.0000000000001 380.9 284.5000000000001 378.5C278.4000000000001 376.9 272.5000000000001 374.7 266.6000000000001 372.7C263.0000000000001 371.5 261.2000000000001 368.9 261.3000000000001 365C261.4000000000001 361.7 261.2000000000001 358.4 261.3000000000001 355.1C261.4000000000001 350.3 263.4000000000001 349 268.1000000000001 350.2C275.9000000000001 352.2 283.7000000000001 354.4 291.6000000000001 355.9C303.9000000000001 358.2 316.3000000000001 359.2 328.8000000000001 357.3C335.3000000000001 356.3 341.4000000000001 354.4 345.6000000000001 348.9C349.3000000000001 344.1 350.7000000000001 338.4 350.9000000000001 332.5C351.2000000000001 324.2 351.1000000000001 315.9 351.2000000000001 307.6C351.2000000000001 307.2 351.1000000000001 306.7 351.0000000000001 306.2C350.5000000000001 306.3 350.1000000000002 306.2 349.7000000000001 306.3C339.2000000000001 308.8 328.6000000000001 310.6 317.7000000000001 311.2C306.4000000000001 311.8 295.2000000000001 311.1 284.4000000000001 307.3C271.5000000000001 302.8 261.1000000000001 295 255.0000000000001 282.4C250.3000000000001 272.6 249.6000000000001 262.2 251.1000000000001 251.7C253.1000000000001 237.7 260.1000000000001 226.9 272.5000000000001 220C284.4000000000001 213.4 297.3000000000001 212.6 310.4000000000001 214.6C325.5000000000001 216.9 338.9000000000001 223.3 350.7000000000001 233C351.1 233.4 351.6 233.7 352.3000000000001 234.1C352.9000000000001 230.3 353.4000000000001 226.7 354.1000000000001 223.1C354.7000000000001 220 356.6000000000001 218 359.5000000000001 217.9C364.9000000000001 217.8 370.4000000000001 217.8 375.8000000000001 217.9C378.5000000000001 218 380.3000000000001 219.8 380.6000000000001 222.6C380.7000000000001 223.5 380.7000000000001 224.5 380.7000000000001 225.4V331.4C380.7000000000001 335.7 380.5000000000001 340 379.8000000000002 344.3C377.9000000000002 357.2000000000001 372.4000000000002 367.8 360.8000000000002 374.7000000000001C354.1000000000002 378.7000000000001 346.7000000000001 380.7000000000001 339.0000000000001 381.8C335.4000000000001 382.3 331.8000000000002 382.6 328.2000000000001 383.1C324.3000000000002 383 320.3000000000002 383 316.3000000000002 383zM351.3 255.3C351.3 254 350.9000000000001 253.1 349.8 252.3C338.6 244.2 326.3 238.8 312.4000000000001 237.4C306.7000000000001 236.8 301.0000000000001 237 295.6 239.2C289.3 241.7 285.2000000000001 246.1 283.2000000000001 252.5000000000001S281.2000000000001 265.5 283.1 271.9000000000001C285.6 280.2000000000001 291.5 284.9000000000001 299.5 287.5C307.6 290.1 316 290.5 324.3 289.7000000000001C332.7 289 340.9000000000001 287.4 349.3 286.3C350.9000000000001 286.1 351.4000000000001 285.3 351.4000000000001 283.7000000000001C351.3 278.9 351.4000000000001 274.2000000000001 351.4000000000001 269.4C351.3 264.7000000000001 351.2000000000001 260 351.3 255.3zM611.2 125.9C610.2 130.9 606.4000000000001 132.8 602.1 134.2C595.3000000000001 136.5 588.2 137.5 581.1 138.1C568 139.2 554.9 138.6 541.9 136.2C527.6 133.5 514 128.9 501.9 120.6C500.5 119.6 499.1 118.5 498.2 117.1C497.5 116 497.3 114.3 497.7 113.1C498.1 111.6 499.8 111.2 501.3 111.3C502 111.3 502.8 111.3 503.5 111.4C511.3 112.2 519 113.1 526.8 113.9C538.1999999999999 115 549.6999999999999 115.7 561.0999999999999 114.8C565.8999999999999 114.5 570.8 113.4 575.4999999999999 112.1C580.5999999999999 110.7 582.8999999999999 106.9 583.0999999999999 101.7C583.4999999999999 93.7 581.6999999999999 86 579.5999999999999 78.4C575.4999999999999 63 569.5999999999999 48.1 563.8 33.3C563.4 32.3 563 31.3 562.8 30.3C562.3 27.4 564 25.4999999999999 566.9 26.1999999999999C568.6 26.5999999999999 570.5 27.4999999999999 571.6999999999999 28.6999999999999C576.0999999999999 32.9999999999999 580.5999999999999 37.3 584.4 42.0999999999999C597.1999999999999 58.4999999999999 604.6999999999999 77.3999999999999 609.1 97.6999999999999C609.9 101.3 610.5 104.9999999999999 611.2 108.5999999999999V125.8999999999999zM479.1 249.1C466.2 284.8 453.3 320.6 440.4000000000001 356.3C438.4000000000001 362 436.2000000000001 367.6 434.1 373.2C433 376.1 430.9000000000001 378 427.7000000000001 378C420.1 378.1 412.5000000000001 378.2 404.8000000000001 378.1C402.3000000000001 378.1 401.1000000000001 376.1 401.6000000000001 373.6C402.1000000000001 371.5 402.7000000000001 369.5 403.5000000000001 367.5C423.1000000000001 319 442.8000000000001 270.4 462.6000000000001 222C464.3000000000001 217.9 464.7000000000001 214.4 462.8000000000001 210.2C459.5000000000001 202.9 456.9000000000001 195.2 453.5000000000001 187.9C450.5000000000001 181.4 445.5000000000001 176.5 438.3000000000001 174.6C433.2000000000001 173.2 428.1000000000001 173 422.9000000000001 173.5C420.4000000000001 173.6999999999999 417.9000000000001 174.3 415.4000000000001 174.5C412.0000000000001 174.6999999999999 410.3000000000001 173.1999999999999 410.2000000000001 169.6999999999999C410.1000000000001 166.3999999999999 410.1000000000001 163.0999999999999 410.2000000000001 159.8C410.3000000000002 154.3 412.2000000000001 151.8 417.6000000000001 150.9C423.2000000000001 149.9 428.9000000000001 149 434.5000000000001 148.9C451.6000000000001 148.5 465.2 155.4 474.0000000000001 170.3C477.5000000000001 176.1999999999999 480.7 182.4 483.2 188.6999999999999C506.9 248.5 530.3000000000001 308.3999999999999 553.8000000000001 368.3C554.5000000000001 370.0999999999999 555.1 371.8999999999999 555.4000000000001 373.8C555.8000000000001 376.5999999999999 554.5000000000001 378.2 551.7 378.2C545.1 378.3 538.4000000000001 378.2 531.8000000000001 378.2C528.1 378.2 525.5000000000001 376.5999999999999 524.1 373C523.6 371.5999999999999 523 370.3 522.5 368.8999999999999C510.9 335.5999999999999 499.3 302.3 487.7 268.8999999999999C485.2 261.7 482.6 254.3999999999999 480 246.7C479.6 247.8 479.4 248.3999999999999 479.1 249.1z" />
-			<glyph glyph-name="amazon" unicode="" horiz-adv-x="448" d=" M257.2 285.3C208.5 283.5 87.7 269.8 87.7 167.8C87.7 58.3 226 53.8 271.2 124.6C277.7 114.4 306.6 87.1 316.5 77.8L373.3 133.8S341 159.1 341 186.6V333.7C341 359 316.5 416 228.7 416C140.7 416 94 361 94 311.7L167.5 304.9C183.8 354.4 221.7 354.4 221.7 354.4C262.4 354.5 257.2 324.6 257.2 285.3zM257.2 198.5C257.2 118.5 173 130.5 173 181.3C173 228.5 223.5 238 257.2 239.1V198.5zM393.2 35C385.5 25 323.2 -32 218.7 -32S34.2 39.5 9.7 69C2.9 76.7 10.7 80.3 15.2 77.3C88.5 32.8 203 -40.5 387.7 47C395.2 50.7 401 45 393.2 35zM433 32.8C426.5 17 417 6 411.8 1.8C406.3 -2.7 402.3 -0.9 405.3 5.6S424.6 52.1 418 60.6C411.5 68.9 381 64.9 370 63.8C359.2 62.8 357 61.8 356 64.1C353.7 69.8 377.7 79.6 393.5 81.6C409.2 83.4 434.5 82.4 439.5 75.9C443.2 70.8 439.5 48.8 433 32.8z" />
-			<glyph glyph-name="amilia" unicode="" horiz-adv-x="448" d=" M240.1 416C178.2 416 108.6 399.1 55.9 360.6C50.8 357.5 46.8 351.4 48.7 341.2C49.8 336.1 53.8 313.8 58.9 301.6C63 291.4 73.1 291.4 79.2 295.5C111.7 317.8 175.7 343.2 231.5 343.2C289.4 343.2 290.4 314.8 290.4 270.1V231.6C203 220.3 78.2 197 46.7 183.8C11.2 167.5 16.3 90.3 16.3 72S31.5 -32 141.2 -32C189 -32 254.9000000000001 -11.3 294.5 10.1V-15.3C294.5 -18.3 296.6 -23.4999999999999 300.6 -24.4C303.7000000000001 -25.4 351.3 -26.4 360.5 -26.4S423 -26.7 427 -25.7C431.1 -24.7 432.1 -19.6 432.1 -16.6V280C432 360.3 374.2000000000001 416 240.1 416zM152.2 88.3C152.2 100.5 149.2 131 170.5 141.2C194.8 154.4 245.6 170.6 290.3 174.7V68C268.9000000000001 54.8 241.6 43.6 211.2 43.6C158.4 43.6 152.3 77.1 152.2 88.3" />
-			<glyph glyph-name="android" unicode="ï…»" horiz-adv-x="448" d=" M89.6 243.5V127.7C89.6 112.3 77.5 100 62.1 100C46.8 100 32 112.4 32 127.7V243.5C32 258.6 46.8 271 62.1 271C77.2 271 89.6 258.6 89.6 243.5zM100.4 86.5C100.4 70.1 113.6 56.9 130 56.9H149.9L150.2 -4.2C150.2 -41.1 205.4 -40.8000000000001 205.4 -4.2V56.9H242.6V-4.2C242.6 -40.9 298.1 -41.0000000000001 298.1 -4.2V56.9H318.3C334.5 56.9 347.7 70.1 347.7 86.5V265.9H100.4V86.5zM348.4 275.6H99.3C99.3 318.4 124.9 355.6 162.9 375L143.8 410.3C141 415.2 148.1 418.3 150.5 414.1L169.9 378.5C204.8 394 244.9 393.2 278.2 378.5L297.5 414C300 418.3 307 415.1 304.2 410.2L285.1 375C322.8 355.6 348.4000000000001 318.4 348.4000000000001 275.6zM177.7 331.1C177.7 336.8 173.1 341.6 167.2 341.6C161.5 341.6 157 336.8 157 331.1S161.6 320.6 167.2 320.6C173.1 320.6 177.7 325.4 177.7 331.1zM291.1 331.1C291.1 336.8 286.5 341.6 280.9000000000001 341.6C275.0000000000001 341.6 270.4000000000001 336.8 270.4000000000001 331.1S275.0000000000001 320.6 280.9000000000001 320.6C286.5000000000001 320.6 291.1 325.4 291.1 331.1zM385.9000000000001 271C370.8 271 358.4000000000001 258.9 358.4000000000001 243.5V127.7C358.4000000000001 112.3 370.8 100 385.9000000000001 100C401.3 100 416.0000000000001 112.4 416.0000000000001 127.7V243.5C416.0000000000001 258.9 401.2000000000001 271 385.9000000000001 271z" />
-			<glyph glyph-name="angellist" unicode="" horiz-adv-x="448" d=" M347.1 232.6C358.8 265.2 392.5 359.5 392.5 389.7C392.5 416.3 376.8 438.6 348.8 438.6C304.2 438.6 264.2000000000001 306.9 251.7 275.5C242 304 196.6 448 156.6 448C125.5 448 110.9 425.1 110.9 396.3C110.9 361 145.1 269.5 157.5 234.3C151.2 236.6 144.4 238.6 137.5 238.6C114.1 238.6 89.2 209.5 89.2 186C89.2 177.1 94.1 164.6 97.2 156.3C60.3 146.3 46.1 121.7 46.1 84.6C46 12.4 114.4 -64 210.6 -64C328.6 -64 402 24.6 402 138.9C402 182 395.1 220.9 347.1 232.6zM311.7 340C315.7 352.3 332.8 404.3 348.8 404.3C357.4000000000001 404.3 359.7 395.4 359.7 388.3C359.7 369.2 321.1 263.7 312.6 240.3L278.6 246.3L311.7 340zM142.3 399.7C142.3 411.6 156.8 445.4 188.6 352.6L223.2 252.3C207.6 253.6 195.5 255.3 187.8 250.9C176.9 279.7000000000001 142.3 370.6 142.3 399.7000000000001zM140 204C169.3 204 207.1 109.4 207.1 96.6C207.1 91.5 202.2 85.2000000000001 196.5 85.2000000000001C175.6 85.2000000000001 119.6 162.1 119.6 182.9C119.7 190.6 132.3 204 140 204zM324.3 17.7C295.2 -14.3 258 -30.9 214.6 -30.9C155.2 -30.9 108.3 1.7 85.7 57.4C68.6 100.8 89.5 125.7 106.3 125.7C117.7 125.7 160.6 65.4 160.6 52.6C160.6 47.7 152.9 44.3 148.9 44.3C132.8000000000001 44.3 126.5 59.8 97.8 95.7C68.1 66 118.3000000000001 8.8 156.1 8.8C182.2 8.8 199.2 32.9999999999999 194.1 50.8C197.8 50.8 202.4 50.4999999999999 205.8 51.4C206.9 24.3 214.9 -8 247.5 -10.3C247.5 -9.4 249.5 -3.2 249.5 -2.9C249.5 14.4999999999999 238.9 29.7 238.9 47.4C238.9 75.7 260.6 103.1 282.6 119.1C290.6 125.1 300.3 128.8 309.7000000000001 132.2C319.4000000000001 135.9 329.7000000000001 140.2 337.1 147.6C336 158.8 331.4000000000001 168.7 320.2000000000001 168.7C292.5000000000001 168.7 199.6000000000001 164.7 199.6000000000001 208.4C199.6000000000001 215.1 199.7000000000001 221.5 217.0000000000001 221.5C249.3000000000001 221.5 331.3000000000001 213.5 355.3000000000001 192.4C373.4000000000001 176.3 379.6000000000001 79.2 324.3000000000001 17.7zM225.7 143.7C235.4 140.6 245.4 139.7 255.4 137.7C248 132.3 241.4 125.7 235.1 118.6C232.3 127.1 228.9 135.4 225.7 143.7z" />
-			<glyph glyph-name="angrycreative" unicode="" horiz-adv-x="640" d=" M640 209.8L636.8 181.6L602.3 179.3L600.3 161.2L634.8 163.5L631.5999999999999 135.3L597.1999999999999 133.1L594.9 113L629.3 115.2L626.3 89.1L561.5999999999999 84.9999999999999L574.3 198.1999999999999L527 82.8L495.1 80.8L471.3 198.6L501.6 200.6L515.2 121.2000000000001L546.9000000000001 203.6000000000001L640.0000000000001 209.8000000000001zM426.8 76.5L455.1 78.3L468 198.4L439.6 196.5L426.8 76.5zM162 59.9L142.6 95.9L139.1 58.5L110.9 56.8L113.6 85.9C102.6 67.9 81.6 51.6 56.7 50.1C23.9 48.1 -3 71 0.3 108.3C2.9 137.6 27 171.1 67.8 173.7000000000001C105.5 176.1 115.4 150.5000000000001 119.1 144.9L121.9 175.7000000000001L160.8 178.2000000000001C180.9 179.5000000000001 199.5 174.5000000000001 203.3 154.5000000000001L205.9 181.1000000000001L270.7 185.3000000000001L268 157.4000000000001L231.6 155.0000000000001L229.9 137.1000000000001L266.3 139.4000000000002L263.6 111.5000000000002L227.2 109.2000000000002L225.3 89.3000000000002L261.6 91.6000000000002L259.5 70.8000000000002L314.5 188.0000000000002L338.3 189.6000000000002L370.4 79L379.3 164.6L357 163.2000000000001L359.8999999999999 191.1L434.8999999999999 196L431.8999999999999 168L407.5999999999999 166.4L397.8999999999999 74.5L339.8999999999999 70.8L335.5999999999999 86.4L296.2 83.9L288.2 67.6L162 59.9zM117.7 130.1L91.3 128.4C84.6 140.8 76.9 145 65 144.2C46 143 31.7 126.7 30.4 110.9C29 94.9 37.7 78.4 59.1 79.7C71.9 80.5 80.4 88.3 88 98.6L115 100.3L117.7 130.1zM173.8 137.8C175 150.6999999999999 166.2 151.4 147.7 150.1999999999999L145 121.6999999999999C159.2 122.5999999999999 172.5 123.8 173.8000000000001 137.8zM194.9 66.9999999999999L200.7 127C195.7 113.5 186 105.8999999999999 172.8 100.3999999999999L194.9 66.9999999999999zM330.3 111.9999999999999L322.4000000000001 149.8L306.6 110.4999999999999L330.3 111.9999999999999zM160.2 186.5999999999999L155.9 204.0999999999999L116.3 201.4999999999999L108.2 183.2999999999999L76.3 181.1999999999999L133.3 303.0999999999999L157.2 304.6999999999999L187.9 202.6999999999999L197.8 307.3999999999999L224.8 309.1999999999999L262.6 245.5999999999999L269.1 312.1999999999999L297.6 314.0999999999999L293.6 272.8999999999999C301 286.3999999999999 316.5 317.5999999999999 357.2000000000001 320.3999999999999C397.7000000000001 323.1999999999999 409.6 291.0999999999999 410.6 290.0999999999999L413.9000000000001 322.0999999999999L453.2 324.7999999999999C465.9 325.6999999999999 481.0000000000001 324.4999999999999 489.5000000000001 315.0999999999999L485.1000000000001 326.9999999999999L517.3000000000001 329.1999999999999L530.2 285.9999999999999L553.2 331.6999999999999L584.2 333.8999999999999L540.6 255.4999999999999L535.8000000000001 211.1999999999999L507.4000000000001 209.2999999999999L512.2 253.5999999999999L496.4 296.5999999999999C497.4 274.2999999999999 487.2 256.4999999999999 464.4 246.9999999999999L489.6 208.1999999999999L453.2 205.7999999999999L434.0000000000001 242.5999999999999L430.0000000000001 204.2999999999999L401.6000000000001 202.3999999999998L404.9000000000001 233.8999999999999C398.2000000000001 224.5999999999998 385.2000000000001 198.4999999999998 345.3000000000001 195.8999999999998C319.1000000000001 194.1999999999999 299.7000000000001 206.1999999999999 289.9000000000001 235.0999999999999L285.9000000000001 194.7999999999999L260.9000000000001 193.1999999999999L223.3000000000001 256.4999999999999L217.0000000000001 190.2999999999999L160.2000000000001 186.5999999999999zM436.8000000000001 268.7C447.0000000000001 269.3999999999999 454.3000000000001 270.7999999999999 458.4000000000001 272.9999999999999C462.9000000000001 275.3999999999999 465.4000000000001 279.3999999999999 466.0000000000001 285.0999999999999C466.6000000000001 290.3999999999999 465.4000000000001 293.8999999999999 462.6000000000001 295.4999999999999C459.0000000000001 297.5999999999999 452.0000000000001 298.3 439.7000000000002 297.4999999999999L436.8000000000002 268.7zM327.7 234C333.3 228.1 340.4 225.5 349 226.1C353.7 226.4 358.1 227.9 362.3 230.2C367.8 233.2 372.9000000000001 238.2 377.4000000000001 244.5L343.2000000000001 242.2L345.6 266.1L408.7000000000001 270.4L409.9000000000001 282.4L378.7000000000001 280.3C374.6 284 370.9000000000001 286.9 367.6 288.4C363.6 290.1 359.5 291.2000000000001 355.4000000000001 290.9C347.4000000000001 290.4 340.1 287.3 333.4000000000001 281.7000000000001C325.7000000000001 275.3 321.4000000000001 267.2000000000001 320.5000000000001 257.3C319.4000000000001 247.7 321.9000000000001 240 327.7000000000001 234zM126.4 225.8L150.2 227.4L141.9 265L126.4 225.8z" />
-			<glyph glyph-name="angular" unicode="" horiz-adv-x="415.6" d=" M169.7 179.9H245.9L207.8 271.5L169.7 179.9zM207.8 416L0 341.6L31.8 65.9L207.8 -32L383.8 65.9L415.6 341.6L207.8 416zM338 74.2H289.4L263.2 139.6H152.6L126.4 74.2000000000001H77.7L207.8 366.5L338 74.2z" />
-			<glyph glyph-name="app-store-ios" unicode="" horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM127 63.5C121.5 53.9 109.2 50.7 99.7 56.2C90.1 61.7 86.9 74 92.4 83.5L106.7 108.2C122.8 113.1 136 109.3 146.3 96.8L127 63.5zM265.9 117.4H84C73 117.4 64 126.4 64 137.4S73 157.4 84 157.4H135L200.4 270.6L179.9 306C174.4 315.6 177.7 327.8 187.2 333.3C196.8 338.8 209 335.5 214.5 326L223.4 310.6L232.3000000000001 326C237.8000000000001 335.6 250.1000000000001 338.8 259.6 333.3C269.2000000000001 327.8 272.4000000000001 315.5 266.9000000000001 306L181.1 157.4H243.2C263.4000000000001 157.4 274.7000000000001 133.7 265.9000000000001 117.4zM364 117.4H335L354.6 83.5C360.1 73.9 356.8 61.7 347.3 56.2C337.7 50.7 325.5 54 320 63.5C287.1 120.4 262.5 163.2 246 191.6C229.3 220.6 241.2 249.6 253.1 259.4000000000001C266.2 236.7000000000001 285.8 202.7000000000001 312 157.4H364C375 157.4 384 148.4 384 137.4C384 126.3 375 117.4 364 117.4z" />
-			<glyph glyph-name="app-store" unicode="" horiz-adv-x="512" d=" M255.9 327.1L265 342.8C270.6 352.6 283.1 355.9 292.9 350.3C302.7 344.7 306 332.2 300.4 322.4L212.9 170.9H276.2C296.7 170.9 308.2 146.8 299.3 130.1H113.8C102.5 130.1 93.4 139.2 93.4 150.5C93.4 161.8 102.5 170.8999999999999 113.8 170.8999999999999H165.8L232.4 286.3L211.6 322.3999999999999C206 332.2 209.3 344.5999999999999 219.1 350.3C228.9 355.8999999999999 241.3 352.5999999999999 247 342.8L255.9 327.0999999999999zM177.2 109.1L157.6 75.1C152 65.3 139.5 62 129.7 67.6C119.9 73.2000000000001 116.6 85.7000000000001 122.2 95.5L136.8 120.7C153.2 125.8 166.6 121.9 177.2 109.1zM346.1 170.8H399.2000000000001C410.5000000000001 170.8 419.6 161.7 419.6 150.4C419.6 139.1 410.5 130.0000000000001 399.2000000000001 130.0000000000001H369.7000000000001L389.6 95.5000000000001C395.2000000000001 85.7000000000001 391.9000000000001 73.3000000000001 382.1 67.6000000000001C372.3 62.0000000000001 359.9000000000001 65.3000000000001 354.2000000000001 75.1000000000001C320.7000000000001 133.2000000000001 295.5000000000001 176.7000000000001 278.8000000000001 205.7000000000001C261.7000000000001 235.2000000000001 273.9000000000001 264.8000000000001 286.0000000000001 274.8000000000001C299.4000000000001 251.8000000000001 319.4000000000001 217.1000000000001 346.1000000000001 170.8000000000001zM256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM472 192C472 73.3 375.9 -24 256 -24C137.3 -24 40 72.1 40 192C40 310.7 136.1 408 256 408C374.7 408 472 311.9 472 192z" />
-			<glyph glyph-name="apper" unicode="" horiz-adv-x="640" d=" M42.1 208.9C64.3 208.9 71.1 206.1 75.6 194.3H76.4V217.2C76.4 228.5000000000001 71.6 232.6 58.5 232.6C47.2 232.6 44.1 230.1 43.4 219.8H4.8C5.1 233.7 6.3 238.9 10.6 244.2C17.9 253 29.5 256 56.7 256C89.7 256 103.8 251 110.6 237.1C112.6 232.8 114.6 221.5 114.6 213.4V137.1H76.3L77.6 156.2000000000001H76.6C71.3 140.6 63 135.8000000000001 41.1 135.8000000000001C10.8 135.8000000000001 0 145.9000000000001 0 173.1000000000001C0 198.3000000000001 12.3 208.9000000000001 42.1 208.9000000000001zM59.2 160.8C72.3 160.8 76.1 163.8 76.1 174.2C76.1 183.3 71.8 185.8 56.5 185.8C43.4 185.8 38.6 182.8 38.6 173.7C38.5 163.3 42.3 160.8 59.2 160.8zM137 255.7H175.3L173.8 235.1H174.6C183.7 252.2 190.5 256 212.1 256C226.5000000000001 256 236.8 253.0000000000001 243.6 246.9000000000001C253.4000000000001 238.3000000000001 256.4000000000001 226.5000000000001 256.4000000000001 198.8000000000001C256.4000000000001 168.8000000000001 253.4000000000001 155.7000000000001 244.3000000000001 145.9C237.5000000000001 138.6 227.9000000000001 135.8 211.1 135.8C190.7 135.8 181.9 141.3 177.3 157H176.5V86.7H137V255.7zM217.9 195C217.9 222.5 214.6 227.5 197.2 227.5C180.3 227.5 176.5 222.5 176.5 198.8C176.5 170.8 180 165.3 197.7 165.3C214.1 165.3 217.9 170.9 217.9 195zM275.8 255.7H314.1L312.6 235.1H313.4000000000001C322.5000000000001 252.2 329.3 256 350.9000000000001 256C365.3 256 375.6 253 382.4000000000001 246.9C392.2000000000001 238.3 395.2000000000001 226.5 395.2000000000001 198.8C395.2000000000001 168.8 392.2000000000001 155.7 383.1 145.9C376.3 138.6 366.7000000000001 135.8 349.8 135.8C329.4000000000001 135.8 320.6 141.3 316 157H315.2V86.7H275.7V255.7zM356.7000000000001 195C356.7000000000001 222.5 353.4000000000001 227.5 336.0000000000001 227.5C319.1000000000001 227.5 315.3000000000001 222.5 315.3000000000001 198.8C315.3000000000001 170.8 318.8000000000001 165.3 336.5000000000001 165.3C352.9000000000001 165.3 356.7000000000001 170.9 356.7000000000001 195zM410.5000000000001 198.8C410.5000000000001 224.2 413.8000000000001 236.6 422.8000000000001 244.6C431.6000000000001 252.7 445.0000000000001 255.9000000000001 467.9000000000001 255.9000000000001C510.7000000000001 255.9000000000001 523.6000000000001 243.1 523.6000000000001 200.2000000000001V189.1H448.3000000000002C448.0000000000001 187.1 448.0000000000001 185.1 448.0000000000001 184.3C448.0000000000001 167.4 452.5000000000001 162.4 468.1000000000001 162.4C482.0000000000001 162.4 486.0000000000001 165.4 486.0000000000001 176.3H523.5000000000001V174C523.5000000000001 164.2 521.0000000000001 155.1 516.7000000000002 149.3C509.4000000000001 139.5 497.1000000000001 135.7 472.4000000000001 135.7C444.9000000000002 135.7 430.8000000000002 139 421.8000000000002 148C413.3000000000002 156.5 410.5000000000001 169.3 410.5000000000001 198.8zM486.9000000000001 210.4C486.6000000000001 212.2 486.6000000000001 213.7 486.6000000000001 214.2C486.6000000000001 226.5000000000001 483.3000000000001 228.8 467.0000000000001 228.8C452.6000000000001 228.8 449.9000000000001 225.8 448.9000000000001 213.7L448.6 210.4H486.9zM542.5000000000001 255.7H580.8000000000001L579.0000000000001 235.8H579.7000000000002C586.5000000000001 250.7 594.1000000000001 256 609.4000000000002 256C620.2000000000002 256 628.5000000000002 252.7 632.8000000000002 246.7C638.1000000000001 239.4 639.6000000000001 232.3 639.6000000000001 212.7C639.6000000000001 211.2 639.6000000000001 207.7 639.8000000000002 203.4H604.8000000000002C605.1000000000001 205.2 605.1000000000001 206.7 605.1000000000001 207.4C605.1000000000001 222.8 603.1000000000001 226.8 594.8000000000002 226.8C588.5000000000002 226.8 584.0000000000002 223.5 581.7000000000002 217.5C580.7000000000002 214.5 580.7000000000002 213.1999999999999 580.7000000000002 205.1999999999999V137.1999999999999H542.4000000000002V255.7z" />
-			<glyph glyph-name="apple-pay" unicode="" horiz-adv-x="640" d=" M116.9 289.5C109.4 280.6 97.4 273.6 85.4 274.6C83.9 286.6 89.8 299.4 96.7 307.2C104.2 316.3 117.3 322.8 128 323.3C129.2 310.9 124.3 298.6 116.9 289.5M127.8 272.3C110.4 273.3 95.5 262.4 87.3 262.4C78.9 262.4 66.3 271.8 52.5 271.5C34.6 271.2 18 261.1 8.9 245C-9.9 212.7 4 165 22.2 138.7C31.1 125.7 41.7 111.4 55.7 111.9C69 112.4 74.2 120.5 90.2 120.5C106.3 120.5 111 111.9 125 112.1C139.5 112.4 148.6 125.1 157.5 138.1C167.6 152.9 171.8 167.2000000000001 172 168C171.7 168.3 144 178.9 143.7 210.9C143.4 237.7 165.6 250.4 166.6 251.2C154.1 269.8 134.6 271.8 127.8 272.3M228.2 308.5V113.6H258.5V180.2000000000001H300.4C338.7 180.2000000000001 365.5 206.5000000000001 365.5 244.5000000000001S339.1 308.5000000000001 301.4 308.5000000000001H228.2zM258.5 283H293.4C319.7 283 334.7 269 334.7 244.4S319.7 205.6 293.3 205.6H258.5V283zM420.7 112.1C439.7 112.1 457.3 121.7000000000001 465.3 137H465.9V113.6H493.9V210.6C493.9 238.7 471.4 256.9000000000001 436.8 256.9000000000001C404.7 256.9000000000001 380.9000000000001 238.5000000000001 380 213.3000000000001H407.3C409.6 225.3000000000001 420.7 233.2000000000001 435.9000000000001 233.2000000000001C454.4 233.2000000000001 464.8 224.6000000000001 464.8 208.7000000000001V197.9L427 195.6C391.9 193.5 372.9 179.1 372.9 154.1C373 128.9 392.6 112.1 420.7 112.1zM428.9 135.2000000000001C412.8 135.2000000000001 402.5 143.0000000000001 402.5 154.8000000000001C402.5 167.1000000000001 412.4 174.2000000000001 431.3 175.3000000000001L464.9 177.4000000000001V166.4000000000001C464.9 148.2000000000001 449.4000000000001 135.2000000000001 428.9000000000001 135.2000000000001zM531.4 60.6C560.9 60.6 574.8 71.9 586.9 106L640 255H609.2L573.6 139.9H573L537.4 255H505.8L557 113.1L554.2 104.5C549.6 89.9 542.1 84.2 528.7 84.2C526.3000000000001 84.2 521.7 84.5 519.8000000000001 84.7V61.3C521.6 60.9 529.1 60.6 531.4000000000001 60.6z" />
-			<glyph glyph-name="apple" unicode="ï…¹" horiz-adv-x="448" d=" M247.2 310.4C241 308.5 231.9 306.9 219.3 305.8C220.4 362.5 249.2 402.4 307.3 415.9C316.6 374.3 281.2 321.8 247.2 310.4zM368.5 237.7C374.9 247.1 385.1 257.6 399.1 269.4C376.8 297 351 313.7 314 313.7C278.6 313.7 248.8 295.5 227 295.5C208.5 295.5 175.1 311.6 142.5 311.6C72.9 311.6 36 243.5 36 172.6C36 93.8 95.7 -32 156.2 -32C180 -32 201.4 -14 229.7 -14C259 -14 282.5 -31.2 310 -31.2C356 -31.2 398.6 46.3 412 88.5C365.2 102.8 327.6 178.7 368.5 237.7z" />
-			<glyph glyph-name="asymmetrik" unicode="" horiz-adv-x="576" d=" M517.5 138.8C556.3 178.8 575.6 218.8 576 254.9C576.8 320.4 516.6 373.1 406.6 389.9C277.9 409.6 118.1 374.4 0 307.5C52 334 110.6 355.7 170.7 365.7C245.2 386.2 323.7 391.1 392 380.5C544.5 356.7 588.8 253 490.8 148.8C480.6 138 468.8 127.7 455.8 118.2L304.9 344.6L114.7 59.1C49.1 88.5 38.2 149.3 95.6 210.3C116.4 232.5 143.9 252.2 175.1 268.4C195.1 280.6 214.8 291 237.1 299.1C172 278.8 114.4 246.2 75.5 206.2C47.8 177.6 34.1 149.1 33.8 123.3C33.3 88.1999999999999 57.2 58.1999999999999 102.2 40.3L67.7 -11.4H169.3L191.3 22.9999999999999C213.5 21.9999999999999 236.6 22.9999999999999 259.9 25.6999999999999L237.1 -11.4000000000001H372.6L340 41.7C358.6 47 376.9 53.2 394.5 60.4L440.4 -11.4H542L468.6 99C487.1 111.1 503.6 124.5 517.5 138.8zM329.9 58.3L304.9 98.9L272.2 45.6C248.8 42.1 225.5 40.5 203 41.2L304.9 200.5000000000001L383.6 77.5000000000001C366.4 70.1000000000001 348.3 63.6000000000001 329.9 58.3000000000001z" />
-			<glyph glyph-name="audible" unicode="" horiz-adv-x="640" d=" M640 248.1V194.1L320 -5.9L0 194V248L320 48L640 248.1zM445.5 176.1L492.6 205.5C455.4 261.3 391.9000000000001 298.1 319.9000000000001 298.1C247.9000000000001 298.1 184.4 261.4000000000001 147.3000000000001 205.7H147.6000000000001C150.1000000000001 208 152.7000000000001 210.2 155.3000000000001 212.4C245.0000000000001 286.8 374.7000000000001 270.5 445.5 176.1zM225.4 157.3C242.3 169.2 261.9 176 282.8 176C317.2 176 348 157.6 369.2000000000001 128.4L414.6 156.8C393.7000000000001 186.6999999999999 359 206.3 319.8 206.3C280.9000000000001 206.3 246.4 186.9 225.4 157.3zM103.6 286.9C235.4 391.2 421.8 363.3 521.1 224.8L521.8000000000001 223.8L570.6 254.2C517.1 335.9 424.8 389.9 319.9 389.9C216.4 389.9 123.3 336.4 69.4 254.3C79.3 264.8 92.1 277.8 103.6 286.9zM570.6 254.2z" />
-			<glyph glyph-name="autoprefixer" unicode="" horiz-adv-x="640" d=" M318.4 432L157.4 -48H234.9L260.3 33.4H379.8L405 -48H482.5L318.4 432zM278.1 90.1L319.3 220.5H320.8L361.7 90.1H278.0999999999999zM640 43L630 74.4L462.1 90L481.5 33.5L640 43zM177.9 90L10 74.3L0 43L158.5 33.6L177.9 90z" />
-			<glyph glyph-name="avianex" unicode="" horiz-adv-x="512" d=" M453.1 416H141.1C102.2 416 64.9 384.8 57.8 346.3L1.2 37.7C-5.9 -0.8 19.9 -32 58.9 -32H370.9C409.8 -32 447.1 -0.8 454.2 37.7L510.9 346.2C517.9 384.8 492.1 416 453.1 416zM394.9000000000001 68.7L362.9000000000001 55.2L247.5000000000001 165.2C232.8000000000001 155.2 218.3000000000001 145.7 205.8 138.1L227.9 73.9L210 61.2L169.4 122.2L117 170.3L132.7 185.7L190.7 154.6C200 165.1 211.5 177.2 223.5 189.5L203 219.1L134.2 318.9L153 347.8L161.9 352.6L265 240.2L269.9 235.7C289.3 254.5 303.7 268.1 303.7 268.1C311.4 274.6 325.2 271 334.4 260.2C343.4 249.7 345 235.5 337.1 228.9C335.3 227.6 321.6 217.5 301.8 203.3L306.3 196L401.2 76.6L394.8999999999999 68.7z" />
-			<glyph glyph-name="aviato" unicode="" horiz-adv-x="640" d=" M107.2 164.5L88.2 206.3H36.1L17.1 164.5H0L62.2 295.9L124.4 164.5H107.2zM62.2 262.6L42.6 220.1H81.8L62.2 262.6zM174.9 160.2L112.7 291.6H129.8L174.9 195.6L220 291.6H237L174.9 160.2zM255.5 164.5V291.6H271V164.5H255.5zM464.6 280.1V164.5H447.3V280.1H406.1V291.6H505.7V280.1H464.6zM640 229.2C640 220 638.3 211.4 634.9 203.4C631.5 195.4 626.6999999999999 188.3 620.6999999999999 182.3C614.6999999999999 176.3 607.5999999999999 171.5 599.5999999999999 168.1C591.5999999999999 164.7 582.9999999999999 163 573.8 163S556 164.6999999999999 548 168.1C540 171.5 532.9 176.3 526.9 182.3C520.9 188.3 516.1 195.3 512.6999999999999 203.4C509.3 211.4 507.5999999999999 220 507.5999999999999 229.2S509.2999999999999 247 512.6999999999999 255C516.0999999999999 263 520.9 270.1 526.9 276.1C532.9 282.1 539.9 284.5 548 288C556 291.4 564.6 293.1 573.8 293.1S591.5999999999999 291.4 599.5999999999999 288C607.5999999999999 284.6 614.6999999999999 282.2 620.6999999999999 276.1C626.6999999999999 270.1 631.4 263 634.9 255C638.3 247 640 238.4 640 229.2zM624.5 229.2C624.5 236.5 623.2 243.2 620.6 249.5C618 255.8 614.4 261.2 609.8000000000001 265.8C605.2 270.4 599.8000000000001 274 593.6 276.7000000000001C587.4 279.4 580.8000000000001 280.7000000000001 573.8000000000001 280.7000000000001S560.2 279.4 554.0000000000001 276.7000000000001C547.8000000000001 274 542.4000000000001 270.4 537.8000000000001 265.8C533.2 261.2000000000001 529.6 255.8 527.0000000000001 249.5C524.4000000000001 243.2 523.1000000000001 236.4 523.1000000000001 229.2C523.1000000000001 221.9 524.4000000000001 215.2 527.0000000000001 208.9C529.6000000000001 202.6 533.2000000000002 197.2 537.8000000000001 192.6C542.4000000000001 188 547.8000000000001 184.4 554.0000000000001 181.7C560.2000000000002 179 566.8000000000001 177.7 573.8000000000001 177.7S587.4000000000001 179 593.6 181.7C599.8000000000001 184.4 605.2 188 609.8000000000001 192.6C614.4000000000001 197.2 618.0000000000001 202.6 620.6 208.9C623.2 215.2 624.5 222 624.5 229.2zM529.7 132.5V138.8L618.6 148.8L375.7000000000001 135.4C376.3000000000001 137.6 376.8000000000001 140.0000000000001 377.1 142.6C377.4000000000001 144.6 377.6 146.8 377.7000000000001 149.1L442.5000000000001 157.2000000000001L377.6 155.3000000000001C377.6 155.7000000000001 377.5 156.0000000000001 377.5 156.4000000000001C374.7 173.6000000000001 352 180.1000000000001 352 180.1000000000001L350.9 206.4000000000001H374.7L393.7 164.6000000000001H410.8L348.6 296L286.4000000000001 164.6H303.5000000000001L322.5000000000001 206.4H346.1000000000001L345 180S322.3 173.5 319.5 156.3C319.4 156 319.4 155.6 319.4 155.2L254.5 157.1L319.3 149C319.4 146.6999999999999 319.6 144.6 319.9 142.5C320.2 139.8999999999999 320.7 137.5 321.3 135.3L78.4 148.8L167.3 138.8V132.5C161.4 131.6 156.8 126.5 156.8 120.3C156.8 113.5 162.4 107.9 169.2 107.9C176 107.9 181.6 113.5000000000001 181.6 120.3C181.6 126.5 177 131.6 171.1 132.5V138.3L251.4000000000001 129.3V123.9C245.7000000000001 122.8 241.5000000000001 117.7000000000001 241.5000000000001 111.8C241.5000000000001 105 247.1 101.6 253.9000000000001 101.6C260.7000000000001 101.6 266.3 105 266.3 111.8C266.3 117.8 262 122.8 256.4000000000001 123.9V128.8L284.8 125.6V101.9H278.9000000000001V88H284.8V94.6H289.8V88H295.7V101.8H289.8V125L328.1 120.7C336.2000000000001 109.3 347.1 107.1 347.1 107.1L347 100.4L341.9 100.2L341.8 88.1H345.9L346 93.1H351.2L351.3 88.1H355.4000000000001L355.3 100.2L350.2 100.4L350.1 107.1S361 109.2 369.1 120.7L407.4 125V101.8H401.5V88H407.4V94.6H412.4V88H418.3V101.8H412.4V125.5L440.8 128.7V123.8C435.1 122.7 430.9 117.6 430.9 111.7C430.9 104.9 436.5 101.5 443.3 101.5C450.1 101.5 455.6999999999999 104.9 455.6999999999999 111.7C455.6999999999999 117.7 451.3999999999999 122.7 445.8 123.8V129.2L526.0999999999999 138.2V132.4C520.1999999999999 131.5 515.5999999999999 126.4 515.5999999999999 120.2C515.5999999999999 113.4 521.1999999999999 107.8 527.9999999999999 107.8C534.7999999999998 107.8 540.3999999999999 113.4 540.3999999999999 120.2C540.1999999999998 126.5 535.6999999999998 131.6 529.6999999999998 132.5zM328.9000000000001 220.1L348.5000000000001 262.6L368.1000000000001 220.1H350.2000000000001L348.5000000000001 260.4L346.8000000000002 220.1H328.9000000000002z" />
-			<glyph glyph-name="aws" unicode="" horiz-adv-x="512" d=" M261.2 311.9C247.2 254.4 248.1 257.5 235.4 204.9C233.8 198.4 231.3 196.5 224.7 196.4H210.3C204.5 196.5 202.1 198 200.4 203.7C188.1 243.1 171.6 297.8 160.5 334.4C156.4 347.9 159.1 347.6 169.8 347.3C173.5 347.2000000000001 177.1 347.3 180.8 347.3C185.9 347.2000000000001 188.5 345.3 189.9 340.2000000000001C193.5 327.3 195.9 317.4 216.5 236.1C216.9 234.5000000000001 217.4 233.0000000000001 217.9 231.5000000000001H219C219.5 233.5000000000001 220.1 235.4000000000001 220.6 237.4000000000001C228.4 270.3000000000001 236.1 303.3000000000001 243.9 336.2000000000001C246.3 346.4000000000001 250.6 347.4000000000001 260.9 347.4000000000001H268.5C275.4 347.3000000000001 277.5 345.9000000000001 279.2 339.1C285.2 315.7000000000001 302.7 237.3000000000001 305.9 228.7000000000001C311 247.0000000000001 304.1 220.8000000000001 334.4 337.7000000000001C336.5 345.8000000000001 338.5 347.4000000000001 346.7 347.4000000000001H359.4C364.8 347.3000000000001 366.4 345.6 365.1 340.3000000000001C362.7 330.8000000000001 362.2 330.4000000000001 323.8 207.4C320.7 197.5 319.6 196.6 309.2 196.6H298.5999999999999C291.2999999999999 196.6 289.3999999999999 197.9 287.5999999999999 205C283.2999999999999 221.2 264.2999999999999 300.7000000000001 261.2 311.9000000000001zM125.4 200.7C129.6 194.9 133.5 194.4 139.5 198.3L145.8 202.5C152.6 207 153.1 208.8 149.4 216C145.1 224.4 143 233.3 143.1 242.9C143.1 246 143.7 298.6 142.2 309.7C139.5 329 129.7 342.5 110.5 348.4C99.8 351.8 88.8 351.7 77.8 351.4C62.7 351 48.4 346.8 35 340C33.2 339.1 31.3 336.9 30.9 335.1C30.1 331.2 29.8 327 30.2 323C30.8 317.1 32.8 316 38.4 317.9C43.5 319.6 48.4 321.8 53.5 323.3C68 327.7 82.7 329.7 97.6 325C104.7 322.8 109.3 318.1 111.9 311.2C114.9 303.3 114.3 295.1 114.3 287C114.3 281.5 114.2 281.5 108.8 282.5C94.9 285.1 81.1 287.5 66.9 285.6C51.7 283.5 38.3 278.3 28.7 265.6C19.6 253.6 18.7 240 21.3 226.1C24.1 211.1 33.1 200.4 47.7 195.7C68.3 189 87.8 192.4 105.4 205.2C109.2 208 112.6 211.4 116.5 214.7C119.6 209.7 122.3 205 125.4 200.7zM110.1 262.3C113.1 261.9 114.6 260.4 114.4 257.2C114.2 253.4 114.5 249.6 114.1 245.8C112.9 234.1 106.4 226.1 96.2 220.9C88 216.7 79.3 215.1 70.1 215.9C54.9 217.2 49.1 229 50.5 242.2C51.8 254.8 59 261.8 72 264C85.8 266.4 88 265.1 110.1 262.3zM458.9 197.2C480.2 205.8 491.8 223.4 488.1 247.2C485.9 261.8 476.3 271.4 462.9 276.7C448.2000000000001 282.6 429.1 287 414.8 294.9C410.4000000000001 297.3 407.4000000000001 301.2 407.2 306.8C406.8 317.9 411.4 324 422.6 326.6C431.9 328.7 441.4 328.8 450.7 327C458 325.6 465 322.8 472.1 320.7C474.9 319.8 477.9999999999999 318.6 479.9 322.3C483.7 329.6 480.3 341 472.6 344.1C450.1 353.1 427.1 355.7 404.4 345.7C389.8 339.3 379.8 328.3 378.4 311.5C376.8 292.2 385.3 278.1 402.5 269.8C410.2 266.1 418.6 263.9 426.7 260.9C434.8 257.9 442.9 255.1 450.8 251.8C463.1 246.5 462.4 227.6 452 221.8C424.3 206.5 387.1 224.2 382.8 225.6C379.5 226.7 377.5 225.4 376.5 221.9C373.5 210.6 377.2 203.1 388.1 199.2C409.8 191.3 437.7000000000001 188.7 458.9 197.2zM296 34.5C346.8 40.3 394.7 55.3 438.7 81.5C446.7 86.2 454.2 91.8 461.8 97.2C469.1 102.4 465 115.6 450.5 109.4C396.1 86.2 339.3 73.3 280.3 70.5C249.8 69 219.5 70.8 189.2 75.2C126.1 84.4 66.8 104.4 11.6 136.4C9.5 137.6 7.4 138.9 5.1 139.4C0.2 140.5 -2.6 134.7 2.7 129.7C26.7 107.6 53 88.9 81.8 74C135.5 46.3 192.3 31.3 253 32C267.4 32.8 281.8 32.9 296 34.5zM470.7 126.7C485.5 125.9 490.1 120.8 486.4 106.5C482.6 91.7 477.1 77.3 472.5 62.7C471.6 59.8 468.3 56.4 471.7 53.9C475.4 51.3 478.2 54.9 480.7 57.2C490.9 66.7 498.1 78.2 503.2 91C508.6 104.4 512.5 118.2 511.9 132.9C511.7 139.1 510.1 141.7 504.1 143.4C498.7 144.9 493.1 146.2 487.6 146.6C465.9999999999999 148.4 445.1 146.1 425.6 136C422.5 134.3999999999999 419.6 132.3 416.9 130.1C415.8 129.2 413.7 124.8 419.3 124C421.2 123.6999999999999 423.2 124.1 425.2 124.3C442.0999999999999 125.9 453.8 127.6 470.6999999999999 126.6999999999999z" />
-			<glyph glyph-name="bandcamp" unicode="ï‹•" horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM296.2 113.9H115.2L199.9 270H380.9L296.2 113.9z" />
-			<glyph glyph-name="behance-square" unicode="" horiz-adv-x="512" d=" M186.5 155C186.5 135.7 172.5 129.6 155.3 129.6H110.2V182.5H156.2C174.8 182.4 186.5 174.7 186.5 155zM178.8 237.3C178.8 255 165.1 259.2000000000001 149.9 259.2000000000001H110.3V214.4H153C168.1 214.4 178.8 221 178.8 237.3000000000001zM311.1 214.1C292.8 214.1 280.6 202.7 279.4000000000001 184.4H341.6C339.9000000000001 202.9 330.3 214.1 311.1 214.1zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM271.7 263H349.5V281.9H271.7V263zM228.7 152.7C228.7 176.8 217.3 197.6 193.7 204.3C210.9 212.5 219.9 222 219.9 241.3C219.9 279.5 191.4 288.8 158.5 288.8H68V96.8H161.1C196 96.9999999999999 228.7 113.6999999999999 228.7 152.6999999999999zM380 167.5C380 208.6 355.9 242.9 312.4 242.9C270 242.9 241.3 211.1 241.3 169.3C241.3 126 268.6 96.3 312.4 96.3C345.6 96.3 367.1 111.2 377.5 143.1H343.8C340.1 131.2000000000001 325.2 125 313.6 125C291.2000000000001 125 279.5 138.1 279.5 160.3H379.7C379.8 162.6 380 165.1 380 167.5z" />
-			<glyph glyph-name="behance" unicode="" horiz-adv-x="576" d=" M232 210.8C263.8 226 280.4 249 280.4 284.8C280.4 355.4 227.8 372.6 167.1 372.6H0V18.2H171.8C236.2 18.2 296.7000000000001 49.1 296.7000000000001 121.1C296.7000000000001 165.6 275.6 198.5 232.0000000000001 210.8zM77.9 312.1H151C179.1 312.1 204.4 304.2 204.4 271.6C204.4 241.5 184.7 229.4 156.9 229.4H77.9V312.1zM161.2 78.4H77.9V176H162.8C197.1 176 218.8 161.7 218.8 125.4C218.8 89.6 192.9 78.4 161.2 78.4zM519.7 319.1H376V354H519.7V319.1zM576 142.8C576 218.7 531.6 282 451.1 282C372.9000000000001 282 319.8 223.2 319.8 146.2C319.8 66.3 370.1 11.5 451.1 11.5C512.4 11.5 552.1 39.1 571.2 97.8H509C502.3 75.9 474.7 64.3 453.3 64.3C412 64.3 390.3 88.5 390.3 129.6H575.4C575.6999999999999 133.8 576 138.3 576 142.8zM390.4 174C392.7 207.7 415.1 228.8 448.9 228.8C484.3 228.8 502.1 208 505.1 174H390.4z" />
-			<glyph glyph-name="bimobject" unicode="" horiz-adv-x="448" d=" M416 416H32C14.4 416 0 401.6 0 384V0C0 -17.6 14.4 -32 32 -32H416C433.6 -32 448 -17.6 448 0V384C448 401.6 433.6 416 416 416zM352 158.6C352 109.2000000000001 340.6 76 248.2 76H231.3C187.2 76 168.9 90.9 160.9 114.8H160V80H96V312H160V237.3H161.1C165.7 267.8 200.8 276.1 230.8 276.1H248.1C340.5 276.1 351.9000000000001 243.0000000000001 351.9000000000001 193.6V158.6zM288 187.5V164.6C288 142.9 284.6 130.8 249.6 130.8H204.3C175.4 130.8 160.2 137.3 160.2 166.5V185.5C160.2 214.8 175.4 221.2 204.3 221.2H249.6C284.6 221.4 288 209.2 288 187.5z" />
-			<glyph glyph-name="bitbucket" unicode="ï…±" horiz-adv-x="512" d=" M23.1 416C14.2 416.1 7 409.1 6.9 400.2C6.9 399.3 7 398.4 7.1 397.4L74.9 -14C76.6 -24.4 85.6 -32 96.1 -32.1H421.2000000000001C429.1 -32.2 435.9000000000001 -26.5 437.2000000000001 -18.7L505.0000000000001 397.3C506.4 406 500.5000000000001 414.2 491.8000000000001 415.6C490.9000000000001 415.7 490.0000000000001 415.8 489.0000000000001 415.8L23.1 416zM308.4000000000001 118.7H204.6L176.5 265.5H333.5L308.4 118.7z" />
-			<glyph glyph-name="bitcoin" unicode="" horiz-adv-x="512" d=" M504 192C504 55.033 392.967 -56 256 -56S8 55.033 8 192S119.033 440 256 440S504 328.967 504 192zM362.349 227.33C367.286 260.329 342.158 278.069 307.799 289.903L318.945 334.605L291.732 341.386L280.881 297.862C273.727 299.645 266.379 301.326 259.078 302.992L270.007 346.802L242.809 353.583L231.656 308.897C225.734 310.246 219.9209999999999 311.579 214.279 312.981L214.31 313.121L176.78 322.491L169.541 293.429S189.732 288.802 189.3059999999999 288.516C200.3279999999999 285.765 202.3199999999999 278.472 201.9859999999999 272.691L189.2899999999999 221.766C190.0499999999999 221.572 191.0339999999999 221.293 192.119 220.859C191.2119999999999 221.084 190.243 221.332 189.243 221.572L171.447 150.2339999999999C170.098 146.8859999999999 166.68 141.8639999999999 158.976 143.7699999999999C159.2469999999999 143.375 139.196 148.7069999999999 139.196 148.7069999999999L125.6859999999999 117.56L161.0999999999999 108.733C167.6879999999999 107.0819999999999 174.1449999999999 105.3539999999999 180.5 103.727L169.238 58.514L196.4199999999999 51.733L207.5729999999999 96.466A1038.209 1038.209 0 0 1 229.26 90.8389999999999L218.1449999999999 46.3159999999999L245.3579999999999 39.5349999999999L256.6199999999999 84.6629999999999C303.0239999999999 75.8819999999999 337.9189999999999 79.4239999999999 352.6059999999999 121.3899999999999C364.4419999999999 155.1799999999999 352.0169999999999 174.6709999999999 327.6019999999999 187.3809999999999C345.3819999999999 191.4789999999999 358.7759999999999 203.1729999999999 362.3489999999999 227.3299999999999zM300.172 140.151C291.762 106.3609999999999 234.864 124.6279999999999 216.417 129.208L231.361 189.107C249.807 184.504 308.961 175.39 300.172 140.151zM308.589 227.818C300.916 197.082 253.558 212.698 238.196 216.526L251.744 270.853C267.107 267.025 316.58 259.88 308.589 227.818z" />
-			<glyph glyph-name="bity" unicode="" horiz-adv-x="496" d=" M78.4 380.8C173.8 470 324.5 472 421.5 377C435.8 362.9 415.1 339.9 399.1 355.5C314.3 437.9 183.3 435.8 100.2000000000001 358.7C83.9000000000001 343.6 63.7000000000001 367 78.4000000000001 380.8zM177.3 -37.8C196.6 -43.5 206.6 -14.2 185.2 -7.8C73 26.1 9.4 141.9 37.7 253.2C42.7 272.8 12.8 281.3 7.5 260.3C-24.6 132.9 48.6 0.5 177.3 -37.8000000000001zM325.4 -35.8C447.3 4.4 518.3 131.1 489.8 255.2C485.3 274.9 454.9 269 459.8 247.3C483.9999999999999 139.6 422.7 29.4 316.6 -6.1C295.4 -13.1 306.2 -42.1 325.4 -35.8zM262.5 43.2L262.7 115C262.7 123.2 256.1 129.8 247.9 129.8C239.7 129.8 233.1 123.1 233.1 115L232.9 43.2C232.9 35 239.5 28.4 247.7 28.4S262.5 35 262.5 43.2zM333.5 312.2C335.6 221.3 338.2 180.3 248 179.7C155.5 180.4 161.1 224 162.5 312.2C162.5 334 130 331.8 130 312.2V240.6C130 171.3 190.7 149.7 248 150.5C305.3 149.7 366 171.3 366 240.6V312.2C366 331.8 333.5 334 333.5 312.2z" />
-			<glyph glyph-name="black-tie" unicode="" horiz-adv-x="448" d=" M0 416V-32H448V416H0zM316.5 90.8L224 2.1L131.5 90.8L196 274.8L131.5 361.4H316.4L252 274.8L316.5 90.8z" />
-			<glyph glyph-name="blackberry" unicode="" horiz-adv-x="512" d=" M166 331.1C166 307.7 149.6 282 93.5 282H23.4L44.4 370.8H112.2C154.3 370.8 166 347.5 166 331.1zM292.2 370.8H224.4L205.7 282H275.8C329.6 282 345.9 307.7 345.9 331.1C346 347.5 334.3 370.8 292.2 370.8zM88.8 239.9H21L0 151.1H70.1C126.2 151.1 142.6 174.5 142.6 200.2C142.6 216.5 130.9 239.9000000000001 88.8 239.9000000000001zM268.9 239.9H201.1L182.4 151.1H252.5C306.3 151.1 322.6 174.5 322.6 200.2C322.6 216.5 310.9 239.9000000000001 268.9 239.9000000000001zM458.2 293.7H390.4L371.7 204.9H441.8C495.6 204.9 511.9 228.3 511.9 254C512 270.3 500.3 293.7 458.2 293.7zM430.2 155.8H362.4L343.7 67H413.8C469.9 67 483.9 90.4 483.9 116.1C483.9 132.4 472.3 155.8 430.2 155.8zM240.8 102H173L154.3 13.2H224.4C280.5 13.2 294.5 38.9 294.5 62.3C294.6 78.6 282.9 102 240.8 102z" />
-			<glyph glyph-name="blogger-b" unicode="" horiz-adv-x="448" d=" M446.6 225.3C444.8 233.3 439.8 240.7 434.1 243.8C432.3 244.8 421.1 246 409.1 246.5C389 247.4 386.8 247.8 380.4000000000001 251.5C370.3 257.4 367.6 263.8 367.5000000000001 281C367.4000000000001 314 353.7000000000001 344.7 326.6000000000001 372.3C307.3000000000001 392 285.7000000000001 405.3 261.1000000000001 412.8C255.2000000000001 414.6 242.0000000000001 415.2 197.8000000000001 415.7C128.4000000000001 416.5 113.0000000000001 415.1 89.4000000000001 405.7C45.9 388.5 14.7 351.9 3.3 305.1C1.2 296.3 0.7 282.2 0.2 201.2C-0.4 99.7 0.3 84.8 6.6 64.7C22.2 15.1 66.5 -21.6 111 -29.6C125.8 -32.3 308.3 -32.9 327 -30.4C359.5 -26.0000000000001 385 -12.9 408.9 11.4999999999999C426.2 29.1999999999999 437 48.3 444.1 73.6C449 91.2 448.6 216.4 446.6 225.3zM124.5 288.9C132.3 296.8 134.5 297.1 183.3 297.1C227.2 297.1 228.7 297 235.1 293.7C244.4000000000001 289 248.5000000000001 282.4 248.5000000000001 271.8C248.5000000000001 262.3 244.7 255.6 236.2 250.2C231.6 247.3 228.9 247.1 185.9 246.9C159.4 246.7 138.2000000000001 247.3 135.1 248.1C118.5 252.8 112.3 276.6 124.5 288.9zM316.3 89.1L301.4000000000001 86.7000000000001L223.9 85.8000000000001C155.8000000000001 85.0000000000001 136.6 86.2000000000001 133 87.8000000000001C125.9 90.9000000000001 119.2 99.5000000000001 118.1 107.2000000000001C117 114.5000000000001 120.7 124.5000000000001 126.3 129.6C133.4 136 136.5 136.2000000000001 223.6 136.3C313.2000000000001 136.4 312.7000000000001 136.4 321.2000000000001 128.5C333.3000000000001 117.2 330.7000000000001 97.3 316.3000000000001 89.1z" />
-			<glyph glyph-name="blogger" unicode="" horiz-adv-x="448" d=" M162.4 252C167.2 256.9 168.6 257.1 198.8 257.1C226 257.1 226.9 257 230.9 255C236.7 252.1 239.2 248 239.2 241.4C239.2 235.5 236.8 231.4 231.6 228C228.8 226.2 227.1 226.1 200.5 225.9C184.1 225.8 171 226.1 169 226.7C158.7 229.6 154.9 244.4 162.4 252.0000000000001zM223.8 157.5C169.9 157.5 168 157.3 163.6 153.4C160.1 150.3 157.9 144 158.5 139.5C159.2 134.8 163.3000000000001 129.4 167.7 127.5C169.9 126.5 181.8 125.8 224 126.3L271.9 126.9L281.1 128.4C290.1 133.5000000000001 291.6 145.8 284.2 152.8C278.9 157.5 279.2 157.5 223.8 157.5zM447.2000000000001 27.4C443.7000000000001 -1 424.2000000000001 -23 396.1 -30.1C388.9000000000001 -31.9 386.4000000000001 -32 223.2 -31.9C65.4 -31.9 57.3 -31.8 51.2 -30.1C42.8 -27.9 35.6 -24.6 28.9 -20.1C23.3 -16.3 15 -8.3 11.9 -3.7C8.1 1.9 3.7 11.6 1.9 18.3C0.1 25 0 27.7 0 191.7C0 354.8 0 358.3 1.8 365.4C8.1 390.1 27.7 409 53 414.6C60.3 416.2 385.1 416.5 393 414.9C414.2 410.6 430.9 397.8 440.6 378.5C448.3 363.2 447.6 380 447.9000000000001 197.9C448.1 82.1 447.9000000000001 33.4 447.2000000000001 27.4zM361.8000000000001 212.6C360.7000000000001 217.6 357.6000000000001 222.2 354.1000000000001 224.1C353.0000000000001 224.7 346.1000000000001 225.4 338.6000000000001 225.8C326.2000000000001 226.4 324.8000000000001 226.6 320.8000000000001 228.9C314.6000000000001 232.5 312.9000000000001 236.5 312.8000000000001 247.2C312.8000000000001 267.6 304.3000000000001 286.6 287.5000000000001 303.7C275.5000000000001 315.9 262.2000000000001 324.2 246.9000000000001 328.8C243.3000000000001 329.9 235.1000000000001 330.3 207.7000000000001 330.6C164.8000000000001 331.1 155.2000000000001 330.2 140.6000000000001 324.4C113.6000000000001 313.7 94.3000000000001 291 87.2000000000001 262C85.9000000000001 256.5999999999999 85.6000000000001 247.8 85.3 197.6999999999999C84.9 134.8999999999999 85.3 125.5999999999999 89.3 113.1999999999999C99 82.4999999999999 126.4 59.8 153.9 54.8C163.1 53.1 276.1 52.6999999999999 287.6 54.3C307.7000000000001 56.9999999999999 323.5 65.1 338.3 80.1999999999999C349 91.0999999999999 355.7 102.9999999999999 360.1 118.6999999999999C363.3 129.5999999999999 363 207.0999999999999 361.8 212.5999999999999z" />
-			<glyph glyph-name="bluetooth-b" unicode="" horiz-adv-x="320" d=" M196.48 187.977L289.106 291.31L143.125 448V241.67L57.014 327.781L25.608 296.376L133.669 187.977L25.608 79.578L57.014 48.173L143.125 134.284L145.84 -64L294.392 84.644L196.48 187.977zM237.34 290.973L187.363 240.995L187.025 341.29L237.34 290.973zM187.363 134.96L237.34 84.982L187.025 34.6659999999999L187.363 134.9599999999999z" />
-			<glyph glyph-name="bluetooth" unicode="" horiz-adv-x="448" d=" M292.6 276.9L249.7 234L249.4 320L292.6 276.9M249.4 57.1L292.5 100.2000000000001L249.6 143.1L249.4 57.1zM416 188.6C416 -17 344.1 -64 230.9 -64S32 -17 32 188.6S115.4 448 228.6 448S416 394.1 416 188.6zM257.5 188.6L336.9 277.2000000000001L211.8 411.5V234.6L138 308.4L111 281.5L203.7 188.5L111 95.5L137.9 68.6L211.7 142.4L214 -27.6L341.4 99.9L257.5 188.6z" />
-			<glyph glyph-name="btc" unicode="ï…š" horiz-adv-x="384" d=" M310.204 205.362C337.9340000000001 219.542 355.581 244.752 351.4840000000001 286.662C346.1260000000001 344.013 299.0260000000001 363.235 236.6340000000001 368.591V448H188.1060000000001V370.7970000000001C175.5010000000001 370.7970000000001 162.5810000000001 370.482 149.662 370.1670000000001V448H101.134V368.591C83.2920000000001 368.052 62.512 368.315 3.764 368.591V316.913C42.078 317.591 62.181 320.053 66.787 295.486V78.057C63.862 58.565 48.263 61.372 13.532 61.986L3.765 4.32C92.246 4.32 101.135 4.005 101.135 4.005V-64H149.663V3.06C162.897 2.745 175.817 2.745 188.107 2.745V-64H236.635V4.005C317.9340000000001 8.417 372.2820000000001 28.899 379.5300000000001 105.472C385.201 166.918 356.2100000000001 194.334 310.2040000000001 205.362zM150.608 313.447C178.023 313.447 263.7340000000001 321.954 263.7340000000001 264.919C263.7340000000001 210.404 178.0240000000001 216.707 150.608 216.707V313.447zM150.608 61.671V168.179C183.38 168.179 283.735 177.317 283.735 114.924C283.7340000000001 54.738 183.38 61.671 150.608 61.671z" />
-			<glyph glyph-name="buromobelexperte" unicode="" horiz-adv-x="448" d=" M0 416V288H128V416H0zM120 296H8V408H120V296zM160 416V288H288V416H160zM280 296H168V408H280V296zM320 416V288H448V416H320zM440 296H328V408H440V296zM0 256V128H128V256H0zM120 136H8V248H120V136zM160 256V128H288V256H160zM280 136H168V248H280V136zM320 256V128H448V256H320zM440 136H328V248H440V136zM0 96V-32H128V96H0zM120 -24H8V88H120V-24zM160 96V-32H288V96H160zM280 -24H168V88H280V-24zM320 96V-32H448V96H320z" />
-			<glyph glyph-name="buysellads" unicode="" horiz-adv-x="448" d=" M224 297.3L266.9 136.6H181.1L224 297.3zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM382.7 42.7L288.2 341.4H159.8L65.3 42.7H156L267.7 134.3L291.9 42.6999999999999H382.7z" />
-			<glyph glyph-name="cc-amazon-pay" unicode="" horiz-adv-x="576" d=" M124.7 246.2C124.8 258 124.7 269.7 124.7 281.5V316.8C124.7 318.1 125.1 318.8 126.1 319.5C137.6 327.5 150.2 331.6 164.3 330.6C176.8 329.7 187 323.6 192.4 308.9C195.7 300 196.5 290.7000000000001 196.5 281.2000000000001C196.5 272.5 195.8 263.9 193.1 255.6C187.4 237.8 174.4 230.9000000000001 157.4 231.7C145.7 232.2 135.5 236.7 126 243.4C125.1 244.2 124.6 245 124.7 246.2zM279.6 231.6C284.2000000000001 229.8 288.9000000000001 229.6 293.7000000000001 230.1C305.3000000000001 231.3 315.6 235.8 325.0000000000001 242.6C325.9000000000001 243.2 326.3000000000001 243.9 326.3000000000001 245.1C326.2000000000001 249 326.3000000000001 253 326.3000000000001 256.9C326.3000000000001 260.9 326.2000000000001 264.9 326.3000000000001 268.9C326.3000000000001 270.3 325.9000000000001 270.9 324.5000000000001 271.1C317.5000000000001 272 310.6000000000001 273.3 303.6000000000001 274C296.6000000000001 274.6 289.6000000000001 274.3 282.8000000000001 272.1C276.1000000000001 269.9 271.1000000000001 265.9 269.1000000000001 259C267.5000000000001 253.6 267.5000000000001 248.2 269.2000000000001 242.8C270.8000000000002 237.3 274.4000000000001 233.6 279.6000000000001 231.6zM576 368V16C576 -10.5 554.5 -32 528 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H528C554.5 416 576 394.5 576 368zM368.5 344.1C368.9 342.4 369.4 340.7 370.1 339C386.6 298.4 403 257.7 419.6 217.1C421 213.6 421.3 210.7 419.8 207.2C417 201 414.9000000000001 194.6 412 188.5C409.4 183 405.3 179 399.3 177.3C395.1 176.2 390.8 176 386.4000000000001 176.4C384.3 176.6 382.2000000000001 177.1 380.1 177.2000000000001C377.3 177.4 375.9000000000001 176.1 375.8 173.2000000000001C375.7 170.4 375.7 167.6 375.8 164.9C375.9000000000001 160.3 377.4000000000001 158.2000000000001 382 157.4C386.7 156.6 391.4 155.8 396.2 155.7000000000001C410.5 155.4 421.9 161.1 429.3 173.6C432.2 178.5 434.9000000000001 183.7000000000001 437 189C456.8 239.1 476.5 289.3 496.2 339.5C496.8 341 497.3 342.5 497.5 344.1C497.9 346.5 496.8 347.7 494.4 347.8C488.8 347.9 483.3 347.8 477.7 347.8C474.6 347.8 472.4 346.4 471.3 343.5C470.9 342.4 470.4 341.2 470 340.1L440.9 256.4C438.8 250.3 436.7 244.3 434.4 237.8C434 238.7 433.8 239.2 433.6 239.7C422.8 269.6 412 299.6 401.2 329.5C399.5 334.2 397.7 339 395.9 343.7C395 346.2 393.2 347.7 390.5 347.7C384.1 347.8 377.7 347.9 371.3 347.8C369.1 347.8 368 346.2 368.5 344.1zM242.4 242C244.1 230.3 250 221.2 260.4 215.4C270.3 209.9 281.1 209.2 292.1 210.8C304.8 212.7 316 218.1 325.9 226.3C326.3 226.6 326.7 226.9 327.3 227.3C327.8 224.1 328.2 221.1 328.8 218.1C329.3 215.5 330.9 213.8 333.3 213.7C337.9 213.6 342.4 213.6 347 213.7C349.3 213.8 350.8 215.3 351 217.6C351.1 218.4 351.1 219.2 351.1 219.9V308.7000000000001C351.1 312.3000000000001 350.9 315.9000000000001 350.4 319.5000000000001C348.8 330.3000000000001 344.2 339.2000000000001 334.5 344.9000000000001C328.9 348.2000000000001 322.7 349.9000000000001 316.3 350.8000000000001C313.3 351.2000000000001 310.3 351.5000000000001 307.2 351.9000000000001H297.2C296.4 351.8000000000001 295.6 351.6000000000001 294.7 351.6000000000001C286.5 351.2000000000001 278.4 350.2000000000001 270.5 348.1000000000001C265.4 346.8000000000001 260.5 344.9000000000001 255.5 343.2000000000001C252.5 342.2000000000001 251 340.0000000000001 251.1 336.7000000000001C251.2 333.9000000000001 251 331.1000000000001 251.1 328.4000000000001C251.2 324.3000000000001 252.9 323.2000000000001 256.8 324.3000000000001C263.3 326.0000000000001 269.9000000000001 327.8000000000001 276.5 329.1000000000001C286.8 331.0000000000001 297.2 331.8000000000001 307.6 330.3000000000001C313 329.5000000000001 318.1 327.9000000000001 321.7000000000001 323.3000000000001C324.8000000000001 319.3000000000001 325.9000000000001 314.5000000000001 326.1 309.6000000000001C326.4000000000001 302.7000000000001 326.3 295.7000000000001 326.4000000000001 288.8000000000001C326.4000000000001 288.4000000000001 326.3 288.1000000000001 326.2000000000001 287.6000000000001C325.8000000000001 287.6000000000001 325.4000000000001 287.6000000000001 325.1 287.7000000000001C316.3 289.8000000000001 307.4000000000001 291.3000000000001 298.3 291.8000000000001C288.8 292.3000000000001 279.4000000000001 291.7000000000001 270.4000000000001 288.6000000000001C259.6 284.8000000000001 250.9000000000001 278.3000000000001 245.8000000000001 267.8000000000001C241.7000000000001 259.5000000000001 241.2000000000001 250.8000000000001 242.4000000000001 242.0000000000001zM98.7 341.1V165.8C98.7 165 98.7 164.1 98.8 163.3C99 160.8 100.5 159.1999999999999 102.9 159.1C108.8 159 114.7 159 120.6 159.1C123.1 159.1 124.6 160.8 124.7 163.2C124.8 164 124.8 164.9 124.8 165.7V226.4C125.7 225.7 126.2 225.2 126.7 224.8C141.7 212.3 158.9 208.2 177.8 211.9C194.9 215.3 206.7 225.8 214.5 241.1C220.3 252.7 222.8 265.2 223.2 278.1C223.7 292.4 222.2 306.5 216.4 319.8C209.3 336.2 197.5 347.1 179.7 350.7C177 351.3 174.2 351.5 171.5 351.9H164.5C163.3 351.7 162.1 351.6 160.9 351.4C149.2 350 138.6 345.6 129.1 338.7C127.1 337.3 125.2 335.7 123.2 334.2C123.1 334.7 122.9 335 122.8 335.4C122.4 337.7 122.1 340 121.7 342.3C121.1 346.2 119.2 347.8 115.3 347.9H105.6C99.7 348 98.7 346.9 98.7 341.1zM493.6 109C490.9 109.7 488.5 109 486 108C442.1 89.6 396.5 77.8 349.2 72.2C334.7 70.5 320.1 69.4 305.5 69C278.9 68.3 252.3 69.8 225.9 73.3C208.1 75.7 190.4 79 172.9 83.2C135.9 92.1 100.2 104.9 66.2 122C57.4 126.4 48.8 131.3 40.1 136C36.3 138.1 33.9 137.5 31.9 133.9V132.2C33.1 130.6 34.1 128.8 35.6 127.4C71.6 95.2 112.2 70.9 157.6 54.5C179.5 46.6 202 40.8 224.9 37C238.9 34.7 252.9 33.2 267.1 32.5C270.1 32.4 273.1 32.3 276.1 32.1C276.8 32.1 277.5 31.9 278.2 31.8H295.9C296.6 31.9 297.3 32.1 298 32.1C312.9 32.5 327.8 33.9 342.6 36.1C364 39.3 385 44.2 405.5 50.8C435.1 60.4 463.2 73.2 488.9 90.9C491.7 92.8 494.6 94.7000000000001 496.9 97.1C501.2 101.5 499.2 107.5 493.6 109zM544 136.7C543.2 140.9 540 142.5 536.4 143.7C530.6999999999999 145.6 524.8 146.5 518.8 147C507.8 147.9 496.8 147.4 485.9999999999999 145.4C473.9999999999999 143.2 462.6 139.3 452.4999999999999 132.3C451.3 131.5 450.1 130.5 449.3999999999999 129.3C448.7999999999999 128.4 448.7 127 448.8999999999999 125.9C449.2 124.6 450.5999999999999 124.3 451.8999999999999 124.4C452.4999999999999 124.4 453.0999999999999 124.4 453.6999999999999 124.5L473.1999999999999 126.6C482.8 127.5 492.3999999999999 128.1 501.9999999999999 127.4C506.1 127.1 510.1 126.2000000000001 514 125.2000000000001C518.3 124.1 520.2 120.8000000000001 520.4 116.5000000000001C520.6999999999999 109.8000000000001 519.1999999999999 103.4 517.5 97.0000000000001C514 84.1000000000001 509.2 71.6000000000001 504.2 59.2000000000001C503.9 58.4 503.5 57.5000000000001 503.4 56.7000000000001C503 54.2 504.4 52.7 506.8 53.2C508.1999999999999 53.5000000000001 509.8 54.3000000000001 510.8 55.3000000000001C514.5 58.9000000000001 518.3 62.5000000000001 521.4 66.5000000000001C532.1 80.3000000000001 538.4 96.1000000000001 542.1 113.1000000000001C542.8000000000001 116.1000000000001 543.3000000000001 119.2000000000001 543.8000000000001 122.2000000000001C544.0000000000001 126.9000000000001 544.0000000000001 131.8000000000001 544.0000000000001 136.7000000000001z" />
-			<glyph glyph-name="cc-amex" unicode="" horiz-adv-x="576" d=" M576 192.6C538.1 192.8 531.8 193.5 521.5 187.6V192.6C476.2 192.6 468 194.3 456.6 187.4V192.6H378.4000000000001V187.5C367.0000000000001 194 357.0000000000001 192.6 302.7000000000001 192.6V187C296.4000000000001 190.7 288.2000000000001 192.6 278.4000000000001 192.6H220.4C216.9 188.8 207.9 178.9 204.7000000000001 175.4C192.0000000000001 189.5 194.2000000000001 187 189.2000000000001 192.6H106.1000000000001V100.3H188.1000000000001C191.4000000000001 103.8 201.0000000000001 114.1999999999999 204.2000000000001 117.6999999999999C216.9 103.3999999999999 214.5000000000001 105.9999999999999 219.6000000000001 100.3H268.5000000000001C268.5000000000001 115 268.6000000000001 108.6 268.6000000000001 123.3C280.1000000000001 123.1 292.9000000000001 123.5 302.9000000000001 129.5C302.9000000000001 115.6 302.8000000000001 112.3999999999999 302.8000000000001 100.3H342.4000000000001C342.4000000000001 118.8 342.5000000000001 107.6999999999999 342.5000000000001 125.6C348.7000000000001 125.6 350.2000000000001 125.6 351.9000000000001 125.5C352.0000000000001 124.1999999999999 351.9000000000001 125.5 351.9000000000001 100.3C504.7000000000001 100.3 497.8000000000001 99.1999999999999 508.6000000000001 104.8V100.3C543.4000000000001 100.3 563.4000000000001 98.1 576.1000000000001 106.4V16C576.1000000000001 -10.5 554.6000000000001 -32 528.1000000000001 -32H48C21.5 -32 0 -10.5 0 16V219.7H26.6C30.8 229.8 28.8 225 33 235H52.2C56.4 225 54.4 229.8 58.6 219.7H111.5V231.1C113.7 226.1 112.6 228.6 116.6 219.7H146.1C148.5 225.2 148.7 225.5 151.2 231.1V219.7H286.7V244.8C293.1 244.8 294.7 244.9 296.5 244.6C296.5 244.6 296.3 233.7 296.6 219.8H363.1V228.7C370.5 222.8 380.5 219.8 392.8 219.8H419.6C423.8 229.9 421.8 225.1 426 235.1H445C451.5 220.1 445.2 234.6 451.6 219.8H504.4V241.7C516.2 222 512.2 228.8 517.6 219.8H559.2V311.8H519.3000000000001V293.4C507.1000000000001 313.6 513.0000000000001 303.8 508.1000000000001 311.8H464.8000000000001V291.2C458.6000000000001 305.8 460.2 302 456.0000000000001 311.8H423.6000000000001C423.2000000000001 311.8 421.3000000000001 311.6 421.3000000000001 312.1H393.7000000000001C380.9000000000001 312.1 370.6 308.9 363.0000000000001 302.8V312.1H323.1000000000001V306.8C312.3000000000001 312.9 302.4000000000001 311.9 258.7000000000001 312.1C258.6 312.1 247.1000000000001 312.2 247.1000000000001 312.1H144.1000000000001C141.6000000000001 306 137.3000000000001 295.7 131.5000000000001 282.1C128.7000000000001 288.1 120.5000000000001 305.9 117.6000000000001 312.1H71.6000000000001V291C64.2000000000001 308.4 66.9000000000001 302 62.6000000000001 312.1H22.9C19.5 304.2 9.2 280.1 -0.2 258.2V368C-0.2 394.5 21.3 416 47.8 416H527.8C554.3 416 575.8 394.5 575.8 368V192.6zM389.4 273.2C389.1 273 388 271 388 265.6C388 259.6 388.9 257.9 389.1 257.7C389.3 257.6 390.2000000000001 257.2 392.5 257.2L399.8 274.1C398.7 274.1 397.7 274.2 396.7 274.2C391.1 274.2 389.7 273.5 389.4 273.2zM369.5 142.3C378.7 139 380.5 132.8 380.5 123.9L380.4 110.1H363.8L363.9 121.6C363.9 133.4 360.1 135.4 349.1 135.4H331.5L331.3999999999999 110.1H314.7999999999999L314.8999999999999 179.4H354.2999999999999C367.2999999999999 179.4 381.3999999999999 177.1 381.3999999999999 160.7C381.2999999999999 153.1 377.2 145.4 369.5 142.3zM363.2 157.6999999999999C363.2 164.0999999999999 357.6 165.0999999999999 352.5 165.0999999999999H331.5V149.4999999999999H352.2C357.8 149.4999999999999 363.2 150.7999999999999 363.2 157.6999999999999zM544.9 164.8H575V179.4H542.1C529.3000000000001 179.4 518.3000000000001 172.8 518.3000000000001 158.7C518.3000000000001 125.7 561.0000000000001 145.9 561.0000000000001 131.3C561.0000000000001 126.2 556.7000000000002 124.9 552.6000000000001 124.9H520.6000000000001L520.5000000000001 110.1H552.5000000000001C560.9000000000001 110.1 570.1000000000001 111.9 575.0000000000001 119V144.8C564.5000000000001 158.6 535.7000000000002 146.1 535.7000000000002 158.3C535.7000000000002 164.1 540.3000000000002 164.8 544.9000000000002 164.8zM445.7 165.1V179.4H390.5L390.4 110.1H445.6L445.7 124.4L407.1 124.7V138.5H445V152.6H407.2V165.1H445.7zM487.9 125H455.7L455.6 110.1999999999999H487.8C502.6 110.1999999999999 514 115.8 514 132.1999999999999C514 165.3999999999999 471.1 143.3999999999999 471.1 158.5C471.1 164.1 476 164.8999999999999 480.3 164.8999999999999H510.7V179.5H477.5C464.7 179.5 454 172.8999999999999 454 158.8C454 125.8 496.7 146.3 496.7 131.4C496.6 126 492 125 487.9 125zM409.8 283.7C392.4 284 376.6 287.8 376.6 264C376.6 252.2 379.4 244.1 392.7 244.1H400.1L423.6 298.5999999999999H448.4L476.3 233.2V298.5999999999999H501.6L530.6999999999999 250.5V298.5999999999999H547.5999999999999V229.6H524L492.8 281.5V229.6H459.1L452.5 244.9H418.2L411.8 229.6H392.6C369.8 229.6 359.6 241.4 359.6 263.5999999999999C359.6 286.9 370.1 298.8999999999999 393.6 298.8999999999999H409.7000000000001V283.7zM424.1 259.2H446.9L435.7 286.8L424.1 259.2zM351.5 298.8H334.6V229.5H351.5V298.8zM313.4 261.5C322.9 258.2 324.4 252.3 324.4 243.1V229.6H307.8C307.5 244.4 311.4 254.7 293 254.7H275V229.6H258.6V298.8999999999999L297.7 298.5999999999999C311 298.5999999999999 325.1 296.5999999999999 325.1 280.2C325.2 272.2 320.8 264.4999999999999 313.4 261.4999999999999zM306.7 276.8C306.7 283.2 301.1 284.2 296 284.2H275V268.9H295.7C301.4 268.9 306.7 270.2 306.7 276.8zM247.2 284.2V298.8H191.7V229.5H247.2V243.8H208.3V257.6H246.1V271.7H208.3V284.2H247.2zM162.6 229.5V283.7L138.6 229.5H124L100 283.7V229.5H66.2L59.8 244.8H25.3L18.9 229.5H1L30.7 298.8H55.2L83.3 233.1V298.8H110.4L132.1 251.8L151.8 298.8H179.4V229.5H162.6zM53.9 259.2L42.4 286.8L31.2 259.2H53.9zM306.9 156.7C306.9 128.8 276.5 133.4 257.6 133.4L257.5 110.1H225.3L204.9 133.1L183.5999999999999 110.1H118.1999999999999L118.2999999999999 179.4H184.7999999999999L205.2999999999999 156.6L226.3 179.4H279C294.6 179.4 306.9 174 306.9 156.7zM194.2 144.9L176.3 165.1H134.6V152.6H170.9V138.5H134.6V124.6999999999999H175.2L194.2 144.8999999999999zM241 172L215.7 144.6L241 116.5V172zM289.3 156.7C289.3 162.8 284.7 165.1 279.1 165.1H257.6V147.5H278.8C284.7 147.5 289.3 150.3 289.3 156.6999999999999z" />
-			<glyph glyph-name="cc-apple-pay" unicode="" horiz-adv-x="576" d=" M302.2 229.6C302.2 212.4 291.7 202.5 273.2 202.5H248.9V256.7H273.3C291.7 256.7 302.2 246.9 302.2 229.6zM349.7 167C349.7 158.7 356.9 153.3 368.2 153.3C382.6 153.3 393.4 162.4 393.4 175.2V182.9L369.9 181.4C356.6 180.5 349.7 175.6 349.7 167zM576 369V17C576 -9.5 554.5 -31 528 -31H48C21.5 -31 0 -9.5 0 17V369C0 395.5 21.5 417 48 417H528C554.5 417 576 395.5 576 369zM127.8 250.8C136.2 250.1 144.6 255 149.9 261.2000000000001C155.1 267.6 158.5 276.2000000000001 157.6 284.9C150.2 284.6 141 280 135.7 273.6C130.9 268.1 126.8 259.2 127.8 250.8zM188.4 176.3C188.2 176.5 168.8 183.9 168.6 206.3C168.4 225 183.9 234 184.6 234.5C175.8 247.5 162.2 248.9 157.5 249.2C145.3 249.9 134.9 242.3 129.1 242.3C123.2 242.3 114.4 248.9 104.8 248.7C92.3 248.5 80.6 241.4 74.3 230.1C61.2 207.5 70.9 174.1 83.6 155.7C89.8 146.6 97.3 136.6 107.1 137C116.4 137.4 120.1 143 131.3 143C142.6 143 145.8 137 155.6 137.1C165.8 137.3 172.1 146.2000000000001 178.4 155.3C185.3 165.7 188.2 175.7 188.4 176.3zM323.8 229.7C323.8 256.3 305.3 274.5 278.9000000000001 274.5H227.7000000000001V138.1H248.9000000000001V184.7000000000001H278.2000000000001C305.0000000000001 184.7000000000001 323.8000000000001 203.1000000000001 323.8000000000001 229.7000000000001zM413.8 206C413.8 225.7 398 238.4000000000001 373.8 238.4000000000001C351.3 238.4000000000001 334.7 225.5000000000001 334.1 207.9H353.2000000000001C354.8000000000001 216.3000000000001 362.6 221.8000000000001 373.2000000000001 221.8000000000001C386.2000000000001 221.8000000000001 393.4000000000001 215.8000000000001 393.4000000000001 204.6000000000001V197.1000000000001L367.0000000000001 195.5000000000001C342.4000000000001 194.0000000000001 329.1000000000001 183.9 329.1000000000001 166.4C329.1000000000001 148.7000000000001 342.8000000000001 137.0000000000001 362.5000000000001 137.0000000000001C375.8000000000001 137.0000000000001 388.1000000000001 143.7000000000001 393.7000000000001 154.4H394.1V138H413.7000000000001V206zM516 237.1H494.5L469.6 156.5H469.2L444.3000000000001 237.1H422L457.9 137.8L456 131.8C452.8 121.6 447.5 117.6 438.1 117.6C436.4000000000001 117.6 433.2000000000001 117.8 431.9000000000001 117.9V101.5000000000001C433.1 101.1000000000001 438.4000000000001 101.0000000000001 440.0000000000001 101.0000000000001C460.7 101.0000000000001 470.4 108.9 478.9 132.8000000000001L516 237.1z" />
-			<glyph glyph-name="cc-diners-club" unicode="" horiz-adv-x="576" d=" M239.7 368.1C142.8 368.1 63.9 289.5 63.9 192.3C63.9 95.4 142.8 16.5 239.7 16.5C336.9 16.5 415.5 95.4 415.5 192.3C415.5 289.5 336.9 368.1 239.7 368.1zM199.8 88.5C158.1 104.4 128.4 144.9 128.4 192.3S158.1 280.2000000000001 199.8 296.4V88.5zM279.6 88.2V296.4C321.3 280.2000000000001 351 239.7 351 192.3S321.3 104.4 279.6 88.2000000000001zM528 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H528C554.5 -32 576 -10.5 576 16V368C576 394.5 554.5 416 528 416zM329.7 0H239.4C133.2 0 45.6 85.5 45.6 190.2C45.6 304.8 133.2 384 239.4 384H329.7C434.7 384 530.4 304.8 530.4 190.2C530.4 85.5 434.7 0 329.7 0z" />
-			<glyph glyph-name="cc-discover" unicode="" horiz-adv-x="576" d=" M83 235.9C83 228 79.8 220.4 74.1 215.2C69.2 210.8 62.5 208.8 52.2 208.8H48V263H52.2C62.5 263 68.9 261.3 74.1 256.4C79.8 251.4 83 243.8 83 235.9zM504.8 264H499.9V239.1H504.6C514.9 239.1 520.4 243.5 520.4 251.9C520.4 259.8 514.9 264 504.8 264zM576 368V16C576 -10.5 554.5 -32 528 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H528C554.5 416 576 394.5 576 368zM428 195H473.3V208.8H444V231H472.3V244.8H444V263H473.3V277H428V195zM341.8 277L376.8 192.8H385.4000000000001L420.9000000000001 277H403.4000000000001L381.2000000000001 221.8L359.3000000000001 277H341.8000000000001zM258.8 235.4C258.8 210.8 278.7 190.8 303.4000000000001 190.8C328.0000000000001 190.8 348.0000000000001 210.7 348.0000000000001 235.4C348.0000000000001 260 328.1000000000001 280 303.4000000000001 280C278.8 280 258.8 260.1 258.8 235.4zM190.8 235.9C190.8 203.4 224.4 183.4 254.1 197.7V216.7C234.8 197.4 207.3 210.9 207.3 235.9C207.3 259.6 234 275 254.1 254.9V273.9C223.9 288.9 190.8 267.1 190.8 235.9zM156.9 207.6C149.3 207.6 143.1 211.3 139.4 218.4L129.1 208.5C146.9 182.4 185.7 190.3 185.7 219.8C185.7 232.9 180.3 238.8 162.1 245.4C152.5 248.8 149.8 251.3 149.8 255.7C149.8 264.4 164.3 269.8 174.7 258.2000000000001L183.1 269C164 286.1 133.4 277.9000000000001 133.4 254.7C133.4 243.4 138.6 237.5000000000001 153.6 232.0000000000001C179.3 222.9 168.3 207.6 156.9 207.6zM99.5 235.9C99.5 260 81.5 277 55.4 277H32V195H55.4C86.3 195 99.5 217.4 99.5 235.9zM122.9 277H106.9V195H122.9V277zM544 160C510.7 139.2 317.6 35.6 128 0H529C537.2 0 544 6.8 544 15V160zM544 195L518.1 229.5C530.2 232 536.8000000000001 240.1 536.8000000000001 252.7C536.8000000000001 281.2 506.5000000000001 277.1 483.9000000000001 277.1V195.1H499.9000000000001V227.9H502.1000000000001L524.3000000000001 195.1H544z" />
-			<glyph glyph-name="cc-jcb" unicode="" horiz-adv-x="576" d=" M431.5 203.7V236C472.7 236 470 235.8 470 235.8C477.3 234.5 483.3 228.5 483.3 219.8C483.3 211 477.3 205.3 470 204C468.8 203.6 466.7 203.7 431.5 203.7zM474.3 183.5C471.5 184.2 471 184 431.5 184V149C471.1 149 471.5 148.8 474.3 149.5C481.8 151 487.8 157.5 487.8 166.5C487.8 175.2 481.8 182 474.3 183.5zM576 368V16C576 -10.5 554.5 -32 528 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H528C554.5 416 576 394.5 576 368zM182 255.7H125C125 188.6 135.7 146 89.2 146C69.7 146 50.4 151.7 32 160.8V132.8C62 124.5 100 124.5 100 124.5C197.9 124.5 182 172.2 182 255.7zM360.5 251.2C297.1 267.2 195.5 266.1 195.5 191.9C195.5 114.8 303.7 118.3 360.5 132.7V161C312.9 136.3 253 139 253 192S312.8 247.6 360.5 223.2V251.2zM544 161.5C544 180 527.5 192 506 193.5V194.3C525.5 197 536.3 209.8 536.3 224.5C536.3 243.5 520.5999999999999 254.5 499.3 255.5C499.3 255.5 505.6 255.8 379 255.8V128.3H501.6999999999999C525.9999999999999 128.2 543.9999999999999 141.2 543.9999999999999 161.5z" />
-			<glyph glyph-name="cc-mastercard" unicode="" horiz-adv-x="576" d=" M482.9 37.7C482.9 30.9 478.3 26 471.7 26C464.9 26 460.5 31.2 460.5 37.7C460.5 44.2 464.9 49.4 471.7 49.4C478.3 49.4 482.9 44.2 482.9 37.7zM172.1 49.4C165 49.4 160.9 44.2 160.9 37.7C160.9 31.2 165 26 172.1 26C178.6 26 183 30.9 183 37.7C182.9 44.2 178.6 49.4 172.1 49.4zM289.6 49.7C284.2 49.7 280.9 46.2 280.1 41H299.2C298.3 46.7 294.8 49.7 289.6 49.7zM397.4 49.4C390.6 49.4 386.5 44.2 386.5 37.7C386.5 31.2 390.6 26 397.4 26C404.2 26 408.6 30.9 408.6 37.7C408.6 44.2 404.2 49.4 397.4 49.4zM503.3 23.3C503.3 22.9999999999999 503.6 22.8 503.6 22.1999999999999C503.6 21.8999999999999 503.3 21.6999999999999 503.3 21.0999999999999C502.9999999999999 20.7999999999999 502.9999999999999 20.5999999999999 502.8 20.2999999999999C502.4999999999999 19.9999999999999 502.3 19.7999999999999 501.6999999999999 19.7999999999999C501.3999999999999 19.4999999999999 501.1999999999999 19.4999999999999 500.5999999999999 19.4999999999999C500.2999999999999 19.4999999999999 500.0999999999999 19.4999999999999 499.4999999999999 19.7999999999999C499.1999999999999 19.7999999999999 498.9999999999999 20.0999999999999 498.6999999999999 20.2999999999999C498.3999999999999 20.5999999999999 498.1999999999999 20.7999999999999 498.1999999999999 21.0999999999999C497.8999999999999 21.5999999999999 497.8999999999999 21.8999999999999 497.8999999999999 22.1999999999999C497.8999999999999 22.6999999999999 497.8999999999999 22.9999999999999 498.1999999999999 23.3C498.1999999999999 23.8 498.4999999999999 24.1 498.6999999999999 24.4C498.9999999999999 24.7 499.1999999999999 24.7 499.4999999999999 24.9C499.9999999999999 25.2 500.2999999999999 25.2 500.5999999999999 25.2C501.0999999999999 25.2 501.3999999999999 25.2 501.6999999999999 24.9C502.1999999999999 24.6 502.4999999999999 24.6 502.8 24.4S502.9999999999999 23.8 503.3 23.3zM501.1 21.9C501.6 21.9 501.6 22.2 501.9 22.2C502.2 22.5 502.2 22.7 502.2 23C502.2 23.3 502.2 23.5 501.9 23.8C501.6 23.8 501.4 24.1 500.8 24.1H499.1999999999999V20.6H499.9999999999999V22H500.3L501.4 20.6H502.2L501.1 21.9zM576 367V15C576 -11.5 554.5 -33 528 -33H48C21.5 -33 0 -11.5 0 15V367C0 393.5 21.5 415 48 415H528C554.5 415 576 393.5 576 367zM64 227.4C64 150.9 126.1 88.9 202.5 88.9C229.7 88.9 256.4 97.1 279 112C206.1 171.3 206.6 283.2 279 342.5C256.4 357.5 229.7 365.6 202.5 365.6C126.1 365.7 64 303.6 64 227.4zM288 118.6C358.5 173.6 358.2 280.8 288 336.1C217.8 280.8 217.5 173.5 288 118.6zM145.7 42.3C145.7 51 140 56.7 131 57C126.4 57 121.5 55.6 118.2 50.5C115.8 54.6 111.7 57 106 57C102.2 57 98.4 55.6 95.4 51.6V56H87.2V19.3H95.4C95.4 38.2 92.9 49.5 104.4 49.5C114.6 49.5 112.6 39.3 112.6 19.3H120.5C120.5 37.6 118 49.5 129.5 49.5C139.7 49.5 137.7 39.5 137.7 19.3H145.9V42.3zM190.6 56H182.7V51.6C180 54.9 176.2 57 171 57C160.7 57 152.8 48.8 152.8 37.7C152.8 26.5 160.7 18.4 171 18.4C176.2 18.4 180 20.3 182.7 23.8V19.1999999999999H190.6V56zM231.1 30.4C231.1 45.4 208.2 38.6 208.2 45.6C208.2 51.3 220.1 50.4 226.7 46.7L230 53.2C220.6 59.3 199.8 59.2 199.8 45C199.8 30.7 222.7 36.7 222.7 30C222.7 23.7 209.2 24.2 202 29.2L198.5 22.9C209.7 15.3 231.1 16.9 231.1 30.4zM266.5 21.1L264.3 27.9C260.5 25.8 252.1 23.5 252.1 32V48.6H265.2000000000001V56H252.1000000000001V67.2H243.9000000000001V56H236.3000000000001V48.7H243.9000000000001V32C243.9000000000001 14.4 261.2000000000001 17.6 266.5000000000001 21.1zM279.8 34.4999999999999H307.3C307.3 50.6999999999999 299.9000000000001 57.1 289.9000000000001 57.1C279.3 57.1 271.7000000000001 49.2 271.7000000000001 37.8C271.7000000000001 17.3 294.3000000000001 13.9 305.5000000000001 23.6L301.7000000000001 29.6C293.9000000000001 23.2 282.1 23.8 279.8000000000001 34.4999999999999zM338.9000000000001 55.9999999999999C334.3 57.9999999999999 327.3 57.8 323.7000000000001 51.6V56H315.5000000000001V19.3H323.7000000000001V40C323.7000000000001 51.6 333.2000000000001 50.1 336.5000000000001 48.4L338.9000000000001 56zM349.5000000000001 37.6999999999999C349.5000000000001 49.0999999999999 361.1000000000001 52.8 370.2000000000001 46.0999999999999L374.0000000000001 52.5999999999999C362.4000000000001 61.6999999999999 341.3000000000001 56.6999999999999 341.3000000000001 37.5999999999999C341.3000000000001 17.7999999999999 363.7000000000001 13.7999999999999 374.0000000000001 22.5999999999999L370.2000000000001 29.0999999999999C361.0000000000001 22.5999999999999 349.5000000000001 26.4999999999999 349.5000000000001 37.6999999999999zM416.2000000000001 55.9999999999999H408V51.6C399.7 62.6 378.1 56.4 378.1 37.7C378.1 18.5 400.5 13 408 23.8V19.2H416.2V56zM449.9000000000001 55.9999999999999C447.5000000000001 57.1999999999999 438.9000000000001 58.8999999999999 434.7000000000001 51.6V56H426.8000000000001V19.3H434.7000000000001V40C434.7000000000001 51 443.7000000000001 50.3 447.5000000000001 48.4L449.9000000000001 56zM490.2 70.8999999999999H482.3000000000001V51.5999999999999C474.1000000000001 62.4999999999999 452.4000000000001 56.6999999999999 452.4000000000001 37.6999999999999C452.4000000000001 18.3 474.9000000000001 13.0999999999999 482.3000000000001 23.8V19.1999999999999H490.2V70.8999999999999zM497.8000000000001 145.9999999999999V141.3999999999999H498.6000000000001V146H500.5000000000001V146.8H495.9V146H497.8zM504.4000000000001 22.1999999999999C504.4000000000001 22.6999999999999 504.4000000000001 23.2999999999999 504.1000000000001 23.7999999999999C503.8000000000001 24.0999999999999 503.6000000000001 24.5999999999999 503.3000000000001 24.8999999999999C503.0000000000001 25.1999999999999 502.5000000000001 25.3999999999999 502.2 25.6999999999999C501.7 25.6999999999999 501.1 25.9999999999999 500.6 25.9999999999999C500.3 25.9999999999999 499.8 25.6999999999999 499.2 25.6999999999999C498.7 25.3999999999999 498.4 25.1999999999999 498.1 24.8999999999999C497.6 24.5999999999999 497.3 24.0999999999999 497.3 23.7999999999999C497 23.2999999999999 497 22.6999999999999 497 22.1999999999999C497 21.8999999999999 497 21.3999999999999 497.3 20.7999999999999C497.3 20.4999999999999 497.6 19.9999999999999 498.1 19.6999999999999C498.4 19.3999999999999 498.6 19.1999999999999 499.2 18.8999999999999C499.7 18.5999999999999 500.3000000000001 18.5999999999999 500.6 18.5999999999999C501.1 18.5999999999999 501.7 18.5999999999999 502.2 18.8999999999999C502.5000000000001 19.1999999999999 503.0000000000001 19.3999999999999 503.3000000000001 19.6999999999999C503.6000000000001 19.9999999999999 503.8000000000001 20.4999999999999 504.1000000000001 20.7999999999999C504.4000000000001 21.3999999999999 504.4000000000001 21.8999999999999 504.4000000000001 22.1999999999999zM507.6000000000001 146.8999999999999H506.2000000000001L504.6000000000001 143.3999999999999L503.0000000000001 146.8999999999999H501.6000000000001V141.4999999999999H502.4000000000001V145.5999999999999L504.0000000000001 142.0999999999999H505.1000000000001L506.5000000000001 145.5999999999999V141.4999999999999H507.6000000000001V146.8999999999999zM512.0000000000001 227.3999999999999C512.0000000000001 303.5999999999999 449.9000000000001 365.6999999999999 373.5000000000001 365.6999999999999C346.3000000000002 365.6999999999999 319.6000000000002 357.4999999999999 297.0000000000001 342.5999999999999C369.1000000000002 283.2999999999999 370.2000000000001 171.0999999999999 297.0000000000001 112.0999999999999C319.6000000000002 97.0999999999999 346.5000000000001 88.9999999999999 373.5000000000001 88.9999999999999C449.9000000000001 88.8999999999999 512.0000000000001 150.8999999999999 512.0000000000001 227.3999999999999z" />
-			<glyph glyph-name="cc-paypal" unicode="" horiz-adv-x="576" d=" M186.3 189.8C186.3 177.6 176.6 168.3 164.3 168.3C155.1 168.3 148.3 173.5 148.3 183.3C148.3 195.5 157.8 205.3 170 205.3C179.3 205.3 186.3 199.6 186.3 189.8zM80.5 238.3H75.8C74.3 238.3 72.8 237.3 72.6 235.6L68.3 208.9L76.5 209.2000000000001C87.5 209.2000000000001 96 210.7000000000001 98 223.4C100.3 236.8000000000001 91.8 238.3000000000001 80.5 238.3000000000001zM364.5 238.3H360C358.2 238.3 357 237.3 356.8 235.6L352.6 208.9L360.6 209.2000000000001C373.6 209.2000000000001 382.6 212.2000000000001 382.6 227.2000000000001C382.5 237.8000000000001 373 238.3000000000001 364.5 238.3000000000001zM576 368V16C576 -10.5 554.5 -32 528 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H528C554.5 416 576 394.5 576 368zM128.3 232.6C128.3 253.6 112.1 260.6 93.6 260.6H53.6C51.1 260.6 48.6 258.6 48.4 255.9L32 153.8C31.7 151.8 33.2 149.8 35.2 149.8H54.2C56.9 149.8 59.4 152.7 59.7 155.5L64.2 182.1C65.2 189.3 77.4 186.8 82.2 186.8C110.8 186.8 128.3 203.8 128.3 232.6zM212.5 223.8H193.5C189.7 223.8 189.5 218.3 189.3 215.6C183.5 224.1 175.1 225.6 165.6 225.6C141.1 225.6 122.4 204.1 122.4 180.4C122.4 160.9 134.6 148.2 154.1 148.2C163.1 148.2 174.3 153.1 180.6 160.1C180.1 158.6 179.6 155.4 179.6 153.9C179.6 151.6 180.6 149.9 182.8 149.9H200C202.7 149.9 205 152.8 205.5 155.6L215.7 219.9C216 221.8 214.5 223.8 212.5 223.8zM253 125.9L316.7 218.5C317.2 219 317.2 219.5 317.2 220.2C317.2 221.9 315.7 223.7 314 223.7H294.8C293.1 223.7 291.3 222.7 290.3 221.2L263.8 182.1999999999999L252.8 219.6999999999999C252 221.8999999999999 249.8 223.6999999999999 247.3 223.6999999999999H228.6C226.9000000000001 223.6999999999999 225.4000000000001 221.8999999999999 225.4000000000001 220.1999999999999C225.4000000000001 219 244.9000000000001 163.3999999999999 246.6 158.0999999999999C243.9000000000001 154.2999999999999 226.1 129.4999999999999 226.1 126.4999999999999C226.1 124.6999999999999 227.6 123.2999999999999 229.3 123.2999999999999H248.5C250.3 123.3999999999999 252 124.3999999999999 253 125.8999999999999zM412.3 232.6C412.3 253.6 396.1 260.6 377.6 260.6H337.9000000000001C335.2000000000001 260.6 332.7000000000001 258.6 332.4000000000001 255.9L316.2000000000001 153.9C316.0000000000001 151.9 317.5000000000001 149.9 319.4000000000001 149.9H339.9000000000001C341.9000000000001 149.9 343.4000000000001 151.4 343.9000000000001 153.1L348.4000000000001 182.1C349.4000000000001 189.3 361.6 186.8 366.4000000000001 186.8C394.8 186.8 412.3 203.8 412.3 232.6zM496.5 223.8H477.5C473.7 223.8 473.5 218.3 473.2 215.6C467.7 224.1 459.2 225.6 449.5 225.6C425 225.6 406.3 204.1 406.3 180.4C406.3 160.9 418.5 148.2 438 148.2C447.3 148.2 458.5 153.1 464.5 160.1C464.2 158.6 463.5 155.4 463.5 153.9C463.5 151.6 464.5 149.9 466.7 149.9H484C486.7 149.9 489 152.8 489.5 155.6L499.7 219.9C500 221.8 498.5 223.8 496.5 223.8zM544 257.1C544 259.1 542.5 260.6 540.8 260.6H522.3C520.8 260.6 519.3 259.4 519.0999999999999 257.9L502.8999999999999 153.9L502.5999999999999 153.4C502.5999999999999 151.6 504.0999999999999 149.9 506.0999999999999 149.9H522.5999999999999C525.0999999999999 149.9 527.5999999999999 152.8 527.8 155.6L544 256.8V257.1zM454 205.3C441.8 205.3 432.3 195.6 432.3 183.3C432.3 173.6 439.3 168.3 448.5 168.3C460.5 168.3 470.2 177.5 470.2 189.8C470.3 199.6 463.3 205.3 454 205.3z" />
-			<glyph glyph-name="cc-stripe" unicode="" horiz-adv-x="576" d=" M396.9 191.5C396.9 172.4 388.1 158.1 375 158.1C366.7 158.1 361.7 161.1 358.2 164.8L358 217.6C361.7 221.7 366.8 224.6 375 224.6C387.9 224.7 396.9 210.1 396.9 191.5zM576 368V16C576 -10.5 554.5 -32 528 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H528C554.5 416 576 394.5 576 368zM122.2 166.9C122.2 209.2 67.9 201.6 67.9 217.6C67.9 223.1 72.5 225.3 80 225.3C90.8 225.3 104.5 222 115.3 216.2V249.6C103.5 254.3 91.8 256.1 80 256.1C51.2 256.1 32 241.1 32 215.9C32 176.6 86 183 86 166C86 159.4 80.3 157.3 72.4 157.3C60.6 157.3 45.5 162.2 33.5 168.6V134.7000000000001C46.7 129.0000000000001 60.1 126.6 72.3 126.6C101.9 126.8 122.2 141.3 122.2 166.9zM191.1 253.8H164.1V284.6L129.4 277.2L129.2000000000001 163.3C129.2000000000001 142.3 145.0000000000001 126.8 166.1000000000001 126.8C177.7000000000001 126.8 186.3000000000001 128.9 191.0000000000001 131.5V160.3999999999999C186.5000000000001 158.5999999999999 164.0000000000001 152.0999999999999 164.0000000000001 173V223.5H191.0000000000001V253.8zM264.9000000000001 253.8C260.2000000000001 255.5 243.6 258.6 235.3000000000001 243.3L233.1000000000001 253.8H202.4000000000001V129.3H237.9000000000001V213.7C246.3000000000001 224.7 260.5000000000001 222.6 265.0000000000001 221.1V253.8zM309.1 253.8H273.4000000000001V129.3H309.1V253.8zM309.1 301.1L273.4000000000001 293.5V264.6L309.1 272.2V301.1zM431.8 192.3C431.8 233.6 408.3 256.1 383.4000000000001 256.1C369.5000000000001 256.1 360.5000000000001 249.5 355.6 245L353.8 253.8H322.5V88L358 95.5L358.1 135.7C363.2000000000001 132 370.8 126.7 383.2000000000001 126.7C408.6 126.8 431.8000000000001 147.2 431.8000000000001 192.3zM544 191.1C544 227.5 526.4 256.2 492.7 256.2C458.9 256.2 438.4 227.5 438.4 191.3C438.4 148.5 462.6 126.8 497.2 126.8C514.2 126.8 526.9 130.6999999999999 536.6 136V164.6C526.9 159.7 515.8000000000001 156.7 501.7 156.7C487.9 156.7 475.7 161.6 474.1 178.2H543.6C543.7 180.2 544 187.6 544 191.1zM492.4 227.2C483.5 227.2 473.7 220.5 473.7 204.5H510.4C510.4 220.5 501.1 227.2 492.4 227.2z" />
-			<glyph glyph-name="cc-visa" unicode="" horiz-adv-x="576" d=" M470.1 216.7S477.7 179.5 479.4 171.7H446C449.3 180.6 462 215.2 462 215.2C461.8 214.9 465.3 224.3 467.3 230.1L470.1 216.7zM576 368V16C576 -10.5 554.5 -32 528 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H528C554.5 416 576 394.5 576 368zM152.5 116.8L215.7 272H173.2L133.9 166L129.6 187.5L115.6 258.9C113.3 268.8 106.2 271.6 97.4 272H32.7L32 268.9C47.8 264.9 61.9 259.1 74.2 251.8L110 116.8H152.5zM246.9 116.6L272.1 272H231.9000000000001L206.8000000000001 116.6H246.9000000000001zM386.8 167.4C387 185.1 376.2 198.6 353.1 209.7000000000001C339 216.8000000000001 330.4000000000001 221.6000000000001 330.4000000000001 228.9000000000001C330.6 235.5000000000001 337.7000000000001 242.3000000000001 353.5000000000001 242.3000000000001C366.6000000000001 242.6000000000001 376.2000000000001 239.5000000000001 383.4000000000001 236.4000000000001L387.0000000000001 234.7000000000001L392.5000000000001 268.3000000000001C384.6000000000001 271.4000000000001 372.0000000000001 274.9000000000001 356.5000000000001 274.9000000000001C316.8000000000001 274.9000000000001 288.9000000000001 253.7000000000001 288.7000000000001 223.5C288.4000000000001 201.2 308.7000000000001 188.8 323.9000000000001 181.3C339.4000000000001 173.7 344.7000000000001 168.7 344.7000000000001 162C344.5000000000001 151.6 332.1 146.8 320.6 146.8C304.6 146.8 296 149.3 282.9000000000001 155.1L277.6 157.6L272 122.7000000000001C281.4 118.4 298.8 114.6 316.8 114.4C359 114.3 386.5 135.2000000000001 386.8 167.4zM528 116.6L495.6 272H464.5C454.9 272 447.6 269.2 443.5 259.1L383.8 116.6H426S432.9 135.8 434.4 139.9H486C487.2 134.4 490.8 116.6 490.8 116.6H528z" />
-			<glyph glyph-name="centercode" unicode="" horiz-adv-x="512" d=" M329.2 179.4C325.4 144.2 293.8 118.8 258.6 122.6C223.4 126.4 198 158 201.8 193.2C205.6 228.4 237.2 253.8 272.4 250C307.5 246.2 333 214.5999999999999 329.2 179.4zM243.4 -55.7C96.7 -48 -8.2 82.5 10.1 223.7C21.3 310.3 75.9 380.6 149.2 415.7C310.2 492.8 498.9 378.3 503.9 199.1C508 52.1 385.5 -63.1 243.4 -55.7zM423.3 124.3C451.1999999999999 242.3 262.8 330.2 186.1 358.5C128.6 302.2 117 169.9 152.3 14.1C221.1 -1.7 321.4 40.4999999999999 423.3 124.3z" />
-			<glyph glyph-name="chrome" unicode="" horiz-adv-x="496" d=" M131.5 230.5L55.1 347.9C102.7 407.1 174.1 439.7 247.1 440C289.4 440.3 332.6 429.5 371.9 406.8C415.3 381.6 448.3 345.4 469.3 303.8L264 314.6C205.9 318 150.6 285.3 131.5 230.5zM164.4 192C164.4 145.8 201.8 108.4 248 108.4S331.6 145.8 331.6 192S294.2000000000001 275.6 248.0000000000001 275.6S164.4 238.3 164.4 192zM479.3 281.2L339.6 274C377.5 229.7 378.1 165.8 346.2000000000001 116.8L234.1 -55.6C280.6 -58.1 328.5 -47.9 371.9 -22.7C479.3 39.3 522.8 169.3 479.3 281.2zM133.7 144.4L40.4 327.9C14.9 288.9 0 242.1 0 192C0 68 90.8 -34.7 209.5 -52.9L273.2 71.9C215.6 61.1 160 92.7000000000001 133.7 144.4z" />
-			<glyph glyph-name="cloudscale" unicode="" horiz-adv-x="448" d=" M318.1 294L308.7000000000001 286.4C286.2000000000001 305.7000000000001 257.2000000000001 320 225.4000000000001 320C153.8 320 96 259.2 96 187.7C96 181.1 96.4 174.6 97.4 168.3C95.4 224.3 139.2 265.7000000000001 190 265.7000000000001C214.2 265.7000000000001 236.2 256.3 252.6 241.0000000000001L227.4 220.6C219.1 221.5 210.6 218.8 204.3 212.5C193.2 201.5 193.2 183.6 204.3 172.5C215.4 161.5 233.2 161.5 244.3 172.5C250.6 178.8 253.3 187.4 252.4 195.6L327.6 284.4C333.9000000000001 290.9 324.3 300.3 318.1 294zM234.3 182.5C228.7 177 219.7 177 214.1 182.5C208.5 188.1 208.5 197.1 214.1 202.7S228.7 208.3 234.3 202.7S239.9 188 234.3 182.5zM224 416C100.5 416 0 315.5 0 192S100.5 -32 224 -32S448 68.5 448 192S347.5 416 224 416zM224 32C135.8 32 64 103.8 64 192S135.8 352 224 352S384 280.2 384 192S312.2 32 224 32z" />
-			<glyph glyph-name="cloudsmith" unicode="" horiz-adv-x="332" d=" M332.5 28.1C332.5 -18.3 294.9 -56 248.5 -56S164.5 -18.3 164.5 28.1S202.1 112.1 248.5 112.1S332.5 74.5 332.5 28.1zM248.5 272C294.9 272 328.5 309.6 328.5 356S294.9 440 248.5 440S160.5 402.4000000000001 160.5 356S130.9 280 84.5 280S0.5 238.4000000000001 0.5 192S38.1 112 84.5 112S168.5 145.6 168.5 192S202.1 272 248.5 272z" />
-			<glyph glyph-name="cloudversify" unicode="" horiz-adv-x="616" d=" M148.6 144C156.8 75.5 216 28.5 294.6 32.7C345.8 -10.6 431.4000000000001 -13.1 481 38.3C550.2 37.2 599.5 82.9 612.5 137.8C627.3 200.3 594.3 270.3 520.4 292.9C487.4 381 389 394.4 333.9 377.9C276.6 360.6 249.6 324.7 234.6 268.2C226.8 265.5 208.1 259.3 189.6 244.1C201.3 244.1 204.8 235.2 204.8 224.6V204.2C204.8 193.5 196.1 184.7 185.3 184.7H165.1C154.4 184.7 145.6 190.7 145.6 201.4V208H98.8C95 208 88 203.7 88 196.1V155.7C88 149.3 93.3 143.9 99.7 143.9H148.6zM376 136C365.3 89.7 397.7 63.6 431.3 49.2C324.1 15.4 259.7 100 296 160C262.8 138.4 262.3 88.8 266.8 67.1C248.9 79.5 213 99.5 209.4 146.9C206.4 186.8 230.9 222.6 266.4 240.8000000000001C297 256.6 369.9 249.3 400 200C385.9 248 346.2 270.1 298.2 274.8C329.1 305.5 362.6 325.1 412.4 318.5C482.2 309.2 545.5999999999999 235.7 480.1 168C515.0999999999999 184.3 528.8 222.4 527.5999999999999 244.9L538.0999999999999 225.3C549.8999999999999 203.3 553.3 177.7 547.4999999999999 153.3C538.2999999999998 114.3 506.8999999999999 84.5 467.7999999999999 76.8C435.6999999999999 70.5 384.7 81.9 375.9999999999999 136zM128 240H88.2C79.3 240 72 247.3 72 256.2V295.8C72 304.7 79.3 312 88.2 312H128C136.9 312 144.2 304.7 144.2 295.8V256.2C144.2 247.3 136.9 240 128 240zM10.1 280C4.5 280 0 284.5 0 290.1V317.9C0 323.5 4.5 328 10.1 328H37.8C43.3 328 47.9 323.5 47.9 317.9V290.1C47.9 284.5 43.4 280 37.8 280H10.1zM168 305.3V326.7000000000001C168 331.8 172.2 336 177.3 336H198.7C203.8 336 208 331.8 208 326.7000000000001V305.3C208 300.2000000000001 203.8000000000001 296 198.7 296H177.3C172.2 296 168 300.2 168 305.3zM56 212.5V187.5C56 181.2 50.9 176 44.6 176H19.4C13.1 176 8 181.2 8 187.5V212.5C8 218.8 13.1 224 19.4 224H44.5C50.9 224 56 218.8 56 212.5z" />
-			<glyph glyph-name="codepen" unicode="" horiz-adv-x="512" d=" M502.285 288.296L268.2850000000001 444.296C260.298 449.211 251.7740000000001 449.256 243.7140000000001 444.296L9.714 288.296C3.714 284.2970000000001 0 277.153 0 270.011V114.012C0 106.869 3.714 99.726 9.715 95.726L243.715 -60.296C251.702 -65.211 260.226 -65.256 268.286 -60.296L502.286 95.726C508.286 99.725 512.001 106.869 512.001 114.012V270.011C512 277.153 508.286 284.2970000000001 502.285 288.296zM278 384.8690000000001L450.286 270.011L373.429 218.582L278 282.2970000000001V384.8690000000001zM234 384.8690000000001V282.2970000000001L138.571 218.582L61.714 270.011L234 384.8690000000001zM44 228.868L99.143 192.011L44 155.154V228.868zM234 -0.847L61.714 114.011L138.571 165.4400000000001L234 101.725V-0.847zM256 140.011L178.285 192.011L256 244.011L333.7150000000001 192.011L256 140.011zM278 -0.847V101.725L373.429 165.4400000000001L450.286 114.0110000000001L278 -0.847zM468 155.154L412.857 192.011L468 228.868V155.154z" />
-			<glyph glyph-name="codiepie" unicode="" horiz-adv-x="472" d=" M422.5 245.1C453.2 245.1 456 192 422.2 192H411.4V147.7H384.8V245.1H422.5zM472 95.4C429.9 3.5 350.4 -56 248 -56C111 -56 0 55 0 192S111 440 248 440C345.4 440 420.8 386.3 466.2 301.6L280.2 192.8L472 95.4zM433.5 82.9L373.2 113.6C346.1 69.3 302.8 42.1999999999999 250.8 42.1999999999999C168.3 42.1999999999999 101.6 108.8999999999999 101.6 191.0999999999999C101.6 273.5999999999999 168.3 340.2999999999999 250.8 340.2999999999999C299.2 340.2999999999999 339.7 316.7999999999999 367.7 276.8999999999999L427.2 311.4999999999999C386.5 374.0999999999999 322.5 411.4999999999999 248 411.4999999999999C126.8 411.4999999999999 28.5 313.1999999999999 28.5 191.9999999999999S126.8 -27.5 248 -27.5C326.6 -27.5 394.5 14.6 433.5 82.9z" />
-			<glyph glyph-name="connectdevelop" unicode="" horiz-adv-x="576" d=" M550.5 207L500.411 293.786C501.482 295.928 502.286 298.339 502.286 301.0180000000001C502.286 309.054 495.59 315.751 487.554 316.019L432.107 411.9120000000001C432.643 413.519 433.178 415.126 433.178 416.733C433.178 425.304 426.214 432.001 417.91 432.001C413.089 432.001 409.071 429.858 406.124 426.376H299.518C296.839 429.857 292.8210000000001 432 288 432S279.161 429.857 276.482 426.375H170.411C167.464 429.857 163.447 432 158.625 432C150.322 432 143.357 425.304 143.357 416.732C143.357 415.125 143.893 413.25 144.429 411.911L88.446 314.678C83.09 312.2680000000001 79.339 307.178 79.339 301.017C79.339 300.482 79.607 299.9460000000001 79.607 299.41L26.303 207.267C19.071 205.928 13.713 199.767 13.713 192.267C13.713 185.035 18.802 178.874 25.767 177.267L80.946 81.909C80.41 80.302 80.142 78.963 80.142 77.088C80.142 69.8559999999999 85.231 63.6949999999999 92.196 62.356L143.893 -27.376C143.357 -28.983 142.822 -30.858 142.822 -32.733C142.822 -41.304 149.786 -48.001 158.09 -48.001C162.911 -48.001 166.929 -45.858 169.608 -42.6439999999999H276.483C279.161 -45.857 283.447 -48 288 -48S296.839 -45.857 299.5180000000001 -42.643H406.6610000000001C409.3390000000001 -45.589 413.3570000000001 -47.464 417.6430000000001 -47.464C426.2140000000001 -47.464 432.9110000000001 -40.5 432.9110000000001 -32.196C432.9110000000001 -30.589 432.6440000000001 -29.25 432.1080000000001 -27.911L483.8050000000001 62.357C490.7690000000001 63.696 495.859 69.857 495.859 77.0889999999999C495.859 78.696 495.5910000000001 80.3029999999999 495.0550000000001 81.91L549.9660000000001 177.268C556.9300000000002 178.607 562.2880000000001 184.768 562.2880000000001 192.268C562.2860000000002 199.5 557.1960000000001 205.661 550.5000000000001 207zM153.535 -2.732L109.875 73.071H153.535V-2.732zM153.535 81.107H109.875C109.607 82.178 109.071 83.249 108.536 84.321L153.535 131.731V81.107zM153.535 143.518L103.178 90.2139999999999C101.839 90.7499999999999 100.499 91.5539999999999 99.16 91.821L43.447 188.25C43.982 189.589 43.982 190.929 43.982 192.268S43.982 194.678 43.714 195.75L95.679 285.75C98.358 286.0180000000001 101.036 286.822 103.447 288.429L153.536 236.464V143.518zM153.535 245.84L107.732 293.25C109.071 295.393 109.875 298.071 109.875 301.017C109.875 301.285 109.607 301.821 109.607 302.089L153.535 317.893V245.84zM153.535 326.465L109.875 310.661L153.535 386.197V326.465zM480.054 287.357L480.8579999999999 286.018L445.5 118.875L381.75 186.107L479.786 287.625L480.054 287.357zM291.75 92.893L303.2680000000001 81.107H280.5L291.75 92.893zM291.4820000000001 104.143L208.179 189.589L287.7320000000001 273.964L370.7680000000001 186.375L291.4820000000001 104.1429999999999zM296.8390000000001 98.25L376.1250000000001 180.482L443.6250000000001 109.232L437.7330000000001 81.107H313.714L296.839 98.25zM410.411 403.607C411.4820000000001 403.0710000000001 412.553 402.535 413.8930000000001 402.267L471.75 301.553V301.017C471.75 298.0710000000001 472.553 295.3930000000001 473.893 293.25L376.393 192L293.358 279.589L410.411 403.607zM401.304 405.75L287.7320000000001 285.482L230.6780000000001 345.75L397.0170000000001 405.75H401.3040000000001zM277.821 405.75C280.499 403.072 283.981 401.4650000000001 288 401.4650000000001S295.5 403.072 298.1789999999999 405.75H373.1789999999999L224.786 352.179L173.893 405.75H277.8210000000001zM161.572 400.125L162.643 402.267A33.834 33.834 0 0 1 165.322 403.0710000000001L216.483 349.231L161.572 329.41V400.125zM161.572 320.839L222.375 342.803L282.107 279.589L202.554 195.482L161.572 237.535V320.839zM161.572 228.161L198 190.393L161.572 152.089V228.161zM161.572 140.303L203.625 184.767L286.393 98.785L269.25 81.107H161.572V140.303zM168.536 -21.75C166.929 -20.143 165.054 -19.072 162.643 -18.268L161.572 -16.6609999999999V73.071H261.482L169.875 -21.75H168.536zM298.447 -21.75C295.7680000000001 -19.34 292.019 -17.465 288 -17.465S280.233 -19.34 277.553 -21.75H181.124L272.731 73.071H311.035L402.642 -21.75H298.447zM418.447 -9.964L414.161 -17.464C412.822 -17.732 411.751 -18.267 410.679 -18.803L321.483 73.072H435.8589999999999L418.447 -9.964zM431.303 12.268L444.161 73.071H466.125L431.303 12.268zM466.125 81.107H445.7680000000001L450.3210000000001 102.2670000000001L467.4640000000001 84.0530000000001C466.929 83.2500000000001 466.393 82.179 466.1250000000001 81.107zM532.2860000000001 188.518L476.8390000000001 91.821C475.5000000000001 91.286 474.1600000000001 90.75 472.8210000000001 89.947L452.1960000000001 111.911L486.7500000000001 275.839L532.5530000000001 196.553C532.2860000000001 195.214 531.7500000000001 193.875 531.7500000000001 192.268C531.7500000000001 190.929 532.0180000000001 189.857 532.2860000000001 188.518z" />
-			<glyph glyph-name="contao" unicode="" horiz-adv-x="512" d=" M45.4 143C59.8 75.9 71.8 14 113.6 -32H34C15.3 -32 0 -16.8 0 2V382C0 400.7 15.2 416 34 416H91.7C77.9 403.4 65.6 388.8 54.8 372.4C9.4 302.4 27.8 225.6 45.4 143zM478 416H387.8C409.2 394.6 427 366.5 440.5 331.9L303.4 302.6C288.5 331.6 265.6 355.9 220.8 346.5C196.2 341.2 179.8 327.2 172.5 311.9C163.7 293.2000000000001 159.3 272.1 180.7 171.6C201.8 71.4 214.4 53.9 230.2 40.4C243.1 29.3 263.6 23.4 288.5 28.7C333 38.1 344.2 69.4 345.9 101.9L483.3 131.5000000000001C486.4999999999999 60.0000000000001 464.6 6.3000000000001 425.9 -32.0999999999999H478C496.7 -32.0999999999999 512 -16.8999999999999 512 1.9000000000001V382C512 400.8 496.8 416 478 416z" />
-			<glyph glyph-name="cpanel" unicode="" horiz-adv-x="640" d=" M52.9 234.3H92.9L86.7 210.7C84.8 204.2 79.3 199.8 72.4 199.8H53.8C28.9 199.8 29.1 162.4 53.8 162.4H65.1C69.3 162.4 72.7 158.5000000000001 71.5 154.1L64.4 128H52C18.5 128 -7 159.4 1.7 193.2C9 220.2 30 234.3 52.9 234.3M73.1 128L108 258.1C109.8 264.5 115.2 269 122.3 269H159.3C183.4 269 204.7 252.6 210.3 227.8C216.9 198.7 195.8 162.5 158.6 162.5H126.6L133 186.3C134.8000000000001 192.5 140.3000000000001 197.1 147.3000000000001 197.1H157.6000000000001C170.0000000000001 197.1 178.4000000000001 208.8 175.9000000000001 219.7C173.8000000000001 228.9 166.0000000000001 234.5000000000001 157.6000000000001 234.5000000000001H137.8000000000001L112 138.8C110.1 132.6 104.6 128.1 97.8 128.1L73.1 128M293.7 197.4C294 198.4 295.6 202.7 291.6 202.7H234.1C224.4 202.7 217.5 211.6 219.9 221.2L223.4 234.6H301.3C320.1 234.6 334.6 217 329.8 197.8L315.8 146C313 135.4 303.6 128.2 292.4 128.2L234.9 128.4C192 128.4 196.4 192.2 235.6 192.2H284L280.5 179C278.6 172.8 273.1 168.2 266.3 168.2H244.7C239.4 168.2 239.4 160.3 244.7 160.3H279.6C284.2000000000001 160.3 284.7000000000001 164.2 285.1 165.6L293.7000000000001 197.4M396.8000000000001 234.3000000000001C431.2000000000001 234.3000000000001 456.1000000000001 202.0000000000001 447.1000000000001 168.9L438.3000000000001 135.8C437.1000000000001 130.9 432.6000000000001 128 428.0000000000001 128H408.9000000000001C404.4000000000001 128 401.3 132 402.5000000000001 136.3L413.1000000000001 176.3C416.4000000000001 187.9 407.5000000000001 199.7 395.0000000000001 199.7H375.2000000000001L358.0000000000001 135.7000000000001C356.8000000000001 130.9 352.4000000000001 127.9 347.6000000000001 127.9H328.7000000000001C324.5000000000001 127.9 321.1000000000001 131.8 322.3000000000002 136.2000000000001L348.5000000000001 234.2000000000001H396.8000000000002M498 196.4L490 166.4C489.1 163.1 491.5 159.7 495.1 159.7H568.4L562.6999999999999 138.7C560.8 132.5 555.3 128 548.4999999999999 128H481.7999999999999C461.7999999999999 128 448.4999999999999 147 453.4999999999999 164.7L464.2999999999999 204.7C469.0999999999999 222.3 484.9999999999999 234.3 502.8999999999999 234.3H550.1999999999999C569.1999999999999 234.3 583.4 216.6 578.4999999999999 197.5L575.2999999999998 185.5C572.3999999999999 174.5 562.5999999999998 167.9 552.0999999999998 167.9H498.6999999999998L502.1999999999998 180.9C503.7999999999998 187.1 509.3999999999998 191.7 516.3999999999999 191.7H538C540 191.7 541.3 192.7 541.9 194.7L542.6 197.3C543.3000000000001 200 541.3000000000001 202.4 538.7 202.4H505.8000000000001C501.7 202.4 498.9000000000001 200.3 498.0000000000001 196.4zM568.2 128L603.8000000000001 261.1C605.0000000000001 265.8 609.3000000000001 269 614.2 269H633.1C637.6 269 640.8000000000001 265 639.6 260.7L613.1 162.5C608 141.8 588.9 128 568.2 128" />
-			<glyph glyph-name="creative-commons" unicode="" horiz-adv-x="512" d=" M255.547 440C392.884 440 504 333.5610000000001 504 191.996C504 42.021 381.106 -56 255.562 -56C122.319 -56 8 53.443 8 191.996C8 323.175 113.486 440 255.547 440zM256.446 395.266C136.105 395.266 52.719 294.698 52.719 191.988C52.719 85.473 141.703 -10.406 256.446 -10.406C357.974 -10.406 459.2669999999999 69.036 459.2669999999999 191.981C459.266 306.754 367.4939999999999 395.266 256.4459999999999 395.266zM253.338 233.173L220.113 215.898C214.718 227.101 204.863 235.824 192.654 235.824C170.52 235.824 159.437 221.215 159.437 191.982C159.437 168.14 168.883 148.14 192.654 148.14C207.1229999999999 148.14 217.3069999999999 155.231 223.22 169.399L253.771 153.899C240.958 130 216.8839999999999 114.924 188.6699999999999 114.924C145.5079999999999 114.924 114.7109999999999 142.196 114.7109999999999 191.976C114.7109999999999 241.517 147.4169999999999 269.035 187.3449999999999 269.035C218.0589999999999 269.048 240.0459999999999 257.089 253.3379999999999 233.173zM396.382 233.173L363.607 215.898C358.09 227.38 348.283 235.824 335.707 235.824C313.565 235.824 302.482 221.215 302.482 191.982C302.482 168.076 311.984 148.14 335.707 148.14C350.161 148.14 360.352 155.231 366.25 169.399L397.25 153.899C383.887 130.03 359.799 114.924 332.164 114.924C288.725 114.924 258.205 141.912 258.205 191.976C258.205 241.499 290.903 269.035 330.831 269.035C361.5370000000001 269.048 383.4000000000001 257.089 396.382 233.173z" />
-			<glyph glyph-name="css3-alt" unicode="" horiz-adv-x="384" d=" M0 416L34.9 20.2L192 -32L349.1 20.2L384 416H0zM313.1 336L308.3 288.7L193 239.4L192.7 239.3H304.2L291.4 92.7000000000001L193.2 64.0000000000001L94.4 93.2000000000001L88 167.1H136.9L140.1 128.8L192.7 115.5L247.4 130.9L251.1 192.5L84.8 193V193.1L84.6 193L81 239.3L193.1 286L199.6 288.7H76.7L70.9 336H313.1z" />
-			<glyph glyph-name="css3" unicode="" horiz-adv-x="512" d=" M480 416L416 48L192.7 -32L0 48L19.6 142.8H101.6L93.6 102.2L210 57.8L344.1 102.2L362.9000000000001 199.3H29.5L45.5 281.3H379.2L389.7 334H56.3L72.6 416H480z" />
-			<glyph glyph-name="cuttlefish" unicode="" horiz-adv-x="440" d=" M344 142.5C326.5 110.9 286.6 88 248 88C191.4 88 144 135.4 144 192S191.4 296 248 296C286.6 296 326.5 273.1 344 241.5C357.7 292.4 385.7 334.8 431 359.3C385.7 408.9 320.5 440 248 440C111 440 0 329 0 192S111 -56 248 -56C320.5 -56 385.7 -24.9 431 24.7C385.7 49.2 357.7 91.6 344 142.5z" />
-			<glyph glyph-name="d-and-d" unicode="" horiz-adv-x="576" d=" M82.5 349.1C81.9 366.3 84.5 382.9 95.2 397.3C95.5 389.9 96.4 382.8 99.4 375.7C105.3 403.2 119.1 425 141.7 441.2C139.8 435.3 138.2 429.4 138.7 423.5C147.4 430.9 157.5 441.3 183.1 446.2C197.8 449 212.8 448.2 225.2 445.2C263.7 435.9 286.2 410.9 294.9 372.9C300.2 349.8 295.6 327.9 286.6 306.5C281.4 294.1 274.6 282.1 265.9 271.4C263.9 273.3 262 275.2000000000001 260.1 277C217.3 317.8 233.3 302.2 222.7 314.4C221.6 315.6 221.7 316.6 222.6 318C230.9 331.5 234.4 346.2 232.6 362C231.5 371.8 228.3 380.9 221.3 388.2C206.8 403.5 182.1 403.2 167.8 387.6C156.4 375.1 153.7 360.2 156.9 344C157.0999999999999 342.7 157.3 341.3 156.9 340.1C153.5 326.4 152.3 312.5 154.4 298.5C154.5 298 154.5 297.4 154.5 296.9C154.5 296.6 154.4 296.4 154.3 295.8C132.5 306.8 118.3 324.1 111.1 348C102.8 330.2000000000001 100 312.5 104.5 293.9C88.9 309.1 83.2 328.2 82.5 349.1zM552.1 225.9C540.5 237.5 527.1 246.3 512 252.5C499.2 257.7 486 260.4 472.1 259.6C462.1 259 452.5 256.5 443.1 253.2C440.6 252.3 438 251.6 435.4000000000001 251C430.5000000000001 249.8 428.1 254.1 430.7000000000001 257.8C433.9000000000001 262.4 434.1 262 445.7000000000001 269.8C446.3000000000001 270.2 446.9000000000001 270.6 447.9000000000001 271.3H445.4000000000001C444.8 271.3 444.2000000000001 271.1 443.5000000000001 271C424.2000000000001 267.7 412.8000000000001 255.5 394.6000000000001 241.4C384.2000000000001 233.3 380.8000000000001 237.6 382.6000000000001 241.9C384.0000000000001 245.4 385.9000000000001 248.6 387.7000000000001 251.9C388.7000000000001 253.7 390.0000000000001 255.3 391.2000000000001 257C391.0000000000001 257.2 390.7000000000001 257.3 390.5000000000001 257.5C363.5000000000001 239.2 343.8000000000002 215.1 332.8000000000002 184.2C333.1000000000002 183.9 333.5000000000001 183.6 333.8000000000002 183.3C334.1000000000002 183.9 334.3000000000002 184.5 334.7000000000001 185C345.1000000000001 197.1 357.5000000000001 206.8 371.3000000000002 214.8C389.5000000000001 225.4 408.8000000000002 233.1 430.0000000000001 235C434.3000000000002 235.4 438.7000000000001 235.1 443.1000000000002 235.1C441.3000000000002 234.4 439.6000000000002 234.2 437.8000000000002 234C419.3000000000002 231.6 402.3000000000002 225 386.3000000000002 215.5C356.1000000000002 197.6 331.8000000000002 173.3 311.2000000000002 145.1C310.9000000000002 144.7000000000001 310.8000000000002 144.2000000000001 310.5000000000002 143.8C325.0000000000002 138.5 334.5000000000002 126.5 346.6000000000002 118.2C346.8000000000002 118.3 346.9000000000002 118.4 347.0000000000002 118.6L348.2000000000002 121.3C360.4000000000002 148.1999999999999 375.2000000000002 173.6 394.9000000000002 195.8C411.6000000000002 214.6 432.9000000000002 221.1 457.4000000000001 215.8C463.3000000000001 214.5 468.8000000000001 211.4 474.6000000000001 209C476.9000000000001 210.4 479.7000000000002 212.1999999999999 482.6000000000001 213.6999999999999C491.0000000000001 218 500.0000000000001 220.6999999999999 509.3000000000001 222.6999999999999C524.0000000000001 225.8 538.8000000000002 227.6 553.8000000000002 224V224.5C553.3000000000002 224.9 552.6000000000001 225.3 552.1000000000001 225.9zM316.7 50.4C277.3 83.4 293.9 69.9 274 86C273.2 85.1 274 86.2 272.1 83C260.9000000000001 63.9 246.6 47.7 228.1 35.4C217.8 28.6 206.6 23.6 194 23.6C172.4 23.6 155.8 33.1 144.6 51.4C132.6 70.9 131.3 92.1 136.4 114C144.2000000000001 147.8 166.5 169.2 175 178.3C156.3000000000001 184.5 142 176.6 128.6 164.4C129.4 178.3 132.9 190.6 140.4 201.7000000000001C116.1 191.1 94.5 176.7000000000001 75.6 157.8000000000001C75.3 163.6000000000001 81 201.5000000000001 81.2 202.5000000000001C81.5 205.2000000000001 80.6 207.8000000000001 78.2 209.9000000000001C54 185.2000000000001 33.7 158.1000000000001 22.1 125.3000000000001C29.5 131.2000000000001 37 136.7000000000001 45.7 141.5000000000001C37.4 119.2000000000001 26.1 88.7000000000001 37.9 40.4000000000001C42.5 21.4000000000001 49.8 3.6000000000001 62 -11.8999999999999C64.9 -15.5999999999999 68.3 -18.7999999999999 71.5 -22.1999999999999C71.7 -21.9999999999999 71.9 -21.8999999999999 72.1 -21.6999999999999C70.7 -14.6999999999999 69.9 -7.5999999999999 70.6 0.2C72.8 -2.9999999999999 74.5 -5.8 76.5 -8.4C89.1 -24.4 105.2 -35.8 123.7 -44C148.7000000000001 -55.3 174.8000000000001 -57.3 201.6 -52.6C256.5 -42.9 292.3 -4 317.6 46.2C318.6 48 318.2000000000001 49.1 316.7000000000001 50.4zM488.7 96.8C479.2 99.9 466.5 100.9999999999999 460 99.6999999999999C469.9 95.6999999999999 474.1 93.0999999999999 478.8 87.6999999999999C491.4 73.3 489.2 52.9999999999999 473.4 42.0999999999999C461.7 33.9999999999999 448.5000000000001 31.5999999999999 434.5000000000001 32.9999999999999C433.3000000000001 33.0999999999999 432.2000000000001 33.3999999999999 431.5000000000001 33.5999999999999C434.3000000000001 37.2999999999999 437.5000000000001 40.5999999999999 439.6000000000001 44.3999999999999C449.0000000000001 61.1999999999999 445.0000000000001 86.4999999999999 430.9000000000001 100.4999999999999C428.8000000000001 102.6 426.3000000000001 104.3999999999999 423.9000000000001 106.3999999999999C423.6000000000001 105.0999999999999 423.8000000000001 104.2999999999999 424.0000000000001 103.5999999999999C428.2000000000001 86.9999999999999 415.9000000000001 71.1999999999999 399.2000000000001 71.7999999999999C391.6000000000001 72.0999999999999 385.3000000000002 75.5999999999999 379.6000000000001 80.2999999999999C360.1000000000001 96.3999999999999 340.5000000000001 112.3999999999999 321.1000000000001 128.5999999999999C315.2000000000001 133.4999999999999 308.6000000000001 136.6999999999999 301.0000000000001 137.2999999999999C296.4000000000001 137.6999999999999 291.7000000000001 137.8999999999999 287.1000000000001 138.1999999999999C281.2000000000001 138.5999999999999 278.3000000000001 140.9999999999999 276.7000000000001 146.5999999999999C275.8000000000002 149.9999999999998 275.2000000000001 153.3999999999999 274.5000000000001 156.7999999999999C273.0000000000001 164.8999999999999 268.3000000000002 169.7999999999999 260.2000000000001 170.9999999999998C255.8000000000001 171.6999999999998 251.3000000000001 171.9999999999998 246.9000000000001 172.4999999999998C233.9000000000001 173.8999999999998 227.1000000000001 179.8999999999998 224.3000000000001 192.7999999999999C219.3000000000001 181.7999999999999 222.7000000000001 170.3999999999999 231.6000000000001 162.8999999999999C236.1000000000001 159.0999999999999 240.9000000000001 155.5999999999999 245.4000000000001 151.6999999999999C250.0000000000001 147.8999999999999 252.8000000000002 142.9999999999999 253.3000000000002 136.8999999999999C253.7000000000002 132.1999999999999 254.1000000000002 127.3999999999999 255.1000000000002 122.7999999999999C257.3000000000002 112.1999999999998 264.0000000000001 104.3999999999999 272.1000000000002 97.6999999999998C288.6000000000002 83.9999999999998 305.1000000000002 70.3999999999998 321.6000000000002 56.5999999999998C339.5000000000001 41.5999999999998 335.5000000000001 23.7999999999998 334.6000000000002 0.5999999999998C333.7000000000002 -22.3000000000002 346.8000000000002 -42.3000000000002 368.1000000000002 -50.6000000000002C369.1000000000002 -51.0000000000002 370.1000000000002 -51.2000000000002 371.7000000000002 -51.7000000000002C356.0000000000002 -33.5000000000002 361.6000000000002 -7.6000000000002 372.4000000000002 0.5999999999998C372.7000000000002 -1.6000000000002 372.8000000000002 -3.7000000000002 373.3000000000002 -5.8000000000002C382.7000000000001 -49.9000000000002 418.7000000000001 -70.0000000000002 458.3000000000001 -62.7000000000002C474.3000000000001 -59.8000000000002 488.9000000000001 -53.8000000000002 501.2000000000001 -42.9000000000001C503.2000000000001 -41.1000000000001 504.9000000000001 -38.8000000000001 507.1000000000001 -36.4000000000001C487.8000000000001 -41.0000000000002 471.3000000000001 -36.5000000000002 456.2000000000001 -25.8000000000001C456.9000000000001 -25.5000000000001 457.5000000000001 -25.5000000000001 458.1000000000001 -25.5000000000001C479.4000000000001 -27.3000000000001 498.7000000000001 -22.1000000000001 515.1000000000001 -8.1000000000001C534.6000000000001 8.4999999999999 541.7000000000002 34.7999999999998 532.5000000000001 57.8999999999999C524.2000000000002 77.9999999999999 508.9000000000001 90.1999999999999 488.7000000000001 96.7999999999998zM99.4 268.7C94.1 277.9 86.2 284.3 77.3 290C91 290.5 103.9 289.8 116.9 286.3C109.9 298.5 108.4 311 111.9 325C117.2 313.1 125.6 304.9 135.5 298.2000000000001C155.2 285 171.2 278.6 182.2 268C185.6 264.7000000000001 188.5 260.9000000000001 191.8 257.1C191 259.2000000000001 190.4 261.2000000000001 189.6 263.1C184.6 273.7000000000001 176.6 281.7000000000001 167 288.1C165.2 289.3 164.2 290.6 163.6 292.6C160.3 305.1 160.6 317.7000000000001 162.9 330.2000000000001C163.9 335.7000000000001 165.7 341.1 167.4 346.5C168.2 348.9000000000001 169.7 351.1 171.4 353.1C172 346.2 171.4 327.6 191 307.1C201.8 295.8 213.4 285.2000000000001 224.9 274.4000000000001C233.9 265.9000000000001 243.2 257.7000000000001 250.4 247.6C251.5 246.0000000000001 252.6 244.3 254.2 242.9000000000001C249.2 255.9000000000001 240.0000000000001 267 230.0000000000001 276.7000000000001C220.4 286.0000000000001 210.6 295.1 200.8000000000001 304.1C197.5 307.1 196.2000000000001 310.8000000000001 195.7000000000001 315.0000000000001C194.5000000000001 325.4000000000001 195.7000000000001 335.6 200.0000000000001 345.2000000000001C200.5000000000001 346.2000000000001 201.1000000000001 347.2000000000001 201.9000000000001 348.5000000000001C202.4000000000001 344.3000000000001 202.5000000000001 340.6 203.3000000000001 336.9000000000001C208.1000000000001 313.8000000000001 223.7000000000001 300.6000000000001 252.6000000000001 273.4000000000001C262.6000000000001 264.0000000000001 271.9000000000001 254.2000000000001 278.2000000000001 241.8000000000001C283.0000000000001 232.5000000000001 285.5000000000001 222.8000000000001 283.9000000000001 212.2000000000001C283.8000000000001 211.6000000000001 284.4000000000001 210.5000000000001 285.0000000000001 210.2000000000001C291.2000000000001 207.6000000000001 295.0000000000001 203.3000000000001 294.7000000000001 195.9000000000001C302.4000000000001 198.5000000000001 307.2000000000001 203.9000000000001 311.1000000000001 210.4000000000001C315.3000000000001 190.2000000000001 302.0000000000001 160.1000000000001 283.9000000000001 151.7000000000001C284.3000000000001 156.2000000000001 288.9000000000001 175.1 267.4000000000001 179.4C260.6000000000001 180.7000000000001 254.6000000000001 180.7000000000001 244.5000000000001 181.5000000000001C249.2000000000001 190.5000000000001 254.9000000000001 202.1000000000001 245.0000000000001 203.9000000000001C220.1000000000001 208.5000000000001 192.2000000000001 202.0000000000001 187.2000000000001 199.3000000000001C195.4000000000001 198.9000000000001 203.5000000000001 198.3000000000001 210.7000000000001 196.0000000000001C208.7000000000001 189.5000000000001 206.7000000000001 183.3000000000001 204.9000000000001 177.1000000000001C203.0000000000001 170.6000000000001 207.0000000000001 162.5000000000001 214.2000000000001 167.5000000000001C215.4000000000001 168.4 216.5000000000001 169.4 217.5000000000001 170.2000000000001C214.4000000000001 152.3000000000001 214.6000000000001 154.3000000000001 214.7000000000001 151.9C215.0000000000001 141.7000000000001 224.2000000000001 144.1 230.4000000000001 144.6C227.9000000000001 132.8 200.9000000000001 117.3 185.0000000000001 118.8C192.0000000000001 123.5 197.7000000000001 129.1 200.9000000000001 136.7C194.4000000000001 135.9 188.0000000000001 135.1 181.7000000000001 134.3L181.4000000000001 135.2C186.1000000000001 138.6 189.4000000000001 143 191.6000000000001 148.3C200.3000000000001 169.4 188.0000000000001 186.3 166.6000000000001 188.2C157.5000000000001 189 148.8000000000001 187.4 140.7000000000001 182.7C146.9000000000001 198.3 157.9000000000001 209.3 173.3000000000001 217.2C158.1000000000001 221.5 164.4000000000001 219.9 148.7000000000001 223.5C163.3000000000001 232.8 178.9000000000001 236.7 195.2000000000001 238.1C190.0000000000001 241.3 147.1000000000001 241.7 125.0000000000001 217.2C132.9000000000001 215.8 140.5000000000001 214.4 148.2000000000001 213C124.4000000000001 206 104.2000000000001 193.3 85.8000000000001 177.4C86.9000000000001 182.2 88.5000000000001 186.9 89.1000000000001 191.7C89.7000000000001 196.2 89.9000000000001 200.9 89.2000000000001 205.3C87.7000000000001 214.7 80.3000000000001 220.4 69.5000000000001 221.6C61.6000000000001 222.5 53.9000000000001 221.5 46.2000000000001 220.3C45.3000000000001 220.2 44.5000000000001 220 43.3000000000001 220.3C59.1000000000001 235.1 79.3000000000001 242 96.4000000000001 253.8C102.4000000000001 258.3 103.2000000000001 262 99.4000000000001 268.7zM227.8 241.9C231.1 225.9 240.4 216.4 251.6 217.6C247.0000000000001 228.9 239.5000000000001 237.1 227.8 241.9z" />
-			<glyph glyph-name="dashcube" unicode="" horiz-adv-x="384" d=" M288.1 350.5H85.5C37.6 350.5 0 309.9 0 262.8V47.7C0 0.3 37.6 -32 85.5 -32H298.5C346.4 -32 384 0.3 384 47.7V448L288.1 350.5zM126.2 57.5C109.6 57.5 95.8 71.7 95.8 88.3V222.3C95.8 238.9 109.6 252.8 126.2 252.8H258.1C274.7000000000001 252.8 288.1 238.9 288.1 222.3V106.6L336 57.6H126.2z" />
-			<glyph glyph-name="delicious" unicode="" horiz-adv-x="448" d=" M446.5 380C446.1 381.5 445.6 383 445.1 384.5C444.2000000000001 387 443.1 389.3 441.8 391.6C440.4000000000001 394 438.8 396.4 437.1 398.5C435 401 432.7000000000001 403.3 430.2000000000001 405.3C429.1 406.2 428.0000000000001 407 426.9000000000001 407.8C425.6 408.7 424.3 409.5 422.9000000000001 410.2C421.1 411.2 419.3 412 417.4000000000001 412.7C415.7000000000001 413.4 413.9000000000001 414 412.0000000000001 414.4C408.2000000000001 415.4 404.1000000000001 415.9 400.0000000000001 415.9H48C21.5 416 0 394.5 0 368V16C0 11.9 0.5 7.8 1.5 4C3.5 -3.7 7.3 -10.6 12.5 -16.3C13.5 -17.4 14.6 -18.5 15.8 -19.6C21.5 -24.8 28.4 -28.6 36.1 -30.6C39.9 -31.6 44 -32.1 48.1 -32.1H400.1C426.6 -32.1 448.1 -10.6 448.1 15.9V368C448 372.1 447.5 376.2 446.5 380zM416 16C416 7.2 408.8 0 400 0H224V192H32V368C32 376.8 39.2 384 48 384H224V192H416V16z" />
-			<glyph glyph-name="deploydog" unicode="" horiz-adv-x="512" d=" M382.2 312H433.9V72.4H382.2V93.1C362.4 68.3 329.4 68.9999999999999 308.4 78.4C282.2 90.1 264.1 116.5 264.1 150.2C264.1 180 278.9 208.1 307.4 221C327.6 230.1 360.1 231.6 382.2 208.1V312zM317.5 150.2C317.5 132 331.1 116.7 350.7 116.7C370.5 116.7 383.9 133.1 383.9 149.6C383.9 166.7 370.2 182.8 350.7 182.8C331.1 182.8 317.5 166.4 317.5 150.1999999999999zM188.5 312H240.2V72.4H188.5V93.1C168.7 68.3 135.7 68.9999999999999 114.7 78.4C88.5 90.1 70.4 116.5 70.4 150.2C70.4 180 85.2 208.1 113.7 221C133.9 230.1 166.4 231.6 188.5 208.1V312zM123.8 150.2C123.8 132 137.4 116.7 157 116.7C176.8 116.7 190.2 133.1 190.2 149.6C190.2 166.7 176.5 182.8 157 182.8C137.3 182.8 123.8 166.4 123.8 150.1999999999999zM448 352C465.5 352 480 337.6 480 320V64C480 46.5 465.6 32 448 32H64C46.5 32 32 46.4 32 64V320C32 337.5 46.4 352 64 352H448M448 384H64C28.8 384 0 355.2 0 320V64C0 28.8 28.8 0 64 0H448C483.2 0 512 28.8 512 64V320C512 355.2 483.2 384 448 384z" />
-			<glyph glyph-name="deskpro" unicode="" horiz-adv-x="480" d=" M205.9 -64L237 -25.6C249.3 -25.4 262.6 -24.2 273.5 -19C312.4 -0.4 311.9 42.9 311.8 44.8C311.7 49.8 311 49.2 282.9000000000001 82.2H362C361.8 32.1 354.7 13.7 351.8 6.5C342.4000000000001 -17.2 307.9000000000001 -56.3 256.6 -62.9C247.9000000000001 -64 223.8 -64.1 205.9 -64zM406.3 103.7C444.9000000000001 103.7 464.8 117.3 480 134.6L304.5 134.9L287.1 103.6L406.3 103.7zM362.7 327.6V159.3H289.2L256.5 103.8H250C197.7 103.8 191.9 160.3 191.7 162.6999999999999C190.5 175.8999999999999 170.4 174.3 171.6 160.8999999999999C173 145.0999999999999 180.4 120.8999999999999 198 103.7999999999999H107C81.5 103.7999999999999 -3.8 130.5999999999999 0 217.7999999999999V431.1C0 447.1 9.7 447.7 15 447.9H97C97.2 447.9 97.3 447.8 97.5 447.8C101.8 448.2 147.6 449.9 147.6 404.1C147.6 390.8 167.8 390.7 167.8 404.1C167.8 422.3 162.3 436.9 152 447.8H236.2C344.9 448.2 362.7 368.4 362.7 327.6zM230.2 271.6L294.2 242.3C307.5 287.8 252 314 230.2 271.6z" />
-			<glyph glyph-name="deviantart" unicode="" horiz-adv-x="320" d=" M320 354.8L221.8 175.7L229.2 166.2H320V38.5H159.1L145.6 29.3L101.9 -54.7C101.6 -54.7 93.3 -63.3 92.7 -63.9H0V29.3L93.2 208.7L85.8 217.9H0V345.5H156L169.5 354.7L213.2 438.7C213.5 438.7 221.8 447.3 222.4 447.9H320V354.8z" />
-			<glyph glyph-name="digg" unicode="" horiz-adv-x="512" d=" M81.7 275.7H0V101.3H132.7V352H81.7V275.7zM81.7 142.3H50.9V234.6H81.7V142.3zM378.9 275.7V101.3H460.7V72.8H378.9V32H512V275.7H378.9zM460.7 142.3H429.9V234.6H460.7V142.3zM225.1 101.3H307.2V72.8H225.1V32H358.4V275.7H225.1V101.3zM276.3 234.6H307.1V142.3H276.3V234.6zM153.3 352H204.6V301H153.3V352zM153.3 275.7H204.6V101.3H153.3V275.7z" />
-			<glyph glyph-name="digital-ocean" unicode="" horiz-adv-x="512" d=" M256 -56V40.1C357.8 40.1 436.8 141 397.7 248.1C383.4 287.7000000000001 351.6 319.5 311.9 333.8C204.8 372.6 103.8 293.9000000000001 103.8 192.1H8C8 354.3 164.9 480.8 335 427.7C409.2 404.4 468.6 345.3 491.6 271.1C544.8 100.8 418.6 -56 256 -56zM256.3 135.4H160.7V39.8H256.3V135.4zM160.7 39.8H87V-33.8000000000001H160.7V39.8zM87 101.4H25.4V39.8H87V101.4z" />
-			<glyph glyph-name="discord" unicode="" horiz-adv-x="448" d=" M297.216 204.8C297.216 189.184 285.6960000000001 176.384 271.104 176.384C256.768 176.384 244.992 189.184 244.992 204.8S256.512 233.216 271.104 233.216C285.696 233.216 297.216 220.416 297.216 204.8zM177.664 233.216C163.072 233.216 151.552 220.416 151.552 204.8S163.328 176.384 177.664 176.384C192.256 176.384 203.776 189.184 203.776 204.8C204.032 220.416 192.256 233.216 177.664 233.216zM448 395.264V-64C383.506 -7.006 404.132 -25.872 329.216 43.776L342.784 -3.584H52.48C23.552 -3.584 0 19.968 0 49.152V395.264C0 424.448 23.552 448 52.48 448H395.5200000000001C424.448 448 448 424.448 448 395.264zM375.04 152.576C375.04 235.0080000000001 338.1760000000001 301.824 338.1760000000001 301.824C301.3120000000001 329.472 266.24 328.704 266.24 328.704L262.656 324.608C306.176 311.296 326.4 292.096 326.4 292.096C265.589 325.425 194.156 325.4310000000001 135.168 299.52C125.696 295.168 120.064 292.096 120.064 292.096S141.312 312.32 187.392 325.632L184.832 328.704S149.76 329.472 112.896 301.824C112.896 301.824 76.032 235.008 76.032 152.576C76.032 152.576 97.536 115.456 154.112 113.6640000000001C154.112 113.6640000000001 163.584 125.184 171.264 134.912C138.752 144.6400000000001 126.464 165.12 126.464 165.12C130.23 162.484 136.44 159.067 136.96 158.72C180.17 134.5220000000001 241.548 126.5940000000001 296.704 149.7600000000001C305.664 153.088 315.648 157.9520000000001 326.144 164.864C326.144 164.864 313.344 143.872 279.808 134.4C287.488 124.672 296.704 113.6640000000001 296.704 113.6640000000001C353.28 115.456 375.04 152.576 375.04 152.576z" />
-			<glyph glyph-name="discourse" unicode="" horiz-adv-x="448" d=" M225.9 416C103.3 416 0 317.5 0 195.9C0 192 0.1 -32 0.1 -32L225.9 -31.8C348.6 -31.8 448 70.5 448 192.1C448 313.7 348.6 416 225.9 416zM224 64C204.6 64 186.1 68.3 169.6 76.1L88.5 56L111.4 131C101.6 149.1 96 169.9 96 192C96 262.7 153.3 320 224 320S352 262.7 352 192S294.7 64 224 64z" />
-			<glyph glyph-name="dochub" unicode="" horiz-adv-x="416" d=" M397.9 288H256V428.4L397.9 288zM304 256V126C304 59.2 267.5 25.9 190.7 25.9H96V363.2H190.7C202.7 363.2 213.8 362.4 223.8 360.7V444.7C212.9 446.9 201.4 448 189.2 448H0V-64H189.2C329.7 -64 400 0.6 400 129.9V256H304z" />
-			<glyph glyph-name="docker" unicode="" horiz-adv-x="640" d=" M349.9 211.7H283.8V271.1H349.9V211.7zM349.9 416H283.8V355.3H349.9V416zM428.1 271.2H362V211.8H428.1V271.2zM271.8 343.3H205.7V283.2H271.8V343.3zM349.9 343.3H283.8V283.2H349.9V343.3zM626.7 243.3C612.3000000000001 253 579.1 256.5 553.6 251.7C550.3000000000001 275.7 536.9 296.6 512.5 315.4L498.5 324.7L489.2 310.7C470.8 282.9 465.8 237.1 485.5 206.9C476.8 202.2 459.7 195.8 437.1 196.2H2.4C-6.3 145.4 8.2 79.4 46.4 34.1C83.5 -9.8 139.1 -32.1 211.8 -32.1C369.2000000000001 -32.1 485.7 40.4 540.2 172.1C561.6 171.7000000000001 607.8000000000001 172 631.5 217.3C633 219.8 638.1 230.5 640 234.4L626.7 243.3zM115.6 271.2H49.6V211.8H115.7V271.2zM193.7 271.2H127.6V211.8H193.7V271.2zM271.8 271.2H205.7V211.8H271.8V271.2zM193.7 343.3H127.6V283.2H193.7V343.3z" />
-			<glyph glyph-name="draft2digital" unicode="" horiz-adv-x="480" d=" M369.9 22.6V77L417 49.8L369.9 22.6zM82.4 67.4C107.9 94.7 180.1 172.1 233.3 237.4C268.4000000000001 280.5 273.6 319.8 261.7 350.1C254.3 368.9 244.2 380.3 237.4 385.8C282.7 383.7 305.4 362.4 319.6 347.5C319.6 347.5 362 299.3 325.4 234.2C288.4 168.3 214.5 86.7 196.9 67.5H82.4zM134.2 286.6C134.2 274.2 124.2 264.2 111.8 264.2C99.4 264.2 89.4 274.2 89.4 286.6C89.4 299 99.4 309 111.8 309C124.2 309 134.2 298.9 134.2 286.6M336 132.1V67.4H244.7C275.5 102.4 326.5 163.3000000000001 356.5 216.7000000000001C391.7 279.3000000000001 372.6 340.1 343.7 370.0000000000001C339.3 374.6 281.5 432.9000000000001 177.7 411.2000000000001C118.6 398.8000000000001 88.3 367.8000000000001 73.4 343.9000000000001C60.3 323.0000000000001 56.4 304.1000000000001 55.2 296.2000000000001C49.7 263.2000000000001 74.6 229.1000000000001 111.9 229.1000000000001C143.6 229.1000000000001 169.2 254.8000000000001 169.2 286.5000000000001C169.2 313.6 149.5 338.6 121.2 343.3000000000001C123 350.6 138.9 364.4000000000001 147.5 368.0000000000001C188.6 385.3000000000001 225.5 362.8000000000001 230.8 334.5000000000001C239.1 290.2000000000001 193.7 244.1000000000001 161.1 206.9000000000001C84.5 119.9 18.3 51.2 0 32.1L336 32.2V-32L480 49.9L336 132.1z" />
-			<glyph glyph-name="dribbble-square" unicode="" horiz-adv-x="448" d=" M90.2 219.8C99.1 262.2000000000001 127.6 297.5 165.9 315.5C169.5 310.6 193.9 276.7 216.6 236.5C152.6 219.5 96.3 219.7 90.2 219.8zM314.6 294C281 323.8 235.3 335.1 192 324.6C195.8000000000001 319.5 220.6 285.7 243.0000000000001 244.6C291.6 262.9 312.1 290.5 314.6 294zM140.1 84C180.6 52.4 233.4 47.3 277.4 66C275.4 78 267.4 119.8 248.2 169.6C193.1 150.8 154.4 113.2000000000001 140.1 84zM238.9 192.2C235.5 200 231.7 207.7 227.8 215.4C159.6 195 93.4 195.8 87.4 196C87.4 194.6 87.3 193.2 87.3 191.8C87.3 156.7 100.6 124.7000000000001 122.4 100.4C144.6 138.3 189.5 178.3 238.9 192.2zM273.8 175.9C291.7 126.8 298.9 86.8 300.3 78.5C331 99.2 352.8 132.1 358.9 170.1C354.3 171.6 316.6 182.8 273.8 175.9zM253.5 224.3C258.3 214.5 261.8 206.5 265.5 197.5C311 203.2 356.2 194.1 360.7 193.1C360.3999999999999 225.4 348.8999999999999 255 329.8 278.2C326.9 274.3 304 245 253.5 224.3zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM384 192C384 280.2 312.2 352 224 352S64 280.2 64 192S135.8 32 224 32S384 103.8 384 192z" />
-			<glyph glyph-name="dribbble" unicode="ï…½" horiz-adv-x="512" d=" M256 440C119.252 440 8 328.748 8 192S119.252 -56 256 -56S504 55.252 504 192S392.748 440 256 440zM419.9700000000001 325.634C449.473 289.588 467.3390000000001 243.677 467.805 193.679C460.821 195.156 390.7870000000001 209.361 320.303 200.497C314.551 214.538 309.122 226.89 301.686 242.111C380.007 274.088 415.504 319.593 419.97 325.634zM396.421 350.13C392.611 344.703 360.724 301.844 285.4 273.611C250.688 337.387 212.215 389.779 206.36 397.619C273.536 413.812 344.326 396.349 396.421 350.13zM165.941 383.38C171.526 375.721 209.379 323.264 244.478 260.871C145.391 234.558 58.118 234.937 48.644 235.062C62.38 300.795 106.678 355.427 165.941 383.38zM44.17 191.677C44.17 193.843 44.213 195.999 44.278 198.15C53.546 197.96 156.198 196.637 261.984 228.2960000000001C268.048 216.4280000000001 273.841 204.3810000000001 279.158 192.347C202.559 170.7720000000001 132.964 108.8200000000001 98.627 50.0410000000001C64.794 87.595 44.17 137.27 44.17 191.677zM125.977 24.564C148.104 69.797 208.155 128.186 293.5560000000001 157.3200000000001C323.2960000000001 80.037 335.5950000000001 15.2670000000001 338.7450000000001 -3.318C270.6330000000001 -32.331 188.7300000000001 -24.371 125.9770000000001 24.564zM374.357 16.075C372.186 28.9610000000001 360.911 90.972 333.205 167.1080000000001C399.585 177.734 457.905 160.3400000000001 465.152 158.0530000000001C455.71 99.1120000000001 421.879 48.2090000000001 374.357 16.075z" />
-			<glyph glyph-name="dropbox" unicode="ï…«" horiz-adv-x="528" d=" M264.4 331.7L132.4 247.4L264.4 163.1L132.4 78.8L0 163.9L132.3 248.2L0 331.7L132.3 416L264.4 331.7zM131.6 52.3L263.6 136.6L395.6 52.3L263.6 -32L131.6 52.3zM264.4 163.9L396.4 248.2L264.4 331.8L395.7 416L528 331.7L395.7 247.4L528 163.2L395.7 78.9L264.4 163.9z" />
-			<glyph glyph-name="drupal" unicode="" horiz-adv-x="448" d=" M319.5 333.3C297.3 347.3 276 352.8 254.8 366.8C241.8 375.6 223.5 396.8 208.3 415.1C205.6 385.8 196.8 373.9 186.3 365.6C165 348.6 151.5 343.4 132.8 333.3C117 325 32 266.5 32 157.5C32 48.3 123.8 -32 225.8 -32C327.5 -32 416 42 416 154C416 266.3 333 325 319.5 333.3zM322 7.7C301.9 -12.4 231.9 -21 205.3 3.5C200.5 8.3 205.6 15.5 211.8 15.5C211.8 15.5 228.8 2.2 263.3 2.2C290.3 2.2 309.3 9.9 317.8 16.2C323.9000000000001 20.8 326.2 11.9 322 7.7zM267.5 60.3C276.2 63.9 296.5 64.1 304.3 59C308.4000000000001 56.2 320.4000000000001 40.2 310.5 35.3C302.1 31.1 309.3 51 284 51C269.3 51 264.5 45.8 257.3 40C250.3 34 247.5 32 245.1 35.3C239.1 43.5 261 57.6 267.5 60.3zM360 43C344.8 44 314.5 91.8 295 92.5C264.1 93.4 190.9 11.8 133.7 50.5C94.9 77.1 119.1 155.3 185.5 155.7C235 156.2 269.3 106.7 294 107.2C315.3 107.5 355.8 149 375.8 149C424.5 149 399.1 39.7 360 43z" />
-			<glyph glyph-name="dyalog" unicode="" horiz-adv-x="416" d=" M0 416V296.8H64V352H171.2C284.6 352 352 271.8 352 192.1C352 116 293.4 32 171.2 32H0V-32H171.2C331.9 -32 416 80.7 416 192.1C416 250.8 393.9 305.5 353.7 346.4C308.9 392 245.7 416 171.2 416H0z" />
-			<glyph glyph-name="earlybirds" unicode="" horiz-adv-x="480" d=" M313.2 400.5C314.4 413.5 334.5 414.5 349.8 409.2C350.7 408.9 376 399.5 368.8 394C340.9000000000001 401.4 312.4000000000001 375.8 313.2 400.5zM112.2 393.6C142.9 401.7 174.2 373.6 173.3 400.7C172 414.9 149.9 416 133.1 410.3C132.1 410 104.4 399.8 112.2 393.6zM319.4 288C310.6 288 303.4 280.8 303.4 272S310.6 256 319.4 256S335.4 263.2 335.4 272S328.2 288 319.4 288zM159.7 288C150.9 288 143.7 280.8 143.7 272S150.9 256 159.7 256S175.7 263.2 175.7 272S168.5 288 159.7 288zM478.2 124.8C468.3 100.8 437.5 113.8 414.3 126C400.8 56.9 356.2 14.6 288 1.8C288.3 0.9 286 1.9 312 0.8C345.6 -0.6 375.8 3.9 409.4 8.8C389.6 22.6 398 45.9 399.6 46.9C401 47.8 414.3 45.2 421.2 35.4C429.8 47.9 449.6 50.2 451.4 49.0000000000001C453 47.9 458 28.1000000000001 444.5 14.4C449.2 15.3 452.7 16.0000000000001 454.3 16.5000000000001C456.9 17.3000000000001 472 5.2 457.4 3.2C443.1 0.9 434.8 -1.9 410.3 -7.6C364.4000000000001 -18.3 324.4 -19.4 292.6 -20.4L293.6 -32C297.4000000000001 -50.1 270.2000000000001 -56.3 266 -38.2C266.8 -56.1 238.9 -60 237.6 -37.2L237.1 -42.5C236.4 -60.9 208.7 -60.4 208.8 -41.9C201.3 -55.4 180.7 -48.7 182.4 -33.4L183.6 -21C146.9 -21.9 123.9 -24.1 121.8 -24.1C100.9 -24.1 100.9 7.5 121.8 7.5C124.2 7.5 149.5 6.2 185 4.7C123.9 20.2 81.3 59.7 70.1 122.9C45.1 110.1 12.6 96.1 1.9 122.1C-8.6 147.5 23.4 164.7 68.7 195.5C69.4 202.1 70.3 208.8 71.4 215.3C57 234.9 59.8 251.6 55.3 275.7C38.5 273.3 32.1 284.8 31.7 298.8C32 306.1 33.8 313.7 34.1 314.2C35.2 316 44.2 316.2 46.8 316.8C52.8 348.5 97.4 350 137.7 351.3C157.4 373.1 182.9 392.8 218.6 399.6C203.3 419 215.2 439.5 216.2 440C217.9 440.8 237.4 435.7 242.5 416.8C247.7 425.6 260.8 428.2 262.1 427.5C263.2000000000001 426.9 268.5 412.5 257.2000000000001 401.6C297.5000000000001 398.1 329.4000000000001 376.9 353.2000000000001 350.9C389.3000000000001 349.4 425.0000000000001 345 430.3000000000001 316.9C433.0000000000001 316.3 441.9000000000001 316.1 443.0000000000001 314.3C443.3000000000001 313.8 445.1000000000001 306.2000000000001 445.4000000000001 298.9C444.9000000000001 285 438.6 273.5 421.8 275.8C418.6 258.5 419.1 242.9 413.1 228.1C415.5 216.4 417.1 204.3 417.9000000000001 191.7000000000001C454.9 166.3000000000001 488.2 149.2000000000001 478.2 124.8000000000001zM207.4 288.1C208.3 332.1 169.5 330.3 128.8 328.4C107.1 327.4 89.9 326.5 83.3 314.5C71.9 293.6 89.2 221.6 106.5 213.3C116.3 208.6 179.9 205.4 192.8 220.4C201 229.8 207.8 269.8 207.4 288.1zM259.4 229.8C255.1 242.2 253.4 259.9 244.1 262.5C242.1 263 235.1 263 233.1 262.5C223.1 259.7 222.3 240.4 216.1 225.3C231.5 225.3 235.4 215.6 239.8 215.6C244.1 215.6 246.1 226.9000000000001 259.4 229.8zM395.1 314.5C388.5 326.6 370.3 327.4 348.6 328.4C308.4 330.3 270.4 332.2 271.3 288.1C270.8 269.8 276.3 229.8 284.5 220.3C297.5 205.4 361.0999999999999 208.5 370.8 213.2C386.6 220.8 407.3 292.1 395.1 314.5z" />
-			<glyph glyph-name="edge" unicode="" horiz-adv-x="512" d=" M25.714 219.837C25.825 219.999 25.944 220.16 26.056 220.322C26.035 220.16 26.011 219.999 25.991 219.837H25.714zM486.286 204.329C486.286 248.361 478.532 288.794 457.485 326.734C416.498 400.121 343.912 439.999 258.893 439.999C118.962 440.276 40.617 334.786 26.056 220.321C68.485 281.633 143.129 341.697 246.431 345.287C246.431 345.287 356.097 345.287 345.85 240.33H169.997C176.366 277.716 188.551 299.316 204.336 319.256C129.288 284.363 82.486 223.16 83.594 130.941C84.424 59.493 133.718 -13.895 204.337 -41.035C287.694 -72.8820000000001 397.113 -48.235 444.469 -19.711V84.693C363.605 28.199 173.598 23.768 172.214 152.265H486.287V204.329z" />
-			<glyph glyph-name="ember" unicode="" horiz-adv-x="640" d=" M639.9 136.3C638.8 147 629.1999999999999 143.1 629.1999999999999 143.1S613.5999999999999 131 599.9 132.4C586.1999999999999 133.7000000000001 590.5 164.4 590.5 164.4S593.5 192.5 585.4 194.8000000000001C577.3 197.2000000000001 567.4 187.5000000000001 567.4 187.5000000000001S555 173.8000000000001 549.1 156.3000000000001L547.5 155.8000000000001S549.4 186.4000000000001 547.2 193.4000000000001C545.6 196.9000000000001 530.8000000000001 196.6000000000001 528.4000000000001 190.4000000000001C526.0000000000001 184.2000000000001 514.2 141.2000000000001 513.4000000000001 123.2000000000001C513.4000000000001 123.2000000000001 490.3000000000001 103.6000000000001 470.1000000000001 100.4000000000001C449.9000000000001 97.2000000000001 445.1000000000001 109.8000000000001 445.1000000000001 109.8000000000001S499.9000000000001 125.1000000000001 498.0000000000001 168.9000000000001C496.1000000000001 212.7000000000001 453.8000000000001 196.5000000000001 449.0000000000001 192.9000000000001C444.4000000000001 189.4000000000001 419.6000000000001 174.5000000000001 412.4000000000001 133.2000000000001C412.2000000000001 131.8000000000001 411.7000000000001 125.7000000000001 411.7000000000001 125.7000000000001S390.5000000000001 111.5000000000001 378.7000000000001 107.7000000000001C378.7000000000001 107.7000000000001 411.7000000000001 163.3000000000001 371.4000000000001 188.6000000000001C353.1 199.6000000000001 338.6 176.5000000000001 338.6 176.5000000000001S393.1 237.2000000000001 381.1 288.5000000000001C375.3 312.9000000000001 363.1 315.6000000000002 351.9000000000001 311.6000000000002C334.9000000000001 304.9000000000001 328.4000000000001 294.9000000000001 328.4000000000001 294.9000000000001S306.4000000000001 262.9000000000001 301.3 215.4000000000001S288.7 110.3000000000001 288.7 110.3000000000001S278.2 100.1000000000001 268.5 99.6000000000001S263.1 128.3000000000001 263.1 128.3000000000001S270.6 172.9000000000002 270.1 180.4000000000002S269 192.0000000000002 260.2000000000001 194.6000000000001C251.3000000000001 197.3000000000001 241.7000000000001 186.0000000000001 241.7000000000001 186.0000000000001S216.2000000000001 147.3000000000001 214.0000000000001 141.4000000000001L212.7000000000001 139.0000000000001L211.4 140.6000000000001S229.4000000000001 193.3000000000001 212.2000000000001 194.1000000000001S183.7000000000001 175.3000000000001 183.7000000000001 175.3000000000001S164.1000000000001 142.5000000000001 163.3000000000001 138.8000000000001L162 140.4000000000002S170.1 178.6000000000001 168.4 188.0000000000002C166.8000000000001 197.4000000000002 157.9 195.5000000000002 157.9 195.5000000000002S146.6 196.8000000000002 143.7000000000001 189.6000000000002C140.7000000000001 182.3000000000002 130.0000000000001 134.3000000000002 128.7000000000001 118.9000000000002C128.7000000000001 118.9000000000002 100.5 98.7000000000002 81.9000000000001 98.5000000000002S65.2000000000001 110.3000000000002 65.2000000000001 110.3000000000002S133.2000000000001 133.6000000000003 114.6000000000001 179.5000000000002C106.3000000000001 191.3000000000003 96.6000000000001 195.0000000000002 82.9000000000001 194.8000000000003C69.2000000000001 194.5000000000002 52.6000000000001 186.2000000000002 41.6000000000001 161.5000000000002C36.3000000000001 149.7000000000002 34.8000000000001 138.5000000000002 33.8000000000001 130.0000000000002C33.8000000000001 130.0000000000002 21.5000000000001 127.6000000000003 15.0000000000001 132.9000000000002C8.6000000000001 138.3000000000002 5.0000000000001 132.9000000000002 5.0000000000001 132.9000000000002S-6.1999999999999 119.0000000000002 4.9000000000001 114.7000000000002C15.9000000000001 110.4000000000002 33.0000000000001 108.6000000000002 33.0000000000001 108.6000000000002C34.6000000000001 101.1000000000002 39.2000000000001 89.1000000000002 52.6000000000001 78.9000000000002C72.8000000000001 63.6000000000002 111.4000000000001 80.2000000000002 111.4000000000001 80.2000000000002L127.3000000000001 89.0000000000002S127.8000000000001 74.4000000000002 139.4000000000001 72.3000000000002C151.0000000000001 70.2000000000002 155.8000000000001 71.3000000000002 175.9000000000001 120.2000000000002C187.7000000000001 145.2000000000002 188.5000000000001 143.8000000000003 188.5000000000001 143.8000000000003L189.8000000000001 144.1000000000003S180.7000000000001 97.3000000000002 184.2000000000001 84.4000000000003C187.7000000000001 71.5000000000003 203.0000000000001 72.8000000000002 203.0000000000001 72.8000000000002S211.3000000000001 70.4000000000003 218.0000000000001 94.0000000000002C224.7000000000001 117.6000000000003 237.6000000000001 143.9000000000002 237.6000000000001 143.9000000000002H239.2000000000001S233.6000000000001 95.8000000000002 242.2000000000001 80.2000000000002C250.8000000000001 64.6000000000002 273.1000000000001 74.9000000000002 273.1000000000001 74.9000000000002S288.7000000000001 82.7000000000002 291.1000000000001 85.1000000000002C291.1000000000001 85.1000000000002 309.6000000000001 69.3000000000002 335.7000000000001 72.2000000000002C394.0000000000001 83.7000000000002 414.8000000000001 98.1000000000002 414.8000000000001 98.1000000000002S424.8000000000001 73.7000000000002 455.9000000000001 71.4000000000002C491.4000000000001 68.7000000000002 510.7000000000001 90.0000000000002 510.7000000000001 90.0000000000002S510.4000000000001 76.5000000000002 522.8000000000001 71.4000000000002C535.2 66.3000000000002 543.5000000000001 94.2000000000002 543.5000000000001 94.2000000000002L564.2000000000002 151.4000000000002H566.1000000000001S567.2000000000002 114.1000000000002 587.6000000000001 108.2000000000002C608.0000000000001 102.3000000000002 634.6000000000001 121.9000000000002 634.6000000000001 121.9000000000002S641.0000000000001 125.6000000000002 639.9000000000001 136.3000000000002zM61.9 131C62.7 163 83.7 176.9 90.9 170C98.2 163 95.5 148 81.8 138.6C68.1 129.1 61.9 131 61.9 131zM334.7 254.9S353.8 304.6 358.3 280.4S318.3 184.2 318.3 184.2C318.8 200.3 334.7 254.9 334.7 254.9zM357.5 116.5C344.9 83.5 314.2 96.9 314.2 96.9S310.7 108.7 320.6 141.8S353.9 162 353.9 162S370.1 149.5 357.5 116.5zM442.1 131S439.1 141.5 450.2000000000001 161.6C461.2 181.8 469.8000000000001 170.7000000000001 469.8000000000001 170.7000000000001S479.2 160.5000000000001 468.5000000000001 145.2000000000001C457.7 129.9 442.1000000000001 131.0000000000001 442.1000000000001 131.0000000000001z" />
-			<glyph glyph-name="empire" unicode="" horiz-adv-x="496" d=" M287.6 393.8C276.8 396 265.5 397.1 254.1 397.4V415.6C332.2000000000001 413.4 400.2000000000001 371.6 438.7000000000001 309L422.9000000000001 299.9C416.8 309.6 410.2000000000001 318.7000000000001 402.7000000000001 327L384.7000000000001 311.5C358.7000000000001 341.1 323.3000000000001 362.2 282.8000000000001 369.9L287.6000000000001 393.8zM53.4 125.6L76.4 133.3C70 151.6 66.4 171.5 66.4 192S69.7 232.4 76.1 250.7L53.4 258.4C57 269.2 61.7 279.7 67 289.4L51.2 298.5C34 267 24.1 230.5 24.1 192S34.1 117 51.2 85.4L67 94.5C61.7 104.5 57.3 114.8 53.4 125.6zM213.1 14C172.7 22 137.3 43.1 111.2 72.7L93.2 56.9C85.7 65.5 78.8 74.6 73 84.3L57 74.9C95.5 12.6 163.8 -29.4 241.9 -31.7V-13.4C230.6 -13.1 219.2 -11.7 208.4 -9.8L213.1 14zM93.3 327.1L111.3 311.6C137.3 341.2 172.7 362.3 213.2 370L208.5 393.8C219.3 396 230.6 397.1 242 397.4V415.6C163.9 413.4 95.9 371.6 57.4 309L73.2 299.9C79.2 309.6 85.8 318.8 93.3 327.1zM402.7 56.9L384.7 72.7C358.7 43.1 323.3 22 282.8 14L287.5 -9.8C276.7 -11.7 265.3999999999999 -13.1 254 -13.4V-31.7C332.0999999999999 -29.5000000000001 400.4 12.6 438.9 74.9L422.8 84.3C417.1 74.6 410.2 65.4999999999999 402.7 56.9zM496 192C496 55 385 -56 248 -56S0 55 0 192S111 440 248 440S496 329 496 192zM483.8 192C483.8 322.1 378.1 427.8 248 427.8S12.2 322.1 12.2 192S117.9 -43.8 248 -43.8S483.8 61.9 483.8 192zM444.8 298.6L429 289.5C434.3 279.8 439 269.3 442.6 258.5L419.9000000000001 250.8C426.3 232.5 429.6 212.6 429.6 192.1S426 151.7000000000001 419.6 133.4L442.6 125.7000000000001C438.7000000000001 114.9 434.3 104.7000000000001 429 94.7000000000001L444.8 85.6C462 117 471.9 153.5 471.9 192S462 267 444.8 298.6zM261.8 120.9C278.1 124.2 292.2 132.5 302.5 144.4L353.7 99.6C365.6 113.2 375 128.9 380.8 146.4L316.6 168.5C319.1 176 320.5 183.7 320.5 192S319.1 208.1 316.6 215.5L381.1 237.6C375 255 365.6 270.8 353.7000000000001 284.4L302.5000000000001 239.6C292.3000000000001 251.5 278.1000000000001 260.1 261.8000000000001 263.4L275.1000000000001 329.8C266.5000000000001 331.7 257.4000000000001 332.6 248.0000000000001 332.6C238.6000000000001 332.6 229.5000000000001 331.8 220.9000000000001 329.8L234.2000000000001 263.4C217.9000000000001 260.1 203.8000000000001 251.5 193.5000000000001 239.6L142.3000000000001 284.4C130.4000000000001 270.8 121.0000000000001 255.1 114.9000000000001 237.6L179.4000000000001 215.5C176.9000000000001 208 175.5000000000001 200.3 175.5000000000001 192S176.9000000000001 175.9 179.4000000000001 168.5L115.2000000000001 146.4C121.0000000000001 129 130.4000000000001 113.2 142.3000000000001 99.6L193.5000000000001 144.4C203.7000000000001 132.5 217.9000000000001 124.2 234.2000000000001 120.9L220.9000000000001 54.2C229.5000000000001 52.5 238.6000000000001 51.4 248.0000000000001 51.4C257.4000000000001 51.4 266.5000000000001 52.5 275.1000000000001 54.2L261.8000000000001 120.9z" />
-			<glyph glyph-name="envira" unicode="" horiz-adv-x="448" d=" M0 416C477.6 416 366.6 98.7 367.1 49.7L448 -32H422L351.6 39.2C312.6 35 227.2 4.7 137.2 76.2C47 147.7 52 233.3 0 416zM79.7 370C30 393.5 74.5 360.8 74.5 360.8C119.7 329.6 140.5 287.1 164.7 240.9C196.2 180.7 243.7 101.2 308.9 73.2C373.9 45.2 343.1 60.7 314.9 81.7C286.7 102.9 246.7 168.7 223.9 211.9C192.2 271.9 162.9 330.5 79.7 370z" />
-			<glyph glyph-name="erlang" unicode="" horiz-adv-x="640" d=" M21.7 255C21.6 168.2 50.7 95.5 100.4 42.9H0V447.9H87.2C45.7 397.7 21.6 331.8 21.7 255zM640 447.9H556.4C587.8 405.2 605.1 350.4 602.6 285.2000000000001C603.1 279.2000000000001 603.1 273.5 602.6 261.1H230.2C230 151.4 269.1 66.2000000000001 368.8 65.8C437.3 66.1 486.8 116.8 520.6999999999999 171.9L617.0999999999999 123.7C599.6999999999999 92.8 580.5999999999999 65.9 559.1999999999999 42.9H640V447.9zM559.2 42.9H559H559.2zM556.1 447.9H556.4L556.3 448L556.0999999999999 447.9zM325.4 438.2C279.5 438.1 240.3 404.7 236.2 355H406.1C405 404.7 371.6 438.1 325.4 438.2z" />
-			<glyph glyph-name="ethereum" unicode="" horiz-adv-x="320" d=" M311.9 187.2L160 94.4L8 187.2L160 448L311.9 187.2zM160 64.6L8 157.4L160 -64L312 157.4L160 64.6z" />
-			<glyph glyph-name="etsy" unicode="ï‹—" horiz-adv-x="384" d=" M384 100C382.25 89.25 370.25 -10 368.5 -32C250.621 -27.701 148.605 -27.257 0 -32V-6.5C45.457 2.448 60.627 1.519 61 28.75C62.793 101.072 64.524 272.8930000000001 61 350.75C59.971 379.2100000000001 48.87 377.515 0 386.75V412.25C73.886 409.892 255.933 403.699 362.999 416C359.499 377.75 355.249 289.5 355.249 289.5H332C320.947 332.335 313.241 380 277.25 380H140.25C130 380 129.5 376.5 129.5 370.25V206.5C187.5 206 218 209 218 209C247.77 209.951 245.56 217.502 258.75 274.251H284.5C280.093 172.9 280.59 212.422 282.75 114.001H257C247.845 154.087 247.935 175.046 217.499 175.501C217.499 175.501 195.999 177.501 129.499 177.501V38.501C129.499 12.501 143.749 0.251 173.749 0.251H263C326.636 0.251 329.564 25.247 361.751 100.001H384z" />
-			<glyph glyph-name="expeditedssl" unicode="" horiz-adv-x="496" d=" M248 404.6C130.6 404.6 35.4 309.4 35.4 192S130.6 -20.6 248 -20.6S460.6 74.6 460.6 192S365.4 404.6 248 404.6zM150.6 271.7C150.6 325.4 194.3 369.1 248 369.1S345.4 325.4 345.4 271.7V245.1C345.4 240.1 341.5 236.2 336.5 236.2H318.8C313.8 236.2 309.9000000000001 240.1 309.9000000000001 245.1V271.7C309.9000000000001 353.8 185.9 353.8 185.9 271.7V245.1C185.9 240.1 182 236.2 177 236.2H159.3000000000001C154.3000000000001 236.2 150.4 240.1 150.4 245.1V271.7zM389.7 68C389.7 58.3 381.7 50.3 372 50.3H124C114.3 50.3 106.3 58.3 106.3 68V209.7C106.3 219.4 114.3 227.4 124 227.4H372C381.7 227.4 389.7 219.4 389.7 209.7V68zM141.7 205.3V72.4C141.7 69.9 139.8 68 137.3 68H128.4C125.9 68 124 69.9 124 72.4V205.3C124 207.8 125.9 209.7 128.4 209.7H137.3C139.8 209.7 141.7 207.8 141.7 205.3zM283.4 156.6C283.4 143.6 276.2 132.2000000000001 265.7 126.2000000000001V94.6C265.7 89.6 261.8 85.7000000000001 256.8 85.7000000000001H239.1C234.1 85.7000000000001 230.2 89.6 230.2 94.6V126.2000000000001C219.7 132.3000000000001 212.5 143.6 212.5 156.6C212.5 176.3 228.3000000000001 192 247.9000000000001 192S283.4000000000001 176.2000000000001 283.4000000000001 156.6zM248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -38.3C121 -38.3 17.7 65 17.7 192S121 422.3 248 422.3S478.3 319 478.3 192S375 -38.3 248 -38.3z" />
-			<glyph glyph-name="facebook-f" unicode="" horiz-adv-x="264" d=" M76.7 -64V165H0V256H76.7V327.7C76.7 405.6 124.3 448 193.8 448C227.1 448 255.7 445.5 264 444.4V363H215.8C178 363 170.7 345 170.7 318.7V256H256L244.3 165H170.7V-64" />
-			<glyph glyph-name="facebook-messenger" unicode="" horiz-adv-x="448" d=" M224 416C15.9 416 -77.5 170 84.6 47.4V-32L160.3 10C302.5 -29.8 445.7 69.9 445.7 208.7C445.8 323.2 346.5 416 224 416zM247.4 137.9L190 197.5L79.6 136.4L200.7 264.9L258.1 205.3L368.5 266.4L247.4 137.9z" />
-			<glyph glyph-name="facebook-square" unicode="ï‚‚" horiz-adv-x="448" d=" M448 368V16C448 -10.5 426.5 -32 400 -32H314.7V145.2H375.3L384 212.8H314.7V256C314.7 275.6 320.1 288.9 348.2 288.9H384V349.3C377.8 350.1 356.6 352 331.8 352C280.2 352 244.8 320.5 244.8 262.6V212.7H184V145.1H244.9V-32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368z" />
-			<glyph glyph-name="facebook" unicode="ï‚š" horiz-adv-x="448" d=" M448 391.3V-7.2C448 -20.9 436.9 -31.9 423.3 -31.9H309.1V141.5H367.3L376 209.1H309V252.3C309 271.9 314.4 285.2000000000001 342.5 285.2000000000001H378.3V345.7000000000001C372.1 346.5 350.9000000000001 348.4000000000001 326.1 348.4000000000001C274.5 348.4000000000001 239.1 316.9000000000001 239.1 259V209.1H180.7V141.5H239.1V-32H24.7C11.1 -32 0 -20.9 0 -7.3V391.3C0 404.9 11.1 416 24.7 416H423.2C436.9 416 448 404.9 448 391.3z" />
-			<glyph glyph-name="firefox" unicode="" horiz-adv-x="480" d=" M478.1 212.7C477.4 217.2 476.7 219.8 476.7 219.8S474.9 217.8 472.0000000000001 213.9C471.1000000000001 224.6 469.2 235.1 466.2 245.5C462.5000000000001 258.4 457.7 270.9 451.7 282.9C447.9000000000001 290.9 443.5000000000001 298.5 438.4000000000001 305.7C436.6 308.4 434.7000000000001 311.1 432.8 313.6C424 328 413.8 336.9 402.1 353.6C394.5 366.4 389.2000000000001 380.5 386.7000000000001 395.2C383.5000000000001 386.3 381.0000000000001 377.2 379.3000000000001 367.9C367.2000000000001 380.1 356.8000000000001 388.7 350.4000000000001 394.6C319.4 423.8 323 438.9 323 438.9S264.7 373.8 289.9 306C298.6 283 313.7 262.9 333.3 248.1C357.7 227.9 384.1 212.1 398 171.5C386.8 192.8 369.8999999999999 210.7 349.2 223C355.3999999999999 208.3 358.5999999999999 192.4 358.5 176.5C358.5 115.5 308.8999999999999 66 247.9 66.1C239.6 66.1 231.4 67 223.4 68.9C213.9 70.7000000000001 204.7 73.8 196 78.2000000000001C183.0999999999999 86.0000000000001 172 96.3000000000001 163.1999999999999 108.5000000000001L163 108.8000000000001L165 108.1000000000001C169.5999999999999 106.5000000000001 174.1999999999999 105.3000000000001 179 104.4000000000001C197.6999999999999 100.4000000000001 217.3 102.7000000000001 234.6 111.0000000000001C252.1 120.7000000000001 262.5999999999999 127.9000000000001 271.2 125.0000000000001H271.3999999999999C279.7999999999999 122.3000000000001 286.3999999999999 130.5000000000001 280.3999999999999 139.0000000000001C270 152.4000000000001 252.9999999999999 159.0000000000001 236.2 156.0000000000001C218.6999999999999 153.5000000000001 202.6999999999999 141.0000000000001 179.7999999999999 153.1000000000001C178.2999999999999 153.9000000000002 176.8999999999999 154.7000000000002 175.4999999999999 155.6000000000001C173.8999999999999 156.5000000000001 180.3999999999999 154.3000000000001 178.8999999999999 155.3000000000001C173.8999999999999 157.8000000000001 169.0999999999999 160.7000000000001 164.4999999999999 163.9000000000002C164.1999999999999 164.2000000000002 167.9999999999999 162.8000000000001 167.5999999999999 163.1000000000001C161.6999999999999 167.1000000000001 156.5999999999999 172.3000000000001 152.5999999999999 178.3000000000001C148.4999999999999 185.7000000000001 148.0999999999999 194.7000000000001 151.5999999999999 202.4000000000001C153.6999999999999 206.2000000000001 156.9999999999999 209.3000000000001 160.8999999999999 211.1000000000001C163.8999999999999 209.6000000000001 165.6999999999999 208.5000000000001 165.6999999999999 208.5000000000001S164.3999999999999 211.0000000000001 163.5999999999999 212.3000000000001C163.9 212.4000000000001 164.0999999999999 212.3000000000001 164.4 212.5000000000001C167 211.4000000000001 172.7 208.5000000000001 175.8 206.7000000000001C177.9 205.6000000000001 179.6 204.0000000000001 181 202.0000000000001C181 202.0000000000001 182 202.5000000000001 181.3 204.7000000000001C180.2 207.4000000000001 178.4 209.7000000000001 175.9 211.3000000000001H176.0999999999999C178.4 210.1000000000001 180.5999999999999 208.7000000000001 182.6999999999999 207.2000000000001C184.5999999999999 211.6000000000001 185.5 216.4000000000001 185.2999999999999 221.2000000000001C185.4999999999999 223.8000000000001 185.0999999999999 226.5000000000001 184.1999999999999 229.0000000000001C183.3999999999999 230.6000000000001 184.6999999999999 231.2000000000001 186.0999999999999 229.5000000000001C185.9 230.8000000000002 185.4 232.0000000000001 184.9 233.2000000000001V233.3000000000001S185.7 234.4000000000001 186.0999999999999 234.8000000000001C187.0999999999999 235.8000000000001 188.1999999999999 236.7000000000001 189.5 237.5000000000001C196.6999999999999 242.0000000000001 204.3 245.9000000000001 212.1999999999999 249.1000000000001C218.5999999999999 251.9000000000001 223.8999999999999 254.0000000000001 225 254.7000000000001C226.6 255.7000000000001 228.1 256.9000000000001 229.5 258.2000000000001C234.8 262.7000000000001 238.5 269.0000000000001 239.7 275.9000000000001C239.8 276.8000000000001 239.8999999999999 277.7000000000001 240 278.7000000000001V280.2000000000001C239.1 283.7000000000001 233.1 286.3000000000001 201.5999999999999 289.3000000000001C190.5 291.1000000000001 181.5999999999999 299.4000000000001 179.0999999999999 310.4000000000001V310.3000000000001C178.6999999999999 309.2000000000001 178.1999999999999 308.0000000000001 177.7999999999999 306.8000000000001C178.1999999999999 308.0000000000001 178.5999999999999 309.1000000000001 179.0999999999999 310.3000000000001V310.5000000000001C185.0999999999999 326.2000000000001 195.9 339.6 209.9 348.8000000000001C210.7 349.5000000000001 206.7 348.6 207.5 349.3000000000001C210.1999999999999 350.6 212.9 351.8000000000001 215.6999999999999 352.8000000000001C217.0999999999999 353.4000000000001 209.6999999999999 356.2000000000001 203.0999999999999 355.5000000000001C199.0999999999999 355.3000000000001 195.0999999999999 354.3000000000001 191.4 352.7000000000001C193 354.0000000000001 197.5999999999999 355.8000000000001 196.5 355.8000000000001C188.0999999999999 354.2000000000001 180 351.1 172.5999999999999 346.8000000000001C172.5999999999999 347.6 172.6999999999999 348.3000000000001 173.0999999999999 349.0000000000001C167.1999999999999 346.5000000000001 162.0999999999999 342.5000000000001 158.0999999999999 337.5000000000001C158.1999999999999 338.4000000000001 158.2999999999999 339.3000000000001 158.2999999999999 340.2000000000001C155.5999999999999 338.2000000000001 153.0999999999999 335.9000000000001 150.9999999999999 333.3000000000001L150.8999999999999 333.2000000000001C133.4999999999999 339.9000000000001 114.5999999999999 341.5000000000001 96.2999999999999 337.9000000000001L96.0999999999999 338.0000000000001H96.2999999999999C92.4999999999999 341.1 89.1999999999999 344.7000000000001 86.5999999999999 348.9000000000001L86.3999999999999 348.8000000000001L85.9999999999999 349.0000000000001C84.7999999999999 350.8000000000001 83.5999999999999 352.8000000000001 82.2999999999999 355.0000000000001C81.3999999999999 356.6000000000001 80.4999999999999 358.4000000000001 79.5999999999999 360.2000000000001C79.5999999999999 360.3000000000001 79.4999999999999 360.4000000000001 79.3999999999999 360.4000000000001C78.9999999999999 360.4000000000001 78.7999999999999 358.7000000000001 78.4999999999999 359.1000000000001V359.2000000000001C75.2999999999999 367.5000000000001 73.7999999999999 376.4000000000001 74.0999999999999 385.4000000000001L73.8999999999999 385.3000000000001C68.7999999999999 381.8000000000001 64.8999999999999 376.7000000000001 62.7999999999999 370.8000000000001C61.8999999999999 368.7000000000001 61.1999999999999 367.5000000000001 60.5999999999999 366.3000000000001V366.8000000000001C60.6999999999999 367.9000000000001 61.1999999999999 370.1000000000001 61.0999999999999 369.9000000000001C60.9999999999999 369.7000000000001 60.8999999999999 369.6000000000001 60.7999999999999 369.5000000000001C59.2999999999999 367.8000000000001 57.8999999999999 365.8000000000001 56.8999999999999 363.7000000000001C55.9999999999999 361.8000000000001 55.1999999999999 359.8000000000001 54.5999999999999 357.8000000000001C54.4999999999999 357.5000000000001 54.5999999999999 358.1 54.5999999999999 358.8000000000001S54.6999999999999 360.8000000000001 54.5999999999999 360.5000000000001L54.2999999999999 359.8000000000001C47.5999999999999 344.9000000000001 43.3999999999999 329.0000000000001 41.8999999999999 312.7000000000001C41.4999999999999 309.9000000000001 41.2999999999999 307.1 41.3999999999999 304.4000000000001V304.2000000000001C36.5999999999999 299.0000000000001 32.3999999999999 293.2000000000001 28.6999999999999 287.1C16.5999999999999 266.7000000000001 7.5999999999999 244.6000000000001 1.8999999999999 221.5000000000001C5.8999999999999 230.3000000000001 10.6999999999999 238.7000000000001 16.1999999999999 246.6000000000001C5.5 219.5 0 190.6 0 161.4C1.8 170 4.2 178.4 7 186.7C5.3 152.2 11.9 117.8 26.4 86.4C45.8 42.9 78 6.4 118.7 -18.3C135.3 -29.5 153.4 -38.2 172.5 -44.1C175 -45 177.6 -45.9 180.2 -46.8C179.4 -46.5 178.6 -46.1 177.8 -45.8C200.4 -52.6 224 -56.1 247.6 -56.1C331.3 -56.1 358.9 -24.2 361.4 -21.1C365.5 -17.4 368.9 -12.9 371.3 -7.8C372.9 -7.1 374.5 -6.4 376.2 -5.7L377.2 -5.2L379.0999999999999 -4.3C391.7 1.6 403.5999999999999 9.1 414.3999999999999 17.8C430.7 29.5 442.2999999999999 46.5 447.2999999999999 65.9C450.2999999999999 73.0000000000001 450.3999999999999 80.9 447.6999999999999 88.1C448.5999999999999 89.5 449.3999999999999 90.9 450.3999999999999 92.4C468.3999999999999 121.3 478.5999999999999 154.3 479.9999999999999 188.3000000000001V191.1000000000001C479.9999999999999 198.4000000000001 479.3999999999999 205.6000000000001 478.0999999999999 212.7000000000001z" />
-			<glyph glyph-name="first-order" unicode="" horiz-adv-x="448" d=" M12.9 218.8C13 218.9 13.1 219.1 13.2 219.2C13.2 219.1 13.2 218.9 13.1 218.8H12.9zM224 351.4C216.9 351.4 209.4 350.8 202.6 349.7L206.3 282.3L184.3 346.3C170 342.6 156.6 336.9 144.3 329.7000000000001L173.7 268.3L128.6 319.2000000000001C117.2 310.3 106.9 300.1 98 288.3L148.6 242.9L87.5 272.6C80.4 260.3 74.6 246.9 70.9 232.6L135.2 210L67.2 214C66.3 206.9 65.8 199.4 65.8 192S66.4 177.4 67.2 170.3L134.9 174.3L70.9 151.7C74.6 137.4 80.3 124 87.5 111.4L148.6 141.1L97.7 96C106.6 84.3 116.8 73.7 128.6 65.1L173.5 116L144 54.6C156.3 47.2 169.7 41.5 184 37.7L206.3 102.3000000000001L202.3 34.3000000000001C209.4 33.2 216.9 32.6000000000001 224 32.6000000000001C231.4 32.6000000000001 238.6 33.2000000000001 245.7 34.3000000000001L241.7 102.9000000000001L264.3 37.8000000000001C278.6 41.8000000000001 292 47.2 304.3 54.7L274.9 116L319.8 65.1C331.5 74 341.8 84.2000000000001 350.4 96L299.8 141.1L360.9 111.7000000000001C368 124.0000000000001 373.8 137.4 377.5 152.0000000000001L313.5 174.3000000000001L380.9 170.3000000000001C382 177.4000000000001 382.3 184.6000000000001 382.3 192.0000000000001S382 206.9000000000001 380.9 214.0000000000001L313.2 210.0000000000001L377.2 232.3000000000001C373.5 246.6000000000001 368.1 260.3000000000001 360.6 272.6000000000001L299.7 242.9000000000001L350.3 288.3000000000001C341.4000000000001 300.0000000000001 331.2 310.3000000000001 319.7 319.2000000000001L274.6 268.3000000000001L304 329.4000000000001C291.7 336.8000000000001 278.3 342.5000000000001 264 346.3000000000001L241.7 282L245.7 349.7C238.6 350.9 231.4 351.4 224 351.4zM443.4 320V64L224 -64L4.6 64V320L224 448L443.4 320zM426.3 309.7L224 427.1L21.7 309.7V74.6L224 -43.1L426.3 74.6V309.7zM224 410.9L411.7 301.5V82.6L224 -26.9L36.3 82.6V301.4L224 410.9zM224 360C131.7 360 57.1 284.9 57.1 192C57.1 99.4 131.7 24.3 224 24.3C316 24.3 390.9 99.4 390.9 192C390.9 284.9 316 360 224 360z" />
-			<glyph glyph-name="firstdraft" unicode="" horiz-adv-x="384" d=" M384 256H320V128H192V0H0V25.6H166.4V153.6H294.4V281.6H384V256zM358.4 217.6V89.6H230.4V-38.4H64V-64H256V64H384V217.6H358.4zM384 25.6H294.4V-64H320V0H384V25.6zM0 448V64H128V192H256V320H384V448H0z" />
-			<glyph glyph-name="flickr" unicode="ï…®" horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM144.5 129C109.4 129 81 157.4 81 192.5S109.4 256 144.5 256S208 227.6 208 192.5S179.6 129 144.5 129zM303.5 129C268.4 129 240 157.4 240 192.5S268.4 256 303.5 256S367 227.6 367 192.5S338.6 129 303.5 129z" />
-			<glyph glyph-name="fly" unicode="" horiz-adv-x="384" d=" M197.8 20.2C210.7 8.5 231.5 -13.1 231 -30.5C231 -31.3 230.9 -32.1 230.9 -33C229.1 -52.8 212.1 -64.1 191.8 -64C166.8 -63.9 151.9 -47.2 153.1 -28.2C154.1 -12 173.6 8.5 185.5 19.4C187.8000000000001 21.5000000000001 188.2 22.1 191.1 23.0000000000001C194.5 23.0000000000001 195 22.7 197.8 20.2zM331.9 380.7C315.6 406.4 293.3 421.3 268.6 432.8C243.1 443.5 214 448.2 192 448C147.9 448 120.8 434.8 110.9 430.7C57.3 402.8 26.5 360.8 28 289.4C35.1 207.2 125 113.4 183.8 55.6C185.5 54 188.3 51.1 190 50.5L193.3 50.4C195.4 51.1 195.1 50.9 196.8 52.5C249.1 101.7 337.5 198.3 352.7000000000001 268.2C359.7000000000001 307.4 355.8000000000001 340.7 331.9000000000001 380.7zM186.8 96.1C158.8 147.2000000000001 121.6 226.8 117.5 285.1C114.1 332.6 128.9 416.3 186.8 421.8V96.1zM328.7 268C312.3 211.2 251.4 140 209.8 97.7C237.6 149.6 275 231 277 289.6C278.6 335.5 267.2 395.4 229 421C317.8 402.7 344.5 322.9 328.7 268z" />
-			<glyph glyph-name="font-awesome-alt" unicode="" horiz-adv-x="448" d=" M397.8 380.2C405.6 380.2 412.1 373.6 412.1 365.9V18.3C412.1 10.4999999999999 405.5 3.9999999999999 397.8 3.9999999999999H50.2C42.4 3.9999999999999 35.9 10.6 35.9 18.3V365.8C35.9 373.6 42.5 380.1 50.2 380.1H397.8M397.8 416H50.2C22.7 416 0 393.3 0 365.8V18.2C0 -9.3 22.7 -32 50.2 -32H397.8C425.3 -32 448 -9.3 448 18.2V365.8C448 393.3 425.3 416 397.8 416zM339.3 276.8C333.3 276.8 309.4000000000001 261.3 286.7 261.3C282.5 261.3 278.3 261.9 274.2 263.7000000000001C254.5 271.5 237.2 277.4 215.1 277.4C194.8 277.4 173.3 270.8 155.4 263.7000000000001C153.6 263.1 151.8 262.5 150.6 261.9V279.8C158.4 285.8 163.1 294.7000000000001 163.1 305.5C163.1 323.4 148.8 337.8 130.8 337.8S98.5 323.5 98.5 305.5C98.5 295.3 103.3 285.8 111 279.8V67.7000000000001C111 56.9 120 48.0000000000001 130.7 48.0000000000001C139.7 48.0000000000001 146.8 54.0000000000001 149.2 61.7000000000001V63C149.8 64.8 149.8 66 149.8 67.8V112C151 112 152.2 112.6 152.8 113.2C172.5 121.6 195.8 129.9 218.5 129.9C249.6 129.9 261.5 113.8 287.8 113.8C306.3 113.8 324.2 120.4 339.8 127.5C344 129.3 347 131.1 347 135.3V269.7C348.8 273.8 344.7 276.8 339.3 276.8z" />
-			<glyph glyph-name="font-awesome-flag" unicode="" horiz-adv-x="448" d=" M444.373 88.576C444.373 81.408 438.229 78.336 431.061 75.264C402.389 62.976 371.669 51.712 338.901 51.712C292.821 51.712 271.317 80.384 216.021 80.384C176.085 80.384 134.101 66.048 100.309 50.688C98.261 49.664 96.213 49.664 94.165 48.64V-29.184C94.165 -50.5890000000001 78.043 -64 60.373 -64C40.9169999999999 -64 25.5569999999999 -48.64 25.5569999999999 -29.184V345.6C12.245 355.8400000000001 3.029 372.224 3.029 390.656C3.029 422.4 28.629 448 60.373 448S117.717 422.4 117.717 390.656C117.717 372.224 109.525 355.8400000000001 95.189 345.6V313.856C99.313 315.23 153.957 342.528 209.877 342.528C275.147 342.528 307.553 314.88 336.853 314.88C375.765 314.88 418.773 342.528 429.0130000000001 342.528C437.2050000000001 342.528 444.3730000000001 336.384 444.3730000000001 329.216V88.576z" />
-			<glyph glyph-name="font-awesome" unicode="" horiz-adv-x="448" d=" M397.8 416H50.2C22.7 416 0 393.3 0 365.8V18.2C0 -9.3 22.7 -32 50.2 -32H397.8C425.3 -32 448 -9.3 448 18.2V365.8C448 393.3 425.3 416 397.8 416zM352.4000000000001 131.7C352.4000000000001 127.5 348.8 125.7 344.6 123.9C327.9000000000001 116.7 310 110.2 290.8 110.2C263.9000000000001 110.2 251.4 126.9 219.1 126.9C195.8 126.9 171.3 118.5 151.6 109.6C150.4 108.9999999999999 149.2 108.9999999999999 148 108.4V63C148 61.2 148 59.4 147.4 58.2V57C145 48.6 137.2000000000001 42.7 128.3000000000001 42.7C117.0000000000001 42.7 108 51.7 108 63V281.6C100.2000000000001 287.6 94.9000000000001 297.1 94.9000000000001 307.9C94.9000000000001 326.4 109.8000000000001 341.4 128.4 341.4C146.9 341.4 161.9 326.5 161.9 307.9C161.9 297.1 157.1 287.6 148.8000000000001 281.6V263.1C150.6000000000001 263.7 152.4 264.3 154.2000000000001 265.5C172.7000000000001 273.3 194.8000000000001 279.8 215.7000000000001 279.8C238.4000000000001 279.8 256.3000000000001 273.8 276.6 266.1C280.8 264.3 285 263.7000000000001 289.7000000000001 263.7000000000001C312.4000000000001 263.7000000000001 337.5000000000001 279.8 343.5000000000001 279.8C348.3000000000001 279.8 352.5000000000001 276.2000000000001 352.5000000000001 272V131.7z" />
-			<glyph glyph-name="fonticons-fi" unicode="" horiz-adv-x="384" d=" M114.4 224H206.8L191.6 172.8H115.2V15C115.2 7 112.4 5.8 119.6 5L179.2 -0.6V-35H0V0.2L29.2 3C36.4 3.8 38.4 6.2 38.4 13.8V169.6C38.4 172.8 34.4 172.8 30.4 172.8H0V224H38.4V252.8C38.4 320.8 74.8 348.8 144.4 348.8C191.2 348.8 233.2 337.6 233.2 276.4L163.6 268C164 293.6 157.6 299.6 141.2 299.6C116 299.6 115.2 286 115.2 262V230C115.2 226.8 110.4 224 114.4 224zM384 -35H243.2V-0.6L271.2 3C278.4 3.8 281.6 5.4 281.6 13V161C281.6 166.6 277.6 170.2 272.4 171.8L239.2 180.6L248.4 221H358.4V13C358.4 5 354.8 4.2 362.4 3L384 -0.6V-35zM354 312.2L366.4 266.6L356.4 256.6L313.6 279.4L270.8 256.6L260.8 266.6L273.2 312.2L243.2 348.6L248 358.6H286L307.2 397H320L341.2 358.6H379.2L384 345.4L354 312.2z" />
-			<glyph glyph-name="fonticons" unicode="" horiz-adv-x="448" d=" M0 416V-32H448V416H0zM167.4 220H234.8L223.7 182.7H168V69.8C168 63.9999999999999 166 63.1 171.2 62.4999999999999L214.7 58.3999999999999V33.2999999999999H84V59L105.3 61C110.5 61.6 112 63.3 112 68.9V180.3C112 182.6 109.1 182.6 106.2 182.6H84V220H112V241C112 290.6 138.5 311 189.3 311C223.4 311 254 302.8 254 258.2L203.3 252.1C203.6 270.8 198.9 275.1 187 275.1C168.6 275.1 168 265.2 168 247.7V224.4C168 222 164.5 220 167.4 220zM364 33.3H261.3V58.4L281.7 61.0000000000001C286.9 61.6000000000001 289.3 62.7000000000001 289.3 68.3000000000001V176.2C289.3 180.3 286.4000000000001 182.9 282.6 184.1L258.4000000000001 190.5L265.1 220H345.3V68.3C345.3 62.4999999999999 342.7 61.9 348.2 60.9999999999999L363.9 58.3999999999999V33.2999999999999zM342.1 288.8L351.1 255.6L343.8 248.3L312.6 264.9L281.4000000000001 248.3L274.1 255.6L283.1 288.8L261.3 313L264.8 322.6H292.5L308 350.6H317.3L332.8 322.6H360.5L364 313L342.1 288.8z" />
-			<glyph glyph-name="fort-awesome-alt" unicode="" horiz-adv-x="512" d=" M211.7 206.9V155.2C211.7 153.1 210.1 151.5 208 151.5H185.8C183.7 151.5 182.1 153.1 182.1 155.2V206.9C182.1 209 183.7 210.6 185.8 210.6H208C210.1 210.6 211.7 209 211.7 206.9zM326.2 210.6H304C301.9 210.6 300.3 209 300.3 206.9V155.2C300.3 153.1 301.9000000000001 151.5 304 151.5H326.2C328.3 151.5 329.9 153.1 329.9 155.2V206.9C329.8 209 328.2 210.6 326.2 210.6zM297.1 -52.6C296.2 -52.7 295.4 -52.9 294.5 -53C293.5 -53.2 292.3999999999999 -53.3 291.3999999999999 -53.5C290.5 -53.6 289.5999999999999 -53.8 288.5999999999999 -53.9C287.5999999999999 -54 286.5999999999999 -54.2 285.5999999999999 -54.3C284.5999999999999 -54.4 283.5999999999999 -54.4999999999999 282.7 -54.6C281.7 -54.7 280.8 -54.8 279.8 -54.9C278.8 -55 277.7 -55.1 276.7 -55.2C275.8 -55.3 274.8999999999999 -55.4 274 -55.4C272.8999999999999 -55.5 271.7 -55.5 270.6 -55.6C269.8 -55.6 268.9 -55.7 268.1 -55.7C266.8 -55.8 265.5 -55.8 264.2 -55.8C263.5 -55.8 262.8 -55.9 262.1 -55.9C260.1 -55.9 258.1 -56.0000000000001 256.1 -56.0000000000001S252.1 -56.0000000000001 250.1 -55.9C249.4 -55.9 248.7 -55.9 248 -55.8C246.7 -55.8 245.4 -55.7 244.1 -55.7C243.3 -55.7 242.4 -55.6 241.6 -55.6C240.5 -55.4999999999999 239.3 -55.4999999999999 238.2 -55.4C237.3 -55.3 236.4 -55.3 235.5 -55.2C234.5 -55.1 233.4 -55 232.4 -54.9C231.4 -54.8 230.5 -54.7 229.5 -54.6C228.5 -54.4999999999999 227.5 -54.4 226.6 -54.3C225.6 -54.1999999999999 224.6 -54.1 223.6 -53.9C222.7 -53.8 221.8 -53.6 220.8 -53.5C219.8 -53.4 218.7 -53.2 217.7 -53C216.8 -52.9 216 -52.7 215.1 -52.6C149.5 -41.7 92.6 -4.9 55.1 46.8C54.9 46.9999999999999 54.8 47.3 54.6 47.4999999999999C53.8 48.6 53 49.6999999999999 52.3 50.8C52 51.1999999999999 51.7 51.6 51.5 51.9999999999999C50.8 53.1 50.1 54.1 49.4 55.1999999999999C49.1 55.6999999999999 48.8 56.0999999999999 48.5 56.5999999999999C47.8 57.6999999999999 47.1 58.6999999999999 46.5 59.7999999999999C46.2 60.2999999999999 45.9 60.6999999999999 45.6 61.1999999999999C44.9 62.2999999999999 44.3 63.3999999999999 43.6 64.4999999999999C43.4 64.8999999999999 43.1 65.2999999999999 42.9 65.6999999999999C40.5 69.6999999999999 38.3 73.7999999999999 36.1 77.8999999999999C36 78.0999999999999 35.9 78.1999999999999 35.8 78.3999999999999C35.2 79.4999999999999 34.7 80.5999999999999 34.1 81.6999999999999C33.8 82.2999999999999 33.5 82.7999999999999 33.3 83.3999999999999C32.8 84.3999999999999 32.3 85.4999999999999 31.8 86.4999999999999C31.5 87.1999999999999 31.2 87.7999999999999 30.9 88.4999999999999C30.4 89.4999999999999 30 90.4999999999999 29.5 91.4999999999999L28.6 93.5999999999999C28.2 94.5999999999999 27.7 95.5999999999999 27.3 96.5999999999999C27 97.2999999999999 26.7 98.0999999999999 26.4 98.7999999999999L25.2 101.7999999999999C24.9 102.5999999999999 24.6 103.2999999999999 24.3 104.0999999999999C23.9 105.0999999999999 23.5 106.0999999999999 23.2 107.0999999999999C22.9 107.9999999999999 22.6 108.8999999999999 22.2 109.8999999999999C21.6 111.4999999999999 21.1 113.1999999999999 20.5 114.7999999999999C20.2 115.6999999999999 19.9 116.5999999999999 19.6 117.5999999999999C19.3 118.4999999999999 19.1 119.3999999999999 18.8 120.2999999999999C18.5 121.1999999999999 18.2 122.1999999999999 18 123.0999999999999C17.7 123.9999999999999 17.5 124.8999999999999 17.2 125.7999999999999C16.9 126.7999999999999 16.7 127.6999999999999 16.4 128.6999999999999C16.2 129.5999999999999 15.9 130.4999999999999 15.7 131.3999999999999C15.4 132.3999999999999 15.2 133.3999999999999 15 134.3999999999999C14.8 135.2999999999999 14.6 136.0999999999999 14.4 136.9999999999999C14.2 138.0999999999999 13.9 139.1999999999999 13.7 140.1999999999999C13.5 140.9999999999999 13.4 141.7999999999999 13.2 142.5999999999999C12.9 143.8999999999999 12.7 145.2999999999999 12.4 146.5999999999999C12.3 147.1999999999999 12.2 147.6999999999999 12.1 148.2999999999999L11.2 153.9999999999998C11.1 154.5999999999999 11 155.2999999999999 10.9 155.8999999999998C10.7 157.1999999999998 10.5 158.4999999999998 10.4 159.7999999999998C10.3 160.5999999999998 10.2 161.2999999999998 10.1 162.0999999999998C10 163.2999999999998 9.8 164.4999999999998 9.7 165.6999999999998C9.6 166.4999999999998 9.5 167.2999999999999 9.5 168.0999999999998C9.4 169.2999999999998 9.3 170.4999999999998 9.2 171.5999999999998C9.1 172.3999999999998 9.1 173.1999999999998 9 173.9999999999998C8.9 175.1999999999998 8.8 176.3999999999998 8.8 177.6999999999998C8.8 178.4999999999998 8.7 179.1999999999998 8.7 179.9999999999998C8.6 181.2999999999998 8.6 182.6999999999998 8.5 183.9999999999998C8.5 184.6999999999998 8.5 185.2999999999998 8.4 185.9999999999998C8.4 187.9999999999998 8.3 189.9999999999998 8.3 191.9999999999998C8.3 245.4999999999998 25.2 294.9999999999998 54.1 335.5999999999998C56.4 338.7999999999998 58.8 341.9999999999998 61.2 345.0999999999998C66.1 351.2999999999998 71.3 357.3999999999998 76.8 363.0999999999998C79.5 365.9999999999998 82.3 368.7999999999998 85.2 371.4999999999998C88.1 374.1999999999998 91 376.8999999999998 94 379.4999999999998C98.5 383.3999999999998 103.1 387.0999999999998 107.9 390.6999999999998C109.5 391.8999999999998 111.1 393.0999999999998 112.7 394.1999999999998C140 413.8 171.7 427.9 206 435C222.1 438.3 238.9 440 256 440S289.8 438.3 306 435C340.3 428 372 413.9 399.6 394.3C401.2000000000001 393.1 402.8 392 404.4000000000001 390.8C409.2000000000001 387.2 413.8 383.5 418.3 379.6C430.3 369.2 441.3 357.7 451.1 345.2C453.6 342.1 455.9 338.9 458.2 335.7C487.1 295 504 245.5 504 192C504 190 504 188 503.9 186C503.9 185.3 503.9 184.7 503.8 184C503.8 182.7 503.6999999999999 181.3 503.6 180C503.6 179.2 503.4999999999999 178.5 503.4999999999999 177.7C503.3999999999999 176.5 503.3999999999999 175.3 503.3 177C503.1999999999999 176.2 503.1999999999999 175.4 503.1 174.6C502.9999999999999 173.4 502.9 172.2000000000001 502.8 171.1C502.6999999999999 170.3 502.6 169.5 502.6 168.7000000000001C502.4999999999999 167.5000000000001 502.3 166.3000000000001 502.2 165.1C502.1 164.3 502 163.6 501.9 162.8C501.7 161.5 501.5 160.2 501.4 158.9C501.3 158.3 501.2 157.6 501.1 157.0000000000001L500.2 151.3000000000001C500.1 150.7000000000001 500 150.2000000000001 499.9 149.6000000000001C499.7 148.3000000000001 499.4 146.9000000000001 499.1 145.6000000000001C498.9 144.8000000000001 498.8 144.0000000000001 498.6 143.2000000000001C498.4 142.1000000000001 498.1 141.0000000000001 497.9 140.0000000000001C497.7 139.1000000000001 497.5 138.3000000000001 497.3 137.4000000000001C497.1 136.4000000000001 496.8 135.4000000000001 496.6 134.4000000000001C496.4 133.5000000000001 496.1 132.6000000000001 495.9 131.7000000000001C495.6 130.7000000000001 495.4 129.8000000000001 495.1 128.8000000000001C494.9 127.9000000000002 494.6 127.0000000000001 494.3 126.1000000000001C493.9999999999999 125.2000000000002 493.6999999999999 124.2000000000002 493.4999999999999 123.3000000000001C493.1999999999999 122.4000000000002 492.9999999999999 121.5000000000001 492.6999999999999 120.6000000000001C492.3999999999999 119.7000000000002 492.0999999999999 118.8000000000001 491.8 117.8000000000001C491.3 116.2000000000001 490.6999999999999 114.5000000000001 490.1 112.9000000000002C489.8 112.0000000000002 489.4999999999999 111.1000000000001 489.1 110.1000000000001C488.7 109.1000000000001 488.4 108.1000000000001 487.9999999999999 107.1000000000001C487.6999999999999 106.3000000000001 487.3999999999999 105.6000000000001 487.1 104.8000000000001L485.9 101.8000000000001C485.6 101.1000000000001 485.3 100.3000000000001 485 99.6000000000001C484.6 98.6000000000001 484.2 97.6000000000001 483.7 96.6000000000001L482.8 94.5000000000001C482.4 93.5000000000001 481.9 92.5000000000001 481.4 91.5000000000001C481.1 90.8000000000001 480.8 90.2000000000001 480.5000000000001 89.5000000000001C480.0000000000001 88.5000000000001 479.5000000000001 87.4000000000001 479.0000000000001 86.4000000000001C478.7 85.8000000000001 478.4 85.3000000000001 478.2 84.7000000000001C477.6 83.6000000000001 477.1 82.5000000000001 476.5000000000001 81.4000000000001C476.4 81.2000000000001 476.3000000000001 81.1000000000001 476.2 80.9000000000001C474.0000000000001 76.8000000000001 471.8000000000001 72.7000000000001 469.4 68.7000000000001C469.2 68.3000000000001 468.9 67.9000000000001 468.7 67.5000000000001C468.0000000000001 66.4000000000001 467.4 65.3000000000001 466.7 64.2000000000001C466.4 63.7000000000001 466.1 63.3000000000001 465.8000000000001 62.8000000000001C465.1000000000001 61.7000000000001 464.4000000000001 60.7000000000001 463.8000000000001 59.6000000000001C463.5000000000001 59.1000000000001 463.2 58.7000000000002 462.9000000000001 58.2000000000002C462.2000000000001 57.1000000000001 461.5000000000001 56.1000000000001 460.8000000000001 55.0000000000002C460.5000000000001 54.6000000000002 460.2 54.2000000000002 460.0000000000001 53.8000000000002C459.2 52.7000000000002 458.5000000000001 51.6000000000002 457.7 50.5000000000002C457.5000000000001 50.3000000000002 457.4 50.0000000000002 457.2 49.8000000000002C419.6 -4.8999999999998 362.7000000000001 -41.5999999999998 297.1 -52.5999999999998zM414.4 33.6C427.4 46.6 438.6 60.9999999999999 448 76.4999999999999V147.8C448 149.9 446.4 151.5 444.3 151.5H422.1C420 151.5 418.4000000000001 149.8999999999999 418.4000000000001 147.8V122H388.9000000000001V266C388.9000000000001 268.1 387.3 269.7 385.2000000000001 269.7H363.1C361 269.7 359.4000000000001 268.1 359.4000000000001 266V240.1H329.9000000000001V266C329.9000000000001 268.1 328.3 269.7 326.2000000000001 269.7H304C301.9 269.7 300.3 268.1 300.3 266V240.1H270.8V266C270.8 270.8 264.3 269.7 261.3 269.7V300.4C268 302 275.1 303.2 282.1 303.2C290.9000000000001 303.2 298.9000000000001 299.7 307.5 299.7C311.2 299.7 329.9 300.6 329.9 306.2V354.6C329.9 356.7 328.3 358.3 326.2 358.3C322 358.3 314 354.8 306.8 354.8C298.9000000000001 354.8 289.9000000000001 358.3 280.5 358.3C274 358.3 267.6 357.4 261.3 356V359.9C265.7 362 268.7 366.6 268.7 371.4C268.7 388.2 243.3 388.2 243.3 371.4C243.3 366.6 246.3 361.9 250.7 359.9V269.7C247.7 269.7 241.2 270.8 241.2 266V240.1H211.7V266C211.7 268.1 210.1 269.7 208 269.7H185.8C183.7 269.7 182.1 268.1 182.1 266V240.1H152.6V266C152.6 268.1 151 269.7 148.9 269.7H126.8000000000001C124.7000000000001 269.7 123.1 268.1 123.1 266V122H93.5V147.8C93.5 149.9 91.9 151.5 89.8 151.5H67.7C65.6 151.5 64 149.9 64 147.8V76.5C73.4 61 84.6 46.6 97.6 33.6C118.2 13 142.1 -3.1 168.8 -14.4C182.7 -20.3 197 -24.7 211.7 -27.6V48.2C211.7 106.8000000000001 300.3 106.8000000000001 300.3 48.2V-27.6C315 -24.7 329.3 -20.2 343.2 -14.4C369.9 -3.1 393.8 13 414.4 33.6" />
-			<glyph glyph-name="fort-awesome" unicode="" horiz-adv-x="448" d=" M412 164H388C385.75 164 384 162.25 384 160V132H352V288C352 290.25 350.25 292 348 292H324C321.75 292 320 290.25 320 288V260H288V288C288 290.25 286.25 292 284 292H260C257.75 292 256 290.25 256 288V260H224V288C224 293.25 217 292 213.75 292V325.25C221 327 228.75 328.25 236.25 328.25C245.751 328.25 254.501 324.5 263.75 324.5C267.75 324.5 288 325.5 288 331.5V384C288 386.25 286.25 388 284 388C279.5 388 270.75 384.25 263 384.25C254.501 384.25 244.75 388 234.499 388C227.499 388 220.499 387 213.749 385.5V389.75C218.499 392 221.749 397 221.749 402.25C221.749 420.399 194.25 420.4170000000001 194.25 402.25C194.25 397 197.5 392 202.25 389.75V292C199 292 192 293.25 192 288V260H160V288C160 290.25 158.25 292 156 292H132C129.75 292 128 290.25 128 288V260H96V288C96 290.25 94.25 292 92 292H68C65.75 292 64 290.25 64 288V132H32V160C32 162.25 30.25 164 28 164H4C1.75 164 0 162.25 0 160V-32H160V52C160 115.507 256 115.525 256 52V-32H416V160C416 162.25 414.25 164 412 164zM160 168.001C160 165.751 158.25 164.001 156 164.001H132C129.75 164.001 128 165.751 128 168.001V224C128 226.25 129.75 228 132 228H156C158.25 228 160 226.25 160 224V168.001zM288 168.001C288 165.751 286.25 164.001 284 164.001H260C257.75 164.001 256 165.751 256 168.001V224C256 226.25 257.75 228 260 228H284C286.25 228 288 226.25 288 224V168.001z" />
-			<glyph glyph-name="forumbee" unicode="" horiz-adv-x="448" d=" M5.8 138.3C2 155.3 0 172.5 0 189.7C0 313 99.8 413 223.1 413C239.7 413 256.4 411 272.4 407.5C149 360.5 51.9 262 5.8 138.3zM398.7 327.5C385 345 369 360.2 350.9 372.8C201.3 328.5 84.6 210.7 41.2 60.8C53.7 42.7 69.2 25.2 86.4 11.8C129.5 163.1 247.6 283.5 398.7 327.5zM414.5 74.8C429.7 99.9 439.9 128.5 444 157.6C364.6 114.7000000000001 299 47 256.4 -32.7C286.4 -28.3 315.3 -17.4 341 -1.4C376 -14.5 411.9 -25.7 448 -35C438.7 1.5 427.6 39.5 414.5 74.8zM444.2 220.3C441.6 239.8 436.3 259 428.4 277.1C290.5 231.3 182 120.5 137.1 -18C155.2 -25.6 174.1 -30.5 193.7 -33.2C240 80.9 330.5 173.6 444.2 220.3z" />
-			<glyph glyph-name="foursquare" unicode="" horiz-adv-x="368" d=" M323.1 445H49.9C12.4 445 0 416.7 0 398.9V-34.9C0 -55.2 12.1 -62.6 18.2 -65C24.4 -67.5 41 -69.6 51.1 -57.9C180 91.5 182.2 94 182.2 94C185.3 97.4 185.6 97.1 189 97.1H272.4C307.5 97.1 313 122.3 316.7 136.8L365.3 379.8C373.8 422.2 363.1 445 323.1 445zM306.8 371.2L295.4000000000001 311.5C294.2000000000001 305 285.9000000000001 298.3 278.5000000000001 298.3H172.1C160.1 298.3 151.5 290 151.5 278V265C151.5 253 160.1 244.4 172.1 244.4H262.5C270.8 244.4 279.1 235.2 277.3 226.2C275.5 217.3 266.8 172.4 265.9000000000001 167.4C265.0000000000001 162.5000000000001 259.1 153.9 249.0000000000001 153.9H175.5C162 153.9 158.3000000000001 152.1 149 141.3C149 141.3 140.1 129.9 59.5 33C58.6 32.1 57.7 32.4 57.7 33.3V372.1C57.7 379.8 64.5 388.7 74.3 388.7H293.3000000000001C301.5000000000001 388.7 308.9000000000001 381 306.8000000000001 371.2z" />
-			<glyph glyph-name="free-code-camp" unicode="ï‹…" horiz-adv-x="576" d=" M69.3 303.5C28.3 235 32.9 140.5 70.3 76.5C92.5 38.3 120 24.1 120 10C120 3.2 114 -3 107.2 -3C87.7 -3 8 72.5 8 194.8C8 306.3 86 380.8 105.1 380.8C111.1 380.8 120 376 120 369.7000000000001C120 357 91.7 341.1 69.3 303.5zM265.1 89.7C269.6 87.9 277.4000000000001 84.5 277.4000000000001 90.9C277.4000000000001 93.6 275.2000000000001 93.8 273.1 94.5C264.6 97.9 259.1 102.2 254.0000000000001 109.7C245.8000000000001 121.8 243.9000000000001 133.9 243.9000000000001 148.3C243.9000000000001 180.4 288.1 186.2 288.1 218.3C288.1 230.6 280.4000000000001 234.2 280.4000000000001 237.6C280.4000000000001 239.8 281.1 239.8 283.3 239.8C291.3 239.8 302.4000000000001 226.5 305.8 220C308 215.4 308.2 214 308.2 208.9C308.2 201.9 307.5 194.7 307.5 187.6C307.5 160.6 339.4 167.8 339.4 180.8C339.4 186.8 335.8 192.4 335.8 198.2C335.8 198.9 335.8 199.4 336.5 199.4C339.8999999999999 199.4 345.8999999999999 191.7 347.6 189.3C353.4 180.4 356.1 168.5 356.1 157.9C356.1 125.5000000000001 326.6 108.9 326.6 101.9C326.6 100.9 329.5 94.2000000000001 338.7 100.0000000000001C368.4 115.1000000000001 391.8 147.6000000000001 391.8 189.8000000000001C391.8 223.4000000000001 383.1 247.5000000000001 359.7 272.4000000000001C355.8 276.5000000000001 343.3 289.3000000000001 337.2 289.3000000000001C329 289.3000000000001 344.4 270.7000000000001 344.4 258.1000000000001C344.4 250.9000000000001 339.6 245.8000000000001 332.1 245.8000000000001C320.5 245.8000000000001 317.6 271.2000000000001 316.2 279.1000000000001C310.4 312.9000000000001 303.4 337.3000000000001 269.8 353.2000000000001C259.4000000000001 358.2000000000001 233.3 365.0000000000001 233.3 355.4000000000001C233.3 353.0000000000001 236 351.3000000000001 237.9 350.3000000000001C247.1 344.7000000000001 257.5 328.9000000000001 257.5 312.1000000000001C257.5 266.0000000000001 199.8 223.9000000000001 199.8 175.9000000000001C199.6 135.6000000000001 227.9 103.3000000000001 265.1 89.7000000000001zM470.4 381C464.4 381 456 374.5 456 368.4C456 359.7 468.1 348.8 473.6 343C555.2 257.9 552.2 128.7 491.2 52C484.2 43.1 455.9 16.7 455.9 8.5C455.9 3.4 464.1 -2.9 469.1 -2.9C494.5 -2.9 567.9 77.9 567.9 182.8C568 302.1 491.8 381 470.4 381zM428.1 57.9H167C157.6 57.9 151.5 50.4 151.5 41.5C151.5 33 158.5 26 167 26H428.1C437.5 26 440 33.5 440 42.4C440 50.9 436.5 57.9 428.1 57.9z" />
-			<glyph glyph-name="freebsd" unicode="" horiz-adv-x="448" d=" M303.7 351.8C314.8 362.9 419.2 428.8 442.9 405C466.6 381.3 400.8 276.9 389.7 265.8C378.6 254.7 350.3 264.9 326.6 288.7000000000001C302.8 312.4 292.5 340.7000000000001 303.7 351.8zM109.9 379.9C73.6 400.5 22 423.4 5.6 406.9C-11 390.3 12.7 337.5 33.5 301.2C52 333.4 78.3 360.5 109.9 379.9zM406.7 274C410 262.7 409.4 253.3 404 247.9C383.7 227.6 316.5 274.9 294.7 318C276.7 350.3 283.6 371.4 309.6 366.7C315.3 370.3 321.9 374.3 329.2 378.3C299.4 393.8 265.6 402.6 229.7 402.6C110.6 402.6 14.1 306.1 14.1 187C14.1 68 110.6 -28.6 229.7 -28.6S445.3 67.9 445.3 187C445.3 225.4 435.2 261.5 417.6 292.8C413.7000000000001 285.8 410 279.5 406.7000000000001 274z" />
-			<glyph glyph-name="get-pocket" unicode="" horiz-adv-x="448" d=" M407.6 384H40.6C18.5 384 0 365.5 0 343.4V208.2C0 83.5 99.7 -16 224.2 -16C348.2 -16 448 83.5 448 208.2V343.4C448 365.8 430.3 384 407.6 384zM245.6 115.5C233.2 103.7 214.2 104.4 203.2 115.5C89.5 224.4 88.3 220.6 88.3 238.7C88.3 255.6 102.1 269.4 119 269.4C136 269.4 135.1 265.6 224.2 180.1C314.8 267 312.8 269.4 329.7 269.4C346.6 269.4 360.4 255.6 360.4 238.7C360.4 220.9 357.5 223 245.6 115.5z" />
-			<glyph glyph-name="gg-circle" unicode="" horiz-adv-x="512" d=" M257 440C120 440 9 329 9 192S120 -56 257 -56S505 55 505 192S394 440 257 440zM207.5 65.2L81.8 190.9L207.5 316.6L242.7 281.2L218.5 257L207.4 268.1L130.2 190.9L207.4 113.7L234 140.3L180.9 193.2L205.3 217.6L282.5 140.4L207.5 65.2000000000001zM306.5 67.4L271.3 102.6L295.4000000000001 127L306.5000000000001 115.8999999999999L383.7000000000001 193.0999999999999L306.5000000000001 270.2999999999999L280.0000000000001 243.7999999999999L333.1000000000001 190.8999999999999L308.7000000000001 166.5L231.5000000000001 243.7L306.5000000000001 318.7L432.2 193L306.5 67.4z" />
-			<glyph glyph-name="gg" unicode="" horiz-adv-x="512" d=" M179.2 217.6L281.6 115.2L179.2 12.8L0 192L179.2 371.2L224 326.4L198.4 300.8L179.2 320L51.2 192L179.2 64L230.7 115.5L153.6 192L179.2 217.6zM332.8 371.2L230.4 268.8L332.8 166.4L358.4000000000001 192L281.3000000000001 268.5L332.8000000000001 320L460.8000000000001 192L332.8000000000001 64L313.6000000000001 83.2L288.0000000000001 57.6L332.8000000000001 12.8L512 192L332.8 371.2z" />
-			<glyph glyph-name="git-square" unicode="" horiz-adv-x="448" d=" M140.1 99.5C152.2 99.5 169.6 97.4 169.6 81.6C169.6 66.1 155.7 62.8 142.6 62.8C130.3 62.8 111.7 64.8 111.7 80.8S127.4 99.5 140.1 99.5zM115.4 216.1C115.4 201.3 122 192 137.7 192C153.2 192 158.9 202 158.9 216.5C159 250.9 115.4 251.3 115.4 216.1zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM207 274.3C194.7 269.5 181.5 265.9 168.1 265.9C129.6 288 77.4 265 77.4 216.4C77.4 198.4 89 173.5 107 167.5V166.8C93.6 160.9 89.9 130.7 107.7 119.8V119.1C88.2 112.7000000000001 75.4 100.3 75.4 78.9C75.4 42.1 110.2 31.9 140.8 31.9C177.9 31.9 205.6 45.3 205.6 86.2000000000001C205.6 136.6 133.5 118.0000000000001 133.5 145.3000000000001C133.5 154.9000000000001 138.7 158.7000000000001 147.6 160.5000000000001C177.2 166.0000000000001 195.8 189.1000000000001 195.8 219.2000000000001C195.8 224.4 194.7 229.4000000000001 192.9 234.2000000000001C197.7 235.3000000000001 202.4 236.5000000000001 207 238.1000000000001V274.3000000000001zM263.8 272.5H224.2C225.5000000000001 261.9 225.3 129.9 224.2 117H263.8C262.7 129.8 262.6 262.1 263.8 272.5zM268.3 325.8C268.3 339.2 258.3 352 244.2 352C229.9 352 219.6 339.5 219.6 325.8C219.6 312.2 230.1 299.9 244.2 299.9C257.9000000000001 299.9 268.3 312.4 268.3 325.8zM372.6 272.5H336.2000000000001C336.2000000000001 282.3 335.8000000000001 292.1 337.3000000000001 302H296.8000000000001C298.1000000000001 294.7 297.9000000000001 288.4 297.9000000000001 272.5H280.8000000000001V238.6C292.7000000000001 240.5 292.9000000000001 239.3 297.9000000000001 239.3V238.6H297.5000000000001V175.9C297.5000000000001 144.8 302.0000000000001 114.7 340.2000000000001 114.7C350.9000000000001 114.7 363.2000000000001 116.5 372.7000000000001 121.7V156.7C367.0000000000001 152.8 358.8000000000002 150.8 351.8000000000002 150.8C338.6000000000002 150.8 336.3000000000002 163.7 336.3000000000002 174.2V239.4C359.0000000000001 239.4 372.7000000000001 238.7 372.7000000000001 238.7V272.5z" />
-			<glyph glyph-name="git" unicode="" horiz-adv-x="448" d=" M18.8 226.3C18.8 201 35 166.3 60.3 157.8V156.8C41.5 148.5 36.3 106.2 61.3 91V90C34 81 16 63.7 16 33.8C16 -17.7 64.8 -32 107.5 -32C159.5 -32 198.2 -13.3 198.2 44C198.2 114.5 97.2 88.5 97.2 126.8C97.2 140.3 104.4 145.5 116.9 148.1C158.4 155.8 184.4 188.1 184.4 230.3C184.4 237.6 182.9 244.5 180.4 251.3C187.1 252.8 193.6 254.6 200.1 256.8V307.3C182.9 300.5 164.4 295.5 145.6 295.5C91.8 326.5 18.8 294.2 18.8 226.3zM106.5 62.5C123.5 62.5 147.7 59.5 147.7 37.5C147.7 15.7 128.2 11.2 110 11.2C92.7 11.2 66.7 13.9 66.7 36.4C66.8 58.7 88.8 62.5 106.5 62.5zM103.3 192C81.3 192 72 205 72 225.8C72 275.1 133 274.6 133 226.3C133 206 125 192 103.3 192zM432 142.5V93.5C418.7 86.2 401.5 83.7 386.5 83.7C333 83.7 326.7 125.9 326.7 169.4V257.1H327.2V258.1C320.2 258.1 319.9 259.7 303.2 257.1V304.6H327.2C327.2 326.9 327.5 335.6 325.7 345.8H382.4C380.4 332 380.9 318.3 380.9 304.6H431.9V257.1S412.6 258.1 380.9 258.1V167C380.9 152.2 384.2 134.2 402.7 134.2C412.5 134.2 424 137 432 142.5zM286 379.3C286 360.6 271.5 343.1 252.2 343.1C232.4 343.1 217.7 360.3 217.7 379.3C217.7 398.6 232.2 416 252.2 416C272 416 286 398 286 379.3zM279.8 304.8C278 290.2000000000001 278.2 105 279.8 87H224.3C225.9 105.1 226.1 290 224.3 304.8H279.8z" />
-			<glyph glyph-name="github-alt" unicode="ï„“" horiz-adv-x="480" d=" M186.1 119.3C186.1 98.4 175.2 64.2 149.4 64.2S112.7 98.4 112.7 119.3S123.6 174.4 149.4 174.4S186.1 140.2000000000001 186.1 119.3zM480 169.8C480 137.9 476.8 104.1 462.5 74.8C424.6 -1.8 320.4 0 245.8 0C170 0 59.6 -2.7 20.2 74.8C5.6 103.8 0 137.9 0 169.8C0 211.7 13.9 251.3 41.5 283.4C36.3 299.2000000000001 33.8 315.8 33.8 332.2C33.8 353.7 38.7 364.5 48.4 384C93.7 384 122.7 375 157.2 348C186.2 354.9 216 358 245.9000000000001 358C272.9000000000001 358 300.1 355.1 326.3000000000001 348.8C360.3000000000001 375.5 389.3000000000001 384 434.1000000000001 384C443.9000000000001 364.5 448.7000000000001 353.7 448.7000000000001 332.2C448.7000000000001 315.8 446.1000000000001 299.5 441.0000000000001 284C468.5000000000001 251.6 480.0000000000001 211.7 480.0000000000001 169.8zM415.7 119.3C415.7 163.2 389 201.9 342.2 201.9C323.3 201.9 305.2 198.5 286.2 195.9C271.3 193.6 256.4 192.7 241.1 192.7C225.9 192.7 211 193.6 196 195.9C177.3 198.5 159 201.9 140 201.9C93.2 201.9 66.5 163.2 66.5 119.3C66.5 31.5 146.9 18 216.9 18H265.1C335.4000000000001 18 415.7000000000001 31.4 415.7000000000001 119.3zM333.1 174.4C307.3 174.4 296.4000000000001 140.2000000000001 296.4000000000001 119.3S307.3 64.2 333.1 64.2S369.8 98.4 369.8 119.3S358.9000000000001 174.4 333.1 174.4z" />
-			<glyph glyph-name="github-square" unicode="ï‚’" horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM277.3 32.3C268.9000000000001 30.8 265.8 36 265.8 40.3C265.8 45.7 266 73.3 266 95.6C266 111.2000000000001 260.8 121.1 254.7 126.3C291.7 130.4 330.7 135.5 330.7 199.4C330.7 217.6 324.2 226.7 313.6 238.4C315.3 242.7 321 260.4 311.9 283.4C298 287.7000000000001 266.2 265.5 266.2 265.5C253 269.2 238.7 271.1 224.6 271.1C210.5 271.1 196.2 269.2 183 265.5C183 265.5 151.2 287.7 137.3 283.4C128.2 260.5 133.8 242.8 135.6 238.4C125 226.7 120 217.6 120 199.4C120 135.8 157.3 130.4 194.3 126.3C189.5 122 185.2 114.6 183.7 104C174.2 99.7 149.9 92.3 135.4 117.9C126.3000000000001 133.7 109.9 135 109.9 135C93.7 135.2 108.8 124.8 108.8 124.8C119.6 119.8 127.2000000000001 100.6 127.2000000000001 100.6C136.9 70.9 183.3000000000001 80.9 183.3000000000001 80.9C183.3000000000001 67.0000000000001 183.5 44.4 183.5 40.3C183.5 36 180.5 30.8 172 32.3C106 54.4 59.8 117.2000000000001 59.8 190.6C59.8 282.4000000000001 130 352.1 221.8 352.1S388 282.4 388 190.6C388.1 117.2000000000001 343.3 54.3 277.3 32.3zM179.2 93.4C177.3 93.0000000000001 175.5 93.8 175.3 95.1C175.1 96.6 176.4 97.9 178.3 98.3C180.2 98.5 182 97.7 182.2 96.4C182.5 95.1 181.2 93.8 179.2 93.4zM169.7 94.3C169.7 93 168.2 91.9 166.2 91.9C164 91.7000000000001 162.5 92.8 162.5 94.3C162.5 95.6 164 96.7 166 96.7C167.9 96.9 169.7 95.8 169.7 94.3zM156 95.4C155.6 94.1 153.6 93.5000000000001 151.9 94.1C150 94.5 148.7000000000001 96 149.1 97.3C149.5 98.6 151.5 99.2 153.2 98.8C155.2 98.2 156.5 96.7 156 95.4zM143.7 100.8C142.8 99.7 140.9 99.9 139.4 101.4C137.9 102.7000000000001 137.5 104.6 138.5 105.5000000000001C139.4 106.6000000000001 141.3 106.4 142.8 104.9C144.1 103.6 144.6 101.6 143.7 100.8zM134.6 109.9C133.7 109.3 132 109.9 130.9 111.4S129.8000000000001 114.6 130.9 115.3C132 116.2 133.7000000000001 115.5 134.6 114C135.7 112.5 135.7 110.7 134.6 109.9zM128.1 119.6C127.2 118.7000000000001 125.7 119.2000000000001 124.6 120.2000000000001C123.5 121.5000000000001 123.3 123.0000000000001 124.2 123.7000000000001C125.1 124.6 126.6 124.1 127.7 123.1C128.8 121.8 129 120.3 128.1 119.6zM121.4 127C121 126.1 119.7 125.9 118.6 126.6C117.3 127.2000000000001 116.7 128.3 117.1 129.2000000000001C117.5 129.8000000000001 118.6 130.1 119.9 129.6C121.2 128.9 121.8 127.8 121.4 127z" />
-			<glyph glyph-name="github" unicode="ï‚›" horiz-adv-x="496" d=" M165.9 50.6C165.9 48.6 163.6 47 160.7 47C157.4 46.7 155.1 48.3 155.1 50.6C155.1 52.6 157.4 54.2 160.3 54.2C163.3 54.5000000000001 165.9 52.9 165.9 50.6zM134.8 55.1C134.1 53.1 136.1 50.8 139.1 50.2C141.7 49.2 144.7 50.2 145.3 52.2S144 56.5000000000001 141 57.4C138.4 58.1 135.5 57.1 134.8 55.1zM179 56.8C176.1 56.1 174.1 54.2 174.4 51.9C174.7 49.9 177.3 48.6 180.3 49.3C183.2 50 185.2 51.9 184.9 53.9C184.6 55.8 181.9 57.1 179 56.8zM244.8 440C106.1 440 0 334.7 0 196C0 85.1 69.8 -9.8 169.5 -43.2C182.3 -45.5 186.8 -37.6 186.8 -31.1C186.8 -24.9 186.5 9.3 186.5 30.3C186.5 30.3 116.5 15.3 101.8 60.1C101.8 60.1 90.4 89.2000000000001 74 96.7000000000001C74 96.7000000000001 51.1 112.4 75.6 112.1C75.6 112.1 100.5 110.1 114.2 86.3C136.1 47.7 172.8 58.8 187.1 65.4C189.4 81.4 195.9 92.5000000000001 203.1 99.1C147.2 105.3 90.8 113.4 90.8 209.6C90.8 237.1 98.4 250.9000000000001 114.4 268.5C111.8 275 103.3 301.8 117 336.4000000000001C137.9 342.9000000000001 186 309.4000000000001 186 309.4000000000001C206 315 227.5 317.9000000000001 248.8 317.9000000000001S291.6 315 311.6 309.4000000000001C311.6 309.4000000000001 359.7000000000001 343 380.6 336.4000000000001C394.3 301.7000000000001 385.8 275 383.2000000000001 268.5C399.2000000000001 250.8000000000001 409.0000000000001 237.0000000000001 409.0000000000001 209.6C409.0000000000001 113.1 350.1000000000001 105.4 294.2000000000001 99.1C303.4000000000001 91.2000000000001 311.2000000000001 76.2000000000001 311.2000000000001 52.7C311.2000000000001 19.0000000000001 310.9000000000001 -22.6999999999999 310.9000000000001 -30.9C310.9000000000001 -37.4 315.5000000000001 -45.3 328.2000000000001 -43C428.2 -9.8 496 85.1 496 196C496 334.7 383.5 440 244.8 440zM97.2 95.1C95.9 94.1 96.2 91.8 97.9 89.9C99.5 88.3 101.8 87.6 103.1 88.9C104.4 89.9 104.1 92.2000000000001 102.4 94.1C100.8 95.7000000000001 98.5 96.4 97.2 95.1zM86.4 103.2000000000001C85.7 101.9 86.7 100.3000000000001 88.7 99.3000000000001C90.3 98.3000000000001 92.3 98.6000000000001 93 100.0000000000001C93.7 101.3000000000001 92.7 102.9 90.7 103.9C88.7 104.5000000000001 87.1 104.2000000000001 86.4 103.2000000000001zM118.8 67.6C117.2 66.3 117.8 63.3 120.1 61.4C122.4 59.1 125.3 58.8 126.6 60.4C127.9 61.7000000000001 127.3 64.7000000000001 125.3 66.6C123.1 68.9 120.1 69.2000000000001 118.8 67.6zM107.4 82.3C105.8 81.3 105.8 78.7 107.4 76.4C109 74.1 111.7 73.1 113 74.1C114.6 75.4 114.6 78 113 80.3C111.6 82.6 109 83.6 107.4 82.3z" />
-			<glyph glyph-name="gitkraken" unicode="" horiz-adv-x="592" d=" M565.7 329.9C563.4000000000001 336 556.4000000000001 339.1 550.4000000000001 336.5C544.7 334.1 541.9000000000001 327.6 544.1000000000001 321.9C555.0000000000001 292.9 561.0000000000001 261.4 561.0000000000001 228.6C561.0000000000001 94 460.7000000000001 -17.1 330.8000000000002 -34.1V89.6C338.7000000000001 91.1 346.3000000000002 93.2000000000001 353.8000000000002 95.8V-8.2C460.5000000000001 17.7 539.7000000000002 113.9 539.7000000000002 228.6C539.7000000000002 320.4000000000001 488.9000000000001 400.4000000000001 413.9000000000002 441.9000000000001C408.2000000000002 445.1 400.9000000000002 442.8 398.0000000000002 436.9000000000001C395.3000000000002 431.4000000000001 397.4000000000002 424.7000000000001 402.7000000000002 421.8C470.6000000000001 384.2000000000001 516.6000000000001 311.8000000000001 516.6000000000001 228.6000000000001C516.6000000000001 135.3000000000001 458.7000000000002 55.5000000000001 376.8000000000002 23.2V115.4C391.0000000000001 119.9 401.7000000000001 133.1 401.7000000000001 148.9C401.7000000000001 162.0000000000001 394.9000000000001 173.3 384.4000000000001 179.4C392.7000000000001 258.9000000000001 428.9000000000001 238.0000000000001 428.9000000000001 263.3000000000001V278C428.9000000000001 316 341.0000000000001 439.8 299.9000000000001 442.7C297.4000000000001 442.9 294.9000000000001 442.9 292.3000000000001 442.7C251.1 439.7 163.2 316 163.2 278V263.2C163.2 237.9 199.5 258.9 207.7 179.3C197.1 173.1999999999999 190.4 161.9 190.4 148.8C190.4 133 201 119.8 215.2 115.3V23.1C133.3 55.3 75.4 135.1 75.4 228.5C75.4 311.6 121.4 384 189.3 421.7C194.7 424.7 196.7 431.3 194 436.8C191.1 442.7 183.9 445 178.1 441.8C103.1 400.3 52.3 320.3 52.3 228.5C52.3 113.8 131.5 17.6999999999999 238.2 -8.3000000000001V95.6999999999999C245.8 93.1999999999999 253.3 91.0999999999999 261.2 89.4999999999999V-34.2C131.4 -17.2 31 93.9 31 228.5C31 261.3 37 292.8 47.9 321.8C50.1 327.6 47.3 334 41.6 336.4C35.6 339 28.6 336 26.3 329.8C14.5 298.3 8 264.2 8 228.5C8 73.4 130.6 -53.1 284.3 -59.3V86.6C291.1 86.2000000000001 299.3 86.1 307.7 86.6V-59.2C461.4 -53.1 584 73.4 584 228.5C584 264.2 577.5 298.3 565.7 329.9zM365.9 172.5C378.9 172.5 389.6 162 389.6 148.8C389.6 135.7 379 125.1 365.9 125.1C352.9 125.1 342.2 135.6 342.2 148.8C342.2 161.9 352.8 172.5 365.9 172.5zM226.1 125.2C212.9 125.2 202.4 135.9 202.4 148.9S212.9 172.6 226.1 172.6C239.2 172.6 249.8 162 249.8 148.9C249.8 135.9 239.3 125.2 226.1 125.2z" />
-			<glyph glyph-name="gitlab" unicode="" horiz-adv-x="512" d=" M29.782 248.268L256 -45.714L8.074 138.301C1.218 143.443 -1.638 152.297 0.933 160.294L29.782 248.268zM105.187 423.074C102.045 431.928 89.478 431.928 86.336 423.074L29.782 248.268H161.743L105.187 423.074zM161.743 248.268L256 -45.714L350.257 248.2680000000001H161.743zM511.067 160.294L482.218 248.268L256 -45.714L503.926 138.301C510.781 143.443 513.637 152.297 511.067 160.294zM425.663 423.074C422.521 431.928 409.954 431.928 406.812 423.074L350.257 248.268H482.218L425.663 423.074z" />
-			<glyph glyph-name="gitter" unicode="" horiz-adv-x="384" d=" M66.4 125.5H16V448H66.4V125.5zM166.9 371.9H116.5V-64H166.9V371.9zM267.5 371.9H217.1V-64H267.5V371.9zM368 372H317.6V125H368V372z" />
-			<glyph glyph-name="glide-g" unicode="" horiz-adv-x="448" d=" M407.1 236.8C403.6 238.2 395.5 240.6 391.7000000000001 240.6C354.6 240.6 329.5000000000001 223.8 298.2000000000001 206.1L297.3000000000001 207C304.3000000000001 254.3 320.8000000000001 298.9000000000001 320.8000000000001 347.4000000000001C320.8 418.9 282.6 448 212.4 448C97.3 448 39 334.3 39 249.6C39 161.7 90.3 113 177.6 113C189.6 113 188.6 114 188.6 109.2C171.7 -19.7 97.8 -23.9 97.8 14.6C97.8 53.8 142.8 73.2000000000001 143.3 75.6C143 87.8 96.3 103.2000000000001 84.4 103.2000000000001C50.5 103.1 32 52.0000000000001 32 23.9C32 -28 64.8 -64 117.5 -64C194.9 -64 251.5 13.8 268.9 81.4C284 141.9 280.1 144.7 288.6 149C320.8 165.2 346.1 176 382.4 176C400.2 176 412.9 172.3 441.3 167.6C444.2 167.6 448 170.5 448 173.4C448 181.4 414.6 233.9000000000001 407.1 236.8000000000001zM231.8 321.2000000000001C222.5 276.5 213.2 231.6 204 186.9C201.7 176.7 190.7 179.1 182 179.1C143.7 179.1 133 220.9 133 252.2C133 299.2 151 361.5 194.8 385.6C201.8 389.7 209.6 392.3 217.4 392.3C236 392.3 237.4 379 237.4 363.6C237.3 349.3 234.7 335.1 231.8 321.2z" />
-			<glyph glyph-name="glide" unicode="" horiz-adv-x="448" d=" M252.8 299.4C252.8 290.6 251.2 281.7000000000001 249.4 273C243.6 245.2 237.8 217.2 232.1 189.4C230.7 183.1 223.8 184.5 218.4 184.5C194.6 184.5 187.9 210.5 187.9 230C187.9 259.3 199.1 298.1 226.4 313.1C230.7 315.6 235.6 317.3 240.5 317.3C251.9 317.3 252.8 309 252.8 299.4zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM384 181C384 186.1 363.2 218.7 358.5 220.5C356.3 221.4 351.3 222.8 348.9 222.8C325.8 222.8 310.2 212.3 290.7 201.3L290.2 201.8C294.5 231.2 304.8 259 304.8 289.2000000000001C304.8 333.8 281 351.9000000000001 237.3 351.9000000000001C165.6 351.9000000000001 129.3 281.1 129.3 228.4000000000001C129.3 173.7000000000001 161.3 143.4 215.6 143.4C223.1 143.4 222.5 144.0000000000001 222.5 141.1C212 60.8 166 58.2000000000001 166 82.2000000000001C166 106.6 194 118.7000000000001 194.3000000000001 120.2000000000001C194.1000000000001 127.8000000000001 165 137.4 157.6 137.4C136.5 137.4 124.9 104.4 124.9 86.8C124.9 54.5 145.3 32.1 178.2 32.1C226.4000000000001 32.1 261.6 81.8 272.5 123.8C281.9 161.5 279.5 163.2 284.8 165.9C304.8 176.0000000000001 320.6 182.7000000000001 343.2 182.7000000000001C354.3 182.7000000000001 362.2 180.4 379.9 177.5000000000001C381.7 177.4 384 179.2000000000001 384 181.0000000000001z" />
-			<glyph glyph-name="gofore" unicode="" horiz-adv-x="400" d=" M324 128.2H310.8V93.5C286.3 70.4 254.5 57.7 220.9 57.7C147.7 57.7 88.5 117.9 88.5 192.1C88.5 266.2 147.7 326.5 220.9 326.5C256.2 326.5 289.5 312.5 314.5 287.1L376.8 350.4C335 392.7 279.7 416 220.7 416C98 416 0 315.4 0 192C0 69.5 97 -32 220.7 -32C283.9 -32 345.2 -5.8 391.7 50.5C389.7 78.1 378.3 128.2 324 128.2zM311.9 240.7H205.6V151.7H324C357.5 151.7 384.5 136.6 400 109.9V140.5C400 205.7 359.6 240.7 311.9 240.7z" />
-			<glyph glyph-name="goodreads-g" unicode="" horiz-adv-x="384" d=" M42.6 44.7H45.4C58.1 44.7 70.9 44.7 83.6 44.6C85.2 44.6 86.7 44.9999999999999 87.2 42.4999999999999C94.3 7.6 117.2 -12.1000000000001 150.1 -21.4C177 -29.0000000000001 204.2 -29.2 231.4 -23.2C265.2 -15.8000000000001 287.4 5.1 299.4 37.1999999999999C307.4 58.6999999999999 310.1 80.9999999999999 310.4 103.6999999999999C310.5 109.4999999999999 310.7 150.6999999999999 310.2 156.5L309.3 156.8C308.5 155.3 307.6 153.9 306.8 152.4C284.7 109.3 245.5 85 201.4 83.3C98.4 79.3 32 140.3 29.4 259.5C28.9 283.2 31.2 306.4 37.7 329.2C58.3 400.3 112.3 447.4 191.6 448C252.9 448.4 293.1 409.3 307.8 377.7C308.3 376.6 309.1 375.4 310.2 375.8V437.4H354.5C354.5 157.1 354.6 105.2 354.6 105.2C354.5 26.7 327.9000000000001 -38.5 251.6 -57C182.1 -73.9 92.6 -61.8 55.6 0.2C47.6 13.7 43.8 28.5 42.6 44.7zM188.9 411.5C136.4 412 80.4 370.8 73.9 277.7C69.8 218.7 88.7 155.5 145.4 129.1C173 116.2000000000001 219.7 114.1 253.7 137.8C301.3 171 316.4 234.8 308.5 291.8C298.8 362.9 260.7 411.8 188.9 411.5z" />
-			<glyph glyph-name="goodreads" unicode="" horiz-adv-x="448" d=" M299.9 256.8C305 219.5 295.2 177.8 264 156.1C241.7 140.6 211.2 142 193.2 150.4C156.1 167.7000000000001 143.7 209 146.4 247.6C150.7 308.5 187.3 335.5 221.7 335.1C268.6 335.3 293.5 303.3 299.9 256.8zM448 360V24C448 -6.9 422.9 -32 392 -32H56C25.1 -32 0 -6.9 0 24V360C0 390.9 25.1 416 56 416H392C422.9 416 448 390.9 448 360zM330 134.8S329.9 168.8 329.9 352.1H300.9V311.8C300.1 311.5 299.7 312.3 299.3 313C289.7 333.7 263.4 359.3 223.3 359C171.4 358.6 136.1 327.8 122.7 281.2C118.4 266.3 116.9 251.1 117.2 235.6C118.9 157.7 162.3 117.8 229.6 120.4C258.5 121.5 284.1 137.4 298.6 165.6C299.1 166.6 299.7 167.5 300.3 168.5C300.5 168.3999999999999 300.7 168.3999999999999 300.9 168.3C301.2 164.5 301.1 137.6 301 133.8C300.8 119 299 104.3 293.8 90.3C286 69.3 271.5 55.6 249.3 50.8C231.5 46.9 213.7 46.9999999999999 196.1 51.9999999999999C174.6 58.1 159.6 70.9999999999999 155 93.8C154.7 95.4 153.7 95.1 152.7 95.1H125.9C126.7 84.4999999999999 129.1 74.8 134.4 65.9C158.6 25.4 217.1 17.4 262.6 28.5C312.5 40.8 329.9000000000001 83.4 330 134.8z" />
-			<glyph glyph-name="google-drive" unicode="" horiz-adv-x="512" d=" M339 133.1L175.4 416H336.6L500.2 133.1H339zM201.5 109.5L120.9 -32H431.4L512 109.5H201.5zM154.1 380.6L0 109.5L80.6 -32L237 239.2L154.1 380.6z" />
-			<glyph glyph-name="google-play" unicode="" horiz-adv-x="512" d=" M325.3 213.7L104.6 435L385.4 273.8L325.3 213.7zM47 448C34 441.2 25.3 428.8 25.3 412.7V-28.6C25.3 -44.7 34 -57.1 47 -63.9L303.6 192.1L47 448zM472.2 222.4L413.3 256.5L347.6 192L413.3 127.5L473.4 161.6C491.4 175.9 491.4 208.1 472.2 222.4zM104.6 -51L385.4 110.2L325.3 170.3L104.6 -51z" />
-			<glyph glyph-name="google-plus-g" unicode="" horiz-adv-x="640" d=" M386.061 219.504C387.895 209.812 389.204 200.12 389.204 187.548C389.204 77.795 315.599 0 204.8 0C98.716 0 12.8 85.915 12.8 192S98.716 384 204.8 384C256.664 384 299.8830000000001 365.141 333.411 333.708L281.2850000000001 283.678C267.1400000000001 297.299 242.2570000000001 313.277 204.8 313.277C139.316 313.277 85.88 259.056 85.88 192C85.88 124.944 139.316 70.723 204.8 70.723C280.761 70.723 309.313 125.468 313.765 153.496H204.8V219.505H386.0610000000001zM571.467 213.067V268.8H515.466V213.067H459.733V157.066H515.466V101.333H571.467V157.066H627.2V213.067H571.4670000000001z" />
-			<glyph glyph-name="google-plus-square" unicode="" horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM164 92C108.7 92 64 136.7 64 192S108.7 292 164 292C191 292 213.5 282.2 231 265.8L203.9 239.7C196.5 246.8 183.6 255.1 164.1 255.1C130 255.1 102.2 226.9000000000001 102.2 191.9C102.2 157.0000000000001 130 128.7000000000001 164.1 128.7000000000001C203.7 128.7000000000001 218.5 157.2000000000001 220.9 171.8000000000001H164V206.2000000000001H258.4C259.4 201.2000000000001 260 196.1000000000001 260 189.6000000000001C260 132.5000000000001 221.7 92.0000000000001 164 92.0000000000001zM384 173.8H355V144.8H325.8V173.8H296.8V203H325.8V232H355V203H384V173.8z" />
-			<glyph glyph-name="google-plus" unicode="" horiz-adv-x="496" d=" M248 440C111.1 440 0 328.9 0 192S111.1 -56 248 -56S496 55.1 496 192S384.9 440 248 440zM177.3 68C108.5 68 53.3 123.5 53.3 192S108.5 316 177.3 316C208.6 316 237.4 305 260.3 283.7L226.7 251.1C213.5 264 195.4 270.2 177.3 270.2C134.4 270.2 100.1 234.7 100.1 192.1S134.3 114 177.3 114C209.9 114 242.2 133.1 247.4 167.3H177.3V209.9H294.2000000000001C295.5000000000001 203.1 296.1 196.3 296.1 189.2C296.1 118.4 248.6 68 177.3 68zM407.5 174.2V138.7H372V174.2H336.5V209.7H372V245.2H407.5V209.7H442.7V174.2H407.5z" />
-			<glyph glyph-name="google-wallet" unicode="" horiz-adv-x="448" d=" M156.8 321.2C194.4 260.6 221 208.1 241.1 158.7C232.8 124.9 222.3 92.2 209.8 60.4C196.6 112.7 183.3 161.7 153.8 208.9C160.3 245.3 156.1 282.5 156.8 321.2zM109.3 248H16.1C9.6 248 5.6 240.5 9.6 235.3C51.8 181 81.3 117.5 101.3 48H204.8C188.6 117.7 166.1 181.7 122.3 241.5C119.3 245.5 114.3 248 109.3 248zM157.1 336C225.6 228 287.1 101.5 295.3 -32H409C397 106 340.6 233 265.8 336H157.1zM408.9 404.5C407.1 411.3 400.7 416 393.7 416H305.4C300.1 416 296.4 411 297.6 405.7C310.8 359.2 319.9 310.2 324.1 259.7C372.3 173.5 403.8 81.4 414.7 -11.1C430.5 49.4 440 122.4 440 191.9C440 265.5 427.8999999999999 337 408.8999999999999 404.5z" />
-			<glyph glyph-name="google" unicode="" horiz-adv-x="488" d=" M488 186.2C488 44.7 391.1 -56 248 -56C110.8 -56 0 54.8 0 192S110.8 440 248 440C314.8 440 371 415.5 414.3 375.1L346.8 310.2C258.5 395.4 94.3 331.4 94.3 192C94.3 105.5 163.4 35.4 248 35.4C346.2 35.4 383 105.8 388.8 142.3H248V227.6H484.1C486.4 214.9 488 202.7 488 186.2z" />
-			<glyph glyph-name="gratipay" unicode="" horiz-adv-x="496" d=" M248 440C111.1 440 0 328.9 0 192S111.1 -56 248 -56S496 55.1 496 192S384.9 440 248 440zM362.6 213.6L249.6 60.9L136.9 213.6C128.2000000000001 225.5 117.8000000000001 264 150.5 285.6C178.6 303.7 205.1 289.8 219 273.7C234.9000000000001 255.8 265.6 256.8 280.7000000000001 273.7C294.6 289.8 321.1 303.7 348.8000000000001 285.6C381.7000000000001 264 371.4000000000001 225.6 362.6000000000001 213.6z" />
-			<glyph glyph-name="grav" unicode="ï‹–" horiz-adv-x="512" d=" M301.1 236C305.5 231.6 305.5 224.1 301.1 219.7L291.4000000000001 210C287.0000000000001 205.3 279.5000000000001 205.3 274.8 210L264.3 220.5C259.9000000000001 225.2 259.9000000000001 232.4 264.3 237.1L274 246.8C278.4 251.2 285.9 251.2 290.6 246.8L301.1 236zM270.9000000000001 255.7C273.9000000000001 258.7 273.9000000000001 263.5 270.9000000000001 266.2C268.1 269.2 263.4000000000001 269.2 260.4000000000001 266.2C257.6 263.4 257.6 258.7 260.4000000000001 255.7C263.5000000000001 252.9 268.2000000000001 252.9 270.9000000000001 255.7zM244.9000000000001 250.4C241.9000000000001 247.6 241.9000000000001 242.9 244.9000000000001 240.2C247.7000000000001 237.2 252.4000000000001 237.2 255.4000000000001 240.2C258.2000000000001 243 258.2000000000001 247.7 255.4000000000001 250.4C252.4000000000001 253.4 247.7000000000001 253.4 244.9000000000001 250.4zM317.4000000000001 263.7C297.5000000000001 278.1 283.6 306.9 305.5000000000001 331.8C327.1000000000001 356.7 346.2000000000001 349 365.3000000000001 331C377.2000000000001 319.7 394.6000000000001 306.1 382.5000000000001 282.8C370.0000000000001 259.3 337.4000000000001 249.6 317.4000000000001 263.7zM365.1 308.2C356.2000000000001 318.2 341.8 301.3 349.6 292.1C357 283.1 381.7000000000001 289.7 365.1 308.2zM504 192C504 55 393 -56 256 -56S8 55 8 192S119 440 256 440S504 329 504 192zM437.8 149.4C440.3 165.5 417.6 166 412.6 175.1C399 199.2 384.9000000000001 211.9 358.1 205.5C369.7000000000001 213.5 381.6 211.6 381.6 211.6C381.9000000000001 218 381.6 224.6 372.2000000000001 236.5C376.1 249 372.5000000000001 258.9 372.5000000000001 258.9C388.0000000000001 267.5 399.3000000000001 283.3 401.6000000000001 302.1C405.2000000000001 333.1 382.8000000000001 361.3 351.8000000000001 364.9C329.7000000000001 367.4 308.1000000000001 357.2 297.5000000000001 339.2C274.3000000000001 299.1 298.9000000000001 268.3 319.9000000000001 257.8C305.5000000000001 259.2 285.6 269.7 279.8 292.1C273.2 317.8 282.6 341.9 288.7 353.5C288.7 353.5 284.3 359.3 280.7 362.4C280.7 362.4 266.9 362.4 256.1 357.1C268 372.3 281.3 371.5 281.3 371.5C281.3 377.9 280.7 386.4 277.7 393.1C272.3 404.1 253.8999999999999 406 246 390.3C246.1 390.5 246.3 390.7 246.4 390.8C241.4 378.9 245.3 334.9 263.3 303.6C260.8 302.2 254.2 297.5 250.3 293.6C228.7 283.9 194.1 233.3 194.1 233.3C165.9 222.5 116.9 182.4 123.5 153.6C123.8 150.6 124.9 148.1 126.5 146.1C123.7 143.9 121 141.1 118.2 137.8C106.3 124 112.9 102.6 135.9 113.4C151.7 120.6 165.5 133.6 172.2 143.8C172.2 143.8 166.7 148.8 155.9 148.2C183.6 154.8 190.2 157.6 202.1 157.3C210.1 153.4 210.1 191.6 210.1 191.6C210.1 206.3 207.9 222.6 199 233.1C211.5 220.9 228.1 200.4 227 172.5C226.2 154.2 211.8 149.5 211.8 149.5C202.7 132.9 168.6 83.6 181.4 43.5C181.4 43.5 171.7 58.4 171.2 65.6C153.8 46.2 124.7 13.3 146.6 1.1C173.2 -13.6 255.4 89.7000000000001 272.8 143.4C307.4000000000001 164.2000000000001 328.2 190.7000000000001 336.7 208.4C358.7 164.9 432 113.9 437.8 149.4z" />
-			<glyph glyph-name="gripfire" unicode="" horiz-adv-x="384" d=" M171.8 -55.8C171.8 -50.5 176.6 -43.6 176.6 -33.5C176.6 -18.3 163.6 6.4 98.5 53.1C64.2 82.2 32 111.6 32 161.4C32 276.1 179.1 337.9 179.1 430C179.1 433.3 178.9 436.7 178.5 440C183.6 437.6 217.6 396.7 217.6 349.6C217.6 269.1 112.5 220.4 112.5 146.6C112.5 119.7000000000001 129.1 99.4 145.1 77.1C167.6 46.9 189.3 20.2 189.3 -9.4C189.2 -23.9 184.9 -39.1 171.8 -55.8zM317.8 185.6C319.3 177.2000000000001 320 169 320 161C320 109.2 290.6 63.5 252.7 24.2C251.7 23.2 250.5 21.8 249.5 21.8C245.9 21.8 214 63.4 214 75C214 75 255.8 130.7 255.8 171.9C255.8 182.7 253.1 193.6 246.7 205.3C245.2 173 191 117.6 188.6 117.6C185.9 117.6 170.7 139.6 170.7 159.7C170.7 165 171.7 170.4 173.9 175.5C176.3 181 230.5 247.5 230.5 292.2C230.5 298.4 229.5 304.2 227.1 309.3L223.1 316.5C239.8 310 305.7 252.4 317.8 185.6" />
-			<glyph glyph-name="grunt" unicode="" horiz-adv-x="384" d=" M61.3 258.7C60.2 248.7 66.5 239.6 66.5 239.6C67.2 247.1 68.7 252.4 70.5 256.2C70.9 245.9 73.7 232.7 83.3 222.1C90.2 214.5 118.9 198.8 138.2 216C139.2 213.6 140.3 210.7 141.2 207.5C144.1 197.2 138.5 182.2 138.5 182.2S153.6 199.3 152.4 214.7C163.2 215.2 173.8 223.1 173.5 234.2C173.5 234.2 154.6 223.8 138 243C128.3 254.2 97.1 285 54.9 274.8C59.2 273.8 63.8 272.4 68.4 270.7000000000001H68.3C64.1 268.7000000000001 61.8 263.6 61.3 258.7000000000001zM89.6 260.5C109.1 249.5 127 234.8 134.5 223.5C128.8 220.2 112.8 213.1 96.5 225.2C86.2 232.8 86.7 251.4 89.6 260.5zM168.8 26.8C171 24.5 170.3 21.5 169.7 20C168.6 17.3 164.2 8.4 156.7 0.2C154 -2.7 150.1 -4.4 145.7 -4.4C141.4 -4.4 137 -2.8 133.9 -0.1C131.6 2 123.7 9.4 120.2 18.5C118.9 21.9 119.2 24.6 121.1 26.6C122.4 27.9 125.1 29.5 130.6 29.5H160C164.1 29.5 167 28.6 168.8 26.8zM231.7 214.7C230.5000000000001 199.2 245.6 182.2000000000001 245.6 182.2000000000001S240.0000000000001 197.2000000000001 242.9000000000001 207.5000000000001C243.8000000000001 210.7000000000001 244.9000000000001 213.5000000000001 245.9000000000001 216.0000000000001C265.2000000000001 198.7000000000001 293.9000000000001 214.5000000000001 300.7000000000001 222.1000000000001C310.3000000000001 232.7000000000001 313.0000000000001 245.9000000000001 313.5000000000001 256.2000000000001C315.3000000000001 252.4000000000001 316.9000000000001 247.1000000000001 317.5000000000001 239.6000000000001C317.5000000000001 239.6000000000001 323.9000000000001 248.7000000000001 322.7000000000001 258.7000000000001C322.1 263.7000000000001 319.8000000000001 268.7000000000001 315.7000000000001 270.5000000000001H315.6C320.2000000000001 272.3000000000001 324.8 273.7000000000001 329.1 274.6C286.8 284.8000000000001 255.7 254.0000000000001 246.0000000000001 242.8000000000001C229.3000000000001 223.6000000000001 210.5 234.0000000000001 210.5 234.0000000000001C210.3000000000001 223.1 220.9 215.1 231.7 214.7zM249.5000000000001 223.5C257 234.9000000000001 274.9000000000001 249.5000000000001 294.4000000000001 260.5C297.4000000000001 251.4000000000001 297.8 232.8000000000001 287.4000000000001 225.1C271.1 213 255.2000000000001 220.1 249.5000000000001 223.5C249.4000000000001 223.4 249.5000000000001 223.5 249.5000000000001 223.5zM263 26.6C264.9 24.7 265.2 22 263.9 18.7C260.4 9.8000000000001 252.5 2.6 250.2 0.6C247.1 -2 242.8 -3.6 238.4 -3.6S230.1 -1.9999999999999 227.4 0.9C219.9 8.9 215.4 17.6 214.4 20.2C213.8 21.7 213.1 24.6 215.3 26.9C217 28.7 220 29.6 224.2 29.6H253.6C259 29.5 261.7 27.9 263 26.6zM164.7 278.1C174.6 272.1 183.5 270 192 269.8C200.5 270 209.4 272.1 219.3 278.1C219.3 278.1 204.8 260.4000000000001 192.1 260.3H191.9C179.2000000000001 260.5 164.7000000000001 278.1 164.7000000000001 278.1zM349.2 130.7000000000001C346.8 112.8000000000001 336.2 96.9 324.6 87.0000000000001C321.5 109.7000000000001 320.9 142.5000000000001 320.9 149.4C320.9 164.1 330.4 173.9 333.1 175.5000000000001C335.6 177.0000000000001 338.5 178.5000000000001 341.4 180.1000000000001C359.4 189.7000000000001 381.8 201.7000000000001 381.8 223.8000000000001C381.8 240.0000000000001 372.5 247.0000000000001 366.4 251.6000000000001C365.6 252.2000000000001 364.9 252.7000000000001 364.2 253.3000000000001C362.1 255.0000000000001 360.5 256.3000000000001 359.9 257.7000000000001C355.5 267.5000000000001 356.3 291.9000000000001 358.2 295.3000000000001C358.8 295.9000000000001 374.9 316.2000000000001 370 334.5000000000001C368 341.9000000000001 363.1 347.8000000000001 355.9 351.5000000000001C350.6 354.2000000000001 344 355.7000000000001 336.4 356.0000000000001C336.3 358.0000000000001 335.9 359.9000000000001 335.5 361.9000000000001C334.9 364.5000000000001 334.4 367.2000000000001 334.6 370.0000000000001C335 374.7000000000001 335.4000000000001 379.0000000000001 336.8 381.3000000000001C345.2 394.6000000000001 365.6 398.9000000000001 365.8 398.9000000000001L378.1 401.3000000000001L370 410.8000000000001C369.9 411.0000000000001 352.7 428.3000000000001 323.7 428.3000000000001C315.8 428.3000000000001 307.7 427.0000000000001 299.6 424.4000000000001C275.4 416.6000000000001 256.7 393.9000000000001 250.2 385.1000000000001C247.1 386.1000000000001 243.9 387.0000000000001 240.6 387.8000000000001C236.4 403.6000000000001 249.6 426.3000000000001 249.6 426.3000000000001S236 429.3000000000001 215.9 411.1000000000001C213.3 417.6000000000001 207.8 431.6000000000001 214.1 448.3000000000001C184.6 437.9 177.2 422 175 407.6C167.4 413 168.3 430.7 167.8 435.2C160.3 434.3 138.6 413.3 139.6 386.9C137.6 386.4 135.7 385.8 133.7 385.2C127.2 394 108.6 416.7 84.3 424.5C76.4 426.7 68.3 428 60.4 428C31.4 428 14.3 410.7 14.1 410.5L6 401.1L18.3 398.7C18.5 398.7 38.9 394.4 47.3 381.1C48.7 378.9 49.1 374.5 49.5 369.8C49.7 367 49.1 364.3 48.6 361.7C48.2 359.8 47.8 357.8 47.7 355.8C40 355.5 33.5 354 28.2 351.3C21 347.6 16.1 341.7 14.1 334.3C9.1 316.1 25.3 295.8 25.9 295.1C27.8 291.7 28.6 267.3 24.2 257.5C23.6 256.1 22 254.8 19.9 253.1C19.2 252.6 18.5 252 17.7 251.4C11.6 246.8 2.3 239.7 2.3 223.6C2.3 201.5 24.7 189.5 42.7 179.9C45.7 178.3 48.5 176.8 51 175.3C53.7 173.6999999999999 63.2 163.9 63.2 149.1999999999999C63.2 142.3 62.6 109.4999999999999 59.5 86.8C47.9 96.6999999999999 37.3 112.6999999999999 34.9 130.6C34.9 130.6 5.7 107.9999999999999 14.3 59.8C19.5 30.3 37.5 13.6999999999999 61.3 5.1C70.1 -14.0000000000001 90.7 -40.6 128.6 -44.5000000000001C143 -56.3 163 -64 192.2 -64H192.4C221.5 -64 241.5 -56.3 256 -44.5C293.9 -40.6 314.5 -14 323.3 5.1C347.1 13.8 365 30.3 370.3 59.8C378.5 108.2 349.2 130.7000000000001 349.2 130.7000000000001zM305.7 410.3C311.3 412.1 317.3 413 323.4 413C334.4 413 343.3 410 348.1 408C345 406.6 341.7 404.8 338.4 402.7C336 403.1 332.8 403.5 329.2 403.5C318.7 403.5 308.7 400.4 300.5 394.6C288.2 385.9 282.5 377.7 279.8 372.2C277.6 373.5 275.3 374.7 272.7 375.9C271.1 376.7 269.6 377.4 268 378.1C274.1 387.2 287.9 404.6 305.7 410.3zM326.7 392.1C325.9 391.1 325.1 390 324.4 388.9C321.1 383.7 320.5 377.3 320 371.1C319.5 364.7 318.9 358.6 315.6 354.1C311.4000000000001 353.3 307.5 352.4 304.1 351.4C301.8 354.5 298.5 358.4 293.6 362.6C295 367.4 299.1 378.7 307.1 385.1C312.7000000000001 389.4 319.3 391.8 326.7000000000001 392.1zM45.6 402.7C42.3 404.9 39 406.7 35.9 408C40.7 410 49.6 413 60.6 413C66.7 413 72.6 412.1 78.3 410.3C96.1 404.5 109.9 387.1 116 378.2C114.4 377.5 112.8 376.8 111.2 376C108.7 374.8 106.3 373.5 104.1 372.3C101.5 377.7 95.8 386 83.4 394.7C75.1 400.5 65.2 403.6 54.6 403.6C51.2 403.5 48 403.1 45.6 402.7zM90.3 362.6C85.4 358.4 82 354.6 79.8 351.4C76.4 352.3 72.5 353.3 68.3 354.1C65 358.5 64.5 364.6 64 371C63.5 377.2 62.9 383.6 59.6 388.8C58.9 389.9 58.1 391 57.3 392C64.7 391.7 71.3 389.4 76.8 385C84.8 378.7 88.9 367.4 90.3 362.6zM58.1 188.1C55.4 189.7000000000001 52.5 191.2000000000001 49.7 192.7C34.8 200.7 19.5 209 19.5 223.2C19.5 234.3 23.8 237.8 28.4 241.4L28.9 241.8C29.6 242.4 30.3 243 31.1 243.6C30.2 236.4000000000001 29.2 230.3 28.4 228.7C28.4 228.7 40.5 243.7 44.1 273C45.5 284.5 43 307.3 39 316C39.2 311.1 39 306.2 38.7 301.6C38.3 302.4 37.9 303.2 37.4 303.8C34.2 307.8 25.6 321.3 28 330.4C28.9 333.9 31.1 336.4 34.7 338.2C38.5 340.1 43.5 341.1 49.8 341.1C62.1 341.1 75.7 337.4 82.7 335.1C107.8 327.1 138.1 304.2 146.8 297.4C147 297.2 147.2 297.1 147.2 297.1L152.8 293.2L149.3 299C149.1 299.3 130.2 330.4 96.1 345.5C98.1 348.4 103.5 353.6 117.7 360.6C139.1 371.1 164.2 376.4 192 376.4C219.9 376.4 244.9 371.1 266.3 360.6C280.5 353.7 285.9000000000001 348.4 287.9000000000001 345.5C253.9000000000001 330.4 235.0000000000001 299.3 234.8000000000001 299L231.3000000000001 293.2L236.9000000000001 297.1S237.1 297.2 237.3000000000001 297.4C246.0000000000001 304.2 276.3000000000001 327.2 301.4000000000001 335.1C308.4000000000001 337.3 322.0000000000001 341.1 334.3 341.1C340.6 341.1 345.6 340.1 349.4000000000001 338.2C352.9000000000001 336.4 355.1 333.8 356.1 330.4C358.6 321.3 350 307.8 346.7000000000001 303.8C346.2000000000001 303.2 345.8000000000001 302.5 345.4000000000001 301.6C345.1 306.2 344.9000000000001 311.1 345.1 316C341.1 307.2 338.6 284.5 340 273C343.6 243.7 355.7 228.7 355.7 228.7C354.9 230.3 353.9 236.4 353 243.6C353.7 243 354.5 242.4 355.2 241.8L355.7 241.4C360.3 237.7 364.6 234.3 364.6 223.2C364.6 209 349.2 200.7 334.4 192.7C331.5 191.2 328.7 189.6 326 188.1C317.3 183.1 308 171.4 306.9 153.9C306 139.3 307.8 104 310.3 78C297.9 73.2 283.6 71.6 270.6 71.2C268.6 75.3 266.7 79.7 265.1 84.3C264.4 86.3 245.5 135.4 238.7 146.5C244.2 107.5 256.2 72.8 262.2 56.9C258.7 57.4 254.8999999999999 57.6 250.5 57.6H133.5C129.0999999999999 57.6 125.2 57.3 121.8 56.9C127.8 72.8 139.9 107.5 145.3 146.5C138.5 135.3 119.6 86.2 118.9 84.3C117.3 79.7 115.4 75.3 113.4 71.2C100.4 71.6 86.2 73.2 73.7 78C76.2 104 77.9999999999999 139.2 77.1 153.9C76.2 171.3 66.8 183.1 58.1 188.1zM34.8 43.4C22.7 63.4 26.1 97.5 31.1 102.5C42 68.1 78.3 58.2 105.5 57.1C102.8 52.9 100.3 49.5 98.5 47.1L97.1 45.7C89.9 37.9 88.5 27.2 93 13.9C70.3 14.0000000000001 46.7 23.7 34.8 43.4zM80.5 -0.1C86.5 -1.2 92.7 -2 99.1 -2.5C102.6 -10.5 106.5 -18.4 111.4 -25.6C97 -19.7 87 -9.6 80.5 -0.1zM192 -50.2C131.4 -50.1 113.7 -4.4 107.1 14.5C103.4 25 103.7 32.7 108 37.6C110.9 40.9 117.5 44.8 132.6 44.8H251.4C266.5 44.8 273.2 40.9 276 37.6C280.2 32.8 280.5 25 276.9 14.5C270.3 -4.3 252.6 -50.1 192 -50.2zM272.6 -25.6C277.5 -18.4 281.4000000000001 -10.4999999999999 284.9000000000001 -2.4999999999999C291.3 -1.9999999999999 297.5000000000001 -1.1999999999999 303.5000000000001 -0.1C297.0000000000001 -9.6 287.0000000000001 -19.7 272.6000000000001 -25.6zM349.2000000000001 43.4C337.2000000000001 23.7 313.6 14.1 291.1 13.7C295.6 27.0000000000001 294.2000000000001 37.8000000000001 287 45.5000000000001C286.6 46.0000000000001 286.1 46.5000000000001 285.6 47.0000000000001C283.8 49.4 281.3 52.8000000000001 278.6 57.0000000000001C305.8 58.2000000000001 342.1 68.0000000000001 353 102.4C358 97.4 361.4 63.3 349.2 43.4z" />
-			<glyph glyph-name="gulp" unicode="" horiz-adv-x="256" d=" M209.8 56.9L195.7 32.3L191.1 -47.9C191.1 -56.8 162.8 -64 128 -64S64.9 -56.8 64.9 -47.9L59.1 31.5L44.2 56.9C85.4 39.6 170.2000000000001 40.2 209.8000000000001 56.9zM13.8 310.2L27.4 184.7C33.3 204.7 48.2 231.7 67.4 239.9C73.7 242.6 80.1 242.6 86.1 239C91.3 236 95.7 229.7 96.2 227.2C97.4 220.7 94.2 218.1 91.7 218.1C88.7 218.1 86.4 222.7 84.9 225.4C80.8 232.7 74.6 233 68 228.2C61.1 223.2 55.1 214.8 50.9 207.5C45.8 198.7 41.5 189 38.9 179.3C37.4 173.7 36 164.7 38.3 159.4C39.3 157.2000000000001 40.8 155.8 43.2 155.8C48.2 155.8 55.5 162.4 59 165.9C63.5 170.4 69.3 177.4 71.5 181.9L76.7 197.4C79.3 204.2000000000001 86.6 203 86.6 197.4C86.6 187.2000000000001 82.9 183.8 76.6 162.7000000000001C70.8 143.2000000000001 69 136.9 69 136.9C68.3 134.1 65.6 129.4 62.7 129.4C61.5 129.4 60.6 129.8 60.1 130.6C59.1 132 59.2 135.9 59.3 136.9C59.5 140.1 65.6 159.1 66.6 162.1C64.6 159.9 62.5 157.7000000000001 60.2 155.5C54.8 150.4 46.1 143.7 38.7 143.7C35.3 143.7 33.1 144.6 31 146.1L38.6 66.5C40.6 61.5 77.8 49.4 126.8 49.4C175.9 49.4 213.1 61.6 215 66.5L225.9000000000001 161.1C220.2000000000001 155.9 213.6 149.5 206.3000000000001 146.3C200.9 144 188.9 142.5 188.9 152C188.9 157.2 198 166.8 203.3000000000001 173.5C204.7000000000001 175.2 208 179.4 208 181.6C208 184.5 202 183.8 196.3000000000001 179.1C193.1000000000001 176.4 190.1000000000001 172.8 187.6000000000001 169.4C183.3000000000001 163.4 181.0000000000001 158.2000000000001 179.1000000000001 153.9C172.9000000000001 139.7000000000001 175.0000000000001 145.3 170.0000000000001 131.9C165.0000000000001 118.6 165.8000000000001 120.1 164.8000000000001 117.9C163.9000000000001 116.0000000000001 162.6000000000001 114.4 160.8000000000001 113.4C158.9000000000001 112.4 156.3000000000001 112.5000000000001 154.7000000000001 113.7000000000001C153.8000000000001 114.3000000000001 153.4000000000001 115.6 153.4000000000001 117.4C153.4000000000001 118.3 153.5000000000001 119.2000000000001 153.7000000000001 120.1C155.2000000000001 126.2000000000001 161.5000000000001 138.2000000000001 168.7000000000001 154.4C170.3000000000001 158.1 169.7000000000001 157.0000000000001 169.5000000000001 156.7000000000001C163.3000000000001 150.7000000000001 158.6000000000001 147.8000000000001 155.1000000000001 146.2000000000001C149.3000000000001 143.6 142.1000000000001 143.6 140.6000000000001 150.3000000000001C140.5000000000001 150.7000000000001 140.5000000000001 151.1000000000001 140.4000000000001 151.5000000000001C128.6000000000001 142.3000000000001 116.1000000000001 139.8000000000001 120.4000000000001 159.6000000000001C115.8000000000001 151.4000000000001 107.8000000000001 144.7000000000001 98.0000000000001 144.7000000000001C93.9000000000001 144.7000000000001 90.9000000000001 146.1000000000001 89.4000000000001 149.8000000000001C87.1000000000001 155.3000000000001 90.7000000000001 164.7000000000001 94.0000000000001 173.6000000000001C95.7000000000001 178.1000000000001 98.0000000000001 183.5000000000001 101.1000000000001 189.8000000000001C102.7000000000001 193.2000000000001 105.3000000000001 195.2000000000001 108.7000000000001 194.3000000000001C109.3000000000001 194.1000000000001 109.8000000000001 193.9000000000001 110.3000000000001 193.6000000000001C112.9000000000001 191.8000000000001 111.9000000000001 189.1000000000001 110.6000000000001 186.4000000000002C106.8000000000001 178.9000000000002 103.5000000000001 173.4000000000002 101.3000000000001 165.6000000000001C100.4000000000001 162.3000000000001 99.3000000000001 156.6000000000001 102.8000000000001 156.6000000000001C105.2000000000001 156.6000000000001 107.5000000000001 157.4000000000002 109.7000000000001 159.0000000000001C114.3000000000001 162.4000000000001 118.0000000000001 167.5000000000001 120.8000000000001 172.5000000000001C122.8000000000001 176.1000000000001 125.2000000000001 180.8000000000001 126.4000000000001 184.8000000000001C126.9000000000001 186.5000000000001 127.5000000000001 188.1000000000001 128.2000000000001 189.6000000000001C129.3000000000001 192.1000000000001 130.8000000000001 194.7000000000001 133.4000000000001 194.7000000000001C134.7000000000001 194.7000000000001 135.8000000000001 194.2000000000001 136.6000000000001 193.2000000000001C138.3000000000001 191.0000000000001 137.9000000000001 188.7000000000002 137.0000000000001 186.3000000000001C135.0000000000001 180.7000000000001 132.3000000000001 175.7000000000001 130.1000000000001 169.6000000000001C128.8000000000001 166.1000000000001 127.4000000000001 161.6000000000001 127.4000000000001 157.9000000000002C127.4000000000001 154.5000000000002 131.1000000000001 155.3000000000001 134.2000000000001 156.7000000000002C136.6000000000001 157.8000000000002 139.0000000000001 159.5000000000002 141.0000000000001 161.2000000000002C142.2000000000001 166.1000000000001 141.9000000000001 165.0000000000002 167.4000000000001 229.4000000000002C168.7000000000001 232.7000000000002 171.1000000000001 234.1000000000002 173.5000000000001 234.1000000000002C174.7000000000001 234.1000000000002 175.7000000000001 233.7000000000002 176.7000000000001 233.0000000000002C178.4 231.7000000000002 178.4 228.9000000000002 177.7000000000001 226.8000000000002C177.0000000000001 224.9000000000002 177.1000000000001 225.5000000000002 173.2000000000001 216.3000000000002C168.0000000000001 204.2000000000002 164.6000000000001 195.5000000000002 160.0000000000001 184.4000000000002C158.1000000000001 179.8000000000001 152.3000000000001 165.5000000000002 151.3000000000001 162.1000000000001C150.7000000000001 159.9000000000002 150.0000000000001 156.3000000000001 152.3000000000001 156.3000000000001C157.7000000000001 156.3000000000001 171.6000000000001 169.4000000000002 175.4000000000001 173.3000000000001C175.6000000000001 173.6000000000001 175.9000000000001 173.7000000000001 176.3000000000001 173.9000000000002C176.9000000000001 175.8000000000001 177.5000000000001 177.6000000000001 178.0000000000001 179.4000000000002C179.4000000000001 183.2000000000002 180.7000000000001 187.6000000000001 183.3000000000001 190.7000000000002C184.1000000000001 191.7000000000002 185.0000000000001 192.3000000000002 186.0000000000001 192.3000000000002C188.8000000000001 192.3000000000002 190.2000000000001 191.1000000000001 190.2000000000001 188.3000000000002C190.2000000000001 187.2000000000002 189.5000000000001 183.2000000000002 189.1000000000001 182.1000000000002C190.5000000000001 183.6000000000002 192.0000000000001 185.1000000000002 193.6000000000001 186.6000000000002C208.6000000000001 200.5000000000002 219.3000000000001 193.4000000000002 219.3000000000001 186.4000000000002C219.3000000000001 179.0000000000002 210.4 168.7000000000002 205.5 163.0000000000002C203.9 161.1000000000003 200.6 157.6000000000003 200.5 156.6000000000003C200.5 155.3000000000003 201.4 154.8000000000003 202.7 154.8000000000003C204.7 154.8000000000003 209.1 158.3000000000003 210.7 159.5000000000002C215.7 163.4000000000002 222.5 169.4000000000002 227.3 173.6000000000003L242.1 310.4000000000003C211.6 293.3000000000003 44.5 293.2000000000003 13.8 310.2000000000003zM243.5 318.7C243.5 297.7 12.3 297.7 12.3 318.7C12.3 327.5 64.1 334.6 127.9 334.6C136.9 334.6 145.7 334.5 154.2 334.2L166.8 382.9L228.1 447.4C229.5 448.8 233.9 447.6 238 443.9S244.6 436 243.3 434.6L243.2 434.5L185.9 374L175.9 333.3C215.8 330.7 243.5 325.2 243.5 318.7zM174.1 314.1C174.1 314.9 173.2 315.6 171.6 316.2L171.4 315.4C171.4 314.1 166.4 313 160.3 313S149.2 314.1 149.2 315.4C149.2 315.5 149.2 315.6 149.3 315.7L149.5 316.4C147.7 315.8 146.5 315 146.5 314.1C146.5 312 152.7 310.4 160.2 310.4C167.9 310.3 174.1 312 174.1 314.1z" />
-			<glyph glyph-name="hacker-news-square" unicode="" horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM21.2 218.8H21C21.1 218.9 21.2 219.1 21.3 219.2C21.3 219.1 21.3 218.9 21.2 218.8zM239.2 164.9V64H207.8V166.7L128 320H165.3C217.8 221.7 214.5 218.8 224.6 194.4C236.9000000000001 221.4 230.4000000000001 218.8 285.2000000000001 320H320L239.2 164.9z" />
-			<glyph glyph-name="hacker-news" unicode="" horiz-adv-x="448" d=" M0 416V-32H448V416H0zM21.2 218.8H21C21.1 218.9 21.2 219.1 21.3 219.2C21.3 219.1 21.3 218.9 21.2 218.8zM239.2 164.9V64H207.8V166.7L128 320H165.3C217.8 221.7 214.5 218.8 224.6 194.4C236.9000000000001 221.4 230.4000000000001 218.8 285.2000000000001 320H320L239.2 164.9z" />
-			<glyph glyph-name="hire-a-helper" unicode="" horiz-adv-x="512" d=" M443.1 448H71.9C67.9 410.7 37.4 380.2 0 376.3V4.8C37.4 -0.1 66 -27.6 71.9 -64H444.1C447.1 -27.6 476.6 1.8 512 5.8V376.3C475.6 382.2 447 411.6 443.1 448zM406.1 43.1C369.8 43.1 387.3 45.1 351 45.1C315.2 45.1 330 43.1 294.9 43.1C289 43.1 290 51.3 294.9 52.9C317.7 60.5000000000001 317.8 63.1 319.5 65.7000000000001C329.9 81.3000000000001 325.4 148.7000000000001 325.4 178.7000000000001C325.4 184.0000000000001 319 191.5000000000001 311.6 191.5000000000001H200.4C193 191.5000000000001 186.6 184.0000000000001 186.6 178.7000000000001C186.6 148.7000000000001 182.1 81.3000000000001 192.5 65.7000000000001C194.2 63.2000000000001 194.3 60.5000000000001 217.1 52.9C222 51.3 223.1 43.1 217.1 43.1C182 43.1 196.8 45.1 161 45.1C124.7 45.1 142.2 43.1 105.9 43.1C98 43.1 100.1 53.9 105.9 53.9C116.1 57.3 119.4 57.4 127.6 67.7000000000001C135.3 80.6 135.5 112.1 135.5 195.5000000000001V296.7C135.5 318.9 123.3 325 106.9 329.1C98.1 331.3 102.9 340.9 107.9 340.9C144.4 340.9 128.5 338.9 165 338.9C197.7 338.9 181.5 340.9 214.2 340.9C217.5 340.9 222.7 332.6 215.2 330.1C210.3 328.5 187.6 326.4 187.6 290.8C187.6 245.2 187.4 235 188.6 222C188.6 220.7 190.9 209.2 201.4 209.2H310.6C321.1 209.2 323.4000000000001 220.7 323.4000000000001 222C324.6 235 324.4000000000001 245.2 324.4000000000001 290.8C324.4000000000001 326.4 301.7000000000001 328.5 296.8 330.1C289.3 332.6 294.5 340.9 297.8 340.9C330.5 340.9 314.3 338.9 347 338.9C383.5 338.9 367.6 340.9 404.1 340.9C409 340.9 414 331.3 405.1 329.1C388.7000000000001 325 376.5 318.8 376.5 296.7000000000001V195.5C376.5 112.1 376.6 80.6 384.4 67.7C392.6 57.5 395.8 57.3 406.1 53.9C411.9 53.9 413.9 43.1 406.1 43.1z" />
-			<glyph glyph-name="hooli" unicode="" horiz-adv-x="640" d=" M508.4 96H566.3V291.3L508.4 264V96zM582.1 206.5V96H640V206.5H582.1zM331.4000000000001 215.4C313.2000000000001 233.6 281.0000000000001 232.5 281.0000000000001 232.5S248.8000000000001 233.6 230.6000000000001 215.4C228.7000000000001 213.5 226.9000000000001 211.5 225.3000000000001 209.4C187.1 239 152.8000000000001 255.9 123.2000000000001 270.5V291.2L100.7000000000001 280.6C46.3000000000001 302.7 11.7 298.8 3.4 280.5C3.4 280.5 -21.4999999999999 247.7 65.3 169.6V200.6C16.5 255.2 26.3 276.7000000000001 30 279.8C43.5 291.2000000000001 67.5 287.8 94.4000000000001 277.7000000000001L65.2 264V200.7C78.3 186 95.7 169.2 118.7 150.3L123.2 146.7V176.5C123.2 183.4 124.9 194.7 134 194.7S144.6 187.8 144.6 179.7V131C162.6 118.8 181.9 108.9 202.3 101.4V195.3C202.3 214 188.9 232.7 161.7 232.7C145.9 232.8 131.2 224.5 123.2 210.8V265.1C165.1 244.2 207.1 218.6 223.1 206.8C212.9 192.2 213.8 178.6999999999999 213.8 163.1C213.8 144.4 212.4 128.8 230.6 110.6C248.8 92.4 281 93.4999999999999 281 93.4999999999999S313.3 92.3999999999999 331.4 110.6C349.6 128.8 348.1 144.4 348.1 163.1C348.1 181.6 349.6 197.3 331.4 215.4zM291.7000000000001 143.5C291.7000000000001 139.9 289.9000000000001 131 281.0000000000001 131C272.1000000000001 131 270.3000000000001 139.9 270.3000000000001 143.5V183.9C270.3000000000001 192.6 277.6000000000001 194.8 281.0000000000001 194.8C284.4000000000001 194.8 291.7000000000001 192.7 291.7000000000001 183.9V143.5zM477.4 215.4C459.2 233.6 427.0000000000001 232.5 427.0000000000001 232.5S394.7000000000001 233.6 376.6000000000001 215.4C358.4000000000001 197.2 359.8000000000001 181.5 359.8000000000001 162.8C359.8000000000001 144.1 358.4000000000001 128.5 376.6000000000001 110.3C394.8000000000001 92.1 427.0000000000001 93.2 427.0000000000001 93.2S459.3000000000001 92.1 477.4 110.3C495.6 128.5 494.2 144.1 494.2 162.8C494.1 181.6 495.5000000000001 197.3 477.4 215.4zM437.6 143.5C437.6 139.9 435.8 131 426.9000000000001 131C418.0000000000001 131 416.2000000000001 139.9 416.2000000000001 143.5V183.9C416.2000000000001 192.6 423.5000000000001 194.8 426.9000000000001 194.8C430.3 194.8 437.6 192.7 437.6 183.9V143.5zM611.1 216.5C627 216.5 640 229.4 640 245.4S627.1 269.9 611.1 269.9C595.2 269.9 582.2 261.3 582.2 245.4S595.1 216.5 611.1 216.5zM144.5 96L182.8 95.2C169.6 99.8 156.8 105.4 144.5 112V96zM123.1 96V124.6C116.6 128.8 110.1 133.3 103.7 138.2000000000001C88.9 149.4 76.2 159.9 65.2 169.7000000000001V96H123.1zM182.8 95.2C219.3 82.7 252.7 81 277.5 88C257.6 87.8 231.7 90.6 202.2 101.3V96L182.8 95.2z" />
-			<glyph glyph-name="hotjar" unicode="" horiz-adv-x="448" d=" M414.9 286.5C340.2 419 121.1 448 121.1 448S222.2 337.6 93 250.3C11.3 195.2 -21 123.6 14 45.4C40.8 -14.5 97.5 -38.9 158.6 -48C129.4 7.1 152 74.4 154.5 81.6C211.6 -4.8 319.5 81.6 265.3 175.5C336.3 160.1 346.9 36.9 292.4000000000001 -40C372.9000000000001 -14.7 426.5 48.9 441.2000000000001 105.6C456.7 164.9 444.9000000000001 233.5000000000001 414.9000000000001 286.5z" />
-			<glyph glyph-name="houzz" unicode="" horiz-adv-x="320" d=" M12.2 192L160 106.9L12.2 21.4V192M160 -64L307.8 21.4V192L160 106.9V-64zM160 448L12.2 362.6V192L160 277.4V448zM160 277.4L307.8 192V362.6L160 277.4z" />
-			<glyph glyph-name="html5" unicode="ï„»" horiz-adv-x="384" d=" M0 416L34.9 20.2L191.5 -32L349.1 20.2L384 416H0zM308.2 288.1H124.4L128.5 238.7H304.1L290.5 90.3L192.6 63.3V62.9999999999999H191.5L92.8 90.3L86.8 166.1H134.5L138 128L191.5 113.5L245.2 128L251.2 190.2H84.3L71.5 335.8H312.6L308.2000000000001 288.1z" />
-			<glyph glyph-name="hubspot" unicode="" horiz-adv-x="512" d=" M267.4 236.4C242.3 212.7 226.6 179.1 226.6 141.8C226.6 112.5 236.3 85.5 252.6 63.8L203.1 14C198.7 15.6 194 16.5 189.1 16.5C178.3 16.5 168.2 12.3 160.6 4.7C153 -2.9 148.8 -13.1 148.8 -23.9S153 -44.8 160.6 -52.4C168.2 -60.0000000000001 178.4 -64 189.1 -64C199.9 -64 210 -60.1 217.7 -52.4C225.3 -44.8 229.5 -34.6 229.5 -23.9C229.5 -19.7 228.9 -15.7 227.6 -11.8L277.6 38.4C299.6 21.5000000000001 327 11.5000000000001 356.9000000000001 11.5000000000001C428.8000000000001 11.5000000000001 486.9 69.8000000000001 486.9 141.7000000000001C486.9 206.9 439.2000000000001 260.9000000000001 376.7000000000001 270.4000000000001V332C394.2000000000001 339.4 404.9000000000001 355.8 404.9000000000001 374.9C404.9000000000001 401 384.0000000000001 422.8 357.9000000000001 422.8S311.2 401 311.2 374.9C311.2 355.8 321.9 339.4 339.4 332V270.8C324.2 268.7000000000001 309.8 264.1 296.7 257.2000000000001C269.1 278.1 179.2 342.9000000000001 127.8 382C129 386.4000000000001 129.8 391 129.8 395.8C129.8 424.6 106.3 448 77.4 448C48.6 448 25.2 424.6 25.2 395.8C25.2 366.9 48.6 343.5 77.4 343.5C87.2 343.5 96.3 346.4 104.2 351.1L267.4 236.4zM356.9 72.8C318.8 72.8 287.9 103.7 287.9 141.8S318.8 210.8 356.9 210.8S425.9 179.9 425.9 141.8S395 72.8 356.9 72.8z" />
-			<glyph glyph-name="imdb" unicode="" horiz-adv-x="448" d=" M350.5 159.3C350.5 153.9 352.1 144.9 344.3 144.9C342.7 144.9 341.3 145.7000000000001 340.5 147.3C338.3 152.4 339.4 191.4 339.4 192C339.4 195.8 338.3 204.7 344.3 204.7C351.6 204.7 350.5 197.4 350.5 192V159.3zM265 218.1C265 227.8 266.6 234.1 254.7 234.1V150.4C266.9 150.1 265 159.1 265 168.8V218.1zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM21.3 219.2C21.2 219.1 21.1 218.9 21 218.8H21.3V219.2zM97 256H64V128.2H97V256zM210.3 256H167.2L159.6 196.1C156.9 216.1 154.2 236.2 150.9 256H108.1V128.2H137.1V212.7L149.3 128.2H169.9L181.5 214.6V128.2H210.2V256zM296.6 210.7C296.6 218.8 296.9000000000001 227.5 295.2000000000001 235.1C290.9000000000001 257.6 263.8000000000001 256 246.2000000000001 256H221.6000000000001V128.2C307.7000000000001 128.1 296.6 122.2 296.6 210.7zM382.5 193.4C382.5 210.7 381.7 223.5 360.3 223.5C351.4000000000001 223.5 345.4000000000001 220.8 339.4000000000001 214.3V256H307.7000000000001V128.2H337.5000000000001L339.4000000000001 136.3C345.1 129.5 351.3 126.5 360.3 126.5C380.1 126.5 382.5 141.7 382.5 157.4V193.4z" />
-			<glyph glyph-name="instagram" unicode="ï…­" horiz-adv-x="448" d=" M224.1 307C160.5 307 109.2 255.7 109.2 192.1S160.5 77.2 224.1 77.2S339 128.5 339 192.1S287.7 307 224.1 307zM224.1 117.4C183 117.4 149.4 150.9 149.4 192.1S182.9 266.8 224.1 266.8S298.8 233.3 298.8 192.1S265.2 117.4 224.1 117.4zM370.5 311.7C370.5 296.8 358.5 284.9 343.7 284.9C328.8 284.9 316.9 296.9 316.9 311.7S328.9 338.5 343.7 338.5S370.5 326.5 370.5 311.7zM446.6 284.5C444.9000000000001 320.4 436.7000000000001 352.2 410.4000000000001 378.4C384.2000000000001 404.6 352.4000000000001 412.8 316.5 414.6C279.5 416.7 168.6 416.7 131.6 414.6C95.8 412.9 64 404.7 37.7 378.5S3.3 320.5 1.5 284.6C-0.6 247.6 -0.6 136.7 1.5 99.7C3.2 63.8 11.4 32 37.7 5.8S95.7 -28.6 131.6 -30.4C168.6 -32.5000000000001 279.5 -32.5000000000001 316.5 -30.4C352.4 -28.7 384.2 -20.5000000000001 410.4 5.8C436.6 31.9999999999999 444.8 63.8 446.6 99.6999999999999C448.7 136.6999999999999 448.7 247.5 446.6 284.5zM398.8 60C391 40.4 375.9000000000001 25.3 356.2 17.4C326.7 5.7 256.7 8.4 224.1 8.4S121.4 5.8 92 17.4C72.4 25.2 57.3 40.3 49.4 60C37.7 89.5 40.4 159.5 40.4 192.1S37.8 294.8 49.4 324.2C57.2 343.8 72.3 358.9 92 366.8C121.5 378.5 191.5 375.8 224.1 375.8S326.8 378.4 356.2 366.8C375.8 359 390.9 343.9 398.8 324.2C410.5 294.7 407.8 224.7 407.8 192.1S410.5 89.4 398.8 60z" />
-			<glyph glyph-name="internet-explorer" unicode="" horiz-adv-x="512" d=" M483.049 288.294C493.904 312.8690000000001 504.473 348.7320000000001 504.473 376.165C504.473 448.887 424.832 474.536 294.8 414.742C187.168 421.923 83.579 341.072 57.7019999999999 228.2850000000001C88.554 263.1470000000001 135.973 310.5830000000001 179.679 329.4430000000001C125.404 281.15 79.128 219.998 43.992 156.275C23.246 118.349 0 57.06 0 11.253C0 -87.322 92.854 -75.2470000000001 180.251 -30.753C211.674 -46.183 246.81 -46.326 281.9460000000001 -46.326C379.0700000000001 -46.326 466.1950000000001 7.968 498.76 99.696H377.927C325.418 11.103 181.108 46.7 181.108 147.132H509.9C516.307 190.713 508.245 242.847 483.049 288.294zM64.559 101.123C82.27 49.973 118.262 5.252 164.825 -22.181C76.084 -71.1210000000001 -8.442 -51.277 64.559 101.1229999999999zM180.536 209.996C182.536 265.147 230.812 304.867 284.516 304.867C337.9340000000001 304.867 386.497 265.147 388.497 209.996H180.536zM365.072 397.596C386.497 407.883 413.635 419.599 437.63 419.599C469.052 419.599 491.904 397.882 491.904 365.877C491.904 345.874 484.477 316.87 477.335 298.01C451.0549999999999 340.302 411.349 379.594 365.072 397.596z" />
-			<glyph glyph-name="ioxhost" unicode="" horiz-adv-x="640" d=" M616 288H548.7C511.2 377.3 422.9 440 320 440C183 440 72 329 72 192C72 175.6 73.6 159.5 76.7 144H24C10.7 144 0 133.2 0 120C0 106.7 10.7 96 24 96H91.3C128.8 6.7 217.1 -56 320 -56C457 -56 568 55 568 192C568 208.4 566.4 224.5 563.3 240H616C629.3 240 640 250.8 640 264C640 277.3 629.3 288 616 288zM520 192C520 81.5 430.5 -8 320 -8C244.3 -8 178.4 34 144.5 96H424C437.3 96 448 106.8 448 120C448 133.3 437.3 144 424 144H125.8C122 159.4 120 175.4 120 192C120 302.5 209.5 392 320 392C395.7 392 461.6 350 495.5 288H216C202.7 288 192 277.2 192 264C192 250.7 202.7 240 216 240H514.2C518 224.6 520 208.6 520 192zM216 216H424C437.3 216 448 205.3 448 192C448 178.8 437.3 168 424 168H216C202.7 168 192 178.7 192 192C192 205.2 202.7 216 216 216z" />
-			<glyph glyph-name="itunes-note" unicode="" horiz-adv-x="384" d=" M381.9 59.8C375.5 32.4 354.7 17 326.8 11.8C302.3 7.3 281.9 6.2 262.3 22C238.4 42.1 238.1 75.4 259.6 96.4C276.6 112.6 300.5 115.9 336.4 122.2C342.4 123.3 347.6 124.7 352 129.6C358.4 136.8 356.4 133.7 356.4 292.8C356.4 304 350.9 307.1 339.4 305.1C331.2 303.7 153.7 270.5 153.7 270.5C143.5 268.3 140.3 265.3 140.3 253.8C140.3 19.1 141.4 29.9 137.8 14.3C133.6 -3.9 122.4 -17.6 107.6 -25.2C90.8 -34.5000000000001 60.4 -38.6 44.2 -35.6C1 -27.5 -14.2 22.4 15.1 51C32.1 67.2 56 70.5 91.9 76.8C97.9 77.9 103.1 79.3 107.5 84.2C117.6 95.7 109.3 340.8 112.7 354.4C113.5 359.6 115.7 364 119.8 367.3C124 370.8 131.6 372.8 133.2 372.8C337.2 411 362.1 415.9 365.6 415.9C377.1 416.7 383.7 409.9 383.7 398.3C383.9 53.8 384.8 72.3 381.9 59.8z" />
-			<glyph glyph-name="itunes" unicode="" horiz-adv-x="448" d=" M223.6 367.7C129 367.7 52.5 291 52.5 196.5S129 25.2 223.6 25.2S394.8 101.9 394.8 196.4C394.8 291 318.1 367.7 223.6 367.7zM303 127.7C299.8 114.1 289.5 106.5 275.7 103.9C263.6 101.7 253.5 101.1 243.8 108.9C232 118.9 231.8 135.3 242.4 145.7C250.8 153.7 262.7 155.3 280.4 158.5C283.4 159 286 159.7 288.1 162.2C291.3 165.8 290.3 164.2 290.3 243C290.3 248.6 287.6 250.1 281.9 249.1C277.9 248.4 190 232 190 232C185 230.9 183.3 229.4 183.3 223.7C183.3 107.6 183.8 112.9 182.1 105.2C180 96.2 174.5 89.4 167.2 85.6C158.9 80.9999999999999 143.8 78.9999999999999 135.8 80.4C114.4 84.4 106.9 109.1 121.4 123.3C129.8 131.3 141.7 132.9 159.4 136.1C162.4 136.6 165 137.3 167.1 139.8C172.1 145.5 168 266.8 169.7 273.5C170.1 276.0999999999999 171.2 278.3 173.2 279.9C175.3 281.5999999999999 179 282.5999999999999 179.9 282.5999999999999C280.9 301.5999999999999 293.2 304 295 304C300.7 304.4 304 301 304 295.3C303.8999999999999 124.6999999999999 304.3999999999999 133.9 303 127.6999999999999zM345.2 416H102.8C45.9 416 0 370.1 0 313.2V70.8C0 13.9 45.9 -32 102.8 -32H345.2C402.2 -32 448 13.9 448 70.8V313.2C448 370.1 402.1 416 345.2 416zM223.6 4C117.3 4 31.1 90.2 31.1 196.5S117.3 389 223.6 389S416.1 302.8 416.1 196.5S329.9 4 223.6 4z" />
-			<glyph glyph-name="jenkins" unicode="" horiz-adv-x="512" d=" M487.1 23C485.7 34.2 468.1 46.1 458.9 54.9C453.8 59.9 429.9000000000001 78 428.5000000000001 84.8C427.1000000000001 91.4 438.2000000000001 106.3 441.8000000000001 113.6999999999999C446.9000000000001 124.3999999999999 450.6000000000001 137.3999999999999 453.1000000000001 146.3C471.9000000000001 212.4 473.8000000000001 303.2 446.9000000000001 357.5C436.7000000000001 378.0999999999999 408.3000000000001 406.5 390.5000000000001 420C348.5000000000001 451.6999999999999 270.9000000000001 455.3 220.4000000000001 436.6C206.3000000000001 431.3999999999999 192.6000000000001 426.8 180.3000000000001 419.5C147.2000000000001 400.1 112.0000000000001 387 102.2000000000001 347.9C78.0000000000001 337.1 70.7000000000001 306.1 71.9000000000001 270.1C72.1000000000001 263.1 76.0000000000001 254.3 74.6000000000001 247.7C73.9000000000001 244.4 69.4000000000001 240.1 68.5000000000001 237.9C56.9000000000001 210.2 66.2000000000002 173.9 79.6000000000001 154.1999999999999C87.7000000000001 142.3 101.1000000000001 131.8 118.8000000000002 129C119.5000000000002 118.3999999999999 122.1000000000001 109.3 127.0000000000002 98.6C130.1000000000001 91.8 141.7000000000001 79.6 137.4000000000002 70.9C135.2000000000002 66.5 116.4000000000002 57.1 110.1000000000002 53.3C89 40.8 73.7 33 54.2 19C41.6 10 21.9 8.8 25 -12.1C27.1 -26.2 35.1 -43.7 39.7 -57.9C40.4 -59.9 41.1 -62.0000000000001 41.8 -63.9H463.8C468.7 -48.6 473.5 -33.0000000000001 478.4 -16.7C481.8 -5.3000000000001 488.6 11.1 487.1 22.9999999999999zM205.9 414.3C207.7 414.8 209.3 413.6 210.8 411.9C210.6 406.7 205.4 406.8 201.9 405.1C196.5 398.4 188.5 395.3 181.9 387.9C175.1 380.4 167.5 360.2 158.5 357.9C154 356.8 148.8 358.7 144.9 358.4C134.5 357.7 127.2 352.4 116.6 350.9C130.2 380.8 172.7 404.9 205.9 414.3zM101.1 320.7C114.6 335.6 133.2 344.8 155.9 346.6C167.6 316.9 147.5 281.6 155 249C157.3 239.1 165.2 223.6 152.6 223.3C152.9 251.6 117.8 269.6 91.3 252.9C89.5 274.4 86.4 304.6 101.1 320.7zM137.8 120.5C136.8 124.6 135.1 133.4 135.5 135.6C137.1 144.3 152.6 148.1 146.5 160.3C135.2 160.4 132.7 150.1 122.4 149C95.7 146.4 76.8 184.4 78 207.4C79 226.9 95.6 245.6 118.1 243.2C134.1 241.4 139.5 224 142.6 208.5C151.8 208 165.1 208.9 169.5 216.1C168.9 233.6 160.7 247.7 161.3 263.8C162.3 294.1 178.8 321.4 166.1 351.2000000000001C179.7 382.1 219.6 406.5 249.2 421.2000000000001C285.8 439.5 344.1 424.9000000000001 378.5 405.4000000000001C398.2 394.3 412.9 372.7000000000001 426.8 354.7000000000001C407.3 360.5 390.7 350.5 393.7 334.4000000000001C410 349.3 437.9 334.6 446.2 318C454.1 302.2000000000001 454 278.7000000000001 455.2 255.2000000000001C458.1 198.2000000000001 444.8 139.3000000000001 416.1 98.1C408.4 87.1 402 75.1 391.2 67.5C365.2 49.3 325.8 32.8 292 44.1C247.3 59.1 227 88.9 202.5 122.9C203.2 104.2000000000001 216.3 88.8 229.3 74.5000000000001C240.6 62.0000000000001 254.3 47.9 269 42.1000000000001C256.7 45.0000000000001 237.9 45.9000000000001 232.8 34.9000000000001C204.2 36.8000000000001 177.7 39.7000000000001 164.1 59.1000000000001C153.5 74.5000000000001 142.7 100.5000000000001 137.8 120.5000000000001zM359.8 -3.6C363.9000000000001 -0.6 370.9000000000001 -0.7 377.2 0C371.8 2.7 364.2 3.7 357.9 2.2C357.8 6.4 355.9 9 354.7 12.4C365.3 16.2 390.2 40.9 404.3 32.7C411 28.8 413.8 6.5 414.4000000000001 -4.3C414.8 -13.3 413.6 -22.3 409.9000000000001 -27.1C391.1 -26.5 374.1 -24.3 359.2000000000001 -20.1C360.1 -14 358.2000000000001 -8 359.8000000000001 -3.6zM342.6 16.4C325.8 15.6 316.6 17.6 304.3 27.2C304.5 28 305.7 27.7 305.8 28.6C323.8 20.6 346.6 31.9 364.8 33.4999999999999C356.9000000000001 28.3999999999999 350.2 21.8999999999999 342.6 16.3999999999999zM330.5 -16.8C328.9 -7.4 327 -4.8 327.7 3.4C352.7 20 357.4 -25.2 330.5 -16.8zM226 9.4C214.4 10.1 177.9 23.4 187.5 33.1C196.9 26.6 215 28.2 228.8 25.8C229.6 21.4 226 15.6 226 9.4zM57.7 -49.1C53.4 -36.4 48.5 -24 42.9 -12.2C73.7 11.6 108.2 36.6999999999999 145.1 51.3C147.9 52.4 168.3 25.9 171.3 23.6999999999999C187.8 11.9999999999999 208.3 2.6999999999999 227.5 -6.5000000000001C228.7 -15.3000000000001 231.4 -26.7 236.2 -42.0000000000001C236.9 -44.3000000000001 237.6 -46.7 238.4 -49.2H57.7zM298.3 -54.8H297.5C297.8 -54.6 298 -54.4 298.3 -54.3V-54.8zM305.8 -49.1C307.9000000000001 -47.7 310.1 -46.3 312.2 -44.8C313.3 -46.2 314.4 -47.6 315.4 -49.1H305.8zM320.9000000000001 -24.4C310.1 -31.7 300.3 -42.7 287.6 -49.6C281.6 -52.9 260.6 -61.3 254.2 -59.8C250.6 -59 250.3 -54.5 248.8 -50.3C245.7 -41.3 238.7 -26.9 238 -13.3C237.2 3.9 235.5 32.7 254 29.1C268.9 26.2 286.3 19.4 297.9 12.9999999999999C305 9.1 309 4.3999999999999 319.8 3.4999999999999C319.7 2.1 319.7 0.6999999999999 319.6 -0.8000000000001C313.7 -4.7 304.3 -4.6000000000001 297.8 -7.9000000000001C307.3 -8.3000000000001 314.8 -10.6000000000001 321.3 -13.8000000000001C321.2 -17.2 321 -20.8000000000001 320.9 -24.4000000000001zM374.3 -49.1H360.3C360.2 -45.9 357.5 -43.3 354.2 -43.3S348.3 -45.9 348.1 -49.1H330.7C327.9 -44.7 325 -40.5 321.8 -36.6C323.9000000000001 -34.4 325.8 -31.9 327.8 -29.7C336.8 -33.4 342.6 -24.8000000000001 349.5 -25.5000000000001C357.4 -26.3000000000001 363.7 -37.2 374.9 -36.5000000000001L374.3 -49.1000000000001zM383 -49.1C383.2 -45.1 383.4 -41.3 383.6 -37.6C399.2000000000001 -30.3 412.6 -38.9 419.3 -49.1H383zM466.4 -12.1C464.1 -23.3 460.6 -36.1 456.5 -49.2C456.3 -49.1 456.1 -49.1 455.9 -49.1H428C428.6 -48 429.2 -46.9 429.9 -45.8C427.3 -39.7 420.9 -37.1 419 -30.3C431.1 -7.6 425.5 63.1 394.8 48.2C399.1 54.5 410.4000000000001 59.7 415.6 67.5C428.6 57.1 436.4000000000001 47.2 448.8 36.1C455.6 30.1 468.8 22.8 470.2 13C471 7.5 467.6 -5.9 466.4 -12.1zM222.2 317.5C227.6 332.4 249.4 352.2 267.2 349.5C274.9 348.3 285.2 341.3 279.4 331.8C249.2 338.8 234.2 319.2 225 298.7C216.9 300.7 220.1 311.8 222.2 317.5zM406.3 254.4C414.5 258 428.7 255.1 435.9 259.7000000000001C431.7 271.2000000000001 425.6 281.1 426.6 297.4000000000001C427.1 297.4000000000001 427.6 297.4000000000001 428 297.3000000000001C434.8 283.1 440.7 268.1 449.3999999999999 255.6C443.7 242.1 405.7999999999999 230.2 406.2999999999999 254.4000000000001zM426.7 297.4zM309.5 251.7C302.7 262.6 290.5 284.2 295 297C301.5 285.1 303.6 272.6 312.8 263.7C316.9 259.7 325 254.7 321 243.5C320.1 240.8 313.2 234.9 309.3 233.8C294.9 229.5 261.4 232.9 272.7 250.9C284.5999999999999 250.2 300.5999999999999 243.1 309.5 251.7zM336.8 181.7C340.6 175.1 338.2 163 348.9 161.1C369.1 157.7 392.5 173.4 407 178.9C416 194.1 406.2 199.6 398.1 209.4C381.5 229.4 359.3 254.2 360.1 284.1C366.8 289 367.4000000000001 276.7 368.3 274.4C377 254.1 398.7 228.2 414.6 210.9C418.5 206.6 424.9000000000001 202.5 425.6 199.7C427.7000000000001 191.5 420.2000000000001 181.7 421.1 176.2C399.4000000000001 162.3 375.3 147.1 339.7000000000001 150.6C332.3000000000001 157.3 329.4000000000001 172 336.8000000000001 181.7zM135.5 190.9C128.6999999999999 194.8 127.0999999999999 211.9 119.0999999999999 212.3C107.6999999999999 213 109.7999999999999 190.1 109.7999999999999 176.8C101.9999999999999 183.9 100.5999999999999 205.9 106.2999999999999 217.1C99.7 220.3 96.7999999999999 213.5 93.2 211.2C97.9 245.3 143 227 135.5 190.9zM435.1 162.1C425 142.9 410.7 121.7 381.1 121.1C380.5 127.3 380 136.7 381.1 140.5C403.8 142.6999999999999 417.7 154.1999999999999 435.1 162.1zM293.2 149.7C312.0999999999999 139.8 346.8 138.7 372.5 139.5C373.8999999999999 133.9 373.8 126.9 373.8999999999999 120.1C340.8999999999999 118.3 301.8999999999999 126.5 293.2 149.7000000000001zM385.3999999999999 103C383.7 98.7 380.0999999999999 93.7 375.5999999999999 91.9C363.4999999999999 87 329.9999999999999 83.2 313.2 92.2C302.5 97.9 295.7 110.7 289.8 118.2C287 121.8 272.9 131.1 289.6 131.1C302.7 98.4 347.6 102.1 385.4 102.9999999999999z" />
-			<glyph glyph-name="joget" unicode="" horiz-adv-x="496" d=" M227.5 -20.7C218.5 -7.1 207.6 12.6 203.8 21.7C198.1 35.4 176.6 67.3 235 88.8C286.7 107.9 411.7 105.3 443.8 106.4C439.8 97.4 435.2 88.5 429.9000000000001 79.8C389.5000000000001 14.3 319.5 -21.7 247.9000000000001 -21.7C241.1 -21.7 234.3000000000001 -21.3000000000001 227.5000000000001 -20.7M66.1 304.1C128 404.6 259.6 435.8 360.1 373.9C434.9000000000001 327.8 471.3 243 459.4 161.2000000000001C434.5000000000001 161.7000000000001 280.1 164.8000000000001 229.1 166.1C173.6 167.5 147.4 186.9 170.6 214.3C193.8 241.7 221.7 255 239.5000000000001 265.5C257.4000000000001 276 266.8 299.2 215.9 295.2C87.3 286.5 48.6 195.9 37.6 155C28.8 204.7 37.5 257.7 66.1 304.1M36.9 322.1C-35 205.5 1.3 52.8 117.9 -19.1C234.5 -91 387.2 -54.7 459.1 61.8C531 178.4 494.7 331.2 378.1 403C337.6 428.1 292.6 440 248.2 440C165 440 83.8 398.1 36.9 322.1M281.3 211.7C249.8 191.2 216 180.4 216 180.4L385.5 182L432 205.4S435.6 214.9 412.9 220.9C390.2 226.9 355.9 209.6 326.2 193.7C296.5 177.9 295.1 185.5 295.1 185.5S335.3 213.6 345.8 220C356.3 226.4 377.7 234 359.2 244.6C356 246.4 352.5 247.3 348.8 247.3C331 247.3 307.3 228.6 281.3 211.7" />
-			<glyph glyph-name="joomla" unicode="" horiz-adv-x="448" d=" M0.6 355.9C0.6 389.2 27.4 416 60.4 416C90.4 416 114.9 394.1 119.6 365.8C152.2 373.4 186.7 365.2 216.1 335.8L171.8 291.5C151.3 312 129.2 307.8 116.4 295C102.1 280.7 102.1 257.1 116.4 242.8L215.9 143.3L171.9 99C84.2 186.2 122.2 148.7 72.1 198.7C45.3 225.2 37.1 263.5 47.3 297.6C20.4 303.4 0.6 327.3 0.6 355.9zM130.1 239.5L174.4 195.2C184.4 205.2 264.1 284.9 274.1 295C288.4 309.3 311.7 309.3 326 295C338.8 282.2 343 260 322.5 239.6L366.5 195.3C397.7 226.5 405 262.9 395.3999999999999 296.5C424.5999999999999 300.6 447.2999999999999 325.7 447.2999999999999 356C447.2999999999999 389.2 420.4999999999999 416.1 387.4999999999999 416.1C357.1999999999999 416.1 332.0999999999999 393.6 327.9999999999999 364.5C294.1999999999999 374.4 256.2999999999999 366 229.6999999999999 339.4C211.3999999999999 320.3 158.5999999999999 267.9 130.0999999999999 239.5zM396.4 87.3C404.6 120 395.5 155.8 370.1 181.2000000000001C358.3 193.4 375.1 176.5000000000001 270.6 280.9000000000001L226.3 236.6L326 136.9C340.3 122.6 340.3 99.3 326 85.0000000000001C313.2 72.2000000000001 291 68.0000000000001 270.6 88.5000000000001L226.6 44.2C254.2 14.0000000000001 294.6 5.4 329.3 16.2C334.8 -11.1999999999999 359 -31.9 388.2 -31.9C421.2 -31.9 448 -5.1 448 28.2C448 58.4 425.5 83.2000000000001 396.3999999999999 87.3000000000001zM312.1 140.4L268.1 184.7000000000001C181.1 98.3000000000001 217.7 134.3000000000001 168.4 84.9C154.1 70.6 130.8 70.6 116.5 84.9C103.4 98.3 99.6 120.2000000000001 119.7 140.3L75.7 184.6C45.5 154.4 37.7 119.4 46.2 86.3C19.5 80.3 0 56.4 0 28.1C0 -5.2 26.8 -32 59.8 -32C88.4 -32 112.3 -12.2 118.4 14.7C151.1 6.5 186.9 15.3 212.6 40.7C244.7 72.7 224.8 53.1 312.1 140.4z" />
-			<glyph glyph-name="js-square" unicode="" horiz-adv-x="512" d=" M432 416H80C53.5 416 32 394.5 32 368V16C32 -10.5 53.5 -32 80 -32H432C458.5 -32 480 -10.5 480 16V368C480 394.5 458.5 416 432 416zM275.8 66.6C275.8 23 250.2 3.1 212.9 3.1C179.2 3.1 159.7 20.5 149.7 41.6L184 62.3C190.6 50.6 196.6 40.7 211.1 40.7C224.9 40.7 233.7 46.1 233.7 67.2V210.3H275.8V66.6zM375.4 3.1C336.3 3.1 311 21.7 298.7 46.1L333 65.9C342 51.2 353.8 40.3 374.5 40.3C391.9 40.3 403.1 49 403.1 61.1C403.1 75.5 391.7000000000001 80.6 372.4000000000001 89.1L361.9000000000001 93.6C331.5000000000001 106.5 311.4000000000001 122.8 311.4000000000001 157.1C311.4000000000001 188.7000000000001 335.5000000000001 212.7 373.0000000000001 212.7C399.8000000000001 212.7 419.0000000000001 203.4 432.8000000000001 179L400 158C392.8 170.9 385 176 372.9 176C360.6 176 352.8 168.2 352.8 158C352.8 145.4 360.6 140.3 378.7 132.4L389.2 127.9C425 112.6 445.0999999999999 96.9 445.0999999999999 61.7C445.0999999999999 23.9 415.2999999999999 3.1 375.3999999999999 3.1z" />
-			<glyph glyph-name="js" unicode="" horiz-adv-x="448" d=" M0 416V-32H448V416H0zM243.8 66.6C243.8 23 218.2 3.1 180.9 3.1C147.2 3.1 127.7 20.5 117.7 41.6L152 62.3C158.6 50.6 164.6 40.7 179.1 40.7C192.9 40.7 201.7 46.1 201.7 67.2V210.3H243.8V66.6zM343.4 3.1C304.3 3.1 279 21.7 266.7 46.1L301 65.9C310 51.2 321.8 40.3 342.5 40.3C359.9 40.3 371.1 49 371.1 61.1C371.1 75.5 359.7000000000001 80.6 340.4000000000001 89.1L329.9000000000001 93.6C299.5000000000001 106.5 279.4000000000001 122.8 279.4000000000001 157.1C279.4000000000001 188.7000000000001 303.5000000000001 212.7 341.0000000000001 212.7C367.8000000000001 212.7 387.0000000000001 203.4 400.8000000000001 179L368 158C360.8 170.9 353 176 340.9 176C328.6 176 320.8 168.2 320.8 158C320.8 145.4 328.6 140.3 346.7 132.4L357.2 127.9C393 112.6 413.0999999999999 96.9 413.0999999999999 61.7C413.0999999999999 23.9 383.2999999999999 3.1 343.3999999999999 3.1z" />
-			<glyph glyph-name="jsfiddle" unicode="" horiz-adv-x="576" d=" M510.634 210.538C505.907 213.159 504.97 216.286 504.253 221.314C501.9010000000001 237.802 500.7140000000001 254.933 495.1560000000001 270.409C459.2610000000001 370.366 341.1660000000001 413.795 248.3070000000001 362.055C220.9370000000001 346.805 199.3360000000001 325.6860000000001 182.8140000000001 298.1520000000001C179.6300000000001 299.6600000000001 177.3560000000001 300.862 174.9900000000001 301.838C144.8880000000001 314.259 115.9410000000001 311.9590000000001 89.6590000000001 292.6710000000001C64.1280000000001 273.9340000000001 53.2370000000001 248.123 56.9830000000001 216.263C57.3380000000001 213.238 55.0160000000001 208.642 52.4690000000001 206.7180000000001C12.7570000000001 176.7260000000001 -3.5619999999999 128.653 10.5670000000001 82.1030000000001C24.3980000000001 36.5340000000001 68.0810000000001 2.3070000000001 116.1750000000001 0.6700000000001C146.4660000000001 -0.3609999999999 176.8120000000001 0.1240000000001 207.1340000000001 0.1310000000001C291.1750000000001 0.1520000000001 375.2240000000001 -0.3999999999999 459.2540000000001 0.6110000000001C511.9180000000001 1.2450000000001 555.3620000000001 37.4840000000001 567.4660000000001 87.9040000000001C579.0060000000001 135.9780000000001 556.3220000000001 185.2040000000001 510.6340000000001 210.5380000000001zM531.741 53.658C513.511 31.226 489.398 18.405 460.461 18.008C403.587 17.227 346.694 17.778 289.8090000000001 17.778C289.8090000000001 17.078 126.781 17.619 126.081 17.624C82.22 17.956 49.342 37.39 30.906 77.619C12.004 118.864 26.902 168.4670000000001 65.092 193.725C74.274 199.798 77.597 205.291 75.188 216.861C69.698 243.222 79.641 264.817 101.608 279.842C124.595 295.5650000000001 149.03 295.988 173.642 282.925C183.911 277.475 188.249 271.361 195.84 285.452C210.0620000000001 311.851 230.3970000000001 332.179 256.511 346.746C353.971 401.112 484.881 339.178 486.751 214.049C486.873 205.899 489.163 201.621 496.599 198.155C554.1590000000001 171.326 571.0550000000001 102.033 531.7410000000001 53.658zM443.952 134.1570000000001C438.104 103.0000000000001 409.33 79.061 377.286 79.062C360.3330000000001 79.063 345.228 85.607 333.207 96.767C305.51 122.48 262.066 171.747 237.27 190.154C217.214 205.042 195.28 202.487 176.998 186.372C127.002 142.3010000000001 192.857 64.597 244.061 109.184C248.609 113.144 251.901 118.727 256.805 122.028C264.989 127.537 277.571 122.912 269.973 111.406C252.615 85.122 220.643 73.209 191.11 82.105C162.213 90.809 142.27 118.073 142.484 152.284C143.709 174.769 154.848 195.344 177.898 208.249C200.473 220.887 224.267 221.395 244.889 205.775C295.68 167.3 320.467 124.03 352.185 104.53C376.743 89.431 406.439 97.167 421.008 122.036C449.838 171.245 386.416 227.052 342.14 185.4959999999999C338.151 181.7519999999999 335.223 176.5639999999999 330.73 173.7759999999999C319.755 166.9649999999999 313.397 177.8889999999999 317.921 184.1289999999999C338.6239999999999 212.6829999999999 368.385 224.5689999999999 401.192 212.3429999999999C432.6209999999999 200.6289999999999 450.3 167.9769999999999 443.952 134.1569999999999z" />
-			<glyph glyph-name="keycdn" unicode="" horiz-adv-x="512" d=" M63.8 38.7L124.3 97.7C156.4 54.9 195.4 31.7 250.9 30.3C281.4 29.6 311.2 37.3 337.3 52.6999999999999C342.4 47.3999999999999 355.8 33.1999999999999 358.2 30.6999999999999C326 9.9999999999999 288.5999999999999 -0.4000000000001 250.1 0.4999999999999C206.8 1.6 165.5 17.1999999999999 132.3999999999999 44.8999999999999C132.6999999999999 45.4999999999999 94.1999999999999 7.3999999999999 93.7999999999999 6.9999999999999C103.2999999999999 -22.8000000000001 80.6999999999999 -55.4 47.4999999999999 -55.4C20.7 -55.3 0 -33.7 0 -6.9C0 27.4 33.1 49.7 63.8 38.7zM418.7 291.1C437.8 259.8 448.3 223.7 447.4 187.1C446.3 142.3 428.4 99.6 398.8 66.1C399.1 65.8 422.6 40.9 422.9 40.6C432.5 41.9 442.1 38.6 448.8 31.5C460.1 19.5 459.6999999999999 0.6 447.7 -10.9C435.7 -22.2 416.8 -21.8 405.3 -9.8C398.6 -2.8 395.9 7.0000000000001 397.7 16.5000000000001C372.8 43.1000000000001 353.3 63.7000000000001 353.3 63.7000000000001C396 97.8000000000001 416.6 143.3000000000001 417.7 187.9C418.3999999999999 216.8000000000001 410.5 245.1 396.5999999999999 270.1L418.7 291.1zM104 394.9C110.7 387.9 113.4 378.1 111.6 368.6L157.5 320.5C152.8 316.7 144.2 310.1 134.7 299.2C109.3 270.7 95.1 234.4 94 196.3C93.3 167.4 100.1 139.1 114 113.9L92 92.4C72.7 124 63.1 160.1 64.2 197.1C65.2 241.7 82.5 284.7 111.7 318.2L86.4 344.6C76.8 343.3 67.2 346.6 60.5 353.7C49.2 365.7 49.6 384.6 61.6 396.1C73.5 407.3 92.2 407 104 394.9zM464.9 440C490.9 440 512 417.6 512 391.7S490.9 344 464.9 344C458.6 343.9 450.9 345.1 449 345.8L386.1 286.1C353.4000000000001 329.7 309.4000000000001 352 259.2000000000001 353.3C228.7000000000001 354 198.9 346.5 173.0000000000001 330.9L151.9000000000001 352.9C184.1 373.7 221.5 384 260 383.1C303.3 382 344.6 366.4 377.7 338.5L418.8 377.1C417.3 381.8 416.6 386.7 416.6 391.6C416.5 418.3 438.9 440 464.9 440zM256.7 334.6C262.2 334.6 267.6 334.2 273.1 333.5C351.2 323.7 406.5 252.4 396.9 174.4C387.1 96.3 315.8 41 237.8 50.6C159.7 60.4 104.4 131.6999999999999 114 209.8C123.3 282.2 184.1 334.4 256.7 334.6zM197.7 215.2C198.3 192.5 209.9 173.4 230.1 163L219.1 111.3H292.8L281.8 163C301.9000000000001 173.9 313.9000000000001 192 314.2 215.2C313.8 248 288.4 272.7 255.9 273.5C223.8 272.7 198.6 248.7 197.7 215.2zM256 288" />
-			<glyph glyph-name="kickstarter-k" unicode="" horiz-adv-x="384" d=" M147.3 333.6C147.3 389.8 114.8 416 73.9 416C26.2 416 0 379.8 0 334.6V51.6C0 4.3 25.3 -31.8 74.9 -31.8C114.7 -31.8 147.3 -6.1999999999999 147.3 51.6V128.1L259.4 -10.2C282.1 -37.4 331.5 -40.9 362.6 -10.2C389.6 17.4 389.9 57.2000000000001 370 82L279.2 196.8L354.0999999999999 304.2000000000001C371.4999999999999 328.9000000000001 371.5999999999999 367.3 343.7 394C313.3999999999999 423 261.3 425.6 230.1 381.2000000000001L147.3 263V333.6z" />
-			<glyph glyph-name="kickstarter" unicode="" horiz-adv-x="448" d=" M400 -32H48C21.6 -32 0 -10.4 0 16V368C0 394.4 21.6 416 48 416H400C426.4 416 448 394.4 448 368V16C448 -10.4 426.4 -32 400 -32zM199.6 269.5C199.6 300.2 182 314.6 159.9 314.6C134.1 314.6 119.9 294.8 119.9 270.1V115.3C119.9 89.4999999999999 133.6 69.6999999999999 160.4 69.6999999999999C181.9 69.6999999999999 199.6 83.6999999999999 199.6 115.3V157.1L260.2 81.4C272.5 66.5 299.2 64.6 316 81.4C330.6 96.5 330.8 118.2 320 131.8L270.9 194.6L311.4 253.3C320.8 266.8 320.9 287.8 305.8 302.4C289.4 318.3 261.2 319.7 244.4 295.4L199.6 230.7V269.5z" />
-			<glyph glyph-name="korvue" unicode="" horiz-adv-x="446" d=" M386.5 414H59.5C26.8 414 0 387.2 0 354.5V27.4C0 -5.2 26.8 -32 59.5 -32H386.6C419.6 -32 446.1 -5.2 446.1 27.5V354.5C446 387.2 419.2 414 386.5 414zM87.1 327.2H183.1V211.2L244.9 327.2H355.8L274.6 195.2H87.1V327.2zM248.9 55.1L183.2 168.6999999999999V55.0999999999999H87.2V185.9H278.7L367.3 55.1H248.9z" />
-			<glyph glyph-name="laravel" unicode="" horiz-adv-x="640" d=" M637.5 243.3C633.3 248.1 574.7 321.4 564.4 333.8C554.1 346.2000000000001 549 344 542.6999999999999 343.1S462.1999999999999 329.7 453.5999999999999 328.3C444.9999999999999 326.8 439.5999999999999 323.4 444.8999999999999 316C449.5999999999999 309.4 498.2999999999999 240.3 509.0999999999999 225.1L315.3999999999999 178.7L161.2 436.3C155.1 445.4 153.8 448.6 139.8 447.9C125.9 447.3 19 438.4 11.4 437.8C3.8 437.2 -4.6 433.8 3 415.8S132 136.2 135.4 128.6C138.8 121 147.6 108.6 168.2 113.6C189.3 118.7000000000001 262.5 137.8 302.5 148.3C323.6 110 366.7 32.4 374.7 21.3C385.3 6.4 392.7 8.9 409 13.9C421.8 17.8 608.6 85 617 88.4C625.4 91.9 630.6 94.3 624.9 102.8C620.6999999999999 109 571.4 175 545.6 209.6C563.3000000000001 214.3 626.2 231.0000000000001 632.9 232.9000000000001C640.6999999999999 234.7000000000001 641.8 238.6 637.5 243.3000000000001zM285.3 171.3C283 170.8 174.5 144.8 168.7 143.5C162.9 142.2 162.9 142.8 162.2 144.8C161.5 146.8 33.2 411.5 31.4 414.8C29.6 418.1 29.7 420.7 31.4 420.7S133.9 429.7 137.4 429.9000000000001C141 430.1 140.6 429.3 141.9 427.1C141.9 427.1 284.1 181.7 286.5 177.4C289.1 173.1 287.6 171.8 285.3 171.3zM591.3 114C593 111.3 594.8 109.5 589.3 107.6C583.9 105.6 405.6 45.5 402.2 44C398.7 42.5 396 42 391.5999999999999 48.5C387.0999999999999 54.9 329.2 155.3 329.2 155.3L518 204.3C522.7 205.8 524.2 206.8 527.2 202.1C530.1 197.4 589.6 116.7000000000001 591.3000000000001 114zM603.4 248.1C599.1999999999999 247.2 529.8 230 529.8 230L473.1 307.8C471.4999999999999 310 470.2 312.3 474.2 312.8S542.6 325 545.5 325.6C548.4 326.3 550.9 327.1 554.5 322.2C558.1 317.3 607.1 255.2 609 252.8C610.8 250.5 607.6 249 603.4 248.1z" />
-			<glyph glyph-name="lastfm-square" unicode="" horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM307.8 103.1C244.4 103.1 222.4 131.7000000000001 210.7 167.2000000000001C194.4 218.2000000000001 189.2 251.5000000000001 147.7 251.5000000000001C125.3 251.5000000000001 102.6 235.4000000000001 102.6 190.3000000000001C102.6 155.1000000000001 120.6 133.1000000000001 145.9 133.1000000000001C174.5 133.1000000000001 193.5 154.4000000000001 193.5 154.4000000000001L205.2 122.5000000000001S185.4 103.1000000000001 144 103.1000000000001C92.7 103.1000000000001 64.1 133.2000000000002 64.1 188.9000000000002C64.1 246.8000000000002 92.7 280.9000000000002 146.6 280.9000000000002C220.1 280.9000000000002 227.4 239.5000000000002 247.4 179.0000000000001C256.2 152.2000000000001 271.6 132.8000000000001 308.6 132.8000000000001C333.5 132.8000000000001 346.7 138.3000000000001 346.7 151.9000000000002C346.7 171.8000000000001 324.9 173.9000000000002 296.8 180.5000000000002C266.4000000000001 187.8000000000002 254.3 203.6000000000002 254.3 228.5000000000002C254.3 268.5000000000002 286.6 280.9000000000002 319.5 280.9000000000002C356.9 280.9000000000002 379.6 267.3000000000002 382.5 234.3000000000002L345.8 229.9000000000002C344.3 245.7000000000002 334.8 252.3000000000002 317.2 252.3000000000002C301.1 252.3000000000002 291.2 245.0000000000002 291.2 232.5000000000002C291.2 221.5000000000002 296 214.9000000000002 312.1 211.2000000000002C344.8 204.1000000000002 383.9 199.2000000000002 383.9 153.7000000000002C384 117.0000000000002 353.2 103.1000000000001 307.8 103.1000000000001z" />
-			<glyph glyph-name="lastfm" unicode="" horiz-adv-x="512" d=" M225.8 80.9L207 131.9S176.5 97.9 130.8 97.9C90.3 97.9 61.6 133.1 61.6 189.4C61.6 261.5 98 287.3 133.7 287.3C200.2 287.3 208.5 234 234.6 152.4C253.4 95.5 288.6 49.8 390 49.8C462.7 49.8 512 72.1 512 130.6999999999999C512 203.5999999999999 449.3 211.2999999999999 397 222.7999999999999C371.2 228.7 363.6 239.2 363.6 256.8C363.6 276.7 379.4000000000001 288.4999999999999 405.2000000000001 288.4999999999999C433.4000000000001 288.4999999999999 448.6 277.8999999999999 450.9 252.7L509.5000000000001 259.7C504.8000000000001 312.5 468.4 334.2 408.6 334.2C355.8 334.2 304.2000000000001 314.3 304.2000000000001 250.3C304.2000000000001 210.3999999999999 323.6 185.1999999999999 372.2000000000001 173.5C417.1 162.8999999999999 452.0000000000001 159.6999999999999 452.0000000000001 127.8C452.0000000000001 106.1 430.9000000000001 97.3 391.0000000000001 97.3C331.8000000000001 97.3 307.1 128.4 293.1 171.1999999999999C261.1 268 249.5000000000001 334.2 131.8 334.2C45.7 334.2 0 279.7 0 187C0 97.9 45.7 49.8 127.9 49.8C194.1 49.8 225.8 80.9 225.8 80.9z" />
-			<glyph glyph-name="leanpub" unicode="" horiz-adv-x="576" d=" M386.539 336.515L401.635 87.56L390.656 87.835C354.424 88.659 319.016 79.052 287.999 59.838C256.983 79.052 221.575 87.835 185.3420000000001 87.835C139.7780000000001 87.835 103.2720000000001 77.13 61.826 60.112L93.117 318.4C121.663 330.203 154.601 336.515 185.343 336.515C226.516 336.515 259.1790000000001 323.3400000000001 288 293.971C315.723 322.242 347.013 335.692 386.539 336.515zM569.07 0C543.5440000000001 0 521.585 5.215 498.528 15.645C464.218 31.29 428.5350000000001 40.623 390.6570000000001 40.623C351.6800000000001 40.623 315.7230000000001 27.722 288.0000000000001 0C260.2770000000001 27.723 224.3200000000001 40.623 185.3430000000001 40.623C147.4650000000001 40.623 111.7820000000001 31.29 77.4720000000001 15.645C55.239 5.764 32.731 0 8.303 0H6.93L49.475 349.141C88.726 371.374 136.486 384 181.775 384C218.83 384 256.984 376.315 288 354.905C319.016 376.315 357.17 384 394.225 384C439.514 384 487.274 371.374 526.5250000000001 349.141L569.07 0zM525.702 44.741L491.666 324.987C460.924 338.986 424.418 346.397 390.657 346.397C352.229 346.397 316.272 334.32 288 307.695C259.728 334.32 223.772 346.397 185.343 346.397C151.582 346.397 115.076 338.986 84.334 324.987L50.298 44.741C97.509 64.228 133.192 78.227 185.343 78.227C222.947 78.227 256.16 68.621 288 48.583C319.84 68.621 353.052 78.227 390.657 78.227C442.808 78.227 478.491 64.228 525.702 44.741z" />
-			<glyph glyph-name="less" unicode="" horiz-adv-x="640" d=" M612.7 229C612.7 249.5 615.9000000000001 261.6 615.9000000000001 283.6C615.9000000000001 317.8 603.3000000000001 328.8 575.4000000000001 328.8H554.9000000000001V304.6H561.2C575.4000000000001 304.6 578.5 299.9 578.5 282.5C578.5 266.2 576.9 249.9 576.9 231C576.9 206.8 584.8 197.4 600.5 193.7V192.1C584.7 188.4 576.9 179 576.9 154.8C576.9 135.9 578.5 120.6 578.5 103.3C578.5 85.4 574.8 80.7 561.2 80.7V80.2H554.9000000000001V55H575.4000000000001C603.2 55 615.9000000000001 66 615.9000000000001 100.2C615.9000000000001 122.8 612.7 134.4 612.7 154.8C612.7 165.8 619.5 177.4 640 178.4V205.7000000000001C619.5 206.4 612.7 218.0000000000001 612.7 229.0000000000001zM507.1 197C491.3 203.3 476.6 207 476.6 217.5C476.6 225.4 482.9 230.1 494.5 230.1S516.6 225.4 528.1 217L549.1 244.8C536 254.8 518.1 265.3 493.9 265.3C458.2 265.3 434.0000000000001 244.8 434.0000000000001 215.9C434.0000000000001 190.2 456.6000000000001 177 475.5000000000001 169.7C491.8000000000001 163.4 507.6000000000001 158.1 507.6000000000001 147.6C507.6000000000001 139.7 501.3000000000001 134.5 487.1000000000001 134.5C474.0000000000001 134.5 460.8000000000001 139.8 446.6000000000001 150.8L425.6000000000001 120.3C441.4000000000001 107.1999999999999 465.5000000000001 98.1999999999999 485.5000000000001 98.1999999999999C527.5 98.1999999999999 550.1 120.3 550.1 149.1999999999999S527.6 190.1999999999999 507.1 197zM148.2000000000001 137.6C144.5000000000001 137.6 139.8000000000001 140.8 139.8000000000001 150.7000000000001V328.9H65.2C36.8 328.9 24.2 317.9 24.2 283.7C24.2 261.1 27.4 248.5 27.4 229.1C27.4 218.1 20.6 206.5 0.1 205.5V178.2C20.6 177.7 27.4 166.1 27.4 155.1C27.4 135.7 24.2 124.1 24.2 101.4999999999999C24.2 67.3 36.8 56.3 64.7 56.3H85.2V80.4999999999999H78.9C65.8 80.4999999999999 61.6 85.8 61.6 103.1S63.2 135.2 63.2 154.6C63.2 178.8 55.3 188.2 39.6 191.9V193.5C55.4 197.2 63.2 206.6 63.2 230.8C63.2 249.7 61.6 265 61.6 282.3S65.3 304.4 78.9 304.4H93V153.5999999999999C93 121.4999999999999 104 100.4999999999999 136.1 100.4999999999999C146.1 100.4999999999999 154 102.0999999999999 159.7 104.1999999999999L154.4 138.3999999999999C151.3 137.5999999999999 149.8 137.5999999999999 148.2 137.5999999999999zM379.9 197C363.6 203.3 348.9 207 348.9 217.5C348.9 225.4 355.2 230.1 366.8 230.1C378.4 230.1 388.9 225.4 400.4 217L421.4 244.8C408.3 254.8 390.4 265.3 366.2 265.3C330.5 265.3 306.3 244.8 306.3 215.9C306.3 190.2 328.9000000000001 177 347.8 169.7C364.1 163.4 379.9000000000001 158.1 379.9000000000001 147.6C379.9000000000001 139.7 373.6 134.5 359.4000000000001 134.5C346.3 134.5 333.1 139.8 318.9000000000001 150.8L298.4000000000001 120.3C314.2000000000001 107.1999999999999 338.3 98.1999999999999 358.3 98.1999999999999C400.3 98.1999999999999 422.9 120.3 422.9 149.1999999999999C423 178.0999999999999 400.4 190.1999999999999 379.9 197zM224.9 265.8C186.5 265.8 149.8 233.7 150.8 183.3C150.8 131.3 185 100.8 230.1 100.8C249 100.8 270 107.6 286.3 118.7L270.5 146.5C258.8999999999999 139.7 247.9 136.5 236.3 136.5C215.3 136.5 199 146.5 194.8 170.7H290C290.5 174.4 291.6 181.7 291.6 190.1C292.2000000000001 232.7 269 265.8 224.9 265.8zM194.9 199.6C198.1 220.6 210.7 230.6 225.4 230.6C244.3 230.6 251.7 217.5 251.7 199.6H194.9z" />
-			<glyph glyph-name="line" unicode="" horiz-adv-x="448" d=" M272.1 243.8V172.7000000000001C272.1 170.9 270.7000000000001 169.5000000000001 268.9000000000001 169.5000000000001H257.5000000000001C256.4000000000001 169.5000000000001 255.4000000000001 170.1000000000001 254.9000000000001 170.8000000000001L222.3000000000001 214.8000000000001V172.6000000000001C222.3000000000001 170.8000000000001 220.9000000000001 169.4000000000001 219.1000000000001 169.4000000000001H207.7000000000001C205.9000000000001 169.4000000000001 204.5000000000001 170.8000000000001 204.5000000000001 172.6000000000001V243.7000000000001C204.5000000000001 245.5000000000001 205.9000000000001 246.9000000000001 207.7000000000001 246.9000000000001H219C220 246.9000000000001 221.1 246.4000000000001 221.6 245.5000000000001L254.2 201.5000000000001V243.7000000000001C254.2 245.5000000000001 255.6 246.9000000000001 257.4 246.9000000000001H268.8C270.6 247.0000000000001 272.1 245.5000000000001 272.1 243.8000000000001zM190.1 247H178.7C176.9 247 175.5 245.6 175.5 243.8V172.7000000000001C175.5 170.9 176.9 169.5000000000001 178.7 169.5000000000001H190.1C191.9 169.5000000000001 193.3 170.9 193.3 172.7000000000001V243.8000000000001C193.3 245.5000000000001 191.9 247.0000000000001 190.1 247.0000000000001zM162.6 187.4H131.5V243.8C131.5 245.6 130.1 247 128.3000000000001 247H116.9C115.1 247 113.7 245.6 113.7 243.8V172.7C113.7 171.8 114 171.1 114.6 170.5C115.2 170 115.9 169.6 116.8000000000001 169.6H162.5000000000001C164.3000000000001 169.6 165.7000000000001 171 165.7000000000001 172.8V184.2C165.7000000000001 185.9 164.3000000000001 187.4 162.6000000000001 187.4zM332.1 247H286.4000000000001C284.7000000000001 247 283.2000000000001 245.6 283.2000000000001 243.8V172.7000000000001C283.2000000000001 171.0000000000001 284.6 169.5000000000001 286.4000000000001 169.5000000000001H332.1C333.9000000000001 169.5000000000001 335.3 170.9 335.3 172.7000000000001V184.1C335.3 185.9 333.9000000000001 187.3 332.1 187.3H301V199.3H332.1C333.9000000000001 199.3 335.3 200.7 335.3 202.5V214C335.3 215.8 333.9000000000001 217.2 332.1 217.2H301V229.2H332.1C333.9000000000001 229.2 335.3 230.6 335.3 232.4V243.8C335.2 245.5 333.8 247 332.1 247zM448 334.3V49C447.9 4.2 411.2 -32.1 366.3 -32H81C36.2 -31.9 -0.1 4.9 0 49.7V335C0.1 379.8 36.9 416.1 81.7 416H367C411.8 415.9 448.1 379.2 448 334.3zM386.4 211.7C386.4 284.7 313.2 344.1 223.3 344.1C133.4 344.1 60.2 284.7 60.2 211.7C60.2 146.3 118.2 91.5 196.6 81.1C215.7 77 213.5 70 209.2 44.3C208.5 40.2 205.9 28.2 223.3 35.5C240.7 42.8 317.2 90.8 351.5 130.2C375.1 156.2 386.4 182.5 386.4 211.7z" />
-			<glyph glyph-name="linkedin-in" unicode="" horiz-adv-x="448" d=" M100.3 -32H7.4V267.1H100.3V-32zM53.8 307.9C24.1 307.9 0 332.5 0 362.2C0 391.9 24.1 416 53.8 416C83.5 416 107.6 391.9 107.6 362.2C107.6 332.5 83.5 307.9 53.8 307.9zM448 -32H355.3V113.6C355.3 148.3 354.6 192.8 307 192.8C258.7 192.8 251.3 155.1 251.3 116.1V-32H158.5V267.1H247.6V226.3H248.9C261.3 249.8 291.6 274.6 336.8 274.6C430.8 274.6 448.1 212.7 448.1 132.3V-32z" />
-			<glyph glyph-name="linkedin" unicode="" horiz-adv-x="448" d=" M416 416H31.9C14.3 416 0 401.5 0 383.7V0.3C0 -17.5 14.3 -32 31.9 -32H416C433.6 -32 448 -17.5 448 0.3V383.7C448 401.5 433.6 416 416 416zM135.4 32H69V245.8H135.5V32zM102.2 275C80.9 275 63.7 292.3 63.7 313.5S80.9 352 102.2 352C123.4 352 140.7 334.7 140.7 313.5C140.7 292.2 123.5 275 102.2 275zM384.3 32H317.9V136C317.9 160.8 317.4 192.7 283.4 192.7C248.8 192.7 243.5 165.7 243.5 137.8V32H177.1V245.8H240.8V216.6H241.7C250.6 233.4000000000001 272.3 251.1 304.6 251.1C371.8 251.1 384.3 206.8 384.3 149.2000000000001V32z" />
-			<glyph glyph-name="linode" unicode="" horiz-adv-x="448" d=" M437.4 221.7C437.1 222.6 436.5 223.1 436 223.7L366 262.3C365.1 262.9 364 262.9 362.9 262.3L304 226.3C303.1 225.7 302.6 224.6 302.6 223.7L301.7000000000001 192.3L277.7000000000001 208.3C276.8000000000001 208.9 275.4000000000001 208.9 274.6 208.3L240 187.1L238.6 222.2C238.6 223.1 238 224.2 237.2 224.5L201.2 248.8000000000001L234.9 266.2000000000001C236 266.8000000000001 236.6 267.9000000000001 236.6 269.1L230.9 401.4000000000001C230.9 402.3000000000001 230 403.4000000000001 229.2 404.0000000000001L138.6 447.7C137.7 448 136.9 448 136.3 448L12.6 409.4C11.2 408.8 10.3 407.4 10.6 405.7L38 272.6C38.9 269.2 72 245.2 76.6 241.7L49.7 228.8C48.3 227.9 47.7 226.5 48 225.4L68.6 125.1C69.2 122.2 92.3 101.9999999999999 95.7 98.8L78.3 88.1999999999999C77.4 87.5999999999999 76.6 86.1999999999999 76.9 85.0999999999999C78.3 77.9999999999999 92.3 7.3999999999999 93.8 5.9999999999999L158.9 -63.1000000000001C159.5 -63.7000000000002 160.3 -63.7000000000002 161.2 -64.0000000000001C161.8 -64.0000000000001 162.3 -63.7000000000001 162.9 -63.4000000000001L246.6 3.4999999999999C247.5 4.0999999999999 247.7 4.8999999999999 247.7 5.7999999999999L245.7 51.7999999999999L273.7 28.0999999999999C274.8 27.1999999999999 276.5999999999999 27.1999999999999 277.7 28.0999999999999L344.5999999999999 81.4999999999999C345.4999999999999 82.0999999999999 345.7 82.8999999999999 345.7 83.7999999999999L348 117.1999999999999L368.3 103.1999999999999C369.4 102.2999999999999 370.9 102.2999999999999 372 103.1999999999999L426.6 146.8999999999999C427.2 147.1999999999999 427.7 147.9999999999999 427.7 148.8999999999999C428.6 155.3999999999999 438 219.6999999999999 437.4 221.6999999999999zM232.6 216.9L236.6 124.3L146 63.1L132 159.6999999999999L232.6 216.8999999999999zM224.9 396.9L230.3 270.9L123.7 215.5L104 350.3L224.9 396.9zM44 274.9L18 400L97.7 350.6L117.1 217.7L44 274.9zM74.6 127.1L55.7 218L125.7 159.7L139.4 66.3L74.6 127.1zM98.9 9.4L85.2 76.5L146.9 15.6L156.6 -51.8L98.9 9.4zM163.4 -55.1L152.8 15.8000000000001L238.5 77.2000000000001L241.6 7.2L163.4 -55.1zM245.4 60C245.4 63.4 246.3 82.9 243.4 85.1L219.1 105.1L241.4 120C243.7 121.7 242.5 125.7 242.5 128L271.9 105.4L272.5 37.1L245.4 59.9999999999999zM339.7 85.4L278.8 36.8L278.2 105.4L343.9 152.3L339.7 85.4zM367.4 111.1L348.3 124.5L350.3 158.5C350.6 159.3999999999999 350 160.5 349.2 161.1L308 188.3L308.6 218.3L373.2000000000001 177.7L367.4000000000001 111.1zM422 150.9L373.7 112.6L379.4 177.6999999999999L430.5 214.2999999999999L422 150.8999999999999z" />
-			<glyph glyph-name="linux" unicode="ï…¼" horiz-adv-x="448" d=" M196.1 324.4C195.9 325.8 198 326.7 199.3 327.3C201 328 203.2 328.3 204.8 327.4C205.2 327.2 205.6 326.7 205.4 326.3C205 325.1 203 325.3 201.9 324.7000000000001C200.9 324.2000000000001 200.1 323 198.9 323C197.9 322.9000000000001 196.2 323.4000000000001 196.1 324.4000000000001zM220.8 324.7C221.8 324.2 222.6 323 223.8 323C224.9 323 226.6 323.4 226.7 324.5C226.9 325.9 224.8 326.8 223.5 327.4C221.8 328.1 219.6 328.4 218 327.5C217.6 327.3 217.2 326.8 217.4 326.4C217.7 325.1 219.7 325.3 220.8 324.7zM435.5 14.5C435 6.3 429 0.7 421.6 -3.8C406.7000000000001 -12.8 384.3 -19.6 370.7000000000001 -36L368.1 -33.8L370.7000000000001 -36C356.5000000000001 -52.9 339.0000000000001 -62.6 322.4000000000001 -63.9C305.9000000000001 -65.1999999999999 290.4000000000001 -57.6 282.1 -40.9V-40.8C281 -38.6999999999999 280.2000000000001 -36.4 279.6 -34.1C258.1 -35.3 239.4000000000001 -28.8 224.5 -29.9999999999999C202.5 -31.1999999999999 188.7000000000001 -36.4999999999999 176.2000000000001 -36.6C171.4 -47.2 161.9 -54.2 150.3000000000001 -56.7999999999999C134.3000000000001 -60.4999999999999 114.2000000000001 -56.7999999999999 94.4 -46.4L96 -43.4L94.4 -46.4C75.9 -36.6 52.4 -37.5 35.1 -33.9C26.4 -32.1 18.8 -28.9 15 -21.6C11.3 -14.3 12 -4.3 17.2 10.1C18.9 15.2 17.6 22.8 16.4 30.9C15.8 34.8 15.2 38.8 15.2 42.7C15.2 47.0000000000001 15.9 51.2 18 55.1C22.5 63.6 29.8 67.2000000000001 36.5 69.6C43.2 72 49.3 73.6 53.5 77.9C58.7 83.4 63.6 92.3 70.1 98.1C67.5 115.3 70.3 133.5 76.3 151.4C88.9 189.3 115.5000000000001 225.6 134.4 248.1C150.5 271 155.2000000000001 289.4000000000001 156.9 312.8C158 344.6 132.4 448.2 234.8 448C315.7000000000001 447.9 311.1 362.6 310.6 316.7C310.3 286.6 326.9000000000001 266.2 344 244.7C359.2 226.7 379.1 200.4 390.5 170.3C399.8 145.6999999999999 403.4 118.5 394.2 91.1999999999999C395.6 90.6999999999999 397 89.9999999999999 398.3 89.1999999999999C399.7 88.3999999999999 401 87.3999999999999 402.3 86.3C408.9000000000001 80.6999999999999 411 71.9999999999999 412.8 63.9C414.7 55.8 416.4000000000001 48.2 420 44.2C431.1 31.8 435.9 22.7 435.5 14.5zM220.8 338.9C224.4 338 229.7 336.5 233.8 334.5C231.7 346.7 238.3 358 245.6 357.5C254.5000000000001 357.2 259.5 342 254.7 330.2C253.9 328.3 251.9 326.8 250.8 325.6C257.5 323.3 261.8 321.5 263.4000000000001 320.7C271.3 330.2 274.2000000000001 346.9 267.7000000000001 361.1C257.9000000000001 382.5 233.5000000000001 382.9 223.7000000000001 360.7C220.5000000000001 353.5 219.8000000000001 345.8 220.8000000000001 338.9zM174.6 320.1C182.4 325.8 181.5 324.8 180.5 325.6C172.5 332.5 173.9 353 182.3000000000001 353.7000000000001C188.6000000000001 354.2000000000001 193.1000000000001 343 191.9 334.1C195 336.2000000000001 198.6 337.7000000000001 202.1 338.7000000000001C203.8 358 193.1 372.2000000000001 183 372.2000000000001C164.1 372.2000000000001 159 334.7000000000001 174.6 320.1zM165.2 299.2000000000001C166.7 294.3 171.3 288.7000000000001 179.9 283.9C187.7 279.3 191.9 272.4 199.9 268.9C202.5 267.8 205.6 267 209.5 266.8C227.9 265.7000000000001 236.6 278.1 247.7 281.7000000000001C259.4 285.4 267.8 292.7000000000001 270.4 299.8C273.6 308.3 268.3 314.5 259.9 318C248.6 322.9 243.6 323.2 237.3 327.3C227 333.9 218.5 336.2 211.4 336.2C197 336.2 188.2 326.4 183.5 322C183 321.5 175.6 316.1 169.4 311.5C165.2 308.2 163.8 304.1 165.2 299.2zM131.7 46.4L112.1 82C105.3 91.2 98.3 96.8 90.2 98C82.5 99.2 77.6 96.6 72.5 91.1C67.7 86 63.7 78.8 58.2 73.1C50.4 66.6 48.9 66.9 38.6 63.2000000000001C32.3 61.0000000000001 27.3 58.6 23.8 51.9C21.1 46.9 21.7 39.7 22.9 31.9C24.1 24.0000000000001 25.9 15.6 23.5 8.0000000000001V7.8000000000001C18.5 -5.8999999999999 18.5 -13.8999999999999 20.9 -18.5999999999999C28.8 -33.9999999999999 67.5 -24.6999999999999 97.4 -40.4999999999999C128.8 -56.8999999999999 170 -57.5999999999999 172.7 -22.4999999999999C174.8 -1.9999999999999 141.2 26.5000000000001 131.7 46.4000000000001zM285.6 10.6C288.8 21.6 291.9000000000001 31.9 292.4000000000001 39.6C293.2000000000001 54.8 294.0000000000001 68.3 296.8 79.4999999999999C299.9000000000001 92.1 306.1 102.6 318.2 106.8C320.5 127.9 336.9 127.9 356.5 119.3C375.4 110.8 382.5 103.3 379.3 93.1999999999999C380.3 93.1999999999999 381.3 93.3 383.5 93.1999999999999C388.7 110.0999999999999 369.2 121.1999999999999 352.8 128C355.7 140 355.2 152.1 352.4000000000001 163.6999999999999C346.4000000000001 189 329.8 211.5 317.2000000000001 222.6999999999999C314.9000000000001 222.7999999999999 315.1 220.7999999999999 319.8000000000001 216.1999999999999C331.4000000000001 205.5 356.9000000000001 167 343.1000000000001 131.3C339.2000000000001 132.3 335.5000000000001 132.8 332.2000000000001 132.6999999999999C326.9000000000001 161.8 314.7000000000001 185.8999999999999 308.6000000000001 197.2999999999999C297.1000000000001 218.6999999999999 279.1000000000001 262.5999999999999 271.4000000000001 293C266.9000000000001 286.5999999999999 259.0000000000001 281.0999999999999 249.1000000000001 278C244.4000000000001 276.5 239.4000000000001 272.5 233.2000000000001 269C219.3000000000001 261 203.2000000000001 260.2 190.8000000000001 270.2C186.3000000000001 273.8 182.8000000000001 277.8 178.2000000000001 280.5C176.6000000000001 281.4 173.1000000000001 283.8 172.0000000000001 284.5999999999999C170.0000000000001 246.8 144.7000000000001 199.3 132.7000000000001 171.8999999999999C124.4000000000001 152.1999999999999 119.5000000000001 131.0999999999999 118.9000000000001 110.3999999999999C97.1000000000001 139.5 113.0000000000001 176.6999999999999 121.5000000000001 192.7999999999999C131.0000000000001 210.3999999999999 132.5000000000001 215.2999999999999 130.2000000000001 213.5999999999999C121.6000000000001 199.5999999999999 108.2000000000001 177.3 103.0000000000001 154.3999999999999C100.3000000000001 142.5 99.8000000000001 130.3999999999999 103.3000000000001 119.1999999999999C106.8000000000001 107.9999999999999 114.4000000000001 97.6999999999999 127.9000000000001 89.3C127.9000000000001 89.3 152.7000000000001 74.9999999999999 166.2000000000001 56.8C173.6000000000001 46.8 175.9000000000001 38.1 173.6000000000001 31.9C171.1000000000001 25.2 164.0000000000001 23 156.9000000000001 23C161.7000000000001 17 167.2000000000001 10 171.3000000000001 3.4C208.9000000000001 -22.3 253.5000000000001 -12.3 285.6000000000002 10.6zM415 39.5C405 50.8 407.8 72.6 397.9 81.1C391 87.1 384.3 86.5 375.3 86.2000000000001C367.6 77.4 349.5 66.6 336.9 69.9C325.4 72.8 318.9 86.2000000000001 318.1 99.4C317.8 99.2000000000001 317.4 99.1 317.1 98.9C310 95.0000000000001 306 88.1 303.4 77.8C300.9 67.6 300 54.3 299.2 39.1C298.5 27.3 293 12.7 289.3 -1.5C285.8 -14.7 283.5 -26.7 288.2 -37.8C295.4 -52.3 307.7 -58.2 321.9 -57.1C336.1 -56 352.3 -47.3 365.5 -31.6C387.5 -5 427.8 -1.9 428.7 14.9C429 20 425.6 27.9 415 39.5zM173.3 299.3C175.3 297.4 178 294.8 181.3 292.2000000000001C187.9 287 197.1 281.6 208.6 281.6C220.2 281.6 231.1 287.5 240.4000000000001 292.4000000000001C245.3000000000001 295 251.3000000000001 299.4000000000001 255.2000000000001 302.8000000000001C259.1 306.2000000000001 261.1 309.1 258.3000000000001 309.4000000000001C255.5000000000001 309.7000000000001 255.7000000000001 306.8000000000001 252.3000000000001 304.3000000000001C247.9000000000001 301.1 242.6000000000001 296.9000000000001 238.4000000000001 294.5C231.0000000000001 290.3000000000001 218.9000000000001 284.3000000000001 208.5000000000001 284.3000000000001C198.1000000000001 284.3000000000001 189.8000000000001 289.1 183.6000000000001 294C180.5000000000001 296.5 177.9000000000001 299 175.9000000000001 300.9000000000001C174.4000000000001 302.3000000000001 174.0000000000001 305.5 171.6000000000001 305.8000000000001C170.2000000000001 305.9000000000001 169.8000000000001 302.1 173.3000000000001 299.3000000000001z" />
-			<glyph glyph-name="lyft" unicode="" horiz-adv-x="512" d=" M0 366.9H77.8V158.2000000000001C77.8 125.1 92.8 105.4 105 97.2000000000001C92.3 86.1 53.8 76.3000000000001 24.8 100.0000000000001C7.8 114 0 137.3 0 159V366.9zM485.9 193.4V215.4H509.7V292.2H483.6C473.4999999999999 338.5 432.4 372.9 383.3 372.9C326.7 372.9 280.6 326.9 280.6 270.2V91C296.6 88.7 316 91.3 332.3 105C349.4 119 357.1 142.2 357.1 164V170.7H395.9V247.5H357.1V270.8C357.1 305.4 409.3 305.4 409.3 270.8V193.7C409.3 137.1 455.3 91 511.9999999999999 91V167.5C497.4999999999999 167.5 485.8999999999999 179.2 485.8999999999999 193.4zM191.6 292.4V179.4C191.6 164 167.8 164 167.8 179.4V292.4H91V159.7C91 135.9 99 105.7 136 95.8C173 86 194.2 106.4 194.2 106.4C192.1 93.0000000000001 179.7 83.1 159.3 81.1C143.8 79.5 124.1 84.7000000000001 114.3 88.9V18.6C139.4 11.1 165.8 8.8 191.9 13.9C239 23.0000000000001 268.7 62.3 268.7 114.7000000000001V292.9H191.6V292.4z" />
-			<glyph glyph-name="magento" unicode="" horiz-adv-x="448" d=" M445.7 320.1V64L382.3 27.5V283.3L223.8 374.9L65.2 283.3L65.6 27.4L2.3 64V319.9L224.2 448L445.7 320.1zM255.6 27.5L224 9.1L192.2 27.3V283.3L128.9 246.7L129 -9.2L223.9 -64.1L319 -9.2V246.8L255.6 283.4V27.4999999999999z" />
-			<glyph glyph-name="maxcdn" unicode="" horiz-adv-x="512" d=" M461.1 5.3H363.7000000000001L415.6 248C417.9000000000001 258.2 416.5 267.5 411.2000000000001 273.7C406.2000000000001 279.8 397.5000000000001 283.3 387.0000000000001 283.3H337.7000000000001L278.2000000000001 5.3H180.8000000000001L240.3000000000001 283.3H156.9L97.4 5.3H0L59.5 283.3L14.9 378.7H387C426.4 378.7 462.3 362.4 485.3 333.8C508.6 305.2 517.1 266.4 508.9 227.9L461.1 5.3z" />
-			<glyph glyph-name="medapps" unicode="" horiz-adv-x="320" d=" M118.3 209.6C121.8 222.1 125.2 243.2 131.5 243.2C139.8 241.4 141.1 219.8 150.1 206.6C154.7 230.1 155.4 291.7 164.2 293.3C173.2 294 183.9 226.8 186.2 215.8C196.1 211.7 235.1 209.2 235.1 209.2C237 201.9 211.1 201.6 195.1 201.4C190.5 186.6 189.7 173.7 183.7 173.4C179 173.2 175.5 202.2 166.2 223L156.8 157.5C152.4 144.5 141.3 180 134.9 196.8C131.6 196.9 72.5 198.4 87.3 204.6L118.3 209.6zM228 0C249.2 0 249.2 32 228 32H92C70.8 32 70.8 0 92 0H228zM204 -64C225.2 -64 225.2 -32 204 -32H116C94.8 -32 94.8 -64 116 -64H204zM238.2 77.5C241.4 96.4 243.4 113.9 250.1 126.3C258 141 266.2 154.4 274.1 167.3C298.7000000000001 207.7 320 242.5 320 292.8C320 378.4 248.2 448 160 448S0 378.4 0 292.8C0 242.6 21.3 207.7 45.9 167.3C53.8 154.4 61.9 141 69.9 126.3C76.6 113.8 78.6 96.5 81.8 77.4C85.3 56.4 117.9 61.7000000000001 114.4 82.5000000000001C110.8 104.2000000000001 108.8 123.2000000000001 99.1 141.1000000000001C66.5 201.5 33 236.7 33 292.8C33 360.7 90 416 160 416S287 360.7 287 292.8C287 236.7 253.5 201.5 220.9 141.2000000000001C211.2 123.2000000000001 209.2 103.8000000000001 205.6 82.6C202.2 62 234.6 56.2 238.2 77.5z" />
-			<glyph glyph-name="medium-m" unicode="" horiz-adv-x="512" d=" M71.5 305.7C72.1 311.6 69.8 317.5 65.4 321.5L20.3 375.9V384H160.5L268.9 146.3L364.2 384H497.9V375.9L459.3 338.9C455.9999999999999 336.4 454.3 332.2 454.9999999999999 328.1V56.1C454.3 52 455.9999999999999 47.8 459.3 45.3L496.9999999999999 8.3V0.2H307.3V8.3L346.4000000000001 46.2C350.2000000000001 50 350.2000000000001 51.2 350.2000000000001 57V276.8L241.5 0.9H226.8L100.4 276.8V91.9C99.3 84.1 101.9 76.3 107.4 70.7L158.2 9.1V0.9999999999999H14.2V8.9999999999999L65 70.7C70.4 76.3 72.9 84.2 71.5 91.9V305.7z" />
-			<glyph glyph-name="medium" unicode="" horiz-adv-x="448" d=" M0 416V-32H448V416H0zM372.2 309.9L348.2 286.9C346.1 285.3 345.1 282.7000000000001 345.5 280.2000000000001V110.9C345.1 108.3 346.1 105.7 348.2 104.2L371.7 81.2V76.1H253.7V81L278 104.6C280.4 107 280.4 107.7000000000001 280.4 111.3V248.2L212.8 76.6H203.7L125 248.2V133.2C124.3 128.4 126 123.5 129.4 120L161 81.7V76.6H71.2V81.7L102.8 120C106.2 123.5 107.7 128.4 106.9 133.2V266.2C107.3 269.9 105.9 273.5 103.1 276L75 309.9V315H162.3L229.7 167L289 314.9H372.2V309.9z" />
-			<glyph glyph-name="medrt" unicode="" horiz-adv-x="544" d=" M113.7 192C113.7 70.2 197.6 -30.8 307.2 -49.1C288.5 -53.6 269 -56 249 -56C111.4 -56 0 55 0 192S111.4 440 248.9 440C269 440 288.5 437.6 307.1 433.1C197.5 414.8 113.7 313.8 113.7 192M411.1 91.7C333.4 36.3 231.5 44.2 170.7 106.3C176.2 92.2 183.4 78.6 192.4 65.8C254 -22.4 374.8 -43.5 462.0999999999999 18.8C549.3999999999999 81.1 570.1999999999999 203.1 508.5999999999999 291.4000000000001C499.5999999999999 304.3000000000001 489.2999999999999 315.7000000000001 478.0999999999999 325.6C515.4999999999999 246.8000000000001 488.7999999999999 147.1 411.0999999999999 91.7000000000001M192.2999999999999 335.7000000000001C190.8999999999999 334.7000000000001 189.5999999999999 333.6 188.2999999999999 332.6C252.5999999999999 350.4000000000001 324.2 328.6 367.2 272.1C402.8999999999999 225.1000000000001 410.0999999999999 165.5000000000001 391.5999999999999 114.1C448.2999999999999 170.3 459.1999999999999 256.2000000000001 413.8999999999999 315.9000000000001C363.8999999999999 381.4000000000001 264.8 390.3000000000001 192.2999999999999 335.7000000000001M296 224C291.6 224 288 227.6 288 232V272C288 276.4 284.4 280 280 280H232C227.6 280 224 276.4 224 272V232C224 227.6 220.4 224 216 224H176C171.6 224 168 220.4 168 216V168C168 163.6 171.6 160 176 160H216C220.4 160 224 156.4 224 152V112C224 107.6 227.6 104 232 104H280C284.4 104 288 107.6 288 112V152C288 156.4 291.6 160 296 160H336C340.4 160 344 163.6 344 168V216C344 220.4 340.4 224 336 224H296z" />
-			<glyph glyph-name="meetup" unicode="ï‹ " horiz-adv-x="512" d=" M99 33.7C100.1 28 96.7 22.6 91 21.4C85.6 20.3 80.1 23.7 79 29.4C77.9 34.8 81.3 40.5 86.7 41.7C92.1 42.9 97.8 39.4 99 33.7zM242.1 -37.7C235.8 -42.3000000000001 234.1 -51.1 238.4 -57.7C243 -64.3000000000001 251.8 -66 258.4 -61.4C264.7 -56.8 266.4 -48.0000000000001 261.8 -41.4C257.6 -34.9 248.7 -33.1 242.1 -37.7zM156.1 424.6C162.4 426 166.4 432.3 165 438.6C163.9 445.2 157.6 449.2 151.3 447.7C145 446.3 141 440 142.2 433.7C143.6 427.1 149.8 423.1 156.1 424.6zM34.4 221.7C24.4 228.6 10.7 226 3.8 215.7C-3.1 205.7 -0.5 191.7 9.5 184.8C19.5 177.7 33.2 180.2 40.1 190.5C47 200.9 44.4 214.6 34.4 221.7zM306.4 392.6C317 398.9 320.1 412.6 314.1 422.9C307.8 433.5 294.4 436.9 284.1 430.6S270.4 410.6 276.7 400C282.7 389.7 296.1 386.3 306.4 392.6zM115.3 334.6C123 340 124.7 350.6 119.6 358.3S103.9 367.7 96.5 362.6C88.8 357.2 87.1 346.6 92.2 338.9C97.3 331.1 107.8 329.4 115.3 334.6zM487.6 178.6C480.2 176.9 475.3 169.5 477 161.7000000000001C478.4 154.3000000000001 485.9 149.4 493.3 151.1C500.7 152.5 505.6 160 503.9 167.7000000000001C502.4 175.1 495.0000000000001 180.0000000000001 487.6 178.6zM527.3000000000001 235.4000000000001C526.2 241.1 520.7 244.5000000000001 515.3000000000001 243.4000000000001C509.6000000000001 242.3000000000001 506.2 236.5000000000001 507.3000000000001 230.8000000000001C508.4000000000001 225.4000000000001 513.9000000000001 221.7000000000001 519.6 222.8000000000001C525 224.3000000000001 528.7 229.7000000000001 527.3000000000001 235.4000000000001zM447 309.1C438.4 303.1 436.4 291.4 442.1 282.8C447.8 274.2 459.5 272.2 468.1 277.9C476.4 283.9 478.4 295.6 472.7 304.2C467.0000000000001 312.9 455.3000000000001 315.1 447.0000000000001 309.1zM440.7 169.7C467 126.6 455.8 69.7 414.4 40.6C397 28.3 377.3 22.9 357.5 23.5C345.5 -23.6 288.1 -41.1 252.4 -9.1C251.3 -10 249.8 -10.8 248.7 -12C209.6 -39.1 156.4 -29.4 129.3 10.3C119.6 24.6 114.7 40.9 114.2 57.2C48.8 68.1 24.2 151.2 73.1 196.9C44.8 243.8 73.7 304.3 126.5 311.8C151.6 378 234.1 409.4 290.1 366C357.5 388.3 426.4000000000001 336.6 421 264.9C462.1 252.3 473.8 198 440.7 169.7zM370.7 95.4C367.6 116 329.8 100 327.6 122.5C324.5 154.5 371.3 223.6 367.6 250.5C364.2 274.5 348.2 279.6 334.2 279.9C320.8 280.2000000000001 317.3 277.9 312.8 275.3C309.9000000000001 273.6 306.2 270.4 301.1 275.6C294.8 281.6 290 287.3 281.7000000000001 288.5C269.4000000000001 290.5 264.0000000000001 286.5 255.1000000000001 278.8000000000001C251.7000000000001 275.9000000000001 243.1000000000001 265.9000000000001 235.1000000000001 269.7000000000001C231.7000000000001 271.4000000000001 219.7000000000001 277.4000000000001 211.1000000000001 281.1C194.8000000000001 288.2000000000001 171.1000000000001 276.5000000000001 162.5000000000001 261.1C149.6000000000001 238.2000000000001 124.5000000000001 148.0000000000001 120.8000000000001 136.0000000000001C112.2000000000001 109.4 131.7000000000001 87.4 157.7000000000001 88.9C168.8000000000001 89.5000000000001 176.0000000000001 93.5000000000001 183.1000000000001 106.3C187.1000000000001 113.7 224.8000000000001 214 227.7000000000001 218.9C229.7000000000001 222.3 236.6000000000001 226.9 242.3000000000001 224C248.0000000000001 220.9 249.2000000000001 214.6 248.3000000000001 208.9C247.2000000000001 199.2 220.3000000000001 138 219.4 131.2C216 108.3 246.3000000000001 104.6 258.0000000000001 127.2C261.7000000000001 134.3 303.7000000000001 219.8 307.4000000000001 225.5C311.7000000000001 231.8 314.8 233.8 319.1 233.5C322.2000000000001 233.5 327.4000000000001 232.6 326.2000000000001 222.6C324.8000000000001 213.2 291.1 150.3 287.3000000000001 134.9C282.7000000000001 114.3 293.9000000000001 93.5 312.2000000000001 84.3C323.6 78.6 374.7000000000001 68.6 370.7000000000001 95.4zM376.4 3.1C366.1 -4.3 363.5 -18.9 370.7 -29.5000000000001C377.8 -40.1000000000001 392.1 -42.6000000000001 402.7 -35.5000000000001C413.3 -28.1000000000001 415.8 -13.5000000000001 408.7 -2.9C401.3 7.7 387 10.6 376.4 3.1z" />
-			<glyph glyph-name="microsoft" unicode="" horiz-adv-x="448" d=" M0 416H214.6V201.4H0V416zM233.4 416H448V201.4H233.4V416zM0 182.6H214.6V-32H0V182.6zM233.4 182.6H448V-32H233.4V182.6z" />
-			<glyph glyph-name="mix" unicode="" horiz-adv-x="416" d=" M0 384V35.1C0 -21.1 88 -23 88 35.1V273.7C95.9 326.6 176 324.1 176 267.2V91.9C176 34 272 33.9 272 91.9V208C277.3 262.7 360 260.5 360 203.7V179.9C360 120 448 123.3 448 179.9V384H0z" />
-			<glyph glyph-name="mixcloud" unicode="" horiz-adv-x="640" d=" M424.43 228.271C416.124 313.273 344.135 380 256.919 380C184.653 380 120.695 333.4840000000001 97.714 265.926C43.169 257.897 1.084 211.104 1.084 154.344C1.084 92.046 51.752 41.378 114.327 41.378H403.9409999999999C456.2699999999999 41.378 498.9099999999999 83.74 498.9099999999999 136.071C498.9099999999999 181.202 466.7919999999999 219.134 424.4299999999999 228.271zM403.9410000000001 83.741H114.327C75.287 83.741 43.446 115.305 43.446 154.345S75.287 224.949 114.327 224.949C133.154 224.949 150.875 217.474 164.165 204.183C184.128 184.22 214.298 214.41 194.345 234.363C179.67 248.761 161.673 258.728 142.292 263.712C162.227 308.012 207.082 337.638 256.92 337.638C326.416 337.638 382.899 281.155 382.899 211.936C382.899 198.368 380.6840000000001 185.079 376.53 172.342C367.587 144.825 408.663 133.403 416.677 159.052C419.446 167.358 421.661 175.941 423.046 184.524C442.4269999999999 177.048 456.5479999999999 158.221 456.5479999999999 136.0709999999999C456.5479999999999 107.2759999999999 433.0129999999999 83.7409999999999 403.9409999999999 83.7409999999999zM639.01 136.071C639.01 92.047 626.273 49.6849999999999 601.908 13.414C597.755 7.322 591.11 4 584.188 4C567.871 4 557.061 22.826 566.745 36.949C586.126 66.298 596.648 100.631 596.648 136.071S586.1270000000001 205.844 566.745 234.9160000000001C551.09 257.747 586.106 282.1560000000001 601.908 258.4500000000001C626.274 222.457 639.01 180.0940000000001 639.01 136.071zM568.13 136.071C568.13 104.506 558.9929999999999 74.05 541.273 47.746C537.12 41.655 530.475 38.61 523.553 38.61C506.352 38.61 496.531 57.5889999999999 506.11 71.5579999999999C519.123 90.6619999999999 525.768 112.8129999999999 525.768 136.0709999999999C525.768 159.0519999999999 519.123 181.4789999999999 506.11 200.5829999999999C490.349 223.5689999999999 525.118 247.6779999999999 541.273 224.1179999999999C558.9920000000001 198.0919999999999 568.13 167.6349999999999 568.13 136.0709999999999z" />
-			<glyph glyph-name="mizuni" unicode="" horiz-adv-x="496" d=" M248 440C111 440 0 328.9 0 192C0 55 111 -56 248 -56S496 55 496 192C496 328.9 385 440 248 440zM168 88.1C136.6 77.5 109.2 60.8 88 39.9V312C88 334.1 105.9 352 128 352S168 334.1 168 312V88.1zM288 98C275.1 100 261.8 101.1 248.2 101.1C234.4 101.1 221 100 208 98V312C208 334.1 225.9 352 248 352S288 334.1 288 312V98zM408 40.3C386.8 61.1 359.4 77.7 328 88.3V312C328 334.1 345.9 352 368 352S408 334.1 408 312V40.3z" />
-			<glyph glyph-name="modx" unicode="" horiz-adv-x="448" d=" M356 206.2L392.7 182.5V-32L259.7 51.8L356 206.2zM440 373H226.3L203.3 335.2L356.8 238.7L440 373zM351 230.2L55.2 416V201.5L101.2 172.5L351 230.2zM97 153.8L8 11H221.7L346.7 211.5L97 153.8z" />
-			<glyph glyph-name="monero" unicode="" horiz-adv-x="496" d=" M352 64H460.4C417 -7.9 338.1 -56 248 -56S79 -7.9 35.6 64H144V191.8L248 87L352 192V64zM88 112V320L247.4 160.6L408 320V112H482.8C491.3 137.1 496 164 496 192C496 329 385 440 248 440S0 329 0 192C0 164 4.6 137.1 13.2 112H88z" />
-			<glyph glyph-name="napster" unicode="" horiz-adv-x="496" d=" M298.3 74.4C284.1 60.8 267 50.3 247.9 43.9C228.9 50.3 211.7 60.8 197.6 74.4H298.3zM342.3 274C362.3 290.9 385.9000000000001 303.2 411.9 310.2V149C411.9 -70.4 83.9 -68.6 83.9 148.7V310.3C109.8 303.4 133.5 290.7000000000001 153.4 273.9C210.2 313.9 285.9 313.8 342.3 274zM133.5 332.5C197.9 392.5 297.8 392.6 362.4 332.7C355.3 329.2 348.5 325.4 341.8 321.2C283.1 351.7 212.6 351.6 153.9 321.1C147.5999999999999 325.1 140 329.3 133.5 332.5zM43.8 354.8V285.5C-14.6 249 -14.6 164.4 43.9 127.2C70.3 -117.9 425.6 -113.1 451.5 125.7L451.8 127.4C510.5 163.7 510.7 249.1 452 285.6V354.8C434.7 354.3 418 351.8 401.9 347.4C319.9 438.9 176.4 438.9 94.4 347.3C78.1 351.7 61.3 354.3 43.8 354.8zM259.2 96S295.2 96.3 320.5 97.5C330.7 98 341.6 101.5 346 104C372.3 119.1 371.4 143.2 372.2 151.4C292.7 152 272.3 155.3 259.2 96zM123.7 151.3C124.5 143.1 123.6 119 149.9 103.9C154.3 101.4 165.1 97.9 175.4 97.4C200.7 96.3 236.7 95.9 236.7 95.9C223.5 155.3 203 152.0000000000001 123.7 151.3zM292.8 27.9C289.6 33.2 285.9 35.2 285.9 35.2C261.1 27.9 233.7 28.3 210 35.2C210 35.2 207.1 33.7 203.6 28.6C200.8 24.4999999999999 199.9 18.9999999999999 199.9 18.9999999999999C229 1.3999999999999 267 1.3999999999999 296.1 18.9999999999999C296 19.1 295.8 22.9999999999999 292.8 27.8999999999999z" />
-			<glyph glyph-name="nintendo-switch" unicode="" horiz-adv-x="448" d=" M95.9 414.5C51.3 406.5 15.4 373.5 4.1 330.1C0 314.4 -0.3 305.2 0.2 183.6C0.4 72 0.5 69.4 2.4 60.7C12.7 14.2 45.7 -18.9 92.7 -29.8C98.8 -31.2 106.6 -31.5 156.8 -31.7C208.7 -32.1 214.1 -32 215.5 -30.6C216.9 -29.2 217 -11.3 217 191.6C217 342.1 216.7 412.9000000000001 216.1 414.2000000000001C215.2 415.9000000000001 213.6 416 159.2 415.9000000000001C115 415.8 101.7 415.5 95.9 414.5zM179.8 191.9V4L142 4.5C107.2 4.9 103.5 5.1 96.5 6.8C66.6 14.5 44.5 37.5 38.2 67.5C36.2 76.9 36.2 307.6 38.1 316.8C43.7 342.9 61.8 364.5 86.1 374.2000000000001C98.3 379.1 104 379.7000000000001 143.7 379.8L179.6 379.9V191.9zM103.9 323.1C98.1 322 89.2 317.5 84.4 313.4C74.7 305 69.8 293 70.6 278.9C71 271.6 71.4 269.6 74.4 263.7C78.8 254.7 85.3 248.1 94.3 243.7C100.5 240.6 102.1 240.3 110.2 240C117.5 239.7 120.1 240 125 241.7C145.1 248.5 157.3 268 153.8 288.1C149.9 311.8 127.2 327.8 103.9 323.1zM262.1 415.4C261.7000000000001 415.1 261.5 314.6 261.5 191.9C261.5 -10.4 261.6 -30.9 263 -31.5C265.5 -32.4 337.5 -32.1 346.4 -31.1C384.1 -26.8 417.4 -3.9 435.4 30.1C437.7 34.4999999999999 440.8 41.8 442.4 46.3C448.2 63.6999999999999 448.1 59.1 448.1 192.4C448.1 298.8 447.9 314.7 446.6 321.4C437.4 369.7 400.5 406.2 352.1 414.5C345.6 415.6 335.6 415.8999999999999 303.3 415.8999999999999C280.9 416 262.4 415.7 262.1 415.3999999999999zM361.2000000000001 213.3C375.7000000000001 209.5 387.5000000000001 198.5 392.4000000000001 184.4C395.5000000000001 175.7 395.4000000000001 162.9 392.3 154.9C386.6 140.2 375.5 129.9 361.2 126.1C338 120.1 313.3 134.1 306.6 157.1C304.6 164.1 304.7 176 307 183.3C313.8999999999999 206 338 219.4 361.2 213.3z" />
-			<glyph glyph-name="node-js" unicode="" horiz-adv-x="448" d=" M224 -32C218 -32 212 -30.4 206.8 -27.4L151.9 5C143.7 9.6 147.7 11.2 150.4 12.1C161.3 15.9 163.5 16.8 175.2 23.4C176.4 24.1 178 23.8 179.3 23.1L221.4 -1.9C222.9 -2.7 225.1 -2.7 226.5 -1.9L390.7 92.9C392.2 93.8 393.2 95.5000000000001 393.2 97.3V286.8C393.2 288.7000000000001 392.2 290.4 390.7 291.3L226.5 386C225 386.9 223 386.9 221.4 386L57.4 291.3C55.8 290.4 54.8 288.6 54.8 286.8V97.3C54.8 95.5 55.8 93.8 57.4 92.9L102.4 66.9C126.8 54.7 141.7 69.1 141.7 83.5000000000001V270.6C141.7 273.2 143.8 275.3 146.5 275.3H167.3C169.9 275.3 172.1 273.2 172.1 270.6V83.5C172.1 50.9 154.4 32.3 123.5 32.3C114 32.3 106.5 32.3 85.7 42.6L42.6 67.4C32 73.5 25.4 85 25.4 97.3V286.8C25.4 299.1 32 310.6 42.6 316.7000000000001L206.8 411.6C217.2 417.5 231 417.5 241.3 411.6L405.5 316.7000000000001C416.1 310.6 422.7 299.1 422.7 286.8V97.3C422.7 85 416.1 73.5 405.5 67.4L241.3 -27.4C236 -30.4 230 -32 224 -32zM356.5 154.8C356.5 190.3 332.5 199.7 282.1 206.4C231.1 213.1 225.9000000000001 216.6 225.9000000000001 228.6C225.9000000000001 238.5 230.3000000000001 251.6 268.1 251.6C301.8 251.6 314.3 244.3 319.4000000000001 221.6C319.8 219.5 321.8 217.9 324.0000000000001 217.9H345.3000000000001C346.6000000000001 217.9 347.9000000000001 218.5 348.8000000000001 219.4C349.7000000000001 220.4 350.2000000000001 221.7 350.1000000000001 223.1C346.8000000000001 262.3 320.8000000000001 280.5 268.2000000000001 280.5C221.4 280.5 193.5000000000001 260.7 193.5000000000001 227.6C193.5000000000001 191.7 221.3000000000001 181.7 266.2000000000001 177.3C320.0000000000001 172 324.1 164.2 324.1 153.6C324.1 135.3 309.4000000000001 127.4 274.8 127.4C231.4 127.4 221.8 138.3 218.6 159.9C218.2 162.2000000000001 216.3 163.9 213.9 163.9H192.7000000000001C190.1000000000001 163.9 188.0000000000001 161.8 188.0000000000001 159.2000000000001C188.0000000000001 131.5000000000001 203.1000000000001 98.6 274.9000000000001 98.6C326.7000000000001 98.5 356.5000000000001 119 356.5000000000001 154.8z" />
-			<glyph glyph-name="node" unicode="" horiz-adv-x="640" d=" M316.3 -4C314.2 -4 312.1 -3.4 310.2 -2.4L291 9C288.1 10.6 289.5 11.2 290.5 11.5C294.3 12.8 295.1 13.1 299.2 15.5C299.6 15.7 300.2 15.6 300.6 15.4L315.4 6.6C315.9 6.3 316.7 6.3 317.2 6.6L375 40C375.5 40.3 375.9 40.9 375.9 41.6V108.3C375.9 109 375.6 109.6 375 109.9L317.2 143.2000000000001C316.7 143.5000000000001 316 143.5000000000001 315.4 143.2000000000001L257.6 109.9C257 109.6 256.7 108.9 256.7 108.3V41.6C256.7 41 257.1 40.4 257.6 40.1L273.4 31C282 26.7 287.3 31.8 287.3 36.8V102.7000000000001C287.3 103.6 288 104.4 289 104.4H296.3C297.2 104.4 298 103.7000000000001 298 102.7000000000001V36.8000000000001C298 25.3000000000001 291.8 18.8000000000001 280.8999999999999 18.8000000000001C277.5999999999999 18.8000000000001 274.8999999999999 18.8000000000001 267.5999999999999 22.4000000000001L252.3999999999999 31.1000000000001C248.7 33.3000000000001 246.3 37.3000000000001 246.3 41.6000000000001V108.3000000000001C246.3 112.6000000000001 248.6 116.7000000000001 252.3999999999999 118.8000000000001L310.2 152.2000000000001C313.8999999999999 154.3000000000001 318.7 154.3000000000001 322.3 152.2000000000001L380.1 118.8000000000001C383.8 116.6000000000001 386.2 112.6000000000001 386.2 108.3000000000001V41.6000000000001C386.2 37.3000000000001 383.9 33.2000000000001 380.1 31.1000000000001L322.3 -2.2999999999999C320.6 -3.3999999999999 318.5 -3.9999999999999 316.3 -3.9999999999999zM363 61.8C363 74.3 354.6 77.6 336.8 80C318.8 82.4 317 83.6 317 87.8C317 91.3 318.5 95.9 331.8 95.9C343.7 95.9 348.1 93.3 349.9000000000001 85.3C350.1 84.5 350.7000000000001 84 351.5000000000001 84H359.0000000000001C359.5000000000001 84 359.9000000000001 84.2 360.2000000000001 84.5C360.5000000000001 84.9 360.7000000000001 85.3 360.6 85.8C359.4000000000001 99.6 350.3 106 331.8 106C315.3 106 305.5 99 305.5 87.4C305.5 74.7 315.3 71.3 331.1 69.7C350 67.8 351.5 65.1 351.5 61.4C351.5 54.9 346.3 52.2 334.1 52.2C318.8 52.2 315.4000000000001 56 314.3 63.6C314.2 64.4 313.5 64.9999999999999 312.6 64.9999999999999H305.1C304.2000000000001 64.9999999999999 303.4000000000001 64.3 303.4000000000001 63.3C303.4000000000001 53.6 308.7000000000001 41.9999999999999 334.0000000000001 41.9999999999999C352.5000000000001 41.9999999999999 363.0000000000001 49.1999999999999 363.0000000000001 61.8zM417.5 111.9C417.5 105.8 412.5 100.8 406.4 100.8S395.3 105.8 395.3 111.9C395.3 118.2000000000001 400.5 123.0000000000001 406.4 123.0000000000001C412.4 123.1000000000001 417.5 118.2000000000001 417.5 111.9zM415.7 111.9C415.7 117.1 411.5 121.2000000000001 406.3 121.2000000000001C401.2 121.2000000000001 397 117.1 397 111.9C397 106.7000000000001 401.2 102.5000000000001 406.3 102.5000000000001C411.5 102.6000000000001 415.7 106.8000000000001 415.7 111.9zM411.2 105.7000000000001H408.6C408.5 106.3000000000001 408.1 109.5000000000001 408.1 109.6C407.9 110.3 407.7 110.7000000000001 406.8 110.7000000000001H404.6V105.7000000000001H402.2V118.2000000000001H406.5C408 118.2000000000001 410.9 118.2000000000001 410.9 114.9C410.9 112.6 409.4 112.1 408.5 111.8C410.2 111.7 410.3 110.6 410.6 109C410.7000000000001 108 410.9000000000001 106.3 411.2000000000001 105.7zM408.4 114.5000000000001C408.4 116.2000000000001 407.2 116.2000000000001 406.6 116.2000000000001H404.6V112.7000000000001H406.5C408.1 112.7000000000001 408.3999999999999 113.8000000000001 408.3999999999999 114.5000000000001zM137.3 257C137.3 259.7 135.9 262.1 133.6 263.4L72.3 298.7C71.3 299.3 70.1 299.6 68.9 299.7H68.3C67.1 299.7 66 299.3 64.9 298.7L3.7 263.4C1.4 262.1 0 259.6 0 257L0.1 162C0.1 160.7 0.8 159.5 1.9 158.8C3 158.1 4.4 158.1 5.6 158.8L42 179.7C44.3 181.1 45.7 183.5 45.7 186.1V230.5C45.7 233.1 47.1 235.6 49.4 236.9L64.9 245.8C66.1 246.5 67.3 246.8 68.6 246.8C69.9 246.8 71.2 246.5 72.3 245.8L87.8 236.9C90.1 235.6 91.5 233.1 91.5 230.5V186.1C91.5 183.5 92.9 181 95.2 179.7L131.6 158.8C132.7 158.1 134.2 158.1 135.3 158.8C136.4 159.4 137.1 160.7 137.1 162L137.3 257zM472.5 360.7V184.3C472.5 181.7 471.1 179.2 468.8 177.9L407.5 142.5000000000001C405.2 141.2000000000001 402.4 141.2000000000001 400.1 142.5000000000001L338.8 177.9C336.5 179.2000000000001 335.1 181.7000000000001 335.1 184.3V255.1C335.1 257.7000000000001 336.5 260.2000000000001 338.8 261.5L400.1 296.9000000000001C402.4000000000001 298.2000000000001 405.2000000000001 298.2000000000001 407.5 296.9000000000001L422.8 288.1C424.5 287.1 426.7 288.4000000000001 426.7 290.3V384.3C426.7 387.1 429.7 388.9000000000001 432.2 387.5L468.7 367.1C471 365.9000000000001 472.5 363.4000000000001 472.5 360.7000000000001zM426.5 231.8C426.5 232.5 426.1 233.1 425.6 233.4L404.6 245.6C404 245.9 403.3 245.9 402.7000000000001 245.6L381.7000000000001 233.4C381.1 233.1 380.8000000000001 232.5 380.8000000000001 231.8V207.5C380.8000000000001 206.8 381.2000000000001 206.2 381.7000000000001 205.9L402.7000000000001 193.8C403.3000000000001 193.5 404.0000000000001 193.5 404.5000000000001 193.8L425.5000000000001 205.9C426.1000000000001 206.2 426.4000000000001 206.8 426.4000000000001 207.5V231.8zM636.3 232.5C638.5999999999999 233.8 640 236.3 640 238.9V256C640 258.6 638.6 261.1 636.3 262.4L575.4 297.8C573.1 299.1 570.3 299.1 568 297.8L506.7 262.4C504.4 261.1 503 258.6 503 256V185.2C503 182.5 504.4 180.1 506.7 178.8L567.6 144.1C569.8000000000001 142.8 572.6 142.8 574.9 144.1L611.6999999999999 164.6C614.1999999999999 166 614.1999999999999 169.6 611.6999999999999 171L550 206.4C548.8 207.1 548.1 208.3 548.1 209.6V231.8C548.1 233.1 548.8000000000001 234.3 550 235L569.2 246.1C570.3000000000001 246.8 571.8000000000001 246.8 572.9000000000001 246.1L592.1000000000001 235C593.2000000000002 234.3 594.0000000000001 233.1 594.0000000000001 231.8V214.4C594.0000000000001 211.6 597.1000000000001 209.8 599.6000000000001 211.2L636.3000000000002 232.5zM559 229C558.6 228.7 558.3 228.3 558.3 227.8V214.2C558.3 213.7 558.5999999999999 213.2 559 213L570.8 206.2C571.1999999999999 205.9 571.8 205.9 572.1999999999999 206.2L584 213C584.4 213.3 584.7 213.7 584.7 214.2V227.8C584.7 228.3 584.4000000000001 228.8 584 229L572.2 235.8C571.8000000000001 236.1 571.2 236.1 570.8000000000001 235.8L559 229zM304.8 185.5V255.9C304.8 258.5 303.2 261 300.9000000000001 262.3L239.8000000000001 297.5C237.7000000000001 298.7 234.8000000000001 298.9 232.4000000000001 297.5L171.3000000000001 262.3C169 261 167.4 258.6 167.4 255.9V185.5C167.4 182.7 169.3000000000001 180.3 171.4 179.1L232.6 143.9C235.0000000000001 142.5000000000001 237.8 142.6 240.0000000000001 143.9L301 179.1C302.8 180.1 304.1 181.8 304.6 183.8C304.7000000000001 184.3 304.8 184.9 304.8 185.5zM230.5 310.4L229.7 309.9H230.8L230.5 310.4zM306.7 180.2000000000001L306.3 180.9V180.0000000000001L306.7 180.2000000000001z" />
-			<glyph glyph-name="npm" unicode="" horiz-adv-x="576" d=" M288 160H256V224H288V160zM576 288V96H288V64H160V96H0V288H576zM160 256H32V128H96V224H128V128H160V256zM320 256H192V96H256V128H320V256zM544 256H352V128H416V224H448V128H480V224H512V128H544V256z" />
-			<glyph glyph-name="ns8" unicode="" horiz-adv-x="640" d=" M187.1 288.1L152.9 174.4L98.4 288.1H49L0 128H44.9L76 234.5L126.6 128H183.5L232 288.1H187.1zM639.6 289C636.7 307 615.7 317.1 597.5 320.3C552.9 328.1 495.6 304 509 261.5V261.4C465.2 252.7 434.7 234.6 414.8 213.2C411.8 223 401.2 229.8 380.8 229.8H293.2000000000001C283.9000000000001 229.8 280.3000000000001 232.1 281.7000000000001 237.2C283.3000000000001 242.7 283.6 244 285.4000000000001 249.4C287.5000000000001 255.8 293.2000000000001 256.5 298.7000000000001 256.5H432.2000000000001L441.9000000000001 288C302.2000000000001 288 297.4000000000001 288.5 281.8000000000001 286.8C269.5000000000001 285.5 258.3000000000001 282 251.2000000000001 271.8C244.4000000000001 261.9 236.8000000000001 236.2 233.6000000000001 224.7C228.2000000000001 205.3 233.0000000000001 196.1 266.4000000000001 196.1H353.7000000000001C361.5000000000001 196.1 362.5000000000001 193.4 361.4000000000001 189.5C360.3000000000001 185.1 358.6000000000001 179.5 356.9000000000001 174.9C355.3000000000001 170.7 352.2000000000001 167.5 343.1000000000001 167.5H216.3L204.7 128C344.6 128 350 128.6 365.6 130.3C372.2000000000001 131 378.6 132.4 384.1 135.2C384.3 131.5 384.6 127.9 385.3 124.4C390.7 93.9 412.7 72.1 442.1 64.9C490.7 53 550.8000000000001 81.7 577.2 132.9C595.9000000000001 169.1 591.3000000000001 209.1 573.8000000000001 238.4H573.9000000000001C603.5000000000001 244.3 644.2 260.4 639.6000000000001 289zM530.7 184.3C524.8000000000001 154.8 494.1 136.5 469.1 140.4C438.2000000000001 145.2000000000001 430.6 179.9 455 205.2000000000001C471.2 222.0000000000001 500.2 229.2000000000001 523.5 232.1000000000001C530.2 218.0000000000001 533.8 200.1000000000001 530.7 184.3000000000001zM552.5 267.4C548.3 273.4 542.7 285.9 550 293.7000000000001C556.7 300.9 570.9 303.8 581.8 301.4C597.0999999999999 298 601.5 285.5 586.6999999999999 277C575.9999999999999 270.9 563.0999999999999 268.9 552.4999999999999 267.4z" />
-			<glyph glyph-name="nutritionix" unicode="" horiz-adv-x="400" d=" M88 439.9S221.4 448.1 209 335.5C209 335.5 228.1 410.4 312 376.1C312 376.1 294.3 302.1 224 320.1C224 320.1 238.6 374.7 290.1 376.7C290.1 376.7 250.2 387 208 327.9C208 327.9 188.2 422.4 114.4 427.6C114.4 427.6 189.6 408.2 192 320.1C192 320 85.6 313.1 88 439.9zM400 124.3C400 75.8 390.3 28.9999999999999 368 -8.0000000000001C325.8 -38.9 263 -56.0000000000001 200 -56.0000000000001C137.1 -56.0000000000001 74.2 -38.9 32 -8.0000000000001C9.7 29 0 75.8 0 124.3C0 172.7 17.7 219 40 256C82.2 286.9 137.1 304.6 200 304.6C263 304.6 317.8 287 360 256C382.3 219 400 172.7 400 124.3zM120 20C120 35.5 107.5 48 92 48S64 35.5 64 20S76.5 -8 92 -8S120 4.5 120 20zM120 86.2C120 101.7 107.5 114.2 92 114.2S64 101.7 64 86.2S76.5 58.2 92 58.2S120 70.7 120 86.2zM120 152.4C120 167.9 107.5 180.4 92 180.4S64 167.9 64 152.4S76.5 124.4 92 124.4S120 136.9 120 152.4zM192 20C192 35.5 179.5 48 164 48S136 35.5 136 20S148.5 -8 164 -8S192 4.5 192 20zM192 86.2C192 101.7 179.5 114.2 164 114.2S136 101.7 136 86.2S148.5 58.2 164 58.2S192 70.7 192 86.2zM192 152.4C192 167.9 179.5 180.4 164 180.4S136 167.9 136 152.4S148.5 124.4 164 124.4S192 136.9 192 152.4zM264 20C264 35.5 251.5 48 236 48S208 35.5 208 20S220.5 -8 236 -8S264 4.5 264 20zM264 86.2C264 101.7 251.5 114.2 236 114.2S208 101.7 208 86.2S220.5 58.2 236 58.2S264 70.7 264 86.2zM264 152.4C264 167.9 251.5 180.4 236 180.4S208 167.9 208 152.4S220.5 124.4 236 124.4S264 136.9 264 152.4zM336 20C336 35.5 323.5 48 308 48S280 35.5 280 20S292.5 -8 308 -8S336 4.5 336 20zM336 86.2C336 101.7 323.5 114.2 308 114.2S280 101.7 280 86.2S292.5 58.2 308 58.2S336 70.7 336 86.2zM336 152.4C336 167.9 323.5 180.4 308 180.4S280 167.9 280 152.4S292.5 124.4 308 124.4S336 136.9 336 152.4zM360 192C355.2 214.3 352.6 228.9 344 248C305.2 267.9 253.5 280 200 280S94.8 267.9 56 248C47.2 228.5 44.8 214.1 40 192C82.2 199.9 138.7 206.8 200 206.8S317.8 199.9 360 192z" />
-			<glyph glyph-name="odnoklassniki-square" unicode="" horiz-adv-x="448" d=" M184.2 270.9C184.2 293 202.1 310.9 224 310.9S263.8 293 263.8 270.9C263.8 248.9 245.9 231.1 224 231.1S184.2 249.0000000000001 184.2 270.9000000000001zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM142.9 270.9C142.9 226.3 179.3 190 224 190S305.1 226.2 305.1 270.9C305.1 315.7 268.7 352 224 352S142.9 315.8 142.9 270.9zM317.4 180.2C312.8 189.3 300.1 197 283.3 183.8C283.3 183.8 260.6 165.8 224 165.8S164.6999999999999 183.8 164.6999999999999 183.8C147.8999999999999 197 135.1999999999999 189.3 130.5999999999999 180.2C122.6999999999999 164.1 131.6999999999999 156.5 152 143.2C169.3 132.1 193.1999999999999 128 208.5999999999999 126.4L195.6999999999999 113.5C177.5 95.5 160.1999999999999 78 148 65.8C130.4 48.2 158.6999999999999 20 176.4 37.2L224.1 85.1C242.3 66.9 259.8 49.4 271.8 37.2C289.4 20 317.8 47.9 300.4 65.8L252.7 113.5L239.7 126.4C255.2 128 278.8 132.3 295.9 143.2C316.3 156.5 325.2 164.2 317.4 180.2z" />
-			<glyph glyph-name="odnoklassniki" unicode="" horiz-adv-x="320" d=" M275.1 114C247.7 96.6 210 89.7 185.1 87.1L206 66.5L282.3 -9.8C310.2 -38.4 264.8 -83.1 236.6 -55.5C217.5 -36.1 189.5 -8.1 160.3 21.1L84 -55.4C55.8 -82.9 10.4 -37.8 38.6 -9.7C58 9.7 85.7 37.7 114.9 66.6L135.5 87.2000000000001C110.9 89.8000000000001 72.6 96.3000000000001 44.9 114.1C12.3 135.1 -2 147.4 10.6 173.1C18 187.7000000000001 38.3 200 65.2 178.8C65.2 178.8 101.5 149.9 160.1 149.9S255.0000000000001 178.8 255.0000000000001 178.8C281.9000000000001 199.9 302.1 187.7 309.6 173.1C322 147.4 307.7000000000001 135.1 275.1 114zM30.3 318.3C30.3 390 88.6 448 160 448S289.7 390 289.7 318.3C289.7 246.9 231.4 188.9 160 188.9S30.3 246.9 30.3 318.3zM96.3 318.3C96.3 283.2000000000001 124.9 254.6 160 254.6S223.7 283.2000000000001 223.7 318.3C223.7 353.7000000000001 195.1 382.3 160 382.3S96.3 353.7000000000001 96.3 318.3z" />
-			<glyph glyph-name="opencart" unicode="" horiz-adv-x="640" d=" M423.3 7.3C423.3 -18 403 -38.3 377.7 -38.3S331.9 -18 331.9 7.3S352.5 53.1 377.7 53.1C403.1 53.1 423.3 32.6 423.3 7.3zM169.4 53.1C144.1 53.1 123.8 32.5 123.8 7.3S144.1 -38.3 169.4 -38.3S215.2 -18 215.2 7.3S194.7 53.1 169.4 53.1zM461.1 323.1C158.9 323.1 81.9 335.9 0 422.3C34.4 370.6 53.3 273.4 373.1 278.1C706.4000000000001 283.1 503.1 192 443.9000000000001 89.2000000000001C630.6 255.9000000000001 763.3 323.1 461.1 323.1z" />
-			<glyph glyph-name="openid" unicode="" horiz-adv-x="448" d=" M271.5 16L203.5 -16C88.5 -5.7 0 55.5 0 129.8C0 201.3 82.5 260.8 191.7 274.1V231.1C120.2 218.6 67.7 178.1 67.7 129.8C67.7 78.8 126.2 36.5 203.4 26.8V366.8L271.4 400V16zM448 157L316.7 185.5L353.5 206.2C334 217.7 310 226.2 283.5 231V274C329.7 268.5 371.2 254.5 403.8 234.7L438.8 254.5L448 157z" />
-			<glyph glyph-name="opera" unicode="" horiz-adv-x="496" d=" M313.9 415.3C143.7 415.3 61.3 191.5 166.4 60.2C202.9 14.8 255 -15.4 313.9 -15.4C350.2 -15.4 384.2 -4.3 413.3 15C369.5 -24.2 311.4 -48 248 -48C244.1 -48 240 -48 236.1 -47.7C104.6 -41.6 0 66.9 0 200C0 337 111 448 248 448H248.8C311.9000000000001 447.7 369.5 423.9 413.2000000000001 384.9C384.2000000000001 404.3 350.1 415.3 313.9000000000001 415.3zM415.7 17.6C374.8 -7.1 325 -6 283.7 23.4C339.9 43.9 381.4 115 381.4 200C381.4 284.7000000000001 340.2 355.8000000000001 284 376.6C325.8 405.8 375.2 406.9000000000001 416.9 381.6C522.8 282.9000000000001 522.4 115.9 415.7 17.6z" />
-			<glyph glyph-name="optin-monster" unicode="" horiz-adv-x="576" d=" M550.671 -2.303C550.671 -13.923 534.998 -21.76 518.513 -17.166C506.353 -13.923 487.167 0.399 482.302 10.128C476.628 21.748 486.356 42.826 501.218 40.934C516.892 39.313 550.671 15.533 550.671 -2.3030000000001zM372.86 372.777C369.077 444.928 272.064 452.495 246.932 396.2870000000001C291.5200000000001 420.608 337.189 411.9600000000001 372.86 372.777zM74.795 40.934C59.122 39.313 25.343 15.533 25.343 -2.303C25.343 -13.923 41.016 -21.76 57.5 -17.166C69.66 -13.923 88.576 0.399 93.44 10.128C99.386 21.748 89.658 42.826 74.795 40.934zM572.56 26.612C573.641 23.099 574.452 19.586 574.452 15.803C575.262 -15.813 530.135 -48.242 500.949 -49.322C483.654 -50.132 466.359 -40.945 458.253 -25.812C344.7560000000001 -29.865 231.2590000000001 -30.676 118.033 -25.812C109.656 -40.945 92.361 -49.862 75.066 -49.322C46.151 -48.241 1.023 -15.813 1.563 15.803C1.833 19.586 2.374 23.099 3.455 26.612C-2.111 36.075 -1.39 41.894 8.86 38.232C12.103 43.366 15.886 47.6900000000001 19.94 52.014C17.37 62.931 21.21 66.108 31.019 61.202C35.613 64.445 41.017 67.687 46.963 70.39C46.963 86.147 58.802 81.521 64.258 76.065C76.725 77.845 84.387 75.356 91.011 70.39V90.116C78.024 90.116 50.37 101.491 45.071 126.328C40.097 147.053 47.678 164.403 70.203 173.888C71.013 179.833 78.31 187.94 85.065 189.832C92.632 191.724 97.496 185.238 99.117 179.563C106.542 179.563 116.874 178.098 120.195 171.456C125.6 171.997 131.274 172.808 136.679 173.348C134.2470000000001 175.24 131.545 176.861 128.572 177.942C123.438 186.859 114.79 189.021 103.981 189.562C103.981 190.372 103.981 191.183 104.251 192.264C84.524 192.805 60.203 197.939 49.394 210.099C28.073 233.737 33.459 293.6760000000001 61.554 313.5970000000001C69.931 319.2720000000001 83.172 314.408 84.253 303.8690000000001C86.678 283.271 84.652 277.0360000000001 110.465 277.927C118.572 285.7630000000001 127.22 292.519 136.948 297.9240000000001C122.086 299.2760000000001 108.034 296.303 93.17 294.1410000000001C105.922 306.6210000000001 117.123 319.5830000000001 149.918 336.5680000000001C173.429 348.4580000000001 199.911 357.3760000000001 226.123 359.807C207.477 367.6440000000001 186.13 371.6980000000001 166.402 376.2910000000001C242.877 392.5050000000001 340.971 398.4500000000001 410.691 338.7290000000001C428.796 323.326 443.118 302.5180000000001 453.3869999999999 278.7370000000001C493.1859999999999 273.884 489.857 284.3180000000001 492.03 303.8690000000001C493.111 314.1380000000001 506.352 319.2720000000001 514.7289999999999 313.3270000000001C529.5909999999999 302.7880000000001 536.8879999999999 282.5210000000001 539.319 265.2260000000001C541.481 247.3910000000001 539.5889999999999 223.8810000000001 526.889 210.0990000000001C516.08 197.9390000000001 492.569 192.5340000000001 473.113 191.994V189.2910000000001C462.033 189.0210000000001 452.845 186.859 447.44 177.6710000000001C444.468 176.59 441.766 174.9680000000001 439.063 173.0770000000001C444.738 172.537 450.413 171.7260000000001 455.818 171.186C457.687 176.8050000000001 468.353 179.5630000000001 476.895 179.5630000000001C478.516 184.968 483.651 191.453 490.947 189.8320000000001S504.999 179.8340000000001 505.81 173.888C516.619 169.564 527.969 161.728 530.941 148.216C532.8330000000001 140.109 532.562 133.083 531.211 126.328C525.485 101.066 497.85 90.116 485.272 90.116C485.272 83.36 485.272 76.8750000000001 485.002 70.39C493.012 76.3960000000001 501.369 77.5480000000001 511.754 76.0650000000001C517.673 81.984 529.3190000000001 85.4750000000001 529.3190000000001 70.39C534.994 67.6870000000001 540.6680000000001 64.4450000000001 545.263 61.2020000000001C555.363 66.253 558.932 61.741 556.072 52.0140000000001C560.125 47.6910000000001 564.179 43.0970000000001 567.151 38.2320000000001C577.2869999999999 41.8520000000001 578.1719999999999 36.1540000000001 572.56 26.6120000000001zM498.7869999999999 280.6280000000001C516.0819999999999 273.872 524.9989999999999 258.4690000000001 529.0519999999999 244.9580000000001C530.1329999999999 255.497 526.3499999999999 284.4110000000001 515.2699999999999 296.0310000000001C507.9739999999999 303.327 501.2179999999998 301.165 501.2179999999998 295.221C501.2189999999998 289.005 499.8679999999998 283.601 498.7869999999999 280.6280000000001zM480.1409999999999 268.198C493.1119999999999 252.525 497.1649999999999 226.583 492.8409999999999 205.235C503.6499999999999 207.397 513.3779999999999 211.45 519.0529999999999 217.395C520.9449999999999 219.557 522.8359999999999 222.259 523.9169999999999 224.961C522.8359999999999 246.3090000000001 513.6479999999999 267.658 494.1919999999999 273.8730000000001C490.9499999999999 270.63 485.0049999999999 269.009 480.1409999999999 268.198zM458.2519999999999 267.387C465.8189999999999 246.85 470.6829999999999 224.691 472.5739999999999 202.802C476.0869999999999 202.802 480.1409999999999 203.072 484.1939999999999 203.613C490.1389999999999 227.9340000000001 483.9239999999999 255.2270000000001 470.1419999999999 267.117C466.3589999999999 267.117 462.0349999999999 267.117 458.2519999999999 267.3870000000001zM77.768 280.628C76.687 283.601 75.336 289.005 75.336 295.221C75.336 301.166 68.31 303.328 61.284 296.031C49.934 284.411 46.421 255.497 47.502 244.958C51.555 258.47 60.473 273.873 77.768 280.628zM83.443 205.234C79.119 226.582 83.173 252.525 96.144 268.197C91.279 269.008 85.335 270.629 82.092 273.872C62.635 267.657 53.717 246.309 52.366 224.96C53.717 222.258 55.338 219.556 57.23 217.394C62.905 211.179 72.633 207.396 83.443 205.234zM124.788 266.307C119.654 265.226 114.79 263.334 109.926 261.442L97.766 256.308V256.578C90.47 242.526 87.767 222.259 92.361 203.613C96.955 203.072 101.008 202.802 105.061 202.802C107.493 224.961 114.249 246.58 124.788 266.307zM212.883 289.546C212.883 247.391 247.202 213.341 289.088 213.341S365.293 247.391 365.293 289.546C365.293 331.432 330.974 365.481 289.088 365.481S212.883 331.432 212.883 289.546zM365.293 192.263C375.262 141.655 368.592 127.571 381.777 134.164C397.721 142.271 404.476 173.347 404.747 191.183C391.776 191.993 378.534 191.993 365.293 192.263zM293.682 192.804V193.074C293.4120000000001 187.94 293.952 154.971 298.0060000000001 151.999C309.0850000000001 146.594 337.4590000000001 147.405 349.079 150.918C354.484 152.5389999999999 351.511 187.94 350.7 192.804C331.784 193.074 312.598 193.074 293.682 192.804zM279.629 192.804V193.074C260.173 192.804 240.987 192.804 221.8 192.263C219.908 183.076 217.206 143.352 223.692 140.649C236.663 134.974 265.308 135.515 278.278 139.028C282.8730000000001 141.46 280.711 184.427 279.629 192.804zM193.967 135.244C199.372 132.812 202.614 132.812 203.695 139.568C205.587 148.215 206.127 176.32 208.56 191.723C196.4 191.453 183.969 190.912 171.808 190.102C166.403 170.375 172.078 144.973 193.967 135.244zM128.301 146.324C172.079 99.304 220.99 60.661 284.2240000000001 39.8539999999999C351.7820000000001 59.0399999999999 399.8830000000001 99.8449999999999 447.4430000000001 146.8649999999999C436.348 151.1799999999999 439.7280000000001 157.2279999999999 440.1470000000001 158.4849999999999C431.2290000000001 159.2949999999999 422.3120000000001 160.3769999999999 413.6640000000001 161.1869999999999C404.206 128.2189999999999 377.7240000000001 108.2219999999999 366.9140000000001 129.5709999999999C364.2120000000001 134.7049999999999 363.4010000000001 141.1909999999999 362.3200000000001 146.3249999999999C358.5370000000001 137.9479999999999 349.0780000000001 138.218 337.7290000000001 137.4069999999999C324.4880000000001 136.3259999999999 306.112 136.0559999999999 293.6810000000001 140.3789999999999C290.7090000000001 127.4079999999999 282.6020000000001 127.4079999999999 266.9290000000001 126.0569999999999C252.8770000000001 124.7049999999999 218.287 122.0029999999999 212.072 136.8659999999999C210.9910000000001 108.2219999999999 176.942 126.868 166.9430000000001 143.892C163.7000000000001 149.567 161.5380000000001 155.242 159.917 161.4569999999999C152.0800000000001 160.6469999999999 144.244 159.836 136.406 158.755C138.8490000000001 155.0919999999999 137.9550000000001 149.7029999999999 128.3010000000001 146.324zM115.6 -5.545C109.926 17.694 96.954 44.177 82.092 48.501C59.663 55.257 13.183 24.991 15.885 -6.085C28.586 -25.542 55.879 -41.755 75.066 -42.566C92.901 -43.376 111.006 -31.486 114.79 -13.652C115.329 -11.22 115.6 -8.518 115.6 -5.5450000000001zM122.896 0.399C156.405 19.856 192.075 36.07 228.827 47.419C190.184 67.956 160.729 95.25 131.544 124.435C129.382 123.083 126.41 122.003 123.708 120.922C122.071 116.012 132.426 115.5920000000001 129.113 108.491C126.951 104.4370000000001 120.465 100.924 113.98 99.3030000000001C111.819 96.6010000000001 108.846 94.4390000000001 106.144 92.818H105.874C105.604 79.307 105.604 65.794 106.144 52.283C115.083 36.319 121.57 18.969 122.896 0.399zM443.6600000000001 -12.301C406.908 9.047 369.6160000000001 29.044 328.0010000000001 40.664C314.2190000000001 34.449 300.168 29.315 285.846 25.261C283.6840000000001 24.45 283.6840000000001 24.45 281.522 25.261C269.632 29.044 258.283 33.3679999999999 246.663 38.502C206.398 26.8819999999999 169.377 9.317 134.247 -12.301H133.977V-12.571C134.247 -12.571 134.247 -12.571 134.247 -12.301C237.474 -16.355 340.702 -15.814 443.66 -12.301zM470.683 51.744L470.4130000000001 51.474C470.9540000000001 65.256 471.224 79.037 471.224 92.8190000000001C468.251 94.4400000000001 465.549 96.8730000000001 463.1170000000001 99.5750000000001C456.6320000000001 100.9260000000001 450.1460000000001 104.7090000000001 447.9840000000001 108.4930000000001C446.0920000000001 112.5460000000001 449.3350000000001 116.059 453.9290000000001 118.7620000000001C453.6590000000001 119.3030000000001 453.3880000000001 120.3830000000001 453.3880000000001 121.1940000000001C450.4160000000001 122.0050000000001 447.9830000000001 123.0860000000001 445.8210000000001 124.4370000000001C414.2050000000001 94.9820000000001 380.4250000000001 67.6880000000001 342.3230000000001 47.6910000000001C381.2370000000001 36.0710000000001 418.2580000000001 19.5870000000001 454.1980000000001 0.1300000000001C455.2480000000001 14.8220000000001 461.4290000000001 35.8790000000001 470.6830000000001 51.7440000000001zM493.9230000000001 48.5C479.33 44.177 466.0890000000001 17.694 460.414 -5.546C460.414 -29.372 481.6920000000001 -43.443 500.948 -42.568C520.134 -41.757 547.428 -25.544 560.129 -6.087C563.102 24.99 516.6220000000001 55.257 493.923 48.5zM290.709 313.867C290.754 313.867 290.798 313.8640000000001 290.843 313.8640000000001C290.889 313.8640000000001 290.933 313.867 290.9790000000001 313.867H290.7090000000001zM290.709 217.124C319.354 217.124 342.593 238.742 342.593 265.495C342.593 301.587 302.086 323.574 270.442 309.813C279.9000000000001 306.841 286.926 298.193 286.926 288.195C286.926 264.938 253.635 256.24 240.446 276.8450000000001C233.149 242.778 259.814 217.124 290.709 217.124zM68.039 -26.083C68.579 -32.569 80.199 -38.784 89.657 -35.5410000000001C96.413 -32.8380000000001 104.25 -25.0020000000001 106.952 -19.3270000000001C109.925 -12.301 105.871 0.67 97.224 -0.9520000000001C88.307 -2.573 67.499 -17.7060000000001 68.039 -26.0830000000001zM478.789 -0.952C470.412 0.669 466.358 -12.301 469.331 -19.327C471.763 -25.002 479.6 -32.838 486.626 -35.541C495.813 -38.784 507.704 -32.569 507.974 -26.083C508.785 -17.706 487.707 -2.573 478.789 -0.952z" />
-			<glyph glyph-name="osi" unicode="" horiz-adv-x="495.8" d=" M0 188.8C2.3 324.6 97.4 421.2 213.8 436.9C352.6 455.5 469.4 361.1 491.8 235.8C513.1 117 447.8 5.8 340.2000000000001 -38.2C330.9000000000001 -42 325.8000000000001 -39.9 322.2000000000001 -30.5C304.4000000000001 15.8 286.6 62.2 268.8000000000001 108.5C265.7000000000001 116.6 267.8000000000001 121.7 275.8000000000001 125.3C300.0000000000001 136.3 315.1000000000001 154.7 319.1000000000001 181.1C325.5000000000001 223.5 294.6000000000001 259.8 254.6000000000001 263.3C215.6000000000001 266.7000000000001 182.8000000000001 239.6 177.1000000000001 203.6C171.9000000000001 170.6 188.2000000000001 139.9 219.0000000000001 125.9C228.6000000000001 121.5000000000001 230.5000000000001 117.3 226.8000000000001 107.5000000000001C208.9000000000001 60.9 191.0000000000001 14.3000000000001 173.1000000000001 -32.4C170.5000000000001 -39.3 164.8000000000001 -41.7 157.6000000000001 -38.9C105.0000000000001 -18.6 56.2000000000001 22.1 26.8000000000001 80.1C1.9 129.3 1.6 167.8 0 188.8zM20.9 190.7C21.3 184.1 21.5 176.4 22.2 168.6C28.5 96.6999999999999 71.8 25.1 153.2 -14.5C156.4 -16 157.6 -15.3 158.8 -12.2C173.7 26.9 188.7 66 203.8 105.1C205.1 108.4 204.4 109.9 201.4 111.8C169.8 131.7 154.1 160.3 155.8 197.8C156.8 219.4 165.1 238.3 179.6 254.1C209.6 286.8 256.6 293.9000000000001 295.1 271.7000000000001C327 253.3 344.6 217.9 340.3 181.3C336.7 150.7 321 127.4 294.6 111.5C291.9000000000001 109.9 291.1 108.6 292.3 105.5C307.5 66.3 322.5 27.1 337.5 -12.2C338.7 -15.3 339.9 -16 343.1 -14.5C378.6 2.1 408.3 25.8 431.2000000000001 57.5C466.0000000000001 105.7 480.3000000000001 159.4 473.5000000000001 218.5C459.8 336 354.1 433.3 218 416.5C111.9 403.5 22.7 314 20.9 190.7z" />
-			<glyph glyph-name="page4" unicode="" horiz-adv-x="496" d=" M248 -56C111 -56 0 55 0 192S111 440 248 440C268.9 440 289.3 437.4 308.7 432.5L42.3 56H248V-56zM248 87.6V301.2L98.6 87.6H248zM344 56V-36.7C389.7 -17.5 428.5 15 455.4 56H344zM401.4 194.2L380.2 185.8L401.4 177.5V194.2zM381.1 139.7C374.4 139.7 373.1 133.4 373.1 126.8V119.1H389.3V129.1C389.3 135 387 139.7000000000001 381.1 139.7000000000001zM496 192C496 154.7 487.8 119.3 473 87.6H344V420.7C433.3 383.2 496 294.9 496 192zM360.4 304.4H428.6V352H414.7V319.4H400.8V349H386.9000000000001V319.4H374.2000000000001V352H360.3000000000001V304.4zM428.5 119.1H402V130.1C402 145.5 396.4 155.3 381.1 155.3C365.7000000000001 155.3 360.4000000000001 144.7 360.4000000000001 129.4V104.1H428.6V119.1zM428.5 222.1L360.3 192.4V180L428.5 150.5V167.1L414.1 172.8V199.3L428.5 205.2V222.1zM423.7 290.6H388.1V264H402V276.2H413C421.6 260.4 414.3 240.9 394.4 240.9C371.9 240.9 366.1 266.2 378.9 278.6L367.3 289.2C351.1 271.7 355.1 225.3 394.4 225.3C428.4 225.3 439.1 261.2 423.7 290.6z" />
-			<glyph glyph-name="pagelines" unicode="" horiz-adv-x="384" d=" M384 135.3C328.9 -1.4 196.9 81.3 196.9 81.3C156.4 -0.5 89.5 -53.1 12.3 -53.4C-3.8 -53.4 -4.3 -29 12.3 -29C76.7 -28.7 132.8 13.7 169.5 81.1C128.4 65.2000000000001 50.9 53.2 7.9 163.3C116.9 208.2 167 152.1 186.2 117.8C196.1 142.2 203.2 168.7 207.8 197.5C207.8 197.5 68.1 175.6 58.3 295.6C177.4 343.5 210.9 218.9 210.9 218.9C212.5 235.6 214.2 271.5 214.2 272.3C214.2 272.3 107.9 346 176.1 437.5C300.7000000000001 394.5 237.5000000000001 275.1 237.5000000000001 275.1C238.0000000000001 273.5 238.0000000000001 251.3 237.5000000000001 241.7C237.5000000000001 241.7 282.7000000000001 330.7 373.9000000000001 299.2C369.7000000000001 165.1999999999999 232.0000000000001 192.8 232.0000000000001 192.8C227.6 165.4 220.8000000000001 139.4 212 115.3C212 115.3 295 207.1 384 135.3z" />
-			<glyph glyph-name="palfed" unicode="" horiz-adv-x="560" d=" M376.9 253.9C376.9 301.3 321.7 298.1 281.5 283.7000000000001C280.2 244.3 279 203 278.5 163.9C279.2 161.1 281.1 157.7000000000001 293.6 157.7000000000001C330.3 157.8000000000001 376.9000000000001 200.6000000000001 376.9000000000001 253.9000000000001zM182.4 181.7C182.6 181.7 188.9 184.4 193.6 184.4C220.2 184.4 214.3 140.3 179.2 140.3C157.7 140.3 142.1 158.4 142.1 183.3C142.1 225.3 185 278.9 242.8 309.8C243.8 322.2 245.8 331.8 253.3 338C264.5 347 279.9 341.5 282.8 326.9C355 349.1 418 325.9 418 254.9C418 177 338.7 102.3 277.9 116.7C277.8 77.3 278.8 42.3 280.6 16.7V16.5C280.8 13.1 281.2 4 275.3 -2.6C265.7 -13.2 241.9 -12.6 238.9 19.7C234.8 64.1 239.1 225.8 240.3 262.2C218.8 247.2 181.8 211.9 181.8 186.3C181.9 183.9 182.1 182.4 182.4 181.6999999999999zM0 266.7S-0.1 229.3 38.4 229.3H68.4L90.8 12.1S90.8 -32.2 135.5 -32.2H424.4S469.1 -31.8 469.1 12.1L491.4999999999999 229.3H521.5S559.9 228.1 559.9 266.7000000000001C559.9 266.7000000000001 560 304.1 521.5 304.1H491.4C484.1 329.7000000000001 461.2 378.4000000000001 372 378.4000000000001H344V397.5S341.3 415.9 322.9 415.9H237.1S216 415.9 216 397.5V378.4H187.9S82.9 374.2 67.4 304.1H38.4S0 305.3 0 266.7z" />
-			<glyph glyph-name="patreon" unicode="" horiz-adv-x="512" d=" M489.6 247.8C489.6 155.3 414.4000000000001 80.1 321.9000000000001 80.1C229.2000000000001 80.1 153.7000000000001 155.3 153.7000000000001 247.8C153.7000000000001 340.5 229.2000000000001 416 321.9000000000001 416C414.4000000000001 416 489.6 340.6 489.6 247.8zM22.4 -32H104.5V416H22.4V-32z" />
-			<glyph glyph-name="paypal" unicode="" horiz-adv-x="384" d=" M111.4 152.1C107.9 132.9 94 43.4 89.9 18.1C89.6 16.3 88.9 15.6 86.9 15.6H12.3C4.7 15.6 -0.8 22.2 0.2 29.5L58.8 401.4C60.3 411 68.9 418.3 78.8 418.3C231.1 418.3 243.9 422 282.8 406.9C342.9000000000001 383.6 348.4 327.4 326.8 266.6C305.3 204 254.3 177.1 186.7 176.3C143.3 175.6 117.2 183.3 111.4 152.1zM357.1 296C355.3 297.3 354.6 297.8 354.1 294.7C352.1 283.3 349 272.2 345.3 261.1C305.4000000000001 147.3 194.8 157.2 140.8 157.2C134.7 157.2 130.7 153.9 129.9 147.8C107.3 7.4 102.8 -21.9 102.8 -21.9C101.8 -29 106.3 -34.8 113.4 -34.8H176.9C185.5 -34.8 192.6 -28.4999999999999 194.3 -19.9C195 -14.5 193.2 -26 208.7 71.4C213.3 93.4 223 91.1 238.0000000000001 91.1C309 91.1 364.4000000000001 119.9 380.9000000000001 203.4C387.4000000000001 238.2000000000001 385.5000000000001 274.8000000000001 357.1 296z" />
-			<glyph glyph-name="periscope" unicode="" horiz-adv-x="448" d=" M370 384.4C331.4 425.4 280.5 448 226.6 448C111.9 448 18.5 351.8 18.5 233.6C18.5 158.5 76.3 73.8 101.2 40.9C137.8 -7.5 192.6 -64 226.6 -64C268.2 -64 339.5 30.2 347.5 41C372.1 74.1 429.5 159.3 429.5 233.6C429.5 290.1 408.4 343.7 370 384.4zM226.6 -45.9C184.1 -45.9 36.6 121.4 36.6 233.5C36.6 340.9 120.5 429.8 226.6 429.8C327.4 429.8 411.3 340.8 411.3 233.5C411.4 121.4 263.9 -45.9 226.6 -45.9zM338 241.2C338 182.1 286.9 131.5 227.2 131.5C126.6 131.5 76.5 239.7 134.3 313.3V312.9C134.3 288.4 154.4 268.5 179.1 268.5C203.8 268.5 223.9 288.4 223.9 312.9C223.9 331.1 212.8 346.7 197 353.6C273.6 372.8 338 314.3 338 241.2z" />
-			<glyph glyph-name="phabricator" unicode="" horiz-adv-x="496" d=" M323 185.9L322.9 198.9S344.6 218.7 344 220.1L334.5 240.1C333.9 241.5 305 240.6 305 240.6L295.6 249.9S295.8 278.4 294.4000000000001 279L274.3 288.2C272.9000000000001 288.8 253.6 267.2 253.6 267.2L240.5000000000001 267.4S220 288.8 218.6 288.2L198.6 279.9C197.2 279.4 198.8 251 198.8 251L189.7 241.9S160.5 242.8 160 241.5L151.9 221.6999999999999C151.3000000000001 220.2999999999999 172.9 200.6999999999999 172.9 200.6999999999999L173 187.8S151.3000000000001 168 151.9 166.6L161.4 146.6C162 145.2 190.9 146.1 190.9 146.1L200.3000000000001 136.8S200.1000000000001 104.9999999999999 201.5 104.4999999999999L221.6 96.1999999999999C223 95.5999999999999 242.3 119.6999999999999 242.3 119.6999999999999L255.4 119.5S275.9 95.6999999999999 277.2 96.1999999999999L297.2 103.6999999999999C298.6 104.3 297 135.8 297 135.8L306.1 144.9S335.3 144 335.8 145.4L343.9000000000001 165.2C344.6 166.3 323.0000000000001 185.9 323.0000000000001 185.9zM278.1 194.6C278.8 177.5 265.3 163 248.0000000000001 162.2C230.7 161.4 215.9 174.7 215.2000000000001 191.8C214.5000000000001 208.9 228.0000000000001 223.4 245.3000000000001 224.1C262.6 224.9 277.4000000000001 211.6 278.1 194.6zM479.3 232.5L382.3 329.5L382.2 329.4C307.1 402.7 186.8 402.2 112.4 327.8C61.5 276.8 84.6 299.9 16.7 232.5C-5.6 210.2 -5.6 173.8 16.7 151.5C86.6 82.1 63.1 105.5 114.1 54.5L114.2 54.6C189.3 -18.7 309.6 -18.3 384 56.2C435 107.1 411.9 84.1 479.3 151.5000000000001C501.6 173.8000000000001 501.6 210.2000000000001 479.3 232.5000000000001zM140.4 84.2C80.8 143.7 80.8 240.2 140.4 299.7C199.9 359.3 296.4 359.2 356 299.7C415.5 240.2 415.6 143.7 356 84.1C296.4 24.6 200 24.7 140.4 84.2000000000001z" />
-			<glyph glyph-name="phoenix-framework" unicode="" horiz-adv-x="640" d=" M213.2 108.8C217 108.9 236.1 110.2 238.8 111C236.4 113.7 195.2 112 170.7 160.7C166.4 169.4 163.2 178.3 164.3 188.3C167.2 213.8 197.2 218.3 216.4 206.8C252.4 185.2 279.8 115.3 330.2 109.2000000000001C367.3 104.7000000000001 414.9 126.2000000000001 438.5 154.6C437.9 154.7000000000001 437.7 154.8 437.5 154.7000000000001C437.1 154.6 436.7 154.5000000000001 436.4 154.4C403 142.3 342 144.7000000000001 301.6 169.2000000000001C263.9 192.0000000000001 248.4 228.0000000000001 249.7 243.9000000000001C251.5 265.3000000000001 272.6 267.1 285.7 263.5C300.0999999999999 259.5 310.0999999999999 245.9000000000001 324.7 236.1C340.3 225.7 357.7 222.4 376 225.8C390.8999999999999 228.5 410.3999999999999 238.1 412.5 240.3C411.3999999999999 240.4 410.7 240.4 410 240.5C403.8 241.1 397.6 241.3 391.3999999999999 242.2C280.1 258.7 262.5 406 138.7 415.5C94.3 418.9 39.1 407.4 2.2 380.5C1.4 379.9 0.7 379.3 0 378.7C0.1 378.5 0.1 378.4 0.2 378.2C1 378.3 1.8 378.3 2.6 378.4C8.9 379.4 15.1 379.2 21.4 378.1C45.3 373.8 69.2 355 77.4 301.5C82.7 267.2 76.7 250.6 85.4 215.3C104.3 138.1 176.4 107.5 213.2 108.8zM75.4 388.5C74.5 389.5 74.5 389.7 74.1 390.5C86.2 393.1 98.4 394.6 110.8 395.3C109.7 380.6 88.5 373.9 75.4 388.5zM272.6 37.6C229.7 36.4 180.5 64.4 148.9 99.1C144.3000000000001 104.1 132.1 119.4 130.3000000000001 122.5L130.7000000000001 122.9C137.3000000000001 118.8 156.4 104.2 185.6000000000001 95.8C209.8000000000001 88.8 233.7000000000001 89.4999999999999 257.3000000000001 99.1C280.0000000000001 108.4 298.3000000000001 99.6 300.4000000000001 96.2C281.9000000000001 92.4 280.3000000000001 91.8 276.3000000000001 88.3C271.2000000000001 83.9 271.7000000000001 76.6 283.3000000000001 71.1C309.5000000000001 58.7000000000001 346.3000000000001 73.9 380.6000000000001 45.7C383.0000000000001 43.7 388.7000000000001 37.9 390.7000000000001 35.0000000000001C390.6000000000001 34.8000000000001 390.4000000000001 34.7 390.3000000000002 34.5000000000001C385.5000000000001 36.0000000000001 373.8000000000002 42.0000000000001 350.1000000000002 43.8000000000001C325.4000000000002 45.8000000000001 303.8000000000002 38.4000000000001 272.6000000000002 37.6000000000001zM447.6 289.8C464 295 489 303.2000000000001 514.2 293.1C530.3000000000001 286.6 540.4000000000001 274.4000000000001 546.3000000000001 258.4000000000001C549.8000000000001 249.0000000000001 551.4000000000001 238.7000000000001 551.4000000000001 229.6C551.2 229.6 551.0000000000001 229.6 550.8000000000001 229.5000000000001C550.6 229.9000000000001 550.4000000000001 230.4000000000001 550.3000000000001 230.8000000000001C545.3000000000001 252.8000000000001 520.4000000000001 274.6 482.6000000000001 260.7000000000001C432.4000000000001 242.1000000000001 352.1000000000001 251.0000000000001 305.4000000000001 308.7000000000001C304.7000000000001 309.6 303.0000000000001 310.4000000000001 304.1000000000001 311.9000000000001C304.2000000000001 312.1 306.2000000000001 311.3000000000001 307.1000000000001 310.6C325.2000000000001 297.1 345.4000000000001 288.7000000000001 367.5000000000001 284.4000000000001C398.1000000000001 278.5 422.2000000000001 281.8000000000001 447.6 289.8000000000001zM550.4 172.2000000000001C518 172.0000000000001 516.6 122.0000000000001 446.7 107.8000000000001C428.4 104.1000000000001 408 103.2000000000001 401.7 103.6000000000001V104.0000000000001C404.5 105.5000000000001 416.4 106.6000000000001 431.4 120.6000000000001C439.3 127.9000000000001 446.7 135.8000000000001 454.2 143.5000000000001C473.8 163.8000000000001 495.7 185.8000000000001 536.2 182.5000000000001C559.3000000000001 180.7000000000001 565.5 174.3000000000001 572.4000000000001 169.8000000000001C572.7 169.6000000000001 572.8000000000001 169.3000000000001 573.1000000000001 168.9000000000001C572.6000000000001 168.9000000000001 572.4000000000001 168.8000000000001 572.2000000000002 168.9000000000001C565.2000000000002 171.6000000000001 557.9000000000002 172.2000000000001 550.4000000000002 172.2000000000001zM538.1 196.4C538 196.2000000000001 538 196 537.9 195.8000000000001C508.9 200.2000000000001 489.8 203.7000000000001 469.3 191.8000000000001C452.3 181.9000000000001 437.8 171.2000000000001 407.2 167.4000000000001C380.0999999999999 164.0000000000001 362 165.0000000000001 341 175.4000000000001C340.7 175.6000000000001 340.3999999999999 175.8000000000001 340 176.0000000000001C340 176.2000000000001 340.1 176.3000000000001 340.1 176.5000000000001C365 172.7000000000001 376.6 171.3000000000001 395.7 182.4000000000001C418.1 195.3000000000001 435.9 209.1000000000001 467.1 213.4000000000001C496.7 217.3000000000001 518.4 210.7000000000001 538.1 196.4000000000001zM269 356.1C268.4 356.7 267.9 357.3 266.9 358.4C274.5 358.4 296.6 359.6 320.3 350C340 342 352.6 328.9 370.6 317C381.7 309.7 394.1 307.7 407.1 308.9C411.4 309.3 415.6 310.1 419.9 310.6C420.3 310.7 420.8 310.6 421.4 310.3C420.8 309.9 420.2 309.4 419.6 309.1C411.5 305.1 402.9 302.8 394 301.9C367.8999999999999 299.3 343.6 305.6 320.5 317.3C301.1 327.3 284 340.3 269 356.1zM640.8 117.4C637.3 114.3 618.0999999999999 105.8 598 112.1C585.7 116 578.5 127 566.4 136.2C556.4 143.8 545.5 144.1 538.1999999999999 144.6C538.8 145.4 539.0999999999999 145.8 539.4 146C554.1999999999999 155.1999999999999 569.9 158.1999999999999 586.8 152.5C599.3 148.3 606.0999999999999 139 617.1999999999999 128.3C627.9999999999999 117.9 638.1999999999999 118.4 640.4 117.8C640.5 117.9 640.6 117.6999999999999 640.8 117.4zM428 -19.8C430.2 -21 429.6 -21.3 429.5 -21.8C411 -20.4 395.6 -14.2 382.7 0.4C360.9 25.1 340.9 28.3 334 30.1C334.5 30.3 334.8 30.4999999999999 335.1 30.4999999999999C348.2000000000001 30.3999999999999 361.3 29.8 374.1 26.6C399.4000000000001 20.2 409.1 1.2 415.7000000000001 -8.8C418.9000000000001 -13.5 423.1 -17.1 428.0000000000001 -19.8z" />
-			<glyph glyph-name="pied-piper-alt" unicode="" horiz-adv-x="576" d=" M242 261C248.3 272.8 255.2 278 267.9 282.8C295.2 293.1 308.1 313.3 326.8 333.9C338.7 325.5 338.8 309.3 358.4 310.9V289.1L364.7 288.8C402.1 303.2 439.4 319 471.3 343.4C519.5999999999999 380.2 524.1999999999999 393.4 552.5999999999999 443.4L554.5999999999999 446C553.9999999999999 431.9 548.3 418.7 542.1999999999999 406.1C511.6999999999999 342.3 463.4999999999999 305.8 395.3999999999999 289.4C383 286.5 369 286.2 357.7999999999999 280.5C359.1999999999999 270.7 370.9999999999999 262.4 370.9999999999999 257.5C370.9999999999999 254.1 365.4999999999999 250.3 363.4999999999999 248.9C352.2999999999999 261.8 347.3999999999999 268.2 340.7999999999999 271C333.1999999999999 274.5 276.8999999999999 277.4 241.9999999999999 261zM379.9 4.1C360.9 4.1 315.8 -5.4 300 -15.7L306.9 -60.8C342.6 -66.9 377 -64.4 412.9 -51C408.1 -41 389.4 4.1 379.9 4.1zM244 202C240.8 204 237.7 204.9 233.9 204.9C227.3 204.9 221.3 201.7 214.6 201.2L216.3 196.3L244 202zM231.4 170.2L255.5 109L276.5 122.8L245.2 173.7L231.4 170.2zM555.5 448L554.9 446.9L554.6 446L555.2 446.6L555.5 448zM496.3 65.9C462.4 122.8 421 184.3 346.3 181.4L346 187.4C344.9 200.9 378.8 184.2 381.1 218.4L366.7000000000001 211.2C346.9000000000001 256.9 358.1 265.5 301.2000000000001 265.5C286.5000000000001 265.5 274.5000000000001 263.8 259.8000000000001 260.9C262.7000000000001 242.3 262.0000000000001 224.2 248.9000000000001 210.6L268.4000000000001 205.1C266.7000000000001 201.9 265.5000000000001 198.8 265.5000000000001 195.3C265.5000000000001 174.3 308.3000000000002 192.4 308.3000000000002 161.7C308.3000000000002 143.3 271.5000000000001 101.6 253.4000000000001 101.6C245.4000000000001 101.6 199.7000000000001 151.6 200.0000000000001 161.7L200.3000000000001 166.3L252.6000000000002 177.8C265.6000000000002 180.4 264.9000000000002 200.5 249.7000000000002 200.5C246.0000000000002 200.5 206.6000000000001 191.3 200.3000000000001 189.9C198.3000000000001 195.1 192.8000000000001 204 186.5000000000001 204C183.3000000000001 204 180.2000000000001 200.8 177.0000000000001 200C167.8000000000001 197.4 146.0000000000001 197.1 155.5000000000001 179.9L15.9 149.5C10.4 148.4 7 143.2 7 137.7C7 131.7 12.5 126.8 18.5 126.8C26.5 126.8 149.8 155.2 165.9 159C168.5 155.8 170.5 152.7 173.7 150.4C193.8 136 233.5 64.5 250.1 64.5C274.2000000000001 64.5 308.1 86.9 321.4000000000001 106.4C324.6 110.7 328.3 113.9 333.8 113.3C334.4000000000001 99.4999999999999 302.2 79.1 300.8 69.6C299.4000000000001 59.4 299.8 34.4 300.5 28.4999999999999C327.2 20.3999999999999 352.5 32.1 378.4 31.3999999999999C382.7 52.3999999999999 389 73.2999999999999 388.2 94.8999999999999L387.9 104.3999999999999C386.5 138.5999999999999 377 142.8999999999999 353.1 163C352 164.1 350.5 165.6 349.4 167C351.6 168.3999999999999 350.5 168 354 168.6999999999999C442.5 168.6999999999999 410.3 -14.9000000000001 465.5 -61.2C498.6 -46.2 538 -33.3000000000001 569 -14.0000000000001C540 11.6 516.4 31.6999999999999 496.3 65.9zM300.1 19.9V-7.4L311.9000000000001 -4.0000000000001L309.0000000000001 19.8H300.1000000000001zM376.2000000000001 17C376.2000000000001 18.4 375.6 20.2 375.3000000000001 21.6C348.5000000000001 21.6 338.4000000000001 17.8 315.8000000000001 15.3L317.8000000000001 2.9C326.8000000000001 4.4 376.2000000000001 9.5000000000001 376.2000000000001 17.0000000000001z" />
-			<glyph glyph-name="pied-piper-pp" unicode="" horiz-adv-x="448" d=" M205.3 273.4C205.3 252.3 191.1 235.3 173.6 235.3C166.5 235.3 160.8 236.5 156.4 239V307C160.8000000000001 309.7 166.5 311.2 173.6 311.2C191.1 311.2 205.3 294.3 205.3 273.4zM257.9000000000001 206.4C250.8000000000001 206.4 245.1 204.9 240.7000000000001 202.2V134.2000000000001C245.1000000000001 131.7000000000001 250.8000000000001 130.5000000000001 257.9000000000001 130.5000000000001C275.3 130.5000000000001 289.6 147.4 289.6 168.3000000000001C289.6 189.4000000000001 275.3 206.4000000000001 257.9000000000001 206.4000000000001zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM185 192.9C226 192.9 259.2 228.5 259.2 272.5C259.2 316.5 226 352.1 185 352.1C173 352.1 160.9 348.9 150.4 343.3H104.7V137L156.5 147.1V197.7C165.1 194.6 174.6 192.9 185 192.9zM343.4 167.6C343.4 211.6 310.2 247.2 269.5 247.2C266.3 247.2 263.1 247.0000000000001 259.9 246.5000000000001C256.2 234.0000000000001 249.8 222.7 240.7 213.1C226.9 198.1 208.5 189.3 188.9 188.3V32L240.7 42.1V92.7000000000001C249.3 89.5000000000001 258.9 88.0000000000001 269.4 88.0000000000001C310.2 88.0000000000001 343.4 123.6000000000001 343.4 167.6z" />
-			<glyph glyph-name="pied-piper" unicode="" horiz-adv-x="640" d=" M640 423.1C559.2 369.5 550.6 330.6 543.6 318.7C536.9 306.5 531.9 258.4 520.3000000000001 235.1C508.6000000000001 211.5 466.1000000000001 192.9 454.2 185.1C442.5000000000001 177.3 425.9000000000001 147 412.3000000000001 120.9C304.2000000000001 125.3 244.9000000000001 82.1 153.1000000000001 27.3000000000001C182.5000000000001 37.0000000000001 196.4000000000001 44.0000000000001 196.4000000000001 44.0000000000001C290.6000000000001 80.0000000000001 335.7000000000001 112.3000000000001 477.5000000000001 93.2000000000001C478.6000000000001 93.2000000000001 479.4000000000001 92.6 480.3000000000001 92.4C484.2000000000001 90.2000000000001 485.6000000000001 85.5000000000001 483.4000000000001 81.6L429.5000000000002 -14.2C427.0000000000002 -18.9 421.7000000000002 -21.4 416.4000000000002 -20.3C289.6000000000002 3.5 189.5000000000002 -37.6 97.5000000000002 -38.9C24.1 -40 0 -5.4 0 -3.8C0 -2.7 0.6 -2.1 1.7 -2.1C1.7 -2.1 40 -2.1 104.8 13.2C178.4 153.5 244 202.6 315.4 202.6C315.4 202.6 387.1 202.6 406 140.7C428.8 180.4 434.3 189.9 434.3 189.9C439.6 199.3 469.3 267.1 520.7 331.3C572.2 395.3 611.1 411.2 640 423.1z" />
-			<glyph glyph-name="pinterest-p" unicode="" horiz-adv-x="384" d=" M204 441.5C101.4 441.5 0 373.1 0 262.4C0 192 39.6 152 63.6 152C73.5 152 79.2 179.6 79.2 187.4C79.2 196.7 55.5 216.5 55.5 255.2C55.5 335.6 116.7 392.6 195.9 392.6C264 392.6 314.4 353.9 314.4 282.8C314.4 229.7 293.1 130.1 224.1 130.1C199.2 130.1 177.9 148.1 177.9 173.9C177.9 211.7000000000001 204.3 248.3000000000001 204.3 287.3000000000001C204.3 353.5000000000001 110.4 341.5000000000001 110.4 261.5C110.4 244.7 112.5 226.1 120 210.8C106.2 151.4 78 62.9 78 1.7C78 -17.1999999999999 80.7 -35.8 82.5 -54.6999999999999C85.9 -58.4999999999999 84.2 -58.0999999999999 89.4 -56.1999999999999C139.8 12.8000000000001 138 26.3000000000001 160.8 116.6000000000001C173.1 93.2000000000001 204.9 80.6000000000001 230.1 80.6000000000001C336.3 80.6000000000001 384 184.1000000000001 384 277.4000000000001C384 376.7 298.2 441.5 204 441.5z" />
-			<glyph glyph-name="pinterest-square" unicode="" horiz-adv-x="448" d=" M448 368V16C448 -10.5 426.5 -32 400 -32H154.4C164.2 -15.6 176.8 8 181.8 27.3C184.8 38.8 197.1 85.7 197.1 85.7C205.1 70.4 228.5000000000001 57.5 253.4000000000001 57.5C327.5 57.5 380.8000000000001 125.6 380.8000000000001 210.2C380.8000000000001 291.3 314.6000000000001 352 229.4000000000001 352C123.4000000000001 352 67.2000000000001 280.9 67.2000000000001 203.4C67.2000000000001 167.4 86.4000000000001 122.6 117.0000000000001 108.3C121.7000000000001 106.1 124.1000000000001 107.1 125.2000000000001 111.6C126.0000000000001 115 130.2000000000001 131.7000000000001 132.0000000000001 139.4C132.6000000000001 141.9 132.3000000000001 144.0000000000001 130.3000000000001 146.4C120.2000000000001 158.7000000000001 112.0000000000001 181.3 112.0000000000001 202.4C112.0000000000001 256.6 153.0000000000001 309 222.9000000000001 309C283.2000000000001 309 325.5000000000001 267.9000000000001 325.5000000000001 209.1C325.5000000000001 142.7000000000001 292.0000000000001 96.7000000000001 248.3000000000002 96.7000000000001C224.2000000000001 96.7000000000001 206.2000000000001 116.6 211.9000000000001 141.1C218.8000000000001 170.3 232.2000000000002 201.8 232.2000000000002 222.9C232.2000000000002 275.9000000000001 156.7000000000001 268.6 156.7000000000001 197.9C156.7000000000001 176.2000000000001 164.0000000000002 161.4 164.0000000000002 161.4C132.6000000000001 28.6 127.9000000000002 26.9 134.4000000000002 -31.1999999999999L136.6000000000001 -31.9999999999999H48C21.5 -31.9999999999999 0 -10.4999999999999 0 16.0000000000001V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368z" />
-			<glyph glyph-name="pinterest" unicode="" horiz-adv-x="496" d=" M496 192C496 55 385 -56 248 -56C222.4 -56 197.8 -52.1 174.6 -44.9C184.7 -28.4 199.8 -1.4 205.4 20.1C208.4 31.7 220.8 79.1 220.8 79.1C228.9 63.7000000000001 252.5 50.6 277.6 50.6C352.4000000000001 50.6 406.3 119.4 406.3 204.9C406.3 286.8000000000001 339.4 348.1 253.4 348.1C146.4 348.1 89.5 276.3 89.5 198C89.5 161.6 108.9 116.3 139.8 101.9C144.5 99.7000000000001 147 100.7000000000001 148.1 105.2000000000001C148.9 108.6 153.1 125.5000000000001 155 133.3000000000001C155.6 135.8000000000001 155.3000000000001 138.0000000000001 153.3000000000001 140.4000000000001C143.2000000000001 152.9000000000001 135 175.7000000000001 135 197.0000000000001C135 251.7000000000001 176.4 304.6000000000001 247.0000000000001 304.6000000000001C307.9000000000001 304.6000000000001 350.6 263.1000000000001 350.6 203.7000000000001C350.6 136.6000000000001 316.7000000000001 90.1000000000001 272.6 90.1000000000001C248.3 90.1000000000001 230.0000000000001 110.2000000000001 235.9000000000001 134.9000000000001C242.9000000000001 164.4000000000001 256.4000000000001 196.2000000000001 256.4000000000001 217.5000000000001C256.4000000000001 236.5000000000001 246.2000000000001 252.4000000000001 225 252.4000000000001C200.1 252.4000000000001 180.1 226.7000000000001 180.1 192.2000000000001C180.1 170.2000000000001 187.5 155.4000000000001 187.5 155.4000000000001S163 51.6000000000001 158.5 32.2000000000001C153.5 10.8000000000001 155.5 -19.3999999999999 157.6 -38.9999999999999C65.4 -2.9 0 86.9 0 192C0 329 111 440 248 440S496 329 496 192z" />
-			<glyph glyph-name="playstation" unicode="" horiz-adv-x="576" d=" M570.9 75.7C559.6 61.5 532.1 51.4 532.1 51.4L327 -22.2V32.1L477.9 85.9C495 92.0000000000001 497.7 100.7000000000001 483.7 105.3C469.8 109.9 444.6 108.6 427.5 102.4L327 66.9V123.3C350.2 131.1 374.1 136.9 402.7 140.1C443.6 144.6 493.6 139.5 532.9 124.6C577.1 110.6 582.1 89.9 570.9 75.7zM346.5 168.2V307.2C346.5 323.5 343.5 338.5 328.2 342.8C316.5 346.6 309.2 335.7 309.2 319.4V-28.5L215.4 1.3V416C255.3 408.6 313.4 391.1 344.6 380.6C424.1 353.3 451 319.3 451 242.8C451 168.3 405 140 346.5 168.2000000000001zM43.2 37.8C-2.2 50.6 -9.8 77.3 10.9 92.6C30 106.8 62.6 117.5 62.6 117.5L197.1 165.3V110.8L100.3 76.2C83.2 70.1 80.6 61.4 94.5 56.8C108.4 52.2 133.6 53.5 150.7000000000001 59.7L197.1000000000001 76.6V27.8C145.5000000000001 18.4999999999999 95.7000000000001 20.4999999999999 43.2 37.8z" />
-			<glyph glyph-name="product-hunt" unicode="" horiz-adv-x="512" d=" M326.3 229.2C326.3 208.7 309.6 192 289.1 192H218.8V266.4H289.1C309.6 266.4 326.3 249.7 326.3 229.2zM504 192C504 55 393 -56 256 -56S8 55 8 192S119 440 256 440S504 329 504 192zM375.9 229.2C375.9 277.1 337 316 289.1 316H169.2V68H218.8V142.4H289.1C337 142.4 375.9 181.3 375.9 229.2z" />
-			<glyph glyph-name="pushed" unicode="" horiz-adv-x="432" d=" M407 336.1L308.5 345.1L322.5 378.5C332.9 402 311.7 418.9 293.8 415.5L22.5 371.1C7.4 368.4 -3.5 352.8 1.1 334.5L106.2 -13.8C112.7 -35.1 142.9 -38 153.9 -20.8L189.2 60L424.4 291.3C440.8 308.1 428.7 334.2000000000001 407 336.1zM297.6 394.4C302.7000000000001 395.1 305.1 391.9 302.8 387L286 347.1L108.6 363.4L297.6 394.4zM22.7 340.1C19.6 345.2 23.7 350.1 28.8 349.2L277.5 326.5L180.6 95.8L22.7 340.1zM136 -8.4C133.4 -12.4 128.1 -11.5 126.6 -7.2L43.5 268.3L171.2 70.7000000000001C164.2 55.7 136 -8.4 136 -8.4zM408.8 306.1L210.1 110.7L299.8 324.4L406.2000000000001 314.7C410.2000000000001 313.6 411.9000000000001 309.4 408.8000000000001 306.1z" />
-			<glyph glyph-name="python" unicode="" horiz-adv-x="448" d=" M167.8 411.6C122.6 403.6 114.4 386.9 114.4 356V315.3H221.3V301.7000000000001H74.3C43.2 301.7000000000001 16 283 7.5 247.5C-2.3 206.8 -2.7 181.4 7.5 138.9C15.1 107.3 33.2 84.7 64.3 84.7H101V133.5C101 168.8 131.5 199.9 167.8 199.9H274.6C304.3 199.9 328 224.4 328 254.2V356.1C328 385.1 303.6 406.8 274.6 411.7C238.8 417.6 199.9 417.3 167.8 411.6zM161.1 383.2C172.1 383.2 181.2 374 181.2 362.8S172.2 342.5 161.1 342.5C150 342.5 141 351.6 141 362.8C141.1 374.1 150 383.2000000000001 161.1 383.2000000000001zM346.3 301.8V254.3C346.3 217.5 315.1 186.5 279.5 186.5H172.7C143.5 186.5 119.3 161.5 119.3 132.2V30.4C119.3 1.4 144.5 -15.6 172.7 -23.9C206.5 -33.8 239 -35.6 279.5 -23.9C306.4 -16.1 332.9 -0.4 332.9 30.4V71.1H226.2V84.7H386.4C417.5 84.7 429 106.4 439.8 138.9C450.9999999999999 172.4 450.4999999999999 204.6 439.8 247.5C432.1 278.4 417.5 301.7 386.4 301.7H346.3zM286.2 44C297.3 44 306.3 34.9 306.3 23.7C306.3 12.4 297.3 3.3 286.2 3.3C275.2 3.3 266.1 12.5 266.1 23.7C266.2 35 275.2 44 286.2 44z" />
-			<glyph glyph-name="qq" unicode="" horiz-adv-x="448" d=" M433.754 27.555C422.228 26.162 388.894 80.296 388.894 80.296C388.894 48.951 372.758 8.049 337.843 -21.49C354.685 -26.682 392.6860000000001 -40.657 383.646 -55.911C376.3300000000001 -68.254 258.136 -63.792 224.014 -59.948C189.892 -63.792 71.698 -68.254 64.382 -55.911C55.337 -40.661 93.3 -26.697 110.165 -21.496C75.245 8.043 59.106 48.949 59.106 80.2960000000001C59.106 80.2960000000001 25.772 26.162 14.247 27.5550000000001C8.877 28.205 1.823 57.1990000000001 23.594 127.2590000000001C33.855 160.2830000000001 45.589 187.7370000000001 63.738 233.0380000000001C60.683 349.937 108.982 447.9940000000001 224 448C337.737 447.9940000000001 387.156 351.867 384.264 233.037C402.382 187.814 414.176 160.187 424.408 127.259C446.1760000000001 57.199 439.124 28.206 433.754 27.555z" />
-			<glyph glyph-name="quora" unicode="ï‹„" horiz-adv-x="448" d=" M440.5 61.3H411.2C409.7 47.8 400.7 30.5 378.2 30.5C357.7 30.5 342.9 44.7 328.7 66.3C372.9 100.5 403.4 153.8 403.4 219.3C403.5 336.8 306.8 416 205 416C105.3 416 7.3 336.3 7.3 219.3C7.3 85.2000000000001 138.6 -2.3 256.3 30.3C276 -3.3 302 -32 351.5 -32C433.3 -32 442.3 43.3 440.5 61.3zM297 118.8C277.5 148 253.3 171 205.5 171C175 171 151.2 161 136.5 148.2L148.7 123.9C154.9 126.9 161.7 127.9 168.5 127.9C204 127.9 222.2 97.1 237.7 66.6C227.7 63.6 217 62.4 205 62.4C130 62.4 97.5 115.4 97.5 219.1C97.5 323.5 130 377 205 377C281.2 377 313.7 323.5 313.7 219.3C313.8 177.5 308.3 143.7000000000001 297 118.8z" />
-			<glyph glyph-name="ravelry" unicode="ï‹™" horiz-adv-x="512" d=" M407.4 386.5C331.6 425.9 257.8 417 182.9 382C171.6 376.8 167.4 371.4 163 363C152.7 343.8 146.8 325.6 143.1 310.3C121.9 284.7000000000001 106.7 254.2 99.8 220.4C89.2 202.4 78.9 179 76.7 149C76.7 149 76 141.4 76.2 141.1C40.9 145.7000000000001 0 168.1 0 168.1C9.1 153.6 61.3 135.8 76.3 130.2000000000001C76.3 130.2000000000001 78 32.2 140.8 -0.9999999999999C129.5 16.2 127.5 19.2 127.5 19.2S94.8 79 100.4 123.3C101.1 123.3 101.9 123.1 102.6 123.1C126.5 35.7 205.8 -28.3 299.5 -28.3C305.7 -28.3 311.6 -28.1 317.5 -27.6C331.5 -29.1 345.1 -28.1 357.6 -23.7C364.5 -21.5 371.4000000000001 -17.3 377.8 -12.9C448 26.2 478.7 69.1 500.9 134.8C506.3 150.8 509 170.3 510.7 187C519.4 269.3 480.1 348.6 407.4 386.5zM138.8 284.8S137.6 272.5 138.1 265.1C134.7 262.6 128 257 119.9 248.4000000000001C125.1 261.2000000000001 131.2 273.5 138.8 284.8000000000001zM107.6 162.9C112 180.1 120.9 202 137.4 218C137.4 218 139.1 170 153.2 127.9L111.8 134.8C109.6 144 108.3 153.3 107.6 162.9zM115.5 120.1C130.3 116.9 149.5 112.4999999999999 158.6 110.9999999999999C185.9 34.1999999999999 266.9000000000001 -13.3000000000001 266.9000000000001 -13.3000000000001C267.9000000000001 -13.8000000000001 268.6 -14.0000000000001 269.6 -14.3000000000001C196.5 -2.7 136.9 50.3999999999999 115.5 120.0999999999999zM386 3.9C371.5 -0.8 349.8 -4.5 321.3 0.2C321.3 0.2 230.2 23.3 193.8 108C232 107.3 246.2 108.2 271.8 111.9C311.2 117.6 350.8 128.1 386.8 144.9C398.6 150.3 397.9000000000001 164.3 396.4000000000001 174.7C394.4000000000001 187.5 385.3 186.8 375.0000000000001 179.4C375.0000000000001 179.4 293.0000000000001 120.8 185.2000000000001 125.7C166.5000000000001 157.7 158.4 236.5 158.4 236.5C199.8000000000001 271.7 241.6 296.1 326.8000000000001 288.9C327.0000000000001 295.3 329.8000000000001 316 306.4000000000001 317C306.4000000000001 317 212.9000000000001 328.1 160.4000000000001 283.5C162.9000000000001 300 166.3000000000001 312.8 171.5000000000001 322.9C205.7000000000001 353.7 250.5000000000001 372.4 299.8000000000001 372.4C406.2000000000001 372.4 492.8000000000001 285.3 492.8000000000001 177.9C492.6000000000001 101.9 449.0000000000001 35.9 386.0000000000001 3.9z" />
-			<glyph glyph-name="react" unicode="" horiz-adv-x="512" d=" M418.2 270.8C412.8 272.6 407.4 274.3 402 275.9C402.9 279.6 403.7 283.3 404.5 287C416.8 346.6 408.7 394.5 381.4 410.3C355.1 425.4 312.2 409.7 268.8 371.9C264.5 368.2 260.3 364.3 256.3 360.4C253.6 363 250.8 365.6 248 368.1C202.5 408.5 156.9 425.5 129.5999999999999 409.6C103.3999999999999 394.4 95.5999999999999 349.3 106.5999999999999 292.9C107.6999999999999 287.3 108.8999999999999 281.8 110.2999999999999 276.2000000000001C103.8999999999999 274.4 97.5999999999999 272.4 91.6999999999999 270.3C38.3 251.8 0 222.6 0 192.4C0 161.2 40.8 129.9 96.3 110.9C100.8 109.4 105.3 107.9 109.9 106.6C108.4 100.6 107.1 94.7 105.9 88.6C95.4 33.1 103.6 -10.9 129.8 -26C156.8 -41.6 202.2 -25.6 246.4 13.1C249.9 16.2 253.4 19.4 256.9 22.8C261.3 18.5 265.9 14.4 270.5 10.4C313.3 -26.4 355.6 -41.3 381.7 -26.2C408.7 -10.6 417.5 36.7 406.1 94.3C405.2 98.7 404.2 103.2 403.1 107.8C406.3 108.7 409.4 109.7 412.5 110.7C470.1999999999999 129.8 511.9999999999999 160.7 511.9999999999999 192.4C511.9999999999999 222.7 472.6 252.1 418.2 270.8zM282.9 355.7C320.1 388.1 354.8 400.8 370.6 391.7C387.5 382 394 342.8 383.4 291.3C382.7 287.9 382 284.6 381.1 281.3C358.9 286.3 336.4 289.9 313.8 291.9C300.8 310.5 286.6 328.3 271.2 345C275.0999999999999 348.7 278.8999999999999 352.2 282.8999999999999 355.7zM152.9 166.6C157.5 157.8 162.2 149.1 167.2 140.5C172.3 131.8 177.5 123.1 183 114.6C167.4 116.3 151.9 118.8 136.6 122.1C141 136.5 146.5 151.4 152.9 166.6zM152.9 217.2C146.6 232.1 141.3 246.7 136.9 260.8C151.3 264 166.6 266.6 182.5 268.6C177.2 260.3 172 251.8 167.1 243.2C162.2 234.7 157.4 226.0000000000001 152.9 217.2zM164.3 191.9C170.9 205.7000000000001 178.1 219.2000000000001 185.7 232.5000000000001C193.3 245.8000000000001 201.5 258.7000000000001 210.1 271.4000000000001C225.1 272.5 240.4 273.1 256 273.1C271.6 273.1 287 272.5 301.9 271.4000000000001C310.4 258.8000000000001 318.5 245.9000000000001 326.2 232.7000000000001C333.9 219.5000000000001 341.1 206.0000000000001 347.9 192.3000000000001C341.2 178.5000000000001 334 164.9 326.3 151.5000000000001C318.7 138.2000000000001 310.6 125.3000000000001 302.1 112.5000000000001C287.2 111.4 271.7 110.9 256 110.9C240.3 110.9 225.1 111.4 210.4 112.3C201.7 125 193.5 138 185.8 151.3C178.1 164.6 171 178.1 164.3 191.9zM344.9 140.7000000000001C350 149.5000000000001 354.8 158.4 359.5 167.4C365.9 152.9 371.5 138.2000000000001 376.4 123.1C360.9 119.6 345.2 116.9 329.4 115.1C334.8 123.5 339.9 132.1 344.9 140.7000000000001zM359.3 217.2000000000001C354.6 226.0000000000001 349.8 234.8000000000001 344.8 243.4000000000001C339.9 251.9000000000001 334.8 260.3000000000001 329.5 268.6C345.6 266.6 361 263.9000000000001 375.3999999999999 260.6C370.7999999999999 245.8 365.3999999999999 231.4000000000001 359.2999999999999 217.2zM256.2 329.7C266.7 318.3 276.6 306.3 285.8 293.9C266 294.8 246.1 294.8 226.3 293.9C236.1 306.8 246.2 318.8 256.2 329.7zM140.2 391C157 400.8 194.3 386.8 233.6 352C236.1 349.8 238.6 347.4 241.2 345C225.7 328.3 211.4 310.5 198.3 291.9C175.7 289.9 153.3 286.4 131.1 281.5C129.8 286.6 128.7 291.8 127.6 297C118.2 345.4 124.4 381.9 140.2 391zM115.7 127.4C111.5 128.6 107.4 129.9 103.3 131.3C82 138 57.8 148.6 40.3 162.5C30.2 169.5 23.4 180.3 21.5 192.4C21.5 210.7 53.1 234.1 98.7 250C104.4 252 110.2 253.8 116 255.5C122.8 233.8 131 212.5 140.5 191.8999999999999C130.9 171 122.6 149.3999999999999 115.7 127.3999999999999zM232.3 29.4C215.8 14.3 196.7 2.3 175.9 -5.9C164.8 -11.2 152 -11.7 140.6 -7.2C124.7 1.9999999999999 118.1 37.3 127.1 84.8C128.2 90.4 129.4 95.9999999999999 130.8 101.4999999999999C153.2 96.6999999999999 175.8 93.3999999999999 198.7 91.6999999999999C211.9 72.9999999999999 226.4 55.0999999999999 241.9 38.3C238.7 35.1999999999999 235.5 32.1999999999999 232.3 29.4zM256.8 53.7C246.6 64.7 236.4 76.9 226.5 90C236.1 89.6 246 89.4 256 89.4C266.3 89.4 276.3999999999999 89.6 286.3999999999999 90.1C277.2 77.4 267.2999999999999 65.3 256.7999999999999 53.7zM387.5 23.7C386.6 11.5 380.6 0.1 371 -7.6C355.1 -16.8 321.2 -4.8 284.5999999999999 26.6C280.3999999999999 30.2 276.2 34.1 271.8999999999999 38.1C287.2 54.9999999999999 301.2999999999999 72.9 314.0999999999999 91.7C336.9999999999999 93.6 359.7999999999999 97.1 382.2999999999999 102.2C383.2999999999999 98.1 384.1999999999999 94 384.9999999999999 90C389.8999999999999 68.4 390.6999999999999 45.9 387.4999999999999 23.7zM405.7 131.2C402.8999999999999 130.3 400.0999999999999 129.4 397.2 128.6C390.2 150.4 381.5999999999999 171.7 371.7 192.4C381.3 212.8 389.3999999999999 233.8 396.2 255.3C401.3999999999999 253.8 406.3999999999999 252.2 411.2 250.6C457.8 234.6 490.4999999999999 210.8 490.4999999999999 192.6C490.4999999999999 173 455.6 147.7 405.7 131.2zM256 237.8C281.3 237.8 301.8 217.3 301.8 192C301.8 166.7 281.3 146.2 256 146.2C230.7 146.2 210.2 166.7 210.2 192C210.2 217.3 230.7 237.8 256 237.8" />
-			<glyph glyph-name="rebel" unicode="" horiz-adv-x="512" d=" M256.5 -56C117.2 -56 9 60.2 13.2 198.1C16 277.3 56.4 350.3 129.7 398.5C130 398.5 131.6 399.1 130.8 397.7C125 392.2 19.5 267.9 116.7 171.3C166.5 121.8 206.7 168.8 206.7 168.8C245.2 218.9 206.1 294.7000000000001 206.1 294.7000000000001C196.1 319.6 160.4 334.8 160.4 334.8L189.2 366.6C213.6 356.1 232.4 327.9 232.4 327.9C233.2 357.5 210.5 389.3 210.5 389.3L255.1 440L299.4 389.9C278.9 361.1 277.5 327.3 277.5 327.3C291.3 350.3 321 366.6 321 366.6L349.5 334.8C322.1 325.9 304.1 294.9 304.1 294.9C288.3 266.4 277 205.5 304.7000000000001 167.6C337.1 123 392.4000000000001 170.4 392.4000000000001 170.4C495.1 262.3000000000001 381.9000000000001 395.4000000000001 381.9000000000001 395.4000000000001C375.8 400.9000000000001 382.7000000000001 398.2000000000001 382.7000000000001 398.2000000000001C432.8000000000001 361.7000000000001 497.3000000000001 313.8 498.9 193.4C500.9 47.8 399 -56 256.5 -56z" />
-			<glyph glyph-name="red-river" unicode="" horiz-adv-x="448" d=" M353.2 416H94.8C42.4 416 0 373.6 0 321.2V62.8C0 10.4 42.4 -32 94.8 -32H353.2C405.6 -32 448 10.4 448 62.8V321.2C448 373.6 405.6 416 353.2 416zM144.9 247.1V190.8C144.9 163.8 123 141.9 96 141.9V296.1C96 309.3 106.7 320 119.9 320H274.1C274.1 293 252.2 271.1 225.2 271.1H168.9C156.6 271.7 144.3000000000001 259.5 144.9 247.1zM321.2000000000001 175.1H264.9000000000001C252.6 175.7000000000001 240.3000000000001 163.5 240.9000000000001 151.1V94.8C240.9000000000001 67.8 219 45.9 192 45.9V200.1C192 213.3 202.7 224 215.9 224H370.1C370.1 197 348.2000000000001 175.1 321.2000000000001 175.1z" />
-			<glyph glyph-name="reddit-alien" unicode="" horiz-adv-x="512" d=" M440.3 244.5C425.3 244.5 412.1 238.3 402.4000000000001 228.6C366.7000000000001 253.3 318.6 269.2 265.3000000000001 270.9L293 395.7L381.2 375.9C381.2 354.3 398.8 336.7 420.4 336.7C442.4 336.7 460.1 354.8 460.1 376.4S442.5 416.1 420.4 416.1C405 416.1 391.7 406.8 385.1 394.1L287.7 415.7C282.8 417 278 413.5 276.7 408.6L246.3 271C193.4 268.8 145.8 252.9 110 228.2C100.3 238.3 86.6 244.5 71.6 244.5C16 244.5 -2.2 169.9 48.7 144.4C46.9 136.5 46.1 128.1 46.1 119.7C46.1 35.9 140.5 -32 256.4 -32C372.8 -32 467.2 35.9 467.2 119.7C467.2 128.1 466.3 136.9 464.1 144.8C514 170.4 495.6 244.5 440.3 244.5zM129.4 139.1C129.4 161.1 147 178.8 169.1 178.8C190.7 178.8 208.3 161.2 208.3 139.1C208.3 117.5 190.7 99.9 169.1 99.9C147.1 99.8 129.4 117.5000000000001 129.4 139.1zM343.7000000000001 45.6C307.3000000000001 9.2 204.6000000000001 9.2 168.2000000000001 45.6C164.2000000000001 49.1 164.2000000000001 55.3 168.2000000000001 59.3C171.7000000000001 62.8 177.9 62.8 181.4 59.3C209.2000000000001 30.8 301.4000000000001 30.3 330.4000000000001 59.3C333.9000000000001 62.8 340.1 62.8 343.6 59.3C347.7000000000001 55.3 347.7000000000001 49.1 343.7000000000001 45.6zM342.9000000000001 99.8C321.3 99.8 303.7000000000001 117.4 303.7000000000001 139C303.7000000000001 161 321.3000000000001 178.7 342.9000000000001 178.7C364.9000000000001 178.7 382.6 161.1 382.6 139C382.5 117.5 364.9000000000001 99.8 342.9000000000001 99.8z" />
-			<glyph glyph-name="reddit-square" unicode="" horiz-adv-x="448" d=" M283.2 102.5C285.9 99.8 285.9 95.7 283.2 93.3C258.7 68.8 189.4 68.7 164.8 93.3C162.1 95.7 162.1 99.8 164.8 102.5C167.2 104.9 171.3 104.9 173.7 102.5C192.4 83.3 254.7 82.9 274.2 102.5C276.6 104.8 280.8 104.8 283.2 102.5zM191.9 156.3C191.9 171.2 180 183.1 165.4 183.1C150.5 183.1 138.6 171.2000000000001 138.6 156.3C138.6 141.7 150.5 129.8 165.4 129.8C180 129.8 191.9 141.7 191.9 156.3zM282.6 183.1C268 183.1 256.1 171.2000000000001 256.1 156.3C256.1 141.7 268 129.8 282.6 129.8C297.5 129.8 309.4 141.7 309.4 156.3C309.4 171.2 297.5 183.1 282.6 183.1zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM348.3 227.4C338.2 227.4 329.3 223.2 322.7 216.7C298.6 233.4 266.2 244.1 230.2 245.3L248.9 329.5L308.4 316.1C308.4 301.5 320.3 289.6 334.9 289.6C349.8 289.6 361.7 301.8 361.7 316.4000000000001C361.7 331 349.8 343.2000000000001 334.9 343.2000000000001C324.5 343.2000000000001 315.6 337 311.1 328.3L245.4 342.9000000000001C242.1 343.8 238.9 341.4000000000001 238 338.1L217.5 245.3C181.8 243.8 149.7 233.1 125.6 216.4C119.1 223.2 109.8 227.4 99.7 227.4C62.2 227.4 49.9 177 84.2 159.9C83 154.5 82.4 148.9 82.4 143.2C82.4 86.7 146.1 40.9 224.3 40.9C302.8 40.9 366.5 86.7 366.5 143.2C366.5 148.9 365.8999999999999 154.8 364.3999999999999 160.2C398 177.4 385.5999999999999 227.4 348.2999999999999 227.4z" />
-			<glyph glyph-name="reddit" unicode="" horiz-adv-x="512" d=" M201.5 142.5C187.7 142.5 176.6 153.6 176.6 167.1C176.6 180.9 187.7 192 201.5 192C215.1 192 226.1 180.9 226.1 167.1C226.1 153.5 215 142.5 201.5 142.5zM504 192C504 55 393 -56 256 -56S8 55 8 192S119 440 256 440S504 329 504 192zM371.7 233.2C362.3 233.2 354 229.3 347.9 223.2C325.5 238.7 295.3 248.7 261.8 249.8L279.2 328.1L334.5999999999999 315.6C334.5999999999999 302 345.7 291 359.2 291C373 291 384.0999999999999 302.3 384.0999999999999 315.9S372.9999999999999 340.8 359.2 340.8C349.5 340.8 341.2 335 337.0999999999999 327L275.8999999999999 340.6C272.8999999999999 341.4 269.7999999999999 339.2 269 336.2L249.9 249.8C216.6999999999999 248.4 186.8 238.5 164.4 223C158.3 229.4 149.7 233.2 140.3 233.2C105.4 233.2 94 186.3 125.9 170.3999999999999C124.8 165.3999999999999 124.2 160.1999999999999 124.2 154.8999999999999C124.2 102.2999999999999 183.4 59.6999999999999 256.2 59.6999999999999C329.3 59.6999999999999 388.5 102.3 388.5 154.8999999999999C388.5 160.1999999999999 387.8999999999999 165.6999999999999 386.6 170.6999999999999C417.9 186.6999999999999 406.4 233.2 371.7 233.2zM302.8 117C284.6 98.8 226.7 99.1 209.2 117C207 119.2 203.1 119.2 200.9 117C198.4 114.5 198.4 110.6 200.9 108.4C223.7 85.6 288.2 85.6 311.1 108.4C313.6 110.6 313.6 114.5 311.1 117C308.9000000000001 119.2 305 119.2 302.8 117zM310.5 192C296.9 192 285.9 180.9 285.9 167.1C285.9 153.5 297 142.5 310.5 142.5C324.3 142.5 335.4 153.6 335.4 167.1C335.4 180.9 324.4 192 310.5 192z" />
-			<glyph glyph-name="rendact" unicode="" horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56C266.6 -56 284.7 -53.9 302.1 -50.1C296.5 -42.7 291.3 -35.7 286.2000000000001 -28.8C273.8000000000001 -30.9 261.0000000000001 -32.1 247.9000000000001 -32.1C124.3 -32 24 68.3 24 192S124.3 416 248 416S472 315.7 472 192C472 121 439 57.8 387.5 16.7C361.6 -2.1 348.4 -4.7 304 60.9C225.3 173.8 256 132 230.3 169.2C303.1 160.3 458.8 241.2 398.9 337.8C314 474.8 15 354.2 59.7 221.6C62.9 211.8 74.1 183 105.3 183C107.3 183 107.9 183.6 107.3 184.7C102.9 193.4 87.2 194.5 87.2 222.1C87.2 262.6 127.7 311.7 187.5 342.1C253.6 374.4 319.4 372.3 345.7 336.7C372.9 298.4 324.8 217.5 225.3 199.8C232.8 209.2 282.3 275 288.1 283.8C310.8 318.4 311.7 332.8 302.1 343C286.6 359.9 272.6 353.3 251.4 354.7C240.6 355.6 137.7 173.5 115 137.8C109.1 128.8 93.8 103.6999999999999 93.8 86.9C93.8 65.6 96.6 35.5 114.4 35.5C125 35.5 122.4 54.2 122.4 62.1C122.4 75 149.8 111.5 197.2 166.7000000000001C217.6 130.6 254.9 52.4 327.4 -42.9999999999999C425.4 -9.8999999999999 495.9 82.8000000000001 495.9 192.0000000000001C496 329 385 440 248 440z" />
-			<glyph glyph-name="renren" unicode="" horiz-adv-x="512" d=" M214 278.9C214 168.5 153 73.5 66.4 31.5C30 74.8 8 130.3 8 191.4C8 314.1 97.1 415.8 214 435.5V278.9zM255 -56C212.1 -56 171.7 -45 136.5 -25.6C193.7 10.5 239.9 65.1 255 129C270.5 65.1 316.7 10.5 373.8 -25.7C338.7 -45 298.3 -56 255 -56zM445.6 31.5C359 73.5 298 168.4 298 278.9V435.5C414.9 415.8 504 314.1 504 191.4C504 130.3 482 74.8 445.6 31.5z" />
-			<glyph glyph-name="replyd" unicode="" horiz-adv-x="448" d=" M320 -32H128C57.6 -32 0 25.6 0 96V288C0 358.4 57.6 416 128 416H320C390.4 416 448 358.4 448 288V96C448 25.6 390.4 -32 320 -32zM193.4 174.8C187.3 176.8 181.8 177.9 177 177.9C169.8 177.9 163.5 176.0000000000001 158.1 172.3C152.7 168.6 148.5 163.3 145.3 156.5H144.2L140 174.8H112V35.9H148.1V125.6C149.6 131 152.5 135.4 156.8 138.8C161.1 142.1999999999999 166.6 143.9 173 143.9C177.6 143.9 182.8 142.9 188.6 140.8L193.4 174.8zM308.6 71.4C305.4000000000001 69 300.9000000000001 66.6 294.9000000000001 64.3C288.9000000000001 61.9999999999999 282.1 60.8 274.5000000000001 60.8C262.3000000000001 60.8 253.4000000000001 63.8 248.0000000000001 69.6999999999999C242.5000000000001 75.5999999999999 239.5000000000001 84.3999999999999 239.0000000000001 96.0999999999999H322.3000000000001C323.2000000000001 100.8999999999999 323.9000000000001 105.4999999999999 324.4000000000001 109.9999999999999C324.9000000000001 114.3999999999999 325.1000000000001 118.5999999999999 325.1000000000001 122.4999999999999C325.1000000000001 133.1999999999999 323.5000000000001 142.1999999999999 320.4000000000001 149.3999999999999C317.2000000000001 156.5999999999999 313.1000000000001 162.3999999999999 307.9000000000001 166.5999999999999C302.7000000000001 170.8999999999999 296.8000000000001 173.8999999999999 290.1000000000001 175.7999999999999C283.4000000000001 177.5999999999999 276.6000000000001 178.5999999999999 269.5000000000001 178.5999999999999C248.4000000000001 178.5999999999999 232.0000000000001 172.4999999999998 220.3000000000001 160.2999999999999S202.8000000000001 129.7999999999999 202.8000000000001 105.2999999999998C202.8000000000001 82.4999999999998 208.0000000000001 64.5999999999999 218.4000000000001 51.5999999999999C228.8000000000001 38.4999999999998 245.2000000000001 31.9999999999998 267.6000000000001 31.9999999999998C278.3000000000001 31.9999999999998 288.5000000000001 33.4999999999998 298.0000000000001 36.5999999999999C307.5000000000001 39.6999999999999 315.1000000000001 43.3999999999999 320.6000000000001 47.7999999999998L308.6000000000001 71.3999999999999zM286.8 141.7C290.6 136.3 292.1 128.6 291.4000000000001 118.6H239.7000000000001C240.6000000000001 128 243.4000000000001 135.6 247.9000000000001 141.2C252.4000000000001 146.8 259.4000000000001 149.7 268.9000000000001 149.7C277.1 149.8 283.0000000000001 147.1 286.8 141.7zM366.7000000000001 139.2C370.8000000000001 135.3 376.1 133.4 382.8000000000001 133.4C389.8000000000001 133.4 395.4000000000001 135.3 399.5000000000001 139.2S405.6000000000001 148.3 405.6000000000001 154.8S403.6000000000001 166.4 399.5000000000001 170.2C395.4000000000001 174 389.9000000000001 175.9 382.8000000000001 175.9C376.1000000000001 175.9 370.8000000000001 174 366.7000000000001 170.2C362.6 166.4 360.6 161.3 360.6 154.8S362.6 143.1 366.7000000000001 139.2zM366.7000000000001 38.7C370.8000000000001 34.8 376.1 32.9 382.8000000000001 32.9C389.8000000000001 32.9 395.4000000000001 34.8 399.5000000000001 38.7S405.6000000000001 47.8 405.6000000000001 54.3S403.6000000000001 65.9 399.5000000000001 69.7C395.4000000000001 73.5 389.9000000000001 75.4 382.8000000000001 75.4C376.1000000000001 75.4 370.8000000000001 73.5 366.7000000000001 69.7C362.6 65.9 360.6 60.8 360.6 54.3C360.6 47.7 362.6 42.6 366.7000000000001 38.7z" />
-			<glyph glyph-name="resolving" unicode="" horiz-adv-x="496" d=" M281.2 169.8C327.2 183.1 330.8 193.3 325.2 213.2L314 252.5C307.9 273.4 295.6 280.6 242.9 265.3L54.7 211.2L83.3 112.6L281.2000000000001 169.8zM248.5 440C131.4 440 33.2 359.3 7.2 250.5L229.1 314.4C263.9 324.6 283.3 326.1 308.4 322.6C344.7 316.5 361.1 297.6 369.8 267.4L380.5 229.6C388.7 201.5 381.5 179 357 156C337.6 138.6 325.8 131.5 295.6 122.8L203 96.2L423.4 69.1L433.1 34.9L385 21.6L98.1999999999999 58.9L121.1999999999999 -21.3C158 -43.3 201.5 -56 247.5 -56C384.5 -56 495.9999999999999 55.4 495.9999999999999 192.3C497 328.6 385.5 440 248.5 440zM38.3 59.4L0 191.2C0 142.7 14.3 97.8 38.3 59.4z" />
-			<glyph glyph-name="rocketchat" unicode="" horiz-adv-x="448" d=" M448 191.8C448 279 348.4 345.1 228.2 345.1C209.4 345.1 190.9 343.5 172.9 340.3C161.8 350.8 148.7 360.3 134.9 367.7000000000001C61.2 403.8 0 368.6 0 368.6S56.9 321.5 47.6 280.3C-4.7 228 -4.9 156.2000000000001 47.6 103.7000000000001C56.9 62.4 0 15.4 0 15.4S61.2 -19.8 134.9 16.2C148.7 23.7 161.8 33.1 172.9 43.6C190.9 40.4 209.4 38.8 228.2 38.8C348.5 38.9 448 104.6 448 191.8zM228.3 67.8C204.6 67.8 182 70.6 161 75.6C139.7 49.8 92.9 13.9 47.4 25.5C62.2 41.5 84.1 68.6 79.4 113.1C52.1 134.5 35.8 161.8 35.8 191.6C35.8 260 122 315.5 228.3 315.5S420.8 260 420.8 191.6C420.8 123.3 334.6 67.8 228.3 67.8zM253.9 191.7000000000001C253.9 177.5000000000001 242.4 165.9 228.3 165.9C214.2 165.9 202.7 177.4 202.7 191.7000000000001C202.7 205.9 214.2 217.5000000000001 228.3 217.5000000000001C242.4 217.5000000000001 253.9 205.9000000000001 253.9 191.7000000000001zM342.8 191.7000000000001C342.8 177.5000000000001 331.4000000000001 165.9 317.2 165.9C303.1 165.9 291.6 177.4 291.6 191.7000000000001C291.6 205.9 303 217.5000000000001 317.2 217.5000000000001C331.3 217.5000000000001 342.8 205.9000000000001 342.8 191.7000000000001zM164.9 191.7000000000001C164.9 177.5000000000001 153.5 165.9 139.3 165.9C125.2 165.9 113.7 177.4 113.7 191.7000000000001C113.7 205.9 125.1 217.5000000000001 139.3 217.5000000000001C153.5 217.5000000000001 164.9 205.9000000000001 164.9 191.7000000000001z" />
-			<glyph glyph-name="rockrms" unicode="" horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM405.4 20.5H315.4L203.4 151.8C185.5 172.2 199.5 207.9 230 207.9H305.3L220.7 307.2L136.4 208.3H46.4L193.5 380.8C207.9 399.2 234.8 398.1 248 380.8L405.7 195.7C424.7 172.9 407.7 138.5 378.1 139.6C377.5 139.6 303.9 139.4 303.9 139.4L405.4 20.5z" />
-			<glyph glyph-name="safari" unicode="" horiz-adv-x="512" d=" M236.9 191.2C236.9 200.3 243.5 208.9 253.2 208.9C262.1 208.9 270.6 202.5 270.6 192.8C270.6 183.7 264.2000000000001 175.1 254.5000000000001 175.1C245.5000000000001 175.1 236.9000000000001 181.8 236.9000000000001 191.2zM504 192C504 55 393 -56 256 -56S8 55 8 192S119 440 256 440S504 329 504 192zM477.4 192C477.4 314.3 378.3 413.4 256 413.4S34.6 314.3 34.6 192S133.7 -29.4 256 -29.4S477.4 69.7 477.4 192zM404.9 95.4C404.9 91.8 417.9 85.2 421.2 83.2C393.8 41.7 351.4 11.8 303.3 -0.1L298.9 18.4C298.6 20.9 297 21.2 294.7 21.2C292.8 21.2 291.7 18.4 291.9 17L296.3 -1.8C283 -4.6 269.5 -6 255.9 -6C219.6 -6 183.9 4.2 152.9 23.1C154.5999999999999 25.9 165.0999999999999 41.1 165.0999999999999 43.3C165.0999999999999 45.2 163.4 46.9 161.5 46.9C157.5999999999999 46.9 149.3 30.3 146.8 27.0000000000001C105 54.7 74.8 97.6 63.2 146.6L82.3 150.8C84.5 151.4 85.1 153 85.1 155C85.1 156.9 82.3 158 80.7 157.8L62 153.5C59.5 166.2 58.1 179 58.1 192C58.1 229.1 68.6 265.6 88.3 296.9C91.1 295.2000000000001 104.4 286.1 106.6 286.1C108.5 286.1 110.2 287.5 110.2 289.4C110.2 293.3 95.5 300.7000000000001 92.2 303C120.4 344.2 163.3 373.9 212 384.9L216.2 366.4C216.8 364.2 218.4 363.6 220.4 363.6S223.4 366.4 223.2 368L219 386.3C231.2 388.5 243.6 389.9 256.1 389.9C293.2000000000001 389.9 329.4000000000001 379.4 361 359.7C359.1 356.9 350.2 343.9 350.2 341.7C350.2 339.8 351.6 338.1 353.5 338.1C357.4 338.1 364.8 352.5 366.8 355.8C407.8 328.1 437.1 285.8 448.5 237.6L433 234.3C430.5 233.7 430.2 232.1 430.2 229.9C430.2 228 433 226.9 434.4 227.1L450.2 230.7C452.7 218 454.1 205 454.1 192C454.1 155.7 444.1 120 425.3 89.3C422.5 90.7 410.9 99 408.7 99C406.5999999999999 99 404.8999999999999 97.3 404.8999999999999 95.4zM371.7 337.6C358.7 325.4 237.5 213.9 234.1 208.1L137.5 47.6C150.2 59.4999999999999 271.7 171.6 274.8 176.9L371.7000000000001 337.6z" />
-			<glyph glyph-name="sass" unicode="" horiz-adv-x="640.4" d=" M551.1 156.1C528.7 156 509.3 150.6 493.1 142.6C487.2 154.5 481.1 164.9 480.1 172.7000000000001C478.9 181.8000000000001 477.6 187.2000000000001 479 198.0000000000001S486.7 224.1000000000001 486.6 225.2000000000001C486.5 226.3000000000001 485.2 231.8000000000001 472.3 231.9000000000001C459.4 232.0000000000001 448.3 229.4000000000001 447 226.0000000000001C445.7 222.6 443.2 214.9 441.7 206.9C439.4 195.2000000000001 415.9 153.4 402.6 131.6C398.2 140.1 394.5 147.6 393.7 153.6C392.5 162.7000000000001 391.2 168.1 392.6 178.9S400.3 205 400.2 206.1C400.1 207.2 398.8 212.7 385.9 212.8C373 212.9 361.9 210.3 360.6 206.9C359.3 203.5 357.9 195.5 355.3 187.8C352.7 180.1 321.4 110.5 313.2 92.4C309 83.2 305.3999999999999 75.8 302.8 70.8S302.6 70.4999999999999 302.4 69.9C300.2 65.6 298.9 63.2 298.9 63.2V63.1C297.2 59.9 295.3 56.9999999999999 294.4 56.9999999999999C293.8 56.9999999999999 292.5 65.3999999999999 294.7 76.8999999999999C299.4 101.0999999999999 310.5 138.6999999999999 310.4 140C310.3 140.6999999999999 312.5 147.1999999999999 303.1 150.6999999999999C294 154 290.7 148.5 289.9 148.5C289.1 148.5 288.5 146.5 288.5 146.5S298.6 188.8999999999999 269.1 188.8999999999999C250.7 188.8999999999999 225.1 168.6999999999999 212.5 150.3999999999999C204.6 146.0999999999999 187.5 136.7999999999999 169.5 126.8999999999999C162.6 123.0999999999999 155.5 119.1999999999999 148.8000000000001 115.5C148.3000000000001 116 147.9 116.5 147.4 117C111.6 155.1999999999999 45.5 182.1999999999999 48.3 233.5C49.3 252.2 55.8 301.3 175.4 360.9C273.4000000000001 409.7 351.8000000000001 396.3 365.3000000000001 366.5C384.7000000000001 324 323.4000000000001 244.9 221.6000000000001 233.5C182.8000000000001 229.2 162.4000000000001 244.2 157.3000000000001 249.8C152.0000000000001 255.7 151.2000000000001 256 149.2000000000001 254.9C145.9000000000001 253.1 148.0000000000001 247.9 149.2000000000001 244.8C152.2000000000001 236.9 164.7000000000001 222.9 186.0000000000001 215.9C204.7000000000001 209.8 250.2000000000001 206.4 305.2000000000001 227.7C367 251.5 415.1 317.8 401 373.3C386.6 429.7 293.1 448.2 204.6 416.8C151.9 398.1 94.9 368.7 53.9 330.4C5.2 284.8 -2.6 245.1 0.6 228.5C12 169.6 93.2 131.2 125.7 102.8C124.1 101.9 122.6 101.1 121.2 100.3C104.9 92.2 43 59.8 27.5 25.6C10 -13.2 30.4 -41 43.8 -44.8C85.6 -56.4 128.4 -35.4999999999999 151.4 -1.1999999999999S171.6 77.9000000000001 161 98.3000000000001C160.9 98.6000000000001 160.7 98.8000000000001 160.6 99.1000000000001C164.8 101.6000000000001 169.1 104.1000000000001 173.4 106.6000000000001C181.7 111.5000000000001 189.8 116.0000000000001 196.9 119.9000000000001C192.9 109.1000000000001 190 96.1000000000001 188.5 77.3000000000001C186.7 55.3000000000001 195.8 26.8000000000001 207.6 15.6000000000001C212.8 10.7000000000001 219.1 10.6000000000001 223 10.6000000000001C236.8 10.6000000000001 243 22.0000000000001 249.9 35.6000000000001C258.4 52.2000000000001 265.9 71.5000000000001 265.9 71.5000000000001S256.5 19.3000000000001 282.2 19.3000000000001C291.6 19.3000000000001 301 31.4000000000001 305.2 37.6000000000001V37.5000000000001S305.4 37.9 305.9 38.7C306.9 40.2 307.4 41.1 307.4 41.1V41.4C311.2 47.9 319.5 62.8 332 87.4C348.2 119.2000000000001 363.7 158.9 363.7 158.9S365.1 149.2000000000001 369.9 133.1C372.7 123.6 378.6 113.2000000000001 383.3 103.1C379.5 97.9 377.2 94.9 377.2 94.9S377.2 94.8 377.3 94.7000000000001C374.3 90.7000000000001 370.9 86.4 367.4 82.2000000000001C354.6 67.0000000000001 339.4 49.6 337.4 44.6C335 38.7 335.6 34.3 340.2 30.9C343.6 28.3 349.6 27.9 355.9 28.4C367.4 29.2 375.5 32.0000000000001 379.4 33.8C385.6 36 392.8 39.5 399.6 44.4C412.1 53.6 419.7 66.8 419 84.2000000000001C418.6 93.8000000000001 415.5 103.4 411.7 112.4C412.8 114.0000000000001 414 115.7000000000001 415.0999999999999 117.4C434.8999999999999 146.3 450.2 178.0000000000001 450.2 178.0000000000001S451.5999999999999 168.3000000000001 456.3999999999999 152.2000000000001C458.7999999999999 144.1 463.4999999999999 135.2000000000001 467.7999999999999 126.5000000000001C449.1999999999999 111.4 437.6999999999999 93.9 433.6999999999999 82.4C426.2999999999999 61.1 432.0999999999999 51.5000000000001 442.9999999999999 49.3C447.8999999999999 48.3 454.8999999999999 50.6 460.0999999999999 52.8C466.5999999999999 55 474.3999999999999 58.5 481.6999999999999 63.9C494.1999999999999 73.1 506.3 86.0000000000001 505.4999999999999 103.5000000000001C505.1999999999999 111.4 502.9999999999999 119.3000000000001 500.1 126.9C515.8 133.5000000000001 536.1999999999999 137.1 562.1999999999999 134.1C617.9 127.6 628.8 92.8 626.6999999999999 78.3C624.5999999999999 63.7 612.9 55.7 608.9999999999999 53.3C605.0999999999999 50.9 603.8999999999999 50 604.1999999999999 48.2C604.6999999999999 45.6 606.4999999999999 45.7 609.8 46.3C614.4 47.1 639 58.1 640.0999999999999 85C641.6999999999999 119 608.9999999999999 156.4 551.0999999999999 156.1zM121.8 11.4C103.4 -8.7 77.6 -16.3 66.5 -9.9C54.6 -3 59.3 26.6 82 48C95.8 61 113.6 73 125.4 80.4C128.1 82 132 84.4 136.8 87.3C137.6 87.8 138 87.9999999999999 138 87.9999999999999C138.9 88.6 139.9 89.1 140.9 89.6999999999999C149.2 59.3 141.2 32.4999999999999 121.8 11.3999999999999zM256.2 102.8C249.8 87.1 236.3 47.1 228.1 49.1999999999999C221.1 50.9999999999999 216.8 81.4999999999999 226.7 111.4999999999999C231.7 126.6 242.3 144.6 248.6 151.6C258.7 162.9 269.8 166.5 272.4 162C275.9 156.1 260.2 112.6 256.2 102.8zM367.2 49.8C364.5 48.4 362 47.4999999999999 360.8 48.1999999999999C359.9000000000001 48.6999999999999 361.9000000000001 50.5999999999999 361.9000000000001 50.5999999999999S375.8 65.4999999999999 381.3 72.2999999999999C384.5 76.2999999999999 388.2 80.9999999999999 392.2 86.1999999999999C392.2 85.6999999999999 392.3 85.1999999999999 392.3 84.5999999999999C392.2 66.6999999999999 375 54.5999999999999 367.2 49.7999999999998zM452.8 69.3C450.8 70.6999999999999 451.1 75.4 457.8 89.9999999999999C460.4 95.6999999999999 466.4 105.3 476.8 114.5C477.9999999999999 110.6999999999999 478.6999999999999 107.1 478.6999999999999 103.6999999999999C478.5999999999999 81.1999999999999 462.4999999999999 72.8 452.8 69.3z" />
-			<glyph glyph-name="schlix" unicode="" horiz-adv-x="448" d=" M350.5 290.3L296.3 336.4L369.7000000000001 375.4L448.0000000000001 331.2L350.5000000000001 290.3zM192 325.9L237.7 354.1L272.4 319.5L217 290.5L192 325.9zM126.9 319.3L158.8 341.4L176 313L139.3 290.5L126.9 319.3zM103.6 231.1L94.8 265.9000000000001L124.4 284.2000000000001L137.5 248.9000000000001L103.6 231.1zM82.4 314.8L106.3 332.9L115.2 308.9L88.5 290.6L82.4 314.8zM59 241.5L55.4 269.9L77.7 285.4L83.8 256.7000000000001L59 241.5zM28.4 224.9L49.2 237.7L52.5 204.3L29.6 192.3L28.4 224.9zM1.4 180L20.6 190.2L21 152L0 143.2L1.4 180zM60.5 120.7L32.2 112.4L30.6 159.2L55.7 169.9L60.5 120.7zM99 184.8L67.9 171.8L62.7 212.6L90.1 227L99 184.8zM123.2 71L81.6 65.1L73.5 128.6L108.7 139.4L123.2 71zM151.7 210.9L172.9 153.8L126.7 140.2L113 194.3L151.7 210.9zM237.4 -19.6L166.5 -16.3L142.2 79.5L197.4 88.1L237.4 -19.6zM152.5 260.1L194.7 282.5L222.7 236.6L171.9 215.3L152.5 260.1zM193.5 165.1999999999999L254.8 183.8999999999999L307.6 97.3L227.8 85.9999999999999L193.5 165.1999999999999zM244.9 250.8L312.2 279.5999999999999L377.7 214.1999999999999L289.1 188L244.9000000000001 250.8z" />
-			<glyph glyph-name="scribd" unicode="" horiz-adv-x="384" d=" M42.3 195.3C26.2 214.3 17.6 241.2 17.5 275.2000000000001C17.5 375.6 92.7 428.3 184.7 428.3C283.3 429.9000000000001 341.5 379.3 369 357.7000000000001L318.5 285.6L281.2 310.2000000000001L308.1 348.8C271.6 372.8 228.7 385.3 185.1 384.6C134.4 385.4 73.4 357.4 73.4 308.4C73.4 289.7000000000001 84.6 287.7000000000001 102 292.8C125.3 298.1 143.9 292.2000000000001 157.8 278.8C184.2 254.5 181 211.2 157.1 186.9C127.9 157.4 71.9 159.6 42.3 195.3zM360 189.4C344.5 208.2000000000001 321.1 218.8000000000001 296.8 218C258.7 220 225.7 190 226.3 150.8C225.6 134 232.3 117.8 244.7 106.5C258.8 92.6 277.7000000000001 86.8 301 92.1C318.4 97.2000000000001 329.6 95.2000000000001 329.6 76.5C329.6 72.2 329.1 68 328.2000000000001 63.8C311.5000000000001 22.9 268.7000000000001 -0.6 206.8000000000001 -0.6C154.9 -0.8 104.4 15.8 62.7000000000001 46.7L96.4000000000001 86.1L60.8000000000001 113.5L0 41.7L15.4 27.9C67.9 -18.9 135.8 -44.6 206.1 -44.3C257.5 -44.3 300.5 -33.8 339.7 -0.2C396.8 51.2 393.9 149 360 189.4z" />
-			<glyph glyph-name="searchengin" unicode="" horiz-adv-x="460" d=" M220.6 317.7L153.4 289.5V404.8L98.7 214.5L153.4 238.7V108.4L220.6 317.7zM137.4 414.4L136.1 409.7L120.9 356.8C80.6 341.3 52 302.2 52 256.5C52 204.2 86.3 160.6 135.4 151V97.4C57.5 107.9 0 175.6 0 256.4C0 336.9 59.8 403.6 137.4 414.4zM448.8 -32.8C437.6 -44 425.7 -45.1 420.2 -43.3C414.8 -41.5 393.0999999999999 -23.4 359.8 1.1C326.5 25.7 326.2 36.8 316.8 57.8C307.4 78.6999999999999 286.4 100.4 259.3 110.1999999999999L249.6 124.8999999999999C224.9 107.9999999999999 196.6 97.9999999999999 168.3 96.1999999999999L170.4 102.8L186.3 152.3C232.8 164.1999999999999 267.2 206.3 267.2 256.5C267.2 311 228.8 358.5999999999999 171.1999999999999 363.5999999999999V415.7C254.4 410.6 320 341.2 320 256.4C320 222.8 308.8 191.7 291 166L305.6 156.4C315.4000000000001 129.3 337.1 108.4 358 99S390.2 89.3 414.8 56C439.4000000000001 22.8 457.5 1.1 459.3 -4.3S460 -21.6 448.8 -32.8zM438.9 -14.9C438.9 -10.5000000000001 435.3 -6.9 430.9 -6.9S422.9 -10.5000000000001 422.9 -14.9S426.5 -22.9 430.9 -22.9S438.9 -19.3 438.9 -14.9z" />
-			<glyph glyph-name="sellcast" unicode="ï‹š" horiz-adv-x="448" d=" M353.4 416H94.7C42.6 416 0 373.4 0 321.4V62.7000000000001C0 10.6 42.6 -32 94.7 -32H353.4C405.5 -32 448.1 10.6 448.1 62.6V321.4C448.1 373.4 405.5 416 353.4 416zM303.4 99.6C275.5 51.4 213.5 34.7 165.2 62.4C142.3 22.6 110.3 53.8 122.9 75.6L138.6 102.8C144.5 113.1 157.8 116.7 168.1 110.7C186.7 99.9 168 110.8 186.6 100C214.2 84.1 250 93.7 266 121.3C281.9 148.9 272.3 184.7 244.7 200.7C226.9 210.9 244.1 201.1 226.1 211.3C201.5 225.5 222.7 263.2000000000001 247.7 248.8C266.3 238 247.6 248.9 266.2 238.1C314.6 210.1 331.3 147.8 303.4 99.6zM325.2 308.4000000000001C308.2 278.9000000000001 308.9 279.6 306.2 276.9000000000001C299.7 270.4000000000001 289.9 268.2000000000001 279.7 273.3000000000001C261.1 284.1 279.8 273.2000000000001 261.2 284C233.6 299.9000000000001 197.8 290.3000000000001 181.8 262.7000000000001S175.5 199.3 203.1 183.3C203.1 183.3 221.6 172.7 221.7 172.7C246.3 158.5 225.1 120.8 200.1 135.2C181.5 146 200.2 135.1 181.6 145.9C133.4 173.7 116.7 236 144.5 284.3C172.4 332.5 234.4 349.2 282.7 321.5L287.5 329.9C301.8 354.8 339.5 333.2 325.2 308.4z" />
-			<glyph glyph-name="sellsy" unicode="" horiz-adv-x="640" d=" M539.71 210.692C542.774 222.949 544 235.513 544 248.076C544 340.618 468.618 416 376.076 416C298.856 416 231.4420000000001 362.988 213.056 288.219C197.734 301.395 178.122 308.749 157.899 308.749C111.628 308.749 73.937 271.059 73.937 224.788C73.937 217.434 74.857 209.773 77.002 202.419C34.102 182.194 6.217 138.6810000000001 6.217 91.185C6.216 23.157 61.68 -32 129.401 -32H510.599C578.319 -32 633.783 23.157 633.783 91.184C633.784 147.568 594.867 197.209 539.71 210.692zM199.88 46.446C199.88 38.172 192.832 31.125 184.559 31.125H153.61C145.336 31.125 138.289 38.173 138.289 46.446V157.374C138.289 165.6470000000001 145.337 172.6950000000001 153.61 172.6950000000001H184.559C192.833 172.6950000000001 199.88 165.6470000000001 199.88 157.374V46.446zM289.357 46.446C289.357 38.172 282.309 31.125 274.035 31.125H243.086C234.812 31.125 227.765 38.173 227.765 46.446V177.904C227.765 186.178 234.813 193.225 243.086 193.225H274.035C282.309 193.225 289.357 186.177 289.357 177.904V46.446zM378.834 46.446C378.834 38.172 371.7869999999999 31.125 363.5129999999999 31.125H332.5639999999999C324.2899999999999 31.125 317.2419999999999 38.173 317.2419999999999 46.446V209.16C317.2419999999999 217.434 324.2899999999999 224.481 332.5639999999999 224.481H363.5129999999999C371.7869999999999 224.481 378.834 217.433 378.834 209.16V46.446zM465.8609999999999 46.446C465.8609999999999 38.172 458.8129999999999 31.125 450.5389999999999 31.125H422.0419999999999C413.7679999999999 31.125 406.7209999999999 38.173 406.7209999999999 46.446V271.059C406.7209999999999 279.6380000000001 413.7679999999999 286.687 422.0419999999999 286.687H450.5389999999999C458.8129999999999 286.687 465.8609999999999 279.639 465.8609999999999 271.0590000000001V46.446z" />
-			<glyph glyph-name="servicestack" unicode="" horiz-adv-x="496" d=" M88 232C169.7 221.8 361.7 129.7 392 0H0C99.5 8.1 184.5 137 88 232zM120 384C152.3 348.4 167.7 300.1 166.4 250.4C249.3 216.7 373.7 126.7 400 0H496C455.3 216.1 222.8 368.5 120 384z" />
-			<glyph glyph-name="shirtsinbulk" unicode="" horiz-adv-x="448" d=" M395.2080000000001 226.417H406V192.875H395.2080000000001V226.417zM395.2080000000001 236.042H406V269.584H395.2080000000001V236.042zM395.2080000000001 149.709H406V183.25H395.2080000000001V149.709zM358.75 312.75H325.208V302.25H358.75V312.75zM395.208 106.542H406V140.0840000000001H395.2080000000001V106.542zM311.5 312.75H277.958V302.25H311.5V312.75zM264.25 312.75H231V302.25H264.25V312.75zM217 312.75H183.75V302.25H217V312.75zM395.208 279.208H406V312.75H372.458V302.25H395.208V279.208zM139.416 20.208L170.041 6.791L174.416 16.708L143.791 30.1249999999999L139.416 20.208zM179.083 3L209.417 -10.708L213.791 -0.792L183.458 12.6249999999999L179.083 2.9999999999999zM395.208 63.375H406V96.917H395.2080000000001V63.375zM60.3749999999999 55.208L91 41.792L95.375 51.416L64.75 65.125L60.375 55.208zM100.0409999999999 37.709L130.666 24.292L135.041 34.209L104.4159999999999 47.625L100.0409999999999 37.709zM232.458 -0.792L236.833 -10.708L267.459 3L263.084 12.625L232.458 -0.792zM350.875 51.4160000000001L355.25 41.792L385.874 55.208L381.5 65.125L350.875 51.416zM311.5 34.209L315.875 24.292L346.5 37.709L342.126 47.625L311.5 34.209zM271.833 16.708L276.208 6.7910000000001L306.833 20.208L302.458 30.125L271.833 16.708zM311.5 401.4170000000001H277.958V390.9170000000001H311.5V401.4170000000001zM405.709 401.4170000000001H372.4580000000001V390.9170000000001H405.709V401.4170000000001zM217 401.4170000000001H183.75V390.9170000000001H217V401.4170000000001zM358.75 401.4170000000001H325.208V390.9170000000001H358.75V401.4170000000001zM264.25 401.4170000000001H231V390.9170000000001H264.25V401.4170000000001zM448 444.292V38.292L221.666 -60.292L0 38.292V444.292H448zM418.834 327.334H29.166V57.25L221.958 -28.5L418.833 57.25V327.334zM418.834 415.125H29.166V356.5H418.833V415.125zM75.542 401.4170000000001H42.291V390.9170000000001H75.542V401.4170000000001zM170.042 401.4170000000001H136.5V390.9170000000001H170.042V401.4170000000001zM122.791 401.4170000000001H89.25V390.9170000000001H122.792V401.4170000000001zM130.375 164.875C130.375 215.042 171.5 256.1670000000001 221.667 256.1670000000001C272.125 256.1670000000001 312.959 215.042 312.959 164.875C312.959 114.417 272.126 73.583 221.667 73.583C171.5 73.584 130.375 114.417 130.375 164.875zM251.125 146.791C251.125 133.666 227.208 132.5 218.459 132.5C206.209 132.5 188.709 135.125 182.584 147.375H181.709L172.666 129C187.542 119.667 201.833 116.75 219.916 116.75C239.458 116.75 270.958 122.583 270.958 147.959C270.958 196.084 192.5 164.292 192.5 185.875C192.5 199 213.208 200.75 222.25 200.75C233.041 200.75 251.416 197.542 257.833 187.626H258.708L267.459 204.542C252.292 210.667 240.042 216.501 223.125 216.501C203 216.501 173.542 210.084 173.542 184.709C173.542 140.375 251.125 172.75 251.125 146.791zM122.791 312.75H89.25V302.25H122.792V312.75zM52.792 302.25H75.542V312.75H42V279.208H52.792V302.25zM52.792 269.584H42V236.042H52.792V269.584zM170.042 312.75H136.5V302.25H170.042V312.75zM52.792 226.417H42V192.875H52.792V226.417zM52.792 140.083H42V106.5409999999999H52.792V140.083zM52.792 183.25H42V149.708H52.792V183.25zM52.792 96.917H42V63.375H52.792V96.917z" />
-			<glyph glyph-name="simplybuilt" unicode="" horiz-adv-x="512" d=" M481.2 384H375.2C360.7 384 348.6 372.2 348.6 357.7V318.1H163.3V357.7C163.3 372.2 151.3 384 136.7 384H30.7C16.1 384 4.3 372.2 4.3 357.7V26.3C4.3 11.8 16.1 0 30.9 0H481.3C496.1 0 507.9 11.8 507.9 26.3V357.7C507.7 372.2 495.9 384 481.2 384zM149.8 92.2C113.2 92.2 83.4 121.9 83.4 158.6C83.4 195.5 113.1 225.2 149.8 225.2C186.7 225.2 216.4 195.5 216.4 158.6C216.4 121.9 186.7 92.2000000000001 149.8 92.2000000000001zM362.2000000000001 92.2C325.3000000000001 92.2 295.6 121.9 295.6 158.8C295.6 195.4 325.3 225.2 362.2000000000001 225.2C398.8000000000001 225.2 428.6 195.5 428.6 158.8C428.6 121.9 398.8 92.1999999999999 362.2000000000001 92.1999999999999z" />
-			<glyph glyph-name="sistrix" unicode="" horiz-adv-x="448" d=" M448 -1L301.2 147.8C321.2 175.7 333.1 210 333.1 247C333.1 340.1 258.4 415.9 166.6 415.9C74.7 416 0 340.2 0 247.1S74.7 78.2 166.5 78.2C206.3 78.2 242.8 92.4 271.5 116.1L417.5 -32L448 -1zM166.5 117.2C95.9 117.2 38.4 175.5 38.4 247.1S95.9 377 166.5 377S294.6 318.7 294.6 247.1S237.2 117.2 166.5 117.2z" />
-			<glyph glyph-name="skyatlas" unicode="" horiz-adv-x="576" d=" M545.7 129.5C545.7 73.3 500.9 32 445.5000000000001 32C304.0000000000001 32 277.9000000000001 244.9 138.8000000000001 244.9C13.6000000000001 244.9 13.4000000000001 64 143.6000000000001 64C179.8000000000001 64 221.1000000000001 79.2 250.4000000000001 100.2C255.2000000000001 103.7 264.8000000000001 114.1 269.9000000000001 114.1S279.2000000000001 109.8 279.2000000000001 104.8C279.2000000000001 98.1 268.0000000000001 88.4999999999999 263.2000000000001 84.3C228.3000000000001 53.9 177.7000000000001 32.1 131.3000000000001 32.1C60.2 32 0 82.4 0 155.6S57.6 282.7000000000001 130.3 282.7000000000001C288.3 282.7000000000001 320 73 438.8 73C524 73 519.6 192.1 441.7 192.1C426.8 192.1 411.9 182.2 401.7 182.2C394.5 182.2 388.1 188.3 388.1 195.5C388.1 205.4 392.6 215.7 392.6 226.4C392.6 283.2 349.2 324.2 292.9 324.2C247.6 324.2 224.7 292.8 217.2 292.8C211.9 292.8 207.6 297.1 207.6 302.4C207.6 307.2000000000001 211.1 311.2000000000001 214.3 314.7000000000001C235.9 339.2 269.5 352 302 352C369.7 352 420.6 302.2 420.6 234.5C420.6 228.6 420.3 222.8 419.5 216.9C429.6 219.6 440 220.9 450.1 220.9C502 220.9 545.7 182.3 545.7 129.5z" />
-			<glyph glyph-name="skype" unicode="ï…¾" horiz-adv-x="448" d=" M424.7 148.2C427.6 162.2 429.4 177.1 429.4 192C429.4 305.5 337.5 397.3 224.1 397.3C209.2 397.3 194.4 395.6 180.3 392.6C161.3 407.3 137.7 416 112 416C50.2 416 0 365.8 0 304C0 278.3 8.7 254.7 23.3 235.8C20.4 221.8 18.6 206.9 18.6 192C18.6 78.5 110.5 -13.3 223.9 -13.3C238.8 -13.3 253.6 -11.6 267.7 -8.6C286.7 -23.2 310.3 -31.9 335.9 -31.9C397.7 -31.9 447.9 18.3 447.9 80.1C448 105.7 439.3 129.3 424.7 148.1999999999999zM230.1 56.7C164.5 56.7 109.6 85.9 109.6 121.7C109.6 137.7 118.6 152.3 139.1 152.3C170.3 152.3 173.2 107.4 227.2 107.4C252.9 107.4 269.5 118.8 269.5 133.7000000000001C269.5 152.4 253.5 155.3000000000001 227.5 161.7000000000001C165 177.1 109.7 183.7000000000001 109.7 248.9000000000001C109.7 308.1 168.3 330 218.8 330C273.9000000000001 330 329.6 308.1 329.6 274.6C329.6 257.7000000000001 318.2000000000001 242.8 299.3 242.8C271 242.8 270.1 276.3 224.3 276.3C198.6 276.3 182.3 269.3 182.3 253.8C182.3 234 203.1 232 251.4 220.8C292.8 211.5 342.1 194 342.1 143.2000000000001C342.1 84.1 285 56.7000000000001 230.1 56.7000000000001z" />
-			<glyph glyph-name="slack-hash" unicode="" horiz-adv-x="448" d=" M446.2 177.6C440 196.6 419.3 206.7 400.2 200.5L354.8 185.4L324.5 275.4000000000001L369.9 290.5C389 296.7000000000001 399 317.3000000000001 392.9 336.4000000000001C386.7 355.4000000000001 366 365.5 346.9 359.3000000000001L301.5 344.2000000000001L285.8 391.2000000000001C279.6 410.2000000000001 258.9000000000001 420.3000000000001 239.8 414.1C220.7 407.9000000000001 210.7 387.3000000000001 216.8 368.2000000000001L232.5 321.2000000000001L139.1 290.0000000000001L123.4 337.0000000000001C117.2 356.0000000000001 96.5 366.1 77.4 359.9000000000001C58.3 353.7000000000001 48.3 333.1000000000001 54.4 314.0000000000001L70.1 267.0000000000001L24.8 252.0000000000001C5.7 245.8000000000001 -4.3 225.2000000000001 1.8 206.1000000000001C6.8 191.6 20.9 182.1 35.4 181.5000000000001C42.2 180.5000000000001 47.4 183.1000000000001 93.1 198.3000000000001L123.4 108.3000000000001L78 93.2C59 87 48.9 66.3 55 47.3C60 32.8 74.1 23.3 88.6 22.7C95.4 21.7 100.6 24.3 146.3 39.5L162 -7.5C167.9 -24.4 186.7 -36.5 208 -30.4C227.1 -24.2 237.1 -3.6 231 15.5L215.3 62.5L308.9 93.8L324.6 46.8C330.5 29.9 349.3 17.8 370.6 23.9C389.7 30.1 399.7 50.7 393.6 69.8L377.9 116.8L423.3 131.9C442.3 137.9 452.4 158.6 446.2 177.6zM192.1 130.4L161.8 220.6L255.3 251.9000000000001L285.6 161.7000000000001L192.1 130.4z" />
-			<glyph glyph-name="slack" unicode="" horiz-adv-x="448" d=" M244.2 230.5L263.5 172.8L203.7 152.8L184.4 210.5L244.2 230.5zM285.6 -13.2C131.6 -59.4 65 -23.6 18.8 130.4S8.4 351 162.4 397.2C316.4 443.4 383 407.6 429.2 253.6C475.4 99.6 439.6 33 285.6 -13.2zM366.2 183C362.3 195.2 349 201.6 336.8 197.7L307.8 188L288.5 245.7L317.5 255.4C329.7 259.3 336.1 272.6 332.2 284.8C328.3 297 315 303.4 302.8 299.5L273.8 289.8L263.8 319.9C259.9000000000001 332.1 246.6 338.5 234.4 334.6C222.2 330.7 215.8 317.4 219.7 305.2L229.7 275.1L169.9 255L159.9 285.1C156 297.3 142.7000000000001 303.7 130.5 299.8C118.3 295.9 111.9 282.6 115.8 270.4L125.8 240.3L96.8 230.6C84.6 226.7 78.2 213.4 82.1 201.2C85.3 191.9 94.3 185.8 103.6 185.4C107.9 184.8 111.3 186.4 140.5 196.1L159.8000000000001 138.4L130.8000000000001 128.7C118.6 124.8 112.2000000000001 111.5 116.1 99.3C119.3000000000001 90 128.3000000000001 83.9 137.6 83.5C141.9 82.9 145.3 84.5 174.5 94.2L184.5 64.1C188.2 53.3 200.3000000000001 45.4999999999999 213.9 49.4C226.1 53.3 232.5000000000001 66.6 228.6 78.8L218.6 108.9L278.4000000000001 129L288.4000000000001 98.9C292.1 88.1 304.2000000000001 80.3 317.8 84.2C330 88.1 336.4000000000001 101.4 332.5 113.6L322.5 143.7L351.5 153.4C363.7 157.6 370.1 170.9 366.2 183z" />
-			<glyph glyph-name="slideshare" unicode="" horiz-adv-x="512" d=" M249.429 236.564C249.429 204.848 221.714 178.847 187.712 178.847C153.711 178.847 125.996 204.848 125.996 236.564C125.996 268.565 153.711 294.28 187.712 294.28C221.713 294.28 249.429 268.565 249.429 236.564zM503.723 186.562C485.437 163.989 450.579 136.274 397.4340000000001 114.559C453.722 -77.163 260 -107.735 263.143 -9.446C263.143 -11.16 262.857 43.413 262.857 83.986C258.572 84.844 254.286 85.986 249.143 87.129C249.143 46.271 248.857 -11.16 248.857 -9.446C252 -107.735 58.278 -77.163 114.566 114.559C61.421 136.274 26.563 163.989 8.276 186.562C-0.867 200.276 9.134 214.849 24.277 204.277C26.277 202.849 28.562 201.42 30.562 199.992V398.284C30.563 425.713 51.135 448 76.565 448H435.722C461.151 448 481.724 425.713 481.724 398.284V199.991L487.724 204.276C502.867 214.849 512.867 200.276 503.723 186.562zM457.151 375.712C457.151 408.57 446.579 421.428 416.2920000000001 421.428H98.566C66.85 421.428 57.993 410.5700000000001 57.993 375.712V183.419C125.71 147.989 183.713 154.275 215.428 155.418C228.857 155.704 237.429 153.132 242.572 147.703C244.261 146.016 252.595 138.257 262.859 130.5600000000001C264.002 146.275 272.86 156.275 296.575 155.4180000000001C328.862 153.9900000000001 388.293 147.7030000000001 457.152 185.1340000000001V375.712zM331.146 294.28C297.144 294.28 269.43 268.565 269.43 236.564C269.43 204.848 297.145 178.847 331.146 178.847C365.433 178.847 392.862 204.848 392.862 236.564C392.862 268.565 365.4330000000001 294.28 331.146 294.28z" />
-			<glyph glyph-name="snapchat-ghost" unicode="" horiz-adv-x="512" d=" M510.846 55.327C505.635 43.17 483.607 34.238 443.486 28.009C441.422 25.223 439.711 13.323 436.979 4.053C435.354 -1.513 431.356 -4.816 424.851 -4.816L424.554 -4.811C415.159 -4.811 405.351 -0.4880000000001 385.702 -0.4880000000001C359.181 -0.4880000000001 350.04 -6.5310000000001 329.448 -21.0760000000001C307.616 -36.5140000000001 286.677 -49.8400000000001 255.421 -48.4750000000001C223.775 -50.8090000000001 197.396 -31.5670000000001 182.55 -21.0710000000001C161.836 -6.4280000000001 152.722 -0.4890000000001 126.309 -0.4890000000001C107.445 -0.4890000000001 95.573 -5.2090000000001 87.457 -5.2090000000001C79.384 -5.2090000000001 76.244 -0.2870000000001 75.035 3.8309999999999C72.332 13.0199999999999 70.631 25.0939999999999 68.512 27.9609999999999C47.833 31.1699999999999 1.202 39.3049999999999 0.014 60.1109999999999A10.627 10.627 0 0 0 8.891 71.1799999999999C78.474 82.6349999999999 109.815 154.0809999999999 111.118 157.1139999999999C111.192 157.2899999999999 111.273 157.4579999999999 111.355 157.6289999999999C115.068 165.1659999999999 115.899 171.4779999999999 113.818 176.3819999999999C108.768 188.2779999999999 86.946 192.5459999999999 77.765 196.1779999999999C54.05 205.5439999999999 50.75 216.3059999999999 52.153 223.6819999999999C54.59 236.5179999999999 73.878 244.4169999999999 85.155 239.1349999999999C94.074 234.9539999999999 101.998 232.8379999999999 108.702 232.8379999999999C113.724 232.8379999999999 116.914 234.0419999999999 118.662 235.0089999999999C116.619 270.9449999999999 111.561 322.2989999999999 124.349 350.9779999999999C158.122 426.6960000000001 229.705 432.58 250.826 432.58C251.77 432.58 259.967 432.669 260.936 432.669C313.084 432.669 363.19 405.889 387.659 351.026C400.436 322.376 395.408 271.234 393.354 235.017C394.936 234.145 397.711 233.075 401.953 232.878C408.35 233.164 415.768 235.267 424.022 239.135C430.107 241.981 438.428 241.596 444.502 239.077L444.531 239.067C454.007 235.682 459.97 228.852 460.12 221.197C460.304 211.45 451.598 203.032 434.242 196.179C432.124 195.344 429.548 194.524 426.808 193.654C417.011 190.548 402.208 185.849 398.192 176.383C396.113 171.479 396.9360000000001 165.172 400.652 157.635C400.739 157.467 400.818 157.293 400.891 157.12C402.192 154.09 433.506 82.66 503.121 71.186C509.548 70.128 514.284 63.309 510.846 55.3270000000001z" />
-			<glyph glyph-name="snapchat-square" unicode="" horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM393.5 101.1C390 93 375.4 87.1 348.7 82.9C347.3 81.0000000000001 346.2 73.1 344.4 67.0000000000001C343.3 63.3000000000001 340.7 61.1000000000001 336.3 61.1000000000001H336.1C329.9 61.1000000000001 323.3 64.0000000000001 310.3 64.0000000000001C292.7 64.0000000000001 286.6 60.0000000000001 272.9 50.3000000000001C258.4 40.0000000000001 244.5 31.2 223.7 32.1000000000001C202.7 30.5000000000001 185.1 43.3000000000001 175.2 50.3000000000001C161.4 60.0000000000001 155.4 64.0000000000001 137.8 64.0000000000001C125.3 64.0000000000001 117.4 60.9 112 60.9C106.6 60.9 104.5 64.2000000000001 103.7 66.9C101.9 73.0000000000001 100.8 81.0000000000001 99.4 82.9C85.6 85.0000000000001 54.6 90.4 53.9 104.3C53.7 107.9 56.2 111.1 59.8 111.7C106.1 119.3 126.9 166.8 127.8 168.8C127.8 168.9 127.9 169 128 169.1C130.5 174.1 131 178.3 129.6 181.6C126.2 189.5 111.7 192.3 105.6 194.8C89.8 201 87.6 208.2 88.6 213.1C90.2 221.6 103 226.9000000000001 110.5 223.4C116.4 220.6 121.7 219.2000000000001 126.2 219.2000000000001C129.5 219.2000000000001 131.7 220.0000000000001 132.8 220.6000000000001C131.4 244.5000000000001 128.1 278.6 136.6 297.7000000000001C159.1 348 206.7 352 220.7 352C221.3 352 226.8 352.1 227.4 352.1C262.1 352.1 295.4 334.3 311.7 297.8C320.2 278.7000000000001 316.9 244.7 315.5 220.7C316.6 220.1 318.4 219.4 321.2 219.3C325.5 219.5 330.4 220.9 335.9 223.5C339.9 225.4 345.5 225.1 349.5 223.5C355.8 221.2 359.8 216.7 359.9 211.6C360 205.1 354.2 199.5 342.7 195C341.3 194.4 339.6 193.9 337.8 193.3C331.3 191.2 321.4000000000001 188.1 318.8 181.8C317.4000000000001 178.5 318 174.3 320.4000000000001 169.3C320.5000000000001 169.2 320.5000000000001 169.1 320.6 169C321.5 167 342.3 119.5 388.6 111.9C392.6 110.9 395.7000000000001 106.4 393.5 101.1z" />
-			<glyph glyph-name="snapchat" unicode="" horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM417.5 101.1C414 93 399.4 87.1 372.7 82.9C371.3 81.0000000000001 370.2 73.1 368.4 67.0000000000001C367.3 63.3000000000001 364.7 61.1000000000001 360.3 61.1000000000001H360.1C353.9 61.1000000000001 347.3 64.0000000000001 334.3 64.0000000000001C316.7 64.0000000000001 310.6 60.0000000000001 296.9 50.3000000000001C282.4 40.0000000000001 268.5 31.2 247.7 32.1000000000001C226.7 30.5000000000001 209.1 43.3000000000001 199.2 50.3000000000001C185.4 60.0000000000001 179.4 64.0000000000001 161.8 64.0000000000001C149.3 64.0000000000001 141.4 60.9 136 60.9C130.6 60.9 128.5 64.2000000000001 127.7 66.9C125.9 73.0000000000001 124.8 81.0000000000001 123.4 82.9C109.6 85.0000000000001 78.6 90.4 77.9 104.3C77.7 107.9 80.2 111.1 83.8 111.7C130.1 119.3 150.9 166.8 151.8 168.8C151.8 168.9 151.9 169 152 169.1C154.5 174.1 155 178.3 153.6 181.6C150.2 189.5 135.7 192.3 129.6 194.8C113.8 201 111.6 208.2 112.6 213.1C114.2 221.6 127 226.9000000000001 134.5 223.4C140.4 220.6 145.7 219.2000000000001 150.2 219.2000000000001C153.5 219.2000000000001 155.7 220.0000000000001 156.8 220.6000000000001C155.4 244.5000000000001 152.1 278.6 160.6 297.7000000000001C183.1 348 230.7 352 244.7 352C245.3 352 250.8 352.1 251.4 352.1C286.1 352.1 319.4 334.3 335.7 297.8C344.2 278.7000000000001 340.9 244.7 339.5 220.7C340.6 220.1 342.4 219.4 345.2 219.3C349.5 219.5 354.4 220.9 359.9 223.5C363.9 225.4 369.5 225.1 373.5 223.5C379.8 221.2 383.8 216.7 383.9 211.6C384 205.1 378.2 199.5 366.7 195C365.3 194.4 363.6 193.9 361.8 193.3C355.3 191.2 345.4000000000001 188.1 342.8 181.8C341.4000000000001 178.5 342 174.3 344.4000000000001 169.3C344.5000000000001 169.2 344.5000000000001 169.1 344.6 169C345.5 167 366.3 119.5 412.6 111.9C416.6 110.9 419.7000000000001 106.4 417.5 101.1z" />
-			<glyph glyph-name="soundcloud" unicode="" horiz-adv-x="640" d=" M111.4 191.7L117.2 126.7L111.4 58.4C111.1 55.9 109.2 54 107 54S102.8 55.9 102.8 58.4L97.2 126.7L102.8 191.7C102.8 193.9 104.7 195.9 107 195.9C109.2 195.9 111.1 193.9 111.4 191.7zM132.8 237.3C130 237.3 128.1 235.1 127.8 232.3L122.8 126.7L127.8 58.4C128.1 55.6 130 53.4 132.8 53.4C135.3 53.4 137.5 55.6 137.5 58.4L143.3 126.7L137.5 232.3C137.5 235.1 135.3 237.3 132.8 237.3zM158.3 261.4C155.2 261.4 153 259.2 152.7 256.1L148.3 126.1L152.7 58.3C153 55.1999999999999 155.2 52.9999999999999 158.3 52.9999999999999C161.1 52.9999999999999 163.6 55.1999999999999 163.6 58.3L168.9 126.1L163.6 256.1C163.6 259.2 161.1 261.4 158.3 261.4zM7.2 164.8C5.8 164.8 5 163.7 4.7 162.3L0 126.7L4.7 91.7C5 90.3 5.8 89.2 7.2 89.2S9.4 90.3 9.7 91.7L15.3 126.7L9.7 162.3C9.4 163.7 8.6 164.8 7.2 164.8zM30.8 186.7C29.4 186.7 28.3 185.6 28.3 184.2L21.9 126.7L28.3 70.6C28.3 68.9 29.4 67.8 30.8 67.8S33.3 68.9 33.6 70.3L40.8 126.6999999999999L33.6 184.1999999999999C33.3 185.5999999999999 32.2 186.6999999999999 30.8 186.6999999999999zM56.1 198.1C54.4 198.1 53 196.7 52.8 194.8L47 126.7L52.8 60.9C53.1 59.2 54.5 57.8 56.1 57.8C57.8 57.8 59.2 59.1999999999999 59.2 60.9L66.1 126.7L59.2 194.8C59.2 196.7 57.8 198.1 56.1 198.1zM81.4 200.3C79.5 200.3 77.8 198.9 77.8 196.7L72 126.7L77.8 58.9C77.8 56.7 79.5 55.3 81.4 55.3S85 56.6999999999999 85.3 58.9L91.7 126.7L85.3 196.7C85 198.9 83.3 200.3 81.4 200.3zM322.8 311.2C321.7 312 320 312.6 318.6 312.6C316.4000000000001 312.6 314.4000000000001 311.8 313 310.7C311.1 309 309.9 306.5 309.7 304V303.2L306.4 126.5L308.1 94L309.8 62.3C310.1 57.6 314 53.7 318.7 53.7S327.3 57.6 327.3 62.3L331.2 126.5L327.3 304C326.9 307 325.3 309.8 322.8 311.2zM296.1 295.9C294.7000000000001 296.7 293.3 297.3 291.7000000000001 297.3S288.6 296.7 287.3000000000001 295.9C285.1000000000001 294.5 283.7000000000001 292 283.7000000000001 289.2L283.4000000000001 287.5L280.6 126.7S280.6 126.4 283.7000000000001 61.1V60.8C283.7000000000001 59.1 284.3000000000001 57.5 285.4000000000001 56.1C287.1 54.2 289.3 53 291.8 53C294 53 296 54.1 297.4000000000001 55.5C299.1 56.9 299.9000000000001 58.8 299.9000000000001 61.1L300.2000000000001 67.8L303.3000000000001 126.4L300.0000000000001 289.2000000000001C299.7000000000001 292.0000000000001 298.3000000000001 294.5000000000001 296.1000000000001 295.9000000000001zM184.7 273.4C181.6 273.4 178.9 270.6 178.9 267.3L174.5 126.7L178.9 59.5C179.2 56.2 181.7 53.7 184.7 53.7C188 53.7 190.5 56.2 190.8 59.5L195.8 126.7L190.8 267.3C190.6 270.6 188.1 273.4 184.7 273.4zM561.4 210.6C550.6 210.6 540.3 208.4 530.8 204.5C524.4 275.3 464.9999999999999 330.9 392.5 330.9C374.7 330.9 357.5 327.6 342.2 321.5C336.0999999999999 319.3 334.3999999999999 317.1 334.3999999999999 312.3V62.6C334.3999999999999 57.6 338.2999999999999 54 343 53.4H561.3C604.5999999999999 53.4 639.9 88.4 639.9 131.7000000000001C640 175.3000000000001 604.6999999999999 210.6000000000001 561.4 210.6000000000001zM264.7 270.9C260.5 270.9 257.2 267.6 256.9 263.1L253.6 126.4L256.9 60.8C257.2 56.6 260.5 53.3 264.7 53.3C268.9 53.3 272.2 56.6 272.2 60.8L276.1 126.4L272.2 263.1C271.9 267.6 268.9 270.9 264.7 270.9zM211.1 278.7C207.8 278.7 204.7 275.6 204.7 272L200.8 126.7L204.7 59.8C205 56.1999999999999 207.8 53.4 211.1 53.4C214.7 53.4 217.5 56.2 217.8 59.8L222.2 126.6999999999999L217.8 272C217.5 275.5999999999999 214.7 278.7 211.1 278.7zM237.8 275.3C233.9 275.3 230.9 272.2 230.9 268.4L227 126.7L230.9 60.3C231.2 56.4 234 53.4 237.8 53.4S244.7 56.5 244.7 60.3L248.9 126.6999999999999L244.7 268.3999999999999C244.7 272.3 241.7 275.3 237.8 275.3z" />
-			<glyph glyph-name="speakap" unicode="" horiz-adv-x="448" d=" M352 416H96C43.2 416 0 372.8 0 320V64C0 11.2 43.2 -32 96 -32H352C404.8 -32 448 11.2 448 64V320C448 372.8 404.8 416 352 416zM221 65.1C181.4 65.1 139.1 82.9 139.1 118.8V146H179V128.2C179 113.1 198.5 103.7 220.9 103.7C245.1 103.7 262.2 114.1 262.2 133.2C262.2 157 235 165.1 207.5 175.8C175.6 188.2 144.4 202 144.4 244.9C144.4 292.9 183 311.3 224.3 311.3C261.9000000000001 311.3 299.8 297.2000000000001 299.8 269.4V238.2H259.9000000000001V254.3C259.9000000000001 266.4 242.1 272.8 224.3000000000001 272.8C204.8000000000001 272.8 188.7000000000001 264.7000000000001 188.7000000000001 246.6C188.7000000000001 224.5 211.2000000000001 217.4 235.7000000000001 207.7C271.6 195.3 306.8000000000001 180.5 306.8000000000001 136.2000000000001C306.9000000000001 87.6 266.0000000000001 65.1 221.0000000000001 65.1z" />
-			<glyph glyph-name="spotify" unicode="" horiz-adv-x="496" d=" M248 440C111.1 440 0 328.9 0 192S111.1 -56 248 -56S496 55.1 496 192S384.9 440 248 440zM348.7 75.1C344.5 75.1 341.9 76.4 338 78.7000000000001C275.6 116.3000000000001 203 117.9 131.3 103.2000000000001C127.4 102.2000000000001 122.3 100.6 119.4 100.6C109.7 100.6 103.6 108.3 103.6 116.4C103.6 126.7000000000001 109.7 131.6 117.2 133.2000000000001C199.1 151.3000000000001 282.8 149.7000000000001 354.2 107.0000000000001C360.3 103.1000000000001 363.9 99.6000000000001 363.9 90.5000000000001S356.8 75.1000000000001 348.7 75.1000000000001zM375.6 140.7000000000001C370.4 140.7000000000001 366.9 143.0000000000001 363.3 144.9C300.8 181.9 207.6 196.8000000000001 124.7 174.3C119.9 173 117.3 171.7 112.8 171.7C102.1 171.7 93.4 180.4 93.4 191.1S98.6 208.9 108.9 211.8C136.7 219.6 165.1 225.4 206.6999999999999 225.4C271.5999999999999 225.4 334.3 209.3 383.7 179.9C391.8 175.1 395 168.9 395 160.2C394.8999999999999 149.4 386.5 140.7 375.6 140.7zM406.6 216.9C401.4 216.9 398.2 218.2000000000001 393.7 220.8000000000001C322.5 263.3000000000001 195.2 273.5000000000001 112.8 250.5000000000001C109.2 249.5000000000001 104.7 247.9000000000001 99.9 247.9000000000001C86.7 247.9000000000001 76.6 258.2000000000001 76.6 271.5C76.6 285.1 85 292.8000000000001 94 295.4000000000001C129.2 305.7000000000001 168.6 310.6 211.5 310.6C284.5 310.6 361 295.4000000000001 416.9 262.8C424.7 258.3 429.8 252.1 429.8 240.2C429.8 226.6 418.8 216.9 406.6 216.9z" />
-			<glyph glyph-name="stack-exchange" unicode="" horiz-adv-x="448" d=" M43.5 125.2H404.6V106C404.6 73 378.9000000000001 46.5 347.4000000000001 46.5H330.8L254.9 -32V46.5H100.6C69.1 46.5 43.4 73 43.4 106V125.2zM43.5 145.9H404.6V220.3H43.5V145.9zM43.5 241.6H404.6V316H43.5V241.6zM347.4 416H100.6C69.1 416 43.4 389.5 43.4 356.8V337.3H404.5V356.8C404.5 389.5 378.9 416 347.4 416z" />
-			<glyph glyph-name="stack-overflow" unicode="ï…¬" horiz-adv-x="384" d=" M293.7 148L112.5 232.5L129.2 269L310.5 184.3L293.7 148zM341.7 224L188.2 352.3L162.7 321.5L316.2 193.2L341.7 224zM381.3 255.7L262 416L230 392L349.3 231.7L381.3 255.7zM290.7 137L95 178.3L86.8 139L282.5 98L290.7 137zM322.3 8H42.7V128H2.7V-32H362.2V128H322.2V8zM282.5 88H82.5V48.3H282.5V88z" />
-			<glyph glyph-name="staylinked" unicode="" horiz-adv-x="440" d=" M201.6 320.6C205.7 323.8 211.9 323.6 215.4 320.1L385.4 152.8L382.7 155.5L427 114.1999999999999C430.7 110.6999999999999 430.3 105.1999999999999 426.3 101.9999999999999L228.3 -61.9000000000001C218.4 -69.5000000000001 211 -62.7000000000001 211 -62.7000000000001L2.3 133.4C-1.2 136.9 -0.7 142.4 3.5 145.6L49.3 180.5C53.5 183.6999999999999 59.7 183.5 63.2 180L215.1 32.4999999999999C218.8 28.9999999999999 225.1 28.8 229.3 32.1L322.5 106.1C326.6 109.3 327 114.8 323.4 118.3L239.4 199.6C235.8 203.1 229.5 203.3 225.4 200.1L225.3 200C221.2 196.8 214.9 197 211.3 200.5L143.2 264.8C139.7 268.3 140.1 273.8 144.3 277L201.6 320.5999999999999M216.4 63.3C220.1 59.8 226.5 59.6 230.7 62.9L280.9 101.7L280.6 102L288.3 108C292.5 111.2 292.9 116.7 289.2 120.2L232.1 174.6C228.5 178.1 222.0999999999999 178.3 217.9 175.1L217.8 175C213.6 171.8 207.3 171.8999999999999 203.6 175.3999999999999L109 267.2C105.4 270.7 105.9 276.1 110.1 279.4L202.3 350.9C206.4 354.1 212.6 353.9 216.2 350.4L376.6 191.4C380.3 187.9 386.6 187.7 390.7000000000001 190.9L436.5000000000001 226.7C440.6000000000001 229.9 440.9000000000001 235.4 437.2000000000001 238.9L226.7 445.5C225.2 446.7 218.7 451 210.4 444.4L3.6 282.3C-0.6 279.1 -1.2 273.6 2.4 270.1L44.7 228.4000000000001" />
-			<glyph glyph-name="steam-square" unicode="" horiz-adv-x="448" d=" M185.2 91.5C192.9 110 184.2 131.2 165.6 138.9L136.1 151.1C147.5 155.4 160.4 155.6 172.5 150.6C184.7 145.5 194.1 136 199.2 123.9C204.2 111.7 204.2 98.3 199.1 86.2C188.6 61.1 159.7 49.2 134.5 59.7C122.9 64.5 114.1 73.3 109.1 83.9L137.6 72.1C156.2 64.3 177.5 72.9999999999999 185.2 91.4999999999999zM400 416H48C21.5 416 0 394.5 0 368V207.3L116.6 159.2C128.6 167.4 142.8 171.3 157.3 170.5L212.7 250.7V251.8C212.7 300 252 339.3 300.3 339.3S387.9 300 387.9 251.8C387.9 202.6 347 163.1 298.3 164.3L219.3 107.9999999999999C220.9 69.4999999999999 190.2 39.1999999999999 153.6 39.1999999999999C121.8 39.1999999999999 95.1 61.8999999999999 89.1 91.8999999999999L0 128.8V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM300.3 193.5C268.1 193.5 241.9 219.6 241.9 251.8S268.1 310.1 300.3 310.1S358.7 283.9000000000001 358.7 251.8S332.5 193.5 300.3 193.5zM300.4000000000001 208.1C324.6 208.1 344.3 227.7 344.3 251.9C344.3 276.1 324.7 295.7 300.4000000000001 295.7C276.2000000000001 295.7 256.5000000000001 276.1 256.5000000000001 251.9C256.5000000000001 227.7 276.2000000000001 208.1 300.4000000000001 208.1z" />
-			<glyph glyph-name="steam-symbol" unicode="" horiz-adv-x="448" d=" M395.5 270.5C395.5 236.7 368 209.5 334.5 209.5C300.7 209.5 273.5 236.8 273.5 270.5S300.8 331.5 334.5 331.5C368 331.5 395.5 304.3 395.5 270.5zM448 270.3C448 207.3 397 156.5 334.3 156.5L225 76.7C221 33.7 184.5 -0.1 140.5 -0.1C100 -0.1 65.8 28.7 57.5 66.9L0 90V197.3L97.2 158C112.3 167.2 129.4 171.3 149.2 169.5L220.2 271.2C220.7 333.5 271.7 384 334.2 384C397 384 448 333 448 270.3zM203 85C203 119.7 175.2 147.5 140.5 147.5C136 147.5 131.5 147 127 146L153 135.5C178.5 125.3 191 96.5 180.7 71C170.5 45.5 141.5 33 116 43.5C105.8 47.5 95.5 51.8 85.3 55.7C95.8 36 116.5 22.5 140.5 22.5C175.2 22.5 203 50.3 203 85zM410.5 270.3C410.5 312.3 376.2 346.5 334.3 346.5C292 346.5 257.8 312.3 257.8 270.3C257.8 228.1 292.1 194.1 334.3 194.1C376.2 194 410.5 228.0000000000001 410.5 270.3z" />
-			<glyph glyph-name="steam" unicode="" horiz-adv-x="496" d=" M496 192C496 55 384.8 -56 247.6 -56C133.8 -56 38 20.3 8.6 124.4L103.8 85.1C110.2 52.9999999999999 138.7 28.7 172.7 28.7C211.9 28.7 244.6 61.1 242.9 102.2L327.4 162.4C379.5 161.1 423.2 203.3 423.2 255.9C423.2 307.5 381.2 349.4 329.5 349.4S235.8 307.4 235.8 255.9V254.7L176.6 169C161.1 169.9 145.9 165.6 133.1 156.9L0 211.9C10.2 339.6 117.1 440 247.6 440C384.8 440 496 329 496 192zM155.7 63.7L125.2 76.3A52.79 52.79 0 0 1 152.4 50.5C179.3 39.3 210.2 52.1 221.4 78.9C226.8 91.9 226.9 106.2 221.5 119.2C216.1 132.2 206 142.4 193 147.8C180.1 153.2 166.3 153 154.1 148.4L185.6 135.4C205.4 127.2000000000001 214.8 104.5000000000001 206.5 84.7000000000001C198.2 64.8000000000001 175.5 55.5000000000001 155.7 63.7000000000001zM329.5 193.6C295.1 193.6 267.1 221.6 267.1 255.9S295.1 318.2 329.5 318.2S391.9 290.2 391.9 255.9S364 193.6 329.5 193.6zM329.6 209.2C355.5 209.2 376.5 230.2 376.5 256C376.5 281.9 355.5 302.8 329.6 302.8S282.7000000000001 281.8 282.7000000000001 256C282.8000000000001 230.2 303.8000000000001 209.2 329.6 209.2z" />
-			<glyph glyph-name="sticker-mule" unicode="" horiz-adv-x="576" d=" M353.1 -61.8C347.2000000000001 -64.7 321 -65 316.6 -61.3C312.5 -58.3 314.4000000000001 -49.4 315.1 -46.3C317.3 -31.3 312.6 -38.4 305.3 -34.8C302.2 -33.3 301.2 -29.3 300.7 -24.8C300.2 -23.3 299.7 -22.3 299.2 -21.3C297.5 -10.6 306 12.3 307.4 22.1C312.3 45.8 306.7 59.3 308.9 68.9999999999999C312.6 85.1999999999999 313 72.4999999999999 313 98.8999999999999C311.6 124.7999999999999 316.3 135.7999999999999 313.5 137.7999999999999C298.7 137.7999999999999 249.2 127.0999999999999 201.3 135.7999999999999C155.2 144.6999999999999 141.9 164.7999999999999 135.9 166.6999999999999C125.6 171.1999999999999 112.7 166.1999999999999 108.6 159.6999999999999C108.5 159.5999999999999 73.6 89.0999999999999 69 71.8999999999999C62.8 51.3999999999999 68.5 24.4999999999999 73.1 5.0999999999999C73.1 4.9999999999998 77.6 -9.5000000000002 83.4 -14.4000000000001C85.5 -15.9000000000001 88.5 -16.9000000000001 90.6 -18.9000000000001C93.4 -21.6000000000001 100 -34.1000000000001 100.4 -34.9000000000001C103 -39.4000000000001 104 -42.9000000000001 98.9 -45.4000000000001C95.3 -47.4000000000001 89.6 -47.9000000000001 84.5 -47.9000000000001C81.9 -48.4000000000001 83 -51.4000000000001 81.4 -52.9000000000001C78.5 -55.7000000000002 60.7 -59.0000000000002 51.5 -55.4000000000001C48.9 -54.4000000000001 45.8 -52.4000000000001 45.3 -50.4000000000001C43.8 -46.4000000000001 47.4 -41.4000000000001 44.3 -37.9000000000001C39.8 -35.0000000000002 31.2 -35.9000000000001 27.3 -25.9000000000001C25.1 -20.5000000000002 24.7 -18.3000000000001 24.7 23.4999999999998C24.7 33.1999999999998 18.8 62.1999999999998 16.5 70.3999999999998C15 75.8999999999998 15 81.8999999999998 16.5 86.3999999999998C16.8 87.2999999999998 20.6 90.9999999999998 20.6 99.3999999999998C19.6 100.8999999999998 16 99.8999999999998 15.5 100.8999999999998C5.1 181.4999999999998 9.6 179.8999999999998 7.8 199.1999999999998C6.3 215.1999999999998 -3.1 243.0999999999998 1.1 263.4999999999999C1.6 265.8999999999999 4.5 284.4999999999999 25.3 302.3999999999999C56.3 329.0999999999999 73.7 340.6999999999998 184.3 313.8999999999999C185.4 313.4999999999999 250.6 292.7999999999999 295 322.8999999999999C310.5 334.1999999999998 323.8 334.1999999999998 330.5 338.8999999999999C330.6 338.9999999999999 392.2 390.9999999999999 417.5 404.1999999999998C464.7 433.5999999999999 487.4 420.8999999999998 492.6 422.1999999999998C497.3 423.1999999999998 506 447.9999999999999 509.6 447.9999999999999C515.1 447.9999999999999 511.2 427.7999999999999 513.2 422.0999999999999C513.7 420.0999999999999 516.8000000000001 417.0999999999999 519.4000000000001 417.0999999999999C521.7 417.0999999999999 521.1000000000001 417.8999999999999 529.7 422.0999999999999C538.1 427.4999999999999 544.6 439.6999999999998 550.3000000000001 439.0999999999999C562.0000000000001 437.4999999999999 531.3000000000001 397.4999999999999 531.3000000000001 392.1999999999998C531.3000000000001 390.1999999999998 531.5000000000001 391.3999999999999 535.9000000000001 382.6999999999998C538.5000000000001 377.1999999999998 540.5000000000001 369.1999999999998 542.1000000000001 362.6999999999998C550.4000000000001 332.9999999999999 547.8000000000002 348.0999999999999 555.5000000000001 325.7999999999999C575.7000000000002 275.6999999999998 576.1000000000001 280.5999999999999 576.1000000000001 272.8999999999999C576.1000000000001 265.3999999999999 572.0000000000001 261.8999999999999 568.9000000000001 256.3999999999999C567.4000000000001 253.3999999999999 564.3000000000001 248.8999999999999 561.7 248.3999999999999C559 247.6999999999999 568.7 249.8999999999999 548.3000000000001 245.8999999999999C541.1 244.8999999999999 534.9000000000001 250.3999999999999 533.4000000000001 255.3999999999999C531.8000000000001 260.0999999999998 536.2 265.4999999999999 521.6000000000001 278.2999999999999C511.3000000000001 288.2999999999999 500.5000000000001 289.5999999999999 489.7000000000002 295.2999999999999C479.9000000000001 300.9999999999999 477.8000000000002 294.2999999999999 471.7000000000002 287.2999999999999C453.7000000000002 264.3999999999999 437.7000000000002 240.3999999999999 419.7000000000002 217.4999999999998C407.9000000000002 202.4999999999998 395.5000000000002 187.0999999999999 386.2000000000002 170.0999999999999C382.3000000000002 163.2999999999999 376.7000000000002 141.9999999999998 375.9000000000002 140.1999999999999C369.7000000000002 122.4999999999999 370.4000000000002 114.3999999999999 359.4000000000002 71.8999999999999C356.3000000000002 61.8999999999999 353.7000000000002 50.4999999999999 350.7000000000002 39.4999999999999C348.5000000000002 32.6999999999999 343.3000000000002 -9.8000000000001 350.2000000000002 -19.9000000000001C352.3000000000002 -23.4000000000001 358.9000000000002 -24.4000000000001 361.5000000000002 -27.9000000000001C361.6000000000002 -28.0000000000001 371.1000000000002 -46.1000000000001 370.8000000000002 -47.9000000000001C370.8000000000002 -54.0000000000001 361.4000000000002 -53.5000000000001 359.5000000000002 -54.4000000000001C354.7000000000002 -57.3000000000001 355.7000000000002 -60.3000000000001 353.1000000000002 -61.8000000000001" />
-			<glyph glyph-name="strava" unicode="" horiz-adv-x="369.2" d=" M301.6 156L257.7000000000001 67.8L213.1000000000001 156H145.5000000000001L257.7000000000001 -64L369.2000000000001 156H301.6zM151.4 448L0 156H89.2L151.4 272.1L213.1 156H301.6L151.4 448z" />
-			<glyph glyph-name="stripe-s" unicode="" horiz-adv-x="362.3" d=" M144.3 293.4C144.3 315.7000000000001 162.9 324.3 192.7 324.3C236.1 324.3 291.2000000000001 311 334.6 287.6V421.9C287.3 440.8 240.1 448 192.8 448C77.1 448 0 387.6 0 286.6C0 128.7 216.8 154.3 216.8 86.2C216.8 59.8 193.9 51.3 162.1 51.3C114.9 51.3 53.9 70.8 6 96.8V-31.7C59 -54.5 112.8 -64.1 162 -64.1C280.6 -64.1 362.3000000000001 -13.1 362.3000000000001 89.5C362.3000000000001 259.7 144.3000000000001 229.2 144.3000000000001 293.4" />
-			<glyph glyph-name="stripe" unicode="" horiz-adv-x="640" d=" M640 214.4C640 259.9 618 295.8 575.8 295.8S507.9 259.9 507.9 214.7C507.9 161.2000000000001 538.1999999999999 136.5 581.4 136.5C602.6 136.5 618.5 141.3 630.6 148V181.4C618.5 175.3 604.6 171.6 587 171.6C569.7 171.6 554.5 177.7 552.5 198.5H639.4C639.6 200.8 640 210.1 640 214.4M552.1 231.2C552.1 251.2 564.4 259.6 575.5 259.6C586.4 259.6 598 251.2 598 231.2H552.1zM439.2000000000001 295.8C421.8000000000001 295.8 410.6 287.6 404.4000000000001 281.9L402.1 292.9H363V88.1L407.4 97.4999999999999L407.5 147.6999999999999C413.9 143 423.4 136.5 438.9 136.5C470.7 136.5 499.7 159.6999999999999 499.7 216.0999999999999C499.8 267.7 470.4 295.8 439.2 295.8M428.6 173.3C418.2 173.3 412 177.1 407.7 181.6999999999999L407.4 247.7C412 252.8 418.4 256.5 428.6 256.5C444.8 256.5 455.9999999999999 238.3 455.9999999999999 215.0999999999999C456.1 191.1999999999999 445.1 173.3 428.6 173.3M346.4 352V315.8L301.8 306.3V342.5L346.4 352M301.9 292.8H346.5V139.6H301.9V292.8zM254.1 279.7000000000001C264.5 298.8 285.2 294.9 291.2 292.8V252C285.5 253.8 267.8 256.5 257.3 242.7V139.6H213V292.8H251.4L254.1 279.7000000000001M165.1 292.8H198.8V255H165.1V191.8C165.1 165.6 193.1 173.8 198.8 176.1V142.3C192.9 139.1 182.2 136.4 167.6 136.4C141.3 136.4 121.5 153.4 121.5 179.7000000000001L121.7 322.1L165 331.3000000000001L165.1 292.8000000000001zM44.9 247.7C44.9 227.7 112.8 237.2 112.8 184.3C112.8 152.3 87.4 136.5 50.5 136.5C35.2 136.5 18.5 139.5 2 146.6V186.6C16.9 178.5 35.9 172.4 50.6 172.4C60.5 172.4 67.6 175.1 67.6 183.3C67.6 204.5 0.1 196.5 0.1 245.7C0.1 277.1 24.1 295.9000000000001 60.1 295.9000000000001C74.8 295.9000000000001 89.5 293.6 104.2 287.8000000000001V246C90.7 253.3 73.5 257.4 60 257.4C50.7 257.3 44.9 254.6 44.9 247.7" />
-			<glyph glyph-name="studiovinari" unicode="" horiz-adv-x="512" d=" M480.3 260.3L484.5 232.3V204.3L459.4 160.2L419.6 81.8L363.5 14.3L284.4 -23.5000000000001L266.7 -48.0000000000001L259 -60.0000000000001L249.4 -64S266.7 -0.4 268.8 -0.4C270.9000000000001 -0.4 289.1 -1.1 289.1 -1.1L355.8 37.5000000000001L263.3 11.4L207.4 -25.4L184.6 -53.4L178 -54.8L198.8 18.8000000000001L205.7 24.3000000000001L226.4 11.4000000000001L314.7 56.6000000000001L371.5 108.1000000000001L386.3 176.5000000000001L260.9 153.2000000000001L276.1 171.4000000000001L102.7 224.7000000000001L184.6 235.2000000000001L18.6 358.1000000000002L133.5 340L32.2 448L285.1 321.4L253.6 359.4L378 285L234.7 384L253.4 345.6L203.8 363.7L158.3 448L352.9 326L310 381.8L418 285.4L430 294.3L409 310.7L413.2 348.5L451 358.9L480.2 334.2L491.7 330L484.7 323.8L493.2 311.8L480.1 304.4L469.8 284.2000000000001L480.3 260.3z" />
-			<glyph glyph-name="stumbleupon-circle" unicode="" horiz-adv-x="496" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM256 262.5C246.2 262.5 238.2 254.5 238.2 244.7V137.8C238.2 96.9 204.3 63.9 163.3 63.9C121.9 63.9 88.4 97.4 88.4 138.8V185.3H145.7V139.5C145.7 129.5 153.7 121.6999999999999 163.5 121.6999999999999S181.3 129.5999999999999 181.3 139.5V247.9C181.3 287.9 215.5 320 256 320C296.7 320 330.7 287.7 330.7 247.4V223.7L296.6 213.6L273.7 224.3V244.9C273.8 254.5 265.8 262.5 256 262.5zM423.6 138.9C423.6 97.5 390.1 64 348.7000000000001 64C307.5000000000001 64 273.8000000000001 97.2 273.8000000000001 138.2V185L296.7000000000001 174.3L330.8000000000001 184.4V137.3C330.8000000000001 127.5 338.8000000000001 119.7 348.6000000000001 119.7S366.4000000000001 127.6 366.4000000000001 137.3V185.3H423.7000000000001C423.6000000000001 139.4 423.6000000000001 138.9 423.6000000000001 138.9z" />
-			<glyph glyph-name="stumbleupon" unicode="" horiz-adv-x="512" d=" M502.9 182V112.3C502.9 50.2 452.6 -0.1 390.5 -0.1C328.7 -0.1 278.1 49.7 278.1 111.2V181.4L312.4000000000001 165.4L363.5000000000001 180.6V110C363.5000000000001 95.3 375.5000000000001 83.5 390.2000000000001 83.5S417 95.3 417 110V182H502.9zM278.2 240.2L312.5 224.2L363.6 239.4V275C363.6 335.5 312.5 384 251.5000000000001 384C190.7000000000001 384 139.4 335.8 139.4 275.8V113.4C139.4 98.5 127.4 86.7 112.7 86.7S86 98.5 86 113.4V182H0V112.3C0 50.3 50.3 0 112.4 0C174 0 224.8 49.5 224.8 110.8V271.1C224.8 285.8 236.8 297.8 251.5 297.8S278.2 285.8 278.2 271.1V240.2z" />
-			<glyph glyph-name="superpowers" unicode="" horiz-adv-x="448" d=" M448 416C364.7 405 281.2 394 198 383C106 370.5 34.7 296.3 29 203C25.7 147.5 47 93.5 86.8 54.8L0 -32C83.3 -21 166.5 -10 249.8 1C341.6 13.5 413.1 87.8 418.5 180.8C422 236.3 400.5 290.3 360.8 329L448 416zM368.3 183.7C364.1 104.2 294.3 44.5 215.5 49.2C136 53.9 74.8 120.2 79.2 200.2C83.7 279.4 153.5 339.5 232.2 334.7C311.5 330 372.7 263.7 368.3 183.7z" />
-			<glyph glyph-name="supple" unicode="" horiz-adv-x="640" d=" M640 185.5C640 121.4 531 69.4 396.5 69.4C371.7 69.4 347.9 71.2 325.4 74.4C333.1 74 340.9 73.8 348.8 73.8C483.3 73.8 592.3 130.6999999999999 592.3 200.9C592.3 230.3 573.1999999999999 257.3 541.0999999999999 278.9C601.0999999999999 257.8 639.9999999999999 223.8 639.9999999999999 185.5zM47.7 220.1C47.6 290.3 156.5 347.4 291 347.7C298.9 347.7 306.6 347.5 314.3 347.2C291.8 350.4 268 352.1 243.3 352.1C108.8 351.7 -0.1 299.5 0 235.4C0.1 197.1 39.1 163.1 99.3 142.1C67 163.6 47.8 190.7000000000001 47.7 220.1zM107.9 180.2S118.4 167 137.2 167C155.1 167 165.6 178.5 165.6 192.1C165.6 220.1 125.4 217.2 125.4 231.8C125.4 237.2 130.7 240.9 137.9 240.9C143.6 240.9 149.2000000000001 238.3 149.2000000000001 234.3V230.4H163.4V238.3C163.4 250.4 148 255.1 138 255.1C121.5 255.1 109.5 244.9000000000001 109.5 231.0000000000001C109.5 204.4 149.7000000000001 205.6 149.7000000000001 191.1C149.7000000000001 184.5 143.9 181 137.4 181C125.5 181 116.7 191.1 116.7 191.1L107.9 180.2000000000001zM228.7 253.8V199.4C228.7 188.1 221.6 181.6 210.9 181.6C200.2 181.6 193.1 188.1 193.1 199.3V253.8H177.3V198.8C177.3 179.9 190.7 166.9 211 166.9C231.1 166.9 244.4 179.9 244.4 198.8V253.8H228.7zM263.1 168.4H278.9V197.9H294.4C310.4 197.9 321.6 209.4 321.6 226S310.4 253.8 294.4 253.8H255.3V240.4H263.1V168.4zM278.9 211.4V240.5H291.8C300.5 240.5 305.5 234.8 305.5 226.1C305.5 217.2 300.3999999999999 211.4 291.5 211.4H278.8999999999999zM335.9 168.4H351.7V197.9H367.2C383.2 197.9 394.4 209.4 394.4 226S383.2 253.8 367.2 253.8H328.1V240.4H335.9V168.4zM351.6 211.4V240.5H364.5C373.2 240.5 378.2 234.8 378.2 226.1C378.2 217.2 373.2 211.4 364.2 211.4H351.5999999999999zM408.7 176.6C408.7 170.8 411.1 168.4 416.9 168.4H454.5C460.3 168.4 462.7 170.8 462.7 176.6V189.6H448.4V184.4C448.4 182.7 447.4 181.8 445.8 181.8H427.2C425.5 181.8 424.5999999999999 182.8 424.5999999999999 184.4V245.6C424.5999999999999 251.3 422.2 253.8 416.3999999999999 253.8H401V240.4H406.2C407.9 240.4 408.8 239.4 408.8 237.8V176.6zM472.1 176.6C472.1 170.8 474.4999999999999 168.4 480.3 168.4H519C524.7 168.4 527.2 170.8 527.2 176.6V189.6H512.9000000000001V184.4C512.9000000000001 182.7 511.9000000000001 181.8 510.3000000000001 181.8H490.6000000000001C488.9000000000001 181.8 488.0000000000001 182.8 488.0000000000001 184.4V204.7H515.7V218.1H488V240.5H507.2C508.9 240.5 509.8 239.5 509.8 237.9V232.7H524V245.7C524 251.4 521.5 253.9 515.8 253.9H464.1999999999999V240.5H471.9999999999999V176.6zM531 252.6V246.7H532.6V252.6H535.3000000000001V253.8H528.3000000000001V252.6H531.0000000000001zM536.7 253.8V246.7H538.2V252.4L540.5 246.7H541.8L544.0999999999999 252.4V246.7H545.5999999999999V253.8H543.3L541.1999999999999 248.7L539.0999999999999 253.8H536.6999999999999z" />
-			<glyph glyph-name="telegram-plane" unicode="" horiz-adv-x="448" d=" M446.7 349.4L379.1 30.6C374 8.1 360.7000000000001 2.5 341.8 13.1L238.8 89L189.1 41.2C183.6 35.7 179 31.1 168.4 31.1L175.8000000000001 136L366.7000000000001 308.5C375.0000000000001 315.9 364.9000000000001 320 353.8000000000001 312.6L117.8 164L16.2 195.8C-5.9 202.7 -6.3 217.9 20.8 228.5L418.2 381.6C436.6 388.5 452.7 377.5 446.7 349.4z" />
-			<glyph glyph-name="telegram" unicode="" horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM369.8 270.1L329.1 78.3C326.1 64.6999999999999 318 61.4 306.7000000000001 67.8L244.7000000000001 113.5L214.8000000000001 84.6999999999999C211.5 81.3999999999999 208.7000000000001 78.5999999999999 202.3000000000001 78.5999999999999L206.7000000000001 141.6999999999999L321.6 245.5C326.6 249.9 320.5 252.4 313.9000000000001 248L171.9 158.5999999999999L110.7 177.6999999999999C97.4 181.8999999999999 97.1 191 113.5 197.3999999999999L352.6 289.5999999999999C363.7000000000001 293.5999999999999 373.4000000000001 286.8999999999999 369.8 270.0999999999999z" />
-			<glyph glyph-name="tencent-weibo" unicode="" horiz-adv-x="384" d=" M72.3 -47.8C73.7 -67.7 44.7 -70 42.6 -50.7C31 79.2 73.7 188.8 144 262.5C128.4 296.5 153.2 339.6 194.6 339.6C224.9 339.6 249.7 315 249.7 284.5C249.7 240.5 200.2 213.7 162.8 239.4C97.1 168.1 61.4 69.6 72.3 -47.8zM192 447.9C66.1 447.9 -12.3 313.7 43.7 205.6C52.4 188.2 79 201.1 70 219C23.7 311.6 91 418.2 192 418.2C267.4 418.2 328.9 356.8 328.9 281.3C328.9 190.5 242 127.4 161.2 148.2C142.1 152.3 135.6 123.8 154.6 119.1C265.3 95.9 358.6 179.1 358.6 281.4C358.6 373.3 284 447.9 192 447.9z" />
-			<glyph glyph-name="themeisle" unicode="" horiz-adv-x="512" d=" M208 359.714C208 369.714 214.286 381.428 225.715 381.428C236.857 381.428 243.429 369.714 243.429 359.714C243.429 349.429 236.857 338 225.715 338C214.286 338 208 349.429 208 359.714zM512 199.714C512 163.713 500.571 97.428 475.714 70C452.856 45.142 388.286 8.857 354.857 -0.572L353.714 -0.858V-33.429C353.714 -49.715 341.142 -64 324.5710000000001 -64C314.5710000000001 -64 305.1420000000001 -58.286 299.999 -49.714C294.572 -58.286 285.1430000000001 -64 275.1430000000001 -64C265.1430000000001 -64 255.7140000000001 -58.286 250.2850000000001 -49.714C245.1430000000001 -58.286 235.7140000000001 -64 225.7150000000001 -64C215.429 -64 206.286 -58.286 200.857 -49.714C195.714 -58.286 186.286 -64 176.286 -64C157.429 -64 146.857 -48.286 146.857 -31.143C130.571 -43.4280000000001 111.142 -50.571 90.286 -50.571C68.286 -50.571 46.857 -42.286 30 -27.7140000000001C40.285 -27.4280000000001 50.571 -25.4280000000001 60.285 -22.0000000000001C39.428 -16.2860000000001 20.857 -3.143 8.285 14.2859999999999C29.655 9.641 54.494 12.6129999999999 75.428 25.429C53.428 47.429 18.857 84.286 6.856 112.857C1.143 126.286 0 144.286 0 158.571C0 208.285 20.286 318.5710000000001 86.286 318.5710000000001C96.857 318.5710000000001 105.143 313.713 109.429 303.7140000000001A158.792 158.792 0 0 0 121.429 319.1420000000001C123.429 321.7140000000001 127.143 324.5710000000001 128.572 327.428C136.571 339.999 140.286 348.5700000000001 150.286 361.428C182.571 402.572 232 430.857 285.143 430.857C291.143 430.857 297.143 430.572 302.857 429.714C313.714 441.429 328.8570000000001 448 344.572 448C359.1430000000001 448 374.286 442 384.572 431.714C385.4290000000001 430.856 386 429.428 386 428.286C386 424.572 375.715 414.857 373.1430000000001 412C377.4290000000001 410.5710000000001 388.8570000000001 405.142 388.8570000000001 400C388.8570000000001 397.1430000000001 386 394.857 384.286 392.857C415.715 365.1430000000001 433.7150000000001 325.714 440.572 284.857C444.858 290 450.857 293.429 457.715 293.429C468.2860000000001 293.429 478.572 286.285 486.2860000000001 279.428C507.143 260.857 512 226.286 512 199.714zM188 358.572C188 340.286 200.571 321.429 220.286 321.429C240 321.429 252.571 340.286 252.571 358.572C252.571 376.572 240 395.429 220.286 395.429C200.571 395.429 188 376.5710000000001 188 358.572zM237.714 254C237.714 273.714 241.428 293.1430000000001 246.285 312.286C194.246 232.752 232.754 127.715 315.1430000000001 127.715C336.5710000000001 127.715 357.7140000000001 135.429 375.1430000000001 147.715C377.1430000000001 155.144 378.8570000000001 162.572 378.8570000000001 170.287C378.8570000000001 184.573 372.5710000000001 191.715 358.2850000000001 191.715C353.714 191.715 349.1420000000001 190.858 344.8560000000001 190.001C281.5130000000001 177.333 237.7140000000001 186.3320000000001 237.7140000000001 254.0000000000001zM196.572 -0.858C196.572 10.285 187.714 19.999 176.286 19.999C164.857 19.999 156.286 10.284 156.286 -0.8579999999999V-33.429C156.286 -44.572 164.857 -54.571 176.286 -54.571C187.714 -54.571 196.572 -44.856 196.572 -33.429V-0.8579999999999zM245.715 -0.858C245.715 10.285 237.143 19.999 225.715 19.999C214.286 19.999 205.429 10.284 205.429 -0.8579999999999V-33.429C205.429 -44.572 214.286 -54.571 225.715 -54.571C237.143 -54.571 245.715 -44.571 245.715 -33.429V-0.8579999999999zM295.428 -0.858C295.428 10.285 286.5710000000001 19.999 275.143 19.999C263.714 19.999 254.857 10.284 254.857 -0.8579999999999V-33.429C254.857 -44.572 263.714 -54.571 275.143 -54.571C286.571 -54.571 295.428 -44.856 295.428 -33.429V-0.8579999999999zM345.1430000000001 -0.858C345.1430000000001 10.285 336.2860000000001 19.999 324.8570000000001 19.999C313.4290000000001 19.999 304.5710000000001 10.284 304.5710000000001 -0.8579999999999V-33.429C304.5710000000001 -44.572 313.4290000000001 -54.571 324.8570000000001 -54.571C336.286 -54.571 345.1430000000001 -44.571 345.1430000000001 -33.429V-0.8579999999999zM421.714 162C390.857 102.858 331.429 59.428 263.1430000000001 59.428C166.572 59.428 102.572 144 102.572 236C102.572 252.857 104.572 269.429 108.572 285.714C88.572 251.999 78.858 213.142 78.858 174.285C78.858 113.999 103.715 52.5699999999999 150.287 13.428C155.43 23.142 165.144 29.714 176.287 29.714C186.287 29.714 195.715 24 200.858 15.428C206.287 23.999 215.429 29.714 225.7160000000001 29.714C235.7160000000001 29.714 245.1440000000001 24 250.2870000000001 15.428C255.7160000000001 23.999 265.144 29.714 275.1450000000001 29.714C285.1450000000001 29.714 294.5730000000001 24 300.0020000000001 15.428C305.1450000000001 23.999 314.5730000000001 29.714 324.5740000000001 29.714C335.4310000000001 29.714 345.4310000000001 23.142 350.2880000000001 13.714C393.7150000000001 50 418.8570000000001 105.714 421.7140000000001 162zM432.286 261.714C432.286 315.428 397.7150000000001 367.428 339.714 367.428C309.429 367.428 281.1430000000001 352.285 260.857 330.5710000000001C240.862 264.188 233.41 194 302.286 194C331.091 194 399.6430000000001 222.538 386.572 157.143C415.429 183.143 432.286 222.857 432.286 261.7140000000001z" />
-			<glyph glyph-name="trello" unicode="" horiz-adv-x="448" d=" M392 416H56C25.1 416 0 390.9 0 360V24C0 -6.9 25.1 -32 56 -32H392C422.9 -32 448 -6.9 448 24V360C448 390.9 422.9 416 392 416zM194.9 76.6C194.9 61.8 182.9 49.7 168 49.7H85.1C70.3 49.7 58.2 61.7000000000001 58.2 76.6V330.9C58.2 345.7 70.2 357.8 85.1 357.8H168C182.8 357.8 194.9 345.8 194.9 330.9V76.6zM389.8 188.6C389.8 173.8 377.8 161.7000000000001 362.9000000000001 161.7000000000001H280C265.2 161.7000000000001 253.1 173.7000000000001 253.1 188.6V330.9C253.1 345.7 265.1 357.8 280 357.8H362.9C377.7 357.8 389.8 345.8 389.8 330.9V188.6z" />
-			<glyph glyph-name="tripadvisor" unicode="" horiz-adv-x="576" d=" M166.4 167.479C166.4 154.243 155.67 143.513 142.434 143.513S118.468 154.243 118.468 167.479S129.198 191.445 142.434 191.445S166.4 180.716 166.4 167.479zM431.362 191.435C418.132 191.435 407.406 180.71 407.406 167.479C407.406 154.249 418.131 143.523 431.362 143.523C444.592 143.523 455.318 154.248 455.318 167.479C455.317 180.71 444.592 191.435 431.362 191.435zM520.75 51.945C458.083 2.841 367.474 13.836 318.371 76.504L287.392 30.179L256.709 76.1180000000001C208.432 15.7280000000001 121.087 4.227 58.824 50.063C-5.234 97.2210000000001 -18.935 187.379 28.223 251.4370000000001A186.76199999999997 186.76199999999997 0 0 1 0 308.584L90.286 308.634A358.48 358.48 0 0 0 287.351 362.664A350.382 350.382 0 0 0 479.532 309.3150000000001L575.75 309.241A185.71300000000002 185.71300000000002 0 0 1 547.398 251.592C594.191 188.845 582.3620000000001 100.222 520.75 51.9450000000001zM259.366 166.239C259.359 229.796 207.831 281.314 144.274 281.307C80.717 281.3 29.2 229.772 29.206 166.215C29.213 102.658 80.741 51.14 144.298 51.147C207.811 51.222 259.282 102.686 259.366 166.199V166.239zM287.957 176.694C293.39 250.134 353.467 307.578 427.077 309.716A339.146 339.146 0 0 1 287.35 337.528A356.31 356.31 0 0 1 147.186 310.275C221.53 308.693 282.485 250.851 287.957 176.694zM539.663 205.461C517.671 265.095 451.501 295.6089999999999 391.8680000000001 273.618C332.2340000000001 251.626 301.7200000000001 185.4559999999999 323.7110000000001 125.823V125.791C345.7490000000001 66.184 411.9090000000001 35.7 471.5380000000001 57.678C531.153 79.682 561.6510000000001 145.84 539.663 205.461zM213.624 167.4859999999999V167.3709999999999C213.567 128.0429999999999 181.638 96.2079999999999 142.31 96.2649999999999C102.982 96.322 71.147 128.2509999999999 71.204 167.579C71.261 206.907 103.19 238.742 142.518 238.685C181.7770000000001 238.569 213.56 206.745 213.624 167.4859999999999zM189.112 167.4859999999999V167.5699999999999C189.061 193.3539999999999 168.118 214.215 142.334 214.1639999999999C116.5500000000001 214.113 95.689 193.1699999999999 95.74 167.387C95.791 141.603 116.734 120.742 142.5170000000001 120.793C168.2430000000001 120.906 189.0540000000001 141.761 189.1120000000001 167.4859999999999zM502.535 167.4859999999999V167.4379999999999C502.515 128.1099999999999 470.617 96.2439999999999 431.288 96.2649999999999S360.094 128.1829999999999 360.115 167.512C360.135 206.84 392.033 238.706 431.362 238.685C470.652 238.619 502.483 206.776 502.535 167.4859999999999zM478.031 167.4939999999999C478.022 193.2779999999999 457.113 214.1729999999999 431.329 214.1639999999999C405.545 214.155 384.65 193.2459999999999 384.659 167.4619999999999C384.668 141.678 405.577 120.7839999999999 431.361 120.7919999999999C457.126 120.8379999999999 477.997 141.7199999999999 478.031 167.4849999999999V167.4939999999999z" />
-			<glyph glyph-name="tumblr-square" unicode="ï…´" horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM317.7 51.8C309.2 42.7 286.5 32 256.8 32C181.3 32 164.9 87.5 164.9 119.9V209.9H135.2C131.8 209.9 129 212.7 129 216.1V258.6C129 263.1 131.8000000000001 267.1 136.1 268.6C174.9 282.3 187 316.1 188.8 341.8C189.3 348.7 192.9 352 198.8 352H243.1C246.5000000000001 352 249.3 349.2 249.3 345.8V273.8H301.2C304.6 273.8 307.4 271 307.4 267.6V216.5C307.4 213.1 304.6 210.3 301.2 210.3H249.1V127C249.1 105.6 263.9 93.5 291.6 104.6C294.6 105.8 297.2000000000001 106.6 299.6 106C301.8 105.5 303.2000000000001 103.9 304.2000000000001 101.1L318.0000000000001 60.9C319.0000000000001 57.7000000000001 320.0000000000001 54.2 317.7000000000001 51.8z" />
-			<glyph glyph-name="tumblr" unicode="ï…³" horiz-adv-x="320" d=" M309.8 -32.3C296.2 -46.8 259.8 -64 212.4 -64C91.6 -64 65.4 24.8 65.4 76.6V220.6H17.9C12.4 220.6 7.9 225.1 7.9 230.6V298.6C7.9 305.8 12.4 312.2000000000001 19.2 314.6C81.2 336.4000000000001 100.7 390.6 103.5 431.7000000000001C104.3 442.7000000000001 110 448 119.6 448H190.5C196 448 200.5 443.5 200.5 438V322.8H283.5C289 322.8 293.5 318.4 293.5 312.9V231.2C293.5 225.7 289 221.2 283.5 221.2H200.1V88C200.1 53.8 223.8 34.4 268.1 52.2C272.9000000000001 54.1 277.1 55.4 280.8 54.4C284.3 53.5 286.6 51 288.2 46.5L310.2 -17.8C312 -22.8 313.5 -28.4 309.8 -32.3z" />
-			<glyph glyph-name="twitch" unicode="" horiz-adv-x="448" d=" M40.1 416L10 339.1V24.8H117V-32H177.2L234 24.8H321L438 141.8V416H40.1zM397.9000000000001 161.9L331 95H224L167.2 38.2V95H76.9V375.9H397.9V161.9zM331 299V182.1H290.9V299H331zM224 299V182.1H183.9V299H224z" />
-			<glyph glyph-name="twitter-square" unicode="" horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM351.1 257.2C351.3 254.4 351.3 251.5 351.3 248.7C351.3 162 285.3 62.1 164.7 62.1C127.5 62.1 93 72.9 64 91.5C69.3 90.9 74.4 90.7 79.8 90.7C110.5 90.7 138.7 101.1 161.2 118.7C132.4 119.3 108.2 138.2 99.9 164.2C110 162.7 119.1 162.7 129.5 165.4C99.5 171.5 77 197.9 77 229.8V230.6C85.7 225.7 95.9 222.7 106.6 222.3A65.447 65.447 0 0 0 77.4 276.9C77.4 289.1 80.6 300.3 86.3 310C118.6 270.2 167.1 244.2 221.5 241.4C212.2 285.9 245.5 322 285.5 322C304.4 322 321.4 314.1 333.4 301.3C348.2 304.1 362.4 309.6 375 317.1C370.1 301.9 359.8 289.1 346.2 281C359.4 282.4 372.2 286.1 384 291.2C375.1 278.1 363.9 266.5 351.1 257.2z" />
-			<glyph glyph-name="twitter" unicode="ï‚™" horiz-adv-x="512" d=" M459.37 296.284C459.695 291.736 459.695 287.187 459.695 282.639C459.695 143.919 354.112 -15.919 161.137 -15.919C101.685 -15.919 46.457 1.3 0 31.187C8.447 30.213 16.568 29.888 25.34 29.888C74.395 29.888 119.553 46.456 155.614 74.72C109.482 75.6950000000001 70.822 105.908 57.502 147.492C64 146.518 70.497 145.868 77.32 145.868C86.741 145.868 96.163 147.168 104.934 149.441C56.853 159.188 20.791 201.421 20.791 252.426V253.725C34.76 245.928 51.005 241.055 68.222 240.406C39.958 259.249 21.441 291.411 21.441 327.7970000000001C21.441 347.289 26.638 365.1570000000001 35.735 380.751C87.39 317.076 165.035 275.493 252.1 270.944C250.4760000000001 278.741 249.5010000000001 286.862 249.5010000000001 294.9840000000001C249.5010000000001 352.812 296.283 399.918 354.4350000000001 399.918C384.6480000000001 399.918 411.9370000000001 387.248 431.1050000000001 366.781C454.8200000000001 371.329 477.5610000000001 380.101 497.7040000000001 392.121C489.9060000000001 367.755 473.3380000000001 347.288 451.5720000000001 334.294C472.6890000000001 336.567 493.1560000000001 342.416 511.998 350.5370000000001C497.7060000000001 329.746 479.837 311.2290000000001 459.3700000000001 296.284z" />
-			<glyph glyph-name="typo3" unicode="" horiz-adv-x="433.3" d=" M330.8 107C323.8 104.7 319.2 104.7 312.3 104.7C255.1 104.7 171.7 303.2 171.7 369.6C171.7 394.3 177.1 402 185.6 409C116.1 400.5 36.3 375 9.3 342.6C3.9 334.9 0 321.8 0 305.5C0 202 106.8 -32 184.1 -32C220.4 -32 281.4 27.5 330.8 107M294.5 416C366.3 416 433.3 404.4 433.3 363.5C433.3 280.9 380.8 181.2 354.5 181.2C306.6 181.2 252.8 313.3 252.8 379.7C252.8 410.6 264.4000000000001 416 294.5 416" />
-			<glyph glyph-name="uber" unicode="" horiz-adv-x="448" d=" M414.1 416H33.9C15.2 416 0 400.8 0 382.1V2C0 -16.8 15.2 -32 33.9 -32H414C432.7 -32 447.9 -16.8 447.9 1.9V382.1C448 400.8 432.8 416 414.1 416zM237.6 56.9C163 49.4 96.4 103.8 88.9 178.4H183.3V158C183.3 154.3 186.3 151.2 190.1 151.2H258C261.7 151.2 264.8 154.2 264.8 158V225.9C264.8 229.6 261.8 232.7 258 232.7H190.1C186.4 232.7 183.3 229.7 183.3 225.9V205.5H88.9C95.9 274.9 154.3 327.7 224 327.7C293.7 327.7 352.1 274.9 359.1 205.5C366.6 131 312.2000000000001 64.4 237.6 56.9z" />
-			<glyph glyph-name="uikit" unicode="" horiz-adv-x="448" d=" M443.9 320V64L218 -64L0 64V278.3L87.6 233.2V116.2000000000001L221.1 40.7L356.9 116.2000000000001V267.2000000000001L255.8 324.8000000000001L343.4 377.9000000000001L443.9 320zM308.6 398.9L223.8 448L135.2 393.2L221.2 345.9L308.6 398.9z" />
-			<glyph glyph-name="uniregistry" unicode="" horiz-adv-x="384" d=" M281.1 227.9H384V242.7H281.1V227.9zM281.1 265H384V277.4H281.1V265zM281.1 190.8H384V208.1H281.1V190.8zM123.4 104.1H8.5C11.1 95.6 14.3 87.3 18.1 79.3H156.4C143.5 85 132.3 93.5 123.4 104.1M269.1 116.5H378.8C380.6 123.8 381.9000000000001 131.2 382.7 138.8H278.3C276.2 130.9 273.1 123.4 269.1 116.5M227.6 79.4H367C370.7 87.4 372.8 95.6 375.5 104.2H260.5C251.7 93.5 240.4 85 227.6 79.4M384 416H281.1V413.5H384V416zM192 -32C231.5 -32 268.2 -20.2 298.8 0.2H85.3C115.8 -20.2 152.5 -32 192 -32M281.1 302.2H384V312H281.1V302.2zM281.1 339.3H384V346.7H281.1V339.3zM281.1 376.4H384V381.3H281.1V376.4zM102.9 277.4H0V265H102.9V277.4zM38.8 42.3H344.1C350.8 50.8 356.7000000000001 59.9 361.9000000000001 69.5H23C28.2 59.9 32.2 50.8 38.8 42.3M102.9 161.1V173.5H0V161.1C0 158.6 0 156.1 0.1 153.7000000000001H103.2C103 156.1 102.9 158.6 102.9 161.1M281.1 161.1C281.1 158.6 281 156.1 280.7 153.7000000000001H383.8C383.9 156.2000000000001 384 158.6 384 161.1V173.5H281.1V161.1zM78.1 5.1H305.8C317.6 13.8 328.5 23.7 338 34.8H44.9C54.5 23.8 66.3 13.8 78.1 5.1M102.9 381.3H0V376.4H102.9V381.3zM102.9 416H0V413.5H102.9V416zM102.9 242.7H0V227.9H102.9V242.7zM102.9 208.1H0V190.8H102.9V208.1zM102.9 312H0V302.1H102.9V312zM102.9 346.7H0V339.3H102.9V346.7zM105.7 138.8H1.3C2.2 131.2 3.5 123.8 5.2 116.5H114.9C110.9 123.4 107.7 130.9 105.7 138.8" />
-			<glyph glyph-name="untappd" unicode="" horiz-adv-x="640" d=" M401.3 398.1C321.5 238 316.7000000000001 245.6 313.4 224.9L308.2 192.1C306.3 180.1 301.6 168.6 294.5 158.7000000000001L145.6 -49.1C138 -59.7 125.2 -65.3000000000001 112.2 -63.7C71.9 -58.7 34.4 -31.5000000000001 16.9 4.8C11.2 16.6 12.4 30.6 20 41.1999999999999L168.9 249.1C176 259 185.3 267.0999999999999 196.1 272.8L225.4 288.3C243.9 298.0999999999999 235.1 300.2 361 427.2C362 432 362 434.5 364.6 435.2C367.6 435.8999999999999 371.2000000000001 436.2 370.9000000000001 439.8L370.5000000000001 444.3999999999999C370.3000000000001 446.3 371.8000000000001 448 373.7000000000001 448C378.2000000000001 448.0999999999999 386.9000000000001 446.8 399.3000000000001 438C411.6000000000001 429.0999999999999 415.7000000000001 421.2 417.0000000000001 416.8999999999999C417.6000000000001 415.0999999999999 416.4000000000001 413.2 414.6000000000001 412.7L410.1000000000001 411.5999999999999C406.7000000000001 410.7 407.6000000000001 407.2 407.8000000000001 404.2C407.9000000000001 401.3999999999999 405.5000000000001 400.5999999999999 401.3000000000001 398.0999999999999zM230.1 411.6C233.5 410.7 232.6 407.2 232.4 404.2C232.2 401.5 234.5 400.7 238.8 398.2C246.7 382.3 254.1 367.7 261 354.2C261.7 352.9 263.3 352.7 264.3 353.7C275.5 365.7 288.9000000000001 379.9 304.8 396.3C306.1 397.7 306.2 399.8 304.9000000000001 401.2C296.9000000000001 409.4 288.4000000000001 418.1 279.3 427.3C278.3 432 278.3 434.6 275.7 435.3C272.7 436.1 269.1 436.3 269.4 439.9C269.7 443.2 270.8 448 266.6 448.1C262.1 448.2 253.4 447 241 438.1C228.7 429.2 224.6 421.3 223.3 417C221.9 412.8 226.9 412.4 230.1 411.6zM620 41.3L471.2 249.2C458 267.7 444.6 272.6 414.8 288.3C403.6 294.2 400.6 299.2 384.3 317.2C383.3 318.3 381.4000000000001 318.1 380.7 316.7C334.4 227.9 333.6 233.9 331.7 221.9C330 211.2 330.4 201.9 332 192.1C333.9 180.1 338.6 168.6 345.7 158.7L494.6 -49.2C502.2 -59.8000000000001 514.8000000000001 -65.4000000000001 527.7 -63.9C568 -59.0000000000001 605.7 -31.9 623.4000000000001 4.6999999999999C628.8000000000001 16.5999999999999 627.7 30.5999999999999 620.0000000000001 41.3z" />
-			<glyph glyph-name="usb" unicode="" horiz-adv-x="640" d=" M641.5 192C641.5 188.9 639.8 185.9 637 184.5L547.9 131C546.5 130.2 545.1 129.6 543.4 129.6C542 129.6 540.3 129.9 538.9 130.7000000000001C536.1 132.4 534.4 135.2000000000001 534.4 138.5000000000001V174.1000000000001H295.7C321 134.5000000000001 336.2 67.2000000000001 365.3 67.2000000000001H392V94C392 99 395.9 102.9 400.9 102.9H490C495 102.9 498.9 99 498.9 94V4.9C498.9 -0.1 495 -4 490 -4H400.9C395.9 -4 392 -0.1 392 4.9V31.6H365.3C289.9 31.6 284.2000000000001 174.1 240.6 174.1H140.3C132.2 143.5 104.4 120.6 71.3 120.6C32 120.7 0 152.7 0 192S32 263.3 71.3 263.3C104.4 263.3 132.3 240.5 140.3 209.8C179.4 209.8 184.2 200.3 214.9 270.2000000000001C255 359.3 273 352.3 323.8 352.3C331.3 373.2 350.8 387.9 374.2 387.9C403.7 387.9 427.7 364 427.7 334.4S403.8 280.9 374.2 280.9C350.8 280.9 331.3 295.7000000000001 323.8 316.5H294C264.9 316.5 249.7 249.1 224.4 209.6H534.5V245.2C534.5 248.5 536.2 251.3 539 253C541.8 254.7 545.4 254.4 547.9 252.7L637 199.2C639.8 198.1 641.5 195.1 641.5 192z" />
-			<glyph glyph-name="ussunnah" unicode="" horiz-adv-x="512" d=" M156.8 162.9L162.5 148.5H154.3C153 151.7 151.2 156.2 150.5 158C148 164.3 149.4 166.4 150.5 168C152.4 170.7 153.7 172.4 154.1 173.2C154.1 171 154.9 167.5 156.8 162.9zM454.1 144.1C452 130.3 448.4000000000001 117 443.6 104.4L486.6 81L441.8 99.8C436.5 86.6 429.8 74.2 421.9000000000001 62.6L456.1 32.4L419.3 58.8C410.9000000000001 47 401.3 36.2 390.6 26.5L415.5 -8.2L387.4 23.6C376.4 14 364.3 5.6 351.3 -1.5L367 -38.7L347.7 -3.4C334.5999999999999 -10.2 320.7 -15.5 306.0999999999999 -19.3L312.7999999999999 -57.6999999999999L302.2999999999999 -20.3C287.9999999999999 -23.6999999999999 273.0999999999999 -25.6 257.7999999999999 -25.6999999999999L256 -64L254.1 -25.6C238.8 -25.5 223.9 -23.6 209.6 -20.3L199 -57.6L205.7 -19.4C191.1 -15.7 177.1 -10.3 164 -3.6L144.8 -38.7L160.4 -1.7C147.4 5.3 135.2 13.6999999999999 124.2 23.4L96.3 -8.2L121 26.1999999999999C110.3 35.8999999999999 100.6 46.6999999999999 92.2 58.4999999999999L55.7 32.3L89.6 62.1999999999999C81.7 73.8 75 86.3 69.6 99.4999999999999L25.2 80.8L67.8 104C63 116.7 59.4 130.1 57.3 143.9L6.3 134.9L56.6 149.1C55.5 157.6 54.9 166.2 54.9 175C54.9 179.6999999999999 55.1 184.3999999999999 55.4 189.1L0 192L56 194.8C57.3 207.9 59.8 220.6 63.5 232.9L6.4 249L65.3 238.6C69.3 250.6 74.4 262.1 80.5 273L25.4 303L83.7 278.4C90 289 97.2 298.8 105.3 308L55.8 351.6L109.7 312.9C117.8 321.5 126.7 329.4 136.3 336.5L96.3 392.1L141.9 340.5C151.4 347.1 161.6 352.8 172.2 357.7L144.9 422.6L178.7 360.5C189.2 364.9 200.1 368.4 211.4 370.9L199 441.6L218.5 372.4C229.5 374.5 240.8 375.6 252.3 375.8L256 448L259.6 375.8C271.1 375.6 282.4000000000001 374.4 293.4000000000001 372.3L313 441.6L300.6 370.9C311.9000000000001 368.3 322.8 364.8 333.2000000000001 360.4L367.1 422.6L339.7000000000001 357.5C350.3000000000001 352.6 360.4000000000001 346.8 369.9000000000001 340.3L415.7000000000001 392.1L375.6 336.2C385.1 329.1 394 321.2 402.1 312.6L456.3 351.5L406.6 307.6C414.6 298.5 421.8 288.7 428.1 278.2L486.8 302.9L431.3 272.7C437.4000000000001 261.8 442.4000000000001 250.4 446.4000000000001 238.4L505.7 248.8L448.2000000000001 232.6C451.9 220.4 454.4 207.7 455.7 194.7L512 192L456 189.2C456.3 184.6 456.5 179.9 456.5 175.1C456.5 166.4 455.9 157.8 454.9 149.3L505.6 135L454.1 144.1zM432.3 175.1C432.3 272.6 353.3 351.6 255.8 351.6S79.3 272.6 79.3 175.1S158.3 -1.4 255.8 -1.4S432.3 77.6 432.3 175.1zM408.3 175.1C408.3 90.8 340 22.5 255.7 22.5S103.1 90.8 103.1 175.1S171.4 327.7000000000001 255.7 327.7000000000001S408.3 259.4000000000001 408.3 175.1zM195 207C195 204.9 196.3 203.2 198.6 201.9C201.9 200 204.8 197.3 206.8 193.7C209.6 199.4 211.1 203.2 211.1 204.9C211.1 207.1 210 209.3 207.9 211.9C205.8 214.4 204.7 217.1 204.6 219.6C198.1 212.8 195 208.7 195 207zM154.3 226C154.3 223.9 155.6 222.2 157.9 220.9C161.4 219 164.1 216.3 166.1 212.7C168.9 218.4 170.4 222.2 170.4 223.9C170.4 226.1 169.3 228.3 167.2 230.9C165.1 233.4 164 236.1 163.9 238.6C157.4 231.8 154.3 227.7 154.3 226zM135.3 226C135.3 223.9 136.6 222.2 138.9 220.9C142.2 219 145.1 216.3 147.1 212.7C149.9 218.4 151.4 222.2 151.4 223.9C151.4 226.1 150.3 228.3 148.2 230.9C146.1 233.4 145 236.1 144.9 238.6C138.5 231.8 135.3 227.7 135.3 226zM340.2000000000001 138.1C331.8000000000001 141.1 331.5000000000001 144.9 331.5000000000001 153.7000000000001V266C323.3000000000001 253.5 317.3000000000001 247.4 313.5000000000001 247.4C319.8000000000001 233 323.0000000000001 223.5 323.0000000000001 219.1V154.8C323.0000000000001 152.6 320.8000000000001 148.3 318.3000000000001 148.3H300.3000000000001C297.5000000000001 155.8 290.1000000000001 175.2 285.0000000000001 188.6C283.0000000000001 186.1 277.8000000000001 179.4 274.3000000000001 174.9C276.7000000000001 173.3 278.4000000000001 171.3 279.5000000000001 168.6C282.1000000000001 161.9 285.9000000000001 152.1 287.4000000000001 148.4H278.2000000000001C274.3000000000001 158.8 268.6 173.8 266.4000000000001 179.5000000000001C264.4000000000001 177.0000000000001 259.2000000000001 170.3000000000001 255.7000000000001 165.8000000000001C258.1 164.2000000000001 259.8000000000001 162.2000000000001 260.9000000000001 159.5000000000001C261.7000000000001 157.5000000000001 263.7000000000001 152.2000000000001 265.2000000000001 148.6000000000001H256C254.5 152.7000000000001 250.4 163.2000000000001 247.6 170.6000000000001C245.6 168.1000000000001 240.4 161.4000000000001 236.9 156.9000000000001C239.4 155.3000000000001 241.2 153.3000000000001 242.1 150.6000000000001C242.3 150.0000000000001 242.6 149.2000000000001 242.7 148.9000000000001H225C220.4 162.8000000000001 213.6 176.6000000000001 213.6 183.0000000000001C213.6 185.2000000000001 213.9 188.1000000000001 214.7 191.2000000000001C205.9 180.4000000000001 200.7 175.3000000000001 200.7 166.2000000000001C200.7 158.7000000000001 211.1 137.9000000000001 211.1 132.9000000000001C211.1 131.2000000000001 210.6 129.6000000000001 209.7 128.0000000000001C200.1 140.7000000000001 194.2 148.7000000000001 190.9 148.7000000000001H178.9L167.7 176.7000000000001C163.9 186.3000000000001 162 192.7000000000001 162 195.5000000000001C162 199.3000000000001 162.5 203.2000000000001 163.7 207.7000000000001C162.7 206.4000000000001 160 203.0000000000001 158.2 200.6000000000001C157.4 202.7000000000001 155.1 208.3000000000001 153.6 212.1000000000001C151.5 209.6000000000001 146.1 203.0000000000001 142.4 198.5000000000001C143.3 196.2000000000001 145.7 190.4000000000001 147.3 186.3000000000001C144.8 183.0000000000001 138.2 174.5000000000001 133.7 168.6000000000001C129.7 163.3000000000001 127.9 155.3000000000001 131 146.8000000000001C133.5 140.1000000000001 133 138.9000000000002 129.3000000000001 132.7000000000001H191C196.5 132.7000000000001 205.3 118.7000000000001 206.5 110.7000000000001C219.7 126.7000000000001 221.9 130.3000000000001 223.3 132.3000000000001H330.3C334.2 132.3000000000001 337.5 134.2000000000001 340.2 138.1000000000001zM360.3000000000001 164.7000000000001V266.3C351.3000000000001 253.8 344.4000000000001 247.7 339.6000000000001 247.7C346.7000000000001 233.3 350.3000000000001 223.8 350.3000000000001 219.4V153.1C350.3000000000001 135.6 358.9000000000001 132.7000000000001 374.3000000000001 132.7000000000001C382.4000000000001 132.7000000000001 386.8000000000001 133.5000000000001 388.0000000000001 135.4C383.7000000000001 137.0000000000001 380.4000000000001 137.9 378.1000000000001 138.7000000000001C370.0000000000001 141.9 360.3000000000001 146.1 360.3000000000001 164.7000000000001z" />
-			<glyph glyph-name="vaadin" unicode="" horiz-adv-x="448" d=" M224.5 307.3C226 324.9 229.4 360 274.3 360H372.9C393.6 360 405 367.8 405 381.6V393.9C405 406.1 414.3 416 426.5 416S448 406.1 448 393.9V357.4C448 314.5 426.5 295.4 381.2 295.4H280.7C250.6 295.4 247.7 280.7000000000001 247.7 268.3C247.7 267 247.6 265.8 247.5 264.6C246.8 252.3 236.6 242.4000000000001 224.1 242.4000000000001S201.4 252.2000000000001 200.7 264.6C200.6 265.8 200.5 267 200.5 268.3C200.5 280.6 197.5 295.4 167.5 295.4H66.8C21.5 295.4 0 314.5 0 357.4V393.9C0 406.1 9.4 416 21.6 416S43.1 406.1 43.1 393.9V381.6C43.1 367.8 54.5 360 75.2 360H173.8C218.6 360 222.1 324.9 223.6 307.3H224.5zM224 -8C235.5 -8 245.4 -1 249.7 8.3C250.8 10.1 346.8 177.9 347.9 179.7000000000001C359.8 199.3000000000001 344.7 224.0000000000001 320.7 224.0000000000001C306.8 224.0000000000001 297.4 217.6000000000001 290.9 203.7000000000001L224 86L157.1 203.7C150.7 217.6 141.2 224 127.3 224C103.3 224 88.2 199.4 100.1 179.7C101.2 177.8 197.2 10.1 198.3 8.3C202.6 -1.0000000000001 212.5 -8.0000000000001 224 -8.0000000000001z" />
-			<glyph glyph-name="viacoin" unicode="" horiz-adv-x="384" d=" M384 416H320L239.3 224H144.8L64 416H0L48 304H0V256H68.5L82.3 224H0V176H102.8L192 -32L281.2 176H384V224H301.7L315.5 256H384V304H336L384 416zM192 112L165 176H219L192 112z" />
-			<glyph glyph-name="viadeo-square" unicode="" horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM280.7 66.8C238.3 20.6 160.7 20.2 118.3 66.8C50.3 140.4 98.5 262.9 199.5 262.9C212.8 262.9 226.1 260.8 238.6 256.2000000000001C234.3 247.8 231.3 238.6 230.2 229.1C220.5 233.2 210 235.1 199.5 235.1C150.7 235.1 114.9 193.4 114.9 146.2000000000001C114.9 103.2000000000001 143.4 67.5000000000001 184.4 60.3000000000001C245.9 84.3000000000001 257.3 177.9000000000001 257.3 235.3000000000001C257.3 242.6000000000001 257.3 250.1000000000001 256.7 257.4000000000001C245.5 290.3000000000001 230.1 322.0000000000001 212.5 351.9000000000001C239.6 333.6000000000001 254.4 289.4000000000001 256.7 257.8000000000001V257.4000000000001C264.4 234.9000000000001 268.5 211.2000000000001 268.5 187.4000000000001C268.5 133.3000000000001 246.6 88.4000000000001 200.2 59.2000000000001L197.8 59.0000000000001C247.8 58.0000000000001 284 97.6000000000001 284 146.2000000000001C284 158.4000000000001 281.9 170.5000000000001 277.1 181.9000000000001C286.6 183.8000000000001 295.6 187.5000000000001 303.5 192.4000000000001C318.8 155.8000000000001 316.1 105.1000000000001 280.7 66.8000000000001zM309 214.3C295.7 214.3 283.9 221.4 274.6 230.4C296.5 242.4 324.2000000000001 261.1 336.9000000000001 283.4C338.4000000000001 286.4 341.0000000000001 292 341.4000000000001 295.4C328.9000000000001 267.5 297.2000000000001 245.6 267.5 238.7C262.8 246 260 254.2 260 263C260 273.3 265.2 287.1 272.9 294.6C294.5 315.1 325.9 303.1 345.3 344.6C377.8 298.4 358.4 214.3 309 214.3z" />
-			<glyph glyph-name="viadeo" unicode="" horiz-adv-x="448" d=" M276.2 297.5V296.8C258.3 349.4 233.6 400.2 205.4 448C248.7 418.8 272.4 348 276.2 297.5zM308.9 175.8C316.5 157.6 319.9 138.3 319.9 118.8C319.9 41.1 262.1 -22.2 182.1 -20.6L185.9 -20.3C260.1 26.4 295.2 98.3 295.2 184.8C295.2 222.9 288.7 260.7 276.3 296.8C277.3 285.1 277.3 273.1 277.3 261.4C277.3 169.6 259.2 19.8 160.7 -18.6C95 -7.2 49.4 50 49.4 118.8C49.4 194.4 106.8 261.1 184.8 261.1C201.6 261.1 218.5 258 233.9 251.5000000000001C235.6 266.6 240.4 281.4000000000001 247.3 294.8C227.4 302 206.1 305.5 184.8 305.5C23.3 305.5 -53.9 109.6 54.9 -8.2C122.8 -82.7999999999999 246.9 -82.1 314.7000000000001 -8.2C371.3000000000001 53.1 375.6 134.2000000000001 351.1 192.8C338.4000000000001 184.8 324 178.9 308.9000000000001 175.8zM418.1 436.3C387.1 369.8 336.8 389.1 302.3 356.2C289.9000000000001 344.2 281.7 322.2 281.7 305.7C281.7 291.6 286.2 278.6 293.7 266.9C341.1 277.9 392 312.9 411.9 357.6C411.2 352.1 407.1 343.2 404.7 338.4C384.4 302.7 340.1 272.8 305 253.5C319.8 239.1 338.7 227.7 360 227.7C439 227.7 470.1 362.3 418.1 436.3z" />
-			<glyph glyph-name="viber" unicode="" horiz-adv-x="512" d=" M430.7 398.1C418 409.8 366.6 447.1 252.1 447.6C252.1 447.6 117 455.7 51.2 395.3C14.6 358.7 1.7 305.1 0.3 238.6C-1.1 172.1 -2.8 47.5 117.3 13.7H117.4L117.3 -37.9S116.5 -58.8 130.3 -63.0000000000001C146.9 -68.2 156.7 -52.3000000000001 172.6 -35.2C181.3 -25.8000000000001 193.3 -12.0000000000001 202.4 -1.5000000000001C284.6 -8.4 347.7000000000001 7.3999999999999 354.9000000000001 9.6999999999999C371.5000000000001 15.0999999999999 465.4 27.0999999999999 480.6 151.6999999999999C496.4 280.2 473 361.3999999999999 430.7000000000001 398.0999999999999zM444.6 161C431.7000000000001 57 355.6 50.4 341.6 45.9C335.6 44 280.1 30.2 210.4 34.7C210.4 34.7 158.4 -28 142.2000000000001 -44.3C136.9 -49.6 131.1000000000001 -49.1 131.2000000000001 -38.6C131.2000000000001 -31.7 131.6000000000001 47.1 131.6000000000001 47.1C131.5000000000001 47.1 131.5000000000001 47.1 131.6000000000001 47.1C29.9 75.3 35.8 181.4 37 236.9C38.1 292.4 48.6 337.9 79.6 368.5C135.3 419 250 411.5 250 411.5C346.9 411.1 393.3 381.9 404.1 372.1C439.8 341.5 458 268.3 444.6 161zM305.7000000000001 241.8C306.1 233.2 293.2000000000001 232.6 292.8000000000001 241.2C291.7000000000001 263.2000000000001 281.4000000000001 273.9000000000001 260.2000000000001 275.1C251.6000000000001 275.6 252.4000000000001 288.5 260.9000000000001 288C288.8 286.5 304.3 270.5 305.7000000000001 241.8zM326.0000000000001 230.5C327.0000000000001 272.9 300.5000000000001 306.1 250.2000000000001 309.8C241.7000000000001 310.4 242.6000000000001 323.3 251.1000000000001 322.7000000000001C309.1 318.5 340.0000000000001 278.6 338.9000000000001 230.2C338.7000000000001 221.6 325.8 222 326.0000000000001 230.5000000000001zM372.9000000000001 217.1C373.0000000000001 208.5 360.0000000000001 208.4 360.0000000000001 217C359.4000000000001 298.5 305.1000000000001 342.9 239.2000000000001 343.4C230.7000000000001 343.5 230.7000000000001 356.3 239.2000000000001 356.3C313.0000000000001 355.8 372.3000000000001 304.9 372.9000000000001 217.1zM361.7 119V118.8C350.9 99.8 330.7 78.8 309.9 85.5L309.7 85.8C288.6 91.7 238.9 117.3 207.5 142.3C191.3 155.1 176.5 170.2 165.1 184.7C154.8 197.6 144.4 212.9 134.3 231.3C113 269.8 108.3 287 108.3 287C101.6 307.8 122.5 328 141.6 338.8H141.8C151 343.6 159.8 342 165.7 334.9C165.7 334.9 178.1 320.1 183.4 312.8C188.4 306 195.0999999999999 295.1 198.5999999999999 289C204.6999999999999 278.1 200.9 267 194.9 262.4L182.9 252.8C176.8 247.9 177.5999999999999 238.8 177.5999999999999 238.8S195.4 171.5 261.8999999999999 154.5C261.8999999999999 154.5 271 153.7 275.8999999999999 159.8L285.5 171.8C290.1 177.8 301.2 181.6 312.1 175.5C326.8 167.2 345.5 154.3 357.9 142.6C364.9 136.9 366.5 128.2000000000001 361.7 119z" />
-			<glyph glyph-name="vimeo-square" unicode="" horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM383.8 266.4C382.4000000000001 235.3 360.6 192.6 318.5 138.5C275 82 238.2 53.7 208.1 53.7C189.4 53.7 173.7 70.9 160.8 105.3C135.6 197.6 124.9 251.7 104.1 251.7C101.7 251.7 93.3 246.7 79 236.6L64 256C100.9 288.4 136.1 324.4 158.1 326.4C183 328.8 198.3 311.8 204.1 275.3C224.6 145.7000000000001 233.7 126.1 270.9 184.8C284.3 206 291.5 222 292.4 233.1C295.8 265.9000000000001 266.8 263.7000000000001 247.2 255.3C262.9 306.8 293 331.8 337.3 330.4C370.2 329.4 385.7 308 383.8 266.4z" />
-			<glyph glyph-name="vimeo-v" unicode="" horiz-adv-x="448" d=" M447.8 294.4C445.8 250.8 415.4000000000001 191.1 356.4 115.3C295.5 36.1 244 -3.5 201.8 -3.5C175.7 -3.5 153.6 20.6 135.5 68.8C100.3 198 85.3 273.7 56.2 273.7C52.8 273.7 41.1 266.6 21 252.6L0 279.8C51.6 325.1 100.9 375.5 131.8 378.3C166.7 381.7000000000001 188.1 357.8 196.2 306.8C224.9 125.3 237.6 97.9 289.8 180.1C308.5 209.7 318.6 232.2 320 247.7C324.8 293.6 284.2 290.5 256.7 278.7000000000001C278.7 350.8 320.8 385.8 382.9 383.8C428.7 382.6 450.4 352.7000000000001 447.8 294.4z" />
-			<glyph glyph-name="vimeo" unicode="" horiz-adv-x="448" d=" M403.2 416H44.8C20.1 416 0 395.9 0 371.2V12.8C0 -11.9 20.1 -32 44.8 -32H403.2C427.9 -32 448 -11.9 448 12.8V371.2C448 395.9 427.9 416 403.2 416zM377 267.2C375.6 235.7 353.6 192.5 311 137.8C267 80.6 229.7 51.9999999999999 199.3 51.9999999999999C180.4 51.9999999999999 164.5 69.3999999999999 151.4 104.3C125.9 197.6 115 252.3 94 252.3C91.6 252.3 83.1 247.2 68.6 237.1L53.4 256.7C90.7 289.5 126.3 325.9 148.6 327.9C173.8 330.3 189.3 313.1 195.1 276.2C215.8 145 225 125.1999999999999 262.7 184.6C276.2 206 283.5 222.3 284.5 233.5C288 266.7 258.6 264.4 238.7 255.9C254.6 308 285 333.3 329.9 331.9C363.2 331 378.9 309.4 377 267.2z" />
-			<glyph glyph-name="vine" unicode="" horiz-adv-x="384" d=" M384 193.3V141.2C365.6 137 347.1 135.1 331.9 135.1C295 57.6999999999999 228.9 -8.7 206.8 -21.1C192.8 -29 179.7 -29.5 164.1 -20.3C137 -4 34.2 80.3 0 345.3H74.5C93.2 186.2 139 104.6 189.3 43.5C217.2 71.4 244.1 108.6 264.9 150.4C215.1 175.7 184.8 231.3 184.8 296C184.8 361.6 222.5 411.1 287 411.1C401.9 411.1 393.2 283.2 368.6 229.6C368.6 229.6 322.2000000000001 220.4 305.1 250.1C308.5 261.4 313.3 280.9 313.3 298.6C313.3 329.9 302 345.2 284.9000000000001 345.2C266.7000000000001 345.2 254.1 328.1 254.1 295.2C254.2 216 313.5 176.5 384 193.3z" />
-			<glyph glyph-name="vk" unicode="" horiz-adv-x="576" d=" M545 330.3C548.7 342.8 545 352 527.2 352H468.3000000000001C453.3000000000001 352 446.4000000000001 344.1 442.7000000000001 335.3C442.7000000000001 335.3 412.7000000000001 262.2 370.3000000000001 214.8C356.6000000000001 201.1 350.3000000000001 196.7 342.8000000000001 196.7C339.1000000000001 196.7 333.4000000000001 201.1 333.4000000000001 213.6V330.3C333.4000000000001 345.3 329.2000000000001 352 316.8000000000001 352H224.2000000000001C214.8000000000001 352 209.2000000000001 345 209.2000000000001 338.5C209.2000000000001 324.3 230.4000000000001 321 232.6000000000001 281V194.2C232.6000000000001 175.2 229.2000000000001 171.7 221.7000000000001 171.7C201.7000000000001 171.7 153.1000000000001 245.1 124.3000000000001 329.1C118.5000000000001 345.4 112.8000000000001 352 97.7000000000001 352H38.8C22 352 18.6 344.1 18.6 335.3C18.6 319.7 38.6 242.2 111.7 139.8C160.4 69.9 229 32 291.4 32C328.9 32 333.5 40.4 333.5 54.9C333.5 121.7 330.1 128 348.9 128C357.6 128 372.6 123.6 407.6 89.9C447.6 49.9 454.2 32 476.6 32H535.5C552.3 32 560.8 40.4 555.9 57C544.6999999999999 91.9 469 163.7 465.6 168.5C456.9 179.7 459.4 184.7 465.6 194.7C465.7 194.8 537.5999999999999 296 545 330.3z" />
-			<glyph glyph-name="vnv" unicode="" horiz-adv-x="640" d=" M104.9 96C70.8 96 58.5 126.4 58.5 126.4L2.6 237.9S-7.8 256 13 256H45.8C56.2 256 59 247.3 64.6 237.9L101.3 163.4S106.5 150.3 122.4 150.3S143.5 163.4 143.5 163.4L180.2 237.9C185.8 247.4 188.6 256 199 256H231.8C252.6 256 242.2 237.9 242.2 237.9L186.4 126.4S174.2 96 140 96H104.9zM499.9 96C465.8 96 453.5 126.4 453.5 126.4L397.6 237.9S387.2 256 408 256H440.8C451.2 256 454 247.3 459.6 237.9L496.3 163.4S501.5 150.3 517.4 150.3S538.5 163.4 538.5 163.4L575.3 237.9C580.9 247.4 583.6999999999999 256 594.0999999999999 256H627C647.8 256 637.4 237.9 637.4 237.9L581.5 126.4S569.3 96 535.1 96H499.9zM337.6 256C371.7000000000001 256 384 225.6 384 225.6L439.9 114.1S450.3 96 429.5 96H396.7C386.3 96 383.5 104.7 377.9 114.1L341.2 188.6S336 201.7 320.1 201.7C304.2 201.7 299 188.6 299 188.6L262.3 114.1C256.7 104.7000000000001 253.9 96 243.5 96H210.5999999999999C189.7999999999999 96 200.1999999999999 114.1 200.1999999999999 114.1L256.0999999999999 225.6S268.2999999999999 256 302.4999999999999 256H337.5999999999999z" />
-			<glyph glyph-name="vuejs" unicode="" horiz-adv-x="448" d=" M356.9 383.7H280L224 295.1L176 383.7000000000001H0L224 0L448 383.7H356.9zM55.7 351.7H109.5L224 153.5L338.4 351.7H392.2L224 63.5L55.7 351.7z" />
-			<glyph glyph-name="weibo" unicode="" horiz-adv-x="512" d=" M407 270.4C414.6 294.4 393.6 317.2 369.6 312.1C347.6 307.3 340.8 340.2000000000001 362.5 344.9000000000001C412.6 355.8 454.8 307.8 439 260.1C432.2 238.9000000000001 400.2 249.3 407 270.4000000000001zM214.8 1.3C108.5 1.3 0 52.7 0 137.6C0 181.9 28 233.0000000000001 76.3 281.3C176 381 279.5 382.2 249.9 287C245.9 273.9 262.2 281.3 262.2 281C341.7 314.6 402.7 297.8 376.2 229.6C372.5 220.2 377.3 218.7 384.5 216.5C520.2 174.2 419.3 1.3 214.8 1.3zM358.5 147.6C353.1 203.3 280 241.6 195.1 233.3C110.3 224.7 46.3 173 51.7 117.3S130.2 23.3 215.1 31.6C299.9 40.2 363.9 91.9 358.5 147.6zM347.9 412.9C322 407.3 331.1 369.2 356.2 374.6C428.5 389.8 491 321.8 467.9 250.6C460.5 226.4 497 213.6 505.3 238.6C537.1999999999999 338.4 450.2 434.5 347.9 412.9zM269.4 101.9C252.3 63.1 202.6 41.9 160.3 55.6C119.5 68.7 102.3 108.9999999999999 120 145.3C137.7 180.6999999999999 183.1 200.7 223.4 190.4C265.4 179.6 286.5 140.2 269.4 101.9zM183.1 131.9C170.2 137.3 153.1 131.6 145.1 119C136.8 106.1 140.8 91 153.7 85C166.8 79 184.5 84.7 192.8 97.9C200.8 111 196.5 126.2 183.1 131.9zM215.7 145.3C210.6 147 204.3 144.6999999999999 201.4 139.9C198.5 134.8 200 129.3 205.0999999999999 127C210.1999999999999 125 216.7999999999999 127.3 219.6999999999999 132.4C222.5 137.6 220.7999999999999 143.3 215.6999999999999 145.3z" />
-			<glyph glyph-name="weixin" unicode="" horiz-adv-x="576" d=" M372.3 280.4C378.7 280.4 384.9000000000001 280.1 391.1 279.3C374.4 357.7 290.3 416 194.7 416C87.6 416 0 343.2 0 250.6C0 197.2 29.3 153.1 77.9 119L58.6 60.4L126.6 94.5C151 89.7 170.4 84.8 194.8 84.8C201 84.8 206.9 85.1 213.1 85.6C209.1 98.5 206.9 112.2000000000001 206.9 126.4C206.8000000000001 211.3000000000001 279.9000000000001 280.4000000000001 372.3000000000001 280.4000000000001zM267.8 333.3C282.3 333.3 292 323.6 292 308.9C292 294.4 282.3 284.7000000000001 267.8 284.7000000000001C253 284.7000000000001 238.5 294.4 238.5 308.9C238.5 323.6 253 333.3 267.8 333.3zM131.3 284.7000000000001C116.8 284.7000000000001 102 294.4 102 308.9C102 323.7 116.8 333.3 131.3 333.3C146.1 333.3 155.7 323.6 155.7 308.9C155.8 294.3 146.1 284.7000000000001 131.3 284.7000000000001zM550.1 128.6C550.1 206.5 472.2 269.9000000000001 384.7000000000001 269.9000000000001C292.0000000000001 269.9000000000001 219.3000000000001 206.5 219.3000000000001 128.6S292 -12.7 384.6 -12.7C403.9000000000001 -12.7 423.5 -7.6 443.2000000000001 -2.8L496.6 -32.1L481.8 16.5C521.1 45.9 550.1 84.8 550.1 128.6zM330.9000000000001 153.1C321.2000000000001 153.1 311.6 162.8 311.6 172.7000000000001C311.6 182.4 321.3 192.0000000000001 330.9000000000001 192.0000000000001C345.7000000000001 192.0000000000001 355.3 182.3000000000001 355.3 172.7000000000001C355.3 162.7000000000001 345.7 153.1 330.9000000000001 153.1zM438.1 153.1C428.4000000000001 153.1 418.8 162.8 418.8 172.7000000000001C418.8 182.4 428.5 192.0000000000001 438.1 192.0000000000001C452.6 192.0000000000001 462.5 182.3000000000001 462.5 172.7000000000001C462.5 162.7000000000001 452.6 153.1 438.1 153.1z" />
-			<glyph glyph-name="whatsapp-square" unicode="" horiz-adv-x="448" d=" M224 325.2C151.3 325.2 92.2 266.1 92.1 193.4C92.1 168.5 99.1 144.2 112.3 123.3L115.4 118.3L102.1 69.6999999999999L152 82.8L156.8 79.9C177 67.9 200.2 61.5 223.9 61.5H224C296.6 61.5 357.3 120.6 357.3 193.3C357.3 228.5 342.1 261.6 317.2 286.5C292.2 311.5 259.2 325.2 224 325.2zM301.5 136.8C298.2 127.5 282.4 119.1 274.8 118C262.2 116.1 252.4 117.1 227.3 127.9C187.6 145.1 161.6 185.1 159.6 187.7C157.6 190.3 143.4 209.2 143.4 228.7S153.6 257.8 157.3000000000001 261.8C160.9 265.8 165.2000000000001 266.8 167.9 266.8C170.5 266.8 173.2000000000001 266.8 175.5 266.7C177.9 266.6 181.2 267.6 184.4 259.9C187.7000000000001 252 195.6 232.5 196.6 230.5S198.3 226.2 196.9 223.6C189.3000000000001 208.4 181.2000000000001 209 185.3000000000001 202C200.6000000000001 175.7 215.9 166.6 239.2000000000001 154.9C243.2000000000001 152.9 245.5000000000001 153.2 247.8000000000001 155.9C250.1000000000001 158.5 257.7000000000001 167.5 260.3000000000001 171.4C262.9000000000001 175.4 265.6000000000001 174.7 269.2000000000001 173.4C272.8000000000001 172.1 292.3000000000001 162.5 296.3000000000001 160.5S302.9000000000001 157.5 303.9000000000001 155.9C304.8000000000001 154 304.8000000000001 146 301.5000000000001 136.8zM400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM223.9 34.8C197.3 34.8 171.2 41.5 148.1 54.1L64 32L86.5 114.2C72.6 138.2 65.3 165.5 65.3 193.5C65.4 280.9 136.5 352 223.9 352C266.3 352 306.1 335.5 336.1 305.5C366 275.5 384 235.7 384 193.3C384 105.9 311.3 34.8 223.9 34.8z" />
-			<glyph glyph-name="whatsapp" unicode="" horiz-adv-x="448" d=" M380.9 350.9C339 392.9 283.2 416 223.9 416C101.5 416 1.9 316.4 1.9 194C1.9 154.9 12.1 116.7 31.5 83L0 -32L117.7 -1.1C150.1 -18.8 186.6 -28.1 223.8 -28.1H223.9C346.2 -28.1 448 71.5 448 193.9C448 253.2 422.8 308.9 380.9 350.9zM223.9 9.3C190.7 9.3 158.2 18.1999999999999 129.9 34.9999999999999L123.2 38.9999999999999L53.4 20.6999999999999L72 88.8L67.6 95.8C49.1 125.2 39.4 159.1 39.4 194C39.4 295.7 122.2 378.5 224 378.5C273.3 378.5 319.6 359.3 354.4 324.4C389.2 289.5 410.6 243.2 410.5 193.9C410.5 92.1 325.6 9.3 223.9 9.3zM325.1 147.5C319.6 150.3 292.3 163.6999999999999 287.2 165.5C282.1 167.3999999999999 278.4 168.3 274.7 162.6999999999999C271 157.0999999999999 260.4 144.6999999999999 257.1 140.8999999999999C253.9 137.1999999999999 250.6 136.6999999999999 245.1 139.5C212.5 155.8 191.1 168.6 169.6 205.5C163.9 215.3 175.3 214.5999999999999 185.9 235.8C187.7 239.5 186.8 242.7 185.4 245.5C184 248.3 172.9 275.5999999999999 168.3 286.7C163.8 297.5 159.2 296 155.8 296.2C152.6 296.3999999999999 148.9 296.3999999999999 145.2 296.3999999999999C141.5 296.3999999999999 135.5 294.9999999999999 130.4 289.4999999999999C125.3 283.8999999999999 111 270.4999999999999 111 243.2C111 215.8999999999999 130.9 189.5 133.6 185.8C136.4 182.1 172.7 126.1 228.4 101.9999999999999C263.6 86.8 277.4 85.4999999999999 295 88.1C305.7 89.7 327.8 101.4999999999999 332.4 114.5C337 127.5 337 138.6 335.6 140.8999999999999C334.3 143.3999999999999 330.6 144.7999999999999 325.1 147.5z" />
-			<glyph glyph-name="whmcs" unicode="" horiz-adv-x="448" d=" M448 287V308.3L419.5 317.1L417.3 327.5L437.4000000000001 348.2000000000001L427 367.6L398 360.1L390.8 367.6L398.3 395.8L379.2 407.4L357.9 386.4L347.2 389.6L340.2 416H317.6L311.4 389.6L299.3 386.4L279.6 407.4L260.2 396.4L268.3 368.7L260.2 360.3L231.7 367.8L220.7 348.7L241.4 327.7L238.5 317.3L210 309.5L209.7 287.8L238.5 280.3L240.9 268.2L220.8 248.3L231.2 229.8L260.8 237.3L268 228.7L259.9 201.8L279.8 190.2L299.2 210.6L310.8 207.7L317.5 179.2L340.1 178.9L346.8 207.7L358.4 211.2L379.1 189.6L399.5 201.7L390.7 229.7L398.5 237.8L427.3 229L437.6 249.1L416.7 267.9L418.9 280L448 287zM328.8 241.8C297.5 241.8 272 267.2000000000001 272 298.6S297.4 355.4000000000001 328.8 355.4000000000001S385.6 330 385.6 298.6C385.6 267.1 360.2000000000001 241.8 328.8 241.8zM401.1 225.4L448 210.9V171L392.9 157.6L388.8 134.9L427.7 99.6L408.5 61.7000000000001L354.5 78.4L339.8999999999999 63.2000000000001L356.5999999999999 10.7L318.2999999999999 -11.9999999999999L279.3999999999999 28.5000000000001L257.7 21.9L245.1 -32.1L202.6999999999999 -31.6L190.0999999999999 22.0000000000001L168.4 27.6000000000001L132 -10.7999999999999L94.5999999999999 10.9000000000001L109.7999999999999 61.4000000000001L96.0999999999999 77.5000000000001L40.5999999999999 63.4000000000001L20.8999999999999 98.2000000000001L58.7999999999999 135.6000000000001L53.9999999999999 158.4000000000001L-1e-13 172.5000000000001L0.4999999999999 213.4000000000001L54 228.1L59.7 247.8L20.8 287.2L41.5 323L95.1 308.9L110.3 324.6L95.1 376.6L131.5 397.3L168.3 357.9L191 364L202.6 416H245L256.6 370.1L234 376L227.7 377.7L224.4 372L213.4 352.9L210.1 347.3L214.7 342.7000000000001L231.9 325.3L231.6 324.3L207.7999999999999 317.8L201.5999999999999 316.1L201.5 309.7000000000001L201.3 296.8C153.8 286.4 118 244 118 193.3C118 135 165.3 87.6 223.7 87.6C274.2 87.6 316.4 123 326.9 170.4L340.1 170.2000000000001L347 170.1L348.6 176.8L354.2 200.8L356.1 201.4L373.2 183.6L377.9 178.7000000000001L383.7 182.1L404.1 194.2L409.9 197.7L407.9 204.2L401.1 225.4z" />
-			<glyph glyph-name="wikipedia-w" unicode="" horiz-adv-x="640" d=" M640 396.8L639.7 384.6C611.6 383.8 594.7 368.8 583.9000000000001 344.3C558.9000000000001 286.5 480.6000000000001 104.3 428.6000000000001 -14.3H415L333.1 178.8C300.6 115.1999999999999 264.8 48.8 233.9000000000001 -14.3000000000001C233.6 -14.6000000000001 218.9 -14.3000000000001 218.9 -14.0000000000001C172 95.7 122.8 204.6 75.8 314.6C64.4 341.3 26.4 384.6 0.2 384.3C0.2 387.4 -0.1 394.3 -0.1 398.5H161.8V384.6C142.6 383.5 109 371.3 118.5 350.4C140.4 300.7 222.1 110.1 244.1 61.8C259.1 91.4999999999999 301.9000000000001 171 319.4000000000001 204.6C305.5000000000001 232.9 260.8 338.5 246.6 364.6C236.9000000000001 382.4 210.5 384 190.8 384.3V398.2L333.3 397.9V384.8C313.9000000000001 384.2 295.2 377 303.9000000000001 358.7C322.8 318.7 334.5000000000001 290.6 352.0000000000001 254C357.6000000000001 264.8 386.7000000000001 323.4 400.1000000000001 354.8C409.0000000000001 375.4 396.2000000000001 383.4 361.5000000000001 384.2C361.8000000000001 387.8 361.5000000000001 394.5 361.8000000000001 397.8C406.2000000000001 398.1 472.9000000000001 398.1 484.9000000000001 398.4V384.8C462.4000000000001 384 439.1000000000001 372 426.8000000000001 353.1L367.6000000000001 230.3C374.0000000000001 214.2 430.9000000000001 87.5 436.8000000000001 73.6L559.2 356.2C550.6 379.3 522.8000000000001 384.3 512 384.5V398.4L639.8 397.3L640 396.8z" />
-			<glyph glyph-name="windows" unicode="ï…º" horiz-adv-x="448" d=" M0 354.3L183.6 379.6V202.2H0V354.3zM0 29.7L183.6 4.4V179.6H0V29.7zM203.8 1.7L448 -32V179.6H203.8V1.7zM203.8 382.3V202.2H448V416L203.8 382.3z" />
-			<glyph glyph-name="wordpress-simple" unicode="" horiz-adv-x="512" d=" M256 440C119.3 440 8 328.8 8 192C8 55.3 119.3 -56 256 -56S504 55.3 504 192C504 328.8 392.7 440 256 440zM33 192C33 224.3 39.9 255 52.3 282.7L158.7 -8.7C84.3 27.5 33 103.8 33 192zM256 -31C234.1 -31 213 -27.8 193 -21.9L259.9 172.5L328.4 -15.3C328.9 -16.4 329.4 -17.4 330 -18.4C306.9 -26.5000000000001 282 -31.0000000000001 256 -31.0000000000001zM286.7 296.5C300.1 297.2 312.2 298.6 312.2 298.6C324.2 300 322.8 317.7 310.8 317C310.8 317 274.7 314.2 251.4 314.2C229.5 314.2 192.7 317 192.7 317C180.7 317.7 179.3 299.3 191.3 298.6C191.3 298.6 202.7 297.2 214.7 296.5L249.4 201.3L200.6 55L119.4 296.5C132.8 297.2 144.9 298.6 144.9 298.6C156.9 300 155.5 317.7 143.5 317C143.5 317 107.4 314.2 84.1 314.2C79.9 314.2 75 314.3 69.7 314.5C109.6 375 178.1 415 256 415C314 415 366.9 392.8 406.6 356.5C405.6 356.6 404.7000000000001 356.7 403.7000000000001 356.7C381.8000000000001 356.7 366.3000000000001 337.6 366.3000000000001 317.1C366.3000000000001 298.7 376.9000000000001 283.2 388.2000000000001 264.8C396.7000000000001 250 406.6 230.9 406.6 203.3C406.6 184.2 399.3 162.1 389.6 131.2000000000001L367.4000000000001 56.9L286.7000000000001 296.5zM368.1 -0.7L436.2000000000001 196.2C448.9000000000001 228.0000000000001 453.2 253.4000000000001 453.2 276.1C453.2 284.3 452.7 291.9000000000001 451.7 299C469.1 267.2000000000001 479.0000000000001 230.8 479.0000000000001 192C479.0000000000001 109.7000000000001 434.4000000000001 37.9 368.1 -0.6999999999999z" />
-			<glyph glyph-name="wordpress" unicode="" horiz-adv-x="512" d=" M61.7 278.6L163.2 0.6C92.2 35 43.3 107.8 43.3 192C43.3 222.9 49.9 252.1 61.7 278.6zM399.6 202.7C399.6 229 390.2 247.2 382.1 261.4C371.3 278.9 361.2 293.8 361.2 311.3C361.2 330.9 376 349.1 396.9 349.1C397.8 349.1 398.7 349 399.7 348.9C361.8 383.6 311.4 404.8 256 404.8C181.7 404.8 116.3 366.7 78.2 308.9C83.2 308.7 87.9 308.6 91.9 308.6C114.1 308.6 148.6 311.3 148.6 311.3C160.1 312 161.4 295.1 150 293.8C150 293.8 138.5 292.5 125.7 291.8L203.2 61.4L249.8 201L216.7 291.8C205.2 292.5 194.4 293.8 194.4 293.8C182.9 294.5 184.3 312 195.7 311.3C195.7 311.3 230.8 308.6 251.7 308.6C273.9000000000001 308.6 308.4000000000001 311.3 308.4000000000001 311.3C319.9000000000001 312 321.2000000000001 295.1 309.8 293.8C309.8 293.8 298.3 292.5 285.5 291.8L362.4 63.1L383.6 134C392.6 163.4 399.6 184.5 399.6 202.7zM259.7 173.4L195.8999999999999 -12.1C214.9999999999999 -17.7 235.0999999999999 -20.8 255.9999999999999 -20.8C280.7999999999999 -20.8 304.4999999999999 -16.5 326.5999999999999 -8.7C325.9999999999999 -7.8 325.4999999999999 -6.8 325.0999999999999 -5.8L259.7 173.4zM442.7 294.1C443.5999999999999 287.3 444.0999999999999 280.1 444.0999999999999 272.2C444.0999999999999 250.6 440.0999999999999 226.4 427.8999999999999 196L362.8999999999999 8.0999999999999C426.2 45 468.7 113.5 468.7 192C468.7 229 459.3 263.8 442.7 294.1zM504 192C504 55.2 392.7 -56 256 -56C119.2 -56 8 55.3 8 192C8 328.8 119.2 440 256 440C392.7 440 504 328.8 504 192zM492.6 192C492.6 322.5 386.4000000000001 428.6 256 428.6C125.5 428.6 19.4 322.5 19.4 192S125.6 -44.6 256 -44.6C386.5 -44.6 492.6 61.5 492.6 192z" />
-			<glyph glyph-name="wpbeginner" unicode="" horiz-adv-x="512" d=" M462.799 125.626C519.01 61.318 466.961 -32 370.944 -32C331.3420000000001 -32 292.12 -14.313 270.802 18.04C263.915 17.684 248.1 17.684 241.212 18.04C219.848 -14.381 180.588 -32 141.069 -32C45.579 -32 -7.279 60.996 49.214 125.626C-29.925 257.477 80.479 416 256.006 416C431.638 416 541.876 257.374 462.799 125.626zM123.152 208.598H164.681V266.673H123.152V208.598zM340.332 122.526V146.365C279.826 125.4499999999999 207.977 137.167 152.743 180.336L152.989 155.439C204.09 109.072 284.735 97.564 340.332 122.526zM189.579 208.598H355.637V266.673H189.579V208.598z" />
-			<glyph glyph-name="wpexplorer" unicode="ï‹ž" horiz-adv-x="512" d=" M512 192C512 50.8 397.3 -64 256 -64C114.8 -64 0 50.7 0 192S114.7 448 256 448S512 333.3 512 192zM480 192C480 315.2 379.7 416 256 416C132.5 416 32 315.5 32 192S132.5 -32 256 -32S480 68.5 480 192zM160.9 323.4L247.8 286.3L210.7 199.4L123.8 236.5L160.9 323.4zM270.9 154.3L317.5 60.3H302.9L252.9 160.3L204 60.3H190L241.1 167.2000000000001L218.8 176.6L224.8 190.6L293.4 161.5L287.4 147.2L270.9 154.3zM259.1 270.6L327.7 241.2L298.3 172.9L230 202L259.1 270.6zM339.4 227.7L394 204.6L370.6 150.3L316.3 173.4L339.4000000000001 227.7000000000001z" />
-			<glyph glyph-name="wpforms" unicode="" horiz-adv-x="448" d=" M448 372.8V11.1C448 -13.2 429 -32.1 404.8 -32.1H43.2C19.3 -32 0 -13.4 0 11.2V372.8C0 396.9 18.8 416 43.2 416H404.9C428.9 416 448 397.2 448 372.8zM410.7 11.2V372.8C410.7 375.8 408.1 378.6 404.9 378.6H395.6L285.3 304L224 353.9L162.8 304L52.5 378.7H43.2C40 378.7 37.4 375.9 37.4 372.9V11.2C37.4 8.2 40 5.4 43.2 5.4H404.9C408.1 5.3 410.7 8.1 410.7 11.2zM150.2 262V225H76.7V262H150.2zM150.2 187.6V150.3H76.7V187.6H150.2zM161.3 334.9000000000001L215.3 378.6H96.8L161.3 334.9000000000001zM371.3 262V225H175.3V262H371.3zM371.3 187.6V150.3H175.3V187.6H371.3zM286.7 334.9000000000001L351.2 378.6H232.8L286.7 334.9000000000001zM371.3 113V75.7H271.9V113H371.3z" />
-			<glyph glyph-name="xbox" unicode="" horiz-adv-x="512" d=" M369.9 129.8C414.2 75.5 434.6 31 424.3 11.1C416.4 -4 367.6 -33.5 331.7 -44.8C302.0999999999999 -54.1 263.3 -58.1 231.3 -54.9999999999999C193.0999999999999 -51.3 154.3999999999999 -37.6 121.1999999999999 -15.9999999999999C93.3 2.2 87 9.7 87 24.6C87 54.5 119.9 106.9 176.2 166.7000000000001C208.2 200.6000000000001 252.7 240.4000000000001 257.6 239.3000000000001C267 237.2000000000001 341.9000000000001 164.2000000000001 369.9000000000001 129.8000000000001zM188.6 304.2C158.9 331.1 130.5 358.1 102.2 367.6C87 372.7 85.9 372.4 73.5 359.5C44.3 329.1 20 279.8 13.2 237.1C7.8 202.9 7.1 193.3 9 176.6C14.6 126.1 26.3 91.2000000000001 49.5 55.7C59 41.1 61.6 38.4 58.8 45.8000000000001C54.6 56.8000000000001 58.5 83.3000000000001 68.3 109.8000000000001C82.6 148.8000000000001 122.2 222.7000000000001 188.6 304.2000000000001zM500.2 240.7C483.3 320.7 432.7 371 425.6 371C418.3 371 401.4000000000001 364.5 389.6 357.1C366.3 342.6 348.6 325.7 325.3 304.3C367.7 251 427.5 164.9 448.2 102C455 81.3 457.9 60.9 455.6 49.7C453.9 41.2 453.9 41.2 456.9999999999999 45.1C463.1 52.8 476.8999999999999 76.4 482.3999999999999 88.6C489.7999999999999 104.8 497.3999999999999 128.8 500.9999999999999 147.3C505.3 169.8 504.8999999999999 218.1 500.1999999999999 240.7zM141.3 405C189 407.5 251 370.5 255.6 369.6C256.3 369.5 266 373.8 277.2 379.3C341.1 410.4 371.2 405.1 384.6 404.5C320.7000000000001 443.8 231.9000000000001 454.5 150.7 416.2C127.3 405.1 126.7 404.3 141.3 405z" />
-			<glyph glyph-name="xing-square" unicode="ï…©" horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM140.4 127.8H93.8C88.3 127.8 85.1 133.1 87.8 138.1L137.1 224.8C137.2 224.8 137.2 224.9 137.1 225L105.7 279C102.7 284.6 105.9 289.1 111.7 289.1H158.3C163.5 289.1 167.8 286.2 171.2 280.4L203.1 225.1C201.8 222.8 185.1 193.4 153 136.9C149.5 130.7000000000001 145.3 127.8 140.4 127.8zM360.1 341.9L257.3 161.2V161L322.8 42C325.6 36.9 322.9000000000001 31.9 316.8 31.9H270.2C264.7 31.9 260.5 34.8 257.3 40.6L191.3 160.9C193.6 165 228.1 225.8 294.7000000000001 343.2C298.0000000000001 349 302.1 351.9 307.2000000000001 351.9H354.1C359.8 352 362.9000000000001 347.2 360.1 341.9z" />
-			<glyph glyph-name="xing" unicode="ï…¨" horiz-adv-x="384" d=" M162.7 238C160.9 234.7 137.5 193.6 92.6 114.5C87.7 106.2 81.8 102 74.9 102H9.8C2.1 102 -2.3 109.5 1.3 116.4L70.3 237.7C70.5 237.7 70.5 237.8 70.3 238L26.4 313.6C22.1 321.4 26.7 327.7 34.9 327.7H100C107.3 327.7 113.3 323.6 118 315.5L162.7 238zM382.6 401.9L238.6 148.9V148.6L330.2 -18C334.1 -25.1 330.4 -32.1 321.7 -32.1H256.5C248.9 -32.1 242.9 -28.1 238.5 -19.9L146.1 148.6C149.4 154.4 197.6 239.4 290.9 403.8C295.5 411.9 301.3 416 308.4 416H374.1C382.1 416 386.4 409.3 382.6 401.9z" />
-			<glyph glyph-name="y-combinator" unicode="" horiz-adv-x="448" d=" M448 416V-32H0V416H448zM236 160.5L313.5 306H280.8L235 215C230.3 205.7 226 196.7 222.2 188.2L210 215L164.8 306H129.8L206.5 162.2V67.7H236V160.5z" />
-			<glyph glyph-name="yahoo" unicode="" horiz-adv-x="360" d=" M204.9 160L208.4 -35.5C197.1 -33.5 187.5 -32 179.7 -32C172.2 -32 162.7 -33.5 151 -35.5L154.5 160C105.7 244.3 56.5 334.9 0 419.5C10.6 416.7 20.4 416 29.5 416C37.5 416 47.6 416.7 59.8 419.5C96.2 355.3 132.7 296.3 179.7 219.1C212.9 273.8 260.6 347.2 299.6 419.5C309.4000000000001 416.9 319.2000000000001 416 328.8 416C339 416 349.4000000000001 416.9 359.9000000000001 419.5C329.4 376.9 243 226.7 204.9 160z" />
-			<glyph glyph-name="yandex-international" unicode="" horiz-adv-x="320" d=" M129.5 -64V102.1L18.5 400H74.3L156.1 170.3L250.2 448H301.5L180.8 100.2V-64H129.5z" />
-			<glyph glyph-name="yandex" unicode="" horiz-adv-x="256" d=" M153.1 132.2L65.7 -64H2L98 145.8C52.9 168.7 22.8 210.2 22.8 286.9C22.7 394.3 90.8 448 171.7 448H254V-64H198.9V132.2H153.1zM198.9 401.5H169.5C125.1 401.5 82.1 372.1 82.1 286.9C82.1 204.6 121.5 178.1 169.5 178.1H198.9V401.5z" />
-			<glyph glyph-name="yelp" unicode="" horiz-adv-x="384" d=" M136.9 120C135.9 119.7 27.7 84.3 21.1 84.3C5.9 85.2 2.6 100.5 1.2 115.5C-0.3 129.7 -0.2 145.3 1.5 162.3C3.4 181.1 7 207.4 25.7 206.3C30.5 206.3 92.8 180.4 138.4 161.9C155.5 155.1 157 126.1 136.9 120.0000000000001zM194.8 233.9C196.6 195.7 169.3 185.4 147.6 219.6L41.3 387.6C39.8 394.2 41.6 400 46.6 405C62.2 421.5 146 444.8 168.1 439.1C175.6 437.2 180.2 433 181.9 426.5C183.2 418.2 193.4 259.1 194.8 233.9zM193.4 69.1C193.4 64.5 193.6 -47.3 191.7 -52.4C189.4 -58.4 184.7 -62.1 177.4 -63.6C167.3 -65.2999999999999 150.3 -61.7 126.4 -52.9C104.4 -44.8 69.7 -31.4 77.1 -10.4C79.9 -3.5 128.5 52.4 154.4 83.2000000000001C166.4 98.4 194.2 88.7000000000001 193.4 69.1zM373.6 186.9C368 183.2000000000001 262.8 158.7000000000001 255.5000000000001 156.3L255.8000000000001 156.9C237.7000000000001 152.2000000000001 220.4 175.4 232.5000000000001 191.5000000000001C236.2 195.2000000000001 298.4000000000001 283.9000000000001 305.3 288.5000000000001C310.5 292.1 316.6 292.3000000000001 323.6 289.1C342 280.3000000000001 378.7000000000001 226.0000000000001 381 204.5000000000001C380.9 201.6000000000001 382.2 192.8000000000001 373.6 186.9zM383.7000000000001 56.2C381.0000000000001 35.6 339.2000000000001 -17.1999999999999 319.9000000000001 -24.8C313.0000000000001 -27.4 307.0000000000001 -26.8 302.2000000000001 -22.8C297.2000000000001 -19.3 240.4000000000001 74.3000000000001 237.3000000000001 79.5000000000001C226.4000000000001 95.7000000000001 244.1000000000001 119.3000000000001 262.9000000000001 112.7000000000001C262.9000000000001 112.7000000000001 373.4000000000001 77.0000000000001 377.6 73.3000000000001C382.8 69.2000000000001 384.8 63.5000000000001 383.7000000000001 56.2z" />
-			<glyph glyph-name="yoast" unicode="" horiz-adv-x="448" d=" M91.265 352H277.308L270.3 333.122H91.265C51.607 333.122 19.376 301.5660000000001 19.376 262.83V57.457C19.376 22.056 44.258 -12.854 103.377 -12.854V-32H91.265C41.165 -32 0 8.17 0 57.456V262.8300000000001C0 312.063 40.709 352 91.265 352zM320.379 408H386.8690000000001C243.146 29.908 241.192 9.082 202.18 -31.331C181.401 -52.977 152.886 -63.05 123.852 -64V-12.854C173.086 -5.192 188.458 37.001 188.458 62.43C188.458 82.508 189.035 75.075 106.341 285.649H167.727L218.081 129.069L320.379 408zM448 266.535V-32H233.963C240.598 -22.379 244.642 -15.723 246.075 -12.587H428.604V266.535C428.604 299.078 411.507 318.48 380.41 329.449L387.143 347.027C428.763 333.3640000000001 448 303.9410000000001 448 266.535z" />
-			<glyph glyph-name="youtube" unicode="ï…§" horiz-adv-x="576" d=" M549.655 323.9170000000001C543.374 347.567 524.8679999999999 366.193 501.371 372.514C458.781 384 288 384 288 384S117.22 384 74.629 372.514C51.132 366.192 32.626 347.567 26.345 323.9170000000001C14.933 281.05 14.933 191.612 14.933 191.612S14.933 102.174 26.345 59.307C32.626 35.657 51.132 17.807 74.629 11.486C117.22 0 288 0 288 0S458.78 0 501.371 11.486C524.8679999999999 17.807 543.374 35.657 549.655 59.307C561.067 102.174 561.067 191.612 561.067 191.612S561.067 281.05 549.655 323.9170000000001zM232.145 110.409V272.815L374.884 191.61L232.145 110.409z" />
-			<glyph glyph-name="address-book-outline" unicode="" horiz-adv-x="448" d=" M436 288C442.627 288 448 293.373 448 300V340C448 346.627 442.627 352 436 352H416V400C416 426.51 394.51 448 368 448H48C21.49 448 0 426.51 0 400V-16C0 -42.51 21.49 -64 48 -64H368C394.51 -64 416 -42.51 416 -16V32H436C442.627 32 448 37.373 448 44V84C448 90.627 442.627 96 436 96H416V160H436C442.627 160 448 165.373 448 172V212C448 218.627 442.627 224 436 224H416V288H436zM362 -16H54A6 6 0 0 0 48 -10V394A6 6 0 0 0 54 400H362A6 6 0 0 0 368 394V-10A6 6 0 0 0 362 -16zM128 240C128 284.183 163.817 320 208 320S288 284.183 288 240S252.183 160 208 160S128 195.817 128 240zM336 106.523V88C336 74.745 325.255 64 312 64H104C90.745 64 80 74.745 80 88V106.523C80 128.549 94.99 147.7480000000001 116.358 153.09L152.015 162.004C181.116 141.072 226.524 135.059 263.985 162.004L299.642 153.09C321.01 147.748 336 128.548 336 106.523z" />
-			<glyph glyph-name="address-card-outline" unicode="" horiz-adv-x="512" d=" M464 384H48C21.49 384 0 362.51 0 336V48C0 21.49 21.49 0 48 0H464C490.51 0 512 21.49 512 48V336C512 362.51 490.51 384 464 384zM458 48H54A6 6 0 0 0 48 54V330A6 6 0 0 0 54 336H458A6 6 0 0 0 464 330V54A6 6 0 0 0 458 48zM404 224H300C293.373 224 288 229.373 288 236V252C288 258.627 293.373 264 300 264H404C410.627 264 416 258.627 416 252V236C416 229.373 410.627 224 404 224zM404 152H300C293.373 152 288 157.373 288 164V180C288 186.627 293.373 192 300 192H404C410.627 192 416 186.627 416 180V164C416 157.373 410.627 152 404 152zM176 288C209.137 288 236 261.137 236 228S209.137 168 176 168S116 194.863 116 228S142.863 288 176 288zM244.731 162.817L217.989 169.503C189.893 149.294 155.837 153.804 134.011 169.503L107.269 162.817C91.243 158.811 80 144.411 80 127.892V114C80 104.059 88.059 96 98 96H254C263.941 96 272 104.059 272 114V127.892C272 144.411 260.757 158.811 244.731 162.817z" />
-			<glyph glyph-name="arrow-alt-circle-down-outline" unicode="" horiz-adv-x="512" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM256 -8C145.5 -8 56 81.5 56 192S145.5 392 256 392S456 302.5 456 192S366.5 -8 256 -8zM224 308V192H157C146.3 192 141 179.1 148.5 171.5L247.5 72.5C252.2 67.8 259.8 67.8 264.5 72.5L363.5 171.5C371.1 179.1 365.7 192 355 192H288V308C288 314.6 282.6 320 276 320H236C229.4 320 224 314.6 224 308z" />
-			<glyph glyph-name="arrow-alt-circle-left-outline" unicode="" horiz-adv-x="512" d=" M8 192C8 55 119 -56 256 -56S504 55 504 192S393 440 256 440S8 329 8 192zM456 192C456 81.5 366.5 -8 256 -8S56 81.5 56 192S145.5 392 256 392S456 302.5 456 192zM384 212V172C384 165.4 378.6 160 372 160H256V93C256 82.3 243.1 77 235.5 84.5L136.5 183.5C131.8 188.2 131.8 195.8 136.5 200.5L235.5 299.5C243.1 307.1 256 301.7 256 291V224H372C378.6 224 384 218.6 384 212z" />
-			<glyph glyph-name="arrow-alt-circle-right-outline" unicode="" horiz-adv-x="512" d=" M504 192C504 329 393 440 256 440S8 329 8 192S119 -56 256 -56S504 55 504 192zM56 192C56 302.5 145.5 392 256 392S456 302.5 456 192S366.5 -8 256 -8S56 81.5 56 192zM128 172V212C128 218.6 133.4 224 140 224H256V291C256 301.7 268.9 307 276.5 299.5L375.5 200.5C380.2 195.8 380.2 188.2 375.5 183.5L276.5 84.5C268.9 76.9 256 82.3 256 93V160H140C133.4 160 128 165.4 128 172z" />
-			<glyph glyph-name="arrow-alt-circle-up-outline" unicode="" horiz-adv-x="512" d=" M256 -56C393 -56 504 55 504 192S393 440 256 440S8 329 8 192S119 -56 256 -56zM256 392C366.5 392 456 302.5 456 192S366.5 -8 256 -8S56 81.5 56 192S145.5 392 256 392zM276 64H236C229.4 64 224 69.4 224 76V192H157C146.3 192 141 204.9 148.5 212.5L247.5 311.5C252.2 316.2 259.8 316.2 264.5 311.5L363.5 212.5C371.1 204.9 365.7 192 355 192H288V76C288 69.4 282.6 64 276 64z" />
-			<glyph glyph-name="bell-slash-outline" unicode="" horiz-adv-x="576" d=" M130.9 48C114.138 48 105.765 68.39 117.566 80.191C142.792 105.417 163.66 129.5290000000001 168.215 201.6710000000001L121.438 242.9450000000001A168.48 168.48 0 0 1 121.142 233.1430000000001C121.142 151.21 103.591 133.8510000000001 86.599 117.0650000000001C38.504 69.559 73.726 0 130.919 0H224C224 -35.346 252.654 -64 288 -64S352 -35.346 352 0H396.777L342.377 48H130.9zM288 -24C274.766 -24 264 -13.234 264 0H312C312 -13.234 301.234 -24 288 -24zM571.867 -24.553L503.936 35.018C517.04 59.136 515.4599999999999 91.336 489.404 117.0600000000001C472.415 133.8450000000001 454.858 151.2030000000001 454.858 233.1430000000001C454.858 316.1690000000001 393.9 385.2170000000001 314.391 397.9050000000001A31.848 31.848 0 0 1 320 416C320 433.673 305.673 448 288 448S256 433.673 256 416A31.848 31.848 0 0 1 261.609 397.905C220.138 391.287 183.718 369.334 158.36 338.064L36.459 444.963C31.401 449.399 23.682 448.919 19.219 443.892L3.056 425.687C-1.407 420.6600000000001 -0.925 412.988 4.134 408.553L539.542 -60.963C544.6 -65.399 552.3190000000001 -64.919 556.782 -59.892L572.945 -41.687C577.407 -36.66 576.9250000000001 -28.988 571.8670000000001 -24.553zM288 352C353.538 352 406.857 298.681 406.857 233.143C406.857 135.493 430.078 108.569 458.425 80.191C461.333 77.283 462.9979999999999 73.8630000000001 463.634 70.359L194.482 306.3880000000001C216.258 334.133 250.075 352 288 352z" />
-			<glyph glyph-name="bell-outline" unicode="" horiz-adv-x="448" d=" M425.403 117.061C408.4140000000001 133.846 390.8570000000001 151.204 390.8570000000001 233.144C390.8570000000001 316.17 329.899 385.218 250.39 397.906A31.842999999999996 31.842999999999996 0 0 1 256 416C256 433.673 241.673 448 224 448S192 433.673 192 416A31.848 31.848 0 0 1 197.609 397.905C118.101 385.217 57.143 316.169 57.143 233.143C57.143 151.21 39.592 133.851 22.6 117.065C-25.496 69.559 9.726 0 66.919 0H160C160 -35.346 188.654 -64 224 -64C259.346 -64 288 -35.346 288 0H381.08C438.27 0 473.495 69.583 425.403 117.061zM224 -24C210.766 -24 200 -13.234 200 0H248C248 -13.234 237.234 -24 224 -24zM381.092 48H66.9C50.138 48 41.765 68.39 53.566 80.191C82.151 108.776 105.143 135.915 105.143 233.1430000000001C105.143 298.6810000000001 158.462 352 224 352S342.857 298.681 342.857 233.143C342.857 135.493 366.078 108.569 394.425 80.191C406.278 68.339 397.783 48 381.092 48z" />
-			<glyph glyph-name="bookmark-outline" unicode="" horiz-adv-x="384" d=" M336 448H48C21.49 448 0 426.51 0 400V-64L192 48L384 -64V400C384 426.51 362.51 448 336 448zM336 19.57L192 103.57L48 19.57V394A6 6 0 0 0 54 400H330C333.314 400 336 397.317 336 394.004V19.57z" />
-			<glyph glyph-name="building-outline" unicode="" horiz-adv-x="448" d=" M128 300V340C128 346.6 133.4 352 140 352H180C186.6 352 192 346.6 192 340V300C192 293.4 186.6 288 180 288H140C133.4 288 128 293.4 128 300zM268 288H308C314.6 288 320 293.4 320 300V340C320 346.6 314.6 352 308 352H268C261.4 352 256 346.6 256 340V300C256 293.4 261.4 288 268 288zM140 192H180C186.6 192 192 197.4 192 204V244C192 250.6 186.6 256 180 256H140C133.4 256 128 250.6 128 244V204C128 197.4 133.4 192 140 192zM268 192H308C314.6 192 320 197.4 320 204V244C320 250.6 314.6 256 308 256H268C261.4 256 256 250.6 256 244V204C256 197.4 261.4 192 268 192zM192 108V148C192 154.6 186.6 160 180 160H140C133.4 160 128 154.6 128 148V108C128 101.4 133.4 96 140 96H180C186.6 96 192 101.4 192 108zM268 96H308C314.6 96 320 101.4 320 108V148C320 154.6 314.6 160 308 160H268C261.4 160 256 154.6 256 148V108C256 101.4 261.4 96 268 96zM448 -28V-64H0V-28C0 -21.4 5.4 -16 12 -16H31.5V424C31.5 437.3 42.2 448 55.5 448H392.5C405.8 448 416.5 437.3 416.5 424V-16H436C442.6 -16 448 -21.4 448 -28zM79.5 -15H192V52C192 58.6 197.4 64 204 64H244C250.6 64 256 58.6 256 52V-15H368.5V399L80 400L79.5 -15z" />
-			<glyph glyph-name="calendar-alt-outline" unicode="" horiz-adv-x="448" d=" M148 160H108C101.4 160 96 165.4 96 172V212C96 218.6 101.4 224 108 224H148C154.6 224 160 218.6 160 212V172C160 165.4 154.6 160 148 160zM256 172V212C256 218.6 250.6 224 244 224H204C197.4 224 192 218.6 192 212V172C192 165.4 197.4 160 204 160H244C250.6 160 256 165.4 256 172zM352 172V212C352 218.6 346.6 224 340 224H300C293.4 224 288 218.6 288 212V172C288 165.4 293.4 160 300 160H340C346.6 160 352 165.4 352 172zM256 76V116C256 122.6 250.6 128 244 128H204C197.4 128 192 122.6 192 116V76C192 69.4 197.4 64 204 64H244C250.6 64 256 69.4 256 76zM160 76V116C160 122.6 154.6 128 148 128H108C101.4 128 96 122.6 96 116V76C96 69.4 101.4 64 108 64H148C154.6 64 160 69.4 160 76zM352 76V116C352 122.6 346.6 128 340 128H300C293.4 128 288 122.6 288 116V76C288 69.4 293.4 64 300 64H340C346.6 64 352 69.4 352 76zM448 336V-16C448 -42.5 426.5 -64 400 -64H48C21.5 -64 0 -42.5 0 -16V336C0 362.5 21.5 384 48 384H96V436C96 442.6 101.4 448 108 448H148C154.6 448 160 442.6 160 436V384H288V436C288 442.6 293.4 448 300 448H340C346.6 448 352 442.6 352 436V384H400C426.5 384 448 362.5 448 336zM400 -10V288H48V-10C48 -13.3 50.7 -16 54 -16H394C397.3 -16 400 -13.3 400 -10z" />
-			<glyph glyph-name="calendar-check-outline" unicode="" horiz-adv-x="448" d=" M400 384H352V436C352 442.627 346.627 448 340 448H300C293.373 448 288 442.627 288 436V384H160V436C160 442.627 154.627 448 148 448H108C101.373 448 96 442.627 96 436V384H48C21.49 384 0 362.51 0 336V-16C0 -42.51 21.49 -64 48 -64H400C426.51 -64 448 -42.51 448 -16V336C448 362.51 426.51 384 400 384zM394 -16H54A6 6 0 0 0 48 -10V288H400V-10A6 6 0 0 0 394 -16zM341.151 184.65L198.842 43.481C194.137 38.814 186.539 38.844 181.871 43.549L106.78 119.248C102.113 123.953 102.143 131.551 106.848 136.219L129.567 158.755C134.272 163.422 141.87 163.392 146.537 158.686L190.641 114.225L301.713 224.406C306.418 229.073 314.016 229.043 318.6840000000001 224.3379999999999L341.2200000000001 201.62C345.887 196.9149999999999 345.8560000000001 189.317 341.151 184.65z" />
-			<glyph glyph-name="calendar-minus-outline" unicode="" horiz-adv-x="448" d=" M124 120C117.4 120 112 125.4 112 132V156C112 162.6 117.4 168 124 168H324C330.6 168 336 162.6 336 156V132C336 125.4 330.6 120 324 120H124zM448 336V-16C448 -42.5 426.5 -64 400 -64H48C21.5 -64 0 -42.5 0 -16V336C0 362.5 21.5 384 48 384H96V436C96 442.6 101.4 448 108 448H148C154.6 448 160 442.6 160 436V384H288V436C288 442.6 293.4 448 300 448H340C346.6 448 352 442.6 352 436V384H400C426.5 384 448 362.5 448 336zM400 -10V288H48V-10C48 -13.3 50.7 -16 54 -16H394C397.3 -16 400 -13.3 400 -10z" />
-			<glyph glyph-name="calendar-plus-outline" unicode="" horiz-adv-x="448" d=" M336 156V132C336 125.4 330.6 120 324 120H248V44C248 37.4 242.6 32 236 32H212C205.4 32 200 37.4 200 44V120H124C117.4 120 112 125.4 112 132V156C112 162.6 117.4 168 124 168H200V244C200 250.6 205.4 256 212 256H236C242.6 256 248 250.6 248 244V168H324C330.6 168 336 162.6 336 156zM448 336V-16C448 -42.5 426.5 -64 400 -64H48C21.5 -64 0 -42.5 0 -16V336C0 362.5 21.5 384 48 384H96V436C96 442.6 101.4 448 108 448H148C154.6 448 160 442.6 160 436V384H288V436C288 442.6 293.4 448 300 448H340C346.6 448 352 442.6 352 436V384H400C426.5 384 448 362.5 448 336zM400 -10V288H48V-10C48 -13.3 50.7 -16 54 -16H394C397.3 -16 400 -13.3 400 -10z" />
-			<glyph glyph-name="calendar-times-outline" unicode="" horiz-adv-x="448" d=" M311.7 73.3L294.7 56.3C290 51.6 282.4 51.6 277.7 56.3L224 110.1L170.3 56.4C165.6 51.7 158 51.7 153.3 56.4L136.3 73.4C131.6 78.1 131.6 85.7000000000001 136.3 90.4L190 144.1L136.3 197.8C131.6 202.5 131.6 210.1 136.3 214.8L153.3 231.8C158 236.5 165.6 236.5 170.3 231.8L224 178.1L277.7 231.8C282.4 236.5 290 236.5 294.7 231.8L311.7 214.8C316.4 210.1 316.4 202.5 311.7 197.8L257.9 144L311.6 90.3C316.4 85.6 316.4 78 311.7 73.3zM448 336V-16C448 -42.5 426.5 -64 400 -64H48C21.5 -64 0 -42.5 0 -16V336C0 362.5 21.5 384 48 384H96V436C96 442.6 101.4 448 108 448H148C154.6 448 160 442.6 160 436V384H288V436C288 442.6 293.4 448 300 448H340C346.6 448 352 442.6 352 436V384H400C426.5 384 448 362.5 448 336zM400 -10V288H48V-10C48 -13.3 50.7 -16 54 -16H394C397.3 -16 400 -13.3 400 -10z" />
-			<glyph glyph-name="calendar-outline" unicode="" horiz-adv-x="448" d=" M400 384H352V436C352 442.6 346.6 448 340 448H300C293.4 448 288 442.6 288 436V384H160V436C160 442.6 154.6 448 148 448H108C101.4 448 96 442.6 96 436V384H48C21.5 384 0 362.5 0 336V-16C0 -42.5 21.5 -64 48 -64H400C426.5 -64 448 -42.5 448 -16V336C448 362.5 426.5 384 400 384zM394 -16H54C50.7 -16 48 -13.3 48 -10V288H400V-10C400 -13.3 397.3 -16 394 -16z" />
-			<glyph glyph-name="caret-square-down-outline" unicode="" horiz-adv-x="448" d=" M125.1 240H322.9C333.6 240 339 227 331.4 219.5L232.5 121.2C227.8 116.5 220.3 116.5 215.6 121.2L116.7 219.5C109 227 114.4 240 125.1 240zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM400 22V362C400 365.3 397.3 368 394 368H54C50.7 368 48 365.3 48 362V22C48 18.7 50.7 16 54 16H394C397.3 16 400 18.7 400 22z" />
-			<glyph glyph-name="caret-square-left-outline" unicode="" horiz-adv-x="448" d=" M272 290.9V93.1C272 82.4 259 77 251.5 84.6L153.2 183.5C148.5 188.2 148.5 195.7 153.2 200.4L251.5 299.3C259 307 272 301.6 272 290.9zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM400 22V362C400 365.3 397.3 368 394 368H54C50.7 368 48 365.3 48 362V22C48 18.7 50.7 16 54 16H394C397.3 16 400 18.7 400 22z" />
-			<glyph glyph-name="caret-square-right-outline" unicode="" horiz-adv-x="448" d=" M176 93.1V290.9C176 301.6 189 307 196.5 299.4L294.8 200.5C299.5 195.8 299.5 188.3 294.8 183.6L196.5 84.7000000000001C189 77.0000000000001 176 82.4 176 93.1zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM400 22V362C400 365.3 397.3 368 394 368H54C50.7 368 48 365.3 48 362V22C48 18.7 50.7 16 54 16H394C397.3 16 400 18.7 400 22z" />
-			<glyph glyph-name="caret-square-up-outline" unicode="" horiz-adv-x="448" d=" M322.9 144H125.1C114.4 144 109 157 116.6 164.5L215.5 262.8C220.2 267.5 227.7 267.5 232.4 262.8L331.3 164.5C339 157 333.6 144 322.9000000000001 144zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM400 22V362C400 365.3 397.3 368 394 368H54C50.7 368 48 365.3 48 362V22C48 18.7 50.7 16 54 16H394C397.3 16 400 18.7 400 22z" />
-			<glyph glyph-name="chart-bar-outline" unicode="" horiz-adv-x="512" d=" M500 48C506.6 48 512 42.6 512 36V12C512 5.4 506.6 0 500 0H12C5.4 0 0 5.4 0 12V372C0 378.6 5.4 384 12 384H36C42.6 384 48 378.6 48 372V48H500zM144 108V180C144 186.6 138.6 192 132 192H108C101.4 192 96 186.6 96 180V108C96 101.4 101.4 96 108 96H132C138.6 96 144 101.4 144 108zM240 108V308C240 314.6 234.6 320 228 320H204C197.4 320 192 314.6 192 308V108C192 101.4 197.4 96 204 96H228C234.6 96 240 101.4 240 108zM336 108V244C336 250.6 330.6 256 324 256H300C293.4 256 288 250.6 288 244V108C288 101.4 293.4 96 300 96H324C330.6 96 336 101.4 336 108zM432 108V340C432 346.6 426.6 352 420 352H396C389.4 352 384 346.6 384 340V108C384 101.4 389.4 96 396 96H420C426.6 96 432 101.4 432 108z" />
-			<glyph glyph-name="check-circle-outline" unicode="" horiz-adv-x="512" d=" M256 440C119.033 440 8 328.967 8 192S119.033 -56 256 -56S504 55.033 504 192S392.967 440 256 440zM256 392C366.532 392 456 302.549 456 192C456 81.468 366.549 -8 256 -8C145.468 -8 56 81.451 56 192C56 302.532 145.451 392 256 392M396.204 261.733L373.668 284.451C369.0010000000001 289.156 361.403 289.187 356.698 284.519L215.346 144.303L155.554 204.58C150.887 209.285 143.289 209.316 138.584 204.649L115.865 182.113C111.16 177.446 111.129 169.848 115.797 165.142L206.578 73.6259999999999C211.245 68.9209999999999 218.843 68.8899999999999 223.548 73.5579999999999L396.1370000000001 244.762C400.8410000000001 249.43 400.8710000000001 257.0279999999999 396.2040000000001 261.733z" />
-			<glyph glyph-name="check-square-outline" unicode="" horiz-adv-x="448" d=" M400 416H48C21.49 416 0 394.51 0 368V16C0 -10.51 21.49 -32 48 -32H400C426.51 -32 448 -10.51 448 16V368C448 394.51 426.51 416 400 416zM400 16H48V368H400V16zM364.136 257.724L191.547 86.52C186.842 81.853 179.244 81.883 174.577 86.588L83.796 178.104C79.129 182.809 79.159 190.407 83.865 195.075L106.584 217.611C111.289 222.278 118.887 222.248 123.554 217.542L183.346 157.265L324.698 297.481C329.403 302.148 337.001 302.118 341.668 297.413L364.204 274.695C368.871 269.9890000000001 368.841 262.391 364.136 257.724z" />
-			<glyph glyph-name="circle-outline" unicode="" horiz-adv-x="512" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM256 -8C145.5 -8 56 81.5 56 192S145.5 392 256 392S456 302.5 456 192S366.5 -8 256 -8z" />
-			<glyph glyph-name="clipboard-outline" unicode="" horiz-adv-x="384" d=" M336 384H256C256 419.29 227.29 448 192 448S128 419.29 128 384H48C21.49 384 0 362.51 0 336V-16C0 -42.51 21.49 -64 48 -64H336C362.51 -64 384 -42.51 384 -16V336C384 362.51 362.51 384 336 384zM330 -16H54A6 6 0 0 0 48 -10V330A6 6 0 0 0 54 336H96V300C96 293.373 101.373 288 108 288H276C282.627 288 288 293.373 288 300V336H330A6 6 0 0 0 336 330V-10A6 6 0 0 0 330 -16zM192 408C205.255 408 216 397.255 216 384S205.255 360 192 360S168 370.745 168 384S178.745 408 192 408" />
-			<glyph glyph-name="clock-outline" unicode="" horiz-adv-x="512" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM256 -8C145.5 -8 56 81.5 56 192S145.5 392 256 392S456 302.5 456 192S366.5 -8 256 -8zM317.8 96.4L232.9 158.1C229.8 160.4 228 164 228 167.8V332C228 338.6 233.4 344 240 344H272C278.6 344 284 338.6 284 332V190.3L350.8 141.7C356.2 137.8 357.3 130.3 353.4000000000001 124.9L334.6 99C330.7000000000001 93.7 323.2000000000001 92.5 317.8 96.4z" />
-			<glyph glyph-name="clone-outline" unicode="" horiz-adv-x="512" d=" M464 448H144C117.49 448 96 426.51 96 400V352H48C21.49 352 0 330.51 0 304V-16C0 -42.51 21.49 -64 48 -64H368C394.51 -64 416 -42.51 416 -16V32H464C490.51 32 512 53.49 512 80V400C512 426.51 490.51 448 464 448zM362 -16H54A6 6 0 0 0 48 -10V298A6 6 0 0 0 54 304H96V80C96 53.49 117.49 32 144 32H368V-10A6 6 0 0 0 362 -16zM458 80H150A6 6 0 0 0 144 86V394A6 6 0 0 0 150 400H458A6 6 0 0 0 464 394V86A6 6 0 0 0 458 80z" />
-			<glyph glyph-name="closed-captioning-outline" unicode="" horiz-adv-x="512" d=" M464 384H48C21.5 384 0 362.5 0 336V48C0 21.5 21.5 0 48 0H464C490.5 0 512 21.5 512 48V336C512 362.5 490.5 384 464 384zM458 48H54C50.7 48 48 50.7 48 54V330C48 333.3 50.7 336 54 336H458C461.3 336 464 333.3 464 330V54C464 50.7 461.3 48 458 48zM246.9 133.7C248.6 131.3 248.4 128.1 246.4 126C192.8 69.2 73.6 93.9 73.6 193.9C73.6 291.2 195.3 313.4 246.1 264C248.2 262 248.6 260.8 247.1 258.3L229.6 227.8C227.7 224.7 223.4 223.8 220.5 226.1C179.7 258.1 125.9 241.0000000000001 125.9 194.9C125.9 146.9 176.9 124.4 218.1 162.3C220.9 164.8 225.2 164.4 227.3 161.4L246.9 133.7000000000001zM437.3 133.7C439 131.3 438.8 128.1 436.8 126C383.2 69.1 264 93.9 264 193.9C264 291.2 385.7 313.4 436.5 264C438.6 262 439 260.8 437.5 258.3L420 227.8C418.1 224.7 413.8 223.8 410.9 226.1C370.1 258.1 316.3 241.0000000000001 316.3 194.9C316.3 146.9 367.3 124.4 408.5 162.3C411.3 164.8 415.6 164.4 417.7 161.4L437.3 133.7000000000001z" />
-			<glyph glyph-name="comment-alt-outline" unicode="" horiz-adv-x="576" d=" M288 416C129 416 0 322.9 0 208C0 158.7 23.7 113.5 63.3 77.8C54.6 54.5 41.2 45.1 26.2 34.7C15.1 27 -6 15 1.6 -8.5C6.7 -23.9 22.5 -33.2 39.7 -31.8C97.4 -27.2 150.9 -12.6 196.7 10.7C225.4 3.8 256.1 0 287.9 0C447 0 575.9 93 575.9 208C576 322.9 447.1 416 288 416zM288 48C255.5 48 222.6 52.4 190.7 62C158.4 43 112 16 56 8C88 32 112.8 69.6 117.2 96.4C79.1 122.4 48 161.3 48 208C48 278.9 134.3 368 288 368S528 278.9 528 208C528 137 441.7 48 288 48zM224 208C224 181.5 202.5 160 176 160S128 181.5 128 208S149.5 256 176 256S224 234.5 224 208zM336 208C336 181.5 314.5 160 288 160S240 181.5 240 208S261.5 256 288 256S336 234.5 336 208zM448 208C448 181.5 426.5 160 400 160S352 181.5 352 208S373.5 256 400 256S448 234.5 448 208z" />
-			<glyph glyph-name="comment-outline" unicode="" horiz-adv-x="576" d=" M288 416C129 416 0 322.9 0 208C0 158.7 23.7 113.5 63.3 77.8C54.6 54.5 41.2 45.1 26.2 34.7C15.1 27 -6 15 1.6 -8.5C6.7 -23.9 22.5 -33.2 39.7 -31.8C97.4 -27.2 150.9 -12.6 196.7 10.7C225.4 3.8 256.1 0 287.9 0C447 0 575.9 93 575.9 208C576 322.9 447.1 416 288 416zM288 48C255.5 48 222.6 52.4 190.7 62C158.4 43 112 16 56 8C88 32 112.8 69.6 117.2 96.4C79.1 122.4 48 161.3 48 208C48 278.9 134.3 368 288 368S528 278.9 528 208C528 137 441.7 48 288 48z" />
-			<glyph glyph-name="comments-outline" unicode="" horiz-adv-x="576" d=" M574.507 4.14C569.0859999999999 -17.121 549.9369999999999 -32 527.996 -32C495.75 -32 461.485 -22.01 425.896 -2.266C375.256 -13.892 316.745 -10.143 267.9359999999999 11.171C309.08 14.09 348.2969999999999 23.51 384.267 39.876C400.589 41.096 416.9409999999999 44.196 432.8979999999999 49.469C454.404 35.635 490.663 16 527.996 16C495.996 33.455 484.777 54.958 481.837 74.502C507.28 93.35 527.996 121.685 527.996 155.637C527.996 166.132 525.6129999999999 177.173 520.9549999999999 188.104C528.3599999999999 214.034 529.6109999999999 238.298 526.1399999999999 262.042C558.3039999999999 231.581 575.9959999999999 192.914 575.9959999999999 155.637C575.9959999999999 121.7439999999999 563.0829999999999 90.5899999999999 541.0199999999999 64.5179999999999C543.6729999999999 62.4799999999999 546.9439999999998 60.3419999999999 550.9819999999999 58.1399999999999C570.2429999999998 47.632 579.9289999999999 25.401 574.5069999999998 4.1399999999999zM240.002 368C117.068 368 48.004 295.123 48.004 237.091C48.004 198.895 72.863 167.019 103.395 145.815C99.868 123.827 86.404 99.636 48.004 80C92.804 80 136.314 102.089 162.123 117.653C187.643 109.747 214.006 106.182 240.002 106.182C362.998 106.182 432 179.024 432 237.091C432 295.118 362.943 368 240.002 368M240.002 416C390.193 416 480 321.974 480 237.091C480 214.346 473.494 190.697 461.184 168.7C449.3060000000001 147.474 432.6450000000001 128.406 411.661 112.026C390.068 95.169 364.863 81.981 336.748 72.829C306.893 63.11 274.343 58.183 240.002 58.183C215.553 58.183 191.662 60.87 168.71 66.187C126.311 43.488 85.785 32 48.004 32C25.824 32 6.532 47.197 1.339 68.761C-3.855 90.324 6.403 112.639 26.15 122.737C33.813 126.655 39.474 130.4740000000001 43.669 134.031C36.276 141.86 29.717 150.155 24.035 158.875C8.09 183.345 0.005 209.661 0.005 237.091C0.005 321.741 89.508 416 240.002 416z" />
-			<glyph glyph-name="compass-outline" unicode="" horiz-adv-x="512" d=" M256 440C119.033 440 8 328.967 8 192S119.033 -56 256 -56S504 55.033 504 192S392.967 440 256 440zM256 -8C145.468 -8 56 81.451 56 192C56 302.531 145.451 392 256 392C366.532 392 456 302.549 456 192C456 81.468 366.549 -8 256 -8zM347.326 304.131L313.9670000000001 166.352A24.005 24.005 0 0 0 307.1950000000001 154.623L204.5550000000001 56.844C187.4510000000001 40.551 158.9950000000001 56.41 164.6750000000001 79.868L198.0340000000001 217.647A23.997 23.997 0 0 0 204.8060000000001 229.376L307.4480000000001 327.155C324.7330000000001 343.625 352.9420000000001 327.33 347.3260000000001 304.131zM256 224C238.327 224 224 209.673 224 192S238.327 160 256 160S288 174.327 288 192S273.673 224 256 224z" />
-			<glyph glyph-name="copy-outline" unicode="" horiz-adv-x="448" d=" M433.941 382.059L382.059 433.941A48 48 0 0 1 348.118 448H176C149.49 448 128 426.51 128 400V352H48C21.49 352 0 330.51 0 304V-16C0 -42.51 21.49 -64 48 -64H272C298.51 -64 320 -42.51 320 -16V32H400C426.51 32 448 53.49 448 80V348.118A48 48 0 0 1 433.941 382.059zM266 -16H54A6 6 0 0 0 48 -10V298A6 6 0 0 0 54 304H128V80C128 53.49 149.49 32 176 32H272V-10A6 6 0 0 0 266 -16zM394 80H182A6 6 0 0 0 176 86V394A6 6 0 0 0 182 400H288V312C288 298.745 298.745 288 312 288H400V86A6 6 0 0 0 394 80zM400 336H336V400H345.632C347.223 400 348.749 399.368 349.875 398.243L398.243 349.875A6 6 0 0 0 400 345.632V336z" />
-			<glyph glyph-name="copyright-outline" unicode="" horiz-adv-x="512" d=" M256 440C119.033 440 8 328.967 8 192S119.033 -56 256 -56S504 55.033 504 192S392.967 440 256 440zM256 -8C145.468 -8 56 81.451 56 192C56 302.531 145.451 392 256 392C366.532 392 456 302.549 456 192C456 81.468 366.549 -8 256 -8zM363.351 93.064C353.737 83.352 317.8210000000001 51.668 259.286 51.668C176.856 51.668 118.802 113.093 118.802 193.235C118.802 272.387 179.077 332.636 258.564 332.636C314.095 332.636 347.302 306.016 356.157 297.857A11.965 11.965 0 0 0 358.093 282.535L339.938 254.422C336.097 248.472 327.972 247.14 322.439 251.501C313.844 258.277 290.625 274.039 260.731 274.039C212.428 274.039 182.815 238.709 182.815 193.957C182.815 152.368 209.703 110.265 261.092 110.265C293.749 110.265 317.935 129.304 326.818 137.49C332.088 142.347 340.414 141.529 344.638 135.752L364.503 108.582A11.947000000000001 11.947000000000001 0 0 0 363.351 93.064z" />
-			<glyph glyph-name="credit-card-outline" unicode="" horiz-adv-x="576" d=" M527.9 416H48.1C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48.1 -32H527.9C554.5 -32 576 -10.5 576 16V368C576 394.5 554.5 416 527.9 416zM54.1 368H521.9C525.1999999999999 368 527.9 365.3 527.9 362V320H48.1V362C48.1 365.3 50.8 368 54.1 368zM521.9 16H54.1C50.8 16 48.1 18.7 48.1 22V192H527.9V22C527.9 18.7 525.1999999999999 16 521.9 16zM192 116V76C192 69.4 186.6 64 180 64H108C101.4 64 96 69.4 96 76V116C96 122.6 101.4 128 108 128H180C186.6 128 192 122.6 192 116zM384 116V76C384 69.4 378.6 64 372 64H236C229.4 64 224 69.4 224 76V116C224 122.6 229.4 128 236 128H372C378.6 128 384 122.6 384 116z" />
-			<glyph glyph-name="dot-circle-outline" unicode="" horiz-adv-x="512" d=" M256 392C366.532 392 456 302.549 456 192C456 81.468 366.549 -8 256 -8C145.468 -8 56 81.451 56 192C56 302.532 145.451 392 256 392M256 440C119.033 440 8 328.967 8 192S119.033 -56 256 -56S504 55.033 504 192S392.967 440 256 440zM256 272C211.817 272 176 236.183 176 192S211.817 112 256 112S336 147.817 336 192S300.183 272 256 272z" />
-			<glyph glyph-name="edit-outline" unicode="" horiz-adv-x="576" d=" M402.3 103.1L434.3 135.1C439.3 140.1 448 136.6 448 129.4V-16C448 -42.5 426.5 -64 400 -64H48C21.5 -64 0 -42.5 0 -16V336C0 362.5 21.5 384 48 384H321.5C328.6 384 332.2 375.4 327.2 370.3L295.2 338.3C293.7 336.8 291.7 336 289.5 336H48V-16H400V97.5C400 99.6 400.8 101.6 402.3 103.1zM558.9 304.9000000000001L296.3 42.3L205.9 32.3C179.7 29.4 157.4 51.5 160.3 77.9L170.3 168.3000000000001L432.9 430.9C455.8 453.8 492.8 453.8 515.6 430.9L558.8000000000001 387.7C581.7 364.8 581.7 327.7 558.9000000000001 304.9zM460.1 274L402 332.1L216.2 146.2L208.9 80.9L274.2 88.2L460.1 274zM524.9 353.7L481.7 396.9C477.6 401 470.9 401 466.9 396.9L436 366L494.1 307.9L525 338.8C529 343 529 349.6 524.9 353.7000000000001z" />
-			<glyph glyph-name="envelope-open-outline" unicode="" horiz-adv-x="512" d=" M494.586 283.4840000000001C489.889 287.367 382.863 373.4340000000001 359.3350000000001 392.141C337.231 409.809 299.437 448 256 448C212.795 448 175.364 410.283 152.665 392.141C128.202 372.6910000000001 21.595 286.9460000000001 17.515 283.592A48.004000000000005 48.004000000000005 0 0 1 0 246.515V-16C0 -42.51 21.49 -64 48 -64H464C490.51 -64 512 -42.51 512 -16V246.491A48 48 0 0 1 494.586 283.4840000000001zM464 -10A6 6 0 0 0 458 -16H54A6 6 0 0 0 48 -10V243.653C48 245.466 48.816 247.179 50.226 248.318C66.096 261.132 159.019 335.872 182.59 354.611C200.755 369.12 232.398 400 256 400C279.693 400 311.857 368.631 329.41 354.611C352.983 335.87 445.913 261.118 461.776 248.295A5.99 5.99 0 0 0 463.9999999999999 243.632V-10zM432.009 177.704C436.2580000000001 172.545 435.474 164.909 430.264 160.723C401.289 137.44 370.99 113.126 359.3350000000001 103.86C336.636 85.717 299.205 48 256 48C212.548 48 174.713 86.237 152.665 103.86C141.386 112.827 110.921 137.273 81.738 160.725C76.528 164.912 75.745 172.547 79.993 177.706L95.251 196.234C99.429 201.307 106.908 202.077 112.03 197.96C140.648 174.959 170.596 150.925 182.59 141.389C200.143 127.369 232.307 96 256 96C279.602 96 311.246 126.88 329.41 141.389C341.404 150.924 371.354 174.959 399.973 197.957C405.095 202.073 412.574 201.303 416.751 196.23L432.009 177.704z" />
-			<glyph glyph-name="envelope-outline" unicode="" horiz-adv-x="512" d=" M464 384H48C21.49 384 0 362.51 0 336V48C0 21.49 21.49 0 48 0H464C490.51 0 512 21.49 512 48V336C512 362.51 490.51 384 464 384zM464 336V295.195C441.578 276.936 405.832 248.544 329.413 188.705C312.572 175.458 279.212 143.633 256 144.004C232.792 143.629 199.421 175.463 182.587 188.705C106.18 248.535 70.425 276.933 48 295.195V336H464zM48 48V233.602C70.914 215.351 103.409 189.74 152.938 150.956C174.795 133.751 213.072 95.77 256 96.001C298.717 95.77 336.509 133.2000000000001 359.053 150.948C408.581 189.7310000000001 441.085 215.3490000000001 464 233.6010000000001V48H48z" />
-			<glyph glyph-name="eye-slash-outline" unicode="" horiz-adv-x="576" d=" M272.702 88.861C192.219 97.872 136.49 175.747 155.772 255.903L272.702 88.861zM288 56C185.444 56 95.908 110.701 48 192C69.755 228.917 100.1 260.342 136.344 283.658L108.803 323.0010000000001C67.001 295.766 31.921 259.259 6.646 216.369A47.999 47.999 0 0 1 6.646 167.63C63.004 71.994 168.14 8 288 8A332.89 332.89 0 0 1 327.648 10.367L295.627 56.111A284.16 284.16 0 0 0 288 56zM569.354 167.631C536.1220000000001 111.237 485.933 65.889 425.8000000000001 38.139L473.9160000000001 -30.601C477.717 -36.03 476.3960000000001 -43.513 470.967 -47.313L450.23 -61.83C444.8010000000001 -65.631 437.3180000000001 -64.3099999999999 433.5180000000001 -58.881L102.084 414.601C98.283 420.03 99.604 427.513 105.033 431.313L125.77 445.83C131.199 449.631 138.682 448.31 142.482 442.881L198.008 363.556C226.612 371.657 256.808 376 288 376C407.86 376 512.996 312.006 569.354 216.369A48.00200000000001 48.00200000000001 0 0 0 569.354 167.631zM528 192C483.843 266.933 404.323 319.27 311.838 327.007C302.042 316.9220000000001 296 303.17 296 288C296 257.072 321.072 232 352 232S408 257.072 408 288L407.999 288.0420000000001C438.6310000000001 230.765 424.738 157.7820000000001 371.0710000000001 116.323L397.766 78.188C452.626 101.449 498.308 141.614 528 192z" />
-			<glyph glyph-name="file-alt-outline" unicode="" horiz-adv-x="384" d=" M288 200V172C288 165.4 282.6 160 276 160H108C101.4 160 96 165.4 96 172V200C96 206.6 101.4 212 108 212H276C282.6 212 288 206.6 288 200zM276 128H108C101.4 128 96 122.6 96 116V88C96 81.4 101.4 76 108 76H276C282.6 76 288 81.4 288 88V116C288 122.6 282.6 128 276 128zM384 316.1V-16C384 -42.5 362.5 -64 336 -64H48C21.5 -64 0 -42.5 0 -16V400C0 426.5 21.5 448 48 448H252.1C264.8 448 277 442.9 286 433.9L369.9 350C378.9 341.1 384 328.8 384 316.1zM256 396.1V320H332.1L256 396.1zM336 -16V272H232C218.7 272 208 282.7 208 296V400H48V-16H336z" />
-			<glyph glyph-name="file-archive-outline" unicode="" horiz-adv-x="384" d=" M369.941 350.059L286.059 433.9410000000001A48 48 0 0 1 252.118 448H48C21.49 448 0 426.51 0 400V-16C0 -42.51 21.49 -64 48 -64H336C362.51 -64 384 -42.51 384 -16V316.118A48 48 0 0 1 369.941 350.059zM256 396.118L332.118 320H256V396.118zM336 -16H48V400H127.714V384H159.714V400H208V296C208 282.745 218.745 272 232 272H336V-16zM192.27 352H160.27V384H192.27V352zM160.27 352V320H128.27V352H160.27zM160.27 288V256H128.27V288H160.27zM192.27 288H160.27V320H192.27V288zM194.179 182.322A12 12 0 0 1 182.406 192H160.27V224H128.27V192L108.58 94.894C101.989 62.389 126.834 32 160 32C193.052 32 217.871 62.192 211.476 94.62L194.179 182.322zM160.27 57.927C142.352 57.927 127.826 70.032 127.826 84.963C127.826 99.895 142.351 111.999 160.27 111.999S192.714 99.894 192.714 84.963C192.714 70.032 178.188 57.927 160.27 57.927zM192.27 224H160.27V256H192.27V224z" />
-			<glyph glyph-name="file-audio-outline" unicode="" horiz-adv-x="384" d=" M369.941 350.059L286.059 433.9410000000001A48 48 0 0 1 252.118 448H48C21.49 448 0 426.51 0 400V-16C0 -42.51 21.49 -64 48 -64H336C362.51 -64 384 -42.51 384 -16V316.118A48 48 0 0 1 369.941 350.059zM332.118 320H256V396.118L332.118 320zM48 -16V400H208V296C208 282.745 218.745 272 232 272H336V-16H48zM192 60.024C192 49.333 179.074 43.979 171.515 51.539L136 87.514H108C101.373 87.514 96 92.887 96 99.514V155.514C96 162.141 101.373 167.514 108 167.514H136L171.515 204.461C179.075 212.021 192 206.667 192 195.976V60.024zM233.201 107.154C242.252 116.451 242.261 131.287 233.202 140.593C211.053 163.345 245.437 196.839 267.597 174.074C294.795 146.134 294.809 101.63 267.598 73.673C245.805 51.287 210.651 83.988 233.201 107.154z" />
-			<glyph glyph-name="file-code-outline" unicode="" horiz-adv-x="384" d=" M369.941 350.059L286.059 433.9410000000001A48 48 0 0 1 252.118 448H48C21.49 448 0 426.51 0 400V-16C0 -42.51 21.49 -64 48 -64H336C362.51 -64 384 -42.51 384 -16V316.118A48 48 0 0 1 369.941 350.059zM332.118 320H256V396.118L332.118 320zM48 -16V400H208V296C208 282.745 218.745 272 232 272H336V-16H48zM149.677 99.115L116.854 128L149.676 156.885A8.793 8.793 0 0 1 150.281 169.509L132.878 188.073C129.494 191.686 123.914 191.735 120.44 188.4740000000001L62.78 134.42C59.077 130.946 59.076 125.053 62.781 121.5800000000001L120.44 67.525A8.738 8.738 0 0 1 126.452 65.1440000000001A8.746 8.746 0 0 1 132.879 67.9260000000001L150.282 86.489A8.795 8.795 0 0 1 149.677 99.115zM233.961 226.965L209.56 234.049A8.796 8.796 0 0 1 198.655 228.051L144.04 39.939C142.687 35.279 145.378 30.387 150.038 29.0340000000001L174.441 21.95C179.121 20.595 183.998 23.304 185.346 27.948L239.958 216.06C241.312 220.72 238.621 225.612 233.961 226.9650000000001zM321.219 134.42L263.561 188.475C260.035 191.7820000000001 254.462 191.6400000000001 251.122 188.074L233.719 169.511A8.795 8.795 0 0 1 234.324 156.886L267.146 128L234.324 99.115A8.793 8.793 0 0 1 233.719 86.491L251.122 67.927A8.797 8.797 0 0 1 263.5610000000001 67.526H263.5600000000001L321.2200000000001 121.581C324.923 125.054 324.923 130.947 321.2190000000001 134.42z" />
-			<glyph glyph-name="file-excel-outline" unicode="" horiz-adv-x="384" d=" M369.9 350.1L286 434C277 443 264.8 448.1 252.1 448.1H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H336C362.5 -64 384 -42.5 384 -16V316.1C384 328.8 378.9 341.1 369.9 350.1zM332.1 320H256V396.1L332.1 320zM48 -16V400H208V296C208 282.7 218.7 272 232 272H336V-16H48zM260 224H231.2C226.8 224 222.8 221.6 220.7 217.7C202.7 184.6 198.5 175.3 192.1 160C178.2 189.1 185.2 177.3 163.5 217.7C161.4 221.6 157.3 224 152.9 224H124C114.7 224 109 214 113.6 206L159.9 128L113.6 50C108.9 42 114.7 32 124 32H152.9C157.3 32 161.3 34.4 163.4 38.3C185.1 78.3 186.4 83.3 192 96C206.9 65.8 197.9 80.1 220.6 38.3C222.7 34.4 226.8 32 231.2 32H260C269.3 32 275 42 270.4 50L224 128C224.7 129.1 254.3 178.5 270.3 206C275 214 269.2 224 260 224z" />
-			<glyph glyph-name="file-image-outline" unicode="" horiz-adv-x="384" d=" M369.9 350.1L286 434C277 443 264.8 448.1 252.1 448.1H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H336C362.5 -64 384 -42.5 384 -16V316.1C384 328.8 378.9 341.1 369.9 350.1zM332.1 320H256V396.1L332.1 320zM48 -16V400H208V296C208 282.7 218.7 272 232 272H336V-16H48zM80 32H304V160L280.5 183.5C275.8 188.2 268.2 188.2 263.5 183.5L176 96L136.5 135.5C131.8 140.2 124.2 140.2 119.5 135.5L80 96V32zM128 272C101.5 272 80 250.5 80 224S101.5 176 128 176S176 197.5 176 224S154.5 272 128 272z" />
-			<glyph glyph-name="file-pdf-outline" unicode="" horiz-adv-x="384" d=" M369.9 350.1L286 434C277 443 264.8 448.1 252.1 448.1H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H336C362.5 -64 384 -42.5 384 -16V316.1C384 328.8 378.9 341.1 369.9 350.1zM332.1 320H256V396.1L332.1 320zM48 -16V400H208V296C208 282.7 218.7 272 232 272H336V-16H48zM298.2 127.7C286 139.7 251.2 136.4 233.8 134.2C216.6 144.7 205.1 159.2 197 180.5C200.9 196.6 207.1 221.1 202.4 236.5C198.2 262.7 164.6 260.1 159.8 242.4C155.4 226.3 159.4 203.9 166.8 175.3C156.8 151.4 141.9 119.3 131.4 100.9C111.4 90.6 84.4 74.7 80.4 54.7C77.1 38.9 106.4 -0.5 156.5 85.9C178.9 93.3 203.3 102.4 224.9 106C243.8 95.8 265.9 89 280.7 89C306.2 89 308.7 117.2 298.2 127.7zM100.1 49.9C105.2 63.6 124.6 79.4 130.5 84.9C111.5 54.6 100.1 49.2 100.1 49.9zM181.7 240.5C189.1 240.5 188.4 208.4 183.5 199.7C179.1 213.6 179.2 240.5 181.7 240.5zM157.3 103.9C167 120.8 175.3 140.9 182 158.6C190.3 143.5 200.9 131.4 212.1 123.1C191.3 118.8 173.2 109.9999999999999 157.3 103.9zM288.9 108.9S283.9 102.9 251.6 116.7C286.7 119.3 292.5 111.3 288.9 108.9z" />
-			<glyph glyph-name="file-powerpoint-outline" unicode="" horiz-adv-x="384" d=" M369.9 350.1L286 434C277 443 264.8 448.1 252.1 448.1H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H336C362.5 -64 384 -42.5 384 -16V316.1C384 328.8 378.9 341.1 369.9 350.1zM332.1 320H256V396.1L332.1 320zM48 -16V400H208V296C208 282.7 218.7 272 232 272H336V-16H48zM120 44V212C120 218.6 125.4 224 132 224H201.2C237.9 224 264 197 264 157.7C264 83.4 195.3 91.2 168.5 91.2V44C168.5 37.4 163.1 32 156.5 32H132C125.4 32 120 37.4 120 44zM168.5 131.4H191.5C199.4 131.4 205.4 133.8 209.6 138.6C218.1 148.4 218 167.1 209.7 176.4C205.6 181 199.8 183.4 192.3 183.4H168.4V131.4z" />
-			<glyph glyph-name="file-video-outline" unicode="" horiz-adv-x="384" d=" M369.941 350.059L286.059 433.9410000000001A48 48 0 0 1 252.118 448H48C21.49 448 0 426.51 0 400V-16C0 -42.51 21.49 -64 48 -64H336C362.51 -64 384 -42.51 384 -16V316.118A48 48 0 0 1 369.941 350.059zM332.118 320H256V396.118L332.118 320zM48 -16V400H208V296C208 282.745 218.745 272 232 272H336V-16H48zM276.687 195.303L224 142.626V180C224 191.046 215.046 200 204 200H100C88.954 200 80 191.046 80 180V76C80 64.954 88.954 56 100 56H204C215.046 56 224 64.954 224 76V113.374L276.687 60.7000000000001C286.704 50.682 304 57.72 304 72.014V183.989C304 198.3 286.691 205.308 276.687 195.303z" />
-			<glyph glyph-name="file-word-outline" unicode="" horiz-adv-x="384" d=" M369.9 350.1L286 434C277 443 264.8 448.1 252.1 448.1H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H336C362.5 -64 384 -42.5 384 -16V316.1C384 328.8 378.9 341.1 369.9 350.1zM332.1 320H256V396.1L332.1 320zM48 -16V400H208V296C208 282.7 218.7 272 232 272H336V-16H48zM268.1 192C262.4000000000001 192 257.5 188 256.4000000000001 182.5C235.8000000000001 84.8 236.0000000000001 87.1 235.4000000000001 79C235.2000000000001 80.2 235.0000000000001 81.6 234.7000000000001 83.3C233.9000000000001 88.4 235.0000000000001 83.1 211.1000000000001 182.8C209.8000000000001 188.2 205.0000000000001 192 199.4000000000001 192H186.1000000000001C180.6000000000001 192 175.8000000000001 188.2 174.4000000000001 182.9C150.0000000000001 83.9 150.4000000000001 86.7 149.6000000000001 79.2C149.5000000000001 80.3 149.4000000000001 81.7 149.1000000000001 83.4C148.4000000000001 88.6 135.0000000000001 156.7 130.0000000000001 182.4C128.9000000000001 188 124.0000000000001 192.1 118.2000000000001 192.1H101.4000000000001C93.6000000000001 192.1 87.9000000000001 184.8 89.7000000000001 177.3C97.7000000000001 144.6999999999999 116.4000000000001 67.8 122.9000000000001 41.3C124.2000000000001 35.9 129.0000000000001 32.1999999999999 134.6000000000001 32.1999999999999H159.8000000000001C165.3000000000001 32.1999999999999 170.1000000000001 35.8999999999999 171.4 41.3L189.3000000000001 112.6999999999999C190.8000000000001 118.8999999999999 191.8000000000001 124.6999999999999 192.3000000000001 130L195.2000000000001 112.6999999999999C195.3000000000001 112.3 207.8000000000001 62.1999999999999 213.1000000000001 41.3C214.4000000000001 35.9999999999999 219.2000000000001 32.1999999999999 224.7000000000001 32.1999999999999H249.4000000000001C254.9000000000001 32.1999999999999 259.7000000000001 35.8999999999999 261.0000000000001 41.3C281.8000000000001 123.1999999999999 291.2000000000001 160.3 295.5000000000001 177.3C297.4000000000001 184.9 291.7000000000001 192.2 283.9000000000001 192.2H268.1z" />
-			<glyph glyph-name="file-outline" unicode="" horiz-adv-x="384" d=" M369.9 350.1L286 434C277 443 264.8 448.1 252.1 448.1H48C21.5 448 0 426.5 0 400V-16C0 -42.5 21.5 -64 48 -64H336C362.5 -64 384 -42.5 384 -16V316.1C384 328.8 378.9 341.1 369.9 350.1zM332.1 320H256V396.1L332.1 320zM48 -16V400H208V296C208 282.7 218.7 272 232 272H336V-16H48z" />
-			<glyph glyph-name="flag-outline" unicode="" horiz-adv-x="512" d=" M336.174 368C287.042 368 242.869 400 174.261 400C142.96 400 115.958 393.5180000000001 93.54 384.832A48.04 48.04 0 0 1 95.682 405.559C93.067 428.425 74.167 446.406 51.201 447.896C23.242 449.71 0 427.569 0 400C0 382.236 9.657 366.738 24 358.438V-48C24 -56.837 31.163 -64 40 -64H56C64.837 -64 72 -56.837 72 -48V35.443C109.869 52.72 143.259 64 199.826 64C248.958 64 293.131 32 361.7390000000001 32C420.218 32 463.711 54.617 490.287 71.981C503.846 80.839 512 95.949 512 112.145V352.063C512 386.522 476.736 409.831 445.096 396.18C409.193 380.6910000000001 371.641 368 336.174 368zM464 112C442.217 96.588 403.176 80 361.7390000000001 80C301.7940000000001 80 259.737 112 199.826 112C156.465 112 103.447 102.597 72 88V320C93.784 335.4120000000001 132.824 352 174.261 352C234.206 352 276.2630000000001 320 336.1740000000001 320C379.4450000000001 320 432.4940000000001 337.366 464 352V112z" />
-			<glyph glyph-name="folder-open-outline" unicode="" horiz-adv-x="576" d=" M527.943 224H480V272C480 298.51 458.51 320 432 320H272L208 384H48C21.49 384 0 362.51 0 336V48C0 21.49 21.49 0 48 0H448A48.001 48.001 0 0 1 488.704 22.56L568.646 150.56C588.5939999999999 182.477 565.608 224 527.943 224zM54 336H188.118L252.118 272H426A6 6 0 0 0 432 266V224H152A48 48 0 0 1 110.902 200.798L48 96.551V330.007A5.993 5.993 0 0 0 54 336zM448 48H72L149.234 176H528L448 48z" />
-			<glyph glyph-name="folder-outline" unicode="" horiz-adv-x="512" d=" M464 320H272L208 384H48C21.49 384 0 362.51 0 336V48C0 21.49 21.49 0 48 0H464C490.51 0 512 21.49 512 48V272C512 298.51 490.51 320 464 320zM458 48H54C50.686 48 48 50.678 48 53.992V330.008A5.993 5.993 0 0 0 54 336H188.118L252.118 272H458A6 6 0 0 0 464 266V54A6 6 0 0 0 458 48z" />
-			<glyph glyph-name="frown-outline" unicode="" horiz-adv-x="512" d=" M256 392C366.532 392 456 302.549 456 192C456 81.468 366.549 -8 256 -8C145.468 -8 56 81.451 56 192C56 302.532 145.451 392 256 392M256 440C119.033 440 8 328.967 8 192S119.033 -56 256 -56S504 55.033 504 192S392.967 440 256 440zM320 304C310.465 304 301.488 301.6140000000001 293.63 297.411H293.647C306.382 297.411 316.706 287.087 316.706 274.352C316.706 261.617 306.382 251.293 293.647 251.293S270.588 261.617 270.588 274.352V274.3690000000001C266.386 266.512 264 257.535 264 248C264 217.072 289.072 192 320 192S376 217.072 376 248S350.928 304 320 304zM192 304C182.465 304 173.488 301.6140000000001 165.63 297.411H165.647C178.382 297.411 188.706 287.087 188.706 274.352C188.706 261.617 178.382 251.293 165.647 251.293C152.912 251.293 142.588 261.617 142.588 274.352V274.3690000000001C138.386 266.512 136 257.535 136 248C136 217.072 161.072 192 192 192S248 217.072 248 248S222.928 304 192 304zM363.5470000000001 102.218C306.952 179.182 205.164 179.283 148.4900000000001 102.2189999999999C129.6700000000001 76.6259999999999 168.3480000000001 48.2009999999999 187.16 73.781C224.671 124.791 287.5250000000001 124.577 324.8770000000001 73.7819999999999C343.3860000000001 48.6099999999999 382.6980000000001 76.1769999999999 363.5470000000001 102.2179999999999z" />
-			<glyph glyph-name="futbol-outline" unicode="" horiz-adv-x="512" d=" M207.898 122.429L178.004 213.741L256 270.2680000000001L333.996 213.741L304.374 122.429H207.898zM504 192C504 55.033 392.967 -56 256 -56S8 55.033 8 192S119.033 440 256 440S504 328.967 504 192zM48.002 192.19L48 192C48 147.3 62.015 104.758 87.95 69.374L95.932 104.492L184.527 93.621L222.302 12.636L191.324 -5.791C233.156 -19.422 278.922 -19.397 320.678 -5.791L289.7 12.636L327.475 93.621L416.069 104.492L424.051 69.374C449.985 104.758 464 147.3 464 192L463.998 192.19L436.995 168.629L371.772 229.504L388.894 317.283L424.432 314.1C399.216 348.73 363.1230000000001 376.153 319.855 390.0510000000001L333.9980000000001 356.9600000000001L256 313.75L178.004 356.9600000000001L192.148 390.051C148.868 376.149 112.782 348.723 87.57 314.1L123.38 317.283L140.229 229.504L75.006 168.629L48.002 192.19z" />
-			<glyph glyph-name="gem-outline" unicode="" horiz-adv-x="576" d=" M464 448H112C108 448 104.2 446 102 442.6L2 295.4C-0.9 291 -0.6 285.2000000000001 2.7 281.2000000000001L278.7 -59.6C283.5 -65.5 292.5 -65.5 297.3 -59.6L573.3 281.2C576.5999999999999 285.3 576.9 291 574 295.4L474.1 442.6C471.8 446 468.1 448 464 448zM444.7 400L508 304H439.6L387.9000000000001 400H444.7000000000001zM242.6 400H333.3L385 304H191L242.6 400zM131.3 400H188.1L136.4 304H68L131.3 400zM88.3 256H139.7L208 96L88.3 256zM191.2 256H384.8L288 12.7L191.2 256zM368 96L436.2 256H487.6L368 96z" />
-			<glyph glyph-name="hand-lizard-outline" unicode="" horiz-adv-x="576" d=" M556.686 157.458L410.328 383.171C397.001 403.728 374.417 416 349.917 416H56C25.121 416 0 390.878 0 360V352C0 307.8880000000001 35.888 272 80 272H276.0420000000001L257.7090000000001 224H144C95.477 224 56 184.523 56 136C56 105.121 81.121 80 112 80H243.552C246.539 80 249.466 79.451 252.249 78.369L352 39.582V-32H576V92.171C576 115.396 569.321 137.972 556.686 157.458zM528 16H400V39.582C400 59.53 387.986 77.09 369.396 84.318L269.645 123.106A71.733 71.733 0 0 1 243.552 128H112C107.589 128 104 131.589 104 136C104 158.056 121.944 176 144 176H257.709C277.476 176 295.495 188.407 302.549 206.873L327.101 271.154C336.097 294.707 318.673 320 293.471 320H80C62.355 320 48 334.355 48 352V360C48 364.411 51.589 368 56 368H349.917C358.083 368 365.61 363.91 370.054 357.058L516.412 131.343A71.84 71.84 0 0 0 528 92.171V16z" />
-			<glyph glyph-name="hand-paper-outline" unicode="" horiz-adv-x="448" d=" M372.57 335.359V346.184C372.57 389.796 332.05 422.875 289.531 411.73C263.902 461.23 195.441 459.18 171.549 410.983C130.269 421.544 89.144 390.055 89.144 346V219.87C69.191 227.297 45.836 224.938 27.061 210.999C-2.294 189.203 -8.733 147.666 12.511 117.846L132.48 -50.569A32 32 0 0 1 158.542 -64.001H381.439C396.343 -64.001 409.274 -53.712 412.621 -39.188L442.805 91.77A203.637 203.637 0 0 1 448 137.436V269C448 309.62 412.477 340.992 372.57 335.359zM399.997 137.437C399.997 125.706 398.663 113.968 396.0320000000001 102.551L368.707 -16H166.787L51.591 145.697C37.152 165.967 66.614 188.473 80.985 168.302L108.113 130.223C117.108 117.597 137.144 123.936 137.144 139.506V346C137.144 371.645 173.715 370.81 173.715 345.309V192C173.715 183.163 180.878 176 189.715 176H196.571C205.408 176 212.571 183.163 212.571 192V381C212.571 406.663 249.142 405.81 249.142 380.309V192C249.142 183.163 256.305 176 265.142 176H271.998C280.835 176 287.998 183.163 287.998 192V346.875C287.998 372.5470000000001 324.568 371.685 324.568 346.184V192C324.568 183.163 331.731 176 340.568 176H347.425C356.262 176 363.425 183.163 363.425 192V268.309C363.425 294.551 399.995 293.949 399.995 269V137.437z" />
-			<glyph glyph-name="hand-peace-outline" unicode="" horiz-adv-x="448" d=" M362.146 256.024C348.4360000000001 277.673 323.385 290.04 297.14 286.365V374C297.14 414.804 264.329 448 223.999 448C183.669 448 150.859 414.804 150.859 374L160 280L141.321 358.85C126.578 397.157 83.85 415.89 46.209 400.7920000000001C8.735 385.762 -9.571 343.0370000000001 5.008 305.15L60.765 160.223C30.208 135.267 16.771 102.414 36.032 68.005L90.885 -29.994C102.625 -50.97 124.73 -64 148.575 -64H354.277C385.021 -64 411.835 -42.56 418.832 -12.203L446.259 106.7960000000001A67.801 67.801 0 0 1 447.988 121.999L448 192C448 236.956 404.737 269.343 362.146 256.024zM399.987 122C399.987 120.512 399.8180000000001 119.023 399.485 117.577L372.058 -1.424C370.08 -10.006 362.768 -16 354.276 -16H148.575C142.089 -16 136.033 -12.379 132.77 -6.551L77.916 91.449C73.359 99.59 75.297 110.117 82.424 115.937L109.071 137.701A16 16 0 0 1 113.883 155.84L49.793 322.389C37.226 355.044 84.37 373.163 96.51 341.611L156.294 186.254A16 16 0 0 1 171.227 176H182.859C191.696 176 198.859 183.163 198.859 192V374C198.859 408.375 249.14 408.43 249.14 374V192C249.14 183.163 256.303 176 265.14 176H271.996C280.833 176 287.996 183.163 287.996 192V220C287.996 245.122 324.563 245.159 324.563 220V192C324.563 183.163 331.726 176 340.563 176H347.419C356.256 176 363.419 183.163 363.419 192C363.419 217.12 399.986 217.16 399.986 192V122z" />
-			<glyph glyph-name="hand-point-down-outline" unicode="" horiz-adv-x="448" d=" M188.8 -64C234.416 -64 272 -26.235 272 19.2V54.847A93.148 93.148 0 0 1 294.064 62.776C316.0700000000001 60.269 339.0420000000001 66.2789999999999 356.855 78.761C409.342 79.9 448 116.159 448 178.701V200C448 260.063 408 298.512 408 327.2V329.879C412.952 335.626 416 343.415 416 351.999V416C416 433.673 403.106 448 387.2 448H156.8C140.894 448 128 433.673 128 416V352C128 343.416 131.048 335.627 136 329.88V327.201C136 320.237 129.807 312.339 112.332 297.0180000000001L112.184 296.889L112.038 296.7580000000001C102.101 287.9020000000001 91.197 278.642 78.785 270.9070000000001C48.537 252.202 0 240.514 0 195.2C0 138.272 35.286 103.2 83.2 103.2C91.226 103.2 98.689 104.014 105.6 105.376V19.2C105.6 -25.899 143.701 -64 188.8 -64zM188.8 -16C170.1 -16 153.6 0.775 153.6 19.2V177.6C136.275 177.6 118.4 151.2000000000001 83.2 151.2000000000001C56.8 151.2000000000001 48 171.8250000000001 48 195.2000000000001C48 203.9940000000001 80.712 215.6450000000001 104.1 230.1260000000001C118.675 239.2000000000001 131.325 249.6500000000001 143.975 260.9250000000001C162.349 277.0340000000001 180.608 294.761 183.571 320.0000000000001H360.3230000000001C364.087 277.2100000000001 400 245.491 400 200V178.701C400 138.177 377.803 121.577 338.675 128.1C330.6740000000001 113.488 304.6960000000001 103.949 285.05 115.175C266.825 95.81 238.669 97.388 224 110.225V19.2C224 0.225 207.775 -16 188.8 -16zM328 384C328 397.255 338.745 408 352 408S376 397.255 376 384S365.255 360 352 360S328 370.745 328 384z" />
-			<glyph glyph-name="hand-point-left-outline" unicode="" horiz-adv-x="512" d=" M0 227.2C0 181.584 37.765 144 83.2 144H118.847A93.148 93.148 0 0 1 126.776 121.936C124.269 99.93 130.279 76.958 142.761 59.145C143.9 6.658 180.159 -32 242.701 -32H264C324.063 -32 362.512 8 391.2 8H393.879C399.626 3.048 407.415 0 415.999 0H479.999C497.672 0 511.999 12.894 511.999 28.8V259.2C511.999 275.106 497.672 288 479.999 288H415.999C407.415 288 399.626 284.952 393.879 280H391.2C384.236 280 376.338 286.193 361.017 303.668L360.888 303.8160000000001L360.757 303.962C351.901 313.899 342.641 324.803 334.906 337.215C316.202 367.463 304.514 416 259.2 416C202.272 416 167.2 380.714 167.2 332.8C167.2 324.774 168.014 317.3110000000001 169.376 310.4H83.2C38.101 310.4 0 272.299 0 227.2zM48 227.2C48 245.9 64.775 262.4 83.2 262.4H241.6C241.6 279.725 215.2 297.6 215.2 332.8C215.2 359.2 235.825 368 259.2000000000001 368C267.9940000000001 368 279.6450000000001 335.288 294.1260000000001 311.9C303.2000000000001 297.325 313.6500000000001 284.675 324.925 272.025C341.034 253.651 358.761 235.392 384 232.429V55.677C341.21 51.913 309.491 16 264 16H242.701C202.177 16 185.577 38.197 192.1 77.325C177.488 85.326 167.949 111.304 179.175 130.95C159.81 149.175 161.388 177.331 174.225 192H83.2C64.225 192 48 208.225 48 227.2zM448 88C461.255 88 472 77.255 472 64S461.255 40 448 40S424 50.745 424 64S434.745 88 448 88z" />
-			<glyph glyph-name="hand-point-right-outline" unicode="" horiz-adv-x="512" d=" M428.8 310.4H342.623A115.52 115.52 0 0 1 344.799 332.8C344.799 380.714 309.727 416 252.799 416C207.485 416 195.797 367.463 177.092 337.216C169.357 324.803 160.098 313.899 151.241 303.963L151.11 303.817L150.981 303.6690000000001C135.662 286.193 127.764 280 120.8 280H118.121C112.374 284.952 104.585 288 96.001 288H32C14.327 288 0 275.106 0 259.2V28.8C0 12.894 14.327 0 32 0H96C104.584 0 112.373 3.048 118.12 8H120.799C149.487 8 187.936 -32 247.999 -32H269.298C331.8400000000001 -32 368.098 6.658 369.238 59.145C381.7200000000001 76.958 387.729 99.93 385.223 121.936A93.148 93.148 0 0 1 393.152 144H428.8C474.235 144 512 181.584 512 227.2C512 272.299 473.899 310.4 428.8 310.4zM428.8 192H337.774C350.611 177.331 352.189 149.175 332.824 130.95C344.051 111.304 334.511 85.326 319.899 77.325C326.423 38.197 309.823 16 269.299 16H248C202.509 16 170.79 51.913 128 55.676V232.429C153.239 235.393 170.966 253.651 187.075 272.025C198.35 284.675 208.8 297.3250000000001 217.874 311.9C232.355 335.288 244.006 368 252.8 368C276.175 368 296.8 359.2 296.8 332.8C296.8 297.6 270.4000000000001 279.725 270.4000000000001 262.4H428.8000000000001C447.2250000000001 262.4 464.0000000000001 245.9 464.0000000000001 227.2C464.0000000000001 208.225 447.7750000000001 192 428.8000000000001 192zM88 64C88 50.745 77.255 40 64 40S40 50.745 40 64S50.745 88 64 88S88 77.255 88 64z" />
-			<glyph glyph-name="hand-point-up-outline" unicode="" horiz-adv-x="448" d=" M105.6 364.8V278.623A115.52 115.52 0 0 1 83.2 280.799C35.286 280.799 0 245.727 0 188.799C0 143.485 48.537 131.797 78.784 113.092C91.197 105.357 102.101 96.098 112.037 87.241L112.183 87.11L112.331 86.981C129.807 71.662 136 63.764 136 56.8V54.121C131.048 48.374 128 40.585 128 32.001V-31.999C128 -49.672 140.894 -63.999 156.8 -63.999H387.2000000000001C403.1060000000001 -63.999 416.0000000000001 -49.672 416.0000000000001 -31.999V32.001C416.0000000000001 40.585 412.9520000000001 48.374 408.0000000000001 54.121V56.8C408.0000000000001 85.488 448.0000000000001 123.937 448.0000000000001 184V205.299C448.0000000000001 267.841 409.3420000000001 304.099 356.8550000000001 305.2390000000001C339.0420000000001 317.721 316.0700000000001 323.73 294.0640000000001 321.224A93.148 93.148 0 0 1 272 329.153V364.8C272 410.235 234.416 448 188.8 448C143.701 448 105.6 409.899 105.6 364.8zM224 364.8V273.774C238.669 286.611 266.825 288.189 285.05 268.824C304.6960000000001 280.0510000000001 330.6740000000001 270.511 338.675 255.899C377.803 262.423 400 245.823 400 205.299V184C400 138.509 364.087 106.79 360.324 64H183.571C180.607 89.239 162.349 106.966 143.975 123.075C131.325 134.35 118.675 144.8 104.1 153.874C80.712 168.355 48 180.006 48 188.8C48 212.175 56.8 232.8 83.2 232.8C118.4 232.8 136.275 206.4 153.6 206.4V364.8C153.6 383.225 170.1 400 188.8 400C207.775 400 224 383.775 224 364.8zM352 24C365.255 24 376 13.255 376 0S365.255 -24 352 -24S328 -13.255 328 0S338.745 24 352 24z" />
-			<glyph glyph-name="hand-pointer-outline" unicode="" horiz-adv-x="448" d=" M358.182 268.639C338.689 293.4070000000001 305.5030000000001 300.584 278.31 287.737C263.183 303.4240000000001 242.128 310.2240000000001 221.715 307.366V381C221.715 417.944 191.979 448 155.429 448S89.143 417.944 89.143 381V219.871C69.234 227.281 45.871 224.965 27.06 210.999C-2.295 189.204 -8.733 147.6660000000001 12.51 117.847L122.209 -36.154C134.632 -53.59 154.741 -64 176 -64H354.286C385.088 -64 411.86 -42.5 418.843 -12.203L446.272 106.7960000000001A67.873 67.873 0 0 1 448 122V206C448 252.844 401.375 285.273 358.182 268.639zM80.985 168.303L108.111 130.224C117.106 117.598 137.142 123.937 137.142 139.507V381C137.142 406.12 173.713 406.16 173.713 381V206C173.713 197.164 180.876 190 189.713 190H196.57C205.407 190 212.57 197.164 212.57 206V241C212.57 266.12 249.141 266.16 249.141 241V206C249.141 197.164 256.304 190 265.141 190H272C280.837 190 288 197.164 288 206V227C288 252.12 324.5710000000001 252.16 324.5710000000001 227V206C324.5710000000001 197.164 331.7340000000001 190 340.5710000000001 190H347.4280000000001C356.2650000000001 190 363.4280000000001 197.164 363.4280000000001 206C363.4280000000001 231.121 399.999 231.16 399.999 206V122C399.999 120.512 399.8300000000001 119.023 399.497 117.577L372.067 -1.424C370.089 -10.006 362.777 -16 354.2850000000001 -16H176C170.231 -16 164.737 -13.122 161.303 -8.303L51.591 145.697C37.185 165.92 66.585 188.515 80.985 168.303zM176.143 48V144C176.143 152.837 182.411 160 190.143 160H196.143C203.875 160 210.143 152.837 210.143 144V48C210.143 39.163 203.875 32 196.143 32H190.143C182.41 32 176.143 39.163 176.143 48zM251.571 48V144C251.571 152.837 257.839 160 265.5710000000001 160H271.5710000000001C279.3030000000001 160 285.5710000000001 152.837 285.5710000000001 144V48C285.5710000000001 39.163 279.3030000000001 32 271.5710000000001 32H265.5710000000001C257.839 32 251.5710000000001 39.163 251.5710000000001 48zM327 48V144C327 152.837 333.268 160 341 160H347C354.7320000000001 160 361 152.837 361 144V48C361 39.163 354.7320000000001 32 347 32H341C333.268 32 327 39.163 327 48z" />
-			<glyph glyph-name="hand-rock-outline" unicode="" horiz-adv-x="512" d=" M408.864 368.948C386.463 402.846 342.756 411.221 310.051 392.536C280.577 424.005 230.906 423.629 201.717 392.558C154.557 419.578 93.007 387.503 91.046 331.752C44.846 342.593 0 307.999 0 260.5710000000001V203.618C0 170.877 14.28 139.664 39.18 117.984L136.89 32.903C141.142 29.201 140 27.33 140 -1e-13C140 -17.6730000000001 154.327 -32.0000000000001 172 -32.0000000000001H424C441.673 -32.0000000000001 456 -17.6730000000001 456 -1e-13C456 23.5129999999999 454.985 30.745 459.982 42.37L502.817 142.026C508.911 156.203 512 171.198 512 186.5939999999999V301.0370000000001C512 353.876 457.686 389.699 408.8640000000001 368.948zM464 186.594A64.505 64.505 0 0 0 458.718 160.981L415.8830000000001 61.326C410.653 49.155 408.0000000000001 36.286 408.0000000000001 23.076V16H188V26.286C188 42.656 180.86 58.263 168.41 69.103L70.7 154.183C56.274 166.745 48 184.764 48 203.619V260.572C48 293.78 100 294.1090000000001 100 259.895V218.667A16 16 0 0 1 105.493 206.6L112.493 200.505A16 16 0 0 1 139 212.571V329.1430000000001C139 362.24 191 362.868 191 328.466V301.7150000000001C191 292.879 198.164 285.7150000000001 207 285.7150000000001H214C222.836 285.7150000000001 230 292.879 230 301.7150000000001V342.858C230 375.992 282 376.533 282 342.181V301.7150000000001C282 292.879 289.163 285.7150000000001 298 285.7150000000001H305C313.837 285.7150000000001 321 292.879 321 301.7150000000001V329.144C321 362.174 373 362.924 373 328.467V301.716C373 292.88 380.163 285.716 389 285.716H396C404.837 285.716 412 292.88 412 301.716C412 334.862 464 335.329 464 301.039V186.5940000000001z" />
-			<glyph glyph-name="hand-scissors-outline" unicode="" horiz-adv-x="512" d=" M256 -32L326 -31.987C331.114 -31.987 336.231 -31.404 341.203 -30.258L460.202 -2.831C490.56 4.165 512 30.98 512 61.723V267.425C512 291.27 498.97 313.376 477.995 325.115L379.996 379.968C345.587 399.2290000000001 312.733 385.7920000000001 287.778 355.235L142.85 410.992C104.963 425.5710000000001 62.238 407.265 47.208 369.791C32.11 332.149 50.843 289.421 89.15 274.679L168 256L74 265.141C33.196 265.141 0 232.33 0 192.001C0 151.671 33.196 118.86 74 118.86H161.635C157.96 92.615 170.327 67.563 191.976 53.8539999999999C178.657 11.263 211.044 -32 256 -32zM256 16.013C230.84 16.013 230.88 52.58 256 52.58C264.837 52.58 272 59.743 272 68.58V75.436C272 84.273 264.837 91.436 256 91.436H228C202.841 91.436 202.878 128.003 228 128.003H256C264.837 128.003 272 135.166 272 144.003V150.859C272 159.696 264.837 166.859 256 166.859H74C39.57 166.859 39.625 217.14 74 217.14H256C264.837 217.14 272 224.303 272 233.14V244.772A16 16 0 0 1 261.746 259.705L106.389 319.49C74.837 331.63 92.957 378.773 125.611 366.207L292.16 302.116A16.001 16.001 0 0 1 310.299 306.928L332.063 333.5750000000001C337.883 340.702 348.411 342.639 356.551 338.0830000000001L454.551 283.2290000000001C460.379 279.966 464 273.911 464 267.424V61.723C464 53.232 458.006 45.919 449.424 43.941L330.423 16.514A19.743 19.743 0 0 0 326 16.012H256z" />
-			<glyph glyph-name="hand-spock-outline" unicode="" horiz-adv-x="512" d=" M21.096 66.21L150.188 -55.303A32 32 0 0 1 172.12 -64.001H409.7200000000001C423.8900000000001 -64.001 436.3730000000001 -54.682 440.4000000000001 -41.097L472.215 66.216A115.955 115.955 0 0 1 477 99.189V136.028C477 140.079 477.476 144.132 478.414 148.073L510.144 281.4830000000001C520.243 323.8950000000001 487.828 364.221 444.6 364.0080000000001C440.456 388.8640000000001 422.057 411.1730000000001 394.75 418.0000000000001C358.947 426.9520000000001 322.523 405.3450000000001 313.5 369.25L296.599 264L274.924 395.99C266.638 432.06 230.621 454.562 194.62 446.286C165.004 439.4820000000001 144.482 413.897 142.738 384.991C100.101 384.16 69.283 344.428 78.667 303.147L109.707 166.639C82.513 189.154 42.423 186.631 18.225 160.917C-7.151 133.956 -5.873 91.592 21.096 66.21zM53.164 128.021L53.166 128.0219999999999C60.385 135.694 72.407 136.002 80.022 128.8349999999999L133.034 78.9409999999999C143.225 69.351 160 76.6 160 90.594V160.073C160 161.266 159.866 162.456 159.603 163.619L125.473 313.791C119.877 338.408 156.975 346.651 162.527 322.212L192.926 188.4549999999999A16 16 0 0 1 208.529 176.0009999999999H217.1330000000001C227.4090000000001 176.0009999999999 235.0270000000001 185.5679999999999 232.7270000000001 195.5839999999999L191.107 376.7369999999999C185.484 401.2059999999999 222.497 409.813 228.142 385.2449999999999L273.362 188.4169999999999A16 16 0 0 1 288.956 176H302.173A16 16 0 0 1 317.695 188.119L360.067 357.6090000000001C366.171 382.0310000000001 403.029 372.7680000000001 396.932 348.3920000000001L358.805 195.88C356.284 185.792 363.92 176 374.327 176H384.021A16 16 0 0 1 399.586 188.295L426.509 301.4C432.3300000000001 325.848 469.306 317.087 463.475 292.598L431.7200000000001 159.19A100.094 100.094 0 0 1 429 136.028V99.189C429 92.641 428.057 86.138 426.195 79.8610000000001L397.775 -16H178.465L53.978 101.164C46.349 108.344 45.984 120.393 53.164 128.021z" />
-			<glyph glyph-name="handshake-outline" unicode="" horiz-adv-x="640" d=" M616 352H568C560.893 352 554.51 348.909 550.116 344H526.59L495.46 380.3L495.3 380.48A103.974 103.974 0 0 1 417.03 416H370.48C352.73 416 335.58 411.06 320.79 401.99C304.33 411.07 285.67 416 266.62 416H234.51C205.607 416 176.911 404.781 155.31 383.2L116.12 344H89.884C85.49 348.909 79.107 352 72 352H24C10.745 352 0 341.255 0 328V88C0 74.745 10.745 64 24 64H72C82.449 64 91.334 70.68 94.629 80H113.43L188.78 12.43C214.322 -14.02 248.705 -32 285.36 -32C301.75 -32 317.64 -28.15 331.4600000000001 -21.07C356.396 -21.566 382.5610000000001 -10.702 400.5300000000001 10.34C420.2140000000001 15.919 438.033 27.766 451.25 44.9400000000001C472.239 49.3410000000001 491.978 61.4320000000001 504.67 80.0000000000001H545.371C548.6659999999999 70.6800000000001 557.5509999999999 64.0000000000001 568 64.0000000000001H616C629.255 64.0000000000001 640 74.7450000000001 640 88.0000000000001V328C640 341.255 629.255 352 616 352zM48 96C39.163 96 32 103.163 32 112S39.163 128 48 128S64 120.837 64 112S56.837 96 48 96zM460.52 101.76C445.17 87.465 423.636 90.432 420.57 93.76C421.984 80.378 402.313 52.717 371.49 54.88C365.949 36.357 343.272 21.054 320 29.13C311.11 20.24 297.54 16 285.36 16C260.4100000000001 16 237.59 30.54 222.22 46.91L140.92 119.8200000000001A31.975999999999996 31.975999999999996 0 0 1 119.56 128.0000000000001H96V296H122.75C131.23 296 139.37 299.37 145.37 305.37L189.25 349.25A64.004 64.004 0 0 0 234.51 368H266.62C272.42 368 278.13 367.21 283.62 365.7L240.35 315.2100000000001C216.79 287.73 216.51 247.59 239.69 219.77C272.078 180.904 331.068 180.542 364.17 217.79L390.1500000000001 247.87L462.59 152C476.03 137.4 473.54 113.87 460.52 101.76zM544 128H519.542C519.6460000000001 148.261 512.743 167.33 499.78 182.4L421.7 285.7200000000001C426.21 295.23 424.04 306.95 415.69 314.17C405.615 322.861 390.46 321.669 381.83 311.69L328.2 249.57C314.372 234.16 289.977 234.425 276.56 250.5A25.856999999999996 25.856999999999996 0 0 0 276.79 283.9700000000001L334.7100000000001 351.55A47.09 47.09 0 0 0 370.48 368H417.0300000000001C433.1400000000001 368 448.4700000000001 361.06 459.1 348.9600000000001L504.52 296H544V128zM592 96C583.163 96 576 103.163 576 112S583.163 128 592 128S608 120.837 608 112S600.837 96 592 96z" />
-			<glyph glyph-name="hdd-outline" unicode="" horiz-adv-x="576" d=" M567.403 212.358L462.323 363.411A48 48 0 0 1 422.919 384H153.081A48 48 0 0 1 113.677 363.411L8.597 212.358A48.001 48.001 0 0 1 0 184.946V48C0 21.49 21.49 0 48 0H528C554.51 0 576 21.49 576 48V184.946C576 194.747 573 204.312 567.403 212.358zM153.081 336H422.919L500.832 224H75.168L153.081 336zM528 48H48V176H528V48zM496 112C496 94.327 481.673 80 464 80S432 94.327 432 112S446.327 144 464 144S496 129.673 496 112zM400 112C400 94.327 385.673 80 368 80S336 94.327 336 112S350.327 144 368 144S400 129.673 400 112z" />
-			<glyph glyph-name="heart-outline" unicode="" horiz-adv-x="576" d=" M257.3 -27.4L92.5 134.4C85.4 141 24 199.9 24 273.2C24 363.9 80.8 424 176 424C217.4 424 256.6 401.2 288 374.2C319.3 401.2 358.6 424 400 424C491.7 424 552 367.5 552 273.2C552 221.2 520.2 169.7 483.9 134.5L483.5 134.1L318.7 -27.4A43.7 43.7 0 0 0 257.3 -27.4zM125.9 168.9L288 9.7L449.8 168.4C477.1 195.4 504 234.7 504 273.2C504 340.1 465.8 376 400 376C352.8 376 307.2 326.7 288 307.6C271 324.6 224 376 176 376C110.1 376 72 340.1 72 273.2C72 235.9 98.7 194.3 125.9 168.9z" />
-			<glyph glyph-name="hospital-outline" unicode="" horiz-adv-x="448" d=" M128 204V244C128 250.627 133.373 256 140 256H180C186.627 256 192 250.627 192 244V204C192 197.373 186.627 192 180 192H140C133.373 192 128 197.373 128 204zM268 192H308C314.627 192 320 197.373 320 204V244C320 250.627 314.627 256 308 256H268C261.373 256 256 250.627 256 244V204C256 197.373 261.373 192 268 192zM192 108V148C192 154.627 186.627 160 180 160H140C133.373 160 128 154.627 128 148V108C128 101.373 133.373 96 140 96H180C186.627 96 192 101.373 192 108zM268 96H308C314.627 96 320 101.373 320 108V148C320 154.627 314.627 160 308 160H268C261.373 160 256 154.627 256 148V108C256 101.373 261.373 96 268 96zM448 -28V-64H0V-28C0 -21.373 5.373 -16 12 -16H31.5V362.9650000000001C31.5 374.582 42.245 384 55.5 384H144V424C144 437.255 154.745 448 168 448H280C293.255 448 304 437.255 304 424V384H392.5C405.755 384 416.5 374.582 416.5 362.9650000000001V-16H436C442.627 -16 448 -21.373 448 -28zM79.5 -15H192V52C192 58.627 197.373 64 204 64H244C250.627 64 256 58.627 256 52V-15H368.5V336H304V312C304 298.745 293.255 288 280 288H168C154.745 288 144 298.745 144 312V336H79.5V-15zM266 384H240V410A6 6 0 0 1 234 416H214A6 6 0 0 1 208 410V384H182A6 6 0 0 1 176 378V358A6 6 0 0 1 182 352H208V326A6 6 0 0 1 214 320H234A6 6 0 0 1 240 326V352H266A6 6 0 0 1 272 358V378A6 6 0 0 1 266 384z" />
-			<glyph glyph-name="hourglass-outline" unicode="" horiz-adv-x="384" d=" M368 400H372C378.627 400 384 405.373 384 412V436C384 442.627 378.627 448 372 448H12C5.373 448 0 442.627 0 436V412C0 405.373 5.373 400 12 400H16C16 319.4360000000001 48.188 234.193 113.18 192C47.899 149.619 16 64.1 16 -16H12C5.373 -16 0 -21.373 0 -28V-52C0 -58.627 5.373 -64 12 -64H372C378.627 -64 384 -58.627 384 -52V-28C384 -21.373 378.627 -16 372 -16H368C368 64.564 335.812 149.807 270.82 192C336.102 234.381 368 319.9 368 400zM64 400H320C320 298.38 262.693 216 192 216S64 298.379 64 400zM320 -16H64C64 85.62 121.308 168 192 168S320 85.62 320 -16z" />
-			<glyph glyph-name="id-badge-outline" unicode="" horiz-adv-x="384" d=" M0 400V-16C0 -42.51 21.49 -64 48 -64H336C362.51 -64 384 -42.51 384 -16V400C384 426.51 362.51 448 336 448H48C21.49 448 0 426.51 0 400zM336 368V-10A6 6 0 0 0 330 -16H54A6 6 0 0 0 48 -10V368H336zM192 288C230.66 288 262 256.66 262 218S230.66 148 192 148S122 179.34 122 218S153.34 288 192 288zM272.187 141.953L240.987 149.753C208.208 126.176 168.477 131.437 143.013 149.753L111.813 141.953C93.116 137.279 80 120.48 80 101.207V85C80 73.402 89.402 64 101 64H283C294.598 64 304 73.402 304 85V101.207C304 120.48 290.884 137.279 272.187 141.953z" />
-			<glyph glyph-name="id-card-outline" unicode="" horiz-adv-x="512" d=" M404 192H300C293.373 192 288 197.373 288 204V220C288 226.627 293.373 232 300 232H404C410.627 232 416 226.627 416 220V204C416 197.373 410.627 192 404 192zM416 132V148C416 154.627 410.627 160 404 160H300C293.373 160 288 154.627 288 148V132C288 125.373 293.373 120 300 120H404C410.627 120 416 125.373 416 132zM512 336V48C512 21.49 490.51 0 464 0H48C21.49 0 0 21.49 0 48V336C0 362.51 21.49 384 48 384H464C490.51 384 512 362.51 512 336zM464 54V304H48V54A6 6 0 0 1 54 48H458A6 6 0 0 1 464 54zM176 256C203.614 256 226 233.614 226 206S203.614 156 176 156S126 178.386 126 206S148.386 256 176 256zM233.276 151.681L210.991 157.252C187.578 140.411 159.198 144.169 141.01 157.252L118.725 151.681C105.369 148.342 96 136.343 96 122.577V111C96 102.716 102.716 96 111 96H241C249.284 96 256 102.716 256 111V122.577C256 136.343 246.631 148.342 233.276 151.681z" />
-			<glyph glyph-name="image-outline" unicode="" horiz-adv-x="512" d=" M464 384H48C21.49 384 0 362.51 0 336V48C0 21.49 21.49 0 48 0H464C490.51 0 512 21.49 512 48V336C512 362.51 490.51 384 464 384zM458 48H54A6 6 0 0 0 48 54V330A6 6 0 0 0 54 336H458A6 6 0 0 0 464 330V54A6 6 0 0 0 458 48zM128 296C105.909 296 88 278.091 88 256S105.909 216 128 216S168 233.909 168 256S150.091 296 128 296zM96 96H416V176L328.485 263.515C323.7990000000001 268.201 316.201 268.201 311.514 263.515L192 144L152.485 183.515C147.799 188.201 140.201 188.201 135.514 183.515L96 144V96z" />
-			<glyph glyph-name="images-outline" unicode="" horiz-adv-x="576" d=" M480 32V16C480 -10.51 458.51 -32 432 -32H48C21.49 -32 0 -10.51 0 16V272C0 298.51 21.49 320 48 320H64V272H54A6 6 0 0 1 48 266V22A6 6 0 0 1 54 16H426A6 6 0 0 1 432 22V32H480zM522 368H150A6 6 0 0 1 144 362V118A6 6 0 0 1 150 112H522A6 6 0 0 1 528 118V362A6 6 0 0 1 522 368zM528 416C554.51 416 576 394.51 576 368V112C576 85.49 554.51 64 528 64H144C117.49 64 96 85.49 96 112V368C96 394.51 117.49 416 144 416H528zM264 304C264 281.909 246.091 264 224 264S184 281.909 184 304S201.909 344 224 344S264 326.091 264 304zM192 208L231.515 247.515C236.201 252.201 243.799 252.201 248.486 247.515L288 208L391.515 311.515C396.201 316.201 403.799 316.201 408.486 311.515L480 240V160H192V208z" />
-			<glyph glyph-name="keyboard-outline" unicode="" horiz-adv-x="576" d=" M528 384H48C21.49 384 0 362.51 0 336V48C0 21.49 21.49 0 48 0H528C554.51 0 576 21.49 576 48V336C576 362.51 554.51 384 528 384zM536 48C536 43.589 532.411 40 528 40H48C43.589 40 40 43.589 40 48V336C40 340.411 43.589 344 48 344H528C532.411 344 536 340.411 536 336V48zM170 178V206C170 212.627 164.627 218 158 218H130C123.373 218 118 212.627 118 206V178C118 171.373 123.373 166 130 166H158C164.627 166 170 171.373 170 178zM266 178V206C266 212.627 260.627 218 254 218H226C219.373 218 214 212.627 214 206V178C214 171.373 219.373 166 226 166H254C260.627 166 266 171.373 266 178zM362 178V206C362 212.627 356.627 218 350 218H322C315.373 218 310 212.627 310 206V178C310 171.373 315.373 166 322 166H350C356.627 166 362 171.373 362 178zM458 178V206C458 212.627 452.627 218 446 218H418C411.373 218 406 212.627 406 206V178C406 171.373 411.373 166 418 166H446C452.627 166 458 171.373 458 178zM122 96V124C122 130.627 116.627 136 110 136H82C75.373 136 70 130.627 70 124V96C70 89.373 75.373 84 82 84H110C116.627 84 122 89.373 122 96zM506 96V124C506 130.627 500.627 136 494 136H466C459.373 136 454 130.627 454 124V96C454 89.373 459.373 84 466 84H494C500.627 84 506 89.373 506 96zM122 260V288C122 294.627 116.627 300 110 300H82C75.373 300 70 294.627 70 288V260C70 253.373 75.373 248 82 248H110C116.627 248 122 253.373 122 260zM218 260V288C218 294.627 212.627 300 206 300H178C171.373 300 166 294.627 166 288V260C166 253.373 171.373 248 178 248H206C212.627 248 218 253.373 218 260zM314 260V288C314 294.627 308.627 300 302 300H274C267.373 300 262 294.627 262 288V260C262 253.373 267.373 248 274 248H302C308.627 248 314 253.373 314 260zM410 260V288C410 294.627 404.627 300 398 300H370C363.373 300 358 294.627 358 288V260C358 253.373 363.373 248 370 248H398C404.627 248 410 253.373 410 260zM506 260V288C506 294.627 500.627 300 494 300H466C459.373 300 454 294.627 454 288V260C454 253.373 459.373 248 466 248H494C500.627 248 506 253.373 506 260zM408 102V118C408 124.627 402.627 130 396 130H180C173.373 130 168 124.627 168 118V102C168 95.373 173.373 90 180 90H396C402.627 90 408 95.373 408 102z" />
-			<glyph glyph-name="lemon-outline" unicode="" horiz-adv-x="512" d=" M484.112 420.111C455.989 448.233 416.108 456.057 387.0590000000001 439.135C347.604 416.152 223.504 489.111 91.196 356.803C-41.277 224.328 31.923 100.528 8.866 60.942C-8.056 31.891 -0.234 -7.99 27.888 -36.112C56.023 -64.247 95.899 -72.0499999999999 124.945 -55.133C164.368 -32.163 288.502 -105.102 420.803 27.196C553.277 159.673 480.076 283.473 503.134 323.057C520.056 352.1070000000001 512.234 391.988 484.112 420.111zM461.707 347.217C422.907 280.608 507.307 181.582 386.862 61.137C266.422 -59.306 167.387 25.089 100.786 -13.706C78.1069999999999 -26.913 36.751 13.535 50.2929999999999 36.782C89.0929999999999 103.391 4.6929999999999 202.417 125.138 322.862C245.573 443.298 344.616 358.914 411.219 397.708C433.949 410.948 475.224 370.42 461.707 347.217zM291.846 338.481C293.216 327.521 285.442 317.524 274.481 316.154C219.635 309.299 138.702 228.367 131.846 173.519C130.473 162.53 120.447 154.785 109.52 156.154C98.559 157.524 90.785 167.52 92.155 178.48C101.317 251.766 196.322 346.6950000000001 269.5200000000001 355.8450000000001C280.473 357.213 290.4760000000001 349.442 291.8460000000001 338.481z" />
-			<glyph glyph-name="life-ring-outline" unicode="" horiz-adv-x="512" d=" M256 -56C392.967 -56 504 55.033 504 192S392.967 440 256 440S8 328.967 8 192S119.033 -56 256 -56zM152.602 20.72L206.013 74.131C237.819 60.625 274.141 60.609 305.987 74.131L359.398 20.72C296.1810000000001 -17.599 215.819 -17.599 152.602 20.72zM336 192C336 147.888 300.112 112 256 112S176 147.888 176 192S211.888 272 256 272S336 236.112 336 192zM427.28 88.602L373.869 142.013C387.374 173.819 387.391 210.141 373.869 241.987L427.28 295.398C465.599 232.181 465.599 151.819 427.28 88.602zM359.397 363.28L305.986 309.8690000000001C274.18 323.374 237.858 323.391 206.013 309.8690000000001L152.602 363.28C215.819 401.599 296.1810000000001 401.599 359.397 363.28zM84.72 295.398L138.131 241.987C124.625 210.181 124.609 173.859 138.131 142.013L84.72 88.602C46.401 151.819 46.401 232.181 84.72 295.398z" />
-			<glyph glyph-name="lightbulb-outline" unicode="" horiz-adv-x="384" d=" M272 20V-8C272 -18.449 265.32 -27.334 256 -30.629V-40C256 -53.255 245.255 -64 232 -64H152C138.745 -64 128 -53.255 128 -40V-30.629C118.68 -27.334 112 -18.449 112 -8V20C112 26.627 117.373 32 124 32H260C266.627 32 272 26.627 272 20zM128 272C128 307.29 156.71 336 192 336C200.837 336 208 343.164 208 352S200.837 368 192 368C139.065 368 96 324.935 96 272C96 263.164 103.164 256 112 256S128 263.164 128 272zM192 400C262.734 400 320 342.746 320 272C320 194.398 282.617 211.523 239.02 112H144.98C101.318 211.67 64 194.131 64 272C64 342.735 121.254 400 192 400M192 448C94.805 448 16 369.197 16 272C16 170.269 67.697 180.459 106.516 79.326C110.066 70.077 118.986 64 128.892 64H255.107C265.013 64 273.933 70.078 277.483 79.326C316.303 180.459 368 170.269 368 272C368 369.197 289.195 448 192 448z" />
-			<glyph glyph-name="list-alt-outline" unicode="" horiz-adv-x="512" d=" M464 416H48C21.49 416 0 394.51 0 368V16C0 -10.51 21.49 -32 48 -32H464C490.51 -32 512 -10.51 512 16V368C512 394.51 490.51 416 464 416zM458 16H54A6 6 0 0 0 48 22V362A6 6 0 0 0 54 368H458A6 6 0 0 0 464 362V22A6 6 0 0 0 458 16zM416 108V84C416 77.373 410.627 72 404 72H204C197.373 72 192 77.373 192 84V108C192 114.627 197.373 120 204 120H404C410.627 120 416 114.627 416 108zM416 204V180C416 173.373 410.627 168 404 168H204C197.373 168 192 173.373 192 180V204C192 210.627 197.373 216 204 216H404C410.627 216 416 210.627 416 204zM416 300V276C416 269.373 410.627 264 404 264H204C197.373 264 192 269.373 192 276V300C192 306.627 197.373 312 204 312H404C410.627 312 416 306.627 416 300zM164 288C164 268.118 147.882 252 128 252S92 268.118 92 288S108.118 324 128 324S164 307.882 164 288zM164 192C164 172.118 147.882 156 128 156S92 172.118 92 192S108.118 228 128 228S164 211.882 164 192zM164 96C164 76.118 147.882 60 128 60S92 76.118 92 96S108.118 132 128 132S164 115.882 164 96z" />
-			<glyph glyph-name="map-outline" unicode="" horiz-adv-x="576" d=" M508.505 411.83L381.517 355.424L207.179 413.537A47.992 47.992 0 0 1 172.505 411.863L28.505 347.863A48 48 0 0 1 0 304V16.033C0 -18.905 35.991 -41.831 67.495 -27.83L194.483 28.576L368.822 -29.537A47.992 47.992 0 0 1 403.496 -27.863L547.496 36.137A48 48 0 0 1 576 80V367.967C576 402.905 540.009 425.831 508.505 411.83zM360 24L216 72V360L360 312V24zM48 16V304L168 357.333V69.333L48 16zM528 80L408 26.667V314.6670000000001L528 368V80z" />
-			<glyph glyph-name="meh-outline" unicode="" horiz-adv-x="512" d=" M256 392C366.532 392 456 302.549 456 192C456 81.468 366.549 -8 256 -8C145.468 -8 56 81.451 56 192C56 302.532 145.451 392 256 392M256 440C119.033 440 8 328.967 8 192S119.033 -56 256 -56S504 55.033 504 192S392.967 440 256 440zM320 304C310.465 304 301.488 301.6140000000001 293.63 297.411H293.647C306.382 297.411 316.706 287.087 316.706 274.352C316.706 261.617 306.382 251.293 293.647 251.293S270.588 261.617 270.588 274.352V274.3690000000001C266.386 266.512 264 257.535 264 248C264 217.072 289.072 192 320 192S376 217.072 376 248S350.928 304 320 304zM192 304C182.465 304 173.488 301.6140000000001 165.63 297.411H165.647C178.382 297.411 188.706 287.087 188.706 274.352C188.706 261.617 178.382 251.293 165.647 251.293C152.912 251.293 142.588 261.617 142.588 274.352V274.3690000000001C138.386 266.512 136 257.535 136 248C136 217.072 161.072 192 192 192S248 217.072 248 248S222.928 304 192 304zM328 120H184C152.224 120 152.251 72 184 72H328C359.776 72 359.749 120 328 120z" />
-			<glyph glyph-name="minus-square-outline" unicode="" horiz-adv-x="448" d=" M108 164C101.4 164 96 169.4 96 176V208C96 214.6 101.4 220 108 220H340C346.6 220 352 214.6 352 208V176C352 169.4 346.6 164 340 164H108zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM400 22V362C400 365.3 397.3 368 394 368H54C50.7 368 48 365.3 48 362V22C48 18.7 50.7 16 54 16H394C397.3 16 400 18.7 400 22z" />
-			<glyph glyph-name="money-bill-alt-outline" unicode="" horiz-adv-x="640" d=" M320 304C266.979 304 224 253.857 224 192C224 130.153 266.977 80 320 80C373 80 416 130.13 416 192C416 253.857 373.021 304 320 304zM368 139.572C368 132.095 364.0830000000001 128 356.428 128H289.135C281.479 128 277.562 132.095 277.562 139.572V148.473C277.562 155.95 281.479 160.045 289.135 160.045H304.266V199.923C304.266 205.086 304.8 210.426 304.8 210.426H304.444S302.665 207.756 301.596 206.688C297.1449999999999 202.415 291.092 202.237 285.93 207.756L280.412 213.987C275.07 219.328 275.428 225.203 280.946 230.366L302.666 250.305C307.115 254.4 311.032 256.002 317.086 256.002H329.191C336.847 256.002 340.941 252.086 340.941 244.43V160.046H356.429C364.084 160.046 368.001 155.952 368.001 148.474V139.572zM616 384H24C10.745 384 0 373.255 0 360V25C0 11.745 10.745 1 24 1H616C629.255 1 640 11.745 640 25V360C640 373.255 629.255 384 616 384zM512 48H128C128 92.183 92.183 128 48 128V256C92.183 256 128 291.817 128 336H512C512 291.817 547.817 256 592 256V128C547.817 128 512 92.183 512 48z" />
-			<glyph glyph-name="moon-outline" unicode="" horiz-adv-x="512" d=" M279.135 -64C357.891 -64 430.117 -28.196 477.979 30.775C506.249 65.606 475.421 116.497 431.73 108.176C349.382 92.493 273.458 155.444 273.458 238.968C273.458 287.392 299.518 331.26 340.892 354.804C379.637 376.854 369.891 435.592 325.87 443.723A257.936 257.936 0 0 1 279.135 448C137.775 448 23.135 333.425 23.135 192C23.135 50.64 137.711 -64 279.135 -64zM279.135 400C292.12 400 304.824 398.799 317.151 396.522C262.391 365.359 225.4580000000001 306.48 225.4580000000001 238.968C225.4580000000001 125.12 329.0990000000001 39.768 440.7100000000001 61.024C402.574 14.036 344.366 -16 279.135 -16C164.26 -16 71.135 77.125 71.135 192S164.26 400 279.135 400z" />
-			<glyph glyph-name="newspaper-outline" unicode="" horiz-adv-x="576" d=" M552 384H112C91.142 384 73.357 370.623 66.752 352H24C10.745 352 0 341.255 0 328V56C0 25.072 25.072 0 56 0H552C565.255 0 576 10.745 576 24V360C576 373.255 565.255 384 552 384zM48 56V304H64V56C64 51.589 60.411 48 56 48S48 51.589 48 56zM528 48H111.422C111.796 50.614 112 53.283 112 56V336H528V48zM172 168H308C314.627 168 320 173.373 320 180V276C320 282.627 314.627 288 308 288H172C165.373 288 160 282.627 160 276V180C160 173.373 165.373 168 172 168zM200 248H280V208H200V248zM160 108V132C160 138.627 165.373 144 172 144H308C314.627 144 320 138.627 320 132V108C320 101.373 314.627 96 308 96H172C165.373 96 160 101.373 160 108zM352 108V132C352 138.627 357.373 144 364 144H468C474.627 144 480 138.627 480 132V108C480 101.373 474.627 96 468 96H364C357.373 96 352 101.373 352 108zM352 252V276C352 282.627 357.373 288 364 288H468C474.627 288 480 282.627 480 276V252C480 245.373 474.627 240 468 240H364C357.373 240 352 245.373 352 252zM352 180V204C352 210.627 357.373 216 364 216H468C474.627 216 480 210.627 480 204V180C480 173.373 474.627 168 468 168H364C357.373 168 352 173.373 352 180z" />
-			<glyph glyph-name="object-group-outline" unicode="" horiz-adv-x="512" d=" M500 320C506.627 320 512 325.373 512 332V404C512 410.627 506.627 416 500 416H428C421.373 416 416 410.627 416 404V392H96V404C96 410.627 90.627 416 84 416H12C5.373 416 0 410.627 0 404V332C0 325.373 5.373 320 12 320H24V64H12C5.373 64 0 58.627 0 52V-20C0 -26.627 5.373 -32 12 -32H84C90.627 -32 96 -26.627 96 -20V-8H416V-20C416 -26.627 421.373 -32 428 -32H500C506.627 -32 512 -26.627 512 -20V52C512 58.627 506.627 64 500 64H488V320H500zM448 384H480V352H448V384zM32 384H64V352H32V384zM64 0H32V32H64V0zM480 0H448V32H480V0zM440 64H428C421.373 64 416 58.627 416 52V40H96V52C96 58.627 90.627 64 84 64H72V320H84C90.627 320 96 325.373 96 332V344H416V332C416 325.373 421.373 320 428 320H440V64zM404 256H320V308C320 314.628 314.627 320 308 320H108C101.373 320 96 314.628 96 308V140C96 133.372 101.373 128 108 128H192V76C192 69.372 197.373 64 204 64H404C410.627 64 416 69.372 416 76V244C416 250.628 410.627 256 404 256zM136 280H280V168H136V280zM376 104H232V128H308C314.627 128 320 133.372 320 140V216H376V104z" />
-			<glyph glyph-name="object-ungroup-outline" unicode="" horiz-adv-x="576" d=" M564 224C570.627 224 576 229.373 576 236V308C576 314.627 570.627 320 564 320H492C485.373 320 480 314.627 480 308V296H392V320H404C410.627 320 416 325.373 416 332V404C416 410.627 410.627 416 404 416H332C325.373 416 320 410.627 320 404V392H96V404C96 410.627 90.627 416 84 416H12C5.373 416 0 410.627 0 404V332C0 325.373 5.373 320 12 320H24V160H12C5.373 160 0 154.627 0 148V76C0 69.373 5.373 64 12 64H84C90.627 64 96 69.373 96 76V88H184V64H172C165.373 64 160 58.627 160 52V-20C160 -26.627 165.373 -32 172 -32H244C250.627 -32 256 -26.627 256 -20V-8H480V-20C480 -26.627 485.373 -32 492 -32H564C570.627 -32 576 -26.627 576 -20V52C576 58.627 570.627 64 564 64H552V224H564zM352 384H384V352H352V384zM352 128H384V96H352V128zM64 96H32V128H64V96zM64 352H32V384H64V352zM96 136V148C96 154.627 90.627 160 84 160H72V320H84C90.627 320 96 325.373 96 332V344H320V332C320 325.373 325.373 320 332 320H344V160H332C325.373 160 320 154.627 320 148V136H96zM224 0H192V32H224V0zM504 64H492C485.373 64 480 58.627 480 52V40H256V52C256 58.627 250.627 64 244 64H232V88H320V76C320 69.373 325.373 64 332 64H404C410.627 64 416 69.373 416 76V148C416 154.627 410.627 160 404 160H392V248H480V236C480 229.373 485.373 224 492 224H504V64zM544 0H512V32H544V0zM544 256H512V288H544V256z" />
-			<glyph glyph-name="paper-plane-outline" unicode="" horiz-adv-x="512" d=" M440 441.5L24 201.6C-10.4 181.7 -7.1 130.8 29.7 115.7L144 68.4V-16C144 -62.4 203.2 -81.5 230.6 -44.6L274.4 14.5L386.3 -31.7C392.2 -34.1 398.4 -35.3 404.6 -35.3C412.8 -35.3 420.9 -33.2 428.2 -29.1C441 -21.9 449.8 -9.1 452.1 5.4L511.4999999999999 392.6C517.5999999999999 432.7 474.6 461.4 440 441.5zM192 -16V48.6L228.6 33.5L192 -16zM404.6 12.7L250.8 76.2L391 278.5C401.7 294 381.5 312 367.3 299.7L155.8 115.4L48 160L464 400L404.6 12.7z" />
-			<glyph glyph-name="pause-circle-outline" unicode="" horiz-adv-x="512" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM256 -8C145.5 -8 56 81.5 56 192S145.5 392 256 392S456 302.5 456 192S366.5 -8 256 -8zM352 272V112C352 103.2 344.8 96 336 96H288C279.2 96 272 103.2 272 112V272C272 280.8 279.2 288 288 288H336C344.8 288 352 280.8 352 272zM240 272V112C240 103.2 232.8 96 224 96H176C167.2 96 160 103.2 160 112V272C160 280.8 167.2 288 176 288H224C232.8 288 240 280.8 240 272z" />
-			<glyph glyph-name="play-circle-outline" unicode="" horiz-adv-x="512" d=" M371.7 210L195.7 317C179.9 325.8 160 314.5 160 296V88C160 69.6 179.8 58.2 195.7 67L371.7 168C388.1 177.1 388.1 200.8 371.7 210zM504 192C504 329 393 440 256 440S8 329 8 192S119 -56 256 -56S504 55 504 192zM56 192C56 302.5 145.5 392 256 392S456 302.5 456 192S366.5 -8 256 -8S56 81.5 56 192z" />
-			<glyph glyph-name="plus-square-outline" unicode="" horiz-adv-x="448" d=" M352 208V176C352 169.4 346.6 164 340 164H252V76C252 69.4 246.6 64 240 64H208C201.4 64 196 69.4 196 76V164H108C101.4 164 96 169.4 96 176V208C96 214.6 101.4 220 108 220H196V308C196 314.6 201.4 320 208 320H240C246.6 320 252 314.6 252 308V220H340C346.6 220 352 214.6 352 208zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM400 22V362C400 365.3 397.3 368 394 368H54C50.7 368 48 365.3 48 362V22C48 18.7 50.7 16 54 16H394C397.3 16 400 18.7 400 22z" />
-			<glyph glyph-name="question-circle-outline" unicode="" horiz-adv-x="512" d=" M256 440C119.043 440 8 328.9170000000001 8 192C8 55.003 119.043 -56 256 -56S504 55.003 504 192C504 328.9170000000001 392.957 440 256 440zM256 -8C145.468 -8 56 81.431 56 192C56 302.495 145.472 392 256 392C366.491 392 456 302.529 456 192C456 81.47 366.569 -8 256 -8zM363.2440000000001 247.2C363.2440000000001 180.148 290.8230000000001 179.116 290.8230000000001 154.337V148C290.8230000000001 141.373 285.4500000000001 136 278.8230000000001 136H233.1760000000001C226.5490000000001 136 221.1760000000001 141.373 221.1760000000001 148V156.659C221.1760000000001 192.404 248.2760000000001 206.693 268.7550000000001 218.175C286.3160000000001 228.02 297.0790000000001 234.716 297.0790000000001 247.754C297.0790000000001 265 275.0800000000001 276.447 257.2950000000001 276.447C234.1060000000001 276.447 223.4010000000001 265.4700000000001 208.3530000000001 246.478C204.2960000000001 241.358 196.8930000000001 240.407 191.6870000000001 244.354L163.8630000000001 265.452C158.7560000000001 269.324 157.6120000000001 276.5180000000001 161.2190000000001 281.815C184.846 316.509 214.94 336 261.794 336C310.865 336 363.244 297.6960000000001 363.244 247.2zM298 80C298 56.841 279.159 38 256 38S214 56.841 214 80S232.841 122 256 122S298 103.159 298 80z" />
-			<glyph glyph-name="registered-outline" unicode="" horiz-adv-x="512" d=" M256 440C119.033 440 8 328.967 8 192S119.033 -56 256 -56S504 55.033 504 192S392.967 440 256 440zM256 -8C145.468 -8 56 81.451 56 192C56 302.531 145.451 392 256 392C366.532 392 456 302.549 456 192C456 81.468 366.549 -8 256 -8zM366.442 73.791C313.396 170.075 316.192 165.259 313.171 169.876C337.438 183.755 352.653 211.439 352.653 243.052C352.653 295.555 322.406 328.304 251.1550000000001 328.304H172.488C165.8710000000001 328.304 160.488 322.921 160.488 316.304V68C160.488 61.383 165.8710000000001 56 172.488 56H211.0560000000001C217.673 56 223.0560000000001 61.383 223.0560000000001 68V151.663H255.0140000000001L302.5290000000001 62.36A11.98 11.98 0 0 1 313.1220000000001 56H355.9320000000001C365.0720000000001 56 370.8460000000001 65.799 366.4420000000001 73.791zM256.933 208.094H223.058V272.234H250.435C282.852 272.234 289.3640000000001 260.101 289.3640000000001 240.525C289.3630000000001 219.612 277.846 208.094 256.9330000000001 208.094z" />
-			<glyph glyph-name="save-outline" unicode="" horiz-adv-x="448" d=" M433.941 318.059L350.059 401.9410000000001A48 48 0 0 1 316.118 416H48C21.49 416 0 394.51 0 368V16C0 -10.51 21.49 -32 48 -32H400C426.51 -32 448 -10.51 448 16V284.118A48 48 0 0 1 433.941 318.059zM272 368V288H144V368H272zM394 16H54A6 6 0 0 0 48 22V362A6 6 0 0 0 54 368H96V264C96 250.745 106.745 240 120 240H296C309.255 240 320 250.745 320 264V364.118L398.243 285.875A6 6 0 0 0 400 281.632V22A6 6 0 0 0 394 16zM224 216C175.477 216 136 176.523 136 128S175.477 40 224 40S312 79.477 312 128S272.523 216 224 216zM224 88C201.944 88 184 105.944 184 128S201.944 168 224 168S264 150.056 264 128S246.056 88 224 88z" />
-			<glyph glyph-name="share-square-outline" unicode="" horiz-adv-x="576" d=" M561.938 289.94L417.94 433.908C387.926 463.922 336 442.903 336 399.968V342.77C293.55 340.89 251.97 336.2200000000001 215.24 324.7800000000001C180.07 313.8300000000001 152.17 297.2000000000001 132.33 275.36C108.22 248.8 96 215.4 96 176.06C96 114.363 129.178 63.605 180.87 31.3C218.416 7.792 266.118 43.951 251.89 87.04C236.375 134.159 234.734 157.963 336 165.8V112C336 69.007 387.968 48.087 417.94 78.06L561.938 222.06C580.688 240.8 580.688 271.2 561.938 289.94zM384 112V215.84C255.309 213.918 166.492 192.65 206.31 72C176.79 90.45 144 123.92 144 176.06C144 285.394 273.14 295.007 384 295.91V400L528 256L384 112zM408.74 27.507A82.658 82.658 0 0 1 429.714 36.81C437.69 41.762 448 35.984 448 26.596V-16C448 -42.51 426.51 -64 400 -64H48C21.49 -64 0 -42.51 0 -16V336C0 362.51 21.49 384 48 384H180C186.627 384 192 378.627 192 372V367.514C192 362.597 189.013 358.145 184.431 356.362C170.729 351.031 158.035 344.825 146.381 337.777A12.138 12.138 0 0 0 140.101 336H54A6 6 0 0 1 48 330V-10A6 6 0 0 1 54 -16H394A6 6 0 0 1 400 -10V15.966C400 21.336 403.579 26.025 408.74 27.507z" />
-			<glyph glyph-name="smile-outline" unicode="" horiz-adv-x="512" d=" M256 392C366.532 392 456 302.549 456 192C456 81.468 366.549 -8 256 -8C145.468 -8 56 81.451 56 192C56 302.532 145.451 392 256 392M256 440C119.033 440 8 328.967 8 192S119.033 -56 256 -56S504 55.033 504 192S392.967 440 256 440zM320 304C310.465 304 301.488 301.6140000000001 293.63 297.411H293.647C306.382 297.411 316.706 287.087 316.706 274.352C316.706 261.617 306.382 251.293 293.647 251.293S270.588 261.617 270.588 274.352V274.3690000000001C266.386 266.512 264 257.535 264 248C264 217.072 289.072 192 320 192S376 217.072 376 248S350.928 304 320 304zM192 304C182.465 304 173.488 301.6140000000001 165.63 297.411H165.647C178.382 297.411 188.706 287.087 188.706 274.352C188.706 261.617 178.382 251.293 165.647 251.293C152.912 251.293 142.588 261.617 142.588 274.352V274.3690000000001C138.386 266.512 136 257.535 136 248C136 217.072 161.072 192 192 192S248 217.072 248 248S222.928 304 192 304zM387.372 121.781C406.1910000000001 147.373 367.516 175.798 348.702 150.219C298.567 82.042 213.473 82.039 163.335 150.219C144.507 175.82 105.857 147.358 124.665 121.781C193.963 27.55 317.988 27.43 387.372 121.781z" />
-			<glyph glyph-name="snowflake-outline" unicode="" horiz-adv-x="448" d=" M438.237 92.073L371.663 130.613L431.111 140.94C436.957 142.315 441.72 146.123 444.569 151.07C447.0490000000001 155.377 448.075 160.548 447.093 165.721C444.983 176.836 434.4070000000001 183.76 423.4720000000001 181.188L338.0490000000001 150.073L255.914 192L338.05 233.926L423.473 202.811C434.409 200.239 444.985 207.163 447.094 218.278C449.205 229.393 442.048 240.487 431.113 243.059L371.665 253.386L438.238 291.926C447.778 297.449 450.853 310.018 445.105 320C439.357 329.982 426.965 333.596 417.425 328.074L350.851 289.534L371.656 346.3210000000001C374.902 357.103 368.898 368.863 358.243 372.589C347.589 376.314 336.3209999999999 370.592 333.075 359.81L317.2369999999999 270.075L244.8139999999999 228.149V312L314.3989999999999 370.621C322.0879999999999 378.831 321.3959999999999 391.4770000000001 312.8509999999999 398.866C304.3059999999999 406.257 291.1459999999999 405.589 283.4569999999999 397.38L244.8129999999999 350.92V428C244.8129999999999 439.046 235.4949999999999 448 223.9999999999999 448S203.1869999999999 439.046 203.1869999999999 428V350.92L164.5429999999999 397.38C156.8539999999999 405.5900000000001 143.6939999999999 406.256 135.1489999999999 398.866C126.6049999999999 391.477 125.9129999999999 378.831 133.6019999999999 370.621L203.187 312V228.147L130.764 270.073L114.926 359.809C111.679 370.591 100.411 376.313 89.757 372.588C79.101 368.863 73.098 357.102 76.344 346.32L97.149 289.533L30.576 328.073C21.036 333.596 8.643 329.981 2.896 319.999S0.223 297.448 9.763 291.925L76.337 253.385L16.888 243.057C5.953 240.485 -1.202 229.391 0.907 218.276C3.017 207.162 13.593 200.238 24.529 202.81L109.951 233.925L192.086 192L109.95 150.074L24.527 181.189C13.591 183.761 3.016 176.8370000000001 0.905 165.723C-1.204 154.61 5.951 143.514 16.886 140.942L76.335 130.614L9.761 92.074C0.223 86.551 -2.852 73.982 2.896 64S21.036 50.403 30.576 55.926L97.15 94.466L76.345 37.68C74.61 31.916 75.517 25.875 78.365 20.929C80.845 16.622 84.798 13.145 89.757 11.412C100.412 7.687 111.68 13.409 114.926 24.191L130.764 113.927L203.187 155.853V72L133.602 13.379C125.912 5.169 126.605 -7.476 135.149 -14.866C143.693 -22.254 156.854 -21.589 164.543 -13.379L203.187 33.081V-44C203.187 -55.046 212.505 -64 224 -64S244.813 -55.046 244.813 -44V33.081L283.457 -13.379C287.568 -17.768 293.2389999999999 -19.9999999999999 298.935 -19.9999999999999C303.8949999999999 -19.9999999999999 308.874 -18.3059999999999 312.851 -14.8659999999999C321.396 -7.4759999999999 322.088 5.1690000000001 314.399 13.3790000000001L244.813 72V155.853L317.236 113.927L333.074 24.191C336.32 13.409 347.588 7.687 358.242 11.412C368.8950000000001 15.138 374.901 26.8990000000001 371.654 37.6800000000001L350.849 94.467L417.423 55.927C426.963 50.404 439.356 54.019 445.103 64.001C450.852 73.982 447.778 86.5510000000001 438.237 92.073z" />
-			<glyph glyph-name="square-outline" unicode="" horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM394 16H54C50.7 16 48 18.7 48 22V362C48 365.3 50.7 368 54 368H394C397.3 368 400 365.3 400 362V22C400 18.7 397.3 16 394 16z" />
-			<glyph glyph-name="star-half-outline" unicode="" horiz-adv-x="576" d=" M288 62.7L163.7 -2.7L187.4 135.6999999999999L86.8 233.7L225.8 253.8999999999999L288 379.8999999999999V448C276.6 448 265.2 442.1 259.3 430.2L194 297.8L47.9 276.6C21.7 272.8 11.2 240.5 30.2 222L135.9 119L110.9 -26.5C106.4 -52.6 133.9 -72.5 157.3 -60.2L288 8.4V62.7z" />
-			<glyph glyph-name="star-outline" unicode="" horiz-adv-x="576" d=" M528.1 276.5L382 297.8L316.7 430.2C305 453.8 271.1 454.1 259.3 430.2L194 297.8L47.9 276.5C21.7 272.7 11.2 240.4 30.2 221.9L135.9 118.9L110.9 -26.6C106.4 -52.9 134.1 -72.6 157.3 -60.3L288 8.4L418.7 -60.3C441.9 -72.5 469.6 -52.9 465.1 -26.6L440.1 118.9L545.8 221.9C564.8 240.4 554.3 272.7 528.0999999999999 276.5zM388.6 135.7L412.3 -2.7L288 62.6L163.7 -2.7L187.4 135.7000000000001L86.8 233.7000000000001L225.8 253.9000000000001L288 379.9000000000001L350.2 253.9000000000001L489.2 233.7000000000001L388.6 135.7000000000001z" />
-			<glyph glyph-name="sticky-note-outline" unicode="" horiz-adv-x="448" d=" M448 99.894V368C448 394.51 426.51 416 400 416H48C21.49 416 0 394.51 0 368V16.012C0 -10.498 21.49 -31.988 48 -31.988H316.118A48 48 0 0 1 350.059 -17.929L433.941 65.953A48 48 0 0 1 448 99.894zM320 19.894V96.012H396.118L320 19.894zM400 368V144.012H296C282.745 144.012 272 133.267 272 120.012V16.012H48V368H400z" />
-			<glyph glyph-name="stop-circle-outline" unicode="" horiz-adv-x="512" d=" M504 192C504 329 393 440 256 440S8 329 8 192S119 -56 256 -56S504 55 504 192zM56 192C56 302.5 145.5 392 256 392S456 302.5 456 192S366.5 -8 256 -8S56 81.5 56 192zM352 272V112C352 103.2 344.8 96 336 96H176C167.2 96 160 103.2 160 112V272C160 280.8 167.2 288 176 288H336C344.8 288 352 280.8 352 272z" />
-			<glyph glyph-name="sun-outline" unicode="" horiz-adv-x="512" d=" M220.116 -39.936L199.903 9.489A3.9920000000000004 3.9920000000000004 0 0 1 194.095 11.3750000000001L148.691 -16.7289999999999C119.225 -34.9689999999999 82.396 -8.2099999999999 90.637 25.45L103.336 77.3150000000001A3.9930000000000003 3.9930000000000003 0 0 1 99.746 82.256L46.495 86.2070000000001C11.941 88.7690000000001 -2.137 132.0620000000001 24.321 154.4540000000001L65.08 188.95A3.9920000000000004 3.9920000000000004 0 0 1 65.08 195.056L24.32 229.553C-2.13 251.937 11.93 295.235 46.494 297.799L99.745 301.75A3.9930000000000003 3.9930000000000003 0 0 1 103.335 306.691L90.637 358.557C82.398 392.213 119.218 418.977 148.691 400.736L194.094 372.632A3.9930000000000003 3.9930000000000003 0 0 1 199.902 374.519L220.115 423.944C233.231 456.015 278.753 456.025 291.873 423.944L312.085 374.52A3.9939999999999998 3.9939999999999998 0 0 1 317.894 372.6330000000001L363.2970000000001 400.737C392.761 418.973 429.5940000000001 392.224 421.351 358.558L408.652 306.693A3.9950000000000006 3.9950000000000006 0 0 1 412.242 301.752L465.4929999999999 297.8010000000001C500.0459999999999 295.2380000000001 514.126 251.947 487.6679999999999 229.555L446.908 195.058A3.9930000000000003 3.9930000000000003 0 0 1 446.908 188.951L487.6679999999999 154.455C514.179 132.014 499.99 88.766 465.4929999999999 86.208L412.242 82.257A3.9930000000000003 3.9930000000000003 0 0 1 408.653 77.3149999999999L421.351 25.451C429.592 -8.207 392.7679999999999 -34.97 363.2969999999999 -16.729L317.8939999999999 11.3749999999999A3.9939999999999998 3.9939999999999998 0 0 1 312.0849999999999 9.4879999999999L291.8729999999999 -39.936C278.7139999999999 -72.114 233.1979999999999 -71.9290000000001 220.1159999999999 -39.936zM236.93 24.632L255.994 -21.984L275.058 24.631C285.366 49.831 315.836 59.697 338.95 45.39L381.772 18.883L369.796 67.802C363.321 94.246 382.176 120.141 409.283 122.151L459.509 125.877L421.065 158.413C400.283 176.004 400.318 208.034 421.066 225.593L459.508 258.129L409.283 261.856C382.132 263.871 363.333 289.8040000000001 369.795 316.2050000000001L381.773 365.124L338.95 338.617C315.799 324.29 285.347 334.217 275.058 359.377L255.994 405.992L236.93 359.375C226.625 334.177 196.152 324.3090000000001 173.039 338.615L130.216 365.123L142.193 316.2050000000001C148.667 289.759 129.812 263.867 102.705 261.855L52.481 258.129L90.924 225.592C111.706 208.004 111.671 175.973 90.924 158.414L52.48 125.877L102.706 122.151C129.857 120.137 148.656 94.204 142.193 67.802L130.216 18.883L173.039 45.39C196.227 59.7450000000001 226.661 49.742 236.93 24.6320000000001zM256 64C185.42 64 128 121.421 128 192C128 262.58 185.42 320 256 320C326.579 320 384 262.58 384 192C384 121.421 326.579 64 256 64zM256 272C211.888 272 176 236.112 176 192S211.888 112 256 112S336 147.888 336 192S300.112 272 256 272z" />
-			<glyph glyph-name="thumbs-down-outline" unicode="" horiz-adv-x="512" d=" M466.27 222.69C470.944 245.337 467.134 267.228 457.28 285.68C460.238 309.548 453.259 334.245 439.94 352.67C438.986 408.577 404.117 448 327 448C320 448 312 447.99 304.78 447.99C201.195 447.99 168.997 408 128 408H117.155C111.515 412.975 104.113 416 96 416H32C14.327 416 0 401.673 0 384V144C0 126.327 14.327 112 32 112H96C107.842 112 118.175 118.438 123.708 128H130.76C149.906 111.047 176.773 67.347 199.52 44.6C213.187 30.9330000000001 209.673 -64 271.28 -64C328.86 -64 366.55 -32.064 366.55 40.73C366.55 59.14 362.62 74.46 357.7 87.27H394.18C442.782 87.27 479.9999999999999 128.835 479.9999999999999 172.85C479.9999999999999 192 475.04 207.84 466.2699999999999 222.69zM64 152C50.745 152 40 162.745 40 176S50.745 200 64 200S88 189.255 88 176S77.255 152 64 152zM394.18 135.27H290.19C290.19 97.45 318.55 79.9 318.55 40.73C318.55 16.98 318.55 -16.0000000000001 271.2800000000001 -16.0000000000001C252.3700000000001 2.91 261.8200000000001 50.18 233.4600000000001 78.54C206.9 105.11 167.28 176 138.92 176H128V362.17C181.611 362.17 228.001 399.99 299.64 399.99H337.46C372.972 399.99 398.28 382.87 390.58 334.0900000000001C405.78 325.93 417.08 297.65 404.52 276.52C426.101 256.136 423.219 225.455 409.73 210.9C419.18 210.9 432.09 191.99 432 173.09C431.91 154.18 415.29 135.2700000000001 394.18 135.2700000000001z" />
-			<glyph glyph-name="thumbs-up-outline" unicode="" horiz-adv-x="512" d=" M466.27 161.31C475.04 176.16 480 192 480 211.15C480 255.165 442.782 296.73 394.18 296.73H357.7C362.62 309.54 366.55 324.86 366.55 343.27C366.55 416.064 328.86 448 271.28 448C209.673 448 213.187 353.067 199.52 339.4C176.773 316.653 149.905 272.953 130.76 256H32C14.327 256 0 241.673 0 224V-16C0 -33.673 14.327 -48 32 -48H96C110.893 -48 123.408 -37.826 126.978 -24.05C171.487 -25.051 202.038 -63.99 304.78 -63.99C312 -63.99 320 -64 327 -64C404.117 -64 438.986 -24.577 439.94 31.33C453.259 49.755 460.239 74.452 457.28 98.32C467.134 116.772 470.944 138.663 466.27 161.31zM404.52 107.48C417.08 86.35 405.78 58.0700000000001 390.58 49.91C398.28 1.13 372.972 -15.99 337.46 -15.99H299.64C228.001 -15.99 181.611 21.83 128 21.83V208H138.92C167.28 208 206.9 278.89 233.46 305.46C261.82 333.82 252.37 381.09 271.28 400C318.55 400 318.55 367.02 318.55 343.27C318.55 304.1 290.19 286.55 290.19 248.73H394.18C415.29 248.73 431.91 229.82 432 210.91C432.0899999999999 192.01 419.18 173.1 409.73 173.1C423.219 158.545 426.101 127.864 404.52 107.48zM88 16C88 2.745 77.255 -8 64 -8S40 2.745 40 16S50.745 40 64 40S88 29.255 88 16z" />
-			<glyph glyph-name="times-circle-outline" unicode="" horiz-adv-x="512" d=" M256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM256 -8C145.5 -8 56 81.5 56 192S145.5 392 256 392S456 302.5 456 192S366.5 -8 256 -8zM357.8 254.2L295.6 192L357.8 129.8C362.5 125.1 362.5 117.5 357.8 112.8L335.2 90.2C330.5 85.5 322.9 85.5 318.2 90.2L256 152.4L193.8 90.2C189.1 85.5 181.5 85.5 176.8 90.2L154.2 112.8C149.5 117.5 149.5 125.1 154.2 129.8L216.4 192L154.2000000000001 254.2C149.5000000000001 258.9 149.5000000000001 266.5 154.2000000000001 271.2L176.8000000000001 293.8C181.5 298.5 189.1000000000001 298.5 193.8000000000001 293.8L256.0000000000001 231.6L318.2000000000001 293.8C322.9000000000001 298.5 330.5000000000001 298.5 335.2000000000001 293.8L357.8000000000001 271.2C362.5000000000001 266.5 362.5000000000001 258.9 357.8000000000001 254.2z" />
-			<glyph glyph-name="trash-alt-outline" unicode="" horiz-adv-x="448" d=" M192 260V44C192 37.373 186.627 32 180 32H156C149.373 32 144 37.373 144 44V260C144 266.627 149.373 272 156 272H180C186.627 272 192 266.627 192 260zM292 272H268C261.373 272 256 266.627 256 260V44C256 37.373 261.373 32 268 32H292C298.627 32 304 37.373 304 44V260C304 266.627 298.627 272 292 272zM424 368C437.255 368 448 357.255 448 344V332C448 325.373 442.627 320 436 320H416V-16C416 -42.51 394.51 -64 368 -64H80C53.49 -64 32 -42.51 32 -16V320H12C5.373 320 0 325.373 0 332V344C0 357.255 10.745 368 24 368H98.411L132.429 424.6960000000001A48 48 0 0 0 173.589 448H274.412A48 48 0 0 0 315.572 424.6960000000001L349.589 368H424zM154.389 368H293.612L276.1600000000001 397.087A6 6 0 0 1 271.015 400H176.987A6 6 0 0 1 171.842 397.087L154.389 368zM368 320H80V-10A6 6 0 0 1 86 -16H362A6 6 0 0 1 368 -10V320z" />
-			<glyph glyph-name="user-circle-outline" unicode="" horiz-adv-x="512" d=" M256 440C119.033 440 8 328.967 8 192S119.033 -56 256 -56S504 55.033 504 192S392.967 440 256 440zM256 392C366.457 392 456 302.457 456 192C456 155.018 445.951 120.389 428.452 90.672C421.38 116.1160000000001 402.789 144.88 364.522 156.0460000000001C377.207 176.218 384 199.586 384 224C384 294.689 326.811 352 256 352C185.311 352 128 294.81 128 224C128 199.586 134.793 176.217 147.478 156.046C109.179 144.871 90.602 116.133 83.54 90.684C66.046 120.399 56 155.024 56 192C56 302.457 145.543 392 256 392zM336 224C336 179.817 300.183 144 256 144S176 179.817 176 224S211.817 304 256 304S336 268.183 336 224zM128 38.331V66.089C128 86.499 141.53 104.437 161.156 110.044L185.632 117.037C206.342 103.352 230.605 96 256 96S305.658 103.352 326.3690000000001 117.038L350.8450000000001 110.045C370.4700000000001 104.437 384 86.5 384 66.089V38.331C349.315 9.408 304.693 -8 256 -8S162.685 9.408 128 38.331z" />
-			<glyph glyph-name="user-outline" unicode="" horiz-adv-x="512" d=" M423.3090000000001 156.975L402.221 163C431.798 204.11 436 245.706 436 268C436 367.351 355.484 448 256 448C156.649 448 76 367.484 76 268C76 245.701 80.198 204.116 109.779 163L88.691 156.975C21.28 137.715 0 76.41 0 39.395V13.714C0 -29.138 34.862 -64 77.714 -64H434.2850000000001C477.138 -64 512 -29.138 512 13.714V39.395C512 75.642 491.275 137.556 423.309 156.975zM256 400C328.902 400 388 340.901 388 268S328.902 136 256 136S124 195.099 124 268S183.098 400 256 400zM464 13.714C464 -2.696 450.696 -16 434.286 -16H77.714C61.304 -16 48 -2.696 48 13.714V39.395C48 72.562 69.987 101.711 101.878 110.822L147.981 123.994C162.683 112.942 200.427 88 256 88S349.317 112.942 364.019 123.994L410.122 110.822C442.013 101.71 464 72.562 464 39.395V13.714z" />
-			<glyph glyph-name="window-close-outline" unicode="" horiz-adv-x="512" d=" M464 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H464C490.5 -32 512 -10.5 512 16V368C512 394.5 490.5 416 464 416zM464 22C464 18.7 461.3 16 458 16H54C50.7 16 48 18.7 48 22V362C48 365.3 50.7 368 54 368H458C461.3 368 464 365.3 464 362V22zM356.5 253.4L295.1 192L356.5 130.6C361.1 126 361.1 118.5 356.5 113.8L334.2 91.5C329.6 86.9 322.1 86.9 317.4 91.5L256 152.9L194.6 91.5C190 86.9 182.5 86.9 177.8 91.5L155.5 113.8C150.9 118.4 150.9 125.9 155.5 130.6L216.9 192L155.5 253.4000000000001C150.9 258 150.9 265.5 155.5 270.2000000000001L177.8 292.5000000000001C182.4 297.1 189.9 297.1 194.6 292.5000000000001L256 231.1000000000001L317.4 292.5000000000001C322 297.1 329.5 297.1 334.2 292.5000000000001L356.5 270.2000000000001C361.2 265.6 361.2 258.1 356.5 253.4000000000001z" />
-			<glyph glyph-name="window-maximize-outline" unicode="" horiz-adv-x="512" d=" M464 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H464C490.5 -32 512 -10.5 512 16V368C512 394.5 490.5 416 464 416zM464 22C464 18.7 461.3 16 458 16H54C50.7 16 48 18.7 48 22V256H464V22z" />
-            <glyph glyph-name="window-minimize-outline" unicode="" horiz-adv-x="512" d=" M480 -32H32C14.3 -32 0 -17.7 0 0S14.3 32 32 32H480C497.7 32 512 17.7 512 0S497.7 -32 480 -32z" />
-			<glyph glyph-name="window-restore-outline" unicode="" horiz-adv-x="512" d=" M464 448H144C117.5 448 96 426.5 96 400V352H48C21.5 352 0 330.5 0 304V-16C0 -42.5 21.5 -64 48 -64H368C394.5 -64 416 -42.5 416 -16V32H464C490.5 32 512 53.5 512 80V400C512 426.5 490.5 448 464 448zM368 -16H48V192H368V-16zM464 80H416V304C416 330.5 394.5 352 368 352H144V400H464V80z" />
-            <glyph glyph-name="window-minimize"
-                   unicode="&#xF2D1;"
-                   horiz-adv-x="512" d=" M464 96H48C21.5 96 0 74.5 0 48V16C0 -10.5 21.5 -32 48 -32H464C490.5 -32 512 -10.5 512 16V48C512 74.5 490.5 96 464 96z" />
-            <glyph glyph-name="elementor" unicode="" horiz-adv-x="448" d=" M425.6 416H22.4C10 416 0 406 0 393.6V-9.6C0 -22 10 -32 22.4 -32H425.6C438 -32 448 -22 448 -9.6V393.6C448 406 438 416 425.6 416M164.3 92.5H124.5V291.5H164.3V92.5zM323.6 92.5H204.1V132.3H323.6V92.5zM323.6 172.1H204.1V211.9H323.6V172.1zM323.6 251.8H204.1V291.6H323.6V251.8z" />
-            <glyph glyph-name="youtube-square" unicode="" horiz-adv-x="448" d=" M186.8 245.9L282 191.8L186.8 137.7V245.9zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM406 191.7S406 251.3 398.4 279.9C394.2 295.7 381.9 308.1 366.2 312.3C337.9 320 224 320 224 320S110.1 320 81.8 312.3C66.1 308.1 53.8 295.7000000000001 49.6 279.9C42 251.4 42 191.7 42 191.7S42 132.1 49.6 103.5C53.8 87.7 66.1 75.8 81.8 71.6C110.1 64 224 64 224 64S337.9 64 366.2 71.7C381.9 75.9 394.2 87.8 398.4 103.6C406 132.1 406 191.6999999999999 406 191.6999999999999z" />
-            <glyph glyph-name="chess-bishop" unicode="" horiz-adv-x="320" d=" M123.158 370.1190000000001C107.369 375.4700000000001 96 390.403 96 408C96 430.091 113.909 448 136 448H183.796C205.887 448 223.796 430.091 223.796 408C223.796 390.459 212.501 375.5660000000001 196.791 370.171C220.784 353.514 245.368 323.332 265.4940000000001 288.121L144.929 167.557A6 6 0 0 1 144.929 159.072L159.071 144.93A6 6 0 0 1 167.556 144.93L280.9 258.274C298.658 219.977 310.271 178.831 310.271 144.001C310.271 90.215 287.374 68.213 251.825 57.968V0H68.174V57.97C32.631 68.216 9.739 90.219 9.739 144C9.739 222.029 68.02 331.766 123.158 370.1190000000001zM320 -52V-28C320 -21.373 314.627 -16 308 -16H12C5.373 -16 0 -21.373 0 -28V-52C0 -58.627 5.373 -64 12 -64H308C314.627 -64 320 -58.627 320 -52z" />
-            <glyph glyph-name="chess-board" unicode="" horiz-adv-x="512" d=" M256 192V128H192V192H256zM256 448H192V384H256V448zM256 192H320V256H256V192zM384 448H320V384H384V448zM384 -64H448V0H384V-64zM512 0V64H448V0H512zM128 -64H192V0H128V-64zM128 448H64V384H128V448zM512 256V320H448V256H512zM512 128V192H448V128H512zM0 -64H64V0H0V-64zM0 384V320H64V384H0zM0 256V192H64V256H0zM0 128V64H64V128H0zM256 -64H320V0H256V-64zM192 64V0H256V64H192zM256 256V320H192V256H256zM64 64V0H128V64H64zM128 192H64V128H128V192zM384 64H448V128H384V64zM512 448H448V384H512V448zM384 192H448V256H384V192zM384 384V320H448V384H384zM320 64V0H384V64H320zM128 128V64H192V128H128zM256 128V64H320V128H256zM192 256H128V192H192V256zM128 320H64V256H128V320zM320 128H384V192H320V128zM192 320V384H128V320H192zM320 320V384H256V320H320zM320 256H384V320H320V256z" />
-            <glyph glyph-name="chess-king" unicode="" horiz-adv-x="448" d=" M416 -28V-52C416 -58.627 410.627 -64 404 -64H44C37.373 -64 32 -58.627 32 -52V-28C32 -21.373 37.373 -16 44 -16H404C410.627 -16 416 -21.373 416 -28zM407.967 296H248V344H298A6 6 0 0 1 304 350V386A6 6 0 0 1 298 392H248V442A6 6 0 0 1 242 448H206A6 6 0 0 1 200 442V392H150A6 6 0 0 1 144 386V350A6 6 0 0 1 150 344H200V296H40.033C12.459 296 -6.846 268.756 2.295 242.741L87.582 0H360.418L445.7050000000001 242.741C454.846 268.756 435.541 296 407.967 296z" />
-            <glyph glyph-name="chess-knight" unicode="" horiz-adv-x="384" d=" M352 224V0H32V46.557C32 76.859 49.12 104.56 76.223 118.111L133.466 146.733A48 48 0 0 1 160 189.666V240L137.873 228.937A23.996 23.996 0 0 1 125.323 213.292L113.488 165.954A12 12 0 0 0 106.303 157.723L76.702 145.8830000000001A11.998 11.998 0 0 0 67.372 146.059L7.126 172.833A12 12 0 0 0 0 183.799V342.059C0 348.424 2.529 354.529 7.03 359.03L16 368L1.789 396.4220000000001A16.937 16.937 0 0 0 0 404C0 410.627 5.373 416 12 416H160C266.039 416 352 330.039 352 224zM372 -16H12C5.373 -16 0 -21.373 0 -28V-52C0 -58.627 5.373 -64 12 -64H372C378.627 -64 384 -58.627 384 -52V-28C384 -21.373 378.627 -16 372 -16zM52 320C40.954 320 32 311.046 32 300S40.954 280 52 280S72 288.954 72 300S63.046 320 52 320z" />
-            <glyph glyph-name="chess-pawn" unicode="" horiz-adv-x="320" d=" M264 0H56S116 42.743 116 176H84C77.373 176 72 181.373 72 188V212C72 218.627 77.373 224 84 224H124.209C95.721 237.44 76 266.4120000000001 76 300C76 346.392 113.608 384 160 384S244 346.392 244 300C244 266.4120000000001 224.279 237.44 195.791 224H236C242.627 224 248 218.627 248 212V188C248 181.373 242.627 176 236 176H204C204 42.743 264 0 264 0zM292 -16H28C21.373 -16 16 -21.373 16 -28V-52C16 -58.627 21.373 -64 28 -64H292C298.627 -64 304 -58.627 304 -52V-28C304 -21.373 298.627 -16 292 -16z" />
-            <glyph glyph-name="chess-queen" unicode="ï‘…" horiz-adv-x="512" d=" M436 -64H76C69.373 -64 64 -58.627 64 -52V-28C64 -21.373 69.373 -16 76 -16H436C442.627 -16 448 -21.373 448 -28V-52C448 -58.627 442.627 -64 436 -64zM255.579 448C224.651 448 199.579 422.928 199.579 392S224.651 336 255.579 336S311.579 361.072 311.579 392S286.507 448 255.579 448zM460.147 293.366C454.3790000000001 296.411 447.2310000000001 294.298 444.0650000000001 288.596C435.4490000000001 273.0800000000001 421.3180000000001 250.795 400.0000000000001 250.795C371.2860000000001 250.795 369.3750000000001 270.5990000000001 368.3140000000001 308.337C368.1310000000001 314.829 362.8130000000001 320.0010000000001 356.3190000000001 320.0010000000001H315.3130000000001C310.1380000000001 320.0010000000001 305.5590000000001 316.673 303.9250000000002 311.7630000000001C295.0350000000002 285.0540000000001 277.8520000000002 270.7710000000001 256.0000000000001 270.7710000000001S216.9660000000001 285.0540000000001 208.0750000000001 311.7630000000001C206.4410000000001 316.673 201.8620000000001 320.0010000000001 196.6870000000001 320.0010000000001H155.6820000000001C149.1870000000001 320.0010000000001 143.8690000000001 314.827 143.6870000000001 308.3340000000001C142.6350000000001 270.692 140.7530000000001 250.795 111.9990000000001 250.795C91.3080000000001 250.795 78.1820000000001 271.019 67.5740000000001 288.8200000000001C64.3080000000001 294.3 57.3160000000001 296.2510000000001 51.6750000000001 293.273L12.4960000000001 272.5940000000001A12 12 0 0 1 6.9860000000001 257.449L112 0H400L505.014 257.448A12 12 0 0 1 499.504 272.593L460.147 293.366z" />
-            <glyph glyph-name="chess-rook" unicode="" horiz-adv-x="384" d=" M81.241 232.973C80.957 189.08 77.411 99.924 48 0H335.9820000000001C306.5820000000001 99.604 303.0460000000001 188.912 302.761 232.975L348.1790000000001 275.287A11.998 11.998 0 0 1 351.999 284.067V404C351.999 410.627 346.6260000000001 416 339.999 416H299.999C293.372 416 287.999 410.627 287.999 404V360H239.999V404C239.999 410.627 234.6260000000001 416 227.999 416H155.999C149.372 416 143.999 410.627 143.999 404V360H96V404C96 410.627 90.627 416 84 416H44C37.373 416 32 410.627 32 404V284.068C32 280.738 33.384 277.558 35.82 275.288L81.241 232.973zM160 192C160 209.673 174.327 224 192 224C209.673 224 224 209.673 224 192V127.996H160V192zM384 -28V-52C384 -58.627 378.627 -64 372 -64H12C5.373 -64 0 -58.627 0 -52V-28C0 -21.373 5.373 -16 12 -16H372C378.627 -16 384 -21.373 384 -28z" />
-            <glyph glyph-name="square-full" unicode="" horiz-adv-x="512" d=" M512 -64H0V448H512V-64z" />
-            <glyph glyph-name="chess" unicode="" horiz-adv-x="512" d=" M199.821 230.367A6 6 0 0 0 205.821 224.367L205.82 203.601A6 6 0 0 0 199.82 197.601H174.015C174.015 165.886 171.862 101.4 191.413 44.372H64.597C84.54 102.548 82.02 168.755 82.02 197.601H56.183A6 6 0 0 0 50.183 203.601L50.185 224.367A6 6 0 0 0 56.185 230.367H199.821zM41.554 332.9120000000001L76.134 237.841H179.868L214.44 332.913C217.286 340.7390000000001 211.49 349.014 203.162 349.014H152V379.2340000000001H173.57A6 6 0 0 1 179.57 385.2340000000001V407.617A6 6 0 0 1 173.57 413.617H145.203V442A6 6 0 0 1 139.203 448H116.82A6 6 0 0 1 110.82 442V413.617H82.421A6 6 0 0 1 76.421 407.617V385.2340000000001A6 6 0 0 1 82.421 379.2340000000001H104V349.015H52.831C44.503 349.014 38.707 340.7390000000001 41.554 332.9120000000001zM222.678 2.83V30.897A6 6 0 0 1 216.678 36.897H39.322A6 6 0 0 1 33.322 30.897V2.83L11.174 -11.334A6 6 0 0 1 8.407 -16.389V-58A6 6 0 0 1 14.407 -64H241.594A6 6 0 0 1 247.594 -58V-16.388A6 6 0 0 1 244.8270000000001 -11.333L222.678 2.83zM313.256 147.055L338.136 130.0919999999999C338.226 111.9679999999999 337.969 66.1879999999999 326.231 15.5699999999999H473.757C462.044 66.045 461.788 111.894 461.875 130.107L486.734 147.056A3.856 3.856 0 0 1 488.418 150.243V220.144A3.8569999999999998 3.8569999999999998 0 0 1 484.561 224.001H456.9059999999999A3.8569999999999998 3.8569999999999998 0 0 1 453.0489999999999 220.144V188.63H430.3119999999999V220.144A3.8569999999999998 3.8569999999999998 0 0 1 426.4539999999999 224.001H373.5359999999999A3.8569999999999998 3.8569999999999998 0 0 1 369.6789999999999 220.144V188.63H346.9419999999999V220.144A3.8569999999999998 3.8569999999999998 0 0 1 343.0849999999998 224.001H315.43A3.8569999999999998 3.8569999999999998 0 0 1 311.573 220.144V150.243A3.8549999999999995 3.8549999999999995 0 0 1 313.256 147.055zM384.841 95.149C384.841 103.521 391.628 110.307 400 110.307S415.158 103.52 415.158 95.149V64.831H384.841V95.149zM504.62 -22.059L490.956 -11.42V4.132A3.8569999999999998 3.8569999999999998 0 0 1 487.099 7.989H312.915A3.8569999999999998 3.8569999999999998 0 0 1 309.058 4.132V-11.42L295.381 -22.059A3.8569999999999998 3.8569999999999998 0 0 1 293.893 -25.103V-60.142A3.8569999999999998 3.8569999999999998 0 0 1 297.75 -63.999H502.25A3.8569999999999998 3.8569999999999998 0 0 1 506.107 -60.142V-25.102A3.859 3.859 0 0 1 504.62 -22.059z" />
-            <glyph glyph-name="baseball-ball" unicode="" horiz-adv-x="496" d=" M368.5 84.1L397.3 98C408.4000000000001 75.1 423.3 54.8 441.4000000000001 37.1C475.4 79.6 495.9 133.4 495.9 192C495.9 250.5000000000001 475.5000000000001 304.2000000000001 441.7000000000001 346.6C423.9000000000001 329.3 409.1 309.5 398.1 287.1L369.4000000000001 301.2000000000001C382.2000000000001 327.2000000000001 399.4000000000001 350.2000000000001 420.2000000000001 370.2000000000001C375.6 413.3 315 440 248 440C181.1 440 120.5 413.4 75.9 370.3C96.6 350.4 113.8 327.4 126.6 301.5L97.9 287.4C86.9 309.7000000000001 72.2 329.5 54.4 346.8C20.4 304.3 0 250.6 0 192C0 133.4 20.4 79.7 54.4 37.3C72.6 55 87.6 75.3 98.7 98.3L127.5 84.4C114.6 57.7000000000001 97.2 34.1 76 13.7C120.5 -29.4 181.1 -55.9999999999999 248 -55.9999999999999C314.8 -55.9999999999999 375.3 -29.4999999999999 419.9 13.5000000000001C398.8 33.9 381.4 57.4 368.5 84.1zM140.2 116.1L109.7 125.9C124.6 172.3 122.4 219.7000000000001 109.1 259.9000000000001L139.5 269.9000000000001C154.5 224.3000000000001 157.5 170 140.2 116.1zM356.5 269.5L386.9 259.5C373.7 219.4 371.4 172 386.3 125.5L355.8 115.7C338.5 169.7 341.5 224 356.5 269.5z" />
-            <glyph glyph-name="basketball-ball" unicode="" horiz-adv-x="496" d=" M212.3 437.7C168.5 431.4 126.1 413.6 90.1 383.9L167.5 306.5C195.3 342.3 210.8 387.7 212.3 437.7zM248 226L405.9 383.9C363.5 418.9 312.3 437.4 260.4 440C259.2 376.1 238.9 317.7000000000001 201.7 272.3L248 226zM56.1 349.9C26.4 313.9 8.6 271.5 2.3 227.7C52.3 229.2 97.8 244.7 133.5 272.5L56.1 349.9zM328.3 145.7000000000001C373.6 182.8000000000001 432 203.1000000000001 496 204.4C493.4 256.3000000000001 474.9 307.5 439.9 349.9000000000001L282 192L328.3 145.7zM248 158L90.1 0.1C132.5 -34.8 183.7 -53.4 235.6 -56C236.9 8 257.2 66.4 294.3 111.7L248 158zM439.9 34.1C469.6 70.1 487.4 112.5 493.7 156.3C443.6 154.7 398.2 139.2 362.5 111.5L439.9 34.1zM167.7 238.3C122.3 201.1 63.9 180.7 0 179.6C2.6 127.7000000000001 21.1 76.5 56.1 34.1L214 192L167.7 238.3zM283.7 -53.7C327.5 -47.4 369.9 -29.6 405.9 0.1L328.5 77.5C300.8 41.8 285.3 -3.7 283.7 -53.7z" />
-            <glyph glyph-name="bowling-ball" unicode="" horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM120 256C102.3 256 88 270.3 88 288S102.3 320 120 320S152 305.7 152 288S137.7 256 120 256zM184 352C184 369.7 198.3 384 216 384S248 369.7 248 352S233.7 320 216 320S184 334.3 184 352zM232 208C214.3 208 200 222.3 200 240S214.3 272 232 272S264 257.7 264 240S249.7 208 232 208z" />
-            <glyph glyph-name="football-ball" unicode="ï‘Ž" horiz-adv-x="496" d=" M481.5 387.7C476.7 405.9 462.4 420.2 444.2 425.1C420.3 431.5 383 439.1 339.4 440L496 283.2C495.2 326.7 487.8 363.8 481.5 387.7zM14.5 -3.7C19.3 -21.9 33.6 -36.2 51.8 -41.1C75.7 -47.4999999999999 113 -55.1 156.6 -55.9999999999999L0 100.8C0.8 57.3 8.2 20.2 14.5 -3.7zM4.2 164.6L220.4 -52C352.9 -32.6 469.2 66.7 491.9 219.4L275.6 436C143.1 416.6 26.8 317.3 4.2 164.6zM321.5 288.2000000000001C324.6 291.3 329.7 291.3 332.8 288.2000000000001L344.1 276.9C347.2000000000001 273.8 347.2000000000001 268.7000000000001 344.1 265.6L315.8 237.3L344.1 209C347.2000000000001 205.9 347.2000000000001 200.8 344.1 197.7L332.8 186.4C329.7 183.3 324.6 183.3 321.5 186.4L293.2 214.7L270.6 192L298.9 163.7C302 160.6 302 155.5 298.9 152.4L287.6 141.1C284.5 138 279.4 138 276.3 141.1L248 169.4L225.4 146.8L253.7 118.5C256.8 115.3999999999999 256.8 110.3 253.7 107.1999999999999L242.4 95.8999999999999C239.3 92.7999999999999 234.2 92.7999999999999 231.1 95.8999999999999L202.8 124.1999999999999L174.5 95.8999999999999C171.4 92.7999999999999 166.3 92.7999999999999 163.2 95.8999999999999L151.9 107.1999999999999C148.8 110.3 148.8 115.3999999999999 151.9 118.5L180.2 146.8L151.9 175C148.8 178.1 148.8 183.1999999999999 151.9 186.3L163.2 197.6C166.3 200.7 171.4 200.7 174.5 197.6L202.8 169.3L225.4 191.9L197.1 220.2C194 223.3 194 228.4 197.1 231.5L208.4 242.8C211.5 245.9 216.6 245.9 219.7 242.8L248 214.5L270.6 237.1L242.3 265.4C239.2 268.5 239.2 273.6 242.3 276.7000000000001L253.6 288C256.7000000000001 291.1 261.8 291.1 264.9000000000001 288L293.2000000000001 259.7000000000001L321.5000000000001 288.2000000000001z" />
-            <glyph glyph-name="futbol" unicode="" horiz-adv-x="512" d=" M504 192C504 55.033 392.967 -56 256 -56S8 55.033 8 192S119.033 440 256 440S504 328.967 504 192zM456 192L455.997 192.282L429.933 169.541L367.254 228.041L383.7080000000001 312.396L418.011 309.324C393.122 343.54 358.007 369.413 317.302 382.4650000000001L330.9530000000001 350.526L256 309L181.047 350.525L194.698 382.464C154.067 369.436 118.918 343.594 93.989 309.323L128.554 312.396L144.746 228.041L82.068 169.541L56.004 192.282L56.001 192C56.001 148.985 69.498 108.048 94.473 74.009L102.177 107.906L187.315 97.459L223.616 19.633L193.714 1.847C233.916 -11.275 278.004 -11.301 318.286 1.847L288.384 19.633L324.685 97.4590000000001L409.823 107.9060000000001L417.527 74.0090000000001C442.503 108.048 456 148.985 456 192zM207.898 122.429L178.004 213.741L256 270.2680000000001L333.996 213.741L304.374 122.429H207.898z" />
-            <glyph glyph-name="futbol-outline" unicode="" horiz-adv-x="496" d=" M483.8 268.6C449.8 373.4 352.6 440 248.1 440C222.7 440 196.9 436.1 171.4 427.8C41.2 385.5 -30.1 245.6 12.2 115.4C46.2 10.6 143.4 -56 247.9 -56C273.3 -56 299.1 -52.1 324.6 -43.8C454.8 -1.5 526.1 138.4 483.8 268.6zM409.3 74.9L357.1 68.5L313.4000000000001 129.4L337.8 204.6L408.9 226.7L447.8 190.3C447.6 159.6 440.4 129.1999999999999 426.1 101.1C421.4 91.8 415.4 83.3 409.3 74.9zM409.3 310.3L398.9000000000001 257.2L328.2000000000001 235.2L264.0000000000001 281.7V355.5L311.4000000000001 381.7C350.6 368.7 384.8000000000001 343.7 409.3000000000001 310.3zM184.9 381.6L232 355.5V281.7L167.8 235.2L97.2 257.2L87.1 309.7C111.4 343.1 145 368.3 184.9 381.6zM139 68.5L85.9 75C71.5 95.1 48.6 134.6 48.1 190.3L87.1 226.7L158.2 204.5L182.5 130.2000000000001L139 68.5000000000001zM187.2 1.5L164.8 49.6L208.4 111.3H287L331.3 49.6L308.9000000000001 1.5C302.7000000000001 -0.3 251.3000000000001 -18.9 187.2000000000001 1.5z" />
-            <glyph glyph-name="golf-ball" unicode="" horiz-adv-x="416" d=" M96 32H320C320 14.3 305.7 0 288 0H272C254.3 0 240 -14.3 240 -32V-52C240 -58.6 234.6 -64 228 -64H188C181.4 -64 176 -58.6 176 -52V-32C176 -14.3 161.7 0 144 0H128C110.3 0 96 14.3 96 32zM416 240C416 165.8 377 100.8 318.5 64H97.5C39 100.8 0 165.8 0 240C0 354.9 93.1 448 208 448S416 354.9 416 240zM235.9 196.1C254.2 196.1 269 210.9 269 229.2C269 243.6 259.7 255.5 246.9 260.1C256.5 233.3 231.3 208.8 205 218.2C209.6 205.4 221.5 196.1 235.9 196.1zM285 149.2C285 163.6 275.7 175.5 262.9 180.1C272.5 153.3 247.3 128.8 221 138.2C225.6 125.4 237.5 116.1 251.9 116.1C270.2 116.1 285 131 285 149.2zM349 213.2C349 227.6 339.7 239.5 326.9 244.1C336.5 217.3 311.3 192.8 285 202.2C289.6 189.4 301.5 180.1 315.9 180.1C334.2 180.1 349 195 349 213.2z" />
-            <glyph glyph-name="hockey-puck" unicode="ï‘“" horiz-adv-x="512" d=" M0 288C0 341 114.6 384 256 384S512 341 512 288S397.4 192 256 192S0 235 0 288zM0 205.8V96C0 43 114.6 0 256 0S512 43 512 96V205.8C398.6 123.5 113.5 123.4 0 205.8z" />
-            <glyph glyph-name="quidditch" unicode="" horiz-adv-x="640" d=" M256.5 231.2L343.2 122S326.6 19.6 266.6 -28.1C206.7 -75.7999999999999 0 -62.2 0 -62.2S3.8 -39.1 11 -6.8L105.6 105.4C109.6 110.1 104.7 117 99 114.9L38.6 92.8C53 134.5 71.3 172.8 93.2 190.3C153.1 238.1 256.5 231.2 256.5 231.2zM494.5 96.2C450.5 96.2 414.7 60.4 414.7 16.3C414.7 -27.8000000000001 450.4 -63.6 494.5 -63.6C538.6 -63.6 574.3 -27.8 574.3 16.3C574.3 60.4999999999999 538.5 96.1999999999999 494.4999999999999 96.1999999999999zM636.5 417L616.7 442C611.2 448.9 601.2 450 594.3000000000001 444.6L361.8 266.7L327.7 309.7C322.6 316.1 312.6 314.9 309.1 307.5L283.8 252.9L370.5 143.7L429.3 156.1C437.3 157.8 440.7 167.3 435.6 173.7L401.5 216.6L634 394.5C640.9 400 642 410.1 636.5 417z" />
-            <glyph glyph-name="table-tennis" unicode="" horiz-adv-x="512" d=" M496.2 151.5C527.7 229.3 512 321.8 449 384.9C365.1 469 229 469 145.1 384.9L89.1 328.8L300.6 117.3C346.7000000000001 179.4 432.1 194.7 496.2 151.5zM278.3 71.8L57.9 292.1C30.6 246.8 36.2 187.1 75.2 148L109.7 113.4L6.7 24C-1.9 16.5 -2.4 3.3 5.7 -4.8L59.1 -58.3C67.1 -66.4 80.3 -65.9 87.8 -57.3L177.1 46L212.8 10.3C232.5 -9.4 257.4000000000001 -20.2 283.1 -23C276 -6 272.1 12.6 272.1 32.1C272 45.9 274.6 59.1 278.3 71.8zM416 128C363 128 320 85 320 32S363 -64 416 -64S512 -21 512 32S469 128 416 128z" />
-            <glyph glyph-name="volleyball-ball" unicode="ï‘Ÿ" horiz-adv-x="495.9" d=" M223.3 204.6C222.4 241.6 214.7 277.4 200.6 310.3C109.8 267.9 43.1 187.9 20.3 93.5C33.7 62.7 53.2 35.2 77.2 12.4C99.9 91.6 151.4 160.2 223.3 204.6zM186.4 339C171.4 365.4 151.9 389.1 129 409.7C38 359.9 -15.8 256.8 4 147.5C37.4 230.6 102.4 299.5 186.4 339zM374 173.9C382.6 273.7 346.7 371.4 276.5 438.3C261.8 440 224.9 443.8 177.6 429.8C234.9 370.5 268.6 291.6 271.1 207.1C303.6 189.4 338.4000000000001 178.1 374 173.9zM249.3 164.4C217.7 145.1 190.6 120.5 169.1 91.8C251.1 34.4999999999999 353.6 16.6999999999999 446.6 43.9999999999999C466.3 70.3999999999999 480.8 100.8 488.8 133.9C462.2 127.3 435.1 123.5 407.9 123.5C353.3 123.6 299 137.6 249.3 164.4zM151 64.7C135.8 38.7 125.3 10.3 118.9 -19.5C156.5 -42.5 200.6 -56 248 -56C309 -56 364.7 -33.9 407.9 2.6C295 -13.5 204.6 27.4 151 64.7zM331.3 425.3C386.6 354.9 413.8 264.1 405.9 171.7C436.2 171.5 466.4 176.5 495.6 185.9C495.6 187.9 495.9 189.9 495.9 191.9C495.9 299.7 427.2 391 331.3 425.3z" />
-            <glyph glyph-name="flipboard" unicode="" horiz-adv-x="448" d=" M0 416V-32H448V416H0zM175.7 240.3V55.9H87.8V328.1H175.6V240.3zM360.2 240.3H272.3V143.7000000000001H184.5V231.5000000000001H272.3V240.3000000000001H184.5V328.1000000000001H360.2V240.3000000000001z" />
-            <glyph glyph-name="php" unicode="ï‘—" horiz-adv-x="640" d=" M320 343.5C491.4 343.5 623.2 271.3 623.2 192S491.3 40.5 320 40.5C148.6 40.5 16.8 112.7 16.8 192S148.7 343.5 320 343.5M320 360.3C143.3 360.3 0 285 0 192S143.3 23.7 320 23.7S640 99 640 192S496.7 360.3 320 360.3zM218.2 205.5C210.3 165 182.4 169.2 148.1 169.2L161.8 239.8C199.8 239.8 225.6 243.9 218.2 205.5zM97.4 97.7H134.1L142.8 142.5C183.9 142.5 209.4 139.5 233 161.6C259.1 185.6 265.9 228.3 247.3 249.7C237.6 260.9 222 266.4 200.8 266.4H130.1L97.4 97.7zM283.1 311.3H319.6L310.9000000000001 266.5C342.4000000000001 266.5 371.6 268.8 385.7000000000001 255.8C400.5000000000001 242.2 393.4000000000001 224.8 377.4000000000001 142.7000000000001H340.4000000000001C355.8 222.1000000000001 358.7000000000001 228.7000000000001 353.1 234.7000000000001C347.7000000000001 240.5000000000001 335.4000000000001 239.3000000000001 305.7000000000001 239.3000000000001L286.9000000000001 142.7000000000001H250.4000000000001L283.1 311.3000000000001zM505 205.5C497 164.4 468.3 169.2 434.9 169.2L448.6 239.8C486.8 239.8 512.4 243.9 504.9999999999999 205.5zM384.2 97.7H421L429.7 142.5C472.9 142.5 496.8 140 519.9 161.6C546 185.6 552.8 228.3 534.1999999999999 249.7C524.4999999999999 260.9 508.8999999999999 266.4 487.6999999999999 266.4H417L384.2 97.7000000000001z" />
-            <glyph glyph-name="quinscape" unicode="ï‘™" horiz-adv-x="489.1" d=" M301.9 -26.6H300.6C213.3 -26.6 142.5 44.2 142.5 131.5S213.3 289.6 300.6 289.6C395.5 289.6 468.8 206.5 457.6 113C461.6 107.9 465.8 103.4 468.8 97.7C482.1999999999999 128 489.1 160.1 489.1 195.4C489.1 330.5 379.6 440 244.5 440C109.5 440 0 330.5 0 195.4S109.5 -49.2 244.5 -49.2C269.3 -49.2 292.3 -46 314.9 -39.1C309.7 -35.6 305.9 -30.9 301.5 -26.4999999999999L301.9 -26.6zM280.7 43.2C280.7 98 325.1 142.4 379.9 142.4C434.7 142.4 479.1 98 479.1 43.2C479.1 -11.6 434.7 -56 379.9 -56C325.1 -56 280.7 -11.6 280.7 43.2" />
-            <glyph glyph-name="hips" unicode="ï‘’" horiz-adv-x="640" d=" M0 367.8C0 369.6 0.9 370.5 2.7 370.5H43.6C45.5 370.5 46.4 369.6 46.4 367.8V286.6C61.6 294.3 78.1 298.1 96.2 298C120.2 297.9 140.4 291.8 156.5 280C175.2 266.5 184.5 248.1 184.5 224.7V88.6C184.5 86.7000000000001 183.6 85.8 181.8 85.8H154.5C145.4 85.8 138.1 93.1 138.1 102.1V224.7C138.1 225.6 140.8 251.7 92.3 251.7C43.7 251.7 46.5 225.5 46.5 224.7V88.6C46.5 86.7000000000001 45.6 85.8 43.7 85.8H2.7C0.9 85.8 0 86.7 0 88.6V367.8zM497.7 146.3C511.4 136.1 531.8 127.2 556.1 127.2C579.4 127.2 588.9 131.7 592.6 140.8C595.6 148.7 592 156.9 580.4 162L526.8 185.5C505.4 194.9 492.9999999999999 209.5 489.6 229.1C483.9 262.8 511.8 282.4 512.3 282.8C525.5 292.4 544.3 298.2000000000001 570.8 298.2000000000001C589.8 298.2000000000001 608.1999999999999 294.9 625.9 288.3C627.1999999999999 287.8 627.8 287 627.8 285.7000000000001V241C627.8 238.9 625.5 237.6 623.8 238.6C584.0999999999999 259.3 547.1999999999999 250.9 539.8 245.4C533.1999999999999 240.5 533.8 232.9 542.4 229.3L600 204C616.5 196.9 628.1 185.6 634.9 169.9C640.4 157.3 641.5 144.3 638 130.8C628.4 93.9 593.1 85.3 592.4 84.9999999999999C581.9 81.8999999999999 568.8 80.6999999999999 556.1 80.6999999999999C539.5 80.6999999999999 523.5 83.3999999999999 507.9 88.8999999999999C498.2 92.2999999999999 493.3 99.1999999999999 493.3 109.5999999999999V144C493.3 146.1 495.6 147.7 497.7 146.3zM376.2 298.2C344.5 298.2 272 278.1 272 194.7V11.2C272 10.4 272.6 8.5 274.7 8.5H315.6C317.5 8.5 318.4 9.4 318.4 11.2V100C334.9 87.3 354.2 80.9 376.1 80.9C436.6 80.9 484.8 129.4 484.8 189.6C484.9 249.9 436.6 298.2 376.2 298.2zM376.2 127.3C359 127.3 344.3 133.4 332.2 145.5C320 157.6999999999999 314 172.3 314 189.5C314 224 341.6 251.7 376.2 251.7C410.7 251.7 438.4 224.0999999999999 438.4 189.5C438.5 155.1999999999999 411.1 127.3 376.2 127.3zM251.6 88.6C251.6 86.7 250.7 85.8 248.8 85.8H207.9C206.3 85.8 205.2 87.1999999999999 205.2 88.6V290.4C205.2 291.8 206.3 293.2000000000001 207.9 293.2000000000001H248.8C250.7 293.2000000000001 251.6 292.3 251.6 290.4V88.6M228.3 375.5C244.2 375.5 257.2 362.8 257.2 346.6C257.2 330.8 244.5 317.7 228.3 317.7S199.4 331 199.4 346.6C199.5 362.6 212.4 375.5 228.3 375.5" />
-		</font>
-	</defs>
-</svg>
diff --git a/front/src/semantic/themes/default/assets/fonts/icons.ttf b/front/src/semantic/themes/default/assets/fonts/icons.ttf
deleted file mode 100644
index dc18b3781fcd12a478fd2e8b9fc3c5c010621d31..0000000000000000000000000000000000000000
Binary files a/front/src/semantic/themes/default/assets/fonts/icons.ttf and /dev/null differ
diff --git a/front/src/semantic/themes/default/assets/fonts/icons.woff b/front/src/semantic/themes/default/assets/fonts/icons.woff
deleted file mode 100644
index 76b54da2a7055808cc776fa16a353b1664587d76..0000000000000000000000000000000000000000
Binary files a/front/src/semantic/themes/default/assets/fonts/icons.woff and /dev/null differ
diff --git a/front/src/semantic/themes/default/assets/fonts/icons.woff2 b/front/src/semantic/themes/default/assets/fonts/icons.woff2
deleted file mode 100644
index 32b980833a0fc217628c69ad7a8db409155c0a1c..0000000000000000000000000000000000000000
Binary files a/front/src/semantic/themes/default/assets/fonts/icons.woff2 and /dev/null differ
diff --git a/front/src/semantic/themes/default/assets/images/flags.png b/front/src/semantic/themes/default/assets/images/flags.png
deleted file mode 100644
index cdd33c3bc609a91ff492fa352d835bc65de6eb9c..0000000000000000000000000000000000000000
Binary files a/front/src/semantic/themes/default/assets/images/flags.png and /dev/null differ
diff --git a/front/src/store/auth.js b/front/src/store/auth.js
index 4100981bbbe6e78429cf5e086108c3abb3ee397b..90cd27e9e094b62534ec1ed94c325e4a4ae8ae7e 100644
--- a/front/src/store/auth.js
+++ b/front/src/store/auth.js
@@ -8,7 +8,11 @@ export default {
   state: {
     authenticated: false,
     username: '',
-    availablePermissions: {},
+    availablePermissions: {
+      settings: false,
+      library: false,
+      moderation: false
+    },
     profile: null,
     token: '',
     tokenData: {}
@@ -27,6 +31,7 @@ export default {
       state.tokenData = {}
       state.availablePermissions = {
         federation: false,
+        settings: false,
         library: false,
         upload: false
       }
@@ -70,9 +75,10 @@ export default {
       return axios.post('token/', credentials).then(response => {
         logger.default.info('Successfully logged in as', credentials.username)
         commit('token', response.data.token)
-        dispatch('fetchProfile')
-        // Redirect to a specified route
-        router.push(next)
+        dispatch('fetchProfile').then(() => {
+          // Redirect to a specified route
+          router.push(next)
+        })
       }, response => {
         logger.default.error('Error while logging in', response.data)
         onError(response)
@@ -111,22 +117,34 @@ export default {
         document.cookie = 'sessionid=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;'
       }
 
-      return axios.get('users/users/me/').then((response) => {
-        logger.default.info('Successfully fetched user profile')
-        let data = response.data
-        commit('authenticated', true)
-        commit('profile', data)
-        commit('username', data.username)
-        dispatch('ui/fetchUnreadNotifications', null, { root: true })
-        dispatch('favorites/fetch', null, { root: true })
-        dispatch('playlists/fetchOwn', null, { root: true })
-        Object.keys(data.permissions).forEach(function (key) {
+      return new Promise((resolve, reject) => {
+        axios.get('users/users/me/').then((response) => {
+          logger.default.info('Successfully fetched user profile')
+          dispatch('updateProfile', response.data).then(() => {
+            resolve(response.data)
+          })
+          dispatch('ui/fetchUnreadNotifications', null, { root: true })
+          dispatch('favorites/fetch', null, { root: true })
+          dispatch('playlists/fetchOwn', null, { root: true })
+        }, (response) => {
+          logger.default.info('Error while fetching user profile')
+          reject()
+        })
+      })
+    },
+    updateProfile({ commit }, data) {
+      return new Promise((resolve, reject) => {
+        commit("authenticated", true)
+        commit("profile", data)
+        commit("username", data.username)
+        Object.keys(data.permissions).forEach(function(key) {
           // this makes it easier to check for permissions in templates
-          commit('permission', {key, status: data.permissions[String(key)]})
+          commit("permission", {
+            key,
+            status: data.permissions[String(key)]
+          })
         })
-        return response.data
-      }, (response) => {
-        logger.default.info('Error while fetching user profile')
+        resolve()
       })
     },
     refreshToken ({commit, dispatch, state}) {
diff --git a/front/src/store/favorites.js b/front/src/store/favorites.js
index 131db24bd90cbe334d40bb2c7eaf359afe5e073c..1d1302eb6942e6697111b35774207d9cfe49c142 100644
--- a/front/src/store/favorites.js
+++ b/front/src/store/favorites.js
@@ -60,20 +60,12 @@ export default {
         page_size: 50,
         ordering: '-creation_date'
       }
-      let promise
-      if (url) {
-        promise = axios.get(url)
-      } else {
-        promise = axios.get('favorites/tracks/', {params: params})
-      }
+      let promise = axios.get('favorites/tracks/all/', {params: params})
       return promise.then((response) => {
         logger.default.info('Fetched a batch of ' + response.data.results.length + ' favorites')
         response.data.results.forEach(result => {
-          commit('track', {id: result.track.id, value: true})
+          commit('track', {id: result.track, value: true})
         })
-        if (response.data.next) {
-          dispatch('fetch', response.data.next)
-        }
       })
     }
   }
diff --git a/front/src/store/index.js b/front/src/store/index.js
index 051e89b39e11291f7b303056399faa56e8abed15..1ef33f2b04872f7b4887c4320af4e2ad5f8be129 100644
--- a/front/src/store/index.js
+++ b/front/src/store/index.js
@@ -34,7 +34,7 @@ export default new Vuex.Store({
     }),
     createPersistedState({
       key: 'instance',
-      paths: ['instance.events', 'instance.instanceUrl']
+      paths: ['instance.events', 'instance.instanceUrl', 'instance.knownInstances']
     }),
     createPersistedState({
       key: 'ui',
@@ -79,6 +79,7 @@ export default new Vuex.Store({
                 id: track.id,
                 title: track.title,
                 mbid: track.mbid,
+                uploads: track.uploads,
                 listen_url: track.listen_url,
                 album: {
                   id: track.album.id,
diff --git a/front/src/store/instance.js b/front/src/store/instance.js
index a1a1530a9f31029acd526bb21f47519194e0d78a..d0bff7dcb217007ff662838f5f96c2fb26b009aa 100644
--- a/front/src/store/instance.js
+++ b/front/src/store/instance.js
@@ -1,11 +1,11 @@
 import axios from 'axios'
 import logger from '@/logging'
-import _ from 'lodash'
+import _ from '@/lodash'
 
 function getDefaultUrl () {
   return (
     window.location.protocol + '//' + window.location.hostname +
-    (window.location.port ? ':' + window.location.port : '')
+    (window.location.port ? ':' + window.location.port : '') + '/'
   )
 }
 
@@ -16,6 +16,7 @@ export default {
     frontSettings: {},
     instanceUrl: process.env.VUE_APP_INSTANCE_URL,
     events: [],
+    knownInstances: [],
     settings: {
       instance: {
         name: {
@@ -40,14 +41,6 @@ export default {
         enabled: {
           value: true
         }
-      },
-      raven: {
-        front_enabled: {
-          value: false
-        },
-        front_dsn: {
-          value: null
-        }
       }
     }
   },
@@ -72,6 +65,15 @@ export default {
         value = value + '/'
       }
       state.instanceUrl = value
+
+      // append the URL to the list (and remove existing one if needed)
+      if (value) {
+        let index = state.knownInstances.indexOf(value);
+        if (index > -1) {
+          state.knownInstances.splice(index, 1);
+        }
+        state.knownInstances.splice(0, 0, value)
+      }
       if (!value) {
         axios.defaults.baseURL = null
         return
@@ -131,7 +133,7 @@ export default {
       })
     },
     fetchFrontSettings ({commit}) {
-      return axios.get('/settings.json').then(response => {
+      return axios.get('/front/settings.json').then(response => {
         commit('frontSettings', response.data)
       }, response => {
         logger.default.error('Error when fetching front-end configuration (or no customization available)')
diff --git a/front/src/store/player.js b/front/src/store/player.js
index dc01f368b0c056499d39502eb24459197caa6366..fac17368d10377b959fb98520f242eb2f77f4aa2 100644
--- a/front/src/store/player.js
+++ b/front/src/store/player.js
@@ -8,11 +8,13 @@ export default {
     maxConsecutiveErrors: 5,
     errorCount: 0,
     playing: false,
+    isLoadingAudio: false,
     volume: 0.5,
     tempVolume: 0.5,
     duration: 0,
     currentTime: 0,
     errored: false,
+    bufferProgress: 0,
     looping: 0 // 0 -> no, 1 -> on  track, 2 -> on queue
   },
   mutations: {
@@ -59,12 +61,18 @@ export default {
     playing (state, value) {
       state.playing = value
     },
+    bufferProgress (state, value) {
+      state.bufferProgress = value
+    },
     toggleLooping (state) {
       if (state.looping > 1) {
         state.looping = 0
       } else {
         state.looping += 1
       }
+    },
+    isLoadingAudio (state, value) {
+      state.isLoadingAudio = value
     }
   },
   getters: {
@@ -87,10 +95,19 @@ export default {
     incrementVolume ({commit, state}, value) {
       commit('volume', state.volume + value)
     },
-    stop (context) {
+    stop ({commit}) {
+      commit('errored', false)
+      commit('resetErrorCount')
     },
-    togglePlay ({commit, state}) {
+    togglePlay ({commit, state, dispatch}) {
       commit('playing', !state.playing)
+      if (state.errored && state.errorCount < state.maxConsecutiveErrors) {
+        setTimeout(() => {
+          if (state.playing) {
+            dispatch('queue/next', null, {root: true})
+          }
+        }, 3000)
+      }
     },
     trackListened ({commit, rootState}, track) {
       if (!rootState.auth.authenticated) {
@@ -113,7 +130,13 @@ export default {
     trackErrored ({commit, dispatch, state}) {
       commit('errored', true)
       commit('incrementErrorCount')
-      dispatch('queue/next', null, {root: true})
+      if (state.errorCount < state.maxConsecutiveErrors) {
+        setTimeout(() => {
+          if (state.playing) {
+            dispatch('queue/next', null, {root: true})
+          }
+        }, 3000)
+      }
     },
     updateProgress ({commit}, t) {
       commit('currentTime', t)
diff --git a/front/src/store/queue.js b/front/src/store/queue.js
index 0435c867ee1137c308f997bd2442a330fa0ffcf8..9a0d55c0bf47f0f80ee02c18e33253dc1626d5be 100644
--- a/front/src/store/queue.js
+++ b/front/src/store/queue.js
@@ -1,5 +1,5 @@
 import logger from '@/logging'
-import _ from 'lodash'
+import _ from '@/lodash'
 
 export default {
   namespaced: true,
@@ -59,7 +59,7 @@ export default {
     isEmpty: state => state.tracks.length === 0
   },
   actions: {
-    append ({commit, state, dispatch}, {track, index, skipPlay}) {
+    append ({commit, state, dispatch}, {track, index}) {
       index = index || state.tracks.length
       if (index > state.tracks.length - 1) {
         // we simply push to the end
@@ -68,27 +68,30 @@ export default {
         // we insert the track at given position
         commit('insert', {track, index})
       }
-      if (!skipPlay) {
-        dispatch('resume')
-      }
     },
 
-    appendMany ({state, dispatch}, {tracks, index, callback}) {
+    appendMany ({state, commit, dispatch}, {tracks, index, callback}) {
       logger.default.info('Appending many tracks to the queue', tracks.map(e => { return e.title }))
+      let shouldPlay = false
       if (state.tracks.length === 0) {
         index = 0
+        shouldPlay = true
       } else {
         index = index || state.tracks.length
       }
       let total = tracks.length
       tracks.forEach((t, i) => {
-        let p = dispatch('append', {track: t, index: index, skipPlay: true})
+        let p = dispatch('append', {track: t, index: index})
         index += 1
         if (callback && i + 1 === total) {
           p.then(callback)
         }
+        if (shouldPlay && p && i + 1 === total) {
+          p.then(() => {
+            dispatch('next')
+          })
+        }
       })
-      dispatch('resume')
     },
 
     cleanTrack ({state, dispatch, commit}, index) {
@@ -110,11 +113,6 @@ export default {
       }
     },
 
-    resume ({state, dispatch, rootState}) {
-      if (state.ended | rootState.player.errored) {
-        dispatch('next')
-      }
-    },
     previous ({state, dispatch, rootState}) {
       if (state.currentIndex > 0 && rootState.player.currentTime < 3) {
         dispatch('currentIndex', state.currentIndex - 1)
@@ -135,11 +133,13 @@ export default {
         }
       }
     },
+    last ({state, dispatch}) {
+      dispatch('currentIndex', state.tracks.length - 1)
+    },
     currentIndex ({commit, state, rootState, dispatch}, index) {
       commit('ended', false)
       commit('player/currentTime', 0, {root: true})
       commit('player/playing', true, {root: true})
-      commit('player/errored', false, {root: true})
       commit('currentIndex', index)
       if (state.tracks.length - index <= 2 && rootState.radios.running) {
         dispatch('radios/populateQueue', null, {root: true})
diff --git a/front/src/store/radios.js b/front/src/store/radios.js
index 49bbd4f9410dff015721f57073c4d95c58d7146a..c27421ed06ca4fbbd6b8c0926c226e7099550165 100644
--- a/front/src/store/radios.js
+++ b/front/src/store/radios.js
@@ -48,7 +48,7 @@ export default {
         logger.default.info('Successfully started radio ', type)
         commit('current', {type, objectId, session: response.data.id, customRadioId})
         commit('running', true)
-        dispatch('populateQueue')
+        dispatch('populateQueue', true)
       }, (response) => {
         logger.default.error('Error while starting radio', type)
       })
@@ -57,7 +57,7 @@ export default {
       commit('current', null)
       commit('running', false)
     },
-    populateQueue ({rootState, state, dispatch}) {
+    populateQueue ({rootState, state, dispatch}, playNow) {
       if (!state.running) {
         return
       }
@@ -69,7 +69,12 @@ export default {
       }
       return axios.post('radios/tracks/', params).then((response) => {
         logger.default.info('Adding track to queue from radio')
-        dispatch('queue/append', {track: response.data.track}, {root: true})
+        let append = dispatch('queue/append', {track: response.data.track}, {root: true})
+        if (playNow) {
+          append.then(() => {
+            dispatch('queue/last', null, {root: true})
+          })
+        }
       }, (response) => {
         logger.default.error('Error while adding track to queue from radio')
       })
diff --git a/front/src/store/ui.js b/front/src/store/ui.js
index da08754962334062235c8140eeeb2b880f2c9be9..b366f233d89ea31cda7fb2eb0d2474a28d3acc09 100644
--- a/front/src/store/ui.js
+++ b/front/src/store/ui.js
@@ -49,8 +49,8 @@ export default {
       })
     },
     websocketEvent ({state}, event) {
-      console.log('Dispatching websocket event', event)
       let handlers = state.websocketEventsHandlers[event.type]
+      console.log('Dispatching websocket event', event, handlers)
       if (!handlers) {
         return
       }
diff --git a/front/src/style/_main.scss b/front/src/style/_main.scss
new file mode 100644
index 0000000000000000000000000000000000000000..d6c5ff61cd107d0d6dea5920f15ad1c253e8ee0f
--- /dev/null
+++ b/front/src/style/_main.scss
@@ -0,0 +1,269 @@
+/*
+
+███████╗███████╗███╗   ███╗ █████╗ ███╗   ██╗████████╗██╗ ██████╗    ██╗   ██╗██╗
+██╔════╝██╔════╝████╗ ████║██╔══██╗████╗  ██║╚══██╔══╝██║██╔════╝    ██║   ██║██║
+███████╗█████╗  ██╔████╔██║███████║██╔██╗ ██║   ██║   ██║██║         ██║   ██║██║
+╚════██║██╔══╝  ██║╚██╔╝██║██╔══██║██║╚██╗██║   ██║   ██║██║         ██║   ██║██║
+███████║███████╗██║ ╚═╝ ██║██║  ██║██║ ╚████║   ██║   ██║╚██████╗    ╚██████╔╝██║
+╚══════╝╚══════╝╚═╝     ╚═╝╚═╝  ╚═╝╚═╝  ╚═══╝   ╚═╝   ╚═╝ ╚═════╝     ╚═════╝ ╚═╝
+
+  Import this file into your LESS project to use Semantic UI without build tools
+*/
+
+/* Global */
+@import "~semantic-ui-css/components/reset.css";
+// we use our custom site css here to avoid loading google font
+@import "./site";
+
+/* Elements */
+@import "~semantic-ui-css/components/button.css";
+@import "~semantic-ui-css/components/container.css";
+@import "~semantic-ui-css/components/divider.css";
+// @import "~semantic-ui-css/components/flag.css";
+@import "~semantic-ui-css/components/header.css";
+@import "~semantic-ui-css/components/icon.css";
+@import "~semantic-ui-css/components/image.css";
+@import "~semantic-ui-css/components/input.css";
+@import "~semantic-ui-css/components/label.css";
+@import "~semantic-ui-css/components/list.css";
+@import "~semantic-ui-css/components/loader.css";
+@import "~semantic-ui-css/components/placeholder.css";
+// @import "~semantic-ui-css/components/rail.css";
+// @import "~semantic-ui-css/components/reveal.css";
+@import "~semantic-ui-css/components/segment.css";
+@import "~semantic-ui-css/components/step.css";
+
+/* Collections */
+// @import "~semantic-ui-css/components/breadcrumb.css";
+@import "~semantic-ui-css/components/form.css";
+@import "~semantic-ui-css/components/grid.css";
+@import "~semantic-ui-css/components/menu.css";
+@import "~semantic-ui-css/components/message.css";
+@import "~semantic-ui-css/components/table.css";
+
+/* Views */
+// @import "~semantic-ui-css/components/ad.css";
+@import "~semantic-ui-css/components/card.css";
+// @import "~semantic-ui-css/components/comment.css";
+// @import "~semantic-ui-css/components/feed.css";
+@import "~semantic-ui-css/components/item.css";
+@import "~semantic-ui-css/components/statistic.css";
+
+/* Modules */
+// @import "~semantic-ui-css/components/accordion.css";
+@import "~semantic-ui-css/components/checkbox.css";
+@import "~semantic-ui-css/components/dimmer.css";
+@import "~semantic-ui-css/components/dropdown.css";
+// @import "~semantic-ui-css/components/embed.css";
+@import "~semantic-ui-css/components/modal.css";
+// @import "~semantic-ui-css/components/nag.css";
+@import "~semantic-ui-css/components/popup.css";
+@import "~semantic-ui-css/components/progress.css";
+// @import "~semantic-ui-css/components/rating.css";
+@import "~semantic-ui-css/components/search.css";
+// @import "~semantic-ui-css/components/shape.css";
+@import "~semantic-ui-css/components/sidebar.css";
+@import "~semantic-ui-css/components/sticky.css";
+@import "~semantic-ui-css/components/tab.css";
+@import "~semantic-ui-css/components/transition.css";
+
+
+
+// we do the import here instead in main.js
+// as resolve order is not deterministric in webpack
+// and we end up with CSS rules not applied,
+// see https://github.com/webpack/webpack/issues/215
+@import "./vendor/media";
+
+html,
+body {
+  @include media("<desktop") {
+    font-size: 90%;
+  }
+}
+#app {
+  font-family: "Avenir", Helvetica, Arial, sans-serif;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+.instance-chooser {
+  margin-top: 2em;
+}
+
+.main.pusher,
+.footer {
+  @include media(">desktop") {
+    margin-left: 350px !important;
+    margin-top: 50px;
+  }
+  transform: none !important;
+}
+
+.main.pusher > .ui.secondary.menu {
+  margin-left: 0;
+  margin-right: 0;
+  border: none;
+  box-shadow: inset 0px -2px 0px 0px rgba(34, 36, 38, 0.15);
+  .ui.item {
+    border: none;
+    border-bottom-style: none;
+    margin-bottom: 0px;
+    &.active {
+      box-shadow: inset 0px -2px 0px 0px #000;
+    }
+  }
+  @include media(">tablet") {
+    padding: 0 2.5rem;
+  }
+  @include media(">desktop") {
+    position: fixed;
+    left: 350px;
+    right: 0px;
+    top: 0px;
+    z-index: 99;
+  }
+  background-color: white;
+  .item {
+    padding-top: 1.5em;
+    padding-bottom: 1.5em;
+  }
+}
+
+.service-messages {
+  position: fixed;
+  bottom: 1em;
+  left: 1em;
+  @include media(">desktop") {
+    left: 350px;
+  }
+}
+.main-pusher {
+  padding: 1.5rem 0;
+}
+.ui.stripe.segment,
+#footer {
+  padding: 2em;
+  @include media(">tablet") {
+    padding: 4em;
+  }
+}
+
+.ellipsis {
+  text-overflow: ellipsis;
+  white-space: nowrap;
+  overflow: hidden;
+}
+
+.ui.small.text.container {
+  max-width: 500px !important;
+}
+
+.button.icon.tiny {
+  padding: 0.5em !important;
+}
+
+.sidebar {
+  .logo {
+    &.bordered.icon {
+      padding: .5em .41em !important;
+    }
+    path {
+      fill: white;
+    }
+  }
+  .tab {
+    flex-direction: column;
+  }
+}
+
+.discrete {
+  color: rgba(0, 0, 0, 0.87);
+}
+.link {
+  cursor: pointer;
+}
+
+.ui.really.basic.button {
+  &:not(:focus) {
+    box-shadow: none !important;
+    background-color: none !important;
+  }
+}
+
+.floated.buttons .button ~ .dropdown {
+  border-left: none;
+}
+
+.ui.icon.header .circular.icon {
+  display: flex;
+  justify-content: center;
+}
+
+.segment-content .button {
+  margin: 0.5em;
+}
+
+a {
+  cursor: pointer;
+}
+.segment.hidden {
+  display: none;
+}
+
+button.reset {
+  border: none;
+  margin: 0;
+  padding: 0;
+  width: auto;
+  overflow: visible;
+
+  background: transparent;
+
+  /* inherit font & color from ancestor */
+  color: inherit;
+  font: inherit;
+
+  /* Normalize `line-height`. Cannot be changed from `normal` in Firefox 4+. */
+  line-height: normal;
+
+  /* Corrects font smoothing for webkit */
+  -webkit-font-smoothing: inherit;
+  -moz-osx-font-smoothing: inherit;
+  /* Corrects inability to style clickable `input` types in iOS */
+  -webkit-appearance: none;
+  text-align: inherit;
+}
+
+.ui.table > caption {
+  font-weight: bold;
+  padding: 0.5em;
+  text-align: left;
+}
+[role="button"] {
+  cursor: pointer;
+}
+
+.left.floated {
+  float: left;
+}
+
+.right.floated {
+  float: right;
+}
+
+
+[data-tooltip]::after {
+  white-space: normal;
+  width: 500px;
+  max-width: 500px;
+  z-index: 999;
+}
+
+label .tooltip {
+  margin-left: 1em;
+}
+
+canvas.color-thief {
+  display: none;
+}
diff --git a/front/src/style/_site.scss b/front/src/style/_site.scss
new file mode 100644
index 0000000000000000000000000000000000000000..eba288882791ea9e8fc5b80e519388f590540b07
--- /dev/null
+++ b/front/src/style/_site.scss
@@ -0,0 +1,202 @@
+/*!
+ * # Semantic UI 2.4.1 - Site
+ * http://github.com/semantic-org/semantic-ui/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+
+
+/*******************************
+             Page
+*******************************/
+
+html,
+body {
+  height: 100%;
+}
+html {
+  font-size: 14px;
+}
+body {
+  margin: 0px;
+  padding: 0px;
+  overflow-x: hidden;
+  min-width: 320px;
+  background: #FFFFFF;
+  font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;
+  font-size: 14px;
+  line-height: 1.4285em;
+  color: rgba(0, 0, 0, 0.87);
+  font-smoothing: antialiased;
+}
+
+
+/*******************************
+             Headers
+*******************************/
+
+h1,
+h2,
+h3,
+h4,
+h5 {
+  font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;
+  line-height: 1.28571429em;
+  margin: calc(2rem -  0.14285714em ) 0em 1rem;
+  font-weight: bold;
+  padding: 0em;
+}
+h1 {
+  min-height: 1rem;
+  font-size: 2rem;
+}
+h2 {
+  font-size: 1.71428571rem;
+}
+h3 {
+  font-size: 1.28571429rem;
+}
+h4 {
+  font-size: 1.07142857rem;
+}
+h5 {
+  font-size: 1rem;
+}
+h1:first-child,
+h2:first-child,
+h3:first-child,
+h4:first-child,
+h5:first-child {
+  margin-top: 0em;
+}
+h1:last-child,
+h2:last-child,
+h3:last-child,
+h4:last-child,
+h5:last-child {
+  margin-bottom: 0em;
+}
+
+
+/*******************************
+             Text
+*******************************/
+
+p {
+  margin: 0em 0em 1em;
+  line-height: 1.4285em;
+}
+p:first-child {
+  margin-top: 0em;
+}
+p:last-child {
+  margin-bottom: 0em;
+}
+
+/*-------------------
+        Links
+--------------------*/
+
+a {
+  color: #4183C4;
+  text-decoration: none;
+}
+a:hover {
+  color: #1e70bf;
+  text-decoration: none;
+}
+
+
+/*******************************
+         Scrollbars
+*******************************/
+
+
+
+/*******************************
+          Highlighting
+*******************************/
+
+
+/* Site */
+::-webkit-selection {
+  background-color: #CCE2FF;
+  color: rgba(0, 0, 0, 0.87);
+}
+::-moz-selection {
+  background-color: #CCE2FF;
+  color: rgba(0, 0, 0, 0.87);
+}
+::selection {
+  background-color: #CCE2FF;
+  color: rgba(0, 0, 0, 0.87);
+}
+
+/* Form */
+textarea::-webkit-selection,
+input::-webkit-selection {
+  background-color: rgba(100, 100, 100, 0.4);
+  color: rgba(0, 0, 0, 0.87);
+}
+textarea::-moz-selection,
+input::-moz-selection {
+  background-color: rgba(100, 100, 100, 0.4);
+  color: rgba(0, 0, 0, 0.87);
+}
+textarea::selection,
+input::selection {
+  background-color: rgba(100, 100, 100, 0.4);
+  color: rgba(0, 0, 0, 0.87);
+}
+
+/* Force Simple Scrollbars */
+body ::-webkit-scrollbar {
+  -webkit-appearance: none;
+  width: 10px;
+  height: 10px;
+}
+body ::-webkit-scrollbar-track {
+  background: rgba(0, 0, 0, 0.1);
+  border-radius: 0px;
+}
+body ::-webkit-scrollbar-thumb {
+  cursor: pointer;
+  border-radius: 5px;
+  background: rgba(0, 0, 0, 0.25);
+  -webkit-transition: color 0.2s ease;
+  transition: color 0.2s ease;
+}
+body ::-webkit-scrollbar-thumb:window-inactive {
+  background: rgba(0, 0, 0, 0.15);
+}
+body ::-webkit-scrollbar-thumb:hover {
+  background: rgba(128, 135, 139, 0.8);
+}
+
+/* Inverted UI */
+body .ui.inverted::-webkit-scrollbar-track {
+  background: rgba(255, 255, 255, 0.1);
+}
+body .ui.inverted::-webkit-scrollbar-thumb {
+  background: rgba(255, 255, 255, 0.25);
+}
+body .ui.inverted::-webkit-scrollbar-thumb:window-inactive {
+  background: rgba(255, 255, 255, 0.15);
+}
+body .ui.inverted::-webkit-scrollbar-thumb:hover {
+  background: rgba(255, 255, 255, 0.35);
+}
+
+
+/*******************************
+        Global Overrides
+*******************************/
+
+
+
+/*******************************
+         Site Overrides
+*******************************/
diff --git a/front/src/utils/time.js b/front/src/utils/time.js
index 022a365bf2a6421de20ad8e212112bfdae6484d2..ca3edbdea32a6721b05411117f6c38fd42c801ae 100644
--- a/front/src/utils/time.js
+++ b/front/src/utils/time.js
@@ -12,5 +12,13 @@ export default {
     min = Math.floor(sec / 60)
     sec = sec - min * 60
     return pad(min) + ':' + pad(sec)
+  },
+  durationFormatted (v) {
+    let duration = parseInt(v)
+    if (duration % 1 !== 0) {
+      return this.parse(0)
+    }
+    duration = Math.round(duration)
+    return this.parse(duration)
   }
 }
diff --git a/front/src/vendor/color-thief.js b/front/src/vendor/color-thief.js
index 0acb7c13ae9e396fca00c5b9cc8040267e156c16..ed0612f847a5f8f7e3d4ec14b46ed649a3c9dba4 100644
--- a/front/src/vendor/color-thief.js
+++ b/front/src/vendor/color-thief.js
@@ -27,6 +27,7 @@
 */
 var CanvasImage = function (image) {
     this.canvas  = document.createElement('canvas');
+    this.canvas.className = "color-thief hidden";
     this.context = this.canvas.getContext('2d');
 
     document.body.appendChild(this.canvas);
diff --git a/front/src/views/Notifications.vue b/front/src/views/Notifications.vue
index 758283c779452540478c7e1c640e4d73e3000a27..66aaccfa28393d81027edce4ab7fbb6153912c0d 100644
--- a/front/src/views/Notifications.vue
+++ b/front/src/views/Notifications.vue
@@ -1,8 +1,8 @@
 <template>
-  <div class="main pusher" v-title="labels.title">
-    <div class="ui vertical aligned stripe segment">
+  <main class="main pusher" v-title="labels.title">
+    <section class="ui vertical aligned stripe segment">
       <div v-if="isLoading" :class="['ui', {'active': isLoading}, 'inverted', 'dimmer']">
-        <div class="ui text loader"><translate>Loading notifications...</translate></div>
+        <div class="ui text loader"><translate>Loading notifications…</translate></div>
       </div>
       <div v-else class="ui container">
         <h1 class="ui header"><translate>Your notifications</translate></h1>
@@ -24,22 +24,22 @@
           </tbody>
         </table>
         <p v-else>
-          <translate>We don't have any notification to display!</translate>
+          <translate>No notifications yet.</translate>
         </p>
       </div>
-    </div>
-  </div>
+    </section>
+  </main>
 </template>
 
 <script>
-import {mapState} from 'vuex'
-import axios from 'axios'
-import logger from '@/logging'
+import { mapState } from "vuex"
+import axios from "axios"
+import logger from "@/logging"
 
-import NotificationRow from '@/components/notifications/NotificationRow'
+import NotificationRow from "@/components/notifications/NotificationRow"
 
 export default {
-  data () {
+  data() {
     return {
       isLoading: false,
       notifications: null,
@@ -51,64 +51,63 @@ export default {
   components: {
     NotificationRow
   },
-  created () {
+  created() {
     this.fetch(this.filters)
-    this.$store.commit('ui/addWebsocketEventHandler', {
-      eventName: 'inbox.item_added',
-      id: 'notificationPage',
+    this.$store.commit("ui/addWebsocketEventHandler", {
+      eventName: "inbox.item_added",
+      id: "notificationPage",
       handler: this.handleNewNotification
     })
   },
-  destroyed () {
-    this.$store.commit('ui/removeWebsocketEventHandler', {
-      eventName: 'inbox.item_added',
-      id: 'notificationPage',
+  destroyed() {
+    this.$store.commit("ui/removeWebsocketEventHandler", {
+      eventName: "inbox.item_added",
+      id: "notificationPage"
     })
   },
   computed: {
     ...mapState({
       events: state => state.instance.events
     }),
-    labels () {
+    labels() {
       return {
-        title: this.$gettext('Notifications'),
+        title: this.$gettext("Notifications")
       }
     }
   },
   methods: {
-    handleNewNotification (event) {
+    handleNewNotification(event) {
       this.notifications.results.unshift(event.item)
     },
-    fetch (params) {
+    fetch(params) {
       this.isLoading = true
       let self = this
-      axios.get('federation/inbox/', {params: params}).then((response) => {
+      axios.get("federation/inbox/", { params: params }).then(response => {
         self.isLoading = false
         self.notifications = response.data
       })
     },
-    markAllAsRead () {
+    markAllAsRead() {
       let self = this
       let before = this.notifications.results[0].id
       let payload = {
-        action: 'read',
-        objects: 'all',
+        action: "read",
+        objects: "all",
         filters: {
           is_read: false,
           before
         }
       }
-      axios.post('federation/inbox/action/', payload).then((response) => {
-        self.$store.commit('ui/notifications', {type: 'inbox', count: 0})
+      axios.post("federation/inbox/action/", payload).then(response => {
+        self.$store.commit("ui/notifications", { type: "inbox", count: 0 })
         self.notifications.results.forEach(n => {
           n.is_read = true
         })
-
       })
-    },
+    }
   },
   watch: {
-    'filters.is_read' () {
+    "filters.is_read"() {
       this.fetch(this.filters)
     }
   }
diff --git a/front/src/views/admin/Settings.vue b/front/src/views/admin/Settings.vue
index 43bb54de337ffc4daa6cc30317f0846b214a3e01..779bb7459bd0d9e6966370f22cdd74cc789f77f7 100644
--- a/front/src/views/admin/Settings.vue
+++ b/front/src/views/admin/Settings.vue
@@ -1,5 +1,5 @@
 <template>
-  <div class="main pusher"  v-title="labels.settings">
+  <main class="main pusher"  v-title="labels.settings">
     <div class="ui vertical stripe segment">
       <div class="ui text container">
         <div :class="['ui', {'loading': isLoading}, 'form']"></div>
@@ -24,137 +24,135 @@
 
       </div>
     </div>
-  </div>
+  </main>
 </template>
 
 <script>
-import axios from 'axios'
-import $ from 'jquery'
+import axios from "axios"
+import $ from "jquery"
 
-import SettingsGroup from '@/components/admin/SettingsGroup'
+import SettingsGroup from "@/components/admin/SettingsGroup"
 
 export default {
   components: {
     SettingsGroup
   },
-  data () {
+  data() {
     return {
       isLoading: false,
       settingsData: null,
       current: null
     }
   },
-  created () {
+  created() {
     let self = this
     this.fetchSettings().then(r => {
       self.$nextTick(() => {
         if (self.$store.state.route.hash) {
           self.scrollTo(self.$store.state.route.hash.substr(1))
         }
-        $('select.dropdown').dropdown()
+        $("select.dropdown").dropdown()
       })
     })
   },
   methods: {
-    scrollTo (id) {
+    scrollTo(id) {
       this.current = id
       document.getElementById(id).scrollIntoView()
     },
-    fetchSettings () {
+    fetchSettings() {
       let self = this
       self.isLoading = true
-      return axios.get('instance/admin/settings/').then((response) => {
+      return axios.get("instance/admin/settings/").then(response => {
         self.settingsData = response.data
         self.isLoading = false
       })
     }
   },
   computed: {
-    labels () {
+    labels() {
       return {
-        settings: this.$gettext('Instance settings')
+        settings: this.$gettext("Instance settings")
       }
     },
-    groups () {
+    groups() {
       // somehow, extraction fails if in the return block directly
-      let instanceLabel = this.$gettext('Instance information')
-      let usersLabel = this.$gettext('Users')
-      let playlistsLabel = this.$gettext('Playlists')
-      let federationLabel = this.$gettext('Federation')
-      let subsonicLabel = this.$gettext('Subsonic')
-      let statisticsLabel = this.$gettext('Statistics')
-      let errorLabel = this.$gettext('Error reporting')
+      let instanceLabel = this.$gettext("Instance information")
+      let usersLabel = this.$gettext("Users")
+      let musicLabel = this.$gettext("Music")
+      let playlistsLabel = this.$gettext("Playlists")
+      let federationLabel = this.$gettext("Federation")
+      let subsonicLabel = this.$gettext("Subsonic")
+      let statisticsLabel = this.$gettext("Statistics")
+      let errorLabel = this.$gettext("Error reporting")
       return [
         {
           label: instanceLabel,
-          id: 'instance',
+          id: "instance",
           settings: [
-            'instance__name',
-            'instance__short_description',
-            'instance__long_description'
+            "instance__name",
+            "instance__short_description",
+            "instance__long_description"
           ]
         },
         {
           label: usersLabel,
-          id: 'users',
+          id: "users",
           settings: [
-            'users__registration_enabled',
-            'common__api_authentication_required',
-            'users__default_permissions',
-            'users__upload_quota'
+            "users__registration_enabled",
+            "common__api_authentication_required",
+            "users__default_permissions",
+            "users__upload_quota"
           ]
         },
         {
-          label: playlistsLabel,
-          id: 'playlists',
+          label: musicLabel,
+          id: "music",
           settings: [
-            'playlists__max_tracks'
+            "music__transcoding_enabled",
+            "music__transcoding_cache_duration"
           ]
         },
+        {
+          label: playlistsLabel,
+          id: "playlists",
+          settings: ["playlists__max_tracks"]
+        },
         {
           label: federationLabel,
-          id: 'federation',
+          id: "federation",
           settings: [
-            'federation__enabled',
-            'federation__music_needs_approval',
-            'federation__collection_page_size',
-            'federation__music_cache_duration',
-            'federation__actor_fetch_delay'
+            "federation__enabled",
+            "federation__music_needs_approval",
+            "federation__collection_page_size",
+            "federation__music_cache_duration",
+            "federation__actor_fetch_delay"
           ]
         },
         {
           label: subsonicLabel,
-          id: 'subsonic',
-          settings: [
-            'subsonic__enabled'
-          ]
+          id: "subsonic",
+          settings: ["subsonic__enabled"]
         },
         {
           label: statisticsLabel,
-          id: 'statistics',
+          id: "statistics",
           settings: [
-            'instance__nodeinfo_enabled',
-            'instance__nodeinfo_stats_enabled',
-            'instance__nodeinfo_private'
-          ]
-        },
-        {
-          label: errorLabel,
-          id: 'reporting',
-          settings: [
-            'raven__front_enabled',
-            'raven__front_dsn'
-
+            "instance__nodeinfo_enabled",
+            "instance__nodeinfo_stats_enabled",
+            "instance__nodeinfo_private"
           ]
         }
       ]
     }
   },
   watch: {
-    settingsData () {
+    settingsData() {
       let self = this
       this.$nextTick(() => {
-        $(self.$el).find('.sticky').sticky({context: '#settings-grid'})
+        $(self.$el)
+          .find(".sticky")
+          .sticky({ context: "#settings-grid" })
       })
     }
   }
diff --git a/front/src/views/admin/library/Base.vue b/front/src/views/admin/library/Base.vue
index 22f20452f76ed5a2c244a47774a7709d0c65bcc3..45d257606b403769d865560749cf31a0700e0d09 100644
--- a/front/src/views/admin/library/Base.vue
+++ b/front/src/views/admin/library/Base.vue
@@ -1,10 +1,10 @@
 <template>
   <div class="main pusher"  v-title="labels.title">
-    <div class="ui secondary pointing menu">
+    <nav class="ui secondary pointing menu" role="navigation" :aria-label="labels.secondaryMenu">
       <router-link
         class="ui item"
         :to="{name: 'manage.library.files'}"><translate>Files</translate></router-link>
-    </div>
+    </nav>
     <router-view :key="$route.fullPath"></router-view>
   </div>
 </template>
@@ -12,10 +12,12 @@
 <script>
 export default {
   computed: {
-    labels () {
-      let title = this.$gettext('Manage library')
+    labels() {
+      let title = this.$gettext("Manage library")
+      let secondaryMenu = this.$gettext("Secondary menu")
       return {
-        title
+        title,
+        secondaryMenu
       }
     }
   }
@@ -23,10 +25,8 @@ export default {
 </script>
 
 <style scoped>
-
 .ui.menu .item > .label {
   position: absolute;
   right: -2em;
 }
-
 </style>
diff --git a/front/src/views/admin/library/FilesList.vue b/front/src/views/admin/library/FilesList.vue
index 1c5216c8facf0c1c902f7b6bab0b8eb0ad19a16c..3557879bb29acb14a704a6c5113cf243ca0a4edc 100644
--- a/front/src/views/admin/library/FilesList.vue
+++ b/front/src/views/admin/library/FilesList.vue
@@ -1,24 +1,24 @@
 <template>
-  <div v-title="labels.title">
-    <div class="ui vertical stripe segment">
+  <main v-title="labels.title">
+    <section class="ui vertical stripe segment">
       <h2 class="ui header"><translate>Library files</translate></h2>
       <div class="ui hidden divider"></div>
       <library-files-table :show-library="true"></library-files-table>
-    </div>
-  </div>
+    </section>
+  </main>
 </template>
 
 <script>
-import LibraryFilesTable from '@/components/manage/library/FilesTable'
+import LibraryFilesTable from "@/components/manage/library/FilesTable"
 
 export default {
   components: {
     LibraryFilesTable
   },
   computed: {
-    labels () {
+    labels() {
       return {
-        title: this.$gettext('Files')
+        title: this.$gettext("Files")
       }
     }
   }
diff --git a/front/src/views/admin/moderation/AccountsDetail.vue b/front/src/views/admin/moderation/AccountsDetail.vue
new file mode 100644
index 0000000000000000000000000000000000000000..5a339db5656e7e453fcabbafd9c9af20ca6eb3b8
--- /dev/null
+++ b/front/src/views/admin/moderation/AccountsDetail.vue
@@ -0,0 +1,492 @@
+<template>
+  <main>
+    <div v-if="isLoading" class="ui vertical segment">
+      <div :class="['ui', 'centered', 'active', 'inline', 'loader']"></div>
+    </div>
+    <template v-if="object">
+      <section :class="['ui', 'head', 'vertical', 'stripe', 'segment']" v-title="object.full_username">
+        <div class="ui stackable two column grid">
+          <div class="ui column">
+            <div class="segment-content">
+              <h2 class="ui header">
+                <i class="circular inverted user icon"></i>
+                <div class="content">
+                  {{ object.full_username }}
+                  <div class="sub header">
+                    <template v-if="object.user">
+                      <span class="ui tiny teal icon label">
+                        <i class="home icon"></i>
+                        <translate>Local account</translate>
+                      </span>
+                      &nbsp;
+                    </template>
+                    <a :href="object.url || object.fid" target="_blank" rel="noopener noreferrer">
+                      <translate>Open profile</translate>&nbsp;
+                      <i class="external icon"></i>
+                    </a>
+                  </div>
+                </div>
+              </h2>
+            </div>
+          </div>
+          <div class="ui column">
+            <div v-if="!object.user" class="ui compact clearing placeholder segment">
+              <template v-if="isLoadingPolicy">
+                <div class="paragraph">
+                  <div class="line"></div>
+                  <div class="line"></div>
+                  <div class="line"></div>
+                  <div class="line"></div>
+                  <div class="line"></div>
+                </div>
+              </template>
+              <template v-else-if="!policy && !showPolicyForm">
+                <header class="ui header">
+                  <h3>
+                    <i class="shield icon"></i>
+                    <translate>You don't have any rule in place for this account.</translate>
+                  </h3>
+                </header>
+                <p><translate>Moderation policies help you control how your instance interact with a given domain or account.</translate></p>
+                <button @click="showPolicyForm = true" class="ui primary button">Add a moderation policy</button>
+              </template>
+              <instance-policy-card v-else-if="policy && !showPolicyForm" :object="policy" @update="showPolicyForm = true">
+                <header class="ui header">
+                  <h3>
+                    <translate>This domain is subject to specific moderation rules</translate>
+                  </h3>
+                </header>
+              </instance-policy-card>
+              <instance-policy-form
+                v-else-if="showPolicyForm"
+                @cancel="showPolicyForm = false"
+                @save="updatePolicy"
+                @delete="policy = null; showPolicyForm = false"
+                :object="policy"
+                type="actor"
+                :target="object.full_username" />
+            </div>
+          </div>
+        </div>
+      </section>
+      <div class="ui vertical stripe segment">
+        <div class="ui stackable three column grid">
+          <div class="column">
+            <section>
+              <h3 class="ui header">
+                <i class="info icon"></i>
+                <div class="content">
+                  <translate>Account data</translate>
+                </div>
+              </h3>
+              <table class="ui very basic table">
+                <tbody>
+                  <tr>
+                    <td>
+                      <translate>Username</translate>
+                    </td>
+                    <td>
+                      {{ object.preferred_username }}
+                    </td>
+                  </tr>
+                  <tr v-if="!object.user">
+                    <td>
+                      <translate>Domain</translate>
+                    </td>
+                    <td>
+                      <router-link :to="{name: 'manage.moderation.domains.detail', params: {id: object.domain }}">
+                        {{ object.domain }}
+                      </router-link>
+                    </td>
+                  </tr>
+                  <tr>
+                    <td>
+                      <translate>Display name</translate>
+                    </td>
+                    <td>
+                      {{ object.name }}
+                    </td>
+                  </tr>
+                  <tr v-if="object.user">
+                    <td>
+                      <translate>Email address</translate>
+                    </td>
+                    <td>
+                      {{ object.user.email }}
+                    </td>
+                  </tr>
+                  <tr v-if="object.user">
+                    <td>
+                      <translate>Login status</translate>
+                    </td>
+                    <td>
+                      <div class="ui toggle checkbox" v-if="object.user.username != $store.state.auth.profile.username">
+                        <input
+                          @change="updateUser('is_active')"
+                          v-model="object.user.is_active" type="checkbox">
+                        <label>
+                          <translate v-if="object.user.is_active" key="1">Enabled</translate>
+                          <translate v-else key="2">Disabled</translate>
+                        </label>
+                      </div>
+                      <translate v-else-if="object.user.is_active" key="1">Enabled</translate>
+                      <translate v-else key="2">Disabled</translate>
+                    </td>
+                  </tr>
+                  <tr v-if="object.user">
+                    <td>
+                      <translate>Permissions</translate>
+                    </td>
+                    <td>
+                      <select
+                        @change="updateUser('permissions')"
+                        v-model="permissions"
+                        multiple
+                        class="ui search selection dropdown">
+                        <option v-for="p in allPermissions" :value="p.code">{{ p.label }}</option>
+                      </select>
+                    </td>
+                  </tr>
+                  <tr>
+                    <td>
+                      <translate>Type</translate>
+                    </td>
+                    <td>
+                      {{ object.type }}
+                    </td>
+                  </tr>
+                  <tr v-if="!object.user">
+                    <td>
+                      <translate>First seen</translate>
+                    </td>
+                    <td>
+                      <human-date :date="object.creation_date"></human-date>
+                    </td>
+                  </tr>
+                  <tr v-if="!object.user">
+                    <td>
+                      <translate>Last checked</translate>
+                    </td>
+                    <td>
+                      <human-date v-if="object.last_fetch_date" :date="object.last_fetch_date"></human-date>
+                      <translate v-else>N/A</translate>
+                    </td>
+                  </tr>
+                  <tr v-if="object.user">
+                    <td>
+                      <translate>Sign-up date</translate>
+                    </td>
+                    <td>
+                      <human-date :date="object.user.date_joined"></human-date>
+                    </td>
+                  </tr>
+                  <tr v-if="object.user">
+                    <td>
+                      <translate>Last activity</translate>
+                    </td>
+                    <td>
+                      <human-date :date="object.user.last_activity"></human-date>
+                    </td>
+                  </tr>
+                </tbody>
+              </table>
+            </section>
+          </div>
+          <div class="column">
+            <section>
+              <h3 class="ui header">
+                <i class="feed icon"></i>
+                <div class="content">
+                  <translate>Activity</translate>&nbsp;
+                  <span :data-tooltip="labels.statsWarning"><i class="question circle icon"></i></span>
+
+                </div>
+              </h3>
+              <div v-if="isLoadingStats" class="ui placeholder">
+                <div class="full line"></div>
+                <div class="short line"></div>
+                <div class="medium line"></div>
+                <div class="long line"></div>
+              </div>
+              <table v-else class="ui very basic table">
+                <tbody>
+                  <tr>
+                    <td>
+                      <translate>Emitted messages</translate>
+                    </td>
+                    <td>
+                      {{ stats.outbox_activities}}
+                    </td>
+                  </tr>
+                  <tr>
+                    <td>
+                      <translate>Received library follows</translate>
+                    </td>
+                    <td>
+                      {{ stats.received_library_follows}}
+                    </td>
+                  </tr>
+                  <tr>
+                    <td>
+                      <translate>Emitted library follows</translate>
+                    </td>
+                    <td>
+                      {{ stats.emitted_library_follows}}
+                    </td>
+                  </tr>
+                </tbody>
+              </table>
+            </section>
+          </div>
+          <div class="column">
+            <section>
+              <h3 class="ui header">
+                <i class="music icon"></i>
+                <div class="content">
+                  <translate>Audio content</translate>&nbsp;
+                  <span :data-tooltip="labels.statsWarning"><i class="question circle icon"></i></span>
+
+                </div>
+              </h3>
+              <div v-if="isLoadingStats" class="ui placeholder">
+                <div class="full line"></div>
+                <div class="short line"></div>
+                <div class="medium line"></div>
+                <div class="long line"></div>
+              </div>
+              <table v-else class="ui very basic table">
+                <tbody>
+
+                  <tr v-if="!object.user">
+                    <td>
+                      <translate>Cached size</translate>
+                    </td>
+                    <td>
+                      {{ stats.media_downloaded_size | humanSize }}
+                    </td>
+                  </tr>
+                  <tr v-if="object.user">
+                    <td>
+                      <translate>Upload quota</translate>
+                      <span :data-tooltip="labels.uploadQuota"><i class="question circle icon"></i></span>
+                    </td>
+                    <td>
+                      <div class="ui right labeled input">
+                        <input
+                          class="ui input"
+                          @change="updateUser('upload_quota', true)"
+                          v-model.number="object.user.upload_quota"
+                          step="100"
+                          type="number" />
+                        <div class="ui basic label">
+                          <translate>MB</translate>
+                        </div>
+                      </div>
+                    </td>
+                  </tr>
+                  <tr>
+                    <td>
+                      <translate>Total size</translate>
+                    </td>
+                    <td>
+                      {{ stats.media_total_size | humanSize }}
+                    </td>
+                  </tr>
+
+                  <tr>
+                    <td>
+                      <translate>Libraries</translate>
+                    </td>
+                    <td>
+                      {{ stats.libraries }}
+                    </td>
+                  </tr>
+                  <tr>
+                    <td>
+                      <translate>Uploads</translate>
+                    </td>
+                    <td>
+                      {{ stats.uploads }}
+                    </td>
+                  </tr>
+                  <tr>
+                    <td>
+                      <translate>Artists</translate>
+                    </td>
+                    <td>
+                      {{ stats.artists }}
+                    </td>
+                  </tr>
+                  <tr>
+                    <td>
+                      <translate>Albums</translate>
+                    </td>
+                    <td>
+                      {{ stats.albums}}
+                    </td>
+                  </tr>
+                  <tr>
+                    <td>
+                      <translate>Tracks</translate>
+                    </td>
+                    <td>
+                      {{ stats.tracks }}
+                    </td>
+                  </tr>
+                </tbody>
+              </table>
+
+            </section>
+          </div>
+        </div>
+      </div>
+
+    </template>
+  </main>
+</template>
+
+<script>
+import axios from "axios"
+import logger from "@/logging"
+import lodash from '@/lodash'
+import $ from "jquery"
+
+import InstancePolicyForm from "@/components/manage/moderation/InstancePolicyForm"
+import InstancePolicyCard from "@/components/manage/moderation/InstancePolicyCard"
+
+export default {
+  props: ["id"],
+  components: {
+    InstancePolicyForm,
+    InstancePolicyCard,
+  },
+  data() {
+    return {
+      lodash,
+      isLoading: true,
+      isLoadingStats: false,
+      isLoadingPolicy: false,
+      object: null,
+      stats: null,
+      showPolicyForm: false,
+      permissions: [],
+    }
+  },
+  created() {
+    this.fetchData()
+    this.fetchStats()
+  },
+  methods: {
+    fetchData() {
+      var self = this
+      this.isLoading = true
+      let url = "manage/accounts/" + this.id + "/"
+      axios.get(url).then(response => {
+        self.object = response.data
+        self.isLoading = false
+        if (self.object.instance_policy) {
+          self.fetchPolicy(self.object.instance_policy)
+        }
+        if (response.data.user) {
+          self.allPermissions.forEach(p => {
+            if (self.object.user.permissions[p.code]) {
+              self.permissions.push(p.code)
+            }
+          })
+        }
+      })
+    },
+    fetchPolicy(id) {
+      var self = this
+      this.isLoadingPolicy = true
+      let url = `manage/moderation/instance-policies/${id}/`
+      axios.get(url).then(response => {
+        self.policy = response.data
+        self.isLoadingPolicy = false
+      })
+    },
+    fetchStats() {
+      var self = this
+      this.isLoadingStats = true
+      let url = "manage/accounts/" + this.id + "/stats/"
+      axios.get(url).then(response => {
+        self.stats = response.data
+        self.isLoadingStats = false
+      })
+    },
+    refreshNodeInfo (data) {
+      this.object.nodeinfo = data
+      this.object.nodeinfo_fetch_date = new Date()
+    },
+
+    updateUser(attr, toNull) {
+      let newValue = this.object.user[attr]
+      if (toNull && !newValue) {
+        newValue = null
+      }
+      let params = {}
+      if (attr === "permissions") {
+        params["permissions"] = {}
+        this.allPermissions.forEach(p => {
+          params["permissions"][p.code] = this.permissions.indexOf(p.code) > -1
+        })
+      } else {
+        params[attr] = newValue
+      }
+      axios.patch(`manage/users/users/${this.object.user.id}/`, params).then(
+        response => {
+          logger.default.info(
+            `${attr} was updated succcessfully to ${newValue}`
+          )
+        },
+        error => {
+          logger.default.error(
+            `Error while setting ${attr} to ${newValue}`,
+            error
+          )
+        }
+      )
+    }
+  },
+  computed: {
+    labels() {
+      return {
+        statsWarning: this.$gettext("Statistics are computed from known activity and content on your instance, and do not reflect general activity for this account"),
+        uploadQuota: this.$gettext(
+          "Determine how much content the user can upload. Leave empty to use the default value of the instance."
+        ),
+      }
+    },
+    allPermissions() {
+      return [
+        {
+          code: "library",
+          label: this.$gettext("Library")
+        },
+        {
+          code: "moderation",
+          label: this.$gettext("Moderation")
+        },
+        {
+          code: "settings",
+          label: this.$gettext("Settings")
+        }
+      ]
+    }
+  },
+  watch: {
+    object () {
+      this.$nextTick(() => {
+        $(this.$el).find("select.dropdown").dropdown()
+      })
+    }
+  }
+}
+</script>
+
+<!-- Add "scoped" attribute to limit CSS to this component only -->
+<style scoped>
+.placeholder.segment {
+  width: 100%;
+}
+</style>
diff --git a/front/src/views/admin/moderation/AccountsList.vue b/front/src/views/admin/moderation/AccountsList.vue
new file mode 100644
index 0000000000000000000000000000000000000000..877c96c5ee548615fdfb4720c07a4e6b5c8af211
--- /dev/null
+++ b/front/src/views/admin/moderation/AccountsList.vue
@@ -0,0 +1,33 @@
+<template>
+  <main v-title="labels.accounts">
+    <section class="ui vertical stripe segment">
+      <h2 class="ui header"><translate>Accounts</translate></h2>
+      <div class="ui hidden divider"></div>
+      <accounts-table :update-url="true" :default-query="defaultQuery"></accounts-table>
+    </section>
+  </main>
+</template>
+
+<script>
+import AccountsTable from "@/components/manage/moderation/AccountsTable"
+
+export default {
+  components: {
+    AccountsTable
+  },
+  props: {
+    defaultQuery: {type: String, required: false},
+  },
+  computed: {
+    labels() {
+      return {
+        accounts: this.$gettext("Accounts")
+      }
+    }
+  }
+}
+</script>
+
+<!-- Add "scoped" attribute to limit CSS to this component only -->
+<style scoped>
+</style>
diff --git a/front/src/views/admin/moderation/Base.vue b/front/src/views/admin/moderation/Base.vue
new file mode 100644
index 0000000000000000000000000000000000000000..e0bf6c1adcd41f3df44526fde5bcbf8ecbb9ce4a
--- /dev/null
+++ b/front/src/views/admin/moderation/Base.vue
@@ -0,0 +1,27 @@
+<template>
+  <div class="main pusher"  v-title="labels.moderation">
+    <nav class="ui secondary pointing menu" role="navigation" :aria-label="labels.secondaryMenu">
+      <router-link
+        class="ui item"
+        :to="{name: 'manage.moderation.domains.list'}"><translate>Domains</translate></router-link>
+      <router-link
+        class="ui item"
+        :to="{name: 'manage.moderation.accounts.list'}"><translate>Accounts</translate></router-link>
+
+    </nav>
+    <router-view :key="$route.fullPath"></router-view>
+  </div>
+</template>
+
+<script>
+export default {
+  computed: {
+    labels() {
+      return {
+        moderation: this.$gettext("Moderation"),
+        secondaryMenu: this.$gettext("Secondary menu")
+      }
+    }
+  }
+}
+</script>
diff --git a/front/src/views/admin/moderation/DomainsDetail.vue b/front/src/views/admin/moderation/DomainsDetail.vue
new file mode 100644
index 0000000000000000000000000000000000000000..f5f9643c8a0eddcf65098d6076ddffc9fe99aa13
--- /dev/null
+++ b/front/src/views/admin/moderation/DomainsDetail.vue
@@ -0,0 +1,373 @@
+<template>
+  <main>
+    <div v-if="isLoading" class="ui vertical segment">
+      <div :class="['ui', 'centered', 'active', 'inline', 'loader']"></div>
+    </div>
+    <template v-if="object">
+      <section :class="['ui', 'head', 'vertical', 'stripe', 'segment']" v-title="object.name">
+        <div class="ui stackable two column grid">
+          <div class="ui column">
+            <div class="segment-content">
+              <h2 class="ui header">
+                <i class="circular inverted cloud icon"></i>
+                <div class="content">
+                  {{ object.name }}
+                  <div class="sub header">
+                    <a :href="externalUrl" target="_blank" rel="noopener noreferrer" class="logo-wrapper">
+                      <translate>Open website</translate>&nbsp;
+                      <i class="external icon"></i>
+                    </a>
+                  </div>
+                </div>
+              </h2>
+            </div>
+          </div>
+          <div class="ui column">
+            <div class="ui compact clearing placeholder segment">
+              <template v-if="isLoadingPolicy">
+                <div class="paragraph">
+                  <div class="line"></div>
+                  <div class="line"></div>
+                  <div class="line"></div>
+                  <div class="line"></div>
+                  <div class="line"></div>
+                </div>
+              </template>
+              <template v-else-if="!policy && !showPolicyForm">
+                <header class="ui header">
+                  <h3>
+                    <i class="shield icon"></i>
+                    <translate>You don't have any rule in place for this domain.</translate>
+                  </h3>
+                </header>
+                <p><translate>Moderation policies help you control how your instance interact with a given domain or account.</translate></p>
+                <button @click="showPolicyForm = true" class="ui primary button">Add a moderation policy</button>
+              </template>
+              <instance-policy-card v-else-if="policy && !showPolicyForm" :object="policy" @update="showPolicyForm = true">
+                <header class="ui header">
+                  <h3>
+                    <translate>This domain is subject to specific moderation rules</translate>
+                  </h3>
+                </header>
+              </instance-policy-card>
+              <instance-policy-form
+                v-else-if="showPolicyForm"
+                @cancel="showPolicyForm = false"
+                @save="updatePolicy"
+                @delete="policy = null; showPolicyForm = false"
+                :object="policy"
+                type="domain"
+                :target="object.name" />
+            </div>
+          </div>
+        </div>
+      </section>
+      <div class="ui vertical stripe segment">
+        <div class="ui stackable three column grid">
+          <div class="column">
+            <section>
+              <h3 class="ui header">
+                <i class="info icon"></i>
+                <div class="content">
+                  <translate>Instance data</translate>
+                </div>
+              </h3>
+              <table class="ui very basic table">
+                <tbody>
+                  <tr>
+                    <td>
+                      <translate>First seen</translate>
+                    </td>
+                    <td>
+                      <human-date :date="object.creation_date"></human-date>
+                    </td>
+                  </tr>
+                  <tr>
+                    <td>
+                      <translate>Last checked</translate>
+                    </td>
+                    <td>
+                      <human-date v-if="object.nodeinfo_fetch_date" :date="object.nodeinfo_fetch_date"></human-date>
+                      <translate v-else>N/A</translate>
+                    </td>
+                  </tr>
+
+                  <template v-if="object.nodeinfo && object.nodeinfo.status === 'ok'">
+                    <tr>
+                      <td>
+                        <translate>Software</translate>
+                      </td>
+                      <td>
+                        {{ lodash.get(object, 'nodeinfo.payload.software.name', $gettext('N/A')) }} ({{ lodash.get(object, 'nodeinfo.payload.software.version', $gettext('N/A')) }})
+                      </td>
+                    </tr>
+                    <tr>
+                      <td>
+                        <translate>Name</translate>
+                      </td>
+                      <td>
+                        {{ lodash.get(object, 'nodeinfo.payload.metadata.nodeName', $gettext('N/A')) }}
+                      </td>
+                    </tr>
+                    <tr>
+                      <td>
+                        <translate>Total users</translate>
+                      </td>
+                      <td>
+                        {{ lodash.get(object, 'nodeinfo.payload.usage.users.total', $gettext('N/A')) }}
+                      </td>
+                    </tr>
+                  </template>
+                  <template v-if="object.nodeinfo && object.nodeinfo.status === 'error'">
+                    <tr>
+                      <td>
+                        <translate>Status</translate>
+                      </td>
+                      <td>
+                        <translate>Error while fetching node info</translate>&nbsp;
+
+                        <span :data-tooltip="object.nodeinfo.error"><i class="question circle icon"></i></span>
+                      </td>
+                    </tr>
+                  </template>
+                </tbody>
+              </table>
+              <ajax-button @action-done="refreshNodeInfo" method="get" :url="'manage/federation/domains/' + object.name + '/nodeinfo/'">
+                <translate>Refresh node info</translate>
+              </ajax-button>
+            </section>
+          </div>
+          <div class="column">
+            <section>
+              <h3 class="ui header">
+                <i class="feed icon"></i>
+                <div class="content">
+                  <translate>Activity</translate>&nbsp;
+                  <span :data-tooltip="labels.statsWarning"><i class="question circle icon"></i></span>
+
+                </div>
+              </h3>
+              <div v-if="isLoadingStats" class="ui placeholder">
+                <div class="full line"></div>
+                <div class="short line"></div>
+                <div class="medium line"></div>
+                <div class="long line"></div>
+              </div>
+              <table v-else class="ui very basic table">
+                <tbody>
+                  <tr>
+                    <td>
+                      <router-link
+                        :to="{name: 'manage.moderation.accounts.list', query: {q: 'domain:' + object.name }}">
+                        <translate>Known accounts</translate>
+                        </router-link>
+
+                    </td>
+                    <td>
+                      {{ stats.actors }}
+                    </td>
+                  </tr>
+                  <tr>
+                    <td>
+                      <translate>Emitted messages</translate>
+                    </td>
+                    <td>
+                      {{ stats.outbox_activities}}
+                    </td>
+                  </tr>
+                  <tr>
+                    <td>
+                      <translate>Received library follows</translate>
+                    </td>
+                    <td>
+                      {{ stats.received_library_follows}}
+                    </td>
+                  </tr>
+                  <tr>
+                    <td>
+                      <translate>Emitted library follows</translate>
+                    </td>
+                    <td>
+                      {{ stats.emitted_library_follows}}
+                    </td>
+                  </tr>
+                </tbody>
+              </table>
+            </section>
+          </div>
+          <div class="column">
+            <section>
+              <h3 class="ui header">
+                <i class="music icon"></i>
+                <div class="content">
+                  <translate>Audio content</translate>&nbsp;
+                  <span :data-tooltip="labels.statsWarning"><i class="question circle icon"></i></span>
+
+                </div>
+              </h3>
+              <div v-if="isLoadingStats" class="ui placeholder">
+                <div class="full line"></div>
+                <div class="short line"></div>
+                <div class="medium line"></div>
+                <div class="long line"></div>
+              </div>
+              <table v-else class="ui very basic table">
+                <tbody>
+                  <tr>
+                    <td>
+                      <translate>Cached size</translate>
+                    </td>
+                    <td>
+                      {{ stats.media_downloaded_size | humanSize }}
+                    </td>
+                  </tr>
+                  <tr>
+                    <td>
+                      <translate>Total size</translate>
+                    </td>
+                    <td>
+                      {{ stats.media_total_size | humanSize }}
+                    </td>
+                  </tr>
+                  <tr>
+                    <td>
+                      <translate>Libraries</translate>
+                    </td>
+                    <td>
+                      {{ stats.libraries }}
+                    </td>
+                  </tr>
+                  <tr>
+                    <td>
+                      <translate>Uploads</translate>
+                    </td>
+                    <td>
+                      {{ stats.uploads }}
+                    </td>
+                  </tr>
+                  <tr>
+                    <td>
+                      <translate>Artists</translate>
+                    </td>
+                    <td>
+                      {{ stats.artists }}
+                    </td>
+                  </tr>
+                  <tr>
+                    <td>
+                      <translate>Albums</translate>
+                    </td>
+                    <td>
+                      {{ stats.albums}}
+                    </td>
+                  </tr>
+                  <tr>
+                    <td>
+                      <translate>Tracks</translate>
+                    </td>
+                    <td>
+                      {{ stats.tracks }}
+                    </td>
+                  </tr>
+                </tbody>
+              </table>
+
+            </section>
+          </div>
+        </div>
+      </div>
+
+    </template>
+  </main>
+</template>
+
+<script>
+import axios from "axios"
+import logger from "@/logging"
+import lodash from '@/lodash'
+
+import InstancePolicyForm from "@/components/manage/moderation/InstancePolicyForm"
+import InstancePolicyCard from "@/components/manage/moderation/InstancePolicyCard"
+
+export default {
+  props: ["id"],
+  components: {
+    InstancePolicyForm,
+    InstancePolicyCard,
+  },
+  data() {
+    return {
+      lodash,
+      isLoading: true,
+      isLoadingStats: false,
+      isLoadingPolicy: false,
+      policy: null,
+      object: null,
+      stats: null,
+      showPolicyForm: false,
+      permissions: [],
+    }
+  },
+  created() {
+    this.fetchData()
+    this.fetchStats()
+  },
+  methods: {
+    fetchData() {
+      var self = this
+      this.isLoading = true
+      let url = "manage/federation/domains/" + this.id + "/"
+      axios.get(url).then(response => {
+        self.object = response.data
+        self.isLoading = false
+        if (self.object.instance_policy) {
+          self.fetchPolicy(self.object.instance_policy)
+        }
+      })
+    },
+    fetchStats() {
+      var self = this
+      this.isLoadingStats = true
+      let url = "manage/federation/domains/" + this.id + "/stats/"
+      axios.get(url).then(response => {
+        self.stats = response.data
+        self.isLoadingStats = false
+      })
+    },
+    fetchPolicy(id) {
+      var self = this
+      this.isLoadingPolicy = true
+      let url = `manage/moderation/instance-policies/${id}/`
+      axios.get(url).then(response => {
+        self.policy = response.data
+        self.isLoadingPolicy = false
+      })
+    },
+    refreshNodeInfo (data) {
+      this.object.nodeinfo = data
+      this.object.nodeinfo_fetch_date = new Date()
+    },
+    updatePolicy (policy) {
+      this.policy = policy
+      this.showPolicyForm = false
+    }
+  },
+  computed: {
+    labels() {
+      return {
+        statsWarning: this.$gettext("Statistics are computed from known activity and content on your instance, and do not reflect general activity for this domain")
+      }
+    },
+    externalUrl () {
+      return `https://${this.object.name}`
+    }
+  }
+}
+</script>
+
+<!-- Add "scoped" attribute to limit CSS to this component only -->
+<style scoped>
+.placeholder.segment {
+  width: 100%;
+}
+</style>
diff --git a/front/src/views/admin/moderation/DomainsList.vue b/front/src/views/admin/moderation/DomainsList.vue
new file mode 100644
index 0000000000000000000000000000000000000000..259d05f0cecbdb1019d59201d38d374cbe155447
--- /dev/null
+++ b/front/src/views/admin/moderation/DomainsList.vue
@@ -0,0 +1,74 @@
+<template>
+  <main v-title="labels.domains">
+    <section class="ui vertical stripe segment">
+      <h2 class="ui left floated header"><translate>Domains</translate></h2>
+      <form class="ui right floated form" @submit.prevent="createDomain">
+        <div v-if="errors && errors.length > 0" class="ui negative message">
+          <div class="header"><translate>Error while creating domain</translate></div>
+          <ul class="list">
+            <li v-for="error in errors">{{ error }}</li>
+          </ul>
+        </div>
+        <div class="inline fields">
+          <div class="field">
+            <label for="domain"><translate>Add a domain</translate></label>
+            <input type="text" id="domain" v-model="domainName">
+          </div>
+          <div class="field">
+            <button :class="['ui', {'loading': isCreating}, 'green', 'button']" type="submit" :disabled="isCreating">
+              <label for="domain"><translate>Add</translate></label>
+            </button>
+          </div>
+        </div>
+      </form>
+      <div class="ui clearing hidden divider"></div>
+      <domains-table></domains-table>
+    </section>
+  </main>
+</template>
+
+<script>
+import axios from 'axios'
+
+import DomainsTable from "@/components/manage/moderation/DomainsTable"
+export default {
+  components: {
+    DomainsTable
+  },
+  data () {
+    return {
+      domainName: '',
+      isCreating: false,
+      errors: []
+    }
+  },
+  computed: {
+    labels() {
+      return {
+        domains: this.$gettext("Domains")
+      }
+    }
+  },
+  methods: {
+    createDomain () {
+      let self = this
+      this.isCreating = true
+      this.errors = []
+      axios.post('manage/federation/domains/', {name: this.domainName}).then((response) => {
+        this.isCreating = false
+        this.$router.push({
+          name: "manage.moderation.domains.detail",
+          params: {'id': response.data.name}
+        })
+      }, (error) => {
+        self.isCreating = false
+        self.errors = error.backendErrors
+      })
+    }
+  }
+}
+</script>
+
+<!-- Add "scoped" attribute to limit CSS to this component only -->
+<style scoped>
+</style>
diff --git a/front/src/views/admin/users/Base.vue b/front/src/views/admin/users/Base.vue
index 7486d02d742254cc7d2fcb214435ffdaafd1c44f..41110fb3c39c4ab5459182377f185fb9b6506f30 100644
--- a/front/src/views/admin/users/Base.vue
+++ b/front/src/views/admin/users/Base.vue
@@ -1,13 +1,13 @@
 <template>
   <div class="main pusher"  v-title="labels.manageUsers">
-    <div class="ui secondary pointing menu">
+    <nav class="ui secondary pointing menu" role="navigation" :aria-label="labels.secondaryMenu">
       <router-link
         class="ui item"
         :to="{name: 'manage.users.users.list'}"><translate>Users</translate></router-link>
       <router-link
         class="ui item"
         :to="{name: 'manage.users.invitations.list'}"><translate>Invitations</translate></router-link>
-    </div>
+    </nav>
     <router-view :key="$route.fullPath"></router-view>
   </div>
 </template>
@@ -15,9 +15,10 @@
 <script>
 export default {
   computed: {
-    labels () {
+    labels() {
       return {
-        manageUsers: this.$gettext('Manage users')
+        manageUsers: this.$gettext("Manage users"),
+        secondaryMenu: this.$gettext("Secondary menu")
       }
     }
   }
diff --git a/front/src/views/admin/users/InvitationsList.vue b/front/src/views/admin/users/InvitationsList.vue
index b2dd8f0374aa21bf3eea2eba1c3cf52e86e457ad..04da76f8588af789a63fc7f8deacf2e0ff069bbc 100644
--- a/front/src/views/admin/users/InvitationsList.vue
+++ b/front/src/views/admin/users/InvitationsList.vue
@@ -1,17 +1,17 @@
 <template>
-  <div v-title="labels.invitations">
-    <div class="ui vertical stripe segment">
+  <main v-title="labels.invitations">
+    <section class="ui vertical stripe segment">
       <h2 class="ui header"><translate>Invitations</translate></h2>
       <invitation-form></invitation-form>
       <div class="ui hidden divider"></div>
       <invitations-table></invitations-table>
-    </div>
-  </div>
+    </section>
+  </main>
 </template>
 
 <script>
-import InvitationForm from '@/components/manage/users/InvitationForm'
-import InvitationsTable from '@/components/manage/users/InvitationsTable'
+import InvitationForm from "@/components/manage/users/InvitationForm"
+import InvitationsTable from "@/components/manage/users/InvitationsTable"
 
 export default {
   components: {
@@ -19,9 +19,9 @@ export default {
     InvitationsTable
   },
   computed: {
-    labels () {
+    labels() {
       return {
-        invitations: this.$gettext('Invitations')
+        invitations: this.$gettext("Invitations")
       }
     }
   }
diff --git a/front/src/views/admin/users/UsersDetail.vue b/front/src/views/admin/users/UsersDetail.vue
deleted file mode 100644
index 21e7b9811fdae29b1be9e05d6060343c1485e979..0000000000000000000000000000000000000000
--- a/front/src/views/admin/users/UsersDetail.vue
+++ /dev/null
@@ -1,206 +0,0 @@
-<template>
-  <div>
-    <div v-if="isLoading" class="ui vertical segment">
-      <div :class="['ui', 'centered', 'active', 'inline', 'loader']"></div>
-    </div>
-    <template v-if="object">
-      <div :class="['ui', 'head', 'vertical', 'center', 'aligned', 'stripe', 'segment']" v-title="object.username">
-        <div class="segment-content">
-          <h2 class="ui center aligned icon header">
-            <i class="circular inverted user red icon"></i>
-            <div class="content">
-              @{{ object.username }}
-            </div>
-          </h2>
-        </div>
-        <div class="ui hidden divider"></div>
-        <div class="ui one column centered grid">
-          <table class="ui collapsing very basic table">
-            <tbody>
-              <tr>
-                <td>
-                  <translate>Name</translate>
-                </td>
-                <td>
-                  {{ object.name }}
-                </td>
-              </tr>
-              <tr>
-                <td>
-                  <translate>Email address</translate>
-                </td>
-                <td>
-                  {{ object.email }}
-                </td>
-              </tr>
-              <tr>
-                <td>
-                  <translate>Sign-up</translate>
-                </td>
-                <td>
-                  <human-date :date="object.date_joined"></human-date>
-                </td>
-              </tr>
-              <tr>
-                <td>
-                  <translate>Last activity</translate>
-                </td>
-                <td>
-                  <human-date v-if="object.last_activity" :date="object.last_activity"></human-date>
-                  <template v-else><translate>N/A</translate></template>
-                </td>
-              </tr>
-              <tr>
-                <td>
-                  <translate>Account active</translate>
-                  <span :data-tooltip="labels.inactive"><i class="question circle icon"></i></span>
-                </td>
-                <td>
-                  <div class="ui toggle checkbox">
-                    <input
-                      @change="update('is_active')"
-                      v-model="object.is_active" type="checkbox">
-                    <label></label>
-                  </div>
-                </td>
-              </tr>
-              <tr>
-                <td>
-                  <translate>Permissions</translate>
-                </td>
-                <td>
-                  <select
-                    @change="update('permissions')"
-                    v-model="permissions"
-                    multiple
-                    class="ui search selection dropdown">
-                    <option v-for="p in allPermissions" :value="p.code">{{ p.label }}</option>
-                  </select>
-                </td>
-              </tr>
-              <tr>
-                <td>
-                  <translate>Upload quota</translate>
-                  <span :data-tooltip="labels.uploadQuota"><i class="question circle icon"></i></span>
-                </td>
-                <td>
-                  <div class="ui right labeled input">
-                  <input
-                    class="ui input"
-                    @change="update('upload_quota', true)"
-                    v-model.number="object.upload_quota"
-                    step="100"
-                    type="number" />
-                  <div class="ui basic label">
-                    <translate>MB</translate>
-                  </div>
-                </div>
-                </td>
-              </tr>
-            </tbody>
-          </table>
-        </div>
-        <div class="ui hidden divider"></div>
-        <button @click="fetchData" class="ui basic button"><translate>Refresh</translate></button>
-      </div>
-    </template>
-  </div>
-</template>
-
-<script>
-
-import $ from 'jquery'
-import axios from 'axios'
-import logger from '@/logging'
-
-export default {
-  props: ['id'],
-  data () {
-    return {
-      isLoading: true,
-      object: null,
-      permissions: []
-    }
-  },
-  created () {
-    this.fetchData()
-  },
-  methods: {
-    fetchData () {
-      var self = this
-      this.isLoading = true
-      let url = 'manage/users/users/' + this.id + '/'
-      axios.get(url).then((response) => {
-        self.object = response.data
-        self.permissions = []
-        self.allPermissions.forEach(p => {
-          if (self.object.permissions[p.code]) {
-            self.permissions.push(p.code)
-          }
-        })
-        self.isLoading = false
-      })
-    },
-    update (attr, toNull) {
-      let newValue = this.object[attr]
-      if (toNull && !newValue) {
-        newValue = null
-      }
-      console.log(newValue, typeof(newValue))
-      let params = {}
-      if (attr === 'permissions') {
-        params['permissions'] = {}
-        this.allPermissions.forEach(p => {
-          params['permissions'][p.code] = this.permissions.indexOf(p.code) > -1
-        })
-      } else {
-        params[attr] = newValue
-      }
-      axios.patch('manage/users/users/' + this.id + '/', params).then((response) => {
-        logger.default.info(`${attr} was updated succcessfully to ${newValue}`)
-      }, (error) => {
-        logger.default.error(`Error while setting ${attr} to ${newValue}`, error)
-      })
-    }
-  },
-  computed: {
-    labels () {
-      return {
-        inactive: this.$gettext('Determine if the user account is active or not. Inactive users cannot login or use the service.'),
-        uploadQuota: this.$gettext('Determine how much content the user can upload. Leave empty to use the default value of the instance.')
-      }
-    },
-    allPermissions () {
-      return [
-        {
-          'code': 'upload',
-          'label': this.$gettext('Upload')
-        },
-        {
-          'code': 'library',
-          'label': this.$gettext('Library')
-        },
-        {
-          'code': 'federation',
-          'label': this.$gettext('Federation')
-        },
-        {
-          'code': 'settings',
-          'label': this.$gettext('Settings')
-        }
-      ]
-    }
-  },
-  watch: {
-    object () {
-      this.$nextTick(() => {
-        $('select.dropdown').dropdown()
-      })
-    }
-  }
-}
-</script>
-
-<!-- Add "scoped" attribute to limit CSS to this component only -->
-<style scoped>
-</style>
diff --git a/front/src/views/admin/users/UsersList.vue b/front/src/views/admin/users/UsersList.vue
index ef4d60961e89ba2566d484bdd42ae800796beded..c0ee4166cd1fd976738a1315b4bce9aa35e512c1 100644
--- a/front/src/views/admin/users/UsersList.vue
+++ b/front/src/views/admin/users/UsersList.vue
@@ -1,24 +1,24 @@
 <template>
-  <div v-title="labels.users">
-    <div class="ui vertical stripe segment">
+  <main v-title="labels.users">
+    <section class="ui vertical stripe segment">
       <h2 class="ui header"><translate>Users</translate></h2>
       <div class="ui hidden divider"></div>
       <users-table></users-table>
-    </div>
-  </div>
+    </section>
+  </main>
 </template>
 
 <script>
-import UsersTable from '@/components/manage/users/UsersTable'
+import UsersTable from "@/components/manage/users/UsersTable"
 
 export default {
   components: {
     UsersTable
   },
   computed: {
-    labels () {
+    labels() {
       return {
-        users: this.$gettext('Users')
+        users: this.$gettext("Users")
       }
     }
   }
diff --git a/front/src/views/auth/EmailConfirm.vue b/front/src/views/auth/EmailConfirm.vue
index 7b982504506781119fc27efbffd53ff9c61b3854..6389b4535bf987f7801a9b6d8e84ace2932ac226 100644
--- a/front/src/views/auth/EmailConfirm.vue
+++ b/front/src/views/auth/EmailConfirm.vue
@@ -1,11 +1,11 @@
 <template>
-  <div class="main pusher" v-title="labels.confirm">
-    <div class="ui vertical stripe segment">
+  <main class="main pusher" v-title="labels.confirm">
+    <section class="ui vertical stripe segment">
       <div class="ui small text container">
-        <h2><translate>Confirm your email</translate></h2>
+        <h2><translate>Confirm your e-mail address</translate></h2>
         <form v-if="!success" class="ui form" @submit.prevent="submit()">
           <div v-if="errors.length > 0" class="ui negative message">
-            <div class="header"><translate>Error while confirming your email</translate></div>
+            <div class="header"><translate>Could not confirm your e-mail address</translate></div>
             <ul class="list">
               <li v-for="error in errors">{{ error }}</li>
             </ul>
@@ -15,29 +15,29 @@
             <input type="text" required v-model="key" />
           </div>
           <router-link :to="{path: '/login'}">
-            <translate>Back to login</translate>
+            <translate>Return to login</translate>
           </router-link>
           <button :class="['ui', {'loading': isLoading}, 'right', 'floated', 'green', 'button']" type="submit">
-            <translate>Confirm your email</translate></button>
+            <translate>Confirm your e-mail address</translate></button>
         </form>
         <div v-else class="ui positive message">
-          <div class="header"><translate>Email confirmed</translate></div>
-          <p><translate>Your email address was confirmed, you can now use the service without limitations.</translate></p>
+          <div class="header"><translate>E-mail address confirmed</translate></div>
+          <p><translate>You can now use the service without limitations.</translate></p>
           <router-link :to="{name: 'login'}">
             <translate>Proceed to login</translate>
           </router-link>
         </div>
       </div>
-    </div>
-  </div>
+    </section>
+  </main>
 </template>
 
 <script>
-import axios from 'axios'
+import axios from "axios"
 
 export default {
-  props: ['defaultKey'],
-  data () {
+  props: ["defaultKey"],
+  data() {
     return {
       isLoading: false,
       errors: [],
@@ -46,30 +46,32 @@ export default {
     }
   },
   computed: {
-    labels () {
+    labels() {
       return {
-        confirm: this.$gettext('Confirm your email')
+        confirm: this.$gettext("Confirm your e-mail address")
       }
     }
   },
   methods: {
-    submit () {
+    submit() {
       let self = this
       self.isLoading = true
       self.errors = []
       let payload = {
         key: this.key
       }
-      return axios.post('auth/registration/verify-email/', payload).then(response => {
-        self.isLoading = false
-        self.success = true
-      }, error => {
-        self.errors = error.backendErrors
-        self.isLoading = false
-      })
+      return axios.post("auth/registration/verify-email/", payload).then(
+        response => {
+          self.isLoading = false
+          self.success = true
+        },
+        error => {
+          self.errors = error.backendErrors
+          self.isLoading = false
+        }
+      )
     }
   }
-
 }
 </script>
 
diff --git a/front/src/views/auth/PasswordReset.vue b/front/src/views/auth/PasswordReset.vue
index 52787a516ff52e22813f83579973bf6de8170387..e7759113c33b80676983ce64d51acfbaf519855e 100644
--- a/front/src/views/auth/PasswordReset.vue
+++ b/front/src/views/auth/PasswordReset.vue
@@ -1,6 +1,6 @@
 <template>
-  <div class="main pusher" v-title="labels.reset">
-    <div class="ui vertical stripe segment">
+  <main class="main pusher" v-title="labels.reset">
+    <section class="ui vertical stripe segment">
       <div class="ui small text container">
         <h2><translate>Reset your password</translate></h2>
         <form class="ui form" @submit.prevent="submit()">
@@ -28,29 +28,31 @@
             <translate>Ask for a password reset</translate></button>
         </form>
       </div>
-    </div>
-  </div>
+    </section>
+  </main>
 </template>
 
 <script>
-import axios from 'axios'
+import axios from "axios"
 
 export default {
-  props: ['defaultEmail'],
-  data () {
+  props: ["defaultEmail"],
+  data() {
     return {
       email: this.defaultEmail,
       isLoading: false,
       errors: []
     }
   },
-  mounted () {
+  mounted() {
     this.$refs.email.focus()
   },
   computed: {
-    labels () {
-      let reset = this.$gettext('Reset your password')
-      let placeholder = this.$gettext('Input the email address binded to your account')
+    labels() {
+      let reset = this.$gettext("Reset your password")
+      let placeholder = this.$gettext(
+        "Input the email address binded to your account"
+      )
       return {
         reset,
         placeholder
@@ -58,25 +60,27 @@ export default {
     }
   },
   methods: {
-    submit () {
+    submit() {
       let self = this
       self.isLoading = true
       self.errors = []
       let payload = {
         email: this.email
       }
-      return axios.post('auth/password/reset/', payload).then(response => {
-        self.isLoading = false
-        self.$router.push({
-          name: 'auth.password-reset-confirm'
-        })
-      }, error => {
-        self.errors = error.backendErrors
-        self.isLoading = false
-      })
+      return axios.post("auth/password/reset/", payload).then(
+        response => {
+          self.isLoading = false
+          self.$router.push({
+            name: "auth.password-reset-confirm"
+          })
+        },
+        error => {
+          self.errors = error.backendErrors
+          self.isLoading = false
+        }
+      )
     }
   }
-
 }
 </script>
 
diff --git a/front/src/views/auth/PasswordResetConfirm.vue b/front/src/views/auth/PasswordResetConfirm.vue
index b6e4f23224242d160b0c2121b176ed5fb07a8287..df0589beb8d13d909bcefaefe4268fef91bacbaf 100644
--- a/front/src/views/auth/PasswordResetConfirm.vue
+++ b/front/src/views/auth/PasswordResetConfirm.vue
@@ -1,6 +1,6 @@
 <template>
-  <div class="main pusher" v-title="labels.changePassword">
-    <div class="ui vertical stripe segment">
+  <main class="main pusher" v-title="labels.changePassword">
+    <section class="ui vertical stripe segment">
       <div class="ui small text container">
         <h2><translate>Change your password</translate></h2>
         <form v-if="!success" class="ui form" @submit.prevent="submit()">
@@ -33,22 +33,22 @@
           </router-link>
         </div>
       </div>
-    </div>
-  </div>
+    </section>
+  </main>
 </template>
 
 <script>
-import axios from 'axios'
-import PasswordInput from '@/components/forms/PasswordInput'
+import axios from "axios"
+import PasswordInput from "@/components/forms/PasswordInput"
 
 export default {
-  props: ['defaultToken', 'defaultUid'],
+  props: ["defaultToken", "defaultUid"],
   components: {
     PasswordInput
   },
-  data () {
+  data() {
     return {
-      newPassword: '',
+      newPassword: "",
       isLoading: false,
       errors: [],
       token: this.defaultToken,
@@ -57,14 +57,14 @@ export default {
     }
   },
   computed: {
-    labels () {
+    labels() {
       return {
-        changePassword: this.$gettext('Change your password')
+        changePassword: this.$gettext("Change your password")
       }
     }
   },
   methods: {
-    submit () {
+    submit() {
       let self = this
       self.isLoading = true
       self.errors = []
@@ -74,16 +74,18 @@ export default {
         new_password1: this.newPassword,
         new_password2: this.newPassword
       }
-      return axios.post('auth/password/reset/confirm/', payload).then(response => {
-        self.isLoading = false
-        self.success = true
-      }, error => {
-        self.errors = error.backendErrors
-        self.isLoading = false
-      })
+      return axios.post("auth/password/reset/confirm/", payload).then(
+        response => {
+          self.isLoading = false
+          self.success = true
+        },
+        error => {
+          self.errors = error.backendErrors
+          self.isLoading = false
+        }
+      )
     }
   }
-
 }
 </script>
 
diff --git a/front/src/views/content/Base.vue b/front/src/views/content/Base.vue
index cfdd204281bb2086700e1abf744fda1121a8ad51..039e21adcd311edd99badb5443ac5f8a16f0f478 100644
--- a/front/src/views/content/Base.vue
+++ b/front/src/views/content/Base.vue
@@ -1,24 +1,25 @@
 <template>
-  <div class="main pusher"  v-title="labels.title">
-    <div class="ui secondary pointing menu">
+  <main class="main pusher"  v-title="labels.title">
+    <nav class="ui secondary pointing menu" role="navigation" :aria-label="labels.secondaryMenu">
       <router-link
         class="ui item"
         :to="{name: 'content.libraries.index'}"><translate>Libraries</translate></router-link>
       <router-link
         class="ui item"
         :to="{name: 'content.libraries.files'}"><translate>Tracks</translate></router-link>
-    </div>
+    </nav>
     <router-view :key="$route.fullPath"></router-view>
-  </div>
+  </main>
 </template>
 <script>
-
 export default {
   computed: {
-    labels () {
-      let title = this.$gettext('Add content')
+    labels() {
+      let title = this.$gettext("Add content")
+      let secondaryMenu = this.$gettext("Secondary menu")
       return {
-        title
+        title,
+        secondaryMenu
       }
     }
   }
diff --git a/front/src/views/content/Home.vue b/front/src/views/content/Home.vue
index 91fe11824d694ff613c99065213e8b4916e975a0..a23a0e383a1627cffdc38d74856132ef1b7ddbd1 100644
--- a/front/src/views/content/Home.vue
+++ b/front/src/views/content/Home.vue
@@ -1,13 +1,13 @@
 <template>
-  <div class="ui vertical aligned stripe segment" v-title="labels.title">
+  <section class="ui vertical aligned stripe segment" v-title="labels.title">
     <div class="ui text container">
       <h1>{{ labels.title }}</h1>
-      <p><translate>We offer various way to grab new content and make it available here.</translate></p>
+      <p><translate>There are various ways to grab new content and make it available here.</translate></p>
       <div class="ui segment">
         <h2><translate>Upload audio content</translate></h2>
-        <p><translate>Upload music files (mp3, ogg, flac, etc.) from your personal library directly from your browser to enjoy them here.</translate></p>
+        <p><translate>Upload music files (MP3, OGG, FLAC, etc.) from your personal library directly from your browser to enjoy them here.</translate></p>
         <p>
-          <strong><translate :translate-params="{quota: defaultQuota}">This instance offers up to %{quota} of storage space to every user.</translate></strong>
+          <strong><translate :translate-params="{quota: defaultQuota}">This instance offers up to %{quota} of storage space for every user.</translate></strong>
         </p>
         <router-link :to="{name: 'content.libraries.index'}" class="ui green button">
           <translate>Get started</translate>
@@ -22,21 +22,24 @@
       </div>
 
     </div>
-  </div>
+  </section>
 </template>
 
 <script>
-import {humanSize} from '@/filters'
+import { humanSize } from "@/filters"
 
 export default {
   computed: {
-    labels () {
+    labels() {
       return {
-        title: this.$gettext('Add and manage content')
+        title: this.$gettext("Add and manage content")
       }
     },
-    defaultQuota () {
-      let quota = this.$store.state.instance.settings.users.upload_quota.value * 1000 * 1000
+    defaultQuota() {
+      let quota =
+        this.$store.state.instance.settings.users.upload_quota.value *
+        1000 *
+        1000
       return humanSize(quota)
     }
   }
diff --git a/front/src/views/content/libraries/Detail.vue b/front/src/views/content/libraries/Detail.vue
index eed851e5e551b48ec9b4cc09485e7da407b6f47b..f0bbc2a6e791abdbc54764a851b68e499ed8e019 100644
--- a/front/src/views/content/libraries/Detail.vue
+++ b/front/src/views/content/libraries/Detail.vue
@@ -1,7 +1,7 @@
 <template>
-  <div class="ui vertical aligned stripe segment">
+  <section class="ui vertical aligned stripe segment">
     <div v-if="isLoadingLibrary" :class="['ui', {'active': isLoadingLibrary}, 'inverted', 'dimmer']">
-      <div class="ui text loader"><translate>Loading library data...</translate></div>
+      <div class="ui text loader"><translate>Loading library data…</translate></div>
     </div>
     <detail-area v-else :library="library">
       <div class="ui top attached tabular menu">
@@ -13,13 +13,13 @@
         <div class="ui form">
           <div class="field">
             <label><translate>Sharing link</translate></label>
-            <p><translate>Share this link with other users so they can request an access to your library.</translate></p>
+            <p><translate>Share this link with other users so they can request access to your library.</translate></p>
             <copy-input :value="library.fid" />
           </div>
         </div>
         <div class="ui hidden divider"></div>
         <div v-if="isLoadingFollows" :class="['ui', {'active': isLoadingFollows}, 'inverted', 'dimmer']">
-          <div class="ui text loader"><translate>Loading followers...</translate></div>
+          <div class="ui text loader"><translate>Loading followers…</translate></div>
         </div>
         <table v-else-if="follows && follows.count > 0" class="ui table">
           <thead>
@@ -64,15 +64,15 @@
         <library-form :library="library" @updated="libraryUpdated" @deleted="libraryDeleted" />
       </div>
     </detail-area>
-  </div>
+  </section>
 </template>
 
 <script>
-import axios from 'axios'
-import DetailMixin from './DetailMixin'
-import DetailArea from './DetailArea'
-import LibraryForm from './Form'
-import LibraryFilesTable from './FilesTable'
+import axios from "axios"
+import DetailMixin from "./DetailMixin"
+import DetailArea from "./DetailArea"
+import LibraryForm from "./Form"
+import LibraryFilesTable from "./FilesTable"
 
 export default {
   mixins: [DetailMixin],
@@ -81,46 +81,48 @@ export default {
     LibraryForm,
     LibraryFilesTable
   },
-  data () {
+  data() {
     return {
-      currentTab: 'follows',
+      currentTab: "follows",
       isLoadingFollows: false,
       follows: null
     }
   },
-  created () {
+  created() {
     this.fetchFollows()
   },
   methods: {
-    libraryUpdated () {
+    libraryUpdated() {
       this.hiddenForm = true
       this.fetch()
     },
-    libraryDeleted () {
+    libraryDeleted() {
       this.$router.push({
-        name: 'content.libraries.index'
+        name: "content.libraries.index"
       })
     },
-    fetchFollows () {
+    fetchFollows() {
       let self = this
       self.isLoadingLibrary = true
-      axios.get(`libraries/${this.id}/follows/`).then((response) => {
+      axios.get(`libraries/${this.id}/follows/`).then(response => {
         self.follows = response.data
         self.isLoadingFollows = false
       })
     },
-    updateApproved (follow, value) {
+    updateApproved(follow, value) {
       let self = this
       let action
       if (value) {
-        action = 'accept'
+        action = "accept"
       } else {
-        action = 'reject'
+        action = "reject"
       }
-      axios.post(`federation/follows/library/${follow.uuid}/${action}/`).then((response) => {
-        follow.isLoading = false
-        follow.approved = value
-      })
+      axios
+        .post(`federation/follows/library/${follow.uuid}/${action}/`)
+        .then(response => {
+          follow.isLoading = false
+          follow.approved = value
+        })
     }
   }
 }
diff --git a/front/src/views/content/libraries/Files.vue b/front/src/views/content/libraries/Files.vue
index 752dcd77699056c6eac175d2faf571f37cb1a3e1..0184df3864d0080900e1fa8aeb7f7243acf2c70a 100644
--- a/front/src/views/content/libraries/Files.vue
+++ b/front/src/views/content/libraries/Files.vue
@@ -1,14 +1,14 @@
 <template>
-  <div class="ui vertical aligned stripe segment">
+  <section class="ui vertical aligned stripe segment">
     <library-files-table :default-query="query"></library-files-table>
-  </div>
+  </section>
 </template>
 
 <script>
-import LibraryFilesTable from './FilesTable'
+import LibraryFilesTable from "./FilesTable"
 
 export default {
-  props: ['query'],
+  props: ["query"],
   components: {
     LibraryFilesTable
   }
diff --git a/front/src/views/content/libraries/FilesTable.vue b/front/src/views/content/libraries/FilesTable.vue
index 21ad79e7200ae5776b995087bdbd897a545af847..6d076193b69fe31b09a7fe43e64d86879645bd14 100644
--- a/front/src/views/content/libraries/FilesTable.vue
+++ b/front/src/views/content/libraries/FilesTable.vue
@@ -14,7 +14,7 @@
             <option value=""><translate>All</translate></option>
             <option value="pending"><translate>Pending</translate></option>
             <option value="skipped"><translate>Skipped</translate></option>
-            <option value="errored"><translate>Errored</translate></option>
+            <option value="errored"><translate>Failed</translate></option>
             <option value="finished"><translate>Finished</translate></option>
           </select>
         </div>
@@ -46,7 +46,10 @@
         :objects-data="result"
         :custom-objects="customObjects"
         :actions="actions"
+        :refreshable="true"
+        :needs-refresh="needsRefresh"
         :action-url="'uploads/action/'"
+        @refresh="fetchData"
         :filters="actionFilters">
         <template slot="header-cells">
           <th><translate>Title</translate></th>
@@ -120,20 +123,21 @@
 
 <script>
 import axios from 'axios'
-import _ from 'lodash'
+import _ from '@/lodash'
 import time from '@/utils/time'
-import {normalizeQuery, parseTokens, compileTokens} from '@/search'
+import {normalizeQuery, parseTokens} from '@/search'
 
 import Pagination from '@/components/Pagination'
 import ActionTable from '@/components/common/ActionTable'
 import OrderingMixin from '@/components/mixins/Ordering'
 import TranslationsMixin from '@/components/mixins/Translations'
+import SmartSearchMixin from '@/components/mixins/SmartSearch'
 
 export default {
-  mixins: [OrderingMixin, TranslationsMixin],
+  mixins: [OrderingMixin, TranslationsMixin, SmartSearchMixin],
   props: {
     filters: {type: Object, required: false},
-    defaultQuery: {type: String, default: ''},
+    needsRefresh: {type: Boolean, required: false, default: false},
     customObjects: {type: Array, required: false, default: () => { return [] }}
   },
   components: {
@@ -168,43 +172,14 @@ export default {
     this.fetchData()
   },
   methods: {
-    getTokenValue (key, fallback) {
-      let matching = this.search.tokens.filter(t => {
-        return t.field === key
-      })
-      if (matching.length > 0) {
-        return matching[0].value
-      }
-      return fallback
-    },
-    addSearchToken (key, value) {
-      if (!value) {
-        // we remove existing matching tokens, if any
-        this.search.tokens = this.search.tokens.filter(t => {
-          return t.field != key
-        })
-      } else {
-        let existing = this.search.tokens.filter(t => {
-          return t.field === key
-        })
-        if (existing.length > 0) {
-          // we replace the value in existing tokens, if any
-          existing.forEach(t => {
-            t.value = value
-          })
-        } else {
-          // we add a new token
-          this.search.tokens.push({field: key, value})
-        }
-      }
-    },
     fetchData () {
+      this.$emit('fetch-start')
       let params = _.merge({
         'page': this.page,
         'page_size': this.paginateBy,
         'ordering': this.getOrderingAsString(),
         'q': this.search.query
-      }, {})
+      }, this.filters || {})
       let self = this
       self.isLoading = true
       self.checked = []
@@ -223,23 +198,23 @@ export default {
   computed: {
     labels () {
       return {
-        searchPlaceholder: this.$gettext('Search by title, artist, album...'),
+        searchPlaceholder: this.$gettext('Search by title, artist, album…'),
         importStatuses: {
           skipped: {
             label: this.$gettext('Skipped'),
-            help: this.$gettext('Track was already present in one of your libraries'),
+            help: this.$gettext('Track already present in one of your libraries'),
           },
           pending: {
             label: this.$gettext('Pending'),
-            help: this.$gettext('Track is uploaded but not processed by the server yet'),
+            help: this.$gettext('Track uploaded, but not processed by the server yet'),
           },
           errored: {
             label: this.$gettext('Errored'),
-            help: this.$gettext('An error occured while processing this track, ensure the track is correctly tagged'),
+            help: this.$gettext('Could not process this track, ensure it is tagged correctly'),
           },
           finished: {
             label: this.$gettext('Finished'),
-            help: this.$gettext('Import went on successfully'),
+            help: this.$gettext('Imported'),
           },
         }
       }
@@ -277,17 +252,6 @@ export default {
     }
   },
   watch: {
-    'search.query' (newValue) {
-      this.search.tokens = parseTokens(normalizeQuery(newValue))
-    },
-    'search.tokens': {
-      handler (newValue) {
-        this.search.query = compileTokens(newValue)
-        this.page = 1
-        this.fetchData()
-      },
-      deep: true
-    },
     orderingDirection: function () {
       this.page = 1
       this.fetchData()
@@ -302,7 +266,7 @@ export default {
     search (newValue) {
       this.page = 1
       this.fetchData()
-    },
+    }
   }
 }
 </script>
diff --git a/front/src/views/content/libraries/Form.vue b/front/src/views/content/libraries/Form.vue
index 8650496bbd0b5416c124fc29d3be8d652c75a9a7..96d28829ab2b16dc1953f28f748ebfa9fb2d7c6d 100644
--- a/front/src/views/content/libraries/Form.vue
+++ b/front/src/views/content/libraries/Form.vue
@@ -17,7 +17,7 @@
     </div>
     <div class="field">
       <label><translate>Visibility</translate></label>
-      <p><translate>You will be able to share your library with other people, regardless of it's visibility.</translate></p>
+      <p><translate>You are able to share your library with other people, regardless of its visibility.</translate></p>
       <select class="ui dropdown" v-model="currentVisibilityLevel">
         <option :value="c" v-for="c in ['me', 'instance', 'everyone']">{{ labels.visibility[c] }}</option>
       </select>
@@ -33,7 +33,7 @@
       </p>
       <p slot="modal-content">
         <translate>
-          The library and all its tracks will be deleted. This action is irreversible.
+          The library and all its tracks will be deleted. This can not be undone.
         </translate>
       </p>
       <p slot="modal-confirm">
@@ -68,10 +68,10 @@ export default {
   computed: {
     labels () {
       let namePlaceholder = this.$gettext('My awesome library')
-      let descriptionPlaceholder = this.$gettext('This library contains my personnal music, I hope you will like it!')
+      let descriptionPlaceholder = this.$gettext('This library contains my personal music, I hope you like it.')
       let me = this.$gettext('Nobody except me')
       let instance = this.$gettext('Everyone on this instance')
-      let everyone = this.$gettext('Everyone, including other instances')
+      let everyone = this.$gettext('Everyone, across all instances')
       return {
         namePlaceholder,
         descriptionPlaceholder,
diff --git a/front/src/views/content/libraries/Home.vue b/front/src/views/content/libraries/Home.vue
index 98dc2dde3e6fd6fc820427491d86533d1155c372..f6eafc711ab23c331e3f42c88e09a0a072ce4a5a 100644
--- a/front/src/views/content/libraries/Home.vue
+++ b/front/src/views/content/libraries/Home.vue
@@ -1,13 +1,13 @@
 <template>
-  <div class="ui vertical aligned stripe segment">
+  <section class="ui vertical aligned stripe segment">
     <div v-if="isLoading" :class="['ui', {'active': isLoading}, 'inverted', 'dimmer']">
-      <div class="ui text loader"><translate>Loading Libraries...</translate></div>
+      <div class="ui text loader"><translate>Loading Libraries…</translate></div>
     </div>
     <div v-else class="ui text container">
       <h1 class="ui header"><translate>My libraries</translate></h1>
 
       <p v-if="libraries.length == 0">
-        <translate>It looks like you don't have any library yet, it's time to create one!</translate>
+        <translate>Looks like you don't have a library, it's time to create one.</translate>
       </p>
       <a @click="hiddenForm = !hiddenForm">
         <i class="plus icon" v-if="hiddenForm" />
@@ -24,24 +24,24 @@
         </div>
       </div>
     </div>
-  </div>
+  </section>
 </template>
 
 <script>
-import axios from 'axios'
-import LibraryForm from './Form'
-import LibraryCard from './Card'
-import Quota from './Quota'
+import axios from "axios"
+import LibraryForm from "./Form"
+import LibraryCard from "./Card"
+import Quota from "./Quota"
 
 export default {
-  data () {
+  data() {
     return {
       isLoading: false,
       hiddenForm: true,
       libraries: []
     }
   },
-  created () {
+  created() {
     this.fetch()
   },
   components: {
@@ -50,10 +50,10 @@ export default {
     Quota
   },
   methods: {
-    fetch () {
+    fetch() {
       this.isLoading = true
       let self = this
-      axios.get('libraries/').then((response) => {
+      axios.get("libraries/").then(response => {
         self.isLoading = false
         self.libraries = response.data.results
         if (self.libraries.length === 0) {
@@ -61,7 +61,7 @@ export default {
         }
       })
     },
-    libraryCreated (library) {
+    libraryCreated(library) {
       this.hiddenForm = true
       this.libraries.unshift(library)
     }
diff --git a/front/src/views/content/libraries/Quota.vue b/front/src/views/content/libraries/Quota.vue
index 92e5ad634ed51fc65480f50fac3bf0e7cfc136b4..ba747f0e664b37857829896829e58bcb74ec7ccf 100644
--- a/front/src/views/content/libraries/Quota.vue
+++ b/front/src/views/content/libraries/Quota.vue
@@ -2,7 +2,7 @@
   <div class="ui segment">
     <h3 class="ui header"><translate>Current usage</translate></h3>
     <div v-if="isLoading" :class="['ui', {'active': isLoading}, 'inverted', 'dimmer']">
-      <div class="ui text loader"><translate>Loading usage data...</translate></div>
+      <div class="ui text loader"><translate>Loading usage data…</translate></div>
     </div>
     <div :class="['ui', {'success': progress < 60}, {'yellow': progress >= 60 && progress < 96}, {'error': progress >= 95}, 'progress']">
       <div class="bar" :style="{width: `${progress}%`}">
@@ -36,7 +36,7 @@
             :action="purgePendingFiles">
             <translate>Purge</translate>
             <p slot="modal-header"><translate>Purge pending files?</translate></p>
-            <p slot="modal-content"><translate>This will remove tracks that were uploaded but not processed yet. This will remove those files completely and you will regain the corresponding quota.</translate></p>
+            <p slot="modal-content"><translate>Removes uploaded but yet to be processed tracks completely, adding the corresponding data to your quota.</translate></p>
             <p slot="modal-confirm"><translate>Purge</translate></p>
           </dangerous-button>
         </div>
@@ -62,7 +62,7 @@
             :action="purgeSkippedFiles">
             <translate>Purge</translate>
             <p slot="modal-header"><translate>Purge skipped files?</translate></p>
-            <p slot="modal-content"><translate>This will remove tracks that were uploaded but skipped during import processes for various reasons. This will remove those files completely and you will regain the corresponding quota.</translate></p>
+            <p slot="modal-content"><translate>Removes uploaded tracks skipped during the import processes completely, adding the corresponding data to your quota.</translate></p>
             <p slot="modal-confirm"><translate>Purge</translate></p>
           </dangerous-button>
         </div>
@@ -88,7 +88,7 @@
             :action="purgeErroredFiles">
             <translate>Purge</translate>
             <p slot="modal-header"><translate>Purge errored files?</translate></p>
-            <p slot="modal-content"><translate>This will remove tracks that were uploaded but failed to be process by the server. This will remove those files completely and you will regain the corresponding quota.</translate></p>
+            <p slot="modal-content"><translate>Removes uploaded tracks that could not be processed by the server completely, adding the corresponding data to your quota.</translate></p>
             <p slot="modal-confirm"><translate>Purge</translate></p>
           </dangerous-button>
         </div>
diff --git a/front/src/views/content/libraries/Upload.vue b/front/src/views/content/libraries/Upload.vue
index 6df698b2c2bbc3f6b5c214cc1f13fe2171bf8811..1da3ad55432284887f09a64a5ec19b67b8b8f3a4 100644
--- a/front/src/views/content/libraries/Upload.vue
+++ b/front/src/views/content/libraries/Upload.vue
@@ -1,7 +1,7 @@
 <template>
   <div class="ui vertical aligned stripe segment">
     <div v-if="isLoadingLibrary" :class="['ui', {'active': isLoadingLibrary}, 'inverted', 'dimmer']">
-      <div class="ui text loader"><translate>Loading library data...</translate></div>
+      <div class="ui text loader"><translate>Loading library data…</translate></div>
     </div>
     <detail-area v-else :library="library">
       <file-upload :default-import-reference="defaultImportReference" :library="library" />
diff --git a/front/src/views/content/remote/Card.vue b/front/src/views/content/remote/Card.vue
index 87c3c2fbc21af7d9a81d57c0709bdee8a66303d4..c9d7ad1a4b6c63f9b12a05bcaa47db4ea5153546 100644
--- a/front/src/views/content/remote/Card.vue
+++ b/front/src/views/content/remote/Card.vue
@@ -29,19 +29,19 @@
       <div v-if="displayScan && latestScan" class="meta">
         <template v-if="latestScan.status === 'pending'">
           <i class="hourglass icon"></i>
-          <translate>Scan pending</translate>
+          <translate>Scan waiting</translate>
         </template>
         <template v-if="latestScan.status === 'scanning'">
           <i class="loading spinner icon"></i>
-          <translate :translate-params="{progress: scanProgress}">Scanning... (%{ progress }%)</translate>
+          <translate :translate-params="{progress: scanProgress}">Scanning… (%{ progress }%)</translate>
         </template>
         <template v-else-if="latestScan.status === 'errored'">
           <i class="red download icon"></i>
-          <translate>Error during scan</translate>
+          <translate>Problem during scanning</translate>
         </template>
         <template v-else-if="latestScan.status === 'finished' && latestScan.errored_files === 0">
           <i class="green download icon"></i>
-          <translate>Scanned successfully</translate>
+          <translate>Scanned</translate>
         </template>
         <template v-else-if="latestScan.status === 'finished' && latestScan.errored_files > 0">
           <i class="yellow download icon"></i>
@@ -56,12 +56,12 @@
           <template v-if="latestScan.modification_date">
             <translate>Last update:</translate><human-date :date="latestScan.modification_date" /><br />
           </template>
-          <translate>Errored tracks:</translate> {{ latestScan.errored_files }}
+          <translate>Failed tracks:</translate> {{ latestScan.errored_files }}
         </div>
       </div>
       <div v-if="displayScan && canLaunchScan" class="clearfix">
         <span class="right floated link" @click="launchScan">
-          <translate>Launch scan</translate> <i class="paper plane icon" />
+          <translate>Scan now</translate> <i class="paper plane icon" />
         </span>
       </div>
     </div>
@@ -86,7 +86,7 @@
       <button
         v-else-if="!library.follow.approved"
         class="ui disabled button"><i class="hourglass icon"></i>
-        <translate>Follow pending approval</translate>
+        <translate>Follow request pending approval</translate>
       </button>
       <button
         v-else-if="!library.follow.approved"
@@ -101,7 +101,7 @@
         <translate>Unfollow</translate>
         <p slot="modal-header"><translate>Unfollow this library?</translate></p>
         <div slot="modal-content">
-          <p><translate>By unfollowing this library, you will loose access to its content.</translate></p>
+          <p><translate>By unfollowing this library, you loose access to its content.</translate></p>
         </div>
         <p slot="modal-confirm"><translate>Unfollow</translate></p>
       </dangerous-button>
@@ -128,8 +128,8 @@ export default {
   },
   computed: {
     labels () {
-      let me = this.$gettext('This library is private and you will need approval from its owner to access its content')
-      let everyone = this.$gettext('This library is public and you can access its content without any authorization')
+      let me = this.$gettext('This library is private and your approval from its owner is needed to access its content')
+      let everyone = this.$gettext('This library is public and you can access its content freely')
 
       return {
         tooltips: {
diff --git a/front/src/views/content/remote/Home.vue b/front/src/views/content/remote/Home.vue
index c22dd677b2d63c4ca9b4ec1ce72cccfea20f5ac5..636b2fb8c365e1eb3c3b9a6d46b43da1a31d88c4 100644
--- a/front/src/views/content/remote/Home.vue
+++ b/front/src/views/content/remote/Home.vue
@@ -13,7 +13,7 @@
       </div>
       <template v-if="existingFollows && existingFollows.count > 0">
         <h2><translate>Known libraries</translate></h2>
-        <i @click="fetch()" :class="['ui', 'circular', 'medium', 'refresh', 'icon']" /> <translate>Refresh</translate>
+        <i @click="fetch()" :class="['ui', 'circular', 'refresh', 'icon']" /> <translate>Refresh</translate>
         <div class="ui hidden divider"></div>
         <div class="ui two cards">
           <library-card
diff --git a/front/src/views/content/remote/ScanForm.vue b/front/src/views/content/remote/ScanForm.vue
index ddd9eff8d2b04576add2265697f7816fe88c53bb..44cb19cf8edd9039bd3d60d403a761f9ed54b3d7 100644
--- a/front/src/views/content/remote/ScanForm.vue
+++ b/front/src/views/content/remote/ScanForm.vue
@@ -1,7 +1,7 @@
 <template>
   <form class="ui form" @submit.prevent="scan">
     <div v-if="errors.length > 0" class="ui negative message">
-      <div class="header"><translate>Error while fetching remote library</translate></div>
+      <div class="header"><translate>Could not fetch remote library</translate></div>
       <ul class="list">
         <li v-for="error in errors">{{ error }}</li>
       </ul>
@@ -34,6 +34,8 @@ export default {
         return
       }
       let self = this
+      self.errors = []
+      self.isLoading = true
       axios.post('federation/libraries/fetch/', {fid: this.query}).then((response) => {
         self.$emit('scanned', response.data)
         self.isLoading = false
@@ -45,7 +47,7 @@ export default {
   },
   computed: {
     labels () {
-      let placeholder = this.$gettext('Enter a library url')
+      let placeholder = this.$gettext('Enter a library URL')
       return {
         placeholder
       }
diff --git a/front/src/views/instance/Timeline.vue b/front/src/views/instance/Timeline.vue
deleted file mode 100644
index a70bd404966cc96972efadaa3f8146ee7b9bb599..0000000000000000000000000000000000000000
--- a/front/src/views/instance/Timeline.vue
+++ /dev/null
@@ -1,107 +0,0 @@
-<template>
-  <div class="main pusher" v-title="labels.title">
-    <div class="ui vertical center aligned stripe segment">
-      <div v-if="isLoading" :class="['ui', {'active': isLoading}, 'inverted', 'dimmer']">
-        <div class="ui text loader"><translate>Loading timeline...</translate></div>
-      </div>
-      <div v-else class="ui text container">
-        <h1 class="ui header"><translate>Recent activity on this instance</translate></h1>
-        <div class="ui feed">
-          <component
-            class="event"
-            v-for="(event, index) in events"
-            :key="event.id + index"
-            v-if="components[event.type]"
-            :is="components[event.type]"
-            :event="event">
-          </component>
-        </div>
-      </div>
-    </div>
-  </div>
-</template>
-
-<script>
-import {mapState} from 'vuex'
-import { WebSocketBridge } from 'django-channels'
-import axios from 'axios'
-import logger from '@/logging'
-
-import Like from '@/components/activity/Like'
-import Listen from '@/components/activity/Listen'
-
-export default {
-  data () {
-    return {
-      isLoading: false,
-      bridge: null,
-      components: {
-        'Like': Like,
-        'Listen': Listen
-      }
-    }
-  },
-  created () {
-    this.openWebsocket()
-    this.fetchEvents()
-  },
-  destroyed () {
-    this.disconnect()
-  },
-  computed: {
-    ...mapState({
-      events: state => state.instance.events
-    }),
-    labels () {
-      return {
-        title: this.$gettext('Instance Timeline')
-      }
-    }
-  },
-  methods: {
-    fetchEvents () {
-      this.isLoading = true
-      let self = this
-      axios.get('/activity/').then((response) => {
-        self.isLoading = false
-        self.$store.commit('instance/events', response.data.results)
-      })
-    },
-    disconnect () {
-      if (!this.bridge) {
-        return
-      }
-      this.bridge.socket.close(1000, 'goodbye', {keepClosed: true})
-    },
-    openWebsocket () {
-      if (!this.$store.state.auth.authenticated) {
-        return
-      }
-      this.disconnect()
-      let self = this
-      let token = this.$store.state.auth.token
-      // let token = 'test'
-      const bridge = new WebSocketBridge()
-      this.bridge = bridge
-      let url = this.$store.getters['instance/absoluteUrl'](`api/v1/instance/activity?token=${token}`)
-      url = url.replace('http://', 'ws://')
-      url = url.replace('https://', 'wss://')
-      bridge.connect(
-        url,
-        null,
-        {reconnectInterval: 5000})
-      bridge.listen(function (event) {
-        logger.default.info('Received timeline update', event)
-        self.$store.commit('instance/event', event)
-      })
-      bridge.socket.addEventListener('open', function () {
-        console.log('Connected to WebSocket')
-      })
-    }
-  }
-}
-</script>
-
-<!-- Add "scoped" attribute to limit CSS to this component only -->
-<style scoped>
-</style>
diff --git a/front/src/views/playlists/Detail.vue b/front/src/views/playlists/Detail.vue
index c1a08a7d1c51e5995c495e08cd48d495fbab8a50..8b4dcc4c696a06a65ed6e7cb2d425791202f78f9 100644
--- a/front/src/views/playlists/Detail.vue
+++ b/front/src/views/playlists/Detail.vue
@@ -1,9 +1,9 @@
 <template>
-  <div>
+  <main>
     <div v-if="isLoading" class="ui vertical segment" v-title="labels.playlist">
       <div :class="['ui', 'centered', 'active', 'inline', 'loader']"></div>
     </div>
-    <div v-if="!isLoading && playlist" class="ui head vertical center aligned stripe segment" v-title="playlist.name">
+    <section v-if="!isLoading && playlist" class="ui head vertical center aligned stripe segment" v-title="playlist.name">
       <div class="segment-content">
         <h2 class="ui center aligned icon header">
           <i class="circular inverted list yellow icon"></i>
@@ -12,8 +12,8 @@
             <div class="sub header">
               <translate
                 translate-plural="Playlist containing %{ count } tracks, by %{ username }"
-                :translate-n="playlistTracks.length"
-                :translate-params="{count: playlistTracks.length, username: playlist.user.username}">
+                :translate-n="playlist.tracks_count"
+                :translate-params="{count: playlist.tracks_count, username: playlist.user.username}">
                 Playlist containing %{ count } track, by %{ username }
               </translate><br>
               <duration :seconds="playlist.duration" />
@@ -28,7 +28,7 @@
           @click="edit = !edit">
           <i class="pencil icon"></i>
           <template v-if="edit"><translate>End edition</translate></template>
-          <template v-else><translate>Edit...</translate></template>
+          <template v-else><translate>Edit…</translate></template>
         </button>
         <dangerous-button v-if="$store.state.auth.profile && playlist.user.id === $store.state.auth.profile.id" class="labeled icon" :action="deletePlaylist">
           <i class="trash icon"></i> <translate>Delete</translate>
@@ -39,8 +39,8 @@
           <p slot="modal-confirm"><translate>Delete playlist</translate></p>
         </dangerous-button>
       </div>
-    </div>
-    <div class="ui vertical stripe segment">
+    </section>
+    <section class="ui vertical stripe segment">
       <template v-if="edit">
         <playlist-editor
           @playlist-updated="playlist = $event"
@@ -51,20 +51,20 @@
         <h2><translate>Tracks</translate></h2>
         <track-table :display-position="true" :tracks="tracks"></track-table>
       </template>
-    </div>
-  </div>
+    </section>
+  </main>
 </template>
 <script>
-import axios from 'axios'
-import TrackTable from '@/components/audio/track/Table'
-import RadioButton from '@/components/radios/Button'
-import PlayButton from '@/components/audio/PlayButton'
-import PlaylistEditor from '@/components/playlists/Editor'
+import axios from "axios"
+import TrackTable from "@/components/audio/track/Table"
+import RadioButton from "@/components/radios/Button"
+import PlayButton from "@/components/audio/PlayButton"
+import PlaylistEditor from "@/components/playlists/Editor"
 
 export default {
   props: {
-    id: {required: true},
-    defaultEdit: {type: Boolean, default: false}
+    id: { required: true },
+    defaultEdit: { type: Boolean, default: false }
   },
   components: {
     PlaylistEditor,
@@ -72,7 +72,7 @@ export default {
     PlayButton,
     RadioButton
   },
-  data: function () {
+  data: function() {
     return {
       edit: this.defaultEdit,
       isLoading: false,
@@ -81,18 +81,18 @@ export default {
       playlistTracks: []
     }
   },
-  created: function () {
+  created: function() {
     this.fetch()
   },
   computed: {
-    labels () {
+    labels() {
       return {
-        playlist: this.$gettext('Playlist')
+        playlist: this.$gettext("Playlist")
       }
     }
   },
   methods: {
-    updatePlts (v) {
+    updatePlts(v) {
       this.playlistTracks = v
       this.tracks = v.map((e, i) => {
         let track = e.track
@@ -100,26 +100,29 @@ export default {
         return track
       })
     },
-    fetch: function () {
+    fetch: function() {
       let self = this
       self.isLoading = true
-      let url = 'playlists/' + this.id + '/'
-      axios.get(url).then((response) => {
+      let url = "playlists/" + this.id + "/"
+      axios.get(url).then(response => {
         self.playlist = response.data
-        axios.get(url + 'tracks/').then((response) => {
-          self.updatePlts(response.data.results)
-        }).then(() => {
-          self.isLoading = false
-        })
+        axios
+          .get(url + "tracks/")
+          .then(response => {
+            self.updatePlts(response.data.results)
+          })
+          .then(() => {
+            self.isLoading = false
+          })
       })
     },
-    deletePlaylist () {
+    deletePlaylist() {
       let self = this
-      let url = 'playlists/' + this.id + '/'
-      axios.delete(url).then((response) => {
-        self.$store.dispatch('playlists/fetchOwn')
+      let url = "playlists/" + this.id + "/"
+      axios.delete(url).then(response => {
+        self.$store.dispatch("playlists/fetchOwn")
         self.$router.push({
-          path: '/library'
+          path: "/library"
         })
       })
     }
diff --git a/front/src/views/playlists/List.vue b/front/src/views/playlists/List.vue
index 47035da7fc6df7ce15fe993559071d9dbf8b2069..be63953064576a86c744be44f727f53d326f3d2d 100644
--- a/front/src/views/playlists/List.vue
+++ b/front/src/views/playlists/List.vue
@@ -1,6 +1,6 @@
 <template>
-  <div v-title="labels.playlists">
-    <div class="ui vertical stripe segment">
+  <main v-title="labels.playlists">
+    <section class="ui vertical stripe segment">
       <h2 class="ui header"><translate>Browsing playlists</translate></h2>
       <div :class="['ui', {'loading': isLoading}, 'form']">
         <template v-if="$store.state.auth.authenticated">
@@ -23,7 +23,7 @@
             </select>
           </div>
           <div class="field">
-            <label><translate>Ordering direction</translate></label>
+            <label><translate>Order</translate></label>
             <select class="ui dropdown" v-model="orderingDirection">
               <option value="+"><translate>Ascending</translate></option>
               <option value="-"><translate>Descending</translate></option>
@@ -50,59 +50,61 @@
           :total="result.count"
           ></pagination>
       </div>
-    </div>
-  </div>
+    </section>
+  </main>
 </template>
 
 <script>
-import axios from 'axios'
-import _ from 'lodash'
-import $ from 'jquery'
+import axios from "axios"
+import _ from "@/lodash"
+import $ from "jquery"
 
-import OrderingMixin from '@/components/mixins/Ordering'
-import PaginationMixin from '@/components/mixins/Pagination'
-import TranslationsMixin from '@/components/mixins/Translations'
-import PlaylistCardList from '@/components/playlists/CardList'
-import Pagination from '@/components/Pagination'
+import OrderingMixin from "@/components/mixins/Ordering"
+import PaginationMixin from "@/components/mixins/Pagination"
+import TranslationsMixin from "@/components/mixins/Translations"
+import PlaylistCardList from "@/components/playlists/CardList"
+import Pagination from "@/components/Pagination"
 
-const FETCH_URL = 'playlists/'
+const FETCH_URL = "playlists/"
 
 export default {
   mixins: [OrderingMixin, PaginationMixin, TranslationsMixin],
   props: {
-    defaultQuery: {type: String, required: false, default: ''}
+    defaultQuery: { type: String, required: false, default: "" }
   },
   components: {
     PlaylistCardList,
     Pagination
   },
-  data () {
-    let defaultOrdering = this.getOrderingFromString(this.defaultOrdering || '-creation_date')
+  data() {
+    let defaultOrdering = this.getOrderingFromString(
+      this.defaultOrdering || "-creation_date"
+    )
     return {
       isLoading: true,
       result: null,
       page: parseInt(this.defaultPage),
       query: this.defaultQuery,
       paginateBy: parseInt(this.defaultPaginateBy || 12),
-      orderingDirection: defaultOrdering.direction || '+',
+      orderingDirection: defaultOrdering.direction || "+",
       ordering: defaultOrdering.field,
       orderingOptions: [
-        ['creation_date', 'creation_date'],
-        ['modification_date', 'modification_date'],
-        ['name', 'name']
+        ["creation_date", "creation_date"],
+        ["modification_date", "modification_date"],
+        ["name", "name"]
       ]
     }
   },
-  created () {
+  created() {
     this.fetchData()
   },
-  mounted () {
-    $('.ui.dropdown').dropdown()
+  mounted() {
+    $(".ui.dropdown").dropdown()
   },
   computed: {
-    labels () {
-      let playlists = this.$gettext('Playlists')
-      let searchPlaceholder = this.$gettext('Enter an playlist name...')
+    labels() {
+      let playlists = this.$gettext("Playlists")
+      let searchPlaceholder = this.$gettext("Enter playlist name…")
       return {
         playlists,
         searchPlaceholder
@@ -110,7 +112,7 @@ export default {
     }
   },
   methods: {
-    updateQueryString: _.debounce(function () {
+    updateQueryString: _.debounce(function() {
       this.$router.replace({
         query: {
           query: this.query,
@@ -120,7 +122,7 @@ export default {
         }
       })
     }, 250),
-    fetchData: _.debounce(function () {
+    fetchData: _.debounce(function() {
       var self = this
       this.isLoading = true
       let url = FETCH_URL
@@ -128,35 +130,36 @@ export default {
         page: this.page,
         page_size: this.paginateBy,
         q: this.query,
-        ordering: this.getOrderingAsString()
+        ordering: this.getOrderingAsString(),
+        playable: true
       }
-      axios.get(url, {params: params}).then((response) => {
+      axios.get(url, { params: params }).then(response => {
         self.result = response.data
         self.isLoading = false
       })
     }, 500),
-    selectPage: function (page) {
+    selectPage: function(page) {
       this.page = page
     }
   },
   watch: {
-    page () {
+    page() {
       this.updateQueryString()
       this.fetchData()
     },
-    paginateBy () {
+    paginateBy() {
       this.updateQueryString()
       this.fetchData()
     },
-    ordering () {
+    ordering() {
       this.updateQueryString()
       this.fetchData()
     },
-    orderingDirection () {
+    orderingDirection() {
       this.updateQueryString()
       this.fetchData()
     },
-    query () {
+    query() {
       this.updateQueryString()
       this.fetchData()
     }
diff --git a/front/src/views/radios/Detail.vue b/front/src/views/radios/Detail.vue
index e269bf284e9c08fbd52e00061070d4f3fac02bb3..0c46385a6bab53f50f96d65acd491ac6c287e4c3 100644
--- a/front/src/views/radios/Detail.vue
+++ b/front/src/views/radios/Detail.vue
@@ -1,9 +1,9 @@
 <template>
-  <div>
+  <main>
     <div v-if="isLoading" class="ui vertical segment" v-title="labels.title">
       <div :class="['ui', 'centered', 'active', 'inline', 'loader']"></div>
     </div>
-    <div v-if="!isLoading && radio" class="ui head vertical center aligned stripe segment" v-title="radio.name">
+    <section v-if="!isLoading && radio" class="ui head vertical center aligned stripe segment" v-title="radio.name">
       <div class="segment-content">
         <h2 class="ui center aligned icon header">
           <i class="circular inverted feed blue icon"></i>
@@ -30,8 +30,8 @@
           </dangerous-button>
         </template>
       </div>
-    </div>
-    <div class="ui vertical stripe segment">
+    </section>
+    <section class="ui vertical stripe segment">
       <h2><translate>Tracks</translate></h2>
       <track-table :tracks="tracks"></track-table>
       <div class="ui center aligned basic segment">
@@ -43,26 +43,26 @@
           :total="totalTracks"
           ></pagination>
       </div>
-    </div>
-  </div>
+    </section>
+  </main>
 </template>
 
 <script>
-import axios from 'axios'
-import TrackTable from '@/components/audio/track/Table'
-import RadioButton from '@/components/radios/Button'
-import Pagination from '@/components/Pagination'
+import axios from "axios"
+import TrackTable from "@/components/audio/track/Table"
+import RadioButton from "@/components/radios/Button"
+import Pagination from "@/components/Pagination"
 
 export default {
   props: {
-    id: {required: true}
+    id: { required: true }
   },
   components: {
     TrackTable,
     RadioButton,
     Pagination
   },
-  data: function () {
+  data: function() {
     return {
       isLoading: false,
       radio: null,
@@ -71,46 +71,49 @@ export default {
       page: 1
     }
   },
-  created: function () {
+  created: function() {
     this.fetch()
   },
   computed: {
-    labels () {
+    labels() {
       return {
-        title: this.$gettext('Radio')
+        title: this.$gettext("Radio")
       }
     }
   },
   methods: {
-    selectPage: function (page) {
+    selectPage: function(page) {
       this.page = page
     },
-    fetch: function () {
+    fetch: function() {
       let self = this
       self.isLoading = true
-      let url = 'radios/radios/' + this.id + '/'
-      axios.get(url).then((response) => {
+      let url = "radios/radios/" + this.id + "/"
+      axios.get(url).then(response => {
         self.radio = response.data
-        axios.get(url + 'tracks/', {params: {page: this.page}}).then((response) => {
-          this.totalTracks = response.data.count
-          this.tracks = response.data.results
-        }).then(() => {
-          self.isLoading = false
-        })
+        axios
+          .get(url + "tracks/", { params: { page: this.page } })
+          .then(response => {
+            this.totalTracks = response.data.count
+            this.tracks = response.data.results
+          })
+          .then(() => {
+            self.isLoading = false
+          })
       })
     },
-    deleteRadio () {
+    deleteRadio() {
       let self = this
-      let url = 'radios/radios/' + this.id + '/'
-      axios.delete(url).then((response) => {
+      let url = "radios/radios/" + this.id + "/"
+      axios.delete(url).then(response => {
         self.$router.push({
-          path: '/library'
+          path: "/library"
         })
       })
     }
   },
   watch: {
-    page: function () {
+    page: function() {
       this.fetch()
     }
   }
diff --git a/front/stats.json b/front/stats.json
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/front/tests/unit/specs/filters/filters.spec.js b/front/tests/unit/specs/filters/filters.spec.js
index 8ee6b4b710bfe6ce5727a3f8797588551516a227..1464e5c971215df16b7e11848a52af0bf74d62e5 100644
--- a/front/tests/unit/specs/filters/filters.spec.js
+++ b/front/tests/unit/specs/filters/filters.spec.js
@@ -1,6 +1,6 @@
 import {expect} from 'chai'
 
-import {truncate, markdown, ago, capitalize, year} from '@/filters'
+import {truncate, ago, capitalize, year} from '@/filters'
 
 describe('filters', () => {
   describe('truncate', () => {
@@ -20,13 +20,6 @@ describe('filters', () => {
       expect(output).to.equal('Hello pouet')
     })
   })
-  describe('markdown', () => {
-    it('renders markdown', () => {
-      const input = 'Hello world'
-      let output = markdown(input)
-      expect(output).to.equal('<p>Hello world</p>')
-    })
-  })
   describe('ago', () => {
     it('works', () => {
       const input = new Date()
diff --git a/front/tests/unit/specs/store/instance.spec.js b/front/tests/unit/specs/store/instance.spec.js
index b60b1fd477e888f3a4a70b98d940fb05dccebdcb..5ae771c75f3b2e6efdb189f46fb3ff67c0a9de23 100644
--- a/front/tests/unit/specs/store/instance.spec.js
+++ b/front/tests/unit/specs/store/instance.spec.js
@@ -1,5 +1,6 @@
 import {expect} from 'chai'
 var sinon = require('sinon')
+import axios from 'axios'
 import moxios from 'moxios'
 import store from '@/store/instance'
 import { testAction } from '../../utils'
@@ -14,15 +15,24 @@ describe('store/instance', () => {
   afterEach(function () {
     sandbox.restore()
     moxios.uninstall()
+    axios.defaults.baseURL = null
   })
 
   describe('mutations', () => {
     it('settings', () => {
-      const state = {settings: {raven: {front_dsn: {value: 'test'}}}}
-      let settings = {raven: {front_enabled: {value: true}}}
+      const state = {settings: {users: {upload_quota: {value: 1}}}}
+      let settings = {users: {registration_enabled: {value: true}}}
       store.mutations.settings(state, settings)
       expect(state.settings).to.deep.equal({
-        raven: {front_dsn: {value: 'test'}, front_enabled: {value: true}}
+        users: {upload_quota: {value: 1}, registration_enabled: {value: true}}
+      })
+    })
+    it('instanceUrl', () => {
+      const state = {instanceUrl: null, knownInstances: ['http://test2/', 'http://test/']}
+      store.mutations.instanceUrl(state, 'http://test')
+      expect(state).to.deep.equal({
+        instanceUrl: 'http://test/',  // trailing slash added
+        knownInstances: ['http://test/', 'http://test2/']
       })
     })
   })
@@ -32,13 +42,13 @@ describe('store/instance', () => {
         status: 200,
         response: [
           {
-            section: 'raven',
-            name: 'front_dsn',
-            value: 'test'
+            section: 'users',
+            name: 'upload_quota',
+            value: 1
           },
           {
-            section: 'raven',
-            name: 'front_enabled',
+            section: 'users',
+            name: 'registration_enabled',
             value: false
           }
         ]
@@ -50,15 +60,15 @@ describe('store/instance', () => {
           {
             type: 'settings',
             payload: {
-              raven: {
-                front_dsn: {
-                  section: 'raven',
-                  name: 'front_dsn',
-                  value: 'test'
+              users: {
+                upload_quota: {
+                  section: 'users',
+                  name: 'upload_quota',
+                  value: 1
                 },
-                front_enabled: {
-                  section: 'raven',
-                  name: 'front_enabled',
+                registration_enabled: {
+                  section: 'users',
+                  name: 'registration_enabled',
                   value: false
                 }
               }
diff --git a/front/tests/unit/specs/store/queue.spec.js b/front/tests/unit/specs/store/queue.spec.js
index 373f4938e034864d65db318ba82a550fdcc012c4..140ce071a073ec722753c622b3e29384fe880072 100644
--- a/front/tests/unit/specs/store/queue.spec.js
+++ b/front/tests/unit/specs/store/queue.spec.js
@@ -1,7 +1,7 @@
 var sinon = require('sinon')
 import {expect} from 'chai'
 
-import _ from 'lodash'
+import _ from '@/lodash'
 
 import store from '@/store/queue'
 import { testAction } from '../../utils'
@@ -88,7 +88,7 @@ describe('store/queue', () => {
     it('append at end', () => {
       testAction({
         action: store.actions.append,
-        payload: {track: 4, skipPlay: true},
+        payload: {track: 4},
         params: {state: {tracks: [1, 2, 3]}},
         expectedMutations: [
           { type: 'insert', payload: {track: 4, index: 3} }
@@ -98,26 +98,13 @@ describe('store/queue', () => {
     it('append at index', () => {
       testAction({
         action: store.actions.append,
-        payload: {track: 2, index: 1, skipPlay: true},
+        payload: {track: 2, index: 1},
         params: {state: {tracks: [1, 3]}},
         expectedMutations: [
           { type: 'insert', payload: {track: 2, index: 1} }
         ]
       })
     })
-    it('append and play', () => {
-      testAction({
-        action: store.actions.append,
-        payload: {track: 3},
-        params: {state: {tracks: [1, 2]}},
-        expectedMutations: [
-          { type: 'insert', payload: {track: 3, index: 2} }
-        ],
-        expectedActions: [
-          { type: 'resume' }
-        ]
-      })
-    })
     it('appendMany', () => {
       const tracks = [{title: 1}, {title: 2}]
       testAction({
@@ -125,9 +112,8 @@ describe('store/queue', () => {
         payload: {tracks: tracks},
         params: {state: {tracks: []}},
         expectedActions: [
-          { type: 'append', payload: {track: tracks[0], index: 0, skipPlay: true} },
-          { type: 'append', payload: {track: tracks[1], index: 1, skipPlay: true} },
-          { type: 'resume' }
+          { type: 'append', payload: {track: tracks[0], index: 0} },
+          { type: 'append', payload: {track: tracks[1], index: 1} },
         ]
       })
     })
@@ -138,9 +124,8 @@ describe('store/queue', () => {
         payload: {tracks: tracks, index: 1},
         params: {state: {tracks: [1, 2]}},
         expectedActions: [
-          { type: 'append', payload: {track: tracks[0], index: 1, skipPlay: true} },
-          { type: 'append', payload: {track: tracks[1], index: 2, skipPlay: true} },
-          { type: 'resume' }
+          { type: 'append', payload: {track: tracks[0], index: 1} },
+          { type: 'append', payload: {track: tracks[1], index: 2} },
         ]
       })
     })
@@ -179,31 +164,6 @@ describe('store/queue', () => {
         ]
       })
     })
-    it('resume when ended', () => {
-      testAction({
-        action: store.actions.resume,
-        params: {state: {ended: true}, rootState: {player: {errored: false}}},
-        expectedActions: [
-          { type: 'next' }
-        ]
-      })
-    })
-    it('resume when errored', () => {
-      testAction({
-        action: store.actions.resume,
-        params: {state: {ended: false}, rootState: {player: {errored: true}}},
-        expectedActions: [
-          { type: 'next' }
-        ]
-      })
-    })
-    it('skip resume when not ended or not error', () => {
-      testAction({
-        action: store.actions.resume,
-        params: {state: {ended: false}, rootState: {player: {errored: false}}},
-        expectedActions: []
-      })
-    })
     it('previous when at beginning', () => {
       testAction({
         action: store.actions.previous,
@@ -267,7 +227,6 @@ describe('store/queue', () => {
           { type: 'ended', payload: false },
           { type: 'player/currentTime', payload: 0, options: {root: true} },
           { type: 'player/playing', payload: true, options: {root: true} },
-          { type: 'player/errored', payload: false, options: {root: true} },
           { type: 'currentIndex', payload: 1 }
         ]
       })
@@ -281,7 +240,6 @@ describe('store/queue', () => {
           { type: 'ended', payload: false },
           { type: 'player/currentTime', payload: 0, options: {root: true} },
           { type: 'player/playing', payload: true, options: {root: true} },
-          { type: 'player/errored', payload: false, options: {root: true} },
           { type: 'currentIndex', payload: 1 }
         ]
       })
@@ -295,7 +253,6 @@ describe('store/queue', () => {
           { type: 'ended', payload: false },
           { type: 'player/currentTime', payload: 0, options: {root: true} },
           { type: 'player/playing', payload: true, options: {root: true} },
-          { type: 'player/errored', payload: false, options: {root: true} },
           { type: 'currentIndex', payload: 1 }
         ],
         expectedActions: [
diff --git a/front/vue.config.js b/front/vue.config.js
index 243c8bc0f571496ac871b837cd83ff01ce0e7245..c397f824a3a1a3ac77b887d791d2bba5702e42b3 100644
--- a/front/vue.config.js
+++ b/front/vue.config.js
@@ -1,6 +1,35 @@
 
+const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
+const webpack = require('webpack');
+
+let plugins = [
+  // do not include moment.js locales since it's quite heavy
+  new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/),
+]
+if (process.env.BUNDLE_ANALYZE === '1') {
+  plugins.push(new BundleAnalyzerPlugin())
+}
 module.exports = {
+  baseUrl: '/front/',
+  pages: {
+    embed: {
+      entry: 'src/embed.js',
+      template: 'public/embed.html',
+      filename: 'embed.html',
+    },
+    index: {
+      entry: 'src/main.js',
+      template: 'public/index.html',
+      filename: 'index.html'
+    }
+  },
+  chainWebpack: config => {
+    config.optimization.delete('splitChunks')
+    config.plugins.delete('prefetch-embed')
+    config.plugins.delete('prefetch-index')
+  },
   configureWebpack: {
+    plugins: plugins,
     resolve: {
       alias: {
         'vue$': 'vue/dist/vue.esm.js'
@@ -9,33 +38,7 @@ module.exports = {
   },
   devServer: {
     disableHostCheck: true,
-    proxy: {
-      '^/rest': {
-        target: 'http://nginx:6001',
-        changeOrigin: true,
-      },
-      '^/staticfiles': {
-        target: 'http://nginx:6001',
-        changeOrigin: true,
-      },
-      '^/.well-known': {
-        target: 'http://nginx:6001',
-        changeOrigin: true,
-      },
-      '^/media': {
-        target: 'http://nginx:6001',
-        changeOrigin: true,
-      },
-      '^/federation': {
-        target: 'http://nginx:6001',
-        changeOrigin: true,
-        ws: true,
-      },
-      '^/api': {
-        target: 'http://nginx:6001',
-        changeOrigin: true,
-        ws: true,
-      },
-    }
+    // use https://node1.funkwhale.test/front-server/ if you use docker with federation
+    public: process.env.FRONT_DEVSERVER_URL || ('http://localhost:' + (process.env.VUE_PORT || '8080'))
   }
 }
diff --git a/front/yarn.lock b/front/yarn.lock
index b3d6a460b9a089424ed76e390f02445b5fcd6cc6..db05be080c2249c397b35053a871a58e6162e283 100644
--- a/front/yarn.lock
+++ b/front/yarn.lock
@@ -2,641 +2,657 @@
 # yarn lockfile v1
 
 
-"@babel/code-frame@7.0.0-beta.44":
-  version "7.0.0-beta.44"
-  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.44.tgz#2a02643368de80916162be70865c97774f3adbd9"
-  dependencies:
-    "@babel/highlight" "7.0.0-beta.44"
-
-"@babel/code-frame@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.47.tgz#d18c2f4c4ba8d093a2bcfab5616593bfe2441a27"
-  dependencies:
-    "@babel/highlight" "7.0.0-beta.47"
-
-"@babel/core@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.0.0-beta.47.tgz#b9c164fb9a1e1083f067c236a9da1d7a7d759271"
-  dependencies:
-    "@babel/code-frame" "7.0.0-beta.47"
-    "@babel/generator" "7.0.0-beta.47"
-    "@babel/helpers" "7.0.0-beta.47"
-    "@babel/template" "7.0.0-beta.47"
-    "@babel/traverse" "7.0.0-beta.47"
-    "@babel/types" "7.0.0-beta.47"
-    babylon "7.0.0-beta.47"
+"@babel/code-frame@^7.0.0":
+  version "7.0.0"
+  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8"
+  integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==
+  dependencies:
+    "@babel/highlight" "^7.0.0"
+
+"@babel/core@^7.0.0":
+  version "7.2.2"
+  resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.2.2.tgz#07adba6dde27bb5ad8d8672f15fde3e08184a687"
+  integrity sha512-59vB0RWt09cAct5EIe58+NzGP4TFSD3Bz//2/ELy3ZeTeKF6VTD1AXlH8BGGbCX0PuobZBsIzO7IAI9PH67eKw==
+  dependencies:
+    "@babel/code-frame" "^7.0.0"
+    "@babel/generator" "^7.2.2"
+    "@babel/helpers" "^7.2.0"
+    "@babel/parser" "^7.2.2"
+    "@babel/template" "^7.2.2"
+    "@babel/traverse" "^7.2.2"
+    "@babel/types" "^7.2.2"
     convert-source-map "^1.1.0"
-    debug "^3.1.0"
-    json5 "^0.5.0"
-    lodash "^4.17.5"
-    micromatch "^2.3.11"
+    debug "^4.1.0"
+    json5 "^2.1.0"
+    lodash "^4.17.10"
     resolve "^1.3.2"
     semver "^5.4.1"
     source-map "^0.5.0"
 
-"@babel/generator@7.0.0-beta.44":
-  version "7.0.0-beta.44"
-  resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0-beta.44.tgz#c7e67b9b5284afcf69b309b50d7d37f3e5033d42"
-  dependencies:
-    "@babel/types" "7.0.0-beta.44"
-    jsesc "^2.5.1"
-    lodash "^4.2.0"
-    source-map "^0.5.0"
-    trim-right "^1.0.1"
-
-"@babel/generator@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0-beta.47.tgz#1835709f377cc4d2a4affee6d9258a10bbf3b9d1"
+"@babel/generator@^7.2.2":
+  version "7.2.2"
+  resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.2.2.tgz#18c816c70962640eab42fe8cae5f3947a5c65ccc"
+  integrity sha512-I4o675J/iS8k+P38dvJ3IBGqObLXyQLTxtrR4u9cSUJOURvafeEWb/pFMOTwtNrmq73mJzyF6ueTbO1BtN0Zeg==
   dependencies:
-    "@babel/types" "7.0.0-beta.47"
+    "@babel/types" "^7.2.2"
     jsesc "^2.5.1"
-    lodash "^4.17.5"
+    lodash "^4.17.10"
     source-map "^0.5.0"
     trim-right "^1.0.1"
 
-"@babel/helper-annotate-as-pure@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0-beta.47.tgz#354fb596055d9db369211bf075f0d5e93904d6f6"
-  dependencies:
-    "@babel/types" "7.0.0-beta.47"
-
-"@babel/helper-builder-binary-assignment-operator-visitor@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.0.0-beta.47.tgz#d5917c29ee3d68abc2c72f604bc043f6e056e907"
+"@babel/helper-annotate-as-pure@^7.0.0":
+  version "7.0.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32"
+  integrity sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q==
   dependencies:
-    "@babel/helper-explode-assignable-expression" "7.0.0-beta.47"
-    "@babel/types" "7.0.0-beta.47"
+    "@babel/types" "^7.0.0"
 
-"@babel/helper-call-delegate@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.0.0-beta.47.tgz#96b7804397075f722a4030d3876f51ec19d8829b"
+"@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0":
+  version "7.1.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz#6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f"
+  integrity sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==
   dependencies:
-    "@babel/helper-hoist-variables" "7.0.0-beta.47"
-    "@babel/traverse" "7.0.0-beta.47"
-    "@babel/types" "7.0.0-beta.47"
+    "@babel/helper-explode-assignable-expression" "^7.1.0"
+    "@babel/types" "^7.0.0"
 
-"@babel/helper-define-map@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.0.0-beta.47.tgz#43a9def87c5166dc29630d51b3da9cc4320c131c"
+"@babel/helper-call-delegate@^7.1.0":
+  version "7.1.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.1.0.tgz#6a957f105f37755e8645343d3038a22e1449cc4a"
+  integrity sha512-YEtYZrw3GUK6emQHKthltKNZwszBcHK58Ygcis+gVUrF4/FmTVr5CCqQNSfmvg2y+YDEANyYoaLz/SHsnusCwQ==
   dependencies:
-    "@babel/helper-function-name" "7.0.0-beta.47"
-    "@babel/types" "7.0.0-beta.47"
-    lodash "^4.17.5"
+    "@babel/helper-hoist-variables" "^7.0.0"
+    "@babel/traverse" "^7.1.0"
+    "@babel/types" "^7.0.0"
 
-"@babel/helper-explode-assignable-expression@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.0.0-beta.47.tgz#56b688e282a698f4d1cf135453a11ae8af870a19"
+"@babel/helper-create-class-features-plugin@^7.2.1", "@babel/helper-create-class-features-plugin@^7.2.2":
+  version "7.2.2"
+  resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.2.2.tgz#aac79552e41c94716a804d371e943f20171df0c5"
+  integrity sha512-Q4qZE5wS3NWpOS6UV9yhIS/NmSyf2keF0E0IwDvx8WxTheVopVIY6BSQ/0vz72OTTruz0cOA2yIUh6Kdg3qprA==
   dependencies:
-    "@babel/traverse" "7.0.0-beta.47"
-    "@babel/types" "7.0.0-beta.47"
+    "@babel/helper-function-name" "^7.1.0"
+    "@babel/helper-member-expression-to-functions" "^7.0.0"
+    "@babel/helper-optimise-call-expression" "^7.0.0"
+    "@babel/helper-plugin-utils" "^7.0.0"
+    "@babel/helper-replace-supers" "^7.1.0"
 
-"@babel/helper-function-name@7.0.0-beta.44":
-  version "7.0.0-beta.44"
-  resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.44.tgz#e18552aaae2231100a6e485e03854bc3532d44dd"
+"@babel/helper-define-map@^7.1.0":
+  version "7.1.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.1.0.tgz#3b74caec329b3c80c116290887c0dd9ae468c20c"
+  integrity sha512-yPPcW8dc3gZLN+U1mhYV91QU3n5uTbx7DUdf8NnPbjS0RMwBuHi9Xt2MUgppmNz7CJxTBWsGczTiEp1CSOTPRg==
   dependencies:
-    "@babel/helper-get-function-arity" "7.0.0-beta.44"
-    "@babel/template" "7.0.0-beta.44"
-    "@babel/types" "7.0.0-beta.44"
+    "@babel/helper-function-name" "^7.1.0"
+    "@babel/types" "^7.0.0"
+    lodash "^4.17.10"
 
-"@babel/helper-function-name@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.47.tgz#8057d63e951e85c57c02cdfe55ad7608d73ffb7d"
+"@babel/helper-explode-assignable-expression@^7.1.0":
+  version "7.1.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz#537fa13f6f1674df745b0c00ec8fe4e99681c8f6"
+  integrity sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA==
   dependencies:
-    "@babel/helper-get-function-arity" "7.0.0-beta.47"
-    "@babel/template" "7.0.0-beta.47"
-    "@babel/types" "7.0.0-beta.47"
+    "@babel/traverse" "^7.1.0"
+    "@babel/types" "^7.0.0"
 
-"@babel/helper-get-function-arity@7.0.0-beta.44":
-  version "7.0.0-beta.44"
-  resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.44.tgz#d03ca6dd2b9f7b0b1e6b32c56c72836140db3a15"
+"@babel/helper-function-name@^7.1.0":
+  version "7.1.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53"
+  integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==
   dependencies:
-    "@babel/types" "7.0.0-beta.44"
+    "@babel/helper-get-function-arity" "^7.0.0"
+    "@babel/template" "^7.1.0"
+    "@babel/types" "^7.0.0"
 
-"@babel/helper-get-function-arity@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.47.tgz#2de04f97c14b094b55899d3fa83144a16d207510"
+"@babel/helper-get-function-arity@^7.0.0":
+  version "7.0.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3"
+  integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==
   dependencies:
-    "@babel/types" "7.0.0-beta.47"
+    "@babel/types" "^7.0.0"
 
-"@babel/helper-hoist-variables@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0-beta.47.tgz#ce295d1d723fe22b2820eaec748ed701aa5ae3d0"
+"@babel/helper-hoist-variables@^7.0.0":
+  version "7.0.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0.tgz#46adc4c5e758645ae7a45deb92bab0918c23bb88"
+  integrity sha512-Ggv5sldXUeSKsuzLkddtyhyHe2YantsxWKNi7A+7LeD12ExRDWTRk29JCXpaHPAbMaIPZSil7n+lq78WY2VY7w==
   dependencies:
-    "@babel/types" "7.0.0-beta.47"
+    "@babel/types" "^7.0.0"
 
-"@babel/helper-member-expression-to-functions@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0-beta.47.tgz#35bfcf1d16dce481ef3dec66d5a1ae6a7d80bb45"
+"@babel/helper-member-expression-to-functions@^7.0.0":
+  version "7.0.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz#8cd14b0a0df7ff00f009e7d7a436945f47c7a16f"
+  integrity sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg==
   dependencies:
-    "@babel/types" "7.0.0-beta.47"
+    "@babel/types" "^7.0.0"
 
-"@babel/helper-module-imports@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0-beta.47.tgz#5af072029ffcfbece6ffbaf5d9984c75580f3f04"
+"@babel/helper-module-imports@^7.0.0":
+  version "7.0.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d"
+  integrity sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==
   dependencies:
-    "@babel/types" "7.0.0-beta.47"
-    lodash "^4.17.5"
+    "@babel/types" "^7.0.0"
 
-"@babel/helper-module-transforms@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.0.0-beta.47.tgz#7eff91fc96873bd7b8d816698f1a69bbc01f3c38"
+"@babel/helper-module-transforms@^7.1.0":
+  version "7.2.2"
+  resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.2.2.tgz#ab2f8e8d231409f8370c883d20c335190284b963"
+  integrity sha512-YRD7I6Wsv+IHuTPkAmAS4HhY0dkPobgLftHp0cRGZSdrRvmZY8rFvae/GVu3bD00qscuvK3WPHB3YdNpBXUqrA==
   dependencies:
-    "@babel/helper-module-imports" "7.0.0-beta.47"
-    "@babel/helper-simple-access" "7.0.0-beta.47"
-    "@babel/helper-split-export-declaration" "7.0.0-beta.47"
-    "@babel/template" "7.0.0-beta.47"
-    "@babel/types" "7.0.0-beta.47"
-    lodash "^4.17.5"
+    "@babel/helper-module-imports" "^7.0.0"
+    "@babel/helper-simple-access" "^7.1.0"
+    "@babel/helper-split-export-declaration" "^7.0.0"
+    "@babel/template" "^7.2.2"
+    "@babel/types" "^7.2.2"
+    lodash "^4.17.10"
 
-"@babel/helper-optimise-call-expression@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0-beta.47.tgz#085d864d0613c5813c1b7c71b61bea36f195929e"
+"@babel/helper-optimise-call-expression@^7.0.0":
+  version "7.0.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz#a2920c5702b073c15de51106200aa8cad20497d5"
+  integrity sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g==
   dependencies:
-    "@babel/types" "7.0.0-beta.47"
+    "@babel/types" "^7.0.0"
 
-"@babel/helper-plugin-utils@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0-beta.47.tgz#4f564117ec39f96cf60fafcde35c9ddce0e008fd"
-
-"@babel/helper-regex@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.0.0-beta.47.tgz#b8e3b53132c4edbb04804242c02ffe4d60316971"
-  dependencies:
-    lodash "^4.17.5"
+"@babel/helper-plugin-utils@^7.0.0":
+  version "7.0.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250"
+  integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==
 
-"@babel/helper-remap-async-to-generator@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.0.0-beta.47.tgz#444dc362f61470bd61a745ebb364431d9ca186c2"
+"@babel/helper-regex@^7.0.0":
+  version "7.0.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.0.0.tgz#2c1718923b57f9bbe64705ffe5640ac64d9bdb27"
+  integrity sha512-TR0/N0NDCcUIUEbqV6dCO+LptmmSQFQ7q70lfcEB4URsjD0E1HzicrwUH+ap6BAQ2jhCX9Q4UqZy4wilujWlkg==
   dependencies:
-    "@babel/helper-annotate-as-pure" "7.0.0-beta.47"
-    "@babel/helper-wrap-function" "7.0.0-beta.47"
-    "@babel/template" "7.0.0-beta.47"
-    "@babel/traverse" "7.0.0-beta.47"
-    "@babel/types" "7.0.0-beta.47"
+    lodash "^4.17.10"
 
-"@babel/helper-replace-supers@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.0.0-beta.47.tgz#310b206a302868a792b659455ceba27db686cbb7"
+"@babel/helper-remap-async-to-generator@^7.1.0":
+  version "7.1.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz#361d80821b6f38da75bd3f0785ece20a88c5fe7f"
+  integrity sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==
   dependencies:
-    "@babel/helper-member-expression-to-functions" "7.0.0-beta.47"
-    "@babel/helper-optimise-call-expression" "7.0.0-beta.47"
-    "@babel/traverse" "7.0.0-beta.47"
-    "@babel/types" "7.0.0-beta.47"
+    "@babel/helper-annotate-as-pure" "^7.0.0"
+    "@babel/helper-wrap-function" "^7.1.0"
+    "@babel/template" "^7.1.0"
+    "@babel/traverse" "^7.1.0"
+    "@babel/types" "^7.0.0"
 
-"@babel/helper-simple-access@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.0.0-beta.47.tgz#234d754acbda9251a10db697ef50181eab125042"
+"@babel/helper-replace-supers@^7.1.0":
+  version "7.1.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.1.0.tgz#5fc31de522ec0ef0899dc9b3e7cf6a5dd655f362"
+  integrity sha512-BvcDWYZRWVuDeXTYZWxekQNO5D4kO55aArwZOTFXw6rlLQA8ZaDicJR1sO47h+HrnCiDFiww0fSPV0d713KBGQ==
   dependencies:
-    "@babel/template" "7.0.0-beta.47"
-    "@babel/types" "7.0.0-beta.47"
-    lodash "^4.17.5"
+    "@babel/helper-member-expression-to-functions" "^7.0.0"
+    "@babel/helper-optimise-call-expression" "^7.0.0"
+    "@babel/traverse" "^7.1.0"
+    "@babel/types" "^7.0.0"
 
-"@babel/helper-split-export-declaration@7.0.0-beta.44":
-  version "7.0.0-beta.44"
-  resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.44.tgz#c0b351735e0fbcb3822c8ad8db4e583b05ebd9dc"
+"@babel/helper-simple-access@^7.1.0":
+  version "7.1.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c"
+  integrity sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==
   dependencies:
-    "@babel/types" "7.0.0-beta.44"
+    "@babel/template" "^7.1.0"
+    "@babel/types" "^7.0.0"
 
-"@babel/helper-split-export-declaration@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.47.tgz#e11277855472d8d83baf22f2d0186c4a2059b09a"
+"@babel/helper-split-export-declaration@^7.0.0":
+  version "7.0.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz#3aae285c0311c2ab095d997b8c9a94cad547d813"
+  integrity sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==
   dependencies:
-    "@babel/types" "7.0.0-beta.47"
+    "@babel/types" "^7.0.0"
 
-"@babel/helper-wrap-function@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.0.0-beta.47.tgz#6528b44a3ccb4f3aeeb79add0a88192f7eb81161"
+"@babel/helper-wrap-function@^7.1.0":
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz#c4e0012445769e2815b55296ead43a958549f6fa"
+  integrity sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ==
   dependencies:
-    "@babel/helper-function-name" "7.0.0-beta.47"
-    "@babel/template" "7.0.0-beta.47"
-    "@babel/traverse" "7.0.0-beta.47"
-    "@babel/types" "7.0.0-beta.47"
+    "@babel/helper-function-name" "^7.1.0"
+    "@babel/template" "^7.1.0"
+    "@babel/traverse" "^7.1.0"
+    "@babel/types" "^7.2.0"
 
-"@babel/helpers@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.0.0-beta.47.tgz#f9b42ed2e4d5f75ec0fb2e792c173e451e8d40fd"
+"@babel/helpers@^7.2.0":
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.2.0.tgz#8335f3140f3144270dc63c4732a4f8b0a50b7a21"
+  integrity sha512-Fr07N+ea0dMcMN8nFpuK6dUIT7/ivt9yKQdEEnjVS83tG2pHwPi03gYmk/tyuwONnZ+sY+GFFPlWGgCtW1hF9A==
   dependencies:
-    "@babel/template" "7.0.0-beta.47"
-    "@babel/traverse" "7.0.0-beta.47"
-    "@babel/types" "7.0.0-beta.47"
+    "@babel/template" "^7.1.2"
+    "@babel/traverse" "^7.1.5"
+    "@babel/types" "^7.2.0"
 
-"@babel/highlight@7.0.0-beta.44":
-  version "7.0.0-beta.44"
-  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.44.tgz#18c94ce543916a80553edcdcf681890b200747d5"
+"@babel/highlight@^7.0.0":
+  version "7.0.0"
+  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4"
+  integrity sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==
   dependencies:
     chalk "^2.0.0"
     esutils "^2.0.2"
-    js-tokens "^3.0.0"
+    js-tokens "^4.0.0"
+
+"@babel/parser@^7.0.0", "@babel/parser@^7.2.2":
+  version "7.2.2"
+  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.2.2.tgz#37ebdbc88a2e1ebc6c8dd3d35ea9436e3e39e477"
+  integrity sha512-UNTmQ5cSLDeBGBl+s7JeowkqIHgmFAGBnLDdIzFmUNSuS5JF0XBcN59jsh/vJO/YjfsBqMxhMjoFGmNExmf0FA==
 
-"@babel/highlight@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.47.tgz#8fbc83fb2a21f0bd2b95cdbeb238cf9689cad494"
+"@babel/plugin-proposal-async-generator-functions@^7.2.0":
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz#b289b306669dce4ad20b0252889a15768c9d417e"
+  integrity sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ==
   dependencies:
-    chalk "^2.0.0"
-    esutils "^2.0.2"
-    js-tokens "^3.0.0"
+    "@babel/helper-plugin-utils" "^7.0.0"
+    "@babel/helper-remap-async-to-generator" "^7.1.0"
+    "@babel/plugin-syntax-async-generators" "^7.2.0"
 
-"@babel/plugin-proposal-async-generator-functions@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.0.0-beta.47.tgz#571142284708c5ad4ec904d9aa705461a010be53"
+"@babel/plugin-proposal-class-properties@^7.0.0":
+  version "7.2.1"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.2.1.tgz#c734a53e0a1ec40fe5c22ee5069d26da3b187d05"
+  integrity sha512-/4FKFChkQ2Jgb8lBDsvFX496YTi7UWTetVgS8oJUpX1e/DlaoeEK57At27ug8Hu2zI2g8bzkJ+8k9qrHZRPGPA==
   dependencies:
-    "@babel/helper-plugin-utils" "7.0.0-beta.47"
-    "@babel/helper-remap-async-to-generator" "7.0.0-beta.47"
-    "@babel/plugin-syntax-async-generators" "7.0.0-beta.47"
+    "@babel/helper-create-class-features-plugin" "^7.2.1"
+    "@babel/helper-plugin-utils" "^7.0.0"
 
-"@babel/plugin-proposal-class-properties@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.0.0-beta.47.tgz#08c1a1dfc92d0f5c37b39096c6fb883e1ca4b0f5"
+"@babel/plugin-proposal-decorators@^7.1.0":
+  version "7.2.2"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.2.2.tgz#e7ce762732760542a5268a49bd19251f06dccd08"
+  integrity sha512-ylkKcbbS5IUocCti0gk762LMiMODWmlwRzyj1OCbPa83vSBlTKLmeBo9KMhoNpydibPcVwrP5rYJd0cKTVu7hw==
   dependencies:
-    "@babel/helper-function-name" "7.0.0-beta.47"
-    "@babel/helper-plugin-utils" "7.0.0-beta.47"
-    "@babel/helper-replace-supers" "7.0.0-beta.47"
-    "@babel/plugin-syntax-class-properties" "7.0.0-beta.47"
+    "@babel/helper-create-class-features-plugin" "^7.2.2"
+    "@babel/helper-plugin-utils" "^7.0.0"
+    "@babel/plugin-syntax-decorators" "^7.2.0"
 
-"@babel/plugin-proposal-decorators@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.0.0-beta.47.tgz#5e8943c8f8eb3301f911ef0dcd3ed64cf28c723e"
+"@babel/plugin-proposal-json-strings@^7.2.0":
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz#568ecc446c6148ae6b267f02551130891e29f317"
+  integrity sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg==
   dependencies:
-    "@babel/helper-plugin-utils" "7.0.0-beta.47"
-    "@babel/plugin-syntax-decorators" "7.0.0-beta.47"
+    "@babel/helper-plugin-utils" "^7.0.0"
+    "@babel/plugin-syntax-json-strings" "^7.2.0"
 
-"@babel/plugin-proposal-object-rest-spread@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.0.0-beta.47.tgz#e1529fddc88e948868ee1d0edaa27ebd9502322d"
+"@babel/plugin-proposal-object-rest-spread@^7.2.0":
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.2.0.tgz#88f5fec3e7ad019014c97f7ee3c992f0adbf7fb8"
+  integrity sha512-1L5mWLSvR76XYUQJXkd/EEQgjq8HHRP6lQuZTTg0VA4tTGPpGemmCdAfQIz1rzEuWAm+ecP8PyyEm30jC1eQCg==
   dependencies:
-    "@babel/helper-plugin-utils" "7.0.0-beta.47"
-    "@babel/plugin-syntax-object-rest-spread" "7.0.0-beta.47"
+    "@babel/helper-plugin-utils" "^7.0.0"
+    "@babel/plugin-syntax-object-rest-spread" "^7.2.0"
 
-"@babel/plugin-proposal-optional-catch-binding@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.0.0-beta.47.tgz#8c6453919537517ea773bb8f3fceda4250795efa"
+"@babel/plugin-proposal-optional-catch-binding@^7.2.0":
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz#135d81edb68a081e55e56ec48541ece8065c38f5"
+  integrity sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g==
   dependencies:
-    "@babel/helper-plugin-utils" "7.0.0-beta.47"
-    "@babel/plugin-syntax-optional-catch-binding" "7.0.0-beta.47"
+    "@babel/helper-plugin-utils" "^7.0.0"
+    "@babel/plugin-syntax-optional-catch-binding" "^7.2.0"
 
-"@babel/plugin-proposal-unicode-property-regex@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.0.0-beta.47.tgz#34d7e4811bdc4f512400bb29d01051842528c8d5"
+"@babel/plugin-proposal-unicode-property-regex@^7.2.0":
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.2.0.tgz#abe7281fe46c95ddc143a65e5358647792039520"
+  integrity sha512-LvRVYb7kikuOtIoUeWTkOxQEV1kYvL5B6U3iWEGCzPNRus1MzJweFqORTj+0jkxozkTSYNJozPOddxmqdqsRpw==
   dependencies:
-    "@babel/helper-plugin-utils" "7.0.0-beta.47"
-    "@babel/helper-regex" "7.0.0-beta.47"
-    regexpu-core "^4.1.4"
+    "@babel/helper-plugin-utils" "^7.0.0"
+    "@babel/helper-regex" "^7.0.0"
+    regexpu-core "^4.2.0"
 
-"@babel/plugin-syntax-async-generators@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.0.0-beta.47.tgz#8ab94852bf348badc866af85bd852221f0961256"
+"@babel/plugin-syntax-async-generators@^7.2.0":
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz#69e1f0db34c6f5a0cf7e2b3323bf159a76c8cb7f"
+  integrity sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg==
   dependencies:
-    "@babel/helper-plugin-utils" "7.0.0-beta.47"
+    "@babel/helper-plugin-utils" "^7.0.0"
 
-"@babel/plugin-syntax-class-properties@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.0.0-beta.47.tgz#de52bed12fd472c848e1562f57dd4a202fe27f11"
+"@babel/plugin-syntax-decorators@^7.2.0":
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.2.0.tgz#c50b1b957dcc69e4b1127b65e1c33eef61570c1b"
+  integrity sha512-38QdqVoXdHUQfTpZo3rQwqQdWtCn5tMv4uV6r2RMfTqNBuv4ZBhz79SfaQWKTVmxHjeFv/DnXVC/+agHCklYWA==
   dependencies:
-    "@babel/helper-plugin-utils" "7.0.0-beta.47"
+    "@babel/helper-plugin-utils" "^7.0.0"
 
-"@babel/plugin-syntax-decorators@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.0.0-beta.47.tgz#a42f10fcd651940bc475d93b3ac23432b4a8a293"
+"@babel/plugin-syntax-dynamic-import@^7.0.0":
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz#69c159ffaf4998122161ad8ebc5e6d1f55df8612"
+  integrity sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w==
   dependencies:
-    "@babel/helper-plugin-utils" "7.0.0-beta.47"
+    "@babel/helper-plugin-utils" "^7.0.0"
 
-"@babel/plugin-syntax-dynamic-import@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.0.0-beta.47.tgz#ee964915014a687701ee8e15c289e31a7c899e60"
+"@babel/plugin-syntax-json-strings@^7.2.0":
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz#72bd13f6ffe1d25938129d2a186b11fd62951470"
+  integrity sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg==
   dependencies:
-    "@babel/helper-plugin-utils" "7.0.0-beta.47"
+    "@babel/helper-plugin-utils" "^7.0.0"
 
-"@babel/plugin-syntax-jsx@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.0.0-beta.47.tgz#f3849d94288695d724bd205b4f6c3c99e4ec24a4"
+"@babel/plugin-syntax-jsx@^7.0.0":
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz#0b85a3b4bc7cdf4cc4b8bf236335b907ca22e7c7"
+  integrity sha512-VyN4QANJkRW6lDBmENzRszvZf3/4AXaj9YR7GwrWeeN9tEBPuXbmDYVU9bYBN0D70zCWVwUy0HWq2553VCb6Hw==
   dependencies:
-    "@babel/helper-plugin-utils" "7.0.0-beta.47"
+    "@babel/helper-plugin-utils" "^7.0.0"
 
-"@babel/plugin-syntax-object-rest-spread@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.0.0-beta.47.tgz#21da514d94c138b2261ca09f0dec9abadce16185"
+"@babel/plugin-syntax-object-rest-spread@^7.2.0":
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e"
+  integrity sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==
   dependencies:
-    "@babel/helper-plugin-utils" "7.0.0-beta.47"
+    "@babel/helper-plugin-utils" "^7.0.0"
 
-"@babel/plugin-syntax-optional-catch-binding@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.0.0-beta.47.tgz#0b1c52b066aa36893c41450773a5adb904cd4024"
+"@babel/plugin-syntax-optional-catch-binding@^7.2.0":
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz#a94013d6eda8908dfe6a477e7f9eda85656ecf5c"
+  integrity sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w==
   dependencies:
-    "@babel/helper-plugin-utils" "7.0.0-beta.47"
+    "@babel/helper-plugin-utils" "^7.0.0"
 
-"@babel/plugin-transform-arrow-functions@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.0.0-beta.47.tgz#d6eecda4c652b909e3088f0983ebaf8ec292984b"
+"@babel/plugin-transform-arrow-functions@^7.2.0":
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz#9aeafbe4d6ffc6563bf8f8372091628f00779550"
+  integrity sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg==
   dependencies:
-    "@babel/helper-plugin-utils" "7.0.0-beta.47"
+    "@babel/helper-plugin-utils" "^7.0.0"
 
-"@babel/plugin-transform-async-to-generator@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.0.0-beta.47.tgz#5723816ea1e91fa313a84e6ee9cc12ff31d46610"
+"@babel/plugin-transform-async-to-generator@^7.2.0":
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.2.0.tgz#68b8a438663e88519e65b776f8938f3445b1a2ff"
+  integrity sha512-CEHzg4g5UraReozI9D4fblBYABs7IM6UerAVG7EJVrTLC5keh00aEuLUT+O40+mJCEzaXkYfTCUKIyeDfMOFFQ==
   dependencies:
-    "@babel/helper-module-imports" "7.0.0-beta.47"
-    "@babel/helper-plugin-utils" "7.0.0-beta.47"
-    "@babel/helper-remap-async-to-generator" "7.0.0-beta.47"
+    "@babel/helper-module-imports" "^7.0.0"
+    "@babel/helper-plugin-utils" "^7.0.0"
+    "@babel/helper-remap-async-to-generator" "^7.1.0"
 
-"@babel/plugin-transform-block-scoped-functions@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.0.0-beta.47.tgz#e422278e06c797b43c45f459d83c7af9d6237002"
+"@babel/plugin-transform-block-scoped-functions@^7.2.0":
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz#5d3cc11e8d5ddd752aa64c9148d0db6cb79fd190"
+  integrity sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w==
   dependencies:
-    "@babel/helper-plugin-utils" "7.0.0-beta.47"
+    "@babel/helper-plugin-utils" "^7.0.0"
 
-"@babel/plugin-transform-block-scoping@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.0.0-beta.47.tgz#b737cc58a81bea57efd5bda0baef9a43a25859ad"
+"@babel/plugin-transform-block-scoping@^7.2.0":
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.2.0.tgz#f17c49d91eedbcdf5dd50597d16f5f2f770132d4"
+  integrity sha512-vDTgf19ZEV6mx35yiPJe4fS02mPQUUcBNwWQSZFXSzTSbsJFQvHt7DqyS3LK8oOWALFOsJ+8bbqBgkirZteD5Q==
   dependencies:
-    "@babel/helper-plugin-utils" "7.0.0-beta.47"
-    lodash "^4.17.5"
+    "@babel/helper-plugin-utils" "^7.0.0"
+    lodash "^4.17.10"
 
-"@babel/plugin-transform-classes@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.0.0-beta.47.tgz#7aff9cbe7b26fd94d7a9f97fa90135ef20c93fb6"
-  dependencies:
-    "@babel/helper-annotate-as-pure" "7.0.0-beta.47"
-    "@babel/helper-define-map" "7.0.0-beta.47"
-    "@babel/helper-function-name" "7.0.0-beta.47"
-    "@babel/helper-optimise-call-expression" "7.0.0-beta.47"
-    "@babel/helper-plugin-utils" "7.0.0-beta.47"
-    "@babel/helper-replace-supers" "7.0.0-beta.47"
-    "@babel/helper-split-export-declaration" "7.0.0-beta.47"
+"@babel/plugin-transform-classes@^7.2.0":
+  version "7.2.2"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.2.2.tgz#6c90542f210ee975aa2aa8c8b5af7fa73a126953"
+  integrity sha512-gEZvgTy1VtcDOaQty1l10T3jQmJKlNVxLDCs+3rCVPr6nMkODLELxViq5X9l+rfxbie3XrfrMCYYY6eX3aOcOQ==
+  dependencies:
+    "@babel/helper-annotate-as-pure" "^7.0.0"
+    "@babel/helper-define-map" "^7.1.0"
+    "@babel/helper-function-name" "^7.1.0"
+    "@babel/helper-optimise-call-expression" "^7.0.0"
+    "@babel/helper-plugin-utils" "^7.0.0"
+    "@babel/helper-replace-supers" "^7.1.0"
+    "@babel/helper-split-export-declaration" "^7.0.0"
     globals "^11.1.0"
 
-"@babel/plugin-transform-computed-properties@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.0.0-beta.47.tgz#56ef2a021769a2b65e90a3e12fd10b791da9f3e0"
+"@babel/plugin-transform-computed-properties@^7.2.0":
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz#83a7df6a658865b1c8f641d510c6f3af220216da"
+  integrity sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA==
   dependencies:
-    "@babel/helper-plugin-utils" "7.0.0-beta.47"
+    "@babel/helper-plugin-utils" "^7.0.0"
 
-"@babel/plugin-transform-destructuring@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.0.0-beta.47.tgz#452b607775fd1c4d10621997837189efc0a6d428"
+"@babel/plugin-transform-destructuring@^7.2.0":
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.2.0.tgz#e75269b4b7889ec3a332cd0d0c8cff8fed0dc6f3"
+  integrity sha512-coVO2Ayv7g0qdDbrNiadE4bU7lvCd9H539m2gMknyVjjMdwF/iCOM7R+E8PkntoqLkltO0rk+3axhpp/0v68VQ==
   dependencies:
-    "@babel/helper-plugin-utils" "7.0.0-beta.47"
+    "@babel/helper-plugin-utils" "^7.0.0"
 
-"@babel/plugin-transform-dotall-regex@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.0.0-beta.47.tgz#d8da9b706d4bfc68dec9d565661f83e6e8036636"
+"@babel/plugin-transform-dotall-regex@^7.2.0":
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.2.0.tgz#f0aabb93d120a8ac61e925ea0ba440812dbe0e49"
+  integrity sha512-sKxnyHfizweTgKZf7XsXu/CNupKhzijptfTM+bozonIuyVrLWVUvYjE2bhuSBML8VQeMxq4Mm63Q9qvcvUcciQ==
   dependencies:
-    "@babel/helper-plugin-utils" "7.0.0-beta.47"
-    "@babel/helper-regex" "7.0.0-beta.47"
+    "@babel/helper-plugin-utils" "^7.0.0"
+    "@babel/helper-regex" "^7.0.0"
     regexpu-core "^4.1.3"
 
-"@babel/plugin-transform-duplicate-keys@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.0.0-beta.47.tgz#4aabeda051ca3007e33a207db08f1a0cf9bd253b"
+"@babel/plugin-transform-duplicate-keys@^7.2.0":
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.2.0.tgz#d952c4930f312a4dbfff18f0b2914e60c35530b3"
+  integrity sha512-q+yuxW4DsTjNceUiTzK0L+AfQ0zD9rWaTLiUqHA8p0gxx7lu1EylenfzjeIWNkPy6e/0VG/Wjw9uf9LueQwLOw==
   dependencies:
-    "@babel/helper-plugin-utils" "7.0.0-beta.47"
+    "@babel/helper-plugin-utils" "^7.0.0"
 
-"@babel/plugin-transform-exponentiation-operator@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.0.0-beta.47.tgz#930e1abf5db9f4db5b63dbf97f3581ad0be1e907"
+"@babel/plugin-transform-exponentiation-operator@^7.2.0":
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz#a63868289e5b4007f7054d46491af51435766008"
+  integrity sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==
   dependencies:
-    "@babel/helper-builder-binary-assignment-operator-visitor" "7.0.0-beta.47"
-    "@babel/helper-plugin-utils" "7.0.0-beta.47"
+    "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0"
+    "@babel/helper-plugin-utils" "^7.0.0"
 
-"@babel/plugin-transform-for-of@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.0.0-beta.47.tgz#527d5dc24e4a4ad0fc1d0a3990d29968cb984e76"
+"@babel/plugin-transform-for-of@^7.2.0":
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.2.0.tgz#ab7468befa80f764bb03d3cb5eef8cc998e1cad9"
+  integrity sha512-Kz7Mt0SsV2tQk6jG5bBv5phVbkd0gd27SgYD4hH1aLMJRchM0dzHaXvrWhVZ+WxAlDoAKZ7Uy3jVTW2mKXQ1WQ==
   dependencies:
-    "@babel/helper-plugin-utils" "7.0.0-beta.47"
+    "@babel/helper-plugin-utils" "^7.0.0"
 
-"@babel/plugin-transform-function-name@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.0.0-beta.47.tgz#fb443c81cc77f3206a863b730b35c8c553ce5041"
+"@babel/plugin-transform-function-name@^7.2.0":
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.2.0.tgz#f7930362829ff99a3174c39f0afcc024ef59731a"
+  integrity sha512-kWgksow9lHdvBC2Z4mxTsvc7YdY7w/V6B2vy9cTIPtLEE9NhwoWivaxdNM/S37elu5bqlLP/qOY906LukO9lkQ==
   dependencies:
-    "@babel/helper-function-name" "7.0.0-beta.47"
-    "@babel/helper-plugin-utils" "7.0.0-beta.47"
+    "@babel/helper-function-name" "^7.1.0"
+    "@babel/helper-plugin-utils" "^7.0.0"
 
-"@babel/plugin-transform-literals@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.0.0-beta.47.tgz#448fad196f062163684a38f10f14e83315892e9c"
+"@babel/plugin-transform-literals@^7.2.0":
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz#690353e81f9267dad4fd8cfd77eafa86aba53ea1"
+  integrity sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg==
   dependencies:
-    "@babel/helper-plugin-utils" "7.0.0-beta.47"
+    "@babel/helper-plugin-utils" "^7.0.0"
 
-"@babel/plugin-transform-modules-amd@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.0.0-beta.47.tgz#84564419b11c1be6b9fcd4c7b3a6737f2335aac4"
+"@babel/plugin-transform-modules-amd@^7.2.0":
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.2.0.tgz#82a9bce45b95441f617a24011dc89d12da7f4ee6"
+  integrity sha512-mK2A8ucqz1qhrdqjS9VMIDfIvvT2thrEsIQzbaTdc5QFzhDjQv2CkJJ5f6BXIkgbmaoax3zBr2RyvV/8zeoUZw==
   dependencies:
-    "@babel/helper-module-transforms" "7.0.0-beta.47"
-    "@babel/helper-plugin-utils" "7.0.0-beta.47"
+    "@babel/helper-module-transforms" "^7.1.0"
+    "@babel/helper-plugin-utils" "^7.0.0"
 
-"@babel/plugin-transform-modules-commonjs@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.0.0-beta.47.tgz#dfe5c6d867aa9614e55f7616736073edb3aab887"
+"@babel/plugin-transform-modules-commonjs@^7.2.0":
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.2.0.tgz#c4f1933f5991d5145e9cfad1dfd848ea1727f404"
+  integrity sha512-V6y0uaUQrQPXUrmj+hgnks8va2L0zcZymeU7TtWEgdRLNkceafKXEduv7QzgQAE4lT+suwooG9dC7LFhdRAbVQ==
   dependencies:
-    "@babel/helper-module-transforms" "7.0.0-beta.47"
-    "@babel/helper-plugin-utils" "7.0.0-beta.47"
-    "@babel/helper-simple-access" "7.0.0-beta.47"
+    "@babel/helper-module-transforms" "^7.1.0"
+    "@babel/helper-plugin-utils" "^7.0.0"
+    "@babel/helper-simple-access" "^7.1.0"
 
-"@babel/plugin-transform-modules-systemjs@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.0.0-beta.47.tgz#8514dbcdfca3345abd690059e7e8544e16ecbf05"
+"@babel/plugin-transform-modules-systemjs@^7.2.0":
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.2.0.tgz#912bfe9e5ff982924c81d0937c92d24994bb9068"
+  integrity sha512-aYJwpAhoK9a+1+O625WIjvMY11wkB/ok0WClVwmeo3mCjcNRjt+/8gHWrB5i+00mUju0gWsBkQnPpdvQ7PImmQ==
   dependencies:
-    "@babel/helper-hoist-variables" "7.0.0-beta.47"
-    "@babel/helper-plugin-utils" "7.0.0-beta.47"
+    "@babel/helper-hoist-variables" "^7.0.0"
+    "@babel/helper-plugin-utils" "^7.0.0"
 
-"@babel/plugin-transform-modules-umd@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.0.0-beta.47.tgz#6dcfb9661fdd131b20b721044746a7a309882918"
+"@babel/plugin-transform-modules-umd@^7.2.0":
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz#7678ce75169f0877b8eb2235538c074268dd01ae"
+  integrity sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw==
   dependencies:
-    "@babel/helper-module-transforms" "7.0.0-beta.47"
-    "@babel/helper-plugin-utils" "7.0.0-beta.47"
+    "@babel/helper-module-transforms" "^7.1.0"
+    "@babel/helper-plugin-utils" "^7.0.0"
 
-"@babel/plugin-transform-new-target@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0-beta.47.tgz#4b5cb7ce30d7bffa105a1f43ed07d6ae206a4155"
+"@babel/plugin-transform-new-target@^7.0.0":
+  version "7.0.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0.tgz#ae8fbd89517fa7892d20e6564e641e8770c3aa4a"
+  integrity sha512-yin069FYjah+LbqfGeTfzIBODex/e++Yfa0rH0fpfam9uTbuEeEOx5GLGr210ggOV77mVRNoeqSYqeuaqSzVSw==
   dependencies:
-    "@babel/helper-plugin-utils" "7.0.0-beta.47"
+    "@babel/helper-plugin-utils" "^7.0.0"
 
-"@babel/plugin-transform-object-super@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.0.0-beta.47.tgz#ca8e5f326c5011c879f3a6ed749e58bd10fff05d"
+"@babel/plugin-transform-object-super@^7.2.0":
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz#b35d4c10f56bab5d650047dad0f1d8e8814b6598"
+  integrity sha512-VMyhPYZISFZAqAPVkiYb7dUe2AsVi2/wCT5+wZdsNO31FojQJa9ns40hzZ6U9f50Jlq4w6qwzdBB2uwqZ00ebg==
   dependencies:
-    "@babel/helper-plugin-utils" "7.0.0-beta.47"
-    "@babel/helper-replace-supers" "7.0.0-beta.47"
+    "@babel/helper-plugin-utils" "^7.0.0"
+    "@babel/helper-replace-supers" "^7.1.0"
 
-"@babel/plugin-transform-parameters@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.0.0-beta.47.tgz#46a4236040a6552a5f165fb3ddd60368954b0ddd"
+"@babel/plugin-transform-parameters@^7.2.0":
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.2.0.tgz#0d5ad15dc805e2ea866df4dd6682bfe76d1408c2"
+  integrity sha512-kB9+hhUidIgUoBQ0MsxMewhzr8i60nMa2KgeJKQWYrqQpqcBYtnpR+JgkadZVZoaEZ/eKu9mclFaVwhRpLNSzA==
   dependencies:
-    "@babel/helper-call-delegate" "7.0.0-beta.47"
-    "@babel/helper-get-function-arity" "7.0.0-beta.47"
-    "@babel/helper-plugin-utils" "7.0.0-beta.47"
+    "@babel/helper-call-delegate" "^7.1.0"
+    "@babel/helper-get-function-arity" "^7.0.0"
+    "@babel/helper-plugin-utils" "^7.0.0"
 
-"@babel/plugin-transform-regenerator@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0-beta.47.tgz#86500e1c404055fb98fc82b73b09bd053cacb516"
+"@babel/plugin-transform-regenerator@^7.0.0":
+  version "7.0.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0.tgz#5b41686b4ed40bef874d7ed6a84bdd849c13e0c1"
+  integrity sha512-sj2qzsEx8KDVv1QuJc/dEfilkg3RRPvPYx/VnKLtItVQRWt1Wqf5eVCOLZm29CiGFfYYsA3VPjfizTCV0S0Dlw==
   dependencies:
-    regenerator-transform "^0.12.3"
+    regenerator-transform "^0.13.3"
 
-"@babel/plugin-transform-runtime@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.0.0-beta.47.tgz#1700938fa8710909cbf28f7dd39f9b40688b09fd"
+"@babel/plugin-transform-runtime@^7.0.0":
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.2.0.tgz#566bc43f7d0aedc880eaddbd29168d0f248966ea"
+  integrity sha512-jIgkljDdq4RYDnJyQsiWbdvGeei/0MOTtSHKO/rfbd/mXBxNpdlulMx49L0HQ4pug1fXannxoqCI+fYSle9eSw==
   dependencies:
-    "@babel/helper-module-imports" "7.0.0-beta.47"
-    "@babel/helper-plugin-utils" "7.0.0-beta.47"
+    "@babel/helper-module-imports" "^7.0.0"
+    "@babel/helper-plugin-utils" "^7.0.0"
+    resolve "^1.8.1"
+    semver "^5.5.1"
 
-"@babel/plugin-transform-shorthand-properties@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.0.0-beta.47.tgz#00be44c4fad8fe2c00ed18ea15ea3c88dd519dbb"
+"@babel/plugin-transform-shorthand-properties@^7.2.0":
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz#6333aee2f8d6ee7e28615457298934a3b46198f0"
+  integrity sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg==
   dependencies:
-    "@babel/helper-plugin-utils" "7.0.0-beta.47"
+    "@babel/helper-plugin-utils" "^7.0.0"
 
-"@babel/plugin-transform-spread@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.0.0-beta.47.tgz#3feadb02292ed1e9b75090d651b9df88a7ab5c50"
+"@babel/plugin-transform-spread@^7.2.0":
+  version "7.2.2"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz#3103a9abe22f742b6d406ecd3cd49b774919b406"
+  integrity sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w==
   dependencies:
-    "@babel/helper-plugin-utils" "7.0.0-beta.47"
+    "@babel/helper-plugin-utils" "^7.0.0"
 
-"@babel/plugin-transform-sticky-regex@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.0.0-beta.47.tgz#c0aa347d76b5dc87d3b37ac016ada3f950605131"
+"@babel/plugin-transform-sticky-regex@^7.2.0":
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz#a1e454b5995560a9c1e0d537dfc15061fd2687e1"
+  integrity sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw==
   dependencies:
-    "@babel/helper-plugin-utils" "7.0.0-beta.47"
-    "@babel/helper-regex" "7.0.0-beta.47"
+    "@babel/helper-plugin-utils" "^7.0.0"
+    "@babel/helper-regex" "^7.0.0"
 
-"@babel/plugin-transform-template-literals@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.0.0-beta.47.tgz#5f7b5badf64c4c5da79026aeab03001e62a6ee5f"
+"@babel/plugin-transform-template-literals@^7.2.0":
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.2.0.tgz#d87ed01b8eaac7a92473f608c97c089de2ba1e5b"
+  integrity sha512-FkPix00J9A/XWXv4VoKJBMeSkyY9x/TqIh76wzcdfl57RJJcf8CehQ08uwfhCDNtRQYtHQKBTwKZDEyjE13Lwg==
   dependencies:
-    "@babel/helper-annotate-as-pure" "7.0.0-beta.47"
-    "@babel/helper-plugin-utils" "7.0.0-beta.47"
+    "@babel/helper-annotate-as-pure" "^7.0.0"
+    "@babel/helper-plugin-utils" "^7.0.0"
 
-"@babel/plugin-transform-typeof-symbol@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.0.0-beta.47.tgz#03c612ec09213eb386a81d5fa67c234ee4b2034c"
+"@babel/plugin-transform-typeof-symbol@^7.2.0":
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz#117d2bcec2fbf64b4b59d1f9819894682d29f2b2"
+  integrity sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw==
   dependencies:
-    "@babel/helper-plugin-utils" "7.0.0-beta.47"
+    "@babel/helper-plugin-utils" "^7.0.0"
 
-"@babel/plugin-transform-unicode-regex@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.0.0-beta.47.tgz#efed0b2f1dfbf28283502234a95b4be88f7fdcb6"
+"@babel/plugin-transform-unicode-regex@^7.2.0":
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.2.0.tgz#4eb8db16f972f8abb5062c161b8b115546ade08b"
+  integrity sha512-m48Y0lMhrbXEJnVUaYly29jRXbQ3ksxPrS1Tg8t+MHqzXhtBYAvI51euOBaoAlZLPHsieY9XPVMf80a5x0cPcA==
   dependencies:
-    "@babel/helper-plugin-utils" "7.0.0-beta.47"
-    "@babel/helper-regex" "7.0.0-beta.47"
+    "@babel/helper-plugin-utils" "^7.0.0"
+    "@babel/helper-regex" "^7.0.0"
     regexpu-core "^4.1.3"
 
-"@babel/preset-env@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.0.0-beta.47.tgz#a3dab3b5fac4de56e3510bdbcb528f1cbdedbe2d"
-  dependencies:
-    "@babel/helper-module-imports" "7.0.0-beta.47"
-    "@babel/helper-plugin-utils" "7.0.0-beta.47"
-    "@babel/plugin-proposal-async-generator-functions" "7.0.0-beta.47"
-    "@babel/plugin-proposal-object-rest-spread" "7.0.0-beta.47"
-    "@babel/plugin-proposal-optional-catch-binding" "7.0.0-beta.47"
-    "@babel/plugin-proposal-unicode-property-regex" "7.0.0-beta.47"
-    "@babel/plugin-syntax-async-generators" "7.0.0-beta.47"
-    "@babel/plugin-syntax-object-rest-spread" "7.0.0-beta.47"
-    "@babel/plugin-syntax-optional-catch-binding" "7.0.0-beta.47"
-    "@babel/plugin-transform-arrow-functions" "7.0.0-beta.47"
-    "@babel/plugin-transform-async-to-generator" "7.0.0-beta.47"
-    "@babel/plugin-transform-block-scoped-functions" "7.0.0-beta.47"
-    "@babel/plugin-transform-block-scoping" "7.0.0-beta.47"
-    "@babel/plugin-transform-classes" "7.0.0-beta.47"
-    "@babel/plugin-transform-computed-properties" "7.0.0-beta.47"
-    "@babel/plugin-transform-destructuring" "7.0.0-beta.47"
-    "@babel/plugin-transform-dotall-regex" "7.0.0-beta.47"
-    "@babel/plugin-transform-duplicate-keys" "7.0.0-beta.47"
-    "@babel/plugin-transform-exponentiation-operator" "7.0.0-beta.47"
-    "@babel/plugin-transform-for-of" "7.0.0-beta.47"
-    "@babel/plugin-transform-function-name" "7.0.0-beta.47"
-    "@babel/plugin-transform-literals" "7.0.0-beta.47"
-    "@babel/plugin-transform-modules-amd" "7.0.0-beta.47"
-    "@babel/plugin-transform-modules-commonjs" "7.0.0-beta.47"
-    "@babel/plugin-transform-modules-systemjs" "7.0.0-beta.47"
-    "@babel/plugin-transform-modules-umd" "7.0.0-beta.47"
-    "@babel/plugin-transform-new-target" "7.0.0-beta.47"
-    "@babel/plugin-transform-object-super" "7.0.0-beta.47"
-    "@babel/plugin-transform-parameters" "7.0.0-beta.47"
-    "@babel/plugin-transform-regenerator" "7.0.0-beta.47"
-    "@babel/plugin-transform-shorthand-properties" "7.0.0-beta.47"
-    "@babel/plugin-transform-spread" "7.0.0-beta.47"
-    "@babel/plugin-transform-sticky-regex" "7.0.0-beta.47"
-    "@babel/plugin-transform-template-literals" "7.0.0-beta.47"
-    "@babel/plugin-transform-typeof-symbol" "7.0.0-beta.47"
-    "@babel/plugin-transform-unicode-regex" "7.0.0-beta.47"
-    browserslist "^3.0.0"
+"@babel/preset-env@^7.0.0":
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.2.0.tgz#a5030e7e4306af5a295dd5d7c78dc5464af3fee2"
+  integrity sha512-haGR38j5vOGVeBatrQPr3l0xHbs14505DcM57cbJy48kgMFvvHHoYEhHuRV+7vi559yyAUAVbTWzbK/B/pzJng==
+  dependencies:
+    "@babel/helper-module-imports" "^7.0.0"
+    "@babel/helper-plugin-utils" "^7.0.0"
+    "@babel/plugin-proposal-async-generator-functions" "^7.2.0"
+    "@babel/plugin-proposal-json-strings" "^7.2.0"
+    "@babel/plugin-proposal-object-rest-spread" "^7.2.0"
+    "@babel/plugin-proposal-optional-catch-binding" "^7.2.0"
+    "@babel/plugin-proposal-unicode-property-regex" "^7.2.0"
+    "@babel/plugin-syntax-async-generators" "^7.2.0"
+    "@babel/plugin-syntax-object-rest-spread" "^7.2.0"
+    "@babel/plugin-syntax-optional-catch-binding" "^7.2.0"
+    "@babel/plugin-transform-arrow-functions" "^7.2.0"
+    "@babel/plugin-transform-async-to-generator" "^7.2.0"
+    "@babel/plugin-transform-block-scoped-functions" "^7.2.0"
+    "@babel/plugin-transform-block-scoping" "^7.2.0"
+    "@babel/plugin-transform-classes" "^7.2.0"
+    "@babel/plugin-transform-computed-properties" "^7.2.0"
+    "@babel/plugin-transform-destructuring" "^7.2.0"
+    "@babel/plugin-transform-dotall-regex" "^7.2.0"
+    "@babel/plugin-transform-duplicate-keys" "^7.2.0"
+    "@babel/plugin-transform-exponentiation-operator" "^7.2.0"
+    "@babel/plugin-transform-for-of" "^7.2.0"
+    "@babel/plugin-transform-function-name" "^7.2.0"
+    "@babel/plugin-transform-literals" "^7.2.0"
+    "@babel/plugin-transform-modules-amd" "^7.2.0"
+    "@babel/plugin-transform-modules-commonjs" "^7.2.0"
+    "@babel/plugin-transform-modules-systemjs" "^7.2.0"
+    "@babel/plugin-transform-modules-umd" "^7.2.0"
+    "@babel/plugin-transform-new-target" "^7.0.0"
+    "@babel/plugin-transform-object-super" "^7.2.0"
+    "@babel/plugin-transform-parameters" "^7.2.0"
+    "@babel/plugin-transform-regenerator" "^7.0.0"
+    "@babel/plugin-transform-shorthand-properties" "^7.2.0"
+    "@babel/plugin-transform-spread" "^7.2.0"
+    "@babel/plugin-transform-sticky-regex" "^7.2.0"
+    "@babel/plugin-transform-template-literals" "^7.2.0"
+    "@babel/plugin-transform-typeof-symbol" "^7.2.0"
+    "@babel/plugin-transform-unicode-regex" "^7.2.0"
+    browserslist "^4.3.4"
     invariant "^2.2.2"
+    js-levenshtein "^1.1.3"
     semver "^5.3.0"
 
-"@babel/runtime@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.0.0-beta.47.tgz#273f5e71629e80f6cbcd7507503848615e59f7e0"
-  dependencies:
-    core-js "^2.5.3"
-    regenerator-runtime "^0.11.1"
-
-"@babel/template@7.0.0-beta.44":
-  version "7.0.0-beta.44"
-  resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.44.tgz#f8832f4fdcee5d59bf515e595fc5106c529b394f"
-  dependencies:
-    "@babel/code-frame" "7.0.0-beta.44"
-    "@babel/types" "7.0.0-beta.44"
-    babylon "7.0.0-beta.44"
-    lodash "^4.2.0"
-
-"@babel/template@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.47.tgz#0473970a7c0bee7a1a18c1ca999d3ba5e5bad83d"
-  dependencies:
-    "@babel/code-frame" "7.0.0-beta.47"
-    "@babel/types" "7.0.0-beta.47"
-    babylon "7.0.0-beta.47"
-    lodash "^4.17.5"
-
-"@babel/traverse@7.0.0-beta.44":
-  version "7.0.0-beta.44"
-  resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.44.tgz#a970a2c45477ad18017e2e465a0606feee0d2966"
-  dependencies:
-    "@babel/code-frame" "7.0.0-beta.44"
-    "@babel/generator" "7.0.0-beta.44"
-    "@babel/helper-function-name" "7.0.0-beta.44"
-    "@babel/helper-split-export-declaration" "7.0.0-beta.44"
-    "@babel/types" "7.0.0-beta.44"
-    babylon "7.0.0-beta.44"
-    debug "^3.1.0"
-    globals "^11.1.0"
-    invariant "^2.2.0"
-    lodash "^4.2.0"
-
-"@babel/traverse@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.47.tgz#0e57fdbb9ff3a909188b6ebf1e529c641e6c82a4"
-  dependencies:
-    "@babel/code-frame" "7.0.0-beta.47"
-    "@babel/generator" "7.0.0-beta.47"
-    "@babel/helper-function-name" "7.0.0-beta.47"
-    "@babel/helper-split-export-declaration" "7.0.0-beta.47"
-    "@babel/types" "7.0.0-beta.47"
-    babylon "7.0.0-beta.47"
-    debug "^3.1.0"
+"@babel/runtime@^7.0.0":
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.2.0.tgz#b03e42eeddf5898e00646e4c840fa07ba8dcad7f"
+  integrity sha512-oouEibCbHMVdZSDlJBO6bZmID/zA/G/Qx3H1d3rSNPTD+L8UNKvCat7aKWSJ74zYbm5zWGh0GQN0hKj8zYFTCg==
+  dependencies:
+    regenerator-runtime "^0.12.0"
+
+"@babel/template@^7.1.0", "@babel/template@^7.1.2", "@babel/template@^7.2.2":
+  version "7.2.2"
+  resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.2.2.tgz#005b3fdf0ed96e88041330379e0da9a708eb2907"
+  integrity sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==
+  dependencies:
+    "@babel/code-frame" "^7.0.0"
+    "@babel/parser" "^7.2.2"
+    "@babel/types" "^7.2.2"
+
+"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.1.5", "@babel/traverse@^7.2.2":
+  version "7.2.2"
+  resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.2.2.tgz#961039de1f9bcb946d807efe2dba9c92e859d188"
+  integrity sha512-E5Bn9FSwHpSkUhthw/XEuvFZxIgrqb9M8cX8j5EUQtrUG5DQUy6bFyl7G7iQ1D1Czudor+xkmp81JbLVVM0Sjg==
+  dependencies:
+    "@babel/code-frame" "^7.0.0"
+    "@babel/generator" "^7.2.2"
+    "@babel/helper-function-name" "^7.1.0"
+    "@babel/helper-split-export-declaration" "^7.0.0"
+    "@babel/parser" "^7.2.2"
+    "@babel/types" "^7.2.2"
+    debug "^4.1.0"
     globals "^11.1.0"
-    invariant "^2.2.0"
-    lodash "^4.17.5"
-
-"@babel/types@7.0.0-beta.44":
-  version "7.0.0-beta.44"
-  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.44.tgz#6b1b164591f77dec0a0342aca995f2d046b3a757"
-  dependencies:
-    esutils "^2.0.2"
-    lodash "^4.2.0"
-    to-fast-properties "^2.0.0"
+    lodash "^4.17.10"
 
-"@babel/types@7.0.0-beta.47":
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.47.tgz#e6fcc1a691459002c2671d558a586706dddaeef8"
+"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.2.2":
+  version "7.2.2"
+  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.2.2.tgz#44e10fc24e33af524488b716cdaee5360ea8ed1e"
+  integrity sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==
   dependencies:
     esutils "^2.0.2"
-    lodash "^4.17.5"
+    lodash "^4.17.10"
     to-fast-properties "^2.0.0"
 
 "@intervolga/optimize-cssnano-plugin@^1.0.5":
   version "1.0.6"
   resolved "https://registry.yarnpkg.com/@intervolga/optimize-cssnano-plugin/-/optimize-cssnano-plugin-1.0.6.tgz#be7c7846128b88f6a9b1d1261a0ad06eb5c0fdf8"
+  integrity sha512-zN69TnSr0viRSU6cEDIcuPcP67QcpQ6uHACg58FiN9PDrU6SLyGW3MR4tiISbYxy1kDWAVPwD+XwQTWE5cigAA==
   dependencies:
     cssnano "^4.0.0"
     cssnano-preset-default "^4.0.0"
@@ -645,115 +661,147 @@
 "@mrmlnc/readdir-enhanced@^2.2.1":
   version "2.2.1"
   resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde"
+  integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==
   dependencies:
     call-me-maybe "^1.0.1"
     glob-to-regexp "^0.3.0"
 
-"@nodelib/fs.stat@^1.0.1":
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.0.tgz#50c1e2260ac0ed9439a181de3725a0168d59c48a"
+"@nodelib/fs.stat@^1.1.2":
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b"
+  integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==
 
-"@sinonjs/commons@^1.0.1":
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.0.2.tgz#3e0ac737781627b8844257fadc3d803997d0526e"
+"@sinonjs/commons@^1.0.2":
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.3.0.tgz#50a2754016b6f30a994ceda6d9a0a8c36adda849"
+  integrity sha512-j4ZwhaHmwsCb4DlDOIWnI5YyKDNMoNThsmwEpfHx6a1EpsGZ9qYLxP++LMlmBRjtGptGHFsGItJ768snllFWpA==
   dependencies:
     type-detect "4.0.8"
 
-"@sinonjs/formatio@^2.0.0":
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-2.0.0.tgz#84db7e9eb5531df18a8c5e0bfb6e449e55e654b2"
+"@sinonjs/formatio@^3.0.0", "@sinonjs/formatio@^3.1.0":
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-3.1.0.tgz#6ac9d1eb1821984d84c4996726e45d1646d8cce5"
+  integrity sha512-ZAR2bPHOl4Xg6eklUGpsdiIJ4+J1SNag1DHHrG/73Uz/nVwXqjgUtRPLoS+aVyieN9cSbc0E4LsU984tWcDyNg==
   dependencies:
-    samsam "1.3.0"
+    "@sinonjs/samsam" "^2 || ^3"
 
-"@sinonjs/samsam@^2.0.0":
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-2.0.0.tgz#9163742ac35c12d3602dece74317643b35db6a80"
+"@sinonjs/samsam@^2 || ^3":
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-3.0.2.tgz#304fb33bd5585a0b2df8a4c801fcb47fa84d8e43"
+  integrity sha512-m08g4CS3J6lwRQk1pj1EO+KEVWbrbXsmi9Pw0ySmrIbcVxVaedoFgLvFsV8wHLwh01EpROVz3KvVcD1Jmks9FQ==
+  dependencies:
+    "@sinonjs/commons" "^1.0.2"
+    array-from "^2.1.1"
+    lodash.get "^4.4.2"
+
+"@sinonjs/samsam@^2.1.2":
+  version "2.1.3"
+  resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-2.1.3.tgz#62cf2a9b624edc795134135fe37fc2ae8ea36be3"
+  integrity sha512-8zNeBkSKhU9a5cRNbpCKau2WWPfan+Q2zDlcXvXyhn9EsMqgYs4qzo0XHNVlXC6ABQL8fT6nV+zzo5RTHJzyXw==
 
 "@types/babel-types@*", "@types/babel-types@^7.0.0":
   version "7.0.4"
   resolved "https://registry.yarnpkg.com/@types/babel-types/-/babel-types-7.0.4.tgz#bfd5b0d0d1ba13e351dff65b6e52783b816826c8"
+  integrity sha512-WiZhq3SVJHFRgRYLXvpf65XnV6ipVHhnNaNvE8yCimejrGglkg38kEj0JcizqwSHxmPSjcTlig/6JouxLGEhGw==
 
 "@types/babylon@^6.16.2":
-  version "6.16.3"
-  resolved "https://registry.yarnpkg.com/@types/babylon/-/babylon-6.16.3.tgz#c2937813a89fcb5e79a00062fc4a8b143e7237bb"
+  version "6.16.4"
+  resolved "https://registry.yarnpkg.com/@types/babylon/-/babylon-6.16.4.tgz#d3df72518b34a6a015d0dc58745cd238b5bb8ad2"
+  integrity sha512-8dZMcGPno3g7pJ/d0AyJERo+lXh9i1JhDuCUs+4lNIN9eUe5Yh6UCLrpgSEi05Ve2JMLauL2aozdvKwNL0px1Q==
   dependencies:
     "@types/babel-types" "*"
 
 "@types/node@*":
-  version "10.5.8"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-10.5.8.tgz#6f14ccecad1d19332f063a6a764f8907801fece0"
+  version "10.12.18"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.18.tgz#1d3ca764718915584fcd9f6344621b7672665c67"
+  integrity sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==
 
-"@vue/babel-preset-app@^3.0.0":
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/@vue/babel-preset-app/-/babel-preset-app-3.0.0.tgz#56bbd624eb78fa1d5f7bf992ac62e6fc7557bd71"
-  dependencies:
-    "@babel/plugin-proposal-class-properties" "7.0.0-beta.47"
-    "@babel/plugin-proposal-decorators" "7.0.0-beta.47"
-    "@babel/plugin-syntax-dynamic-import" "7.0.0-beta.47"
-    "@babel/plugin-syntax-jsx" "7.0.0-beta.47"
-    "@babel/plugin-transform-runtime" "7.0.0-beta.47"
-    "@babel/preset-env" "7.0.0-beta.47"
-    "@babel/runtime" "7.0.0-beta.47"
+"@types/q@^1.5.1":
+  version "1.5.1"
+  resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.1.tgz#48fd98c1561fe718b61733daed46ff115b496e18"
+  integrity sha512-eqz8c/0kwNi/OEHQfvIuJVLTst3in0e7uTKeuY+WL/zfKn0xVujOTp42bS/vUUokhK5P2BppLd9JXMOMHcgbjA==
+
+"@vue/babel-preset-app@^3.2.0":
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/@vue/babel-preset-app/-/babel-preset-app-3.2.0.tgz#a443acdbd34f66d7645db271d9ac58fbe4fe870d"
+  integrity sha512-yDPMhdeOnQ49EOsOnHXJZQ4aR+g+TZVkImUjRBN90MKv9V1C9HXxhU73Je6pWUQaJ0yugMr5jl058ns6Mx6mNA==
+  dependencies:
+    "@babel/plugin-proposal-class-properties" "^7.0.0"
+    "@babel/plugin-proposal-decorators" "^7.1.0"
+    "@babel/plugin-syntax-dynamic-import" "^7.0.0"
+    "@babel/plugin-syntax-jsx" "^7.0.0"
+    "@babel/plugin-transform-runtime" "^7.0.0"
+    "@babel/preset-env" "^7.0.0"
+    "@babel/runtime" "^7.0.0"
     babel-helper-vue-jsx-merge-props "^2.0.3"
-    babel-plugin-dynamic-import-node "^2.0.0"
+    babel-plugin-dynamic-import-node "^2.2.0"
     babel-plugin-transform-vue-jsx "^4.0.1"
+    core-js "^2.5.7"
 
-"@vue/cli-overlay@^3.0.0":
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/@vue/cli-overlay/-/cli-overlay-3.0.0.tgz#580340afde2cf155b71c67907f27a69b906416b6"
+"@vue/cli-overlay@^3.2.0":
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/@vue/cli-overlay/-/cli-overlay-3.2.0.tgz#bb5d781914bb5af97d92410babbaa3720707b728"
+  integrity sha512-RKMSfgTtRs4VOXQhmbrNZJaCCheshebji9NcPNGyXzukCMBtoAbu3cG9HxizCSUA//oFFAdPP5BGeHvv0cpu/A==
 
 "@vue/cli-plugin-babel@^3.0.0":
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/@vue/cli-plugin-babel/-/cli-plugin-babel-3.0.0.tgz#5e3e2ae3435929b26994250692fa7a20e5cd6883"
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/@vue/cli-plugin-babel/-/cli-plugin-babel-3.2.0.tgz#5548e052f07512156942f50dcf18948ad29be7ec"
+  integrity sha512-HRhwsUIZ9DZYH+cVS8O0Qfk2W43vKpl5/JcvCS8YWWmRjwZjjHtRDifnfQuLC3Q0cUMTcv4bv8vnPMtkAbvXKg==
   dependencies:
-    "@babel/core" "7.0.0-beta.47"
-    "@vue/babel-preset-app" "^3.0.0"
-    babel-loader "^8.0.0-0"
+    "@babel/core" "^7.0.0"
+    "@vue/babel-preset-app" "^3.2.0"
+    babel-loader "^8.0.4"
 
 "@vue/cli-plugin-eslint@^3.0.0":
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/@vue/cli-plugin-eslint/-/cli-plugin-eslint-3.0.0.tgz#97b163df1272b39e61e18c8add5dfe28a92375c4"
+  version "3.2.1"
+  resolved "https://registry.yarnpkg.com/@vue/cli-plugin-eslint/-/cli-plugin-eslint-3.2.1.tgz#4dc353add93023363bf4c6b347e64472d1f2f432"
+  integrity sha512-Z/eQw18FjTypMMryNg8WCYJxEBmSAtnzukRWWNFwqNnh2zM/2J6yR4dYhsyjNtMEMUOnQsAsJnqgw45rLu8sJg==
   dependencies:
-    "@vue/cli-shared-utils" "^3.0.0"
-    babel-eslint "^8.2.5"
+    "@vue/cli-shared-utils" "^3.2.0"
+    babel-eslint "^10.0.1"
     eslint "^4.19.1"
-    eslint-loader "^2.0.0"
-    eslint-plugin-vue "^4.5.0"
+    eslint-loader "^2.1.1"
+    eslint-plugin-vue "^4.7.1"
+    globby "^8.0.1"
 
 "@vue/cli-plugin-unit-mocha@^3.0.0":
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/@vue/cli-plugin-unit-mocha/-/cli-plugin-unit-mocha-3.0.0.tgz#615202a9d4aa09adbd360ad4b94ec797d19805d2"
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/@vue/cli-plugin-unit-mocha/-/cli-plugin-unit-mocha-3.2.0.tgz#76828eae415ffe949c7fbfcad8e3b7d6a2e991c6"
+  integrity sha512-lT7arkoJFiTBJMIqt5IKFDY0VAoVOf7ZksAlp4WeD3Rwimh/q4tp9yMeNW4x92oxulbQFszkbtoTs5+ARzbN5w==
   dependencies:
-    "@vue/cli-shared-utils" "^3.0.0"
-    jsdom "^11.11.0"
+    "@vue/cli-shared-utils" "^3.2.0"
+    jsdom "^13.0.0"
     jsdom-global "^3.0.2"
     mocha "^5.2.0"
     mocha-webpack "^2.0.0-beta.0"
 
 "@vue/cli-service@^3.0.0":
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/@vue/cli-service/-/cli-service-3.0.0.tgz#c808a846072dcf5751aad786439f53fc0a812bf4"
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/@vue/cli-service/-/cli-service-3.2.0.tgz#96e8ee7b33a911ab71710c126ab55cd64c2a4c51"
+  integrity sha512-HTiaz1IBXV/JCfrmyhHJvDOYpPTBK0uQAekSVRTt5AddCeOV68ktdUqHbDe3VPDfrWFA5x3d3kIHlJd6WK31mA==
   dependencies:
     "@intervolga/optimize-cssnano-plugin" "^1.0.5"
-    "@vue/cli-overlay" "^3.0.0"
-    "@vue/cli-shared-utils" "^3.0.0"
+    "@vue/cli-overlay" "^3.2.0"
+    "@vue/cli-shared-utils" "^3.2.0"
     "@vue/preload-webpack-plugin" "^1.1.0"
     "@vue/web-component-wrapper" "^1.2.0"
-    acorn "^5.7.1"
+    acorn "^6.0.4"
+    acorn-walk "^6.1.1"
     address "^1.0.3"
     autoprefixer "^8.6.5"
-    cache-loader "^1.2.2"
+    cache-loader "^1.2.5"
     case-sensitive-paths-webpack-plugin "^2.1.2"
     chalk "^2.4.1"
     clipboardy "^1.2.3"
     cliui "^4.1.0"
-    copy-webpack-plugin "^4.5.2"
-    css-loader "^1.0.0"
-    debug "^3.1.0"
+    copy-webpack-plugin "^4.6.0"
+    css-loader "^1.0.1"
+    cssnano "^4.1.7"
+    debug "^4.1.0"
     escape-string-regexp "^1.0.5"
-    file-loader "^1.1.11"
+    file-loader "^2.0.0"
     friendly-errors-webpack-plugin "^1.7.0"
-    fs-extra "^6.0.1"
+    fs-extra "^7.0.1"
     globby "^8.0.1"
     hash-sum "^1.0.2"
     html-webpack-plugin "^3.2.0"
@@ -761,36 +809,38 @@
     lodash.defaultsdeep "^4.6.0"
     lodash.mapvalues "^4.6.0"
     lodash.transform "^4.6.0"
-    mini-css-extract-plugin "^0.4.1"
+    mini-css-extract-plugin "^0.4.5"
     minimist "^1.2.0"
-    ora "^2.1.0"
-    portfinder "^1.0.13"
-    postcss-loader "^2.1.6"
+    ora "^3.0.0"
+    portfinder "^1.0.19"
+    postcss-loader "^3.0.0"
     read-pkg "^4.0.1"
-    semver "^5.5.0"
+    semver "^5.6.0"
     slash "^2.0.0"
     source-map-url "^0.4.0"
-    ssri "^6.0.0"
+    ssri "^6.0.1"
     string.prototype.padend "^3.0.0"
-    thread-loader "^1.1.5"
-    uglifyjs-webpack-plugin "^1.2.7"
-    url-loader "^1.0.1"
-    vue-loader "^15.3.0"
-    webpack "^4.15.1"
-    webpack-bundle-analyzer "^2.13.1"
-    webpack-chain "^4.8.0"
-    webpack-dev-server "^3.1.4"
-    webpack-merge "^4.1.3"
+    terser-webpack-plugin "^1.1.0"
+    thread-loader "^1.2.0"
+    url-loader "^1.1.2"
+    vue-loader "^15.4.2"
+    webpack "^4.26.1"
+    webpack-bundle-analyzer "^3.0.3"
+    webpack-chain "^4.11.0"
+    webpack-dev-server "^3.1.10"
+    webpack-merge "^4.1.4"
     yorkie "^2.0.0"
 
-"@vue/cli-shared-utils@^3.0.0":
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/@vue/cli-shared-utils/-/cli-shared-utils-3.0.0.tgz#f4886ce9a62dd2088e112af4d54f61c1667318d0"
+"@vue/cli-shared-utils@^3.2.0":
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/@vue/cli-shared-utils/-/cli-shared-utils-3.2.0.tgz#504037063c2a4a346dc35c9652bd3863da4816e7"
+  integrity sha512-FCX5ABFg5pWhomyXLpCaogJktMvjsS5d4Mn5BfvqcJxCvzOX6ze8ihFK3u//XMeM78dOFpHSjxnRSvHtkEwgsg==
   dependencies:
     chalk "^2.4.1"
-    execa "^0.10.0"
+    execa "^1.0.0"
     joi "^13.0.0"
     launch-editor "^2.2.1"
+    lru-cache "^4.1.3"
     node-ipc "^9.1.1"
     opn "^5.3.0"
     ora "^2.1.0"
@@ -802,6 +852,7 @@
 "@vue/component-compiler-utils@^1.2.1":
   version "1.3.1"
   resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-1.3.1.tgz#686f0b913d59590ae327b2a1cb4b6d9b931bbe0e"
+  integrity sha512-IyjJW6ToMitgAhp3xh22QiEW8JvHfLyzlyY/J+GjJ71miod9tNsy6xT2ckm/VirlhPMfeM43kgYZe34jhmmzpw==
   dependencies:
     consolidate "^0.15.1"
     hash-sum "^1.0.2"
@@ -814,8 +865,9 @@
     vue-template-es2015-compiler "^1.6.0"
 
 "@vue/component-compiler-utils@^2.0.0":
-  version "2.1.2"
-  resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-2.1.2.tgz#75e7cc8496baecbb0994dc8783571d9ff07737fe"
+  version "2.3.1"
+  resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-2.3.1.tgz#d1c2623f02ad3fe6b6fc9c3762be55c9c61e3977"
+  integrity sha512-8VuzMhHTf5UU7+HvBeEbBmYiNLvRxIXtDpvxUl5x26WBPgKmQuuJVFY3dN3GFgnWK9Rveh/u/8NF4quhdUUQ1Q==
   dependencies:
     consolidate "^0.15.1"
     hash-sum "^1.0.2"
@@ -830,179 +882,188 @@
 "@vue/preload-webpack-plugin@^1.1.0":
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/@vue/preload-webpack-plugin/-/preload-webpack-plugin-1.1.0.tgz#d768dba004261c029b53a77c5ea2d5f9ee4f3cce"
+  integrity sha512-rcn2KhSHESBFMPj5vc5X2pI9bcBNQQixvJXhD5gZ4rN2iym/uH2qfDSQfUS5+qwiz0a85TCkeUs6w6jxFDudbw==
 
 "@vue/test-utils@^1.0.0-beta.20":
-  version "1.0.0-beta.24"
-  resolved "https://registry.yarnpkg.com/@vue/test-utils/-/test-utils-1.0.0-beta.24.tgz#da7c3165f49f57f23fdb98caccba0f511effb76f"
+  version "1.0.0-beta.27"
+  resolved "https://registry.yarnpkg.com/@vue/test-utils/-/test-utils-1.0.0-beta.27.tgz#7e5f7b7180c00e28a4ca55c0ff0a7e754377fdb2"
+  integrity sha512-Lzrd4ZBkS70Tl8JbXbDrN/NcSaH9aZT6+7emU3QhTJ+CrorJpyFDA1dkvSIhH+rDTs8sHFbGeXjXV/qorXxtRw==
   dependencies:
+    dom-event-types "^1.0.0"
     lodash "^4.17.4"
 
 "@vue/web-component-wrapper@^1.2.0":
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/@vue/web-component-wrapper/-/web-component-wrapper-1.2.0.tgz#bb0e46f1585a7e289b4ee6067dcc5a6ae62f1dd1"
+  integrity sha512-Xn/+vdm9CjuC9p3Ae+lTClNutrVhsXpzxvoTXXtoys6kVRX9FkueSUAqSWAyZntmVLlR4DosBV4pH8y5Z/HbUw==
+
+"@webassemblyjs/ast@1.7.11":
+  version "1.7.11"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.7.11.tgz#b988582cafbb2b095e8b556526f30c90d057cace"
+  integrity sha512-ZEzy4vjvTzScC+SH8RBssQUawpaInUdMTYwYYLh54/s8TuT0gBLuyUnppKsVyZEi876VmmStKsUs28UxPgdvrA==
+  dependencies:
+    "@webassemblyjs/helper-module-context" "1.7.11"
+    "@webassemblyjs/helper-wasm-bytecode" "1.7.11"
+    "@webassemblyjs/wast-parser" "1.7.11"
+
+"@webassemblyjs/floating-point-hex-parser@1.7.11":
+  version "1.7.11"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.11.tgz#a69f0af6502eb9a3c045555b1a6129d3d3f2e313"
+  integrity sha512-zY8dSNyYcgzNRNT666/zOoAyImshm3ycKdoLsyDw/Bwo6+/uktb7p4xyApuef1dwEBo/U/SYQzbGBvV+nru2Xg==
+
+"@webassemblyjs/helper-api-error@1.7.11":
+  version "1.7.11"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.11.tgz#c7b6bb8105f84039511a2b39ce494f193818a32a"
+  integrity sha512-7r1qXLmiglC+wPNkGuXCvkmalyEstKVwcueZRP2GNC2PAvxbLYwLLPr14rcdJaE4UtHxQKfFkuDFuv91ipqvXg==
+
+"@webassemblyjs/helper-buffer@1.7.11":
+  version "1.7.11"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.11.tgz#3122d48dcc6c9456ed982debe16c8f37101df39b"
+  integrity sha512-MynuervdylPPh3ix+mKZloTcL06P8tenNH3sx6s0qE8SLR6DdwnfgA7Hc9NSYeob2jrW5Vql6GVlsQzKQCa13w==
+
+"@webassemblyjs/helper-code-frame@1.7.11":
+  version "1.7.11"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.11.tgz#cf8f106e746662a0da29bdef635fcd3d1248364b"
+  integrity sha512-T8ESC9KMXFTXA5urJcyor5cn6qWeZ4/zLPyWeEXZ03hj/x9weSokGNkVCdnhSabKGYWxElSdgJ+sFa9G/RdHNw==
+  dependencies:
+    "@webassemblyjs/wast-printer" "1.7.11"
+
+"@webassemblyjs/helper-fsm@1.7.11":
+  version "1.7.11"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.11.tgz#df38882a624080d03f7503f93e3f17ac5ac01181"
+  integrity sha512-nsAQWNP1+8Z6tkzdYlXT0kxfa2Z1tRTARd8wYnc/e3Zv3VydVVnaeePgqUzFrpkGUyhUUxOl5ML7f1NuT+gC0A==
+
+"@webassemblyjs/helper-module-context@1.7.11":
+  version "1.7.11"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.11.tgz#d874d722e51e62ac202476935d649c802fa0e209"
+  integrity sha512-JxfD5DX8Ygq4PvXDucq0M+sbUFA7BJAv/GGl9ITovqE+idGX+J3QSzJYz+LwQmL7fC3Rs+utvWoJxDb6pmC0qg==
+
+"@webassemblyjs/helper-wasm-bytecode@1.7.11":
+  version "1.7.11"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.11.tgz#dd9a1e817f1c2eb105b4cf1013093cb9f3c9cb06"
+  integrity sha512-cMXeVS9rhoXsI9LLL4tJxBgVD/KMOKXuFqYb5oCJ/opScWpkCMEz9EJtkonaNcnLv2R3K5jIeS4TRj/drde1JQ==
+
+"@webassemblyjs/helper-wasm-section@1.7.11":
+  version "1.7.11"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.11.tgz#9c9ac41ecf9fbcfffc96f6d2675e2de33811e68a"
+  integrity sha512-8ZRY5iZbZdtNFE5UFunB8mmBEAbSI3guwbrsCl4fWdfRiAcvqQpeqd5KHhSWLL5wuxo53zcaGZDBU64qgn4I4Q==
+  dependencies:
+    "@webassemblyjs/ast" "1.7.11"
+    "@webassemblyjs/helper-buffer" "1.7.11"
+    "@webassemblyjs/helper-wasm-bytecode" "1.7.11"
+    "@webassemblyjs/wasm-gen" "1.7.11"
+
+"@webassemblyjs/ieee754@1.7.11":
+  version "1.7.11"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.7.11.tgz#c95839eb63757a31880aaec7b6512d4191ac640b"
+  integrity sha512-Mmqx/cS68K1tSrvRLtaV/Lp3NZWzXtOHUW2IvDvl2sihAwJh4ACE0eL6A8FvMyDG9abes3saB6dMimLOs+HMoQ==
+  dependencies:
+    "@xtuc/ieee754" "^1.2.0"
+
+"@webassemblyjs/leb128@1.7.11":
+  version "1.7.11"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.7.11.tgz#d7267a1ee9c4594fd3f7e37298818ec65687db63"
+  integrity sha512-vuGmgZjjp3zjcerQg+JA+tGOncOnJLWVkt8Aze5eWQLwTQGNgVLcyOTqgSCxWTR4J42ijHbBxnuRaL1Rv7XMdw==
+  dependencies:
+    "@xtuc/long" "4.2.1"
+
+"@webassemblyjs/utf8@1.7.11":
+  version "1.7.11"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.7.11.tgz#06d7218ea9fdc94a6793aa92208160db3d26ee82"
+  integrity sha512-C6GFkc7aErQIAH+BMrIdVSmW+6HSe20wg57HEC1uqJP8E/xpMjXqQUxkQw07MhNDSDcGpxI9G5JSNOQCqJk4sA==
+
+"@webassemblyjs/wasm-edit@1.7.11":
+  version "1.7.11"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.11.tgz#8c74ca474d4f951d01dbae9bd70814ee22a82005"
+  integrity sha512-FUd97guNGsCZQgeTPKdgxJhBXkUbMTY6hFPf2Y4OedXd48H97J+sOY2Ltaq6WGVpIH8o/TGOVNiVz/SbpEMJGg==
+  dependencies:
+    "@webassemblyjs/ast" "1.7.11"
+    "@webassemblyjs/helper-buffer" "1.7.11"
+    "@webassemblyjs/helper-wasm-bytecode" "1.7.11"
+    "@webassemblyjs/helper-wasm-section" "1.7.11"
+    "@webassemblyjs/wasm-gen" "1.7.11"
+    "@webassemblyjs/wasm-opt" "1.7.11"
+    "@webassemblyjs/wasm-parser" "1.7.11"
+    "@webassemblyjs/wast-printer" "1.7.11"
+
+"@webassemblyjs/wasm-gen@1.7.11":
+  version "1.7.11"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.11.tgz#9bbba942f22375686a6fb759afcd7ac9c45da1a8"
+  integrity sha512-U/KDYp7fgAZX5KPfq4NOupK/BmhDc5Kjy2GIqstMhvvdJRcER/kUsMThpWeRP8BMn4LXaKhSTggIJPOeYHwISA==
+  dependencies:
+    "@webassemblyjs/ast" "1.7.11"
+    "@webassemblyjs/helper-wasm-bytecode" "1.7.11"
+    "@webassemblyjs/ieee754" "1.7.11"
+    "@webassemblyjs/leb128" "1.7.11"
+    "@webassemblyjs/utf8" "1.7.11"
+
+"@webassemblyjs/wasm-opt@1.7.11":
+  version "1.7.11"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.11.tgz#b331e8e7cef8f8e2f007d42c3a36a0580a7d6ca7"
+  integrity sha512-XynkOwQyiRidh0GLua7SkeHvAPXQV/RxsUeERILmAInZegApOUAIJfRuPYe2F7RcjOC9tW3Cb9juPvAC/sCqvg==
+  dependencies:
+    "@webassemblyjs/ast" "1.7.11"
+    "@webassemblyjs/helper-buffer" "1.7.11"
+    "@webassemblyjs/wasm-gen" "1.7.11"
+    "@webassemblyjs/wasm-parser" "1.7.11"
+
+"@webassemblyjs/wasm-parser@1.7.11":
+  version "1.7.11"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.11.tgz#6e3d20fa6a3519f6b084ef9391ad58211efb0a1a"
+  integrity sha512-6lmXRTrrZjYD8Ng8xRyvyXQJYUQKYSXhJqXOBLw24rdiXsHAOlvw5PhesjdcaMadU/pyPQOJ5dHreMjBxwnQKg==
+  dependencies:
+    "@webassemblyjs/ast" "1.7.11"
+    "@webassemblyjs/helper-api-error" "1.7.11"
+    "@webassemblyjs/helper-wasm-bytecode" "1.7.11"
+    "@webassemblyjs/ieee754" "1.7.11"
+    "@webassemblyjs/leb128" "1.7.11"
+    "@webassemblyjs/utf8" "1.7.11"
+
+"@webassemblyjs/wast-parser@1.7.11":
+  version "1.7.11"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.7.11.tgz#25bd117562ca8c002720ff8116ef9072d9ca869c"
+  integrity sha512-lEyVCg2np15tS+dm7+JJTNhNWq9yTZvi3qEhAIIOaofcYlUp0UR5/tVqOwa/gXYr3gjwSZqw+/lS9dscyLelbQ==
+  dependencies:
+    "@webassemblyjs/ast" "1.7.11"
+    "@webassemblyjs/floating-point-hex-parser" "1.7.11"
+    "@webassemblyjs/helper-api-error" "1.7.11"
+    "@webassemblyjs/helper-code-frame" "1.7.11"
+    "@webassemblyjs/helper-fsm" "1.7.11"
+    "@xtuc/long" "4.2.1"
+
+"@webassemblyjs/wast-printer@1.7.11":
+  version "1.7.11"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.7.11.tgz#c4245b6de242cb50a2cc950174fdbf65c78d7813"
+  integrity sha512-m5vkAsuJ32QpkdkDOUPGSltrg8Cuk3KBx4YrmAGQwCZPRdUHXxG4phIOuuycLemHFr74sWL9Wthqss4fzdzSwg==
+  dependencies:
+    "@webassemblyjs/ast" "1.7.11"
+    "@webassemblyjs/wast-parser" "1.7.11"
+    "@xtuc/long" "4.2.1"
+
+"@xtuc/ieee754@^1.2.0":
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790"
+  integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==
 
-"@webassemblyjs/ast@1.5.13":
-  version "1.5.13"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.5.13.tgz#81155a570bd5803a30ec31436bc2c9c0ede38f25"
-  dependencies:
-    "@webassemblyjs/helper-module-context" "1.5.13"
-    "@webassemblyjs/helper-wasm-bytecode" "1.5.13"
-    "@webassemblyjs/wast-parser" "1.5.13"
-    debug "^3.1.0"
-    mamacro "^0.0.3"
-
-"@webassemblyjs/floating-point-hex-parser@1.5.13":
-  version "1.5.13"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.5.13.tgz#29ce0baa97411f70e8cce68ce9c0f9d819a4e298"
-
-"@webassemblyjs/helper-api-error@1.5.13":
-  version "1.5.13"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.5.13.tgz#e49b051d67ee19a56e29b9aa8bd949b5b4442a59"
-
-"@webassemblyjs/helper-buffer@1.5.13":
-  version "1.5.13"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.5.13.tgz#873bb0a1b46449231137c1262ddfd05695195a1e"
-  dependencies:
-    debug "^3.1.0"
-
-"@webassemblyjs/helper-code-frame@1.5.13":
-  version "1.5.13"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.5.13.tgz#1bd2181b6a0be14e004f0fe9f5a660d265362b58"
-  dependencies:
-    "@webassemblyjs/wast-printer" "1.5.13"
-
-"@webassemblyjs/helper-fsm@1.5.13":
-  version "1.5.13"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.5.13.tgz#cdf3d9d33005d543a5c5e5adaabf679ffa8db924"
-
-"@webassemblyjs/helper-module-context@1.5.13":
-  version "1.5.13"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.5.13.tgz#dc29ddfb51ed657655286f94a5d72d8a489147c5"
-  dependencies:
-    debug "^3.1.0"
-    mamacro "^0.0.3"
-
-"@webassemblyjs/helper-wasm-bytecode@1.5.13":
-  version "1.5.13"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.5.13.tgz#03245817f0a762382e61733146f5773def15a747"
-
-"@webassemblyjs/helper-wasm-section@1.5.13":
-  version "1.5.13"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.5.13.tgz#efc76f44a10d3073b584b43c38a179df173d5c7d"
-  dependencies:
-    "@webassemblyjs/ast" "1.5.13"
-    "@webassemblyjs/helper-buffer" "1.5.13"
-    "@webassemblyjs/helper-wasm-bytecode" "1.5.13"
-    "@webassemblyjs/wasm-gen" "1.5.13"
-    debug "^3.1.0"
-
-"@webassemblyjs/ieee754@1.5.13":
-  version "1.5.13"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.5.13.tgz#573e97c8c12e4eebb316ca5fde0203ddd90b0364"
-  dependencies:
-    ieee754 "^1.1.11"
-
-"@webassemblyjs/leb128@1.5.13":
-  version "1.5.13"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.5.13.tgz#ab52ebab9cec283c1c1897ac1da833a04a3f4cee"
-  dependencies:
-    long "4.0.0"
-
-"@webassemblyjs/utf8@1.5.13":
-  version "1.5.13"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.5.13.tgz#6b53d2cd861cf94fa99c1f12779dde692fbc2469"
-
-"@webassemblyjs/wasm-edit@1.5.13":
-  version "1.5.13"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.5.13.tgz#c9cef5664c245cf11b3b3a73110c9155831724a8"
-  dependencies:
-    "@webassemblyjs/ast" "1.5.13"
-    "@webassemblyjs/helper-buffer" "1.5.13"
-    "@webassemblyjs/helper-wasm-bytecode" "1.5.13"
-    "@webassemblyjs/helper-wasm-section" "1.5.13"
-    "@webassemblyjs/wasm-gen" "1.5.13"
-    "@webassemblyjs/wasm-opt" "1.5.13"
-    "@webassemblyjs/wasm-parser" "1.5.13"
-    "@webassemblyjs/wast-printer" "1.5.13"
-    debug "^3.1.0"
-
-"@webassemblyjs/wasm-gen@1.5.13":
-  version "1.5.13"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.5.13.tgz#8e6ea113c4b432fa66540189e79b16d7a140700e"
-  dependencies:
-    "@webassemblyjs/ast" "1.5.13"
-    "@webassemblyjs/helper-wasm-bytecode" "1.5.13"
-    "@webassemblyjs/ieee754" "1.5.13"
-    "@webassemblyjs/leb128" "1.5.13"
-    "@webassemblyjs/utf8" "1.5.13"
-
-"@webassemblyjs/wasm-opt@1.5.13":
-  version "1.5.13"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.5.13.tgz#147aad7717a7ee4211c36b21a5f4c30dddf33138"
-  dependencies:
-    "@webassemblyjs/ast" "1.5.13"
-    "@webassemblyjs/helper-buffer" "1.5.13"
-    "@webassemblyjs/wasm-gen" "1.5.13"
-    "@webassemblyjs/wasm-parser" "1.5.13"
-    debug "^3.1.0"
-
-"@webassemblyjs/wasm-parser@1.5.13":
-  version "1.5.13"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.5.13.tgz#6f46516c5bb23904fbdf58009233c2dd8a54c72f"
-  dependencies:
-    "@webassemblyjs/ast" "1.5.13"
-    "@webassemblyjs/helper-api-error" "1.5.13"
-    "@webassemblyjs/helper-wasm-bytecode" "1.5.13"
-    "@webassemblyjs/ieee754" "1.5.13"
-    "@webassemblyjs/leb128" "1.5.13"
-    "@webassemblyjs/utf8" "1.5.13"
-
-"@webassemblyjs/wast-parser@1.5.13":
-  version "1.5.13"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.5.13.tgz#5727a705d397ae6a3ae99d7f5460acf2ec646eea"
-  dependencies:
-    "@webassemblyjs/ast" "1.5.13"
-    "@webassemblyjs/floating-point-hex-parser" "1.5.13"
-    "@webassemblyjs/helper-api-error" "1.5.13"
-    "@webassemblyjs/helper-code-frame" "1.5.13"
-    "@webassemblyjs/helper-fsm" "1.5.13"
-    long "^3.2.0"
-    mamacro "^0.0.3"
-
-"@webassemblyjs/wast-printer@1.5.13":
-  version "1.5.13"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.5.13.tgz#bb34d528c14b4f579e7ec11e793ec50ad7cd7c95"
-  dependencies:
-    "@webassemblyjs/ast" "1.5.13"
-    "@webassemblyjs/wast-parser" "1.5.13"
-    long "^3.2.0"
-
-"@webpack-contrib/schema-utils@^1.0.0-beta.0":
-  version "1.0.0-beta.0"
-  resolved "https://registry.yarnpkg.com/@webpack-contrib/schema-utils/-/schema-utils-1.0.0-beta.0.tgz#bf9638c9464d177b48209e84209e23bee2eb4f65"
-  dependencies:
-    ajv "^6.1.0"
-    ajv-keywords "^3.1.0"
-    chalk "^2.3.2"
-    strip-ansi "^4.0.0"
-    text-table "^0.2.0"
-    webpack-log "^1.1.2"
-
-abab@^1.0.4:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.4.tgz#5faad9c2c07f60dd76770f71cf025b62a63cfd4e"
+"@xtuc/long@4.2.1":
+  version "4.2.1"
+  resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.1.tgz#5c85d662f76fa1d34575766c5dcd6615abcd30d8"
+  integrity sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g==
 
 abab@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.0.tgz#aba0ab4c5eee2d4c79d3487d85450fb2376ebb0f"
+  integrity sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w==
 
 abbrev@1:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
+  integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
 
 accepts@~1.3.4, accepts@~1.3.5:
   version "1.3.5"
   resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2"
+  integrity sha1-63d99gEXI6OxTopywIBcjoZ0a9I=
   dependencies:
     mime-types "~2.1.18"
     negotiator "0.6.1"
@@ -1010,72 +1071,85 @@ accepts@~1.3.4, accepts@~1.3.5:
 acorn-bigint@^0.2.0:
   version "0.2.0"
   resolved "https://registry.yarnpkg.com/acorn-bigint/-/acorn-bigint-0.2.0.tgz#0f45a5290537799a3b07085689a186881cb53784"
+  integrity sha1-D0WlKQU3eZo7BwhWiaGGiBy1N4Q=
   dependencies:
     acorn "^5.2.1"
 
 acorn-class-fields@^0.1.1:
   version "0.1.2"
   resolved "https://registry.yarnpkg.com/acorn-class-fields/-/acorn-class-fields-0.1.2.tgz#20782f304af42257feff5bd4a5c335291473bf58"
+  integrity sha1-IHgvMEr0Ilf+/1vUpcM1KRRzv1g=
   dependencies:
     acorn "^5.3.0"
 
 acorn-dynamic-import@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz#901ceee4c7faaef7e07ad2a47e890675da50a278"
+  integrity sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==
   dependencies:
     acorn "^5.0.0"
 
 acorn-globals@^3.0.0:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-3.1.0.tgz#fd8270f71fbb4996b004fa880ee5d46573a731bf"
+  integrity sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=
   dependencies:
     acorn "^4.0.4"
 
-acorn-globals@^4.1.0:
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.1.0.tgz#ab716025dbe17c54d3ef81d32ece2b2d99fe2538"
+acorn-globals@^4.3.0:
+  version "4.3.0"
+  resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.0.tgz#e3b6f8da3c1552a95ae627571f7dd6923bb54103"
+  integrity sha512-hMtHj3s5RnuhvHPowpBYvJVj3rAar82JiDQHvGs1zO0l10ocX/xEdBShNHTJaboucJUsScghp74pH3s7EnHHQw==
   dependencies:
-    acorn "^5.0.0"
+    acorn "^6.0.1"
+    acorn-walk "^6.0.1"
 
 acorn-import-meta@^0.2.1:
   version "0.2.1"
   resolved "https://registry.yarnpkg.com/acorn-import-meta/-/acorn-import-meta-0.2.1.tgz#ac91e06e00facece7e96ff76a0fe9ec7b1cb5b5c"
+  integrity sha512-+KB5Q0P0Q/XpsPHgnLx4XbCGqMogw4yiJJjYsbzPCNrE/IoX+c6J4C+BFcwdWh3CD1zLzMxPITN1jzHd+NiS3w==
   dependencies:
     acorn "^5.4.1"
 
 acorn-json-superset@^0.1.0:
-  version "0.1.0"
-  resolved "https://registry.yarnpkg.com/acorn-json-superset/-/acorn-json-superset-0.1.0.tgz#b5b911a1777ea63a48fcfc64353e787305e8a945"
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/acorn-json-superset/-/acorn-json-superset-0.1.1.tgz#61222bfdb6bd0a825c05d5550135729076c2cb5a"
+  integrity sha512-fhvg6mWlulil3spkNL0UQtym0pLAaKsKWmDGuTKlP5PVQwv9DlR1avvnnwl2YT9A61AH5j0idgv5/h9Rdkaqyg==
   dependencies:
     acorn "^5.4.1"
 
 acorn-jsx@^3.0.0:
   version "3.0.1"
   resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b"
+  integrity sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=
   dependencies:
     acorn "^3.0.4"
 
 acorn-numeric-separator@^0.1.1:
   version "0.1.1"
   resolved "https://registry.yarnpkg.com/acorn-numeric-separator/-/acorn-numeric-separator-0.1.1.tgz#aa455a1d95ae887231de97e0681abbe28b065e8d"
+  integrity sha1-qkVaHZWuiHIx3pfgaBq74osGXo0=
   dependencies:
     acorn "^5.2.1"
 
 acorn-optional-catch-binding@^0.1.0:
-  version "0.1.0"
-  resolved "https://registry.yarnpkg.com/acorn-optional-catch-binding/-/acorn-optional-catch-binding-0.1.0.tgz#d9a1874dbffce1eb3495836e5e75b2ad9c300868"
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/acorn-optional-catch-binding/-/acorn-optional-catch-binding-0.1.1.tgz#593d8c0a51ae3a3404b3bb84ee40180b808e7548"
+  integrity sha512-LJn5iDpAU1Zah1sdG2pY4rwv7kSe7ykbKpYrwbw5Igfn3OgPyjSD5f0JPboA1xITYpENS9rtNgN7PaAtTsvI/g==
   dependencies:
     acorn "^5.2.1"
 
 acorn-private-methods@^0.1.1:
   version "0.1.1"
   resolved "https://registry.yarnpkg.com/acorn-private-methods/-/acorn-private-methods-0.1.1.tgz#32c13cf24d05bf1c9be04914b41491c59d75a195"
+  integrity sha1-MsE88k0Fvxyb4EkUtBSRxZ11oZU=
   dependencies:
     acorn "^5.4.0"
 
 acorn-stage3@^0.6.0:
   version "0.6.0"
   resolved "https://registry.yarnpkg.com/acorn-stage3/-/acorn-stage3-0.6.0.tgz#d2814cec8e2f8bcb0407ba657fbe0cfb118f9bc2"
+  integrity sha512-/CZrHonJfg5OSTkZ71w4L4JnpsqZyDIXaSot5gUpQriTUavjiuAjkJBxxNGtxTlGBVtOBtYwzqxLDUSOD3amDQ==
   dependencies:
     acorn "^5.5.0"
     acorn-bigint "^0.2.0"
@@ -1087,51 +1161,75 @@ acorn-stage3@^0.6.0:
     acorn-optional-catch-binding "^0.1.0"
     acorn-private-methods "^0.1.1"
 
+acorn-walk@^6.0.1, acorn-walk@^6.1.1:
+  version "6.1.1"
+  resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.1.1.tgz#d363b66f5fac5f018ff9c3a1e7b6f8e310cc3913"
+  integrity sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw==
+
 acorn@^3.0.4, acorn@^3.1.0:
   version "3.3.0"
   resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
+  integrity sha1-ReN/s56No/JbruP/U2niu18iAXo=
 
 acorn@^4.0.4, acorn@~4.0.2:
   version "4.0.13"
   resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787"
+  integrity sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=
 
-acorn@^5.0.0, acorn@^5.2.1, acorn@^5.3.0, acorn@^5.4.0, acorn@^5.4.1, acorn@^5.5.0, acorn@^5.5.3, acorn@^5.6.2, acorn@^5.7.1:
-  version "5.7.1"
-  resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.1.tgz#f095829297706a7c9776958c0afc8930a9b9d9d8"
+acorn@^5.0.0, acorn@^5.2.1, acorn@^5.3.0, acorn@^5.4.0, acorn@^5.4.1, acorn@^5.5.0, acorn@^5.5.3, acorn@^5.6.2, acorn@^5.7.3:
+  version "5.7.3"
+  resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279"
+  integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==
+
+acorn@^6.0.1, acorn@^6.0.4:
+  version "6.0.4"
+  resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.0.4.tgz#77377e7353b72ec5104550aa2d2097a2fd40b754"
+  integrity sha512-VY4i5EKSKkofY2I+6QLTbTTN/UvEQPCo6eiwzzSaSWfpaDhOmStMCMod6wmuPciNq+XS0faCglFu2lHZpdHUtg==
 
 address@^1.0.3:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/address/-/address-1.0.3.tgz#b5f50631f8d6cec8bd20c963963afb55e06cbce9"
+  integrity sha512-z55ocwKBRLryBs394Sm3ushTtBeg6VAeuku7utSoSnsJKvKcnXFIyC6vh27n3rXyxSgkJBBCAvyOn7gSUcTYjg==
+
+ajv-errors@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d"
+  integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==
 
 ajv-keywords@^2.1.0:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762"
+  integrity sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=
 
 ajv-keywords@^3.1.0:
   version "3.2.0"
   resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a"
+  integrity sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=
 
-ajv@^5.1.0, ajv@^5.2.3, ajv@^5.3.0:
+ajv@^5.2.3, ajv@^5.3.0:
   version "5.5.2"
   resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965"
+  integrity sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=
   dependencies:
     co "^4.6.0"
     fast-deep-equal "^1.0.0"
     fast-json-stable-stringify "^2.0.0"
     json-schema-traverse "^0.3.0"
 
-ajv@^6.1.0:
-  version "6.5.2"
-  resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.5.2.tgz#678495f9b82f7cca6be248dd92f59bff5e1f4360"
+ajv@^6.1.0, ajv@^6.5.5:
+  version "6.6.2"
+  resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.6.2.tgz#caceccf474bf3fc3ce3b147443711a24063cc30d"
+  integrity sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g==
   dependencies:
     fast-deep-equal "^2.0.1"
     fast-json-stable-stringify "^2.0.0"
     json-schema-traverse "^0.4.1"
-    uri-js "^4.2.1"
+    uri-js "^4.2.2"
 
 align-text@^0.1.1, align-text@^0.1.3:
   version "0.1.4"
   resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
+  integrity sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=
   dependencies:
     kind-of "^3.0.2"
     longest "^1.0.1"
@@ -1140,40 +1238,54 @@ align-text@^0.1.1, align-text@^0.1.3:
 alphanum-sort@^1.0.0:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3"
+  integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=
 
 amdefine@>=0.0.4:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
+  integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=
+
+ansi-colors@^3.0.0:
+  version "3.2.3"
+  resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.3.tgz#57d35b8686e851e2cc04c403f1c00203976a1813"
+  integrity sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==
 
 ansi-escapes@^3.0.0:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30"
+  integrity sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==
 
 ansi-html@0.0.7:
   version "0.0.7"
   resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e"
+  integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4=
 
 ansi-regex@^2.0.0:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
+  integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8=
 
 ansi-regex@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
+  integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
 
 ansi-styles@^2.2.1:
   version "2.2.1"
   resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
+  integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=
 
 ansi-styles@^3.2.1:
   version "3.2.1"
   resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
+  integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
   dependencies:
     color-convert "^1.9.0"
 
 anymatch@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb"
+  integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==
   dependencies:
     micromatch "^3.1.4"
     normalize-path "^2.1.1"
@@ -1181,14 +1293,17 @@ anymatch@^2.0.0:
 aproba@^1.0.3, aproba@^1.1.1:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
+  integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
 
 arch@^2.1.0:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/arch/-/arch-2.1.1.tgz#8f5c2731aa35a30929221bb0640eed65175ec84e"
+  integrity sha512-BLM56aPo9vLLFVa8+/+pJLnrZ7QGGTVHWsCwieAWT9o9K8UeGaQbzZbGoabWLOo2ksBCztoXdqBZBplqLDDCSg==
 
 are-we-there-yet@~1.1.2:
   version "1.1.5"
   resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21"
+  integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==
   dependencies:
     delegates "^1.0.0"
     readable-stream "^2.0.6"
@@ -1196,91 +1311,96 @@ are-we-there-yet@~1.1.2:
 argparse@^1.0.7:
   version "1.0.10"
   resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
+  integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
   dependencies:
     sprintf-js "~1.0.2"
 
-arr-diff@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf"
-  dependencies:
-    arr-flatten "^1.0.1"
-
 arr-diff@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
+  integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=
 
-arr-flatten@^1.0.1, arr-flatten@^1.1.0:
+arr-flatten@^1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
+  integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==
 
 arr-union@^3.1.0:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
+  integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=
 
 array-equal@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93"
+  integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=
 
 array-filter@~0.0.0:
   version "0.0.1"
   resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec"
+  integrity sha1-fajPLiZijtcygDWB/SH2fKzS7uw=
 
 array-find-index@^1.0.1:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1"
+  integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=
 
 array-flatten@1.1.1:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
+  integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=
 
 array-flatten@^2.1.0:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.1.tgz#426bb9da84090c1838d812c8150af20a8331e296"
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099"
+  integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==
 
-array-includes@^3.0.3:
-  version "3.0.3"
-  resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d"
-  dependencies:
-    define-properties "^1.1.2"
-    es-abstract "^1.7.0"
+array-from@^2.1.1:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/array-from/-/array-from-2.1.1.tgz#cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195"
+  integrity sha1-z+nYwmYoudxa7MYqn12PHzUsEZU=
 
 array-map@~0.0.0:
   version "0.0.0"
   resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662"
+  integrity sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=
 
 array-reduce@~0.0.0:
   version "0.0.0"
   resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b"
+  integrity sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=
 
 array-union@^1.0.1:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
+  integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=
   dependencies:
     array-uniq "^1.0.1"
 
 array-uniq@^1.0.1:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
-
-array-unique@^0.2.1:
-  version "0.2.1"
-  resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53"
+  integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=
 
 array-unique@^0.3.2:
   version "0.3.2"
   resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
+  integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
 
-arrify@^1.0.0, arrify@^1.0.1:
+arrify@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
+  integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=
 
 asap@~2.0.3:
   version "2.0.6"
   resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
+  integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=
 
 asn1.js@^4.0.0:
   version "4.10.1"
   resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0"
+  integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==
   dependencies:
     bn.js "^4.0.0"
     inherits "^2.0.1"
@@ -1289,60 +1409,73 @@ asn1.js@^4.0.0:
 asn1@~0.2.3:
   version "0.2.4"
   resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136"
+  integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==
   dependencies:
     safer-buffer "~2.1.0"
 
 assert-plus@1.0.0, assert-plus@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
+  integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=
 
 assert@^1.1.1:
   version "1.4.1"
   resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91"
+  integrity sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=
   dependencies:
     util "0.10.3"
 
-assertion-error@^1.0.1:
+assertion-error@^1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b"
+  integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==
 
 assign-symbols@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
+  integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=
 
 async-each@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d"
+  integrity sha1-GdOGodntxufByF04iu28xW0zYC0=
 
 async-foreach@^0.1.3:
   version "0.1.3"
   resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542"
+  integrity sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=
 
 async-limiter@~1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8"
+  integrity sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==
 
 async@^1.5.2:
   version "1.5.2"
   resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
+  integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=
 
 async@^2.3.0:
   version "2.6.1"
   resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610"
+  integrity sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==
   dependencies:
     lodash "^4.17.10"
 
 asynckit@^0.4.0:
   version "0.4.0"
   resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
+  integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
 
 atob@^2.1.1:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.1.tgz#ae2d5a729477f289d60dd7f96a6314a22dd6c22a"
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
+  integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
 
 autoprefixer@^8.6.5:
   version "8.6.5"
   resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-8.6.5.tgz#343f3d193ed568b3208e00117a1b96eb691d4ee9"
+  integrity sha512-PLWJN3Xo/rycNkx+mp8iBDMTm3FeWe4VmYaZDSqL5QQB9sLsQkG5k8n+LNDFnhh9kdq2K+egL/icpctOmDHwig==
   dependencies:
     browserslist "^3.2.8"
     caniuse-lite "^1.0.30000864"
@@ -1354,14 +1487,17 @@ autoprefixer@^8.6.5:
 aws-sign2@~0.7.0:
   version "0.7.0"
   resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
+  integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=
 
-aws4@^1.6.0, aws4@^1.8.0:
+aws4@^1.8.0:
   version "1.8.0"
   resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f"
+  integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==
 
 axios@^0.18.0:
   version "0.18.0"
   resolved "https://registry.yarnpkg.com/axios/-/axios-0.18.0.tgz#32d53e4851efdc0a11993b6cd000789d70c05102"
+  integrity sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=
   dependencies:
     follow-redirects "^1.3.0"
     is-buffer "^1.1.5"
@@ -1369,55 +1505,57 @@ axios@^0.18.0:
 babel-code-frame@^6.22.0, babel-code-frame@^6.26.0:
   version "6.26.0"
   resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
+  integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=
   dependencies:
     chalk "^1.1.3"
     esutils "^2.0.2"
     js-tokens "^3.0.2"
 
-babel-eslint@^8.2.5:
-  version "8.2.6"
-  resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-8.2.6.tgz#6270d0c73205628067c0f7ae1693a9e797acefd9"
+babel-eslint@^10.0.1:
+  version "10.0.1"
+  resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.0.1.tgz#919681dc099614cd7d31d45c8908695092a1faed"
+  integrity sha512-z7OT1iNV+TjOwHNLLyJk+HN+YVWX+CLE6fPD2SymJZOZQBs+QIexFjhm4keGTm8MW9xr4EC9Q0PbaLB24V5GoQ==
   dependencies:
-    "@babel/code-frame" "7.0.0-beta.44"
-    "@babel/traverse" "7.0.0-beta.44"
-    "@babel/types" "7.0.0-beta.44"
-    babylon "7.0.0-beta.44"
+    "@babel/code-frame" "^7.0.0"
+    "@babel/parser" "^7.0.0"
+    "@babel/traverse" "^7.0.0"
+    "@babel/types" "^7.0.0"
     eslint-scope "3.7.1"
     eslint-visitor-keys "^1.0.0"
 
 babel-helper-vue-jsx-merge-props@^2.0.3:
   version "2.0.3"
   resolved "https://registry.yarnpkg.com/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz#22aebd3b33902328e513293a8e4992b384f9f1b6"
+  integrity sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg==
 
-babel-loader@^8.0.0-0:
-  version "8.0.0-beta.4"
-  resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.0-beta.4.tgz#c3fab00696c385c70c04dbe486391f0eb996f345"
+babel-loader@^8.0.4:
+  version "8.0.4"
+  resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.4.tgz#7bbf20cbe4560629e2e41534147692d3fecbdce6"
+  integrity sha512-fhBhNkUToJcW9nV46v8w87AJOwAJDz84c1CL57n3Stj73FANM/b9TbCUK4YhdOwEyZ+OxhYpdeZDNzSI29Firw==
   dependencies:
     find-cache-dir "^1.0.0"
     loader-utils "^1.0.2"
     mkdirp "^0.5.1"
     util.promisify "^1.0.0"
 
-babel-plugin-dynamic-import-node@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.0.0.tgz#d6fc3f6c5e3bdc34e49c15faca7ce069755c0a57"
+babel-plugin-dynamic-import-node@^2.2.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.2.0.tgz#c0adfb07d95f4a4495e9aaac6ec386c4d7c2524e"
+  integrity sha512-fP899ELUnTaBcIzmrW7nniyqqdYWrWuJUyPWHxFa/c7r7hS6KC8FscNfLlBNIoPSc55kYMGEEKjPjJGCLbE1qA==
   dependencies:
-    babel-plugin-syntax-dynamic-import "^6.18.0"
     object.assign "^4.1.0"
 
-babel-plugin-syntax-dynamic-import@^6.18.0:
-  version "6.18.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da"
-
 babel-plugin-transform-vue-jsx@^4.0.1:
   version "4.0.1"
   resolved "https://registry.yarnpkg.com/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-4.0.1.tgz#2c8bddce87a6ef09eaa59869ff1bfbeeafc5f88d"
+  integrity sha512-wbOz7ITB5cloLSjKUU1hWn8zhR+Dwah/RZiTiJY/CQliCwhowmzu6m7NEF+y5EJX/blDzGjRtZvC10Vdb3Q7vw==
   dependencies:
     esutils "^2.0.2"
 
 babel-runtime@^6.18.0, babel-runtime@^6.26.0:
   version "6.26.0"
   resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
+  integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4=
   dependencies:
     core-js "^2.4.0"
     regenerator-runtime "^0.11.0"
@@ -1425,35 +1563,32 @@ babel-runtime@^6.18.0, babel-runtime@^6.26.0:
 babel-types@^6.26.0:
   version "6.26.0"
   resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497"
+  integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=
   dependencies:
     babel-runtime "^6.26.0"
     esutils "^2.0.2"
     lodash "^4.17.4"
     to-fast-properties "^1.0.3"
 
-babylon@7.0.0-beta.44:
-  version "7.0.0-beta.44"
-  resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.44.tgz#89159e15e6e30c5096e22d738d8c0af8a0e8ca1d"
-
-babylon@7.0.0-beta.47:
-  version "7.0.0-beta.47"
-  resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.47.tgz#6d1fa44f0abec41ab7c780481e62fd9aafbdea80"
-
 babylon@^6.18.0:
   version "6.18.0"
   resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
+  integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==
 
 balanced-match@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
+  integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
 
 base64-js@^1.0.2:
   version "1.3.0"
   resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3"
+  integrity sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==
 
 base@^0.11.1:
   version "0.11.2"
   resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
+  integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==
   dependencies:
     cache-base "^1.0.1"
     class-utils "^0.3.5"
@@ -1466,61 +1601,72 @@ base@^0.11.1:
 batch@0.6.1:
   version "0.6.1"
   resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16"
+  integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=
 
 bcrypt-pbkdf@^1.0.0:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"
+  integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=
   dependencies:
     tweetnacl "^0.14.3"
 
-bfj-node4@^5.2.0:
-  version "5.3.1"
-  resolved "https://registry.yarnpkg.com/bfj-node4/-/bfj-node4-5.3.1.tgz#e23d8b27057f1d0214fc561142ad9db998f26830"
+bfj@^6.1.1:
+  version "6.1.1"
+  resolved "https://registry.yarnpkg.com/bfj/-/bfj-6.1.1.tgz#05a3b7784fbd72cfa3c22e56002ef99336516c48"
+  integrity sha512-+GUNvzHR4nRyGybQc2WpNJL4MJazMuvf92ueIyA0bIkPRwhhQu3IfZQ2PSoVPpCBJfmoSdOxu5rnotfFLlvYRQ==
   dependencies:
     bluebird "^3.5.1"
     check-types "^7.3.0"
+    hoopy "^0.1.2"
     tryer "^1.0.0"
 
 big.js@^3.1.3:
   version "3.2.0"
   resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e"
+  integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==
 
 binary-extensions@^1.0.0:
-  version "1.11.0"
-  resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205"
+  version "1.12.0"
+  resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.12.0.tgz#c2d780f53d45bba8317a8902d4ceeaf3a6385b14"
+  integrity sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==
 
 block-stream@*:
   version "0.0.9"
   resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a"
+  integrity sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=
   dependencies:
     inherits "~2.0.0"
 
 bluebird@^3.1.1, bluebird@^3.5.1:
-  version "3.5.1"
-  resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9"
+  version "3.5.3"
+  resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.3.tgz#7d01c6f9616c9a51ab0f8c549a79dfe6ec33efa7"
+  integrity sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==
 
 bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0:
   version "4.11.8"
   resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f"
+  integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==
 
-body-parser@1.18.2:
-  version "1.18.2"
-  resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454"
+body-parser@1.18.3:
+  version "1.18.3"
+  resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz#5b292198ffdd553b3a0f20ded0592b956955c8b4"
+  integrity sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=
   dependencies:
     bytes "3.0.0"
     content-type "~1.0.4"
     debug "2.6.9"
-    depd "~1.1.1"
-    http-errors "~1.6.2"
-    iconv-lite "0.4.19"
+    depd "~1.1.2"
+    http-errors "~1.6.3"
+    iconv-lite "0.4.23"
     on-finished "~2.3.0"
-    qs "6.5.1"
-    raw-body "2.3.2"
-    type-is "~1.6.15"
+    qs "6.5.2"
+    raw-body "2.3.3"
+    type-is "~1.6.16"
 
 bonjour@^3.5.0:
   version "3.5.0"
   resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5"
+  integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU=
   dependencies:
     array-flatten "^2.1.0"
     deep-equal "^1.0.1"
@@ -1532,25 +1678,20 @@ bonjour@^3.5.0:
 boolbase@^1.0.0, boolbase@~1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
+  integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24=
 
 brace-expansion@^1.1.7:
   version "1.1.11"
   resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
+  integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
   dependencies:
     balanced-match "^1.0.0"
     concat-map "0.0.1"
 
-braces@^1.8.2:
-  version "1.8.5"
-  resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7"
-  dependencies:
-    expand-range "^1.8.1"
-    preserve "^0.2.0"
-    repeat-element "^1.1.2"
-
 braces@^2.3.0, braces@^2.3.1:
   version "2.3.2"
   resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729"
+  integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==
   dependencies:
     arr-flatten "^1.1.0"
     array-unique "^0.3.2"
@@ -1566,18 +1707,22 @@ braces@^2.3.0, braces@^2.3.1:
 brorand@^1.0.1:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
+  integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=
 
 browser-process-hrtime@^0.1.2:
-  version "0.1.2"
-  resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.2.tgz#425d68a58d3447f02a04aa894187fce8af8b7b8e"
+  version "0.1.3"
+  resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz#616f00faef1df7ec1b5bf9cfe2bdc3170f26c7b4"
+  integrity sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw==
 
 browser-stdout@1.3.1:
   version "1.3.1"
   resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60"
+  integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==
 
 browserify-aes@^1.0.0, browserify-aes@^1.0.4:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48"
+  integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==
   dependencies:
     buffer-xor "^1.0.3"
     cipher-base "^1.0.0"
@@ -1589,6 +1734,7 @@ browserify-aes@^1.0.0, browserify-aes@^1.0.4:
 browserify-cipher@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0"
+  integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==
   dependencies:
     browserify-aes "^1.0.4"
     browserify-des "^1.0.0"
@@ -1597,6 +1743,7 @@ browserify-cipher@^1.0.0:
 browserify-des@^1.0.0:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c"
+  integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==
   dependencies:
     cipher-base "^1.0.1"
     des.js "^1.0.0"
@@ -1606,6 +1753,7 @@ browserify-des@^1.0.0:
 browserify-rsa@^4.0.0:
   version "4.0.1"
   resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524"
+  integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=
   dependencies:
     bn.js "^4.1.0"
     randombytes "^2.0.1"
@@ -1613,6 +1761,7 @@ browserify-rsa@^4.0.0:
 browserify-sign@^4.0.0:
   version "4.0.4"
   resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298"
+  integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=
   dependencies:
     bn.js "^4.1.1"
     browserify-rsa "^4.0.0"
@@ -1625,39 +1774,46 @@ browserify-sign@^4.0.0:
 browserify-zlib@^0.2.0:
   version "0.2.0"
   resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f"
+  integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==
   dependencies:
     pako "~1.0.5"
 
-browserslist@^3.0.0, browserslist@^3.2.8:
+browserslist@^3.2.8:
   version "3.2.8"
   resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.8.tgz#b0005361d6471f0f5952797a76fc985f1f978fc6"
+  integrity sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==
   dependencies:
     caniuse-lite "^1.0.30000844"
     electron-to-chromium "^1.3.47"
 
-browserslist@^4.0.0:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.0.1.tgz#61c05ce2a5843c7d96166408bc23d58b5416e818"
+browserslist@^4.0.0, browserslist@^4.3.4:
+  version "4.3.6"
+  resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.3.6.tgz#0f9d9081afc66b36f477c6bdf3813f784f42396a"
+  integrity sha512-kMGKs4BTzRWviZ8yru18xBpx+CyHG9eqgRbj9XbE3IMgtczf4aiA0Y1YCpVdvUieKGZ03kolSPXqTcscBCb9qw==
   dependencies:
-    caniuse-lite "^1.0.30000865"
-    electron-to-chromium "^1.3.52"
-    node-releases "^1.0.0-alpha.10"
+    caniuse-lite "^1.0.30000921"
+    electron-to-chromium "^1.3.92"
+    node-releases "^1.1.1"
 
 buffer-from@^1.0.0:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
+  integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
 
 buffer-indexof@^1.0.0:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c"
+  integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==
 
 buffer-xor@^1.0.3:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
+  integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=
 
 buffer@^4.3.0:
   version "4.9.1"
   resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298"
+  integrity sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=
   dependencies:
     base64-js "^1.0.2"
     ieee754 "^1.1.4"
@@ -1666,18 +1822,22 @@ buffer@^4.3.0:
 builtin-modules@^1.0.0:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
+  integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=
 
 builtin-status-codes@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
+  integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=
 
 bytes@3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
+  integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=
 
 cacache@^10.0.4:
   version "10.0.4"
   resolved "https://registry.yarnpkg.com/cacache/-/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460"
+  integrity sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==
   dependencies:
     bluebird "^3.5.1"
     chownr "^1.0.1"
@@ -1693,9 +1853,30 @@ cacache@^10.0.4:
     unique-filename "^1.1.0"
     y18n "^4.0.0"
 
+cacache@^11.0.2:
+  version "11.3.1"
+  resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.1.tgz#d09d25f6c4aca7a6d305d141ae332613aa1d515f"
+  integrity sha512-2PEw4cRRDu+iQvBTTuttQifacYjLPhET+SYO/gEFMy8uhi+jlJREDAjSF5FWSdV/Aw5h18caHA7vMTw2c+wDzA==
+  dependencies:
+    bluebird "^3.5.1"
+    chownr "^1.0.1"
+    figgy-pudding "^3.1.0"
+    glob "^7.1.2"
+    graceful-fs "^4.1.11"
+    lru-cache "^4.1.3"
+    mississippi "^3.0.0"
+    mkdirp "^0.5.1"
+    move-concurrently "^1.0.1"
+    promise-inflight "^1.0.1"
+    rimraf "^2.6.2"
+    ssri "^6.0.0"
+    unique-filename "^1.1.0"
+    y18n "^4.0.0"
+
 cache-base@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2"
+  integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==
   dependencies:
     collection-visit "^1.0.0"
     component-emitter "^1.2.1"
@@ -1707,9 +1888,10 @@ cache-base@^1.0.1:
     union-value "^1.0.0"
     unset-value "^1.0.0"
 
-cache-loader@^1.2.2:
-  version "1.2.2"
-  resolved "https://registry.yarnpkg.com/cache-loader/-/cache-loader-1.2.2.tgz#6d5c38ded959a09cc5d58190ab5af6f73bd353f5"
+cache-loader@^1.2.5:
+  version "1.2.5"
+  resolved "https://registry.yarnpkg.com/cache-loader/-/cache-loader-1.2.5.tgz#9ab15b0ae5f546f376083a695fc1a75f546cb266"
+  integrity sha512-enWKEQ4kO3YreDFd7AtVRjtJBmNiqh/X9hVDReu0C4qm8gsGmySkwuWtdc+N5O+vq5FzxL1mIZc30NyXCB7o/Q==
   dependencies:
     loader-utils "^1.1.0"
     mkdirp "^0.5.1"
@@ -1719,20 +1901,43 @@ cache-loader@^1.2.2:
 call-me-maybe@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b"
+  integrity sha1-JtII6onje1y95gJQoV8DHBak1ms=
+
+caller-callsite@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134"
+  integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=
+  dependencies:
+    callsites "^2.0.0"
 
 caller-path@^0.1.0:
   version "0.1.0"
   resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f"
+  integrity sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=
   dependencies:
     callsites "^0.2.0"
 
+caller-path@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4"
+  integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=
+  dependencies:
+    caller-callsite "^2.0.0"
+
 callsites@^0.2.0:
   version "0.2.0"
   resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca"
+  integrity sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=
+
+callsites@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50"
+  integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=
 
 camel-case@3.0.x:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73"
+  integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=
   dependencies:
     no-case "^2.2.0"
     upper-case "^1.1.1"
@@ -1740,6 +1945,7 @@ camel-case@3.0.x:
 camelcase-keys@^2.0.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7"
+  integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc=
   dependencies:
     camelcase "^2.0.0"
     map-obj "^1.0.0"
@@ -1747,61 +1953,72 @@ camelcase-keys@^2.0.0:
 camelcase@^1.0.2:
   version "1.2.1"
   resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"
+  integrity sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=
 
 camelcase@^2.0.0:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f"
+  integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=
 
 camelcase@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a"
+  integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo=
 
 camelcase@^4.1.0:
   version "4.1.0"
   resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
+  integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=
 
 caniuse-api@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0"
+  integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==
   dependencies:
     browserslist "^4.0.0"
     caniuse-lite "^1.0.0"
     lodash.memoize "^4.1.2"
     lodash.uniq "^4.5.0"
 
-caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30000864, caniuse-lite@^1.0.30000865:
-  version "1.0.30000874"
-  resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000874.tgz#a641b1f1c420d58d9b132920ef6ba87bbdcd2223"
+caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30000864, caniuse-lite@^1.0.30000921:
+  version "1.0.30000923"
+  resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000923.tgz#148f9bda508024b5ce957b463ae2e8302b451bb2"
+  integrity sha512-j5ur7eeluOFjjPUkydtXP4KFAsmH3XaQNch5tvWSO+dLHYt5PE+VgJZLWtbVOodfWij6m6zas28T4gB/cLYq1w==
 
 case-sensitive-paths-webpack-plugin@^2.1.2:
   version "2.1.2"
   resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.1.2.tgz#c899b52175763689224571dad778742e133f0192"
+  integrity sha512-oEZgAFfEvKtjSRCu6VgYkuGxwrWXMnQzyBmlLPP7r6PWQVtHxP5Z5N6XsuJvtoVax78am/r7lr46bwo3IVEBOg==
 
 caseless@~0.12.0:
   version "0.12.0"
   resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
+  integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
 
 center-align@^0.1.1:
   version "0.1.3"
   resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad"
+  integrity sha1-qg0yYptu6XIgBBHL1EYckHvCt60=
   dependencies:
     align-text "^0.1.3"
     lazy-cache "^1.0.3"
 
 chai@^4.1.2:
-  version "4.1.2"
-  resolved "https://registry.yarnpkg.com/chai/-/chai-4.1.2.tgz#0f64584ba642f0f2ace2806279f4f06ca23ad73c"
+  version "4.2.0"
+  resolved "https://registry.yarnpkg.com/chai/-/chai-4.2.0.tgz#760aa72cf20e3795e84b12877ce0e83737aa29e5"
+  integrity sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==
   dependencies:
-    assertion-error "^1.0.1"
-    check-error "^1.0.1"
-    deep-eql "^3.0.0"
+    assertion-error "^1.1.0"
+    check-error "^1.0.2"
+    deep-eql "^3.0.1"
     get-func-name "^2.0.0"
-    pathval "^1.0.0"
-    type-detect "^4.0.0"
+    pathval "^1.1.0"
+    type-detect "^4.0.5"
 
 chalk@^1.1.1, chalk@^1.1.3:
   version "1.1.3"
   resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
+  integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=
   dependencies:
     ansi-styles "^2.2.1"
     escape-string-regexp "^1.0.2"
@@ -1809,9 +2026,10 @@ chalk@^1.1.1, chalk@^1.1.3:
     strip-ansi "^3.0.0"
     supports-color "^2.0.0"
 
-chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.1, chalk@^2.3.2, chalk@^2.4.1:
+chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.1, chalk@^2.4.1:
   version "2.4.1"
   resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e"
+  integrity sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==
   dependencies:
     ansi-styles "^3.2.1"
     escape-string-regexp "^1.0.5"
@@ -1820,24 +2038,29 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.1, chalk@^2.3
 character-parser@^2.1.1:
   version "2.2.0"
   resolved "https://registry.yarnpkg.com/character-parser/-/character-parser-2.2.0.tgz#c7ce28f36d4bcd9744e5ffc2c5fcde1c73261fc0"
+  integrity sha1-x84o821LzZdE5f/CxfzeHHMmH8A=
   dependencies:
     is-regex "^1.0.3"
 
 chardet@^0.4.0:
   version "0.4.2"
   resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2"
+  integrity sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=
 
-check-error@^1.0.1:
+check-error@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82"
+  integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=
 
 check-types@^7.3.0:
   version "7.4.0"
   resolved "https://registry.yarnpkg.com/check-types/-/check-types-7.4.0.tgz#0378ec1b9616ec71f774931a3c6516fad8c152f4"
+  integrity sha512-YbulWHdfP99UfZ73NcUDlNJhEIDgm9Doq9GhpyXbF+7Aegi3CVV7qqMCKTTqJxlvEvnQBp9IA+dxsGN6xK/nSg==
 
 cheerio@^1.0.0-rc.2:
   version "1.0.0-rc.2"
   resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.2.tgz#4b9f53a81b27e4d5dac31c0ffd0cfa03cc6830db"
+  integrity sha1-S59TqBsn5NXawxwP/Qz6A8xoMNs=
   dependencies:
     css-select "~1.2.0"
     dom-serializer "~0.1.0"
@@ -1849,6 +2072,7 @@ cheerio@^1.0.0-rc.2:
 chokidar@^2.0.0, chokidar@^2.0.2:
   version "2.0.4"
   resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.4.tgz#356ff4e2b0e8e43e322d18a372460bbcf3accd26"
+  integrity sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==
   dependencies:
     anymatch "^2.0.0"
     async-each "^1.0.0"
@@ -1865,23 +2089,27 @@ chokidar@^2.0.0, chokidar@^2.0.2:
   optionalDependencies:
     fsevents "^1.2.2"
 
-chownr@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181"
+chownr@^1.0.1, chownr@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494"
+  integrity sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==
 
 chrome-trace-event@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz#45a91bd2c20c9411f0963b5aaeb9a1b95e09cc48"
+  integrity sha512-xDbVgyfDTT2piup/h8dK/y4QZfJRSa73bw1WZ8b4XM1o7fsFubUVGYcE+1ANtOzJJELGpYoG2961z0Z6OAld9A==
   dependencies:
     tslib "^1.9.0"
 
-ci-info@^1.0.0:
-  version "1.1.3"
-  resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.1.3.tgz#710193264bb05c77b8c90d02f5aaf22216a667b2"
+ci-info@^1.5.0:
+  version "1.6.0"
+  resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497"
+  integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==
 
 cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de"
+  integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==
   dependencies:
     inherits "^2.0.1"
     safe-buffer "^5.0.1"
@@ -1889,45 +2117,46 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
 circular-json@^0.3.1:
   version "0.3.3"
   resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66"
+  integrity sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==
 
 class-utils@^0.3.5:
   version "0.3.6"
   resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463"
+  integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==
   dependencies:
     arr-union "^3.1.0"
     define-property "^0.2.5"
     isobject "^3.0.0"
     static-extend "^0.1.1"
 
-clean-css@4.1.x:
-  version "4.1.11"
-  resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.1.11.tgz#2ecdf145aba38f54740f26cefd0ff3e03e125d6a"
-  dependencies:
-    source-map "0.5.x"
-
-clean-css@^4.1.11:
+clean-css@4.2.x, clean-css@^4.1.11:
   version "4.2.1"
   resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.1.tgz#2d411ef76b8569b6d0c84068dabe85b0aa5e5c17"
+  integrity sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==
   dependencies:
     source-map "~0.6.0"
 
 cli-cursor@^2.1.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
+  integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=
   dependencies:
     restore-cursor "^2.0.0"
 
 cli-spinners@^1.1.0:
   version "1.3.1"
   resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-1.3.1.tgz#002c1990912d0d59580c93bd36c056de99e4259a"
+  integrity sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==
 
 cli-width@^2.0.0:
   version "2.2.0"
   resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
+  integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=
 
 clipboardy@^1.2.3:
   version "1.2.3"
   resolved "https://registry.yarnpkg.com/clipboardy/-/clipboardy-1.2.3.tgz#0526361bf78724c1f20be248d428e365433c07ef"
+  integrity sha512-2WNImOvCRe6r63Gk9pShfkwXsVtKCroMAevIbiae021mS850UkWPbevxsBz3tnvjZIEGvlwaqCPsw+4ulzNgJA==
   dependencies:
     arch "^2.1.0"
     execa "^0.8.0"
@@ -1935,6 +2164,7 @@ clipboardy@^1.2.3:
 cliui@^2.1.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1"
+  integrity sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=
   dependencies:
     center-align "^0.1.1"
     right-align "^0.1.1"
@@ -1943,6 +2173,7 @@ cliui@^2.1.0:
 cliui@^3.2.0:
   version "3.2.0"
   resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d"
+  integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=
   dependencies:
     string-width "^1.0.1"
     strip-ansi "^3.0.1"
@@ -1951,6 +2182,7 @@ cliui@^3.2.0:
 cliui@^4.0.0, cliui@^4.1.0:
   version "4.1.0"
   resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49"
+  integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==
   dependencies:
     string-width "^2.1.1"
     strip-ansi "^4.0.0"
@@ -1959,6 +2191,7 @@ cliui@^4.0.0, cliui@^4.1.0:
 clone-deep@^2.0.1:
   version "2.0.2"
   resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-2.0.2.tgz#00db3a1e173656730d1188c3d6aced6d7ea97713"
+  integrity sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==
   dependencies:
     for-own "^1.0.0"
     is-plain-object "^2.0.4"
@@ -1968,52 +2201,64 @@ clone-deep@^2.0.1:
 clone@^1.0.2:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
+  integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4=
 
 co@^4.6.0:
   version "4.6.0"
   resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
+  integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=
 
 coa@~2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.1.tgz#f3f8b0b15073e35d70263fb1042cb2c023db38af"
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3"
+  integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==
   dependencies:
+    "@types/q" "^1.5.1"
+    chalk "^2.4.1"
     q "^1.1.2"
 
 code-point-at@^1.0.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
+  integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=
 
 collection-visit@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0"
+  integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=
   dependencies:
     map-visit "^1.0.0"
     object-visit "^1.0.0"
 
 color-convert@^1.9.0, color-convert@^1.9.1:
-  version "1.9.2"
-  resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.2.tgz#49881b8fba67df12a96bdf3f56c0aab9e7913147"
+  version "1.9.3"
+  resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
+  integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
   dependencies:
-    color-name "1.1.1"
+    color-name "1.1.3"
 
-color-name@1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.1.tgz#4b1415304cf50028ea81643643bd82ea05803689"
-
-color-name@^1.0.0:
+color-name@1.1.3:
   version "1.1.3"
   resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
+  integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
+
+color-name@^1.0.0:
+  version "1.1.4"
+  resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
+  integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
 
 color-string@^1.5.2:
   version "1.5.3"
   resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc"
+  integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==
   dependencies:
     color-name "^1.0.0"
     simple-swizzle "^0.2.2"
 
 color@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/color/-/color-3.0.0.tgz#d920b4328d534a3ac8295d68f7bd4ba6c427be9a"
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/color/-/color-3.1.0.tgz#d8e9fb096732875774c84bf922815df0308d0ffc"
+  integrity sha512-CwyopLkuRYO5ei2EpzpIh6LqJMt6Mt+jZhO5VI5f/wJLZriXQE32/SSqzmrh+QB+AZT81Cj8yv+7zwToW8ahZg==
   dependencies:
     color-convert "^1.9.1"
     color-string "^1.5.2"
@@ -2021,46 +2266,51 @@ color@^3.0.0:
 colors@~1.1.2:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63"
+  integrity sha1-FopHAXVran9RoSzgyXv6KMCE7WM=
 
-combined-stream@1.0.6, combined-stream@~1.0.5, combined-stream@~1.0.6:
-  version "1.0.6"
-  resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818"
+combined-stream@^1.0.6, combined-stream@~1.0.6:
+  version "1.0.7"
+  resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.7.tgz#2d1d24317afb8abe95d6d2c0b07b57813539d828"
+  integrity sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==
   dependencies:
     delayed-stream "~1.0.0"
 
 commander@2.15.1:
   version "2.15.1"
   resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f"
+  integrity sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==
 
-commander@2.16.x, commander@~2.16.0:
-  version "2.16.0"
-  resolved "https://registry.yarnpkg.com/commander/-/commander-2.16.0.tgz#f16390593996ceb4f3eeb020b31d78528f7f8a50"
-
-commander@^2.13.0:
+commander@2.17.x, commander@~2.17.1:
   version "2.17.1"
   resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf"
+  integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==
 
-commander@~2.13.0:
-  version "2.13.0"
-  resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c"
+commander@^2.18.0, commander@^2.19.0:
+  version "2.19.0"
+  resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a"
+  integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==
 
 commondir@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
+  integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=
 
 component-emitter@^1.2.1:
   version "1.2.1"
   resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6"
+  integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=
 
 compressible@~2.0.14:
-  version "2.0.14"
-  resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.14.tgz#326c5f507fbb055f54116782b969a81b67a29da7"
+  version "2.0.15"
+  resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.15.tgz#857a9ab0a7e5a07d8d837ed43fe2defff64fe212"
+  integrity sha512-4aE67DL33dSW9gw4CI2H/yTxqHLNcxp0yS6jB+4h+wr3e43+1z7vm0HU9qXOH8j+qjKuL8+UtkOxYQSMq60Ylw==
   dependencies:
-    mime-db ">= 1.34.0 < 2"
+    mime-db ">= 1.36.0 < 2"
 
 compression@^1.5.2:
   version "1.7.3"
   resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.3.tgz#27e0e176aaf260f7f2c2813c3e440adb9f1993db"
+  integrity sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==
   dependencies:
     accepts "~1.3.5"
     bytes "3.0.0"
@@ -2073,10 +2323,12 @@ compression@^1.5.2:
 concat-map@0.0.1:
   version "0.0.1"
   resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+  integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
 
 concat-stream@^1.5.0, concat-stream@^1.6.0:
   version "1.6.2"
   resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
+  integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==
   dependencies:
     buffer-from "^1.0.0"
     inherits "^2.0.3"
@@ -2086,26 +2338,31 @@ concat-stream@^1.5.0, concat-stream@^1.6.0:
 connect-history-api-fallback@^1.3.0:
   version "1.5.0"
   resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz#b06873934bc5e344fef611a196a6faae0aee015a"
+  integrity sha1-sGhzk0vF40T+9hGhlqb6rgruAVo=
 
 console-browserify@^1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10"
+  integrity sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=
   dependencies:
     date-now "^0.1.4"
 
 console-control-strings@^1.0.0, console-control-strings@~1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
+  integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=
 
 consolidate@^0.15.1:
   version "0.15.1"
   resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.15.1.tgz#21ab043235c71a07d45d9aad98593b0dba56bab7"
+  integrity sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==
   dependencies:
     bluebird "^3.1.1"
 
 constantinople@^3.0.1:
   version "3.1.2"
   resolved "https://registry.yarnpkg.com/constantinople/-/constantinople-3.1.2.tgz#d45ed724f57d3d10500017a7d3a889c1381ae647"
+  integrity sha512-yePcBqEFhLOqSBtwYOGGS1exHo/s1xjekXiinh4itpNQGCu4KA1euPh1fg07N2wMITZXQkBz75Ntdt1ctGZouw==
   dependencies:
     "@types/babel-types" "^7.0.0"
     "@types/babylon" "^6.16.2"
@@ -2115,30 +2372,39 @@ constantinople@^3.0.1:
 constants-browserify@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
+  integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=
 
 content-disposition@0.5.2:
   version "0.5.2"
   resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4"
+  integrity sha1-DPaLud318r55YcOoUXjLhdunjLQ=
 
 content-type@~1.0.4:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
+  integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
 
 convert-source-map@^1.1.0:
-  version "1.5.1"
-  resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5"
+  version "1.6.0"
+  resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20"
+  integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==
+  dependencies:
+    safe-buffer "~5.1.1"
 
 cookie-signature@1.0.6:
   version "1.0.6"
   resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
+  integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw=
 
 cookie@0.3.1:
   version "0.3.1"
   resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb"
+  integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=
 
 copy-concurrently@^1.0.0:
   version "1.0.5"
   resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0"
+  integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==
   dependencies:
     aproba "^1.1.1"
     fs-write-stream-atomic "^1.0.8"
@@ -2150,10 +2416,12 @@ copy-concurrently@^1.0.0:
 copy-descriptor@^0.1.0:
   version "0.1.1"
   resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
+  integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
 
-copy-webpack-plugin@^4.5.2:
-  version "4.5.2"
-  resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-4.5.2.tgz#d53444a8fea2912d806e78937390ddd7e632ee5c"
+copy-webpack-plugin@^4.6.0:
+  version "4.6.0"
+  resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-4.6.0.tgz#e7f40dd8a68477d405dd1b7a854aae324b158bae"
+  integrity sha512-Y+SQCF+0NoWQryez2zXn5J5knmr9z/9qSQt7fbL78u83rxmigOy8X5+BFn8CFSuX+nKT8gpYwJX68ekqtQt6ZA==
   dependencies:
     cacache "^10.0.4"
     find-cache-dir "^1.0.0"
@@ -2164,17 +2432,20 @@ copy-webpack-plugin@^4.5.2:
     p-limit "^1.0.0"
     serialize-javascript "^1.4.0"
 
-core-js@^2.4.0, core-js@^2.5.3:
-  version "2.5.7"
-  resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e"
+core-js@^2.4.0, core-js@^2.5.7:
+  version "2.6.1"
+  resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.1.tgz#87416ae817de957a3f249b3b5ca475d4aaed6042"
+  integrity sha512-L72mmmEayPJBejKIWe2pYtGis5r0tQ5NaJekdhyXgeMQTpJoBsH0NL4ElY2LfSoV15xeQWKQ+XTTOZdyero5Xg==
 
 core-util-is@1.0.2, core-util-is@~1.0.0:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
+  integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
 
 cosmiconfig@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-4.0.0.tgz#760391549580bbd2df1e562bc177b13c290972dc"
+  integrity sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ==
   dependencies:
     is-directory "^0.3.1"
     js-yaml "^3.9.0"
@@ -2182,9 +2453,11 @@ cosmiconfig@^4.0.0:
     require-from-string "^2.0.1"
 
 cosmiconfig@^5.0.0:
-  version "5.0.6"
-  resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.6.tgz#dca6cf680a0bd03589aff684700858c81abeeb39"
+  version "5.0.7"
+  resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.7.tgz#39826b292ee0d78eda137dfa3173bd1c21a43b04"
+  integrity sha512-PcLqxTKiDmNT6pSpy4N6KtuPwb53W+2tzNvwOZw0WH9N6O0vLIBq0x8aj8Oj75ere4YcGi48bDFCL+3fRJdlNA==
   dependencies:
+    import-fresh "^2.0.0"
     is-directory "^0.3.1"
     js-yaml "^3.9.0"
     parse-json "^4.0.0"
@@ -2192,6 +2465,7 @@ cosmiconfig@^5.0.0:
 create-ecdh@^4.0.0:
   version "4.0.3"
   resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff"
+  integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==
   dependencies:
     bn.js "^4.1.0"
     elliptic "^6.0.0"
@@ -2199,6 +2473,7 @@ create-ecdh@^4.0.0:
 create-hash@^1.1.0, create-hash@^1.1.2:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196"
+  integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==
   dependencies:
     cipher-base "^1.0.1"
     inherits "^2.0.1"
@@ -2209,6 +2484,7 @@ create-hash@^1.1.0, create-hash@^1.1.2:
 create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4:
   version "1.1.7"
   resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff"
+  integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==
   dependencies:
     cipher-base "^1.0.3"
     create-hash "^1.1.0"
@@ -2220,6 +2496,7 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4:
 cross-spawn@^3.0.0:
   version "3.0.1"
   resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982"
+  integrity sha1-ElYDfsufDF9549bvE14wdwGEuYI=
   dependencies:
     lru-cache "^4.0.1"
     which "^1.2.9"
@@ -2227,6 +2504,7 @@ cross-spawn@^3.0.0:
 cross-spawn@^5.0.1, cross-spawn@^5.1.0:
   version "5.1.0"
   resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
+  integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=
   dependencies:
     lru-cache "^4.0.1"
     shebang-command "^1.2.0"
@@ -2235,6 +2513,7 @@ cross-spawn@^5.0.1, cross-spawn@^5.1.0:
 cross-spawn@^6.0.0:
   version "6.0.5"
   resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
+  integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==
   dependencies:
     nice-try "^1.0.4"
     path-key "^2.0.1"
@@ -2245,6 +2524,7 @@ cross-spawn@^6.0.0:
 crypto-browserify@^3.11.0:
   version "3.12.0"
   resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec"
+  integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==
   dependencies:
     browserify-cipher "^1.0.0"
     browserify-sign "^4.0.0"
@@ -2261,23 +2541,26 @@ crypto-browserify@^3.11.0:
 css-color-names@0.0.4, css-color-names@^0.0.4:
   version "0.0.4"
   resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0"
+  integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=
 
-css-declaration-sorter@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-3.0.1.tgz#d0e3056b0fd88dc1ea9dceff435adbe9c702a7f8"
+css-declaration-sorter@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22"
+  integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==
   dependencies:
-    postcss "^6.0.0"
+    postcss "^7.0.1"
     timsort "^0.3.0"
 
-css-loader@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-1.0.0.tgz#9f46aaa5ca41dbe31860e3b62b8e23c42916bf56"
+css-loader@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-1.0.1.tgz#6885bb5233b35ec47b006057da01cc640b6b79fe"
+  integrity sha512-+ZHAZm/yqvJ2kDtPne3uX0C+Vr3Zn5jFn2N4HywtS5ujwvsVkyg0VArEXpl3BgczDA8anieki1FIzhchX4yrDw==
   dependencies:
     babel-code-frame "^6.26.0"
     css-selector-tokenizer "^0.7.0"
     icss-utils "^2.1.0"
     loader-utils "^1.0.2"
-    lodash.camelcase "^4.3.0"
+    lodash "^4.17.11"
     postcss "^6.0.23"
     postcss-modules-extract-imports "^1.2.0"
     postcss-modules-local-by-default "^1.2.0"
@@ -2287,278 +2570,340 @@ css-loader@^1.0.0:
     source-list-map "^2.0.0"
 
 css-select-base-adapter@~0.1.0:
-  version "0.1.0"
-  resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.0.tgz#0102b3d14630df86c3eb9fa9f5456270106cf990"
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7"
+  integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==
 
 css-select@^1.1.0, css-select@~1.2.0:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858"
+  integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=
   dependencies:
     boolbase "~1.0.0"
     css-what "2.1"
     domutils "1.5.1"
     nth-check "~1.0.1"
 
-css-select@~1.3.0-rc0:
-  version "1.3.0-rc0"
-  resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.3.0-rc0.tgz#6f93196aaae737666ea1036a8cb14a8fcb7a9231"
+css-select@^2.0.0:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.0.2.tgz#ab4386cec9e1f668855564b17c3733b43b2a5ede"
+  integrity sha512-dSpYaDVoWaELjvZ3mS6IKZM/y2PMPa/XYoEfYNZePL4U/XgyxZNroHEHReDx/d+VgXh9VbCTtFqLkFbmeqeaRQ==
   dependencies:
     boolbase "^1.0.0"
-    css-what "2.1"
-    domutils "1.5.1"
-    nth-check "^1.0.1"
+    css-what "^2.1.2"
+    domutils "^1.7.0"
+    nth-check "^1.0.2"
 
 css-selector-tokenizer@^0.7.0:
-  version "0.7.0"
-  resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz#e6988474ae8c953477bf5e7efecfceccd9cf4c86"
+  version "0.7.1"
+  resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz#a177271a8bca5019172f4f891fc6eed9cbf68d5d"
+  integrity sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA==
   dependencies:
     cssesc "^0.1.0"
     fastparse "^1.1.1"
     regexpu-core "^1.0.0"
 
-css-tree@1.0.0-alpha.29:
-  version "1.0.0-alpha.29"
-  resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.29.tgz#3fa9d4ef3142cbd1c301e7664c1f352bd82f5a39"
+css-tree@1.0.0-alpha.28:
+  version "1.0.0-alpha.28"
+  resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.28.tgz#8e8968190d886c9477bc8d61e96f61af3f7ffa7f"
+  integrity sha512-joNNW1gCp3qFFzj4St6zk+Wh/NBv0vM5YbEreZk0SD4S23S+1xBKb6cLDg2uj4P4k/GUMlIm6cKIDqIG+vdt0w==
   dependencies:
     mdn-data "~1.1.0"
     source-map "^0.5.3"
 
-css-tree@1.0.0-alpha25:
-  version "1.0.0-alpha25"
-  resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha25.tgz#1bbfabfbf6eeef4f01d9108ff2edd0be2fe35597"
+css-tree@1.0.0-alpha.29:
+  version "1.0.0-alpha.29"
+  resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.29.tgz#3fa9d4ef3142cbd1c301e7664c1f352bd82f5a39"
+  integrity sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg==
   dependencies:
-    mdn-data "^1.0.0"
+    mdn-data "~1.1.0"
     source-map "^0.5.3"
 
 css-unit-converter@^1.1.1:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.1.tgz#d9b9281adcfd8ced935bdbaba83786897f64e996"
+  integrity sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=
 
 css-url-regex@^1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/css-url-regex/-/css-url-regex-1.1.0.tgz#83834230cc9f74c457de59eebd1543feeb83b7ec"
+  integrity sha1-g4NCMMyfdMRX3lnuvRVD/uuDt+w=
 
-css-what@2.1:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd"
+css-what@2.1, css-what@^2.1.2:
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.2.tgz#c0876d9d0480927d7d4920dcd72af3595649554d"
+  integrity sha512-wan8dMWQ0GUeF7DGEPVjhHemVW/vy6xUYmFzRY8RYqgA0JtXC9rJmbScBjqSu6dg9q0lwPQy6ZAmJVr3PPTvqQ==
 
 cssesc@^0.1.0:
   version "0.1.0"
   resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4"
+  integrity sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=
 
-cssnano-preset-default@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.0.tgz#c334287b4f7d49fb2d170a92f9214655788e3b6b"
-  dependencies:
-    css-declaration-sorter "^3.0.0"
-    cssnano-util-raw-cache "^4.0.0"
-    postcss "^6.0.0"
-    postcss-calc "^6.0.0"
-    postcss-colormin "^4.0.0"
-    postcss-convert-values "^4.0.0"
-    postcss-discard-comments "^4.0.0"
-    postcss-discard-duplicates "^4.0.0"
-    postcss-discard-empty "^4.0.0"
-    postcss-discard-overridden "^4.0.0"
-    postcss-merge-longhand "^4.0.0"
-    postcss-merge-rules "^4.0.0"
-    postcss-minify-font-values "^4.0.0"
-    postcss-minify-gradients "^4.0.0"
-    postcss-minify-params "^4.0.0"
-    postcss-minify-selectors "^4.0.0"
-    postcss-normalize-charset "^4.0.0"
-    postcss-normalize-display-values "^4.0.0"
-    postcss-normalize-positions "^4.0.0"
-    postcss-normalize-repeat-style "^4.0.0"
-    postcss-normalize-string "^4.0.0"
-    postcss-normalize-timing-functions "^4.0.0"
-    postcss-normalize-unicode "^4.0.0"
-    postcss-normalize-url "^4.0.0"
-    postcss-normalize-whitespace "^4.0.0"
-    postcss-ordered-values "^4.0.0"
-    postcss-reduce-initial "^4.0.0"
-    postcss-reduce-transforms "^4.0.0"
-    postcss-svgo "^4.0.0"
-    postcss-unique-selectors "^4.0.0"
+cssesc@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703"
+  integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==
+
+cssnano-preset-default@^4.0.0, cssnano-preset-default@^4.0.5:
+  version "4.0.5"
+  resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.5.tgz#d1756c0259d98ad311e601ba76e95c60f6771ac1"
+  integrity sha512-f1uhya0ZAjPYtDD58QkBB0R+uYdzHPei7cDxJyQQIHt5acdhyGXaSXl2nDLzWHLwGFbZcHxQtkJS8mmNwnxTvw==
+  dependencies:
+    css-declaration-sorter "^4.0.1"
+    cssnano-util-raw-cache "^4.0.1"
+    postcss "^7.0.0"
+    postcss-calc "^7.0.0"
+    postcss-colormin "^4.0.2"
+    postcss-convert-values "^4.0.1"
+    postcss-discard-comments "^4.0.1"
+    postcss-discard-duplicates "^4.0.2"
+    postcss-discard-empty "^4.0.1"
+    postcss-discard-overridden "^4.0.1"
+    postcss-merge-longhand "^4.0.9"
+    postcss-merge-rules "^4.0.2"
+    postcss-minify-font-values "^4.0.2"
+    postcss-minify-gradients "^4.0.1"
+    postcss-minify-params "^4.0.1"
+    postcss-minify-selectors "^4.0.1"
+    postcss-normalize-charset "^4.0.1"
+    postcss-normalize-display-values "^4.0.1"
+    postcss-normalize-positions "^4.0.1"
+    postcss-normalize-repeat-style "^4.0.1"
+    postcss-normalize-string "^4.0.1"
+    postcss-normalize-timing-functions "^4.0.1"
+    postcss-normalize-unicode "^4.0.1"
+    postcss-normalize-url "^4.0.1"
+    postcss-normalize-whitespace "^4.0.1"
+    postcss-ordered-values "^4.1.1"
+    postcss-reduce-initial "^4.0.2"
+    postcss-reduce-transforms "^4.0.1"
+    postcss-svgo "^4.0.1"
+    postcss-unique-selectors "^4.0.1"
 
 cssnano-util-get-arguments@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f"
+  integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=
 
 cssnano-util-get-match@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d"
+  integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=
 
-cssnano-util-raw-cache@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.0.tgz#be0a2856e25f185f5f7a2bcc0624e28b7f179a9f"
+cssnano-util-raw-cache@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282"
+  integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==
   dependencies:
-    postcss "^6.0.0"
+    postcss "^7.0.0"
 
 cssnano-util-same-parent@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.0.tgz#d2a3de1039aa98bc4ec25001fa050330c2a16dac"
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3"
+  integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==
 
-cssnano@^4.0.0:
-  version "4.0.5"
-  resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.0.5.tgz#8789b5fdbe7be05d8a0f7e45c4c789ebe712f5aa"
+cssnano@^4.0.0, cssnano@^4.1.7:
+  version "4.1.7"
+  resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.7.tgz#0bf112294bec103ab5f68d3f805732c8325a0b1b"
+  integrity sha512-AiXL90l+MDuQmRNyypG2P7ux7K4XklxYzNNUd5HXZCNcH8/N9bHPcpN97v8tXgRVeFL/Ed8iP8mVmAAu0ZpT7A==
   dependencies:
     cosmiconfig "^5.0.0"
-    cssnano-preset-default "^4.0.0"
+    cssnano-preset-default "^4.0.5"
     is-resolvable "^1.0.0"
-    postcss "^6.0.0"
+    postcss "^7.0.0"
 
 csso@^3.5.0:
   version "3.5.1"
   resolved "https://registry.yarnpkg.com/csso/-/csso-3.5.1.tgz#7b9eb8be61628973c1b261e169d2f024008e758b"
+  integrity sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg==
   dependencies:
     css-tree "1.0.0-alpha.29"
 
-cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0":
+cssom@0.3.x, cssom@^0.3.4:
   version "0.3.4"
   resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.4.tgz#8cd52e8a3acfd68d3aed38ee0a640177d2f9d797"
+  integrity sha512-+7prCSORpXNeR4/fUP3rL+TzqtiFfhMvTd7uEqMdgPvLPt4+uzFUeufx5RHjGTACCargg/DiEt/moMQmvnfkog==
 
-cssstyle@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.0.0.tgz#79b16d51ec5591faec60e688891f15d2a5705129"
+cssstyle@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.1.1.tgz#18b038a9c44d65f7a8e428a653b9f6fe42faf5fb"
+  integrity sha512-364AI1l/M5TYcFH83JnOH/pSqgaNnKmYgKrm0didZMGKWjQB60dymwWy1rKUgL3J1ffdq9xVi2yGLHdSjjSNog==
   dependencies:
     cssom "0.3.x"
 
 currently-unhandled@^0.4.1:
   version "0.4.1"
   resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea"
+  integrity sha1-mI3zP+qxke95mmE2nddsF635V+o=
   dependencies:
     array-find-index "^1.0.1"
 
+custom-event-polyfill@^1.0.6:
+  version "1.0.6"
+  resolved "https://registry.yarnpkg.com/custom-event-polyfill/-/custom-event-polyfill-1.0.6.tgz#6b026e81cd9f7bc896bd6b016a427407bb068db1"
+  integrity sha512-3FxpFlzGcHrDykwWu+xWVXZ8PfykM/9/bI3zXb953sh+AjInZWcQmrnmvPoZgiqNjmbtTm10PWvYqvRW527x6g==
+
 cyclist@~0.2.2:
   version "0.2.2"
   resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640"
-
-d@1:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f"
-  dependencies:
-    es5-ext "^0.10.9"
+  integrity sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=
 
 dashdash@^1.12.0:
   version "1.14.1"
   resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
+  integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=
   dependencies:
     assert-plus "^1.0.0"
 
-data-urls@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.0.0.tgz#24802de4e81c298ea8a9388bb0d8e461c774684f"
+data-urls@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe"
+  integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==
   dependencies:
-    abab "^1.0.4"
-    whatwg-mimetype "^2.0.0"
-    whatwg-url "^6.4.0"
+    abab "^2.0.0"
+    whatwg-mimetype "^2.2.0"
+    whatwg-url "^7.0.0"
 
 date-now@^0.1.4:
   version "0.1.4"
   resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b"
+  integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=
 
 dateformat@^3.0.3:
   version "3.0.3"
   resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae"
+  integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==
 
 de-indent@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d"
+  integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=
 
-debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.6, debug@^2.6.8:
+debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8:
   version "2.6.9"
   resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
+  integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
   dependencies:
     ms "2.0.0"
 
-debug@3.1.0, debug@^3.1.0:
+debug@3.1.0, debug@=3.1.0:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
+  integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
   dependencies:
     ms "2.0.0"
 
+debug@^3.1.0, debug@^3.2.5:
+  version "3.2.6"
+  resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
+  integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==
+  dependencies:
+    ms "^2.1.1"
+
+debug@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.0.tgz#373687bffa678b38b1cd91f861b63850035ddc87"
+  integrity sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==
+  dependencies:
+    ms "^2.1.1"
+
 decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
+  integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
+
+decamelize@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-2.0.0.tgz#656d7bbc8094c4c788ea53c5840908c9c7d063c7"
+  integrity sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg==
+  dependencies:
+    xregexp "4.0.0"
 
 decode-uri-component@^0.2.0:
   version "0.2.0"
   resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
+  integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
 
-deep-eql@^3.0.0:
+deep-eql@^3.0.1:
   version "3.0.1"
   resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df"
+  integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==
   dependencies:
     type-detect "^4.0.0"
 
 deep-equal@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
+  integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=
 
 deep-extend@^0.6.0:
   version "0.6.0"
   resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
+  integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
 
 deep-is@~0.1.3:
   version "0.1.3"
   resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
+  integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
 
 deepmerge@^1.5.2:
   version "1.5.2"
   resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-1.5.2.tgz#10499d868844cdad4fee0842df8c7f6f0c95a753"
+  integrity sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==
 
 deepmerge@^2.1.0:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.1.1.tgz#e862b4e45ea0555072bf51e7fd0d9845170ae768"
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.2.1.tgz#5d3ff22a01c00f645405a2fbc17d0778a1801170"
+  integrity sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==
+
+default-gateway@^2.6.0:
+  version "2.7.2"
+  resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-2.7.2.tgz#b7ef339e5e024b045467af403d50348db4642d0f"
+  integrity sha512-lAc4i9QJR0YHSDFdzeBQKfZ1SRDG3hsJNEkrpcZa8QhBfidLAilT60BDEIVUUGqosFp425KOgB3uYqcnQrWafQ==
+  dependencies:
+    execa "^0.10.0"
+    ip-regex "^2.1.0"
 
 defaults@^1.0.3:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d"
+  integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=
   dependencies:
     clone "^1.0.2"
 
 define-properties@^1.1.2:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94"
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
+  integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
   dependencies:
-    foreach "^2.0.5"
-    object-keys "^1.0.8"
+    object-keys "^1.0.12"
 
 define-property@^0.2.5:
   version "0.2.5"
   resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116"
+  integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=
   dependencies:
     is-descriptor "^0.1.0"
 
 define-property@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6"
+  integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY=
   dependencies:
     is-descriptor "^1.0.0"
 
 define-property@^2.0.2:
   version "2.0.2"
   resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d"
+  integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==
   dependencies:
     is-descriptor "^1.0.2"
     isobject "^3.0.1"
 
-del@^2.0.2:
-  version "2.2.2"
-  resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8"
-  dependencies:
-    globby "^5.0.0"
-    is-path-cwd "^1.0.0"
-    is-path-in-cwd "^1.0.0"
-    object-assign "^4.0.1"
-    pify "^2.0.0"
-    pinkie-promise "^2.0.0"
-    rimraf "^2.2.8"
-
 del@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5"
+  integrity sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=
   dependencies:
     globby "^6.1.0"
     is-path-cwd "^1.0.0"
@@ -2570,22 +2915,22 @@ del@^3.0.0:
 delayed-stream@~1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
+  integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
 
 delegates@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
+  integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=
 
-depd@1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359"
-
-depd@~1.1.1, depd@~1.1.2:
+depd@~1.1.2:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
+  integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=
 
 des.js@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc"
+  integrity sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=
   dependencies:
     inherits "^2.0.1"
     minimalistic-assert "^1.0.0"
@@ -2593,26 +2938,32 @@ des.js@^1.0.0:
 desandro-matches-selector@^2.0.0:
   version "2.0.2"
   resolved "https://registry.yarnpkg.com/desandro-matches-selector/-/desandro-matches-selector-2.0.2.tgz#717beed4dc13e7d8f3762f707a6d58a6774218e1"
+  integrity sha1-cXvu1NwT59jzdi9wem1YpndCGOE=
 
 destroy@~1.0.4:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
+  integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
 
 detect-libc@^1.0.2:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
+  integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=
 
 detect-node@^2.0.3:
-  version "2.0.3"
-  resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.3.tgz#a2033c09cc8e158d37748fbde7507832bd6ce127"
+  version "2.0.4"
+  resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c"
+  integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==
 
 diff@3.5.0, diff@^3.5.0:
   version "3.5.0"
   resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12"
+  integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==
 
 diffie-hellman@^5.0.0:
   version "5.0.3"
   resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875"
+  integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==
   dependencies:
     bn.js "^4.1.0"
     miller-rabin "^4.0.0"
@@ -2621,6 +2972,7 @@ diffie-hellman@^5.0.0:
 dir-glob@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.0.0.tgz#0b205d2b6aef98238ca286598a8204d29d0a0034"
+  integrity sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==
   dependencies:
     arrify "^1.0.1"
     path-type "^3.0.0"
@@ -2628,16 +2980,19 @@ dir-glob@^2.0.0:
 django-channels@^1.1.6:
   version "1.1.6"
   resolved "https://registry.yarnpkg.com/django-channels/-/django-channels-1.1.6.tgz#51cdf9d818be3d098ef49a49356f2a7a78499180"
+  integrity sha1-Uc352Bi+PQmO9JpJNW8qenhJkYA=
   dependencies:
     reconnecting-websocket "^3.0.3"
 
 dns-equal@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d"
+  integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0=
 
 dns-packet@^1.3.1:
   version "1.3.1"
   resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a"
+  integrity sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==
   dependencies:
     ip "^1.1.0"
     safe-buffer "^5.0.1"
@@ -2645,28 +3000,38 @@ dns-packet@^1.3.1:
 dns-txt@^2.0.2:
   version "2.0.2"
   resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6"
+  integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=
   dependencies:
     buffer-indexof "^1.0.0"
 
 doctrine@^2.1.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d"
+  integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==
   dependencies:
     esutils "^2.0.2"
 
 doctypes@^1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/doctypes/-/doctypes-1.1.0.tgz#ea80b106a87538774e8a3a4a5afe293de489e0a9"
+  integrity sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=
 
-dom-converter@~0.1:
-  version "0.1.4"
-  resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.1.4.tgz#a45ef5727b890c9bffe6d7c876e7b19cb0e17f3b"
+dom-converter@~0.2:
+  version "0.2.0"
+  resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768"
+  integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==
   dependencies:
-    utila "~0.3"
+    utila "~0.4"
+
+dom-event-types@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/dom-event-types/-/dom-event-types-1.0.0.tgz#5830a0a29e1bf837fe50a70cd80a597232813cae"
+  integrity sha512-2G2Vwi2zXTHBGqXHsJ4+ak/iP0N8Ar+G8a7LiD2oup5o4sQWytwqqrZu/O6hIMV0KMID2PL69OhpshLO0n7UJQ==
 
 dom-serializer@0, dom-serializer@~0.1.0:
   version "0.1.0"
   resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82"
+  integrity sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=
   dependencies:
     domelementtype "~1.1.1"
     entities "~1.1.1"
@@ -2674,49 +3039,58 @@ dom-serializer@0, dom-serializer@~0.1.0:
 domain-browser@^1.1.1:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
+  integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==
 
 domelementtype@1, domelementtype@^1.3.0:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2"
+  version "1.3.1"
+  resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f"
+  integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==
 
 domelementtype@~1.1.1:
   version "1.1.3"
   resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b"
+  integrity sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=
 
 domexception@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90"
+  integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==
   dependencies:
     webidl-conversions "^4.0.2"
 
 domhandler@2.1:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.1.0.tgz#d2646f5e57f6c3bab11cf6cb05d3c0acf7412594"
+  integrity sha1-0mRvXlf2w7qxHPbLBdPArPdBJZQ=
   dependencies:
     domelementtype "1"
 
 domhandler@^2.3.0:
   version "2.4.2"
   resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803"
+  integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==
   dependencies:
     domelementtype "1"
 
 domutils@1.1:
   version "1.1.6"
   resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.1.6.tgz#bddc3de099b9a2efacc51c623f28f416ecc57485"
+  integrity sha1-vdw94Jm5ou+sxRxiPyj0FuzFdIU=
   dependencies:
     domelementtype "1"
 
 domutils@1.5.1:
   version "1.5.1"
   resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf"
+  integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=
   dependencies:
     dom-serializer "0"
     domelementtype "1"
 
-domutils@^1.5.1:
+domutils@^1.5.1, domutils@^1.7.0:
   version "1.7.0"
   resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a"
+  integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==
   dependencies:
     dom-serializer "0"
     domelementtype "1"
@@ -2724,16 +3098,19 @@ domutils@^1.5.1:
 dot-prop@^4.1.1:
   version "4.2.0"
   resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57"
+  integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==
   dependencies:
     is-obj "^1.0.0"
 
 duplexer@^0.1.1:
   version "0.1.1"
   resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1"
+  integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=
 
 duplexify@^3.4.2, duplexify@^3.6.0:
-  version "3.6.0"
-  resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.6.0.tgz#592903f5d80b38d037220541264d69a198fb3410"
+  version "3.6.1"
+  resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.6.1.tgz#b1a7a29c4abfd639585efaecce80d666b1e34125"
+  integrity sha512-vM58DwdnKmty+FSPzT14K9JXb90H+j5emaR4KYbr2KTIz00WHGbWOe5ghQTx233ZCLZtrGDALzKwcjEtSt35mA==
   dependencies:
     end-of-stream "^1.0.0"
     inherits "^2.0.1"
@@ -2743,10 +3120,12 @@ duplexify@^3.4.2, duplexify@^3.6.0:
 easy-stack@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/easy-stack/-/easy-stack-1.0.0.tgz#12c91b3085a37f0baa336e9486eac4bf94e3e788"
+  integrity sha1-EskbMIWjfwuqM26UhurEv5Tj54g=
 
 easygettext@^2.6.3:
-  version "2.6.3"
-  resolved "https://registry.yarnpkg.com/easygettext/-/easygettext-2.6.3.tgz#25395378a8b54eac9aba25611bcde7c1a6de7284"
+  version "2.7.0"
+  resolved "https://registry.yarnpkg.com/easygettext/-/easygettext-2.7.0.tgz#35eecf687f817baa10d2fd5dc66ef47caade56d5"
+  integrity sha512-BaoyxsZtre7Ndvgz3utjrE/6Yo8Txsc4m33ehQ0pBNX3HjcjGQozDhnpqSRhaeD8PQAk0Rgq3vhI+YJvQu0vUQ==
   dependencies:
     "@vue/component-compiler-utils" "^1.2.1"
     acorn "^5.5.3"
@@ -2760,6 +3139,7 @@ easygettext@^2.6.3:
 ecc-jsbn@~0.1.1:
   version "0.1.2"
   resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
+  integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=
   dependencies:
     jsbn "~0.1.0"
     safer-buffer "^2.1.0"
@@ -2767,18 +3147,22 @@ ecc-jsbn@~0.1.1:
 ee-first@1.1.1:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
+  integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
 
-ejs@^2.5.7:
+ejs@^2.6.1:
   version "2.6.1"
   resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.6.1.tgz#498ec0d495655abc6f23cd61868d926464071aa0"
+  integrity sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ==
 
-electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.52:
-  version "1.3.57"
-  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.57.tgz#61b2446f16af26fb8873210007a7637ad644c82d"
+electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.92:
+  version "1.3.95"
+  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.95.tgz#79fac438813ca7f3db182a525c2ab432934f6484"
+  integrity sha512-0JZEDKOQAE05EO/4rk3vLAE+PYFI9OLCVLAS4QAq1y+Bb2y1N6MyQJz62ynzHN/y0Ka/nO5jVJcahbCEdfiXLQ==
 
 elliptic@^6.0.0:
   version "6.4.1"
   resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a"
+  integrity sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==
   dependencies:
     bn.js "^4.4.0"
     brorand "^1.0.1"
@@ -2791,50 +3175,59 @@ elliptic@^6.0.0:
 emojis-list@^2.0.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
+  integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k=
 
 encodeurl@~1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
+  integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
 
 end-of-stream@^1.0.0, end-of-stream@^1.1.0:
   version "1.4.1"
   resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43"
+  integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==
   dependencies:
     once "^1.4.0"
 
 enhanced-resolve@^4.1.0:
   version "4.1.0"
   resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f"
+  integrity sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==
   dependencies:
     graceful-fs "^4.1.2"
     memory-fs "^0.4.0"
     tapable "^1.0.0"
 
 entities@^1.1.1, entities@~1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0"
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56"
+  integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==
 
 errno@^0.1.3, errno@~0.1.7:
   version "0.1.7"
   resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618"
+  integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==
   dependencies:
     prr "~1.0.1"
 
 error-ex@^1.2.0, error-ex@^1.3.1:
   version "1.3.2"
   resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
+  integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
   dependencies:
     is-arrayish "^0.2.1"
 
 error-stack-parser@^2.0.0:
   version "2.0.2"
   resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.2.tgz#4ae8dbaa2bf90a8b450707b9149dcabca135520d"
+  integrity sha512-E1fPutRDdIj/hohG0UpT5mayXNCxXP9d+snxFsPU9X0XgccOumKraa3juDMwTUyi7+Bu5+mCGagjg4IYeNbOdw==
   dependencies:
     stackframe "^1.0.4"
 
-es-abstract@^1.4.3, es-abstract@^1.5.1, es-abstract@^1.6.1, es-abstract@^1.7.0:
+es-abstract@^1.4.3, es-abstract@^1.5.1, es-abstract@^1.6.1:
   version "1.12.0"
   resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165"
+  integrity sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==
   dependencies:
     es-to-primitive "^1.1.1"
     function-bind "^1.1.1"
@@ -2843,47 +3236,28 @@ es-abstract@^1.4.3, es-abstract@^1.5.1, es-abstract@^1.6.1, es-abstract@^1.7.0:
     is-regex "^1.0.4"
 
 es-to-primitive@^1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d"
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377"
+  integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==
   dependencies:
-    is-callable "^1.1.1"
+    is-callable "^1.1.4"
     is-date-object "^1.0.1"
-    is-symbol "^1.0.1"
-
-es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14:
-  version "0.10.45"
-  resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.45.tgz#0bfdf7b473da5919d5adf3bd25ceb754fccc3653"
-  dependencies:
-    es6-iterator "~2.0.3"
-    es6-symbol "~3.1.1"
-    next-tick "1"
-
-es6-iterator@~2.0.3:
-  version "2.0.3"
-  resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7"
-  dependencies:
-    d "1"
-    es5-ext "^0.10.35"
-    es6-symbol "^3.1.1"
-
-es6-symbol@^3.1.1, es6-symbol@~3.1.1:
-  version "3.1.1"
-  resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77"
-  dependencies:
-    d "1"
-    es5-ext "~0.10.14"
+    is-symbol "^1.0.2"
 
 escape-html@~1.0.3:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
+  integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
 
 escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
   version "1.0.5"
   resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
+  integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
 
-escodegen@^1.9.1:
+escodegen@^1.11.0:
   version "1.11.0"
   resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.11.0.tgz#b27a9389481d5bfd5bec76f7bb1eb3f8f4556589"
+  integrity sha512-IeMV45ReixHS53K/OmfKAIztN/igDHzTJUhZM3k1jMhIZWjk45SMwAtBsEXiJp3vSPmTcu6CXn7mDvFHRN66fw==
   dependencies:
     esprima "^3.1.3"
     estraverse "^4.2.0"
@@ -2892,9 +3266,10 @@ escodegen@^1.9.1:
   optionalDependencies:
     source-map "~0.6.1"
 
-eslint-loader@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-2.1.0.tgz#61334c548aeb0b8e20ec3a552fb7a88c47261c6a"
+eslint-loader@^2.1.1:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-2.1.1.tgz#2a9251523652430bfdd643efdb0afc1a2a89546a"
+  integrity sha512-1GrJFfSevQdYpoDzx8mEE2TDWsb/zmFuY09l6hURg1AeFIKQOvZ+vH0UPjzmd1CZIbfTV5HUkMeBmFiDBkgIsQ==
   dependencies:
     loader-fs-cache "^1.0.0"
     loader-utils "^1.0.2"
@@ -2903,20 +3278,23 @@ eslint-loader@^2.0.0:
     rimraf "^2.6.1"
 
 eslint-plugin-html@^4.0.5:
-  version "4.0.5"
-  resolved "https://registry.yarnpkg.com/eslint-plugin-html/-/eslint-plugin-html-4.0.5.tgz#e8ec7e16485124460f3bff312016feb0a54d9659"
+  version "4.0.6"
+  resolved "https://registry.yarnpkg.com/eslint-plugin-html/-/eslint-plugin-html-4.0.6.tgz#724bb9272efb4df007dfee8dfb269ed83577e5b4"
+  integrity sha512-nj6A9oK+7BKnMm0E7dMRH3r75BfpkXtcVIb3pFC4AcDdBTNyg2NGxHXyFNT1emW4VsR7P2SZvRXXQtUR+kY08w==
   dependencies:
     htmlparser2 "^3.8.2"
 
-eslint-plugin-vue@^4.5.0:
+eslint-plugin-vue@^4.7.1:
   version "4.7.1"
   resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-4.7.1.tgz#c829b9fc62582c1897b5a0b94afd44ecca511e63"
+  integrity sha512-esETKhVMI7Vdli70Wt4bvAwnZBJeM0pxVX9Yb0wWKxdCJc2EADalVYK/q2FzMw8oKN0wPMdqVCKS8kmR89recA==
   dependencies:
     vue-eslint-parser "^2.0.3"
 
 eslint-scope@3.7.1:
   version "3.7.1"
   resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8"
+  integrity sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=
   dependencies:
     esrecurse "^4.1.0"
     estraverse "^4.1.1"
@@ -2924,6 +3302,7 @@ eslint-scope@3.7.1:
 eslint-scope@^3.7.1:
   version "3.7.3"
   resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.3.tgz#bb507200d3d17f60247636160b4826284b108535"
+  integrity sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==
   dependencies:
     esrecurse "^4.1.0"
     estraverse "^4.1.1"
@@ -2931,6 +3310,7 @@ eslint-scope@^3.7.1:
 eslint-scope@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.0.tgz#50bf3071e9338bcdc43331794a0cb533f0136172"
+  integrity sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==
   dependencies:
     esrecurse "^4.1.0"
     estraverse "^4.1.1"
@@ -2938,10 +3318,12 @@ eslint-scope@^4.0.0:
 eslint-visitor-keys@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d"
+  integrity sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==
 
 eslint@^4.19.1:
   version "4.19.1"
   resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.19.1.tgz#32d1d653e1d90408854bfb296f076ec7e186a300"
+  integrity sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==
   dependencies:
     ajv "^5.3.0"
     babel-code-frame "^6.22.0"
@@ -2985,6 +3367,7 @@ eslint@^4.19.1:
 espree@^3.5.2, espree@^3.5.4:
   version "3.5.4"
   resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7"
+  integrity sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==
   dependencies:
     acorn "^5.5.0"
     acorn-jsx "^3.0.0"
@@ -2992,60 +3375,73 @@ espree@^3.5.2, espree@^3.5.4:
 esprima@^3.1.3:
   version "3.1.3"
   resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633"
+  integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=
 
 esprima@^4.0.0:
   version "4.0.1"
   resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
+  integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
 
 esquery@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708"
+  integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==
   dependencies:
     estraverse "^4.0.0"
 
 esrecurse@^4.1.0:
   version "4.2.1"
   resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf"
+  integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==
   dependencies:
     estraverse "^4.1.0"
 
 estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0:
   version "4.2.0"
   resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
+  integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=
 
 esutils@^2.0.2:
   version "2.0.2"
   resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
+  integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=
 
 etag@~1.8.1:
   version "1.8.1"
   resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
+  integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
 
 ev-emitter@^1.0.0:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/ev-emitter/-/ev-emitter-1.1.1.tgz#8f18b0ce5c76a5d18017f71c0a795c65b9138f2a"
+  integrity sha512-ipiDYhdQSCZ4hSbX4rMW+XzNKMD1prg/sTvoVmSLkuQ1MVlwjJQQA+sW8tMYR3BLUr9KjodFV4pvzunvRhd33Q==
 
 event-pubsub@4.3.0:
   version "4.3.0"
   resolved "https://registry.yarnpkg.com/event-pubsub/-/event-pubsub-4.3.0.tgz#f68d816bc29f1ec02c539dc58c8dd40ce72cb36e"
+  integrity sha512-z7IyloorXvKbFx9Bpie2+vMJKKx1fH1EN5yiTfp8CiLOTptSYy1g8H4yDpGlEdshL1PBiFtBHepF2cNsqeEeFQ==
 
 eventemitter3@^3.0.0:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.0.tgz#090b4d6cdbd645ed10bf750d4b5407942d7ba163"
+  integrity sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA==
 
 events@^1.0.0:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924"
+  integrity sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=
 
-eventsource@0.1.6:
-  version "0.1.6"
-  resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-0.1.6.tgz#0acede849ed7dd1ccc32c811bb11b944d4f29232"
+eventsource@^1.0.7:
+  version "1.0.7"
+  resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0"
+  integrity sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==
   dependencies:
-    original ">=0.0.5"
+    original "^1.0.0"
 
 evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02"
+  integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==
   dependencies:
     md5.js "^1.3.4"
     safe-buffer "^5.1.1"
@@ -3053,6 +3449,7 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
 execa@^0.10.0:
   version "0.10.0"
   resolved "https://registry.yarnpkg.com/execa/-/execa-0.10.0.tgz#ff456a8f53f90f8eccc71a96d11bdfc7f082cb50"
+  integrity sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==
   dependencies:
     cross-spawn "^6.0.0"
     get-stream "^3.0.0"
@@ -3065,6 +3462,7 @@ execa@^0.10.0:
 execa@^0.7.0:
   version "0.7.0"
   resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777"
+  integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=
   dependencies:
     cross-spawn "^5.0.1"
     get-stream "^3.0.0"
@@ -3077,6 +3475,7 @@ execa@^0.7.0:
 execa@^0.8.0:
   version "0.8.0"
   resolved "https://registry.yarnpkg.com/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da"
+  integrity sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=
   dependencies:
     cross-spawn "^5.0.1"
     get-stream "^3.0.0"
@@ -3086,15 +3485,23 @@ execa@^0.8.0:
     signal-exit "^3.0.0"
     strip-eof "^1.0.0"
 
-expand-brackets@^0.1.4:
-  version "0.1.5"
-  resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b"
+execa@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8"
+  integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==
   dependencies:
-    is-posix-bracket "^0.1.0"
+    cross-spawn "^6.0.0"
+    get-stream "^4.0.0"
+    is-stream "^1.1.0"
+    npm-run-path "^2.0.0"
+    p-finally "^1.0.0"
+    signal-exit "^3.0.0"
+    strip-eof "^1.0.0"
 
 expand-brackets@^2.1.4:
   version "2.1.4"
   resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622"
+  integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI=
   dependencies:
     debug "^2.3.3"
     define-property "^0.2.5"
@@ -3104,19 +3511,14 @@ expand-brackets@^2.1.4:
     snapdragon "^0.8.1"
     to-regex "^3.0.1"
 
-expand-range@^1.8.1:
-  version "1.8.2"
-  resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337"
-  dependencies:
-    fill-range "^2.1.0"
-
-express@^4.16.2:
-  version "4.16.3"
-  resolved "https://registry.yarnpkg.com/express/-/express-4.16.3.tgz#6af8a502350db3246ecc4becf6b5a34d22f7ed53"
+express@^4.16.2, express@^4.16.3:
+  version "4.16.4"
+  resolved "https://registry.yarnpkg.com/express/-/express-4.16.4.tgz#fddef61926109e24c515ea97fd2f1bdbf62df12e"
+  integrity sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==
   dependencies:
     accepts "~1.3.5"
     array-flatten "1.1.1"
-    body-parser "1.18.2"
+    body-parser "1.18.3"
     content-disposition "0.5.2"
     content-type "~1.0.4"
     cookie "0.3.1"
@@ -3133,10 +3535,10 @@ express@^4.16.2:
     on-finished "~2.3.0"
     parseurl "~1.3.2"
     path-to-regexp "0.1.7"
-    proxy-addr "~2.0.3"
-    qs "6.5.1"
+    proxy-addr "~2.0.4"
+    qs "6.5.2"
     range-parser "~1.2.0"
-    safe-buffer "5.1.1"
+    safe-buffer "5.1.2"
     send "0.16.2"
     serve-static "1.13.2"
     setprototypeof "1.1.0"
@@ -3148,37 +3550,36 @@ express@^4.16.2:
 extend-shallow@^2.0.1:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
+  integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=
   dependencies:
     is-extendable "^0.1.0"
 
 extend-shallow@^3.0.0, extend-shallow@^3.0.2:
   version "3.0.2"
   resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8"
+  integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=
   dependencies:
     assign-symbols "^1.0.0"
     is-extendable "^1.0.1"
 
-extend@~3.0.1, extend@~3.0.2:
+extend@~3.0.2:
   version "3.0.2"
   resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
+  integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
 
 external-editor@^2.0.4:
   version "2.2.0"
   resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5"
+  integrity sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==
   dependencies:
     chardet "^0.4.0"
     iconv-lite "^0.4.17"
     tmp "^0.0.33"
 
-extglob@^0.3.1:
-  version "0.3.2"
-  resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1"
-  dependencies:
-    is-extglob "^1.0.0"
-
 extglob@^2.0.4:
   version "2.0.4"
   resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543"
+  integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==
   dependencies:
     array-unique "^0.3.2"
     define-property "^1.0.0"
@@ -3192,95 +3593,101 @@ extglob@^2.0.4:
 extsprintf@1.3.0:
   version "1.3.0"
   resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
+  integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=
 
 extsprintf@^1.2.0:
   version "1.4.0"
   resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
+  integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=
 
 fast-deep-equal@^1.0.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614"
+  integrity sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=
 
 fast-deep-equal@^2.0.1:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49"
+  integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=
 
 fast-glob@^2.0.2:
-  version "2.2.2"
-  resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.2.tgz#71723338ac9b4e0e2fff1d6748a2a13d5ed352bf"
+  version "2.2.4"
+  resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.4.tgz#e54f4b66d378040e0e4d6a68ec36bbc5b04363c0"
+  integrity sha512-FjK2nCGI/McyzgNtTESqaWP3trPvHyRyoyY70hxjc3oKPNmDe8taohLZpoVKoUjW85tbU5txaYUZCNtVzygl1g==
   dependencies:
     "@mrmlnc/readdir-enhanced" "^2.2.1"
-    "@nodelib/fs.stat" "^1.0.1"
+    "@nodelib/fs.stat" "^1.1.2"
     glob-parent "^3.1.0"
     is-glob "^4.0.0"
-    merge2 "^1.2.1"
+    merge2 "^1.2.3"
     micromatch "^3.1.10"
 
 fast-json-stable-stringify@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
+  integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I=
 
 fast-levenshtein@~2.0.4:
   version "2.0.6"
   resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
+  integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
 
 fastparse@^1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8"
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9"
+  integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==
 
 faye-websocket@^0.10.0:
   version "0.10.0"
   resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4"
+  integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=
   dependencies:
     websocket-driver ">=0.5.1"
 
-faye-websocket@~0.11.0:
+faye-websocket@~0.11.1:
   version "0.11.1"
   resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.1.tgz#f0efe18c4f56e4f40afc7e06c719fd5ee6188f38"
+  integrity sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=
   dependencies:
     websocket-driver ">=0.5.1"
 
+figgy-pudding@^3.1.0, figgy-pudding@^3.5.1:
+  version "3.5.1"
+  resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790"
+  integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==
+
 figures@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
+  integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=
   dependencies:
     escape-string-regexp "^1.0.5"
 
 file-entry-cache@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361"
+  integrity sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=
   dependencies:
     flat-cache "^1.2.1"
     object-assign "^4.0.1"
 
-file-loader@^1.1.11:
-  version "1.1.11"
-  resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-1.1.11.tgz#6fe886449b0f2a936e43cabaac0cdbfb369506f8"
+file-loader@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-2.0.0.tgz#39749c82f020b9e85901dcff98e8004e6401cfde"
+  integrity sha512-YCsBfd1ZGCyonOKLxPiKPdu+8ld9HAaMEvJewzz+b2eTF7uL5Zm/HdBF6FjCrpCMRq25Mi0U1gl4pwn2TlH7hQ==
   dependencies:
     loader-utils "^1.0.2"
-    schema-utils "^0.4.5"
-
-filename-regex@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
+    schema-utils "^1.0.0"
 
-filesize@^3.5.11:
+filesize@^3.6.1:
   version "3.6.1"
   resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317"
-
-fill-range@^2.1.0:
-  version "2.2.4"
-  resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565"
-  dependencies:
-    is-number "^2.1.0"
-    isobject "^2.0.0"
-    randomatic "^3.0.0"
-    repeat-element "^1.1.2"
-    repeat-string "^1.5.2"
+  integrity sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==
 
 fill-range@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
+  integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=
   dependencies:
     extend-shallow "^2.0.1"
     is-number "^3.0.0"
@@ -3290,6 +3697,7 @@ fill-range@^4.0.0:
 finalhandler@1.1.1:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105"
+  integrity sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==
   dependencies:
     debug "2.6.9"
     encodeurl "~1.0.2"
@@ -3302,6 +3710,7 @@ finalhandler@1.1.1:
 find-cache-dir@^0.1.1:
   version "0.1.1"
   resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9"
+  integrity sha1-yN765XyKUqinhPnjHFfHQumToLk=
   dependencies:
     commondir "^1.0.1"
     mkdirp "^0.5.1"
@@ -3310,14 +3719,25 @@ find-cache-dir@^0.1.1:
 find-cache-dir@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f"
+  integrity sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=
   dependencies:
     commondir "^1.0.1"
     make-dir "^1.0.0"
     pkg-dir "^2.0.0"
 
+find-cache-dir@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.0.0.tgz#4c1faed59f45184530fb9d7fa123a4d04a98472d"
+  integrity sha512-LDUY6V1Xs5eFskUVYtIwatojt6+9xC9Chnlk/jYOOvn3FAFfSaWddxahDGyNHh0b2dMXa6YW2m0tk8TdVaXHlA==
+  dependencies:
+    commondir "^1.0.1"
+    make-dir "^1.0.0"
+    pkg-dir "^3.0.0"
+
 find-up@^1.0.0:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
+  integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=
   dependencies:
     path-exists "^2.0.0"
     pinkie-promise "^2.0.0"
@@ -3325,94 +3745,101 @@ find-up@^1.0.0:
 find-up@^2.1.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
+  integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c=
   dependencies:
     locate-path "^2.0.0"
 
+find-up@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
+  integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==
+  dependencies:
+    locate-path "^3.0.0"
+
 fizzy-ui-utils@^2.0.0:
   version "2.0.7"
   resolved "https://registry.yarnpkg.com/fizzy-ui-utils/-/fizzy-ui-utils-2.0.7.tgz#7df45dcc4eb374a08b65d39bb9a4beedf7330505"
+  integrity sha512-CZXDVXQ1If3/r8s0T+v+qVeMshhfcuq0rqIFgJnrtd+Bu8GmDmqMjntjUePypVtjHXKJ6V4sw9zeyox34n9aCg==
   dependencies:
     desandro-matches-selector "^2.0.0"
 
 flat-cache@^1.2.1:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481"
+  version "1.3.4"
+  resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.4.tgz#2c2ef77525cc2929007dfffa1dd314aa9c9dee6f"
+  integrity sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==
   dependencies:
     circular-json "^0.3.1"
-    del "^2.0.2"
     graceful-fs "^4.1.2"
+    rimraf "~2.6.2"
     write "^0.2.1"
 
-flatten@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782"
-
 flush-write-stream@^1.0.0:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.3.tgz#c5d586ef38af6097650b49bc41b55fabb19f35bd"
+  integrity sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==
   dependencies:
     inherits "^2.0.1"
     readable-stream "^2.0.4"
 
 follow-redirects@^1.0.0, follow-redirects@^1.3.0:
-  version "1.5.2"
-  resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.2.tgz#5a9d80e0165957e5ef0c1210678fc5c4acb9fb03"
+  version "1.5.10"
+  resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a"
+  integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==
   dependencies:
-    debug "^3.1.0"
+    debug "=3.1.0"
 
 for-in@^0.1.3:
   version "0.1.8"
   resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1"
+  integrity sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=
 
 for-in@^1.0.1, for-in@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
-
-for-own@^0.1.4:
-  version "0.1.5"
-  resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce"
-  dependencies:
-    for-in "^1.0.1"
+  integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=
 
 for-own@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b"
+  integrity sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=
   dependencies:
     for-in "^1.0.1"
 
-foreach@^2.0.5:
-  version "2.0.5"
-  resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99"
-
 forever-agent@~0.6.1:
   version "0.6.1"
   resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
+  integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
 
-form-data@~2.3.1, form-data@~2.3.2:
-  version "2.3.2"
-  resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099"
+form-data@~2.3.2:
+  version "2.3.3"
+  resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6"
+  integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==
   dependencies:
     asynckit "^0.4.0"
-    combined-stream "1.0.6"
+    combined-stream "^1.0.6"
     mime-types "^2.1.12"
 
 forwarded@~0.1.2:
   version "0.1.2"
   resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84"
+  integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=
 
 fragment-cache@^0.2.1:
   version "0.2.1"
   resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19"
+  integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=
   dependencies:
     map-cache "^0.2.2"
 
 fresh@0.5.2:
   version "0.5.2"
   resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
+  integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
 
 friendly-errors-webpack-plugin@^1.7.0:
   version "1.7.0"
   resolved "https://registry.yarnpkg.com/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.7.0.tgz#efc86cbb816224565861a1be7a9d84d0aafea136"
+  integrity sha512-K27M3VK30wVoOarP651zDmb93R9zF28usW4ocaK3mfQeIEI5BPht/EzZs5E8QLLwbLRJQMwscAjDxYPb1FuNiw==
   dependencies:
     chalk "^1.1.3"
     error-stack-parser "^2.0.0"
@@ -3421,13 +3848,15 @@ friendly-errors-webpack-plugin@^1.7.0:
 from2@^2.1.0:
   version "2.3.0"
   resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af"
+  integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=
   dependencies:
     inherits "^2.0.1"
     readable-stream "^2.0.0"
 
-fs-extra@^6.0.1:
-  version "6.0.1"
-  resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-6.0.1.tgz#8abc128f7946e310135ddc93b98bddb410e7a34b"
+fs-extra@^7.0.1:
+  version "7.0.1"
+  resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9"
+  integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==
   dependencies:
     graceful-fs "^4.1.2"
     jsonfile "^4.0.0"
@@ -3436,12 +3865,14 @@ fs-extra@^6.0.1:
 fs-minipass@^1.2.5:
   version "1.2.5"
   resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d"
+  integrity sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==
   dependencies:
     minipass "^2.2.1"
 
 fs-write-stream-atomic@^1.0.8:
   version "1.0.10"
   resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9"
+  integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=
   dependencies:
     graceful-fs "^4.1.2"
     iferr "^0.1.5"
@@ -3451,10 +3882,12 @@ fs-write-stream-atomic@^1.0.8:
 fs.realpath@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
+  integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
 
 fsevents@^1.2.2:
   version "1.2.4"
   resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426"
+  integrity sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==
   dependencies:
     nan "^2.9.2"
     node-pre-gyp "^0.10.0"
@@ -3462,6 +3895,7 @@ fsevents@^1.2.2:
 fstream@^1.0.0, fstream@^1.0.2:
   version "1.0.11"
   resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171"
+  integrity sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=
   dependencies:
     graceful-fs "^4.1.2"
     inherits "~2.0.0"
@@ -3471,14 +3905,17 @@ fstream@^1.0.0, fstream@^1.0.2:
 function-bind@^1.0.2, function-bind@^1.1.0, function-bind@^1.1.1:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
+  integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
 
 functional-red-black-tree@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
+  integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
 
 gauge@~2.7.3:
   version "2.7.4"
   resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
+  integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=
   dependencies:
     aproba "^1.0.3"
     console-control-strings "^1.0.0"
@@ -3492,55 +3929,58 @@ gauge@~2.7.3:
 gaze@^1.0.0:
   version "1.1.3"
   resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a"
+  integrity sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==
   dependencies:
     globule "^1.0.0"
 
 get-caller-file@^1.0.1:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a"
+  integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==
 
 get-func-name@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41"
+  integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=
 
 get-size@^2.0.2:
   version "2.0.3"
   resolved "https://registry.yarnpkg.com/get-size/-/get-size-2.0.3.tgz#54a1d0256b20ea7ac646516756202769941ad2ef"
+  integrity sha512-lXNzT/h/dTjTxRbm9BXb+SGxxzkm97h/PCIKtlN/CBCxxmkkIVV21udumMS93MuVTDX583gqc94v3RjuHmI+2Q==
 
 get-stdin@^4.0.1:
   version "4.0.1"
   resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe"
+  integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=
 
 get-stream@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
+  integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=
+
+get-stream@^4.0.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
+  integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==
+  dependencies:
+    pump "^3.0.0"
 
 get-value@^2.0.3, get-value@^2.0.6:
   version "2.0.6"
   resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
+  integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=
 
 getpass@^0.1.1:
   version "0.1.7"
   resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
+  integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=
   dependencies:
     assert-plus "^1.0.0"
 
-glob-base@^0.3.0:
-  version "0.3.0"
-  resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4"
-  dependencies:
-    glob-parent "^2.0.0"
-    is-glob "^2.0.0"
-
-glob-parent@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28"
-  dependencies:
-    is-glob "^2.0.0"
-
 glob-parent@^3.1.0:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae"
+  integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=
   dependencies:
     is-glob "^3.1.0"
     path-dirname "^1.0.0"
@@ -3548,10 +3988,12 @@ glob-parent@^3.1.0:
 glob-to-regexp@^0.3.0:
   version "0.3.0"
   resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab"
+  integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=
 
-glob@7.1.2, glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.2, glob@~7.1.1:
+glob@7.1.2:
   version "7.1.2"
   resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
+  integrity sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==
   dependencies:
     fs.realpath "^1.0.0"
     inflight "^1.0.4"
@@ -3560,34 +4002,27 @@ glob@7.1.2, glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.2, glob@~7.1.1:
     once "^1.3.0"
     path-is-absolute "^1.0.0"
 
-glob@^6.0.4:
-  version "6.0.4"
-  resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22"
+glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.2, glob@~7.1.1:
+  version "7.1.3"
+  resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1"
+  integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==
   dependencies:
+    fs.realpath "^1.0.0"
     inflight "^1.0.4"
     inherits "2"
-    minimatch "2 || 3"
+    minimatch "^3.0.4"
     once "^1.3.0"
     path-is-absolute "^1.0.0"
 
 globals@^11.0.1, globals@^11.1.0:
-  version "11.7.0"
-  resolved "https://registry.yarnpkg.com/globals/-/globals-11.7.0.tgz#a583faa43055b1aca771914bf68258e2fc125673"
-
-globby@^5.0.0:
-  version "5.0.0"
-  resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d"
-  dependencies:
-    array-union "^1.0.1"
-    arrify "^1.0.0"
-    glob "^7.0.3"
-    object-assign "^4.0.1"
-    pify "^2.0.0"
-    pinkie-promise "^2.0.0"
+  version "11.9.0"
+  resolved "https://registry.yarnpkg.com/globals/-/globals-11.9.0.tgz#bde236808e987f290768a93d065060d78e6ab249"
+  integrity sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg==
 
 globby@^6.1.0:
   version "6.1.0"
   resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c"
+  integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=
   dependencies:
     array-union "^1.0.1"
     glob "^7.0.3"
@@ -3598,6 +4033,7 @@ globby@^6.1.0:
 globby@^7.1.1:
   version "7.1.1"
   resolved "https://registry.yarnpkg.com/globby/-/globby-7.1.1.tgz#fb2ccff9401f8600945dfada97440cca972b8680"
+  integrity sha1-+yzP+UAfhgCUXfral0QMypcrhoA=
   dependencies:
     array-union "^1.0.1"
     dir-glob "^2.0.0"
@@ -3609,6 +4045,7 @@ globby@^7.1.1:
 globby@^8.0.1:
   version "8.0.1"
   resolved "https://registry.yarnpkg.com/globby/-/globby-8.0.1.tgz#b5ad48b8aa80b35b814fc1281ecc851f1d2b5b50"
+  integrity sha512-oMrYrJERnKBLXNLVTqhm3vPEdJ/b2ZE28xN4YARiix1NOIOBPEpOUnm844K1iu/BkphCaf2WNFwMszv8Soi1pw==
   dependencies:
     array-union "^1.0.1"
     dir-glob "^2.0.0"
@@ -3621,22 +4058,26 @@ globby@^8.0.1:
 globule@^1.0.0:
   version "1.2.1"
   resolved "https://registry.yarnpkg.com/globule/-/globule-1.2.1.tgz#5dffb1b191f22d20797a9369b49eab4e9839696d"
+  integrity sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==
   dependencies:
     glob "~7.1.1"
     lodash "~4.17.10"
     minimatch "~3.0.2"
 
 graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6:
-  version "4.1.11"
-  resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
+  version "4.1.15"
+  resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00"
+  integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==
 
 growl@1.10.5:
   version "1.10.5"
   resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e"
+  integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==
 
-gzip-size@^4.1.0:
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-4.1.0.tgz#8ae096257eabe7d69c45be2b67c448124ffb517c"
+gzip-size@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.0.0.tgz#a55ecd99222f4c48fd8c01c625ce3b349d0a0e80"
+  integrity sha512-5iI7omclyqrnWw4XbXAmGhPsABkSIDQonv2K0h61lybgofWa6iZyvrI3r2zsJH4P8Nb64fFVzlvfhs0g7BBxAA==
   dependencies:
     duplexer "^0.1.1"
     pify "^3.0.0"
@@ -3644,46 +4085,47 @@ gzip-size@^4.1.0:
 handle-thing@^1.2.5:
   version "1.2.5"
   resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-1.2.5.tgz#fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4"
+  integrity sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=
 
 har-schema@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
-
-har-validator@~5.0.3:
-  version "5.0.3"
-  resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd"
-  dependencies:
-    ajv "^5.1.0"
-    har-schema "^2.0.0"
+  integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=
 
 har-validator@~5.1.0:
-  version "5.1.0"
-  resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.0.tgz#44657f5688a22cfd4b72486e81b3a3fb11742c29"
+  version "5.1.3"
+  resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080"
+  integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==
   dependencies:
-    ajv "^5.3.0"
+    ajv "^6.5.5"
     har-schema "^2.0.0"
 
 has-ansi@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
+  integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=
   dependencies:
     ansi-regex "^2.0.0"
 
 has-flag@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
+  integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
 
 has-symbols@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44"
+  integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=
 
 has-unicode@^2.0.0:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
+  integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=
 
 has-value@^0.3.1:
   version "0.3.1"
   resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
+  integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=
   dependencies:
     get-value "^2.0.3"
     has-values "^0.1.4"
@@ -3692,6 +4134,7 @@ has-value@^0.3.1:
 has-value@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177"
+  integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=
   dependencies:
     get-value "^2.0.6"
     has-values "^1.0.0"
@@ -3700,10 +4143,12 @@ has-value@^1.0.0:
 has-values@^0.1.4:
   version "0.1.4"
   resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771"
+  integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E=
 
 has-values@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f"
+  integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=
   dependencies:
     is-number "^3.0.0"
     kind-of "^4.0.0"
@@ -3711,12 +4156,14 @@ has-values@^1.0.0:
 has@^1.0.0, has@^1.0.1:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
+  integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
   dependencies:
     function-bind "^1.1.1"
 
 hash-base@^3.0.0:
   version "3.0.4"
   resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918"
+  integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=
   dependencies:
     inherits "^2.0.1"
     safe-buffer "^5.0.1"
@@ -3724,25 +4171,35 @@ hash-base@^3.0.0:
 hash-sum@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-1.0.2.tgz#33b40777754c6432573c120cc3808bbd10d47f04"
+  integrity sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=
 
 hash.js@^1.0.0, hash.js@^1.0.3:
-  version "1.1.5"
-  resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.5.tgz#e38ab4b85dfb1e0c40fe9265c0e9b54854c23812"
+  version "1.1.7"
+  resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42"
+  integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==
   dependencies:
     inherits "^2.0.3"
     minimalistic-assert "^1.0.1"
 
-he@1.1.1, he@1.1.x, he@^1.1.0:
+he@1.1.1:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd"
+  integrity sha1-k0EP0hsAlzUVH4howvJx80J+I/0=
+
+he@1.2.x, he@^1.1.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
+  integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
 
 hex-color-regex@^1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e"
+  integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==
 
 hmac-drbg@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
+  integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=
   dependencies:
     hash.js "^1.0.3"
     minimalistic-assert "^1.0.0"
@@ -3751,18 +4208,32 @@ hmac-drbg@^1.0.0:
 hoek@5.x.x:
   version "5.0.4"
   resolved "https://registry.yarnpkg.com/hoek/-/hoek-5.0.4.tgz#0f7fa270a1cafeb364a4b2ddfaa33f864e4157da"
+  integrity sha512-Alr4ZQgoMlnere5FZJsIyfIjORBqZll5POhDsF4q64dPuJR6rNxXdDxtHSQq8OXRurhmx+PWYEE8bXRROY8h0w==
+
+hoek@6.x.x:
+  version "6.1.2"
+  resolved "https://registry.yarnpkg.com/hoek/-/hoek-6.1.2.tgz#99e6d070561839de74ee427b61aa476bd6bddfd6"
+  integrity sha512-6qhh/wahGYZHFSFw12tBbJw5fsAhhwrrG/y3Cs0YMTv2WzMnL0oLPnQJjv1QJvEfylRSOFuP+xCu+tdx0tD16Q==
+
+hoopy@^0.1.2:
+  version "0.1.4"
+  resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d"
+  integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==
 
 hosted-git-info@^2.1.4:
   version "2.7.1"
   resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047"
+  integrity sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==
 
 howler@^2.0.14:
-  version "2.0.14"
-  resolved "https://registry.yarnpkg.com/howler/-/howler-2.0.14.tgz#28e37800fea002fea147a3ca033660c4f1288a99"
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/howler/-/howler-2.1.1.tgz#b8ae44b83f4b8a5b5ef354030ed0927314d8a996"
+  integrity sha512-9nwyDCGxhAGMmNXDfMLv0M/uS/WUg2//jG6t96D8DqbbsVZgXQzsP/ZMItbWO/Fqg7Gg69kOv3xVSDzJdd7aqA==
 
 hpack.js@^2.1.6:
   version "2.1.6"
   resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2"
+  integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=
   dependencies:
     inherits "^2.0.1"
     obuf "^1.0.0"
@@ -3772,33 +4243,39 @@ hpack.js@^2.1.6:
 hsl-regex@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e"
+  integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=
 
 hsla-regex@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38"
+  integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg=
 
 html-comment-regex@^1.1.0:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.1.tgz#668b93776eaae55ebde8f3ad464b307a4963625e"
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7"
+  integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==
 
 html-encoding-sniffer@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8"
+  integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==
   dependencies:
     whatwg-encoding "^1.0.1"
 
 html-entities@^1.2.0:
   version "1.2.1"
   resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f"
+  integrity sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=
 
 html-minifier@^3.2.3:
-  version "3.5.19"
-  resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.19.tgz#ed53c4b7326fe507bc3a1adbcc3bbb56660a2ebd"
+  version "3.5.21"
+  resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.21.tgz#d0040e054730e354db008463593194015212d20c"
+  integrity sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==
   dependencies:
     camel-case "3.0.x"
-    clean-css "4.1.x"
-    commander "2.16.x"
-    he "1.1.x"
+    clean-css "4.2.x"
+    commander "2.17.x"
+    he "1.2.x"
     param-case "2.1.x"
     relateurl "0.2.x"
     uglify-js "3.4.x"
@@ -3806,6 +4283,7 @@ html-minifier@^3.2.3:
 html-webpack-plugin@^3.2.0:
   version "3.2.0"
   resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz#b01abbd723acaaa7b37b6af4492ebda03d9dd37b"
+  integrity sha1-sBq71yOsqqeze2r0SS69oD2d03s=
   dependencies:
     html-minifier "^3.2.3"
     loader-utils "^0.2.16"
@@ -3816,19 +4294,21 @@ html-webpack-plugin@^3.2.0:
     util.promisify "1.0.0"
 
 htmlparser2@^3.8.2, htmlparser2@^3.9.1:
-  version "3.9.2"
-  resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.9.2.tgz#1bdf87acca0f3f9e53fa4fcceb0f4b4cbb00b338"
+  version "3.10.0"
+  resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.0.tgz#5f5e422dcf6119c0d983ed36260ce9ded0bee464"
+  integrity sha512-J1nEUGv+MkXS0weHNWVKJJ+UrLfePxRWpN3C9bEi9fLxL2+ggW94DQvgYVXsaT30PGwYRIZKNZXuyMhp3Di4bQ==
   dependencies:
     domelementtype "^1.3.0"
     domhandler "^2.3.0"
     domutils "^1.5.1"
     entities "^1.1.1"
     inherits "^2.0.1"
-    readable-stream "^2.0.2"
+    readable-stream "^3.0.6"
 
 htmlparser2@~3.3.0:
   version "3.3.0"
   resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.3.0.tgz#cc70d05a59f6542e43f0e685c982e14c924a9efe"
+  integrity sha1-zHDQWln2VC5D8OaFyYLhTJJKnv4=
   dependencies:
     domelementtype "1"
     domhandler "2.1"
@@ -3838,19 +4318,12 @@ htmlparser2@~3.3.0:
 http-deceiver@^1.2.7:
   version "1.2.7"
   resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87"
+  integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=
 
-http-errors@1.6.2:
-  version "1.6.2"
-  resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736"
-  dependencies:
-    depd "1.1.1"
-    inherits "2.0.3"
-    setprototypeof "1.0.3"
-    statuses ">= 1.3.1 < 2"
-
-http-errors@~1.6.2:
+http-errors@1.6.3, http-errors@~1.6.2, http-errors@~1.6.3:
   version "1.6.3"
   resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d"
+  integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=
   dependencies:
     depd "~1.1.2"
     inherits "2.0.3"
@@ -3858,12 +4331,14 @@ http-errors@~1.6.2:
     statuses ">= 1.4.0 < 2"
 
 http-parser-js@>=0.4.0:
-  version "0.4.13"
-  resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.13.tgz#3bd6d6fde6e3172c9334c3b33b6c193d80fe1137"
+  version "0.5.0"
+  resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.0.tgz#d65edbede84349d0dc30320815a15d39cc3cbbd8"
+  integrity sha512-cZdEF7r4gfRIq7ezX9J0T+kQmJNOub71dWbgAXVHDct80TKP4MCETtZQ31xyv38UwgzkWPYF/Xc0ge55dW9Z9w==
 
 http-proxy-middleware@~0.18.0:
   version "0.18.0"
   resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz#0987e6bb5a5606e5a69168d8f967a87f15dd8aab"
+  integrity sha512-Fs25KVMPAIIcgjMZkVHJoKg9VcXcC1C8yb9JUgeDvVXY0S/zgVIhMb+qVswDIgtJe2DfckMSY2d6TuTEutlk6Q==
   dependencies:
     http-proxy "^1.16.2"
     is-glob "^4.0.0"
@@ -3873,6 +4348,7 @@ http-proxy-middleware@~0.18.0:
 http-proxy@^1.16.2:
   version "1.17.0"
   resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.17.0.tgz#7ad38494658f84605e2f6db4436df410f4e5be9a"
+  integrity sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==
   dependencies:
     eventemitter3 "^3.0.0"
     follow-redirects "^1.0.0"
@@ -3881,6 +4357,7 @@ http-proxy@^1.16.2:
 http-signature@~1.2.0:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
+  integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=
   dependencies:
     assert-plus "^1.0.0"
     jsprim "^1.2.2"
@@ -3889,95 +4366,129 @@ http-signature@~1.2.0:
 https-browserify@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
+  integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=
 
-iconv-lite@0.4.19:
-  version "0.4.19"
-  resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
+humanize@0.0.9:
+  version "0.0.9"
+  resolved "https://registry.yarnpkg.com/humanize/-/humanize-0.0.9.tgz#1994ffaecdfe9c441ed2bdac7452b7bb4c9e41a4"
+  integrity sha1-GZT/rs3+nEQe0r2sdFK3u0yeQaQ=
 
-iconv-lite@^0.4.17, iconv-lite@^0.4.4:
+iconv-lite@0.4.23:
   version "0.4.23"
   resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63"
+  integrity sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==
+  dependencies:
+    safer-buffer ">= 2.1.2 < 3"
+
+iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.4:
+  version "0.4.24"
+  resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
+  integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
   dependencies:
     safer-buffer ">= 2.1.2 < 3"
 
 icss-replace-symbols@^1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded"
+  integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=
 
 icss-utils@^2.1.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-2.1.0.tgz#83f0a0ec378bf3246178b6c2ad9136f135b1c962"
+  integrity sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=
   dependencies:
     postcss "^6.0.1"
 
-ieee754@^1.1.11, ieee754@^1.1.4:
+ieee754@^1.1.4:
   version "1.1.12"
   resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz#50bf24e5b9c8bb98af4964c941cdb0918da7b60b"
+  integrity sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==
 
 iferr@^0.1.5:
   version "0.1.5"
   resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501"
+  integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE=
 
 ignore-walk@^3.0.1:
   version "3.0.1"
   resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8"
+  integrity sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==
   dependencies:
     minimatch "^3.0.4"
 
 ignore@^3.3.3, ignore@^3.3.5:
   version "3.3.10"
   resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043"
+  integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==
 
 imagesloaded@4.1.4:
   version "4.1.4"
   resolved "https://registry.yarnpkg.com/imagesloaded/-/imagesloaded-4.1.4.tgz#1376efcd162bb768c34c3727ac89cc04051f3cc7"
+  integrity sha512-ltiBVcYpc/TYTF5nolkMNsnREHW+ICvfQ3Yla2Sgr71YFwQ86bDwV9hgpFhFtrGPuwEx5+LqOHIrdXBdoWwwsA==
   dependencies:
     ev-emitter "^1.0.0"
 
 import-cwd@^2.0.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9"
+  integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=
   dependencies:
     import-from "^2.1.0"
 
+import-fresh@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546"
+  integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY=
+  dependencies:
+    caller-path "^2.0.0"
+    resolve-from "^3.0.0"
+
 import-from@^2.1.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1"
+  integrity sha1-M1238qev/VOqpHHUuAId7ja387E=
   dependencies:
     resolve-from "^3.0.0"
 
-import-local@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/import-local/-/import-local-1.0.0.tgz#5e4ffdc03f4fe6c009c6729beb29631c2f8227bc"
+import-local@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d"
+  integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==
   dependencies:
-    pkg-dir "^2.0.0"
+    pkg-dir "^3.0.0"
     resolve-cwd "^2.0.0"
 
 imurmurhash@^0.1.4:
   version "0.1.4"
   resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
+  integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
 
 in-publish@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.0.tgz#e20ff5e3a2afc2690320b6dc552682a9c7fadf51"
+  integrity sha1-4g/146KvwmkDILbcVSaCqcf631E=
 
 indent-string@^2.1.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80"
+  integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=
   dependencies:
     repeating "^2.0.0"
 
 indexes-of@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607"
+  integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc=
 
 indexof@0.0.1:
   version "0.0.1"
   resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d"
+  integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=
 
 inflight@^1.0.4:
   version "1.0.6"
   resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
+  integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
   dependencies:
     once "^1.3.0"
     wrappy "1"
@@ -3985,18 +4496,22 @@ inflight@^1.0.4:
 inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3:
   version "2.0.3"
   resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
+  integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
 
 inherits@2.0.1:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
+  integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=
 
 ini@~1.3.0:
   version "1.3.5"
   resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
+  integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==
 
 inquirer@^3.0.6:
   version "3.3.0"
   resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9"
+  integrity sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==
   dependencies:
     ansi-escapes "^3.0.0"
     chalk "^2.0.0"
@@ -4013,87 +4528,120 @@ inquirer@^3.0.6:
     strip-ansi "^4.0.0"
     through "^2.3.6"
 
-internal-ip@1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-1.2.0.tgz#ae9fbf93b984878785d50a8de1b356956058cf5c"
+internal-ip@^3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-3.0.1.tgz#df5c99876e1d2eb2ea2d74f520e3f669a00ece27"
+  integrity sha512-NXXgESC2nNVtU+pqmC9e6R8B1GpKxzsAQhffvh5AL79qKnodd+L7tnEQmTiUAVngqLalPbSqRA7XGIEL5nCd0Q==
   dependencies:
-    meow "^3.3.0"
+    default-gateway "^2.6.0"
+    ipaddr.js "^1.5.2"
 
 interpret@^1.0.1:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614"
+  integrity sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=
 
-invariant@^2.2.0, invariant@^2.2.2:
+invariant@^2.2.2:
   version "2.2.4"
   resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
+  integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
   dependencies:
     loose-envify "^1.0.0"
 
 invert-kv@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
+  integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY=
+
+invert-kv@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02"
+  integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==
+
+ip-regex@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9"
+  integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=
 
 ip@^1.1.0, ip@^1.1.5:
   version "1.1.5"
   resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a"
+  integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=
 
 ipaddr.js@1.8.0:
   version "1.8.0"
   resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.0.tgz#eaa33d6ddd7ace8f7f6fe0c9ca0440e706738b1e"
+  integrity sha1-6qM9bd16zo9/b+DJygRA5wZzix4=
+
+ipaddr.js@^1.5.2:
+  version "1.8.1"
+  resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.1.tgz#fa4b79fa47fd3def5e3b159825161c0a519c9427"
+  integrity sha1-+kt5+kf9Pe9eOxWYJRYcClGclCc=
 
 is-absolute-url@^2.0.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6"
+  integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=
 
 is-accessor-descriptor@^0.1.6:
   version "0.1.6"
   resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"
+  integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=
   dependencies:
     kind-of "^3.0.2"
 
 is-accessor-descriptor@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656"
+  integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==
   dependencies:
     kind-of "^6.0.0"
 
 is-arrayish@^0.2.1:
   version "0.2.1"
   resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
+  integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
 
 is-arrayish@^0.3.1:
   version "0.3.2"
   resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03"
+  integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
 
 is-binary-path@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898"
+  integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=
   dependencies:
     binary-extensions "^1.0.0"
 
 is-buffer@^1.1.5:
   version "1.1.6"
   resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
+  integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
 
 is-builtin-module@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe"
+  integrity sha1-VAVy0096wxGfj3bDDLwbHgN6/74=
   dependencies:
     builtin-modules "^1.0.0"
 
-is-callable@^1.1.1, is-callable@^1.1.3:
+is-callable@^1.1.3, is-callable@^1.1.4:
   version "1.1.4"
   resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75"
+  integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==
 
 is-ci@^1.0.10:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.1.0.tgz#247e4162e7860cebbdaf30b774d6b0ac7dcfe7a5"
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c"
+  integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==
   dependencies:
-    ci-info "^1.0.0"
+    ci-info "^1.5.0"
 
 is-color-stop@^1.0.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345"
+  integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=
   dependencies:
     css-color-names "^0.0.4"
     hex-color-regex "^1.1.0"
@@ -4105,22 +4653,26 @@ is-color-stop@^1.0.0:
 is-data-descriptor@^0.1.4:
   version "0.1.4"
   resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
+  integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=
   dependencies:
     kind-of "^3.0.2"
 
 is-data-descriptor@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7"
+  integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==
   dependencies:
     kind-of "^6.0.0"
 
 is-date-object@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"
+  integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=
 
 is-descriptor@^0.1.0:
   version "0.1.6"
   resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca"
+  integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==
   dependencies:
     is-accessor-descriptor "^0.1.6"
     is-data-descriptor "^0.1.4"
@@ -4129,6 +4681,7 @@ is-descriptor@^0.1.0:
 is-descriptor@^1.0.0, is-descriptor@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec"
+  integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==
   dependencies:
     is-accessor-descriptor "^1.0.0"
     is-data-descriptor "^1.0.0"
@@ -4136,21 +4689,13 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2:
 
 is-directory@^0.3.1:
   version "0.3.1"
-  resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1"
-
-is-dotfile@^1.0.0:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1"
-
-is-equal-shallow@^0.1.3:
-  version "0.1.3"
-  resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534"
-  dependencies:
-    is-primitive "^2.0.0"
+  resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1"
+  integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=
 
 is-expression@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/is-expression/-/is-expression-3.0.0.tgz#39acaa6be7fd1f3471dc42c7416e61c24317ac9f"
+  integrity sha1-Oayqa+f9HzRx3ELHQW5hwkMXrJ8=
   dependencies:
     acorn "~4.0.2"
     object-assign "^4.0.1"
@@ -4158,188 +4703,195 @@ is-expression@^3.0.0:
 is-extendable@^0.1.0, is-extendable@^0.1.1:
   version "0.1.1"
   resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
+  integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=
 
 is-extendable@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4"
+  integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==
   dependencies:
     is-plain-object "^2.0.4"
 
-is-extglob@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0"
-
 is-extglob@^2.1.0, is-extglob@^2.1.1:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
+  integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
 
 is-finite@^1.0.0:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa"
+  integrity sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=
   dependencies:
     number-is-nan "^1.0.0"
 
 is-fullwidth-code-point@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
+  integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs=
   dependencies:
     number-is-nan "^1.0.0"
 
 is-fullwidth-code-point@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
-
-is-glob@^2.0.0, is-glob@^2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863"
-  dependencies:
-    is-extglob "^1.0.0"
+  integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
 
 is-glob@^3.1.0:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a"
+  integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=
   dependencies:
     is-extglob "^2.1.0"
 
 is-glob@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0"
+  integrity sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=
   dependencies:
     is-extglob "^2.1.1"
 
-is-number@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
-  dependencies:
-    kind-of "^3.0.2"
-
 is-number@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
+  integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=
   dependencies:
     kind-of "^3.0.2"
 
-is-number@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff"
-
 is-obj@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
+  integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8=
 
 is-path-cwd@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d"
+  integrity sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=
 
 is-path-in-cwd@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52"
+  integrity sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==
   dependencies:
     is-path-inside "^1.0.0"
 
 is-path-inside@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036"
+  integrity sha1-jvW33lBDej/cprToZe96pVy0gDY=
   dependencies:
     path-is-inside "^1.0.1"
 
 is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4:
   version "2.0.4"
   resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
+  integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
   dependencies:
     isobject "^3.0.1"
 
-is-posix-bracket@^0.1.0:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4"
-
-is-primitive@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575"
-
 is-promise@^2.0.0, is-promise@^2.1.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
+  integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=
 
 is-regex@^1.0.3, is-regex@^1.0.4:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491"
+  integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=
   dependencies:
     has "^1.0.1"
 
 is-resolvable@^1.0.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88"
+  integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==
 
 is-stream@^1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
+  integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
 
 is-svg@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75"
+  integrity sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==
   dependencies:
     html-comment-regex "^1.1.0"
 
-is-symbol@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572"
+is-symbol@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38"
+  integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==
+  dependencies:
+    has-symbols "^1.0.0"
 
 is-typedarray@~1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
+  integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
 
 is-utf8@^0.2.0:
   version "0.2.1"
   resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
+  integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=
 
 is-windows@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
+  integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==
 
 is-wsl@^1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d"
+  integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=
 
 isarray@0.0.1:
   version "0.0.1"
   resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
+  integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=
 
 isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
+  integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
 
 isemail@3.x.x:
-  version "3.1.3"
-  resolved "https://registry.yarnpkg.com/isemail/-/isemail-3.1.3.tgz#64f37fc113579ea12523165c3ebe3a71a56ce571"
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/isemail/-/isemail-3.2.0.tgz#59310a021931a9fb06bbb51e155ce0b3f236832c"
+  integrity sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg==
   dependencies:
     punycode "2.x.x"
 
 isexe@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
+  integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
 
 isobject@^2.0.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
+  integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=
   dependencies:
     isarray "1.0.0"
 
 isobject@^3.0.0, isobject@^3.0.1:
   version "3.0.1"
   resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
+  integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
 
 isstream@~0.1.2:
   version "0.1.2"
   resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
+  integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=
 
 javascript-stringify@^1.6.0:
   version "1.6.0"
   resolved "https://registry.yarnpkg.com/javascript-stringify/-/javascript-stringify-1.6.0.tgz#142d111f3a6e3dae8f4a9afd77d45855b5a9cce3"
+  integrity sha1-FC0RHzpuPa6PSpr9d9RYVbWpzOM=
 
 joi@^13.0.0:
-  version "13.6.0"
-  resolved "https://registry.yarnpkg.com/joi/-/joi-13.6.0.tgz#877d820e3ad688a49c32421ffefc746bfbe2d0a0"
+  version "13.7.0"
+  resolved "https://registry.yarnpkg.com/joi/-/joi-13.7.0.tgz#cfd85ebfe67e8a1900432400b4d03bbd93fb879f"
+  integrity sha512-xuY5VkHfeOYK3Hdi91ulocfuFopwgbSORmIwzcwHKESQhC7w1kD5jaVSPnqDxS2I8t3RZ9omCKAxNwXN5zG1/Q==
   dependencies:
     hoek "5.x.x"
     isemail "3.x.x"
@@ -4348,47 +4900,54 @@ joi@^13.0.0:
 jquery@x.*:
   version "3.3.1"
   resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.3.1.tgz#958ce29e81c9790f31be7792df5d4d95fc57fbca"
+  integrity sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg==
 
 js-base64@^2.1.8:
-  version "2.4.8"
-  resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.8.tgz#57a9b130888f956834aa40c5b165ba59c758f033"
+  version "2.5.0"
+  resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.5.0.tgz#42255ba183ab67ce59a0dee640afdc00ab5ae93e"
+  integrity sha512-wlEBIZ5LP8usDylWbDNhKPEFVFdI5hCHpnVoT/Ysvoi/PRhJENm/Rlh9TvjYB38HFfKZN7OzEbRjmjvLkFw11g==
+
+js-levenshtein@^1.1.3:
+  version "1.1.4"
+  resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.4.tgz#3a56e3cbf589ca0081eb22cd9ba0b1290a16d26e"
+  integrity sha512-PxfGzSs0ztShKrUYPIn5r0MtyAhYcCwmndozzpz8YObbPnD1jFxzlBGbRnX2mIu6Z13xN6+PTu05TQFnZFlzow==
 
 js-logger@^1.4.1:
-  version "1.4.1"
-  resolved "https://registry.yarnpkg.com/js-logger/-/js-logger-1.4.1.tgz#f0230dc5e84e120f213d6e5a6b767a913d290335"
+  version "1.6.0"
+  resolved "https://registry.yarnpkg.com/js-logger/-/js-logger-1.6.0.tgz#7abae5cfaf208c965f3ef20754533bb9e79c7aef"
+  integrity sha512-K4kt2AdD0jUYINbe00BPPpsL65u/rdYOgfaBBVWm/mid+ANk7qxDnoXgKI5ilm49Sjmach2Dzlc+5VxKdRA3tw==
 
 js-message@1.0.5:
   version "1.0.5"
   resolved "https://registry.yarnpkg.com/js-message/-/js-message-1.0.5.tgz#2300d24b1af08e89dd095bc1a4c9c9cfcb892d15"
+  integrity sha1-IwDSSxrwjondCVvBpMnJz8uJLRU=
 
 js-queue@2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/js-queue/-/js-queue-2.0.0.tgz#362213cf860f468f0125fc6c96abc1742531f948"
+  integrity sha1-NiITz4YPRo8BJfxslqvBdCUx+Ug=
   dependencies:
     easy-stack "^1.0.0"
 
 js-stringify@^1.0.1:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/js-stringify/-/js-stringify-1.0.2.tgz#1736fddfd9724f28a3682adc6230ae7e4e9679db"
+  integrity sha1-Fzb939lyTyijaCrcYjCufk6Weds=
 
-js-tokens@^3.0.0, js-tokens@^3.0.2:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
-
-"js-tokens@^3.0.0 || ^4.0.0":
+"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
+  integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
+
+js-tokens@^3.0.2:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
+  integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls=
 
-js-yaml@^3.9.0, js-yaml@^3.9.1:
+js-yaml@^3.12.0, js-yaml@^3.9.0, js-yaml@^3.9.1:
   version "3.12.0"
   resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1"
-  dependencies:
-    argparse "^1.0.7"
-    esprima "^4.0.0"
-
-js-yaml@~3.10.0:
-  version "3.10.0"
-  resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc"
+  integrity sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==
   dependencies:
     argparse "^1.0.7"
     esprima "^4.0.0"
@@ -4396,95 +4955,118 @@ js-yaml@~3.10.0:
 jsbn@~0.1.0:
   version "0.1.1"
   resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
+  integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM=
 
 jsdom-global@^3.0.2:
   version "3.0.2"
   resolved "https://registry.yarnpkg.com/jsdom-global/-/jsdom-global-3.0.2.tgz#6bd299c13b0c4626b2da2c0393cd4385d606acb9"
+  integrity sha1-a9KZwTsMRiay2iwDk81DhdYGrLk=
 
-jsdom@^11.11.0:
-  version "11.12.0"
-  resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8"
+jsdom@^13.0.0:
+  version "13.1.0"
+  resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-13.1.0.tgz#fa7356f0cc8111d0f1077cb7800d06f22f1d66c7"
+  integrity sha512-C2Kp0qNuopw0smXFaHeayvharqF3kkcNqlcIlSX71+3XrsOFwkEPLt/9f5JksMmaul2JZYIQuY+WTpqHpQQcLg==
   dependencies:
     abab "^2.0.0"
-    acorn "^5.5.3"
-    acorn-globals "^4.1.0"
+    acorn "^6.0.4"
+    acorn-globals "^4.3.0"
     array-equal "^1.0.0"
-    cssom ">= 0.3.2 < 0.4.0"
-    cssstyle "^1.0.0"
-    data-urls "^1.0.0"
+    cssom "^0.3.4"
+    cssstyle "^1.1.1"
+    data-urls "^1.1.0"
     domexception "^1.0.1"
-    escodegen "^1.9.1"
+    escodegen "^1.11.0"
     html-encoding-sniffer "^1.0.2"
-    left-pad "^1.3.0"
-    nwsapi "^2.0.7"
-    parse5 "4.0.0"
+    nwsapi "^2.0.9"
+    parse5 "5.1.0"
     pn "^1.1.0"
-    request "^2.87.0"
+    request "^2.88.0"
     request-promise-native "^1.0.5"
-    sax "^1.2.4"
+    saxes "^3.1.4"
     symbol-tree "^3.2.2"
-    tough-cookie "^2.3.4"
+    tough-cookie "^2.5.0"
     w3c-hr-time "^1.0.1"
+    w3c-xmlserializer "^1.0.1"
     webidl-conversions "^4.0.2"
-    whatwg-encoding "^1.0.3"
-    whatwg-mimetype "^2.1.0"
-    whatwg-url "^6.4.1"
-    ws "^5.2.0"
+    whatwg-encoding "^1.0.5"
+    whatwg-mimetype "^2.3.0"
+    whatwg-url "^7.0.0"
+    ws "^6.1.2"
     xml-name-validator "^3.0.0"
 
 jsesc@^2.5.1:
-  version "2.5.1"
-  resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.1.tgz#e421a2a8e20d6b0819df28908f782526b96dd1fe"
+  version "2.5.2"
+  resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
+  integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
 
 jsesc@~0.5.0:
   version "0.5.0"
   resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
+  integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=
 
 json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
+  integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
 
 json-schema-traverse@^0.3.0:
   version "0.3.1"
   resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"
+  integrity sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=
 
 json-schema-traverse@^0.4.1:
   version "0.4.1"
   resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
+  integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
 
 json-schema@0.2.3:
   version "0.2.3"
   resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
+  integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=
 
 json-stable-stringify-without-jsonify@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
+  integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
 
 json-stringify-safe@~5.0.1:
   version "5.0.1"
   resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
+  integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
 
 json3@^3.3.2:
   version "3.3.2"
   resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1"
+  integrity sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=
 
 json5@^0.5.0:
   version "0.5.1"
   resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
+  integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=
+
+json5@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850"
+  integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==
+  dependencies:
+    minimist "^1.2.0"
 
 jsonfile@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
+  integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=
   optionalDependencies:
     graceful-fs "^4.1.6"
 
 jsonify@~0.0.0:
   version "0.0.0"
   resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
+  integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=
 
 jsprim@^1.2.2:
   version "1.4.1"
   resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
+  integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=
   dependencies:
     assert-plus "1.0.0"
     extsprintf "1.3.0"
@@ -4494,51 +5076,61 @@ jsprim@^1.2.2:
 jstransformer@1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/jstransformer/-/jstransformer-1.0.0.tgz#ed8bf0921e2f3f1ed4d5c1a44f68709ed24722c3"
+  integrity sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=
   dependencies:
     is-promise "^2.0.0"
     promise "^7.0.1"
 
-just-extend@^1.1.27:
-  version "1.1.27"
-  resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-1.1.27.tgz#ec6e79410ff914e472652abfa0e603c03d60e905"
+just-extend@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.0.2.tgz#f3f47f7dfca0f989c55410a7ebc8854b07108afc"
+  integrity sha512-FrLwOgm+iXrPV+5zDU6Jqu4gCRXbWEQg2O3SKONsWE4w7AXFRkryS53bpWdaL9cNol+AmR3AEYz6kn+o0fCPnw==
 
 jwt-decode@^2.2.0:
   version "2.2.0"
   resolved "https://registry.yarnpkg.com/jwt-decode/-/jwt-decode-2.2.0.tgz#7d86bd56679f58ce6a84704a657dd392bba81a79"
+  integrity sha1-fYa9VmefWM5qhHBKZX3TkruoGnk=
 
 killable@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.0.tgz#da8b84bd47de5395878f95d64d02f2449fe05e6b"
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892"
+  integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==
 
 kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
   version "3.2.2"
   resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
+  integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=
   dependencies:
     is-buffer "^1.1.5"
 
 kind-of@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57"
+  integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc=
   dependencies:
     is-buffer "^1.1.5"
 
 kind-of@^5.0.0:
   version "5.1.0"
   resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d"
+  integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==
 
 kind-of@^6.0.0, kind-of@^6.0.2:
   version "6.0.2"
   resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051"
+  integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==
 
 launch-editor-middleware@^2.2.1:
   version "2.2.1"
   resolved "https://registry.yarnpkg.com/launch-editor-middleware/-/launch-editor-middleware-2.2.1.tgz#e14b07e6c7154b0a4b86a0fd345784e45804c157"
+  integrity sha512-s0UO2/gEGiCgei3/2UN3SMuUj1phjQN8lcpnvgLSz26fAzNWPQ6Nf/kF5IFClnfU2ehp6LrmKdMU/beveO+2jg==
   dependencies:
     launch-editor "^2.2.1"
 
 launch-editor@^2.2.1:
   version "2.2.1"
   resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.2.1.tgz#871b5a3ee39d6680fcc26d37930b6eeda89db0ca"
+  integrity sha512-On+V7K2uZK6wK7x691ycSUbLD/FyKKelArkbaAMSSJU8JmqmhwN2+mnJDNINuJWSrh2L0kDk+ZQtbC/gOWUwLw==
   dependencies:
     chalk "^2.3.0"
     shell-quote "^1.6.1"
@@ -4546,20 +5138,26 @@ launch-editor@^2.2.1:
 lazy-cache@^1.0.3:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
+  integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4=
 
 lcid@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835"
+  integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=
   dependencies:
     invert-kv "^1.0.0"
 
-left-pad@^1.3.0:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e"
+lcid@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf"
+  integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==
+  dependencies:
+    invert-kv "^2.0.0"
 
 levn@^0.3.0, levn@~0.3.0:
   version "0.3.0"
   resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
+  integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=
   dependencies:
     prelude-ls "~1.1.2"
     type-check "~0.3.2"
@@ -4567,6 +5165,7 @@ levn@^0.3.0, levn@~0.3.0:
 load-json-file@^1.0.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0"
+  integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=
   dependencies:
     graceful-fs "^4.1.2"
     parse-json "^2.2.0"
@@ -4577,17 +5176,20 @@ load-json-file@^1.0.0:
 loader-fs-cache@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/loader-fs-cache/-/loader-fs-cache-1.0.1.tgz#56e0bf08bd9708b26a765b68509840c8dec9fdbc"
+  integrity sha1-VuC/CL2XCLJqdltoUJhAyN7J/bw=
   dependencies:
     find-cache-dir "^0.1.1"
     mkdirp "0.5.1"
 
 loader-runner@^2.3.0:
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2"
+  version "2.3.1"
+  resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.1.tgz#026f12fe7c3115992896ac02ba022ba92971b979"
+  integrity sha512-By6ZFY7ETWOc9RFaAIb23IjJVcM4dvJC/N57nmdz9RSkMXvAXGI7SyVlAw3v8vjtDRlqThgVDVmTnr9fqMlxkw==
 
 loader-utils@^0.2.16:
   version "0.2.17"
   resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348"
+  integrity sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=
   dependencies:
     big.js "^3.1.3"
     emojis-list "^2.0.0"
@@ -4597,116 +5199,131 @@ loader-utils@^0.2.16:
 loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd"
+  integrity sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=
   dependencies:
     big.js "^3.1.3"
     emojis-list "^2.0.0"
     json5 "^0.5.0"
 
+loadjs@^3.5.4:
+  version "3.5.5"
+  resolved "https://registry.yarnpkg.com/loadjs/-/loadjs-3.5.5.tgz#2fbaa981ffdd079e0f8786ea75aeed643483b368"
+  integrity sha512-qBuLnKt4C6+vctutozFqPHQ6s4SSa9tcE64NsvDJ92UZmUrFvqGI1oVOtnZz2xwpgOT+2niQtHtQIDP4e/wlTA==
+
 locate-path@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
+  integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=
   dependencies:
     p-locate "^2.0.0"
     path-exists "^3.0.0"
 
+locate-path@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e"
+  integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==
+  dependencies:
+    p-locate "^3.0.0"
+    path-exists "^3.0.0"
+
 lodash.assign@^4.2.0:
   version "4.2.0"
   resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7"
-
-lodash.camelcase@^4.3.0:
-  version "4.3.0"
-  resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
+  integrity sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=
 
 lodash.clonedeep@^4.3.2:
   version "4.5.0"
   resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
+  integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=
 
 lodash.debounce@^4.0.8:
   version "4.0.8"
   resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
+  integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168=
 
 lodash.defaultsdeep@^4.6.0:
   version "4.6.0"
   resolved "https://registry.yarnpkg.com/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.0.tgz#bec1024f85b1bd96cbea405b23c14ad6443a6f81"
+  integrity sha1-vsECT4WxvZbL6kBbI8FK1kQ6b4E=
 
 lodash.get@^4.4.2:
   version "4.4.2"
   resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
+  integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=
 
 lodash.mapvalues@^4.6.0:
   version "4.6.0"
   resolved "https://registry.yarnpkg.com/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz#1bafa5005de9dd6f4f26668c30ca37230cc9689c"
+  integrity sha1-G6+lAF3p3W9PJmaMMMo3IwzJaJw=
 
 lodash.memoize@^4.1.2:
   version "4.1.2"
   resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
+  integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=
 
 lodash.mergewith@^4.6.0:
   version "4.6.1"
   resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz#639057e726c3afbdb3e7d42741caa8d6e4335927"
+  integrity sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==
 
 lodash.sortby@^4.7.0:
   version "4.7.0"
   resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
+  integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=
 
 lodash.tail@^4.1.1:
   version "4.1.1"
   resolved "https://registry.yarnpkg.com/lodash.tail/-/lodash.tail-4.1.1.tgz#d2333a36d9e7717c8ad2f7cacafec7c32b444664"
+  integrity sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=
 
 lodash.transform@^4.6.0:
   version "4.6.0"
   resolved "https://registry.yarnpkg.com/lodash.transform/-/lodash.transform-4.6.0.tgz#12306422f63324aed8483d3f38332b5f670547a0"
+  integrity sha1-EjBkIvYzJK7YSD0/ODMrX2cFR6A=
 
 lodash.uniq@^4.5.0:
   version "4.5.0"
   resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
+  integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
 
-lodash@^4.0.0, lodash@^4.13.1, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.0, lodash@^4.3.0, lodash@~4.17.10:
-  version "4.17.10"
-  resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7"
+lodash@^4.0.0, lodash@^4.13.1, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.3.0, lodash@~4.17.10:
+  version "4.17.11"
+  resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
+  integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==
 
-log-symbols@^2.1.0, log-symbols@^2.2.0:
+log-symbols@^2.2.0:
   version "2.2.0"
   resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a"
+  integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==
   dependencies:
     chalk "^2.0.1"
 
 loglevel@^1.4.1:
   version "1.6.1"
   resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.1.tgz#e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa"
+  integrity sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=
 
-loglevelnext@^1.0.1:
-  version "1.0.5"
-  resolved "https://registry.yarnpkg.com/loglevelnext/-/loglevelnext-1.0.5.tgz#36fc4f5996d6640f539ff203ba819641680d75a2"
-  dependencies:
-    es6-symbol "^3.1.1"
-    object.assign "^4.1.0"
-
-lolex@^2.3.2, lolex@^2.7.1:
-  version "2.7.1"
-  resolved "https://registry.yarnpkg.com/lolex/-/lolex-2.7.1.tgz#e40a8c4d1f14b536aa03e42a537c7adbaf0c20be"
-
-long@4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28"
-
-long@^3.2.0:
-  version "3.2.0"
-  resolved "https://registry.yarnpkg.com/long/-/long-3.2.0.tgz#d821b7138ca1cb581c172990ef14db200b5c474b"
+lolex@^2.3.2, lolex@^2.7.5:
+  version "2.7.5"
+  resolved "https://registry.yarnpkg.com/lolex/-/lolex-2.7.5.tgz#113001d56bfc7e02d56e36291cc5c413d1aa0733"
+  integrity sha512-l9x0+1offnKKIzYVjyXU2SiwhXDLekRzKyhnbyldPHvC7BvLPVpdNUNR2KeMAiCN2D/kLNttZgQD5WjSxuBx3Q==
 
 longest@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
+  integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=
 
 loose-envify@^1.0.0:
   version "1.4.0"
   resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
+  integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
   dependencies:
     js-tokens "^3.0.0 || ^4.0.0"
 
-loud-rejection@^1.0.0, loud-rejection@^1.6.0:
+loud-rejection@^1.0.0:
   version "1.6.0"
   resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f"
+  integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=
   dependencies:
     currently-unhandled "^0.4.1"
     signal-exit "^3.0.0"
@@ -4714,10 +5331,12 @@ loud-rejection@^1.0.0, loud-rejection@^1.6.0:
 lower-case@^1.1.1:
   version "1.1.4"
   resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac"
+  integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw=
 
-lru-cache@^4.0.1, lru-cache@^4.1.1, lru-cache@^4.1.2:
-  version "4.1.3"
-  resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.3.tgz#a1175cf3496dfc8436c156c334b4955992bce69c"
+lru-cache@^4.0.1, lru-cache@^4.1.1, lru-cache@^4.1.2, lru-cache@^4.1.3:
+  version "4.1.5"
+  resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd"
+  integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==
   dependencies:
     pseudomap "^1.0.2"
     yallist "^2.1.2"
@@ -4725,76 +5344,89 @@ lru-cache@^4.0.1, lru-cache@^4.1.1, lru-cache@^4.1.2:
 make-dir@^1.0.0:
   version "1.3.0"
   resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c"
+  integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==
   dependencies:
     pify "^3.0.0"
 
-mamacro@^0.0.3:
-  version "0.0.3"
-  resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4"
+map-age-cleaner@^0.1.1:
+  version "0.1.3"
+  resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a"
+  integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==
+  dependencies:
+    p-defer "^1.0.0"
 
 map-cache@^0.2.2:
   version "0.2.2"
   resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
+  integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=
 
 map-obj@^1.0.0, map-obj@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d"
+  integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=
 
 map-visit@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f"
+  integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=
   dependencies:
     object-visit "^1.0.0"
 
-masonry-layout@4.2.0:
-  version "4.2.0"
-  resolved "https://registry.yarnpkg.com/masonry-layout/-/masonry-layout-4.2.0.tgz#43835c6b6e0d72eff2c31a118c8000cccc4ab965"
-  dependencies:
-    get-size "^2.0.2"
-    outlayer "^2.1.0"
-
 masonry-layout@^4.2.2:
   version "4.2.2"
   resolved "https://registry.yarnpkg.com/masonry-layout/-/masonry-layout-4.2.2.tgz#d57b44af13e601bfcdc423f1dd8348b5524de348"
+  integrity sha512-iGtAlrpHNyxaR19CvKC3npnEcAwszXoyJiI8ARV2ePi7fmYhIud25MHK8Zx4P0LCC4d3TNO9+rFa1KoK1OEOaA==
   dependencies:
     get-size "^2.0.2"
     outlayer "^2.1.0"
 
-math-random@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.1.tgz#8b3aac588b8a66e4975e3cdea67f7bb329601fac"
-
 md5.js@^1.3.4:
-  version "1.3.4"
-  resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d"
+  version "1.3.5"
+  resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f"
+  integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==
   dependencies:
     hash-base "^3.0.0"
     inherits "^2.0.1"
+    safe-buffer "^5.1.2"
 
-mdn-data@^1.0.0, mdn-data@~1.1.0:
+mdn-data@~1.1.0:
   version "1.1.4"
   resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-1.1.4.tgz#50b5d4ffc4575276573c4eedb8780812a8419f01"
+  integrity sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA==
 
 media-typer@0.3.0:
   version "0.3.0"
   resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
+  integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=
 
 mem@^1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76"
+  integrity sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=
   dependencies:
     mimic-fn "^1.0.0"
 
+mem@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/mem/-/mem-4.0.0.tgz#6437690d9471678f6cc83659c00cbafcd6b0cdaf"
+  integrity sha512-WQxG/5xYc3tMbYLXoXPm81ET2WDULiU5FxbuIoNbJqLOOI8zehXFdZuiUEgfdrU2mVB1pxBZUGlYORSrpuJreA==
+  dependencies:
+    map-age-cleaner "^0.1.1"
+    mimic-fn "^1.0.0"
+    p-is-promise "^1.1.0"
+
 memory-fs@^0.4.0, memory-fs@^0.4.1, memory-fs@~0.4.1:
   version "0.4.1"
   resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552"
+  integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=
   dependencies:
     errno "^0.1.3"
     readable-stream "^2.0.1"
 
-meow@^3.3.0, meow@^3.7.0:
+meow@^3.7.0:
   version "3.7.0"
   resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb"
+  integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=
   dependencies:
     camelcase-keys "^2.0.0"
     decamelize "^1.1.2"
@@ -4810,42 +5442,29 @@ meow@^3.3.0, meow@^3.7.0:
 merge-descriptors@1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
+  integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=
 
 merge-source-map@^1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646"
+  integrity sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==
   dependencies:
     source-map "^0.6.1"
 
-merge2@^1.2.1:
-  version "1.2.2"
-  resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.2.tgz#03212e3da8d86c4d8523cebd6318193414f94e34"
+merge2@^1.2.3:
+  version "1.2.3"
+  resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.3.tgz#7ee99dbd69bb6481689253f018488a1b902b0ed5"
+  integrity sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA==
 
 methods@~1.1.2:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
-
-micromatch@^2.3.11:
-  version "2.3.11"
-  resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565"
-  dependencies:
-    arr-diff "^2.0.0"
-    array-unique "^0.2.1"
-    braces "^1.8.2"
-    expand-brackets "^0.1.4"
-    extglob "^0.3.1"
-    filename-regex "^2.0.0"
-    is-extglob "^1.0.0"
-    is-glob "^2.0.1"
-    kind-of "^3.0.2"
-    normalize-path "^2.0.1"
-    object.omit "^2.0.0"
-    parse-glob "^3.0.4"
-    regex-cache "^0.4.2"
+  integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
 
 micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8, micromatch@^3.1.9:
   version "3.1.10"
   resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
+  integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==
   dependencies:
     arr-diff "^4.0.0"
     array-unique "^0.3.2"
@@ -4864,78 +5483,93 @@ micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8, micromatch@^3.1.9:
 miller-rabin@^4.0.0:
   version "4.0.1"
   resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d"
+  integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==
   dependencies:
     bn.js "^4.0.0"
     brorand "^1.0.1"
 
-"mime-db@>= 1.34.0 < 2", mime-db@~1.35.0:
-  version "1.35.0"
-  resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.35.0.tgz#0569d657466491283709663ad379a99b90d9ab47"
+"mime-db@>= 1.36.0 < 2", mime-db@~1.37.0:
+  version "1.37.0"
+  resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.37.0.tgz#0b6a0ce6fdbe9576e25f1f2d2fde8830dc0ad0d8"
+  integrity sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==
 
 mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.18, mime-types@~2.1.19:
-  version "2.1.19"
-  resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.19.tgz#71e464537a7ef81c15f2db9d97e913fc0ff606f0"
+  version "2.1.21"
+  resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.21.tgz#28995aa1ecb770742fe6ae7e58f9181c744b3f96"
+  integrity sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==
   dependencies:
-    mime-db "~1.35.0"
+    mime-db "~1.37.0"
 
 mime@1.4.1:
   version "1.4.1"
   resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6"
+  integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==
 
-mime@^2.0.3, mime@^2.1.0:
-  version "2.3.1"
-  resolved "https://registry.yarnpkg.com/mime/-/mime-2.3.1.tgz#b1621c54d63b97c47d3cfe7f7215f7d64517c369"
+mime@^2.0.3, mime@^2.3.1:
+  version "2.4.0"
+  resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.0.tgz#e051fd881358585f3279df333fe694da0bcffdd6"
+  integrity sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w==
 
 mimic-fn@^1.0.0:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
+  integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==
 
-mini-css-extract-plugin@^0.4.1:
-  version "0.4.1"
-  resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.1.tgz#d2bcf77bb2596b8e4bd9257e43d3f9164c2e86cb"
+mini-css-extract-plugin@^0.4.5:
+  version "0.4.5"
+  resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.5.tgz#c99e9e78d54f3fa775633aee5933aeaa4e80719a"
+  integrity sha512-dqBanNfktnp2hwL2YguV9Jh91PFX7gu7nRLs4TGsbAfAG6WOtlynFRYzwDwmmeSb5uIwHo9nx1ta0f7vAZVp2w==
   dependencies:
-    "@webpack-contrib/schema-utils" "^1.0.0-beta.0"
     loader-utils "^1.1.0"
+    schema-utils "^1.0.0"
     webpack-sources "^1.1.0"
 
 minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
+  integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
 
 minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
+  integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=
 
-"minimatch@2 || 3", minimatch@3.0.4, minimatch@^3.0.2, minimatch@^3.0.4, minimatch@~3.0.2:
+minimatch@3.0.4, minimatch@^3.0.2, minimatch@^3.0.4, minimatch@~3.0.2:
   version "3.0.4"
   resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
+  integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
   dependencies:
     brace-expansion "^1.1.7"
 
 minimist@0.0.8:
   version "0.0.8"
   resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
+  integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
 
 minimist@^1.1.3, minimist@^1.2.0:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
+  integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=
 
-minipass@^2.2.1, minipass@^2.3.3:
-  version "2.3.4"
-  resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.4.tgz#4768d7605ed6194d6d576169b9e12ef71e9d9957"
+minipass@^2.2.1, minipass@^2.3.4:
+  version "2.3.5"
+  resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848"
+  integrity sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==
   dependencies:
     safe-buffer "^5.1.2"
     yallist "^3.0.0"
 
-minizlib@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.0.tgz#11e13658ce46bc3a70a267aac58359d1e0c29ceb"
+minizlib@^1.1.1:
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614"
+  integrity sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==
   dependencies:
     minipass "^2.2.1"
 
 mississippi@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-2.0.0.tgz#3442a508fafc28500486feea99409676e4ee5a6f"
+  integrity sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==
   dependencies:
     concat-stream "^1.5.0"
     duplexify "^3.4.2"
@@ -4948,9 +5582,26 @@ mississippi@^2.0.0:
     stream-each "^1.1.0"
     through2 "^2.0.0"
 
+mississippi@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022"
+  integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==
+  dependencies:
+    concat-stream "^1.5.0"
+    duplexify "^3.4.2"
+    end-of-stream "^1.1.0"
+    flush-write-stream "^1.0.0"
+    from2 "^2.1.0"
+    parallel-transform "^1.1.0"
+    pump "^3.0.0"
+    pumpify "^1.3.3"
+    stream-each "^1.1.0"
+    through2 "^2.0.0"
+
 mixin-deep@^1.2.0:
   version "1.3.1"
   resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe"
+  integrity sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==
   dependencies:
     for-in "^1.0.2"
     is-extendable "^1.0.1"
@@ -4958,6 +5609,7 @@ mixin-deep@^1.2.0:
 mixin-object@^2.0.1:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/mixin-object/-/mixin-object-2.0.1.tgz#4fb949441dab182540f1fe035ba60e1947a5e57e"
+  integrity sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=
   dependencies:
     for-in "^0.1.3"
     is-extendable "^0.1.1"
@@ -4965,12 +5617,14 @@ mixin-object@^2.0.1:
 mkdirp@0.5.1, mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1:
   version "0.5.1"
   resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
+  integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
   dependencies:
     minimist "0.0.8"
 
 mocha-webpack@^2.0.0-beta.0:
   version "2.0.0-beta.0"
   resolved "https://registry.yarnpkg.com/mocha-webpack/-/mocha-webpack-2.0.0-beta.0.tgz#d85fc9a70f82a4ad595b7702a1181605dfa59549"
+  integrity sha512-2ezbW0h5cYWr874F/hzytQCqINxk+GVelMY4xWTSHwwH1LrPAOzjlUljZ+/PhpaP6QeqYbL5x5vK/bnaXqkfEw==
   dependencies:
     babel-runtime "^6.18.0"
     chalk "^2.3.0"
@@ -4993,6 +5647,7 @@ mocha-webpack@^2.0.0-beta.0:
 mocha@^5.2.0:
   version "5.2.0"
   resolved "https://registry.yarnpkg.com/mocha/-/mocha-5.2.0.tgz#6d8ae508f59167f940f2b5b3c4a612ae50c90ae6"
+  integrity sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==
   dependencies:
     browser-stdout "1.3.1"
     commander "2.15.1"
@@ -5007,12 +5662,14 @@ mocha@^5.2.0:
     supports-color "5.4.0"
 
 moment@^2.22.2:
-  version "2.22.2"
-  resolved "https://registry.yarnpkg.com/moment/-/moment-2.22.2.tgz#3c257f9839fc0e93ff53149632239eb90783ff66"
+  version "2.23.0"
+  resolved "https://registry.yarnpkg.com/moment/-/moment-2.23.0.tgz#759ea491ac97d54bac5ad776996e2a58cc1bc225"
+  integrity sha512-3IE39bHVqFbWWaPOMHZF98Q9c3LDKGTmypMiTM2QygGXXElkFWIH7GxfmlwmY2vwa+wmNsoYZmG2iusf1ZjJoA==
 
 move-concurrently@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92"
+  integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=
   dependencies:
     aproba "^1.1.1"
     copy-concurrently "^1.0.0"
@@ -5024,18 +5681,27 @@ move-concurrently@^1.0.1:
 moxios@^0.4.0:
   version "0.4.0"
   resolved "https://registry.yarnpkg.com/moxios/-/moxios-0.4.0.tgz#fc0da2c65477d725ca6b9679d58370ed0c52f53b"
+  integrity sha1-/A2ixlR31yXKa5Z51YNw7QxS9Ts=
 
 ms@2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
+  integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
+
+ms@^2.1.1:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
+  integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==
 
 multicast-dns-service-types@^1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901"
+  integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=
 
 multicast-dns@^6.0.1:
   version "6.2.3"
   resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229"
+  integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==
   dependencies:
     dns-packet "^1.3.1"
     thunky "^1.0.2"
@@ -5043,14 +5709,17 @@ multicast-dns@^6.0.1:
 mute-stream@0.0.7:
   version "0.0.7"
   resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
+  integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=
 
 nan@^2.10.0, nan@^2.9.2:
-  version "2.10.0"
-  resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f"
+  version "2.12.1"
+  resolved "https://registry.yarnpkg.com/nan/-/nan-2.12.1.tgz#7b1aa193e9aa86057e3c7bbd0ac448e770925552"
+  integrity sha512-JY7V6lRkStKcKTvHO5NVSQRv+RV+FIL5pvDoLiAtSL9pKlC5x9PKQcZDsq7m4FO4d57mkhC6Z+QhAh3Jdk5JFw==
 
 nanomatch@^1.2.9:
   version "1.2.13"
   resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
+  integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==
   dependencies:
     arr-diff "^4.0.0"
     array-unique "^0.3.2"
@@ -5067,10 +5736,12 @@ nanomatch@^1.2.9:
 natural-compare@^1.4.0:
   version "1.4.0"
   resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
+  integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
 
 needle@^2.2.1:
-  version "2.2.2"
-  resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.2.tgz#1120ca4c41f2fcc6976fd28a8968afe239929418"
+  version "2.2.4"
+  resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.4.tgz#51931bff82533b1928b7d1d69e01f1b00ffd2a4e"
+  integrity sha512-HyoqEb4wr/rsoaIDfTH2aVL9nWtQqba2/HvMv+++m8u0dz808MaagKILxtfeSN7QU7nvbQ79zk3vYOJp9zsNEA==
   dependencies:
     debug "^2.1.2"
     iconv-lite "^0.4.4"
@@ -5079,25 +5750,25 @@ needle@^2.2.1:
 negotiator@0.6.1:
   version "0.6.1"
   resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9"
+  integrity sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=
 
 neo-async@^2.5.0:
-  version "2.5.1"
-  resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.5.1.tgz#acb909e327b1e87ec9ef15f41b8a269512ad41ee"
-
-next-tick@1:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c"
+  version "2.6.0"
+  resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.0.tgz#b9d15e4d71c6762908654b5183ed38b753340835"
+  integrity sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==
 
 nice-try@^1.0.4:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.4.tgz#d93962f6c52f2c1558c0fbda6d512819f1efe1c4"
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
+  integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
 
-nise@^1.4.2:
-  version "1.4.2"
-  resolved "https://registry.yarnpkg.com/nise/-/nise-1.4.2.tgz#a9a3800e3994994af9e452333d549d60f72b8e8c"
+nise@^1.4.5:
+  version "1.4.8"
+  resolved "https://registry.yarnpkg.com/nise/-/nise-1.4.8.tgz#ce91c31e86cf9b2c4cac49d7fcd7f56779bfd6b0"
+  integrity sha512-kGASVhuL4tlAV0tvA34yJYZIVihrUt/5bDwpp4tTluigxUr2bBlJeDXmivb6NuEdFkqvdv/Ybb9dm16PSKUhtw==
   dependencies:
-    "@sinonjs/formatio" "^2.0.0"
-    just-extend "^1.1.27"
+    "@sinonjs/formatio" "^3.1.0"
+    just-extend "^4.0.2"
     lolex "^2.3.2"
     path-to-regexp "^1.7.0"
     text-encoding "^0.6.4"
@@ -5105,16 +5776,19 @@ nise@^1.4.2:
 no-case@^2.2.0:
   version "2.3.2"
   resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac"
+  integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==
   dependencies:
     lower-case "^1.1.1"
 
 node-forge@0.7.5:
   version "0.7.5"
   resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.5.tgz#6c152c345ce11c52f465c2abd957e8639cd674df"
+  integrity sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ==
 
 node-gyp@^3.8.0:
   version "3.8.0"
   resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c"
+  integrity sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==
   dependencies:
     fstream "^1.0.0"
     glob "^7.0.3"
@@ -5132,6 +5806,7 @@ node-gyp@^3.8.0:
 node-ipc@^9.1.1:
   version "9.1.1"
   resolved "https://registry.yarnpkg.com/node-ipc/-/node-ipc-9.1.1.tgz#4e245ed6938e65100e595ebc5dc34b16e8dd5d69"
+  integrity sha512-FAyICv0sIRJxVp3GW5fzgaf9jwwRQxAKDJlmNFUL5hOy+W4X/I5AypyHoq0DXXbo9o/gt79gj++4cMr4jVWE/w==
   dependencies:
     event-pubsub "4.3.0"
     js-message "1.0.5"
@@ -5140,6 +5815,7 @@ node-ipc@^9.1.1:
 node-libs-browser@^2.0.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df"
+  integrity sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==
   dependencies:
     assert "^1.1.1"
     browserify-zlib "^0.2.0"
@@ -5168,6 +5844,7 @@ node-libs-browser@^2.0.0:
 node-pre-gyp@^0.10.0:
   version "0.10.3"
   resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz#3070040716afdc778747b61b6887bf78880b80fc"
+  integrity sha512-d1xFs+C/IPS8Id0qPTZ4bUT8wWryfR/OzzAFxweG+uLN85oPzyo2Iw6bVlLQ/JOdgNonXLCoRyqDzDWq4iw72A==
   dependencies:
     detect-libc "^1.0.2"
     mkdirp "^0.5.1"
@@ -5180,15 +5857,17 @@ node-pre-gyp@^0.10.0:
     semver "^5.3.0"
     tar "^4"
 
-node-releases@^1.0.0-alpha.10:
-  version "1.0.0-alpha.10"
-  resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.0.0-alpha.10.tgz#61c8d5f9b5b2e05d84eba941d05b6f5202f68a2a"
+node-releases@^1.1.1:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.2.tgz#93c17fba5eec8650ad908de5433fa8763baebe4d"
+  integrity sha512-j1gEV/zX821yxdWp/1vBMN0pSUjuH9oGUdLCb4PfUko6ZW7KdRs3Z+QGGwDUhYtSpQvdVVyLd2V0YvLsmdg5jQ==
   dependencies:
     semver "^5.3.0"
 
 node-sass@^4.9.3:
-  version "4.9.3"
-  resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.9.3.tgz#f407cf3d66f78308bb1e346b24fa428703196224"
+  version "4.11.0"
+  resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.11.0.tgz#183faec398e9cbe93ba43362e2768ca988a6369a"
+  integrity sha512-bHUdHTphgQJZaF1LASx0kAviPH7sGlcyNhWade4eVIpFp6tsn7SV8xNMTbsQFpEV9VXpnwTTnNYlfsZXgGgmkA==
   dependencies:
     async-foreach "^0.1.3"
     chalk "^1.1.1"
@@ -5205,7 +5884,7 @@ node-sass@^4.9.3:
     nan "^2.10.0"
     node-gyp "^3.8.0"
     npmlog "^4.0.0"
-    request "2.87.0"
+    request "^2.88.0"
     sass-graph "^2.2.4"
     stdout-stream "^1.4.0"
     "true-case-path" "^1.0.2"
@@ -5213,16 +5892,19 @@ node-sass@^4.9.3:
 nodent-runtime@^3.0.3:
   version "3.2.1"
   resolved "https://registry.yarnpkg.com/nodent-runtime/-/nodent-runtime-3.2.1.tgz#9e2755d85e39f764288f0d4752ebcfe3e541e00e"
+  integrity sha512-7Ws63oC+215smeKJQCxzrK21VFVlCFBkwl0MOObt0HOpVQXs3u483sAmtkF33nNqZ5rSOQjB76fgyPBmAUrtCA==
 
 "nopt@2 || 3":
   version "3.0.6"
   resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9"
+  integrity sha1-xkZdvwirzU2zWTF/eaxopkayj/k=
   dependencies:
     abbrev "1"
 
 nopt@^4.0.1:
   version "4.0.1"
   resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
+  integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=
   dependencies:
     abbrev "1"
     osenv "^0.1.4"
@@ -5230,6 +5912,7 @@ nopt@^4.0.1:
 normalize-package-data@^2.3.2, normalize-package-data@^2.3.4:
   version "2.4.0"
   resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f"
+  integrity sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==
   dependencies:
     hosted-git-info "^2.1.4"
     is-builtin-module "^1.0.0"
@@ -5239,28 +5922,34 @@ normalize-package-data@^2.3.2, normalize-package-data@^2.3.4:
 normalize-path@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-1.0.0.tgz#32d0e472f91ff345701c15a8311018d3b0a90379"
+  integrity sha1-MtDkcvkf80VwHBWoMRAY07CpA3k=
 
 normalize-path@^2.0.1, normalize-path@^2.1.1:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
+  integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=
   dependencies:
     remove-trailing-separator "^1.0.1"
 
 normalize-range@^0.1.2:
   version "0.1.2"
   resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
+  integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=
 
 normalize-url@^3.0.0:
-  version "3.2.0"
-  resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.2.0.tgz#98d0948afc82829f374320f405fe9ca55a5f8567"
+  version "3.3.0"
+  resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559"
+  integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==
 
 npm-bundled@^1.0.1:
   version "1.0.5"
   resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.5.tgz#3c1732b7ba936b3a10325aef616467c0ccbcc979"
+  integrity sha512-m/e6jgWu8/v5niCUKQi9qQl8QdeEduFA96xHDDzFGqly0OOjI7c+60KM/2sppfnUU9JJagf+zs+yGhqSOFj71g==
 
 npm-packlist@^1.1.6:
-  version "1.1.11"
-  resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.11.tgz#84e8c683cbe7867d34b1d357d893ce29e28a02de"
+  version "1.1.12"
+  resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.12.tgz#22bde2ebc12e72ca482abd67afc51eb49377243a"
+  integrity sha512-WJKFOVMeAlsU/pjXuqVdzU0WfgtIBCupkEVwn+1Y0ERAbUfWw8R4GjgVbaKnUjRoD2FoQbHOCbOyT5Mbs9Lw4g==
   dependencies:
     ignore-walk "^3.0.1"
     npm-bundled "^1.0.1"
@@ -5268,73 +5957,82 @@ npm-packlist@^1.1.6:
 npm-run-path@^2.0.0:
   version "2.0.2"
   resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
+  integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=
   dependencies:
     path-key "^2.0.0"
 
 "npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.2:
   version "4.1.2"
   resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
+  integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==
   dependencies:
     are-we-there-yet "~1.1.2"
     console-control-strings "~1.1.0"
     gauge "~2.7.3"
     set-blocking "~2.0.0"
 
-nth-check@^1.0.1, nth-check@~1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.1.tgz#9929acdf628fc2c41098deab82ac580cf149aae4"
+nth-check@^1.0.2, nth-check@~1.0.1:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c"
+  integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==
   dependencies:
     boolbase "~1.0.0"
 
 num2fraction@^1.2.2:
   version "1.2.2"
   resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede"
+  integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=
 
 number-is-nan@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
+  integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
 
-nwsapi@^2.0.7:
-  version "2.0.8"
-  resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.0.8.tgz#e3603579b7e162b3dbedae4fb24e46f771d8fa24"
-
-oauth-sign@~0.8.2:
-  version "0.8.2"
-  resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
+nwsapi@^2.0.9:
+  version "2.0.9"
+  resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.0.9.tgz#77ac0cdfdcad52b6a1151a84e73254edc33ed016"
+  integrity sha512-nlWFSCTYQcHk/6A9FFnfhKc14c3aFhfdNBXgo8Qgi9QTBu/qg3Ww+Uiz9wMzXd1T8GFxPc2QIHB6Qtf2XFryFQ==
 
 oauth-sign@~0.9.0:
   version "0.9.0"
   resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
+  integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
 
 object-assign@^4.0.1, object-assign@^4.1.0:
   version "4.1.1"
   resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
+  integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
 
 object-copy@^0.1.0:
   version "0.1.0"
   resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c"
+  integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw=
   dependencies:
     copy-descriptor "^0.1.0"
     define-property "^0.2.5"
     kind-of "^3.0.3"
 
 object-hash@^1.1.4:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.3.0.tgz#76d9ba6ff113cf8efc0d996102851fe6723963e2"
+  version "1.3.1"
+  resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.3.1.tgz#fde452098a951cb145f039bb7d455449ddc126df"
+  integrity sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==
 
-object-keys@^1.0.11, object-keys@^1.0.8:
+object-keys@^1.0.11, object-keys@^1.0.12:
   version "1.0.12"
   resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2"
+  integrity sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==
 
 object-visit@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb"
+  integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=
   dependencies:
     isobject "^3.0.0"
 
 object.assign@^4.1.0:
   version "4.1.0"
   resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da"
+  integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==
   dependencies:
     define-properties "^1.1.2"
     function-bind "^1.1.1"
@@ -5344,26 +6042,22 @@ object.assign@^4.1.0:
 object.getownpropertydescriptors@^2.0.3:
   version "2.0.3"
   resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16"
+  integrity sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=
   dependencies:
     define-properties "^1.1.2"
     es-abstract "^1.5.1"
 
-object.omit@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa"
-  dependencies:
-    for-own "^0.1.4"
-    is-extendable "^0.1.1"
-
 object.pick@^1.3.0:
   version "1.3.0"
   resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
+  integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=
   dependencies:
     isobject "^3.0.1"
 
 object.values@^1.0.4:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.0.4.tgz#e524da09b4f66ff05df457546ec72ac99f13069a"
+  integrity sha1-5STaCbT2b/Bd9FdUbscqyZ8TBpo=
   dependencies:
     define-properties "^1.1.2"
     es-abstract "^1.6.1"
@@ -5373,42 +6067,50 @@ object.values@^1.0.4:
 obuf@^1.0.0, obuf@^1.1.1:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e"
+  integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==
 
 on-finished@~2.3.0:
   version "2.3.0"
   resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
+  integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=
   dependencies:
     ee-first "1.1.1"
 
 on-headers@~1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7"
+  integrity sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=
 
 once@^1.3.0, once@^1.3.1, once@^1.4.0:
   version "1.4.0"
   resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+  integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
   dependencies:
     wrappy "1"
 
 onetime@^2.0.0:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
+  integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=
   dependencies:
     mimic-fn "^1.0.0"
 
-opener@^1.4.3:
-  version "1.4.3"
-  resolved "https://registry.yarnpkg.com/opener/-/opener-1.4.3.tgz#5c6da2c5d7e5831e8ffa3964950f8d6674ac90b8"
+opener@^1.5.1:
+  version "1.5.1"
+  resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz#6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed"
+  integrity sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA==
 
 opn@^5.1.0, opn@^5.3.0:
-  version "5.3.0"
-  resolved "https://registry.yarnpkg.com/opn/-/opn-5.3.0.tgz#64871565c863875f052cfdf53d3e3cb5adb53b1c"
+  version "5.4.0"
+  resolved "https://registry.yarnpkg.com/opn/-/opn-5.4.0.tgz#cb545e7aab78562beb11aa3bfabc7042e1761035"
+  integrity sha512-YF9MNdVy/0qvJvDtunAOzFw9iasOQHpVthTCvGzxt61Il64AYSGdK+rYwld7NAfk9qJ7dt+hymBNSc9LNYS+Sw==
   dependencies:
     is-wsl "^1.1.0"
 
 optionator@^0.8.1, optionator@^0.8.2:
   version "0.8.2"
   resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64"
+  integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=
   dependencies:
     deep-is "~0.1.3"
     fast-levenshtein "~2.0.4"
@@ -5420,6 +6122,19 @@ optionator@^0.8.1, optionator@^0.8.2:
 ora@^2.1.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/ora/-/ora-2.1.0.tgz#6caf2830eb924941861ec53a173799e008b51e5b"
+  integrity sha512-hNNlAd3gfv/iPmsNxYoAPLvxg7HuPozww7fFonMZvL84tP6Ox5igfk5j/+a9rtJJwqMgKK+JgWsAQik5o0HTLA==
+  dependencies:
+    chalk "^2.3.1"
+    cli-cursor "^2.1.0"
+    cli-spinners "^1.1.0"
+    log-symbols "^2.2.0"
+    strip-ansi "^4.0.0"
+    wcwidth "^1.0.1"
+
+ora@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/ora/-/ora-3.0.0.tgz#8179e3525b9aafd99242d63cc206fd64732741d0"
+  integrity sha512-LBS97LFe2RV6GJmXBi6OKcETKyklHNMV0xw7BtsVn2MlsgsydyZetSCbCANr+PFLmDyv4KV88nn0eCKza665Mg==
   dependencies:
     chalk "^2.3.1"
     cli-cursor "^2.1.0"
@@ -5428,41 +6143,57 @@ ora@^2.1.0:
     strip-ansi "^4.0.0"
     wcwidth "^1.0.1"
 
-original@>=0.0.5:
+original@^1.0.0:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f"
+  integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==
   dependencies:
     url-parse "^1.4.3"
 
 os-browserify@^0.3.0:
   version "0.3.0"
   resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27"
+  integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=
 
 os-homedir@^1.0.0:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
+  integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M=
 
 os-locale@^1.4.0:
   version "1.4.0"
   resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9"
+  integrity sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=
   dependencies:
     lcid "^1.0.0"
 
 os-locale@^2.0.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2"
+  integrity sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==
   dependencies:
     execa "^0.7.0"
     lcid "^1.0.0"
     mem "^1.1.0"
 
+os-locale@^3.0.0:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.0.1.tgz#3b014fbf01d87f60a1e5348d80fe870dc82c4620"
+  integrity sha512-7g5e7dmXPtzcP4bgsZ8ixDVqA7oWYuEz4lOSujeWyliPai4gfVDiFIcwBg3aGCPnmSGfzOKTK3ccPn0CKv3DBw==
+  dependencies:
+    execa "^0.10.0"
+    lcid "^2.0.0"
+    mem "^4.0.0"
+
 os-tmpdir@^1.0.0, os-tmpdir@~1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
+  integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
 
 osenv@0, osenv@^0.1.4:
   version "0.1.5"
   resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410"
+  integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==
   dependencies:
     os-homedir "^1.0.0"
     os-tmpdir "^1.0.0"
@@ -5470,42 +6201,79 @@ osenv@0, osenv@^0.1.4:
 outlayer@^2.1.0:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/outlayer/-/outlayer-2.1.1.tgz#29863b6de10ea5dadfffcadfa0d728907387e9a2"
+  integrity sha1-KYY7beEOpdrf/8rfoNcokHOH6aI=
   dependencies:
     ev-emitter "^1.0.0"
     fizzy-ui-utils "^2.0.0"
     get-size "^2.0.2"
 
+p-defer@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c"
+  integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=
+
 p-finally@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
+  integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=
+
+p-is-promise@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e"
+  integrity sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=
 
 p-limit@^1.0.0, p-limit@^1.1.0:
   version "1.3.0"
   resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"
+  integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==
   dependencies:
     p-try "^1.0.0"
 
+p-limit@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.0.0.tgz#e624ed54ee8c460a778b3c9f3670496ff8a57aec"
+  integrity sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==
+  dependencies:
+    p-try "^2.0.0"
+
 p-locate@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
+  integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=
   dependencies:
     p-limit "^1.1.0"
 
+p-locate@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4"
+  integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==
+  dependencies:
+    p-limit "^2.0.0"
+
 p-map@^1.1.1:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b"
+  integrity sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==
 
 p-try@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
+  integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=
+
+p-try@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz#85080bb87c64688fa47996fe8f7dfbe8211760b1"
+  integrity sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==
 
 pako@~1.0.5:
-  version "1.0.6"
-  resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258"
+  version "1.0.7"
+  resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.7.tgz#2473439021b57f1516c82f58be7275ad8ef1bb27"
+  integrity sha512-3HNK5tW4x8o5mO8RuHZp3Ydw9icZXx0RANAOMzlMzx7LVXhMJ4mo3MOBpzyd7r/+RUu8BmndP47LXT+vzjtWcQ==
 
 parallel-transform@^1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06"
+  integrity sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=
   dependencies:
     cyclist "~0.2.2"
     inherits "^2.0.3"
@@ -5514,12 +6282,14 @@ parallel-transform@^1.1.0:
 param-case@2.1.x:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247"
+  integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc=
   dependencies:
     no-case "^2.2.0"
 
 parse-asn1@^5.0.0:
   version "5.1.1"
   resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.1.tgz#f6bf293818332bd0dab54efb16087724745e6ca8"
+  integrity sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==
   dependencies:
     asn1.js "^4.0.0"
     browserify-aes "^1.0.0"
@@ -5527,93 +6297,101 @@ parse-asn1@^5.0.0:
     evp_bytestokey "^1.0.0"
     pbkdf2 "^3.0.3"
 
-parse-glob@^3.0.4:
-  version "3.0.4"
-  resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c"
-  dependencies:
-    glob-base "^0.3.0"
-    is-dotfile "^1.0.0"
-    is-extglob "^1.0.0"
-    is-glob "^2.0.0"
-
 parse-json@^2.2.0:
   version "2.2.0"
   resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
+  integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=
   dependencies:
     error-ex "^1.2.0"
 
 parse-json@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
+  integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=
   dependencies:
     error-ex "^1.3.1"
     json-parse-better-errors "^1.0.1"
 
-parse5@4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608"
+parse5@5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2"
+  integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==
 
 parse5@^3.0.1:
   version "3.0.3"
   resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c"
+  integrity sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==
   dependencies:
     "@types/node" "*"
 
 parseurl@~1.3.2:
   version "1.3.2"
   resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3"
+  integrity sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=
 
 pascalcase@^0.1.1:
   version "0.1.1"
   resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
+  integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=
 
 path-browserify@0.0.0:
   version "0.0.0"
   resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a"
+  integrity sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=
 
 path-dirname@^1.0.0:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0"
+  integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=
 
 path-exists@^2.0.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b"
+  integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=
   dependencies:
     pinkie-promise "^2.0.0"
 
 path-exists@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
+  integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=
 
 path-is-absolute@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
+  integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
 
 path-is-inside@^1.0.1, path-is-inside@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
+  integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=
 
 path-key@^2.0.0, path-key@^2.0.1:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
+  integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
 
-path-parse@^1.0.5:
+path-parse@^1.0.6:
   version "1.0.6"
   resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
+  integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
 
 path-to-regexp@0.1.7:
   version "0.1.7"
   resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
+  integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=
 
 path-to-regexp@^1.7.0:
   version "1.7.0"
   resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d"
+  integrity sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=
   dependencies:
     isarray "0.0.1"
 
 path-type@^1.0.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
+  integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=
   dependencies:
     graceful-fs "^4.1.2"
     pify "^2.0.0"
@@ -5622,16 +6400,19 @@ path-type@^1.0.0:
 path-type@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f"
+  integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==
   dependencies:
     pify "^3.0.0"
 
-pathval@^1.0.0:
+pathval@^1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0"
+  integrity sha1-uULm1L3mUwBe9rcTYd74cn0GReA=
 
 pbkdf2@^3.0.3:
-  version "3.0.16"
-  resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.16.tgz#7404208ec6b01b62d85bf83853a8064f8d9c2a5c"
+  version "3.0.17"
+  resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6"
+  integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==
   dependencies:
     create-hash "^1.1.2"
     create-hmac "^1.1.4"
@@ -5642,52 +6423,81 @@ pbkdf2@^3.0.3:
 performance-now@^2.1.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
+  integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
 
 pify@^2.0.0:
   version "2.3.0"
   resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
+  integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw=
 
 pify@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
+  integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=
 
 pinkie-promise@^2.0.0:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
+  integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o=
   dependencies:
     pinkie "^2.0.0"
 
 pinkie@^2.0.0:
   version "2.0.4"
   resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
+  integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA=
 
 pkg-dir@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4"
+  integrity sha1-ektQio1bstYp1EcFb/TpyTFM89Q=
   dependencies:
     find-up "^1.0.0"
 
 pkg-dir@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b"
+  integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=
   dependencies:
     find-up "^2.1.0"
 
+pkg-dir@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3"
+  integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==
+  dependencies:
+    find-up "^3.0.0"
+
 pluralize@^7.0.0:
   version "7.0.0"
   resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777"
+  integrity sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==
+
+plyr@^3.4.5:
+  version "3.4.7"
+  resolved "https://registry.yarnpkg.com/plyr/-/plyr-3.4.7.tgz#7d92470fb27f8019422c6d4edfd3b172d902ef06"
+  integrity sha512-RxxT2WdC4/sEZQT7CBZqKx5ImVw96aWjT6kB6DM82jy9GcWDiBBnv04m/AeeaXg9S5ambPdiHhB6Pzfm2q84Gw==
+  dependencies:
+    core-js "^2.5.7"
+    custom-event-polyfill "^1.0.6"
+    loadjs "^3.5.4"
+    raven-js "^3.27.0"
+    url-polyfill "^1.1.0"
 
 pn@^1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb"
+  integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==
 
 pofile@^1.0.10:
   version "1.0.11"
   resolved "https://registry.yarnpkg.com/pofile/-/pofile-1.0.11.tgz#35aff58c17491d127a07336d5522ebc9df57c954"
+  integrity sha512-Vy9eH1dRD9wHjYt/QqXcTz+RnX/zg53xK+KljFSX30PvdDMb2z+c6uDUeblUGqqJgz3QFsdlA0IJvHziPmWtQg==
 
-portfinder@^1.0.13, portfinder@^1.0.9:
-  version "1.0.16"
-  resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.16.tgz#a6a68be9c352bc66c1a4c17a261f661f3facaf52"
+portfinder@^1.0.19, portfinder@^1.0.9:
+  version "1.0.20"
+  resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.20.tgz#bea68632e54b2e13ab7b0c4775e9b41bf270e44a"
+  integrity sha512-Yxe4mTyDzTd59PZJY4ojZR8F+E5e97iq2ZOHPz3HDgSvYC5siNad2tLooQ5y5QHyQhc3xVqvyk/eNA3wuoa7Sw==
   dependencies:
     async "^1.5.2"
     debug "^2.2.0"
@@ -5696,137 +6506,156 @@ portfinder@^1.0.13, portfinder@^1.0.9:
 posix-character-classes@^0.1.0:
   version "0.1.1"
   resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
+  integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
 
-postcss-calc@^6.0.0:
-  version "6.0.1"
-  resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-6.0.1.tgz#3d24171bbf6e7629d422a436ebfe6dd9511f4330"
+postcss-calc@^7.0.0:
+  version "7.0.1"
+  resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.1.tgz#36d77bab023b0ecbb9789d84dcb23c4941145436"
+  integrity sha512-oXqx0m6tb4N3JGdmeMSc/i91KppbYsFZKdH0xMOqK8V1rJlzrKlTdokz8ozUXLVejydRN6u2IddxpcijRj2FqQ==
   dependencies:
     css-unit-converter "^1.1.1"
-    postcss "^6.0.0"
-    postcss-selector-parser "^2.2.2"
-    reduce-css-calc "^2.0.0"
+    postcss "^7.0.5"
+    postcss-selector-parser "^5.0.0-rc.4"
+    postcss-value-parser "^3.3.1"
 
-postcss-colormin@^4.0.0:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.1.tgz#6f1c18a0155bc69613f2ff13843e2e4ae8ff0bbe"
+postcss-colormin@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.2.tgz#93cd1fa11280008696887db1a528048b18e7ed99"
+  integrity sha512-1QJc2coIehnVFsz0otges8kQLsryi4lo19WD+U5xCWvXd0uw/Z+KKYnbiNDCnO9GP+PvErPHCG0jNvWTngk9Rw==
   dependencies:
     browserslist "^4.0.0"
     color "^3.0.0"
     has "^1.0.0"
-    postcss "^6.0.0"
+    postcss "^7.0.0"
     postcss-value-parser "^3.0.0"
 
-postcss-convert-values@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.0.tgz#77d77d9aed1dc4e6956e651cc349d53305876f62"
+postcss-convert-values@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f"
+  integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==
   dependencies:
-    postcss "^6.0.0"
+    postcss "^7.0.0"
     postcss-value-parser "^3.0.0"
 
-postcss-discard-comments@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.0.tgz#9684a299e76b3e93263ef8fd2adbf1a1c08fd88d"
+postcss-discard-comments@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.1.tgz#30697735b0c476852a7a11050eb84387a67ef55d"
+  integrity sha512-Ay+rZu1Sz6g8IdzRjUgG2NafSNpp2MSMOQUb+9kkzzzP+kh07fP0yNbhtFejURnyVXSX3FYy2nVNW1QTnNjgBQ==
   dependencies:
-    postcss "^6.0.0"
+    postcss "^7.0.0"
 
-postcss-discard-duplicates@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.0.tgz#42f3c267f85fa909e042c35767ecfd65cb2bd72c"
+postcss-discard-duplicates@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb"
+  integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==
   dependencies:
-    postcss "^6.0.0"
+    postcss "^7.0.0"
 
-postcss-discard-empty@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.0.tgz#55e18a59c74128e38c7d2804bcfa4056611fb97f"
+postcss-discard-empty@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765"
+  integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==
   dependencies:
-    postcss "^6.0.0"
+    postcss "^7.0.0"
 
-postcss-discard-overridden@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.0.tgz#4a0bf85978784cf1f81ed2c1c1fd9d964a1da1fa"
+postcss-discard-overridden@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57"
+  integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==
   dependencies:
-    postcss "^6.0.0"
+    postcss "^7.0.0"
 
 postcss-load-config@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.0.0.tgz#f1312ddbf5912cd747177083c5ef7a19d62ee484"
+  integrity sha512-V5JBLzw406BB8UIfsAWSK2KSwIJ5yoEIVFb4gVkXci0QdKgA24jLmHZ/ghe/GgX0lJ0/D1uUK1ejhzEY94MChQ==
   dependencies:
     cosmiconfig "^4.0.0"
     import-cwd "^2.0.0"
 
-postcss-loader@^2.1.6:
-  version "2.1.6"
-  resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-2.1.6.tgz#1d7dd7b17c6ba234b9bed5af13e0bea40a42d740"
+postcss-loader@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d"
+  integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==
   dependencies:
     loader-utils "^1.1.0"
-    postcss "^6.0.0"
+    postcss "^7.0.0"
     postcss-load-config "^2.0.0"
-    schema-utils "^0.4.0"
+    schema-utils "^1.0.0"
 
-postcss-merge-longhand@^4.0.0:
-  version "4.0.4"
-  resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.4.tgz#bffc7c6ffa146591c993a0bb8373d65f9a06d4d0"
+postcss-merge-longhand@^4.0.9:
+  version "4.0.9"
+  resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.9.tgz#c2428b994833ffb2a072f290ca642e75ceabcd6f"
+  integrity sha512-UVMXrXF5K/kIwUbK/crPFCytpWbNX2Q3dZSc8+nQUgfOHrCT4+MHncpdxVphUlQeZxlLXUJbDyXc5NBhTnS2tA==
   dependencies:
     css-color-names "0.0.4"
-    postcss "^6.0.0"
+    postcss "^7.0.0"
     postcss-value-parser "^3.0.0"
     stylehacks "^4.0.0"
 
-postcss-merge-rules@^4.0.0:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.1.tgz#430fd59b3f2ed2e8afcd0b31278eda39854abb10"
+postcss-merge-rules@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.2.tgz#2be44401bf19856f27f32b8b12c0df5af1b88e74"
+  integrity sha512-UiuXwCCJtQy9tAIxsnurfF0mrNHKc4NnNx6NxqmzNNjXpQwLSukUxELHTRF0Rg1pAmcoKLih8PwvZbiordchag==
   dependencies:
     browserslist "^4.0.0"
     caniuse-api "^3.0.0"
     cssnano-util-same-parent "^4.0.0"
-    postcss "^6.0.0"
+    postcss "^7.0.0"
     postcss-selector-parser "^3.0.0"
     vendors "^1.0.0"
 
-postcss-minify-font-values@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.0.tgz#4cc33d283d6a81759036e757ef981d92cbd85bed"
+postcss-minify-font-values@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6"
+  integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==
   dependencies:
-    postcss "^6.0.0"
+    postcss "^7.0.0"
     postcss-value-parser "^3.0.0"
 
-postcss-minify-gradients@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.0.tgz#3fc3916439d27a9bb8066db7cdad801650eb090e"
+postcss-minify-gradients@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.1.tgz#6da95c6e92a809f956bb76bf0c04494953e1a7dd"
+  integrity sha512-pySEW3E6Ly5mHm18rekbWiAjVi/Wj8KKt2vwSfVFAWdW6wOIekgqxKxLU7vJfb107o3FDNPkaYFCxGAJBFyogA==
   dependencies:
     cssnano-util-get-arguments "^4.0.0"
     is-color-stop "^1.0.0"
-    postcss "^6.0.0"
+    postcss "^7.0.0"
     postcss-value-parser "^3.0.0"
 
-postcss-minify-params@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.0.tgz#05e9166ee48c05af651989ce84d39c1b4d790674"
+postcss-minify-params@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.1.tgz#5b2e2d0264dd645ef5d68f8fec0d4c38c1cf93d2"
+  integrity sha512-h4W0FEMEzBLxpxIVelRtMheskOKKp52ND6rJv+nBS33G1twu2tCyurYj/YtgU76+UDCvWeNs0hs8HFAWE2OUFg==
   dependencies:
     alphanum-sort "^1.0.0"
+    browserslist "^4.0.0"
     cssnano-util-get-arguments "^4.0.0"
-    postcss "^6.0.0"
+    postcss "^7.0.0"
     postcss-value-parser "^3.0.0"
     uniqs "^2.0.0"
 
-postcss-minify-selectors@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.0.tgz#b1e9f6c463416d3fcdcb26e7b785d95f61578aad"
+postcss-minify-selectors@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.1.tgz#a891c197977cc37abf60b3ea06b84248b1c1e9cd"
+  integrity sha512-8+plQkomve3G+CodLCgbhAKrb5lekAnLYuL1d7Nz+/7RANpBEVdgBkPNwljfSKvZ9xkkZTZITd04KP+zeJTJqg==
   dependencies:
     alphanum-sort "^1.0.0"
     has "^1.0.0"
-    postcss "^6.0.0"
+    postcss "^7.0.0"
     postcss-selector-parser "^3.0.0"
 
 postcss-modules-extract-imports@^1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz#66140ecece38ef06bf0d3e355d69bf59d141ea85"
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz#dc87e34148ec7eab5f791f7cd5849833375b741a"
+  integrity sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw==
   dependencies:
     postcss "^6.0.1"
 
 postcss-modules-local-by-default@^1.2.0:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069"
+  integrity sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=
   dependencies:
     css-selector-tokenizer "^0.7.0"
     postcss "^6.0.1"
@@ -5834,6 +6663,7 @@ postcss-modules-local-by-default@^1.2.0:
 postcss-modules-scope@^1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90"
+  integrity sha1-1upkmUx5+XtipytCb75gVqGUu5A=
   dependencies:
     css-selector-tokenizer "^0.7.0"
     postcss "^6.0.1"
@@ -5841,179 +6671,200 @@ postcss-modules-scope@^1.1.0:
 postcss-modules-values@^1.3.0:
   version "1.3.0"
   resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20"
+  integrity sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=
   dependencies:
     icss-replace-symbols "^1.1.0"
     postcss "^6.0.1"
 
-postcss-normalize-charset@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.0.tgz#24527292702d5e8129eafa3d1de49ed51a6ab730"
+postcss-normalize-charset@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4"
+  integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==
   dependencies:
-    postcss "^6.0.0"
+    postcss "^7.0.0"
 
-postcss-normalize-display-values@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.0.tgz#950e0c7be3445770a160fffd6b6644c3c0cd8f89"
+postcss-normalize-display-values@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.1.tgz#d9a83d47c716e8a980f22f632c8b0458cfb48a4c"
+  integrity sha512-R5mC4vaDdvsrku96yXP7zak+O3Mm9Y8IslUobk7IMP+u/g+lXvcN4jngmHY5zeJnrQvE13dfAg5ViU05ZFDwdg==
   dependencies:
     cssnano-util-get-match "^4.0.0"
-    postcss "^6.0.0"
+    postcss "^7.0.0"
     postcss-value-parser "^3.0.0"
 
-postcss-normalize-positions@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.0.tgz#ee9343ab981b822c63ab72615ecccd08564445a3"
+postcss-normalize-positions@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.1.tgz#ee2d4b67818c961964c6be09d179894b94fd6ba1"
+  integrity sha512-GNoOaLRBM0gvH+ZRb2vKCIujzz4aclli64MBwDuYGU2EY53LwiP7MxOZGE46UGtotrSnmarPPZ69l2S/uxdaWA==
   dependencies:
     cssnano-util-get-arguments "^4.0.0"
     has "^1.0.0"
-    postcss "^6.0.0"
+    postcss "^7.0.0"
     postcss-value-parser "^3.0.0"
 
-postcss-normalize-repeat-style@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.0.tgz#b711c592cf16faf9ff575e42fa100b6799083eff"
+postcss-normalize-repeat-style@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.1.tgz#5293f234b94d7669a9f805495d35b82a581c50e5"
+  integrity sha512-fFHPGIjBUyUiswY2rd9rsFcC0t3oRta4wxE1h3lpwfQZwFeFjXFSiDtdJ7APCmHQOnUZnqYBADNRPKPwFAONgA==
   dependencies:
     cssnano-util-get-arguments "^4.0.0"
     cssnano-util-get-match "^4.0.0"
-    postcss "^6.0.0"
+    postcss "^7.0.0"
     postcss-value-parser "^3.0.0"
 
-postcss-normalize-string@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.0.tgz#718cb6d30a6fac6ac6a830e32c06c07dbc66fe5d"
+postcss-normalize-string@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.1.tgz#23c5030c2cc24175f66c914fa5199e2e3c10fef3"
+  integrity sha512-IJoexFTkAvAq5UZVxWXAGE0yLoNN/012v7TQh5nDo6imZJl2Fwgbhy3J2qnIoaDBrtUP0H7JrXlX1jjn2YcvCQ==
   dependencies:
     has "^1.0.0"
-    postcss "^6.0.0"
+    postcss "^7.0.0"
     postcss-value-parser "^3.0.0"
 
-postcss-normalize-timing-functions@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.0.tgz#0351f29886aa981d43d91b2c2bd1aea6d0af6d23"
+postcss-normalize-timing-functions@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.1.tgz#8be83e0b9cb3ff2d1abddee032a49108f05f95d7"
+  integrity sha512-1nOtk7ze36+63ONWD8RCaRDYsnzorrj+Q6fxkQV+mlY5+471Qx9kspqv0O/qQNMeApg8KNrRf496zHwJ3tBZ7w==
   dependencies:
     cssnano-util-get-match "^4.0.0"
-    postcss "^6.0.0"
+    postcss "^7.0.0"
     postcss-value-parser "^3.0.0"
 
-postcss-normalize-unicode@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.0.tgz#5acd5d47baea5d17674b2ccc4ae5166fa88cdf97"
+postcss-normalize-unicode@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb"
+  integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==
   dependencies:
-    postcss "^6.0.0"
+    browserslist "^4.0.0"
+    postcss "^7.0.0"
     postcss-value-parser "^3.0.0"
 
-postcss-normalize-url@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.0.tgz#b7a9c8ad26cf26694c146eb2d68bd0cf49956f0d"
+postcss-normalize-url@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1"
+  integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==
   dependencies:
     is-absolute-url "^2.0.0"
     normalize-url "^3.0.0"
-    postcss "^6.0.0"
+    postcss "^7.0.0"
     postcss-value-parser "^3.0.0"
 
-postcss-normalize-whitespace@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.0.tgz#1da7e76b10ae63c11827fa04fc3bb4a1efe99cc0"
+postcss-normalize-whitespace@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.1.tgz#d14cb639b61238418ac8bc8d3b7bdd65fc86575e"
+  integrity sha512-U8MBODMB2L+nStzOk6VvWWjZgi5kQNShCyjRhMT3s+W9Jw93yIjOnrEkKYD3Ul7ChWbEcjDWmXq0qOL9MIAnAw==
   dependencies:
-    postcss "^6.0.0"
+    postcss "^7.0.0"
     postcss-value-parser "^3.0.0"
 
-postcss-ordered-values@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.0.0.tgz#58b40c74f72e022eb34152c12e4b0f9354482fc2"
+postcss-ordered-values@^4.1.1:
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.1.tgz#2e3b432ef3e489b18333aeca1f1295eb89be9fc2"
+  integrity sha512-PeJiLgJWPzkVF8JuKSBcylaU+hDJ/TX3zqAMIjlghgn1JBi6QwQaDZoDIlqWRcCAI8SxKrt3FCPSRmOgKRB97Q==
   dependencies:
     cssnano-util-get-arguments "^4.0.0"
-    postcss "^6.0.0"
+    postcss "^7.0.0"
     postcss-value-parser "^3.0.0"
 
-postcss-reduce-initial@^4.0.0:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.1.tgz#f2d58f50cea2b0c5dc1278d6ea5ed0ff5829c293"
+postcss-reduce-initial@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.2.tgz#bac8e325d67510ee01fa460676dc8ea9e3b40f15"
+  integrity sha512-epUiC39NonKUKG+P3eAOKKZtm5OtAtQJL7Ye0CBN1f+UQTHzqotudp+hki7zxXm7tT0ZAKDMBj1uihpPjP25ug==
   dependencies:
     browserslist "^4.0.0"
     caniuse-api "^3.0.0"
     has "^1.0.0"
-    postcss "^6.0.0"
+    postcss "^7.0.0"
 
-postcss-reduce-transforms@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.0.tgz#f645fc7440c35274f40de8104e14ad7163edf188"
+postcss-reduce-transforms@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.1.tgz#8600d5553bdd3ad640f43bff81eb52f8760d4561"
+  integrity sha512-sZVr3QlGs0pjh6JAIe6DzWvBaqYw05V1t3d9Tp+VnFRT5j+rsqoWsysh/iSD7YNsULjq9IAylCznIwVd5oU/zA==
   dependencies:
     cssnano-util-get-match "^4.0.0"
     has "^1.0.0"
-    postcss "^6.0.0"
+    postcss "^7.0.0"
     postcss-value-parser "^3.0.0"
 
-postcss-selector-parser@^2.2.2:
-  version "2.2.3"
-  resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90"
-  dependencies:
-    flatten "^1.0.2"
-    indexes-of "^1.0.1"
-    uniq "^1.0.1"
-
 postcss-selector-parser@^3.0.0, postcss-selector-parser@^3.1.1:
   version "3.1.1"
   resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz#4f875f4afb0c96573d5cf4d74011aee250a7e865"
+  integrity sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=
   dependencies:
     dot-prop "^4.1.1"
     indexes-of "^1.0.1"
     uniq "^1.0.1"
 
-postcss-svgo@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.0.tgz#c0bbad02520fc636c9d78b0e8403e2e515c32285"
+postcss-selector-parser@^5.0.0-rc.4:
+  version "5.0.0-rc.4"
+  resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0-rc.4.tgz#ca5e77238bf152966378c13e91ad6d611568ea87"
+  integrity sha512-0XvfYuShrKlTk1ooUrVzMCFQRcypsdEIsGqh5IxC5rdtBi4/M/tDAJeSONwC2MTqEFsmPZYAV7Dd4X8rgAfV0A==
+  dependencies:
+    cssesc "^2.0.0"
+    indexes-of "^1.0.1"
+    uniq "^1.0.1"
+
+postcss-svgo@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.1.tgz#5628cdb38f015de6b588ce6d0bf0724b492b581d"
+  integrity sha512-YD5uIk5NDRySy0hcI+ZJHwqemv2WiqqzDgtvgMzO8EGSkK5aONyX8HMVFRFJSdO8wUWTuisUFn/d7yRRbBr5Qw==
   dependencies:
     is-svg "^3.0.0"
-    postcss "^6.0.0"
+    postcss "^7.0.0"
     postcss-value-parser "^3.0.0"
     svgo "^1.0.0"
 
-postcss-unique-selectors@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.0.tgz#04c1e9764c75874261303402c41f0e9769fc5501"
+postcss-unique-selectors@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac"
+  integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==
   dependencies:
     alphanum-sort "^1.0.0"
-    postcss "^6.0.0"
+    postcss "^7.0.0"
     uniqs "^2.0.0"
 
-postcss-value-parser@^3.0.0, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0:
-  version "3.3.0"
-  resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15"
+postcss-value-parser@^3.0.0, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0, postcss-value-parser@^3.3.1:
+  version "3.3.1"
+  resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281"
+  integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==
 
-postcss@^6.0.0, postcss@^6.0.1, postcss@^6.0.20, postcss@^6.0.23:
+postcss@^6.0.1, postcss@^6.0.20, postcss@^6.0.23:
   version "6.0.23"
   resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324"
+  integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==
   dependencies:
     chalk "^2.4.1"
     source-map "^0.6.1"
     supports-color "^5.4.0"
 
-postcss@^7.0.0:
-  version "7.0.2"
-  resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.2.tgz#7b5a109de356804e27f95a960bef0e4d5bc9bb18"
+postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.5:
+  version "7.0.7"
+  resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.7.tgz#2754d073f77acb4ef08f1235c36c5721a7201614"
+  integrity sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg==
   dependencies:
     chalk "^2.4.1"
     source-map "^0.6.1"
-    supports-color "^5.4.0"
+    supports-color "^5.5.0"
 
 prelude-ls@~1.1.2:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
-
-preserve@^0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
+  integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=
 
 prettier@1.13.7:
   version "1.13.7"
   resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.13.7.tgz#850f3b8af784a49a6ea2d2eaa7ed1428a34b7281"
+  integrity sha512-KIU72UmYPGk4MujZGYMFwinB7lOf2LsDNGSOC8ufevsrPLISrZbNJlWstRi3m0AMuszbH+EFSQ/r6w56RSPK6w==
 
 prettier@^1.13.0:
-  version "1.14.2"
-  resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.14.2.tgz#0ac1c6e1a90baa22a62925f41963c841983282f9"
+  version "1.15.3"
+  resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.15.3.tgz#1feaac5bdd181237b54dbe65d874e02a1472786a"
+  integrity sha512-gAU9AGAPMaKb3NNSUUuhhFAS7SCO4ALTN4nRIn6PJ075Qd28Yn2Ig2ahEJWdJwJmlEBTUfC7mMUSFy8MwsOCfg==
 
 pretty-error@^2.0.2:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3"
+  integrity sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=
   dependencies:
     renderkid "^2.0.1"
     utila "~0.4"
@@ -6021,32 +6872,39 @@ pretty-error@^2.0.2:
 private@^0.1.6:
   version "0.1.8"
   resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff"
+  integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==
 
 process-nextick-args@~2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa"
+  integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==
 
 process@^0.11.10:
   version "0.11.10"
   resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
+  integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI=
 
 progress@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f"
+  version "2.0.3"
+  resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
+  integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
 
 promise-inflight@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
+  integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM=
 
 promise@^7.0.1:
   version "7.3.1"
   resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
+  integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==
   dependencies:
     asap "~2.0.3"
 
-proxy-addr@~2.0.3:
+proxy-addr@~2.0.4:
   version "2.0.4"
   resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.4.tgz#ecfc733bf22ff8c6f407fa275327b9ab67e48b93"
+  integrity sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==
   dependencies:
     forwarded "~0.1.2"
     ipaddr.js "1.8.0"
@@ -6054,28 +6912,34 @@ proxy-addr@~2.0.3:
 prr@~1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
+  integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY=
 
 pseudomap@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
+  integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM=
 
-psl@^1.1.24:
-  version "1.1.29"
-  resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.29.tgz#60f580d360170bb722a797cc704411e6da850c67"
+psl@^1.1.24, psl@^1.1.28:
+  version "1.1.31"
+  resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.31.tgz#e9aa86d0101b5b105cbe93ac6b784cd547276184"
+  integrity sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==
 
 public-encrypt@^4.0.0:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.2.tgz#46eb9107206bf73489f8b85b69d91334c6610994"
+  version "4.0.3"
+  resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0"
+  integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==
   dependencies:
     bn.js "^4.1.0"
     browserify-rsa "^4.0.0"
     create-hash "^1.1.0"
     parse-asn1 "^5.0.0"
     randombytes "^2.0.1"
+    safe-buffer "^5.1.2"
 
 pug-attrs@^2.0.3:
   version "2.0.3"
   resolved "https://registry.yarnpkg.com/pug-attrs/-/pug-attrs-2.0.3.tgz#a3095f970e64151f7bdad957eef55fb5d7905d15"
+  integrity sha1-owlflw5kFR972tlX7vVftdeQXRU=
   dependencies:
     constantinople "^3.0.1"
     js-stringify "^1.0.1"
@@ -6084,6 +6948,7 @@ pug-attrs@^2.0.3:
 pug-code-gen@^2.0.1:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/pug-code-gen/-/pug-code-gen-2.0.1.tgz#0951ec83225d74d8cfc476a7f99a259b5f7d050c"
+  integrity sha1-CVHsgyJddNjPxHan+Zolm199BQw=
   dependencies:
     constantinople "^3.0.1"
     doctypes "^1.1.0"
@@ -6097,10 +6962,12 @@ pug-code-gen@^2.0.1:
 pug-error@^1.3.2:
   version "1.3.2"
   resolved "https://registry.yarnpkg.com/pug-error/-/pug-error-1.3.2.tgz#53ae7d9d29bb03cf564493a026109f54c47f5f26"
+  integrity sha1-U659nSm7A89WRJOgJhCfVMR/XyY=
 
 pug-filters@^3.1.0:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/pug-filters/-/pug-filters-3.1.0.tgz#27165555bc04c236e4aa2b0366246dfa021b626e"
+  integrity sha1-JxZVVbwEwjbkqisDZiRt+gIbYm4=
   dependencies:
     clean-css "^4.1.11"
     constantinople "^3.0.1"
@@ -6113,6 +6980,7 @@ pug-filters@^3.1.0:
 pug-lexer@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/pug-lexer/-/pug-lexer-4.0.0.tgz#210c18457ef2e1760242740c5e647bd794cec278"
+  integrity sha1-IQwYRX7y4XYCQnQMXmR715TOwng=
   dependencies:
     character-parser "^2.1.1"
     is-expression "^3.0.0"
@@ -6121,6 +6989,7 @@ pug-lexer@^4.0.0:
 pug-linker@^3.0.5:
   version "3.0.5"
   resolved "https://registry.yarnpkg.com/pug-linker/-/pug-linker-3.0.5.tgz#9e9a7ae4005682d027deeb96b000f88eeb83a02f"
+  integrity sha1-npp65ABWgtAn3uuWsAD4juuDoC8=
   dependencies:
     pug-error "^1.3.2"
     pug-walk "^1.1.7"
@@ -6128,6 +6997,7 @@ pug-linker@^3.0.5:
 pug-load@^2.0.11:
   version "2.0.11"
   resolved "https://registry.yarnpkg.com/pug-load/-/pug-load-2.0.11.tgz#e648e57ed113fe2c1f45d57858ea2bad6bc01527"
+  integrity sha1-5kjlftET/iwfRdV4WOorrWvAFSc=
   dependencies:
     object-assign "^4.1.0"
     pug-walk "^1.1.7"
@@ -6135,6 +7005,7 @@ pug-load@^2.0.11:
 pug-parser@^5.0.0:
   version "5.0.0"
   resolved "https://registry.yarnpkg.com/pug-parser/-/pug-parser-5.0.0.tgz#e394ad9b3fca93123940aff885c06e44ab7e68e4"
+  integrity sha1-45Stmz/KkxI5QK/4hcBuRKt+aOQ=
   dependencies:
     pug-error "^1.3.2"
     token-stream "0.0.1"
@@ -6142,20 +7013,24 @@ pug-parser@^5.0.0:
 pug-runtime@^2.0.4:
   version "2.0.4"
   resolved "https://registry.yarnpkg.com/pug-runtime/-/pug-runtime-2.0.4.tgz#e178e1bda68ab2e8c0acfc9bced2c54fd88ceb58"
+  integrity sha1-4XjhvaaKsujArPybztLFT9iM61g=
 
 pug-strip-comments@^1.0.3:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/pug-strip-comments/-/pug-strip-comments-1.0.3.tgz#f1559592206edc6f85310dacf4afb48a025af59f"
+  integrity sha1-8VWVkiBu3G+FMQ2s9K+0igJa9Z8=
   dependencies:
     pug-error "^1.3.2"
 
 pug-walk@^1.1.7:
   version "1.1.7"
   resolved "https://registry.yarnpkg.com/pug-walk/-/pug-walk-1.1.7.tgz#c00d5c5128bac5806bec15d2b7e7cdabe42531f3"
+  integrity sha1-wA1cUSi6xYBr7BXSt+fNq+QlMfM=
 
 pug@^2.0.3:
   version "2.0.3"
   resolved "https://registry.yarnpkg.com/pug/-/pug-2.0.3.tgz#71cba82537c95a5eab7ed04696e4221f53aa878e"
+  integrity sha1-ccuoJTfJWl6rftBGluQiH1Oqh44=
   dependencies:
     pug-code-gen "^2.0.1"
     pug-filters "^3.1.0"
@@ -6169,6 +7044,15 @@ pug@^2.0.3:
 pump@^2.0.0, pump@^2.0.1:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909"
+  integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==
+  dependencies:
+    end-of-stream "^1.1.0"
+    once "^1.3.1"
+
+pump@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
+  integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
   dependencies:
     end-of-stream "^1.1.0"
     once "^1.3.1"
@@ -6176,6 +7060,7 @@ pump@^2.0.0, pump@^2.0.1:
 pumpify@^1.3.3:
   version "1.5.1"
   resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce"
+  integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==
   dependencies:
     duplexify "^3.6.0"
     inherits "^2.0.3"
@@ -6184,56 +7069,54 @@ pumpify@^1.3.3:
 punycode@1.3.2:
   version "1.3.2"
   resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
+  integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=
 
-punycode@2.x.x, punycode@^2.1.0:
+punycode@2.x.x, punycode@^2.1.0, punycode@^2.1.1:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
+  integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
 
 punycode@^1.2.4, punycode@^1.4.1:
   version "1.4.1"
   resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
+  integrity sha1-wNWmOycYgArY4esPpSachN1BhF4=
 
 q@^1.1.2:
   version "1.5.1"
   resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
+  integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=
 
-qs@6.5.1:
-  version "6.5.1"
-  resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"
-
-qs@~6.5.1, qs@~6.5.2:
+qs@6.5.2, qs@~6.5.2:
   version "6.5.2"
   resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
+  integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
 
 querystring-es3@^0.2.0:
   version "0.2.1"
   resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
+  integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=
 
 querystring@0.2.0:
   version "0.2.0"
   resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
+  integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=
 
 querystringify@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.0.0.tgz#fa3ed6e68eb15159457c89b37bc6472833195755"
-
-randomatic@^3.0.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.0.tgz#36f2ca708e9e567f5ed2ec01949026d50aa10116"
-  dependencies:
-    is-number "^4.0.0"
-    kind-of "^6.0.0"
-    math-random "^1.0.1"
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.0.tgz#7ded8dfbf7879dcc60d0a644ac6754b283ad17ef"
+  integrity sha512-sluvZZ1YiTLD5jsqZcDmFyV2EwToyXZBfpoVOmktMmW+VEnhgakFHnasVph65fOjGPTWN0Nw3+XQaSeMayr0kg==
 
 randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5:
   version "2.0.6"
   resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz#d302c522948588848a8d300c932b44c24231da80"
+  integrity sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==
   dependencies:
     safe-buffer "^5.1.0"
 
 randomfill@^1.0.3:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458"
+  integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==
   dependencies:
     randombytes "^2.0.5"
     safe-buffer "^5.1.0"
@@ -6241,23 +7124,27 @@ randomfill@^1.0.3:
 range-parser@^1.0.3, range-parser@~1.2.0:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e"
+  integrity sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=
 
-raven-js@^3.26.4:
-  version "3.26.4"
-  resolved "https://registry.yarnpkg.com/raven-js/-/raven-js-3.26.4.tgz#32aae3a63a9314467a453c94c89a364ea43707be"
+raven-js@^3.27.0:
+  version "3.27.0"
+  resolved "https://registry.yarnpkg.com/raven-js/-/raven-js-3.27.0.tgz#9f47c03e17933ce756e189f3669d49c441c1ba6e"
+  integrity sha512-vChdOL+yzecfnGA+B5EhEZkJ3kY3KlMzxEhShKh6Vdtooyl0yZfYNFQfYzgMf2v4pyQa+OTZ5esTxxgOOZDHqw==
 
-raw-body@2.3.2:
-  version "2.3.2"
-  resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89"
+raw-body@2.3.3:
+  version "2.3.3"
+  resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.3.tgz#1b324ece6b5706e153855bc1148c65bb7f6ea0c3"
+  integrity sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==
   dependencies:
     bytes "3.0.0"
-    http-errors "1.6.2"
-    iconv-lite "0.4.19"
+    http-errors "1.6.3"
+    iconv-lite "0.4.23"
     unpipe "1.0.0"
 
 rc@^1.2.7:
   version "1.2.8"
   resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
+  integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
   dependencies:
     deep-extend "^0.6.0"
     ini "~1.3.0"
@@ -6267,6 +7154,7 @@ rc@^1.2.7:
 read-pkg-up@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02"
+  integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=
   dependencies:
     find-up "^1.0.0"
     read-pkg "^1.0.0"
@@ -6274,6 +7162,7 @@ read-pkg-up@^1.0.1:
 read-pkg@^1.0.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28"
+  integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=
   dependencies:
     load-json-file "^1.0.0"
     normalize-package-data "^2.3.2"
@@ -6282,14 +7171,16 @@ read-pkg@^1.0.0:
 read-pkg@^4.0.1:
   version "4.0.1"
   resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-4.0.1.tgz#963625378f3e1c4d48c85872b5a6ec7d5d093237"
+  integrity sha1-ljYlN48+HE1IyFhytabsfV0JMjc=
   dependencies:
     normalize-package-data "^2.3.2"
     parse-json "^4.0.0"
     pify "^3.0.0"
 
-"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.3, readable-stream@^2.3.6:
+"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6:
   version "2.3.6"
   resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
+  integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==
   dependencies:
     core-util-is "~1.0.0"
     inherits "~2.0.3"
@@ -6302,68 +7193,77 @@ read-pkg@^4.0.1:
 readable-stream@1.0:
   version "1.0.34"
   resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c"
+  integrity sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=
   dependencies:
     core-util-is "~1.0.0"
     inherits "~2.0.1"
     isarray "0.0.1"
     string_decoder "~0.10.x"
 
+readable-stream@^3.0.6:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.1.0.tgz#19c2e9c1ce43507c53f6eefbcf1ee3d4aaa786f5"
+  integrity sha512-vpydAvIJvPODZNagCPuHG87O9JNPtvFEtjHHRVwNVsVVRBqemvPJkc2SYbxJsiZXawJdtZNmkmnsPuE3IgsG0A==
+  dependencies:
+    inherits "^2.0.3"
+    string_decoder "^1.1.1"
+    util-deprecate "^1.0.1"
+
 readdirp@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78"
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525"
+  integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==
   dependencies:
-    graceful-fs "^4.1.2"
-    minimatch "^3.0.2"
+    graceful-fs "^4.1.11"
+    micromatch "^3.1.10"
     readable-stream "^2.0.2"
-    set-immediate-shim "^1.0.1"
 
 reconnecting-websocket@^3.0.3:
   version "3.2.2"
   resolved "https://registry.yarnpkg.com/reconnecting-websocket/-/reconnecting-websocket-3.2.2.tgz#8097514e926e9855e03c39e76efa2e3d1f371bee"
+  integrity sha512-SWSfoXiaHVOqXuPWFgGWeUxKnb5HIY7I/Fh5C/hy4wUOgeOh7YIMXEiv5/eHBlNs4tNzCrO5YDR9AH62NWle0Q==
 
 redent@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde"
+  integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=
   dependencies:
     indent-string "^2.1.0"
     strip-indent "^1.0.1"
 
-reduce-css-calc@^2.0.0:
-  version "2.1.4"
-  resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-2.1.4.tgz#c20e9cda8445ad73d4ff4bea960c6f8353791708"
-  dependencies:
-    css-unit-converter "^1.1.1"
-    postcss-value-parser "^3.3.0"
-
 regenerate-unicode-properties@^7.0.0:
   version "7.0.0"
   resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-7.0.0.tgz#107405afcc4a190ec5ed450ecaa00ed0cafa7a4c"
+  integrity sha512-s5NGghCE4itSlUS+0WUj88G6cfMVMmH8boTPNvABf8od+2dhT9WDlWu8n01raQAJZMOK8Ch6jSexaRO7swd6aw==
   dependencies:
     regenerate "^1.4.0"
 
 regenerate@^1.2.1, regenerate@^1.4.0:
   version "1.4.0"
   resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11"
+  integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==
 
-regenerator-runtime@^0.11.0, regenerator-runtime@^0.11.1:
+regenerator-runtime@^0.11.0:
   version "0.11.1"
   resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
+  integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==
 
-regenerator-transform@^0.12.3:
-  version "0.12.4"
-  resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.12.4.tgz#aa9b6c59f4b97be080e972506c560b3bccbfcff0"
-  dependencies:
-    private "^0.1.6"
+regenerator-runtime@^0.12.0:
+  version "0.12.1"
+  resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de"
+  integrity sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==
 
-regex-cache@^0.4.2:
-  version "0.4.4"
-  resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd"
+regenerator-transform@^0.13.3:
+  version "0.13.3"
+  resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.13.3.tgz#264bd9ff38a8ce24b06e0636496b2c856b57bcbb"
+  integrity sha512-5ipTrZFSq5vU2YoGoww4uaRVAK4wyYC4TSICibbfEPOruUu8FFP7ErV0BjmbIOEpn3O/k9na9UEdYR/3m7N6uA==
   dependencies:
-    is-equal-shallow "^0.1.3"
+    private "^0.1.6"
 
 regex-not@^1.0.0, regex-not@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c"
+  integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==
   dependencies:
     extend-shallow "^3.0.2"
     safe-regex "^1.1.0"
@@ -6371,120 +7271,111 @@ regex-not@^1.0.0, regex-not@^1.0.2:
 regexpp@^1.0.1:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-1.1.0.tgz#0e3516dd0b7904f413d2d4193dce4618c3a689ab"
+  integrity sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==
 
 regexpu-core@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b"
+  integrity sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=
   dependencies:
     regenerate "^1.2.1"
     regjsgen "^0.2.0"
     regjsparser "^0.1.4"
 
-regexpu-core@^4.1.3, regexpu-core@^4.1.4:
-  version "4.2.0"
-  resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.2.0.tgz#a3744fa03806cffe146dea4421a3e73bdcc47b1d"
+regexpu-core@^4.1.3, regexpu-core@^4.2.0:
+  version "4.4.0"
+  resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.4.0.tgz#8d43e0d1266883969720345e70c275ee0aec0d32"
+  integrity sha512-eDDWElbwwI3K0Lo6CqbQbA6FwgtCz4kYTarrri1okfkRLZAqstU+B3voZBCjg8Fl6iq0gXrJG6MvRgLthfvgOA==
   dependencies:
     regenerate "^1.4.0"
     regenerate-unicode-properties "^7.0.0"
-    regjsgen "^0.4.0"
-    regjsparser "^0.3.0"
+    regjsgen "^0.5.0"
+    regjsparser "^0.6.0"
     unicode-match-property-ecmascript "^1.0.4"
     unicode-match-property-value-ecmascript "^1.0.2"
 
 regjsgen@^0.2.0:
   version "0.2.0"
   resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7"
+  integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=
 
-regjsgen@^0.4.0:
-  version "0.4.0"
-  resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.4.0.tgz#c1eb4c89a209263f8717c782591523913ede2561"
+regjsgen@^0.5.0:
+  version "0.5.0"
+  resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.0.tgz#a7634dc08f89209c2049adda3525711fb97265dd"
+  integrity sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==
 
 regjsparser@^0.1.4:
   version "0.1.5"
   resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c"
+  integrity sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=
   dependencies:
     jsesc "~0.5.0"
 
-regjsparser@^0.3.0:
-  version "0.3.0"
-  resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.3.0.tgz#3c326da7fcfd69fa0d332575a41c8c0cdf588c96"
+regjsparser@^0.6.0:
+  version "0.6.0"
+  resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c"
+  integrity sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==
   dependencies:
     jsesc "~0.5.0"
 
 relateurl@0.2.x:
   version "0.2.7"
   resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9"
+  integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=
 
 remove-trailing-separator@^1.0.1:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
+  integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8=
 
 renderkid@^2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.1.tgz#898cabfc8bede4b7b91135a3ffd323e58c0db319"
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.2.tgz#12d310f255360c07ad8fde253f6c9e9de372d2aa"
+  integrity sha512-FsygIxevi1jSiPY9h7vZmBFUbAOcbYm9UwyiLNdVsLRs/5We9Ob5NMPbGYUTWiLq5L+ezlVdE0A8bbME5CWTpg==
   dependencies:
     css-select "^1.1.0"
-    dom-converter "~0.1"
+    dom-converter "~0.2"
     htmlparser2 "~3.3.0"
     strip-ansi "^3.0.0"
-    utila "~0.3"
+    utila "^0.4.0"
 
 repeat-element@^1.1.2:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a"
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce"
+  integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==
 
 repeat-string@^1.5.2, repeat-string@^1.6.1:
   version "1.6.1"
   resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
+  integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=
 
 repeating@^2.0.0:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda"
+  integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=
   dependencies:
     is-finite "^1.0.0"
 
 request-promise-core@1.1.1:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.1.tgz#3eee00b2c5aa83239cfb04c5700da36f81cd08b6"
+  integrity sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=
   dependencies:
     lodash "^4.13.1"
 
 request-promise-native@^1.0.5:
   version "1.0.5"
   resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.5.tgz#5281770f68e0c9719e5163fd3fab482215f4fda5"
+  integrity sha1-UoF3D2jgyXGeUWP9P6tIIhX0/aU=
   dependencies:
     request-promise-core "1.1.1"
     stealthy-require "^1.1.0"
     tough-cookie ">=2.3.3"
 
-request@2.87.0:
-  version "2.87.0"
-  resolved "https://registry.yarnpkg.com/request/-/request-2.87.0.tgz#32f00235cd08d482b4d0d68db93a829c0ed5756e"
-  dependencies:
-    aws-sign2 "~0.7.0"
-    aws4 "^1.6.0"
-    caseless "~0.12.0"
-    combined-stream "~1.0.5"
-    extend "~3.0.1"
-    forever-agent "~0.6.1"
-    form-data "~2.3.1"
-    har-validator "~5.0.3"
-    http-signature "~1.2.0"
-    is-typedarray "~1.0.0"
-    isstream "~0.1.2"
-    json-stringify-safe "~5.0.1"
-    mime-types "~2.1.17"
-    oauth-sign "~0.8.2"
-    performance-now "^2.1.0"
-    qs "~6.5.1"
-    safe-buffer "^5.1.1"
-    tough-cookie "~2.3.3"
-    tunnel-agent "^0.6.0"
-    uuid "^3.1.0"
-
-request@^2.87.0:
+request@^2.87.0, request@^2.88.0:
   version "2.88.0"
   resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef"
+  integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==
   dependencies:
     aws-sign2 "~0.7.0"
     aws4 "^1.8.0"
@@ -6510,18 +7401,22 @@ request@^2.87.0:
 require-directory@^2.1.1:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
+  integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
 
 require-from-string@^2.0.1:
   version "2.0.2"
   resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
+  integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
 
 require-main-filename@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
+  integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=
 
 require-uncached@^1.0.3:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3"
+  integrity sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=
   dependencies:
     caller-path "^0.1.0"
     resolve-from "^1.0.0"
@@ -6529,34 +7424,41 @@ require-uncached@^1.0.3:
 requires-port@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
+  integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=
 
 resolve-cwd@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a"
+  integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=
   dependencies:
     resolve-from "^3.0.0"
 
 resolve-from@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226"
+  integrity sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=
 
 resolve-from@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748"
+  integrity sha1-six699nWiBvItuZTM17rywoYh0g=
 
 resolve-url@^0.2.1:
   version "0.2.1"
   resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
+  integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
 
-resolve@^1.1.6, resolve@^1.3.2:
-  version "1.8.1"
-  resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26"
+resolve@^1.1.6, resolve@^1.3.2, resolve@^1.8.1:
+  version "1.9.0"
+  resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.9.0.tgz#a14c6fdfa8f92a7df1d996cb7105fa744658ea06"
+  integrity sha512-TZNye00tI67lwYvzxCxHGjwTNlUV70io54/Ed4j6PscB8xVfuBJpRenI/o6dVk0cY0PYTY27AgCoGGxRnYuItQ==
   dependencies:
-    path-parse "^1.0.5"
+    path-parse "^1.0.6"
 
 restore-cursor@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
+  integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368=
   dependencies:
     onetime "^2.0.0"
     signal-exit "^3.0.2"
@@ -6564,30 +7466,36 @@ restore-cursor@^2.0.0:
 ret@~0.1.10:
   version "0.1.15"
   resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
+  integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
 
 rgb-regex@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1"
+  integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE=
 
 rgba-regex@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3"
+  integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=
 
 right-align@^0.1.1:
   version "0.1.3"
   resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef"
+  integrity sha1-YTObci/mo1FWiSENJOFMlhSGE+8=
   dependencies:
     align-text "^0.1.1"
 
-rimraf@2, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2:
+rimraf@2, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@~2.6.2:
   version "2.6.2"
   resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
+  integrity sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==
   dependencies:
     glob "^7.0.5"
 
 ripemd160@^2.0.0, ripemd160@^2.0.1:
   version "2.0.2"
   resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c"
+  integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==
   dependencies:
     hash-base "^3.0.0"
     inherits "^2.0.1"
@@ -6595,50 +7503,50 @@ ripemd160@^2.0.0, ripemd160@^2.0.1:
 run-async@^2.2.0:
   version "2.3.0"
   resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0"
+  integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA=
   dependencies:
     is-promise "^2.1.0"
 
 run-queue@^1.0.0, run-queue@^1.0.3:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47"
+  integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=
   dependencies:
     aproba "^1.1.1"
 
 rx-lite-aggregates@^4.0.8:
   version "4.0.8"
   resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be"
+  integrity sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=
   dependencies:
     rx-lite "*"
 
 rx-lite@*, rx-lite@^4.0.8:
   version "4.0.8"
   resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444"
-
-safe-buffer@5.1.1:
-  version "5.1.1"
-  resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
+  integrity sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=
 
 safe-buffer@5.1.2, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
   version "5.1.2"
   resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
+  integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
 
 safe-regex@^1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
+  integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4=
   dependencies:
     ret "~0.1.10"
 
 "safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
   version "2.1.2"
   resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
-
-samsam@1.3.0:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.3.0.tgz#8d1d9350e25622da30de3e44ba692b5221ab7c50"
+  integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
 
 sass-graph@^2.2.4:
   version "2.2.4"
   resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.4.tgz#13fbd63cd1caf0908b9fd93476ad43a51d1e0b49"
+  integrity sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=
   dependencies:
     glob "^7.0.0"
     lodash "^4.0.0"
@@ -6648,6 +7556,7 @@ sass-graph@^2.2.4:
 sass-loader@^7.1.0:
   version "7.1.0"
   resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-7.1.0.tgz#16fd5138cb8b424bf8a759528a1972d72aad069d"
+  integrity sha512-+G+BKGglmZM2GUSfT9TLuEp6tzehHPjAMoRRItOojWIqIGPloVCMhNIQuG639eJ+y033PaGTSjLaTHts8Kw79w==
   dependencies:
     clone-deep "^2.0.1"
     loader-utils "^1.0.1"
@@ -6659,17 +7568,36 @@ sass-loader@^7.1.0:
 sax@^1.2.4, sax@~1.2.4:
   version "1.2.4"
   resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
+  integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
 
-schema-utils@^0.4.0, schema-utils@^0.4.2, schema-utils@^0.4.3, schema-utils@^0.4.4, schema-utils@^0.4.5:
+saxes@^3.1.4:
+  version "3.1.4"
+  resolved "https://registry.yarnpkg.com/saxes/-/saxes-3.1.4.tgz#4ad5c53eb085ac0570ea1071a07aaf22ad29cebd"
+  integrity sha512-GVZmLJnkS4Vl8Pe9o4nc5ALZ615VOVxCmea8Cs0l+8GZw3RQ5XGOSUomIUfuZuk4Todo44v4y+HY1EATkDDiZg==
+  dependencies:
+    xmlchars "^1.3.1"
+
+schema-utils@^0.4.2, schema-utils@^0.4.4:
   version "0.4.7"
   resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187"
+  integrity sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==
+  dependencies:
+    ajv "^6.1.0"
+    ajv-keywords "^3.1.0"
+
+schema-utils@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770"
+  integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==
   dependencies:
     ajv "^6.1.0"
+    ajv-errors "^1.0.0"
     ajv-keywords "^3.1.0"
 
 scss-tokenizer@^0.2.3:
   version "0.2.3"
   resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1"
+  integrity sha1-jrBtualyMzOCTT9VMGQRSYR85dE=
   dependencies:
     js-base64 "^2.1.8"
     source-map "^0.4.2"
@@ -6677,30 +7605,36 @@ scss-tokenizer@^0.2.3:
 select-hose@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca"
+  integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=
 
 selfsigned@^1.9.1:
-  version "1.10.3"
-  resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.3.tgz#d628ecf9e3735f84e8bafba936b3cf85bea43823"
+  version "1.10.4"
+  resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.4.tgz#cdd7eccfca4ed7635d47a08bf2d5d3074092e2cd"
+  integrity sha512-9AukTiDmHXGXWtWjembZ5NDmVvP2695EtpgbCsxCa68w3c88B+alqbmZ4O3hZ4VWGXeGWzEVdvqgAJD8DQPCDw==
   dependencies:
     node-forge "0.7.5"
 
-semantic-ui-css@^2.3.3:
-  version "2.3.3"
-  resolved "https://registry.yarnpkg.com/semantic-ui-css/-/semantic-ui-css-2.3.3.tgz#134794cde03344092f2728ff61bf9203cf172834"
+semantic-ui-css@^2.4.1:
+  version "2.4.1"
+  resolved "https://registry.yarnpkg.com/semantic-ui-css/-/semantic-ui-css-2.4.1.tgz#f5aea39fafb787cbd905ec724272a3f9cba9004a"
+  integrity sha512-Pkp0p9oWOxlH0kODx7qFpIRYpK1T4WJOO4lNnpNPOoWKCrYsfHqYSKgk5fHfQtnWnsAKy7nLJMW02bgDWWFZFg==
   dependencies:
     jquery x.*
 
-"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0:
-  version "5.5.0"
-  resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
+"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0:
+  version "5.6.0"
+  resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004"
+  integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==
 
 semver@~5.3.0:
   version "5.3.0"
   resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
+  integrity sha1-myzl094C0XxgEq0yaqa00M9U+U8=
 
 send@0.16.2:
   version "0.16.2"
   resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1"
+  integrity sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==
   dependencies:
     debug "2.6.9"
     depd "~1.1.2"
@@ -6719,10 +7653,12 @@ send@0.16.2:
 serialize-javascript@^1.4.0:
   version "1.5.0"
   resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.5.0.tgz#1aa336162c88a890ddad5384baebc93a655161fe"
+  integrity sha512-Ga8c8NjAAp46Br4+0oZ2WxJCwIzwP60Gq1YPgU+39PiTVxyed/iKE/zyZI6+UlVYH5Q4PaQdHhcegIFPZTUfoQ==
 
 serve-index@^1.7.2:
   version "1.9.1"
   resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239"
+  integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=
   dependencies:
     accepts "~1.3.4"
     batch "0.6.1"
@@ -6735,6 +7671,7 @@ serve-index@^1.7.2:
 serve-static@1.13.2:
   version "1.13.2"
   resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1"
+  integrity sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==
   dependencies:
     encodeurl "~1.0.2"
     escape-html "~1.0.3"
@@ -6744,14 +7681,12 @@ serve-static@1.13.2:
 set-blocking@^2.0.0, set-blocking@~2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
-
-set-immediate-shim@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61"
+  integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
 
 set-value@^0.4.3:
   version "0.4.3"
   resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1"
+  integrity sha1-fbCPnT0i3H945Trzw79GZuzfzPE=
   dependencies:
     extend-shallow "^2.0.1"
     is-extendable "^0.1.1"
@@ -6761,6 +7696,7 @@ set-value@^0.4.3:
 set-value@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274"
+  integrity sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==
   dependencies:
     extend-shallow "^2.0.1"
     is-extendable "^0.1.1"
@@ -6770,18 +7706,17 @@ set-value@^2.0.0:
 setimmediate@^1.0.4:
   version "1.0.5"
   resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
-
-setprototypeof@1.0.3:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04"
+  integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=
 
 setprototypeof@1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656"
+  integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==
 
 sha.js@^2.4.0, sha.js@^2.4.8:
   version "2.4.11"
   resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7"
+  integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==
   dependencies:
     inherits "^2.0.1"
     safe-buffer "^5.0.1"
@@ -6789,6 +7724,7 @@ sha.js@^2.4.0, sha.js@^2.4.8:
 shallow-clone@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-1.0.0.tgz#4480cd06e882ef68b2ad88a3ea54832e2c48b571"
+  integrity sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==
   dependencies:
     is-extendable "^0.1.1"
     kind-of "^5.0.0"
@@ -6797,16 +7733,19 @@ shallow-clone@^1.0.0:
 shebang-command@^1.2.0:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
+  integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=
   dependencies:
     shebang-regex "^1.0.0"
 
 shebang-regex@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
+  integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
 
 shell-quote@^1.6.1:
   version "1.6.1"
   resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767"
+  integrity sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=
   dependencies:
     array-filter "~0.0.0"
     array-map "~0.0.0"
@@ -6814,56 +7753,65 @@ shell-quote@^1.6.1:
     jsonify "~0.0.0"
 
 showdown@^1.8.6:
-  version "1.8.6"
-  resolved "https://registry.yarnpkg.com/showdown/-/showdown-1.8.6.tgz#91ea4ee3b7a5448aaca6820a4e27e690c6ad771c"
+  version "1.9.0"
+  resolved "https://registry.yarnpkg.com/showdown/-/showdown-1.9.0.tgz#d49d2a0b6db21b7c2e96ef855f7b3b2a28ef46f4"
+  integrity sha512-x7xDCRIaOlicbC57nMhGfKamu+ghwsdVkHMttyn+DelwzuHOx4OHCVL/UW/2QOLH7BxfCcCCVVUix3boKXJKXQ==
   dependencies:
     yargs "^10.0.3"
 
 shvl@^1.3.0:
   version "1.3.1"
   resolved "https://registry.yarnpkg.com/shvl/-/shvl-1.3.1.tgz#6c20a17b4a20b08e9f8cab60c50a92229fcc176e"
+  integrity sha512-+rRPP46hloYUAEImJcqprUgXu+05Ikqr4h4V+w5i2zJy37nAqtkQKufs3+3S2fDq6JNRrHMIQhB/Vaex+jgAAw==
 
 signal-exit@^3.0.0, signal-exit@^3.0.2:
   version "3.0.2"
   resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
+  integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=
 
 simple-swizzle@^0.2.2:
   version "0.2.2"
   resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
+  integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=
   dependencies:
     is-arrayish "^0.3.1"
 
 sinon@^6.1.5:
-  version "6.1.5"
-  resolved "https://registry.yarnpkg.com/sinon/-/sinon-6.1.5.tgz#41451502d43cd5ffb9d051fbf507952400e81d09"
+  version "6.3.5"
+  resolved "https://registry.yarnpkg.com/sinon/-/sinon-6.3.5.tgz#0f6d6a5b4ebaad1f6e8e019395542d1d02c144a0"
+  integrity sha512-xgoZ2gKjyVRcF08RrIQc+srnSyY1JDJtxu3Nsz07j1ffjgXoY6uPLf/qja6nDBZgzYYEovVkFryw2+KiZz11xQ==
   dependencies:
-    "@sinonjs/commons" "^1.0.1"
-    "@sinonjs/formatio" "^2.0.0"
-    "@sinonjs/samsam" "^2.0.0"
+    "@sinonjs/commons" "^1.0.2"
+    "@sinonjs/formatio" "^3.0.0"
+    "@sinonjs/samsam" "^2.1.2"
     diff "^3.5.0"
     lodash.get "^4.4.2"
-    lolex "^2.7.1"
-    nise "^1.4.2"
-    supports-color "^5.4.0"
+    lolex "^2.7.5"
+    nise "^1.4.5"
+    supports-color "^5.5.0"
     type-detect "^4.0.8"
 
 slash@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
+  integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=
 
 slash@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44"
+  integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==
 
 slice-ansi@1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d"
+  integrity sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==
   dependencies:
     is-fullwidth-code-point "^2.0.0"
 
 snapdragon-node@^2.0.1:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
+  integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==
   dependencies:
     define-property "^1.0.0"
     isobject "^3.0.0"
@@ -6872,12 +7820,14 @@ snapdragon-node@^2.0.1:
 snapdragon-util@^3.0.1:
   version "3.0.1"
   resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2"
+  integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==
   dependencies:
     kind-of "^3.2.0"
 
 snapdragon@^0.8.1:
   version "0.8.2"
   resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d"
+  integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==
   dependencies:
     base "^0.11.1"
     debug "^2.2.0"
@@ -6888,20 +7838,22 @@ snapdragon@^0.8.1:
     source-map-resolve "^0.5.0"
     use "^3.1.0"
 
-sockjs-client@1.1.5:
-  version "1.1.5"
-  resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.5.tgz#1bb7c0f7222c40f42adf14f4442cbd1269771a83"
+sockjs-client@1.3.0:
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.3.0.tgz#12fc9d6cb663da5739d3dc5fb6e8687da95cb177"
+  integrity sha512-R9jxEzhnnrdxLCNln0xg5uGHqMnkhPSTzUZH2eXcR03S/On9Yvoq2wyUZILRUhZCNVu2PmwWVoyuiPz8th8zbg==
   dependencies:
-    debug "^2.6.6"
-    eventsource "0.1.6"
-    faye-websocket "~0.11.0"
-    inherits "^2.0.1"
+    debug "^3.2.5"
+    eventsource "^1.0.7"
+    faye-websocket "~0.11.1"
+    inherits "^2.0.3"
     json3 "^3.3.2"
-    url-parse "^1.1.8"
+    url-parse "^1.4.3"
 
 sockjs@0.3.19:
   version "0.3.19"
   resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d"
+  integrity sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==
   dependencies:
     faye-websocket "^0.10.0"
     uuid "^3.0.1"
@@ -6909,14 +7861,17 @@ sockjs@0.3.19:
 sortablejs@^1.7.0:
   version "1.7.0"
   resolved "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.7.0.tgz#80a2b2370abd568e1cec8c271131ef30a904fa28"
+  integrity sha1-gKKyNwq9Vo4c7IwnETHvMKkE+ig=
 
 source-list-map@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085"
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34"
+  integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==
 
 source-map-resolve@^0.5.0:
   version "0.5.2"
   resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259"
+  integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==
   dependencies:
     atob "^2.1.1"
     decode-uri-component "^0.2.0"
@@ -6924,9 +7879,10 @@ source-map-resolve@^0.5.0:
     source-map-url "^0.4.0"
     urix "^0.1.0"
 
-source-map-support@^0.5.0:
-  version "0.5.8"
-  resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.8.tgz#04f5581713a8a65612d0175fbf3a01f80a162613"
+source-map-support@^0.5.0, source-map-support@~0.5.6:
+  version "0.5.9"
+  resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.9.tgz#41bc953b2534267ea2d605bccfa7bfa3111ced5f"
+  integrity sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==
   dependencies:
     buffer-from "^1.0.0"
     source-map "^0.6.0"
@@ -6934,46 +7890,55 @@ source-map-support@^0.5.0:
 source-map-url@^0.4.0:
   version "0.4.0"
   resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3"
-
-source-map@0.5.x, source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1:
-  version "0.5.7"
-  resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
+  integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=
 
 source-map@^0.4.2:
   version "0.4.4"
   resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b"
+  integrity sha1-66T12pwNyZneaAMti092FzZSA2s=
   dependencies:
     amdefine ">=0.0.4"
 
+source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1:
+  version "0.5.7"
+  resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
+  integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
+
 source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1:
   version "0.6.1"
   resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
+  integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
 
 spdx-correct@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82"
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4"
+  integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==
   dependencies:
     spdx-expression-parse "^3.0.0"
     spdx-license-ids "^3.0.0"
 
 spdx-exceptions@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9"
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977"
+  integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==
 
 spdx-expression-parse@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0"
+  integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==
   dependencies:
     spdx-exceptions "^2.1.0"
     spdx-license-ids "^3.0.0"
 
 spdx-license-ids@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz#7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87"
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.2.tgz#a59efc09784c2a5bada13cfeaf5c75dd214044d2"
+  integrity sha512-qky9CVt0lVIECkEsYbNILVnPvycuEBkXoMFLRWsREkomQLevYhtRKC+R91a5TOAQ3bCMjikRwhyaRqj1VYatYg==
 
 spdy-transport@^2.0.18:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-2.1.0.tgz#4bbb15aaffed0beefdd56ad61dbdc8ba3e2cb7a1"
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-2.1.1.tgz#c54815d73858aadd06ce63001e7d25fa6441623b"
+  integrity sha512-q7D8c148escoB3Z7ySCASadkegMmUZW8Wb/Q1u0/XBgDKMO880rLQDj8Twiew/tYi7ghemKUi/whSYOwE17f5Q==
   dependencies:
     debug "^2.6.8"
     detect-node "^2.0.3"
@@ -6986,6 +7951,7 @@ spdy-transport@^2.0.18:
 spdy@^3.4.1:
   version "3.4.7"
   resolved "https://registry.yarnpkg.com/spdy/-/spdy-3.4.7.tgz#42ff41ece5cc0f99a3a6c28aabb73f5c3b03acbc"
+  integrity sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=
   dependencies:
     debug "^2.6.8"
     handle-thing "^1.2.5"
@@ -6997,74 +7963,88 @@ spdy@^3.4.1:
 split-string@^3.0.1, split-string@^3.0.2:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2"
+  integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==
   dependencies:
     extend-shallow "^3.0.0"
 
 sprintf-js@~1.0.2:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
+  integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
 
 sshpk@^1.7.0:
-  version "1.14.2"
-  resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.2.tgz#c6fc61648a3d9c4e764fd3fcdf4ea105e492ba98"
+  version "1.15.2"
+  resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.15.2.tgz#c946d6bd9b1a39d0e8635763f5242d6ed6dcb629"
+  integrity sha512-Ra/OXQtuh0/enyl4ETZAfTaeksa6BXks5ZcjpSUNrjBr0DvrJKX+1fsKDPpT9TBXgHAFsa4510aNVgI8g/+SzA==
   dependencies:
     asn1 "~0.2.3"
     assert-plus "^1.0.0"
-    dashdash "^1.12.0"
-    getpass "^0.1.1"
-    safer-buffer "^2.0.2"
-  optionalDependencies:
     bcrypt-pbkdf "^1.0.0"
+    dashdash "^1.12.0"
     ecc-jsbn "~0.1.1"
+    getpass "^0.1.1"
     jsbn "~0.1.0"
+    safer-buffer "^2.0.2"
     tweetnacl "~0.14.0"
 
 ssri@^5.2.4:
   version "5.3.0"
   resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06"
+  integrity sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==
   dependencies:
     safe-buffer "^5.1.1"
 
-ssri@^6.0.0:
-  version "6.0.0"
-  resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.0.tgz#fc21bfc90e03275ac3e23d5a42e38b8a1cbc130d"
+ssri@^6.0.0, ssri@^6.0.1:
+  version "6.0.1"
+  resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8"
+  integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==
+  dependencies:
+    figgy-pudding "^3.5.1"
 
 stable@~0.1.6:
   version "0.1.8"
   resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf"
+  integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==
 
 stackframe@^1.0.4:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.0.4.tgz#357b24a992f9427cba6b545d96a14ed2cbca187b"
+  integrity sha512-to7oADIniaYwS3MhtCa/sQhrxidCCQiF/qp4/m5iN3ipf0Y7Xlri0f6eG29r08aL7JYl8n32AF3Q5GYBZ7K8vw==
 
 static-extend@^0.1.1:
   version "0.1.2"
   resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6"
+  integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=
   dependencies:
     define-property "^0.2.5"
     object-copy "^0.1.0"
 
-"statuses@>= 1.3.1 < 2", "statuses@>= 1.4.0 < 2":
+"statuses@>= 1.4.0 < 2":
   version "1.5.0"
   resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
+  integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
 
 statuses@~1.4.0:
   version "1.4.0"
   resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087"
+  integrity sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==
 
 stdout-stream@^1.4.0:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.0.tgz#a2c7c8587e54d9427ea9edb3ac3f2cd522df378b"
+  version "1.4.1"
+  resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.1.tgz#5ac174cdd5cd726104aa0c0b2bd83815d8d535de"
+  integrity sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==
   dependencies:
     readable-stream "^2.0.1"
 
 stealthy-require@^1.1.0:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b"
+  integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=
 
 stream-browserify@^2.0.1:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db"
+  integrity sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=
   dependencies:
     inherits "~2.0.1"
     readable-stream "^2.0.2"
@@ -7072,6 +8052,7 @@ stream-browserify@^2.0.1:
 stream-each@^1.1.0:
   version "1.2.3"
   resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae"
+  integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==
   dependencies:
     end-of-stream "^1.1.0"
     stream-shift "^1.0.0"
@@ -7079,6 +8060,7 @@ stream-each@^1.1.0:
 stream-http@^2.7.2:
   version "2.8.3"
   resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc"
+  integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==
   dependencies:
     builtin-status-codes "^3.0.0"
     inherits "^2.0.1"
@@ -7089,10 +8071,12 @@ stream-http@^2.7.2:
 stream-shift@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952"
+  integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=
 
 string-width@^1.0.1, string-width@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
+  integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=
   dependencies:
     code-point-at "^1.0.0"
     is-fullwidth-code-point "^1.0.0"
@@ -7101,6 +8085,7 @@ string-width@^1.0.1, string-width@^1.0.2:
 "string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
+  integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
   dependencies:
     is-fullwidth-code-point "^2.0.0"
     strip-ansi "^4.0.0"
@@ -7108,6 +8093,7 @@ string-width@^1.0.1, string-width@^1.0.2:
 string.prototype.padend@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz#f3aaef7c1719f170c5eab1c32bf780d96e21f2f0"
+  integrity sha1-86rvfBcZ8XDF6rHDK/eA2W4h8vA=
   dependencies:
     define-properties "^1.1.2"
     es-abstract "^1.4.3"
@@ -7116,87 +8102,115 @@ string.prototype.padend@^3.0.0:
 string.prototype.padstart@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/string.prototype.padstart/-/string.prototype.padstart-3.0.0.tgz#5bcfad39f4649bb2d031292e19bcf0b510d4b242"
+  integrity sha1-W8+tOfRkm7LQMSkuGbzwtRDUskI=
   dependencies:
     define-properties "^1.1.2"
     es-abstract "^1.4.3"
     function-bind "^1.0.2"
 
-string_decoder@^1.0.0, string_decoder@~1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
+string_decoder@^1.0.0, string_decoder@^1.1.1:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d"
+  integrity sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w==
   dependencies:
     safe-buffer "~5.1.0"
 
 string_decoder@~0.10.x:
   version "0.10.31"
   resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
+  integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=
+
+string_decoder@~1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
+  integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
+  dependencies:
+    safe-buffer "~5.1.0"
 
 strip-ansi@^3.0.0, strip-ansi@^3.0.1:
   version "3.0.1"
   resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
+  integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=
   dependencies:
     ansi-regex "^2.0.0"
 
 strip-ansi@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
+  integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8=
   dependencies:
     ansi-regex "^3.0.0"
 
 strip-bom@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e"
+  integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=
   dependencies:
     is-utf8 "^0.2.0"
 
 strip-eof@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
+  integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=
 
 strip-indent@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2"
+  integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=
   dependencies:
     get-stdin "^4.0.1"
 
 strip-indent@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68"
+  integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=
 
 strip-json-comments@~2.0.1:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
+  integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
 
 stylehacks@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.0.tgz#64b323951c4a24e5fc7b2ec06c137bf32d155e8a"
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.1.tgz#3186595d047ab0df813d213e51c8b94e0b9010f2"
+  integrity sha512-TK5zEPeD9NyC1uPIdjikzsgWxdQQN/ry1X3d1iOz1UkYDCmcr928gWD1KHgyC27F50UnE0xCTrBOO1l6KR8M4w==
   dependencies:
     browserslist "^4.0.0"
-    postcss "^6.0.0"
+    postcss "^7.0.0"
     postcss-selector-parser "^3.0.0"
 
-supports-color@5.4.0, supports-color@^5.1.0, supports-color@^5.3.0, supports-color@^5.4.0:
+supports-color@5.4.0:
   version "5.4.0"
   resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54"
+  integrity sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==
   dependencies:
     has-flag "^3.0.0"
 
 supports-color@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
+  integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=
+
+supports-color@^5.1.0, supports-color@^5.3.0, supports-color@^5.4.0, supports-color@^5.5.0:
+  version "5.5.0"
+  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
+  integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
+  dependencies:
+    has-flag "^3.0.0"
 
 svgo@^1.0.0:
-  version "1.0.5"
-  resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.0.5.tgz#7040364c062a0538abacff4401cea6a26a7a389a"
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.1.1.tgz#12384b03335bcecd85cfa5f4e3375fed671cb985"
+  integrity sha512-GBkJbnTuFpM4jFbiERHDWhZc/S/kpHToqmZag3aEBjPYK44JAN2QBjvrGIxLOoCyMZjuFQIfTO2eJd8uwLY/9g==
   dependencies:
     coa "~2.0.1"
     colors "~1.1.2"
-    css-select "~1.3.0-rc0"
+    css-select "^2.0.0"
     css-select-base-adapter "~0.1.0"
-    css-tree "1.0.0-alpha25"
+    css-tree "1.0.0-alpha.28"
     css-url-regex "^1.1.0"
     csso "^3.5.0"
-    js-yaml "~3.10.0"
+    js-yaml "^3.12.0"
     mkdirp "~0.5.1"
     object.values "^1.0.4"
     sax "~1.2.4"
@@ -7207,10 +8221,12 @@ svgo@^1.0.0:
 symbol-tree@^3.2.2:
   version "3.2.2"
   resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6"
+  integrity sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=
 
 table@4.0.2:
   version "4.0.2"
   resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36"
+  integrity sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==
   dependencies:
     ajv "^5.2.3"
     ajv-keywords "^2.1.0"
@@ -7219,98 +8235,138 @@ table@4.0.2:
     slice-ansi "1.0.0"
     string-width "^2.1.1"
 
-tapable@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.0.0.tgz#cbb639d9002eed9c6b5975eb20598d7936f1f9f2"
+tapable@^1.0.0, tapable@^1.1.0:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.1.tgz#4d297923c5a72a42360de2ab52dadfaaec00018e"
+  integrity sha512-9I2ydhj8Z9veORCw5PRm4u9uebCn0mcCa6scWoNcbZ6dAtoo2618u9UUzxgmsCOreJpqDDuv61LvwofW7hLcBA==
 
 tar@^2.0.0:
   version "2.2.1"
   resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1"
+  integrity sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=
   dependencies:
     block-stream "*"
     fstream "^1.0.2"
     inherits "2"
 
 tar@^4:
-  version "4.4.6"
-  resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.6.tgz#63110f09c00b4e60ac8bcfe1bf3c8660235fbc9b"
+  version "4.4.8"
+  resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.8.tgz#b19eec3fde2a96e64666df9fdb40c5ca1bc3747d"
+  integrity sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==
   dependencies:
-    chownr "^1.0.1"
+    chownr "^1.1.1"
     fs-minipass "^1.2.5"
-    minipass "^2.3.3"
-    minizlib "^1.1.0"
+    minipass "^2.3.4"
+    minizlib "^1.1.1"
     mkdirp "^0.5.0"
     safe-buffer "^5.1.2"
     yallist "^3.0.2"
 
+terser-webpack-plugin@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.1.0.tgz#cf7c25a1eee25bf121f4a587bb9e004e3f80e528"
+  integrity sha512-61lV0DSxMAZ8AyZG7/A4a3UPlrbOBo8NIQ4tJzLPAdGOQ+yoNC7l5ijEow27lBAL2humer01KLS6bGIMYQxKoA==
+  dependencies:
+    cacache "^11.0.2"
+    find-cache-dir "^2.0.0"
+    schema-utils "^1.0.0"
+    serialize-javascript "^1.4.0"
+    source-map "^0.6.1"
+    terser "^3.8.1"
+    webpack-sources "^1.1.0"
+    worker-farm "^1.5.2"
+
+terser@^3.8.1:
+  version "3.13.1"
+  resolved "https://registry.yarnpkg.com/terser/-/terser-3.13.1.tgz#a02e8827fb9705fe7b609c31093d010b28cea8eb"
+  integrity sha512-ogyZye4DFqOtMzT92Y3Nxxw8OvXmL39HOALro4fc+EUYFFF9G/kk0znkvwMz6PPYgBtdKAodh3FPR70eugdaQA==
+  dependencies:
+    commander "~2.17.1"
+    source-map "~0.6.1"
+    source-map-support "~0.5.6"
+
 text-encoding@^0.6.4:
   version "0.6.4"
   resolved "https://registry.yarnpkg.com/text-encoding/-/text-encoding-0.6.4.tgz#e399a982257a276dae428bb92845cb71bdc26d19"
+  integrity sha1-45mpgiV6J22uQou5KEXLcb3CbRk=
 
-text-table@^0.2.0, text-table@~0.2.0:
+text-table@~0.2.0:
   version "0.2.0"
   resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
+  integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
 
-thread-loader@^1.1.5:
+thread-loader@^1.2.0:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/thread-loader/-/thread-loader-1.2.0.tgz#35dedb23cf294afbbce6c45c1339b950ed17e7a4"
+  integrity sha512-acJ0rvUk53+ly9cqYWNOpPqOgCkNpmHLPDGduNm4hDQWF7EDKEJXAopG9iEWsPPcml09wePkq3NF+ZUqnO6tbg==
   dependencies:
     async "^2.3.0"
     loader-runner "^2.3.0"
     loader-utils "^1.1.0"
 
 through2@^2.0.0:
-  version "2.0.3"
-  resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be"
+  version "2.0.5"
+  resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
+  integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==
   dependencies:
-    readable-stream "^2.1.5"
+    readable-stream "~2.3.6"
     xtend "~4.0.1"
 
 through@^2.3.6:
   version "2.3.8"
   resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
+  integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
 
 thunky@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.0.2.tgz#a862e018e3fb1ea2ec3fce5d55605cf57f247371"
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.0.3.tgz#f5df732453407b09191dae73e2a8cc73f381a826"
+  integrity sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow==
 
 timers-browserify@^2.0.4:
   version "2.0.10"
   resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae"
+  integrity sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==
   dependencies:
     setimmediate "^1.0.4"
 
 timsort@^0.3.0:
   version "0.3.0"
   resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4"
+  integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=
 
 tmp@^0.0.33:
   version "0.0.33"
   resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
+  integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==
   dependencies:
     os-tmpdir "~1.0.2"
 
 to-arraybuffer@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
+  integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=
 
 to-fast-properties@^1.0.3:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47"
+  integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=
 
 to-fast-properties@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
+  integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
 
 to-object-path@^0.3.0:
   version "0.3.0"
   resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af"
+  integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=
   dependencies:
     kind-of "^3.0.2"
 
 to-regex-range@^2.1.0:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38"
+  integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=
   dependencies:
     is-number "^3.0.0"
     repeat-string "^1.6.1"
@@ -7318,6 +8374,7 @@ to-regex-range@^2.1.0:
 to-regex@^3.0.1, to-regex@^3.0.2:
   version "3.0.2"
   resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce"
+  integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==
   dependencies:
     define-property "^2.0.2"
     extend-shallow "^3.0.2"
@@ -7327,85 +8384,103 @@ to-regex@^3.0.1, to-regex@^3.0.2:
 token-stream@0.0.1:
   version "0.0.1"
   resolved "https://registry.yarnpkg.com/token-stream/-/token-stream-0.0.1.tgz#ceeefc717a76c4316f126d0b9dbaa55d7e7df01a"
+  integrity sha1-zu78cXp2xDFvEm0LnbqlXX598Bo=
 
 topo@3.x.x:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/topo/-/topo-3.0.0.tgz#37e48c330efeac784538e0acd3e62ca5e231fe7a"
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/topo/-/topo-3.0.3.tgz#d5a67fb2e69307ebeeb08402ec2a2a6f5f7ad95c"
+  integrity sha512-IgpPtvD4kjrJ7CRA3ov2FhWQADwv+Tdqbsf1ZnPUSAtCJ9e1Z44MmoSGDXGk4IppoZA7jd/QRkNddlLJWlUZsQ==
   dependencies:
-    hoek "5.x.x"
+    hoek "6.x.x"
 
 toposort@^1.0.0:
   version "1.0.7"
   resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029"
+  integrity sha1-LmhELZ9k7HILjMieZEOsbKqVACk=
+
+tough-cookie@>=2.3.3, tough-cookie@^2.5.0:
+  version "2.5.0"
+  resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"
+  integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==
+  dependencies:
+    psl "^1.1.28"
+    punycode "^2.1.1"
 
-tough-cookie@>=2.3.3, tough-cookie@^2.3.4, tough-cookie@~2.4.3:
+tough-cookie@~2.4.3:
   version "2.4.3"
   resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781"
+  integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==
   dependencies:
     psl "^1.1.24"
     punycode "^1.4.1"
 
-tough-cookie@~2.3.3:
-  version "2.3.4"
-  resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655"
-  dependencies:
-    punycode "^1.4.1"
-
 tr46@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09"
+  integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=
   dependencies:
     punycode "^2.1.0"
 
 trim-newlines@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613"
+  integrity sha1-WIeWa7WCpFA6QetST301ARgVphM=
 
 trim-right@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
+  integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=
 
 "true-case-path@^1.0.2":
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.2.tgz#7ec91130924766c7f573be3020c34f8fdfd00d62"
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.3.tgz#f813b5a8c86b40da59606722b144e3225799f47d"
+  integrity sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==
   dependencies:
-    glob "^6.0.4"
+    glob "^7.1.2"
 
 tryer@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8"
+  integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==
 
 tslib@^1.9.0:
   version "1.9.3"
   resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286"
+  integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==
 
 tty-browserify@0.0.0:
   version "0.0.0"
   resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6"
+  integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=
 
 tunnel-agent@^0.6.0:
   version "0.6.0"
   resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
+  integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=
   dependencies:
     safe-buffer "^5.0.1"
 
 tweetnacl@^0.14.3, tweetnacl@~0.14.0:
   version "0.14.5"
   resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
+  integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
 
 type-check@~0.3.2:
   version "0.3.2"
   resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
+  integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=
   dependencies:
     prelude-ls "~1.1.2"
 
-type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.8:
+type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5, type-detect@^4.0.8:
   version "4.0.8"
   resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
+  integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
 
-type-is@~1.6.15, type-is@~1.6.16:
+type-is@~1.6.16:
   version "1.6.16"
   resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194"
+  integrity sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==
   dependencies:
     media-typer "0.3.0"
     mime-types "~2.1.18"
@@ -7413,24 +8488,20 @@ type-is@~1.6.15, type-is@~1.6.16:
 typedarray@^0.0.6:
   version "0.0.6"
   resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
-
-uglify-es@^3.3.4:
-  version "3.3.9"
-  resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677"
-  dependencies:
-    commander "~2.13.0"
-    source-map "~0.6.1"
+  integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
 
 uglify-js@3.4.x:
-  version "3.4.7"
-  resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.7.tgz#4df6b92e54789aa921a254cb1e33704d6ec12b89"
+  version "3.4.9"
+  resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.9.tgz#af02f180c1207d76432e473ed24a28f4a782bae3"
+  integrity sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==
   dependencies:
-    commander "~2.16.0"
+    commander "~2.17.1"
     source-map "~0.6.1"
 
 uglify-js@^2.6.1:
   version "2.8.29"
   resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd"
+  integrity sha1-KcVzMUgFe7Th913zW3qcty5qWd0=
   dependencies:
     source-map "~0.5.1"
     yargs "~3.10.0"
@@ -7440,27 +8511,17 @@ uglify-js@^2.6.1:
 uglify-to-browserify@~1.0.0:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7"
-
-uglifyjs-webpack-plugin@^1.2.4, uglifyjs-webpack-plugin@^1.2.7:
-  version "1.2.7"
-  resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.7.tgz#57638dd99c853a1ebfe9d97b42160a8a507f9d00"
-  dependencies:
-    cacache "^10.0.4"
-    find-cache-dir "^1.0.0"
-    schema-utils "^0.4.5"
-    serialize-javascript "^1.4.0"
-    source-map "^0.6.1"
-    uglify-es "^3.3.4"
-    webpack-sources "^1.1.0"
-    worker-farm "^1.5.2"
+  integrity sha1-bgkk1r2mta/jSeOabWMoUKD4grc=
 
 unicode-canonical-property-names-ecmascript@^1.0.4:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818"
+  integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==
 
 unicode-match-property-ecmascript@^1.0.4:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c"
+  integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==
   dependencies:
     unicode-canonical-property-names-ecmascript "^1.0.4"
     unicode-property-aliases-ecmascript "^1.0.4"
@@ -7468,14 +8529,17 @@ unicode-match-property-ecmascript@^1.0.4:
 unicode-match-property-value-ecmascript@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.2.tgz#9f1dc76926d6ccf452310564fd834ace059663d4"
+  integrity sha512-Rx7yODZC1L/T8XKo/2kNzVAQaRE88AaMvI1EF/Xnj3GW2wzN6fop9DDWuFAKUVFH7vozkz26DzP0qyWLKLIVPQ==
 
 unicode-property-aliases-ecmascript@^1.0.4:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz#5a533f31b4317ea76f17d807fa0d116546111dd0"
+  integrity sha512-2WSLa6OdYd2ng8oqiGIWnJqyFArvhn+5vgx5GTxMbUYjCYKUcuKS62YLFF0R/BDGlB1yzXjQOLtPAfHsgirEpg==
 
 union-value@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4"
+  integrity sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=
   dependencies:
     arr-union "^3.1.0"
     get-value "^2.0.6"
@@ -7485,38 +8549,46 @@ union-value@^1.0.0:
 uniq@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff"
+  integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=
 
 uniqs@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02"
+  integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI=
 
 unique-filename@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.0.tgz#d05f2fe4032560871f30e93cbe735eea201514f3"
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230"
+  integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==
   dependencies:
     unique-slug "^2.0.0"
 
 unique-slug@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.0.tgz#db6676e7c7cc0629878ff196097c78855ae9f4ab"
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.1.tgz#5e9edc6d1ce8fb264db18a507ef9bd8544451ca6"
+  integrity sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg==
   dependencies:
     imurmurhash "^0.1.4"
 
 universalify@^0.1.0:
   version "0.1.2"
   resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
+  integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
 
 unpipe@1.0.0, unpipe@~1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
+  integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=
 
 unquote@~1.1.1:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544"
+  integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=
 
 unset-value@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"
+  integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=
   dependencies:
     has-value "^0.3.1"
     isobject "^3.0.0"
@@ -7524,43 +8596,51 @@ unset-value@^1.0.0:
 upath@^1.0.5:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd"
+  integrity sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==
 
 upper-case@^1.1.1:
   version "1.1.3"
   resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598"
+  integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=
 
-uri-js@^4.2.1:
+uri-js@^4.2.2:
   version "4.2.2"
   resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0"
+  integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==
   dependencies:
     punycode "^2.1.0"
 
 urix@^0.1.0:
   version "0.1.0"
   resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
+  integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=
 
-url-join@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/url-join/-/url-join-4.0.0.tgz#4d3340e807d3773bda9991f8305acdcc2a665d2a"
-
-url-loader@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-1.0.1.tgz#61bc53f1f184d7343da2728a1289ef8722ea45ee"
+url-loader@^1.1.2:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-1.1.2.tgz#b971d191b83af693c5e3fea4064be9e1f2d7f8d8"
+  integrity sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg==
   dependencies:
     loader-utils "^1.1.0"
     mime "^2.0.3"
-    schema-utils "^0.4.3"
+    schema-utils "^1.0.0"
 
-url-parse@^1.1.8, url-parse@^1.4.3:
-  version "1.4.3"
-  resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.3.tgz#bfaee455c889023219d757e045fa6a684ec36c15"
+url-parse@^1.4.3:
+  version "1.4.4"
+  resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.4.tgz#cac1556e95faa0303691fec5cf9d5a1bc34648f8"
+  integrity sha512-/92DTTorg4JjktLNLe6GPS2/RvAd/RGr6LuktmWSMLEOa6rjnlrFXNgSbSmkNvCoL2T028A0a1JaJLzRMlFoHg==
   dependencies:
     querystringify "^2.0.0"
     requires-port "^1.0.0"
 
+url-polyfill@^1.1.0:
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/url-polyfill/-/url-polyfill-1.1.3.tgz#ce0bdf2e923aa6f66bc198ab776323dfc5a91e62"
+  integrity sha512-xIAXc0DyXJCd767sSeRu4eqisyYhR0z0sohWArCn+WPwIatD39xGrc09l+tluIUi6jGkpGa8Gz8TKwkKYxMQvQ==
+
 url@^0.11.0:
   version "0.11.0"
   resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"
+  integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=
   dependencies:
     punycode "1.3.2"
     querystring "0.2.0"
@@ -7568,14 +8648,17 @@ url@^0.11.0:
 use@^3.1.0:
   version "3.1.1"
   resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
+  integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
 
-util-deprecate@~1.0.1:
+util-deprecate@^1.0.1, util-deprecate@~1.0.1:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
+  integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
 
 util.promisify@1.0.0, util.promisify@^1.0.0, util.promisify@~1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030"
+  integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==
   dependencies:
     define-properties "^1.1.2"
     object.getownpropertydescriptors "^2.0.3"
@@ -7583,34 +8666,36 @@ util.promisify@1.0.0, util.promisify@^1.0.0, util.promisify@~1.0.0:
 util@0.10.3:
   version "0.10.3"
   resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9"
+  integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk=
   dependencies:
     inherits "2.0.1"
 
 util@^0.10.3:
   version "0.10.4"
   resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901"
+  integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==
   dependencies:
     inherits "2.0.3"
 
-utila@~0.3:
-  version "0.3.3"
-  resolved "https://registry.yarnpkg.com/utila/-/utila-0.3.3.tgz#d7e8e7d7e309107092b05f8d9688824d633a4226"
-
-utila@~0.4:
+utila@^0.4.0, utila@~0.4:
   version "0.4.0"
   resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c"
+  integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=
 
 utils-merge@1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
+  integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
 
-uuid@^3.0.1, uuid@^3.1.0, uuid@^3.3.2:
+uuid@^3.0.1, uuid@^3.3.2:
   version "3.3.2"
   resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131"
+  integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==
 
 validate-npm-package-license@^3.0.1:
   version "3.0.4"
   resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
+  integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==
   dependencies:
     spdx-correct "^3.0.0"
     spdx-expression-parse "^3.0.0"
@@ -7618,14 +8703,17 @@ validate-npm-package-license@^3.0.1:
 vary@~1.1.2:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
+  integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
 
 vendors@^1.0.0:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.2.tgz#7fcb5eef9f5623b156bcea89ec37d63676f21801"
+  integrity sha512-w/hry/368nO21AN9QljsaIhb9ZiZtZARoVH5f3CsFbawdLdayCgKRPup7CggujvySMxx0I91NOyxdVENohprLQ==
 
 verror@1.10.0:
   version "1.10.0"
   resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
+  integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=
   dependencies:
     assert-plus "^1.0.0"
     core-util-is "1.0.2"
@@ -7634,16 +8722,19 @@ verror@1.10.0:
 vm-browserify@0.0.4:
   version "0.0.4"
   resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73"
+  integrity sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=
   dependencies:
     indexof "0.0.1"
 
 void-elements@^2.0.1:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec"
+  integrity sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=
 
 vue-eslint-parser@^2.0.3:
   version "2.0.3"
   resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-2.0.3.tgz#c268c96c6d94cfe3d938a5f7593959b0ca3360d1"
+  integrity sha512-ZezcU71Owm84xVF6gfurBQUGg8WQ+WZGxgDEQu1IHFBZNx7BFZg3L1yHxrCBNNwbwFtE1GuvfJKMtb6Xuwc/Bw==
   dependencies:
     debug "^3.1.0"
     eslint-scope "^3.7.1"
@@ -7653,20 +8744,24 @@ vue-eslint-parser@^2.0.3:
     lodash "^4.17.4"
 
 vue-gettext@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/vue-gettext/-/vue-gettext-2.1.0.tgz#e4932037a8601412dd9f7d7d7a5d60c4bdb341d1"
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/vue-gettext/-/vue-gettext-2.1.1.tgz#8431b57c27d0becff131de6a643ac4ea8ffcb52c"
+  integrity sha512-vbKhl7VGlVtTElNIdvpC4GKTRH1CwZmzhELcP6jS/UaFcF+yZvS5bIIAiPCQzMEU5dpAI0hIgJAxAKOMIg7UXw==
 
 vue-hot-reload-api@^2.3.0:
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.0.tgz#97976142405d13d8efae154749e88c4e358cf926"
+  version "2.3.1"
+  resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.1.tgz#b2d3d95402a811602380783ea4f566eb875569a2"
+  integrity sha512-AA86yKZ5uOKz87/q1UpngEXhbRkaYg1b7HMMVRobNV1IVKqZe8oLIzo6iMocVwZXnYitlGwf2k4ZRLOZlS8oPQ==
 
 vue-lazyload@^1.2.6:
   version "1.2.6"
   resolved "https://registry.yarnpkg.com/vue-lazyload/-/vue-lazyload-1.2.6.tgz#baa04c172d52a812608eb12c7a6bfb14f5c91079"
+  integrity sha512-6a61+pzwcfowhLRQiPdmRuJ40n/4fL/sEynu8KQZoCf5RVA0NH0X68vplLY0+lUM8mKNScYomaepV+hdjgnZhg==
 
-vue-loader@^15.3.0:
-  version "15.3.0"
-  resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.3.0.tgz#b474d10a4e93d934a78c147fc3e314b370e9fc54"
+vue-loader@^15.4.2:
+  version "15.4.2"
+  resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.4.2.tgz#812bb26e447dd3b84c485eb634190d914ce125e2"
+  integrity sha512-nVV27GNIA9MeoD8yQ3dkUzwlAaAsWeYSWZHsu/K04KCD339lW0Jv2sJWsjj3721SP7sl2lYdPmjcHgkWQSp5bg==
   dependencies:
     "@vue/component-compiler-utils" "^2.0.0"
     hash-sum "^1.0.2"
@@ -7675,27 +8770,38 @@ vue-loader@^15.3.0:
     vue-style-loader "^4.1.0"
 
 vue-masonry@^0.11.5:
-  version "0.11.5"
-  resolved "https://registry.yarnpkg.com/vue-masonry/-/vue-masonry-0.11.5.tgz#9b2916388c267dea3dab60a1d808f10e6a5784df"
+  version "0.11.7"
+  resolved "https://registry.yarnpkg.com/vue-masonry/-/vue-masonry-0.11.7.tgz#14c41d211b348419ec0d973994ee300a63781462"
+  integrity sha512-FWnEErZCgwmRl48sZoPbgeHaD4aJHIEuolG1m4jIVr65qnnrJ+QVpyRNynvLNEhZGwtscSphPGcEsdps4ITOWA==
   dependencies:
     imagesloaded "4.1.4"
-    masonry-layout "4.2.0"
+    masonry-layout "^4.2.2"
     vue "^2.0.0"
 
+vue-plyr@^5.0.4:
+  version "5.0.4"
+  resolved "https://registry.yarnpkg.com/vue-plyr/-/vue-plyr-5.0.4.tgz#13083b71a876d01200a3c93ebfd11585b671afda"
+  integrity sha512-zOLD7SZiYR/8DPYkZZR9zGTV+04GAc+fhnBymAWSRryncAG4889cYxXJSbIvlsNVGpdGRIOSIZ4p6pIupfmZ5w==
+  dependencies:
+    plyr "^3.4.5"
+
 vue-router@^3.0.1:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.0.1.tgz#d9b05ad9c7420ba0f626d6500d693e60092cc1e9"
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.0.2.tgz#dedc67afe6c4e2bc25682c8b1c2a8c0d7c7e56be"
+  integrity sha512-opKtsxjp9eOcFWdp6xLQPLmRGgfM932Tl56U9chYTnoWqKxQ8M20N7AkdEbM5beUh6wICoFGYugAX9vQjyJLFg==
 
 vue-style-loader@^4.1.0:
-  version "4.1.1"
-  resolved "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-4.1.1.tgz#7c1d051b24f60b1707602b549ed50b4c8111d316"
+  version "4.1.2"
+  resolved "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-4.1.2.tgz#dedf349806f25ceb4e64f3ad7c0a44fba735fcf8"
+  integrity sha512-0ip8ge6Gzz/Bk0iHovU9XAUQaFt/G2B61bnWa2tCcqqdgfHs1lF9xXorFbE55Gmy92okFT+8bfmySuUOu13vxQ==
   dependencies:
     hash-sum "^1.0.2"
     loader-utils "^1.0.2"
 
 vue-template-compiler@^2.5.16, vue-template-compiler@^2.5.17:
-  version "2.5.17"
-  resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.5.17.tgz#52a4a078c327deb937482a509ae85c06f346c3cb"
+  version "2.5.21"
+  resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.5.21.tgz#a57ceb903177e8f643560a8d639a0f8db647054a"
+  integrity sha512-Vmk5Cv7UcmI99B9nXJEkaK262IQNnHp5rJYo+EwYpe2epTAXqcVyExhV6pk8jTkxQK2vRc8v8KmZBAwdmUZvvw==
   dependencies:
     de-indent "^1.0.2"
     he "^1.1.0"
@@ -7703,24 +8809,29 @@ vue-template-compiler@^2.5.16, vue-template-compiler@^2.5.17:
 vue-template-es2015-compiler@^1.6.0:
   version "1.6.0"
   resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.6.0.tgz#dc42697133302ce3017524356a6c61b7b69b4a18"
+  integrity sha512-x3LV3wdmmERhVCYy3quqA57NJW7F3i6faas++pJQWtknWT+n7k30F4TVdHvCLn48peTJFRvCpxs3UuFPqgeELg==
 
 vue-upload-component@^2.8.11:
-  version "2.8.11"
-  resolved "https://registry.yarnpkg.com/vue-upload-component/-/vue-upload-component-2.8.11.tgz#7dd207144ba9502760aecf77d42e4ab072b94b07"
+  version "2.8.16"
+  resolved "https://registry.yarnpkg.com/vue-upload-component/-/vue-upload-component-2.8.16.tgz#cf8c9c7d6b342a5e0485d6955cebd22f31806ed2"
+  integrity sha512-aDFKA1lpZojNFzSeC9iGah5qupj1ZhUCDjYFk4FyMNrUXhICSBicc+zzXGB1gQtoqjbmPjrWLZ/r2ejJ+iCcsA==
 
 vue@^2.0.0, vue@^2.5.17:
-  version "2.5.17"
-  resolved "https://registry.yarnpkg.com/vue/-/vue-2.5.17.tgz#0f8789ad718be68ca1872629832ed533589c6ada"
+  version "2.5.21"
+  resolved "https://registry.yarnpkg.com/vue/-/vue-2.5.21.tgz#3d33dcd03bb813912ce894a8303ab553699c4a85"
+  integrity sha512-Aejvyyfhn0zjVeLvXd70h4hrE4zZDx1wfZqia6ekkobLmUZ+vNFQer53B4fu0EjWBSiqApxPejzkO1Znt3joxQ==
 
 vuedraggable@^2.16.0:
-  version "2.16.0"
-  resolved "https://registry.yarnpkg.com/vuedraggable/-/vuedraggable-2.16.0.tgz#52127081a2adb3de5fabd214d404ff3eee63575a"
+  version "2.17.0"
+  resolved "https://registry.yarnpkg.com/vuedraggable/-/vuedraggable-2.17.0.tgz#489c16c9bcb9eb06f441944d3c52e5f2bb7060f9"
+  integrity sha512-TAC5tJTSbHSINQCSB59qHnuzT0Ad+E3IgvSWuA1e9UaebD8DxKaY1tCdvL3XvuLoaM3wc1dhpP/NbjpdxYsrng==
   dependencies:
     sortablejs "^1.7.0"
 
 vuex-persistedstate@^2.5.4:
   version "2.5.4"
   resolved "https://registry.yarnpkg.com/vuex-persistedstate/-/vuex-persistedstate-2.5.4.tgz#a19710ad7f9a08cea4e65fc585924d9fdac7384a"
+  integrity sha512-XYJhKIwO+ZVlTaXyxKxnplrJ88Fnvk5aDw753bxzRw5/yMKLQ6lq9CDCBex2fwZaQcLibhtgJOxGCHjy9GLSlQ==
   dependencies:
     deepmerge "^2.1.0"
     shvl "^1.3.0"
@@ -7728,20 +8839,33 @@ vuex-persistedstate@^2.5.4:
 vuex-router-sync@^5.0.0:
   version "5.0.0"
   resolved "https://registry.yarnpkg.com/vuex-router-sync/-/vuex-router-sync-5.0.0.tgz#1a225c17a1dd9e2f74af0a1b2c62072e9492b305"
+  integrity sha512-Mry2sO4kiAG64714X1CFpTA/shUH1DmkZ26DFDtwoM/yyx6OtMrc+MxrU+7vvbNLO9LSpgwkiJ8W+rlmRtsM+w==
 
 vuex@^3.0.1:
   version "3.0.1"
   resolved "https://registry.yarnpkg.com/vuex/-/vuex-3.0.1.tgz#e761352ebe0af537d4bb755a9b9dc4be3df7efd2"
+  integrity sha512-wLoqz0B7DSZtgbWL1ShIBBCjv22GV5U+vcBFox658g6V0s4wZV9P4YjCNyoHSyIBpj1f29JBoNQIqD82cR4O3w==
 
 w3c-hr-time@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045"
+  integrity sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=
   dependencies:
     browser-process-hrtime "^0.1.2"
 
+w3c-xmlserializer@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-1.0.1.tgz#054cdcd359dc5d1f3ec9be4e272c756af4b21d39"
+  integrity sha512-XZGI1OH/OLQr/NaJhhPmzhngwcAnZDLytsvXnRmlYeRkmbb0I7sqFFA22erq4WQR0sUu17ZSQOAV9mFwCqKRNg==
+  dependencies:
+    domexception "^1.0.1"
+    webidl-conversions "^4.0.2"
+    xml-name-validator "^3.0.0"
+
 watchpack@^1.5.0:
   version "1.6.0"
   resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00"
+  integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==
   dependencies:
     chokidar "^2.0.2"
     graceful-fs "^4.1.2"
@@ -7750,61 +8874,73 @@ watchpack@^1.5.0:
 wbuf@^1.1.0, wbuf@^1.7.2:
   version "1.7.3"
   resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df"
+  integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==
   dependencies:
     minimalistic-assert "^1.0.0"
 
 wcwidth@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8"
+  integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=
   dependencies:
     defaults "^1.0.3"
 
 webidl-conversions@^4.0.2:
   version "4.0.2"
   resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad"
+  integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==
 
-webpack-bundle-analyzer@^2.13.1:
-  version "2.13.1"
-  resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-2.13.1.tgz#07d2176c6e86c3cdce4c23e56fae2a7b6b4ad526"
+webpack-bundle-analyzer@^3.0.3:
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.0.3.tgz#dbc7fff8f52058b6714a20fddf309d0790e3e0a0"
+  integrity sha512-naLWiRfmtH4UJgtUktRTLw6FdoZJ2RvCR9ePbwM9aRMsS/KjFerkPZG9epEvXRAw5d5oPdrs9+3p+afNjxW8Xw==
   dependencies:
-    acorn "^5.3.0"
-    bfj-node4 "^5.2.0"
-    chalk "^2.3.0"
-    commander "^2.13.0"
-    ejs "^2.5.7"
-    express "^4.16.2"
-    filesize "^3.5.11"
-    gzip-size "^4.1.0"
-    lodash "^4.17.4"
+    acorn "^5.7.3"
+    bfj "^6.1.1"
+    chalk "^2.4.1"
+    commander "^2.18.0"
+    ejs "^2.6.1"
+    express "^4.16.3"
+    filesize "^3.6.1"
+    gzip-size "^5.0.0"
+    lodash "^4.17.10"
     mkdirp "^0.5.1"
-    opener "^1.4.3"
-    ws "^4.0.0"
+    opener "^1.5.1"
+    ws "^6.0.0"
+
+webpack-bundle-size-analyzer@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/webpack-bundle-size-analyzer/-/webpack-bundle-size-analyzer-3.0.0.tgz#c0657e9787cf644a0b91d891ae15553ba61bbc71"
+  integrity sha512-GfQ/Mch1o2MGonGPIMawwlxXOmYp/F8EXiT9txDO6qASo7G5hODngWMNW1KkJxeYRvgMUuPgbSsmdsXEsBNEeg==
+  dependencies:
+    commander "^2.19.0"
+    filesize "^3.6.1"
+    humanize "0.0.9"
 
-webpack-chain@^4.8.0:
-  version "4.8.0"
-  resolved "https://registry.yarnpkg.com/webpack-chain/-/webpack-chain-4.8.0.tgz#06fc3dbb9f2707d4c9e899fc6250fbcf2afe6fd1"
+webpack-chain@^4.11.0:
+  version "4.12.1"
+  resolved "https://registry.yarnpkg.com/webpack-chain/-/webpack-chain-4.12.1.tgz#6c8439bbb2ab550952d60e1ea9319141906c02a6"
+  integrity sha512-BCfKo2YkDe2ByqkEWe1Rw+zko4LsyS75LVr29C6xIrxAg9JHJ4pl8kaIZ396SUSNp6b4815dRZPSTAS8LlURRQ==
   dependencies:
     deepmerge "^1.5.2"
     javascript-stringify "^1.6.0"
 
-webpack-dev-middleware@3.1.3:
-  version "3.1.3"
-  resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.1.3.tgz#8b32aa43da9ae79368c1bf1183f2b6cf5e1f39ed"
+webpack-dev-middleware@3.4.0:
+  version "3.4.0"
+  resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.4.0.tgz#1132fecc9026fd90f0ecedac5cbff75d1fb45890"
+  integrity sha512-Q9Iyc0X9dP9bAsYskAVJ/hmIZZQwf/3Sy4xCAZgL5cUkjZmUZLt4l5HpbST/Pdgjn3u6pE7u5OdGd1apgzRujA==
   dependencies:
-    loud-rejection "^1.6.0"
     memory-fs "~0.4.1"
-    mime "^2.1.0"
-    path-is-absolute "^1.0.0"
+    mime "^2.3.1"
     range-parser "^1.0.3"
-    url-join "^4.0.0"
-    webpack-log "^1.0.1"
+    webpack-log "^2.0.0"
 
-webpack-dev-server@^3.1.4:
-  version "3.1.5"
-  resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.1.5.tgz#87477252e1ac6789303fb8cd3e585fa5d508a401"
+webpack-dev-server@^3.1.10:
+  version "3.1.10"
+  resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.1.10.tgz#507411bee727ee8d2fdffdc621b66a64ab3dea2b"
+  integrity sha512-RqOAVjfqZJtQcB0LmrzJ5y4Jp78lv9CK0MZ1YJDTaTmedMZ9PU9FLMQNrMCfVu8hHzaVLVOJKBlGEHMN10z+ww==
   dependencies:
     ansi-html "0.0.7"
-    array-includes "^3.0.3"
     bonjour "^3.5.0"
     chokidar "^2.0.0"
     compression "^1.5.2"
@@ -7814,55 +8950,57 @@ webpack-dev-server@^3.1.4:
     express "^4.16.2"
     html-entities "^1.2.0"
     http-proxy-middleware "~0.18.0"
-    import-local "^1.0.0"
-    internal-ip "1.2.0"
+    import-local "^2.0.0"
+    internal-ip "^3.0.1"
     ip "^1.1.5"
     killable "^1.0.0"
     loglevel "^1.4.1"
     opn "^5.1.0"
     portfinder "^1.0.9"
+    schema-utils "^1.0.0"
     selfsigned "^1.9.1"
     serve-index "^1.7.2"
     sockjs "0.3.19"
-    sockjs-client "1.1.5"
+    sockjs-client "1.3.0"
     spdy "^3.4.1"
     strip-ansi "^3.0.0"
     supports-color "^5.1.0"
-    webpack-dev-middleware "3.1.3"
-    webpack-log "^1.1.2"
-    yargs "11.0.0"
+    webpack-dev-middleware "3.4.0"
+    webpack-log "^2.0.0"
+    yargs "12.0.2"
 
-webpack-log@^1.0.1, webpack-log@^1.1.2:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-1.2.0.tgz#a4b34cda6b22b518dbb0ab32e567962d5c72a43d"
+webpack-log@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f"
+  integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==
   dependencies:
-    chalk "^2.1.0"
-    log-symbols "^2.1.0"
-    loglevelnext "^1.0.1"
-    uuid "^3.1.0"
+    ansi-colors "^3.0.0"
+    uuid "^3.3.2"
 
-webpack-merge@^4.1.3:
-  version "4.1.4"
-  resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.1.4.tgz#0fde38eabf2d5fd85251c24a5a8c48f8a3f4eb7b"
+webpack-merge@^4.1.4:
+  version "4.1.5"
+  resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.1.5.tgz#2be31e846c20767d1bef56bdca64c328a681190a"
+  integrity sha512-sVcM+MMJv6DO0C0GLLltx8mUlGMKXE0zBsuMqZ9jz2X9gsekALw6Rs0cAfTWc97VuWS6NpVUa78959zANnMMLQ==
   dependencies:
     lodash "^4.17.5"
 
-webpack-sources@^1.0.1, webpack-sources@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.1.0.tgz#a101ebae59d6507354d71d8013950a3a8b7a5a54"
+webpack-sources@^1.1.0, webpack-sources@^1.3.0:
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85"
+  integrity sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==
   dependencies:
     source-list-map "^2.0.0"
     source-map "~0.6.1"
 
-webpack@^4.15.1:
-  version "4.16.5"
-  resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.16.5.tgz#29fb39462823d7eb8aefcab8b45f7f241db0d092"
+webpack@^4.26.1:
+  version "4.28.0"
+  resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.28.0.tgz#6bdc26c17fe4c7e28c29fa002e6d37ac92caae9e"
+  integrity sha512-gPNTMGR5ZlBucXmEQ34TRxRqXnGYq9P3t8LeP9rvhkNnr+Cn+HvZMxGuJ4Hl7zdmoRUZP+GosniqJiadXW/RqQ==
   dependencies:
-    "@webassemblyjs/ast" "1.5.13"
-    "@webassemblyjs/helper-module-context" "1.5.13"
-    "@webassemblyjs/wasm-edit" "1.5.13"
-    "@webassemblyjs/wasm-opt" "1.5.13"
-    "@webassemblyjs/wasm-parser" "1.5.13"
+    "@webassemblyjs/ast" "1.7.11"
+    "@webassemblyjs/helper-module-context" "1.7.11"
+    "@webassemblyjs/wasm-edit" "1.7.11"
+    "@webassemblyjs/wasm-parser" "1.7.11"
     acorn "^5.6.2"
     acorn-dynamic-import "^3.0.0"
     ajv "^6.1.0"
@@ -7879,14 +9017,15 @@ webpack@^4.15.1:
     neo-async "^2.5.0"
     node-libs-browser "^2.0.0"
     schema-utils "^0.4.4"
-    tapable "^1.0.0"
-    uglifyjs-webpack-plugin "^1.2.4"
+    tapable "^1.1.0"
+    terser-webpack-plugin "^1.1.0"
     watchpack "^1.5.0"
-    webpack-sources "^1.0.1"
+    webpack-sources "^1.3.0"
 
 websocket-driver@>=0.5.1:
   version "0.7.0"
   resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.0.tgz#0caf9d2d755d93aee049d4bdd0d3fe2cca2a24eb"
+  integrity sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=
   dependencies:
     http-parser-js ">=0.4.0"
     websocket-extensions ">=0.1.1"
@@ -7894,20 +9033,24 @@ websocket-driver@>=0.5.1:
 websocket-extensions@>=0.1.1:
   version "0.1.3"
   resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29"
+  integrity sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==
 
-whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.3.tgz#57c235bc8657e914d24e1a397d3c82daee0a6ba3"
+whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.5:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0"
+  integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==
   dependencies:
-    iconv-lite "0.4.19"
+    iconv-lite "0.4.24"
 
-whatwg-mimetype@^2.0.0, whatwg-mimetype@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.1.0.tgz#f0f21d76cbba72362eb609dbed2a30cd17fcc7d4"
+whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0:
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf"
+  integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==
 
-whatwg-url@^6.4.0, whatwg-url@^6.4.1:
-  version "6.5.0"
-  resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8"
+whatwg-url@^7.0.0:
+  version "7.0.0"
+  resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.0.0.tgz#fde926fa54a599f3adf82dff25a9f7be02dc6edd"
+  integrity sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ==
   dependencies:
     lodash.sortby "^4.7.0"
     tr46 "^1.0.1"
@@ -7916,30 +9059,36 @@ whatwg-url@^6.4.0, whatwg-url@^6.4.1:
 which-module@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f"
+  integrity sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=
 
 which-module@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
+  integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
 
 which@1, which@^1.2.9:
   version "1.3.1"
   resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
+  integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
   dependencies:
     isexe "^2.0.0"
 
 wide-align@^1.1.0:
   version "1.1.3"
   resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457"
+  integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==
   dependencies:
     string-width "^1.0.2 || 2"
 
 window-size@0.1.0:
   version "0.1.0"
   resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
+  integrity sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=
 
 with@^5.0.0:
   version "5.1.1"
   resolved "https://registry.yarnpkg.com/with/-/with-5.1.1.tgz#fa4daa92daf32c4ea94ed453c81f04686b575dfe"
+  integrity sha1-+k2qktrzLE6pTtRTyB8EaGtXXf4=
   dependencies:
     acorn "^3.1.0"
     acorn-globals "^3.0.0"
@@ -7947,20 +9096,24 @@ with@^5.0.0:
 wordwrap@0.0.2:
   version "0.0.2"
   resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"
+  integrity sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=
 
 wordwrap@~1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
+  integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=
 
 worker-farm@^1.5.2:
   version "1.6.0"
   resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.6.0.tgz#aecc405976fab5a95526180846f0dba288f3a4a0"
+  integrity sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==
   dependencies:
     errno "~0.1.7"
 
 wrap-ansi@^2.0.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
+  integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=
   dependencies:
     string-width "^1.0.1"
     strip-ansi "^3.0.1"
@@ -7968,88 +9121,112 @@ wrap-ansi@^2.0.0:
 wrappy@1:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+  integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
 
 write@^0.2.1:
   version "0.2.1"
   resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757"
+  integrity sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=
   dependencies:
     mkdirp "^0.5.1"
 
-ws@^4.0.0:
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/ws/-/ws-4.1.0.tgz#a979b5d7d4da68bf54efe0408967c324869a7289"
-  dependencies:
-    async-limiter "~1.0.0"
-    safe-buffer "~5.1.0"
-
-ws@^5.2.0:
-  version "5.2.2"
-  resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f"
+ws@^6.0.0, ws@^6.1.2:
+  version "6.1.2"
+  resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.2.tgz#3cc7462e98792f0ac679424148903ded3b9c3ad8"
+  integrity sha512-rfUqzvz0WxmSXtJpPMX2EeASXabOrSMk1ruMOV3JBTBjo4ac2lDjGGsbQSyxj8Odhw5fBib8ZKEjDNvgouNKYw==
   dependencies:
     async-limiter "~1.0.0"
 
 xml-name-validator@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a"
+  integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==
+
+xmlchars@^1.3.1:
+  version "1.3.1"
+  resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-1.3.1.tgz#1dda035f833dbb4f86a0c28eaa6ca769214793cf"
+  integrity sha512-tGkGJkN8XqCod7OT+EvGYK5Z4SfDQGD30zAa58OcnAa0RRWgzUEK72tkXhsX1FZd+rgnhRxFtmO+ihkp8LHSkw==
+
+xregexp@4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.0.0.tgz#e698189de49dd2a18cc5687b05e17c8e43943020"
+  integrity sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg==
 
 xtend@^4.0.0, xtend@~4.0.1:
   version "4.0.1"
   resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
+  integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68=
 
 y18n@^3.2.1:
   version "3.2.1"
   resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41"
+  integrity sha1-bRX7qITAhnnA136I53WegR4H+kE=
 
-y18n@^4.0.0:
+"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b"
+  integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==
 
 yallist@^2.1.2:
   version "2.1.2"
   resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
+  integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
 
 yallist@^3.0.0, yallist@^3.0.2:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9"
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9"
+  integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==
+
+yargs-parser@^10.1.0:
+  version "10.1.0"
+  resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8"
+  integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==
+  dependencies:
+    camelcase "^4.1.0"
 
 yargs-parser@^5.0.0:
   version "5.0.0"
   resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a"
+  integrity sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=
   dependencies:
     camelcase "^3.0.0"
 
 yargs-parser@^8.1.0:
   version "8.1.0"
   resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-8.1.0.tgz#f1376a33b6629a5d063782944da732631e966950"
+  integrity sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==
   dependencies:
     camelcase "^4.1.0"
 
 yargs-parser@^9.0.2:
   version "9.0.2"
   resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077"
+  integrity sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=
   dependencies:
     camelcase "^4.1.0"
 
-yargs@11.0.0:
-  version "11.0.0"
-  resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.0.0.tgz#c052931006c5eee74610e5fc0354bedfd08a201b"
+yargs@12.0.2:
+  version "12.0.2"
+  resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.2.tgz#fe58234369392af33ecbef53819171eff0f5aadc"
+  integrity sha512-e7SkEx6N6SIZ5c5H22RTZae61qtn3PYUE8JYbBFlK9sYmh3DMQ6E5ygtaG/2BW0JZi4WGgTR2IV5ChqlqrDGVQ==
   dependencies:
     cliui "^4.0.0"
-    decamelize "^1.1.1"
-    find-up "^2.1.0"
+    decamelize "^2.0.0"
+    find-up "^3.0.0"
     get-caller-file "^1.0.1"
-    os-locale "^2.0.0"
+    os-locale "^3.0.0"
     require-directory "^2.1.1"
     require-main-filename "^1.0.1"
     set-blocking "^2.0.0"
     string-width "^2.0.0"
     which-module "^2.0.0"
-    y18n "^3.2.1"
-    yargs-parser "^9.0.2"
+    y18n "^3.2.1 || ^4.0.0"
+    yargs-parser "^10.1.0"
 
 yargs@^10.0.3:
   version "10.1.2"
   resolved "https://registry.yarnpkg.com/yargs/-/yargs-10.1.2.tgz#454d074c2b16a51a43e2fb7807e4f9de69ccb5c5"
+  integrity sha512-ivSoxqBGYOqQVruxD35+EyCFDYNEFL/Uo6FcOnz+9xZdZzK0Zzw4r4KhbrME1Oo2gOggwJod2MnsdamSG7H9ig==
   dependencies:
     cliui "^4.0.0"
     decamelize "^1.1.1"
@@ -8067,6 +9244,7 @@ yargs@^10.0.3:
 yargs@^11.0.0:
   version "11.1.0"
   resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.1.0.tgz#90b869934ed6e871115ea2ff58b03f4724ed2d77"
+  integrity sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==
   dependencies:
     cliui "^4.0.0"
     decamelize "^1.1.1"
@@ -8084,6 +9262,7 @@ yargs@^11.0.0:
 yargs@^7.0.0:
   version "7.1.0"
   resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8"
+  integrity sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=
   dependencies:
     camelcase "^3.0.0"
     cliui "^3.2.0"
@@ -8102,6 +9281,7 @@ yargs@^7.0.0:
 yargs@~3.10.0:
   version "3.10.0"
   resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"
+  integrity sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=
   dependencies:
     camelcase "^1.0.2"
     cliui "^2.1.0"
@@ -8111,6 +9291,7 @@ yargs@~3.10.0:
 yorkie@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/yorkie/-/yorkie-2.0.0.tgz#92411912d435214e12c51c2ae1093e54b6bb83d9"
+  integrity sha512-jcKpkthap6x63MB4TxwCyuIGkV0oYP/YRyuQU5UO0Yz/E/ZAu+653/uov+phdmO54n6BcvFRyyt0RRrWdN2mpw==
   dependencies:
     execa "^0.8.0"
     is-ci "^1.0.10"
diff --git a/scripts/set-api-build-metadata.sh b/scripts/set-api-build-metadata.sh
new file mode 100755
index 0000000000000000000000000000000000000000..08bcf5ea68e088139d4c6ae9691c519d95205a1b
--- /dev/null
+++ b/scripts/set-api-build-metadata.sh
@@ -0,0 +1,9 @@
+#!/bin/sh -eu
+# given a commit hash, will append this to the version number stored
+# in api/funkwhale_api/__init__.py
+
+commit=$1
+suffix="+git.$commit"
+replace="__version__ = \"\1${suffix}\""
+file="api/funkwhale_api/__init__.py"
+sed -i -E 's@__version__ = \"(.*)\"@'"$replace"'@' $file