diff --git a/priv/static/index.html b/priv/static/index.html
index 279deb8b6..ef7be091b 100644
--- a/priv/static/index.html
+++ b/priv/static/index.html
@@ -1 +1 @@
-
Pleroma
\ No newline at end of file
+Pleroma
\ No newline at end of file
diff --git a/priv/static/static/css/2.0778a6a864a1307a6c41.css b/priv/static/static/css/2.0778a6a864a1307a6c41.css
new file mode 100644
index 000000000..a33585ef1
Binary files /dev/null and b/priv/static/static/css/2.0778a6a864a1307a6c41.css differ
diff --git a/priv/static/static/css/2.0778a6a864a1307a6c41.css.map b/priv/static/static/css/2.0778a6a864a1307a6c41.css.map
new file mode 100644
index 000000000..28cd8ba54
--- /dev/null
+++ b/priv/static/static/css/2.0778a6a864a1307a6c41.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["webpack:///./src/hocs/with_subscription/with_subscription.scss"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,C","file":"static/css/2.0778a6a864a1307a6c41.css","sourcesContent":[".with-subscription-loading {\n padding: 10px;\n text-align: center;\n}\n.with-subscription-loading .error {\n font-size: 14px;\n}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/priv/static/static/css/3.b2603a50868c68a1c192.css b/priv/static/static/css/3.b2603a50868c68a1c192.css
new file mode 100644
index 000000000..4cec5785b
Binary files /dev/null and b/priv/static/static/css/3.b2603a50868c68a1c192.css differ
diff --git a/priv/static/static/css/3.b2603a50868c68a1c192.css.map b/priv/static/static/css/3.b2603a50868c68a1c192.css.map
new file mode 100644
index 000000000..805e7dc04
--- /dev/null
+++ b/priv/static/static/css/3.b2603a50868c68a1c192.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["webpack:///./node_modules/cropperjs/dist/cropper.css"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wCAAwC;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA","file":"static/css/3.b2603a50868c68a1c192.css","sourcesContent":["/*!\n * Cropper.js v1.4.3\n * https://fengyuanchen.github.io/cropperjs\n *\n * Copyright 2015-present Chen Fengyuan\n * Released under the MIT license\n *\n * Date: 2018-10-24T13:07:11.429Z\n */\n\n.cropper-container {\n direction: ltr;\n font-size: 0;\n line-height: 0;\n position: relative;\n -ms-touch-action: none;\n touch-action: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.cropper-container img {\n display: block;\n height: 100%;\n image-orientation: 0deg;\n max-height: none !important;\n max-width: none !important;\n min-height: 0 !important;\n min-width: 0 !important;\n width: 100%;\n}\n\n.cropper-wrap-box,\n.cropper-canvas,\n.cropper-drag-box,\n.cropper-crop-box,\n.cropper-modal {\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.cropper-wrap-box,\n.cropper-canvas {\n overflow: hidden;\n}\n\n.cropper-drag-box {\n background-color: #fff;\n opacity: 0;\n}\n\n.cropper-modal {\n background-color: #000;\n opacity: .5;\n}\n\n.cropper-view-box {\n display: block;\n height: 100%;\n outline-color: rgba(51, 153, 255, 0.75);\n outline: 1px solid #39f;\n overflow: hidden;\n width: 100%;\n}\n\n.cropper-dashed {\n border: 0 dashed #eee;\n display: block;\n opacity: .5;\n position: absolute;\n}\n\n.cropper-dashed.dashed-h {\n border-bottom-width: 1px;\n border-top-width: 1px;\n height: calc(100% / 3);\n left: 0;\n top: calc(100% / 3);\n width: 100%;\n}\n\n.cropper-dashed.dashed-v {\n border-left-width: 1px;\n border-right-width: 1px;\n height: 100%;\n left: calc(100% / 3);\n top: 0;\n width: calc(100% / 3);\n}\n\n.cropper-center {\n display: block;\n height: 0;\n left: 50%;\n opacity: .75;\n position: absolute;\n top: 50%;\n width: 0;\n}\n\n.cropper-center:before,\n.cropper-center:after {\n background-color: #eee;\n content: ' ';\n display: block;\n position: absolute;\n}\n\n.cropper-center:before {\n height: 1px;\n left: -3px;\n top: 0;\n width: 7px;\n}\n\n.cropper-center:after {\n height: 7px;\n left: 0;\n top: -3px;\n width: 1px;\n}\n\n.cropper-face,\n.cropper-line,\n.cropper-point {\n display: block;\n height: 100%;\n opacity: .1;\n position: absolute;\n width: 100%;\n}\n\n.cropper-face {\n background-color: #fff;\n left: 0;\n top: 0;\n}\n\n.cropper-line {\n background-color: #39f;\n}\n\n.cropper-line.line-e {\n cursor: ew-resize;\n right: -3px;\n top: 0;\n width: 5px;\n}\n\n.cropper-line.line-n {\n cursor: ns-resize;\n height: 5px;\n left: 0;\n top: -3px;\n}\n\n.cropper-line.line-w {\n cursor: ew-resize;\n left: -3px;\n top: 0;\n width: 5px;\n}\n\n.cropper-line.line-s {\n bottom: -3px;\n cursor: ns-resize;\n height: 5px;\n left: 0;\n}\n\n.cropper-point {\n background-color: #39f;\n height: 5px;\n opacity: .75;\n width: 5px;\n}\n\n.cropper-point.point-e {\n cursor: ew-resize;\n margin-top: -3px;\n right: -3px;\n top: 50%;\n}\n\n.cropper-point.point-n {\n cursor: ns-resize;\n left: 50%;\n margin-left: -3px;\n top: -3px;\n}\n\n.cropper-point.point-w {\n cursor: ew-resize;\n left: -3px;\n margin-top: -3px;\n top: 50%;\n}\n\n.cropper-point.point-s {\n bottom: -3px;\n cursor: s-resize;\n left: 50%;\n margin-left: -3px;\n}\n\n.cropper-point.point-ne {\n cursor: nesw-resize;\n right: -3px;\n top: -3px;\n}\n\n.cropper-point.point-nw {\n cursor: nwse-resize;\n left: -3px;\n top: -3px;\n}\n\n.cropper-point.point-sw {\n bottom: -3px;\n cursor: nesw-resize;\n left: -3px;\n}\n\n.cropper-point.point-se {\n bottom: -3px;\n cursor: nwse-resize;\n height: 20px;\n opacity: 1;\n right: -3px;\n width: 20px;\n}\n\n@media (min-width: 768px) {\n .cropper-point.point-se {\n height: 15px;\n width: 15px;\n }\n}\n\n@media (min-width: 992px) {\n .cropper-point.point-se {\n height: 10px;\n width: 10px;\n }\n}\n\n@media (min-width: 1200px) {\n .cropper-point.point-se {\n height: 5px;\n opacity: .75;\n width: 5px;\n }\n}\n\n.cropper-point.point-se:before {\n background-color: #39f;\n bottom: -50%;\n content: ' ';\n display: block;\n height: 200%;\n opacity: 0;\n position: absolute;\n right: -50%;\n width: 200%;\n}\n\n.cropper-invisible {\n opacity: 0;\n}\n\n.cropper-bg {\n background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC');\n}\n\n.cropper-hide {\n display: block;\n height: 0;\n position: absolute;\n width: 0;\n}\n\n.cropper-hidden {\n display: none !important;\n}\n\n.cropper-move {\n cursor: move;\n}\n\n.cropper-crop {\n cursor: crosshair;\n}\n\n.cropper-disabled .cropper-drag-box,\n.cropper-disabled .cropper-face,\n.cropper-disabled .cropper-line,\n.cropper-disabled .cropper-point {\n cursor: not-allowed;\n}\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/priv/static/static/css/app.493b9b5acee37ba97824.css b/priv/static/static/css/app.493b9b5acee37ba97824.css
new file mode 100644
index 000000000..f30033af6
Binary files /dev/null and b/priv/static/static/css/app.493b9b5acee37ba97824.css differ
diff --git a/priv/static/static/css/app.493b9b5acee37ba97824.css.map b/priv/static/static/css/app.493b9b5acee37ba97824.css.map
new file mode 100644
index 000000000..91399d605
--- /dev/null
+++ b/priv/static/static/css/app.493b9b5acee37ba97824.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["webpack:///./src/components/tab_switcher/tab_switcher.scss","webpack:///./src/hocs/with_load_more/with_load_more.scss"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;ACtOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C","file":"static/css/app.493b9b5acee37ba97824.css","sourcesContent":[".tab-switcher {\n display: -ms-flexbox;\n display: flex;\n}\n.tab-switcher .tab-icon {\n font-size: 2em;\n display: block;\n}\n.tab-switcher.top-tabs {\n -ms-flex-direction: column;\n flex-direction: column;\n}\n.tab-switcher.top-tabs > .tabs {\n width: 100%;\n overflow-y: hidden;\n overflow-x: auto;\n padding-top: 5px;\n -ms-flex-direction: row;\n flex-direction: row;\n}\n.tab-switcher.top-tabs > .tabs::after, .tab-switcher.top-tabs > .tabs::before {\n content: \"\";\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n border-bottom: 1px solid;\n border-bottom-color: #222;\n border-bottom-color: var(--border, #222);\n}\n.tab-switcher.top-tabs > .tabs .tab-wrapper {\n height: 28px;\n}\n.tab-switcher.top-tabs > .tabs .tab-wrapper:not(.active)::after {\n left: 0;\n right: 0;\n bottom: 0;\n border-bottom: 1px solid;\n border-bottom-color: #222;\n border-bottom-color: var(--border, #222);\n}\n.tab-switcher.top-tabs > .tabs .tab {\n width: 100%;\n min-width: 1px;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n padding-bottom: 99px;\n margin-bottom: -93px;\n}\n.tab-switcher.top-tabs .contents.scrollable-tabs {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n}\n.tab-switcher.side-tabs {\n -ms-flex-direction: row;\n flex-direction: row;\n}\n@media all and (max-width: 800px) {\n .tab-switcher.side-tabs {\n overflow-x: auto;\n }\n}\n.tab-switcher.side-tabs > .contents {\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n}\n.tab-switcher.side-tabs > .tabs {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n overflow-y: auto;\n overflow-x: hidden;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n.tab-switcher.side-tabs > .tabs::after, .tab-switcher.side-tabs > .tabs::before {\n -ms-flex-negative: 0;\n flex-shrink: 0;\n -ms-flex-preferred-size: 0.5em;\n flex-basis: 0.5em;\n content: \"\";\n border-right: 1px solid;\n border-right-color: #222;\n border-right-color: var(--border, #222);\n}\n.tab-switcher.side-tabs > .tabs::after {\n -ms-flex-positive: 1;\n flex-grow: 1;\n}\n.tab-switcher.side-tabs > .tabs::before {\n -ms-flex-positive: 0;\n flex-grow: 0;\n}\n.tab-switcher.side-tabs > .tabs .tab-wrapper {\n min-width: 10em;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n@media all and (max-width: 800px) {\n .tab-switcher.side-tabs > .tabs .tab-wrapper {\n min-width: 1em;\n }\n}\n.tab-switcher.side-tabs > .tabs .tab-wrapper:not(.active)::after {\n top: 0;\n right: 0;\n bottom: 0;\n border-right: 1px solid;\n border-right-color: #222;\n border-right-color: var(--border, #222);\n}\n.tab-switcher.side-tabs > .tabs .tab-wrapper::before {\n -ms-flex: 0 0 6px;\n flex: 0 0 6px;\n content: \"\";\n border-right: 1px solid;\n border-right-color: #222;\n border-right-color: var(--border, #222);\n}\n.tab-switcher.side-tabs > .tabs .tab-wrapper:last-child .tab {\n margin-bottom: 0;\n}\n.tab-switcher.side-tabs > .tabs .tab {\n -ms-flex: 1;\n flex: 1;\n box-sizing: content-box;\n min-width: 10em;\n min-width: 1px;\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n padding-left: 1em;\n padding-right: calc(1em + 200px);\n margin-right: -200px;\n margin-left: 1em;\n}\n@media all and (max-width: 800px) {\n .tab-switcher.side-tabs > .tabs .tab {\n padding-left: 0.25em;\n padding-right: calc(.25em + 200px);\n margin-right: calc(.25em - 200px);\n margin-left: 0.25em;\n }\n .tab-switcher.side-tabs > .tabs .tab .text {\n display: none;\n }\n}\n.tab-switcher .contents {\n -ms-flex: 1 0 auto;\n flex: 1 0 auto;\n min-height: 0px;\n}\n.tab-switcher .contents .hidden {\n display: none;\n}\n.tab-switcher .contents .full-height:not(.hidden) {\n height: 100%;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n.tab-switcher .contents .full-height:not(.hidden) > *:not(.mobile-label) {\n -ms-flex: 1;\n flex: 1;\n}\n.tab-switcher .contents.scrollable-tabs {\n overflow-y: auto;\n}\n.tab-switcher .tab {\n position: relative;\n white-space: nowrap;\n padding: 6px 1em;\n background-color: #182230;\n background-color: var(--tab, #182230);\n}\n.tab-switcher .tab, .tab-switcher .tab:active .tab-icon {\n color: #b9b9ba;\n color: var(--tabText, #b9b9ba);\n}\n.tab-switcher .tab:not(.active) {\n z-index: 4;\n}\n.tab-switcher .tab:not(.active):hover {\n z-index: 6;\n}\n.tab-switcher .tab.active {\n background: transparent;\n z-index: 5;\n color: #b9b9ba;\n color: var(--tabActiveText, #b9b9ba);\n}\n.tab-switcher .tab img {\n max-height: 26px;\n vertical-align: top;\n margin-top: -5px;\n}\n.tab-switcher .tabs {\n display: -ms-flexbox;\n display: flex;\n position: relative;\n box-sizing: border-box;\n}\n.tab-switcher .tabs::after, .tab-switcher .tabs::before {\n display: block;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n}\n.tab-switcher .tab-wrapper {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n}\n.tab-switcher .tab-wrapper:not(.active)::after {\n content: \"\";\n position: absolute;\n z-index: 7;\n}\n.tab-switcher .mobile-label {\n padding-left: 0.3em;\n padding-bottom: 0.25em;\n margin-top: 0.5em;\n margin-left: 0.2em;\n margin-bottom: 0.25em;\n border-bottom: 1px solid var(--border, #222);\n}\n@media all and (min-width: 800px) {\n .tab-switcher .mobile-label {\n display: none;\n }\n}",".with-load-more-footer {\n padding: 10px;\n text-align: center;\n border-top: 1px solid;\n border-top-color: #222;\n border-top-color: var(--border, #222);\n}\n.with-load-more-footer .error {\n font-size: 14px;\n}"],"sourceRoot":""}
\ No newline at end of file
diff --git a/priv/static/static/font/fontello.1594030805019.eot b/priv/static/static/font/fontello.1594030805019.eot
new file mode 100644
index 000000000..f6155180f
Binary files /dev/null and b/priv/static/static/font/fontello.1594030805019.eot differ
diff --git a/priv/static/static/font/fontello.1594030805019.svg b/priv/static/static/font/fontello.1594030805019.svg
new file mode 100644
index 000000000..8da206aa8
--- /dev/null
+++ b/priv/static/static/font/fontello.1594030805019.svg
@@ -0,0 +1,132 @@
+
+
+
\ No newline at end of file
diff --git a/priv/static/static/font/fontello.1594030805019.ttf b/priv/static/static/font/fontello.1594030805019.ttf
new file mode 100644
index 000000000..7bedaf7ab
Binary files /dev/null and b/priv/static/static/font/fontello.1594030805019.ttf differ
diff --git a/priv/static/static/font/fontello.1594030805019.woff b/priv/static/static/font/fontello.1594030805019.woff
new file mode 100644
index 000000000..e61bf68d0
Binary files /dev/null and b/priv/static/static/font/fontello.1594030805019.woff differ
diff --git a/priv/static/static/font/fontello.1594030805019.woff2 b/priv/static/static/font/fontello.1594030805019.woff2
new file mode 100644
index 000000000..db0fc1fc6
Binary files /dev/null and b/priv/static/static/font/fontello.1594030805019.woff2 differ
diff --git a/priv/static/static/fontello.1594030805019.css b/priv/static/static/fontello.1594030805019.css
new file mode 100644
index 000000000..9251070fe
Binary files /dev/null and b/priv/static/static/fontello.1594030805019.css differ
diff --git a/priv/static/static/img/nsfw.74818f9.png b/priv/static/static/img/nsfw.74818f9.png
new file mode 100644
index 000000000..d25137767
Binary files /dev/null and b/priv/static/static/img/nsfw.74818f9.png differ
diff --git a/priv/static/static/js/10.0f1994ddc34cfbc08609.js b/priv/static/static/js/10.0f1994ddc34cfbc08609.js
new file mode 100644
index 000000000..707e0ad56
Binary files /dev/null and b/priv/static/static/js/10.0f1994ddc34cfbc08609.js differ
diff --git a/priv/static/static/js/10.0f1994ddc34cfbc08609.js.map b/priv/static/static/js/10.0f1994ddc34cfbc08609.js.map
new file mode 100644
index 000000000..7de298aa8
Binary files /dev/null and b/priv/static/static/js/10.0f1994ddc34cfbc08609.js.map differ
diff --git a/priv/static/static/js/11.1e7cd81617d5fdd53e6e.js b/priv/static/static/js/11.1e7cd81617d5fdd53e6e.js
new file mode 100644
index 000000000..c2558c013
Binary files /dev/null and b/priv/static/static/js/11.1e7cd81617d5fdd53e6e.js differ
diff --git a/priv/static/static/js/11.1e7cd81617d5fdd53e6e.js.map b/priv/static/static/js/11.1e7cd81617d5fdd53e6e.js.map
new file mode 100644
index 000000000..aaf753771
Binary files /dev/null and b/priv/static/static/js/11.1e7cd81617d5fdd53e6e.js.map differ
diff --git a/priv/static/static/js/12.d9989f5b5d0f8d4aa8a1.js b/priv/static/static/js/12.d9989f5b5d0f8d4aa8a1.js
new file mode 100644
index 000000000..f80c9ab5b
Binary files /dev/null and b/priv/static/static/js/12.d9989f5b5d0f8d4aa8a1.js differ
diff --git a/priv/static/static/js/12.d9989f5b5d0f8d4aa8a1.js.map b/priv/static/static/js/12.d9989f5b5d0f8d4aa8a1.js.map
new file mode 100644
index 000000000..586805e73
Binary files /dev/null and b/priv/static/static/js/12.d9989f5b5d0f8d4aa8a1.js.map differ
diff --git a/priv/static/static/js/13.01dcbbeee7fc697d5dff.js b/priv/static/static/js/13.01dcbbeee7fc697d5dff.js
new file mode 100644
index 000000000..de75e44a8
Binary files /dev/null and b/priv/static/static/js/13.01dcbbeee7fc697d5dff.js differ
diff --git a/priv/static/static/js/13.01dcbbeee7fc697d5dff.js.map b/priv/static/static/js/13.01dcbbeee7fc697d5dff.js.map
new file mode 100644
index 000000000..940f51e94
Binary files /dev/null and b/priv/static/static/js/13.01dcbbeee7fc697d5dff.js.map differ
diff --git a/priv/static/static/js/14.4355245d20f818121839.js b/priv/static/static/js/14.4355245d20f818121839.js
new file mode 100644
index 000000000..5fcccbcd0
Binary files /dev/null and b/priv/static/static/js/14.4355245d20f818121839.js differ
diff --git a/priv/static/static/js/14.4355245d20f818121839.js.map b/priv/static/static/js/14.4355245d20f818121839.js.map
new file mode 100644
index 000000000..4be3205e1
Binary files /dev/null and b/priv/static/static/js/14.4355245d20f818121839.js.map differ
diff --git a/priv/static/static/js/15.cad89660cbeef1f1f737.js b/priv/static/static/js/15.cad89660cbeef1f1f737.js
new file mode 100644
index 000000000..075046760
Binary files /dev/null and b/priv/static/static/js/15.cad89660cbeef1f1f737.js differ
diff --git a/priv/static/static/js/15.cad89660cbeef1f1f737.js.map b/priv/static/static/js/15.cad89660cbeef1f1f737.js.map
new file mode 100644
index 000000000..fe0e2248b
Binary files /dev/null and b/priv/static/static/js/15.cad89660cbeef1f1f737.js.map differ
diff --git a/priv/static/static/js/16.0f8c0529208576f8d8f1.js b/priv/static/static/js/16.0f8c0529208576f8d8f1.js
new file mode 100644
index 000000000..896e258ea
Binary files /dev/null and b/priv/static/static/js/16.0f8c0529208576f8d8f1.js differ
diff --git a/priv/static/static/js/16.0f8c0529208576f8d8f1.js.map b/priv/static/static/js/16.0f8c0529208576f8d8f1.js.map
new file mode 100644
index 000000000..67396d925
Binary files /dev/null and b/priv/static/static/js/16.0f8c0529208576f8d8f1.js.map differ
diff --git a/priv/static/static/js/17.102667c39eaf1f3da16f.js b/priv/static/static/js/17.102667c39eaf1f3da16f.js
new file mode 100644
index 000000000..26fae6b3a
Binary files /dev/null and b/priv/static/static/js/17.102667c39eaf1f3da16f.js differ
diff --git a/priv/static/static/js/17.102667c39eaf1f3da16f.js.map b/priv/static/static/js/17.102667c39eaf1f3da16f.js.map
new file mode 100644
index 000000000..778feac3a
Binary files /dev/null and b/priv/static/static/js/17.102667c39eaf1f3da16f.js.map differ
diff --git a/priv/static/static/js/18.0a9dfc8a06dfcc8f0e29.js b/priv/static/static/js/18.0a9dfc8a06dfcc8f0e29.js
new file mode 100644
index 000000000..89f4b767f
Binary files /dev/null and b/priv/static/static/js/18.0a9dfc8a06dfcc8f0e29.js differ
diff --git a/priv/static/static/js/18.0a9dfc8a06dfcc8f0e29.js.map b/priv/static/static/js/18.0a9dfc8a06dfcc8f0e29.js.map
new file mode 100644
index 000000000..19ec95cb2
Binary files /dev/null and b/priv/static/static/js/18.0a9dfc8a06dfcc8f0e29.js.map differ
diff --git a/priv/static/static/js/19.031e07a59c2ec00e163f.js b/priv/static/static/js/19.031e07a59c2ec00e163f.js
new file mode 100644
index 000000000..6cc262c5e
Binary files /dev/null and b/priv/static/static/js/19.031e07a59c2ec00e163f.js differ
diff --git a/priv/static/static/js/19.031e07a59c2ec00e163f.js.map b/priv/static/static/js/19.031e07a59c2ec00e163f.js.map
new file mode 100644
index 000000000..7773510cf
Binary files /dev/null and b/priv/static/static/js/19.031e07a59c2ec00e163f.js.map differ
diff --git a/priv/static/static/js/2.ca205c0a35e5f6a21711.js b/priv/static/static/js/2.ca205c0a35e5f6a21711.js
new file mode 100644
index 000000000..b7dc1dd25
Binary files /dev/null and b/priv/static/static/js/2.ca205c0a35e5f6a21711.js differ
diff --git a/priv/static/static/js/2.ca205c0a35e5f6a21711.js.map b/priv/static/static/js/2.ca205c0a35e5f6a21711.js.map
new file mode 100644
index 000000000..7bcb25f26
Binary files /dev/null and b/priv/static/static/js/2.ca205c0a35e5f6a21711.js.map differ
diff --git a/priv/static/static/js/20.4211860717a159173685.js b/priv/static/static/js/20.4211860717a159173685.js
new file mode 100644
index 000000000..e1a75a1d5
Binary files /dev/null and b/priv/static/static/js/20.4211860717a159173685.js differ
diff --git a/priv/static/static/js/20.4211860717a159173685.js.map b/priv/static/static/js/20.4211860717a159173685.js.map
new file mode 100644
index 000000000..2b7e634db
Binary files /dev/null and b/priv/static/static/js/20.4211860717a159173685.js.map differ
diff --git a/priv/static/static/js/21.f1d1ea794ca98abd7c8f.js b/priv/static/static/js/21.f1d1ea794ca98abd7c8f.js
new file mode 100644
index 000000000..9b07a0d14
Binary files /dev/null and b/priv/static/static/js/21.f1d1ea794ca98abd7c8f.js differ
diff --git a/priv/static/static/js/21.f1d1ea794ca98abd7c8f.js.map b/priv/static/static/js/21.f1d1ea794ca98abd7c8f.js.map
new file mode 100644
index 000000000..f100b694c
Binary files /dev/null and b/priv/static/static/js/21.f1d1ea794ca98abd7c8f.js.map differ
diff --git a/priv/static/static/js/22.be0989993d98819df69a.js b/priv/static/static/js/22.be0989993d98819df69a.js
new file mode 100644
index 000000000..a316ea486
Binary files /dev/null and b/priv/static/static/js/22.be0989993d98819df69a.js differ
diff --git a/priv/static/static/js/22.be0989993d98819df69a.js.map b/priv/static/static/js/22.be0989993d98819df69a.js.map
new file mode 100644
index 000000000..efc93ddb4
Binary files /dev/null and b/priv/static/static/js/22.be0989993d98819df69a.js.map differ
diff --git a/priv/static/static/js/23.353fb2474276b7d9d8ab.js b/priv/static/static/js/23.353fb2474276b7d9d8ab.js
new file mode 100644
index 000000000..6e01d740b
Binary files /dev/null and b/priv/static/static/js/23.353fb2474276b7d9d8ab.js differ
diff --git a/priv/static/static/js/23.353fb2474276b7d9d8ab.js.map b/priv/static/static/js/23.353fb2474276b7d9d8ab.js.map
new file mode 100644
index 000000000..8b5a39727
Binary files /dev/null and b/priv/static/static/js/23.353fb2474276b7d9d8ab.js.map differ
diff --git a/priv/static/static/js/24.222c48387222e8bc7c84.js b/priv/static/static/js/24.222c48387222e8bc7c84.js
new file mode 100644
index 000000000..3f04dfbb9
Binary files /dev/null and b/priv/static/static/js/24.222c48387222e8bc7c84.js differ
diff --git a/priv/static/static/js/24.222c48387222e8bc7c84.js.map b/priv/static/static/js/24.222c48387222e8bc7c84.js.map
new file mode 100644
index 000000000..86a3d5c52
Binary files /dev/null and b/priv/static/static/js/24.222c48387222e8bc7c84.js.map differ
diff --git a/priv/static/static/js/25.59d04b82ff45f25b44ef.js b/priv/static/static/js/25.59d04b82ff45f25b44ef.js
new file mode 100644
index 000000000..f778b411e
Binary files /dev/null and b/priv/static/static/js/25.59d04b82ff45f25b44ef.js differ
diff --git a/priv/static/static/js/25.59d04b82ff45f25b44ef.js.map b/priv/static/static/js/25.59d04b82ff45f25b44ef.js.map
new file mode 100644
index 000000000..43e3eaae5
Binary files /dev/null and b/priv/static/static/js/25.59d04b82ff45f25b44ef.js.map differ
diff --git a/priv/static/static/js/26.d4910001c228c31abe61.js b/priv/static/static/js/26.d4910001c228c31abe61.js
new file mode 100644
index 000000000..b479fe465
Binary files /dev/null and b/priv/static/static/js/26.d4910001c228c31abe61.js differ
diff --git a/priv/static/static/js/26.d4910001c228c31abe61.js.map b/priv/static/static/js/26.d4910001c228c31abe61.js.map
new file mode 100644
index 000000000..507d16f44
Binary files /dev/null and b/priv/static/static/js/26.d4910001c228c31abe61.js.map differ
diff --git a/priv/static/static/js/27.68d319e0867f9e35d5d3.js b/priv/static/static/js/27.68d319e0867f9e35d5d3.js
new file mode 100644
index 000000000..5e8606a5b
Binary files /dev/null and b/priv/static/static/js/27.68d319e0867f9e35d5d3.js differ
diff --git a/priv/static/static/js/27.68d319e0867f9e35d5d3.js.map b/priv/static/static/js/27.68d319e0867f9e35d5d3.js.map
new file mode 100644
index 000000000..5221aadf3
Binary files /dev/null and b/priv/static/static/js/27.68d319e0867f9e35d5d3.js.map differ
diff --git a/priv/static/static/js/28.580f1c09759e4dabced9.js b/priv/static/static/js/28.580f1c09759e4dabced9.js
new file mode 100644
index 000000000..c524c023a
Binary files /dev/null and b/priv/static/static/js/28.580f1c09759e4dabced9.js differ
diff --git a/priv/static/static/js/28.580f1c09759e4dabced9.js.map b/priv/static/static/js/28.580f1c09759e4dabced9.js.map
new file mode 100644
index 000000000..5aa14985c
Binary files /dev/null and b/priv/static/static/js/28.580f1c09759e4dabced9.js.map differ
diff --git a/priv/static/static/js/29.ea54402e3fbd16f17eb7.js b/priv/static/static/js/29.ea54402e3fbd16f17eb7.js
new file mode 100644
index 000000000..cb6e468b2
Binary files /dev/null and b/priv/static/static/js/29.ea54402e3fbd16f17eb7.js differ
diff --git a/priv/static/static/js/29.ea54402e3fbd16f17eb7.js.map b/priv/static/static/js/29.ea54402e3fbd16f17eb7.js.map
new file mode 100644
index 000000000..e6f6b21c4
Binary files /dev/null and b/priv/static/static/js/29.ea54402e3fbd16f17eb7.js.map differ
diff --git a/priv/static/static/js/3.23de974e1235c91ea803.js b/priv/static/static/js/3.23de974e1235c91ea803.js
new file mode 100644
index 000000000..84044f051
Binary files /dev/null and b/priv/static/static/js/3.23de974e1235c91ea803.js differ
diff --git a/priv/static/static/js/3.23de974e1235c91ea803.js.map b/priv/static/static/js/3.23de974e1235c91ea803.js.map
new file mode 100644
index 000000000..880fe7abb
Binary files /dev/null and b/priv/static/static/js/3.23de974e1235c91ea803.js.map differ
diff --git a/priv/static/static/js/30.b657503bf18858a9b282.js b/priv/static/static/js/30.b657503bf18858a9b282.js
new file mode 100644
index 000000000..256a37f17
Binary files /dev/null and b/priv/static/static/js/30.b657503bf18858a9b282.js differ
diff --git a/priv/static/static/js/30.b657503bf18858a9b282.js.map b/priv/static/static/js/30.b657503bf18858a9b282.js.map
new file mode 100644
index 000000000..fbbedf45a
Binary files /dev/null and b/priv/static/static/js/30.b657503bf18858a9b282.js.map differ
diff --git a/priv/static/static/js/4.4fe9f0677ec54321f659.js b/priv/static/static/js/4.4fe9f0677ec54321f659.js
new file mode 100644
index 000000000..7b1cf6cb1
Binary files /dev/null and b/priv/static/static/js/4.4fe9f0677ec54321f659.js differ
diff --git a/priv/static/static/js/4.4fe9f0677ec54321f659.js.map b/priv/static/static/js/4.4fe9f0677ec54321f659.js.map
new file mode 100644
index 000000000..d0f07cf83
Binary files /dev/null and b/priv/static/static/js/4.4fe9f0677ec54321f659.js.map differ
diff --git a/priv/static/static/js/5.74ace591a96fca58ee48.js b/priv/static/static/js/5.74ace591a96fca58ee48.js
new file mode 100644
index 000000000..6724317eb
Binary files /dev/null and b/priv/static/static/js/5.74ace591a96fca58ee48.js differ
diff --git a/priv/static/static/js/5.74ace591a96fca58ee48.js.map b/priv/static/static/js/5.74ace591a96fca58ee48.js.map
new file mode 100644
index 000000000..915549af2
Binary files /dev/null and b/priv/static/static/js/5.74ace591a96fca58ee48.js.map differ
diff --git a/priv/static/static/js/6.67ff41bfc9476902b9de.js b/priv/static/static/js/6.67ff41bfc9476902b9de.js
new file mode 100644
index 000000000..a9fbe6a15
Binary files /dev/null and b/priv/static/static/js/6.67ff41bfc9476902b9de.js differ
diff --git a/priv/static/static/js/6.67ff41bfc9476902b9de.js.map b/priv/static/static/js/6.67ff41bfc9476902b9de.js.map
new file mode 100644
index 000000000..40632f54a
Binary files /dev/null and b/priv/static/static/js/6.67ff41bfc9476902b9de.js.map differ
diff --git a/priv/static/static/js/7.c0d55831c37350a90aee.js b/priv/static/static/js/7.c0d55831c37350a90aee.js
new file mode 100644
index 000000000..e69e74788
Binary files /dev/null and b/priv/static/static/js/7.c0d55831c37350a90aee.js differ
diff --git a/priv/static/static/js/7.c0d55831c37350a90aee.js.map b/priv/static/static/js/7.c0d55831c37350a90aee.js.map
new file mode 100644
index 000000000..df62653a9
Binary files /dev/null and b/priv/static/static/js/7.c0d55831c37350a90aee.js.map differ
diff --git a/priv/static/static/js/8.83dbefa1dc25a2e61b92.js b/priv/static/static/js/8.83dbefa1dc25a2e61b92.js
new file mode 100644
index 000000000..96417ee38
Binary files /dev/null and b/priv/static/static/js/8.83dbefa1dc25a2e61b92.js differ
diff --git a/priv/static/static/js/8.83dbefa1dc25a2e61b92.js.map b/priv/static/static/js/8.83dbefa1dc25a2e61b92.js.map
new file mode 100644
index 000000000..1c3d977be
Binary files /dev/null and b/priv/static/static/js/8.83dbefa1dc25a2e61b92.js.map differ
diff --git a/priv/static/static/js/9.aa8acb3e28bf30fdefc7.js b/priv/static/static/js/9.aa8acb3e28bf30fdefc7.js
new file mode 100644
index 000000000..2487774ef
Binary files /dev/null and b/priv/static/static/js/9.aa8acb3e28bf30fdefc7.js differ
diff --git a/priv/static/static/js/9.aa8acb3e28bf30fdefc7.js.map b/priv/static/static/js/9.aa8acb3e28bf30fdefc7.js.map
new file mode 100644
index 000000000..e265af977
Binary files /dev/null and b/priv/static/static/js/9.aa8acb3e28bf30fdefc7.js.map differ
diff --git a/priv/static/static/js/app.7db8116851a0fe6eb807.js b/priv/static/static/js/app.7db8116851a0fe6eb807.js
new file mode 100644
index 000000000..ce0461c10
Binary files /dev/null and b/priv/static/static/js/app.7db8116851a0fe6eb807.js differ
diff --git a/priv/static/static/js/app.7db8116851a0fe6eb807.js.map b/priv/static/static/js/app.7db8116851a0fe6eb807.js.map
new file mode 100644
index 000000000..a7f058c16
Binary files /dev/null and b/priv/static/static/js/app.7db8116851a0fe6eb807.js.map differ
diff --git a/priv/static/static/js/vendors~app.fbb3f5304df245971d96.js b/priv/static/static/js/vendors~app.fbb3f5304df245971d96.js
new file mode 100644
index 000000000..491dbed0b
Binary files /dev/null and b/priv/static/static/js/vendors~app.fbb3f5304df245971d96.js differ
diff --git a/priv/static/static/js/vendors~app.fbb3f5304df245971d96.js.map b/priv/static/static/js/vendors~app.fbb3f5304df245971d96.js.map
new file mode 100644
index 000000000..9ad947b26
Binary files /dev/null and b/priv/static/static/js/vendors~app.fbb3f5304df245971d96.js.map differ
diff --git a/priv/static/sw-pleroma.js b/priv/static/sw-pleroma.js
index f6579fdd7..323816ab6 100644
Binary files a/priv/static/sw-pleroma.js and b/priv/static/sw-pleroma.js differ
diff --git a/priv/static/sw-pleroma.js.map b/priv/static/sw-pleroma.js.map
index 37a17be47..c45ac40a8 100644
Binary files a/priv/static/sw-pleroma.js.map and b/priv/static/sw-pleroma.js.map differ