about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--Gemfile7
-rw-r--r--Gemfile.lock111
-rw-r--r--app/javascript/core/admin.js22
-rw-r--r--app/javascript/mastodon/extra_polyfills.js2
-rw-r--r--app/javascript/mastodon/features/compose/components/poll_form.js4
-rw-r--r--app/javascript/styles/mastodon/admin.scss31
-rw-r--r--app/javascript/styles/mastodon/components.scss1
-rw-r--r--app/lib/activitypub/activity.rb2
-rw-r--r--app/lib/activitypub/activity/create.rb4
-rw-r--r--app/models/backup.rb2
-rw-r--r--app/models/form/admin_settings.rb2
-rw-r--r--app/models/form/custom_emoji_batch.rb2
-rw-r--r--app/models/tag.rb2
-rw-r--r--app/services/backup_service.rb4
-rw-r--r--app/services/bootstrap_timeline_service.rb2
-rw-r--r--app/services/fetch_link_card_service.rb2
-rw-r--r--app/services/fetch_oembed_service.rb2
-rw-r--r--app/services/fetch_remote_account_service.rb17
-rw-r--r--app/services/fetch_remote_status_service.rb9
-rw-r--r--app/services/fetch_resource_service.rb2
-rw-r--r--app/services/resolve_url_service.rb10
-rw-r--r--app/views/admin/reports/index.html.haml2
-rw-r--r--app/views/admin/reports/show.html.haml32
-rw-r--r--app/views/admin/settings/edit.html.haml7
-rw-r--r--app/views/layouts/admin.html.haml7
-rw-r--r--app/views/settings/exports/show.html.haml6
-rw-r--r--config/locales/ar.yml8
-rw-r--r--config/locales/bn.yml5
-rw-r--r--config/locales/ca.yml8
-rw-r--r--config/locales/co.yml8
-rw-r--r--config/locales/cs.yml8
-rw-r--r--config/locales/cy.yml8
-rw-r--r--config/locales/da.yml8
-rw-r--r--config/locales/de.yml8
-rw-r--r--config/locales/el.yml8
-rw-r--r--config/locales/en.yml16
-rw-r--r--config/locales/en_GB.yml8
-rw-r--r--config/locales/eo.yml8
-rw-r--r--config/locales/es-AR.yml7
-rw-r--r--config/locales/es.yml8
-rw-r--r--config/locales/et.yml8
-rw-r--r--config/locales/eu.yml8
-rw-r--r--config/locales/fa.yml8
-rw-r--r--config/locales/fi.yml8
-rw-r--r--config/locales/fr.yml8
-rw-r--r--config/locales/gl.yml8
-rw-r--r--config/locales/he.yml5
-rw-r--r--config/locales/hu.yml8
-rw-r--r--config/locales/id.yml8
-rw-r--r--config/locales/it.yml8
-rw-r--r--config/locales/ja.yml8
-rw-r--r--config/locales/ka.yml8
-rw-r--r--config/locales/kk.yml8
-rw-r--r--config/locales/ko.yml8
-rw-r--r--config/locales/lt.yml8
-rw-r--r--config/locales/ms.yml8
-rw-r--r--config/locales/nl.yml8
-rw-r--r--config/locales/no.yml5
-rw-r--r--config/locales/oc.yml8
-rw-r--r--config/locales/pl.yml8
-rw-r--r--config/locales/pt-BR.yml8
-rw-r--r--config/locales/pt-PT.yml8
-rw-r--r--config/locales/ru.yml8
-rw-r--r--config/locales/sk.yml8
-rw-r--r--config/locales/sl.yml8
-rw-r--r--config/locales/sq.yml7
-rw-r--r--config/locales/sr-Latn.yml5
-rw-r--r--config/locales/sr.yml8
-rw-r--r--config/locales/sv.yml8
-rw-r--r--config/locales/te.yml2
-rw-r--r--config/locales/th.yml7
-rw-r--r--config/locales/tr.yml8
-rw-r--r--config/locales/uk.yml8
-rw-r--r--config/locales/zh-CN.yml8
-rw-r--r--config/locales/zh-HK.yml8
-rw-r--r--config/locales/zh-TW.yml8
-rw-r--r--config/settings.yml1
-rw-r--r--db/migrate/20191212003415_increase_backup_size.rb21
-rw-r--r--db/schema.rb28
-rw-r--r--lib/mastodon/statuses_cli.rb37
-rw-r--r--package.json14
-rw-r--r--spec/controllers/settings/featured_tags_controller_spec.rb43
-rw-r--r--spec/features/log_in_spec.rb2
-rw-r--r--spec/lib/activitypub/activity/create_spec.rb22
-rw-r--r--spec/services/activitypub/fetch_remote_status_service_spec.rb20
-rw-r--r--spec/services/fetch_remote_account_service_spec.rb50
-rw-r--r--spec/services/fetch_remote_status_service_spec.rb7
-rw-r--r--spec/services/fetch_resource_service_spec.rb8
-rw-r--r--yarn.lock247
90 files changed, 445 insertions, 737 deletions
diff --git a/.gitignore b/.gitignore
index c3f20deea..804eb7bdc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -23,6 +23,7 @@ public/packs
 public/packs-test
 .env
 .env.production
+.env.development
 node_modules/
 build/
 
diff --git a/Gemfile b/Gemfile
index c1bfe78dd..a748e1d7a 100644
--- a/Gemfile
+++ b/Gemfile
@@ -6,7 +6,8 @@ ruby '>= 2.4.0', '< 2.7.0'
 gem 'pkg-config', '~> 1.4'
 
 gem 'puma', '~> 4.3'
-gem 'rails', '~> 5.2.3'
+gem 'rails', '~> 5.2.4'
+gem 'sprockets', '~> 3.7'
 gem 'thor', '~> 0.20'
 
 gem 'hamlit-rails', '~> 0.2'
@@ -125,7 +126,7 @@ group :test do
   gem 'rspec-sidekiq', '~> 3.0'
   gem 'simplecov', '~> 0.17', require: false
   gem 'webmock', '~> 3.7'
-  gem 'parallel_tests', '~> 2.29'
+  gem 'parallel_tests', '~> 2.30'
 end
 
 group :development do
@@ -137,7 +138,7 @@ group :development do
   gem 'letter_opener', '~> 1.7'
   gem 'letter_opener_web', '~> 1.3'
   gem 'memory_profiler'
-  gem 'rubocop', '~> 0.76', require: false
+  gem 'rubocop', '~> 0.77', require: false
   gem 'rubocop-rails', '~> 2.4', require: false
   gem 'brakeman', '~> 4.7', require: false
   gem 'bundler-audit', '~> 0.6', require: false
diff --git a/Gemfile.lock b/Gemfile.lock
index efdcee087..d42b29f3a 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -44,25 +44,25 @@ GIT
 GEM
   remote: https://rubygems.org/
   specs:
-    actioncable (5.2.3)
-      actionpack (= 5.2.3)
+    actioncable (5.2.4)
+      actionpack (= 5.2.4)
       nio4r (~> 2.0)
       websocket-driver (>= 0.6.1)
-    actionmailer (5.2.3)
-      actionpack (= 5.2.3)
-      actionview (= 5.2.3)
-      activejob (= 5.2.3)
+    actionmailer (5.2.4)
+      actionpack (= 5.2.4)
+      actionview (= 5.2.4)
+      activejob (= 5.2.4)
       mail (~> 2.5, >= 2.5.4)
       rails-dom-testing (~> 2.0)
-    actionpack (5.2.3)
-      actionview (= 5.2.3)
-      activesupport (= 5.2.3)
+    actionpack (5.2.4)
+      actionview (= 5.2.4)
+      activesupport (= 5.2.4)
       rack (~> 2.0)
       rack-test (>= 0.6.3)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.0, >= 1.0.2)
-    actionview (5.2.3)
-      activesupport (= 5.2.3)
+    actionview (5.2.4)
+      activesupport (= 5.2.4)
       builder (~> 3.1)
       erubi (~> 1.4)
       rails-dom-testing (~> 2.0)
@@ -73,20 +73,20 @@ GEM
       case_transform (>= 0.2)
       jsonapi-renderer (>= 0.1.1.beta1, < 0.3)
     active_record_query_trace (1.7)
-    activejob (5.2.3)
-      activesupport (= 5.2.3)
+    activejob (5.2.4)
+      activesupport (= 5.2.4)
       globalid (>= 0.3.6)
-    activemodel (5.2.3)
-      activesupport (= 5.2.3)
-    activerecord (5.2.3)
-      activemodel (= 5.2.3)
-      activesupport (= 5.2.3)
+    activemodel (5.2.4)
+      activesupport (= 5.2.4)
+    activerecord (5.2.4)
+      activemodel (= 5.2.4)
+      activesupport (= 5.2.4)
       arel (>= 9.0)
-    activestorage (5.2.3)
-      actionpack (= 5.2.3)
-      activerecord (= 5.2.3)
+    activestorage (5.2.4)
+      actionpack (= 5.2.4)
+      activerecord (= 5.2.4)
       marcel (~> 0.3.1)
-    activesupport (5.2.3)
+    activesupport (5.2.4)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 0.7, < 2)
       minitest (~> 5.1)
@@ -134,7 +134,7 @@ GEM
       msgpack (~> 1.0)
     brakeman (4.7.2)
     browser (2.7.1)
-    builder (3.2.3)
+    builder (3.2.4)
     bullet (6.0.2)
       activesupport (>= 3.0.0)
       uniform_notifier (~> 1.11)
@@ -218,7 +218,7 @@ GEM
     docile (1.3.2)
     domain_name (0.5.20180417)
       unf (>= 0.0.5, < 1.0.0)
-    doorkeeper (5.2.2)
+    doorkeeper (5.2.3)
       railties (>= 5)
     dotenv (2.7.5)
     dotenv-rails (2.7.5)
@@ -238,9 +238,9 @@ GEM
     erubi (1.9.0)
     et-orbi (1.1.6)
       tzinfo
-    excon (0.62.0)
+    excon (0.71.0)
     fabrication (2.21.0)
-    faker (2.8.0)
+    faker (2.8.1)
       i18n (>= 1.6, < 1.8)
     faraday (0.15.4)
       multipart-post (>= 1.2, < 3)
@@ -326,7 +326,7 @@ GEM
     jmespath (1.4.0)
     json (2.2.0)
     json-canonicalization (0.1.0)
-    json-ld-preloaded (3.0.4)
+    json-ld-preloaded (3.0.6)
       json-ld (~> 3.0)
       multi_json (~> 1.12)
       rdf (~> 3.0)
@@ -358,7 +358,7 @@ GEM
       activesupport (>= 4)
       railties (>= 4)
       request_store (~> 1.0)
-    loofah (2.3.1)
+    loofah (2.4.0)
       crass (~> 1.0.2)
       nokogiri (>= 1.5.9)
     mail (2.7.1)
@@ -382,7 +382,7 @@ GEM
     mini_portile2 (2.4.0)
     minitest (5.13.0)
     msgpack (1.3.1)
-    multi_json (1.13.1)
+    multi_json (1.14.1)
     multipart-post (2.1.1)
     necromancer (0.5.1)
     net-ldap (0.16.2)
@@ -390,7 +390,7 @@ GEM
       net-ssh (>= 2.6.5, < 6.0.0)
     net-ssh (5.2.0)
     nio4r (2.5.2)
-    nokogiri (1.10.5)
+    nokogiri (1.10.7)
       mini_portile2 (~> 2.4.0)
     nokogumbo (2.0.1)
       nokogiri (~> 1.8, >= 1.8.4)
@@ -426,7 +426,7 @@ GEM
       av (~> 0.9.0)
       paperclip (>= 2.5.2)
     parallel (1.19.1)
-    parallel_tests (2.29.2)
+    parallel_tests (2.30.0)
       parallel
     parser (2.6.5.0)
       ast (~> 2.4.0)
@@ -460,7 +460,7 @@ GEM
     pundit (2.1.0)
       activesupport (>= 3.0.0)
     raabro (1.1.6)
-    rack (2.0.7)
+    rack (2.0.8)
     rack-attack (6.2.1)
       rack (>= 1.0, < 3)
     rack-cors (1.1.0)
@@ -471,18 +471,18 @@ GEM
       rack
     rack-test (1.1.0)
       rack (>= 1.0, < 3)
-    rails (5.2.3)
-      actioncable (= 5.2.3)
-      actionmailer (= 5.2.3)
-      actionpack (= 5.2.3)
-      actionview (= 5.2.3)
-      activejob (= 5.2.3)
-      activemodel (= 5.2.3)
-      activerecord (= 5.2.3)
-      activestorage (= 5.2.3)
-      activesupport (= 5.2.3)
+    rails (5.2.4)
+      actioncable (= 5.2.4)
+      actionmailer (= 5.2.4)
+      actionpack (= 5.2.4)
+      actionview (= 5.2.4)
+      activejob (= 5.2.4)
+      activemodel (= 5.2.4)
+      activerecord (= 5.2.4)
+      activestorage (= 5.2.4)
+      activesupport (= 5.2.4)
       bundler (>= 1.3.0)
-      railties (= 5.2.3)
+      railties (= 5.2.4)
       sprockets-rails (>= 2.0.0)
     rails-controller-testing (1.0.4)
       actionpack (>= 5.0.1.x)
@@ -498,15 +498,15 @@ GEM
       railties (>= 5.0, < 6)
     rails-settings-cached (0.6.6)
       rails (>= 4.2.0)
-    railties (5.2.3)
-      actionpack (= 5.2.3)
-      activesupport (= 5.2.3)
+    railties (5.2.4)
+      actionpack (= 5.2.4)
+      activesupport (= 5.2.4)
       method_source
       rake (>= 0.8.7)
       thor (>= 0.19.0, < 2.0)
     rainbow (3.0.0)
     rake (13.0.1)
-    rdf (3.0.12)
+    rdf (3.0.13)
       hamster (~> 3.0)
       link_header (~> 0.0, >= 0.0.8)
     rdf-normalize (0.3.3)
@@ -561,7 +561,7 @@ GEM
       rspec-core (~> 3.0, >= 3.0.0)
       sidekiq (>= 2.4.0)
     rspec-support (3.9.0)
-    rubocop (0.76.0)
+    rubocop (0.77.0)
       jaro_winkler (~> 1.5.1)
       parallel (~> 1.10)
       parser (>= 2.6)
@@ -618,7 +618,7 @@ GEM
     sshkit (1.20.0)
       net-scp (>= 1.1.2)
       net-ssh (>= 2.8.0)
-    stackprof (0.2.13)
+    stackprof (0.2.14)
     statsd-ruby (1.4.0)
     stoplight (2.2.0)
     streamio-ffmpeg (3.0.2)
@@ -663,16 +663,16 @@ GEM
       addressable (>= 2.3.6)
       crack (>= 0.3.2)
       hashdiff (>= 0.4.0, < 2.0.0)
-    webpacker (4.2.0)
+    webpacker (4.2.2)
       activesupport (>= 4.2)
       rack-proxy (>= 0.6.1)
       railties (>= 4.2)
     webpush (0.3.8)
       hkdf (~> 0.2)
       jwt (~> 2.0)
-    websocket-driver (0.7.0)
+    websocket-driver (0.7.1)
       websocket-extensions (>= 0.1.0)
-    websocket-extensions (0.1.3)
+    websocket-extensions (0.1.4)
     wisper (2.0.1)
     xpath (3.2.0)
       nokogiri (~> 1.8)
@@ -757,7 +757,7 @@ DEPENDENCIES
   paperclip (~> 6.0)
   paperclip-av-transcoder (~> 0.6)
   parallel (~> 1.19)
-  parallel_tests (~> 2.29)
+  parallel_tests (~> 2.30)
   parslet
   pg (~> 1.1)
   pghero (~> 2.4)
@@ -771,7 +771,7 @@ DEPENDENCIES
   pundit (~> 2.1)
   rack-attack (~> 6.2)
   rack-cors (~> 1.1)
-  rails (~> 5.2.3)
+  rails (~> 5.2.4)
   rails-controller-testing (~> 1.0)
   rails-i18n (~> 5.1)
   rails-settings-cached (~> 0.6)
@@ -783,7 +783,7 @@ DEPENDENCIES
   rqrcode (~> 0.10)
   rspec-rails (~> 3.9)
   rspec-sidekiq (~> 3.0)
-  rubocop (~> 0.76)
+  rubocop (~> 0.77)
   rubocop-rails (~> 2.4)
   ruby-progressbar (~> 1.10)
   sanitize (~> 5.1)
@@ -794,6 +794,7 @@ DEPENDENCIES
   simple-navigation (~> 4.1)
   simple_form (~> 5.0)
   simplecov (~> 0.17)
+  sprockets (~> 3.7)
   sprockets-rails (~> 3.2)
   stackprof
   stoplight (~> 2.2.0)
diff --git a/app/javascript/core/admin.js b/app/javascript/core/admin.js
index ffdabe674..e4d683dd0 100644
--- a/app/javascript/core/admin.js
+++ b/app/javascript/core/admin.js
@@ -47,7 +47,25 @@ const onDomainBlockSeverityChange = (target) => {
 
 delegate(document, '#domain_block_severity', 'change', ({ target }) => onDomainBlockSeverityChange(target));
 
+const onEnableBootstrapTimelineAccountsChange = (target) => {
+  const bootstrapTimelineAccountsField = document.querySelector('#form_admin_settings_bootstrap_timeline_accounts');
+
+  if (bootstrapTimelineAccountsField) {
+    bootstrapTimelineAccountsField.disabled = !target.checked;
+    if (target.checked) {
+      bootstrapTimelineAccountsField.parentElement.classList.remove('disabled');
+    } else {
+      bootstrapTimelineAccountsField.parentElement.classList.add('disabled');
+    }
+  }
+};
+
+delegate(document, '#form_admin_settings_enable_bootstrap_timeline_accounts', 'change', ({ target }) => onEnableBootstrapTimelineAccountsChange(target));
+
 ready(() => {
-  const input = document.getElementById('domain_block_severity');
-  if (input) onDomainBlockSeverityChange(input);
+  const domainBlockSeverityInput = document.getElementById('domain_block_severity');
+  if (domainBlockSeverityInput) onDomainBlockSeverityChange(domainBlockSeverityInput);
+
+  const enableBootstrapTimelineAccounts = document.getElementById('form_admin_settings_enable_bootstrap_timeline_accounts');
+  if (enableBootstrapTimelineAccounts) onEnableBootstrapTimelineAccountsChange(enableBootstrapTimelineAccounts);
 });
diff --git a/app/javascript/mastodon/extra_polyfills.js b/app/javascript/mastodon/extra_polyfills.js
index 3acc55abd..13c4f6da9 100644
--- a/app/javascript/mastodon/extra_polyfills.js
+++ b/app/javascript/mastodon/extra_polyfills.js
@@ -1,5 +1,5 @@
 import 'intersection-observer';
 import 'requestidlecallback';
-import objectFitImages  from 'object-fit-images';
+import objectFitImages from 'object-fit-images';
 
 objectFitImages();
diff --git a/app/javascript/mastodon/features/compose/components/poll_form.js b/app/javascript/mastodon/features/compose/components/poll_form.js
index ba245f4d3..cac3776bb 100644
--- a/app/javascript/mastodon/features/compose/components/poll_form.js
+++ b/app/javascript/mastodon/features/compose/components/poll_form.js
@@ -82,8 +82,8 @@ class Option extends React.PureComponent {
             onKeyPress={this.handleCheckboxKeypress}
             role='button'
             tabIndex='0'
-            title={intl.formatMessage(isPollMultiple ? messages.switchToMultiple : messages.switchToSingle)}
-            aria-label={intl.formatMessage(isPollMultiple ? messages.switchToMultiple : messages.switchToSingle)}
+            title={intl.formatMessage(isPollMultiple ? messages.switchToSingle : messages.switchToMultiple)}
+            aria-label={intl.formatMessage(isPollMultiple ? messages.switchToSingle : messages.switchToMultiple)}
           />
 
           <AutosuggestInput
diff --git a/app/javascript/styles/mastodon/admin.scss b/app/javascript/styles/mastodon/admin.scss
index de95d82bf..cba552433 100644
--- a/app/javascript/styles/mastodon/admin.scss
+++ b/app/javascript/styles/mastodon/admin.scss
@@ -181,18 +181,39 @@ $content-width: 840px;
       padding-top: 30px;
     }
 
-    h2 {
-      color: $secondary-text-color;
-      font-size: 24px;
-      line-height: 28px;
-      font-weight: 400;
+    &-heading {
+      display: flex;
+
       padding-bottom: 40px;
       border-bottom: 1px solid lighten($ui-base-color, 8%);
       margin-bottom: 40px;
 
+      flex-wrap: wrap;
+      align-items: center;
+
+      justify-content: space-between;
+
+      &-actions {
+        display: inline-flex;
+
+        & > * {
+          margin-left: 5px;
+        }
+      }
+
       @media screen and (max-width: $no-columns-breakpoint) {
         border-bottom: 0;
         padding-bottom: 0;
+      }
+    }
+
+    h2 {
+      color: $secondary-text-color;
+      font-size: 24px;
+      line-height: 28px;
+      font-weight: 400;
+
+      @media screen and (max-width: $no-columns-breakpoint) {
         font-weight: 700;
       }
     }
diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss
index 0ec25e3f8..01a633c5f 100644
--- a/app/javascript/styles/mastodon/components.scss
+++ b/app/javascript/styles/mastodon/components.scss
@@ -2512,7 +2512,6 @@ a.account__display-name {
   overflow-x: hidden;
   flex: 1 1 auto;
   -webkit-overflow-scrolling: touch;
-  will-change: transform; // improves perf in mobile Chrome
 
   &.optionally-scrollable {
     overflow-y: auto;
diff --git a/app/lib/activitypub/activity.rb b/app/lib/activitypub/activity.rb
index 0ca6b92a4..49b1dc9cd 100644
--- a/app/lib/activitypub/activity.rb
+++ b/app/lib/activitypub/activity.rb
@@ -5,7 +5,7 @@ class ActivityPub::Activity
   include Redisable
 
   SUPPORTED_TYPES = %w(Note Question).freeze
-  CONVERTED_TYPES = %w(Image Audio Video Article Page).freeze
+  CONVERTED_TYPES = %w(Image Audio Video Article Page Event).freeze
 
   def initialize(json, account, **options)
     @json    = json
diff --git a/app/lib/activitypub/activity/create.rb b/app/lib/activitypub/activity/create.rb
index 8a12a2b08..c55cfe08e 100644
--- a/app/lib/activitypub/activity/create.rb
+++ b/app/lib/activitypub/activity/create.rb
@@ -157,7 +157,7 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
     return if tag['name'].blank?
 
     Tag.find_or_create_by_names(tag['name']) do |hashtag|
-      @tags << hashtag unless @tags.include?(hashtag)
+      @tags << hashtag unless @tags.include?(hashtag) || !hashtag.valid?
     end
   rescue ActiveRecord::RecordInvalid
     nil
@@ -167,7 +167,7 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
     return if tag['href'].blank?
 
     account = account_from_uri(tag['href'])
-    account = ::FetchRemoteAccountService.new.call(tag['href']) if account.nil?
+    account = ActivityPub::FetchRemoteAccountService.new.call(tag['href']) if account.nil?
 
     return if account.nil?
 
diff --git a/app/models/backup.rb b/app/models/backup.rb
index c2651313b..8eeb1748a 100644
--- a/app/models/backup.rb
+++ b/app/models/backup.rb
@@ -7,7 +7,7 @@
 #  user_id           :bigint(8)
 #  dump_file_name    :string
 #  dump_content_type :string
-#  dump_file_size    :integer
+#  dump_file_size    :bigint
 #  dump_updated_at   :datetime
 #  processed         :boolean          default(FALSE), not null
 #  created_at        :datetime         not null
diff --git a/app/models/form/admin_settings.rb b/app/models/form/admin_settings.rb
index 3398af169..84a656864 100644
--- a/app/models/form/admin_settings.rb
+++ b/app/models/form/admin_settings.rb
@@ -16,6 +16,7 @@ class Form::AdminSettings
     open_deletion
     timeline_preview
     show_staff_badge
+    enable_bootstrap_timeline_accounts
     bootstrap_timeline_accounts
     flavour
     skin
@@ -46,6 +47,7 @@ class Form::AdminSettings
     open_deletion
     timeline_preview
     show_staff_badge
+    enable_bootstrap_timeline_accounts
     activity_api_enabled
     peers_api_enabled
     show_known_fediverse_at_about_page
diff --git a/app/models/form/custom_emoji_batch.rb b/app/models/form/custom_emoji_batch.rb
index 076e8c9e3..6b7ea5355 100644
--- a/app/models/form/custom_emoji_batch.rb
+++ b/app/models/form/custom_emoji_batch.rb
@@ -40,7 +40,7 @@ class Form::CustomEmojiBatch
       if category_id.present?
         CustomEmojiCategory.find(category_id)
       elsif category_name.present?
-        CustomEmojiCategory.create!(name: category_name)
+        CustomEmojiCategory.find_or_create_by!(name: category_name)
       end
     end
 
diff --git a/app/models/tag.rb b/app/models/tag.rb
index d3a7e1e6d..bce76fc16 100644
--- a/app/models/tag.rb
+++ b/app/models/tag.rb
@@ -117,7 +117,7 @@ class Tag < ApplicationRecord
   class << self
     def find_or_create_by_names(name_or_names)
       Array(name_or_names).map(&method(:normalize)).uniq { |str| str.mb_chars.downcase.to_s }.map do |normalized_name|
-        tag = matching_name(normalized_name).first || create!(name: normalized_name)
+        tag = matching_name(normalized_name).first || create(name: normalized_name)
 
         yield tag if block_given?
 
diff --git a/app/services/backup_service.rb b/app/services/backup_service.rb
index cc9fb1f4e..0b57b6d0c 100644
--- a/app/services/backup_service.rb
+++ b/app/services/backup_service.rb
@@ -3,6 +3,8 @@
 require 'rubygems/package'
 
 class BackupService < BaseService
+  include Payloadable
+
   attr_reader :account, :backup, :collection
 
   def call(backup)
@@ -20,7 +22,7 @@ class BackupService < BaseService
 
     account.statuses.with_includes.reorder(nil).find_in_batches do |statuses|
       statuses.each do |status|
-        item = serialize(status, ActivityPub::ActivitySerializer)
+        item = serialize_payload(status, ActivityPub::ActivitySerializer, signer: @account)
         item.delete(:'@context')
 
         unless item[:type] == 'Announce' || item[:object][:attachment].blank?
diff --git a/app/services/bootstrap_timeline_service.rb b/app/services/bootstrap_timeline_service.rb
index c489601c1..8412aa7e7 100644
--- a/app/services/bootstrap_timeline_service.rb
+++ b/app/services/bootstrap_timeline_service.rb
@@ -5,7 +5,7 @@ class BootstrapTimelineService < BaseService
     @source_account = source_account
 
     autofollow_inviter!
-    autofollow_bootstrap_timeline_accounts!
+    autofollow_bootstrap_timeline_accounts! if Setting.enable_bootstrap_timeline_accounts
   end
 
   private
diff --git a/app/services/fetch_link_card_service.rb b/app/services/fetch_link_card_service.rb
index 5d4a7c303..91141c1f5 100644
--- a/app/services/fetch_link_card_service.rb
+++ b/app/services/fetch_link_card_service.rb
@@ -45,7 +45,7 @@ class FetchLinkCardService < BaseService
   def html
     return @html if defined?(@html)
 
-    Request.new(:get, @url).perform do |res|
+    Request.new(:get, @url).add_headers('Accept' => 'text/html').perform do |res|
       if res.code == 200 && res.mime_type == 'text/html'
         @html = res.body_with_limit
         @html_charset = res.charset
diff --git a/app/services/fetch_oembed_service.rb b/app/services/fetch_oembed_service.rb
index 76d971bc5..67e33875c 100644
--- a/app/services/fetch_oembed_service.rb
+++ b/app/services/fetch_oembed_service.rb
@@ -93,7 +93,7 @@ class FetchOEmbedService
   def html
     return @html if defined?(@html)
 
-    @html = @options[:html] || Request.new(:get, @url).perform do |res|
+    @html = @options[:html] || Request.new(:get, @url).add_headers('Accept' => 'text/html').perform do |res|
       res.code != 200 || res.mime_type != 'text/html' ? nil : res.body_with_limit
     end
   end
diff --git a/app/services/fetch_remote_account_service.rb b/app/services/fetch_remote_account_service.rb
deleted file mode 100644
index 3cd06e30f..000000000
--- a/app/services/fetch_remote_account_service.rb
+++ /dev/null
@@ -1,17 +0,0 @@
-# frozen_string_literal: true
-
-class FetchRemoteAccountService < BaseService
-  def call(url, prefetched_body = nil, protocol = :ostatus)
-    if prefetched_body.nil?
-      resource_url, resource_options, protocol = FetchResourceService.new.call(url)
-    else
-      resource_url     = url
-      resource_options = { prefetched_body: prefetched_body }
-    end
-
-    case protocol
-    when :activitypub
-      ActivityPub::FetchRemoteAccountService.new.call(resource_url, **resource_options)
-    end
-  end
-end
diff --git a/app/services/fetch_remote_status_service.rb b/app/services/fetch_remote_status_service.rb
index 208dc7809..eafde4d4a 100644
--- a/app/services/fetch_remote_status_service.rb
+++ b/app/services/fetch_remote_status_service.rb
@@ -1,17 +1,14 @@
 # frozen_string_literal: true
 
 class FetchRemoteStatusService < BaseService
-  def call(url, prefetched_body = nil, protocol = :ostatus)
+  def call(url, prefetched_body = nil)
     if prefetched_body.nil?
-      resource_url, resource_options, protocol = FetchResourceService.new.call(url)
+      resource_url, resource_options = FetchResourceService.new.call(url)
     else
       resource_url     = url
       resource_options = { prefetched_body: prefetched_body }
     end
 
-    case protocol
-    when :activitypub
-      ActivityPub::FetchRemoteStatusService.new.call(resource_url, **resource_options)
-    end
+    ActivityPub::FetchRemoteStatusService.new.call(resource_url, **resource_options) unless resource_url.nil?
   end
 end
diff --git a/app/services/fetch_resource_service.rb b/app/services/fetch_resource_service.rb
index 3676d899d..34382d279 100644
--- a/app/services/fetch_resource_service.rb
+++ b/app/services/fetch_resource_service.rb
@@ -33,7 +33,7 @@ class FetchResourceService < BaseService
       body = response.body_with_limit
       json = body_to_json(body)
 
-      [json['id'], { prefetched_body: body, id: true }, :activitypub] if supported_context?(json) && (equals_or_includes_any?(json['type'], ActivityPub::FetchRemoteAccountService::SUPPORTED_TYPES) || expected_type?(json))
+      [json['id'], { prefetched_body: body, id: true }] if supported_context?(json) && (equals_or_includes_any?(json['type'], ActivityPub::FetchRemoteAccountService::SUPPORTED_TYPES) || expected_type?(json))
     elsif !terminal
       link_header = response['Link'] && parse_link_header(response)
 
diff --git a/app/services/resolve_url_service.rb b/app/services/resolve_url_service.rb
index 4e971a4b8..79b1bad0c 100644
--- a/app/services/resolve_url_service.rb
+++ b/app/services/resolve_url_service.rb
@@ -19,9 +19,9 @@ class ResolveURLService < BaseService
 
   def process_url
     if equals_or_includes_any?(type, ActivityPub::FetchRemoteAccountService::SUPPORTED_TYPES)
-      FetchRemoteAccountService.new.call(resource_url, body, protocol)
+      ActivityPub::FetchRemoteAccountService.new.call(resource_url, prefetched_body: body)
     elsif equals_or_includes_any?(type, ActivityPub::Activity::Create::SUPPORTED_TYPES + ActivityPub::Activity::Create::CONVERTED_TYPES)
-      status = FetchRemoteStatusService.new.call(resource_url, body, protocol)
+      status = FetchRemoteStatusService.new.call(resource_url, body)
       authorize_with @on_behalf_of, status, :show? unless status.nil?
       status
     elsif fetched_resource.nil? && @on_behalf_of.present?
@@ -45,12 +45,8 @@ class ResolveURLService < BaseService
     fetched_resource.second[:prefetched_body]
   end
 
-  def protocol
-    fetched_resource.third
-  end
-
   def type
-    return json_data['type'] if protocol == :activitypub
+    json_data['type']
   end
 
   def json_data
diff --git a/app/views/admin/reports/index.html.haml b/app/views/admin/reports/index.html.haml
index b09472270..30c7549b0 100644
--- a/app/views/admin/reports/index.html.haml
+++ b/app/views/admin/reports/index.html.haml
@@ -28,7 +28,7 @@
     .report-card__profile
       = account_link_to target_account, '', size: 36, path: admin_account_path(target_account.id)
       .report-card__profile__stats
-        = link_to pluralize(target_account.targeted_moderation_notes.count, t('admin.reports.account.note')), admin_account_path(target_account.id)
+        = link_to t('admin.reports.account.notes', count: target_account.targeted_moderation_notes.count), admin_account_path(target_account.id)
         %br/
         - if target_account.suspended?
           %span.red= t('admin.accounts.suspended')
diff --git a/app/views/admin/reports/show.html.haml b/app/views/admin/reports/show.html.haml
index 0b84e1788..4321bb199 100644
--- a/app/views/admin/reports/show.html.haml
+++ b/app/views/admin/reports/show.html.haml
@@ -1,37 +1,28 @@
 - content_for :page_title do
   = t('admin.reports.report', id: @report.id)
 
-%div{ style: 'overflow: hidden; margin-bottom: 20px' }
+- content_for :page_heading_actions do
   - if @report.unresolved?
-    %div{ style: 'float: right' }
-      - if @report.target_account.local?
-        = link_to t('admin.accounts.warn'), new_admin_account_action_path(@report.target_account_id, type: 'none', report_id: @report.id), class: 'button'
-        = link_to t('admin.accounts.disable'), new_admin_account_action_path(@report.target_account_id, type: 'disable', report_id: @report.id), class: 'button button--destructive'
-      = link_to t('admin.accounts.silence'), new_admin_account_action_path(@report.target_account_id, type: 'silence', report_id: @report.id), class: 'button button--destructive'
-      = link_to t('admin.accounts.perform_full_suspension'), new_admin_account_action_path(@report.target_account_id, type: 'suspend', report_id: @report.id), class: 'button button--destructive'
-    %div{ style: 'float: left' }
-      = link_to t('admin.reports.mark_as_resolved'), resolve_admin_report_path(@report), method: :post, class: 'button'
+    = link_to t('admin.reports.mark_as_resolved'), resolve_admin_report_path(@report), method: :post, class: 'button'
   - else
     = link_to t('admin.reports.mark_as_unresolved'), reopen_admin_report_path(@report), method: :post, class: 'button'
 
-%hr.spacer
-
 .table-wrapper
   %table.table.inline-table
     %tbody
       %tr
         %th= t('admin.reports.reported_account')
         %td= admin_account_link_to @report.target_account
-        %td= table_link_to 'flag', pluralize(@report.target_account.targeted_reports.count, t('admin.reports.account.report')), admin_reports_path(target_account_id: @report.target_account.id)
-        %td= table_link_to 'file', pluralize(@report.target_account.targeted_moderation_notes.count, t('admin.reports.account.note')), admin_reports_path(target_account_id: @report.target_account.id)
+        %td= table_link_to 'flag', t('admin.reports.account.reports', count: @report.target_account.targeted_reports.count), admin_reports_path(target_account_id: @report.target_account.id)
+        %td= table_link_to 'file', t('admin.reports.account.notes', count: @report.target_account.targeted_moderation_notes.count), admin_reports_path(target_account_id: @report.target_account.id)
       %tr
         %th= t('admin.reports.reported_by')
         - if @report.account.instance_actor?
           %td{ colspan: 3 }= site_hostname
         - elsif @report.account.local?
           %td= admin_account_link_to @report.account
-          %td= table_link_to 'flag', pluralize(@report.account.targeted_reports.count, t('admin.reports.account.report')), admin_reports_path(target_account_id: @report.account.id)
-          %td= table_link_to 'file', pluralize(@report.account.targeted_moderation_notes.count, t('admin.reports.account.note')), admin_reports_path(target_account_id: @report.account.id)
+          %td= table_link_to 'flag', t('admin.reports.account.reports', count: @report.account.targeted_reports.count), admin_reports_path(target_account_id: @report.account.id)
+          %td= table_link_to 'file', t('admin.reports.account.notes', count: @report.account.targeted_moderation_notes.count), admin_reports_path(target_account_id: @report.account.id)
         - else
           %td{ colspan: 3 }= @report.account.domain
       %tr
@@ -74,6 +65,17 @@
 
 %hr.spacer
 
+%div{ style: 'overflow: hidden; margin-bottom: 20px; clear: both' }
+  - if @report.unresolved?
+    %div{ style: 'float: right' }
+      - if @report.target_account.local?
+        = link_to t('admin.accounts.warn'), new_admin_account_action_path(@report.target_account_id, type: 'none', report_id: @report.id), class: 'button'
+        = link_to t('admin.accounts.disable'), new_admin_account_action_path(@report.target_account_id, type: 'disable', report_id: @report.id), class: 'button button--destructive'
+      = link_to t('admin.accounts.silence'), new_admin_account_action_path(@report.target_account_id, type: 'silence', report_id: @report.id), class: 'button button--destructive'
+      = link_to t('admin.accounts.perform_full_suspension'), new_admin_account_action_path(@report.target_account_id, type: 'suspend', report_id: @report.id), class: 'button button--destructive'
+
+%hr.spacer
+
 .speech-bubble
   .speech-bubble__bubble= simple_format(@report.comment.presence || t('admin.reports.comment.none'))
   .speech-bubble__owner
diff --git a/app/views/admin/settings/edit.html.haml b/app/views/admin/settings/edit.html.haml
index ba66aeff8..b6815e80b 100644
--- a/app/views/admin/settings/edit.html.haml
+++ b/app/views/admin/settings/edit.html.haml
@@ -1,3 +1,6 @@
+- content_for :header_tags do
+  = javascript_pack_tag 'admin', integrity: true, async: true, crossorigin: 'anonymous'
+
 - content_for :page_title do
   = t('admin.settings.title')
 
@@ -38,7 +41,9 @@
   %hr.spacer/
 
   .fields-group
-    = f.input :bootstrap_timeline_accounts, wrapper: :with_block_label, label: t('admin.settings.bootstrap_timeline_accounts.title'), hint: t('admin.settings.bootstrap_timeline_accounts.desc_html')
+    = f.input :enable_bootstrap_timeline_accounts, as: :boolean, wrapper: :with_label, label: t('admin.settings.enable_bootstrap_timeline_accounts.title')
+  .fields-group
+    = f.input :bootstrap_timeline_accounts, wrapper: :with_block_label, label: t('admin.settings.bootstrap_timeline_accounts.title'), hint: t('admin.settings.bootstrap_timeline_accounts.desc_html'), disabled: !Setting.enable_bootstrap_timeline_accounts
 
   %hr.spacer/
 
diff --git a/app/views/layouts/admin.html.haml b/app/views/layouts/admin.html.haml
index fc690409c..9fceb54eb 100644
--- a/app/views/layouts/admin.html.haml
+++ b/app/views/layouts/admin.html.haml
@@ -18,7 +18,12 @@
 
     .content-wrapper
       .content
-        %h2= yield :page_title
+        .content-heading
+          %h2= yield :page_title
+
+          - if :page_heading_actions
+            .content-heading-actions
+              = yield :page_heading_actions
 
         = render 'application/flashes'
 
diff --git a/app/views/settings/exports/show.html.haml b/app/views/settings/exports/show.html.haml
index 76ff76bd9..0bb80e937 100644
--- a/app/views/settings/exports/show.html.haml
+++ b/app/views/settings/exports/show.html.haml
@@ -9,11 +9,11 @@
         %td= number_to_human_size @export.total_storage
         %td
       %tr
-        %th= t('accounts.posts', count: @export.total_statuses)
+        %th= t('accounts.posts_tab_heading')
         %td= number_with_delimiter @export.total_statuses
         %td
       %tr
-        %th= t('exports.follows')
+        %th= t('admin.accounts.follows')
         %td= number_with_delimiter @export.total_follows
         %td= table_link_to 'download', t('exports.csv'), settings_exports_follows_path(format: :csv)
       %tr
@@ -21,7 +21,7 @@
         %td= number_with_delimiter @export.total_lists
         %td= table_link_to 'download', t('exports.csv'), settings_exports_lists_path(format: :csv)
       %tr
-        %th= t('accounts.followers', count: @export.total_followers)
+        %th= t('admin.accounts.followers')
         %td= number_with_delimiter @export.total_followers
         %td
       %tr
diff --git a/config/locales/ar.yml b/config/locales/ar.yml
index 13f509836..835e96769 100644
--- a/config/locales/ar.yml
+++ b/config/locales/ar.yml
@@ -124,9 +124,7 @@ ar:
       email_status: حالة البريد الإلكتروني
       enable: تفعيل
       enabled: مفعَّل
-      feed_url: عنوان رابط التغذية
       followers: المتابِعون
-      followers_url: عنوان رابط المتابِعين
       follows: يتابع
       header: الرأسية
       inbox_url: رابط صندوق الوارد
@@ -154,10 +152,8 @@ ar:
       no_account_selected: لم يطرأ أي تغيير على أي حساب بما أنه لم يتم اختيار أي واحد
       no_limits_imposed: مِن دون حدود مشروطة
       not_subscribed: غير مشترك
-      outbox_url: رابط صندوق الصادر
       pending: في انتظار المراجعة
       perform_full_suspension: تعليق الحساب
-      profile_url: رابط الصفحة التعريفية
       promote: ترقية
       protocol: البروتوكول
       public: عمومي
@@ -180,7 +176,6 @@ ar:
         moderator: مشرف
         staff: الفريق
         user: مستخدِم
-      salmon_url: عنوان رابط سالمون Salmon
       search: البحث
       shared_inbox_url: رابط الصندوق المُشترَك للبريد الوارد
       show:
@@ -399,9 +394,6 @@ ar:
       created_msg: تم إنشاء ملاحظة الشكوى بنجاح!
       destroyed_msg: تم حذف ملاحظة الشكوى بنجاح!
     reports:
-      account:
-        note: ملحوظة
-        report: تقرير
       action_taken_by: تم اتخاذ الإجراء مِن طرف
       are_you_sure: هل أنت متأكد ؟
       assign_to_self: عين لي
diff --git a/config/locales/bn.yml b/config/locales/bn.yml
index 24f0a654a..7dd49ff96 100644
--- a/config/locales/bn.yml
+++ b/config/locales/bn.yml
@@ -118,9 +118,7 @@ bn:
       email_status: ইমেইলের অবস্থা
       enable: চালু করুন
       enabled: চালু করুন
-      feed_url: সম্মিলিত(feed) লিংক
       followers: অনুসরকারীরা
-      followers_url: অনুসরণকারীদের লিংক
       follows: অনুসরণ করে
       header: শিরোলেখা
       inbox_url: চিঠি পাওয়ার বক্স লিংক
@@ -148,10 +146,8 @@ bn:
       no_account_selected: কোনও অ্যাকাউন্টই নির্বাচন করা হয়নি বলে কোনও অ্যাকাউন্ট পরিবর্তন করা হয়নি
       no_limits_imposed: কোন সীমা আরোপ করা নেই
       not_subscribed: সাবস্ক্রাইব নেই
-      outbox_url: চিঠি পাঠানোর বাক্স লিংক
       pending: পয্র্যবেক্ষণের অপেক্ষায় আছে
       perform_full_suspension: বাতিল করা
-      profile_url: প্রোফাইল URL
       promote: প্রচার
       protocol: প্রোটোকল
       public: সর্বজনীন
@@ -174,7 +170,6 @@ bn:
         moderator: নিয়ামক
         staff: কর্মী
         user: ব্যবহারকারী
-      salmon_url: সালমন URL
       search: অনুসন্ধান
       search_same_ip: একই IP সহ অন্যান্য ব্যবহারকারীরা
       shared_inbox_url: ভাগ করা ইনবক্স URL
diff --git a/config/locales/ca.yml b/config/locales/ca.yml
index b8436efd2..c3cfe3083 100644
--- a/config/locales/ca.yml
+++ b/config/locales/ca.yml
@@ -118,9 +118,7 @@ ca:
       email_status: Estat del correu electrònic
       enable: Habilita
       enabled: Habilitat
-      feed_url: URL del canal
       followers: Seguidors
-      followers_url: URL dels seguidors
       follows: Segueix
       header: Capçalera
       inbox_url: URL de la safata d'entrada
@@ -148,10 +146,8 @@ ca:
       no_account_selected: No s'han canviat els comptes perque no s'han seleccionat
       no_limits_imposed: Sense límits imposats
       not_subscribed: No subscrit
-      outbox_url: URL de la bústia de sortida
       pending: Revisió pendent
       perform_full_suspension: Suspèn
-      profile_url: URL del perfil
       promote: Promociona
       protocol: Protocol
       public: Públic
@@ -174,7 +170,6 @@ ca:
         moderator: Moderador
         staff: Personal
         user: Usuari
-      salmon_url: URL Salmon
       search: Cerca
       search_same_ip: Altres usuaris amb la mateixa IP
       shared_inbox_url: URL de la safata d'entrada compartida
@@ -398,9 +393,6 @@ ca:
       created_msg: La nota del informe s'ha creat correctament!
       destroyed_msg: La nota del informe s'ha esborrat correctament!
     reports:
-      account:
-        note: nota
-        report: informe
       action_taken_by: Mesures adoptades per
       are_you_sure: N'estàs segur?
       assign_to_self: Assignar-me
diff --git a/config/locales/co.yml b/config/locales/co.yml
index f14f4e9ea..9653363ca 100644
--- a/config/locales/co.yml
+++ b/config/locales/co.yml
@@ -118,9 +118,7 @@ co:
       email_status: Statutu di l’e-mail
       enable: Attivà
       enabled: Attivatu
-      feed_url: URL di u flussu
       followers: Abbunati
-      followers_url: URL di l’abbunati
       follows: Abbunamenti
       header: Intistatura
       inbox_url: URL di l’inbox
@@ -148,10 +146,8 @@ co:
       no_account_selected: Nisun contu hè statu cambiatu postu ch'ùn c'eranu micca selezziunati
       no_limits_imposed: Nisuna limita imposta
       not_subscribed: Micca abbunatu
-      outbox_url: URL di l’outbox
       pending: In attesa di rivista
       perform_full_suspension: Suspende
-      profile_url: URL di u prufile
       promote: Prumove
       protocol: Prutucollu
       public: Pubblicu
@@ -174,7 +170,6 @@ co:
         moderator: Muderatore
         staff: Squadra
         user: Utilizatore
-      salmon_url: URL di Salmon
       search: Cercà
       search_same_ip: Altri utilizatori cù listessa IP
       shared_inbox_url: URL di l’inbox spartuta
@@ -398,9 +393,6 @@ co:
       created_msg: Nota di signalamentu creata!
       destroyed_msg: Nota di signalamentu sguassata!
     reports:
-      account:
-        note: nota
-        report: palisà
       action_taken_by: Intervenzione di
       are_you_sure: Site sicuru·a?
       assign_to_self: Assignallu à mè
diff --git a/config/locales/cs.yml b/config/locales/cs.yml
index 478169d70..81ae22680 100644
--- a/config/locales/cs.yml
+++ b/config/locales/cs.yml
@@ -126,9 +126,7 @@ cs:
       email_status: Stav e-mailu
       enable: Povolit
       enabled: Povoleno
-      feed_url: URL proudu
       followers: Sledující
-      followers_url: URL sledujících
       follows: Sledovaní
       header: Záhlaví
       inbox_url: URL příchozí schránky
@@ -156,10 +154,8 @@ cs:
       no_account_selected: Nebyl změněn žádný účet, neboť žádný nebyl zvolen
       no_limits_imposed: Nejsou nastavena žádná omezení
       not_subscribed: Neodebírá
-      outbox_url: URL odchozí schránky
       pending: Čeká na posouzení
       perform_full_suspension: Pozastavit
-      profile_url: URL profilu
       promote: Povýšit
       protocol: Protokol
       public: Veřejný
@@ -182,7 +178,6 @@ cs:
         moderator: Moderátor
         staff: Člen personálu
         user: Uživatel
-      salmon_url: URL Salmon
       search: Hledat
       search_same_ip: Další uživatelé se stejnou IP adresou
       shared_inbox_url: URL sdílené příchozí schránky
@@ -410,9 +405,6 @@ cs:
       created_msg: Poznámka o nahlášení úspěšně vytvořena!
       destroyed_msg: Poznámka o nahlášení úspěšně smazána!
     reports:
-      account:
-        note: poznámka
-        report: nahlášení
       action_taken_by: Akci vykonal/a
       are_you_sure: Jste si jistý/á?
       assign_to_self: Přidělit ke mně
diff --git a/config/locales/cy.yml b/config/locales/cy.yml
index aa0974a1a..fde22cc33 100644
--- a/config/locales/cy.yml
+++ b/config/locales/cy.yml
@@ -133,9 +133,7 @@ cy:
       email_status: Statws E-bost
       enable: Galluogi
       enabled: Wedi ei alluogi
-      feed_url: Ffrwd URL
       followers: Dilynwyr
-      followers_url: URL Dilynwyr
       follows: Yn dilyn
       header: Pennawd
       inbox_url: URL Mewnflwch
@@ -163,10 +161,8 @@ cy:
       no_account_selected: Ni newidwyd dim cyfrif achos ni ddewiswyd dim un
       no_limits_imposed: Dim terfynau wedi'i gosod
       not_subscribed: Heb danysgrifio
-      outbox_url: Allflwch URL
       pending: Yn aros am adolygiad
       perform_full_suspension: Atal
-      profile_url: URL proffil
       promote: Hyrwyddo
       protocol: Protocol
       public: Cyhoeddus
@@ -189,7 +185,6 @@ cy:
         moderator: Aroglygydd
         staff: Staff
         user: Defnyddiwr
-      salmon_url: URL Eog
       search: Chwilio
       search_same_ip: Defnyddwyr eraill gyda'r un IP
       shared_inbox_url: URL Mewnflwch wedi ei rannu
@@ -419,9 +414,6 @@ cy:
       created_msg: Llwyddwyd i greu nodyn adroddiad!
       destroyed_msg: Llwyddwyd i ddileu nodyn adroddiad!
     reports:
-      account:
-        note: nodyn
-        report: adroddiad
       action_taken_by: Gwnaethpwyd hyn gan
       are_you_sure: Ydych chi'n sicr?
       assign_to_self: Aseinio i mi
diff --git a/config/locales/da.yml b/config/locales/da.yml
index 982c712a8..57f4ed879 100644
--- a/config/locales/da.yml
+++ b/config/locales/da.yml
@@ -96,9 +96,7 @@ da:
       edit: Rediger
       enable: Aktiver
       enabled: Aktiveret
-      feed_url: Link til feed
       followers: Følgere
-      followers_url: Link til følgere
       follows: Følger
       inbox_url: Link til indbakke
       invited_by: Inviteret af
@@ -123,9 +121,7 @@ da:
       most_recent_activity: Seneste aktivitet
       most_recent_ip: Senest IP
       not_subscribed: Ikke abonneret
-      outbox_url: Link til udgående
       perform_full_suspension: Udeluk
-      profile_url: Link til profil
       promote: Forfrem
       protocol: Protokol
       public: Offentligt
@@ -147,7 +143,6 @@ da:
         moderator: Mod
         staff: Personale
         user: Bruger
-      salmon_url: Salmon-URL
       search: Søg
       search_same_ip: Andre brugere med den samme IP-adresse
       shared_inbox_url: Link til delt indbakke
@@ -333,9 +328,6 @@ da:
       created_msg: Anmeldelse note blev oprettet!
       destroyed_msg: Anmeldelse note blev slettet!
     reports:
-      account:
-        note: notat
-        report: anmeld
       action_taken_by: Handling udført af
       are_you_sure: Er du sikker?
       assign_to_self: Tildel til mig
diff --git a/config/locales/de.yml b/config/locales/de.yml
index 490ee947e..445205871 100644
--- a/config/locales/de.yml
+++ b/config/locales/de.yml
@@ -118,9 +118,7 @@ de:
       email_status: E-Mail-Status
       enable: Freischalten
       enabled: Freigegeben
-      feed_url: Feed-URL
       followers: Folgende
-      followers_url: URL des Folgenden
       follows: Folgt
       header: Titelbild
       inbox_url: Posteingangs-URL
@@ -148,10 +146,8 @@ de:
       no_account_selected: Keine Konten wurden geändert, da keine ausgewählt wurden
       no_limits_imposed: Keine Beschränkungen
       not_subscribed: Nicht abonniert
-      outbox_url: Postausgangs-URL
       pending: In Warteschlange
       perform_full_suspension: Verbannen
-      profile_url: Profil-URL
       promote: Befördern
       protocol: Protokoll
       public: Öffentlich
@@ -174,7 +170,6 @@ de:
         moderator: Moderator_in
         staff: Mitarbeiter
         user: Nutzer
-      salmon_url: Salmon-URL
       search: Suche
       search_same_ip: Andere Benutzer mit derselben IP
       shared_inbox_url: Geteilte Posteingang-URL
@@ -396,9 +391,6 @@ de:
       created_msg: Meldungs-Kommentar erfolgreich erstellt!
       destroyed_msg: Meldungs-Kommentar erfolgreich gelöscht!
     reports:
-      account:
-        note: Notiz
-        report: Meldung
       action_taken_by: Maßnahme ergriffen durch
       are_you_sure: Bist du dir sicher?
       assign_to_self: Mir zuweisen
diff --git a/config/locales/el.yml b/config/locales/el.yml
index 9f4a8969d..585eefab4 100644
--- a/config/locales/el.yml
+++ b/config/locales/el.yml
@@ -118,9 +118,7 @@ el:
       email_status: Κατάσταση email
       enable: Ενεργοποίηση
       enabled: Ενεργοποιημένο
-      feed_url: URL ροής
       followers: Ακόλουθοι
-      followers_url: URL ακολούθων
       follows: Ακολουθεί
       header: Επικεφαλίδα
       inbox_url: URL εισερχομένων
@@ -148,10 +146,8 @@ el:
       no_account_selected: Κανείς λογαριασμός δεν ενημερώθηκε αφού κανείς δεν ήταν επιλεγμένος
       no_limits_imposed: Χωρίς όρια
       not_subscribed: Άνευ συνδρομής
-      outbox_url: URL εξερχομένων
       pending: Εκκρεμεί έγκριση
       perform_full_suspension: Αναστολή
-      profile_url: URL προφίλ
       promote: Προβίβασε
       protocol: Πρωτόκολλο
       public: Δημόσιο
@@ -174,7 +170,6 @@ el:
         moderator: Συντονιστής
         staff: Προσωπικό
         user: Χρήστης
-      salmon_url: URL Salmon
       search: Αναζήτηση
       search_same_ip: Υπόλοιποι χρήστες με την ίδια διεύθυνση IP
       shared_inbox_url: URL κοινόχρηστων εισερχομένων
@@ -398,9 +393,6 @@ el:
       created_msg: Επιτυχής δημιουργία σημείωσης καταγγελίας!
       destroyed_msg: Επιτυχής διαγραφή σημείωσης καταγγελίας!
     reports:
-      account:
-        note: σημείωση
-        report: καταγγελία
       action_taken_by: Ενέργεια από τον/την
       are_you_sure: Σίγουρα;
       assign_to_self: Ανάθεση σε μένα
diff --git a/config/locales/en.yml b/config/locales/en.yml
index c505896e7..43c24fc4e 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -119,9 +119,7 @@ en:
       email_status: Email status
       enable: Enable
       enabled: Enabled
-      feed_url: Feed URL
       followers: Followers
-      followers_url: Followers URL
       follows: Follows
       header: Header
       inbox_url: Inbox URL
@@ -149,10 +147,8 @@ en:
       no_account_selected: No accounts were changed as none were selected
       no_limits_imposed: No limits imposed
       not_subscribed: Not subscribed
-      outbox_url: Outbox URL
       pending: Pending review
       perform_full_suspension: Suspend
-      profile_url: Profile URL
       promote: Promote
       protocol: Protocol
       public: Public
@@ -175,7 +171,6 @@ en:
         moderator: Moderator
         staff: Staff
         user: User
-      salmon_url: Salmon URL
       search: Search
       search_same_ip: Other users with the same IP
       shared_inbox_url: Shared inbox URL
@@ -401,8 +396,12 @@ en:
       destroyed_msg: Report note successfully deleted!
     reports:
       account:
-        note: note
-        report: report
+        notes:
+          one: "%{count} note"
+          other: "%{count} notes"
+        reports:
+          one: "%{count} report"
+          other: "%{count} reports"
       action_taken_by: Action taken by
       are_you_sure: Are you sure?
       assign_to_self: Assign to me
@@ -453,6 +452,8 @@ en:
         users: To logged-in local users
       domain_blocks_rationale:
         title: Show rationale
+      enable_bootstrap_timeline_accounts:
+        title: Enable default follows for new users
       enable_keybase:
         desc_html: Allow your users to prove their identity via keybase
         title: Enable keybase integration
@@ -731,7 +732,6 @@ en:
     blocks: You block
     csv: CSV
     domain_blocks: Domain blocks
-    follows: You follow
     lists: Lists
     mutes: You mute
     storage: Media storage
diff --git a/config/locales/en_GB.yml b/config/locales/en_GB.yml
index 33ba16210..939dfe0c1 100644
--- a/config/locales/en_GB.yml
+++ b/config/locales/en_GB.yml
@@ -105,9 +105,7 @@ en_GB:
       email_status: Email status
       enable: Enable
       enabled: Enabled
-      feed_url: Feed URL
       followers: Followers
-      followers_url: Followers URL
       follows: Follows
       header: Header
       inbox_url: Inbox URL
@@ -134,10 +132,8 @@ en_GB:
       most_recent_ip: Most recent IP
       no_limits_imposed: No limits imposed
       not_subscribed: Not subscribed
-      outbox_url: Outbox URL
       pending: Pending review
       perform_full_suspension: Suspend
-      profile_url: Profile URL
       promote: Promote
       protocol: Protocol
       public: Public
@@ -159,7 +155,6 @@ en_GB:
         moderator: Moderator
         staff: Staff
         user: User
-      salmon_url: Salmon URL
       search: Search
       shared_inbox_url: Shared inbox URL
       show:
@@ -348,9 +343,6 @@ en_GB:
       created_msg: Report note successfully created!
       destroyed_msg: Report note successfully deleted!
     reports:
-      account:
-        note: note
-        report: report
       action_taken_by: Action taken by
       are_you_sure: Are you sure?
       assign_to_self: Assign to me
diff --git a/config/locales/eo.yml b/config/locales/eo.yml
index 347873214..78ea19af5 100644
--- a/config/locales/eo.yml
+++ b/config/locales/eo.yml
@@ -111,9 +111,7 @@ eo:
       email_status: Retadreso Stato
       enable: Ebligi
       enabled: Ebligita
-      feed_url: URL de la fluo
       followers: Sekvantoj
-      followers_url: URL de la sekvantoj
       follows: Sekvatoj
       header: Kapa bildo
       inbox_url: Enira URL
@@ -141,10 +139,8 @@ eo:
       no_account_selected: Neniu konto estis ŝanĝita ĉar neniu estis selektita
       no_limits_imposed: Neniu limito trudita
       not_subscribed: Ne abonita
-      outbox_url: Elira URL
       pending: Pritraktata recenzo
       perform_full_suspension: Haltigi
-      profile_url: Profila URL
       promote: Plirangigi
       protocol: Protokolo
       public: Publika
@@ -167,7 +163,6 @@ eo:
         moderator: Kontrolanto
         staff: Teamo
         user: Uzanto
-      salmon_url: Salmon-URL
       search: Serĉi
       shared_inbox_url: URL de kunhavigita leterkesto
       show:
@@ -380,9 +375,6 @@ eo:
       created_msg: Signala noto sukcese kreita!
       destroyed_msg: Signala noto sukcese forigita!
     reports:
-      account:
-        note: noto
-        report: signalo
       action_taken_by: Ago farita de
       are_you_sure: Ĉu vi certas?
       assign_to_self: Asigni al mi
diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml
index 0af0c04bd..c52615139 100644
--- a/config/locales/es-AR.yml
+++ b/config/locales/es-AR.yml
@@ -118,9 +118,7 @@ es-AR:
       email_status: Estado del correo
       enable: Habilitar
       enabled: Habilitada
-      feed_url: Dirección de la fuente web
       followers: Seguidores
-      followers_url: Dirección web de los seguidores
       follows: Seguidores
       header: Cabecera
       inbox_url: Dirección web de la bandeja de entrada
@@ -148,10 +146,8 @@ es-AR:
       no_account_selected: No se cambió ninguna cuenta ya que ninguna fue seleccionada
       no_limits_imposed: Sin límites impuestos
       not_subscribed: No suscripto
-      outbox_url: Dirección web de la bandeja de salida
       pending: Revisión pendiente
       perform_full_suspension: Suspender
-      profile_url: Dirección web del perfil
       promote: Promocionar
       protocol: Protocolo
       public: Pública
@@ -395,9 +391,6 @@ es-AR:
       created_msg: "¡La nota de denuncia fue creada exitosamente!"
       destroyed_msg: "¡La nota de denuncia fue eliminada exitosamente!"
     reports:
-      account:
-        note: nota
-        report: denuncia
       action_taken_by: Acción tomada por
       are_you_sure: "¿Estás seguro?"
       assign_to_self: Asignármela a mí
diff --git a/config/locales/es.yml b/config/locales/es.yml
index 920a0ccdf..1826331b3 100644
--- a/config/locales/es.yml
+++ b/config/locales/es.yml
@@ -118,9 +118,7 @@ es:
       email_status: E-mail Status
       enable: Habilitar
       enabled: Habilitada
-      feed_url: URL de notificaciones
       followers: Seguidores
-      followers_url: URL de los seguidores
       follows: Sigue
       header: Cabecera
       inbox_url: URL de la bandeja de entrada
@@ -148,10 +146,8 @@ es:
       no_account_selected: Ninguna cuenta se cambió como ninguna fue seleccionada
       no_limits_imposed: Sin límites impuestos
       not_subscribed: No se está suscrito
-      outbox_url: URL de bandeja de salida
       pending: Revisión pendiente
       perform_full_suspension: Suspender
-      profile_url: URL del perfil
       promote: Promocionar
       protocol: Protocolo
       public: Público
@@ -174,7 +170,6 @@ es:
         moderator: Moderador
         staff: Personal
         user: Usuario
-      salmon_url: URL de salmón
       search: Buscar
       search_same_ip: Otros usuarios con la misma IP
       shared_inbox_url: URL de bandeja compartida
@@ -398,9 +393,6 @@ es:
       created_msg: "¡El registro de la denuncia se ha creado correctamente!"
       destroyed_msg: "¡El registro de la denuncia se ha borrado correctamente!"
     reports:
-      account:
-        note: nota
-        report: denuncia
       action_taken_by: Acción tomada por
       are_you_sure: "¿Estás seguro?"
       assign_to_self: Asignármela a mí
diff --git a/config/locales/et.yml b/config/locales/et.yml
index aa58138f7..36a2931af 100644
--- a/config/locales/et.yml
+++ b/config/locales/et.yml
@@ -118,9 +118,7 @@ et:
       email_status: E-posti staatus
       enable: Luba
       enabled: Lubatud
-      feed_url: Voogu URL
       followers: Jälgijad
-      followers_url: Jälgijate URL
       follows: Jälgib
       header: Päis
       inbox_url: Sisendkausta URL
@@ -148,10 +146,8 @@ et:
       no_account_selected: Mitte ühtegi kontot muudeti sest midagi polnud valitud
       no_limits_imposed: Mitte ühtegi limiiti kehtestatud
       not_subscribed: Ei ole tellitud
-      outbox_url: Väljundkausta URL
       pending: Ootab ülevaatamist
       perform_full_suspension: Peata
-      profile_url: Profiili URL
       promote: Edenda
       protocol: Protokoll
       public: Avalik
@@ -174,7 +170,6 @@ et:
         moderator: Moderaator
         staff: Personal
         user: Kasutaja
-      salmon_url: Salmoni URL
       search: Otsi
       search_same_ip: Teised kasutajad, kellel on sama IP
       shared_inbox_url: Jagatud sisendkausta URL
@@ -401,9 +396,6 @@ et:
       created_msg: Teade edukalt koostatud!
       destroyed_msg: Teade edukalt kustutatud!
     reports:
-      account:
-        note: märkus
-        report: teavita
       action_taken_by: Meetmeid kasutanud
       are_you_sure: Olete kindel?
       assign_to_self: Määra mulle
diff --git a/config/locales/eu.yml b/config/locales/eu.yml
index ab8a68746..9dfe5e9d3 100644
--- a/config/locales/eu.yml
+++ b/config/locales/eu.yml
@@ -118,9 +118,7 @@ eu:
       email_status: Posta elektronikoaren egoera
       enable: Gaitu
       enabled: Gaituta
-      feed_url: Jarioaren URL-a
       followers: Jarraitzaileak
-      followers_url: Jarraitzaileen URL-a
       follows: Jarraitzen du
       header: Goiburua
       inbox_url: Sarrera ontziaren URL-a
@@ -148,10 +146,8 @@ eu:
       no_account_selected: Ez da konturik aldatu ez delako bata bera hautatu
       no_limits_imposed: Ez da mugarik ezarri
       not_subscribed: Harpidetu gabe
-      outbox_url: Irteera ontziaren URL-a
       pending: Berrikusketa egiteke
       perform_full_suspension: Kanporatu
-      profile_url: Profilaren URL-a
       promote: Sustatu
       protocol: Protokoloa
       public: Publikoa
@@ -174,7 +170,6 @@ eu:
         moderator: Moderatzailea
         staff: Langilea
         user: Erabiltzailea
-      salmon_url: Salmon URL-a
       search: Bilatu
       search_same_ip: IP bera duten beste erabiltzaileak
       shared_inbox_url: Partekatutako sarrera ontziaren URL-a
@@ -398,9 +393,6 @@ eu:
       created_msg: Salaketa oharra ongi sortu da!
       destroyed_msg: Salaketa oharra ongi ezabatu da!
     reports:
-      account:
-        note: oharra
-        report: salaketa
       action_taken_by: Neurrien hartzailea
       are_you_sure: Ziur zaude?
       assign_to_self: Esleitu niri
diff --git a/config/locales/fa.yml b/config/locales/fa.yml
index ea901423d..02a990a40 100644
--- a/config/locales/fa.yml
+++ b/config/locales/fa.yml
@@ -118,9 +118,7 @@ fa:
       email_status: وضعیت ایمیل
       enable: فعال
       enabled: فعال
-      feed_url: نشانی فید
       followers: پیگیران
-      followers_url: نشانی پیگیران
       follows: پی می‌گیرد
       header: زمینه
       inbox_url: نشانی صندوق ورودی
@@ -148,10 +146,8 @@ fa:
       no_account_selected: هیچ حسابی تغییر نکرد زیرا حسابی انتخاب نشده بود
       no_limits_imposed: بدون محدودیت
       not_subscribed: عضو نیست
-      outbox_url: نشانی صندوق خروجی
       pending: در انتظار بررسی
       perform_full_suspension: تعلیق
-      profile_url: نشانی نمایه
       promote: ترفیع‌دادن
       protocol: پروتکل
       public: عمومی
@@ -174,7 +170,6 @@ fa:
         moderator: ناظم
         staff: کارمند
         user: کاربر
-      salmon_url: نشانی Salmon
       search: جستجو
       search_same_ip: دیگر کاربران با همان IP
       shared_inbox_url: نشانی صندوق ورودی مشترک
@@ -396,9 +391,6 @@ fa:
       created_msg: یادداشت گزارش با موفقیت ساخته شد!
       destroyed_msg: یادداشت گزارش با موفقیت حذف شد!
     reports:
-      account:
-        note: یادداشت
-        report: گزارش
       action_taken_by: انجام‌دهنده
       are_you_sure: آیا مطمئن هستید؟
       assign_to_self: به عهدهٔ من بگذار
diff --git a/config/locales/fi.yml b/config/locales/fi.yml
index dfe71c098..3ab1a590e 100644
--- a/config/locales/fi.yml
+++ b/config/locales/fi.yml
@@ -96,9 +96,7 @@ fi:
       email_status: Sähköpostin tila
       enable: Ota käyttöön
       enabled: Käytössä
-      feed_url: Syötteen osoite
       followers: Seuraajat
-      followers_url: Seuraajien osoite
       follows: Seuraa
       inbox_url: Saapuvan postilaatikon osoite
       ip: IP
@@ -122,9 +120,7 @@ fi:
       most_recent_activity: Viimeisin toiminta
       most_recent_ip: Viimeisin IP
       not_subscribed: Ei tilaaja
-      outbox_url: Lähtevän postilaatikon osoite
       perform_full_suspension: Siirrä kokonaan jäähylle
-      profile_url: Profiilin osoite
       promote: Ylennä
       protocol: Protokolla
       public: Julkinen
@@ -146,7 +142,6 @@ fi:
         moderator: Moderaattori
         staff: Henkilöstö
         user: Käyttäjä
-      salmon_url: Salmon-URL
       search: Hae
       shared_inbox_url: Jaetun saapuvan postilaatikon osoite
       show:
@@ -270,9 +265,6 @@ fi:
       created_msg: Muistiinpano onnistuneesti lisätty raporttiin!
       destroyed_msg: Muistiinpano onnistuneesti poistettu raportista!
     reports:
-      account:
-        note: muistiinpano
-        report: raportti
       action_taken_by: Toimenpiteen tekijä
       are_you_sure: Oletko varma?
       assign_to_self: Ota tehtäväksi
diff --git a/config/locales/fr.yml b/config/locales/fr.yml
index 52dd032dd..06b2916fe 100644
--- a/config/locales/fr.yml
+++ b/config/locales/fr.yml
@@ -118,9 +118,7 @@ fr:
       email_status: État du courriel
       enable: Activer
       enabled: Activé
-      feed_url: URL du flux
       followers: Abonné⋅e⋅s
-      followers_url: URL des abonné·e·s
       follows: Abonnements
       header: Entête
       inbox_url: URL d’entrée
@@ -148,10 +146,8 @@ fr:
       no_account_selected: Aucun compte n’a été modifié, car aucun n’a été sélectionné
       no_limits_imposed: Aucune limite imposée
       not_subscribed: Non abonné
-      outbox_url: URL de sortie
       pending: En attente d’approbation
       perform_full_suspension: Suspendre
-      profile_url: URL du profil
       promote: Promouvoir
       protocol: Protocole
       public: Publique
@@ -174,7 +170,6 @@ fr:
         moderator: Modérateur
         staff: Équipe
         user: Utilisateur
-      salmon_url: URL Salmon
       search: Rechercher
       search_same_ip: Autres utilisateur·rice·s avec la même IP
       shared_inbox_url: URL de la boite de réception partagée
@@ -398,9 +393,6 @@ fr:
       created_msg: Note de signalement créée avec succès !
       destroyed_msg: Note de signalement effacée avec succès !
     reports:
-      account:
-        note: note
-        report: signalement(s)
       action_taken_by: Intervention de
       are_you_sure: Êtes vous certain⋅e ?
       assign_to_self: Me l’assigner
diff --git a/config/locales/gl.yml b/config/locales/gl.yml
index 64f479ec7..057b21566 100644
--- a/config/locales/gl.yml
+++ b/config/locales/gl.yml
@@ -118,9 +118,7 @@ gl:
       email_status: Estado do correo
       enable: Habilitar
       enabled: Habilitado
-      feed_url: URL fonte
       followers: Seguidoras
-      followers_url: URL das seguidoras
       follows: Segue
       header: Cabeceira
       inbox_url: URL da Caixa de entrada
@@ -148,10 +146,8 @@ gl:
       no_account_selected: Non cambiou nada xa que non tiña nada seleccionado
       no_limits_imposed: Sen límites impostos
       not_subscribed: Non suscrita
-      outbox_url: URL caixa de saída
       pending: Pendente revisión
       perform_full_suspension: Suspender
-      profile_url: URL do perfil
       promote: Promocionar
       protocol: Protocolo
       public: Público
@@ -174,7 +170,6 @@ gl:
         moderator: Moderador
         staff: Membresía
         user: Usuaria
-      salmon_url: URL Salmon
       search: Busca
       search_same_ip: Outros usuarios co mesmo IP
       shared_inbox_url: URL da caixa de entrada compartida
@@ -396,9 +391,6 @@ gl:
       created_msg: Creouse correctamente a nota do informe!
       destroyed_msg: Nota do informe eliminouse con éxito!
     reports:
-      account:
-        note: nota
-        report: informe
       action_taken_by: Acción tomada por
       are_you_sure: Está segura?
       assign_to_self: Asignarmo
diff --git a/config/locales/he.yml b/config/locales/he.yml
index 50db571dc..89e8a6e4f 100644
--- a/config/locales/he.yml
+++ b/config/locales/he.yml
@@ -52,9 +52,7 @@ he:
       email_status: סטטוס דוא"ל
       enable: לאפשר
       enabled: מאופשר
-      feed_url: כתובת פיד
       followers: עוקבים
-      followers_url: כתובת עוקבים
       follows: נעקבים
       inbox_url: כתובת תיבה נכנסת
       ip: כתובת IP
@@ -75,9 +73,7 @@ he:
       most_recent_activity: פעילות עדכנית
       most_recent_ip: כתובות אחרונות
       not_subscribed: לא רשום
-      outbox_url: כתובת תיבת דואר יוצא
       perform_full_suspension: ביצוע השעייה מלאה
-      profile_url: כתובת פרופיל
       promote: להעלות בדרגה
       protocol: פרטיכל
       public: פומבי
@@ -95,7 +91,6 @@ he:
         admin: מנהל מערכת
         moderator: מנחה דיונים
         user: משתמש(ת)
-      salmon_url: כתובת סלמון
       search: חיפוש
       shared_inbox_url: תיבה משותפת לדואר נכנס
       show:
diff --git a/config/locales/hu.yml b/config/locales/hu.yml
index 7f519c820..b4f8a970a 100644
--- a/config/locales/hu.yml
+++ b/config/locales/hu.yml
@@ -120,9 +120,7 @@ hu:
       email_status: E-mail állapot
       enable: Bekapcsolás
       enabled: Bekapcsolva
-      feed_url: Hírcsatorna URL
       followers: Követő
-      followers_url: Követő URL
       follows: Követett
       header: Fejléc
       inbox_url: Beérkezett üzenetek URL
@@ -150,10 +148,8 @@ hu:
       no_account_selected: Nem változott meg egy fiók sem, mert semmi sem volt kiválasztva
       no_limits_imposed: Nincs korlátozás
       not_subscribed: Nincs feliratkozás
-      outbox_url: Kimenő üzenetek URL
       pending: Engedélyezés alatt
       perform_full_suspension: Felfüggesztés
-      profile_url: Profil URL
       promote: Előléptetés
       protocol: Protokoll
       public: Nyilvános
@@ -176,7 +172,6 @@ hu:
         moderator: Moderátor
         staff: Stáb
         user: Felhasználó
-      salmon_url: Salmon URL
       search: Keresés
       search_same_ip: Más felhasználók ugyanezzel az IP-vel
       shared_inbox_url: Megosztott bejövő üzenetek URL
@@ -400,9 +395,6 @@ hu:
       created_msg: Bejelentési feljegyzés létrehozva!
       destroyed_msg: Bejelentési feljegyzés törölve!
     reports:
-      account:
-        note: feljegyzés
-        report: bejelentés
       action_taken_by: 'Kezelte:'
       are_you_sure: Biztos vagy benne?
       assign_to_self: Magamhoz rendelés
diff --git a/config/locales/id.yml b/config/locales/id.yml
index 97e87460a..982e4289a 100644
--- a/config/locales/id.yml
+++ b/config/locales/id.yml
@@ -114,9 +114,7 @@ id:
       email_status: Status Email
       enable: Aktifkan
       enabled: Diaktifkan
-      feed_url: URL Feed
       followers: Pengikut
-      followers_url: URL pengikut
       follows: Mengikut
       header: Tajuk
       inbox_url: URL Kotak masuk
@@ -144,10 +142,8 @@ id:
       no_account_selected: Tak ada akun yang diubah sebab tak ada yang dipilih
       no_limits_imposed: Tidak ada batasan
       not_subscribed: Tidak berlangganan
-      outbox_url: URL Kotak keluar
       pending: Tinjauan tertunda
       perform_full_suspension: Lakukan suspen penuh
-      profile_url: URL profil
       promote: Promosikan
       protocol: Protokol
       public: Publik
@@ -170,7 +166,6 @@ id:
         moderator: Moderator
         staff: Staf
         user: Pengguna
-      salmon_url: URL Salmon
       search: Cari
       search_same_ip: Pengguna lain dengan IP yang sama
       shared_inbox_url: URL kotak masuk bersama
@@ -391,9 +386,6 @@ id:
       created_msg: Catatan laporan berhasil dibuat!
       destroyed_msg: Catatan laporan berhasil dihapus!
     reports:
-      account:
-        note: catatan
-        report: lapor
       action_taken_by: Aksi dilakukan oleh
       are_you_sure: Apakah Anda yakin?
       assign_to_self: Tugaskan kpd saya
diff --git a/config/locales/it.yml b/config/locales/it.yml
index 3b5743f4d..aadf0f3d6 100644
--- a/config/locales/it.yml
+++ b/config/locales/it.yml
@@ -118,9 +118,7 @@ it:
       email_status: Stato email
       enable: Abilita
       enabled: Abilitato
-      feed_url: URL Feed
       followers: Follower
-      followers_url: URL follower
       follows: Segue
       header: Intestazione
       inbox_url: URL inbox
@@ -148,10 +146,8 @@ it:
       no_account_selected: Nessun account è stato modificato visto che non ne è stato selezionato nessuno
       no_limits_imposed: Nessun limite imposto
       not_subscribed: Non sottoscritto
-      outbox_url: URL outbox
       pending: Revisioni in attesa
       perform_full_suspension: Sospendi
-      profile_url: URL profilo
       promote: Promuovi
       protocol: Protocollo
       public: Pubblico
@@ -174,7 +170,6 @@ it:
         moderator: Moderatore
         staff: Personale
         user: Utente
-      salmon_url: URL Salmone
       search: Cerca
       search_same_ip: Altri utenti con lo stesso IP
       shared_inbox_url: URL Inbox Condiviso
@@ -394,9 +389,6 @@ it:
       created_msg: Nota rapporto creata!
       destroyed_msg: Nota rapporto cancellata!
     reports:
-      account:
-        note: note
-        report: rapporto
       action_taken_by: Azione intrapresa da
       are_you_sure: Sei sicuro?
       assign_to_self: Assegna a me
diff --git a/config/locales/ja.yml b/config/locales/ja.yml
index 8bf225bee..1f71a6e28 100644
--- a/config/locales/ja.yml
+++ b/config/locales/ja.yml
@@ -114,9 +114,7 @@ ja:
       email_status: メールアドレスの状態
       enable: 有効化
       enabled: 有効
-      feed_url: フィードURL
       followers: フォロワー数
-      followers_url: Followers URL
       follows: フォロー数
       header: ヘッダー
       inbox_url: Inbox URL
@@ -144,10 +142,8 @@ ja:
       no_account_selected: 何も選択されていないため、変更されていません
       no_limits_imposed: 制限なし
       not_subscribed: 購読していない
-      outbox_url: Outbox URL
       pending: 承認待ち
       perform_full_suspension: 活動を完全に停止させる
-      profile_url: プロフィールURL
       promote: 昇格
       protocol: プロトコル
       public: パブリック
@@ -170,7 +166,6 @@ ja:
         moderator: モデレーター
         staff: スタッフ
         user: ユーザー
-      salmon_url: Salmon URL
       search: 検索
       search_same_ip: 同じ IP のユーザーを検索
       shared_inbox_url: Shared inbox URL
@@ -392,9 +387,6 @@ ja:
       created_msg: 通報メモを書き込みました!
       destroyed_msg: 通報メモを削除しました!
     reports:
-      account:
-        note: メモ
-        report: 通報
       action_taken_by: 通報処理者
       are_you_sure: 本当に実行しますか?
       assign_to_self: 担当になる
diff --git a/config/locales/ka.yml b/config/locales/ka.yml
index 0ab1f2d69..125912892 100644
--- a/config/locales/ka.yml
+++ b/config/locales/ka.yml
@@ -70,9 +70,7 @@ ka:
       email_status: ელ-ფოსტის სტატუსი
       enable: ჩართვა
       enabled: ჩართულია
-      feed_url: ლენტის ურლ
       followers: მიმდევრები
-      followers_url: მიმდევრების ურლ
       follows: დადევნებები
       inbox_url: ინბოქსის ურლ
       ip: აი-პი
@@ -93,9 +91,7 @@ ka:
       most_recent_activity: უახლესი აქტივობა
       most_recent_ip: უახლესი აი-პი
       not_subscribed: გამოუწერელი
-      outbox_url: აუთბოქსის ურლ
       perform_full_suspension: მოახდინეთ სრული შეჩერება
-      profile_url: პროფილის ურლ
       promote: დაწინაურება
       protocol: პროტოკოლი
       public: საჯარო
@@ -115,7 +111,6 @@ ka:
         moderator: მოდერატორი
         staff: სტაფი
         user: მომხმარებელი
-      salmon_url: სალმონის ურლ
       search: ძებნა
       shared_inbox_url: გაზიარებული ინბოქსის ურლ
       show:
@@ -267,9 +262,6 @@ ka:
       created_msg: რეპორტის ჩანაწერი წარმატებით შეიქმნა!
       destroyed_msg: რეპორტის ჩანაწერი წარმატებით გაუქმდა!
     reports:
-      account:
-        note: ჩანაწერი
-        report: რეპორტი
       action_taken_by: მოქმედება შეასრულა
       are_you_sure: დარწმუნებული ხარ?
       assign_to_self: დანიშნე ჩემზე
diff --git a/config/locales/kk.yml b/config/locales/kk.yml
index 2b3f24e02..df2a29dab 100644
--- a/config/locales/kk.yml
+++ b/config/locales/kk.yml
@@ -118,9 +118,7 @@ kk:
       email_status: Email статусы
       enable: Қосу
       enabled: Қосылды
-      feed_url: Feеd URL
       followers: Оқырмандар
-      followers_url: Оқырмандар URL
       follows: Жазылғандары
       header: Басы
       inbox_url: Келген хаттар URL
@@ -148,10 +146,8 @@ kk:
       no_account_selected: Бірде-бір аккаунт өзгерген жоқ, себебі ештеңе таңдалмады
       no_limits_imposed: Шектеу жоқ
       not_subscribed: Жазылмаған
-      outbox_url: Кеткен хаттар URL
       pending: Күтудегілерді қарау
       perform_full_suspension: Тоқтат
-      profile_url: Профиль URL
       promote: Жарнамалау
       protocol: Хаттама
       public: Ашық
@@ -174,7 +170,6 @@ kk:
         moderator: Модератор
         staff: Қызметкерлер
         user: Қолданушы
-      salmon_url: Ақсерке URL
       search: Іздеу
       search_same_ip: Осы ІРмен кірген басқа қолданушылар
       shared_inbox_url: Бөлісілген инбокс URL
@@ -398,9 +393,6 @@ kk:
       created_msg: Шағым жазбасы сәтті құрылды!
       destroyed_msg: Шағым жазбасы сәтті өшірілді!
     reports:
-      account:
-        note: жазба
-        report: шағым
       action_taken_by: Белсенділік жасаған
       are_you_sure: Шынымен бе?
       assign_to_self: Мені тағайындау
diff --git a/config/locales/ko.yml b/config/locales/ko.yml
index ceeadfb36..ee9e0e954 100644
--- a/config/locales/ko.yml
+++ b/config/locales/ko.yml
@@ -114,9 +114,7 @@ ko:
       email_status: 이메일 상태
       enable: 활성화
       enabled: 활성
-      feed_url: 피드 URL
       followers: 팔로워 수
-      followers_url: 팔로워 URL
       follows: 팔로잉 수
       header: 헤더
       inbox_url: 수신함 URL
@@ -144,10 +142,8 @@ ko:
       no_account_selected: 아무 계정도 선택 되지 않아 아무 것도 변경 되지 않았습니다
       no_limits_imposed: 제한 없음
       not_subscribed: 구독하지 않음
-      outbox_url: 발신함 URL
       pending: 심사 대기
       perform_full_suspension: 정지시키기
-      profile_url: 프로필 URL
       promote: 승급
       protocol: 프로토콜
       public: 전체 공개
@@ -170,7 +166,6 @@ ko:
         moderator: 모더레이터
         staff: 스태프
         user: 사용자
-      salmon_url: Salmon URL
       search: 검색
       search_same_ip: 같은 IP의 다른 사용자들
       shared_inbox_url: 공유된 inbox URL
@@ -392,9 +387,6 @@ ko:
       created_msg: 리포트 노트가 성공적으로 작성되었습니다!
       destroyed_msg: 리포트 노트가 성공적으로 삭제되었습니다!
     reports:
-      account:
-        note: 노트
-        report: 리포트
       action_taken_by: 신고 처리자
       are_you_sure: 정말로 실행하시겠습니까?
       assign_to_self: 나에게 할당하기
diff --git a/config/locales/lt.yml b/config/locales/lt.yml
index 7a09bee59..e9634b397 100644
--- a/config/locales/lt.yml
+++ b/config/locales/lt.yml
@@ -75,9 +75,7 @@ lt:
       email_status: El pašto statusas
       enable: Įjungti
       enabled: Įjungta
-      feed_url: Srauto URL
       followers: Sekėjai
-      followers_url: Sekėjų URL
       follows: Seka
       header: Antraštė
       inbox_url: Gautųjų URL
@@ -102,9 +100,7 @@ lt:
       most_recent_ip: Paskutinis IP
       no_limits_imposed: Be limitu
       not_subscribed: Ne prenumeruota
-      outbox_url: Išsiustųjų URL
       perform_full_suspension: Užrakinti
-      profile_url: Profilio URL
       promote: Paaukštinti
       protocol: Protokolas
       public: Viešas
@@ -125,7 +121,6 @@ lt:
         moderator: Moderatorius
         staff: Personalas
         user: Vartotojas
-      salmon_url: Lašišos URL
       search: Ieškoti
       shared_inbox_url: Bendroji gautųjų URL
       show:
@@ -309,9 +304,6 @@ lt:
       created_msg: Skundo žinutė sekmingai sukurta!
       destroyed_msg: Skundo žinutė sekmingai ištrinta!
     reports:
-      account:
-        note: raštelis
-        report: skundas
       action_taken_by: Veiksmo ėmėsi
       are_you_sure: Ar tu įsitikinęs?
       assign_to_self: Paskirti man
diff --git a/config/locales/ms.yml b/config/locales/ms.yml
index d824aed60..71dc72d9d 100644
--- a/config/locales/ms.yml
+++ b/config/locales/ms.yml
@@ -73,9 +73,7 @@ ms:
       email_status: Status Emel
       enable: Bolehkan
       enabled: Dibolehkan
-      feed_url: Suapan URL
       followers: Pengikut
-      followers_url: URL Pengikut
       follows: Mengikuti
       inbox_url: URL mesej masuk
       ip: Alamat IP
@@ -97,9 +95,7 @@ ms:
       most_recent_ip: IP terbaru
       no_limits_imposed: Tiada had dikuatkuasakan
       not_subscribed: Tiada langganan
-      outbox_url: URL mesej keluar
       perform_full_suspension: Gantung
-      profile_url: URL profil
       promote: Naikkan pangkat
       protocol: Protokol
       public: Awam
@@ -119,7 +115,6 @@ ms:
         moderator: Pengawal
         staff: Kakitangan
         user: Pengguna
-      salmon_url: URL Salmon
       search: Cari
       shared_inbox_url: URL Peti Masuk Berkongsi
       show:
@@ -276,9 +271,6 @@ ms:
       created_msg: Nota laporan berjaya dicipta!
       destroyed_msg: Nota laporan berjaya dipadam!
     reports:
-      account:
-        note: nota
-        report: laporan
       action_taken_by: Tindakan oleh
       are_you_sure: Anda pasti?
       assign_to_self: Berikan pada saya
diff --git a/config/locales/nl.yml b/config/locales/nl.yml
index bfa4122ed..2b49708e3 100644
--- a/config/locales/nl.yml
+++ b/config/locales/nl.yml
@@ -118,9 +118,7 @@ nl:
       email_status: E-mailstatus
       enable: Inschakelen
       enabled: Ingeschakeld
-      feed_url: Feed-URL
       followers: Volgers
-      followers_url: Volgers-URL
       follows: Volgt
       header: Omslagfoto
       inbox_url: Inbox-URL
@@ -148,10 +146,8 @@ nl:
       no_account_selected: Er zijn geen accounts veranderd, omdat er geen een was geselecteerd
       no_limits_imposed: Geen limieten ingesteld
       not_subscribed: Niet geabonneerd
-      outbox_url: Outbox-URL
       pending: Moet nog beoordeeld worden
       perform_full_suspension: Opschorten
-      profile_url: Profiel-URL
       promote: Promoveren
       protocol: Protocol
       public: Openbaar
@@ -174,7 +170,6 @@ nl:
         moderator: Moderator
         staff: Medewerkers
         user: Gebruiker
-      salmon_url: Salmon-URL
       search: Zoeken
       search_same_ip: Andere gebruikers met hetzelfde IP-adres
       shared_inbox_url: Gedeelde inbox-URL
@@ -396,9 +391,6 @@ nl:
       created_msg: Opmerking bij rapportage succesvol aangemaakt!
       destroyed_msg: Opmerking bij rapportage succesvol verwijderd!
     reports:
-      account:
-        note: opmerking
-        report: rapportage
       action_taken_by: Actie uitgevoerd door
       are_you_sure: Weet je het zeker?
       assign_to_self: Aan mij toewijzen
diff --git a/config/locales/no.yml b/config/locales/no.yml
index fa40975a7..2c8786066 100644
--- a/config/locales/no.yml
+++ b/config/locales/no.yml
@@ -48,9 +48,7 @@
       email_status: E-poststatus
       enable: Aktiver
       enabled: Aktivert
-      feed_url: Feed-URL
       followers: Følgere
-      followers_url: Følgere URL
       follows: Følginger
       inbox_url: Innboks URL
       ip: IP-adresse
@@ -71,9 +69,7 @@
       most_recent_activity: Nyligste aktivitet
       most_recent_ip: Nyligste IP
       not_subscribed: Ikke abonnért
-      outbox_url: Utboks URL
       perform_full_suspension: Utfør full utvisning
-      profile_url: Profil-URL
       promote: Oppgradere
       protocol: Protokoll
       public: Offentlig
@@ -90,7 +86,6 @@
       roles:
         staff: Personale
         user: Bruker
-      salmon_url: Salmon-URL
       search: Søk
       shared_inbox_url: Delt Innboks URL
       show:
diff --git a/config/locales/oc.yml b/config/locales/oc.yml
index 851db0491..f84fe882a 100644
--- a/config/locales/oc.yml
+++ b/config/locales/oc.yml
@@ -108,9 +108,7 @@ oc:
       email_status: Estat de l’adreça
       enable: Activar
       enabled: Activat
-      feed_url: Flux URL
       followers: Seguidors
-      followers_url: URL dels seguidors
       follows: Abonaments
       header: Bandièra
       inbox_url: URL de recepcion
@@ -138,10 +136,8 @@ oc:
       no_account_selected: Cap de compte pas cambiat estant que cap èra pas seleccionat
       no_limits_imposed: Cap de limit impausat
       not_subscribed: Pas seguidor
-      outbox_url: URL Outbox
       pending: Revision en espèra
       perform_full_suspension: Suspendre
-      profile_url: URL del perfil
       promote: Promòure
       protocol: Protocòl
       public: Public
@@ -164,7 +160,6 @@ oc:
         moderator: Moderador
         staff: Personnal
         user: Uitlizaire
-      salmon_url: URL Salmon
       search: Cercar
       shared_inbox_url: URL de recepcion partejada
       show:
@@ -383,9 +378,6 @@ oc:
       created_msg: Nòta de moderacion corrèctament creada !
       destroyed_msg: Nòta de moderacion corrèctament suprimida !
     reports:
-      account:
-        note: nòta
-        report: rapòrt
       action_taken_by: Mesura menada per
       are_you_sure: Es segur ?
       assign_to_self: Me l’assignar
diff --git a/config/locales/pl.yml b/config/locales/pl.yml
index 5cf346dc7..c57d168bf 100644
--- a/config/locales/pl.yml
+++ b/config/locales/pl.yml
@@ -125,9 +125,7 @@ pl:
       email_status: Stan e-maila
       enable: Aktywuj
       enabled: Aktywowano
-      feed_url: Adres kanału
       followers: Śledzący
-      followers_url: Adres śledzących
       follows: Śledzeni
       header: Nagłówek
       inbox_url: Adres skrzynki
@@ -155,10 +153,8 @@ pl:
       no_account_selected: Żadne konto nie zostało zmienione, bo żadne nie zostało wybrane
       no_limits_imposed: Nie nałożono ograniczeń
       not_subscribed: Nie zasubskrybowano
-      outbox_url: Adres skrzynki nadawczej
       pending: Oczekuje na przegląd
       perform_full_suspension: Zawieś
-      profile_url: Adres profilu
       promote: Podnieś uprawnienia
       protocol: Protokół
       public: Publiczne
@@ -181,7 +177,6 @@ pl:
         moderator: Moderator
         staff: Ekipa
         user: Użytkownik
-      salmon_url: Adres Salmon
       search: Szukaj
       shared_inbox_url: Adres udostępnianej skrzynki
       show:
@@ -403,9 +398,6 @@ pl:
       created_msg: Pomyslnie utworzono notatkę moderacyjną.
       destroyed_msg: Pomyślnie usunięto notatkę moderacyjną.
     reports:
-      account:
-        note: notatka
-        report: zgłoszenie
       action_taken_by: Działanie podjęte przez
       are_you_sure: Czy na pewno?
       assign_to_self: Przypisz do siebie
diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml
index 7391ff06c..84eff7991 100644
--- a/config/locales/pt-BR.yml
+++ b/config/locales/pt-BR.yml
@@ -107,9 +107,7 @@ pt-BR:
       email_status: Estado do e-mail
       enable: Ativar
       enabled: Ativado
-      feed_url: URL do feed
       followers: Seguidores
-      followers_url: URL de seguidores
       follows: Segue
       header: Cabeçalho
       inbox_url: URL da caixa de entrada
@@ -137,10 +135,8 @@ pt-BR:
       no_account_selected: Nenhuma conta foi modificada, pois nenhuma conta foi selecionada
       no_limits_imposed: Nenhum limite imposto
       not_subscribed: Não está inscrito
-      outbox_url: URL da caixa de saída
       pending: Esperando revisão
       perform_full_suspension: Suspender
-      profile_url: URL do perfil
       promote: Promover
       protocol: Protocolo
       public: Público
@@ -163,7 +159,6 @@ pt-BR:
         moderator: Moderador
         staff: Equipe
         user: Usuário
-      salmon_url: URL Salmon
       search: Pesquisar
       shared_inbox_url: URL da caixa de entrada compartilhada
       show:
@@ -368,9 +363,6 @@ pt-BR:
       created_msg: Nota de denúncia criada com sucesso!
       destroyed_msg: Nota de denúncia excluída com sucesso!
     reports:
-      account:
-        note: nota
-        report: denúncia
       action_taken_by: Ação realizada por
       are_you_sure: Você tem certeza?
       assign_to_self: Designar para mim
diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml
index bb1de517e..3c5b1ca9a 100644
--- a/config/locales/pt-PT.yml
+++ b/config/locales/pt-PT.yml
@@ -106,9 +106,7 @@ pt-PT:
       email_status: Estado do correio electrónico
       enable: Ativar
       enabled: Ativado
-      feed_url: URL do Feed
       followers: Seguidores
-      followers_url: URL dos seguidores
       follows: A seguir
       header: Cabeçalho
       inbox_url: URL da caixa de entrada
@@ -132,9 +130,7 @@ pt-PT:
       most_recent_ip: IP mais recente
       no_limits_imposed: Sem limites impostos
       not_subscribed: Não inscrito
-      outbox_url: URL da caixa de saída
       perform_full_suspension: Fazer suspensão completa
-      profile_url: URL do perfil
       promote: Promover
       protocol: Protocolo
       public: Público
@@ -155,7 +151,6 @@ pt-PT:
         moderator: Moderador
         staff: Equipa
         user: Utilizador
-      salmon_url: URL Salmon
       search: Pesquisar
       shared_inbox_url: URL da caixa de entrada compartilhada
       show:
@@ -346,9 +341,6 @@ pt-PT:
       created_msg: Relatório criado com sucesso!
       destroyed_msg: Relatório apagado com sucesso!
     reports:
-      account:
-        note: nota
-        report: relatório
       action_taken_by: Ação tomada por
       are_you_sure: Tens a certeza?
       assign_to_self: Atribuí-me a mim
diff --git a/config/locales/ru.yml b/config/locales/ru.yml
index 4c1035627..5c68ce4d4 100644
--- a/config/locales/ru.yml
+++ b/config/locales/ru.yml
@@ -126,9 +126,7 @@ ru:
       email_status: Статус e-mail
       enable: Включить
       enabled: Включен
-      feed_url: URL фида
       followers: Подписчики
-      followers_url: URL подписчиков
       follows: Подписки
       header: Шапка
       inbox_url: URL входящих
@@ -156,10 +154,8 @@ ru:
       no_account_selected: Ничего не выбрано, никакие учётные записи не изменены
       no_limits_imposed: Без ограничений
       not_subscribed: Не подписаны
-      outbox_url: URL исходящих
       pending: Ожидает рассмотрения
       perform_full_suspension: Полная блокировка
-      profile_url: URL профиля
       promote: Повысить
       protocol: Протокол
       public: Публичный
@@ -182,7 +178,6 @@ ru:
         moderator: Модератор
         staff: Персонал
         user: Пользователь
-      salmon_url: Страница Salmon
       search: Поиск
       search_same_ip: Другие пользователи с таким же IP
       shared_inbox_url: URL общих входящих
@@ -410,9 +405,6 @@ ru:
       created_msg: Примечание жалобы создано!
       destroyed_msg: Примечание жалобы удалено!
     reports:
-      account:
-        note: заметок
-        report: жалоб
       action_taken_by: 'Действие предпринято:'
       are_you_sure: Вы уверены?
       assign_to_self: Назначить себе
diff --git a/config/locales/sk.yml b/config/locales/sk.yml
index 5dc2113fd..8339309b3 100644
--- a/config/locales/sk.yml
+++ b/config/locales/sk.yml
@@ -122,9 +122,7 @@ sk:
       email_status: Stav emailu
       enable: Povoľ
       enabled: Povolený
-      feed_url: adresa časovej osi
       followers: Sledujúci
-      followers_url: URL adresa sledujúcich
       follows: Sledovania
       header: Záhlavie
       inbox_url: URL adresa prijatých správ
@@ -152,10 +150,8 @@ sk:
       no_account_selected: Nedošlo k žiadnému pozmeneniu účtov, keďže žiadne neboli vybrané
       no_limits_imposed: Nie sú stanovené žiadné obmedzenia
       not_subscribed: Neodoberá
-      outbox_url: URL poslaných
       pending: Vyžaduje posúdenie
       perform_full_suspension: Vylúč
-      profile_url: URL adresa profilu
       promote: Vyzdvihni
       protocol: Protokol
       public: Verejná časová os
@@ -178,7 +174,6 @@ sk:
         moderator: Moderátor
         staff: Člen
         user: Užívateľ
-      salmon_url: Salmon adresa
       search: Hľadaj
       search_same_ip: Ostatní užívatelia s rovnakou IP adresou
       shared_inbox_url: URL zdieľanej schránky
@@ -403,9 +398,6 @@ sk:
       created_msg: Poznámka o nahlásení úspešne vytvorená!
       destroyed_msg: Poznámka o nahlásení úspešne vymazaná!
     reports:
-      account:
-        note: poznámka
-        report: nahlás
       action_taken_by: Zákrok vykonal/a
       are_you_sure: Si si istý/á?
       assign_to_self: Priraď sebe
diff --git a/config/locales/sl.yml b/config/locales/sl.yml
index 22b58e7b6..2faaa149a 100644
--- a/config/locales/sl.yml
+++ b/config/locales/sl.yml
@@ -114,9 +114,7 @@ sl:
       email_status: Stanje e-pošte
       enable: Omogoči
       enabled: Omogočeno
-      feed_url: URL vira
       followers: Sledilci
-      followers_url: URL sledilcev
       follows: Sledi
       header: Glava
       inbox_url: URL mape "Prejeto"
@@ -144,10 +142,8 @@ sl:
       no_account_selected: Noben račun ni bil spremenjen, ker ni bil izbran noben
       no_limits_imposed: Brez omejitev
       not_subscribed: Ni naročen
-      outbox_url: URL za pošiljanje
       pending: Čakanje na pregled
       perform_full_suspension: Suspendiraj
-      profile_url: URL profila
       promote: Promoviraj
       protocol: Protokol
       public: Javen
@@ -170,7 +166,6 @@ sl:
         moderator: Moderator
         staff: Osebje
         user: Uporabnik
-      salmon_url: URL lososa
       search: Iskanje
       shared_inbox_url: URL mape "Prejeto v skupni rabi"
       show:
@@ -375,9 +370,6 @@ sl:
       created_msg: Opomba o prijavi je uspešno ustvarjena!
       destroyed_msg: Opomba o prijavi je uspešno izbrisana!
     reports:
-      account:
-        note: opomba
-        report: prijava
       action_taken_by: Dejanje, ki ga je sprejel
       are_you_sure: Ali ste prepričani?
       assign_to_self: Dodeli meni
diff --git a/config/locales/sq.yml b/config/locales/sq.yml
index ac811b0b0..e5378082e 100644
--- a/config/locales/sq.yml
+++ b/config/locales/sq.yml
@@ -81,9 +81,7 @@ sq:
       email_status: Gjendje email-i
       enable: Aktivizoje
       enabled: E aktivizuar
-      feed_url: URL prurjeje
       followers: Ndjekës
-      followers_url: URL Ndjekësish
       follows: Ndjekje
       header: Krye
       inbox_url: URL Mesazhesh të Marrë
@@ -108,9 +106,7 @@ sq:
       most_recent_ip: IP-ja më e freskët
       no_limits_imposed: Pa imponim kufijsh
       not_subscribed: Jo i pajtuar
-      outbox_url: URL Mesazhesh të Dërguar
       perform_full_suspension: Pezulloje
-      profile_url: URL profili
       promote: Promovojeni
       protocol: Protokoll
       public: Publike
@@ -315,9 +311,6 @@ sq:
       created_msg: Shënimi i raportimit u krijua me sukses!
       destroyed_msg: Shënimi i raportimit u fshi me sukses!
     reports:
-      account:
-        note: shënim
-        report: raportojeni
       action_taken_by: Veprimi i ndërmarrë nga
       are_you_sure: A jeni i sigurt?
       assign_to_self: Caktojani vetes
diff --git a/config/locales/sr-Latn.yml b/config/locales/sr-Latn.yml
index 2bddaf311..1f3d69e21 100644
--- a/config/locales/sr-Latn.yml
+++ b/config/locales/sr-Latn.yml
@@ -47,9 +47,7 @@ sr-Latn:
       email_status: Status e-pošte
       enable: Uključi
       enabled: Uključeno
-      feed_url: Adresa dovoda
       followers: Pratioci
-      followers_url: Adresa pratioca
       follows: Praćeni
       inbox_url: Adresa sandučeta
       location:
@@ -69,9 +67,7 @@ sr-Latn:
       most_recent_activity: Najskorija aktivnost
       most_recent_ip: Najskorija IP adresa
       not_subscribed: Nije pretplaćen
-      outbox_url: Odlazno sanduče
       perform_full_suspension: Izvrši kompletno isključenje
-      profile_url: Adresa profila
       promote: Unapredi
       protocol: Protokol
       public: Javno
@@ -87,7 +83,6 @@ sr-Latn:
       roles:
         staff: Osoblje
         user: Korisnik
-      salmon_url: Salmon adresa
       search: Pretraga
       shared_inbox_url: Adresa deljenog sandučeta
       show:
diff --git a/config/locales/sr.yml b/config/locales/sr.yml
index 404310fe9..d06bb214e 100644
--- a/config/locales/sr.yml
+++ b/config/locales/sr.yml
@@ -91,9 +91,7 @@ sr:
       email_status: Статус е-поште
       enable: Омогући
       enabled: Укључено
-      feed_url: Адреса довода
       followers: Пратиоци
-      followers_url: Адреса пратиоца
       follows: Праћени
       header: Заглавље
       inbox_url: Адреса сандучета
@@ -118,9 +116,7 @@ sr:
       most_recent_ip: Најскорија IP адреса
       no_limits_imposed: Нема ограничења
       not_subscribed: Није претплаћен
-      outbox_url: Одлазно сандуче
       perform_full_suspension: Искључи
-      profile_url: Адреса профила
       promote: Унапреди
       protocol: Протокол
       public: Јавно
@@ -141,7 +137,6 @@ sr:
         moderator: Модератор
         staff: Особље
         user: Корисник
-      salmon_url: Salmon адреса
       search: Претрага
       shared_inbox_url: Адреса дељеног сандучета
       show:
@@ -330,9 +325,6 @@ sr:
       created_msg: Белешка пријаве успешно направљена!
       destroyed_msg: Белешка пријаве успешно избрисана!
     reports:
-      account:
-        note: белешка
-        report: извештај
       action_taken_by: Акцију извео
       are_you_sure: Да ли сте сигурни?
       assign_to_self: Додели мени
diff --git a/config/locales/sv.yml b/config/locales/sv.yml
index 0068f59f4..911698620 100644
--- a/config/locales/sv.yml
+++ b/config/locales/sv.yml
@@ -106,9 +106,7 @@ sv:
       email_status: E-poststatus
       enable: Aktivera
       enabled: Aktiverad
-      feed_url: Flödes URL
       followers: Följare
-      followers_url: Följare URL
       follows: Följs
       header: Rubrik
       inbox_url: Inkorgs URL
@@ -136,10 +134,8 @@ sv:
       no_account_selected: Inga konton har ändrats och inget har valts
       no_limits_imposed: Inga begränsningar har införts
       not_subscribed: Inte prenumererat
-      outbox_url: Utkorg URL
       pending: Inväntar granskning
       perform_full_suspension: Utför full avstängning
-      profile_url: Profil URL
       promote: Befordra
       protocol: Protokoll
       public: Offentlig
@@ -162,7 +158,6 @@ sv:
         moderator: Moderator
         staff: Personal
         user: Användare
-      salmon_url: Lax URL
       search: Sök
       search_same_ip: Annan användare med samma IP-adress
       shared_inbox_url: Delad inkorg URL
@@ -318,9 +313,6 @@ sv:
       created_msg: Anmälningsanteckning har skapats!
       destroyed_msg: Anmälningsanteckning har raderats!
     reports:
-      account:
-        note: anteckning
-        report: anmälan
       action_taken_by: Åtgärder vidtagna av
       are_you_sure: Är du säker?
       assign_to_self: Tilldela till mig
diff --git a/config/locales/te.yml b/config/locales/te.yml
index 526b03b49..dd6c878e7 100644
--- a/config/locales/te.yml
+++ b/config/locales/te.yml
@@ -87,9 +87,7 @@ te:
       email_status: ఈమెయిల్ స్థితి
       enable: చేతనం
       enabled: చేతనం చేయబడింది
-      feed_url: ఫీడ్ URL
       followers: అనుచరులు
-      followers_url: అనుచరుల URL
       follows: అనుసరిస్తున్నారు
       inbox_url: ఇన్ బాక్స్ URL
       location:
diff --git a/config/locales/th.yml b/config/locales/th.yml
index a63bbe917..214a93acf 100644
--- a/config/locales/th.yml
+++ b/config/locales/th.yml
@@ -97,9 +97,7 @@ th:
       email_status: สถานะอีเมล
       enable: เปิดใช้งาน
       enabled: เปิดใช้งานอยู่
-      feed_url: URL ฟีด
       followers: ผู้ติดตาม
-      followers_url: URL ผู้ติดตาม
       follows: การติดตาม
       header: ส่วนหัว
       inbox_url: URL กล่องขาเข้า
@@ -124,9 +122,7 @@ th:
       most_recent_activity: กิจกรรมล่าสุด
       most_recent_ip: IP ล่าสุด
       not_subscribed: ไม่ได้บอกรับ
-      outbox_url: URL กล่องขาออก
       perform_full_suspension: ระงับ
-      profile_url: URL โปรไฟล์
       promote: เลื่อนตำแหน่ง
       protocol: โปรโตคอล
       public: สาธารณะ
@@ -310,9 +306,6 @@ th:
       created_msg: สร้างหมายเหตุรายงานสำเร็จ!
       destroyed_msg: ลบหมายเหตุรายงานสำเร็จ!
     reports:
-      account:
-        note: หมายเหตุ
-        report: รายงาน
       are_you_sure: คุณแน่ใจหรือไม่?
       assign_to_self: มอบหมายให้ฉัน
       assigned: ผู้ควบคุมที่ได้รับมอบหมาย
diff --git a/config/locales/tr.yml b/config/locales/tr.yml
index b2b1dd078..f3a2817ec 100644
--- a/config/locales/tr.yml
+++ b/config/locales/tr.yml
@@ -118,9 +118,7 @@ tr:
       email_status: E-posta durumu
       enable: Etkinleştir
       enabled: Etkin
-      feed_url: Besleme linki
       followers: Takipçiler
-      followers_url: Takipçi bağlantısı
       follows: Takip edilen
       header: Üstbilgi
       inbox_url: Gelen kutusu bağlantısı
@@ -148,10 +146,8 @@ tr:
       no_account_selected: Hiçbiri seçilmediğinden hiçbir hesap değiştirilmedi
       no_limits_imposed: Sınır koymaz
       not_subscribed: Abone edilmedi
-      outbox_url: Giden Kutusu URL'si
       pending: Bekleyen yorum
       perform_full_suspension: Askıya al
-      profile_url: Profil linki
       promote: Yükselt
       protocol: Protokol
       public: Herkese açık
@@ -174,7 +170,6 @@ tr:
         moderator: Denetleyici
         staff: Personel
         user: Kullanıcı
-      salmon_url: Salmon Linki
       search: Ara
       search_same_ip: Aynı IP adresine sahip diğer kullanıcılar
       shared_inbox_url: Paylaşılan gelen kutusu bağlantısı
@@ -398,9 +393,6 @@ tr:
       created_msg: Şikayet notu başarıyla oluşturuldu!
       destroyed_msg: Şikayet notu başarıyla silindi!
     reports:
-      account:
-        note: not
-        report: şikayet
       action_taken_by: tarafından gerçekleştirilen eylem
       are_you_sure: Emin misiniz?
       assign_to_self: Bana ata
diff --git a/config/locales/uk.yml b/config/locales/uk.yml
index 7d8d83e2d..edcc289da 100644
--- a/config/locales/uk.yml
+++ b/config/locales/uk.yml
@@ -120,9 +120,7 @@ uk:
       email_status: Статус електронної пошти
       enable: Увімкнути
       enabled: Увімкнено
-      feed_url: URL-адреса каналу
       followers: Підписники
-      followers_url: URL підписників
       follows: Підписки
       header: Заголовок
       inbox_url: URL вхідних повідомлень
@@ -150,10 +148,8 @@ uk:
       no_account_selected: Жоден обліковий запис не було змінено, оскільки жоден не було вибрано
       no_limits_imposed: Жодних обмежень не накладено
       not_subscribed: Не підписані
-      outbox_url: URL вихідних повідомлень
       pending: Відгук в очікуванні
       perform_full_suspension: Призупинити
-      profile_url: URL профілю
       promote: Просунути
       protocol: Протокол
       public: Публічний
@@ -176,7 +172,6 @@ uk:
         moderator: Модератор
         staff: Персонал
         user: Користувач
-      salmon_url: Salmon URL
       search: Пошук
       shared_inbox_url: URL спільного вхідного кошика
       show:
@@ -400,9 +395,6 @@ uk:
       created_msg: Скарга успішно створена!
       destroyed_msg: Скарга успішно видалена!
     reports:
-      account:
-        note: нотатка
-        report: скарга
       action_taken_by: Дія виконана
       are_you_sure: Ви впевнені?
       assign_to_self: Призначити мені
diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml
index 3af145c66..49dd31bac 100644
--- a/config/locales/zh-CN.yml
+++ b/config/locales/zh-CN.yml
@@ -107,9 +107,7 @@ zh-CN:
       email_status: 电子邮件地址状态
       enable: 启用
       enabled: 已启用
-      feed_url: 订阅 URL
       followers: 关注者
-      followers_url: 关注者(Followers)URL
       follows: 正在关注
       header: 个人资料页横幅图片
       inbox_url: 收件箱(Inbox)URL
@@ -137,10 +135,8 @@ zh-CN:
       no_account_selected: 因为没有账户被选择,所以没有更改
       no_limits_imposed: 无限制
       not_subscribed: 未订阅
-      outbox_url: 发件箱(Outbox)URL
       pending: 待审核
       perform_full_suspension: 封禁
-      profile_url: 个人资料页面 URL
       promote: 升任
       protocol: 协议
       public: 公开页面
@@ -163,7 +159,6 @@ zh-CN:
         moderator: 监察员
         staff: 管理人员
         user: 普通用户
-      salmon_url: 三文鱼协议网址(Salmon URL)
       search: 搜索
       search_same_ip: 具有相同IP的其他用户
       shared_inbox_url: 公用收件箱(Shared Inbox)URL
@@ -384,9 +379,6 @@ zh-CN:
       created_msg: 举报记录建立成功!
       destroyed_msg: 举报记录删除成功!
     reports:
-      account:
-        note: 条记录
-        report: 条举报
       action_taken_by: 操作执行者
       are_you_sure: 你确定吗?
       assign_to_self: 接管
diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml
index 338cf810e..4b7ca52e1 100644
--- a/config/locales/zh-HK.yml
+++ b/config/locales/zh-HK.yml
@@ -64,9 +64,7 @@ zh-HK:
       email_status: 电子邮件状态
       enable: 啟用
       enabled: 已啟用
-      feed_url: 訂閱 URL
       followers: 關注者
-      followers_url: 關注者(Followers)URL
       follows: 正在關注
       inbox_url: 收件箱(Inbox)URL
       ip: IP 位域
@@ -87,9 +85,7 @@ zh-HK:
       most_recent_activity: 最新活動
       most_recent_ip: 最新 IP 位域
       not_subscribed: 未訂閱
-      outbox_url: 寄件箱(Outbox)URL
       perform_full_suspension: 完全停權
-      profile_url: 個人檔案 URL
       promote: 升任
       protocol: 協議
       public: 公共
@@ -109,7 +105,6 @@ zh-HK:
         moderator: 監察員
         staff: 管理人員
         user: 普通用戶
-      salmon_url: Salmon 反饋 URL
       search: 搜索
       shared_inbox_url: 公共收件箱(Shared Inbox)URL
       show:
@@ -233,9 +228,6 @@ zh-HK:
       created_msg: 舉報筆記已建立。
       destroyed_msg: 舉報筆記已刪除。
     reports:
-      account:
-        note: 筆記
-        report: 舉報
       action_taken_by: 操作執行者
       are_you_sure: 你確認嗎?
       assign_to_self: 指派給自己
diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml
index b7116e02e..7a5627c30 100644
--- a/config/locales/zh-TW.yml
+++ b/config/locales/zh-TW.yml
@@ -99,9 +99,7 @@ zh-TW:
       email_status: 電子信箱狀態
       enable: 啟用
       enabled: 已啟用
-      feed_url: 訂閱 URL
       followers: 關注者
-      followers_url: 關注者(Followers)URL
       follows: 正在關注
       header: 開頭
       inbox_url: 收件箱 (Inbox) URL
@@ -128,10 +126,8 @@ zh-TW:
       most_recent_ip: 最近 IP 位址
       no_limits_imposed: 未受限制
       not_subscribed: 未訂閱
-      outbox_url: 寄件箱 (Outbox) URL
       pending: 等待審核中
       perform_full_suspension: 停權
-      profile_url: 個人檔案 URL
       promote: 晉級
       protocol: 協議
       public: 公開
@@ -154,7 +150,6 @@ zh-TW:
         moderator: 版主
         staff: 管理人員
         user: 普通使用者
-      salmon_url: Salmon 網址
       search: 搜尋
       shared_inbox_url: 共享收件箱網址
       show:
@@ -323,9 +318,6 @@ zh-TW:
       created_msg: 檢舉記錄建立成功!
       destroyed_msg: 檢舉記錄刪除成功!
     reports:
-      account:
-        note: 條記錄
-        report: 條檢舉
       action_taken_by: 操作執行者
       are_you_sure: 你確定嗎?
       assign_to_self: 指派給自己
diff --git a/config/settings.yml b/config/settings.yml
index 3cca40cbd..00a4421e4 100644
--- a/config/settings.yml
+++ b/config/settings.yml
@@ -66,6 +66,7 @@ defaults: &defaults
     - mod
     - moderator
   disallowed_hashtags: # space separated string or list of hashtags without the hash
+  enable_bootstrap_timeline_accounts: true
   bootstrap_timeline_accounts: ''
   activity_api_enabled: true
   peers_api_enabled: true
diff --git a/db/migrate/20191212003415_increase_backup_size.rb b/db/migrate/20191212003415_increase_backup_size.rb
new file mode 100644
index 000000000..a5192263c
--- /dev/null
+++ b/db/migrate/20191212003415_increase_backup_size.rb
@@ -0,0 +1,21 @@
+require Rails.root.join('lib', 'mastodon', 'migration_helpers')
+
+class IncreaseBackupSize < ActiveRecord::Migration[5.2]
+  include Mastodon::MigrationHelpers
+
+  disable_ddl_transaction!
+
+  def up
+    safety_assured do
+      change_column_type_concurrently :backups, :dump_file_size, :bigint
+      cleanup_concurrent_column_type_change :backups, :dump_file_size
+    end
+  end
+
+  def down
+    safety_assured do
+      change_column_type_concurrently :backups, :dump_file_size, :integer
+      cleanup_concurrent_column_type_change :backups, :dump_file_size
+    end
+  end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 946f2c5e6..b7ab74033 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -10,7 +10,7 @@
 #
 # It's strongly recommended that you check this file into your version control system.
 
-ActiveRecord::Schema.define(version: 2019_10_31_163205) do
+ActiveRecord::Schema.define(version: 2019_12_12_003415) do
 
   # These are extensions that must be enabled in order to support this database
   enable_extension "plpgsql"
@@ -200,7 +200,7 @@ ActiveRecord::Schema.define(version: 2019_10_31_163205) do
     t.bigint "user_id"
     t.string "dump_file_name"
     t.string "dump_content_type"
-    t.integer "dump_file_size"
+    t.bigint "dump_file_size"
     t.datetime "dump_updated_at"
     t.boolean "processed", default: false, null: false
     t.datetime "created_at", null: false
@@ -706,30 +706,6 @@ ActiveRecord::Schema.define(version: 2019_10_31_163205) do
     t.index ["tag_id", "status_id"], name: "index_statuses_tags_on_tag_id_and_status_id", unique: true
   end
 
-  create_table "stream_entries", force: :cascade do |t|
-    t.bigint "activity_id"
-    t.string "activity_type"
-    t.datetime "created_at", null: false
-    t.datetime "updated_at", null: false
-    t.boolean "hidden", default: false, null: false
-    t.bigint "account_id"
-    t.index ["account_id", "activity_type", "id"], name: "index_stream_entries_on_account_id_and_activity_type_and_id"
-    t.index ["activity_id", "activity_type"], name: "index_stream_entries_on_activity_id_and_activity_type"
-  end
-
-  create_table "subscriptions", force: :cascade do |t|
-    t.string "callback_url", default: "", null: false
-    t.string "secret"
-    t.datetime "expires_at"
-    t.boolean "confirmed", default: false, null: false
-    t.datetime "created_at", null: false
-    t.datetime "updated_at", null: false
-    t.datetime "last_successful_delivery_at"
-    t.string "domain"
-    t.bigint "account_id", null: false
-    t.index ["account_id", "callback_url"], name: "index_subscriptions_on_account_id_and_callback_url", unique: true
-  end
-
   create_table "tags", force: :cascade do |t|
     t.string "name", default: "", null: false
     t.datetime "created_at", null: false
diff --git a/lib/mastodon/statuses_cli.rb b/lib/mastodon/statuses_cli.rb
index eeedc026c..875183372 100644
--- a/lib/mastodon/statuses_cli.rb
+++ b/lib/mastodon/statuses_cli.rb
@@ -13,6 +13,7 @@ module Mastodon
     end
 
     option :days, type: :numeric, default: 90
+    option :clean_followed, type: :boolean
     desc 'remove', 'Remove unreferenced statuses'
     long_desc <<~LONG_DESC
       Remove statuses that are not referenced by local user activity, such as
@@ -20,7 +21,7 @@ module Mastodon
       by someone locally but no longer are.
 
       This is a computationally heavy procedure that creates extra database
-      indicides before commencing, and removes them afterward.
+      indices before commencing, and removes them afterward.
     LONG_DESC
     def remove
       say('Creating temporary database indices...')
@@ -34,18 +35,28 @@ module Mastodon
 
       say('Beginning removal... This might take a while...')
 
-      Status.remote
-            .where('id < ?', max_id)
-            .where(reblog_of_id: nil)                                                                                                                                                                                              # Skip reblogs
-            .where(in_reply_to_id: nil)                                                                                                                                                                                            # Skip replies
-            .where('id NOT IN (SELECT status_pins.status_id FROM status_pins WHERE statuses.id = status_id)')                                                                                                                      # Skip statuses that are pinned on profiles
-            .where('id NOT IN (SELECT mentions.status_id FROM mentions WHERE statuses.id = mentions.status_id AND mentions.account_id IN (SELECT accounts.id FROM accounts WHERE domain IS NULL))')                                # Skip statuses that mention local accounts
-            .where('id NOT IN (SELECT statuses1.in_reply_to_id FROM statuses AS statuses1 WHERE statuses.id = statuses1.in_reply_to_id)')                                                                                          # Skip statuses favourited by local accounts
-            .where('id NOT IN (SELECT bookmarks.status_id FROM bookmarks WHERE statuses.id = bookmarks.status_id)') # Skip statuses bookmarked by local users
-            .where('id NOT IN (SELECT statuses1.reblog_of_id FROM statuses AS statuses1 WHERE statuses.id = statuses1.reblog_of_id AND statuses1.account_id IN (SELECT accounts.id FROM accounts WHERE accounts.domain IS NULL))') # Skip statuses reblogged by local accounts
-            .where('account_id NOT IN (SELECT follows.target_account_id FROM follows WHERE statuses.account_id = follows.target_account_id)')                                                                                      # Skip accounts followed by local accounts
-            .in_batches
-            .delete_all
+      scope = Status.remote.where('id < ?', max_id)
+      # Skip reblogs of local statuses
+      scope = scope.where('reblog_of_id NOT IN (SELECT statuses1.id FROM statuses AS statuses1 WHERE statuses1.id = statuses.reblog_of_id AND (statuses1.uri IS NULL OR statuses1.local))')
+      # Skip statuses that are pinned on profiles
+      scope = scope.where('id NOT IN (SELECT status_pins.status_id FROM status_pins WHERE statuses.id = status_id)')
+      # Skip statuses that mention local accounts
+      scope = scope.where('id NOT IN (SELECT mentions.status_id FROM mentions WHERE statuses.id = mentions.status_id AND mentions.account_id IN (SELECT accounts.id FROM accounts WHERE domain IS NULL))')
+      # Skip statuses which have replies
+      scope = scope.where('id NOT IN (SELECT statuses1.in_reply_to_id FROM statuses AS statuses1 WHERE statuses.id = statuses1.in_reply_to_id)')
+      # Skip statuses reblogged by local accounts or with recent boosts
+      scope = scope.where('id NOT IN (SELECT statuses1.reblog_of_id FROM statuses AS statuses1 WHERE statuses.id = statuses1.reblog_of_id AND (statuses1.uri IS NULL OR statuses1.local OR statuses1.id >= ?))', max_id)
+      # Skip statuses favourited by local users
+      scope = scope.where('id NOT IN (SELECT favourites.status_id FROM favourites WHERE statuses.id = favourites.status_id AND favourites.account_id IN (SELECT accounts.id FROM accounts WHERE domain IS NULL))')
+      # Skip statuses bookmarked by local users
+      scope = scope.where('id NOT IN (SELECT bookmarks.status_id FROM bookmarks WHERE statuses.id = bookmarks.status_id)')
+
+      unless options[:clean_followed]
+        # Skip accounts followed by local accounts
+        scope = scope.where('account_id NOT IN (SELECT follows.target_account_id FROM follows WHERE statuses.account_id = follows.target_account_id)')
+      end
+
+      scope.in_batches.delete_all
 
       say('Beginning removal of now-orphaned media attachments to free up disk space...')
 
diff --git a/package.json b/package.json
index 7c364d647..6c059b7a5 100644
--- a/package.json
+++ b/package.json
@@ -65,12 +65,12 @@
     "@babel/plugin-proposal-decorators": "^7.7.4",
     "@babel/plugin-transform-react-inline-elements": "^7.7.4",
     "@babel/plugin-transform-runtime": "^7.7.6",
-    "@babel/preset-env": "^7.7.4",
+    "@babel/preset-env": "^7.7.6",
     "@babel/preset-react": "^7.7.4",
     "@babel/runtime": "^7.7.6",
     "@gamestdio/websocket": "^0.3.2",
     "@clusterws/cws": "^0.16.0",
-    "array-includes": "^3.0.3",
+    "array-includes": "^3.1.0",
     "atrament": "^0.2.3",
     "arrow-key-navigation": "^1.1.0",
     "autoprefixer": "^9.7.3",
@@ -83,10 +83,10 @@
     "babel-runtime": "^6.26.0",
     "blurhash": "^1.1.3",
     "classnames": "^2.2.5",
-    "compression-webpack-plugin": "^3.0.0",
-    "copy-webpack-plugin": "^5.0.5",
+    "compression-webpack-plugin": "^3.0.1",
+    "copy-webpack-plugin": "^5.1.1",
     "cross-env": "^6.0.3",
-    "css-loader": "^3.2.0",
+    "css-loader": "^3.3.2",
     "cssnano": "^4.1.10",
     "detect-passive-events": "^1.0.2",
     "dotenv": "^8.2.0",
@@ -136,7 +136,7 @@
     "react-motion": "^0.5.2",
     "react-notification": "^6.8.5",
     "react-overlays": "^0.9.1",
-    "react-redux": "^7.1.1",
+    "react-redux": "^7.1.3",
     "react-redux-loading-bar": "^4.0.8",
     "react-router-dom": "^4.1.1",
     "react-router-scroll-4": "^1.0.0-beta.1",
@@ -176,7 +176,7 @@
     "enzyme": "^3.10.0",
     "enzyme-adapter-react-16": "^1.15.1",
     "eslint": "^6.7.2",
-    "eslint-plugin-import": "~2.19.0",
+    "eslint-plugin-import": "~2.19.1",
     "eslint-plugin-jsx-a11y": "~6.2.3",
     "eslint-plugin-promise": "~4.2.1",
     "eslint-plugin-react": "~7.17.0",
diff --git a/spec/controllers/settings/featured_tags_controller_spec.rb b/spec/controllers/settings/featured_tags_controller_spec.rb
new file mode 100644
index 000000000..33b87f9f6
--- /dev/null
+++ b/spec/controllers/settings/featured_tags_controller_spec.rb
@@ -0,0 +1,43 @@
+require 'rails_helper'
+
+describe Settings::FeaturedTagsController do
+  render_views
+
+  shared_examples 'authenticate user' do
+    it 'redirects to sign_in page' do
+      is_expected.to redirect_to new_user_session_path
+    end
+  end
+
+  describe 'POST #create' do
+    context 'when user is not sign in' do
+      subject { post :create }
+
+      it_behaves_like 'authenticate user'
+    end
+
+    context 'when user is sign in' do
+      subject { post :create, params: { featured_tag: params } }
+
+      let(:user) { Fabricate(:user, password: '12345678') }
+
+      before { sign_in user, scope: :user }
+
+      context 'when parameter is valid' do
+        let(:params) { { name: 'test' } }
+
+        it 'creates featured tag' do
+          expect { subject }.to change { user.account.featured_tags.count }.by(1)
+        end
+      end
+
+      context 'when parameter is invalid' do
+        let(:params) { { name: 'test, #foo !bleh' } }
+
+        it 'renders new' do
+          expect(subject).to render_template :index
+        end
+      end
+    end
+  end
+end
diff --git a/spec/features/log_in_spec.rb b/spec/features/log_in_spec.rb
index f6c26cd0f..b874c255b 100644
--- a/spec/features/log_in_spec.rb
+++ b/spec/features/log_in_spec.rb
@@ -1,7 +1,7 @@
 require "rails_helper"
 
 feature "Log in" do
-  given(:email)        { "test@examle.com" }
+  given(:email)        { "test@example.com" }
   given(:password)     { "password" }
   given(:confirmed_at) { Time.zone.now }
 
diff --git a/spec/lib/activitypub/activity/create_spec.rb b/spec/lib/activitypub/activity/create_spec.rb
index b709954a3..c4efb5cc9 100644
--- a/spec/lib/activitypub/activity/create_spec.rb
+++ b/spec/lib/activitypub/activity/create_spec.rb
@@ -378,6 +378,28 @@ RSpec.describe ActivityPub::Activity::Create do
         end
       end
 
+      context 'with hashtags invalid name' do
+        let(:object_json) do
+          {
+            id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
+            type: 'Note',
+            content: 'Lorem ipsum',
+            tag: [
+              {
+                type: 'Hashtag',
+                href: 'http://example.com/blah',
+                name: 'foo, #eh !',
+              },
+            ],
+          }
+        end
+
+        it 'creates status' do
+          status = sender.statuses.first
+          expect(status).to_not be_nil
+        end
+      end
+
       context 'with emojis' do
         let(:object_json) do
           {
diff --git a/spec/services/activitypub/fetch_remote_status_service_spec.rb b/spec/services/activitypub/fetch_remote_status_service_spec.rb
index 78dd59e3b..1ecc46952 100644
--- a/spec/services/activitypub/fetch_remote_status_service_spec.rb
+++ b/spec/services/activitypub/fetch_remote_status_service_spec.rb
@@ -104,6 +104,26 @@ RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do
       end
     end
 
+    context 'with Event object' do
+      let(:object) do
+        {
+          '@context': 'https://www.w3.org/ns/activitystreams',
+          id: "https://#{valid_domain}/@foo/1234",
+          type: 'Event',
+          name: "Let's change the world",
+          attributedTo: ActivityPub::TagManager.instance.uri_for(sender)
+        }
+      end
+
+      it 'creates status' do
+        status = sender.statuses.first
+
+        expect(status).to_not be_nil
+        expect(status.url).to eq "https://#{valid_domain}/@foo/1234"
+        expect(strip_tags(status.text)).to eq "Let's change the world https://#{valid_domain}/@foo/1234"
+      end
+    end
+
     context 'with wrong id' do
       let(:note) do
         {
diff --git a/spec/services/fetch_remote_account_service_spec.rb b/spec/services/fetch_remote_account_service_spec.rb
deleted file mode 100644
index ee7325be2..000000000
--- a/spec/services/fetch_remote_account_service_spec.rb
+++ /dev/null
@@ -1,50 +0,0 @@
-require 'rails_helper'
-
-RSpec.describe FetchRemoteAccountService, type: :service do
-  let(:url) { 'https://example.com/alice' }
-  let(:prefetched_body) { nil }
-  let(:protocol) { :ostatus }
-
-  subject { FetchRemoteAccountService.new.call(url, prefetched_body, protocol) }
-
-  let(:actor) do
-    {
-      '@context': 'https://www.w3.org/ns/activitystreams',
-      id: 'https://example.com/alice',
-      type: 'Person',
-      preferredUsername: 'alice',
-      name: 'Alice',
-      summary: 'Foo bar',
-      inbox: 'http://example.com/alice/inbox',
-    }
-  end
-
-  let(:webfinger) { { subject: 'acct:alice@example.com', links: [{ rel: 'self', href: 'https://example.com/alice' }] } }
-  let(:xml) { File.read(Rails.root.join('spec', 'fixtures', 'xml', 'mastodon.atom')) }
-
-  shared_examples 'return Account' do
-    it { is_expected.to be_an Account }
-  end
-
-  context 'protocol is :activitypub' do
-    let(:prefetched_body) { Oj.dump(actor) }
-    let(:protocol) { :activitypub }
-
-    before do
-      stub_request(:get, 'https://example.com/.well-known/webfinger?resource=acct:alice@example.com').to_return(body: Oj.dump(webfinger), headers: { 'Content-Type': 'application/jrd+json' })
-    end
-
-    include_examples 'return Account'
-  end
-
-  context 'when prefetched_body is nil' do
-    context 'protocol is :activitypub' do
-      before do
-        stub_request(:get, url).to_return(status: 200, body: Oj.dump(actor), headers: { 'Content-Type' => 'application/activity+json' })
-        stub_request(:get, 'https://example.com/.well-known/webfinger?resource=acct:alice@example.com').to_return(body: Oj.dump(webfinger), headers: { 'Content-Type': 'application/jrd+json' })
-      end
-
-      include_examples 'return Account'
-    end
-  end
-end
diff --git a/spec/services/fetch_remote_status_service_spec.rb b/spec/services/fetch_remote_status_service_spec.rb
index f9db024b9..1c4b4fee2 100644
--- a/spec/services/fetch_remote_status_service_spec.rb
+++ b/spec/services/fetch_remote_status_service_spec.rb
@@ -16,9 +16,8 @@ RSpec.describe FetchRemoteStatusService, type: :service do
   end
 
   context 'protocol is :activitypub' do
-    subject { described_class.new.call(note[:id], prefetched_body, protocol) }
+    subject { described_class.new.call(note[:id], prefetched_body) }
     let(:prefetched_body) { Oj.dump(note) }
-    let(:protocol) { :activitypub }
 
     before do
       account.update(uri: ActivityPub::TagManager.instance.uri_for(account))
@@ -59,7 +58,7 @@ RSpec.describe FetchRemoteStatusService, type: :service do
         </entry>
       XML
 
-      expect(subject.call('https://fake.domain/foo', status_body, :ostatus)).to be_nil
+      expect(subject.call('https://fake.domain/foo', status_body)).to be_nil
     end
 
     it 'does not create status with wrong id when id uses http format' do
@@ -81,7 +80,7 @@ RSpec.describe FetchRemoteStatusService, type: :service do
         </entry>
       XML
 
-      expect(subject.call('https://real.domain/statuses/456', status_body, :ostatus)).to be_nil
+      expect(subject.call('https://real.domain/statuses/456', status_body)).to be_nil
     end
   end
 end
diff --git a/spec/services/fetch_resource_service_spec.rb b/spec/services/fetch_resource_service_spec.rb
index f836147d3..3af6a0689 100644
--- a/spec/services/fetch_resource_service_spec.rb
+++ b/spec/services/fetch_resource_service_spec.rb
@@ -71,14 +71,14 @@ RSpec.describe FetchResourceService, type: :service do
         let(:content_type) { 'application/activity+json; charset=utf-8' }
         let(:body) { json }
 
-        it { is_expected.to eq [1, { prefetched_body: body, id: true }, :activitypub] }
+        it { is_expected.to eq [1, { prefetched_body: body, id: true }] }
       end
 
       context 'when content type is ld+json with profile' do
         let(:content_type) { 'application/ld+json; profile="https://www.w3.org/ns/activitystreams"' }
         let(:body) { json }
 
-        it { is_expected.to eq [1, { prefetched_body: body, id: true }, :activitypub] }
+        it { is_expected.to eq [1, { prefetched_body: body, id: true }] }
       end
 
       before do
@@ -89,14 +89,14 @@ RSpec.describe FetchResourceService, type: :service do
       context 'when link header is present' do
         let(:headers) { { 'Link' => '<http://example.com/foo>; rel="alternate"; type="application/activity+json"', } }
 
-        it { is_expected.to eq [1, { prefetched_body: json, id: true }, :activitypub] }
+        it { is_expected.to eq [1, { prefetched_body: json, id: true }] }
       end
 
       context 'when content type is text/html' do
         let(:content_type) { 'text/html' }
         let(:body) { '<html><head><link rel="alternate" href="http://example.com/foo" type="application/activity+json"/></head></html>' }
 
-        it { is_expected.to eq [1, { prefetched_body: json, id: true }, :activitypub] }
+        it { is_expected.to eq [1, { prefetched_body: json, id: true }] }
       end
     end
   end
diff --git a/yarn.lock b/yarn.lock
index 1a3a598be..6717898ed 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -157,6 +157,18 @@
     "@babel/types" "^7.7.4"
     lodash "^4.17.13"
 
+"@babel/helper-module-transforms@^7.7.5":
+  version "7.7.5"
+  resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.7.5.tgz#d044da7ffd91ec967db25cd6748f704b6b244835"
+  integrity sha512-A7pSxyJf1gN5qXVcidwLWydjftUN878VkalhXX5iQDuGyiGK3sOrrKKHF4/A4fwHtnsotv/NipwAeLzY4KQPvw==
+  dependencies:
+    "@babel/helper-module-imports" "^7.7.4"
+    "@babel/helper-simple-access" "^7.7.4"
+    "@babel/helper-split-export-declaration" "^7.7.4"
+    "@babel/template" "^7.7.4"
+    "@babel/types" "^7.7.4"
+    lodash "^4.17.13"
+
 "@babel/helper-optimise-call-expression@^7.7.4":
   version "7.7.4"
   resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.7.4.tgz#034af31370d2995242aa4df402c3b7794b2dcdf2"
@@ -478,21 +490,21 @@
   dependencies:
     "@babel/helper-plugin-utils" "^7.0.0"
 
-"@babel/plugin-transform-modules-amd@^7.7.4":
-  version "7.7.4"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.7.4.tgz#276b3845ca2b228f2995e453adc2e6f54d72fb71"
-  integrity sha512-/542/5LNA18YDtg1F+QHvvUSlxdvjZoD/aldQwkq+E3WCkbEjNSN9zdrOXaSlfg3IfGi22ijzecklF/A7kVZFQ==
+"@babel/plugin-transform-modules-amd@^7.7.5":
+  version "7.7.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.7.5.tgz#39e0fb717224b59475b306402bb8eedab01e729c"
+  integrity sha512-CT57FG4A2ZUNU1v+HdvDSDrjNWBrtCmSH6YbbgN3Lrf0Di/q/lWRxZrE72p3+HCCz9UjfZOEBdphgC0nzOS6DQ==
   dependencies:
-    "@babel/helper-module-transforms" "^7.7.4"
+    "@babel/helper-module-transforms" "^7.7.5"
     "@babel/helper-plugin-utils" "^7.0.0"
     babel-plugin-dynamic-import-node "^2.3.0"
 
-"@babel/plugin-transform-modules-commonjs@^7.7.4":
-  version "7.7.4"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.4.tgz#bee4386e550446343dd52a571eda47851ff857a3"
-  integrity sha512-k8iVS7Jhc367IcNF53KCwIXtKAH7czev866ThsTgy8CwlXjnKZna2VHwChglzLleYrcHz1eQEIJlGRQxB53nqA==
+"@babel/plugin-transform-modules-commonjs@^7.7.5":
+  version "7.7.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.5.tgz#1d27f5eb0bcf7543e774950e5b2fa782e637b345"
+  integrity sha512-9Cq4zTFExwFhQI6MT1aFxgqhIsMWQWDVwOgLzl7PTWJHsNaqFvklAU+Oz6AQLAS0dJKTwZSOCo20INwktxpi3Q==
   dependencies:
-    "@babel/helper-module-transforms" "^7.7.4"
+    "@babel/helper-module-transforms" "^7.7.5"
     "@babel/helper-plugin-utils" "^7.0.0"
     "@babel/helper-simple-access" "^7.7.4"
     babel-plugin-dynamic-import-node "^2.3.0"
@@ -592,10 +604,10 @@
     "@babel/helper-plugin-utils" "^7.0.0"
     "@babel/plugin-syntax-jsx" "^7.7.4"
 
-"@babel/plugin-transform-regenerator@^7.7.4":
-  version "7.7.4"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.7.4.tgz#d18eac0312a70152d7d914cbed2dc3999601cfc0"
-  integrity sha512-e7MWl5UJvmPEwFJTwkBlPmqixCtr9yAASBqff4ggXTNicZiwbF8Eefzm6NVgfiBp7JdAGItecnctKTgH44q2Jw==
+"@babel/plugin-transform-regenerator@^7.7.5":
+  version "7.7.5"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.7.5.tgz#3a8757ee1a2780f390e89f246065ecf59c26fce9"
+  integrity sha512-/8I8tPvX2FkuEyWbjRCt4qTAgZK0DVy8QRguhA524UH48RfGJy94On2ri+dCuwOpcerPRl9O4ebQkRcVzIaGBw==
   dependencies:
     regenerator-transform "^0.14.0"
 
@@ -661,10 +673,10 @@
     "@babel/helper-create-regexp-features-plugin" "^7.7.4"
     "@babel/helper-plugin-utils" "^7.0.0"
 
-"@babel/preset-env@^7.7.4":
-  version "7.7.4"
-  resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.7.4.tgz#ccaf309ae8d1ee2409c85a4e2b5e280ceee830f8"
-  integrity sha512-Dg+ciGJjwvC1NIe/DGblMbcGq1HOtKbw8RLl4nIjlfcILKEOkWT/vRqPpumswABEBVudii6dnVwrBtzD7ibm4g==
+"@babel/preset-env@^7.7.6":
+  version "7.7.6"
+  resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.7.6.tgz#39ac600427bbb94eec6b27953f1dfa1d64d457b2"
+  integrity sha512-k5hO17iF/Q7tR9Jv8PdNBZWYW6RofxhnxKjBMc0nG4JTaWvOTiPoO/RLFwAKcA4FpmuBFm6jkoqaRJLGi0zdaQ==
   dependencies:
     "@babel/helper-module-imports" "^7.7.4"
     "@babel/helper-plugin-utils" "^7.0.0"
@@ -694,8 +706,8 @@
     "@babel/plugin-transform-function-name" "^7.7.4"
     "@babel/plugin-transform-literals" "^7.7.4"
     "@babel/plugin-transform-member-expression-literals" "^7.7.4"
-    "@babel/plugin-transform-modules-amd" "^7.7.4"
-    "@babel/plugin-transform-modules-commonjs" "^7.7.4"
+    "@babel/plugin-transform-modules-amd" "^7.7.5"
+    "@babel/plugin-transform-modules-commonjs" "^7.7.5"
     "@babel/plugin-transform-modules-systemjs" "^7.7.4"
     "@babel/plugin-transform-modules-umd" "^7.7.4"
     "@babel/plugin-transform-named-capturing-groups-regex" "^7.7.4"
@@ -703,7 +715,7 @@
     "@babel/plugin-transform-object-super" "^7.7.4"
     "@babel/plugin-transform-parameters" "^7.7.4"
     "@babel/plugin-transform-property-literals" "^7.7.4"
-    "@babel/plugin-transform-regenerator" "^7.7.4"
+    "@babel/plugin-transform-regenerator" "^7.7.5"
     "@babel/plugin-transform-reserved-words" "^7.7.4"
     "@babel/plugin-transform-shorthand-properties" "^7.7.4"
     "@babel/plugin-transform-spread" "^7.7.4"
@@ -713,7 +725,7 @@
     "@babel/plugin-transform-unicode-regex" "^7.7.4"
     "@babel/types" "^7.7.4"
     browserslist "^4.6.0"
-    core-js-compat "^3.1.1"
+    core-js-compat "^3.4.7"
     invariant "^2.2.2"
     js-levenshtein "^1.1.3"
     semver "^5.5.0"
@@ -1592,13 +1604,13 @@ array-flatten@^2.1.0:
   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"
-  integrity sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=
+array-includes@^3.0.3, array-includes@^3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.0.tgz#48a929ef4c6bb1fa6dc4a92c9b023a261b0ca404"
+  integrity sha512-ONOEQoKrvXPKk7Su92Co0YMqYO32FfqJTzkKU9u2UpIXyYZIzLSvpdg4AwvSw4mSUW0czu6inK+zby6Oj6gDjQ==
   dependencies:
-    define-properties "^1.1.2"
-    es-abstract "^1.7.0"
+    define-properties "^1.1.3"
+    es-abstract "^1.17.0-next.0"
 
 array-union@^1.0.1:
   version "1.0.2"
@@ -2142,14 +2154,14 @@ browserify-zlib@^0.2.0:
   dependencies:
     pako "~1.0.5"
 
-browserslist@^4.0.0, browserslist@^4.6.0, browserslist@^4.8.0:
-  version "4.8.0"
-  resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.8.0.tgz#6f06b0f974a7cc3a84babc2ccc56493668e3c789"
-  integrity sha512-HYnxc/oLRWvJ3TsGegR0SRL/UDnknGq2s/a8dYYEO+kOQ9m9apKoS5oiathLKZdh/e9uE+/J3j92qPlGD/vTqA==
+browserslist@^4.0.0, browserslist@^4.6.0, browserslist@^4.8.0, browserslist@^4.8.2:
+  version "4.8.2"
+  resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.8.2.tgz#b45720ad5fbc8713b7253c20766f701c9a694289"
+  integrity sha512-+M4oeaTplPm/f1pXDw84YohEv7B1i/2Aisei8s4s6k3QsoSHa7i5sz8u/cGQkkatCPxMASKxPualR4wwYgVboA==
   dependencies:
-    caniuse-lite "^1.0.30001012"
-    electron-to-chromium "^1.3.317"
-    node-releases "^1.1.41"
+    caniuse-lite "^1.0.30001015"
+    electron-to-chromium "^1.3.322"
+    node-releases "^1.1.42"
 
 bser@^2.0.0:
   version "2.0.0"
@@ -2207,26 +2219,6 @@ bytes@3.1.0:
   resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
   integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
 
-cacache@^11.2.0:
-  version "11.3.3"
-  resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.3.tgz#8bd29df8c6a718a6ebd2d010da4d7972ae3bbadc"
-  integrity sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==
-  dependencies:
-    bluebird "^3.5.5"
-    chownr "^1.1.1"
-    figgy-pudding "^3.5.1"
-    glob "^7.1.4"
-    graceful-fs "^4.1.15"
-    lru-cache "^5.1.1"
-    mississippi "^3.0.0"
-    mkdirp "^0.5.1"
-    move-concurrently "^1.0.1"
-    promise-inflight "^1.0.1"
-    rimraf "^2.6.3"
-    ssri "^6.0.1"
-    unique-filename "^1.1.1"
-    y18n "^4.0.0"
-
 cacache@^12.0.2, cacache@^12.0.3:
   version "12.0.3"
   resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz#be99abba4e1bf5df461cd5a2c1071fc432573390"
@@ -2343,6 +2335,11 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001012:
   resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001013.tgz#da2440d4d266a17d40eb79bd19c0c8cc1d029c72"
   integrity sha512-hOAXaWKuq/UVFgYawxIOdPdyMQdYcwOCDOjnZcKn7wCgFUrhP7smuNZjGLuJlPSgE6aRA4cRJ+bGSrhtEt7ZAg==
 
+caniuse-lite@^1.0.30001015:
+  version "1.0.30001016"
+  resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001016.tgz#16ea48d7d6e8caf3cad3295c2d746fe38c4e7f66"
+  integrity sha512-yYQ2QfotceRiH4U+h1Us86WJXtVHDmy3nEKIdYPsZCYnOV5/tMgGbmoIlrMzmh2VXlproqYtVaKeGDBkMZifFA==
+
 capture-exit@^1.2.0:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-1.2.0.tgz#1c5fcc489fd0ab00d4f1ac7ae1072e3173fbab6f"
@@ -2642,16 +2639,16 @@ compressible@~2.0.16:
   dependencies:
     mime-db ">= 1.40.0 < 2"
 
-compression-webpack-plugin@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/compression-webpack-plugin/-/compression-webpack-plugin-3.0.0.tgz#097d2e4d95c3a14cb5c8ed20899009ab5b9bbca0"
-  integrity sha512-ls+oKw4eRbvaSv/hj9NmctihhBcR26j76JxV0bLRLcWhrUBdQFgd06z/Kgg7exyQvtWWP484wZxs0gIUX3NO0Q==
+compression-webpack-plugin@^3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/compression-webpack-plugin/-/compression-webpack-plugin-3.0.1.tgz#be7a343e6dfbccbd64a77c5fbe29627d140fc321"
+  integrity sha512-FOwoBVzDiwSdJDnZTKXDpAjJU90k8SbChgxnoiYwTo15xjIDJkSC8wFKuc13DymXjgasPEqzS5+2RUgSKXdKKA==
   dependencies:
-    cacache "^11.2.0"
+    cacache "^13.0.1"
     find-cache-dir "^3.0.0"
     neo-async "^2.5.0"
-    schema-utils "^1.0.0"
-    serialize-javascript "^1.4.0"
+    schema-utils "^2.6.1"
+    serialize-javascript "^2.1.2"
     webpack-sources "^1.0.1"
 
 compression@^1.7.4:
@@ -2755,10 +2752,10 @@ copy-descriptor@^0.1.0:
   resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
   integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
 
-copy-webpack-plugin@^5.0.5:
-  version "5.0.5"
-  resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-5.0.5.tgz#731df6a837a2ef0f8f8e2345bdfe9b7c62a2da68"
-  integrity sha512-7N68eIoQTyudAuxkfPT7HzGoQ+TsmArN/I3HFwG+lVE3FNzqvZKIiaxtYh4o3BIznioxUvx9j26+Rtsc9htQUQ==
+copy-webpack-plugin@^5.1.1:
+  version "5.1.1"
+  resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-5.1.1.tgz#5481a03dea1123d88a988c6ff8b78247214f0b88"
+  integrity sha512-P15M5ZC8dyCjQHWwd4Ia/dm0SgVvZJMYeykVIVYXbGyqO4dWB5oyPHp9i7wjwo5LhtlhKbiBCdS2NvM07Wlybg==
   dependencies:
     cacache "^12.0.3"
     find-cache-dir "^2.1.0"
@@ -2770,22 +2767,16 @@ copy-webpack-plugin@^5.0.5:
     normalize-path "^3.0.0"
     p-limit "^2.2.1"
     schema-utils "^1.0.0"
-    serialize-javascript "^2.1.0"
+    serialize-javascript "^2.1.2"
     webpack-log "^2.0.0"
 
-core-js-compat@^3.1.1:
-  version "3.1.3"
-  resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.1.3.tgz#0cc3ba4c7f62928c2837e1cffbe8dc78b4f1ae14"
-  integrity sha512-EP018pVhgwsKHz3YoN1hTq49aRe+h017Kjz0NQz3nXV0cCRMvH3fLQl+vEPGr4r4J5sk4sU3tUC7U1aqTCeJeA==
+core-js-compat@^3.4.7:
+  version "3.5.0"
+  resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.5.0.tgz#5a11a619a9e9dd2dcf1c742b2060bc4a2143e5b6"
+  integrity sha512-E7iJB72svRjJTnm9HDvujzNVMCm3ZcDYEedkJ/sDTNsy/0yooCd9Cg7GSzE7b4e0LfIkjijdB1tqg0pGwxWeWg==
   dependencies:
-    browserslist "^4.6.0"
-    core-js-pure "3.1.3"
-    semver "^6.1.0"
-
-core-js-pure@3.1.3:
-  version "3.1.3"
-  resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.1.3.tgz#4c90752d5b9471f641514f3728f51c1e0783d0b5"
-  integrity sha512-k3JWTrcQBKqjkjI0bkfXS0lbpWPxYuHWfMMjC1VDmzU4Q58IwSbuXSo99YO/hUHlw/EB4AlfA2PVxOGkrIq6dA==
+    browserslist "^4.8.2"
+    semver "^6.3.0"
 
 core-js@^1.0.0:
   version "1.2.7"
@@ -2953,23 +2944,23 @@ css-list-helpers@^1.0.1:
   dependencies:
     tcomb "^2.5.0"
 
-css-loader@^3.2.0:
-  version "3.2.0"
-  resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.2.0.tgz#bb570d89c194f763627fcf1f80059c6832d009b2"
-  integrity sha512-QTF3Ud5H7DaZotgdcJjGMvyDj5F3Pn1j/sC6VBEOVp94cbwqyIBdcs/quzj4MC1BKQSrTpQznegH/5giYbhnCQ==
+css-loader@^3.3.2:
+  version "3.3.2"
+  resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.3.2.tgz#41b2086528aa4fbf8c0692e874bc14f081129b21"
+  integrity sha512-4XSiURS+YEK2fQhmSaM1onnUm0VKWNf6WWBYjkp9YbSDGCBTVZ5XOM6Gkxo8tLgQlzkZOBJvk9trHlDk4gjEYg==
   dependencies:
     camelcase "^5.3.1"
     cssesc "^3.0.0"
     icss-utils "^4.1.1"
     loader-utils "^1.2.3"
     normalize-path "^3.0.0"
-    postcss "^7.0.17"
+    postcss "^7.0.23"
     postcss-modules-extract-imports "^2.0.0"
     postcss-modules-local-by-default "^3.0.2"
-    postcss-modules-scope "^2.1.0"
+    postcss-modules-scope "^2.1.1"
     postcss-modules-values "^3.0.0"
-    postcss-value-parser "^4.0.0"
-    schema-utils "^2.0.0"
+    postcss-value-parser "^4.0.2"
+    schema-utils "^2.6.0"
 
 css-select-base-adapter@~0.1.0:
   version "0.1.1"
@@ -3524,10 +3515,10 @@ ejs@^2.3.4, ejs@^2.6.1:
   resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.1.tgz#5b5ab57f718b79d4aca9254457afecd36fa80228"
   integrity sha512-kS/gEPzZs3Y1rRsbGX4UOSjtP/CeJP0CxSNZHYxGfVM/VgLcv0ZqM7C45YyTj2DI2g7+P9Dd24C+IMIg6D0nYQ==
 
-electron-to-chromium@^1.3.317:
-  version "1.3.321"
-  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.321.tgz#913869f5ec85daabba0e75c9c314b4bf26cdb01e"
-  integrity sha512-jJy/BZK2s2eAjMPXVMSaCmo7/pSY2aKkfQ+LoAb5Wk39qAhyP9r8KU74c4qTgr9cD/lPUhJgReZxxqU0n5puog==
+electron-to-chromium@^1.3.322:
+  version "1.3.322"
+  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.322.tgz#a6f7e1c79025c2b05838e8e344f6e89eb83213a8"
+  integrity sha512-Tc8JQEfGQ1MzfSzI/bTlSr7btJv/FFO7Yh6tanqVmIWOuNCu6/D1MilIEgLtmWqIrsv+o4IjpLAhgMBr/ncNAA==
 
 elliptic@^6.0.0:
   version "6.5.1"
@@ -3670,7 +3661,7 @@ error-ex@^1.2.0, error-ex@^1.3.1:
   dependencies:
     is-arrayish "^0.2.1"
 
-es-abstract@^1.10.0, es-abstract@^1.12.0, es-abstract@^1.13.0, es-abstract@^1.15.0, es-abstract@^1.5.0, es-abstract@^1.5.1, es-abstract@^1.7.0:
+es-abstract@^1.10.0, es-abstract@^1.12.0, es-abstract@^1.13.0, es-abstract@^1.15.0, es-abstract@^1.5.0, es-abstract@^1.5.1:
   version "1.16.2"
   resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.16.2.tgz#4e874331645e9925edef141e74fc4bd144669d34"
   integrity sha512-jYo/J8XU2emLXl3OLwfwtuFfuF2w6DYPs+xy9ZfVyPkDcrauu6LYrw/q2TyCtrbc/KUdCiC5e9UajRhgNkVopA==
@@ -3686,6 +3677,23 @@ es-abstract@^1.10.0, es-abstract@^1.12.0, es-abstract@^1.13.0, es-abstract@^1.15
     string.prototype.trimleft "^2.1.0"
     string.prototype.trimright "^2.1.0"
 
+es-abstract@^1.17.0-next.0:
+  version "1.17.0-next.1"
+  resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.0-next.1.tgz#94acc93e20b05a6e96dacb5ab2f1cb3a81fc2172"
+  integrity sha512-7MmGr03N7Rnuid6+wyhD9sHNE2n4tFSwExnU2lQl3lIo2ShXWGePY80zYaoMOmILWv57H0amMjZGHNzzGG70Rw==
+  dependencies:
+    es-to-primitive "^1.2.1"
+    function-bind "^1.1.1"
+    has "^1.0.3"
+    has-symbols "^1.0.1"
+    is-callable "^1.1.4"
+    is-regex "^1.0.4"
+    object-inspect "^1.7.0"
+    object-keys "^1.1.1"
+    object.assign "^4.1.0"
+    string.prototype.trimleft "^2.1.0"
+    string.prototype.trimright "^2.1.0"
+
 es-to-primitive@^1.2.1:
   version "1.2.1"
   resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a"
@@ -3815,10 +3823,10 @@ eslint-plugin-eslint-plugin@^2.1.0:
   resolved "https://registry.yarnpkg.com/eslint-plugin-eslint-plugin/-/eslint-plugin-eslint-plugin-2.1.0.tgz#a7a00f15a886957d855feacaafee264f039e62d5"
   integrity sha512-kT3A/ZJftt28gbl/Cv04qezb/NQ1dwYIbi8lyf806XMxkus7DvOVCLIfTXMrorp322Pnoez7+zabXH29tADIDg==
 
-eslint-plugin-import@~2.19.0:
-  version "2.19.0"
-  resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.19.0.tgz#560ddc8236b4e68df57a95c5ba33bcf23300c780"
-  integrity sha512-J13f9Slu7BCZq1N2NnWmK7tci/Y1SWWHUaj0J+I1NpzUm8l/Gwnz6KO+JMbM4TcnxU8O/DJ4psa6eZrmNREsOg==
+eslint-plugin-import@~2.19.1:
+  version "2.19.1"
+  resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.19.1.tgz#5654e10b7839d064dd0d46cd1b88ec2133a11448"
+  integrity sha512-x68131aKoCZlCae7rDXKSAQmbT5DQuManyXo2sK6fJJ0aK5CWAkv6A6HJZGgqC8IhjQxYPgo6/IY4Oz8AFsbBw==
   dependencies:
     array-includes "^3.0.3"
     array.prototype.flat "^1.2.1"
@@ -7134,10 +7142,10 @@ node-pre-gyp@^0.12.0:
     semver "^5.3.0"
     tar "^4"
 
-node-releases@^1.1.41:
-  version "1.1.41"
-  resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.41.tgz#57674a82a37f812d18e3b26118aefaf53a00afed"
-  integrity sha512-+IctMa7wIs8Cfsa8iYzeaLTFwv5Y4r5jZud+4AnfymzeEXKBCavFX0KBgzVaPVqf0ywa6PrO8/b+bPqdwjGBSg==
+node-releases@^1.1.42:
+  version "1.1.42"
+  resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.42.tgz#a999f6a62f8746981f6da90627a8d2fc090bbad7"
+  integrity sha512-OQ/ESmUqGawI2PRX+XIRao44qWYBBfN54ImQYdWVTQqUckuejOg76ysSqDBK8NG3zwySRVnX36JwDQ6x+9GxzA==
   dependencies:
     semver "^6.3.0"
 
@@ -8058,10 +8066,10 @@ postcss-modules-local-by-default@^3.0.2:
     postcss-selector-parser "^6.0.2"
     postcss-value-parser "^4.0.0"
 
-postcss-modules-scope@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.1.0.tgz#ad3f5bf7856114f6fcab901b0502e2a2bc39d4eb"
-  integrity sha512-91Rjps0JnmtUB0cujlc8KIKCsJXWjzuxGeT/+Q2i2HXKZ7nBUeF9YQTZZTNvHVoNYj1AthsjnGLtqDUE0Op79A==
+postcss-modules-scope@^2.1.1:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.1.1.tgz#33d4fc946602eb5e9355c4165d68a10727689dba"
+  integrity sha512-OXRUPecnHCg8b9xWvldG/jUpRIGPNRka0r4D4j0ESUU2/5IOnpsjfPPmDprM3Ih8CgZ8FXjWqaniK5v4rWt3oQ==
   dependencies:
     postcss "^7.0.6"
     postcss-selector-parser "^6.0.0"
@@ -8259,7 +8267,7 @@ postcss@^5.0.16:
     source-map "^0.5.6"
     supports-color "^3.2.3"
 
-postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.17, postcss@^7.0.23, postcss@^7.0.5, postcss@^7.0.6:
+postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.23, postcss@^7.0.5, postcss@^7.0.6:
   version "7.0.23"
   resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.23.tgz#9f9759fad661b15964f3cfc3140f66f1e05eadc1"
   integrity sha512-hOlMf3ouRIFXD+j2VJecwssTwbvsPGJVMzupptg+85WA+i7MwyrydmQAgY3R+m0Bc0exunhbJmijy8u8+vufuQ==
@@ -8636,12 +8644,7 @@ react-intl@^2.9.0:
     intl-relativeformat "^2.1.0"
     invariant "^2.1.1"
 
-react-is@^16.10.2, react-is@^16.3.2, react-is@^16.7.0, react-is@^16.8.4, react-is@^16.8.6, react-is@^16.9.0:
-  version "16.11.0"
-  resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.11.0.tgz#b85dfecd48ad1ce469ff558a882ca8e8313928fa"
-  integrity sha512-gbBVYR2p8mnriqAwWx9LbuUrShnAuSCNnuPGyc7GJrMVQtPDAh8iLpv7FRuMPFb56KkaVZIYSz1PrjI9q0QPCw==
-
-react-is@^16.8.1:
+react-is@^16.10.2, react-is@^16.3.2, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.4, react-is@^16.8.6, react-is@^16.9.0:
   version "16.12.0"
   resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.12.0.tgz#2cc0fe0fba742d97fd527c42a13bec4eeb06241c"
   integrity sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q==
@@ -8696,10 +8699,10 @@ react-redux-loading-bar@^4.0.8:
     prop-types "^15.6.2"
     react-lifecycles-compat "^3.0.2"
 
-react-redux@^7.1.1:
-  version "7.1.1"
-  resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.1.1.tgz#ce6eee1b734a7a76e0788b3309bf78ff6b34fa0a"
-  integrity sha512-QsW0vcmVVdNQzEkrgzh2W3Ksvr8cqpAv5FhEk7tNEft+5pp7rXxAudTz3VOPawRkLIepItpkEIyLcN/VVXzjTg==
+react-redux@^7.1.3:
+  version "7.1.3"
+  resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.1.3.tgz#717a3d7bbe3a1b2d535c94885ce04cdc5a33fc79"
+  integrity sha512-uI1wca+ECG9RoVkWQFF4jDMqmaw0/qnvaSvOoL/GA4dNxf6LoV8sUAcNDvE5NWKs4hFpn0t6wswNQnY3f7HT3w==
   dependencies:
     "@babel/runtime" "^7.5.5"
     hoist-non-react-statics "^3.3.0"
@@ -9429,7 +9432,7 @@ schema-utils@^1.0.0:
     ajv-errors "^1.0.0"
     ajv-keywords "^3.1.0"
 
-schema-utils@^2.0.0, schema-utils@^2.1.0, schema-utils@^2.6.1:
+schema-utils@^2.0.0, schema-utils@^2.1.0, schema-utils@^2.6.0, schema-utils@^2.6.1:
   version "2.6.1"
   resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.1.tgz#eb78f0b945c7bcfa2082b3565e8db3548011dc4f"
   integrity sha512-0WXHDs1VDJyo+Zqs9TKLKyD/h7yDpHUhEFsM2CzkICFdoX1av+GBq/J2xRTFfsQO5kBfhZzANf2VcIm84jqDbg==
@@ -9467,7 +9470,7 @@ semver@4.3.2:
   resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.2.tgz#c7a07158a80bedd052355b770d82d6640f803be7"
   integrity sha1-x6BxWKgL7dBSNVt3DYLWZA+AO+c=
 
-semver@^6.0.0, semver@^6.1.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0:
+semver@^6.0.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0:
   version "6.3.0"
   resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
   integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
@@ -9491,15 +9494,15 @@ send@0.17.1:
     range-parser "~1.2.1"
     statuses "~1.5.0"
 
-serialize-javascript@^1.4.0, serialize-javascript@^1.7.0:
+serialize-javascript@^1.7.0:
   version "1.9.1"
   resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.9.1.tgz#cfc200aef77b600c47da9bb8149c943e798c2fdb"
   integrity sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==
 
-serialize-javascript@^2.1.0, serialize-javascript@^2.1.1:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.1.tgz#952907a04a3e3a75af7f73d92d15e233862048b2"
-  integrity sha512-MPLPRpD4FNqWq9tTIjYG5LesFouDhdyH0EPY3gVK4DRD5+g4aDqdNSzLIwceulo3Yj+PL1bPh6laE5+H6LTcrQ==
+serialize-javascript@^2.1.1, serialize-javascript@^2.1.2:
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61"
+  integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==
 
 serve-index@^1.9.1:
   version "1.9.1"