summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabe Kangas <gabek@real-ity.com>2022-01-12 13:53:10 -0800
committerGitHub <noreply@github.com>2022-01-12 13:53:10 -0800
commit045a0a2afd4a215fac63c89ee0f6a8167478b215 (patch)
tree73f1c746a25616b9792c056f8373dbb7c0048f1e
parentc51d9cdbf451ed66d02dd17eeb97fb29d0e81b18 (diff)
Social features / ActivityPub federation (#1629)
* Support webfinger requests for the live account. Closes https://github.com/owncast/owncast/issues/1193 * Support for actor requests. Returns response for live actor. Closes https://github.com/owncast/owncast/issues/1203 * Handle follow and unfollow requests. Closes https://github.com/owncast/owncast/issues/1191 and https://github.com/owncast/owncast/issues/1205 and https://github.com/owncast/owncast/issues/1206 and https://github.com/owncast/owncast/issues/1194 * Add basic support for sending out text activities. For https://github.com/owncast/owncast/issues/1192 * Some error handling and passing of dynamic local account names. * Add hardcoded example image attachment to test post * Centralize the map of accounts and inboxes * No longer disable the preview generator based on YP toggle * Send a federated message to followers when stream starts. For https://github.com/owncast/owncast/issues/1192 * Placeholder for attaching tags * Add image description * Save and get to outbox persistence. Return using outbox endpoint for actor * Pass payloads to be handled through the gochan * Handle undo follow requests explitly, not all undo requests * Add API for manually sending simple federated messages. Closes #1215 * Verify inbox requests. Closes #1321 * Add route to fetch a single AP object by ID. For #1329 * Add responses to fediverse nodeinfo requests * Set and get federation config values for admin * Handle host-meta requests * Do not send out message if disabled. Use saved go live message. * Require AP-compatible content types for AP-related requests * Rename ap models to apmodels for clarity * Change how content type matching takes place. * io -> ioutil * Add stub delete activity callback * Handle likes and announces to surface engagement in chat. Part of #1229 * Append url to go live posts * Do not require specific content types for nodeinfo requests * Add follow engagement chat message via AP * add owncast user-agent to requests * Set note visibility to public (for now) * Fix saving/fetching a single object * Add support for x-nodeinfo2 responses * Point to the dev admin branch for ap * Bundle in dev admin for testing * Add error logging * Add AP middleware back * Point to the new external compatible logo endpoint * Clean up more AP logging to help testing * Tweak go live text and link hashtags * Fix bug in fetching init time * Send update actor activities when server details/profile is updated * Add federation config overview to web client config * Add additional actor properties * Make the AP middleware checking more flexible when looking at types * First pass at remote fediverse follow flow. For #1371 * Added a basic AP actor followers endpoint * WIP client followers API * Add profile-page reference to webfinger response * Add aliases to webfinger response * Fix content-type returned to be expected activitypub+json * First pass at followers api * Point at local dev copy of go-fed/activity * Add custom toot Hashtag objects to posts * Store additional user details to followers table * Fix AP followers endpoint. Closes #1204 * Add owncast hashtag as an invisible tag to go live posts * Reject AP requests when it is disabled * Add actor util for generating full account user from person object * Verify inbox requests before performing any other work * Accept actor update requests * Fix linter errors in federation branch * Migrate AP SQL to sqlc for type safe queries * Use the @unclearParadigm REST parameter helper * Fix verifying post ID on AP engagement * WIP privacy/request approval * Style the remote follow modal * First pass at a followers list component w/ mock data. #1370 * Revert "Use the @unclearParadigm REST parameter helper" This reverts commit c8af8a413f6f53e7d1a15a7d823ff28be2db3c23. * Fix get followers API * Add support for requiring approval. Closes https://github.com/owncast/owncast/issues/1208 * Handle Applications as Actors partly for PeerTube support * add temp todo list * check route on load, this might change later * style followers * account for just 1 tab case * Remove mock data. Allow showing follow button even when there are no external actions defined * Point to actual followers API * Support fallback img for follower views * Remove duplicate verification. Add some additional verbose logging * Bundle dev admin * Add type to host-meta webfinger template response * Tweak remote follow modal content * WIP federation followers refactor * Do not send pointer to middleware * Update admin * Add setting for toggling displaying fediverse engagement. Closes #1404 * Add in-development admin * Do not enable cors on admin followers api * Add db migration for updating messages table * Enable empty string go live messages to disable * Remove debug messages * Rework some ActivityPub handling. Create new Actor->Person handling. Create new Actor->Service handling. Add engagement handlers to send chat events and store event objects. Store inbound activities to new ap_inbound_activities table. * Support federated engagement events. Store them in the messages table and surface them via chat events. * Support federated event engatement in the chat * Tweak web UI followers handling * Point go.mod at remote fork instead of local * Update admin * Merged in develop. Couple fixes * Update dev admin * Update fedi engagement posts. - Fix incorrect action text. - Add action icons. * Set public as to instead of cc for ap msg * Updated styling for federated actions in chat * Add support for blocking federated domains. Closes #1209 * Force checking of https in verify step * Update dev admin * Return user scopes in chat history api. Closes #1586 * Update dev admin * Add AP outbound request worker pool. Closes #1571 * Disable (temporarily?) owncast tag on AP posts * Consolidate creating activity+notes in outbound AP messages * Add inbox worker pool. Closes #1570 * Update dev admin bundle * Clean up some logs * Re-enable inbound verfication * Save full IRI to outbox instead of path * Reject if full IRI is not found in outbox * Use full ActivityPub user account in chat event * Fix and expand follower APIs - Add missing IDs to AP follower endpoints - Split AP follower endpoints into initial request and pages. - Support pagination in AP requests. * Include IRI in error message * Hide chat toggle when chat is hidden. Closes #1606 * Updates to followers pagination * Set default go live message * Remove log * indirect -> direct import * Updates for inbound federated event handling. - Keep track of existing events and reject duplicates. - Change what is sent to chat for surfing federated engagement. - Keep track if outbound events are automated "go live" events or not. * Update chat federated engagement. * Update dev admin. * Move from being a person to a bot (service). Closes #1619 * Only set server init date if not already set * Only save notes to outbox able * Rework private-mode followers/approvals * API for returning a list of federated actions for #1573 * Fix too-small follower cells and jumpy tabs. Closes #1616 and closes #1516 * Fix shortcuts getting fired on inputs. Fixes #1489 and #1201 * Add spinner, autoclose + other fixes to follow modal. Fixes #1593 * Fix fetching a single object by IRI * SendFederationMessage -> SendFederatedMessage * Autolink and create tag objects from manual posts. Closes #1620 * Update dev admin bundle * Handle engagement from non-automated/live posts * Reject federated engagement actions if they do not match a local post * Update dev admin bundle * A bunch of cleanup * Fix unused assignments and logic * Remove unused function * Add content warning and sentive content flag if stream is NSFW. Closes #1624 * Disable fetching objects by IRI when in private mode. Closes #1623 * Update the error message of the remote follow dialog. closes #1622 * Update dev admin * Fix NREs throwing in test content * Fix query that wasn't properly filtering out hidden messages * Test against user being disabled instead of message visibility * Fix automated test NRE * Update comment * Adjust federated engagement chat views. Closes #1617 * Add additional index to users table * Add support for removing followers/requests. Closes #1630 * Reject federated actions from blocked actors. #1631 * Use fallback avatar if it fails to load. Closes #1635 * Fix styling of follower list. Closes #1636 * Add basic blurb stating they should follow the server. Closes #1641 * Update dev admin * Set default go live message in migration. Closes #1642 * Reset the messages table on 0.0.11 schema migration * Fix js error with moderation actions. Closes #1621 * Add a bit more clarification on follow modal. Closes #1599 * Remove todos * Split out actor and domain blocking checks * Check for errors on default values being set * Clean up actor rejection due to being blocked * Update dev admin * Add colon to error to make it easier to read * Remove markdown rendering of go live message. Reorganize text. Remove content warning. Closes #1645 * Break out the sort+render messages logic so it can be fired on visibility change. Closes #1643 * Do not send profile updates if federation is disabled * Save follow references to inbound activities table * Update dev admin * Add blocked actor test * Remove the overloaded term of Follow from social links * Fix test running in memory only * Remove "just" in engagement messags * Replace star with heart for like action. * Update dev admin * Explicitly set cc as public * Remove overly using the stream name in fediverse engagement messages * Some federated/follow UI tweaks * Remove explicit cc and bcc as they are not required * Explicitly set the audience * Remove extra margin * Add Join Fediverse button to follow modal. Closes #1651 * Do not allow multiple follows to send multiple events. Closes #1650 * Give events a min height * Do not allow old posts to be liked/shared. Closes #1652 * Remove value from log message * Alert followers on private mode toggle * Ignore clicks to follow button if disabled * Remove underline from action buttons * Add moderator icon to join message * Update admin * Post-merge remove unused var * Remove pointing at feature branch Co-authored-by: Ginger Wong <omqmail@gmail.com>
-rw-r--r--.golangci.yml4
-rw-r--r--activitypub/activitypub.go51
-rw-r--r--activitypub/apmodels/activity.go88
-rw-r--r--activitypub/apmodels/actor.go263
-rw-r--r--activitypub/apmodels/actor_test.go168
-rw-r--r--activitypub/apmodels/hashtag.go24
-rw-r--r--activitypub/apmodels/inboxRequest.go10
-rw-r--r--activitypub/apmodels/message.go50
-rw-r--r--activitypub/apmodels/utils.go62
-rw-r--r--activitypub/apmodels/webfinger.go43
-rw-r--r--activitypub/controllers/actors.go58
-rw-r--r--activitypub/controllers/followers.go166
-rw-r--r--activitypub/controllers/inbox.go56
-rw-r--r--activitypub/controllers/nodeinfo.go285
-rw-r--r--activitypub/controllers/object.go42
-rw-r--r--activitypub/controllers/outbox.go156
-rw-r--r--activitypub/controllers/webfinger.go60
-rw-r--r--activitypub/crypto/keys.go78
-rw-r--r--activitypub/crypto/publicKey.go10
-rw-r--r--activitypub/crypto/sign.go70
-rw-r--r--activitypub/inbox/announce.go40
-rw-r--r--activitypub/inbox/chat.go62
-rw-r--r--activitypub/inbox/constants.go7
-rw-r--r--activitypub/inbox/follow.go88
-rw-r--r--activitypub/inbox/like.go40
-rw-r--r--activitypub/inbox/undo.go27
-rw-r--r--activitypub/inbox/update.go25
-rw-r--r--activitypub/inbox/worker.go130
-rw-r--r--activitypub/inbox/worker_test.go100
-rw-r--r--activitypub/inbox/workerpool.go44
-rw-r--r--activitypub/outbox/outbox.go245
-rw-r--r--activitypub/persistence/followers.go121
-rw-r--r--activitypub/persistence/persistence.go360
-rw-r--r--activitypub/requests/acceptFollow.go51
-rw-r--r--activitypub/requests/http.go75
-rw-r--r--activitypub/resolvers/follow.go57
-rw-r--r--activitypub/resolvers/resolve.go125
-rw-r--r--activitypub/router.go35
-rw-r--r--activitypub/workerpool/outbound.go66
-rw-r--r--config/defaults.go6
-rw-r--r--controllers/admin/config.go31
-rw-r--r--controllers/admin/federation.go171
-rw-r--r--controllers/admin/followers.go82
-rw-r--r--controllers/admin/serverConfig.go48
-rw-r--r--controllers/config.go52
-rw-r--r--controllers/followers.go18
-rw-r--r--controllers/index.go15
-rw-r--r--controllers/remoteFollow.go100
-rw-r--r--core/chat/chat.go31
-rw-r--r--core/chat/events/eventtype.go6
-rw-r--r--core/chat/events/fediverseEngagementEvent.go32
-rw-r--r--core/chat/persistence.go282
-rw-r--r--core/chat/pruner.go39
-rw-r--r--core/data/activitypub.go13
-rw-r--r--core/data/config.go204
-rw-r--r--core/data/crypto.go23
-rw-r--r--core/data/data.go50
-rw-r--r--core/data/defaults.go9
-rw-r--r--core/data/messages.go4
-rw-r--r--core/data/migrations.go39
-rw-r--r--core/data/persistence.go22
-rw-r--r--core/data/users.go1
-rw-r--r--core/streamState.go30
-rw-r--r--core/transcoder/thumbnailGenerator.go5
-rw-r--r--db/README.md28
-rw-r--r--db/db.go29
-rw-r--r--db/models.go36
-rw-r--r--db/query.sql57
-rw-r--r--db/query.sql.go441
-rw-r--r--db/schema.sql37
-rw-r--r--go.mod9
-rw-r--r--go.sum15
-rw-r--r--models/federatedActivity.go12
-rw-r--r--models/follower.go21
-rw-r--r--router/middleware/activityPub.go46
-rw-r--r--router/middleware/headers.go2
-rw-r--r--router/router.go50
-rw-r--r--sqlc.json9
-rw-r--r--static/admin/404/index.html2
-rw-r--r--static/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_buildManifest.js1
-rw-r--r--static/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_middlewareManifest.js1
-rw-r--r--static/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_ssgManifest.js1
-rw-r--r--static/admin/_next/static/chunks/102-c27fe0fc093d5628.js1
-rw-r--r--static/admin/_next/static/chunks/132-69ec1de6a8e27de6.js1
-rw-r--r--static/admin/_next/static/chunks/17-8c3836887f4f3962.js (renamed from static/admin/_next/static/chunks/17-7e60474a0bf727db.js)2
-rw-r--r--static/admin/_next/static/chunks/371-7cb27e335b0cdeb4.js1
-rw-r--r--static/admin/_next/static/chunks/464-deae2b2f674a34de.js1
-rw-r--r--static/admin/_next/static/chunks/516-b015193bc0d6919e.js1
-rw-r--r--static/admin/_next/static/chunks/556-4bf62bd783267914.js1
-rw-r--r--static/admin/_next/static/chunks/556-bbfb134a84808c78.js1
-rw-r--r--static/admin/_next/static/chunks/674-fd7f35cd345c7a4b.js1
-rw-r--r--static/admin/_next/static/chunks/751-f932ff7ec3e1342a.js1
-rw-r--r--static/admin/_next/static/chunks/763-6084d4b3c149b8f4.js1
-rw-r--r--static/admin/_next/static/chunks/829-c8d1f3db438c210b.js1
-rw-r--r--static/admin/_next/static/chunks/903-27a123d85f49824b.js1
-rw-r--r--static/admin/_next/static/chunks/961-1db4468ca0742ea4.js1
-rw-r--r--static/admin/_next/static/chunks/pages/_app-31024cc89d3736f1.js1
-rw-r--r--static/admin/_next/static/chunks/pages/access-tokens-6045feeedf5d6be6.js1
-rw-r--r--static/admin/_next/static/chunks/pages/access-tokens-d3e9e11b79321dbb.js1
-rw-r--r--static/admin/_next/static/chunks/pages/actions-06962496c7d339c5.js1
-rw-r--r--static/admin/_next/static/chunks/pages/actions-6889c0d5d40aa70e.js1
-rw-r--r--static/admin/_next/static/chunks/pages/chat/messages-7f73b63d7ec03c12.js1
-rw-r--r--static/admin/_next/static/chunks/pages/chat/messages-dc2695d5bac28933.js1
-rw-r--r--static/admin/_next/static/chunks/pages/chat/users-3192dc5fd27791e0.js1
-rw-r--r--static/admin/_next/static/chunks/pages/chat/users-4426bd981b718014.js1
-rw-r--r--static/admin/_next/static/chunks/pages/config-chat-3f47c2e436acea43.js1
-rw-r--r--static/admin/_next/static/chunks/pages/config-federation-ddff59205ab33383.js1
-rw-r--r--static/admin/_next/static/chunks/pages/config-public-details-02c80e54bdb91852.js1
-rw-r--r--static/admin/_next/static/chunks/pages/config-server-details-40fd225da49d9b45.js1
-rw-r--r--static/admin/_next/static/chunks/pages/config-server-details-955233623bf20860.js1
-rw-r--r--static/admin/_next/static/chunks/pages/config-social-items-9ecbdce4f557ac9b.js (renamed from static/admin/_next/static/chunks/pages/config-social-items-f1ffbab8bc62dd1e.js)2
-rw-r--r--static/admin/_next/static/chunks/pages/config-storage-4b8f9ff84ca4aa30.js (renamed from static/admin/_next/static/chunks/pages/config-storage-7ff1038872a3ca18.js)2
-rw-r--r--static/admin/_next/static/chunks/pages/config-video-c250bf8f88dd1d1b.js (renamed from static/admin/_next/static/chunks/pages/config-video-a76d6520c0f44ced.js)2
-rw-r--r--static/admin/_next/static/chunks/pages/federation/actions-a817c8d84eb2e1bf.js1
-rw-r--r--static/admin/_next/static/chunks/pages/federation/followers-73207b872f42b7a6.js1
-rw-r--r--static/admin/_next/static/chunks/pages/hardware-info-4dcdf4aa6510006e.js (renamed from static/admin/_next/static/chunks/pages/hardware-info-4094e416071b6cb5.js)2
-rw-r--r--static/admin/_next/static/chunks/pages/help-3dd6da50dde27e48.js (renamed from static/admin/_next/static/chunks/pages/help-c7fc342e125a5d6b.js)2
-rw-r--r--static/admin/_next/static/chunks/pages/index-e81f0bed001d207c.js (renamed from static/admin/_next/static/chunks/pages/index-ceca52ff7a46f409.js)2
-rw-r--r--static/admin/_next/static/chunks/pages/logs-d10676db469afea0.js (renamed from static/admin/_next/static/chunks/pages/logs-1ee721766d61c558.js)2
-rw-r--r--static/admin/_next/static/chunks/pages/upgrade-6c4ec4a032ab7232.js (renamed from static/admin/_next/static/chunks/pages/upgrade-3990d29ea930f50e.js)2
-rw-r--r--static/admin/_next/static/chunks/pages/viewer-info-a9586b5d2ecea7e8.js (renamed from static/admin/_next/static/chunks/pages/viewer-info-19c2b57872fa4f5f.js)2
-rw-r--r--static/admin/_next/static/chunks/pages/webhooks-8b96f4afcc72aba4.js1
-rw-r--r--static/admin/_next/static/chunks/pages/webhooks-f0ab34a6aedf78cb.js1
-rw-r--r--static/admin/_next/static/chunks/webpack-32f373d36961f088.js10
-rw-r--r--static/admin/_next/static/chunks/webpack-d3dfca19c7a5e28c.js1
-rw-r--r--static/admin/_next/static/css/4da23ced01517a16.css (renamed from static/admin/_next/static/css/325160c29fde2de0.css)2
-rw-r--r--static/admin/_next/static/css/8f06007bcaf49272.css9
-rw-r--r--static/admin/access-tokens/index.html2
-rw-r--r--static/admin/actions/index.html2
-rw-r--r--static/admin/chat/messages/index.html2
-rw-r--r--static/admin/chat/users/index.html2
-rw-r--r--static/admin/config-chat/index.html2
-rw-r--r--static/admin/config-federation/index.html1
-rw-r--r--static/admin/config-public-details/index.html2
-rw-r--r--static/admin/config-server-details/index.html2
-rw-r--r--static/admin/config-social-items/index.html2
-rw-r--r--static/admin/config-storage/index.html2
-rw-r--r--static/admin/config-video/index.html2
-rw-r--r--static/admin/federation/actions/index.html1
-rw-r--r--static/admin/federation/followers/index.html1
-rw-r--r--static/admin/fediverse-white.pngbin0 -> 4877 bytes
-rw-r--r--static/admin/hardware-info/index.html4
-rw-r--r--static/admin/help/index.html2
-rw-r--r--static/admin/index.html2
-rw-r--r--static/admin/logs/index.html2
-rw-r--r--static/admin/upgrade/index.html2
-rw-r--r--static/admin/viewer-info/index.html2
-rw-r--r--static/admin/webhooks/index.html2
-rw-r--r--test/automated/api/chatusers.test.js2
-rw-r--r--utils/utils.go18
-rw-r--r--webroot/img/fediverse-black.pngbin0 -> 5789 bytes
-rw-r--r--webroot/img/fediverse-color.pngbin0 -> 10197 bytes
-rw-r--r--webroot/img/fediverse-white.pngbin0 -> 4877 bytes
-rw-r--r--webroot/img/follow.svg312
-rw-r--r--webroot/img/like.svg315
-rw-r--r--webroot/img/repost.svg311
-rw-r--r--webroot/index.html12
-rw-r--r--webroot/js/TEMP-TODO.md77
-rw-r--r--webroot/js/app.js213
-rw-r--r--webroot/js/components/chat/chat.js20
-rw-r--r--webroot/js/components/chat/message.js76
-rw-r--r--webroot/js/components/chat/moderator-actions.js2
-rw-r--r--webroot/js/components/external-action-modal.js63
-rw-r--r--webroot/js/components/federation/followers.js91
-rw-r--r--webroot/js/components/fediverse-follow-modal.js196
-rw-r--r--webroot/js/components/platform-logos-list.js84
-rw-r--r--webroot/js/components/tab-bar.js70
-rw-r--r--webroot/js/utils/chat.js12
-rw-r--r--webroot/js/utils/constants.js1
-rw-r--r--webroot/js/utils/helpers.js21
-rw-r--r--webroot/js/utils/websocket.js3
-rw-r--r--webroot/styles/app.css121
-rw-r--r--webroot/styles/chat.css13
-rw-r--r--webroot/styles/user-content.css4
174 files changed, 7296 insertions, 405 deletions
diff --git a/.golangci.yml b/.golangci.yml
index a7cba8764..75bc787dd 100644
--- a/.golangci.yml
+++ b/.golangci.yml
@@ -81,3 +81,7 @@ linters-settings:
# Logging via Print bypasses our logging framework.
- ^(fmt\.Print(|f|ln)|print|println)
- ^panic.*$
+
+ dupl:
+ # tokens count to trigger issue, 150 by default
+ threshold: 160
diff --git a/activitypub/activitypub.go b/activitypub/activitypub.go
new file mode 100644
index 000000000..0d80a5afe
--- /dev/null
+++ b/activitypub/activitypub.go
@@ -0,0 +1,51 @@
+package activitypub
+
+import (
+ "github.com/owncast/owncast/activitypub/crypto"
+ "github.com/owncast/owncast/activitypub/inbox"
+ "github.com/owncast/owncast/activitypub/outbox"
+ "github.com/owncast/owncast/activitypub/persistence"
+ "github.com/owncast/owncast/activitypub/workerpool"
+
+ "github.com/owncast/owncast/core/data"
+ "github.com/owncast/owncast/models"
+ log "github.com/sirupsen/logrus"
+)
+
+// Start will initialize and start the federation support.
+func Start(datastore *data.Datastore) {
+ persistence.Setup(datastore)
+ workerpool.InitOutboundWorkerPool()
+ inbox.InitInboxWorkerPool()
+ StartRouter()
+
+ // Test
+ if data.GetPrivateKey() == "" {
+ privateKey, publicKey, err := crypto.GenerateKeys()
+ _ = data.SetPrivateKey(string(privateKey))
+ _ = data.SetPublicKey(string(publicKey))
+ if err != nil {
+ log.Errorln("Unable to get private key", err)
+ }
+ }
+}
+
+// SendLive will send a "Go Live" message to followers.
+func SendLive() error {
+ return outbox.SendLive()
+}
+
+// SendPublicFederatedMessage will send an arbitrary provided message to followers.
+func SendPublicFederatedMessage(message string) error {
+ return outbox.SendPublicMessage(message)
+}
+
+// GetFollowerCount will return the local tracked follower count.
+func GetFollowerCount() (int64, error) {
+ return persistence.GetFollowerCount()
+}
+
+// GetPendingFollowRequests will return the pending follow requests.
+func GetPendingFollowRequests() ([]models.Follower, error) {
+ return persistence.GetPendingFollowRequests()
+}
diff --git a/activitypub/apmodels/activity.go b/activitypub/apmodels/activity.go
new file mode 100644
index 000000000..b4c9b5947
--- /dev/null
+++ b/activitypub/apmodels/activity.go
@@ -0,0 +1,88 @@
+package apmodels
+
+import (
+ "net/url"
+ "time"
+
+ "github.com/go-fed/activity/streams"
+ "github.com/go-fed/activity/streams/vocab"
+ "github.com/owncast/owncast/core/data"
+)
+
+// PrivacyAudience represents the audience for an activity.
+type PrivacyAudience = string
+
+const (
+ // PUBLIC is an audience meaning anybody can view the item.
+ PUBLIC PrivacyAudience = "https://www.w3.org/ns/activitystreams#Public"
+)
+
+// MakeCreateActivity will return a new Create activity with the provided ID.
+func MakeCreateActivity(activityID *url.URL) vocab.ActivityStreamsCreate {
+ activity := streams.NewActivityStreamsCreate()
+ id := streams.NewJSONLDIdProperty()
+ id.Set(activityID)
+ activity.SetJSONLDId(id)
+
+ // CC the public if we're not treating ActivityPub as "private".
+ if !data.GetFederationIsPrivate() {
+ public, _ := url.Parse(PUBLIC)
+ to := streams.NewActivityStreamsToProperty()
+ to.AppendIRI(public)
+ activity.SetActivityStreamsTo(to)
+
+ audience := streams.NewActivityStreamsAudienceProperty()
+ audience.AppendIRI(public)
+ activity.SetActivityStreamsAudience(audience)
+ }
+
+ return activity
+}
+
+// MakeUpdateActivity will return a new Update activity with the provided aID.
+func MakeUpdateActivity(activityID *url.URL) vocab.ActivityStreamsUpdate {
+ activity := streams.NewActivityStreamsUpdate()
+ id := streams.NewJSONLDIdProperty()
+ id.Set(activityID)
+ activity.SetJSONLDId(id)
+
+ // CC the public if we're not treating ActivityPub as "private".
+ if !data.GetFederationIsPrivate() {
+ public, _ := url.Parse(PUBLIC)
+ cc := streams.NewActivityStreamsCcProperty()
+ cc.AppendIRI(public)
+ activity.SetActivityStreamsCc(cc)
+ }
+
+ return activity
+}
+
+// MakeNote will return a new Note object.
+func MakeNote(text string, noteIRI *url.URL, attributedToIRI *url.URL) vocab.ActivityStreamsNote {
+ note := streams.NewActivityStreamsNote()
+ content := streams.NewActivityStreamsContentProperty()
+ content.AppendXMLSchemaString(text)
+ note.SetActivityStreamsContent(content)
+ id := streams.NewJSONLDIdProperty()
+ id.Set(noteIRI)
+ note.SetJSONLDId(id)
+
+ published := streams.NewActivityStreamsPublishedProperty()
+ published.Set(time.Now())
+ note.SetActivityStreamsPublished(published)
+
+ attributedTo := attributedToIRI
+ attr := streams.NewActivityStreamsAttributedToProperty()
+ attr.AppendIRI(attributedTo)
+ note.SetActivityStreamsAttributedTo(attr)
+
+ // CC the public if we're not treating ActivityPub as "private".
+ if !data.GetFederationIsPrivate() {
+ public, _ := url.Parse(PUBLIC)
+ cc := streams.NewActivityStreamsCcProperty()
+ cc.AppendIRI(public)
+ note.SetActivityStreamsCc(cc)
+ }
+
+ return note
+}
diff --git a/activitypub/apmodels/actor.go b/activitypub/apmodels/actor.go
new file mode 100644
index 000000000..bdae45073
--- /dev/null
+++ b/activitypub/apmodels/actor.go
@@ -0,0 +1,263 @@
+package apmodels
+
+import (
+ "fmt"
+ "net/url"
+ "time"
+
+ "github.com/go-fed/activity/streams"
+ "github.com/go-fed/activity/streams/vocab"
+ "github.com/owncast/owncast/activitypub/crypto"
+ "github.com/owncast/owncast/core/data"
+ "github.com/owncast/owncast/models"
+ log "github.com/sirupsen/logrus"
+)
+
+// ActivityPubActor represents a single actor in handling ActivityPub activity.
+type ActivityPubActor struct {
+ // ActorIRI is the IRI of the remote actor.
+ ActorIri *url.URL
+ // FollowRequestIRI is the unique identifier of the follow request.
+ FollowRequestIri *url.URL
+ // Inbox is the inbox URL of the remote follower
+ Inbox *url.URL
+ // Name is the display name of the follower.
+ Name string
+ // Username is the account username of the remote actor.
+ Username string
+ // FullUsername is the username@account.tld representation of the user.
+ FullUsername string
+ // Image is the avatar image of the Actor.
+ Image *url.URL
+ // W3IDSecurityV1PublicKey is the public key of the actor.
+ W3IDSecurityV1PublicKey vocab.W3IDSecurityV1PublicKeyProperty
+ // DisabledAt is the time, if any, this follower was blocked/removed.
+ DisabledAt *time.Time
+}
+
+// DeleteRequest represents a request for delete.
+type DeleteRequest struct {
+ ActorIri string
+}
+
+// MakeActorFromPerson takes a full ActivityPub Person and returns our internal
+// representation of an actor.
+func MakeActorFromPerson(person vocab.ActivityStreamsPerson) ActivityPubActor {
+ apActor := ActivityPubActor{
+ ActorIri: person.GetJSONLDId().Get(),
+ Inbox: person.GetActivityStreamsInbox().GetIRI(),
+ Name: person.GetActivityStreamsName().Begin().GetXMLSchemaString(),
+ Username: person.GetActivityStreamsPreferredUsername().GetXMLSchemaString(),
+ FullUsername: GetFullUsernameFromPerson(person),
+ W3IDSecurityV1PublicKey: person.GetW3IDSecurityV1PublicKey(),
+ }
+
+ if person.GetActivityStreamsIcon() != nil && person.GetActivityStreamsIcon().Len() > 0 {
+ apActor.Image = person.GetActivityStreamsIcon().At(0).GetActivityStreamsImage().GetActivityStreamsUrl().Begin().GetIRI()
+ }
+
+ return apActor
+}
+
+// MakeActorFromService takes a full ActivityPub Service and returns our internal
+// representation of an actor.
+func MakeActorFromService(service vocab.ActivityStreamsService) ActivityPubActor {
+ apActor := ActivityPubActor{
+ ActorIri: service.GetJSONLDId().Get(),
+ Inbox: service.GetActivityStreamsInbox().GetIRI(),
+ Name: service.GetActivityStreamsName().Begin().GetXMLSchemaString(),
+ Username: service.GetActivityStreamsPreferredUsername().GetXMLSchemaString(),
+ FullUsername: GetFullUsernameFromService(service),
+ W3IDSecurityV1PublicKey: service.GetW3IDSecurityV1PublicKey(),
+ }
+
+ if service.GetActivityStreamsIcon() != nil && service.GetActivityStreamsIcon().Len() > 0 {
+ apActor.Image = service.GetActivityStreamsIcon().At(0).GetActivityStreamsImage().GetActivityStreamsUrl().Begin().GetIRI()
+ }
+
+ return apActor
+}
+
+// MakeActorPropertyWithID will return an actor property filled with the provided IRI.
+func MakeActorPropertyWithID(idIRI *url.URL) vocab.ActivityStreamsActorProperty {
+ actor := streams.NewActivityStreamsActorProperty()
+ actor.AppendIRI(idIRI)
+ return actor
+}
+
+// MakeServiceForAccount will create a new local actor service with the the provided username.
+func MakeServiceForAccount(accountName string) vocab.ActivityStreamsService {
+ actorIRI := MakeLocalIRIForAccount(accountName)
+
+ person := streams.NewActivityStreamsService()
+ nameProperty := streams.NewActivityStreamsNameProperty()
+ nameProperty.AppendXMLSchemaString(data.GetServerName())
+ person.SetActivityStreamsName(nameProperty)
+
+ preferredUsernameProperty := streams.NewActivityStreamsPreferredUsernameProperty()
+ preferredUsernameProperty.SetXMLSchemaString(accountName)
+ person.SetActivityStreamsPreferredUsername(preferredUsernameProperty)
+
+ inboxIRI := MakeLocalIRIForResource("/user/" + accountName + "/inbox")
+
+ inboxProp := streams.NewActivityStreamsInboxProperty()
+ inboxProp.SetIRI(inboxIRI)
+ person.SetActivityStreamsInbox(inboxProp)
+
+ needsFollowApprovalProperty := streams.NewActivityStreamsManuallyApprovesFollowersProperty()
+ needsFollowApprovalProperty.Set(data.GetFederationIsPrivate())
+ person.SetActivityStreamsManuallyApprovesFollowers(needsFollowApprovalProperty)
+
+ outboxIRI := MakeLocalIRIForResource("/user/" + accountName + "/outbox")
+
+ outboxProp := streams.NewActivityStreamsOutboxProperty()
+ outboxProp.SetIRI(outboxIRI)
+ person.SetActivityStreamsOutbox(outboxProp)
+
+ id := streams.NewJSONLDIdProperty()
+ id.Set(actorIRI)
+ person.SetJSONLDId(id)
+
+ publicKey := crypto.GetPublicKey(actorIRI)
+
+ publicKeyProp := streams.NewW3IDSecurityV1PublicKeyProperty()
+ publicKeyType := streams.NewW3IDSecurityV1PublicKey()
+
+ pubKeyIDProp := streams.NewJSONLDIdProperty()
+ pubKeyIDProp.Set(publicKey.ID)
+
+ publicKeyType.SetJSONLDId(pubKeyIDProp)
+
+ ownerProp := streams.NewW3IDSecurityV1OwnerProperty()
+ ownerProp.SetIRI(publicKey.Owner)
+ publicKeyType.SetW3IDSecurityV1Owner(ownerProp)
+
+ publicKeyPemProp := streams.NewW3IDSecurityV1PublicKeyPemProperty()
+ publicKeyPemProp.Set(publicKey.PublicKeyPem)
+ publicKeyType.SetW3IDSecurityV1PublicKeyPem(publicKeyPemProp)
+ publicKeyProp.AppendW3IDSecurityV1PublicKey(publicKeyType)
+ person.SetW3IDSecurityV1PublicKey(publicKeyProp)
+
+ if t, err := data.GetServerInitTime(); t != nil {
+ publishedDateProp := streams.NewActivityStreamsPublishedProperty()
+ publishedDateProp.Set(t.Time)
+ person.SetActivityStreamsPublished(publishedDateProp)
+ } else {
+ log.Errorln("unable to fetch server init time", err)
+ }
+
+ // Profile properties
+
+ // Avatar
+ userAvatarURLString := data.GetServerURL() + "/logo/external"
+ userAvatarURL, err := url.Parse(userAvatarURLString)
+ if err != nil {
+ log.Errorln("unable to parse user avatar url", userAvatarURLString, err)
+ }
+
+ image := streams.NewActivityStreamsImage()
+ imgProp := streams.NewActivityStreamsUrlProperty()
+ imgProp.AppendIRI(userAvatarURL)
+ image.SetActivityStreamsUrl(imgProp)
+ icon := streams.NewActivityStreamsIconProperty()
+ icon.AppendActivityStreamsImage(image)
+ person.SetActivityStreamsIcon(icon)
+
+ // Actor URL
+ urlProperty := streams.NewActivityStreamsUrlProperty()
+ urlProperty.AppendIRI(actorIRI)
+ person.SetActivityStreamsUrl(urlProperty)
+
+ // Profile header
+ headerImage := streams.NewActivityStreamsImage()
+ headerImgPropURL := streams.NewActivityStreamsUrlProperty()
+ headerImgPropURL.AppendIRI(userAvatarURL)
+ headerImage.SetActivityStreamsUrl(headerImgPropURL)
+ headerImageProp := streams.NewActivityStreamsImageProperty()
+ headerImageProp.AppendActivityStreamsImage(headerImage)
+ person.SetActivityStreamsImage(headerImageProp)
+
+ // Profile bio
+ summaryProperty := streams.NewActivityStreamsSummaryProperty()
+ summaryProperty.AppendXMLSchemaString(data.GetServerSummary())
+ person.SetActivityStreamsSummary(summaryProperty)
+
+ // Links
+ for _, link := range data.GetSocialHandles() {
+ addMetadataLinkToProfile(person, link.Platform, link.URL)
+ }
+
+ // Discoverable
+ discoverableProperty := streams.NewTootDiscoverableProperty()
+ discoverableProperty.Set(true)
+ person.SetTootDiscoverable(discoverableProperty)
+
+ // Followers
+ followersProperty := streams.NewActivityStreamsFollowersProperty()
+ followersURL := *actorIRI
+ followersURL.Path = actorIRI.Path + "/followers"
+ followersProperty.SetIRI(&followersURL)
+ person.SetActivityStreamsFollowers(followersProperty)
+
+ // Tags
+ tagProp := streams.NewActivityStreamsTagProperty()
+ for _, tagString := range data.GetServerMetadataTags() {
+ hashtag := MakeHashtag(tagString)
+ tagProp.AppendTootHashtag(hashtag)
+ }
+
+ person.SetActivityStreamsTag(tagProp)
+
+ // Work around an issue where a single attachment will not serialize
+ // as an array, so add another item to the mix.
+ if len(data.GetSocialHandles()) == 1 {
+ addMetadataLinkToProfile(person, "Owncast", "https://owncast.online")
+ }
+
+ return person
+}
+
+// GetFullUsernameFromPerson will return the user@host.tld formatted user given a person object.
+func GetFullUsernameFromPerson(person vocab.ActivityStreamsPerson) string {
+ hostname := person.GetJSONLDId().GetIRI().Hostname()
+ username := person.GetActivityStreamsPreferredUsername().GetXMLSchemaString()
+ fullUsername := fmt.Sprintf("%s@%s", username, hostname)
+
+ return fullUsername
+}
+
+// GetFullUsernameFromService will return the user@host.tld formatted user given a service object.
+func GetFullUsernameFromService(person vocab.ActivityStreamsService) string {
+ hostname := person.GetJSONLDId().GetIRI().Hostname()
+ username := person.GetActivityStreamsPreferredUsername().GetXMLSchemaString()
+ fullUsername := fmt.Sprintf("%s@%s", username, hostname)
+
+ return fullUsername
+}
+
+func addMetadataLinkToProfile(profile vocab.ActivityStreamsService, name string, url string) {
+ attachments := profile.GetActivityStreamsAttachment()
+ if attachments == nil {
+ attachments = streams.NewActivityStreamsAttachmentProperty()
+ }
+
+ displayName := name
+ socialHandle := models.GetSocialHandle(name)
+ if socialHandle != nil {
+ displayName = socialHandle.Platform
+ }
+
+ linkValue := fmt.Sprintf("<a href=\"%s\" rel=\"me nofollow noopener noreferrer\" target=\"_blank\">%s</a>", url, url)
+
+ attachment := streams.NewActivityStreamsObject()
+ attachmentProp := streams.NewJSONLDTypeProperty()
+ attachmentProp.AppendXMLSchemaString("PropertyValue")
+ attachment.SetJSONLDType(attachmentProp)
+ attachmentName := streams.NewActivityStreamsNameProperty()
+ attachmentName.AppendXMLSchemaString(displayName)
+ attachment.SetActivityStreamsName(attachmentName)
+ attachment.GetUnknownProperties()["value"] = linkValue
+
+ attachments.AppendActivityStreamsObject(attachment)
+ profile.SetActivityStreamsAttachment(attachments)
+}
diff --git a/activitypub/apmodels/actor_test.go b/activitypub/apmodels/actor_test.go
new file mode 100644
index 000000000..fb52f3e62
--- /dev/null
+++ b/activitypub/apmodels/actor_test.go
@@ -0,0 +1,168 @@
+package apmodels
+
+import (
+ "io/ioutil"
+ "net/url"
+ "os"
+ "testing"
+
+ "github.com/go-fed/activity/streams"
+ "github.com/go-fed/activity/streams/vocab"
+ "github.com/owncast/owncast/core/data"
+)
+
+func makeFakeService() vocab.ActivityStreamsService {
+ iri, _ := url.Parse("https://fake.fediverse.server/user/mrfoo")
+ name := "Mr Foo"
+ username := "foodawg"
+ inbox, _ := url.Parse("https://fake.fediverse.server/user/mrfoo/inbox")
+ userAvatarURL, _ := url.Parse("https://fake.fediverse.server/user/mrfoo/avatar.png")
+
+ service := streams.NewActivityStreamsService()
+
+ id := streams.NewJSONLDIdProperty()
+ id.Set(iri)
+ service.SetJSONLDId(id)
+
+ nameProperty := streams.NewActivityStreamsNameProperty()
+ nameProperty.AppendXMLSchemaString(name)
+ service.SetActivityStreamsName(nameProperty)
+
+ preferredUsernameProperty := streams.NewActivityStreamsPreferredUsernameProperty()
+ preferredUsernameProperty.SetXMLSchemaString(username)
+ service.SetActivityStreamsPreferredUsername(preferredUsernameProperty)
+
+ inboxProp := streams.NewActivityStreamsInboxProperty()
+ inboxProp.SetIRI(inbox)
+ service.SetActivityStreamsInbox(inboxProp)
+
+ image := streams.NewActivityStreamsImage()
+ imgProp := streams.NewActivityStreamsUrlProperty()
+ imgProp.AppendIRI(userAvatarURL)
+ image.SetActivityStreamsUrl(imgProp)
+ icon := streams.NewActivityStreamsIconProperty()
+ icon.AppendActivityStreamsImage(image)
+ service.SetActivityStreamsIcon(icon)
+
+ return service
+}
+
+func TestMain(m *testing.M) {
+ dbFile, err := ioutil.TempFile(os.TempDir(), "owncast-test-db.db")
+ if err != nil {
+ panic(err)
+ }
+
+ data.SetupPersistence(dbFile.Name())
+ data.SetServerURL("https://my.cool.site.biz")
+
+ m.Run()
+}
+
+func TestMakeActorFromService(t *testing.T) {
+ service := makeFakeService()
+ actor := MakeActorFromService(service)
+
+ if actor.ActorIri != service.GetJSONLDId().GetIRI() {
+ t.Errorf("actor.ID = %v, want %v", actor.ActorIri, service.GetJSONLDId().GetIRI())
+ }
+
+ if actor.Name != service.GetActivityStreamsName().At(0).GetXMLSchemaString() {
+ t.Errorf("actor.Name = %v, want %v", actor.Name, service.GetActivityStreamsName().At(0).GetXMLSchemaString())
+ }
+
+ if actor.Username != service.GetActivityStreamsPreferredUsername().GetXMLSchemaString() {
+ t.Errorf("actor.Username = %v, want %v", actor.Username, service.GetActivityStreamsPreferredUsername().GetXMLSchemaString())
+ }
+
+ if actor.Inbox != service.GetActivityStreamsInbox().GetIRI() {
+ t.Errorf("actor.Inbox = %v, want %v", actor.Inbox.String(), service.GetActivityStreamsInbox().GetIRI())
+ }
+
+ if actor.Image != service.GetActivityStreamsIcon().At(0).GetActivityStreamsImage().GetActivityStreamsUrl().At(0).GetIRI() {
+ t.Errorf("actor.Image = %v, want %v", actor.Image, service.GetActivityStreamsIcon().At(0).GetActivityStreamsImage().GetActivityStreamsUrl().At(0).GetIRI())
+ }
+}
+
+func TestMakeActorPropertyWithID(t *testing.T) {
+ iri, _ := url.Parse("https://fake.fediverse.server/user/mrfoo")
+ actor := MakeActorPropertyWithID(iri)
+
+ if actor.Begin().GetIRI() != iri {
+ t.Errorf("actor.IRI = %v, want %v", actor.Begin().GetIRI(), iri)
+ }
+}
+
+func TestGetFullUsernameFromPerson(t *testing.T) {
+ expected := "foodawg@fake.fediverse.server"
+ person := makeFakeService()
+ username := GetFullUsernameFromService(person)
+
+ if username != expected {
+ t.Errorf("actor.Username = %v, want %v", username, expected)
+ }
+}
+
+func TestAddMetadataLinkToProfile(t *testing.T) {
+ person := makeFakeService()
+ addMetadataLinkToProfile(person, "my site", "https://my.cool.site.biz")
+ attchment := person.GetActivityStreamsAttachment().At(0)
+
+ nameValue := attchment.GetActivityStreamsObject().GetActivityStreamsName().At(0).GetXMLSchemaString()
+ expected := "my site"
+ if nameValue != expected {
+ t.Errorf("attachment name = %v, want %v", nameValue, expected)
+ }
+
+ propertyValue := attchment.GetActivityStreamsObject().GetUnknownProperties()["value"]
+ expected = `<a href="https://my.cool.site.biz" rel="me nofollow noopener noreferrer" target="_blank">https://my.cool.site.biz</a>`
+ if propertyValue != expected {
+ t.Errorf("attachment value = %v, want %v", propertyValue, expected)
+ }
+}
+
+func TestMakeServiceForAccount(t *testing.T) {
+ person := MakeServiceForAccount("accountname")
+ expectedIRI := "https://my.cool.site.biz/federation/user/accountname"
+ if person.GetJSONLDId().Get().String() != expectedIRI {
+ t.Errorf("actor.IRI = %v, want %v", person.GetJSONLDId().Get().String(), expectedIRI)
+ }
+
+ if person.GetActivityStreamsPreferredUsername().GetXMLSchemaString() != "accountname" {
+ t.Errorf("actor.PreferredUsername = %v, want %v", person.GetActivityStreamsPreferredUsername().GetXMLSchemaString(), expectedIRI)
+ }
+
+ expectedInbox := "https://my.cool.site.biz/federation/user/accountname/inbox"
+ if person.GetActivityStreamsInbox().GetIRI().String() != expectedInbox {
+ t.Errorf("actor.Inbox = %v, want %v", person.GetActivityStreamsInbox().GetIRI().String(), expectedInbox)
+ }
+
+ expectedOutbox := "https://my.cool.site.biz/federation/user/accountname/outbox"
+ if person.GetActivityStreamsOutbox().GetIRI().String() != expectedOutbox {
+ t.Errorf("actor.Outbox = %v, want %v", person.GetActivityStreamsOutbox().GetIRI().String(), expectedOutbox)
+ }
+
+ expectedFollowers := "https://my.cool.site.biz/federation/user/accountname/followers"
+ if person.GetActivityStreamsFollowers().GetIRI().String() != expectedFollowers {
+ t.Errorf("actor.Followers = %v, want %v", person.GetActivityStreamsFollowers().GetIRI().String(), expectedFollowers)
+ }
+
+ expectedName := "Owncast"
+ if person.GetActivityStreamsName().Begin().GetXMLSchemaString() != expectedName {
+ t.Errorf("actor.Name = %v, want %v", person.GetActivityStreamsName().Begin().GetXMLSchemaString(), expectedName)
+ }
+
+ expectedAvatar := "https://my.cool.site.biz/logo/external"
+ if person.GetActivityStreamsIcon().At(0).GetActivityStreamsImage().GetActivityStreamsUrl().Begin().GetIRI().String() != expectedAvatar {
+ t.Errorf("actor.Avatar = %v, want %v", person.GetActivityStreamsIcon().At(0).GetActivityStreamsImage().GetActivityStreamsUrl().Begin().GetIRI().String(), expectedAvatar)
+ }
+
+ expectedSummary := "Welcome to your new Owncast server! This description can be changed in the admin. Visit https://owncast.online/docs/configuration/ to learn more."
+ if person.GetActivityStreamsSummary().At(0).GetXMLSchemaString() != expectedSummary {
+ t.Errorf("actor.Summary = %v, want %v", person.GetActivityStreamsSummary().At(0).GetXMLSchemaString(), expectedSummary)
+ }
+
+ if person.GetActivityStreamsUrl().At(0).GetIRI().String() != expectedIRI {
+ t.Errorf("actor.URL = %v, want %v", person.GetActivityStreamsUrl().At(0).GetIRI().String(), expectedIRI)
+ }
+}
diff --git a/activitypub/apmodels/hashtag.go b/activitypub/apmodels/hashtag.go
new file mode 100644
index 000000000..b7aca1d44
--- /dev/null
+++ b/activitypub/apmodels/hashtag.go
@@ -0,0 +1,24 @@
+package apmodels
+
+import (
+ "net/url"
+
+ "github.com/go-fed/activity/streams"
+ "github.com/go-fed/activity/streams/vocab"
+)
+
+// MakeHashtag will create and return a mastodon toot hashtag object with the provided name.
+func MakeHashtag(name string) vocab.TootHashtag {
+ u, _ := url.Parse("https://directory.owncast.online/tags/" + name)
+
+ hashtag := streams.NewTootHashtag()
+ hashtagName := streams.NewActivityStreamsNameProperty()
+ hashtagName.AppendXMLSchemaString("#" + name)
+ hashtag.SetActivityStreamsName(hashtagName)
+
+ hashtagHref := streams.NewActivityStreamsHrefProperty()
+ hashtagHref.Set(u)
+ hashtag.SetActivityStreamsHref(hashtagHref)
+
+ return hashtag
+}
diff --git a/activitypub/apmodels/inboxRequest.go b/activitypub/apmodels/inboxRequest.go
new file mode 100644
index 000000000..4a0c9f36b
--- /dev/null
+++ b/activitypub/apmodels/inboxRequest.go
@@ -0,0 +1,10 @@
+package apmodels
+
+import "net/http"
+
+// InboxRequest represents an inbound request to the ActivityPub inbox.
+type InboxRequest struct {
+ Request *http.Request
+ ForLocalAccount string
+ Body []byte
+}
diff --git a/activitypub/apmodels/message.go b/activitypub/apmodels/message.go
new file mode 100644
index 000000000..67d124982
--- /dev/null
+++ b/activitypub/apmodels/message.go
@@ -0,0 +1,50 @@
+package apmodels
+
+import (
+ "net/url"
+
+ "github.com/go-fed/activity/streams"
+ "github.com/go-fed/activity/streams/vocab"
+)
+
+// CreateCreateActivity will create a new Create Activity model with the provided ID and IRI.
+func CreateCreateActivity(id string, localAccountIRI *url.URL) vocab.ActivityStreamsCreate {
+ objectID := MakeLocalIRIForResource(id)
+ message := MakeCreateActivity(objectID)
+
+ actorProp := streams.NewActivityStreamsActorProperty()
+ actorProp.AppendIRI(localAccountIRI)
+ message.SetActivityStreamsActor(actorProp)
+
+ return message
+}
+
+// AddImageAttachmentToNote will add the provided image URL to the provided note object.
+func AddImageAttachmentToNote(note vocab.ActivityStreamsNote, image string) {
+ imageURL, err := url.Parse(image)
+ if err != nil {
+ return
+ }
+
+ attachments := note.GetActivityStreamsAttachment()
+ if attachments == nil {
+ attachments = streams.NewActivityStreamsAttachmentProperty()
+ }
+
+ urlProp := streams.NewActivityStreamsUrlProperty()
+ urlProp.AppendIRI(imageURL)
+
+ apImage := streams.NewActivityStreamsImage()
+ apImage.SetActivityStreamsUrl(urlProp)
+
+ imageProp := streams.NewActivityStreamsImageProperty()
+ imageProp.AppendActivityStreamsImage(apImage)
+
+ imageDescription := streams.NewActivityStreamsContentProperty()
+ imageDescription.AppendXMLSchemaString("Live stream preview")
+ apImage.SetActivityStreamsContent(imageDescription)
+
+ attachments.AppendActivityStreamsImage(apImage)
+
+ note.SetActivityStreamsAttachment(attachments)
+}
diff --git a/activitypub/apmodels/utils.go b/activitypub/apmodels/utils.go
new file mode 100644
index 000000000..056d527b0
--- /dev/null
+++ b/activitypub/apmodels/utils.go
@@ -0,0 +1,62 @@
+package apmodels
+
+import (
+ "encoding/json"
+ "net/url"
+ "path"
+
+ "github.com/go-fed/activity/streams"
+ "github.com/go-fed/activity/streams/vocab"
+ "github.com/owncast/owncast/core/data"
+ log "github.com/sirupsen/logrus"
+)
+
+// MakeRemoteIRIForResource will create an IRI for a remote location.
+func MakeRemoteIRIForResource(resourcePath string, host string) (*url.URL, error) {
+ generatedURL := "https://" + host
+ u, err := url.Parse(generatedURL)
+ if err != nil {
+ return nil, err
+ }
+
+ u.Path = path.Join(u.Path, "federation", resourcePath)
+
+ return u, nil
+}
+
+// MakeLocalIRIForResource will create an IRI for the local server.
+func MakeLocalIRIForResource(resourcePath string) *url.URL {
+ host := data.GetServerURL()
+ u, err := url.Parse(host)
+ if err != nil {
+ log.Errorln("unable to parse local IRI url", host, err)
+ return nil
+ }
+
+ u.Path = path.Join(u.Path, "federation", resourcePath)
+
+ return u
+}
+
+// MakeLocalIRIForAccount will return a full IRI for the local server account username.
+func MakeLocalIRIForAccount(account string) *url.URL {
+ host := data.GetServerURL()
+ u, err := url.Parse(host)
+ if err != nil {
+ log.Errorln("unable to parse local IRI account server url", err)
+ return nil
+ }
+
+ u.Path = path.Join(u.Path, "federation", "user", account)
+
+ return u
+}
+
+// Serialize will serialize an ActivityPub object to a byte slice.
+func Serialize(obj vocab.Type) ([]byte, error) {
+ var jsonmap map[string]interface{}
+ jsonmap, _ = streams.Serialize(obj)
+ b, err := json.Marshal(jsonmap)
+
+ return b, err
+}
diff --git a/activitypub/apmodels/webfinger.go b/activitypub/apmodels/webfinger.go
new file mode 100644
index 000000000..c24199dbb
--- /dev/null
+++ b/activitypub/apmodels/webfinger.go
@@ -0,0 +1,43 @@
+package apmodels
+
+import (
+ "fmt"
+)
+
+// WebfingerResponse represents a Webfinger response.
+type WebfingerResponse struct {
+ Aliases []string `json:"aliases"`
+ Subject string `json:"subject"`
+ Links []Link `json:"links"`
+}
+
+// Link represents a Webfinger response Link entity.
+type Link struct {
+ Rel string `json:"rel"`
+ Type string `json:"type"`
+ Href string `json:"href"`
+}
+
+// MakeWebfingerResponse will create a new Webfinger response.
+func MakeWebfingerResponse(account string, inbox string, host string) WebfingerResponse {
+ accountIRI := MakeLocalIRIForAccount(account)
+
+ return WebfingerResponse{
+ Subject: fmt.Sprintf("acct:%s@%s", account, host),
+ Aliases: []string{
+ accountIRI.String(),
+ },
+ Links: []Link{
+ {
+ Rel: "self",
+ Type: "application/activity+json",
+ Href: accountIRI.String(),
+ },
+ {
+ Rel: "http://webfinger.net/rel/profile-page",
+ Type: "text/html",
+ Href: accountIRI.String(),
+ },
+ },
+ }
+}
diff --git a/activitypub/controllers/actors.go b/activitypub/controllers/actors.go
new file mode 100644
index 000000000..c3d758569
--- /dev/null
+++ b/activitypub/controllers/actors.go
@@ -0,0 +1,58 @@
+package controllers
+
+import (
+ "net/http"
+ "strings"
+
+ log "github.com/sirupsen/logrus"
+
+ "github.com/owncast/owncast/activitypub/apmodels"
+ "github.com/owncast/owncast/activitypub/crypto"
+ "github.com/owncast/owncast/activitypub/requests"
+ "github.com/owncast/owncast/core/data"
+)
+
+// ActorHandler handles requests for a single actor.
+func ActorHandler(w http.ResponseWriter, r *http.Request) {
+ if !data.GetFederationEnabled() {
+ w.WriteHeader(http.StatusMethodNotAllowed)
+ return
+ }
+
+ pathComponents := strings.Split(r.URL.Path, "/")
+ accountName := pathComponents[3]
+
+ if _, valid := data.GetFederatedInboxMap()[accountName]; !valid {
+ // User is not valid
+ w.WriteHeader(http.StatusNotFound)
+ return
+ }
+
+ // If this request is for an actor's inbox then pass
+ // the request to the inbox controller.
+ if len(pathComponents) == 5 && pathComponents[4] == "inbox" {
+ InboxHandler(w, r)
+ return
+ } else if len(pathComponents) == 5 && pathComponents[4] == "outbox" {
+ OutboxHandler(w, r)
+ return
+ } else if len(pathComponents) == 5 && pathComponents[4] == "followers" {
+ // followers list
+ FollowersHandler(w, r)
+ return
+ } else if len(pathComponents) == 5 && pathComponents[4] == "following" {
+ // following list (none)
+ w.WriteHeader(http.StatusNotFound)
+ return
+ }
+
+ actorIRI := apmodels.MakeLocalIRIForAccount(accountName)
+ publicKey := crypto.GetPublicKey(actorIRI)
+ person := apmodels.MakeServiceForAccount(accountName)
+
+ if err := requests.WriteStreamResponse(person, w, publicKey); err != nil {
+ log.Errorln("unable to write stream response for actor handler", err)
+ w.WriteHeader(http.StatusInternalServerError)
+ return
+ }
+}
diff --git a/activitypub/controllers/followers.go b/activitypub/controllers/followers.go
new file mode 100644
index 000000000..22e60c6dc
--- /dev/null
+++ b/activitypub/controllers/followers.go
@@ -0,0 +1,166 @@
+package controllers
+
+import (
+ "fmt"
+ "net/http"
+ "net/url"
+ "strconv"
+ "strings"
+
+ "github.com/pkg/errors"
+ log "github.com/sirupsen/logrus"
+
+ "github.com/go-fed/activity/streams"
+ "github.com/go-fed/activity/streams/vocab"
+ "github.com/owncast/owncast/activitypub/apmodels"
+ "github.com/owncast/owncast/activitypub/crypto"
+ "github.com/owncast/owncast/activitypub/persistence"
+ "github.com/owncast/owncast/activitypub/requests"
+ "github.com/owncast/owncast/core/data"
+)
+
+const (
+ followersPageSize = 50
+)
+
+// FollowersHandler will return the list of remote followers on the Fediverse.
+func FollowersHandler(w http.ResponseWriter, r *http.Request) {
+ if r.Method != "GET" {
+ w.WriteHeader(http.StatusMethodNotAllowed)
+ return
+ }
+
+ var response interface{}
+ var err error
+ if r.URL.Query().Get("page") != "" {
+ response, err = getFollowersPage(r.URL.Query().Get("page"), r)
+ } else {
+ response, err = getInitialFollowersRequest(r)
+ }
+
+ if response == nil {
+ w.WriteHeader(http.StatusInternalServerError)
+ return
+ }
+
+ if err != nil {
+ _, _ = w.Write([]byte(err.Error()))
+ w.WriteHeader(http.StatusInternalServerError)
+ return
+ }
+
+ pathComponents := strings.Split(r.URL.Path, "/")
+ accountName := pathComponents[3]
+ actorIRI := apmodels.MakeLocalIRIForAccount(accountName)
+ publicKey := crypto.GetPublicKey(actorIRI)
+
+ if err := requests.WriteStreamResponse(response.(vocab.Type), w, publicKey); err != nil {
+ log.Errorln("unable to write stream response for followers handler", err)
+ }
+}
+
+func getInitialFollowersRequest(r *http.Request) (vocab.ActivityStreamsOrderedCollection, error) {
+ followerCount, _ := persistence.GetFollowerCount()
+ collection := streams.NewActivityStreamsOrderedCollection()
+ idProperty := streams.NewJSONLDIdProperty()
+ id, err := createPageURL(r, nil)
+ if err != nil {
+ return nil, errors.Wrap(err, "unable to create followers page property")
+ }
+ idProperty.SetIRI(id)
+ collection.SetJSONLDId(idProperty)
+
+ totalItemsProperty := streams.NewActivityStreamsTotalItemsProperty()
+ totalItemsProperty.Set(int(followerCount))
+ collection.SetActivityStreamsTotalItems(totalItemsProperty)
+
+ first := streams.NewActivityStreamsFirstProperty()
+ page := "1"
+ firstIRI, err := createPageURL(r, &page)
+ if err != nil {
+ return nil, errors.Wrap(err, "unable to create first page property")
+ }
+
+ first.SetIRI(firstIRI)
+ collection.SetActivityStreamsFirst(first)
+
+ return collection, nil
+}
+
+func getFollowersPage(page string, r *http.Request) (vocab.ActivityStreamsOrderedCollectionPage, error) {
+ pageInt, err := strconv.Atoi(page)
+ if err != nil {
+ return nil, errors.Wrap(err, "unable to parse page number")
+ }
+
+ followerCount, err := persistence.GetFollowerCount()
+ if err != nil {
+ return nil, errors.Wrap(err, "unable to get follower count")
+ }
+
+ followers, err := persistence.GetFederationFollowers(followersPageSize, (pageInt-1)*followersPageSize)
+ if err != nil {
+ return nil, errors.Wrap(err, "unable to get federation followers")
+ }
+
+ collectionPage := streams.NewActivityStreamsOrderedCollectionPage()
+ idProperty := streams.NewJSONLDIdProperty()
+ id, err := createPageURL(r, &page)
+ if err != nil {
+ return nil, errors.Wrap(err, "unable to create followers page ID")
+ }
+ idProperty.SetIRI(id)
+ collectionPage.SetJSONLDId(idProperty)
+
+ orderedItems := streams.NewActivityStreamsOrderedItemsProperty()
+
+ for _, follower := range followers {
+ u, _ := url.Parse(follower.ActorIRI)
+ orderedItems.AppendIRI(u)
+ }
+ collectionPage.SetActivityStreamsOrderedItems(orderedItems)
+
+ partOf := streams.NewActivityStreamsPartOfProperty()
+ partOfIRI, err := createPageURL(r, nil)
+ if err != nil {
+ return nil, errors.Wrap(err, "unable to create partOf property for followers page")
+ }
+
+ partOf.SetIRI(partOfIRI)
+ collectionPage.SetActivityStreamsPartOf(partOf)
+
+ if pageInt*followersPageSize < int(followerCount) {
+ next := streams.NewActivityStreamsNextProperty()
+ nextPage := fmt.Sprintf("%d", pageInt+1)
+ nextIRI, err := createPageURL(r, &nextPage)
+ if err != nil {
+ return nil, errors.Wrap(err, "unable to create next page property")
+ }
+
+ next.SetIRI(nextIRI)
+ collectionPage.SetActivityStreamsNext(next)
+ }
+
+ return collectionPage, nil
+}
+
+func createPageURL(r *http.Request, page *string) (*url.URL, error) {
+ domain := data.GetServerURL()
+ if domain == "" {
+ return nil, errors.New("unable to get server URL")
+ }
+
+ pageURL, err := url.Parse(domain)
+ if err != nil {
+ return nil, errors.Wrap(err, "unable to parse server URL")
+ }
+
+ if page != nil {
+ query := pageURL.Query()
+ query.Add("page", *page)
+ pageURL.RawQuery = query.Encode()
+ }
+ pageURL.Path = r.URL.Path
+
+ return pageURL, nil
+}
diff --git a/activitypub/controllers/inbox.go b/activitypub/controllers/inbox.go
new file mode 100644
index 000000000..29955d47d
--- /dev/null
+++ b/activitypub/controllers/inbox.go
@@ -0,0 +1,56 @@
+package controllers
+
+import (
+ "io"
+ "net/http"
+ "strings"
+
+ "github.com/owncast/owncast/activitypub/apmodels"
+ "github.com/owncast/owncast/activitypub/inbox"
+ "github.com/owncast/owncast/core/data"
+
+ log "github.com/sirupsen/logrus"
+)
+
+// InboxHandler handles inbound federated requests.
+func InboxHandler(w http.ResponseWriter, r *http.Request) {
+ if r.Method == http.MethodPost {
+ acceptInboxRequest(w, r)
+ } else {
+ w.WriteHeader(http.StatusMethodNotAllowed)
+ }
+}
+
+func acceptInboxRequest(w http.ResponseWriter, r *http.Request) {
+ if !data.GetFederationEnabled() {
+ w.WriteHeader(http.StatusMethodNotAllowed)
+ return
+ }
+
+ urlPathComponents := strings.Split(r.URL.Path, "/")
+ var forLocalAccount string
+ if len(urlPathComponents) == 5 {
+ forLocalAccount = urlPathComponents[3]
+ } else {
+ log.Errorln("Unable to determine username from url path")
+ w.WriteHeader(http.StatusNotFound)
+ return
+ }
+
+ // The account this request is for must match the account name we have set
+ // for federation.
+ if forLocalAccount != data.GetFederationUsername() {
+ w.WriteHeader(http.StatusNotFound)
+ return
+ }
+
+ data, err := io.ReadAll(r.Body)
+ if err != nil {
+ log.Errorln("Unable to read inbox request payload", err)
+ return
+ }
+
+ inboxRequest := apmodels.InboxRequest{Request: r, ForLocalAccount: forLocalAccount, Body: data}
+ inbox.AddToQueue(inboxRequest)
+ w.WriteHeader(http.StatusAccepted)
+}
diff --git a/activitypub/controllers/nodeinfo.go b/activitypub/controllers/nodeinfo.go
new file mode 100644
index 000000000..22c1fa6e3
--- /dev/null
+++ b/activitypub/controllers/nodeinfo.go
@@ -0,0 +1,285 @@
+package controllers
+
+import (
+ "fmt"
+ "net/http"
+ "net/url"
+
+ "github.com/owncast/owncast/activitypub/apmodels"
+ "github.com/owncast/owncast/activitypub/crypto"
+ "github.com/owncast/owncast/activitypub/persistence"
+ "github.com/owncast/owncast/activitypub/requests"
+ "github.com/owncast/owncast/config"
+ "github.com/owncast/owncast/core/data"
+ log "github.com/sirupsen/logrus"
+)
+
+// NodeInfoController returns the V1 node info response.
+func NodeInfoController(w http.ResponseWriter, r *http.Request) {
+ type links struct {
+ Rel string `json:"rel"`
+ Href string `json:"href"`
+ }
+
+ type response struct {
+ Links []links `json:"links"`
+ }
+
+ if !data.GetFederationEnabled() {
+ w.WriteHeader(http.StatusMethodNotAllowed)
+ return
+ }
+
+ serverURL := data.GetServerURL()
+ if serverURL == "" {
+ w.WriteHeader(http.StatusNotFound)
+ return
+ }
+
+ v2, err := url.Parse(serverURL)
+ if err != nil {
+ w.WriteHeader(http.StatusInternalServerError)
+ return
+ }
+
+ v2.Path = "nodeinfo/2.0"
+
+ res := response{
+ Links: []links{
+ {
+ Rel: "http://nodeinfo.diaspora.software/ns/schema/2.0",
+ Href: v2.String(),
+ },
+ },
+ }
+ if err := writeResponse(res, w); err != nil {
+ log.Errorln(err)
+ }
+}
+
+// NodeInfoV2Controller returns the V2 node info response.
+func NodeInfoV2Controller(w http.ResponseWriter, r *http.Request) {
+ type software struct {
+ Name string `json:"name"`
+ Version string `json:"version"`
+ }
+ type users struct {
+ Total int `json:"total"`
+ ActiveMonth int `json:"activeMonth"`
+ ActiveHalfyear int `json:"activeHalfyear"`
+ }
+ type usage struct {
+ Users users `json:"users"`
+ LocalPosts int `json:"localPosts"`
+ }
+ type response struct {
+ Version string `json:"version"`
+ Software software `json:"software"`
+ Protocols []string `json:"protocols"`
+ Usage usage `json:"usage"`
+ OpenRegistrations bool `json:"openRegistrations"`
+ }
+
+ if !data.GetFederationEnabled() {
+ w.WriteHeader(http.StatusMethodNotAllowed)
+ return
+ }
+
+ localPostCount, _ := persistence.GetLocalPostCount()
+
+ res := response{
+ Version: "2.0",
+ Software: software{
+ Name: "Owncast",
+ Version: config.VersionNumber,
+ },
+ Usage: usage{
+ Users: users{
+ Total: 1,
+ ActiveMonth: 1,
+ ActiveHalfyear: 1,
+ },
+ LocalPosts: int(localPostCount),
+ },
+ OpenRegistrations: false,
+ Protocols: []string{"activitypub"},
+ }
+
+ if err := writeResponse(res, w); err != nil {
+ log.Errorln(err)
+ }
+}
+
+// XNodeInfo2Controller returns the x-nodeinfo2.
+func XNodeInfo2Controller(w http.ResponseWriter, r *http.Request) {
+ type Organization struct {
+ Name string `json:"name"`
+ Contact string `json:"contact"`
+ }
+ type Server struct {
+ BaseURL string `json:"baseUrl"`
+ Version string `json:"version"`
+ Name string `json:"name"`
+ Software string `json:"software"`
+ }
+ type Services struct {
+ Outbound []string `json:"outbound"`
+ Inbound []string `json:"inbound"`
+ }
+ type Users struct {
+ ActiveWeek int `json:"activeWeek"`
+ Total int `json:"total"`
+ ActiveMonth int `json:"activeMonth"`
+ ActiveHalfyear int `json:"activeHalfyear"`
+ }
+ type Usage struct {
+ Users Users `json:"users"`
+ LocalPosts int `json:"localPosts"`
+ LocalComments int `json:"localComments"`
+ }
+ type response struct {
+ Organization Organization `json:"organization"`
+ Server Server `json:"server"`
+ Services Services `json:"services"`
+ Protocols []string `json:"protocols"`
+ Version string `json:"version"`
+ OpenRegistrations bool `json:"openRegistrations"`
+ Usage Usage `json:"usage"`
+ }
+
+ if !data.GetFederationEnabled() {
+ w.WriteHeader(http.StatusMethodNotAllowed)
+ return
+ }
+
+ serverURL := data.GetServerURL()
+ if serverURL == "" {
+ w.WriteHeader(http.StatusNotFound)
+ return
+ }
+
+ localPostCount, _ := persistence.GetLocalPostCount()
+
+ res := &response{
+ Organization: Organization{
+ Name: data.GetServerName(),
+ Contact: serverURL,
+ },
+ Server: Server{
+ BaseURL: serverURL,
+ Version: config.VersionNumber,
+ Name: "owncast",
+ Software: "owncast",
+ },
+ Services: Services{
+ Inbound: []string{"activitypub"},
+ Outbound: []string{"activitypub"},
+ },
+ Protocols: []string{"activitypub"},
+ Version: config.VersionNumber,
+ Usage: Usage{
+ Users: Users{
+ ActiveWeek: 1,
+ Total: 1,
+ ActiveMonth: 1,
+ ActiveHalfyear: 1,
+ },
+
+ LocalPosts: int(localPostCount),
+ LocalComments: 0,
+ },
+ }
+
+ if err := writeResponse(res, w); err != nil {
+ log.Errorln(err)
+ }
+}
+
+// InstanceV1Controller returns the v1 instance details.
+func InstanceV1Controller(w http.ResponseWriter, r *http.Request) {
+ type Stats struct {
+ UserCount int `json:"user_count"`
+ StatusCount int `json:"status_count"`
+ DomainCount int `json:"domain_count"`
+ }
+ type response struct {
+ URI string `json:"uri"`
+ Title string `json:"title"`
+ ShortDescription string `json:"short_description"`
+ Description string `json:"description"`
+ Version string `json:"version"`
+ Stats Stats `json:"stats"`
+ Thumbnail string `json:"thumbnail"`
+ Languages []string `json:"languages"`
+ Registrations bool `json:"registrations"`
+ ApprovalRequired bool `json:"approval_required"`
+ InvitesEnabled bool `json:"invites_enabled"`
+ }
+
+ if !data.GetFederationEnabled() {
+ w.WriteHeader(http.StatusMethodNotAllowed)
+ return
+ }
+
+ serverURL := data.GetServerURL()
+ if serverURL == "" {
+ w.WriteHeader(http.StatusNotFound)
+ return
+ }
+
+ thumbnail, err := url.Parse(serverURL)
+ if err != nil {
+ w.WriteHeader(http.StatusInternalServerError)
+ return
+ }
+
+ thumbnail.Path = "/logo/external"
+ localPostCount, _ := persistence.GetLocalPostCount()
+
+ res := response{
+ URI: serverURL,
+ Title: data.GetServerName(),
+ ShortDescription: data.GetServerSummary(),
+ Description: data.GetServerSummary(),
+ Version: config.GetReleaseString(),
+ Stats: Stats{
+ UserCount: 1,
+ StatusCount: int(localPostCount),
+ DomainCount: 0,
+ },
+ Thumbnail: thumbnail.String(),
+ Registrations: false,
+ ApprovalRequired: false,
+ InvitesEnabled: false,
+ }
+
+ if err := writeResponse(res, w); err != nil {
+ log.Errorln(err)
+ }
+}
+
+func writeResponse(payload interface{}, w http.ResponseWriter) error {
+ accountName := data.GetDefaultFederationUsername()
+ actorIRI := apmodels.MakeLocalIRIForAccount(accountName)
+ publicKey := crypto.GetPublicKey(actorIRI)
+
+ return requests.WritePayloadResponse(payload, w, publicKey)
+}
+
+// HostMetaController points to webfinger.
+func HostMetaController(w http.ResponseWriter, r *http.Request) {
+ serverURL := data.GetServerURL()
+ if serverURL == "" {
+ w.WriteHeader(http.StatusNotFound)
+ return
+ }
+
+ res := fmt.Sprintf(`<?xml version="1.0" encoding="UTF-8"?>
+ <XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0">
+ <Link rel="lrdd" type="application/json" template="%s/.well-known/webfinger?resource={uri}"/>
+ </XRD>`, serverURL)
+
+ if _, err := w.Write([]byte(res)); err != nil {
+ log.Errorln(err)
+ }
+}
diff --git a/activitypub/controllers/object.go b/activitypub/controllers/object.go
new file mode 100644
index 000000000..bdb03d748
--- /dev/null
+++ b/activitypub/controllers/object.go
@@ -0,0 +1,42 @@
+package controllers
+
+import (
+ "net/http"
+ "strings"
+
+ "github.com/owncast/owncast/activitypub/apmodels"
+ "github.com/owncast/owncast/activitypub/crypto"
+ "github.com/owncast/owncast/activitypub/persistence"
+ "github.com/owncast/owncast/activitypub/requests"
+ "github.com/owncast/owncast/core/data"
+ log "github.com/sirupsen/logrus"
+)
+
+// ObjectHandler handles requests for a single federated ActivityPub object.
+func ObjectHandler(w http.ResponseWriter, r *http.Request) {
+ if !data.GetFederationEnabled() {
+ w.WriteHeader(http.StatusMethodNotAllowed)
+ return
+ }
+
+ // If private federation mode is enabled do not allow access to objects.
+ if data.GetFederationIsPrivate() {
+ w.WriteHeader(http.StatusNotFound)
+ return
+ }
+
+ iri := strings.Join([]string{strings.TrimSuffix(data.GetServerURL(), "/"), r.URL.Path}, "")
+ object, _, _, err := persistence.GetObjectByIRI(iri)
+ if err != nil {
+ w.WriteHeader(http.StatusNotFound)
+ return
+ }
+
+ accountName := data.GetDefaultFederationUsername()
+ actorIRI := apmodels.MakeLocalIRIForAccount(accountName)
+ publicKey := crypto.GetPublicKey(actorIRI)
+
+ if err := requests.WriteResponse([]byte(object), w, publicKey); err != nil {
+ log.Errorln(err)
+ }
+}
diff --git a/activitypub/controllers/outbox.go b/activitypub/controllers/outbox.go
new file mode 100644
index 000000000..5aa75df0f
--- /dev/null
+++ b/activitypub/controllers/outbox.go
@@ -0,0 +1,156 @@
+package controllers
+
+import (
+ "fmt"
+ "net/http"
+ "strconv"
+ "strings"
+
+ "github.com/go-fed/activity/streams"
+ "github.com/go-fed/activity/streams/vocab"
+ "github.com/owncast/owncast/activitypub/apmodels"
+ "github.com/owncast/owncast/activitypub/crypto"
+ "github.com/owncast/owncast/activitypub/persistence"
+ "github.com/owncast/owncast/activitypub/requests"
+ "github.com/pkg/errors"
+ log "github.com/sirupsen/logrus"
+)
+
+const (
+ outboxPageSize = 50
+)
+
+// OutboxHandler will handle requests for the local ActivityPub outbox.
+func OutboxHandler(w http.ResponseWriter, r *http.Request) {
+ if r.Method != http.MethodGet {
+ w.WriteHeader(http.StatusMethodNotAllowed)
+ return
+ }
+
+ var response interface{}
+ var err error
+ if r.URL.Query().Get("page") != "" {
+ response, err = getOutboxPage(r.URL.Query().Get("page"), r)
+ } else {
+ response, err = getInitialOutboxHandler(r)
+ }
+
+ if response == nil {
+ w.WriteHeader(http.StatusInternalServerError)
+ return
+ }
+
+ if err != nil {
+ _, _ = w.Write([]byte(err.Error()))
+ w.WriteHeader(http.StatusInternalServerError)
+ return
+ }
+
+ pathComponents := strings.Split(r.URL.Path, "/")
+ accountName := pathComponents[3]
+ actorIRI := apmodels.MakeLocalIRIForAccount(accountName)
+ publicKey := crypto.GetPublicKey(actorIRI)
+
+ if err := requests.WriteStreamResponse(response.(vocab.Type), w, publicKey); err != nil {
+ log.Errorln("unable to write stream response for outbox handler", err)
+ }
+}
+
+// ActorObjectHandler will handle the request for a single ActivityPub object.
+func ActorObjectHandler(w http.ResponseWriter, r *http.Request) {
+ object, _, _, err := persistence.GetObjectByIRI(r.URL.Path)
+ if err != nil {
+ w.WriteHeader(http.StatusNotFound)
+ return
+ // controllers.WriteSimpleResponse(w, false, err.Error())
+ }
+
+ if _, err := w.Write([]byte(object)); err != nil {
+ log.Errorln(err)
+ }
+}
+
+func getInitialOutboxHandler(r *http.Request) (vocab.ActivityStreamsOrderedCollection, error) {
+ collection := streams.NewActivityStreamsOrderedCollection()
+
+ idProperty := streams.NewJSONLDIdProperty()
+ id, err := createPageURL(r, nil)
+ if err != nil {
+ return nil, errors.Wrap(err, "unable to create followers page property")
+ }
+ idProperty.SetIRI(id)
+ collection.SetJSONLDId(idProperty)
+
+ totalPosts, err := persistence.GetOutboxPostCount()
+ if err != nil {
+ return nil, errors.Wrap(err, "unable to get outbox post count")
+ }
+ totalItemsProperty := streams.NewActivityStreamsTotalItemsProperty()
+ totalItemsProperty.Set(int(totalPosts))
+ collection.SetActivityStreamsTotalItems(totalItemsProperty)
+
+ first := streams.NewActivityStreamsFirstProperty()
+ page := "1"
+ firstIRI, err := createPageURL(r, &page)
+ if err != nil {
+ return nil, errors.Wrap(err, "unable to create first page property")
+ }
+
+ first.SetIRI(firstIRI)
+ collection.SetActivityStreamsFirst(first)
+
+ return collection, nil
+}
+
+func getOutboxPage(page string, r *http.Request) (vocab.ActivityStreamsOrderedCollectionPage, error) {
+ pageInt, err := strconv.Atoi(page)
+ if err != nil {
+ return nil, errors.Wrap(err, "unable to parse page number")
+ }
+
+ postCount, err := persistence.GetOutboxPostCount()
+ if err != nil {
+ return nil, errors.Wrap(err, "unable to get outbox post count")
+ }
+
+ collectionPage := streams.NewActivityStreamsOrderedCollectionPage()
+ idProperty := streams.NewJSONLDIdProperty()
+ id, err := createPageURL(r, &page)
+ if err != nil {
+ return nil, errors.Wrap(err, "unable to create followers page ID")
+ }
+ idProperty.SetIRI(id)
+ collectionPage.SetJSONLDId(idProperty)
+
+ orderedItems := streams.NewActivityStreamsOrderedItemsProperty()
+
+ outboxItems, err := persistence.GetOutbox(outboxPageSize, (pageInt-1)*outboxPageSize)
+ if err != nil {
+ return nil, errors.Wrap(err, "unable to get federation followers")
+ }
+ orderedItems.AppendActivityStreamsOrderedCollection(outboxItems)
+ collectionPage.SetActivityStreamsOrderedItems(orderedItems)
+
+ partOf := streams.NewActivityStreamsPartOfProperty()
+ partOfIRI, err := createPageURL(r, nil)
+ if err != nil {
+ return nil, errors.Wrap(err, "unable to create partOf property for outbox page")
+ }
+
+ partOf.SetIRI(partOfIRI)
+ collectionPage.SetActivityStreamsPartOf(partOf)
+
+ if pageInt*followersPageSize < int(postCount) {
+ next := streams.NewActivityStreamsNextProperty()
+ nextPage := fmt.Sprintf("%d", pageInt+1)
+ nextIRI, err := createPageURL(r, &nextPage)
+ if err != nil {
+ return nil, errors.Wrap(err, "unable to create next page property")
+ }
+
+ next.SetIRI(nextIRI)
+ collectionPage.SetActivityStreamsNext(next)
+ }
+
+ return collectionPage, nil
+}
diff --git a/activitypub/controllers/webfinger.go b/activitypub/controllers/webfinger.go
new file mode 100644
index 000000000..f3c733a97
--- /dev/null
+++ b/activitypub/controllers/webfinger.go
@@ -0,0 +1,60 @@
+package controllers
+
+import (
+ "encoding/json"
+ "net/http"
+ "strings"
+
+ "github.com/owncast/owncast/activitypub/apmodels"
+ "github.com/owncast/owncast/core/data"
+ "github.com/owncast/owncast/utils"
+ log "github.com/sirupsen/logrus"
+)
+
+// WebfingerHandler will handle webfinger lookup requests.
+func WebfingerHandler(w http.ResponseWriter, r *http.Request) {
+ if !data.GetFederationEnabled() {
+ w.WriteHeader(http.StatusMethodNotAllowed)
+ return
+ }
+
+ resource := r.URL.Query().Get("resource")
+ resourceComponents := strings.Split(resource, ":")
+ account := resourceComponents[1]
+
+ userComponents := strings.Split(account, "@")
+ if len(userComponents) < 2 {
+ return
+ }
+ host := userComponents[1]
+ user := userComponents[0]
+
+ if _, valid := data.GetFederatedInboxMap()[user]; !valid {
+ // User is not valid
+ w.WriteHeader(http.StatusNotFound)
+ log.Println("Webfinger request rejected")
+ return
+ }
+
+ // If the webfinger request doesn't match our server then it
+ // should be rejected.
+ instanceHostString := data.GetServerURL()
+ if instanceHostString == "" {
+ w.WriteHeader(http.StatusNotImplemented)
+ return
+ }
+
+ instanceHostString = utils.GetHostnameFromURLString(instanceHostString)
+ if instanceHostString == "" || instanceHostString != host {
+ w.WriteHeader(http.StatusNotImplemented)
+ return
+ }
+
+ webfingerResponse := apmodels.MakeWebfingerResponse(user, user, host)
+
+ w.Header().Set("Content-Type", "application/jrd+json")
+
+ if err := json.NewEncoder(w).Encode(webfingerResponse); err != nil {
+ log.Errorln("unable to write webfinger response", err)
+ }
+}
diff --git a/activitypub/crypto/keys.go b/activitypub/crypto/keys.go
new file mode 100644
index 000000000..240f29163
--- /dev/null
+++ b/activitypub/crypto/keys.go
@@ -0,0 +1,78 @@
+package crypto
+
+import (
+ "crypto/rand"
+ "crypto/rsa"
+ "crypto/x509"
+ "encoding/pem"
+ "errors"
+ "net/url"
+
+ "github.com/owncast/owncast/core/data"
+ log "github.com/sirupsen/logrus"
+)
+
+// GetPublicKey will return the public key for the provided actor.
+func GetPublicKey(actorIRI *url.URL) PublicKey {
+ key := data.GetPublicKey()
+ idURL, err := url.Parse(actorIRI.String() + "#main-key")
+ if err != nil {
+ log.Errorln("unable to parse actor iri string", idURL, err)
+ }
+
+ return PublicKey{
+ ID: idURL,
+ Owner: actorIRI,
+ PublicKeyPem: key,
+ }
+}
+
+// GetPrivateKey will return the internal server private key.
+func GetPrivateKey() *rsa.PrivateKey {
+ key := data.GetPrivateKey()
+
+ block, _ := pem.Decode([]byte(key))
+ if block == nil {
+ log.Errorln(errors.New("failed to parse PEM block containing the key"))
+ return nil
+ }
+
+ priv, err := x509.ParsePKCS1PrivateKey(block.Bytes)
+ if err != nil {
+ log.Errorln("unable to parse private key", err)
+ return nil
+ }
+
+ return priv
+}
+
+// GenerateKeys will generate the private/public key pair needed for federation.
+func GenerateKeys() ([]byte, []byte, error) {
+ // generate key
+ privatekey, err := rsa.GenerateKey(rand.Reader, 2048)
+ if err != nil {
+ log.Errorln("Cannot generate RSA key", err)
+ return nil, nil, err
+ }
+ publickey := &privatekey.PublicKey
+
+ privateKeyBytes := x509.MarshalPKCS1PrivateKey(privatekey)
+ privateKeyBlock := &pem.Block{
+ Type: "RSA PRIVATE KEY",
+ Bytes: privateKeyBytes,
+ }
+ privatePem := pem.EncodeToMemory(privateKeyBlock)
+
+ publicKeyBytes, err := x509.MarshalPKIXPublicKey(publickey)
+ if err != nil {
+ log.Errorln("error when dumping publickey:", err)
+ return nil, nil, err
+ }
+ publicKeyBlock := &pem.Block{
+ Type: "PUBLIC KEY",
+ Bytes: publicKeyBytes,
+ }
+ publicPem := pem.EncodeToMemory(publicKeyBlock)
+
+ return privatePem, publicPem, nil
+}
diff --git a/activitypub/crypto/publicKey.go b/activitypub/crypto/publicKey.go
new file mode 100644
index 000000000..5f2f524ad
--- /dev/null
+++ b/activitypub/crypto/publicKey.go
@@ -0,0 +1,10 @@
+package crypto
+
+import "net/url"
+
+// PublicKey represents a public key with associated ownership.
+type PublicKey struct {
+ ID *url.URL `json:"id"`
+ Owner *url.URL `json:"owner"`
+ PublicKeyPem string `json:"publicKeyPem"`
+}
diff --git a/activitypub/crypto/sign.go b/activitypub/crypto/sign.go
new file mode 100644
index 000000000..1880f50ba
--- /dev/null
+++ b/activitypub/crypto/sign.go
@@ -0,0 +1,70 @@
+package crypto
+
+import (
+ "crypto"
+ "net/http"
+ "net/url"
+ "time"
+
+ "github.com/go-fed/httpsig"
+)
+
+// SignResponse will sign a response using the provided response body and public key.
+func SignResponse(w http.ResponseWriter, body []byte, publicKey PublicKey) error {
+ privateKey := GetPrivateKey()
+
+ return signResponse(privateKey, *publicKey.ID, body, w)
+}
+
+func signResponse(privateKey crypto.PrivateKey, pubKeyID url.URL, body []byte, w http.ResponseWriter) error {
+ prefs := []httpsig.Algorithm{httpsig.RSA_SHA256}
+ digestAlgorithm := httpsig.DigestSha256
+
+ // The "Date" and "Digest" headers must already be set on r, as well as r.URL.
+ headersToSign := []string{}
+ if body != nil {
+ headersToSign = append(headersToSign, "digest")
+ }
+
+ signer, _, err := httpsig.NewSigner(prefs, digestAlgorithm, headersToSign, httpsig.Signature, 0)
+
+ if err != nil {
+ return err
+ }
+
+ // If r were a http.ResponseWriter, call SignResponse instead.
+ return signer.SignResponse(privateKey, pubKeyID.String(), w, body)
+}
+
+// SignRequest will sign an ounbound request given the provided body.
+func SignRequest(req *http.Request, body []byte, actorIRI *url.URL) error {
+ publicKey := GetPublicKey(actorIRI)
+ privateKey := GetPrivateKey()
+
+ return signRequest(privateKey, publicKey.ID.String(), body, req)
+}
+
+func signRequest(privateKey crypto.PrivateKey, pubKeyID string, body []byte, r *http.Request) error {
+ prefs := []httpsig.Algorithm{httpsig.RSA_SHA256}
+ digestAlgorithm := httpsig.DigestSha256
+
+ date := time.Now().UTC().Format("Mon, 02 Jan 2006 15:04:05 GMT")
+ r.Header["Date"] = []string{date}
+ r.Header["Host"] = []string{r.URL.Host}
+ r.Header["Accept"] = []string{`application/ld+json; profile="https://www.w3.org/ns/activitystreams"`}
+
+ // The "Date" and "Digest" headers must already be set on r, as well as r.URL.
+ headersToSign := []string{httpsig.RequestTarget, "host", "date"}
+ if body != nil {
+ headersToSign = append(headersToSign, "digest")
+ }
+
+ signer, _, err := httpsig.NewSigner(prefs, digestAlgorithm, headersToSign, httpsig.Signature, 0)
+
+ if err != nil {
+ return err
+ }
+
+ // If r were a http.ResponseWriter, call SignResponse instead.
+ return signer.SignRequest(privateKey, pubKeyID, r, body)
+}
diff --git a/activitypub/inbox/announce.go b/activitypub/inbox/announce.go
new file mode 100644
index 000000000..db79393f7
--- /dev/null
+++ b/activitypub/inbox/announce.go
@@ -0,0 +1,40 @@
+package inbox
+
+import (
+ "context"
+ "time"
+
+ "github.com/go-fed/activity/streams/vocab"
+ "github.com/owncast/owncast/activitypub/persistence"
+ "github.com/owncast/owncast/core/chat/events"
+ "github.com/pkg/errors"
+)
+
+func handleAnnounceRequest(c context.Context, activity vocab.ActivityStreamsAnnounce) error {
+ object := activity.GetActivityStreamsObject()
+ actorReference := activity.GetActivityStreamsActor()
+ objectIRI := object.At(0).GetIRI().String()
+ actorIRI := actorReference.At(0).GetIRI().String()
+
+ if hasPreviouslyhandled, err := persistence.HasPreviouslyHandledInboundActivity(objectIRI, actorIRI, events.FediverseEngagementRepost); hasPreviouslyhandled || err != nil {
+ return errors.Wrap(err, "inbound activity of share/re-post has already been handled")
+ }
+
+ // Shares need to match a post we had already sent.
+ _, isLiveNotification, timestamp, err := persistence.GetObjectByIRI(objectIRI)
+ if err != nil {
+ return errors.Wrap(err, "Could not find post locally")
+ }
+
+ // Don't allow old activities to be liked
+ if time.Since(timestamp) > maxAgeForEngagement {
+ return errors.New("Activity is too old to be shared")
+ }
+
+ // Save as an accepted activity
+ if err := persistence.SaveInboundFediverseActivity(objectIRI, actorIRI, events.FediverseEngagementRepost, time.Now()); err != nil {
+ return errors.Wrap(err, "unable to save inbound share/re-post activity")
+ }
+
+ return handleEngagementActivity(events.FediverseEngagementRepost, isLiveNotification, actorReference, events.FediverseEngagementRepost)
+}
diff --git a/activitypub/inbox/chat.go b/activitypub/inbox/chat.go
new file mode 100644
index 000000000..3b75427d9
--- /dev/null
+++ b/activitypub/inbox/chat.go
@@ -0,0 +1,62 @@
+package inbox
+
+import (
+ "fmt"
+
+ "github.com/go-fed/activity/streams/vocab"
+ "github.com/owncast/owncast/activitypub/resolvers"
+ "github.com/owncast/owncast/core/chat"
+ "github.com/owncast/owncast/core/chat/events"
+ "github.com/owncast/owncast/core/data"
+)
+
+func handleEngagementActivity(eventType events.EventType, isLiveNotification bool, actorReference vocab.ActivityStreamsActorProperty, action string) error {
+ // Do nothing if displaying engagement actions has been turned off.
+ if !data.GetFederationShowEngagement() {
+ return nil
+ }
+
+ // Do nothing if chat is disabled
+ if data.GetChatDisabled() {
+ return nil
+ }
+
+ // Get actor of the action
+ actor, _ := resolvers.GetResolvedActorFromActorProperty(actorReference)
+
+ // Send chat message
+ actorName := actor.Name
+ if actorName == "" {
+ actorName = actor.Username
+ }
+ actorIRI := actorReference.Begin().GetIRI().String()
+
+ userPrefix := fmt.Sprintf("%s ", actorName)
+ var suffix string
+ if isLiveNotification && action == events.FediverseEngagementLike {
+ suffix = "liked that this stream went live."
+ } else if action == events.FediverseEngagementLike {
+ suffix = fmt.Sprintf("liked a post from %s.", data.GetServerName())
+ } else if isLiveNotification && action == events.FediverseEngagementRepost {
+ suffix = "shared this stream with their followers."
+ } else if action == events.FediverseEngagementRepost {
+ suffix = fmt.Sprintf("shared a post from %s.", data.GetServerName())
+ } else if action == events.FediverseEngagementFollow {
+ suffix = "followed this stream."
+ } else {
+ return fmt.Errorf("could not handle event for sending to chat: %s", action)
+ }
+ body := fmt.Sprintf("%s %s", userPrefix, suffix)
+
+ var image *string
+ if actor.Image != nil {
+ s := actor.Image.String()
+ image = &s
+ }
+
+ if err := chat.SendFediverseAction(eventType, actor.FullUsername, image, body, actorIRI); err != nil {
+ return err
+ }
+
+ return nil
+}
diff --git a/activitypub/inbox/constants.go b/activitypub/inbox/constants.go
new file mode 100644
index 000000000..a7dac5890
--- /dev/null
+++ b/activitypub/inbox/constants.go
@@ -0,0 +1,7 @@
+package inbox
+
+import "time"
+
+const (
+ maxAgeForEngagement = time.Hour * 36
+)
diff --git a/activitypub/inbox/follow.go b/activitypub/inbox/follow.go
new file mode 100644
index 000000000..70b26abf1
--- /dev/null
+++ b/activitypub/inbox/follow.go
@@ -0,0 +1,88 @@
+package inbox
+
+import (
+ "context"
+ "fmt"
+ "time"
+
+ "github.com/go-fed/activity/streams/vocab"
+ "github.com/owncast/owncast/activitypub/persistence"
+ "github.com/owncast/owncast/activitypub/requests"
+ "github.com/owncast/owncast/activitypub/resolvers"
+ "github.com/owncast/owncast/core/chat/events"
+ "github.com/owncast/owncast/core/data"
+ "github.com/pkg/errors"
+
+ log "github.com/sirupsen/logrus"
+)
+
+func handleFollowInboxRequest(c context.Context, activity vocab.ActivityStreamsFollow) error {
+ follow, err := resolvers.MakeFollowRequest(c, activity)
+ if err != nil {
+ log.Errorln("unable to create follow inbox request", err)
+ return err
+ }
+
+ if follow == nil {
+ return fmt.Errorf("unable to handle request")
+ }
+
+ approved := !data.GetFederationIsPrivate()
+
+ followRequest := *follow
+
+ if err := persistence.AddFollow(followRequest, approved); err != nil {
+ log.Errorln("unable to save follow request", err)
+ return err
+ }
+
+ localAccountName := data.GetDefaultFederationUsername()
+
+ if approved {
+ if err := requests.SendFollowAccept(follow.Inbox, follow.FollowRequestIri, localAccountName); err != nil {
+ log.Errorln("unable to send follow accept", err)
+ return err
+ }
+ }
+
+ // Save as an accepted activity
+ actorReference := activity.GetActivityStreamsActor()
+ object := activity.GetActivityStreamsObject()
+ objectIRI := object.At(0).GetIRI().String()
+ actorIRI := actorReference.At(0).GetIRI().String()
+
+ // If this request is approved and we have not previously sent an action to
+ // chat due to a previous follow request, then do so.
+ hasPreviouslyhandled := true // Default so we don't send anything if it fails.
+ if approved {
+ hasPreviouslyhandled, err = persistence.HasPreviouslyHandledInboundActivity(objectIRI, actorIRI, events.FediverseEngagementFollow)
+ if err != nil {
+ log.Errorln("error checking for previously handled follow activity", err)
+ }
+ }
+
+ // Save this follow action to our activities table.
+ if err := persistence.SaveInboundFediverseActivity(objectIRI, actorIRI, events.FediverseEngagementFollow, time.Now()); err != nil {
+ return errors.Wrap(err, "unable to save inbound share/re-post activity")
+ }
+
+ // Send action to chat if it has not been previously handled.
+ if !hasPreviouslyhandled {
+ return handleEngagementActivity(events.FediverseEngagementFollow, false, actorReference, events.FediverseEngagementFollow)
+ }
+
+ return nil
+}
+
+func handleUnfollowRequest(c context.Context, activity vocab.ActivityStreamsUndo) error {
+ request := resolvers.MakeUnFollowRequest(c, activity)
+ if request == nil {
+ log.Errorf("unable to handle unfollow request")
+ return errors.New("unable to handle unfollow request")
+ }
+
+ unfollowRequest := *request
+ log.Traceln("unfollow request:", unfollowRequest)
+
+ return persistence.RemoveFollow(unfollowRequest)
+}
diff --git a/activitypub/inbox/like.go b/activitypub/inbox/like.go
new file mode 100644
index 000000000..d457de19d
--- /dev/null
+++ b/activitypub/inbox/like.go
@@ -0,0 +1,40 @@
+package inbox
+
+import (
+ "context"
+ "time"
+
+ "github.com/go-fed/activity/streams/vocab"
+ "github.com/owncast/owncast/activitypub/persistence"
+ "github.com/owncast/owncast/core/chat/events"
+ "github.com/pkg/errors"
+)
+
+func handleLikeRequest(c context.Context, activity vocab.ActivityStreamsLike) error {
+ object := activity.GetActivityStreamsObject()
+ actorReference := activity.GetActivityStreamsActor()
+ objectIRI := object.At(0).GetIRI().String()
+ actorIRI := actorReference.At(0).GetIRI().String()
+
+ if hasPreviouslyhandled, err := persistence.HasPreviouslyHandledInboundActivity(objectIRI, actorIRI, events.FediverseEngagementLike); hasPreviouslyhandled || err != nil {
+ return errors.Wrap(err, "inbound activity of like has already been handled")
+ }
+
+ // Likes need to match a post we had already sent.
+ _, isLiveNotification, timestamp, err := persistence.GetObjectByIRI(objectIRI)
+ if err != nil {
+ return errors.Wrap(err, "Could not find post locally")
+ }
+
+ // Don't allow old activities to be liked
+ if time.Since(timestamp) > maxAgeForEngagement {
+ return errors.New("Activity is too old to be liked")
+ }
+
+ // Save as an accepted activity
+ if err := persistence.SaveInboundFediverseActivity(objectIRI, actorIRI, events.FediverseEngagementLike, time.Now()); err != nil {
+ return errors.Wrap(err, "unable to save inbound like activity")
+ }
+
+ return handleEngagementActivity(events.FediverseEngagementLike, isLiveNotification, actorReference, events.FediverseEngagementLike)
+}
diff --git a/activitypub/inbox/undo.go b/activitypub/inbox/undo.go
new file mode 100644
index 000000000..3034951a8
--- /dev/null
+++ b/activitypub/inbox/undo.go
@@ -0,0 +1,27 @@
+package inbox
+
+import (
+ "context"
+
+ log "github.com/sirupsen/logrus"
+
+ "github.com/go-fed/activity/streams/vocab"
+)
+
+func handleUndoInboxRequest(c context.Context, activity vocab.ActivityStreamsUndo) error {
+ // Determine if this is an undo of a follow, favorite, announce, etc.
+ o := activity.GetActivityStreamsObject()
+ for iter := o.Begin(); iter != o.End(); iter = iter.Next() {
+ if iter.IsActivityStreamsFollow() {
+ // This is an Unfollow request
+ if err := handleUnfollowRequest(c, activity); err != nil {
+ return err
+ }
+ } else {
+ log.Traceln("Undo", iter.GetType().GetTypeName(), "ignored")
+ return nil
+ }
+ }
+
+ return nil
+}
diff --git a/activitypub/inbox/update.go b/activitypub/inbox/update.go
new file mode 100644
index 000000000..047ed3398
--- /dev/null
+++ b/activitypub/inbox/update.go
@@ -0,0 +1,25 @@
+package inbox
+
+import (
+ "context"
+
+ "github.com/go-fed/activity/streams/vocab"
+ "github.com/owncast/owncast/activitypub/persistence"
+ "github.com/owncast/owncast/activitypub/resolvers"
+ log "github.com/sirupsen/logrus"
+)
+
+func handleUpdateRequest(c context.Context, activity vocab.ActivityStreamsUpdate) error {
+ // We only care about update events to followers.
+ if !activity.GetActivityStreamsObject().At(0).IsActivityStreamsPerson() {
+ return nil
+ }
+
+ actor, err := resolvers.GetResolvedActorFromActorProperty(activity.GetActivityStreamsActor())
+ if err != nil {
+ log.Errorln(err)
+ return err
+ }
+
+ return persistence.UpdateFollower(actor.ActorIri.String(), actor.Inbox.String(), actor.Name, actor.FullUsername, actor.Image.String())
+}
diff --git a/activitypub/inbox/worker.go b/activitypub/inbox/worker.go
new file mode 100644
index 000000000..609a0e932
--- /dev/null
+++ b/activitypub/inbox/worker.go
@@ -0,0 +1,130 @@
+package inbox
+
+import (
+ "context"
+ "crypto/x509"
+ "encoding/pem"
+ "net/http"
+ "net/url"
+ "strings"
+
+ "github.com/pkg/errors"
+
+ "github.com/go-fed/httpsig"
+ "github.com/owncast/owncast/activitypub/apmodels"
+ "github.com/owncast/owncast/activitypub/persistence"
+ "github.com/owncast/owncast/activitypub/resolvers"
+ "github.com/owncast/owncast/core/data"
+
+ log "github.com/sirupsen/logrus"
+)
+
+func handle(request apmodels.InboxRequest) {
+ if verified, err := Verify(request.Request); err != nil {
+ log.Debugln("Error in attempting to verify request", err)
+ return
+ } else if !verified {
+ log.Errorln("Request failed verification", err)
+ return
+ }
+
+ // c := context.WithValue(context.Background(), "account", request.ForLocalAccount) //nolint
+
+ if err := resolvers.Resolve(context.Background(), request.Body, handleUpdateRequest, handleFollowInboxRequest, handleLikeRequest, handleAnnounceRequest, handleUndoInboxRequest); err != nil {
+ log.Errorln("resolver error:", err)
+ }
+}
+
+// Verify will Verify the http signature of an inbound request as well as
+// check it against the list of blocked domains.
+func Verify(request *http.Request) (bool, error) {
+ verifier, err := httpsig.NewVerifier(request)
+ if err != nil {
+ return false, errors.Wrap(err, "failed to create key verifier for request")
+ }
+ pubKeyID, err := url.Parse(verifier.KeyId())
+ if err != nil {
+ return false, errors.Wrap(err, "failed to parse key to get key ID")
+ }
+
+ // Force federation only via servers using https.
+ if pubKeyID.Scheme != "https" {
+ return false, errors.New("federated servers must use https: " + pubKeyID.String())
+ }
+
+ signature := request.Header.Get("signature")
+ var algorithmString string
+ signatureComponents := strings.Split(signature, ",")
+ for _, component := range signatureComponents {
+ kv := strings.Split(component, "=")
+ if kv[0] == "algorithm" {
+ algorithmString = kv[1]
+ break
+ }
+ }
+
+ algorithmString = strings.Trim(algorithmString, "\"")
+ if algorithmString == "" {
+ return false, errors.New("Unable to determine algorithm to verify request")
+ }
+
+ actor, err := resolvers.GetResolvedActorFromIRI(pubKeyID.String())
+ if err != nil {
+ return false, errors.Wrap(err, "failed to resolve actor from IRI to fetch key")
+ }
+
+ // Test to see if the actor is in the list of blocked federated domains.
+ if isBlockedDomain(actor.ActorIri.Hostname()) {
+ return false, errors.New("domain is blocked")
+ }
+
+ // If actor is specifically blocked, then fail validation.
+ if blocked, err := isBlockedActor(actor.ActorIri); err != nil || blocked {
+ return false, err
+ }
+
+ key := actor.W3IDSecurityV1PublicKey.Begin().Get().GetW3IDSecurityV1PublicKeyPem().Get()
+ block, _ := pem.Decode([]byte(key))
+ if block == nil {
+ log.Errorln("failed to parse PEM block containing the public key")
+ return false, errors.New("failed to parse PEM block containing the public key")
+ }
+
+ parsedKey, err := x509.ParsePKIXPublicKey(block.Bytes)
+ if err != nil {
+ log.Errorln("failed to parse DER encoded public key: " + err.Error())
+ return false, errors.Wrap(err, "failed to parse DER encoded public key")
+ }
+
+ var algorithm httpsig.Algorithm = httpsig.Algorithm(algorithmString)
+
+ // The verifier will verify the Digest in addition to the HTTP signature
+ if err := verifier.Verify(parsedKey, algorithm); err != nil {
+ log.Warnln("verification error for", pubKeyID, err)
+ return false, errors.Wrap(err, "verification error: "+pubKeyID.String())
+ }
+
+ return true, nil
+}
+
+func isBlockedDomain(domain string) bool {
+ blockedDomains := data.GetBlockedFederatedDomains()
+
+ for _, blockedDomain := range blockedDomains {
+ if strings.Contains(domain, blockedDomain) {
+ return true
+ }
+ }
+
+ return false
+}
+
+func isBlockedActor(actorIRI *url.URL) (bool, error) {
+ blockedactor, err := persistence.GetFollower(actorIRI.String())
+
+ if blockedactor != nil && blockedactor.DisabledAt != nil {
+ return true, errors.Wrap(err, "remote actor is blocked")
+ }
+
+ return false, nil
+}
diff --git a/activitypub/inbox/worker_test.go b/activitypub/inbox/worker_test.go
new file mode 100644
index 000000000..93b090eb2
--- /dev/null
+++ b/activitypub/inbox/worker_test.go
@@ -0,0 +1,100 @@
+package inbox
+
+import (
+ "net/url"
+ "testing"
+
+ "github.com/go-fed/activity/streams"
+ "github.com/go-fed/activity/streams/vocab"
+ "github.com/owncast/owncast/activitypub/apmodels"
+ "github.com/owncast/owncast/activitypub/persistence"
+ "github.com/owncast/owncast/core/data"
+)
+
+func makeFakePerson() vocab.ActivityStreamsPerson {
+ iri, _ := url.Parse("https://freedom.eagle/user/mrfoo")
+ name := "Mr Foo"
+ username := "foodawg"
+ inbox, _ := url.Parse("https://fake.fediverse.server/user/mrfoo/inbox")
+ userAvatarURL, _ := url.Parse("https://fake.fediverse.server/user/mrfoo/avatar.png")
+
+ person := streams.NewActivityStreamsPerson()
+
+ id := streams.NewJSONLDIdProperty()
+ id.Set(iri)
+ person.SetJSONLDId(id)
+
+ nameProperty := streams.NewActivityStreamsNameProperty()
+ nameProperty.AppendXMLSchemaString(name)
+ person.SetActivityStreamsName(nameProperty)
+
+ preferredUsernameProperty := streams.NewActivityStreamsPreferredUsernameProperty()
+ preferredUsernameProperty.SetXMLSchemaString(username)
+ person.SetActivityStreamsPreferredUsername(preferredUsernameProperty)
+
+ inboxProp := streams.NewActivityStreamsInboxProperty()
+ inboxProp.SetIRI(inbox)
+ person.SetActivityStreamsInbox(inboxProp)
+
+ image := streams.NewActivityStreamsImage()
+ imgProp := streams.NewActivityStreamsUrlProperty()
+ imgProp.AppendIRI(userAvatarURL)
+ image.SetActivityStreamsUrl(imgProp)
+ icon := streams.NewActivityStreamsIconProperty()
+ icon.AppendActivityStreamsImage(image)
+ person.SetActivityStreamsIcon(icon)
+
+ return person
+}
+
+func TestMain(m *testing.M) {
+ data.SetupPersistence(":memory:")
+ data.SetServerURL("https://my.cool.site.biz")
+ persistence.Setup(data.GetDatastore())
+ m.Run()
+}
+
+func TestBlockedDomains(t *testing.T) {
+ person := makeFakePerson()
+
+ data.SetBlockedFederatedDomains([]string{"freedom.eagle", "guns.life"})
+
+ if len(data.GetBlockedFederatedDomains()) != 2 {
+ t.Error("Blocked federated domains is not set correctly")
+ }
+
+ for _, domain := range data.GetBlockedFederatedDomains() {
+ if domain == person.GetJSONLDId().GetIRI().Host {
+ return
+ }
+ }
+
+ t.Error("Failed to catch blocked domain")
+}
+
+func TestBlockedActors(t *testing.T) {
+ person := makeFakePerson()
+ persistence.AddFollow(apmodels.ActivityPubActor{
+ ActorIri: person.GetJSONLDId().GetIRI(),
+ Inbox: person.GetJSONLDId().GetIRI(),
+ FollowRequestIri: person.GetJSONLDId().GetIRI(),
+ }, false)
+ persistence.BlockOrRejectFollower(person.GetJSONLDId().GetIRI().String())
+
+ blocked, err := isBlockedActor(person.GetJSONLDId().GetIRI())
+ if err != nil {
+ t.Error(err)
+ return
+ }
+
+ if !blocked {
+ t.Error("Failed to block actor")
+ }
+
+ failedBlockIRI, _ := url.Parse("https://freedom.eagle/user/mrbar")
+ failedBlock, err := isBlockedActor(failedBlockIRI)
+
+ if failedBlock {
+ t.Error("Invalid blocking of unblocked actor IRI")
+ }
+}
diff --git a/activitypub/inbox/workerpool.go b/activitypub/inbox/workerpool.go
new file mode 100644
index 000000000..ff275503e
--- /dev/null
+++ b/activitypub/inbox/workerpool.go
@@ -0,0 +1,44 @@
+package inbox
+
+import (
+ "github.com/owncast/owncast/activitypub/apmodels"
+ log "github.com/sirupsen/logrus"
+)
+
+const (
+ // InboxWorkerPoolSize defines the number of concurrent ActivityPub handlers.
+ InboxWorkerPoolSize = 10
+)
+
+// Job struct bundling the ActivityPub and the payload in one struct.
+type Job struct {
+ request apmodels.InboxRequest
+}
+
+var queue chan Job
+
+// InitInboxWorkerPool starts n go routines that await ActivityPub jobs.
+func InitInboxWorkerPool() {
+ queue = make(chan Job)
+
+ // start workers
+ for i := 1; i <= InboxWorkerPoolSize; i++ {
+ go worker(i, queue)
+ }
+}
+
+// AddToQueue will queue up an outbound http request.
+func AddToQueue(req apmodels.InboxRequest) {
+ log.Tracef("Queued request for ActivityPub inbox handler")
+ queue <- Job{req}
+}
+
+func worker(workerID int, queue <-chan Job) {
+ log.Debugf("Started ActivityPub worker %d", workerID)
+
+ for job := range queue {
+ handle(job.request)
+
+ log.Tracef("Done with ActivityPub inbox handler using worker %d", workerID)
+ }
+}
diff --git a/activitypub/outbox/outbox.go b/activitypub/outbox/outbox.go
new file mode 100644
index 000000000..53369a7af
--- /dev/null
+++ b/activitypub/outbox/outbox.go
@@ -0,0 +1,245 @@
+package outbox
+
+import (
+ "errors"
+ "fmt"
+ "net/url"
+ "path/filepath"
+ "regexp"
+ "strings"
+
+ "github.com/go-fed/activity/streams"
+ "github.com/go-fed/activity/streams/vocab"
+ "github.com/owncast/owncast/activitypub/apmodels"
+ "github.com/owncast/owncast/activitypub/persistence"
+ "github.com/owncast/owncast/activitypub/requests"
+ "github.com/owncast/owncast/activitypub/workerpool"
+
+ "github.com/owncast/owncast/config"
+ "github.com/owncast/owncast/core/data"
+ "github.com/owncast/owncast/utils"
+ log "github.com/sirupsen/logrus"
+ "github.com/teris-io/shortid"
+)
+
+// SendLive will send all followers the message saying you started a live stream.
+func SendLive() error {
+ textContent := data.GetFederationGoLiveMessage()
+
+ // If the message is empty then do not send it.
+ if textContent == "" {
+ return nil
+ }
+
+ tagStrings := []string{}
+ reg := regexp.MustCompile("[^a-zA-Z0-9]+")
+
+ tagProp := streams.NewActivityStreamsTagProperty()
+ for _, tagString := range data.GetServerMetadataTags() {
+ tagWithoutSpecialCharacters := reg.ReplaceAllString(tagString, "")
+ hashtag := apmodels.MakeHashtag(tagWithoutSpecialCharacters)
+ tagProp.AppendTootHashtag(hashtag)
+ tagString := getHashtagLinkHTMLFromTagString(tagWithoutSpecialCharacters)
+ tagStrings = append(tagStrings, tagString)
+ }
+
+ // Manually add Owncast hashtag if it doesn't already exist so it shows up
+ // in Owncast search results.
+ // We can remove this down the road, but it'll be nice for now.
+ if _, exists := utils.FindInSlice(tagStrings, "owncast"); !exists {
+ hashtag := apmodels.MakeHashtag("owncast")
+ tagProp.AppendTootHashtag(hashtag)
+ }
+
+ tagsString := strings.Join(tagStrings, " ")
+
+ var streamTitle string
+ if title := data.GetStreamTitle(); title != "" {
+ streamTitle = fmt.Sprintf("<p>%s</p>", title)
+ }
+ textContent = fmt.Sprintf("<p>%s</p><p>%s</p><p>%s</p><a href=\"%s\">%s</a>", textContent, streamTitle, tagsString, data.GetServerURL(), data.GetServerURL())
+
+ activity, _, note, noteID := createBaseOutboundMessage(textContent)
+
+ note.SetActivityStreamsTag(tagProp)
+
+ // Attach an image along with the Federated message.
+ previewURL, err := url.Parse(data.GetServerURL())
+ if err == nil {
+ var imageToAttach string
+ previewGif := filepath.Join(config.WebRoot, "preview.gif")
+ thumbnailJpg := filepath.Join(config.WebRoot, "thumbnail.jpg")
+
+ if utils.DoesFileExists(previewGif) {
+ imageToAttach = "preview.gif"
+ } else if utils.DoesFileExists(thumbnailJpg) {
+ imageToAttach = "thumbnail.jpg"
+ }
+ if imageToAttach != "" {
+ previewURL.Path = imageToAttach
+ apmodels.AddImageAttachmentToNote(note, previewURL.String())
+ }
+ }
+
+ if data.GetNSFW() {
+ // Mark content as sensitive.
+ sensitive := streams.NewActivityStreamsSensitiveProperty()
+ sensitive.AppendXMLSchemaBoolean(true)
+ note.SetActivityStreamsSensitive(sensitive)
+ }
+
+ b, err := apmodels.Serialize(activity)
+ if err != nil {
+ log.Errorln("unable to serialize go live message activity", err)
+ return errors.New("unable to serialize go live message activity " + err.Error())
+ }
+
+ if err := SendToFollowers(b); err != nil {
+ return err
+ }
+
+ if err := Add(note, noteID, true); err != nil {
+ return err
+ }
+
+ return nil
+}
+
+// SendPublicMessage will send a public message to all followers.
+func SendPublicMessage(textContent string) error {
+ originalContent := textContent
+ textContent = utils.RenderSimpleMarkdown(textContent)
+
+ tagProp := streams.NewActivityStreamsTagProperty()
+
+ // Iterate through the post text and find #Hashtags.
+ words := strings.Split(originalContent, " ")
+ for _, word := range words {
+ if strings.HasPrefix(word, "#") {
+ tagWithoutHashtag := strings.TrimPrefix(word, "#")
+
+ // Replace the instances of the tag with a link to the tag page.
+ tagHTML := getHashtagLinkHTMLFromTagString(tagWithoutHashtag)
+ textContent = strings.ReplaceAll(textContent, word, tagHTML)
+
+ // Create Hashtag object for the tag.
+ hashtag := apmodels.MakeHashtag(tagWithoutHashtag)
+ tagProp.AppendTootHashtag(hashtag)
+ }
+ }
+
+ activity, _, note, noteID := createBaseOutboundMessage(textContent)
+ note.SetActivityStreamsTag(tagProp)
+
+ b, err := apmodels.Serialize(activity)
+ if err != nil {
+ log.Errorln("unable to serialize custom fediverse message activity", err)
+ return errors.New("unable to serialize custom fediverse message activity " + err.Error())
+ }
+
+ if err := SendToFollowers(b); err != nil {
+ return err
+ }
+
+ if err := Add(note, noteID, false); err != nil {
+ return err
+ }
+
+ return nil
+}
+
+// nolint: unparam
+func createBaseOutboundMessage(textContent string) (vocab.ActivityStreamsCreate, string, vocab.ActivityStreamsNote, string) {
+ localActor := apmodels.MakeLocalIRIForAccount(data.GetDefaultFederationUsername())
+ noteID := shortid.MustGenerate()
+ noteIRI := apmodels.MakeLocalIRIForResource(noteID)
+ id := shortid.MustGenerate()
+ activity := apmodels.CreateCreateActivity(id, localActor)
+ object := streams.NewActivityStreamsObjectProperty()
+ activity.SetActivityStreamsObject(object)
+
+ note := apmodels.MakeNote(textContent, noteIRI, localActor)
+ object.AppendActivityStreamsNote(note)
+
+ return activity, id, note, noteID
+}
+
+// Get Hashtag HTML link for a given tag (without # prefix).
+func getHashtagLinkHTMLFromTagString(baseHashtag string) string {
+ return fmt.Sprintf("<a class=\"hashtag\" href=\"https://directory.owncast.online/tags/%s\">#%s</a>", baseHashtag, baseHashtag)
+}
+
+// SendToFollowers will send an arbitrary payload to all follower inboxes.
+func SendToFollowers(payload []byte) error {
+ localActor := apmodels.MakeLocalIRIForAccount(data.GetDefaultFederationUsername())
+
+ followers, err := persistence.GetFederationFollowers(-1, 0)
+ if err != nil {
+ log.Errorln("unable to fetch followers to send to", err)
+ return errors.New("unable to fetch followers to send payload to")
+ }
+
+ for _, follower := range followers {
+ inbox, _ := url.Parse(follower.Inbox)
+ req, err := requests.CreateSignedRequest(payload, inbox, localActor)
+ if err != nil {
+ log.Errorln("unable to create outbox request", follower.Inbox, err)
+ return errors.New("unable to create outbox request: " + follower.Inbox)
+ }
+
+ workerpool.AddToOutboundQueue(req)
+ }
+ return nil
+}
+
+// UpdateFollowersWithAccountUpdates will send an update to all followers alerting of a profile update.
+func UpdateFollowersWithAccountUpdates() error {
+ // Don't do anything if federation is disabled.
+ if !data.GetFederationEnabled() {
+ return nil
+ }
+
+ id := shortid.MustGenerate()
+ objectID := apmodels.MakeLocalIRIForResource(id)
+ activity := apmodels.MakeUpdateActivity(objectID)
+
+ actor := streams.NewActivityStreamsPerson()
+ actorID := apmodels.MakeLocalIRIForAccount(data.GetDefaultFederationUsername())
+ actorIDProperty := streams.NewJSONLDIdProperty()
+ actorIDProperty.Set(actorID)
+ actor.SetJSONLDId(actorIDProperty)
+
+ actorProperty := streams.NewActivityStreamsActorProperty()
+ actorProperty.AppendActivityStreamsPerson(actor)
+ activity.SetActivityStreamsActor(actorProperty)
+
+ obj := streams.NewActivityStreamsObjectProperty()
+ obj.AppendIRI(actorID)
+ activity.SetActivityStreamsObject(obj)
+
+ b, err := apmodels.Serialize(activity)
+ if err != nil {
+ log.Errorln("unable to serialize send update actor activity", err)
+ return errors.New("unable to serialize send update actor activity")
+ }
+ return SendToFollowers(b)
+}
+
+// Add will save an ActivityPub object to the datastore.
+func Add(item vocab.Type, id string, isLiveNotification bool) error {
+ iri := item.GetJSONLDId().GetIRI().String()
+ typeString := item.GetTypeName()
+
+ if iri == "" {
+ log.Errorln("Unable to get iri from item")
+ return errors.New("Unable to get iri from item " + id)
+ }
+
+ b, err := apmodels.Serialize(item)
+ if err != nil {
+ log.Errorln("unable to serialize model when saving to outbox", err)
+ return err
+ }
+
+ return persistence.AddToOutbox(iri, b, typeString, isLiveNotification)
+}
diff --git a/activitypub/persistence/followers.go b/activitypub/persistence/followers.go
new file mode 100644
index 000000000..77863038e
--- /dev/null
+++ b/activitypub/persistence/followers.go
@@ -0,0 +1,121 @@
+package persistence
+
+import (
+ "context"
+
+ "github.com/owncast/owncast/db"
+ "github.com/owncast/owncast/models"
+ "github.com/owncast/owncast/utils"
+ log "github.com/sirupsen/logrus"
+)
+
+func createFederationFollowersTable() {
+ log.Traceln("Creating federation followers table...")
+
+ createTableSQL := `CREATE TABLE IF NOT EXISTS ap_followers (
+ "iri" TEXT NOT NULL,
+ "inbox" TEXT NOT NULL,
+ "name" TEXT,
+ "username" TEXT NOT NULL,
+ "image" TEXT,
+ "request" TEXT NOT NULL,
+ "created_at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+ "approved_at" TIMESTAMP,
+ "disabled_at" TIMESTAMP,
+ PRIMARY KEY (iri));
+ CREATE INDEX iri_index ON ap_followers (iri);
+ CREATE INDEX approved_at_index ON ap_followers (approved_at);`
+
+ stmt, err := _datastore.DB.Prepare(createTableSQL)
+ if err != nil {
+ log.Fatal(err)
+ }
+ defer stmt.Close()
+ _, err = stmt.Exec()
+ if err != nil {
+ log.Warnln("error executing sql creating followers table", createTableSQL, err)
+ }
+}
+
+// GetFollowerCount will return the number of followers we're keeping track of.
+func GetFollowerCount() (int64, error) {
+ ctx := context.Background()
+ return _datastore.GetQueries().GetFollowerCount(ctx)
+}
+
+// GetFederationFollowers will return a slice of the followers we keep track of locally.
+func GetFederationFollowers(limit int, offset int) ([]models.Follower, error) {
+ ctx := context.Background()
+ followersResult, err := _datastore.GetQueries().GetFederationFollowersWithOffset(ctx, db.GetFederationFollowersWithOffsetParams{
+ Limit: int32(limit),
+ Offset: int32(offset),
+ })
+ if err != nil {
+ return nil, err
+ }
+
+ followers := make([]models.Follower, 0)
+
+ for _, row := range followersResult {
+ singleFollower := models.Follower{
+ Name: row.Name.String,
+ Username: row.Username,
+ Image: row.Image.String,
+ ActorIRI: row.Iri,
+ Inbox: row.Inbox,
+ Timestamp: utils.NullTime(row.CreatedAt),
+ }
+
+ followers = append(followers, singleFollower)
+ }
+
+ return followers, nil
+}
+
+// GetPendingFollowRequests will return pending follow requests.
+func GetPendingFollowRequests() ([]models.Follower, error) {
+ pendingFollowersResult, err := _datastore.GetQueries().GetFederationFollowerApprovalRequests(context.Background())
+ if err != nil {
+ return nil, err
+ }
+
+ followers := make([]models.Follower, 0)
+
+ for _, row := range pendingFollowersResult {
+ singleFollower := models.Follower{
+ Name: row.Name.String,
+ Username: row.Username,
+ Image: row.Image.String,
+ ActorIRI: row.Iri,
+ Inbox: row.Inbox,
+ Timestamp: utils.NullTime{Time: row.CreatedAt.Time, Valid: true},
+ }
+ followers = append(followers, singleFollower)
+ }
+
+ return followers, nil
+}
+
+// GetBlockedAndRejectedFollowers will return blocked and rejected followers.
+func GetBlockedAndRejectedFollowers() ([]models.Follower, error) {
+ pendingFollowersResult, err := _datastore.GetQueries().GetRejectedAndBlockedFollowers(context.Background())
+ if err != nil {
+ return nil, err
+ }
+
+ followers := make([]models.Follower, 0)
+
+ for _, row := range pendingFollowersResult {
+ singleFollower := models.Follower{
+ Name: row.Name.String,
+ Username: row.Username,
+ Image: row.Image.String,
+ ActorIRI: row.Iri,
+ DisabledAt: utils.NullTime{Time: row.DisabledAt.Time, Valid: true},
+ Timestamp: utils.NullTime{Time: row.CreatedAt.Time, Valid: true},
+ }
+ followers = append(followers, singleFollower)
+ }
+
+ return followers, nil
+}
diff --git a/activitypub/persistence/persistence.go b/activitypub/persistence/persistence.go
new file mode 100644
index 000000000..842cce712
--- /dev/null
+++ b/activitypub/persistence/persistence.go
@@ -0,0 +1,360 @@
+package persistence
+
+import (
+ "context"
+ "database/sql"
+ "fmt"
+ "net/url"
+ "time"
+
+ "github.com/go-fed/activity/streams"
+ "github.com/go-fed/activity/streams/vocab"
+ "github.com/owncast/owncast/activitypub/apmodels"
+ "github.com/owncast/owncast/activitypub/resolvers"
+ "github.com/owncast/owncast/core/data"
+ "github.com/owncast/owncast/db"
+ "github.com/owncast/owncast/models"
+ "github.com/pkg/errors"
+
+ log "github.com/sirupsen/logrus"
+)
+
+var _datastore *data.Datastore
+
+// Setup will initialize the ActivityPub persistence layer with the provided datastore.
+func Setup(datastore *data.Datastore) {
+ _datastore = datastore
+ createFederationFollowersTable()
+ createFederationOutboxTable()
+ createFederatedActivitiesTable()
+}
+
+// AddFollow will save a follow to the datastore.
+func AddFollow(follow apmodels.ActivityPubActor, approved bool) error {
+ log.Traceln("Saving", follow.ActorIri, "as a follower.")
+ var image string
+ if follow.Image != nil {
+ image = follow.Image.String()
+ }
+ return createFollow(follow.ActorIri.String(), follow.Inbox.String(), follow.FollowRequestIri.String(), follow.Name, follow.Username, image, approved)
+}
+
+// RemoveFollow will remove a follow from the datastore.
+func RemoveFollow(unfollow apmodels.ActivityPubActor) error {
+ log.Traceln("Removing", unfollow.ActorIri, "as a follower.")
+ return removeFollow(unfollow.ActorIri)
+}
+
+// GetFollower will return a single follower/request given an IRI.
+func GetFollower(iri string) (*apmodels.ActivityPubActor, error) {
+ result, err := _datastore.GetQueries().GetFollowerByIRI(context.Background(), iri)
+ if err != nil {
+ return nil, err
+ }
+
+ followIRI, err := url.Parse(result.Request)
+ if err != nil {
+ return nil, errors.Wrap(err, "error parsing follow request IRI")
+ }
+
+ iriURL, err := url.Parse(result.Iri)
+ if err != nil {
+ return nil, errors.Wrap(err, "error parsing actor IRI")
+ }
+
+ inbox, err := url.Parse(result.Inbox)
+ if err != nil {
+ return nil, errors.Wrap(err, "error parsing acting inbox")
+ }
+
+ image, _ := url.Parse(result.Image.String)
+
+ var disabledAt *time.Time
+ if result.DisabledAt.Valid {
+ disabledAt = &result.DisabledAt.Time
+ }
+
+ follower := apmodels.ActivityPubActor{
+ ActorIri: iriURL,
+ Inbox: inbox,
+ Name: result.Name.String,
+ Username: result.Username,
+ Image: image,
+ FollowRequestIri: followIRI,
+ DisabledAt: disabledAt,
+ }
+
+ return &follower, nil
+}
+
+// ApprovePreviousFollowRequest will approve a follow request.
+func ApprovePreviousFollowRequest(iri string) error {
+ return _datastore.GetQueries().ApproveFederationFollower(context.Background(), db.ApproveFederationFollowerParams{
+ Iri: iri,
+ ApprovedAt: sql.NullTime{
+ Time: time.Now(),
+ Valid: true,
+ },
+ })
+}
+
+// BlockOrRejectFollower will block an existing follower or reject a follow request.
+func BlockOrRejectFollower(iri string) error {
+ return _datastore.GetQueries().RejectFederationFollower(context.Background(), db.RejectFederationFollowerParams{
+ Iri: iri,
+ DisabledAt: sql.NullTime{
+ Time: time.Now(),
+ Valid: true,
+ },
+ })
+}
+
+func createFollow(actor string, inbox string, request string, name string, username string, image string, approved bool) error {
+ tx, err := _datastore.DB.Begin()
+ if err != nil {
+ log.Debugln(err)
+ }
+ defer func() {
+ _ = tx.Rollback()
+ }()
+
+ var approvedAt sql.NullTime
+ if approved {
+ approvedAt = sql.NullTime{
+ Time: time.Now(),
+ Valid: true,
+ }
+ }
+
+ if err = _datastore.GetQueries().WithTx(tx).AddFollower(context.Background(), db.AddFollowerParams{
+ Iri: actor,
+ Inbox: inbox,
+ Name: sql.NullString{String: name, Valid: true},
+ Username: username,
+ Image: sql.NullString{String: image, Valid: true},
+ ApprovedAt: approvedAt,
+ Request: request,
+ }); err != nil {
+ log.Errorln("error creating new federation follow: ", err)
+ }
+
+ return tx.Commit()
+}
+
+// UpdateFollower will update the details of a stored follower given an IRI.
+func UpdateFollower(actorIRI string, inbox string, name string, username string, image string) error {
+ _datastore.DbLock.Lock()
+ defer _datastore.DbLock.Unlock()
+
+ tx, err := _datastore.DB.Begin()
+ if err != nil {
+ log.Debugln(err)
+ }
+ defer func() {
+ _ = tx.Rollback()
+ }()
+
+ if err = _datastore.GetQueries().WithTx(tx).UpdateFollowerByIRI(context.Background(), db.UpdateFollowerByIRIParams{
+ Inbox: inbox,
+ Name: sql.NullString{String: name, Valid: true},
+ Username: username,
+ Image: sql.NullString{String: image, Valid: true},
+ Iri: actorIRI,
+ }); err != nil {
+ return fmt.Errorf("error updating follower %s %s", actorIRI, err)
+ }
+
+ return tx.Commit()
+}
+
+func removeFollow(actor *url.URL) error {
+ _datastore.DbLock.Lock()
+ defer _datastore.DbLock.Unlock()
+
+ tx, err := _datastore.DB.Begin()
+ if err != nil {
+ return err
+ }
+ defer func() {
+ _ = tx.Rollback()
+ }()
+
+ if err := _datastore.GetQueries().WithTx(tx).RemoveFollowerByIRI(context.Background(), actor.String()); err != nil {
+ return err
+ }
+
+ return tx.Commit()
+}
+
+// createFederatedActivitiesTable will create the accepted
+// activities table if needed.
+func createFederatedActivitiesTable() {
+ createTableSQL := `CREATE TABLE IF NOT EXISTS ap_accepted_activities (
+ "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
+ "iri" TEXT NOT NULL,
+ "actor" TEXT NOT NULL,
+ "type" TEXT NOT NULL,
+ "timestamp" TIMESTAMP NOT NULL
+ );
+ CREATE INDEX iri_actor_index ON ap_accepted_activities (iri,actor);`
+
+ stmt, err := _datastore.DB.Prepare(createTableSQL)
+ if err != nil {
+ log.Fatal("error creating inbox table", err)
+ }
+ defer stmt.Close()
+ if _, err := stmt.Exec(); err != nil {
+ log.Fatal("error creating inbound federated activities table", err)
+ }
+}
+
+func createFederationOutboxTable() {
+ log.Traceln("Creating federation outbox table...")
+ createTableSQL := `CREATE TABLE IF NOT EXISTS ap_outbox (
+ "iri" TEXT NOT NULL,
+ "value" BLOB,
+ "type" TEXT NOT NULL,
+ "created_at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+ "live_notification" BOOLEAN DEFAULT FALSE,
+ PRIMARY KEY (iri));
+ CREATE INDEX iri ON ap_outbox (iri);
+ CREATE INDEX type ON ap_outbox (type);
+ CREATE INDEX live_notification ON ap_outbox (live_notification);`
+
+ stmt, err := _datastore.DB.Prepare(createTableSQL)
+ if err != nil {
+ log.Fatal(err)
+ }
+ defer stmt.Close()
+ _, err = stmt.Exec()
+ if err != nil {
+ log.Warnln("error executing sql creating outbox table", createTableSQL, err)
+ }
+}
+
+// GetOutboxPostCount will return the number of posts in the outbox.
+func GetOutboxPostCount() (int64, error) {
+ ctx := context.Background()
+ return _datastore.GetQueries().GetLocalPostCount(ctx)
+}
+
+// GetOutbox will return an instance of the outbox populated by stored items.
+func GetOutbox(limit int, offset int) (vocab.ActivityStreamsOrderedCollection, error) {
+ collection := streams.NewActivityStreamsOrderedCollection()
+ orderedItems := streams.NewActivityStreamsOrderedItemsProperty()
+ rows, err := _datastore.GetQueries().GetOutboxWithOffset(
+ context.Background(),
+ db.GetOutboxWithOffsetParams{Limit: int32(limit), Offset: int32(offset)},
+ )
+ if err != nil {
+ return collection, err
+ }
+
+ for _, value := range rows {
+ createCallback := func(c context.Context, activity vocab.ActivityStreamsCreate) error {
+ orderedItems.AppendActivityStreamsCreate(activity)
+ return nil
+ }
+ if err := resolvers.Resolve(context.Background(), value, createCallback); err != nil {
+ return collection, err
+ }
+ }
+
+ return collection, nil
+}
+
+// AddToOutbox will store a single payload to the persistence layer.
+func AddToOutbox(iri string, itemData []byte, typeString string, isLiveNotification bool) error {
+ tx, err := _datastore.DB.Begin()
+ if err != nil {
+ log.Debugln(err)
+ }
+ defer func() {
+ _ = tx.Rollback()
+ }()
+
+ if err = _datastore.GetQueries().WithTx(tx).AddToOutbox(context.Background(), db.AddToOutboxParams{
+ Iri: iri,
+ Value: itemData,
+ Type: typeString,
+ LiveNotification: sql.NullBool{Bool: isLiveNotification, Valid: true},
+ }); err != nil {
+ return fmt.Errorf("error creating new item in federation outbox %s", err)
+ }
+
+ return tx.Commit()
+}
+
+// GetObjectByID will return a string representation of a single object by the ID.
+func GetObjectByID(id string) (string, error) {
+ value, err := _datastore.GetQueries().GetObjectFromOutboxByID(context.Background(), id)
+ return string(value), err
+}
+
+// GetObjectByIRI will return a string representation of a single object by the IRI.
+func GetObjectByIRI(iri string) (string, bool, time.Time, error) {
+ row, err := _datastore.GetQueries().GetObjectFromOutboxByIRI(context.Background(), iri)
+ return string(row.Value), row.LiveNotification.Bool, row.CreatedAt.Time, err
+}
+
+// GetLocalPostCount will return the number of posts existing locally.
+func GetLocalPostCount() (int64, error) {
+ ctx := context.Background()
+ return _datastore.GetQueries().GetLocalPostCount(ctx)
+}
+
+// SaveInboundFediverseActivity will save an event to the ap_inbound_activities table.
+func SaveInboundFediverseActivity(objectIRI string, actorIRI string, eventType string, timestamp time.Time) error {
+ if err := _datastore.GetQueries().AddToAcceptedActivities(context.Background(), db.AddToAcceptedActivitiesParams{
+ Iri: objectIRI,
+ Actor: actorIRI,
+ Type: eventType,
+ Timestamp: timestamp,
+ }); err != nil {
+ return errors.Wrap(err, "error saving event "+objectIRI)
+ }
+
+ return nil
+}
+
+// GetInboundActivities will return a collection of saved, federated activities
+// limited and offset by the values provided to support pagination.
+func GetInboundActivities(limit int, offset int) ([]models.FederatedActivity, error) {
+ ctx := context.Background()
+ rows, err := _datastore.GetQueries().GetInboundActivitiesWithOffset(ctx, db.GetInboundActivitiesWithOffsetParams{
+ Limit: int32(limit),
+ Offset: int32(offset),
+ })
+ if err != nil {
+ return nil, err
+ }
+
+ activities := make([]models.FederatedActivity, 0)
+
+ for _, row := range rows {
+ singleActivity := models.FederatedActivity{
+ IRI: row.Iri,
+ ActorIRI: row.Actor,
+ Type: row.Type,
+ Timestamp: row.Timestamp,
+ }
+ activities = append(activities, singleActivity)
+ }
+
+ return activities, nil
+}
+
+// HasPreviouslyHandledInboundActivity will return if we have previously handled
+// an inbound federated activity.
+func HasPreviouslyHandledInboundActivity(iri string, actorIRI string, eventType string) (bool, error) {
+ exists, err := _datastore.GetQueries().DoesInboundActivityExist(context.Background(), db.DoesInboundActivityExistParams{
+ Iri: iri,
+ Actor: actorIRI,
+ Type: eventType,
+ })
+ if err != nil {
+ return false, err
+ }
+
+ return exists > 0, nil
+}
diff --git a/activitypub/requests/acceptFollow.go b/activitypub/requests/acceptFollow.go
new file mode 100644
index 000000000..48b5b522c
--- /dev/null
+++ b/activitypub/requests/acceptFollow.go
@@ -0,0 +1,51 @@
+package requests
+
+import (
+ "encoding/json"
+ "net/url"
+
+ "github.com/go-fed/activity/streams"
+ "github.com/go-fed/activity/streams/vocab"
+ "github.com/owncast/owncast/activitypub/apmodels"
+ "github.com/owncast/owncast/activitypub/workerpool"
+
+ "github.com/teris-io/shortid"
+)
+
+// SendFollowAccept will send an accept activity to a follow request from a specified local user.
+func SendFollowAccept(inbox *url.URL, followRequestIRI *url.URL, fromLocalAccountName string) error {
+ followAccept := makeAcceptFollow(followRequestIRI, fromLocalAccountName)
+ localAccountIRI := apmodels.MakeLocalIRIForAccount(fromLocalAccountName)
+
+ var jsonmap map[string]interface{}
+ jsonmap, _ = streams.Serialize(followAccept)
+ b, _ := json.Marshal(jsonmap)
+ req, err := CreateSignedRequest(b, inbox, localAccountIRI)
+ if err != nil {
+ return err
+ }
+
+ workerpool.AddToOutboundQueue(req)
+
+ return nil
+}
+
+func makeAcceptFollow(followRequestIri *url.URL, fromAccountName string) vocab.ActivityStreamsAccept {
+ acceptIDString := shortid.MustGenerate()
+ acceptID := apmodels.MakeLocalIRIForResource(acceptIDString)
+ actorID := apmodels.MakeLocalIRIForAccount(fromAccountName)
+
+ accept := streams.NewActivityStreamsAccept()
+ idProperty := streams.NewJSONLDIdProperty()
+ idProperty.SetIRI(acceptID)
+ accept.SetJSONLDId(idProperty)
+
+ actor := apmodels.MakeActorPropertyWithID(actorID)
+ accept.SetActivityStreamsActor(actor)
+
+ object := streams.NewActivityStreamsObjectProperty()
+ object.AppendIRI(followRequestIri)
+ accept.SetActivityStreamsObject(object)
+
+ return accept
+}
diff --git a/activitypub/requests/http.go b/activitypub/requests/http.go
new file mode 100644
index 000000000..7166fc5b0
--- /dev/null
+++ b/activitypub/requests/http.go
@@ -0,0 +1,75 @@
+package requests
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+ "net/http"
+ "net/url"
+
+ "github.com/go-fed/activity/streams"
+ "github.com/go-fed/activity/streams/vocab"
+ "github.com/owncast/owncast/activitypub/crypto"
+
+ "github.com/owncast/owncast/config"
+
+ log "github.com/sirupsen/logrus"
+)
+
+// WriteStreamResponse will write a ActivityPub object to the provided ResponseWriter and sign with the provided key.
+func WriteStreamResponse(item vocab.Type, w http.ResponseWriter, publicKey crypto.PublicKey) error {
+ var jsonmap map[string]interface{}
+ jsonmap, _ = streams.Serialize(item)
+ b, err := json.Marshal(jsonmap)
+ if err != nil {
+ return err
+ }
+
+ return WriteResponse(b, w, publicKey)
+}
+
+// WritePayloadResponse will write any arbitrary object to the provided ResponseWriter and sign with the provided key.
+func WritePayloadResponse(payload interface{}, w http.ResponseWriter, publicKey crypto.PublicKey) error {
+ b, err := json.Marshal(payload)
+ if err != nil {
+ return err
+ }
+
+ return WriteResponse(b, w, publicKey)
+}
+
+// WriteResponse will write any arbitrary payload to the provided ResponseWriter and sign with the provided key.
+func WriteResponse(payload []byte, w http.ResponseWriter, publicKey crypto.PublicKey) error {
+ w.Header().Set("Content-Type", "application/activity+json")
+
+ if err := crypto.SignResponse(w, payload, publicKey); err != nil {
+ w.WriteHeader(http.StatusInternalServerError)
+ log.Errorln("unable to sign response", err)
+ return err
+ }
+
+ if _, err := w.Write(payload); err != nil {
+ w.WriteHeader(http.StatusInternalServerError)
+ return err
+ }
+
+ return nil
+}
+
+// CreateSignedRequest will create a signed POST request of a payload to the provided destination.
+func CreateSignedRequest(payload []byte, url *url.URL, fromActorIRI *url.URL) (*http.Request, error) {
+ log.Debugln("Sending", string(payload), "to", url)
+
+ req, _ := http.NewRequest("POST", url.String(), bytes.NewBuffer(payload))
+
+ ua := fmt.Sprintf("%s; https://owncast.online", config.GetReleaseString())
+ req.Header.Set("User-Agent", ua)
+ req.Header.Set("Content-Type", "application/activity+json")
+
+ if err := crypto.SignRequest(req, payload, fromActorIRI); err != nil {
+ log.Errorln("error signing request:", err)
+ return nil, err
+ }
+
+ return req, nil
+}
diff --git a/activitypub/resolvers/follow.go b/activitypub/resolvers/follow.go
new file mode 100644
index 000000000..8a2c2aa97
--- /dev/null
+++ b/activitypub/resolvers/follow.go
@@ -0,0 +1,57 @@
+package resolvers
+
+import (
+ "context"
+ "errors"
+ "fmt"
+
+ "github.com/go-fed/activity/streams/vocab"
+ "github.com/owncast/owncast/activitypub/apmodels"
+ log "github.com/sirupsen/logrus"
+)
+
+func getPersonFromFollow(activity vocab.ActivityStreamsFollow) (apmodels.ActivityPubActor, error) {
+ return GetResolvedActorFromActorProperty(activity.GetActivityStreamsActor())
+}
+
+// MakeFollowRequest will convert an inbound Follow request to our internal actor model.
+func MakeFollowRequest(c context.Context, activity vocab.ActivityStreamsFollow) (*apmodels.ActivityPubActor, error) {
+ person, err := getPersonFromFollow(activity)
+ if err != nil {
+ return nil, errors.New("unable to resolve person from follow request: " + err.Error())
+ }
+
+ hostname := person.ActorIri.Hostname()
+ username := person.Username
+ fullUsername := fmt.Sprintf("%s@%s", username, hostname)
+
+ followRequest := apmodels.ActivityPubActor{
+ ActorIri: person.ActorIri,
+ FollowRequestIri: activity.GetJSONLDId().Get(),
+ Inbox: person.Inbox,
+ Name: person.Name,
+ Username: fullUsername,
+ Image: person.Image,
+ }
+
+ return &followRequest, nil
+}
+
+// MakeUnFollowRequest will convert an inbound Unfollow request to our internal actor model.
+func MakeUnFollowRequest(c context.Context, activity vocab.ActivityStreamsUndo) *apmodels.ActivityPubActor {
+ person, err := GetResolvedActorFromActorProperty(activity.GetActivityStreamsActor())
+ if err != nil {
+ log.Errorln("unable to resolve person from actor iri", person.ActorIri, err)
+ return nil
+ }
+
+ unfollowRequest := apmodels.ActivityPubActor{
+ ActorIri: person.ActorIri,
+ FollowRequestIri: activity.GetJSONLDId().Get(),
+ Inbox: person.Inbox,
+ Name: person.Name,
+ Image: person.Image,
+ }
+
+ return &unfollowRequest
+}
diff --git a/activitypub/resolvers/resolve.go b/activitypub/resolvers/resolve.go
new file mode 100644
index 000000000..dc0d00396
--- /dev/null
+++ b/activitypub/resolvers/resolve.go
@@ -0,0 +1,125 @@
+package resolvers
+
+import (
+ "context"
+ "encoding/json"
+ "io/ioutil"
+ "net/http"
+
+ "github.com/go-fed/activity/streams"
+ "github.com/go-fed/activity/streams/vocab"
+ "github.com/owncast/owncast/activitypub/apmodels"
+ "github.com/owncast/owncast/activitypub/crypto"
+ "github.com/owncast/owncast/core/data"
+ "github.com/pkg/errors"
+ log "github.com/sirupsen/logrus"
+)
+
+// Resolve will translate a raw ActivityPub payload and fire the callback associated with that activity type.
+func Resolve(c context.Context, data []byte, callbacks ...interface{}) error {
+ jsonResolver, err := streams.NewJSONResolver(callbacks...)
+ if err != nil {
+ // Something in the setup was wrong. For example, a callback has an
+ // unsupported signature and would never be called
+ return err
+ }
+
+ var jsonMap map[string]interface{}
+ if err = json.Unmarshal(data, &jsonMap); err != nil {
+ return err
+ }
+
+ log.Debugln("Resolving payload...", string(data))
+
+ // The createCallback function will be called.
+ err = jsonResolver.Resolve(c, jsonMap)
+ if err != nil && !streams.IsUnmatchedErr(err) {
+ // Something went wrong
+ return err
+ } else if streams.IsUnmatchedErr(err) {
+ // Everything went right but the callback didn't match or the ActivityStreams
+ // type is one that wasn't code generated.
+ log.Debugln("No match: ", err)
+ }
+
+ return nil
+}
+
+// ResolveIRI will resolve an IRI ahd call the correct callback for the resolved type.
+func ResolveIRI(c context.Context, iri string, callbacks ...interface{}) error {
+ log.Debugln("Resolving", iri)
+
+ req, _ := http.NewRequest("GET", iri, nil)
+
+ actor := apmodels.MakeLocalIRIForAccount(data.GetDefaultFederationUsername())
+ if err := crypto.SignRequest(req, nil, actor); err != nil {
+ return err
+ }
+
+ response, err := http.DefaultClient.Do(req)
+ if err != nil {
+ return err
+ }
+
+ defer response.Body.Close()
+
+ data, err := ioutil.ReadAll(response.Body)
+ if err != nil {
+ return err
+ }
+
+ // fmt.Println(string(data))
+ return Resolve(c, data, callbacks...)
+}
+
+// GetResolvedActorFromActorProperty resolve an actor property to a fully populated person.
+func GetResolvedActorFromActorProperty(actor vocab.ActivityStreamsActorProperty) (apmodels.ActivityPubActor, error) {
+ var err error
+ var apActor apmodels.ActivityPubActor
+
+ personCallback := func(c context.Context, person vocab.ActivityStreamsPerson) error {
+ apActor = apmodels.MakeActorFromPerson(person)
+ return nil
+ }
+
+ serviceCallback := func(c context.Context, s vocab.ActivityStreamsService) error {
+ apActor = apmodels.MakeActorFromService(s)
+ return nil
+ }
+
+ for iter := actor.Begin(); iter != actor.End(); iter = iter.Next() {
+ if iter.IsIRI() {
+ iri := iter.GetIRI()
+ if e := ResolveIRI(context.Background(), iri.String(), personCallback, serviceCallback); e != nil {
+ err = e
+ }
+ } else if iter.IsActivityStreamsPerson() {
+ person := iter.GetActivityStreamsPerson()
+ apActor = apmodels.MakeActorFromPerson(person)
+ }
+ }
+
+ return apActor, errors.Wrap(err, "unable to resolve actor from actor property")
+}
+
+// GetResolvedActorFromIRI will resolve an IRI string to a fully populated actor.
+func GetResolvedActorFromIRI(personOrServiceIRI string) (apmodels.ActivityPubActor, error) {
+ var err error
+ var apActor apmodels.ActivityPubActor
+
+ personCallback := func(c context.Context, person vocab.ActivityStreamsPerson) error {
+ apActor = apmodels.MakeActorFromPerson(person)
+ return nil
+ }
+
+ serviceCallback := func(c context.Context, s vocab.ActivityStreamsService) error {
+ apActor = apmodels.MakeActorFromService(s)
+ return nil
+ }
+
+ if e := ResolveIRI(context.Background(), personOrServiceIRI, personCallback, serviceCallback); e != nil {
+ err = e
+ }
+
+ return apActor, errors.Wrap(err, "unable to resolve actor from IRI string: "+personOrServiceIRI)
+}
diff --git a/activitypub/router.go b/activitypub/router.go
new file mode 100644
index 000000000..a7dc81d75
--- /dev/null
+++ b/activitypub/router.go
@@ -0,0 +1,35 @@
+package activitypub
+
+import (
+ "net/http"
+
+ "github.com/owncast/owncast/activitypub/controllers"
+ "github.com/owncast/owncast/router/middleware"
+)
+
+// StartRouter will start the federation specific http router.
+func StartRouter() {
+ // WebFinger
+ http.HandleFunc("/.well-known/webfinger", controllers.WebfingerHandler)
+
+ // Host Metadata
+ http.HandleFunc("/.well-known/host-meta", controllers.HostMetaController)
+
+ // Nodeinfo v1
+ http.HandleFunc("/.well-known/nodeinfo", controllers.NodeInfoController)
+
+ // x-nodeinfo v2
+ http.HandleFunc("/.well-known/x-nodeinfo2", controllers.XNodeInfo2Controller)
+
+ // Nodeinfo v2
+ http.HandleFunc("/nodeinfo/2.0", controllers.NodeInfoV2Controller)
+
+ // Instance details
+ http.HandleFunc("/api/v1/instance", controllers.InstanceV1Controller)
+
+ // Single ActivityPub Actor
+ http.HandleFunc("/federation/user/", middleware.RequireActivityPubOrRedirect(controllers.ActorHandler))
+
+ // Single AP object
+ http.HandleFunc("/federation/", middleware.RequireActivityPubOrRedirect(controllers.ObjectHandler))
+}
diff --git a/activitypub/workerpool/outbound.go b/activitypub/workerpool/outbound.go
new file mode 100644
index 000000000..6c211afcb
--- /dev/null
+++ b/activitypub/workerpool/outbound.go
@@ -0,0 +1,66 @@
+package workerpool
+
+import (
+ "net/http"
+
+ log "github.com/sirupsen/logrus"
+)
+
+const (
+ // ActivityPubWorkerPoolSize defines the number of concurrent HTTP ActivityPub requests.
+ ActivityPubWorkerPoolSize = 10
+)
+
+// Job struct bundling the ActivityPub and the payload in one struct.
+type Job struct {
+ request *http.Request
+}
+
+var queue chan Job
+
+// InitOutboundWorkerPool starts n go routines that await ActivityPub jobs.
+func InitOutboundWorkerPool() {
+ queue = make(chan Job)
+
+ // start workers
+ for i := 1; i <= ActivityPubWorkerPoolSize; i++ {
+ go worker(i, queue)
+ }
+}
+
+// AddToOutboundQueue will queue up an outbound http request.
+func AddToOutboundQueue(req *http.Request) {
+ log.Tracef("Queued request for ActivityPub destination %s", req.RequestURI)
+ queue <- Job{req}
+}
+
+func worker(workerID int, queue <-chan Job) {
+ log.Debugf("Started ActivityPub worker %d", workerID)
+
+ for job := range queue {
+ if err := sendActivityPubMessageToInbox(job); err != nil {
+ log.Errorf("ActivityPub destination %s failed to send Error: %s", job.request.RequestURI, err)
+ }
+ log.Tracef("Done with ActivityPub destination %s using worker %d", job.request.RequestURI, workerID)
+ }
+}
+
+func sendActivityPubMessageToInbox(job Job) error {
+ // req, err := http.NewRequest("POST", job.inbox.String(), bytes.NewReader(job.payload))
+ // if err != nil {
+ // return err
+ // }
+
+ // req.Header.Set("Content-Type", "application/json")
+
+ client := &http.Client{}
+
+ resp, err := client.Do(job.request)
+ if err != nil {
+ return err
+ }
+
+ defer resp.Body.Close()
+
+ return nil
+}
diff --git a/config/defaults.go b/config/defaults.go
index de71849fd..6b5bd1d90 100644
--- a/config/defaults.go
+++ b/config/defaults.go
@@ -24,6 +24,9 @@ type Defaults struct {
SegmentLengthSeconds int
SegmentsInPlaylist int
StreamVariants []models.StreamOutputVariant
+
+ FederationUsername string
+ FederationGoLiveMessage string
}
// GetDefaults will return default configuration values.
@@ -59,5 +62,8 @@ func GetDefaults() Defaults {
CPUUsageLevel: 2,
},
},
+
+ FederationUsername: "streamer",
+ FederationGoLiveMessage: "I've gone live!",
}
}
diff --git a/controllers/admin/config.go b/controllers/admin/config.go
index e2fd85a2a..529ace488 100644
--- a/controllers/admin/config.go
+++ b/controllers/admin/config.go
@@ -11,6 +11,7 @@ import (
"reflect"
"strings"
+ "github.com/owncast/owncast/activitypub/outbox"
"github.com/owncast/owncast/controllers"
"github.com/owncast/owncast/core/chat"
"github.com/owncast/owncast/core/data"
@@ -46,6 +47,12 @@ func SetTags(w http.ResponseWriter, r *http.Request) {
return
}
+ // Update Fediverse followers about this change.
+ if err := outbox.UpdateFollowersWithAccountUpdates(); err != nil {
+ controllers.WriteSimpleResponse(w, false, err.Error())
+ return
+ }
+
controllers.WriteSimpleResponse(w, true, "changed")
}
@@ -99,6 +106,12 @@ func SetServerName(w http.ResponseWriter, r *http.Request) {
return
}
+ // Update Fediverse followers about this change.
+ if err := outbox.UpdateFollowersWithAccountUpdates(); err != nil {
+ controllers.WriteSimpleResponse(w, false, err.Error())
+ return
+ }
+
controllers.WriteSimpleResponse(w, true, "changed")
}
@@ -118,6 +131,12 @@ func SetServerSummary(w http.ResponseWriter, r *http.Request) {
return
}
+ // Update Fediverse followers about this change.
+ if err := outbox.UpdateFollowersWithAccountUpdates(); err != nil {
+ controllers.WriteSimpleResponse(w, false, err.Error())
+ return
+ }
+
controllers.WriteSimpleResponse(w, true, "changed")
}
@@ -233,6 +252,12 @@ func SetLogo(w http.ResponseWriter, r *http.Request) {
return
}
+ // Update Fediverse followers about this change.
+ if err := outbox.UpdateFollowersWithAccountUpdates(); err != nil {
+ controllers.WriteSimpleResponse(w, false, err.Error())
+ return
+ }
+
controllers.WriteSimpleResponse(w, true, "changed")
}
@@ -504,6 +529,12 @@ func SetSocialHandles(w http.ResponseWriter, r *http.Request) {
return
}
+ // Update Fediverse followers about this change.
+ if err := outbox.UpdateFollowersWithAccountUpdates(); err != nil {
+ controllers.WriteSimpleResponse(w, false, err.Error())
+ return
+ }
+
controllers.WriteSimpleResponse(w, true, "social handles updated")
}
diff --git a/controllers/admin/federation.go b/controllers/admin/federation.go
new file mode 100644
index 000000000..43f2aa695
--- /dev/null
+++ b/controllers/admin/federation.go
@@ -0,0 +1,171 @@
+package admin
+
+import (
+ "net/http"
+
+ "github.com/owncast/owncast/activitypub"
+ "github.com/owncast/owncast/activitypub/outbox"
+ "github.com/owncast/owncast/activitypub/persistence"
+ "github.com/owncast/owncast/controllers"
+ "github.com/owncast/owncast/core/data"
+)
+
+// SendFederatedMessage will send a manual message to the fediverse.
+func SendFederatedMessage(w http.ResponseWriter, r *http.Request) {
+ if !requirePOST(w, r) {
+ return
+ }
+
+ configValue, success := getValueFromRequest(w, r)
+ if !success {
+ return
+ }
+
+ message, ok := configValue.Value.(string)
+ if !ok {
+ controllers.WriteSimpleResponse(w, false, "unable to send message")
+ }
+
+ if err := activitypub.SendPublicFederatedMessage(message); err != nil {
+ controllers.WriteSimpleResponse(w, false, err.Error())
+ return
+ }
+
+ controllers.WriteSimpleResponse(w, true, "sent")
+}
+
+// SetFederationEnabled will set if Federation features are enabled.
+func SetFederationEnabled(w http.ResponseWriter, r *http.Request) {
+ if !requirePOST(w, r) {
+ return
+ }
+
+ configValue, success := getValueFromRequest(w, r)
+ if !success {
+ return
+ }
+
+ if err := data.SetFederationEnabled(configValue.Value.(bool)); err != nil {
+ controllers.WriteSimpleResponse(w, false, err.Error())
+ return
+ }
+ controllers.WriteSimpleResponse(w, true, "federation features saved")
+}
+
+// SetFederationActivityPrivate will set if Federation features are private to followers.
+func SetFederationActivityPrivate(w http.ResponseWriter, r *http.Request) {
+ if !requirePOST(w, r) {
+ return
+ }
+
+ configValue, success := getValueFromRequest(w, r)
+ if !success {
+ return
+ }
+
+ if err := data.SetFederationIsPrivate(configValue.Value.(bool)); err != nil {
+ controllers.WriteSimpleResponse(w, false, err.Error())
+ return
+ }
+
+ // Update Fediverse followers about this change.
+ if err := outbox.UpdateFollowersWithAccountUpdates(); err != nil {
+ controllers.WriteSimpleResponse(w, false, err.Error())
+ return
+ }
+
+ controllers.WriteSimpleResponse(w, true, "federation private saved")
+}
+
+// SetFederationShowEngagement will set if Fedivese engagement shows in chat.
+func SetFederationShowEngagement(w http.ResponseWriter, r *http.Request) {
+ if !requirePOST(w, r) {
+ return
+ }
+
+ configValue, success := getValueFromRequest(w, r)
+ if !success {
+ return
+ }
+
+ if err := data.SetFederationShowEngagement(configValue.Value.(bool)); err != nil {
+ controllers.WriteSimpleResponse(w, false, err.Error())
+ return
+ }
+ controllers.WriteSimpleResponse(w, true, "federation show engagement saved")
+}
+
+// SetFederationUsername will set the local actor username used for federation activities.
+func SetFederationUsername(w http.ResponseWriter, r *http.Request) {
+ if !requirePOST(w, r) {
+ return
+ }
+
+ configValue, success := getValueFromRequest(w, r)
+ if !success {
+ return
+ }
+
+ if err := data.SetFederationUsername(configValue.Value.(string)); err != nil {
+ controllers.WriteSimpleResponse(w, false, err.Error())
+ return
+ }
+
+ controllers.WriteSimpleResponse(w, true, "username saved")
+}
+
+// SetFederationGoLiveMessage will set the federated message sent when the streamer goes live.
+func SetFederationGoLiveMessage(w http.ResponseWriter, r *http.Request) {
+ if !requirePOST(w, r) {
+ return
+ }
+
+ configValue, success := getValueFromRequest(w, r)
+ if !success {
+ return
+ }
+
+ if err := data.SetFederationGoLiveMessage(configValue.Value.(string)); err != nil {
+ controllers.WriteSimpleResponse(w, false, err.Error())
+ return
+ }
+
+ controllers.WriteSimpleResponse(w, true, "message saved")
+}
+
+// SetFederationBlockDomains saves a list of domains to block on the Fediverse.
+func SetFederationBlockDomains(w http.ResponseWriter, r *http.Request) {
+ if !requirePOST(w, r) {
+ return
+ }
+
+ configValues, success := getValuesFromRequest(w, r)
+ if !success {
+ controllers.WriteSimpleResponse(w, false, "unable to handle provided domains")
+ return
+ }
+
+ domainStrings := make([]string, 0)
+ for _, domain := range configValues {
+ domainStrings = append(domainStrings, domain.Value.(string))
+ }
+
+ if err := data.SetBlockedFederatedDomains(domainStrings); err != nil {
+ controllers.WriteSimpleResponse(w, false, err.Error())
+ return
+ }
+
+ controllers.WriteSimpleResponse(w, true, "saved")
+}
+
+// GetFederatedActions will return the saved list of accepted inbound
+// federated activities.
+func GetFederatedActions(w http.ResponseWriter, r *http.Request) {
+ activities, err := persistence.GetInboundActivities(100, 0)
+ if err != nil {
+ controllers.WriteSimpleResponse(w, false, err.Error())
+ return
+ }
+
+ controllers.WriteResponse(w, activities)
+}
diff --git a/controllers/admin/followers.go b/controllers/admin/followers.go
new file mode 100644
index 000000000..624688c98
--- /dev/null
+++ b/controllers/admin/followers.go
@@ -0,0 +1,82 @@
+package admin
+
+import (
+ "encoding/json"
+ "net/http"
+
+ "github.com/owncast/owncast/activitypub/persistence"
+ "github.com/owncast/owncast/activitypub/requests"
+ "github.com/owncast/owncast/controllers"
+ "github.com/owncast/owncast/core/data"
+)
+
+// ApproveFollower will approve a federated follow request.
+func ApproveFollower(w http.ResponseWriter, r *http.Request) {
+ if !requirePOST(w, r) {
+ return
+ }
+
+ type approveFollowerRequest struct {
+ ActorIRI string `json:"actorIRI"`
+ Approved bool `json:"approved"`
+ }
+
+ decoder := json.NewDecoder(r.Body)
+ var approval approveFollowerRequest
+ if err := decoder.Decode(&approval); err != nil {
+ controllers.WriteSimpleResponse(w, false, "unable to handle follower state with provided values")
+ return
+ }
+
+ if approval.Approved {
+ // Approve a follower
+ if err := persistence.ApprovePreviousFollowRequest(approval.ActorIRI); err != nil {
+ controllers.WriteSimpleResponse(w, false, err.Error())
+ return
+ }
+
+ localAccountName := data.GetDefaultFederationUsername()
+
+ follower, err := persistence.GetFollower(approval.ActorIRI)
+ if err != nil {
+ controllers.WriteSimpleResponse(w, false, err.Error())
+ return
+ }
+
+ // Send the approval to the follow requestor.
+ if err := requests.SendFollowAccept(follower.Inbox, follower.FollowRequestIri, localAccountName); err != nil {
+ controllers.WriteSimpleResponse(w, false, err.Error())
+ return
+ }
+ } else {
+ // Remove/block a follower
+ if err := persistence.BlockOrRejectFollower(approval.ActorIRI); err != nil {
+ controllers.WriteSimpleResponse(w, false, err.Error())
+ return
+ }
+ }
+
+ controllers.WriteSimpleResponse(w, true, "follower updated")
+}
+
+// GetPendingFollowRequests will return a list of pending follow requests.
+func GetPendingFollowRequests(w http.ResponseWriter, r *http.Request) {
+ requests, err := persistence.GetPendingFollowRequests()
+ if err != nil {
+ controllers.WriteSimpleResponse(w, false, err.Error())
+ return
+ }
+
+ controllers.WriteResponse(w, requests)
+}
+
+// GetBlockedAndRejectedFollowers will return blocked and rejected followers.
+func GetBlockedAndRejectedFollowers(w http.ResponseWriter, r *http.Request) {
+ rejections, err := persistence.GetBlockedAndRejectedFollowers()
+ if err != nil {
+ controllers.WriteSimpleResponse(w, false, err.Error())
+ return
+ }
+
+ controllers.WriteResponse(w, rejections)
+}
diff --git a/controllers/admin/serverConfig.go b/controllers/admin/serverConfig.go
index 8270e9622..046dec6b6 100644
--- a/controllers/admin/serverConfig.go
+++ b/controllers/admin/serverConfig.go
@@ -66,6 +66,14 @@ func GetServerConfig(w http.ResponseWriter, r *http.Request) {
VideoCodec: data.GetVideoCodec(),
ForbiddenUsernames: usernameBlocklist,
SuggestedUsernames: usernameSuggestions,
+ Federation: federationConfigResponse{
+ Enabled: data.GetFederationEnabled(),
+ IsPrivate: data.GetFederationIsPrivate(),
+ Username: data.GetFederationUsername(),
+ GoLiveMessage: data.GetFederationGoLiveMessage(),
+ ShowEngagement: data.GetFederationShowEngagement(),
+ BlockedDomains: data.GetBlockedFederatedDomains(),
+ },
}
w.Header().Set("Content-Type", "application/json")
@@ -77,21 +85,22 @@ func GetServerConfig(w http.ResponseWriter, r *http.Request) {
}
type serverConfigAdminResponse struct {
- InstanceDetails webConfigResponse `json:"instanceDetails"`
- FFmpegPath string `json:"ffmpegPath"`
- StreamKey string `json:"streamKey"`
- WebServerPort int `json:"webServerPort"`
- WebServerIP string `json:"webServerIP"`
- RTMPServerPort int `json:"rtmpServerPort"`
- S3 models.S3 `json:"s3"`
- VideoSettings videoSettings `json:"videoSettings"`
- YP yp `json:"yp"`
- ChatDisabled bool `json:"chatDisabled"`
- ExternalActions []models.ExternalAction `json:"externalActions"`
- SupportedCodecs []string `json:"supportedCodecs"`
- VideoCodec string `json:"videoCodec"`
- ForbiddenUsernames []string `json:"forbiddenUsernames"`
- SuggestedUsernames []string `json:"suggestedUsernames"`
+ InstanceDetails webConfigResponse `json:"instanceDetails"`
+ FFmpegPath string `json:"ffmpegPath"`
+ StreamKey string `json:"streamKey"`
+ WebServerPort int `json:"webServerPort"`
+ WebServerIP string `json:"webServerIP"`
+ RTMPServerPort int `json:"rtmpServerPort"`
+ S3 models.S3 `json:"s3"`
+ VideoSettings videoSettings `json:"videoSettings"`
+ YP yp `json:"yp"`
+ ChatDisabled bool `json:"chatDisabled"`
+ ExternalActions []models.ExternalAction `json:"externalActions"`
+ SupportedCodecs []string `json:"supportedCodecs"`
+ VideoCodec string `json:"videoCodec"`
+ ForbiddenUsernames []string `json:"forbiddenUsernames"`
+ Federation federationConfigResponse `json:"federation"`
+ SuggestedUsernames []string `json:"suggestedUsernames"`
}
type videoSettings struct {
@@ -118,3 +127,12 @@ type yp struct {
InstanceURL string `json:"instanceUrl"` // The public URL the directory should link to
YPServiceURL string `json:"-"` // The base URL to the YP API to register with (optional)
}
+
+type federationConfigResponse struct {
+ Enabled bool `json:"enabled"`
+ IsPrivate bool `json:"isPrivate"`
+ Username string `json:"username"`
+ GoLiveMessage string `json:"goLiveMessage"`
+ ShowEngagement bool `json:"showEngagement"`
+ BlockedDomains []string `json:"blockedDomains"`
+}
diff --git a/controllers/config.go b/controllers/config.go
index 9e5c232df..b91152bdc 100644
--- a/controllers/config.go
+++ b/controllers/config.go
@@ -2,8 +2,11 @@ package controllers
import (
"encoding/json"
+ "fmt"
"net/http"
+ "net/url"
+ "github.com/owncast/owncast/activitypub"
"github.com/owncast/owncast/config"
"github.com/owncast/owncast/core/data"
"github.com/owncast/owncast/models"
@@ -12,19 +15,26 @@ import (
)
type webConfigResponse struct {
- Name string `json:"name"`
- Summary string `json:"summary"`
- Logo string `json:"logo"`
- Tags []string `json:"tags"`
- Version string `json:"version"`
- NSFW bool `json:"nsfw"`
- ExtraPageContent string `json:"extraPageContent"`
- StreamTitle string `json:"streamTitle,omitempty"` // What's going on with the current stream
- SocialHandles []models.SocialHandle `json:"socialHandles"`
- ChatDisabled bool `json:"chatDisabled"`
- ExternalActions []models.ExternalAction `json:"externalActions"`
- CustomStyles string `json:"customStyles"`
- MaxSocketPayloadSize int `json:"maxSocketPayloadSize"`
+ Name string `json:"name"`
+ Summary string `json:"summary"`
+ Logo string `json:"logo"`
+ Tags []string `json:"tags"`
+ Version string `json:"version"`
+ NSFW bool `json:"nsfw"`
+ ExtraPageContent string `json:"extraPageContent"`
+ StreamTitle string `json:"streamTitle,omitempty"` // What's going on with the current stream
+ SocialHandles []models.SocialHandle `json:"socialHandles"`
+ ChatDisabled bool `json:"chatDisabled"`
+ ExternalActions []models.ExternalAction `json:"externalActions"`
+ CustomStyles string `json:"customStyles"`
+ MaxSocketPayloadSize int `json:"maxSocketPayloadSize"`
+ Federation federationConfigResponse `json:"federation"`
+}
+
+type federationConfigResponse struct {
+ Enabled bool `json:"enabled"`
+ Account string `json:"account,omitempty"`
+ FollowerCount int `json:"followerCount,omitempty"`
}
// GetWebConfig gets the status of the server.
@@ -46,6 +56,21 @@ func GetWebConfig(w http.ResponseWriter, r *http.Request) {
serverSummary := data.GetServerSummary()
serverSummary = utils.RenderPageContentMarkdown(serverSummary)
+ var federationResponse federationConfigResponse
+ federationEnabled := data.GetFederationEnabled()
+
+ followerCount, _ := activitypub.GetFollowerCount()
+ if federationEnabled {
+ serverURLString := data.GetServerURL()
+ serverURL, _ := url.Parse(serverURLString)
+ account := fmt.Sprintf("%s@%s", data.GetDefaultFederationUsername(), serverURL.Host)
+ federationResponse = federationConfigResponse{
+ Enabled: federationEnabled,
+ FollowerCount: int(followerCount),
+ Account: account,
+ }
+ }
+
configuration := webConfigResponse{
Name: data.GetServerName(),
Summary: serverSummary,
@@ -60,6 +85,7 @@ func GetWebConfig(w http.ResponseWriter, r *http.Request) {
ExternalActions: data.GetExternalActions(),
CustomStyles: data.GetCustomStyles(),
MaxSocketPayloadSize: config.MaxSocketPayloadSize,
+ Federation: federationResponse,
}
if err := json.NewEncoder(w).Encode(configuration); err != nil {
diff --git a/controllers/followers.go b/controllers/followers.go
new file mode 100644
index 000000000..8561d25a4
--- /dev/null
+++ b/controllers/followers.go
@@ -0,0 +1,18 @@
+package controllers
+
+import (
+ "net/http"
+
+ "github.com/owncast/owncast/activitypub/persistence"
+)
+
+// GetFollowers will handle an API request to fetch the list of followers (non-activitypub response).
+func GetFollowers(w http.ResponseWriter, r *http.Request) {
+ followers, err := persistence.GetFederationFollowers(-1, 0)
+ if err != nil {
+ WriteSimpleResponse(w, false, "unable to fetch followers")
+ return
+ }
+
+ WriteResponse(w, followers)
+}
diff --git a/controllers/index.go b/controllers/index.go
index 3f37f1083..b720beee2 100644
--- a/controllers/index.go
+++ b/controllers/index.go
@@ -35,6 +35,15 @@ type MetadataPage struct {
// IndexHandler handles the default index route.
func IndexHandler(w http.ResponseWriter, r *http.Request) {
middleware.EnableCors(w)
+
+ // Treat recordings and schedule as index requests
+ pathComponents := strings.Split(r.URL.Path, "/")
+ pathRequest := pathComponents[1]
+
+ if pathRequest == "recordings" || pathRequest == "schedule" {
+ r.URL.Path = "index.html"
+ }
+
isIndexRequest := r.URL.Path == "/" || filepath.Base(r.URL.Path) == "index.html" || filepath.Base(r.URL.Path) == ""
// For search engine bots and social scrapers return a special
@@ -91,11 +100,11 @@ func handleScraperMetadataPage(w http.ResponseWriter, r *http.Request) {
fullURL, err := url.Parse(fmt.Sprintf("%s://%s%s", scheme, r.Host, r.URL.Path))
if err != nil {
- log.Panicln(err)
+ log.Errorln(err)
}
imageURL, err := url.Parse(fmt.Sprintf("%s://%s%s", scheme, r.Host, "/logo/external"))
if err != nil {
- log.Panicln(err)
+ log.Errorln(err)
}
status := core.GetStatus()
@@ -128,6 +137,6 @@ func handleScraperMetadataPage(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "text/html")
if err := tmpl.Execute(w, metadata); err != nil {
- log.Panicln(err)
+ log.Errorln(err)
}
}
diff --git a/controllers/remoteFollow.go b/controllers/remoteFollow.go
new file mode 100644
index 000000000..9ea585cc6
--- /dev/null
+++ b/controllers/remoteFollow.go
@@ -0,0 +1,100 @@
+package controllers
+
+import (
+ "encoding/json"
+ "fmt"
+ "net/http"
+ "net/url"
+ "strings"
+
+ "github.com/owncast/owncast/core/data"
+)
+
+// RemoteFollow handles a request to begin the remote follow redirect flow.
+func RemoteFollow(w http.ResponseWriter, r *http.Request) {
+ type followRequest struct {
+ Account string `json:"account"`
+ }
+
+ type followResponse struct {
+ RedirectURL string `json:"redirectUrl"`
+ }
+
+ var request followRequest
+ decoder := json.NewDecoder(r.Body)
+ if err := decoder.Decode(&request); err != nil {
+ WriteSimpleResponse(w, false, "unable to parse request")
+ return
+ }
+
+ if request.Account == "" {
+ WriteSimpleResponse(w, false, "Remote Fediverse account is required to follow.")
+ return
+ }
+
+ localActorPath, _ := url.Parse(data.GetServerURL())
+ localActorPath.Path = fmt.Sprintf("/federation/user/%s", data.GetDefaultFederationUsername())
+ var template string
+ links, err := getWebfingerLinks(request.Account)
+ if err != nil {
+ WriteSimpleResponse(w, false, err.Error())
+ return
+ }
+
+ // Acquire the remote follow redirect template.
+ for _, link := range links {
+ for k, v := range link {
+ if k == "rel" && v == "http://ostatus.org/schema/1.0/subscribe" && link["template"] != nil {
+ template = link["template"].(string)
+ }
+ }
+ }
+
+ if localActorPath.String() == "" || template == "" {
+ WriteSimpleResponse(w, false, "unable to determine remote follow information for "+request.Account)
+ return
+ }
+
+ redirectURL := strings.Replace(template, "{uri}", localActorPath.String(), 1)
+ response := followResponse{
+ RedirectURL: redirectURL,
+ }
+
+ WriteResponse(w, response)
+}
+
+func getWebfingerLinks(account string) ([]map[string]interface{}, error) {
+ type webfingerResponse struct {
+ Links []map[string]interface{} `json:"links"`
+ }
+
+ account = strings.TrimLeft(account, "@") // remove any leading @
+ accountComponents := strings.Split(account, "@")
+ fediverseServer := accountComponents[1]
+
+ // HTTPS is required.
+ requestURL, err := url.Parse("https://" + fediverseServer)
+ if err != nil {
+ return nil, fmt.Errorf("unable to parse fediverse server host %s", fediverseServer)
+ }
+
+ requestURL.Path = "/.well-known/webfinger"
+ query := requestURL.Query()
+ query.Add("resource", fmt.Sprintf("acct:%s", account))
+ requestURL.RawQuery = query.Encode()
+
+ response, err := http.DefaultClient.Get(requestURL.String())
+ if err != nil {
+ return nil, err
+ }
+
+ defer response.Body.Close()
+
+ var links webfingerResponse
+ decoder := json.NewDecoder(response.Body)
+ if err := decoder.Decode(&links); err != nil {
+ return nil, err
+ }
+
+ return links.Links, nil
+}
diff --git a/core/chat/chat.go b/core/chat/chat.go
index 11735e99b..975b12c5e 100644
--- a/core/chat/chat.go
+++ b/core/chat/chat.go
@@ -78,12 +78,39 @@ func SendSystemMessage(text string, ephemeral bool) error {
}
if !ephemeral {
- saveEvent(message.ID, "system", message.Body, message.GetMessageType(), nil, message.Timestamp)
+ saveEvent(message.ID, nil, message.Body, message.GetMessageType(), nil, message.Timestamp, nil, nil, nil, nil)
}
return nil
}
+// SendFediverseAction will send a message indicating some Fediverse engagement took place.
+func SendFediverseAction(eventType string, userAccountName string, image *string, body string, link string) error {
+ message := events.FediverseEngagementEvent{
+ Event: events.Event{
+ Type: eventType,
+ },
+ MessageEvent: events.MessageEvent{
+ Body: body,
+ },
+ UserAccountName: userAccountName,
+ Image: image,
+ Link: link,
+ }
+
+ message.SetDefaults()
+ message.RenderBody()
+
+ if err := Broadcast(&message); err != nil {
+ log.Errorln("error sending system message", err)
+ return err
+ }
+
+ saveFederatedAction(message)
+
+ return nil
+}
+
// SendSystemAction will send a system action string as an action event to all clients.
func SendSystemAction(text string, ephemeral bool) error {
message := events.ActionEvent{
@@ -100,7 +127,7 @@ func SendSystemAction(text string, ephemeral bool) error {
}
if !ephemeral {
- saveEvent(message.ID, "action", message.Body, message.GetMessageType(), nil, message.Timestamp)
+ saveEvent(message.ID, nil, message.Body, message.GetMessageType(), nil, message.Timestamp, nil, nil, nil, nil)
}
return nil
diff --git a/core/chat/events/eventtype.go b/core/chat/events/eventtype.go
index 459f9d8fb..a0d15b63a 100644
--- a/core/chat/events/eventtype.go
+++ b/core/chat/events/eventtype.go
@@ -34,4 +34,10 @@ const (
ErrorMaxConnectionsExceeded EventType = "ERROR_MAX_CONNECTIONS_EXCEEDED"
// ErrorUserDisabled is an error returned when the connecting user has been previously banned/disabled.
ErrorUserDisabled EventType = "ERROR_USER_DISABLED"
+ // FediverseEngagementFollow is an event representing a follow action that took place on the fediverse.
+ FediverseEngagementFollow EventType = "FEDIVERSE_ENGAGEMENT_FOLLOW"
+ // FediverseEngagementLike is an event representing a like action that took place on the fediverse.
+ FediverseEngagementLike EventType = "FEDIVERSE_ENGAGEMENT_LIKE"
+ // FediverseEngagementRepost is an event representing a re-post action that took place on the fediverse.
+ FediverseEngagementRepost EventType = "FEDIVERSE_ENGAGEMENT_REPOST"
)
diff --git a/core/chat/events/fediverseEngagementEvent.go b/core/chat/events/fediverseEngagementEvent.go
new file mode 100644
index 000000000..7bc841783
--- /dev/null
+++ b/core/chat/events/fediverseEngagementEvent.go
@@ -0,0 +1,32 @@
+package events
+
+import "github.com/owncast/owncast/core/data"
+
+// FediverseEngagementEvent is a message displayed in chat on representing an action on the Fediverse.
+type FediverseEngagementEvent struct {
+ Event
+ MessageEvent
+ Image *string `json:"image"`
+ Link string `json:"link"`
+ UserAccountName string `json:"title"`
+}
+
+// GetBroadcastPayload will return the object to send to all chat users.
+func (e *FediverseEngagementEvent) GetBroadcastPayload() EventPayload {
+ return EventPayload{
+ "id": e.ID,
+ "timestamp": e.Timestamp,
+ "body": e.Body,
+ "image": e.Image,
+ "type": e.Event.Type,
+ "title": e.UserAccountName,
+ "user": EventPayload{
+ "displayName": data.GetServerName(),
+ },
+ }
+}
+
+// GetMessageType will return the event type for this message.
+func (e *FediverseEngagementEvent) GetMessageType() EventType {
+ return e.Event.Type
+}
diff --git a/core/chat/persistence.go b/core/chat/persistence.go
index 716b71e5c..17bb7796e 100644
--- a/core/chat/persistence.go
+++ b/core/chat/persistence.go
@@ -34,17 +34,19 @@ func setupPersistence() {
// SaveUserMessage will save a single chat event to the messages database.
func SaveUserMessage(event events.UserMessageEvent) {
- saveEvent(event.ID, event.User.ID, event.Body, event.Type, event.HiddenAt, event.Timestamp)
+ saveEvent(event.ID, &event.User.ID, event.Body, event.Type, event.HiddenAt, event.Timestamp, nil, nil, nil, nil)
}
-func saveEvent(id string, userID string, body string, eventType string, hidden *time.Time, timestamp time.Time) {
+func saveFederatedAction(event events.FediverseEngagementEvent) {
+ saveEvent(event.ID, nil, event.Body, event.Type, nil, event.Timestamp, event.Image, &event.Link, &event.UserAccountName, nil)
+}
+
+// nolint: unparam
+func saveEvent(id string, userID *string, body string, eventType string, hidden *time.Time, timestamp time.Time, image *string, link *string, title *string, subtitle *string) {
defer func() {
_historyCache = nil
}()
- _datastore.DbLock.Lock()
- defer _datastore.DbLock.Unlock()
-
tx, err := _datastore.DB.Begin()
if err != nil {
log.Errorln("error saving", eventType, err)
@@ -53,7 +55,7 @@ func saveEvent(id string, userID string, body string, eventType string, hidden *
defer tx.Rollback() // nolint
- stmt, err := tx.Prepare("INSERT INTO messages(id, user_id, body, eventType, hidden_at, timestamp) values(?, ?, ?, ?, ?, ?)")
+ stmt, err := tx.Prepare("INSERT INTO messages(id, user_id, body, eventType, hidden_at, timestamp, image, link, title, subtitle) values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)")
if err != nil {
log.Errorln("error saving", eventType, err)
return
@@ -61,7 +63,7 @@ func saveEvent(id string, userID string, body string, eventType string, hidden *
defer stmt.Close()
- if _, err = stmt.Exec(id, userID, body, eventType, hidden, timestamp); err != nil {
+ if _, err = stmt.Exec(id, userID, body, eventType, hidden, timestamp, image, link, title, subtitle); err != nil {
log.Errorln("error saving", eventType, err)
return
}
@@ -71,8 +73,134 @@ func saveEvent(id string, userID string, body string, eventType string, hidden *
}
}
-func getChat(query string) []events.UserMessageEvent {
- history := make([]events.UserMessageEvent, 0)
+func makeUserMessageEventFromRowData(row rowData) events.UserMessageEvent {
+ scopes := ""
+ if row.userScopes != nil {
+ scopes = *row.userScopes
+ }
+
+ previousUsernames := []string{}
+ if row.previousUsernames != nil {
+ previousUsernames = strings.Split(*row.previousUsernames, ",")
+ }
+
+ displayName := ""
+ if row.userDisplayName != nil {
+ displayName = *row.userDisplayName
+ }
+
+ displayColor := 0
+ if row.userDisplayColor != nil {
+ displayColor = *row.userDisplayColor
+ }
+
+ createdAt := time.Time{}
+ if row.userCreatedAt != nil {
+ createdAt = *row.userCreatedAt
+ }
+
+ u := user.User{
+ ID: *row.userID,
+ AccessToken: "",
+ DisplayName: displayName,
+ DisplayColor: displayColor,
+ CreatedAt: createdAt,
+ DisabledAt: row.userDisabledAt,
+ NameChangedAt: row.userNameChangedAt,
+ PreviousNames: previousUsernames,
+ Scopes: strings.Split(scopes, ","),
+ }
+
+ message := events.UserMessageEvent{
+ Event: events.Event{
+ Type: row.eventType,
+ ID: row.id,
+ Timestamp: row.timestamp,
+ },
+ UserEvent: events.UserEvent{
+ User: &u,
+ HiddenAt: row.hiddenAt,
+ },
+ MessageEvent: events.MessageEvent{
+ Body: row.body,
+ RawBody: row.body,
+ },
+ }
+
+ return message
+}
+
+func makeSystemMessageChatEventFromRowData(row rowData) events.SystemMessageEvent {
+ message := events.SystemMessageEvent{
+ Event: events.Event{
+ Type: row.eventType,
+ ID: row.id,
+ Timestamp: row.timestamp,
+ },
+ MessageEvent: events.MessageEvent{
+ Body: row.body,
+ RawBody: row.body,
+ },
+ }
+ return message
+}
+
+func makeActionMessageChatEventFromRowData(row rowData) events.ActionEvent {
+ message := events.ActionEvent{
+ Event: events.Event{
+ Type: row.eventType,
+ ID: row.id,
+ Timestamp: row.timestamp,
+ },
+ MessageEvent: events.MessageEvent{
+ Body: row.body,
+ RawBody: row.body,
+ },
+ }
+ return message
+}
+
+func makeFederatedActionChatEventFromRowData(row rowData) events.FediverseEngagementEvent {
+ message := events.FediverseEngagementEvent{
+ Event: events.Event{
+ Type: row.eventType,
+ ID: row.id,
+ Timestamp: row.timestamp,
+ },
+ MessageEvent: events.MessageEvent{
+ Body: row.body,
+ RawBody: row.body,
+ },
+ Image: row.image,
+ Link: *row.link,
+ UserAccountName: *row.title,
+ }
+ return message
+}
+
+type rowData struct {
+ id string
+ userID *string
+ body string
+ eventType models.EventType
+ hiddenAt *time.Time
+ timestamp time.Time
+ title *string
+ subtitle *string
+ image *string
+ link *string
+
+ userDisplayName *string
+ userDisplayColor *int
+ userCreatedAt *time.Time
+ userDisabledAt *time.Time
+ previousUsernames *string
+ userNameChangedAt *time.Time
+ userScopes *string
+}
+
+func getChat(query string) []interface{} {
+ history := make([]interface{}, 0)
rows, err := _datastore.DB.Query(query)
if err != nil || rows.Err() != nil {
log.Errorln("error fetching chat history", err)
@@ -81,69 +209,47 @@ func getChat(query string) []events.UserMessageEvent {
defer rows.Close()
for rows.Next() {
- var id string
- var userID string
- var body string
- var messageType models.EventType
- var hiddenAt *time.Time
- var timestamp time.Time
-
- var userDisplayName *string
- var userDisplayColor *int
- var userCreatedAt *time.Time
- var userDisabledAt *time.Time
- var previousUsernames *string
- var userNameChangedAt *time.Time
+ row := rowData{}
// Convert a database row into a chat event
- err = rows.Scan(&id, &userID, &body, &messageType, &hiddenAt, &timestamp, &userDisplayName, &userDisplayColor, &userCreatedAt, &userDisabledAt, &previousUsernames, &userNameChangedAt)
- if err != nil {
+ if err = rows.Scan(
+ &row.id,
+ &row.userID,
+ &row.body,
+ &row.title,
+ &row.subtitle,
+ &row.image,
+ &row.link,
+ &row.eventType,
+ &row.hiddenAt,
+ &row.timestamp,
+ &row.userDisplayName,
+ &row.userDisplayColor,
+ &row.userCreatedAt,
+ &row.userDisabledAt,
+ &row.previousUsernames,
+ &row.userNameChangedAt,
+ &row.userScopes,
+ ); err != nil {
log.Errorln("There is a problem converting query to chat objects. Please report this:", query)
break
}
- // System messages and chat actions are special and are not from real users
- if messageType == events.SystemMessageSent || messageType == events.ChatActionSent {
- name := "Owncast"
- userDisplayName = &name
- color := 200
- userDisplayColor = &color
- }
-
- if previousUsernames == nil {
- previousUsernames = userDisplayName
- }
-
- if userCreatedAt == nil {
- now := time.Now()
- userCreatedAt = &now
- }
-
- user := user.User{
- ID: userID,
- AccessToken: "",
- DisplayName: *userDisplayName,
- DisplayColor: *userDisplayColor,
- CreatedAt: *userCreatedAt,
- DisabledAt: userDisabledAt,
- NameChangedAt: userNameChangedAt,
- PreviousNames: strings.Split(*previousUsernames, ","),
- }
-
- message := events.UserMessageEvent{
- Event: events.Event{
- Type: messageType,
- ID: id,
- Timestamp: timestamp,
- },
- UserEvent: events.UserEvent{
- User: &user,
- HiddenAt: hiddenAt,
- },
- MessageEvent: events.MessageEvent{
- Body: body,
- RawBody: body,
- },
+ var message interface{}
+
+ switch row.eventType {
+ case events.MessageSent:
+ message = makeUserMessageEventFromRowData(row)
+ case events.SystemMessageSent:
+ message = makeSystemMessageChatEventFromRowData(row)
+ case events.ChatActionSent:
+ message = makeActionMessageChatEventFromRowData(row)
+ case events.FediverseEngagementFollow:
+ message = makeFederatedActionChatEventFromRowData(row)
+ case events.FediverseEngagementLike:
+ message = makeFederatedActionChatEventFromRowData(row)
+ case events.FediverseEngagementRepost:
+ message = makeFederatedActionChatEventFromRowData(row)
}
history = append(history, message)
@@ -152,16 +258,16 @@ func getChat(query string) []events.UserMessageEvent {
return history
}
-var _historyCache *[]events.UserMessageEvent
+var _historyCache *[]interface{}
// GetChatModerationHistory will return all the chat messages suitable for moderation purposes.
-func GetChatModerationHistory() []events.UserMessageEvent {
+func GetChatModerationHistory() []interface{} {
if _historyCache != nil {
return *_historyCache
}
// Get all messages regardless of visibility
- query := "SELECT messages.id, user_id, body, eventType, hidden_at, timestamp, display_name, display_color, created_at, disabled_at, previous_names, namechanged_at FROM messages INNER JOIN users ON messages.user_id = users.id ORDER BY timestamp DESC"
+ query := "SELECT messages.id, user_id, body, title, subtitle, image, link, eventType, hidden_at, timestamp, display_name, display_color, created_at, disabled_at, previous_names, namechanged_at, scopes FROM messages INNER JOIN users ON messages.user_id = users.id ORDER BY timestamp DESC"
result := getChat(query)
_historyCache = &result
@@ -170,9 +276,9 @@ func GetChatModerationHistory() []events.UserMessageEvent {
}
// GetChatHistory will return all the chat messages suitable for returning as user-facing chat history.
-func GetChatHistory() []events.UserMessageEvent {
+func GetChatHistory() []interface{} {
// Get all visible messages
- query := fmt.Sprintf("SELECT messages.id, user_id, body, eventType, hidden_at, timestamp, display_name, display_color, created_at, disabled_at, previous_names, namechanged_at FROM messages, users WHERE messages.user_id = users.id AND hidden_at IS NULL AND disabled_at IS NULL ORDER BY timestamp DESC LIMIT %d", maxBacklogNumber)
+ query := fmt.Sprintf("SELECT messages.id,messages.user_id, messages.body, messages.title, messages.subtitle, messages.image, messages.link, messages.eventType, messages.hidden_at, messages.timestamp, users.display_name, users.display_color, users.created_at, users.disabled_at, users.previous_names, users.namechanged_at, users.scopes FROM messages LEFT JOIN users ON messages.user_id = users.id WHERE hidden_at IS NULL AND disabled_at IS NULL ORDER BY timestamp DESC LIMIT %d", maxBacklogNumber)
m := getChat(query)
// Invert order of messages
@@ -200,7 +306,7 @@ func SetMessageVisibilityForUserID(userID string, visible bool) error {
}
for _, message := range messages {
- ids = append(ids, message.ID)
+ ids = append(ids, message.(events.Event).ID)
}
// Tell the clients to hide/show these messages.
@@ -250,35 +356,3 @@ func saveMessageVisibility(messageIDs []string, visible bool) error {
return nil
}
-
-// Only keep recent messages so we don't keep more chat data than needed
-// for privacy and efficiency reasons.
-func runPruner() {
- _datastore.DbLock.Lock()
- defer _datastore.DbLock.Unlock()
-
- log.Traceln("Removing chat messages older than", maxBacklogHours, "hours")
-
- deleteStatement := `DELETE FROM messages WHERE timestamp <= datetime('now', 'localtime', ?)`
- tx, err := _datastore.DB.Begin()
- if err != nil {
- log.Debugln(err)
- return
- }
-
- stmt, err := tx.Prepare(deleteStatement)
- if err != nil {
- log.Debugln(err)
- return
- }
- defer stmt.Close()
-
- if _, err = stmt.Exec(fmt.Sprintf("-%d hours", maxBacklogHours)); err != nil {
- log.Debugln(err)
- return
- }
- if err = tx.Commit(); err != nil {
- log.Debugln(err)
- return
- }
-}
diff --git a/core/chat/pruner.go b/core/chat/pruner.go
new file mode 100644
index 000000000..a9281b3df
--- /dev/null
+++ b/core/chat/pruner.go
@@ -0,0 +1,39 @@
+package chat
+
+import (
+ "fmt"
+
+ log "github.com/sirupsen/logrus"
+)
+
+// Only keep recent messages so we don't keep more chat data than needed
+// for privacy and efficiency reasons.
+func runPruner() {
+ _datastore.DbLock.Lock()
+ defer _datastore.DbLock.Unlock()
+
+ log.Traceln("Removing chat messages older than", maxBacklogHours, "hours")
+
+ deleteStatement := `DELETE FROM messages WHERE timestamp <= datetime('now', 'localtime', ?)`
+ tx, err := _datastore.DB.Begin()
+ if err != nil {
+ log.Debugln(err)
+ return
+ }
+
+ stmt, err := tx.Prepare(deleteStatement)
+ if err != nil {
+ log.Debugln(err)
+ return
+ }
+ defer stmt.Close()
+
+ if _, err = stmt.Exec(fmt.Sprintf("-%d hours", maxBacklogHours)); err != nil {
+ log.Debugln(err)
+ return
+ }
+ if err = tx.Commit(); err != nil {
+ log.Debugln(err)
+ return
+ }
+}
diff --git a/core/data/activitypub.go b/core/data/activitypub.go
new file mode 100644
index 000000000..fd5310b38
--- /dev/null
+++ b/core/data/activitypub.go
@@ -0,0 +1,13 @@
+package data
+
+// GetFederatedInboxMap is a mapping between account names and their outbox.
+func GetFederatedInboxMap() map[string]string {
+ return map[string]string{
+ GetDefaultFederationUsername(): GetDefaultFederationUsername(),
+ }
+}
+
+// GetDefaultFederationUsername will return the username used for sending federation activities.
+func GetDefaultFederationUsername() string {
+ return GetFederationUsername()
+}
diff --git a/core/data/config.go b/core/data/config.go
index 0eaa0f57d..cc5083743 100644
--- a/core/data/config.go
+++ b/core/data/config.go
@@ -13,36 +13,47 @@ import (
log "github.com/sirupsen/logrus"
)
-const extraContentKey = "extra_page_content"
-const streamTitleKey = "stream_title"
-const streamKeyKey = "stream_key"
-const logoPathKey = "logo_path"
-const serverSummaryKey = "server_summary"
-const serverWelcomeMessageKey = "server_welcome_message"
-const serverNameKey = "server_name"
-const serverURLKey = "server_url"
-const httpPortNumberKey = "http_port_number"
-const httpListenAddressKey = "http_listen_address"
-const rtmpPortNumberKey = "rtmp_port_number"
-const serverMetadataTagsKey = "server_metadata_tags"
-const directoryEnabledKey = "directory_enabled"
-const directoryRegistrationKeyKey = "directory_registration_key"
-const socialHandlesKey = "social_handles"
-const peakViewersSessionKey = "peak_viewers_session"
-const peakViewersOverallKey = "peak_viewers_overall"
-const lastDisconnectTimeKey = "last_disconnect_time"
-const ffmpegPathKey = "ffmpeg_path"
-const nsfwKey = "nsfw"
-const s3StorageEnabledKey = "s3_storage_enabled"
-const s3StorageConfigKey = "s3_storage_config"
-const videoLatencyLevel = "video_latency_level"
-const videoStreamOutputVariantsKey = "video_stream_output_variants"
-const chatDisabledKey = "chat_disabled"
-const externalActionsKey = "external_actions"
-const customStylesKey = "custom_styles"
-const videoCodecKey = "video_codec"
-const blockedUsernamesKey = "blocked_usernames"
-const suggestedUsernamesKey = "suggested_usernames"
+const (
+ extraContentKey = "extra_page_content"
+ streamTitleKey = "stream_title"
+ streamKeyKey = "stream_key"
+ logoPathKey = "logo_path"
+ serverSummaryKey = "server_summary"
+ serverWelcomeMessageKey = "server_welcome_message"
+ serverNameKey = "server_name"
+ serverURLKey = "server_url"
+ httpPortNumberKey = "http_port_number"
+ httpListenAddressKey = "http_listen_address"
+ rtmpPortNumberKey = "rtmp_port_number"
+ serverMetadataTagsKey = "server_metadata_tags"
+ directoryEnabledKey = "directory_enabled"
+ directoryRegistrationKeyKey = "directory_registration_key"
+ socialHandlesKey = "social_handles"
+ peakViewersSessionKey = "peak_viewers_session"
+ peakViewersOverallKey = "peak_viewers_overall"
+ lastDisconnectTimeKey = "last_disconnect_time"
+ ffmpegPathKey = "ffmpeg_path"
+ nsfwKey = "nsfw"
+ s3StorageEnabledKey = "s3_storage_enabled"
+ s3StorageConfigKey = "s3_storage_config"
+ videoLatencyLevel = "video_latency_level"
+ videoStreamOutputVariantsKey = "video_stream_output_variants"
+ chatDisabledKey = "chat_disabled"
+ externalActionsKey = "external_actions"
+ customStylesKey = "custom_styles"
+ videoCodecKey = "video_codec"
+ blockedUsernamesKey = "blocked_usernames"
+ publicKeyKey = "public_key"
+ privateKeyKey = "private_key"
+ serverInitDateKey = "server_init_date"
+ federationEnabledKey = "federation_enabled"
+ federationUsernameKey = "federation_username"
+ federationPrivateKey = "federation_private"
+ federationGoLiveMessageKey = "federation_go_live_message"
+ federationShowEngagementKey = "federation_show_engagement"
+ federationBlockedDomainsKey = "federation_blocked_domains"
+ suggestedUsernamesKey = "suggested_usernames"
+)
// GetExtraPageBodyContent will return the user-supplied body content.
func GetExtraPageBodyContent() string {
@@ -295,7 +306,7 @@ func GetSocialHandles() []models.SocialHandle {
// SetSocialHandles will set the external social links.
func SetSocialHandles(socialHandles []models.SocialHandle) error {
- var configEntry = ConfigEntry{Key: socialHandlesKey, Value: socialHandles}
+ configEntry := ConfigEntry{Key: socialHandlesKey, Value: socialHandles}
return _datastore.Save(configEntry)
}
@@ -350,7 +361,7 @@ func GetLastDisconnectTime() (*utils.NullTime, error) {
// SetLastDisconnectTime will set the time the last stream ended.
func SetLastDisconnectTime(disconnectTime time.Time) error {
savedDisconnectTime := utils.NullTime{Time: disconnectTime, Valid: true}
- var configEntry = ConfigEntry{Key: lastDisconnectTimeKey, Value: savedDisconnectTime}
+ configEntry := ConfigEntry{Key: lastDisconnectTimeKey, Value: savedDisconnectTime}
return _datastore.Save(configEntry)
}
@@ -399,7 +410,7 @@ func GetS3Config() models.S3 {
// SetS3Config will set the external storage configuration.
func SetS3Config(config models.S3) error {
- var configEntry = ConfigEntry{Key: s3StorageConfigKey, Value: config}
+ configEntry := ConfigEntry{Key: s3StorageConfigKey, Value: config}
return _datastore.Save(configEntry)
}
@@ -457,7 +468,7 @@ func GetStreamOutputVariants() []models.StreamOutputVariant {
// SetStreamOutputVariants will set the stream output variants.
func SetStreamOutputVariants(variants []models.StreamOutputVariant) error {
- var configEntry = ConfigEntry{Key: videoStreamOutputVariantsKey, Value: variants}
+ configEntry := ConfigEntry{Key: videoStreamOutputVariantsKey, Value: variants}
return _datastore.Save(configEntry)
}
@@ -493,7 +504,7 @@ func GetExternalActions() []models.ExternalAction {
// SetExternalActions will save external actions.
func SetExternalActions(actions []models.ExternalAction) error {
- var configEntry = ConfigEntry{Key: externalActionsKey, Value: actions}
+ configEntry := ConfigEntry{Key: externalActionsKey, Value: actions}
return _datastore.Save(configEntry)
}
@@ -583,7 +594,6 @@ func FindHighestVideoQualityIndex(qualities []models.StreamOutputVariant) int {
// GetForbiddenUsernameList will return the blocked usernames as a comma separated string.
func GetForbiddenUsernameList() []string {
usernameString, err := _datastore.GetString(blockedUsernamesKey)
-
if err != nil {
return config.DefaultForbiddenUsernames
}
@@ -622,3 +632,125 @@ func SetSuggestedUsernamesList(usernames []string) error {
usernameListString := strings.Join(usernames, ",")
return _datastore.SetString(suggestedUsernamesKey, usernameListString)
}
+
+// GetServerInitTime will return when the server was first setup.
+func GetServerInitTime() (*utils.NullTime, error) {
+ var t utils.NullTime
+
+ configEntry, err := _datastore.Get(serverInitDateKey)
+ if err != nil {
+ return nil, err
+ }
+
+ if err := configEntry.getObject(&t); err != nil {
+ return nil, err
+ }
+
+ if !t.Valid {
+ return nil, err
+ }
+
+ return &t, nil
+}
+
+// SetServerInitTime will set when the server was first created.
+func SetServerInitTime(t time.Time) error {
+ nt := utils.NullTime{Time: t, Valid: true}
+ configEntry := ConfigEntry{Key: serverInitDateKey, Value: nt}
+ return _datastore.Save(configEntry)
+}
+
+// SetFederationEnabled will enable federation if set to true.
+func SetFederationEnabled(enabled bool) error {
+ return _datastore.SetBool(federationEnabledKey, enabled)
+}
+
+// GetFederationEnabled will return if federation is enabled.
+func GetFederationEnabled() bool {
+ enabled, err := _datastore.GetBool(federationEnabledKey)
+ if err == nil {
+ return enabled
+ }
+
+ return false
+}
+
+// SetFederationUsername will set the username used in federated activities.
+func SetFederationUsername(username string) error {
+ return _datastore.SetString(federationUsernameKey, username)
+}
+
+// GetFederationUsername will return the username used in federated activities.
+func GetFederationUsername() string {
+ username, err := _datastore.GetString(federationUsernameKey)
+ if username == "" || err != nil {
+ return config.GetDefaults().FederationUsername
+ }
+
+ return username
+}
+
+// SetFederationGoLiveMessage will set the message sent when going live.
+func SetFederationGoLiveMessage(message string) error {
+ return _datastore.SetString(federationGoLiveMessageKey, message)
+}
+
+// GetFederationGoLiveMessage will return the message sent when going live.
+func GetFederationGoLiveMessage() string {
+ // Empty message means it's disabled.
+ message, err := _datastore.GetString(federationGoLiveMessageKey)
+ if err != nil {
+ log.Traceln("unable to fetch go live message.", err)
+ }
+
+ return message
+}
+
+// SetFederationIsPrivate will set if federation activity is private.
+func SetFederationIsPrivate(isPrivate bool) error {
+ return _datastore.SetBool(federationPrivateKey, isPrivate)
+}
+
+// GetFederationIsPrivate will return if federation is private.
+func GetFederationIsPrivate() bool {
+ isPrivate, err := _datastore.GetBool(federationPrivateKey)
+ if err == nil {
+ return isPrivate
+ }
+
+ return false
+}
+
+// SetFederationShowEngagement will set if fediverse engagement shows in chat.
+func SetFederationShowEngagement(showEngagement bool) error {
+ return _datastore.SetBool(federationShowEngagementKey, showEngagement)
+}
+
+// GetFederationShowEngagement will return if fediverse engagement shows in chat.
+func GetFederationShowEngagement() bool {
+ showEngagement, err := _datastore.GetBool(federationShowEngagementKey)
+ if err == nil {
+ return showEngagement
+ }
+
+ return true
+}
+
+// SetBlockedFederatedDomains will set the blocked federated domains.
+func SetBlockedFederatedDomains(domains []string) error {
+ return _datastore.SetString(federationBlockedDomainsKey, strings.Join(domains, ","))
+}
+
+// GetBlockedFederatedDomains will return a list of blocked federated domains.
+func GetBlockedFederatedDomains() []string {
+ domains, err := _datastore.GetString(federationBlockedDomainsKey)
+ if err != nil {
+ return []string{}
+ }
+
+ if domains == "" {
+ return []string{}
+ }
+
+ return strings.Split(domains, ",")
+}
diff --git a/core/data/crypto.go b/core/data/crypto.go
new file mode 100644
index 000000000..8bd394a8a
--- /dev/null
+++ b/core/data/crypto.go
@@ -0,0 +1,23 @@
+package data
+
+// GetPublicKey will return the public key.
+func GetPublicKey() string {
+ value, _ := _datastore.GetString(publicKeyKey)
+ return value
+}
+
+// SetPublicKey will save the public key.
+func SetPublicKey(key string) error {
+ return _datastore.SetString(publicKeyKey, key)
+}
+
+// GetPrivateKey will return the private key.
+func GetPrivateKey() string {
+ value, _ := _datastore.GetString(privateKeyKey)
+ return value
+}
+
+// SetPrivateKey will save the private key.
+func SetPrivateKey(key string) error {
+ return _datastore.SetString(privateKeyKey, key)
+}
diff --git a/core/data/data.go b/core/data/data.go
index bf5086316..f233d542c 100644
--- a/core/data/data.go
+++ b/core/data/data.go
@@ -17,11 +17,13 @@ import (
)
const (
- schemaVersion = 1
+ schemaVersion = 3
)
-var _db *sql.DB
-var _datastore *Datastore
+var (
+ _db *sql.DB
+ _datastore *Datastore
+)
// GetDatabase will return the shared instance of the actual database.
func GetDatabase() *sql.DB {
@@ -35,18 +37,34 @@ func GetStore() *Datastore {
// SetupPersistence will open the datastore and make it available.
func SetupPersistence(file string) error {
- // Create empty DB file if it doesn't exist.
- if !utils.DoesFileExists(file) {
- log.Traceln("Creating new database at", file)
+ // Allow support for in-memory databases for tests.
+
+ var db *sql.DB
- _, err := os.Create(file)
+ if file == ":memory:" {
+ inMemoryDb, err := sql.Open("sqlite3", file)
if err != nil {
log.Fatal(err.Error())
}
- }
+ db = inMemoryDb
+ } else {
+ // Create empty DB file if it doesn't exist.
+ if !utils.DoesFileExists(file) {
+ log.Traceln("Creating new database at", file)
+
+ _, err := os.Create(file)
+ if err != nil {
+ log.Fatal(err.Error())
+ }
+ }
- db, err := sql.Open("sqlite3", fmt.Sprintf("file:%s?_cache_size=10000&cache=shared&_journal_mode=WAL", file))
- db.SetMaxOpenConns(1)
+ onDiskDb, err := sql.Open("sqlite3", fmt.Sprintf("file:%s?_cache_size=10000&cache=shared&_journal_mode=WAL", file))
+ if err != nil {
+ return err
+ }
+ db = onDiskDb
+ db.SetMaxOpenConns(1)
+ }
_db = db
// Some SQLite optimizations
@@ -58,10 +76,6 @@ func SetupPersistence(file string) error {
createWebhooksTable()
createUsersTable(db)
- if err != nil {
- return err
- }
-
if _, err := db.Exec(`CREATE TABLE IF NOT EXISTS config (
"key" string NOT NULL PRIMARY KEY,
"value" TEXT
@@ -70,7 +84,7 @@ func SetupPersistence(file string) error {
}
var version int
- err = db.QueryRow("SELECT value FROM config WHERE key='version'").
+ err := db.QueryRow("SELECT value FROM config WHERE key='version'").
Scan(&version)
if err != nil {
if err != sql.ErrNoRows {
@@ -117,10 +131,14 @@ func migrateDatabase(db *sql.DB, from, to int) error {
dbBackupFile := filepath.Join(config.BackupDirectory, fmt.Sprintf("owncast-v%d.bak", from))
utils.Backup(db, dbBackupFile)
for v := from; v < to; v++ {
+ log.Tracef("Migration step from %d to %d\n", v, v+1)
switch v {
case 0:
- log.Tracef("Migration step from %d to %d\n", v, v+1)
migrateToSchema1(db)
+ case 1:
+ migrateToSchema2(db)
+ case 2:
+ migrateToSchema3(db)
default:
log.Fatalln("missing database migration step")
}
diff --git a/core/data/defaults.go b/core/data/defaults.go
index ad1810ecb..7ecf868ad 100644
--- a/core/data/defaults.go
+++ b/core/data/defaults.go
@@ -14,6 +14,14 @@ func HasPopulatedDefaults() bool {
return hasPopulated
}
+func hasPopulatedFederationDefaults() bool {
+ hasPopulated, err := _datastore.GetBool("HAS_POPULATED_FEDERATION_DEFAULTS")
+ if err != nil {
+ return false
+ }
+ return hasPopulated
+}
+
// PopulateDefaults will set default values in the database.
func PopulateDefaults() {
defaults := config.GetDefaults()
@@ -32,6 +40,7 @@ func PopulateDefaults() {
_ = SetServerName("Owncast")
_ = SetStreamKey(defaults.StreamKey)
_ = SetExtraPageBodyContent("This is your page's content that can be edited in the admin.")
+ _ = SetFederationGoLiveMessage(defaults.FederationGoLiveMessage)
_ = SetSocialHandles([]models.SocialHandle{
{
Platform: "github",
diff --git a/core/data/messages.go b/core/data/messages.go
index efb9d49e9..163fd4cd2 100644
--- a/core/data/messages.go
+++ b/core/data/messages.go
@@ -15,6 +15,10 @@ func CreateMessagesTable(db *sql.DB) {
"eventType" TEXT,
"hidden_at" DATETIME,
"timestamp" DATETIME,
+ "title" TEXT,
+ "subtitle" TEXT,
+ "image" TEXT,
+ "link" TEXT,
PRIMARY KEY (id)
);CREATE INDEX index ON messages (id, user_id, hidden_at, timestamp);
CREATE INDEX id ON messages (id);
diff --git a/core/data/migrations.go b/core/data/migrations.go
index 270d5f3d5..178e5fba2 100644
--- a/core/data/migrations.go
+++ b/core/data/migrations.go
@@ -9,6 +9,44 @@ import (
"github.com/teris-io/shortid"
)
+func migrateToSchema3(db *sql.DB) {
+ // Since it's just a backlog of chat messages let's wipe the old messages
+ // and recreate the table.
+
+ // Drop the old messages table
+ stmt, err := db.Prepare("DROP TABLE messages")
+ if err != nil {
+ log.Fatal(err)
+ }
+ defer stmt.Close()
+ _, err = stmt.Exec()
+ if err != nil {
+ log.Warnln(err)
+ }
+
+ // Recreate it
+ CreateMessagesTable(db)
+}
+
+func migrateToSchema2(db *sql.DB) {
+ // Since it's just a backlog of chat messages let's wipe the old messages
+ // and recreate the table.
+
+ // Drop the old messages table
+ stmt, err := db.Prepare("DROP TABLE messages")
+ if err != nil {
+ log.Fatal(err)
+ }
+ defer stmt.Close()
+ _, err = stmt.Exec()
+ if err != nil {
+ log.Warnln(err)
+ }
+
+ // Recreate it
+ CreateMessagesTable(db)
+}
+
func migrateToSchema1(db *sql.DB) {
// Since it's just a backlog of chat messages let's wipe the old messages
// and recreate the table.
@@ -100,7 +138,6 @@ func insertAPIToken(db *sql.DB, token string, name string, color int, scopes str
return err
}
stmt, err := tx.Prepare("INSERT INTO users(id, access_token, display_name, display_color, scopes, type) values(?, ?, ?, ?, ?, ?)")
-
if err != nil {
return err
}
diff --git a/core/data/persistence.go b/core/data/persistence.go
index d1a6c9432..f8bf57bbe 100644
--- a/core/data/persistence.go
+++ b/core/data/persistence.go
@@ -5,9 +5,12 @@ import (
"database/sql"
"encoding/gob"
"sync"
+ "time"
// sqlite requires a blank import.
_ "github.com/mattn/go-sqlite3"
+ "github.com/owncast/owncast/config"
+ "github.com/owncast/owncast/db"
log "github.com/sirupsen/logrus"
)
@@ -37,6 +40,11 @@ func (ds *Datastore) warmCache() {
}
}
+// GetQueries will return the shared instance of the SQL query generator.
+func (ds *Datastore) GetQueries() *db.Queries {
+ return db.New(ds.DB)
+}
+
// Get will query the database for the key and return the entry.
func (ds *Datastore) Get(key string) (ConfigEntry, error) {
cachedValue, err := ds.GetCachedValue(key)
@@ -125,6 +133,20 @@ func (ds *Datastore) Setup() {
if !HasPopulatedDefaults() {
PopulateDefaults()
}
+
+ if !hasPopulatedFederationDefaults() {
+ if err := SetFederationGoLiveMessage(config.GetDefaults().FederationGoLiveMessage); err != nil {
+ log.Errorln(err)
+ }
+ if err := _datastore.SetBool("HAS_POPULATED_FEDERATION_DEFAULTS", true); err != nil {
+ log.Errorln(err)
+ }
+ }
+
+ // Set the server initialization date if needed.
+ if hasSetInitDate, _ := GetServerInitTime(); hasSetInitDate == nil || !hasSetInitDate.Valid {
+ _ = SetServerInitTime(time.Now())
+ }
}
// Reset will delete all config entries in the datastore and start over.
diff --git a/core/data/users.go b/core/data/users.go
index 65a45b689..dc5f1ad17 100644
--- a/core/data/users.go
+++ b/core/data/users.go
@@ -24,6 +24,7 @@ func createUsersTable(db *sql.DB) {
PRIMARY KEY (id)
);CREATE INDEX index ON users (id, access_token, disabled_at);
CREATE INDEX id ON users (id);
+ CREATE INDEX id_disabled ON users (id, disabled_at);
CREATE INDEX access_token ON users (access_token);
CREATE INDEX disabled_at ON USERS (disabled_at);`
diff --git a/core/streamState.go b/core/streamState.go
index 4b4d32db3..f4184f7d2 100644
--- a/core/streamState.go
+++ b/core/streamState.go
@@ -1,11 +1,13 @@
package core
import (
+ "context"
"io"
"time"
log "github.com/sirupsen/logrus"
+ "github.com/owncast/owncast/activitypub"
"github.com/owncast/owncast/config"
"github.com/owncast/owncast/core/chat"
"github.com/owncast/owncast/core/data"
@@ -24,6 +26,8 @@ var _onlineCleanupTicker *time.Ticker
var _currentBroadcast *models.CurrentBroadcast
+var _onlineTimerCancelFunc context.CancelFunc
+
// setStreamAsConnected sets the stream as connected.
func setStreamAsConnected(rtmpOut *io.PipeReader) {
now := utils.NullTime{Time: time.Now(), Valid: true}
@@ -66,6 +70,11 @@ func setStreamAsConnected(rtmpOut *io.PipeReader) {
_ = chat.SendSystemAction("Stay tuned, the stream is **starting**!", true)
chat.SendAllWelcomeMessage()
+
+ // Send a delayed live Federated message.
+ if data.GetFederationEnabled() {
+ _onlineTimerCancelFunc = startFederatedLiveStreamMessageTimer()
+ }
}
// SetStreamAsDisconnected sets the stream as disconnected.
@@ -73,6 +82,10 @@ func SetStreamAsDisconnected() {
_ = chat.SendSystemAction("The stream is ending.", true)
now := utils.NullTime{Time: time.Now(), Valid: true}
+ if _onlineTimerCancelFunc != nil {
+ _onlineTimerCancelFunc()
+ }
+
_stats.StreamConnected = false
_stats.LastDisconnectTime = &now
_stats.LastConnectTime = nil
@@ -147,3 +160,20 @@ func stopOnlineCleanupTimer() {
_onlineCleanupTicker.Stop()
}
}
+
+func startFederatedLiveStreamMessageTimer() context.CancelFunc {
+ // Send a delayed live Federated message.
+ c, cancelFunc := context.WithCancel(context.Background())
+ _onlineTimerCancelFunc = cancelFunc
+ go func(c context.Context) {
+ select {
+ case <-time.After(time.Minute * 2.0):
+ log.Traceln("Sending Federated Go Live message.")
+ if err := activitypub.SendLive(); err != nil {
+ log.Errorln(err)
+ }
+ case <-c.Done():
+ }
+ }(c)
+ return cancelFunc
+}
diff --git a/core/transcoder/thumbnailGenerator.go b/core/transcoder/thumbnailGenerator.go
index ce1e01bfd..faa0c6a8b 100644
--- a/core/transcoder/thumbnailGenerator.go
+++ b/core/transcoder/thumbnailGenerator.go
@@ -110,10 +110,7 @@ func fireThumbnailGenerator(segmentPath string, variantIndex int) error {
log.Errorln(err)
}
- // If YP support is enabled also create an animated GIF preview
- if data.GetDirectoryEnabled() {
- makeAnimatedGifPreview(mostRecentFile, previewGifFile)
- }
+ makeAnimatedGifPreview(mostRecentFile, previewGifFile)
return nil
}
diff --git a/db/README.md b/db/README.md
new file mode 100644
index 000000000..331fb3313
--- /dev/null
+++ b/db/README.md
@@ -0,0 +1,28 @@
+# SQL Queries
+
+sqlc generates **type-safe code** from SQL. Here's how it works:
+
+1. You define the schema in `schema.sql`.
+1. You write your queries in `query.sql` using regular SQL.
+1. You run `sqlc generate` to generate Go code with type-safe interfaces to those queries.
+1. You write application code that calls the generated code.
+
+Only those who need to create or update SQL queries will need to have `sqlc` installed on their system. **It is not a dependency required to build the codebase.**
+
+## Install sqlc
+
+### Snap
+
+`sudo snap install sqlc`
+
+### Go install
+
+`go install github.com/kyleconroy/sqlc/cmd/sqlc@latest`
+
+### macOS
+
+`brew install sqlc`
+
+### Download a release
+
+Visit <https://github.com/kyleconroy/sqlc/releases> to download a release for your environment.
diff --git a/db/db.go b/db/db.go
new file mode 100644
index 000000000..c3c034ae3
--- /dev/null
+++ b/db/db.go
@@ -0,0 +1,29 @@
+// Code generated by sqlc. DO NOT EDIT.
+
+package db
+
+import (
+ "context"
+ "database/sql"
+)
+
+type DBTX interface {
+ ExecContext(context.Context, string, ...interface{}) (sql.Result, error)
+ PrepareContext(context.Context, string) (*sql.Stmt, error)
+ QueryContext(context.Context, string, ...interface{}) (*sql.Rows, error)
+ QueryRowContext(context.Context, string, ...interface{}) *sql.Row
+}
+
+func New(db DBTX) *Queries {
+ return &Queries{db: db}
+}
+
+type Queries struct {
+ db DBTX
+}
+
+func (q *Queries) WithTx(tx *sql.Tx) *Queries {
+ return &Queries{
+ db: tx,
+ }
+}
diff --git a/db/models.go b/db/models.go
new file mode 100644
index 000000000..d17aecca1
--- /dev/null
+++ b/db/models.go
@@ -0,0 +1,36 @@
+// Code generated by sqlc. DO NOT EDIT.
+
+package db
+
+import (
+ "database/sql"
+ "time"
+)
+
+type ApAcceptedActivity struct {
+ ID int32
+ Iri string
+ Actor string
+ Type string
+ Timestamp time.Time
+}
+
+type ApFollower struct {
+ Iri string
+ Inbox string
+ Name sql.NullString
+ Username string
+ Image sql.NullString
+ Request string
+ CreatedAt sql.NullTime
+ ApprovedAt sql.NullTime
+ DisabledAt sql.NullTime
+}
+
+type ApOutbox struct {
+ Iri string
+ Value []byte
+ Type string
+ CreatedAt sql.NullTime
+ LiveNotification sql.NullBool
+}
diff --git a/db/query.sql b/db/query.sql
new file mode 100644
index 000000000..7aae2d51f
--- /dev/null
+++ b/db/query.sql
@@ -0,0 +1,57 @@
+-- Queries added to query.sql must be compiled into Go code with sqlc. Read README.md for details.
+
+-- Federation related queries.
+
+-- name: GetFollowerCount :one
+SElECT count(*) FROM ap_followers WHERE approved_at is not null;
+
+-- name: GetLocalPostCount :one
+SElECT count(*) FROM ap_outbox;
+
+-- name: GetFederationFollowersWithOffset :many
+SELECT iri, inbox, name, username, image, created_at FROM ap_followers WHERE approved_at is not null LIMIT $1 OFFSET $2;
+
+-- name: GetRejectedAndBlockedFollowers :many
+SELECT iri, name, username, image, created_at, disabled_at FROM ap_followers WHERE disabled_at is not null;
+
+-- name: GetFederationFollowerApprovalRequests :many
+SELECT iri, inbox, name, username, image, created_at FROM ap_followers WHERE approved_at IS null AND disabled_at is null;
+
+-- name: ApproveFederationFollower :exec
+UPDATE ap_followers SET approved_at = $1, disabled_at = null WHERE iri = $2;
+
+-- name: RejectFederationFollower :exec
+UPDATE ap_followers SET approved_at = null, disabled_at = $1 WHERE iri = $2;
+
+-- name: GetFollowerByIRI :one
+SELECT iri, inbox, name, username, image, request, created_at, approved_at, disabled_at FROM ap_followers WHERE iri = $1;
+
+-- name: GetOutboxWithOffset :many
+SELECT value FROM ap_outbox LIMIT $1 OFFSET $2;
+
+-- name: GetObjectFromOutboxByID :one
+SELECT value FROM ap_outbox WHERE iri = $1;
+
+-- name: GetObjectFromOutboxByIRI :one
+SELECT value, live_notification, created_at FROM ap_outbox WHERE iri = $1;
+
+-- name: RemoveFollowerByIRI :exec
+DELETE FROM ap_followers WHERE iri = $1;
+
+-- name: AddFollower :exec
+INSERT INTO ap_followers(iri, inbox, request, name, username, image, approved_at) values($1, $2, $3, $4, $5, $6, $7);
+
+-- name: AddToOutbox :exec
+INSERT INTO ap_outbox(iri, value, type, live_notification) values($1, $2, $3, $4);
+
+-- name: AddToAcceptedActivities :exec
+INSERT INTO ap_accepted_activities(iri, actor, type, timestamp) values($1, $2, $3, $4);
+
+-- name: GetInboundActivitiesWithOffset :many
+SELECT iri, actor, type, timestamp FROM ap_accepted_activities ORDER BY timestamp DESC LIMIT $1 OFFSET $2;
+
+-- name: DoesInboundActivityExist :one
+SELECT count(*) FROM ap_accepted_activities WHERE iri = $1 AND actor = $2 AND TYPE = $3;
+
+-- name: UpdateFollowerByIRI :exec
+UPDATE ap_followers SET inbox = $1, name = $2, username = $3, image = $4 WHERE iri = $5;
diff --git a/db/query.sql.go b/db/query.sql.go
new file mode 100644
index 000000000..7cec05aa6
--- /dev/null
+++ b/db/query.sql.go
@@ -0,0 +1,441 @@
+// Code generated by sqlc. DO NOT EDIT.
+// source: query.sql
+
+package db
+
+import (
+ "context"
+ "database/sql"
+ "time"
+)
+
+const addFollower = `-- name: AddFollower :exec
+INSERT INTO ap_followers(iri, inbox, request, name, username, image, approved_at) values($1, $2, $3, $4, $5, $6, $7)
+`
+
+type AddFollowerParams struct {
+ Iri string
+ Inbox string
+ Request string
+ Name sql.NullString
+ Username string
+ Image sql.NullString
+ ApprovedAt sql.NullTime
+}
+
+func (q *Queries) AddFollower(ctx context.Context, arg AddFollowerParams) error {
+ _, err := q.db.ExecContext(ctx, addFollower,
+ arg.Iri,
+ arg.Inbox,
+ arg.Request,
+ arg.Name,
+ arg.Username,
+ arg.Image,
+ arg.ApprovedAt,
+ )
+ return err
+}
+
+const addToAcceptedActivities = `-- name: AddToAcceptedActivities :exec
+INSERT INTO ap_accepted_activities(iri, actor, type, timestamp) values($1, $2, $3, $4)
+`
+
+type AddToAcceptedActivitiesParams struct {
+ Iri string
+ Actor string
+ Type string
+ Timestamp time.Time
+}
+
+func (q *Queries) AddToAcceptedActivities(ctx context.Context, arg AddToAcceptedActivitiesParams) error {
+ _, err := q.db.ExecContext(ctx, addToAcceptedActivities,
+ arg.Iri,
+ arg.Actor,
+ arg.Type,
+ arg.Timestamp,
+ )
+ return err
+}
+
+const addToOutbox = `-- name: AddToOutbox :exec
+INSERT INTO ap_outbox(iri, value, type, live_notification) values($1, $2, $3, $4)
+`
+
+type AddToOutboxParams struct {
+ Iri string
+ Value []byte
+ Type string
+ LiveNotification sql.NullBool
+}
+
+func (q *Queries) AddToOutbox(ctx context.Context, arg AddToOutboxParams) error {
+ _, err := q.db.ExecContext(ctx, addToOutbox,
+ arg.Iri,
+ arg.Value,
+ arg.Type,
+ arg.LiveNotification,
+ )
+ return err
+}
+
+const approveFederationFollower = `-- name: ApproveFederationFollower :exec
+UPDATE ap_followers SET approved_at = $1, disabled_at = null WHERE iri = $2
+`
+
+type ApproveFederationFollowerParams struct {
+ ApprovedAt sql.NullTime
+ Iri string
+}
+
+func (q *Queries) ApproveFederationFollower(ctx context.Context, arg ApproveFederationFollowerParams) error {
+ _, err := q.db.ExecContext(ctx, approveFederationFollower, arg.ApprovedAt, arg.Iri)
+ return err
+}
+
+const doesInboundActivityExist = `-- name: DoesInboundActivityExist :one
+SELECT count(*) FROM ap_accepted_activities WHERE iri = $1 AND actor = $2 AND TYPE = $3
+`
+
+type DoesInboundActivityExistParams struct {
+ Iri string
+ Actor string
+ Type string
+}
+
+func (q *Queries) DoesInboundActivityExist(ctx context.Context, arg DoesInboundActivityExistParams) (int64, error) {
+ row := q.db.QueryRowContext(ctx, doesInboundActivityExist, arg.Iri, arg.Actor, arg.Type)
+ var count int64
+ err := row.Scan(&count)
+ return count, err
+}
+
+const getFederationFollowerApprovalRequests = `-- name: GetFederationFollowerApprovalRequests :many
+SELECT iri, inbox, name, username, image, created_at FROM ap_followers WHERE approved_at IS null AND disabled_at is null
+`
+
+type GetFederationFollowerApprovalRequestsRow struct {
+ Iri string
+ Inbox string
+ Name sql.NullString
+ Username string
+ Image sql.NullString
+ CreatedAt sql.NullTime
+}
+
+func (q *Queries) GetFederationFollowerApprovalRequests(ctx context.Context) ([]GetFederationFollowerApprovalRequestsRow, error) {
+ rows, err := q.db.QueryContext(ctx, getFederationFollowerApprovalRequests)
+ if err != nil {
+ return nil, err
+ }
+ defer rows.Close()
+ var items []GetFederationFollowerApprovalRequestsRow
+ for rows.Next() {
+ var i GetFederationFollowerApprovalRequestsRow
+ if err := rows.Scan(
+ &i.Iri,
+ &i.Inbox,
+ &i.Name,
+ &i.Username,
+ &i.Image,
+ &i.CreatedAt,
+ ); err != nil {
+ return nil, err
+ }
+ items = append(items, i)
+ }
+ if err := rows.Close(); err != nil {
+ return nil, err
+ }
+ if err := rows.Err(); err != nil {
+ return nil, err
+ }
+ return items, nil
+}
+
+const getFederationFollowersWithOffset = `-- name: GetFederationFollowersWithOffset :many
+SELECT iri, inbox, name, username, image, created_at FROM ap_followers WHERE approved_at is not null LIMIT $1 OFFSET $2
+`
+
+type GetFederationFollowersWithOffsetParams struct {
+ Limit int32
+ Offset int32
+}
+
+type GetFederationFollowersWithOffsetRow struct {
+ Iri string
+ Inbox string
+ Name sql.NullString
+ Username string
+ Image sql.NullString
+ CreatedAt sql.NullTime
+}
+
+func (q *Queries) GetFederationFollowersWithOffset(ctx context.Context, arg GetFederationFollowersWithOffsetParams) ([]GetFederationFollowersWithOffsetRow, error) {
+ rows, err := q.db.QueryContext(ctx, getFederationFollowersWithOffset, arg.Limit, arg.Offset)
+ if err != nil {
+ return nil, err
+ }
+ defer rows.Close()
+ var items []GetFederationFollowersWithOffsetRow
+ for rows.Next() {
+ var i GetFederationFollowersWithOffsetRow
+ if err := rows.Scan(
+ &i.Iri,
+ &i.Inbox,
+ &i.Name,
+ &i.Username,
+ &i.Image,
+ &i.CreatedAt,
+ ); err != nil {
+ return nil, err
+ }
+ items = append(items, i)
+ }
+ if err := rows.Close(); err != nil {
+ return nil, err
+ }
+ if err := rows.Err(); err != nil {
+ return nil, err
+ }
+ return items, nil
+}
+
+const getFollowerByIRI = `-- name: GetFollowerByIRI :one
+SELECT iri, inbox, name, username, image, request, created_at, approved_at, disabled_at FROM ap_followers WHERE iri = $1
+`
+
+func (q *Queries) GetFollowerByIRI(ctx context.Context, iri string) (ApFollower, error) {
+ row := q.db.QueryRowContext(ctx, getFollowerByIRI, iri)
+ var i ApFollower
+ err := row.Scan(
+ &i.Iri,
+ &i.Inbox,
+ &i.Name,
+ &i.Username,
+ &i.Image,
+ &i.Request,
+ &i.CreatedAt,
+ &i.ApprovedAt,
+ &i.DisabledAt,
+ )
+ return i, err
+}
+
+const getFollowerCount = `-- name: GetFollowerCount :one
+
+
+SElECT count(*) FROM ap_followers WHERE approved_at is not null
+`
+
+// Queries added to query.sql must be compiled into Go code with sqlc. Read README.md for details.
+// Federation related queries.
+func (q *Queries) GetFollowerCount(ctx context.Context) (int64, error) {
+ row := q.db.QueryRowContext(ctx, getFollowerCount)
+ var count int64
+ err := row.Scan(&count)
+ return count, err
+}
+
+const getInboundActivitiesWithOffset = `-- name: GetInboundActivitiesWithOffset :many
+SELECT iri, actor, type, timestamp FROM ap_accepted_activities ORDER BY timestamp DESC LIMIT $1 OFFSET $2
+`
+
+type GetInboundActivitiesWithOffsetParams struct {
+ Limit int32
+ Offset int32
+}
+
+type GetInboundActivitiesWithOffsetRow struct {
+ Iri string
+ Actor string
+ Type string
+ Timestamp time.Time
+}
+
+func (q *Queries) GetInboundActivitiesWithOffset(ctx context.Context, arg GetInboundActivitiesWithOffsetParams) ([]GetInboundActivitiesWithOffsetRow, error) {
+ rows, err := q.db.QueryContext(ctx, getInboundActivitiesWithOffset, arg.Limit, arg.Offset)
+ if err != nil {
+ return nil, err
+ }
+ defer rows.Close()
+ var items []GetInboundActivitiesWithOffsetRow
+ for rows.Next() {
+ var i GetInboundActivitiesWithOffsetRow
+ if err := rows.Scan(
+ &i.Iri,
+ &i.Actor,
+ &i.Type,
+ &i.Timestamp,
+ ); err != nil {
+ return nil, err
+ }
+ items = append(items, i)
+ }
+ if err := rows.Close(); err != nil {
+ return nil, err
+ }
+ if err := rows.Err(); err != nil {
+ return nil, err
+ }
+ return items, nil
+}
+
+const getLocalPostCount = `-- name: GetLocalPostCount :one
+SElECT count(*) FROM ap_outbox
+`
+
+func (q *Queries) GetLocalPostCount(ctx context.Context) (int64, error) {
+ row := q.db.QueryRowContext(ctx, getLocalPostCount)
+ var count int64
+ err := row.Scan(&count)
+ return count, err
+}
+
+const getObjectFromOutboxByID = `-- name: GetObjectFromOutboxByID :one
+SELECT value FROM ap_outbox WHERE iri = $1
+`
+
+func (q *Queries) GetObjectFromOutboxByID(ctx context.Context, iri string) ([]byte, error) {
+ row := q.db.QueryRowContext(ctx, getObjectFromOutboxByID, iri)
+ var value []byte
+ err := row.Scan(&value)
+ return value, err
+}
+
+const getObjectFromOutboxByIRI = `-- name: GetObjectFromOutboxByIRI :one
+SELECT value, live_notification, created_at FROM ap_outbox WHERE iri = $1
+`
+
+type GetObjectFromOutboxByIRIRow struct {
+ Value []byte
+ LiveNotification sql.NullBool
+ CreatedAt sql.NullTime
+}
+
+func (q *Queries) GetObjectFromOutboxByIRI(ctx context.Context, iri string) (GetObjectFromOutboxByIRIRow, error) {
+ row := q.db.QueryRowContext(ctx, getObjectFromOutboxByIRI, iri)
+ var i GetObjectFromOutboxByIRIRow
+ err := row.Scan(&i.Value, &i.LiveNotification, &i.CreatedAt)
+ return i, err
+}
+
+const getOutboxWithOffset = `-- name: GetOutboxWithOffset :many
+SELECT value FROM ap_outbox LIMIT $1 OFFSET $2
+`
+
+type GetOutboxWithOffsetParams struct {
+ Limit int32
+ Offset int32
+}
+
+func (q *Queries) GetOutboxWithOffset(ctx context.Context, arg GetOutboxWithOffsetParams) ([][]byte, error) {
+ rows, err := q.db.QueryContext(ctx, getOutboxWithOffset, arg.Limit, arg.Offset)
+ if err != nil {
+ return nil, err
+ }
+ defer rows.Close()
+ var items [][]byte
+ for rows.Next() {
+ var value []byte
+ if err := rows.Scan(&value); err != nil {
+ return nil, err
+ }
+ items = append(items, value)
+ }
+ if err := rows.Close(); err != nil {
+ return nil, err
+ }
+ if err := rows.Err(); err != nil {
+ return nil, err
+ }
+ return items, nil
+}
+
+const getRejectedAndBlockedFollowers = `-- name: GetRejectedAndBlockedFollowers :many
+SELECT iri, name, username, image, created_at, disabled_at FROM ap_followers WHERE disabled_at is not null
+`
+
+type GetRejectedAndBlockedFollowersRow struct {
+ Iri string
+ Name sql.NullString
+ Username string
+ Image sql.NullString
+ CreatedAt sql.NullTime
+ DisabledAt sql.NullTime
+}
+
+func (q *Queries) GetRejectedAndBlockedFollowers(ctx context.Context) ([]GetRejectedAndBlockedFollowersRow, error) {
+ rows, err := q.db.QueryContext(ctx, getRejectedAndBlockedFollowers)
+ if err != nil {
+ return nil, err
+ }
+ defer rows.Close()
+ var items []GetRejectedAndBlockedFollowersRow
+ for rows.Next() {
+ var i GetRejectedAndBlockedFollowersRow
+ if err := rows.Scan(
+ &i.Iri,
+ &i.Name,
+ &i.Username,
+ &i.Image,
+ &i.CreatedAt,
+ &i.DisabledAt,
+ ); err != nil {
+ return nil, err
+ }
+ items = append(items, i)
+ }
+ if err := rows.Close(); err != nil {
+ return nil, err
+ }
+ if err := rows.Err(); err != nil {
+ return nil, err
+ }
+ return items, nil
+}
+
+const rejectFederationFollower = `-- name: RejectFederationFollower :exec
+UPDATE ap_followers SET approved_at = null, disabled_at = $1 WHERE iri = $2
+`
+
+type RejectFederationFollowerParams struct {
+ DisabledAt sql.NullTime
+ Iri string
+}
+
+func (q *Queries) RejectFederationFollower(ctx context.Context, arg RejectFederationFollowerParams) error {
+ _, err := q.db.ExecContext(ctx, rejectFederationFollower, arg.DisabledAt, arg.Iri)
+ return err
+}
+
+const removeFollowerByIRI = `-- name: RemoveFollowerByIRI :exec
+DELETE FROM ap_followers WHERE iri = $1
+`
+
+func (q *Queries) RemoveFollowerByIRI(ctx context.Context, iri string) error {
+ _, err := q.db.ExecContext(ctx, removeFollowerByIRI, iri)
+ return err
+}
+
+const updateFollowerByIRI = `-- name: UpdateFollowerByIRI :exec
+UPDATE ap_followers SET inbox = $1, name = $2, username = $3, image = $4 WHERE iri = $5
+`
+
+type UpdateFollowerByIRIParams struct {
+ Inbox string
+ Name sql.NullString
+ Username string
+ Image sql.NullString
+ Iri string
+}
+
+func (q *Queries) UpdateFollowerByIRI(ctx context.Context, arg UpdateFollowerByIRIParams) error {
+ _, err := q.db.ExecContext(ctx, updateFollowerByIRI,
+ arg.Inbox,
+ arg.Name,
+ arg.Username,
+ arg.Image,
+ arg.Iri,
+ )
+ return err
+}
diff --git a/db/schema.sql b/db/schema.sql
new file mode 100644
index 000000000..739888031
--- /dev/null
+++ b/db/schema.sql
@@ -0,0 +1,37 @@
+-- Schema update to query.sql must be referenced in queries located in query.sql
+-- and compiled into code with sqlc. Read README.md for details.
+
+CREATE TABLE IF NOT EXISTS ap_followers (
+ "iri" TEXT NOT NULL,
+ "inbox" TEXT NOT NULL,
+ "name" TEXT,
+ "username" TEXT NOT NULL,
+ "image" TEXT,
+ "request" TEXT NOT NULL,
+ "created_at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+ "approved_at" TIMESTAMP,
+ "disabled_at" TIMESTAMP,
+ PRIMARY KEY (iri));
+ CREATE INDEX iri_index ON ap_followers (iri);
+ CREATE INDEX approved_at_index ON ap_followers (approved_at);
+
+
+CREATE TABLE IF NOT EXISTS ap_outbox (
+ "iri" TEXT NOT NULL,
+ "value" BLOB,
+ "type" TEXT NOT NULL,
+ "created_at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+ "live_notification" BOOLEAN DEFAULT FALSE,
+ PRIMARY KEY (iri));
+ CREATE INDEX iri ON ap_outbox (iri);
+ CREATE INDEX type ON ap_outbox (type);
+ CREATE INDEX live_notification ON ap_outbox (live_notification);
+
+CREATE TABLE IF NOT EXISTS ap_accepted_activities (
+ "id" INTEGER NOT NULL PRIMARY KEY,
+ "iri" TEXT NOT NULL,
+ "actor" TEXT NOT NULL,
+ "type" TEXT NOT NULL,
+ "timestamp" TIMESTAMP NOT NULL
+ );
+ CREATE INDEX iri_actor_index ON ap_accepted_activities (iri,actor);
diff --git a/go.mod b/go.mod
index 67a929878..40fe70bec 100644
--- a/go.mod
+++ b/go.mod
@@ -5,6 +5,9 @@ go 1.17
require (
github.com/amalfra/etag v0.0.0-20190921100247-cafc8de96bc5
github.com/aws/aws-sdk-go v1.42.0
+ github.com/go-fed/activity v1.0.1-0.20210803212804-d866ba75dd0f
+ github.com/go-fed/httpsig v1.1.0
+ github.com/go-ole/go-ole v1.2.6 // indirect
github.com/gorilla/websocket v1.4.2
github.com/grafov/m3u8 v0.11.1
github.com/lestrrat-go/file-rotatelogs v2.4.0+incompatible
@@ -26,18 +29,20 @@ require (
require (
github.com/aymerick/douceur v0.2.0 // indirect
- github.com/go-ole/go-ole v1.2.6 // indirect
github.com/gorilla/css v1.0.0 // indirect
github.com/jmespath/go-jmespath v0.4.0 // indirect
github.com/jonboulle/clockwork v0.2.2 // indirect
github.com/lestrrat-go/strftime v1.0.4 // indirect
github.com/mvdan/xurls v1.1.0 // indirect
github.com/oschwald/maxminddb-golang v1.8.0 // indirect
- github.com/pkg/errors v0.9.1 // indirect
+ github.com/pkg/errors v0.9.1
github.com/tklauser/go-sysconf v0.3.5 // indirect
github.com/tklauser/numcpus v0.2.2 // indirect
github.com/yusufpapurcu/wmi v1.2.2 // indirect
+ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 // indirect
golang.org/x/net v0.0.0-20210614182718-04defd469f4e // indirect
golang.org/x/sys v0.0.0-20210514084401-e8d321eab015 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
)
+
+replace github.com/go-fed/activity => github.com/owncast/activity v1.0.1-0.20211229051252-7821289d4026
diff --git a/go.sum b/go.sum
index 6e54e8cab..cd682d28c 100644
--- a/go.sum
+++ b/go.sum
@@ -4,11 +4,18 @@ github.com/aws/aws-sdk-go v1.42.0 h1:BMZws0t8NAhHFsfnT3B40IwD13jVDG5KerlRksctVIw
github.com/aws/aws-sdk-go v1.42.0/go.mod h1:585smgzpB/KqRA+K3y/NL/oYRqQvpNJYvLm+LY1U59Q=
github.com/aymerick/douceur v0.2.0 h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk=
github.com/aymerick/douceur v0.2.0/go.mod h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4=
+github.com/dave/jennifer v1.3.0/go.mod h1:fIb+770HOpJ2fmN9EPPKOqm1vMGhB+TwXKMZhrIygKg=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/go-fed/httpsig v0.1.1-0.20190914113940-c2de3672e5b5/go.mod h1:T56HUNYZUQ1AGUzhAYPugZfp36sKApVnGBgKlIY+aIE=
+github.com/go-fed/httpsig v1.1.0 h1:9M+hb0jkEICD8/cAiNqEB66R87tTINszBRTjwjQzWcI=
+github.com/go-fed/httpsig v1.1.0/go.mod h1:RCMrTZvN1bJYtofsG4rd5NaO5obxQ5xBkdiS7xsT7bM=
github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY=
github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
+github.com/go-test/deep v1.0.1 h1:UQhStjbkDClarlmv0am7OXXO4/GaPdCGiUiMTvi28sg=
+github.com/go-test/deep v1.0.1/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA=
+github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
github.com/gorilla/css v1.0.0 h1:BQqNyPTi50JCFMTw/b67hByjMVXZRwGha6wxVGkeihY=
github.com/gorilla/css v1.0.0/go.mod h1:Dn721qIggHpt4+EFCcTLTU/vk5ySda2ReITrtgBl60c=
github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc=
@@ -42,6 +49,10 @@ github.com/oschwald/geoip2-golang v1.5.0 h1:igg2yQIrrcRccB1ytFXqBfOHCjXWIoMv85lV
github.com/oschwald/geoip2-golang v1.5.0/go.mod h1:xdvYt5xQzB8ORWFqPnqMwZpCpgNagttWdoZLlJQzg7s=
github.com/oschwald/maxminddb-golang v1.8.0 h1:Uh/DSnGoxsyp/KYbY1AuP0tYEwfs0sCph9p/UMXK/Hk=
github.com/oschwald/maxminddb-golang v1.8.0/go.mod h1:RXZtst0N6+FY/3qCNmZMBApR19cdQj43/NM9VkrNAis=
+github.com/owncast/activity v1.0.1-0.20210908225327-e46ee45ec09c h1:lk78BK8sLYn8nwy4ZZdQqcRdkagxQI//wF/DXuxsg1Y=
+github.com/owncast/activity v1.0.1-0.20210908225327-e46ee45ec09c/go.mod h1:v4QoPaAzjWZ8zN2VFVGL5ep9C02mst0hQYHUpQwso4Q=
+github.com/owncast/activity v1.0.1-0.20211229051252-7821289d4026 h1:E1nxiX44BcMQTSSs8MHLm2rXnqXNedYZkFI31gXMsJc=
+github.com/owncast/activity v1.0.1-0.20211229051252-7821289d4026/go.mod h1:v4QoPaAzjWZ8zN2VFVGL5ep9C02mst0hQYHUpQwso4Q=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
@@ -73,8 +84,11 @@ github.com/yuin/goldmark v1.4.4 h1:zNWRjYUW32G9KirMXYHQHVNFkXvMI7LpgNW2AgYAoIs=
github.com/yuin/goldmark v1.4.4/go.mod h1:rmuwmfZ0+bvzB24eSC//bk1R1Zp3hM0OXYv/G2LIilg=
github.com/yusufpapurcu/wmi v1.2.2 h1:KBNDSne4vP5mbSWnJbO+51IMOXJB67QiYCSBrubbPRg=
github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
+golang.org/x/crypto v0.0.0-20180527072434-ab813273cd59/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI=
+golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/mod v0.5.1 h1:OJxoQ/rynoF0dcCdI7cLPktw/hR2cueqYfjm43oqK38=
golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
@@ -83,6 +97,7 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL
golang.org/x/net v0.0.0-20210614182718-04defd469f4e h1:XpT3nA5TvE525Ne3hInMh6+GETgn27Zfm9dxsThnX2Q=
golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sys v0.0.0-20180525142821-c11f84a56e43/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
diff --git a/models/federatedActivity.go b/models/federatedActivity.go
new file mode 100644
index 000000000..eae0e6254
--- /dev/null
+++ b/models/federatedActivity.go
@@ -0,0 +1,12 @@
+package models
+
+import "time"
+
+// FederatedActivity is an internal representation of an activity that was
+// accepted and stored.
+type FederatedActivity struct {
+ IRI string `json:"iri"`
+ ActorIRI string `json:"actorIRI"`
+ Type string `json:"type"`
+ Timestamp time.Time `json:"timestamp"`
+}
diff --git a/models/follower.go b/models/follower.go
new file mode 100644
index 000000000..d8059492a
--- /dev/null
+++ b/models/follower.go
@@ -0,0 +1,21 @@
+package models
+
+import "github.com/owncast/owncast/utils"
+
+// Follower is our internal representation of a single follower within Owncast.
+type Follower struct {
+ // ActorIRI is the IRI of the remote actor.
+ ActorIRI string `json:"link"`
+ // Inbox is the inbox URL of the remote follower
+ Inbox string `json:"-"`
+ // Name is the display name of the follower.
+ Name string `json:"name"`
+ // Username is the account username of the remote actor.
+ Username string `json:"username"`
+ // Image is the avatar image of the follower.
+ Image string `json:"image"`
+ // Timestamp is when this follow request was created.
+ Timestamp utils.NullTime `json:"timestamp,omitempty"`
+ // DisabledAt is when this follower was rejected or disabled.
+ DisabledAt utils.NullTime `json:"disabledAt,omitempty"`
+}
diff --git a/router/middleware/activityPub.go b/router/middleware/activityPub.go
new file mode 100644
index 000000000..6d3c91750
--- /dev/null
+++ b/router/middleware/activityPub.go
@@ -0,0 +1,46 @@
+package middleware
+
+import (
+ "net/http"
+ "strings"
+
+ "github.com/owncast/owncast/core/data"
+ "github.com/owncast/owncast/utils"
+)
+
+// RequireActivityPubOrRedirect will validate the requested content types and
+// redirect to the main Owncast page if it doesn't match.
+func RequireActivityPubOrRedirect(handler http.HandlerFunc) http.HandlerFunc {
+ return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
+ if !data.GetFederationEnabled() {
+ w.WriteHeader(http.StatusMethodNotAllowed)
+ return
+ }
+
+ handleAccepted := func() {
+ handler(w, r)
+ }
+
+ acceptedContentTypes := []string{"application/json", "application/json+ld", "application/activity+json"}
+ acceptString := r.Header.Get("Accept")
+ accept := strings.Split(acceptString, ",")
+
+ for _, singleType := range accept {
+ if _, accepted := utils.FindInSlice(acceptedContentTypes, strings.TrimSpace(singleType)); accepted {
+ handleAccepted()
+ return
+ }
+ }
+
+ contentTypeString := r.Header.Get("Content-Type")
+ contentTypes := strings.Split(contentTypeString, ",")
+ for _, singleType := range contentTypes {
+ if _, accepted := utils.FindInSlice(acceptedContentTypes, strings.TrimSpace(singleType)); accepted {
+ handleAccepted()
+ return
+ }
+ }
+
+ http.Redirect(w, r, "/", http.StatusTemporaryRedirect)
+ })
+}
diff --git a/router/middleware/headers.go b/router/middleware/headers.go
index 9c2985722..a10915515 100644
--- a/router/middleware/headers.go
+++ b/router/middleware/headers.go
@@ -21,7 +21,7 @@ func SetHeaders(w http.ResponseWriter) {
}
// Content security policy
csp := []string{
- fmt.Sprintf("script-src 'self' %s 'sha256-2HPCfJIJHnY0NrRDPTOdC7AOSJIcQyNxzUuut3TsYRY=' 'sha256-PzXGlTLvNFZ7et6GkP2nD3XuSaAKQVBSYiHzU2ZKm8o=' 'sha256-/wqazZOqIpFSIrNVseblbKCXrezG73X7CMqRSTf+8zw=' 'sha256-jCj2f+ICtd8fvdb0ngc+Hkr/ZnZOMvNkikno/XR6VZs='", unsafeEval),
+ fmt.Sprintf("script-src 'self' %s 'sha256-rnxPrBaD0OuYxsCdrll4QJwtDLcBJqFh0u27CoX5jZ8=' 'sha256-PzXGlTLvNFZ7et6GkP2nD3XuSaAKQVBSYiHzU2ZKm8o=' 'sha256-/wqazZOqIpFSIrNVseblbKCXrezG73X7CMqRSTf+8zw=' 'sha256-jCj2f+ICtd8fvdb0ngc+Hkr/ZnZOMvNkikno/XR6VZs='", unsafeEval),
"worker-src 'self' blob:", // No single quotes around blob:
}
w.Header().Set("Content-Security-Policy", strings.Join(csp, "; "))
diff --git a/router/router.go b/router/router.go
index 23e46b7d8..6b3c32f49 100644
--- a/router/router.go
+++ b/router/router.go
@@ -6,10 +6,12 @@ import (
log "github.com/sirupsen/logrus"
+ "github.com/owncast/owncast/activitypub"
"github.com/owncast/owncast/config"
"github.com/owncast/owncast/controllers"
"github.com/owncast/owncast/controllers/admin"
"github.com/owncast/owncast/core/chat"
+ "github.com/owncast/owncast/core/data"
"github.com/owncast/owncast/core/user"
"github.com/owncast/owncast/router/middleware"
"github.com/owncast/owncast/utils"
@@ -20,6 +22,8 @@ import (
func Start() error {
// static files
http.HandleFunc("/", controllers.IndexHandler)
+ http.HandleFunc("/recordings", controllers.IndexHandler)
+ http.HandleFunc("/schedule", controllers.IndexHandler)
// admin static files
http.HandleFunc("/admin/", middleware.RequireAdminAuth(admin.ServeAdmin))
@@ -69,6 +73,12 @@ func Start() error {
// register a new chat user
http.HandleFunc("/api/chat/register", controllers.RegisterAnonymousChatUser)
+ // return remote follow details
+ http.HandleFunc("/api/remotefollow", controllers.RemoteFollow)
+
+ // return followers
+ http.HandleFunc("/api/followers", controllers.GetFollowers)
+
// Authenticated admin requests
// Current inbound broadcaster
@@ -116,6 +126,18 @@ func Start() error {
// Get a list of moderator users
http.HandleFunc("/api/admin/chat/users/moderators", middleware.RequireAdminAuth(admin.GetModerators))
+ // return followers
+ http.HandleFunc("/api/admin/followers", middleware.RequireAdminAuth(controllers.GetFollowers))
+
+ // Get a list of pending follow requests
+ http.HandleFunc("/api/admin/followers/pending", middleware.RequireAdminAuth(admin.GetPendingFollowRequests))
+
+ // Get a list of rejected or blocked follows
+ http.HandleFunc("/api/admin/followers/blocked", middleware.RequireAdminAuth(admin.GetBlockedAndRejectedFollowers))
+
+ // Set the following state of a follower or follow request.
+ http.HandleFunc("/api/admin/followers/approve", middleware.RequireAdminAuth(admin.ApproveFollower))
+
// Update config values
// Change the current streaming key in memory
@@ -257,6 +279,34 @@ func Start() error {
// Enable/disable a user
http.HandleFunc("/api/chat/users/setenabled", middleware.RequireUserModerationScopeAccesstoken(admin.UpdateUserEnabled))
+ // Configure Federation features
+
+ // enable/disable federation features
+ http.HandleFunc("/api/admin/config/federation/enable", middleware.RequireAdminAuth(admin.SetFederationEnabled))
+
+ // set if federation activities are private
+ http.HandleFunc("/api/admin/config/federation/private", middleware.RequireAdminAuth(admin.SetFederationActivityPrivate))
+
+ // set if fediverse engagement appears in chat
+ http.HandleFunc("/api/admin/config/federation/showengagement", middleware.RequireAdminAuth(admin.SetFederationShowEngagement))
+
+ // set local federated username
+ http.HandleFunc("/api/admin/config/federation/username", middleware.RequireAdminAuth(admin.SetFederationUsername))
+
+ // set federated go live message
+ http.HandleFunc("/api/admin/config/federation/livemessage", middleware.RequireAdminAuth(admin.SetFederationGoLiveMessage))
+
+ // Federation blocked domains
+ http.HandleFunc("/api/admin/config/federation/blockdomains", middleware.RequireAdminAuth(admin.SetFederationBlockDomains))
+
+ // send a public message to the Fediverse from the server's user
+ http.HandleFunc("/api/admin/federation/send", middleware.RequireAdminAuth(admin.SendFederatedMessage))
+
+ // Return federated activities
+ http.HandleFunc("/api/admin/federation/actions", middleware.RequireAdminAuth(admin.GetFederatedActions))
+
+ // ActivityPub has its own router
+ activitypub.Start(data.GetDatastore())
// websocket
http.HandleFunc("/ws", func(w http.ResponseWriter, r *http.Request) {
diff --git a/sqlc.json b/sqlc.json
new file mode 100644
index 000000000..780a5b3cf
--- /dev/null
+++ b/sqlc.json
@@ -0,0 +1,9 @@
+{
+ "version": "1",
+ "packages": [{
+ "schema": "db/schema.sql",
+ "queries": "db/query.sql",
+ "name": "db",
+ "path": "db"
+ }]
+ } \ No newline at end of file
diff --git a/static/admin/404/index.html b/static/admin/404/index.html
index ecf14096d..e9384d458 100644
--- a/static/admin/404/index.html
+++ b/static/admin/404/index.html
@@ -1 +1 @@
-<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width"/><meta charSet="utf-8"/><link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png"/><title>404: This page could not be found</title><meta name="next-head-count" content="4"/><link rel="preload" href="/admin/_next/static/css/ba0ae6285080d7f0.css" as="style"/><link rel="stylesheet" href="/admin/_next/static/css/ba0ae6285080d7f0.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/admin/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/admin/_next/static/chunks/webpack-32f373d36961f088.js" defer=""></script><script src="/admin/_next/static/chunks/framework-4975f770e34de116.js" defer=""></script><script src="/admin/_next/static/chunks/main-6bdb99735697720d.js" defer=""></script><script src="/admin/_next/static/chunks/pages/_app-4f17b8df12d0e919.js" defer=""></script><script src="/admin/_next/static/chunks/pages/_error-a3f18418a2205cb8.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_buildManifest.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_ssgManifest.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_middlewareManifest.js" defer=""></script></head><body><div id="__next" data-reactroot=""><section class="ant-layout app-container"><aside class="ant-layout-sider ant-layout-sider-dark side-nav" style="flex:0 0 240px;max-width:240px;min-width:240px;width:240px"><div class="ant-layout-sider-children"><ul class="ant-menu ant-menu-root ant-menu-inline ant-menu-light menu-container" role="menu" tabindex="0" data-menu-list="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1><li class="ant-menu-item" style="padding-left:24px" role="menuitem" tabindex="-1"><span role="img" aria-label="home" class="anticon anticon-home ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="home" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/">Home</a></span></li><li class="ant-menu-item" style="padding-left:24px" title="Current stream" role="menuitem" tabindex="-1"><span role="img" aria-label="line-chart" class="anticon anticon-line-chart ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="line-chart" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/viewer-info/">Viewers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" style="display:block" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="message" class="anticon anticon-message ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="message" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"></path></svg></span><span class="ant-menu-title-content">Chat &amp; Users</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="setting" class="anticon anticon-setting ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="setting" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"></path></svg></span><span class="ant-menu-title-content">Configuration</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="tool" class="anticon anticon-tool ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="tool" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"></path></svg></span><span class="ant-menu-title-content">Utilities</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="experiment" class="anticon anticon-experiment ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="experiment" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z"></path></svg></span><span class="ant-menu-title-content">Integrations</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px" title="Help" role="menuitem" tabindex="-1"><span role="img" aria-label="question-circle" class="anticon anticon-question-circle ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/help/">Help</a></span></li></ul><div style="display:none" aria-hidden="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1></div></div></aside><section class="ant-layout layout-main"><header class="ant-layout-header layout-header"><div class="global-stream-title-container"><div class="textfield-with-submit-container"><div class="textfield-component"><div class="formfield-container textfield-container type-default"><div class="label-side"><label for="field-streamTitle" class="formfield-label">Stream Title</label></div><div class="input-side"><div class="input-group"><span class="ant-input-affix-wrapper field field-streamTitle"><input type="text" id="field-streamTitle" class="ant-input" placeholder="What are you streaming now" maxLength="100" value=""/><span class="ant-input-suffix"><span role="button" aria-label="close-circle" tabindex="-1" class="anticon anticon-close-circle ant-input-clear-icon-hidden ant-input-clear-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"></path></svg></span></span></span></div><span class="status-container empty"></span><p class="field-tip">What is your stream about today?</p></div></div></div><div class="formfield-container lower-container"><p class="label-spacer"></p><div class="lower-content"><div class="field-tip">What is your stream about today?</div><span class="status-container empty"></span><div class="update-button-container"><button disabled="" type="button" class="ant-btn ant-btn-primary ant-btn-sm submit-button"><span>Update</span></button></div></div></div></div></div><div class="online-status-indicator"><span class="status-label">Offline</span><span class="status-icon"><span role="img" aria-label="minus-square" class="anticon anticon-minus-square"><svg viewBox="64 64 896 896" focusable="false" data-icon="minus-square" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z"></path></svg></span></span></div></header><main class="ant-layout-content main-content-container"><div style="color:#000;background:#fff;font-family:-apple-system, BlinkMacSystemFont, Roboto, &quot;Segoe UI&quot;, &quot;Fira Sans&quot;, Avenir, &quot;Helvetica Neue&quot;, &quot;Lucida Grande&quot;, sans-serif;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body { margin: 0 }</style><h1 style="display:inline-block;border-right:1px solid rgba(0, 0, 0,.3);margin:0;margin-right:20px;padding:10px 23px 10px 0;font-size:24px;font-weight:500;vertical-align:top">404</h1><div style="display:inline-block;text-align:left;line-height:49px;height:49px;vertical-align:middle"><h2 style="font-size:14px;font-weight:normal;line-height:inherit;margin:0;padding:0">This page could not be found<!-- -->.</h2></div></div></div></main><footer class="ant-layout-footer footer-container"><a href="https://owncast.online/?source=admin" target="_blank" rel="noopener noreferrer">About Owncast v<!-- -->0.0.0</a></footer></section></section></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"7a6totYv41sSc3NmR-l5-","assetPrefix":"/admin","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html> \ No newline at end of file
+<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width"/><meta charSet="utf-8"/><link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png"/><title>404: This page could not be found</title><meta name="next-head-count" content="4"/><link rel="preload" href="/admin/_next/static/css/8f06007bcaf49272.css" as="style"/><link rel="stylesheet" href="/admin/_next/static/css/8f06007bcaf49272.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/admin/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/admin/_next/static/chunks/webpack-d3dfca19c7a5e28c.js" defer=""></script><script src="/admin/_next/static/chunks/framework-4975f770e34de116.js" defer=""></script><script src="/admin/_next/static/chunks/main-6bdb99735697720d.js" defer=""></script><script src="/admin/_next/static/chunks/pages/_app-31024cc89d3736f1.js" defer=""></script><script src="/admin/_next/static/chunks/pages/_error-a3f18418a2205cb8.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_buildManifest.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_ssgManifest.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_middlewareManifest.js" defer=""></script></head><body><div id="__next" data-reactroot=""><section class="ant-layout app-container"><aside class="ant-layout-sider ant-layout-sider-dark side-nav" style="flex:0 0 240px;max-width:240px;min-width:240px;width:240px"><div class="ant-layout-sider-children"><ul class="ant-menu ant-menu-root ant-menu-inline ant-menu-light menu-container" role="menu" tabindex="0" data-menu-list="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1><li class="ant-menu-item" style="padding-left:24px" role="menuitem" tabindex="-1"><span role="img" aria-label="home" class="anticon anticon-home ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="home" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/">Home</a></span></li><li class="ant-menu-item" style="padding-left:24px" title="Current stream" role="menuitem" tabindex="-1"><span role="img" aria-label="line-chart" class="anticon anticon-line-chart ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="line-chart" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/viewer-info/">Viewers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" style="display:block" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="message" class="anticon anticon-message ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="message" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"></path></svg></span><span class="ant-menu-title-content">Chat &amp; Users</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px;display:none" title="Fediverse followers" role="menuitem" tabindex="-1"><img alt="fediverse icon" src="/admin/fediverse-white.png" width="15rem" style="opacity:0.6;position:relative;top:-1px" class="ant-menu-item-icon"/><span class="ant-menu-title-content"><a href="/admin/federation/followers/">Followers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="setting" class="anticon anticon-setting ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="setting" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"></path></svg></span><span class="ant-menu-title-content">Configuration</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="tool" class="anticon anticon-tool ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="tool" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"></path></svg></span><span class="ant-menu-title-content">Utilities</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="experiment" class="anticon anticon-experiment ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="experiment" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z"></path></svg></span><span class="ant-menu-title-content">Integrations</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px" title="Help" role="menuitem" tabindex="-1"><span role="img" aria-label="question-circle" class="anticon anticon-question-circle ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/help/">Help</a></span></li></ul><div style="display:none" aria-hidden="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1></div></div></aside><section class="ant-layout layout-main"><header class="ant-layout-header layout-header"><div class="ant-space ant-space-horizontal ant-space-align-center"><div class="ant-space-item"><button style="display:none" type="button" class="ant-btn ant-btn-primary ant-btn-circle ant-btn-lg ant-btn-icon-only"><span role="img" aria-label="edit" class="anticon anticon-edit"><svg viewBox="64 64 896 896" focusable="false" data-icon="edit" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z"></path></svg></span></button></div></div><div class="global-stream-title-container"><div class="textfield-with-submit-container"><div class="textfield-component"><div class="formfield-container textfield-container type-default"><div class="label-side"><label for="field-streamTitle" class="formfield-label">Stream Title</label></div><div class="input-side"><div class="input-group"><span class="ant-input-affix-wrapper field field-streamTitle"><input type="text" id="field-streamTitle" class="ant-input" placeholder="What are you streaming now" maxLength="100" value=""/><span class="ant-input-suffix"><span role="button" aria-label="close-circle" tabindex="-1" class="anticon anticon-close-circle ant-input-clear-icon-hidden ant-input-clear-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"></path></svg></span></span></span></div><span class="status-container empty"></span><p class="field-tip">What is your stream about today?</p></div></div></div><div class="formfield-container lower-container"><p class="label-spacer"></p><div class="lower-content"><div class="field-tip">What is your stream about today?</div><span class="status-container empty"></span><div class="update-button-container"><button disabled="" type="button" class="ant-btn ant-btn-primary ant-btn-sm submit-button"><span>Update</span></button></div></div></div></div></div><div class="ant-space ant-space-horizontal ant-space-align-center"><div class="ant-space-item"><div class="online-status-indicator"><span class="status-label">Offline</span><span class="status-icon"><span role="img" aria-label="minus-square" class="anticon anticon-minus-square"><svg viewBox="64 64 896 896" focusable="false" data-icon="minus-square" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z"></path></svg></span></span></div></div></div></header><main class="ant-layout-content main-content-container"><div style="color:#000;background:#fff;font-family:-apple-system, BlinkMacSystemFont, Roboto, &quot;Segoe UI&quot;, &quot;Fira Sans&quot;, Avenir, &quot;Helvetica Neue&quot;, &quot;Lucida Grande&quot;, sans-serif;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body { margin: 0 }</style><h1 style="display:inline-block;border-right:1px solid rgba(0, 0, 0,.3);margin:0;margin-right:20px;padding:10px 23px 10px 0;font-size:24px;font-weight:500;vertical-align:top">404</h1><div style="display:inline-block;text-align:left;line-height:49px;height:49px;vertical-align:middle"><h2 style="font-size:14px;font-weight:normal;line-height:inherit;margin:0;padding:0">This page could not be found<!-- -->.</h2></div></div></div></main><footer class="ant-layout-footer footer-container"><a href="https://owncast.online/?source=admin" target="_blank" rel="noopener noreferrer">About Owncast v<!-- -->0.0.0</a></footer></section></section></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"S0l4GknIl5ifWnPqwFnrr","assetPrefix":"/admin","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html> \ No newline at end of file
diff --git a/static/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_buildManifest.js b/static/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_buildManifest.js
new file mode 100644
index 000000000..59d1cb1fb
--- /dev/null
+++ b/static/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_buildManifest.js
@@ -0,0 +1 @@
+self.__BUILD_MANIFEST=function(s,c,e,a,t,i,n,f,d,o,h,b,g,u){return{__rewrites:{beforeFiles:[],afterFiles:[],fallback:[]},"/":[s,c,e,a,t,i,f,"static/chunks/59-bb3486f7473684cf.js","static/chunks/pages/index-e81f0bed001d207c.js"],"/_error":["static/chunks/pages/_error-a3f18418a2205cb8.js"],"/access-tokens":[s,c,"static/chunks/pages/access-tokens-d3e9e11b79321dbb.js"],"/actions":[s,"static/chunks/pages/actions-6889c0d5d40aa70e.js"],"/chat/messages":[d,s,c,i,o,"static/chunks/pages/chat/messages-dc2695d5bac28933.js"],"/chat/users":[d,s,c,e,i,o,"static/chunks/pages/chat/users-4426bd981b718014.js"],"/config-chat":["static/chunks/pages/config-chat-3f47c2e436acea43.js"],"/config-federation":["static/chunks/674-fd7f35cd345c7a4b.js","static/chunks/pages/config-federation-ddff59205ab33383.js"],"/config-public-details":[s,n,"static/css/4da23ced01517a16.css","static/chunks/589-57c6e66ff27bec68.js",h,"static/chunks/pages/config-public-details-02c80e54bdb91852.js"],"/config-server-details":[b,"static/chunks/pages/config-server-details-40fd225da49d9b45.js"],"/config-social-items":[s,h,"static/chunks/pages/config-social-items-9ecbdce4f557ac9b.js"],"/config-storage":["static/chunks/473-2f8a49a631089460.js","static/chunks/pages/config-storage-4b8f9ff84ca4aa30.js"],"/config-video":[s,b,"static/chunks/556-4bf62bd783267914.js","static/chunks/pages/config-video-c250bf8f88dd1d1b.js"],"/federation/actions":[s,c,"static/chunks/pages/federation/actions-a817c8d84eb2e1bf.js"],"/federation/followers":[s,c,e,"static/chunks/pages/federation/followers-73207b872f42b7a6.js"],"/hardware-info":[g,c,e,a,t,n,u,"static/chunks/pages/hardware-info-4dcdf4aa6510006e.js"],"/help":[e,a,"static/chunks/132-69ec1de6a8e27de6.js","static/chunks/pages/help-3dd6da50dde27e48.js"],"/logs":[s,c,f,"static/chunks/pages/logs-d10676db469afea0.js"],"/upgrade":[s,"static/chunks/275-35d1a6aef8ecf26a.js","static/chunks/pages/upgrade-6c4ec4a032ab7232.js"],"/viewer-info":[g,c,e,a,t,n,u,"static/chunks/pages/viewer-info-a9586b5d2ecea7e8.js"],"/webhooks":[s,"static/chunks/pages/webhooks-8b96f4afcc72aba4.js"],sortedPages:["/","/_app","/_error","/access-tokens","/actions","/chat/messages","/chat/users","/config-chat","/config-federation","/config-public-details","/config-server-details","/config-social-items","/config-storage","/config-video","/federation/actions","/federation/followers","/hardware-info","/help","/logs","/upgrade","/viewer-info","/webhooks"]}}("static/chunks/829-c8d1f3db438c210b.js","static/chunks/91-5f5f536776e2d9c6.js","static/chunks/961-1db4468ca0742ea4.js","static/chunks/751-f932ff7ec3e1342a.js","static/chunks/763-6084d4b3c149b8f4.js","static/chunks/533-2f63c37b8986cca1.js","static/chunks/910-ed07ccf32f311d03.js","static/chunks/429-613793ce22468b22.js","static/chunks/29107295-2c3ce868677a27a4.js","static/chunks/464-deae2b2f674a34de.js","static/chunks/17-8c3836887f4f3962.js","static/chunks/578-b2fdca9619a3031e.js","static/chunks/36bcf0ca-c1f70baa5cd8cbbf.js","static/chunks/958-d85597c88a5651f8.js"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB(); \ No newline at end of file
diff --git a/static/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_middlewareManifest.js b/static/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_middlewareManifest.js
new file mode 100644
index 000000000..a17fc8bf9
--- /dev/null
+++ b/static/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_middlewareManifest.js
@@ -0,0 +1 @@
+self.__MIDDLEWARE_MANIFEST=[];self.__MIDDLEWARE_MANIFEST_CB&&self.__MIDDLEWARE_MANIFEST_CB() \ No newline at end of file
diff --git a/static/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_ssgManifest.js b/static/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_ssgManifest.js
new file mode 100644
index 000000000..0511aa895
--- /dev/null
+++ b/static/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_ssgManifest.js
@@ -0,0 +1 @@
+self.__SSG_MANIFEST=new Set,self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB(); \ No newline at end of file
diff --git a/static/admin/_next/static/chunks/102-c27fe0fc093d5628.js b/static/admin/_next/static/chunks/102-c27fe0fc093d5628.js
deleted file mode 100644
index fdad4d6bd..000000000
--- a/static/admin/_next/static/chunks/102-c27fe0fc093d5628.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[102],{31808:function(e,t,n){"use strict";n.d(t,{jD:function(){return c},fk:function(){return o}});var a,r=n(98924),c=function(){return(0,r.Z)()&&window.document.documentElement},o=function(){if(!c())return!1;if(void 0!==a)return a;var e=document.createElement("div");return e.style.display="flex",e.style.flexDirection="column",e.style.rowGap="1px",e.appendChild(document.createElement("div")),e.appendChild(document.createElement("div")),document.body.appendChild(e),a=1===e.scrollHeight,document.body.removeChild(e),a}},97751:function(e,t,n){"use strict";n.d(t,{Z:function(){return x}});var a=n(4942),r=n(87462),c=n(67294),o=n(94184),l=n.n(o),i=n(98423),u=n(59844),s=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n},f=function(e){var t=e.prefixCls,n=e.className,o=e.hoverable,i=void 0===o||o,f=s(e,["prefixCls","className","hoverable"]);return c.createElement(u.C,null,(function(e){var o=(0,e.getPrefixCls)("card",t),u=l()("".concat(o,"-grid"),n,(0,a.Z)({},"".concat(o,"-grid-hoverable"),i));return c.createElement("div",(0,r.Z)({},f,{className:u}))}))},d=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n},v=function(e){return c.createElement(u.C,null,(function(t){var n=t.getPrefixCls,a=e.prefixCls,o=e.className,i=e.avatar,u=e.title,s=e.description,f=d(e,["prefixCls","className","avatar","title","description"]),v=n("card",a),m=l()("".concat(v,"-meta"),o),p=i?c.createElement("div",{className:"".concat(v,"-meta-avatar")},i):null,y=u?c.createElement("div",{className:"".concat(v,"-meta-title")},u):null,E=s?c.createElement("div",{className:"".concat(v,"-meta-description")},s):null,g=y||E?c.createElement("div",{className:"".concat(v,"-meta-detail")},y,E):null;return c.createElement("div",(0,r.Z)({},f,{className:m}),p,g)}))},m=n(87961),p=n(25968),y=n(6226),E=n(97647),g=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n};var h=function(e){var t,n,o,s=c.useContext(u.E_),d=s.getPrefixCls,v=s.direction,h=c.useContext(E.Z),x=e.prefixCls,Z=e.className,b=e.extra,C=e.headStyle,N=void 0===C?{}:C,w=e.bodyStyle,O=void 0===w?{}:w,P=e.title,k=e.loading,j=e.bordered,S=void 0===j||j,T=e.size,M=e.type,I=e.cover,z=e.actions,q=e.tabList,D=e.children,A=e.activeTabKey,R=e.defaultActiveTabKey,B=e.tabBarExtraContent,K=e.hoverable,H=e.tabProps,_=void 0===H?{}:H,L=g(e,["prefixCls","className","extra","headStyle","bodyStyle","title","loading","bordered","size","type","cover","actions","tabList","children","activeTabKey","defaultActiveTabKey","tabBarExtraContent","hoverable","tabProps"]),G=d("card",x),U=0===O.padding||"0px"===O.padding?{padding:24}:void 0,F=c.createElement("div",{className:"".concat(G,"-loading-block")}),W=c.createElement("div",{className:"".concat(G,"-loading-content"),style:U},c.createElement(p.Z,{gutter:8},c.createElement(y.Z,{span:22},F)),c.createElement(p.Z,{gutter:8},c.createElement(y.Z,{span:8},F),c.createElement(y.Z,{span:15},F)),c.createElement(p.Z,{gutter:8},c.createElement(y.Z,{span:6},F),c.createElement(y.Z,{span:18},F)),c.createElement(p.Z,{gutter:8},c.createElement(y.Z,{span:13},F),c.createElement(y.Z,{span:9},F)),c.createElement(p.Z,{gutter:8},c.createElement(y.Z,{span:4},F),c.createElement(y.Z,{span:3},F),c.createElement(y.Z,{span:16},F))),Y=void 0!==A,$=(0,r.Z)((0,r.Z)({},_),(t={},(0,a.Z)(t,Y?"activeKey":"defaultActiveKey",Y?A:R),(0,a.Z)(t,"tabBarExtraContent",B),t)),J=q&&q.length?c.createElement(m.Z,(0,r.Z)({size:"large"},$,{className:"".concat(G,"-head-tabs"),onChange:function(t){var n;null===(n=e.onTabChange)||void 0===n||n.call(e,t)}}),q.map((function(e){return c.createElement(m.Z.TabPane,{tab:e.tab,disabled:e.disabled,key:e.key})}))):null;(P||b||J)&&(o=c.createElement("div",{className:"".concat(G,"-head"),style:N},c.createElement("div",{className:"".concat(G,"-head-wrapper")},P&&c.createElement("div",{className:"".concat(G,"-head-title")},P),b&&c.createElement("div",{className:"".concat(G,"-extra")},b)),J));var Q=I?c.createElement("div",{className:"".concat(G,"-cover")},I):null,V=c.createElement("div",{className:"".concat(G,"-body"),style:O},k?W:D),X=z&&z.length?c.createElement("ul",{className:"".concat(G,"-actions")},function(e){return e.map((function(t,n){return c.createElement("li",{style:{width:"".concat(100/e.length,"%")},key:"action-".concat(n)},c.createElement("span",null,t))}))}(z)):null,ee=(0,i.Z)(L,["onTabChange"]),te=T||h,ne=l()(G,(n={},(0,a.Z)(n,"".concat(G,"-loading"),k),(0,a.Z)(n,"".concat(G,"-bordered"),S),(0,a.Z)(n,"".concat(G,"-hoverable"),K),(0,a.Z)(n,"".concat(G,"-contain-grid"),function(){var t;return c.Children.forEach(e.children,(function(e){e&&e.type&&e.type===f&&(t=!0)})),t}()),(0,a.Z)(n,"".concat(G,"-contain-tabs"),q&&q.length),(0,a.Z)(n,"".concat(G,"-").concat(te),te),(0,a.Z)(n,"".concat(G,"-type-").concat(M),!!M),(0,a.Z)(n,"".concat(G,"-rtl"),"rtl"===v),n),Z);return c.createElement("div",(0,r.Z)({},ee,{className:ne}),o,Q,V,X)};h.Grid=f,h.Meta=v;var x=h},41080:function(e,t,n){"use strict";n.d(t,{Z:function(){return N}});var a=n(4942),r=n(87462),c=n(71002),o=n(67294),l=n(94184),i=n.n(l),u=function(e){var t=e.prefixCls,n=e.className,a=e.width,c=e.style;return o.createElement("h3",{className:i()(t,n),style:(0,r.Z)({width:a},c)})},s=n(74902),f=function(e){var t=function(t){var n=e.width,a=e.rows,r=void 0===a?2:a;return Array.isArray(n)?n[t]:r-1===t?n:void 0},n=e.prefixCls,a=e.className,r=e.style,c=e.rows,l=(0,s.Z)(Array(c)).map((function(e,n){return o.createElement("li",{key:n,style:{width:t(n)}})}));return o.createElement("ul",{className:i()(n,a),style:r},l)},d=n(59844),v=function(e){var t,n,c=e.prefixCls,l=e.className,u=e.style,s=e.size,f=e.shape,d=i()((t={},(0,a.Z)(t,"".concat(c,"-lg"),"large"===s),(0,a.Z)(t,"".concat(c,"-sm"),"small"===s),t)),v=i()((n={},(0,a.Z)(n,"".concat(c,"-circle"),"circle"===f),(0,a.Z)(n,"".concat(c,"-square"),"square"===f),(0,a.Z)(n,"".concat(c,"-round"),"round"===f),n)),m="number"===typeof s?{width:s,height:s,lineHeight:"".concat(s,"px")}:{};return o.createElement("span",{className:i()(c,d,v,l),style:(0,r.Z)((0,r.Z)({},m),u)})},m=n(98423),p=function(e){var t=function(t){var n=t.getPrefixCls,c=e.prefixCls,l=e.className,u=e.active,s=n("skeleton",c),f=(0,m.Z)(e,["prefixCls","className"]),d=i()(s,"".concat(s,"-element"),(0,a.Z)({},"".concat(s,"-active"),u),l);return o.createElement("div",{className:d},o.createElement(v,(0,r.Z)({prefixCls:"".concat(s,"-avatar")},f)))};return o.createElement(d.C,null,t)};p.defaultProps={size:"default",shape:"circle"};var y=p,E=function(e){var t=function(t){var n,c=t.getPrefixCls,l=e.prefixCls,u=e.className,s=e.active,f=e.block,d=void 0!==f&&f,p=c("skeleton",l),y=(0,m.Z)(e,["prefixCls"]),E=i()(p,"".concat(p,"-element"),(n={},(0,a.Z)(n,"".concat(p,"-active"),s),(0,a.Z)(n,"".concat(p,"-block"),d),n),u);return o.createElement("div",{className:E},o.createElement(v,(0,r.Z)({prefixCls:"".concat(p,"-button")},y)))};return o.createElement(d.C,null,t)};E.defaultProps={size:"default"};var g=E,h=function(e){var t=function(t){var n=t.getPrefixCls,c=e.prefixCls,l=e.className,u=e.active,s=n("skeleton",c),f=(0,m.Z)(e,["prefixCls"]),d=i()(s,"".concat(s,"-element"),(0,a.Z)({},"".concat(s,"-active"),u),l);return o.createElement("div",{className:d},o.createElement(v,(0,r.Z)({prefixCls:"".concat(s,"-input")},f)))};return o.createElement(d.C,null,t)};h.defaultProps={size:"default"};var x=h,Z=function(e){var t=function(t){var n=t.getPrefixCls,a=e.prefixCls,r=e.className,c=e.style,l=n("skeleton",a),u=i()(l,"".concat(l,"-element"),r);return o.createElement("div",{className:u},o.createElement("div",{className:i()("".concat(l,"-image"),r),style:c},o.createElement("svg",{viewBox:"0 0 1098 1024",xmlns:"http://www.w3.org/2000/svg",className:"".concat(l,"-image-svg")},o.createElement("path",{d:"M365.714286 329.142857q0 45.714286-32.036571 77.677714t-77.677714 32.036571-77.677714-32.036571-32.036571-77.677714 32.036571-77.677714 77.677714-32.036571 77.677714 32.036571 32.036571 77.677714zM950.857143 548.571429l0 256-804.571429 0 0-109.714286 182.857143-182.857143 91.428571 91.428571 292.571429-292.571429zM1005.714286 146.285714l-914.285714 0q-7.460571 0-12.873143 5.412571t-5.412571 12.873143l0 694.857143q0 7.460571 5.412571 12.873143t12.873143 5.412571l914.285714 0q7.460571 0 12.873143-5.412571t5.412571-12.873143l0-694.857143q0-7.460571-5.412571-12.873143t-12.873143-5.412571zM1097.142857 164.571429l0 694.857143q0 37.741714-26.843429 64.585143t-64.585143 26.843429l-914.285714 0q-37.741714 0-64.585143-26.843429t-26.843429-64.585143l0-694.857143q0-37.741714 26.843429-64.585143t64.585143-26.843429l914.285714 0q37.741714 0 64.585143 26.843429t26.843429 64.585143z",className:"".concat(l,"-image-path")}))))};return o.createElement(d.C,null,t)};function b(e){return e&&"object"===(0,c.Z)(e)?e:{}}var C=function(e){var t=function(t){var n=t.getPrefixCls,c=t.direction,l=e.prefixCls,s=e.loading,d=e.className,m=e.style,p=e.children,y=e.avatar,E=e.title,g=e.paragraph,h=e.active,x=e.round,Z=n("skeleton",l);if(s||!("loading"in e)){var C,N,w,O=!!y,P=!!E,k=!!g;if(O){var j=(0,r.Z)((0,r.Z)({prefixCls:"".concat(Z,"-avatar")},function(e,t){return e&&!t?{size:"large",shape:"square"}:{size:"large",shape:"circle"}}(P,k)),b(y));N=o.createElement("div",{className:"".concat(Z,"-header")},o.createElement(v,j))}if(P||k){var S,T;if(P){var M=(0,r.Z)((0,r.Z)({prefixCls:"".concat(Z,"-title")},function(e,t){return!e&&t?{width:"38%"}:e&&t?{width:"50%"}:{}}(O,k)),b(E));S=o.createElement(u,M)}if(k){var I=(0,r.Z)((0,r.Z)({prefixCls:"".concat(Z,"-paragraph")},function(e,t){var n={};return e&&t||(n.width="61%"),n.rows=!e&&t?3:2,n}(O,P)),b(g));T=o.createElement(f,I)}w=o.createElement("div",{className:"".concat(Z,"-content")},S,T)}var z=i()(Z,(C={},(0,a.Z)(C,"".concat(Z,"-with-avatar"),O),(0,a.Z)(C,"".concat(Z,"-active"),h),(0,a.Z)(C,"".concat(Z,"-rtl"),"rtl"===c),(0,a.Z)(C,"".concat(Z,"-round"),x),C),d);return o.createElement("div",{className:z,style:m},N,w)}return p};return o.createElement(d.C,null,t)};C.defaultProps={avatar:!1,title:!0,paragraph:!0},C.Button=g,C.Avatar=y,C.Input=x,C.Image=Z;var N=C},74763:function(e,t,n){"use strict";n.d(t,{Z:function(){return j}});var a=n(4942),r=n(87462),c=n(67294),o=n(94184),l=n.n(o),i=n(59844),u=n(41080),s=n(11726),f=n.n(s),d=function(e){var t,n=e.value,a=e.formatter,r=e.precision,o=e.decimalSeparator,l=e.groupSeparator,i=void 0===l?"":l,u=e.prefixCls;if("function"===typeof a)t=a(n);else{var s=String(n),d=s.match(/^(-?)(\d*)(\.(\d+))?$/);if(d&&"-"!==s){var v=d[1],m=d[2]||"0",p=d[4]||"";m=m.replace(/\B(?=(\d{3})+(?!\d))/g,i),"number"===typeof r&&(p=f()(p,r,"0").slice(0,r)),p&&(p="".concat(o).concat(p)),t=[c.createElement("span",{key:"int",className:"".concat(u,"-content-value-int")},v,m),p&&c.createElement("span",{key:"decimal",className:"".concat(u,"-content-value-decimal")},p)]}else t=s}return c.createElement("span",{className:"".concat(u,"-content-value")},t)},v=function(e){var t=e.prefixCls,n=e.className,o=e.style,i=e.valueStyle,s=e.value,f=void 0===s?0:s,v=e.title,m=e.valueRender,p=e.prefix,y=e.suffix,E=e.loading,g=e.direction,h=e.onMouseEnter,x=e.onMouseLeave,Z=c.createElement(d,(0,r.Z)({},e,{value:f})),b=l()(t,(0,a.Z)({},"".concat(t,"-rtl"),"rtl"===g),n);return c.createElement("div",{className:b,style:o,onMouseEnter:h,onMouseLeave:x},v&&c.createElement("div",{className:"".concat(t,"-title")},v),c.createElement(u.Z,{paragraph:!1,loading:E},c.createElement("div",{style:i,className:"".concat(t,"-content")},p&&c.createElement("span",{className:"".concat(t,"-content-prefix")},p),m?m(Z):Z,y&&c.createElement("span",{className:"".concat(t,"-content-suffix")},y))))};v.defaultProps={decimalSeparator:".",groupSeparator:",",loading:!1};var m=(0,i.PG)({prefixCls:"statistic"})(v),p=n(15671),y=n(43144),E=n(60136),g=n(3289),h=n(97685),x=n(32475),Z=n.n(x),b=[["Y",31536e6],["M",2592e6],["D",864e5],["H",36e5],["m",6e4],["s",1e3],["S",1]];function C(e,t){var n=t.format,a=void 0===n?"":n,r=new Date(e).getTime(),c=Date.now();return function(e,t){var n=e,a=/\[[^\]]*]/g,r=(t.match(a)||[]).map((function(e){return e.slice(1,-1)})),c=t.replace(a,"[]"),o=b.reduce((function(e,t){var a=(0,h.Z)(t,2),r=a[0],c=a[1];if(-1!==e.indexOf(r)){var o=Math.floor(n/c);return n-=o*c,e.replace(new RegExp("".concat(r,"+"),"g"),(function(e){var t=e.length;return Z()(o.toString(),t,"0")}))}return e}),c),l=0;return o.replace(a,(function(){var e=r[l];return l+=1,e}))}(Math.max(r-c,0),a)}var N=n(96159),w=1e3/30;function O(e){return new Date(e).getTime()}var P=function(e){(0,E.Z)(n,e);var t=(0,g.Z)(n);function n(){var e;return(0,p.Z)(this,n),(e=t.apply(this,arguments)).syncTimer=function(){O(e.props.value)>=Date.now()?e.startTimer():e.stopTimer()},e.startTimer=function(){if(!e.countdownId){var t=e.props,n=t.onChange,a=O(t.value);e.countdownId=window.setInterval((function(){e.forceUpdate(),n&&a>Date.now()&&n(a-Date.now())}),w)}},e.stopTimer=function(){var t=e.props,n=t.onFinish,a=t.value;if(e.countdownId){clearInterval(e.countdownId),e.countdownId=void 0;var r=O(a);n&&r<Date.now()&&n()}},e.formatCountdown=function(t,n){var a=e.props.format;return C(t,(0,r.Z)((0,r.Z)({},n),{format:a}))},e.valueRender=function(e){return(0,N.Tm)(e,{title:void 0})},e}return(0,y.Z)(n,[{key:"componentDidMount",value:function(){this.syncTimer()}},{key:"componentDidUpdate",value:function(){this.syncTimer()}},{key:"componentWillUnmount",value:function(){this.stopTimer()}},{key:"render",value:function(){return c.createElement(m,(0,r.Z)({valueRender:this.valueRender},this.props,{formatter:this.formatCountdown}))}}]),n}(c.Component);P.defaultProps={format:"HH:mm:ss"};var k=P;m.Countdown=k;var j=m},29932:function(e){e.exports=function(e,t){for(var n=-1,a=null==e?0:e.length,r=Array(a);++n<a;)r[n]=t(e[n],n,e);return r}},48983:function(e,t,n){var a=n(40371)("length");e.exports=a},44286:function(e){e.exports=function(e){return e.split("")}},40371:function(e){e.exports=function(e){return function(t){return null==t?void 0:t[e]}}},18190:function(e){var t=Math.floor;e.exports=function(e,n){var a="";if(!e||n<1||n>9007199254740991)return a;do{n%2&&(a+=e),(n=t(n/2))&&(e+=e)}while(n);return a}},14259:function(e){e.exports=function(e,t,n){var a=-1,r=e.length;t<0&&(t=-t>r?0:r+t),(n=n>r?r:n)<0&&(n+=r),r=t>n?0:n-t>>>0,t>>>=0;for(var c=Array(r);++a<r;)c[a]=e[a+t];return c}},80531:function(e,t,n){var a=n(62705),r=n(29932),c=n(1469),o=n(33448),l=a?a.prototype:void 0,i=l?l.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(c(t))return r(t,e)+"";if(o(t))return i?i.call(t):"";var n=t+"";return"0"==n&&1/t==-Infinity?"-0":n}},40180:function(e,t,n){var a=n(14259);e.exports=function(e,t,n){var r=e.length;return n=void 0===n?r:n,!t&&n>=r?e:a(e,t,n)}},78302:function(e,t,n){var a=n(18190),r=n(80531),c=n(40180),o=n(62689),l=n(88016),i=n(83140),u=Math.ceil;e.exports=function(e,t){var n=(t=void 0===t?" ":r(t)).length;if(n<2)return n?a(t,e):t;var s=a(t,u(e/l(t)));return o(t)?c(i(s),0,e).join(""):s.slice(0,e)}},62689:function(e){var t=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");e.exports=function(e){return t.test(e)}},88016:function(e,t,n){var a=n(48983),r=n(62689),c=n(21903);e.exports=function(e){return r(e)?c(e):a(e)}},83140:function(e,t,n){var a=n(44286),r=n(62689),c=n(676);e.exports=function(e){return r(e)?c(e):a(e)}},21903:function(e){var t="[\\ud800-\\udfff]",n="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",a="\\ud83c[\\udffb-\\udfff]",r="[^\\ud800-\\udfff]",c="(?:\\ud83c[\\udde6-\\uddff]){2}",o="[\\ud800-\\udbff][\\udc00-\\udfff]",l="(?:"+n+"|"+a+")"+"?",i="[\\ufe0e\\ufe0f]?",u=i+l+("(?:\\u200d(?:"+[r,c,o].join("|")+")"+i+l+")*"),s="(?:"+[r+n+"?",n,c,o,t].join("|")+")",f=RegExp(a+"(?="+a+")|"+s+u,"g");e.exports=function(e){for(var t=f.lastIndex=0;f.test(e);)++t;return t}},676:function(e){var t="[\\ud800-\\udfff]",n="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",a="\\ud83c[\\udffb-\\udfff]",r="[^\\ud800-\\udfff]",c="(?:\\ud83c[\\udde6-\\uddff]){2}",o="[\\ud800-\\udbff][\\udc00-\\udfff]",l="(?:"+n+"|"+a+")"+"?",i="[\\ufe0e\\ufe0f]?",u=i+l+("(?:\\u200d(?:"+[r,c,o].join("|")+")"+i+l+")*"),s="(?:"+[r+n+"?",n,c,o,t].join("|")+")",f=RegExp(a+"(?="+a+")|"+s+u,"g");e.exports=function(e){return e.match(f)||[]}},11726:function(e,t,n){var a=n(78302),r=n(88016),c=n(40554),o=n(79833);e.exports=function(e,t,n){e=o(e);var l=(t=c(t))?r(e):0;return t&&l<t?e+a(t-l,n):e}},32475:function(e,t,n){var a=n(78302),r=n(88016),c=n(40554),o=n(79833);e.exports=function(e,t,n){e=o(e);var l=(t=c(t))?r(e):0;return t&&l<t?a(t-l,n)+e:e}},18601:function(e,t,n){var a=n(14841),r=1/0;e.exports=function(e){return e?(e=a(e))===r||e===-1/0?17976931348623157e292*(e<0?-1:1):e===e?e:0:0===e?e:0}},40554:function(e,t,n){var a=n(18601);e.exports=function(e){var t=a(e),n=t%1;return t===t?n?t-n:t:0}},79833:function(e,t,n){var a=n(80531);e.exports=function(e){return null==e?"":a(e)}}}]); \ No newline at end of file
diff --git a/static/admin/_next/static/chunks/132-69ec1de6a8e27de6.js b/static/admin/_next/static/chunks/132-69ec1de6a8e27de6.js
new file mode 100644
index 000000000..1e24e2135
--- /dev/null
+++ b/static/admin/_next/static/chunks/132-69ec1de6a8e27de6.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[132],{85368:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm193.5 301.7l-210.6 292a31.8 31.8 0 01-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.5 12.7z"}}]},name:"check-circle",theme:"filled"}},16976:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M699 353h-46.9c-10.2 0-19.9 4.9-25.9 13.3L469 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H325c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8a31.8 31.8 0 0051.7 0l210.6-292c3.9-5.3.1-12.7-6.4-12.7z"}},{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}}]},name:"check-circle",theme:"outlined"}},25330:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 00-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z"}}]},name:"check",theme:"outlined"}},67303:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"}}]},name:"close-circle",theme:"filled"}},77384:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M685.4 354.8c0-4.4-3.6-8-8-8l-66 .3L512 465.6l-99.3-118.4-66.1-.3c-4.4 0-8 3.5-8 8 0 1.9.7 3.7 1.9 5.2l130.1 155L340.5 670a8.32 8.32 0 00-1.9 5.2c0 4.4 3.6 8 8 8l66.1-.3L512 564.4l99.3 118.4 66 .3c4.4 0 8-3.5 8-8 0-1.9-.7-3.7-1.9-5.2L553.5 515l130.1-155c1.2-1.4 1.8-3.3 1.8-5.2z"}},{tag:"path",attrs:{d:"M512 65C264.6 65 64 265.6 64 513s200.6 448 448 448 448-200.6 448-448S759.4 65 512 65zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}}]},name:"close-circle",theme:"outlined"}},79203:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M563.8 512l262.5-312.9c4.4-5.2.7-13.1-6.1-13.1h-79.8c-4.7 0-9.2 2.1-12.3 5.7L511.6 449.8 295.1 191.7c-3-3.6-7.5-5.7-12.3-5.7H203c-6.8 0-10.5 7.9-6.1 13.1L459.4 512 196.9 824.9A7.95 7.95 0 00203 838h79.8c4.7 0 9.2-2.1 12.3-5.7l216.5-258.1 216.5 258.1c3 3.6 7.5 5.7 12.3 5.7h79.8c6.8 0 10.5-7.9 6.1-13.1L563.8 512z"}}]},name:"close",theme:"outlined"}},83647:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z"}}]},name:"copy",theme:"outlined"}},57583:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z"}}]},name:"edit",theme:"outlined"}},29260:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M864 170h-60c-4.4 0-8 3.6-8 8v518H310v-73c0-6.7-7.8-10.5-13-6.3l-141.9 112a8 8 0 000 12.6l141.9 112c5.3 4.2 13 .4 13-6.3v-75h498c35.3 0 64-28.7 64-64V178c0-4.4-3.6-8-8-8z"}}]},name:"enter",theme:"outlined"}},78515:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-32 232c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V296zm32 440a48.01 48.01 0 010-96 48.01 48.01 0 010 96z"}}]},name:"exclamation-circle",theme:"filled"}},34950:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}},{tag:"path",attrs:{d:"M464 688a48 48 0 1096 0 48 48 0 10-96 0zm24-112h48c4.4 0 8-3.6 8-8V296c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8z"}}]},name:"exclamation-circle",theme:"outlined"}},15369:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm32 664c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V456c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272zm-32-344a48.01 48.01 0 010-96 48.01 48.01 0 010 96z"}}]},name:"info-circle",theme:"filled"}},20702:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}},{tag:"path",attrs:{d:"M464 336a48 48 0 1096 0 48 48 0 10-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z"}}]},name:"info-circle",theme:"outlined"}},25828:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={icon:{tag:"svg",attrs:{viewBox:"0 0 1024 1024",focusable:"false"},children:[{tag:"path",attrs:{d:"M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 00-94.3-139.9 437.71 437.71 0 00-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.3C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3.1 19.9-16 36-35.9 36z"}}]},name:"loading",theme:"outlined"}},37431:function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=(r=n(95183))&&r.__esModule?r:{default:r};t.default=a,e.exports=a},67996:function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=(r=n(48138))&&r.__esModule?r:{default:r};t.default=a,e.exports=a},71961:function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=(r=n(79686))&&r.__esModule?r:{default:r};t.default=a,e.exports=a},42547:function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=(r=n(86266))&&r.__esModule?r:{default:r};t.default=a,e.exports=a},74337:function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=(r=n(92018))&&r.__esModule?r:{default:r};t.default=a,e.exports=a},40753:function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=(r=n(83482))&&r.__esModule?r:{default:r};t.default=a,e.exports=a},69427:function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=(r=n(52655))&&r.__esModule?r:{default:r};t.default=a,e.exports=a},10775:function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=(r=n(58452))&&r.__esModule?r:{default:r};t.default=a,e.exports=a},39398:function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=(r=n(73764))&&r.__esModule?r:{default:r};t.default=a,e.exports=a},42461:function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=(r=n(77998))&&r.__esModule?r:{default:r};t.default=a,e.exports=a},67039:function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=(r=n(3855))&&r.__esModule?r:{default:r};t.default=a,e.exports=a},94354:function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=(r=n(46564))&&r.__esModule?r:{default:r};t.default=a,e.exports=a},93201:function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=(r=n(34106))&&r.__esModule?r:{default:r};t.default=a,e.exports=a},628:function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=(r=n(4851))&&r.__esModule?r:{default:r};t.default=a,e.exports=a},99906:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(1413),a=n(67294),o={icon:function(e,t){return{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M148.2 674.6zm106.7-92.3c-25 25-38.7 58.1-38.7 93.4s13.8 68.5 38.7 93.4c25 25 58.1 38.7 93.4 38.7 35.3 0 68.5-13.8 93.4-38.7l59.4-59.4-186.8-186.8-59.4 59.4zm420.8-366.1c-35.3 0-68.5 13.8-93.4 38.7l-59.4 59.4 186.8 186.8 59.4-59.4c24.9-25 38.7-58.1 38.7-93.4s-13.8-68.5-38.7-93.4c-25-25-58.1-38.7-93.4-38.7z",fill:t}},{tag:"path",attrs:{d:"M578.9 546.7a8.03 8.03 0 00-11.3 0L501 613.3 410.7 523l66.7-66.7c3.1-3.1 3.1-8.2 0-11.3L441 408.6a8.03 8.03 0 00-11.3 0L363 475.3l-43-43a7.85 7.85 0 00-5.7-2.3c-2 0-4.1.8-5.7 2.3L206.8 534.2a199.45 199.45 0 00-58.6 140.4c-.2 39.5 11.2 79.1 34.3 113.1l-76.1 76.1a8.03 8.03 0 000 11.3l42.4 42.4c1.6 1.6 3.6 2.3 5.7 2.3s4.1-.8 5.7-2.3l76.1-76.1c33.7 22.9 72.9 34.3 112.1 34.3 51.2 0 102.4-19.5 141.5-58.6l101.9-101.9c3.1-3.1 3.1-8.2 0-11.3l-43-43 66.7-66.7c3.1-3.1 3.1-8.2 0-11.3l-36.6-36.2zM441.7 769.1a131.32 131.32 0 01-93.4 38.7c-35.3 0-68.4-13.7-93.4-38.7-24.9-24.9-38.7-58.1-38.7-93.4s13.7-68.4 38.7-93.4l59.4-59.4 186.8 186.8-59.4 59.4zm476-620.3l-42.4-42.4c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-76.1 76.1a199.27 199.27 0 00-112.1-34.3c-51.2 0-102.4 19.5-141.5 58.6L432.3 308.7a8.03 8.03 0 000 11.3L704 591.7c1.6 1.6 3.6 2.3 5.7 2.3 2 0 4.1-.8 5.7-2.3l101.9-101.9c68.9-69 77-175.7 24.3-253.5l76.1-76.1c3.1-3.2 3.1-8.3 0-11.4zM769.1 441.7l-59.4 59.4-186.8-186.8 59.4-59.4c24.9-24.9 58.1-38.7 93.4-38.7s68.4 13.7 93.4 38.7c24.9 24.9 38.7 58.1 38.7 93.4s-13.8 68.4-38.7 93.4z",fill:e}}]}},name:"api",theme:"twotone"},l=n(42135),i=function(e,t){return a.createElement(l.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:t,icon:o}))};i.displayName="ApiTwoTone";var c=a.forwardRef(i)},80869:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(1413),a=n(67294),o={icon:function(e,t){return{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M308 412v268c0 36.78 9.68 71.96 27.8 102.9a205.39 205.39 0 0073.3 73.3A202.68 202.68 0 00512 884c36.78 0 71.96-9.68 102.9-27.8a205.39 205.39 0 0073.3-73.3A202.68 202.68 0 00716 680V412H308zm484 172v96c0 6.5-.22 12.95-.66 19.35C859.94 728.64 908 796.7 908 876a8 8 0 01-8 8h-56a8 8 0 01-8-8c0-44.24-23.94-82.89-59.57-103.7a278.63 278.63 0 01-22.66 49.02 281.39 281.39 0 01-100.45 100.45C611.84 946.07 563.55 960 512 960s-99.84-13.93-141.32-38.23a281.39 281.39 0 01-100.45-100.45 278.63 278.63 0 01-22.66-49.02A119.95 119.95 0 00188 876a8 8 0 01-8 8h-56a8 8 0 01-8-8c0-79.3 48.07-147.36 116.66-176.65A284.12 284.12 0 01232 680v-96H84a8 8 0 01-8-8v-56a8 8 0 018-8h148V412c-76.77 0-139-62.23-139-139a8 8 0 018-8h60a8 8 0 018 8 63 63 0 0063 63h560a63 63 0 0063-63 8 8 0 018-8h60a8 8 0 018 8c0 76.77-62.23 139-139 139v100h148a8 8 0 018 8v56a8 8 0 01-8 8H792zM368 272a8 8 0 01-8 8h-56a8 8 0 01-8-8c0-40.04 8.78-76.75 25.9-108.07a184.57 184.57 0 0174.03-74.03C427.25 72.78 463.96 64 504 64h16c40.04 0 76.75 8.78 108.07 25.9a184.57 184.57 0 0174.03 74.03C719.22 195.25 728 231.96 728 272a8 8 0 01-8 8h-56a8 8 0 01-8-8c0-28.33-5.94-53.15-17.08-73.53a112.56 112.56 0 00-45.39-45.4C573.15 141.95 548.33 136 520 136h-16c-28.33 0-53.15 5.94-73.53 17.08a112.56 112.56 0 00-45.4 45.39C373.95 218.85 368 243.67 368 272z",fill:e}},{tag:"path",attrs:{d:"M308 412v268c0 36.78 9.68 71.96 27.8 102.9a205.39 205.39 0 0073.3 73.3A202.68 202.68 0 00512 884c36.78 0 71.96-9.68 102.9-27.8a205.39 205.39 0 0073.3-73.3A202.68 202.68 0 00716 680V412H308z",fill:t}}]}},name:"bug",theme:"twotone"},l=n(42135),i=function(e,t){return a.createElement(l.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:t,icon:o}))};i.displayName="BugTwoTone";var c=a.forwardRef(i)},38958:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(1413),a=n(67294),o={icon:function(e,t){return{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M864 320H677.2l-17.1-47.8-22.9-64.2H386.7l-22.9 64.2-17.1 47.8H160c-4.4 0-8 3.6-8 8v456c0 4.4 3.6 8 8 8h704c4.4 0 8-3.6 8-8V328c0-4.4-3.6-8-8-8zM512 704c-88.4 0-160-71.6-160-160s71.6-160 160-160 160 71.6 160 160-71.6 160-160 160z",fill:t}},{tag:"path",attrs:{d:"M512 384c-88.4 0-160 71.6-160 160s71.6 160 160 160 160-71.6 160-160-71.6-160-160-160zm0 256c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z",fill:e}},{tag:"path",attrs:{d:"M864 248H728l-32.4-90.8a32.07 32.07 0 00-30.2-21.2H358.6c-13.5 0-25.6 8.5-30.1 21.2L296 248H160c-44.2 0-80 35.8-80 80v456c0 44.2 35.8 80 80 80h704c44.2 0 80-35.8 80-80V328c0-44.2-35.8-80-80-80zm8 536c0 4.4-3.6 8-8 8H160c-4.4 0-8-3.6-8-8V328c0-4.4 3.6-8 8-8h186.7l17.1-47.8 22.9-64.2h250.5l22.9 64.2 17.1 47.8H864c4.4 0 8 3.6 8 8v456z",fill:e}}]}},name:"camera",theme:"twotone"},l=n(42135),i=function(e,t){return a.createElement(l.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:t,icon:o}))};i.displayName="CameraTwoTone";var c=a.forwardRef(i)},30925:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(1413),a=n(67294),o={icon:function(e,t){return{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M232 616h560V408H232v208zm112-144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zM232 888h560V680H232v208zm112-144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zM232 344h560V136H232v208zm112-144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z",fill:t}},{tag:"path",attrs:{d:"M304 512a40 40 0 1080 0 40 40 0 10-80 0zm0 272a40 40 0 1080 0 40 40 0 10-80 0zm0-544a40 40 0 1080 0 40 40 0 10-80 0z",fill:e}},{tag:"path",attrs:{d:"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-40 824H232V680h560v208zm0-272H232V408h560v208zm0-272H232V136h560v208z",fill:e}}]}},name:"database",theme:"twotone"},l=n(42135),i=function(e,t){return a.createElement(l.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:t,icon:o}))};i.displayName="DatabaseTwoTone";var c=a.forwardRef(i)},65987:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(1413),a=n(67294),o={icon:function(e,t){return{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M761.1 288.3L687.8 215 325.1 577.6l-15.6 89 88.9-15.7z",fill:t}},{tag:"path",attrs:{d:"M880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32zm-622.3-84c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89z",fill:e}}]}},name:"edit",theme:"twotone"},l=n(42135),i=function(e,t){return a.createElement(l.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:t,icon:o}))};i.displayName="EditTwoTone";var c=a.forwardRef(i)},17502:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(1413),a=n(67294),o={icon:function(e,t){return{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M145 96l66 746.6L511.8 928l299.6-85.4L878.7 96H145zm610.9 700.6l-244.1 69.6-245.2-69.6-56.7-641.2h603.8l-57.8 641.2z",fill:e}},{tag:"path",attrs:{d:"M209.9 155.4l56.7 641.2 245.2 69.6 244.1-69.6 57.8-641.2H209.9zm530.4 117.9l-4.8 47.2-1.7 19.5H381.7l8.2 94.2H511v-.2h214.7l-3.2 24.3-21.2 242.2-1.7 16.3-187.7 51.7v.4h-1.7l-188.6-52-11.3-144.7h91l6.5 73.2 102.4 27.7h.8v-.2l102.4-27.7 11.4-118.5H511.9v.1H305.4l-22.7-253.5L281 249h461l-1.7 24.3z",fill:t}},{tag:"path",attrs:{d:"M281 249l1.7 24.3 22.7 253.5h206.5v-.1h112.9l-11.4 118.5L511 672.9v.2h-.8l-102.4-27.7-6.5-73.2h-91l11.3 144.7 188.6 52h1.7v-.4l187.7-51.7 1.7-16.3 21.2-242.2 3.2-24.3H511v.2H389.9l-8.2-94.2h352.1l1.7-19.5 4.8-47.2L742 249H511z",fill:e}}]}},name:"html5",theme:"twotone"},l=n(42135),i=function(e,t){return a.createElement(l.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:t,icon:o}))};i.displayName="Html5TwoTone";var c=a.forwardRef(i)},29158:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(1413),a=n(67294),o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z"}}]},name:"link",theme:"outlined"},l=n(42135),i=function(e,t){return a.createElement(l.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:t,icon:o}))};i.displayName="LinkOutlined";var c=a.forwardRef(i)},43439:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(1413),a=n(67294),o={icon:function(e,t){return{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z",fill:e}},{tag:"path",attrs:{d:"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm0 632c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm62.9-219.5a48.3 48.3 0 00-30.9 44.8V620c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-21.5c0-23.1 6.7-45.9 19.9-64.9 12.9-18.6 30.9-32.8 52.1-40.9 34-13.1 56-41.6 56-72.7 0-44.1-43.1-80-96-80s-96 35.9-96 80v7.6c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V420c0-39.3 17.2-76 48.4-103.3C430.4 290.4 470 276 512 276s81.6 14.5 111.6 40.7C654.8 344 672 380.7 672 420c0 57.8-38.1 109.8-97.1 132.5z",fill:t}},{tag:"path",attrs:{d:"M472 732a40 40 0 1080 0 40 40 0 10-80 0zm151.6-415.3C593.6 290.5 554 276 512 276s-81.6 14.4-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.2 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5 0-39.3-17.2-76-48.4-103.3z",fill:e}}]}},name:"question-circle",theme:"twotone"},l=n(42135),i=function(e,t){return a.createElement(l.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:t,icon:o}))};i.displayName="QuestionCircleTwoTone";var c=a.forwardRef(i)},90543:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(1413),a=n(67294),o={icon:function(e,t){return{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M859.3 569.7l.2.1c3.1-18.9 4.6-38.2 4.6-57.3 0-17.1-1.3-34.3-3.7-51.1 2.4 16.7 3.6 33.6 3.6 50.5 0 19.4-1.6 38.8-4.7 57.8zM99 398.1c-.5-.4-.9-.8-1.4-1.3.7.7 1.4 1.4 2.2 2.1l65.5 55.9v-.1L99 398.1zm536.6-216h.1l-15.5-83.8c-.2-1-.4-1.9-.7-2.8.1.5.3 1.1.4 1.6l15.7 85zm54 546.5l31.4-25.8 92.8 32.9c17-22.9 31.3-47.5 42.6-73.6l-74.7-63.9 6.6-40.1c2.5-15.1 3.8-30.6 3.8-46.1s-1.3-31-3.8-46.1l-6.5-39.9 74.7-63.9c-11.4-26-25.6-50.7-42.6-73.6l-92.8 32.9-31.4-25.8c-23.9-19.6-50.6-35-79.3-45.8l-38.1-14.3-17.9-97a377.5 377.5 0 00-85 0l-17.9 97.2-37.9 14.3c-28.5 10.8-55 26.2-78.7 45.7l-31.4 25.9-93.4-33.2c-17 22.9-31.3 47.5-42.6 73.6l75.5 64.5-6.5 40c-2.5 14.9-3.7 30.2-3.7 45.5 0 15.2 1.3 30.6 3.7 45.5l6.5 40-75.5 64.5c11.4 26 25.6 50.7 42.6 73.6l93.4-33.2 31.4 25.9c23.7 19.5 50.2 34.9 78.7 45.7l37.8 14.5 17.9 97.2c28.2 3.2 56.9 3.2 85 0l17.9-97 38.1-14.3c28.8-10.8 55.4-26.2 79.3-45.8zm-177.1-50.3c-30.5 0-59.2-7.8-84.3-21.5C373.3 627 336 568.9 336 502c0-97.2 78.8-176 176-176 66.9 0 125 37.3 154.8 92.2 13.7 25 21.5 53.7 21.5 84.3 0 97.1-78.7 175.8-175.8 175.8zM207.2 812.8c-5.5 1.9-11.2 2.3-16.6 1.2 5.7 1.2 11.7 1 17.5-1l81.4-29c-.1-.1-.3-.2-.4-.3l-81.9 29.1zm717.6-414.7l-65.5 56c0 .2.1.5.1.7l65.4-55.9c7.1-6.1 11.1-14.9 11.2-24-.3 8.8-4.3 17.3-11.2 23.2z",fill:t}},{tag:"path",attrs:{d:"M935.8 646.6c.5 4.7 0 9.5-1.7 14.1l-.9 2.6a446.02 446.02 0 01-79.7 137.9l-1.8 2.1a32 32 0 01-35.1 9.5l-81.3-28.9a350 350 0 01-99.7 57.6l-15.7 85a32.05 32.05 0 01-25.8 25.7l-2.7.5a445.2 445.2 0 01-79.2 7.1h.3c26.7 0 53.4-2.4 79.4-7.1l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-84.9c36.2-13.6 69.6-32.9 99.6-57.5l81.2 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.5-87.4 79.6-137.7l.9-2.6c1.6-4.7 2.1-9.7 1.5-14.5z",fill:t}},{tag:"path",attrs:{d:"M688 502c0-30.3-7.7-58.9-21.2-83.8C637 363.3 578.9 326 512 326c-97.2 0-176 78.8-176 176 0 66.9 37.3 125 92.2 154.8 24.9 13.5 53.4 21.2 83.8 21.2 97.2 0 176-78.8 176-176zm-288 0c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502z",fill:e}},{tag:"path",attrs:{d:"M594.1 952.2a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c1.7-4.6 2.2-9.4 1.7-14.1-.9-7.9-4.7-15.4-11-20.9l-65.3-55.9-.2-.1c3.1-19 4.7-38.4 4.7-57.8 0-16.9-1.2-33.9-3.6-50.5-.3-2.2-.7-4.4-1-6.6 0-.2-.1-.5-.1-.7l65.5-56c6.9-5.9 10.9-14.4 11.2-23.2.1-4-.5-8.1-1.9-12l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.4-44-99.6-57.6h-.1l-15.7-85c-.1-.5-.2-1.1-.4-1.6a32.08 32.08 0 00-25.4-24.1l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6a32.09 32.09 0 007.9 33.9c.5.4.9.9 1.4 1.3l66.3 56.6v.1c-3.1 18.8-4.6 37.9-4.6 57 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1c4.9 5.7 11.4 9.4 18.5 10.7 5.4 1 11.1.7 16.6-1.2l81.9-29.1c.1.1.3.2.4.3 29.7 24.3 62.8 43.6 98.6 57.1l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5c26.1 4.7 52.8 7.1 79.5 7.1h.3c26.6 0 53.3-2.4 79.2-7.1l2.7-.5zm-39.8-66.5a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97z",fill:e}}]}},name:"setting",theme:"twotone"},l=n(42135),i=function(e,t){return a.createElement(l.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:t,icon:o}))};i.displayName="SettingTwoTone";var c=a.forwardRef(i)},99767:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(1413),a=n(67294),o={icon:function(e,t){return{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M180 292h80v440h-80zm369 180h-74a3 3 0 00-3 3v74a3 3 0 003 3h74a3 3 0 003-3v-74a3 3 0 00-3-3zm215-108h80v296h-80z",fill:t}},{tag:"path",attrs:{d:"M904 296h-66v-96c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v96h-66c-4.4 0-8 3.6-8 8v416c0 4.4 3.6 8 8 8h66v96c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-96h66c4.4 0 8-3.6 8-8V304c0-4.4-3.6-8-8-8zm-60 364h-80V364h80v296zM612 404h-66V232c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v172h-66c-4.4 0-8 3.6-8 8v200c0 4.4 3.6 8 8 8h66v172c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V620h66c4.4 0 8-3.6 8-8V412c0-4.4-3.6-8-8-8zm-60 145a3 3 0 01-3 3h-74a3 3 0 01-3-3v-74a3 3 0 013-3h74a3 3 0 013 3v74zM320 224h-66v-56c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v56h-66c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h66v56c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-56h66c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zm-60 508h-80V292h80v440z",fill:e}}]}},name:"sliders",theme:"twotone"},l=n(42135),i=function(e,t){return a.createElement(l.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:t,icon:o}))};i.displayName="SlidersTwoTone";var c=a.forwardRef(i)},92074:function(e,t,n){"use strict";var r=n(95318),a=n(20862);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(81109)),l=r(n(63038)),i=r(n(59713)),c=r(n(6479)),u=a(n(67294)),s=r(n(94184)),f=r(n(98399)),d=r(n(95160)),p=n(46768),v=n(72479),m=["className","icon","spin","rotate","tabIndex","onClick","twoToneColor"];(0,p.setTwoToneColor)("#1890ff");var h=u.forwardRef((function(e,t){var n,r=e.className,a=e.icon,p=e.spin,h=e.rotate,y=e.tabIndex,g=e.onClick,b=e.twoToneColor,M=(0,c.default)(e,m),E=u.useContext(f.default).prefixCls,C=void 0===E?"anticon":E,x=(0,s.default)(C,(n={},(0,i.default)(n,"".concat(C,"-").concat(a.name),!!a.name),(0,i.default)(n,"".concat(C,"-spin"),!!p||"loading"===a.name),n),r),O=y;void 0===O&&g&&(O=-1);var w=h?{msTransform:"rotate(".concat(h,"deg)"),transform:"rotate(".concat(h,"deg)")}:void 0,k=(0,v.normalizeTwoToneColors)(b),P=(0,l.default)(k,2),_=P[0],j=P[1];return u.createElement("span",(0,o.default)((0,o.default)({role:"img","aria-label":a.name},M),{},{ref:t,tabIndex:O,onClick:g,className:x}),u.createElement(d.default,{icon:a,primaryColor:_,secondaryColor:j,style:w}))}));h.displayName="AntdIcon",h.getTwoToneColor=p.getTwoToneColor,h.setTwoToneColor=p.setTwoToneColor;var y=h;t.default=y},98399:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=(0,n(67294).createContext)({});t.default=r},95160:function(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=r(n(6479)),o=r(n(81109)),l=n(72479),i=["icon","className","onClick","style","primaryColor","secondaryColor"],c={primaryColor:"#333",secondaryColor:"#E6E6E6",calculated:!1};var u=function(e){var t=e.icon,n=e.className,r=e.onClick,u=e.style,s=e.primaryColor,f=e.secondaryColor,d=(0,a.default)(e,i),p=c;if(s&&(p={primaryColor:s,secondaryColor:f||(0,l.getSecondaryColor)(s)}),(0,l.useInsertStyles)(),(0,l.warning)((0,l.isIconDefinition)(t),"icon should be icon definiton, but got ".concat(t)),!(0,l.isIconDefinition)(t))return null;var v=t;return v&&"function"===typeof v.icon&&(v=(0,o.default)((0,o.default)({},v),{},{icon:v.icon(p.primaryColor,p.secondaryColor)})),(0,l.generate)(v.icon,"svg-".concat(v.name),(0,o.default)({className:n,onClick:r,style:u,"data-icon":v.name,width:"1em",height:"1em",fill:"currentColor","aria-hidden":"true"},d))};u.displayName="IconReact",u.getTwoToneColors=function(){return(0,o.default)({},c)},u.setTwoToneColors=function(e){var t=e.primaryColor,n=e.secondaryColor;c.primaryColor=t,c.secondaryColor=n||(0,l.getSecondaryColor)(t),c.calculated=!!n};var s=u;t.default=s},46768:function(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.setTwoToneColor=function(e){var t=(0,l.normalizeTwoToneColors)(e),n=(0,a.default)(t,2),r=n[0],i=n[1];return o.default.setTwoToneColors({primaryColor:r,secondaryColor:i})},t.getTwoToneColor=function(){var e=o.default.getTwoToneColors();if(!e.calculated)return e.primaryColor;return[e.primaryColor,e.secondaryColor]};var a=r(n(63038)),o=r(n(95160)),l=n(72479)},95183:function(e,t,n){"use strict";var r=n(20862),a=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=a(n(81109)),l=r(n(67294)),i=a(n(85368)),c=a(n(92074)),u=function(e,t){return l.createElement(c.default,(0,o.default)((0,o.default)({},e),{},{ref:t,icon:i.default}))};u.displayName="CheckCircleFilled";var s=l.forwardRef(u);t.default=s},48138:function(e,t,n){"use strict";var r=n(20862),a=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=a(n(81109)),l=r(n(67294)),i=a(n(16976)),c=a(n(92074)),u=function(e,t){return l.createElement(c.default,(0,o.default)((0,o.default)({},e),{},{ref:t,icon:i.default}))};u.displayName="CheckCircleOutlined";var s=l.forwardRef(u);t.default=s},79686:function(e,t,n){"use strict";var r=n(20862),a=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=a(n(81109)),l=r(n(67294)),i=a(n(25330)),c=a(n(92074)),u=function(e,t){return l.createElement(c.default,(0,o.default)((0,o.default)({},e),{},{ref:t,icon:i.default}))};u.displayName="CheckOutlined";var s=l.forwardRef(u);t.default=s},86266:function(e,t,n){"use strict";var r=n(20862),a=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=a(n(81109)),l=r(n(67294)),i=a(n(67303)),c=a(n(92074)),u=function(e,t){return l.createElement(c.default,(0,o.default)((0,o.default)({},e),{},{ref:t,icon:i.default}))};u.displayName="CloseCircleFilled";var s=l.forwardRef(u);t.default=s},92018:function(e,t,n){"use strict";var r=n(20862),a=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=a(n(81109)),l=r(n(67294)),i=a(n(77384)),c=a(n(92074)),u=function(e,t){return l.createElement(c.default,(0,o.default)((0,o.default)({},e),{},{ref:t,icon:i.default}))};u.displayName="CloseCircleOutlined";var s=l.forwardRef(u);t.default=s},83482:function(e,t,n){"use strict";var r=n(20862),a=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=a(n(81109)),l=r(n(67294)),i=a(n(79203)),c=a(n(92074)),u=function(e,t){return l.createElement(c.default,(0,o.default)((0,o.default)({},e),{},{ref:t,icon:i.default}))};u.displayName="CloseOutlined";var s=l.forwardRef(u);t.default=s},52655:function(e,t,n){"use strict";var r=n(20862),a=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=a(n(81109)),l=r(n(67294)),i=a(n(83647)),c=a(n(92074)),u=function(e,t){return l.createElement(c.default,(0,o.default)((0,o.default)({},e),{},{ref:t,icon:i.default}))};u.displayName="CopyOutlined";var s=l.forwardRef(u);t.default=s},58452:function(e,t,n){"use strict";var r=n(20862),a=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=a(n(81109)),l=r(n(67294)),i=a(n(57583)),c=a(n(92074)),u=function(e,t){return l.createElement(c.default,(0,o.default)((0,o.default)({},e),{},{ref:t,icon:i.default}))};u.displayName="EditOutlined";var s=l.forwardRef(u);t.default=s},73764:function(e,t,n){"use strict";var r=n(20862),a=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=a(n(81109)),l=r(n(67294)),i=a(n(29260)),c=a(n(92074)),u=function(e,t){return l.createElement(c.default,(0,o.default)((0,o.default)({},e),{},{ref:t,icon:i.default}))};u.displayName="EnterOutlined";var s=l.forwardRef(u);t.default=s},77998:function(e,t,n){"use strict";var r=n(20862),a=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=a(n(81109)),l=r(n(67294)),i=a(n(78515)),c=a(n(92074)),u=function(e,t){return l.createElement(c.default,(0,o.default)((0,o.default)({},e),{},{ref:t,icon:i.default}))};u.displayName="ExclamationCircleFilled";var s=l.forwardRef(u);t.default=s},3855:function(e,t,n){"use strict";var r=n(20862),a=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=a(n(81109)),l=r(n(67294)),i=a(n(34950)),c=a(n(92074)),u=function(e,t){return l.createElement(c.default,(0,o.default)((0,o.default)({},e),{},{ref:t,icon:i.default}))};u.displayName="ExclamationCircleOutlined";var s=l.forwardRef(u);t.default=s},46564:function(e,t,n){"use strict";var r=n(20862),a=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=a(n(81109)),l=r(n(67294)),i=a(n(15369)),c=a(n(92074)),u=function(e,t){return l.createElement(c.default,(0,o.default)((0,o.default)({},e),{},{ref:t,icon:i.default}))};u.displayName="InfoCircleFilled";var s=l.forwardRef(u);t.default=s},34106:function(e,t,n){"use strict";var r=n(20862),a=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=a(n(81109)),l=r(n(67294)),i=a(n(20702)),c=a(n(92074)),u=function(e,t){return l.createElement(c.default,(0,o.default)((0,o.default)({},e),{},{ref:t,icon:i.default}))};u.displayName="InfoCircleOutlined";var s=l.forwardRef(u);t.default=s},4851:function(e,t,n){"use strict";var r=n(20862),a=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=a(n(81109)),l=r(n(67294)),i=a(n(25828)),c=a(n(92074)),u=function(e,t){return l.createElement(c.default,(0,o.default)((0,o.default)({},e),{},{ref:t,icon:i.default}))};u.displayName="LoadingOutlined";var s=l.forwardRef(u);t.default=s},72479:function(e,t,n){"use strict";var r=n(20862),a=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.warning=function(e,t){(0,u.default)(e,"[@ant-design/icons] ".concat(t))},t.isIconDefinition=function(e){return"object"===(0,l.default)(e)&&"string"===typeof e.name&&"string"===typeof e.theme&&("object"===(0,l.default)(e.icon)||"function"===typeof e.icon)},t.normalizeAttrs=d,t.generate=function e(t,n,r){if(!r)return c.default.createElement(t.tag,(0,o.default)({key:n},d(t.attrs)),(t.children||[]).map((function(r,a){return e(r,"".concat(n,"-").concat(t.tag,"-").concat(a))})));return c.default.createElement(t.tag,(0,o.default)((0,o.default)({key:n},d(t.attrs)),r),(t.children||[]).map((function(r,a){return e(r,"".concat(n,"-").concat(t.tag,"-").concat(a))})))},t.getSecondaryColor=function(e){return(0,i.generate)(e)[0]},t.normalizeTwoToneColors=function(e){if(!e)return[];return Array.isArray(e)?e:[e]},t.useInsertStyles=t.iconStyles=t.svgBaseProps=void 0;var o=a(n(81109)),l=a(n(50008)),i=n(92138),c=r(n(67294)),u=a(n(45520)),s=n(93399),f=a(n(98399));function d(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Object.keys(e).reduce((function(t,n){var r=e[n];switch(n){case"class":t.className=r,delete t.class;break;default:t[n]=r}return t}),{})}t.svgBaseProps={width:"1em",height:"1em",fill:"currentColor","aria-hidden":"true",focusable:"false"};var p="\n.anticon {\n display: inline-block;\n color: inherit;\n font-style: normal;\n line-height: 0;\n text-align: center;\n text-transform: none;\n vertical-align: -0.125em;\n text-rendering: optimizeLegibility;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.anticon > * {\n line-height: 1;\n}\n\n.anticon svg {\n display: inline-block;\n}\n\n.anticon::before {\n display: none;\n}\n\n.anticon .anticon-icon {\n display: block;\n}\n\n.anticon[tabindex] {\n cursor: pointer;\n}\n\n.anticon-spin::before,\n.anticon-spin {\n display: inline-block;\n -webkit-animation: loadingCircle 1s infinite linear;\n animation: loadingCircle 1s infinite linear;\n}\n\n@-webkit-keyframes loadingCircle {\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes loadingCircle {\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n";t.iconStyles=p;t.useInsertStyles=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:p,t=(0,c.useContext)(f.default),n=t.csp;(0,c.useEffect)((function(){(0,s.updateCSS)(e,"@ant-design-icons",{prepend:!0,csp:n})}),[])}},67228:function(e){e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r},e.exports.default=e.exports,e.exports.__esModule=!0},22858:function(e){e.exports=function(e){if(Array.isArray(e))return e},e.exports.default=e.exports,e.exports.__esModule=!0},23646:function(e,t,n){var r=n(67228);e.exports=function(e){if(Array.isArray(e))return r(e)},e.exports.default=e.exports,e.exports.__esModule=!0},81506:function(e){e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e},e.exports.default=e.exports,e.exports.__esModule=!0},34575:function(e){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},e.exports.default=e.exports,e.exports.__esModule=!0},93913:function(e){function t(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}e.exports=function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e},e.exports.default=e.exports,e.exports.__esModule=!0},99842:function(e,t,n){var r=n(29754),a=n(57067),o=n(78585);e.exports=function(e){var t=a();return function(){var n,a=r(e);if(t){var l=r(this).constructor;n=Reflect.construct(a,arguments,l)}else n=a.apply(this,arguments);return o(this,n)}},e.exports.default=e.exports,e.exports.__esModule=!0},59713:function(e){e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},e.exports.default=e.exports,e.exports.__esModule=!0},67154:function(e){function t(){return e.exports=t=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},e.exports.default=e.exports,e.exports.__esModule=!0,t.apply(this,arguments)}e.exports=t,e.exports.default=e.exports,e.exports.__esModule=!0},29754:function(e){function t(n){return e.exports=t=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},e.exports.default=e.exports,e.exports.__esModule=!0,t(n)}e.exports=t,e.exports.default=e.exports,e.exports.__esModule=!0},2205:function(e,t,n){var r=n(99489);e.exports=function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&r(e,t)},e.exports.default=e.exports,e.exports.__esModule=!0},95318:function(e){e.exports=function(e){return e&&e.__esModule?e:{default:e}},e.exports.default=e.exports,e.exports.__esModule=!0},20862:function(e,t,n){var r=n(50008).default;function a(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(a=function(e){return e?n:t})(e)}e.exports=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!==typeof e)return{default:e};var n=a(t);if(n&&n.has(e))return n.get(e);var o={},l=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var c=l?Object.getOwnPropertyDescriptor(e,i):null;c&&(c.get||c.set)?Object.defineProperty(o,i,c):o[i]=e[i]}return o.default=e,n&&n.set(e,o),o},e.exports.default=e.exports,e.exports.__esModule=!0},57067:function(e){e.exports=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}},e.exports.default=e.exports,e.exports.__esModule=!0},46860:function(e){e.exports=function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)},e.exports.default=e.exports,e.exports.__esModule=!0},13884:function(e){e.exports=function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}},e.exports.default=e.exports,e.exports.__esModule=!0},80521:function(e){e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},e.exports.default=e.exports,e.exports.__esModule=!0},98206:function(e){e.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},e.exports.default=e.exports,e.exports.__esModule=!0},81109:function(e,t,n){var r=n(59713);function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}e.exports=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e},e.exports.default=e.exports,e.exports.__esModule=!0},6479:function(e,t,n){var r=n(37316);e.exports=function(e,t){if(null==e)return{};var n,a,o=r(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a<l.length;a++)n=l[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o},e.exports.default=e.exports,e.exports.__esModule=!0},37316:function(e){e.exports=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a},e.exports.default=e.exports,e.exports.__esModule=!0},78585:function(e,t,n){var r=n(50008).default,a=n(81506);e.exports=function(e,t){if(t&&("object"===r(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return a(e)},e.exports.default=e.exports,e.exports.__esModule=!0},99489:function(e){function t(n,r){return e.exports=t=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},e.exports.default=e.exports,e.exports.__esModule=!0,t(n,r)}e.exports=t,e.exports.default=e.exports,e.exports.__esModule=!0},63038:function(e,t,n){var r=n(22858),a=n(13884),o=n(60379),l=n(80521);e.exports=function(e,t){return r(e)||a(e,t)||o(e,t)||l()},e.exports.default=e.exports,e.exports.__esModule=!0},319:function(e,t,n){var r=n(23646),a=n(46860),o=n(60379),l=n(98206);e.exports=function(e){return r(e)||a(e)||o(e)||l()},e.exports.default=e.exports,e.exports.__esModule=!0},50008:function(e){function t(n){return"function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?(e.exports=t=function(e){return typeof e},e.exports.default=e.exports,e.exports.__esModule=!0):(e.exports=t=function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.default=e.exports,e.exports.__esModule=!0),t(n)}e.exports=t,e.exports.default=e.exports,e.exports.__esModule=!0},60379:function(e,t,n){var r=n(67228);e.exports=function(e,t){if(e){if("string"===typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}},e.exports.default=e.exports,e.exports.__esModule=!0},131:function(e,t,n){"use strict";n.r(t),n.d(t,{TinyColor:function(){return r.C},bounds:function(){return g},convertDecimalToHex:function(){return c.Wl},convertHexToDecimal:function(){return c.T6},default:function(){return b},fromRatio:function(){return f},hslToRgb:function(){return c.ve},hsvToRgb:function(){return c.WE},inputToRGB:function(){return p.uA},isReadable:function(){return l},isValidCSSUnit:function(){return p.ky},legacyRandom:function(){return d},mostReadable:function(){return i},names:function(){return a.R},numberInputToObject:function(){return c.Yt},parseIntFromHex:function(){return c.VD},random:function(){return v},readability:function(){return o},rgbToHex:function(){return c.vq},rgbToHsl:function(){return c.lC},rgbToHsv:function(){return c.py},rgbToRgb:function(){return c.rW},rgbaToArgbHex:function(){return c.GC},rgbaToHex:function(){return c.s},stringInputToObject:function(){return p.uz},tinycolor:function(){return r.H},toMsFilter:function(){return u}});var r=n(10274),a=n(48701);function o(e,t){var n=new r.C(e),a=new r.C(t);return(Math.max(n.getLuminance(),a.getLuminance())+.05)/(Math.min(n.getLuminance(),a.getLuminance())+.05)}function l(e,t,n){var r,a;void 0===n&&(n={level:"AA",size:"small"});var l=o(e,t);switch((null!==(r=n.level)&&void 0!==r?r:"AA")+(null!==(a=n.size)&&void 0!==a?a:"small")){case"AAsmall":case"AAAlarge":return l>=4.5;case"AAlarge":return l>=3;case"AAAsmall":return l>=7;default:return!1}}function i(e,t,n){void 0===n&&(n={includeFallbackColors:!1,level:"AA",size:"small"});for(var a=null,c=0,u=n.includeFallbackColors,s=n.level,f=n.size,d=0,p=t;d<p.length;d++){var v=p[d],m=o(e,v);m>c&&(c=m,a=new r.C(v))}return l(e,a,{level:s,size:f})||!u?a:(n.includeFallbackColors=!1,i(e,["#fff","#000"],n))}var c=n(86500);function u(e,t){var n=new r.C(e),a="#"+(0,c.GC)(n.r,n.g,n.b,n.a),o=a,l=n.gradientType?"GradientType = 1, ":"";if(t){var i=new r.C(t);o="#"+(0,c.GC)(i.r,i.g,i.b,i.a)}return"progid:DXImageTransform.Microsoft.gradient("+l+"startColorstr="+a+",endColorstr="+o+")"}var s=n(90279);function f(e,t){var n={r:(0,s.JX)(e.r),g:(0,s.JX)(e.g),b:(0,s.JX)(e.b)};return void 0!==e.a&&(n.a=Number(e.a)),new r.C(n,t)}function d(){return new r.C({r:Math.random(),g:Math.random(),b:Math.random()})}var p=n(1350);function v(e){if(void 0===e&&(e={}),void 0!==e.count&&null!==e.count){var t=e.count,n=[];for(e.count=void 0;t>n.length;)e.count=null,e.seed&&(e.seed+=1),n.push(v(e));return e.count=t,n}var a=function(e,t){var n=h(function(e){var t=parseInt(e,10);if(!Number.isNaN(t)&&t<360&&t>0)return[t,t];if("string"===typeof e){var n=g.find((function(t){return t.name===e}));if(n){var a=y(n);if(a.hueRange)return a.hueRange}var o=new r.C(e);if(o.isValid){var l=o.toHsv().h;return[l,l]}}return[0,360]}(e),t);n<0&&(n=360+n);return n}(e.hue,e.seed),o=function(e,t){if("monochrome"===t.hue)return 0;if("random"===t.luminosity)return h([0,100],t.seed);var n=m(e).saturationRange,r=n[0],a=n[1];switch(t.luminosity){case"bright":r=55;break;case"dark":r=a-10;break;case"light":a=55}return h([r,a],t.seed)}(a,e),l={h:a,s:o,v:function(e,t,n){var r=function(e,t){for(var n=m(e).lowerBounds,r=0;r<n.length-1;r++){var a=n[r][0],o=n[r][1],l=n[r+1][0],i=n[r+1][1];if(t>=a&&t<=l){var c=(i-o)/(l-a);return c*t+(o-c*a)}}return 0}(e,t),a=100;switch(n.luminosity){case"dark":a=r+20;break;case"light":r=(a+r)/2;break;case"random":r=0,a=100}return h([r,a],n.seed)}(a,o,e)};return void 0!==e.alpha&&(l.a=e.alpha),new r.C(l)}function m(e){e>=334&&e<=360&&(e-=360);for(var t=0,n=g;t<n.length;t++){var r=y(n[t]);if(r.hueRange&&e>=r.hueRange[0]&&e<=r.hueRange[1])return r}throw Error("Color not found")}function h(e,t){if(void 0===t)return Math.floor(e[0]+Math.random()*(e[1]+1-e[0]));var n=e[1]||1,r=e[0]||0,a=(t=(9301*t+49297)%233280)/233280;return Math.floor(r+a*(n-r))}function y(e){var t=e.lowerBounds[0][0],n=e.lowerBounds[e.lowerBounds.length-1][0],r=e.lowerBounds[e.lowerBounds.length-1][1],a=e.lowerBounds[0][1];return{name:e.name,hueRange:e.hueRange,lowerBounds:e.lowerBounds,saturationRange:[t,n],brightnessRange:[r,a]}}var g=[{name:"monochrome",hueRange:null,lowerBounds:[[0,0],[100,0]]},{name:"red",hueRange:[-26,18],lowerBounds:[[20,100],[30,92],[40,89],[50,85],[60,78],[70,70],[80,60],[90,55],[100,50]]},{name:"orange",hueRange:[19,46],lowerBounds:[[20,100],[30,93],[40,88],[50,86],[60,85],[70,70],[100,70]]},{name:"yellow",hueRange:[47,62],lowerBounds:[[25,100],[40,94],[50,89],[60,86],[70,84],[80,82],[90,80],[100,75]]},{name:"green",hueRange:[63,178],lowerBounds:[[30,100],[40,90],[50,85],[60,81],[70,74],[80,64],[90,50],[100,40]]},{name:"blue",hueRange:[179,257],lowerBounds:[[20,100],[30,86],[40,80],[50,74],[60,60],[70,52],[80,44],[90,39],[100,35]]},{name:"purple",hueRange:[258,282],lowerBounds:[[20,100],[30,87],[40,79],[50,70],[60,65],[70,59],[80,52],[90,45],[100,42]]},{name:"pink",hueRange:[283,334],lowerBounds:[[20,100],[30,90],[40,86],[60,84],[80,80],[90,75],[100,73]]}],b=r.H},24308:function(e,t,n){"use strict";n.d(t,{c4:function(){return o}});var r=n(4942),a=n(87462),o=["xxl","xl","lg","md","sm","xs"],l={xs:"(max-width: 575px)",sm:"(min-width: 576px)",md:"(min-width: 768px)",lg:"(min-width: 992px)",xl:"(min-width: 1200px)",xxl:"(min-width: 1600px)"},i=new Map,c=-1,u={},s={matchHandlers:{},dispatch:function(e){return u=e,i.forEach((function(e){return e(u)})),i.size>=1},subscribe:function(e){return i.size||this.register(),c+=1,i.set(c,e),e(u),c},unsubscribe:function(e){i.delete(e),i.size||this.unregister()},unregister:function(){var e=this;Object.keys(l).forEach((function(t){var n=l[t],r=e.matchHandlers[n];null===r||void 0===r||r.mql.removeListener(null===r||void 0===r?void 0:r.listener)})),i.clear()},register:function(){var e=this;Object.keys(l).forEach((function(t){var n=l[t],o=function(n){var o=n.matches;e.dispatch((0,a.Z)((0,a.Z)({},u),(0,r.Z)({},t,o)))},i=window.matchMedia(n);i.addListener(o),e.matchHandlers[n]={mql:i,listener:o},o(i)}))}};t.ZP=s},27049:function(e,t,n){"use strict";var r=n(87462),a=n(4942),o=n(67294),l=n(94184),i=n.n(l),c=n(59844),u=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n};t.Z=function(e){return o.createElement(c.C,null,(function(t){var n,l=t.getPrefixCls,c=t.direction,s=e.prefixCls,f=e.type,d=void 0===f?"horizontal":f,p=e.orientation,v=void 0===p?"center":p,m=e.orientationMargin,h=e.className,y=e.children,g=e.dashed,b=e.plain,M=u(e,["prefixCls","type","orientation","orientationMargin","className","children","dashed","plain"]),E=l("divider",s),C=v.length>0?"-".concat(v):v,x=!!y,O="left"===v&&null!=m,w="right"===v&&null!=m,k=i()(E,"".concat(E,"-").concat(d),(n={},(0,a.Z)(n,"".concat(E,"-with-text"),x),(0,a.Z)(n,"".concat(E,"-with-text").concat(C),x),(0,a.Z)(n,"".concat(E,"-dashed"),!!g),(0,a.Z)(n,"".concat(E,"-plain"),!!b),(0,a.Z)(n,"".concat(E,"-rtl"),"rtl"===c),(0,a.Z)(n,"".concat(E,"-no-default-orientation-margin-left"),O),(0,a.Z)(n,"".concat(E,"-no-default-orientation-margin-right"),w),n),h),P=(0,r.Z)((0,r.Z)({},O&&{marginLeft:m}),w&&{marginRight:m});return o.createElement("div",(0,r.Z)({className:k},M,{role:"separator"}),y&&o.createElement("span",{className:"".concat(E,"-inner-text"),style:P},y))}))}},33859:function(e,t,n){"use strict";n.d(t,{ZP:function(){return O}});var r=n(4942),a=n(67294),o=n(94184),l=n.n(o),i=n(89739),c=n(4340),u=n(21640),s=n(1413),f={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M955.7 856l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zM480 416c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v184c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V416zm32 352a48.01 48.01 0 010-96 48.01 48.01 0 010 96z"}}]},name:"warning",theme:"filled"},d=n(42135),p=function(e,t){return a.createElement(d.Z,(0,s.Z)((0,s.Z)({},e),{},{ref:t,icon:f}))};p.displayName="WarningFilled";var v=a.forwardRef(p),m=n(59844),h=n(21687),y=function(){return a.createElement("svg",{width:"252",height:"294"},a.createElement("defs",null,a.createElement("path",{d:"M0 .387h251.772v251.772H0z"})),a.createElement("g",{fill:"none",fillRule:"evenodd"},a.createElement("g",{transform:"translate(0 .012)"},a.createElement("mask",{fill:"#fff"}),a.createElement("path",{d:"M0 127.32v-2.095C0 56.279 55.892.387 124.838.387h2.096c68.946 0 124.838 55.892 124.838 124.838v2.096c0 68.946-55.892 124.838-124.838 124.838h-2.096C55.892 252.16 0 196.267 0 127.321",fill:"#E4EBF7",mask:"url(#b)"})),a.createElement("path",{d:"M39.755 130.84a8.276 8.276 0 1 1-16.468-1.66 8.276 8.276 0 0 1 16.468 1.66",fill:"#FFF"}),a.createElement("path",{d:"M36.975 134.297l10.482 5.943M48.373 146.508l-12.648 10.788",stroke:"#FFF",strokeWidth:"2"}),a.createElement("path",{d:"M39.875 159.352a5.667 5.667 0 1 1-11.277-1.136 5.667 5.667 0 0 1 11.277 1.136M57.588 143.247a5.708 5.708 0 1 1-11.358-1.145 5.708 5.708 0 0 1 11.358 1.145M99.018 26.875l29.82-.014a4.587 4.587 0 1 0-.003-9.175l-29.82.013a4.587 4.587 0 1 0 .003 9.176M110.424 45.211l29.82-.013a4.588 4.588 0 0 0-.004-9.175l-29.82.013a4.587 4.587 0 1 0 .004 9.175",fill:"#FFF"}),a.createElement("path",{d:"M112.798 26.861v-.002l15.784-.006a4.588 4.588 0 1 0 .003 9.175l-15.783.007v-.002a4.586 4.586 0 0 0-.004-9.172M184.523 135.668c-.553 5.485-5.447 9.483-10.931 8.93-5.485-.553-9.483-5.448-8.93-10.932.552-5.485 5.447-9.483 10.932-8.93 5.485.553 9.483 5.447 8.93 10.932",fill:"#FFF"}),a.createElement("path",{d:"M179.26 141.75l12.64 7.167M193.006 156.477l-15.255 13.011",stroke:"#FFF",strokeWidth:"2"}),a.createElement("path",{d:"M184.668 170.057a6.835 6.835 0 1 1-13.6-1.372 6.835 6.835 0 0 1 13.6 1.372M203.34 153.325a6.885 6.885 0 1 1-13.7-1.382 6.885 6.885 0 0 1 13.7 1.382",fill:"#FFF"}),a.createElement("path",{d:"M151.931 192.324a2.222 2.222 0 1 1-4.444 0 2.222 2.222 0 0 1 4.444 0zM225.27 116.056a2.222 2.222 0 1 1-4.445 0 2.222 2.222 0 0 1 4.444 0zM216.38 151.08a2.223 2.223 0 1 1-4.446-.001 2.223 2.223 0 0 1 4.446 0zM176.917 107.636a2.223 2.223 0 1 1-4.445 0 2.223 2.223 0 0 1 4.445 0zM195.291 92.165a2.223 2.223 0 1 1-4.445 0 2.223 2.223 0 0 1 4.445 0zM202.058 180.711a2.223 2.223 0 1 1-4.446 0 2.223 2.223 0 0 1 4.446 0z",stroke:"#FFF",strokeWidth:"2"}),a.createElement("path",{stroke:"#FFF",strokeWidth:"2",d:"M214.404 153.302l-1.912 20.184-10.928 5.99M173.661 174.792l-6.356 9.814h-11.36l-4.508 6.484M174.941 125.168v-15.804M220.824 117.25l-12.84 7.901-15.31-7.902V94.39"}),a.createElement("path",{d:"M166.588 65.936h-3.951a4.756 4.756 0 0 1-4.743-4.742 4.756 4.756 0 0 1 4.743-4.743h3.951a4.756 4.756 0 0 1 4.743 4.743 4.756 4.756 0 0 1-4.743 4.742",fill:"#FFF"}),a.createElement("path",{d:"M174.823 30.03c0-16.281 13.198-29.48 29.48-29.48 16.28 0 29.48 13.199 29.48 29.48 0 16.28-13.2 29.48-29.48 29.48-16.282 0-29.48-13.2-29.48-29.48",fill:"#1890FF"}),a.createElement("path",{d:"M205.952 38.387c.5.5.785 1.142.785 1.928s-.286 1.465-.785 1.964c-.572.5-1.214.75-2 .75-.785 0-1.429-.285-1.929-.785-.572-.5-.82-1.143-.82-1.929s.248-1.428.82-1.928c.5-.5 1.144-.75 1.93-.75.785 0 1.462.25 1.999.75m4.285-19.463c1.428 1.249 2.143 2.963 2.143 5.142 0 1.712-.427 3.13-1.219 4.25-.067.096-.137.18-.218.265-.416.429-1.41 1.346-2.956 2.699a5.07 5.07 0 0 0-1.428 1.75 5.207 5.207 0 0 0-.536 2.357v.5h-4.107v-.5c0-1.357.215-2.536.714-3.5.464-.964 1.857-2.464 4.178-4.536l.43-.5c.643-.785.964-1.643.964-2.535 0-1.18-.358-2.108-1-2.785-.678-.68-1.643-1.001-2.858-1.001-1.536 0-2.642.464-3.357 1.43-.37.5-.621 1.135-.76 1.904a1.999 1.999 0 0 1-1.971 1.63h-.004c-1.277 0-2.257-1.183-1.98-2.43.337-1.518 1.02-2.78 2.073-3.784 1.536-1.5 3.607-2.25 6.25-2.25 2.32 0 4.214.607 5.642 1.894",fill:"#FFF"}),a.createElement("path",{d:"M52.04 76.131s21.81 5.36 27.307 15.945c5.575 10.74-6.352 9.26-15.73 4.935-10.86-5.008-24.7-11.822-11.577-20.88",fill:"#FFB594"}),a.createElement("path",{d:"M90.483 67.504l-.449 2.893c-.753.49-4.748-2.663-4.748-2.663l-1.645.748-1.346-5.684s6.815-4.589 8.917-5.018c2.452-.501 9.884.94 10.7 2.278 0 0 1.32.486-2.227.69-3.548.203-5.043.447-6.79 3.132-1.747 2.686-2.412 3.624-2.412 3.624",fill:"#FFC6A0"}),a.createElement("path",{d:"M128.055 111.367c-2.627-7.724-6.15-13.18-8.917-15.478-3.5-2.906-9.34-2.225-11.366-4.187-1.27-1.231-3.215-1.197-3.215-1.197s-14.98-3.158-16.828-3.479c-2.37-.41-2.124-.714-6.054-1.405-1.57-1.907-2.917-1.122-2.917-1.122l-7.11-1.383c-.853-1.472-2.423-1.023-2.423-1.023l-2.468-.897c-1.645 9.976-7.74 13.796-7.74 13.796 1.795 1.122 15.703 8.3 15.703 8.3l5.107 37.11s-3.321 5.694 1.346 9.109c0 0 19.883-3.743 34.921-.329 0 0 3.047-2.546.972-8.806.523-3.01 1.394-8.263 1.736-11.622.385.772 2.019 1.918 3.14 3.477 0 0 9.407-7.365 11.052-14.012-.832-.723-1.598-1.585-2.267-2.453-.567-.736-.358-2.056-.765-2.717-.669-1.084-1.804-1.378-1.907-1.682",fill:"#FFF"}),a.createElement("path",{d:"M101.09 289.998s4.295 2.041 7.354 1.021c2.821-.94 4.53.668 7.08 1.178 2.55.51 6.874 1.1 11.686-1.26-.103-5.51-6.889-3.98-11.96-6.713-2.563-1.38-3.784-4.722-3.598-8.799h-9.402s-1.392 10.52-1.16 14.573",fill:"#CBD1D1"}),a.createElement("path",{d:"M101.067 289.826s2.428 1.271 6.759.653c3.058-.437 3.712.481 7.423 1.031 3.712.55 10.724-.069 11.823-.894.413 1.1-.343 2.063-.343 2.063s-1.512.603-4.812.824c-2.03.136-5.8.291-7.607-.503-1.787-1.375-5.247-1.903-5.728-.241-3.918.95-7.355-.286-7.355-.286l-.16-2.647z",fill:"#2B0849"}),a.createElement("path",{d:"M108.341 276.044h3.094s-.103 6.702 4.536 8.558c-4.64.618-8.558-2.303-7.63-8.558",fill:"#A4AABA"}),a.createElement("path",{d:"M57.542 272.401s-2.107 7.416-4.485 12.306c-1.798 3.695-4.225 7.492 5.465 7.492 6.648 0 8.953-.48 7.423-6.599-1.53-6.12.266-13.199.266-13.199h-8.669z",fill:"#CBD1D1"}),a.createElement("path",{d:"M51.476 289.793s2.097 1.169 6.633 1.169c6.083 0 8.249-1.65 8.249-1.65s.602 1.114-.619 2.165c-.993.855-3.597 1.591-7.39 1.546-4.145-.048-5.832-.566-6.736-1.168-.825-.55-.687-1.58-.137-2.062",fill:"#2B0849"}),a.createElement("path",{d:"M58.419 274.304s.033 1.519-.314 2.93c-.349 1.42-1.078 3.104-1.13 4.139-.058 1.151 4.537 1.58 5.155.034.62-1.547 1.294-6.427 1.913-7.252.619-.825-4.903-2.119-5.624.15",fill:"#A4AABA"}),a.createElement("path",{d:"M99.66 278.514l13.378.092s1.298-54.52 1.853-64.403c.554-9.882 3.776-43.364 1.002-63.128l-12.547-.644-22.849.78s-.434 3.966-1.195 9.976c-.063.496-.682.843-.749 1.365-.075.585.423 1.354.32 1.966-2.364 14.08-6.377 33.104-8.744 46.677-.116.666-1.234 1.009-1.458 2.691-.04.302.211 1.525.112 1.795-6.873 18.744-10.949 47.842-14.277 61.885l14.607-.014s2.197-8.57 4.03-16.97c2.811-12.886 23.111-85.01 23.111-85.01l3.016-.521 1.043 46.35s-.224 1.234.337 2.02c.56.785-.56 1.123-.392 2.244l.392 1.794s-.449 7.178-.898 11.89c-.448 4.71-.092 39.165-.092 39.165",fill:"#7BB2F9"}),a.createElement("path",{d:"M76.085 221.626c1.153.094 4.038-2.019 6.955-4.935M106.36 225.142s2.774-1.11 6.103-3.883",stroke:"#648BD8",strokeWidth:"1.051",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M107.275 222.1s2.773-1.11 6.102-3.884",stroke:"#648BD8",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M74.74 224.767s2.622-.591 6.505-3.365M86.03 151.634c-.27 3.106.3 8.525-4.336 9.123M103.625 149.88s.11 14.012-1.293 15.065c-2.219 1.664-2.99 1.944-2.99 1.944M99.79 150.438s.035 12.88-1.196 24.377M93.673 175.911s7.212-1.664 9.431-1.664M74.31 205.861a212.013 212.013 0 0 1-.979 4.56s-1.458 1.832-1.009 3.776c.449 1.944-.947 2.045-4.985 15.355-1.696 5.59-4.49 18.591-6.348 27.597l-.231 1.12M75.689 197.807a320.934 320.934 0 0 1-.882 4.754M82.591 152.233L81.395 162.7s-1.097.15-.5 2.244c.113 1.346-2.674 15.775-5.18 30.43M56.12 274.418h13.31",stroke:"#648BD8",strokeWidth:"1.051",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M116.241 148.22s-17.047-3.104-35.893.2c.158 2.514-.003 4.15-.003 4.15s14.687-2.818 35.67-.312c.252-2.355.226-4.038.226-4.038",fill:"#192064"}),a.createElement("path",{d:"M106.322 151.165l.003-4.911a.81.81 0 0 0-.778-.815c-2.44-.091-5.066-.108-7.836-.014a.818.818 0 0 0-.789.815l-.003 4.906a.81.81 0 0 0 .831.813c2.385-.06 4.973-.064 7.73.017a.815.815 0 0 0 .842-.81",fill:"#FFF"}),a.createElement("path",{d:"M105.207 150.233l.002-3.076a.642.642 0 0 0-.619-.646 94.321 94.321 0 0 0-5.866-.01.65.65 0 0 0-.63.647v3.072a.64.64 0 0 0 .654.644 121.12 121.12 0 0 1 5.794.011c.362.01.665-.28.665-.642",fill:"#192064"}),a.createElement("path",{d:"M100.263 275.415h12.338M101.436 270.53c.006 3.387.042 5.79.111 6.506M101.451 264.548a915.75 915.75 0 0 0-.015 4.337M100.986 174.965l.898 44.642s.673 1.57-.225 2.692c-.897 1.122 2.468.673.898 2.243-1.57 1.57.897 1.122 0 3.365-.596 1.489-.994 21.1-1.096 35.146",stroke:"#648BD8",strokeWidth:"1.051",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M46.876 83.427s-.516 6.045 7.223 5.552c11.2-.712 9.218-9.345 31.54-21.655-.786-2.708-2.447-4.744-2.447-4.744s-11.068 3.11-22.584 8.046c-6.766 2.9-13.395 6.352-13.732 12.801M104.46 91.057l.941-5.372-8.884-11.43-5.037 5.372-1.74 7.834a.321.321 0 0 0 .108.32c.965.8 6.5 5.013 14.347 3.544a.332.332 0 0 0 .264-.268",fill:"#FFC6A0"}),a.createElement("path",{d:"M93.942 79.387s-4.533-2.853-2.432-6.855c1.623-3.09 4.513 1.133 4.513 1.133s.52-3.642 3.121-3.642c.52-1.04 1.561-4.162 1.561-4.162s11.445 2.601 13.526 3.121c0 5.203-2.304 19.424-7.84 19.861-8.892.703-12.449-9.456-12.449-9.456",fill:"#FFC6A0"}),a.createElement("path",{d:"M113.874 73.446c2.601-2.081 3.47-9.722 3.47-9.722s-2.479-.49-6.64-2.05c-4.683-2.081-12.798-4.747-17.48.976-9.668 3.223-2.05 19.823-2.05 19.823l2.713-3.021s-3.935-3.287-2.08-6.243c2.17-3.462 3.92 1.073 3.92 1.073s.637-2.387 3.581-3.342c.355-.71 1.036-2.674 1.432-3.85a1.073 1.073 0 0 1 1.263-.704c2.4.558 8.677 2.019 11.356 2.662.522.125.871.615.82 1.15l-.305 3.248z",fill:"#520038"}),a.createElement("path",{d:"M104.977 76.064c-.103.61-.582 1.038-1.07.956-.489-.083-.801-.644-.698-1.254.103-.61.582-1.038 1.07-.956.488.082.8.644.698 1.254M112.132 77.694c-.103.61-.582 1.038-1.07.956-.488-.083-.8-.644-.698-1.254.103-.61.582-1.038 1.07-.956.488.082.8.643.698 1.254",fill:"#552950"}),a.createElement("path",{stroke:"#DB836E",strokeWidth:"1.118",strokeLinecap:"round",strokeLinejoin:"round",d:"M110.13 74.84l-.896 1.61-.298 4.357h-2.228"}),a.createElement("path",{d:"M110.846 74.481s1.79-.716 2.506.537",stroke:"#5C2552",strokeWidth:"1.118",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M92.386 74.282s.477-1.114 1.113-.716c.637.398 1.274 1.433.558 1.99-.717.556.159 1.67.159 1.67",stroke:"#DB836E",strokeWidth:"1.118",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M103.287 72.93s1.83 1.113 4.137.954",stroke:"#5C2552",strokeWidth:"1.118",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M103.685 81.762s2.227 1.193 4.376 1.193M104.64 84.308s.954.398 1.511.318M94.693 81.205s2.308 7.4 10.424 7.639",stroke:"#DB836E",strokeWidth:"1.118",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M81.45 89.384s.45 5.647-4.935 12.787M69 82.654s-.726 9.282-8.204 14.206",stroke:"#E4EBF7",strokeWidth:"1.101",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M129.405 122.865s-5.272 7.403-9.422 10.768",stroke:"#E4EBF7",strokeWidth:"1.051",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M119.306 107.329s.452 4.366-2.127 32.062",stroke:"#E4EBF7",strokeWidth:"1.101",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M150.028 151.232h-49.837a1.01 1.01 0 0 1-1.01-1.01v-31.688c0-.557.452-1.01 1.01-1.01h49.837c.558 0 1.01.453 1.01 1.01v31.688a1.01 1.01 0 0 1-1.01 1.01",fill:"#F2D7AD"}),a.createElement("path",{d:"M150.29 151.232h-19.863v-33.707h20.784v32.786a.92.92 0 0 1-.92.92",fill:"#F4D19D"}),a.createElement("path",{d:"M123.554 127.896H92.917a.518.518 0 0 1-.425-.816l6.38-9.113c.193-.277.51-.442.85-.442h31.092l-7.26 10.371z",fill:"#F2D7AD"}),a.createElement("path",{fill:"#CC9B6E",d:"M123.689 128.447H99.25v-.519h24.169l7.183-10.26.424.298z"}),a.createElement("path",{d:"M158.298 127.896h-18.669a2.073 2.073 0 0 1-1.659-.83l-7.156-9.541h19.965c.49 0 .95.23 1.244.622l6.69 8.92a.519.519 0 0 1-.415.83",fill:"#F4D19D"}),a.createElement("path",{fill:"#CC9B6E",d:"M157.847 128.479h-19.384l-7.857-10.475.415-.31 7.7 10.266h19.126zM130.554 150.685l-.032-8.177.519-.002.032 8.177z"}),a.createElement("path",{fill:"#CC9B6E",d:"M130.511 139.783l-.08-21.414.519-.002.08 21.414zM111.876 140.932l-.498-.143 1.479-5.167.498.143zM108.437 141.06l-2.679-2.935 2.665-3.434.41.318-2.397 3.089 2.384 2.612zM116.607 141.06l-.383-.35 2.383-2.612-2.397-3.089.41-.318 2.665 3.434z"}),a.createElement("path",{d:"M154.316 131.892l-3.114-1.96.038 3.514-1.043.092c-1.682.115-3.634.23-4.789.23-1.902 0-2.693 2.258 2.23 2.648l-2.645-.596s-2.168 1.317.504 2.3c0 0-1.58 1.217.561 2.58-.584 3.504 5.247 4.058 7.122 3.59 1.876-.47 4.233-2.359 4.487-5.16.28-3.085-.89-5.432-3.35-7.238",fill:"#FFC6A0"}),a.createElement("path",{d:"M153.686 133.577s-6.522.47-8.36.372c-1.836-.098-1.904 2.19 2.359 2.264 3.739.15 5.451-.044 5.451-.044",stroke:"#DB836E",strokeWidth:"1.051",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M145.16 135.877c-1.85 1.346.561 2.355.561 2.355s3.478.898 6.73.617",stroke:"#DB836E",strokeWidth:"1.051",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M151.89 141.71s-6.28.111-6.73-2.132c-.223-1.346.45-1.402.45-1.402M146.114 140.868s-1.103 3.16 5.44 3.533M151.202 129.932v3.477M52.838 89.286c3.533-.337 8.423-1.248 13.582-7.754",stroke:"#DB836E",strokeWidth:"1.051",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M168.567 248.318a6.647 6.647 0 0 1-6.647-6.647v-66.466a6.647 6.647 0 1 1 13.294 0v66.466a6.647 6.647 0 0 1-6.647 6.647",fill:"#5BA02E"}),a.createElement("path",{d:"M176.543 247.653a6.647 6.647 0 0 1-6.646-6.647v-33.232a6.647 6.647 0 1 1 13.293 0v33.232a6.647 6.647 0 0 1-6.647 6.647",fill:"#92C110"}),a.createElement("path",{d:"M186.443 293.613H158.92a3.187 3.187 0 0 1-3.187-3.187v-46.134a3.187 3.187 0 0 1 3.187-3.187h27.524a3.187 3.187 0 0 1 3.187 3.187v46.134a3.187 3.187 0 0 1-3.187 3.187",fill:"#F2D7AD"}),a.createElement("path",{d:"M88.979 89.48s7.776 5.384 16.6 2.842",stroke:"#E4EBF7",strokeWidth:"1.101",strokeLinecap:"round",strokeLinejoin:"round"})))},g=function(){return a.createElement("svg",{width:"254",height:"294"},a.createElement("defs",null,a.createElement("path",{d:"M0 .335h253.49v253.49H0z"}),a.createElement("path",{d:"M0 293.665h253.49V.401H0z"})),a.createElement("g",{fill:"none",fillRule:"evenodd"},a.createElement("g",{transform:"translate(0 .067)"},a.createElement("mask",{fill:"#fff"}),a.createElement("path",{d:"M0 128.134v-2.11C0 56.608 56.273.334 125.69.334h2.11c69.416 0 125.69 56.274 125.69 125.69v2.11c0 69.417-56.274 125.69-125.69 125.69h-2.11C56.273 253.824 0 197.551 0 128.134",fill:"#E4EBF7",mask:"url(#b)"})),a.createElement("path",{d:"M39.989 132.108a8.332 8.332 0 1 1-16.581-1.671 8.332 8.332 0 0 1 16.58 1.671",fill:"#FFF"}),a.createElement("path",{d:"M37.19 135.59l10.553 5.983M48.665 147.884l-12.734 10.861",stroke:"#FFF",strokeWidth:"2"}),a.createElement("path",{d:"M40.11 160.816a5.706 5.706 0 1 1-11.354-1.145 5.706 5.706 0 0 1 11.354 1.145M57.943 144.6a5.747 5.747 0 1 1-11.436-1.152 5.747 5.747 0 0 1 11.436 1.153M99.656 27.434l30.024-.013a4.619 4.619 0 1 0-.004-9.238l-30.024.013a4.62 4.62 0 0 0 .004 9.238M111.14 45.896l30.023-.013a4.62 4.62 0 1 0-.004-9.238l-30.024.013a4.619 4.619 0 1 0 .004 9.238",fill:"#FFF"}),a.createElement("path",{d:"M113.53 27.421v-.002l15.89-.007a4.619 4.619 0 1 0 .005 9.238l-15.892.007v-.002a4.618 4.618 0 0 0-.004-9.234M150.167 70.091h-3.979a4.789 4.789 0 0 1-4.774-4.775 4.788 4.788 0 0 1 4.774-4.774h3.979a4.789 4.789 0 0 1 4.775 4.774 4.789 4.789 0 0 1-4.775 4.775",fill:"#FFF"}),a.createElement("path",{d:"M171.687 30.234c0-16.392 13.289-29.68 29.681-29.68 16.392 0 29.68 13.288 29.68 29.68 0 16.393-13.288 29.681-29.68 29.681s-29.68-13.288-29.68-29.68",fill:"#FF603B"}),a.createElement("path",{d:"M203.557 19.435l-.676 15.035a1.514 1.514 0 0 1-3.026 0l-.675-15.035a2.19 2.19 0 1 1 4.377 0m-.264 19.378c.513.477.77 1.1.77 1.87s-.257 1.393-.77 1.907c-.55.476-1.21.733-1.943.733a2.545 2.545 0 0 1-1.87-.77c-.55-.514-.806-1.136-.806-1.87 0-.77.256-1.393.806-1.87.513-.513 1.137-.733 1.87-.733.77 0 1.43.22 1.943.733",fill:"#FFF"}),a.createElement("path",{d:"M119.3 133.275c4.426-.598 3.612-1.204 4.079-4.778.675-5.18-3.108-16.935-8.262-25.118-1.088-10.72-12.598-11.24-12.598-11.24s4.312 4.895 4.196 16.199c1.398 5.243.804 14.45.804 14.45s5.255 11.369 11.78 10.487",fill:"#FFB594"}),a.createElement("path",{d:"M100.944 91.61s1.463-.583 3.211.582c8.08 1.398 10.368 6.706 11.3 11.368 1.864 1.282 1.864 2.33 1.864 3.496.365.777 1.515 3.03 1.515 3.03s-7.225 1.748-10.954 6.758c-1.399-6.41-6.936-25.235-6.936-25.235",fill:"#FFF"}),a.createElement("path",{d:"M94.008 90.5l1.019-5.815-9.23-11.874-5.233 5.581-2.593 9.863s8.39 5.128 16.037 2.246",fill:"#FFB594"}),a.createElement("path",{d:"M82.931 78.216s-4.557-2.868-2.445-6.892c1.632-3.107 4.537 1.139 4.537 1.139s.524-3.662 3.139-3.662c.523-1.046 1.569-4.184 1.569-4.184s11.507 2.615 13.6 3.138c-.001 5.23-2.317 19.529-7.884 19.969-8.94.706-12.516-9.508-12.516-9.508",fill:"#FFC6A0"}),a.createElement("path",{d:"M102.971 72.243c2.616-2.093 3.489-9.775 3.489-9.775s-2.492-.492-6.676-2.062c-4.708-2.092-12.867-4.771-17.575.982-9.54 4.41-2.062 19.93-2.062 19.93l2.729-3.037s-3.956-3.304-2.092-6.277c2.183-3.48 3.943 1.08 3.943 1.08s.64-2.4 3.6-3.36c.356-.714 1.04-2.69 1.44-3.872a1.08 1.08 0 0 1 1.27-.707c2.41.56 8.723 2.03 11.417 2.676.524.126.876.619.825 1.156l-.308 3.266z",fill:"#520038"}),a.createElement("path",{d:"M101.22 76.514c-.104.613-.585 1.044-1.076.96-.49-.082-.805-.646-.702-1.26.104-.613.585-1.044 1.076-.961.491.083.805.647.702 1.26M94.26 75.074c-.104.613-.585 1.044-1.076.96-.49-.082-.805-.646-.702-1.26.104-.613.585-1.044 1.076-.96.491.082.805.646.702 1.26",fill:"#552950"}),a.createElement("path",{stroke:"#DB836E",strokeWidth:"1.063",strokeLinecap:"round",strokeLinejoin:"round",d:"M99.206 73.644l-.9 1.62-.3 4.38h-2.24"}),a.createElement("path",{d:"M99.926 73.284s1.8-.72 2.52.54",stroke:"#5C2552",strokeWidth:"1.117",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M81.367 73.084s.48-1.12 1.12-.72c.64.4 1.28 1.44.56 2s.16 1.68.16 1.68",stroke:"#DB836E",strokeWidth:"1.117",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M92.326 71.724s1.84 1.12 4.16.96",stroke:"#5C2552",strokeWidth:"1.117",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M92.726 80.604s2.24 1.2 4.4 1.2M93.686 83.164s.96.4 1.52.32M83.687 80.044s1.786 6.547 9.262 7.954",stroke:"#DB836E",strokeWidth:"1.063",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M95.548 91.663s-1.068 2.821-8.298 2.105c-7.23-.717-10.29-5.044-10.29-5.044",stroke:"#E4EBF7",strokeWidth:"1.136",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M78.126 87.478s6.526 4.972 16.47 2.486c0 0 9.577 1.02 11.536 5.322 5.36 11.77.543 36.835 0 39.962 3.496 4.055-.466 8.483-.466 8.483-15.624-3.548-35.81-.6-35.81-.6-4.849-3.546-1.223-9.044-1.223-9.044L62.38 110.32c-2.485-15.227.833-19.803 3.549-20.743 3.03-1.049 8.04-1.282 8.04-1.282.496-.058 1.08-.076 1.37-.233 2.36-1.282 2.787-.583 2.787-.583",fill:"#FFF"}),a.createElement("path",{d:"M65.828 89.81s-6.875.465-7.59 8.156c-.466 8.857 3.03 10.954 3.03 10.954s6.075 22.102 16.796 22.957c8.39-2.176 4.758-6.702 4.661-11.42-.233-11.304-7.108-16.897-7.108-16.897s-4.212-13.75-9.789-13.75",fill:"#FFC6A0"}),a.createElement("path",{d:"M71.716 124.225s.855 11.264 9.828 6.486c4.765-2.536 7.581-13.828 9.789-22.568 1.456-5.768 2.58-12.197 2.58-12.197l-4.973-1.709s-2.408 5.516-7.769 12.275c-4.335 5.467-9.144 11.11-9.455 17.713",fill:"#FFC6A0"}),a.createElement("path",{d:"M108.463 105.191s1.747 2.724-2.331 30.535c2.376 2.216 1.053 6.012-.233 7.51",stroke:"#E4EBF7",strokeWidth:"1.085",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M123.262 131.527s-.427 2.732-11.77 1.981c-15.187-1.006-25.326-3.25-25.326-3.25l.933-5.8s.723.215 9.71-.068c11.887-.373 18.714-6.07 24.964-1.022 4.039 3.263 1.489 8.16 1.489 8.16",fill:"#FFC6A0"}),a.createElement("path",{d:"M70.24 90.974s-5.593-4.739-11.054 2.68c-3.318 7.223.517 15.284 2.664 19.578-.31 3.729 2.33 4.311 2.33 4.311s.108.895 1.516 2.68c4.078-7.03 6.72-9.166 13.711-12.546-.328-.656-1.877-3.265-1.825-3.767.175-1.69-1.282-2.623-1.282-2.623s-.286-.156-1.165-2.738c-.788-2.313-2.036-5.177-4.895-7.575",fill:"#FFF"}),a.createElement("path",{d:"M90.232 288.027s4.855 2.308 8.313 1.155c3.188-1.063 5.12.755 8.002 1.331 2.881.577 7.769 1.243 13.207-1.424-.117-6.228-7.786-4.499-13.518-7.588-2.895-1.56-4.276-5.336-4.066-9.944H91.544s-1.573 11.89-1.312 16.47",fill:"#CBD1D1"}),a.createElement("path",{d:"M90.207 287.833s2.745 1.437 7.639.738c3.456-.494 3.223.66 7.418 1.282 4.195.621 13.092-.194 14.334-1.126.466 1.242-.388 2.33-.388 2.33s-1.709.682-5.438.932c-2.295.154-8.098.276-10.14-.621-2.02-1.554-4.894-1.515-6.06-.234-4.427 1.075-7.184-.31-7.184-.31l-.181-2.991z",fill:"#2B0849"}),a.createElement("path",{d:"M98.429 272.257h3.496s-.117 7.574 5.127 9.671c-5.244.7-9.672-2.602-8.623-9.671",fill:"#A4AABA"}),a.createElement("path",{d:"M44.425 272.046s-2.208 7.774-4.702 12.899c-1.884 3.874-4.428 7.854 5.729 7.854 6.97 0 9.385-.503 7.782-6.917-1.604-6.415.279-13.836.279-13.836h-9.088z",fill:"#CBD1D1"}),a.createElement("path",{d:"M38.066 290.277s2.198 1.225 6.954 1.225c6.376 0 8.646-1.73 8.646-1.73s.63 1.168-.649 2.27c-1.04.897-3.77 1.668-7.745 1.621-4.347-.05-6.115-.593-7.062-1.224-.864-.577-.72-1.657-.144-2.162",fill:"#2B0849"}),a.createElement("path",{d:"M45.344 274.041s.035 1.592-.329 3.07c-.365 1.49-1.13 3.255-1.184 4.34-.061 1.206 4.755 1.657 5.403.036.65-1.622 1.357-6.737 2.006-7.602.648-.865-5.14-2.222-5.896.156",fill:"#A4AABA"}),a.createElement("path",{d:"M89.476 277.57l13.899.095s1.349-56.643 1.925-66.909c.576-10.267 3.923-45.052 1.042-65.585l-13.037-.669-23.737.81s-.452 4.12-1.243 10.365c-.065.515-.708.874-.777 1.417-.078.608.439 1.407.332 2.044-2.455 14.627-5.797 32.736-8.256 46.837-.121.693-1.282 1.048-1.515 2.796-.042.314.22 1.584.116 1.865-7.14 19.473-12.202 52.601-15.66 67.19l15.176-.015s2.282-10.145 4.185-18.871c2.922-13.389 24.012-88.32 24.012-88.32l3.133-.954-.158 48.568s-.233 1.282.35 2.098c.583.815-.581 1.167-.408 2.331l.408 1.864s-.466 7.458-.932 12.352c-.467 4.895 1.145 40.69 1.145 40.69",fill:"#7BB2F9"}),a.createElement("path",{d:"M64.57 218.881c1.197.099 4.195-2.097 7.225-5.127M96.024 222.534s2.881-1.152 6.34-4.034",stroke:"#648BD8",strokeWidth:"1.085",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M96.973 219.373s2.882-1.153 6.34-4.034",stroke:"#648BD8",strokeWidth:"1.032",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M63.172 222.144s2.724-.614 6.759-3.496M74.903 146.166c-.281 3.226.31 8.856-4.506 9.478M93.182 144.344s.115 14.557-1.344 15.65c-2.305 1.73-3.107 2.02-3.107 2.02M89.197 144.923s.269 13.144-1.01 25.088M83.525 170.71s6.81-1.051 9.116-1.051M46.026 270.045l-.892 4.538M46.937 263.289l-.815 4.157M62.725 202.503c-.33 1.618-.102 1.904-.449 3.438 0 0-2.756 1.903-2.29 3.923.466 2.02-.31 3.424-4.505 17.252-1.762 5.807-4.233 18.922-6.165 28.278-.03.144-.521 2.646-1.14 5.8M64.158 194.136c-.295 1.658-.6 3.31-.917 4.938M71.33 146.787l-1.244 10.877s-1.14.155-.519 2.33c.117 1.399-2.778 16.39-5.382 31.615M44.242 273.727H58.07",stroke:"#648BD8",strokeWidth:"1.085",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M106.18 142.117c-3.028-.489-18.825-2.744-36.219.2a.625.625 0 0 0-.518.644c.063 1.307.044 2.343.015 2.995a.617.617 0 0 0 .716.636c3.303-.534 17.037-2.412 35.664-.266.347.04.66-.214.692-.56.124-1.347.16-2.425.17-3.029a.616.616 0 0 0-.52-.62",fill:"#192064"}),a.createElement("path",{d:"M96.398 145.264l.003-5.102a.843.843 0 0 0-.809-.847 114.104 114.104 0 0 0-8.141-.014.85.85 0 0 0-.82.847l-.003 5.097c0 .476.388.857.864.845 2.478-.064 5.166-.067 8.03.017a.848.848 0 0 0 .876-.843",fill:"#FFF"}),a.createElement("path",{d:"M95.239 144.296l.002-3.195a.667.667 0 0 0-.643-.672c-1.9-.061-3.941-.073-6.094-.01a.675.675 0 0 0-.654.672l-.002 3.192c0 .376.305.677.68.669 1.859-.042 3.874-.043 6.02.012.376.01.69-.291.691-.668",fill:"#192064"}),a.createElement("path",{d:"M90.102 273.522h12.819M91.216 269.761c.006 3.519-.072 5.55 0 6.292M90.923 263.474c-.009 1.599-.016 2.558-.016 4.505M90.44 170.404l.932 46.38s.7 1.631-.233 2.796c-.932 1.166 2.564.7.932 2.33-1.63 1.633.933 1.166 0 3.497-.618 1.546-1.031 21.921-1.138 36.513",stroke:"#648BD8",strokeWidth:"1.085",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M73.736 98.665l2.214 4.312s2.098.816 1.865 2.68l.816 2.214M64.297 116.611c.233-.932 2.176-7.147 12.585-10.488M77.598 90.042s7.691 6.137 16.547 2.72",stroke:"#E4EBF7",strokeWidth:"1.085",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M91.974 86.954s5.476-.816 7.574-4.545c1.297-.345.72 2.212-.33 3.671-.7.971-1.01 1.554-1.01 1.554s.194.31.155.816c-.053.697-.175.653-.272 1.048-.081.335.108.657 0 1.049-.046.17-.198.5-.382.878-.12.249-.072.687-.2.948-.231.469-1.562 1.87-2.622 2.855-3.826 3.554-5.018 1.644-6.001-.408-.894-1.865-.661-5.127-.874-6.875-.35-2.914-2.622-3.03-1.923-4.429.343-.685 2.87.69 3.263 1.748.757 2.04 2.952 1.807 2.622 1.69",fill:"#FFC6A0"}),a.createElement("path",{d:"M99.8 82.429c-.465.077-.35.272-.97 1.243-.622.971-4.817 2.932-6.39 3.224-2.589.48-2.278-1.56-4.254-2.855-1.69-1.107-3.562-.638-1.398 1.398.99.932.932 1.107 1.398 3.205.335 1.506-.64 3.67.7 5.593",stroke:"#DB836E",strokeWidth:".774",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M79.543 108.673c-2.1 2.926-4.266 6.175-5.557 8.762",stroke:"#E59788",strokeWidth:".774",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M87.72 124.768s-2.098-1.942-5.127-2.719c-3.03-.777-3.574-.155-5.516.078-1.942.233-3.885-.932-3.652.7.233 1.63 5.05 1.01 5.206 2.097.155 1.087-6.37 2.796-8.313 2.175-.777.777.466 1.864 2.02 2.175.233 1.554 2.253 1.554 2.253 1.554s.699 1.01 2.641 1.088c2.486 1.32 8.934-.7 10.954-1.554 2.02-.855-.466-5.594-.466-5.594",fill:"#FFC6A0"}),a.createElement("path",{d:"M73.425 122.826s.66 1.127 3.167 1.418c2.315.27 2.563.583 2.563.583s-2.545 2.894-9.07 2.272M72.416 129.274s3.826.097 4.933-.718M74.98 130.75s1.961.136 3.36-.505M77.232 131.916s1.748.019 2.914-.505M73.328 122.321s-.595-1.032 1.262-.427c1.671.544 2.833.055 5.128.155 1.389.061 3.067-.297 3.982.15 1.606.784 3.632 2.181 3.632 2.181s10.526 1.204 19.033-1.127M78.864 108.104s-8.39 2.758-13.168 12.12",stroke:"#E59788",strokeWidth:".774",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M109.278 112.533s3.38-3.613 7.575-4.662",stroke:"#E4EBF7",strokeWidth:"1.085",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M107.375 123.006s9.697-2.745 11.445-.88",stroke:"#E59788",strokeWidth:".774",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M194.605 83.656l3.971-3.886M187.166 90.933l3.736-3.655M191.752 84.207l-4.462-4.56M198.453 91.057l-4.133-4.225M129.256 163.074l3.718-3.718M122.291 170.039l3.498-3.498M126.561 163.626l-4.27-4.27M132.975 170.039l-3.955-3.955",stroke:"#BFCDDD",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M190.156 211.779h-1.604a4.023 4.023 0 0 1-4.011-4.011V175.68a4.023 4.023 0 0 1 4.01-4.01h1.605a4.023 4.023 0 0 1 4.011 4.01v32.088a4.023 4.023 0 0 1-4.01 4.01",fill:"#A3B4C6"}),a.createElement("path",{d:"M237.824 212.977a4.813 4.813 0 0 1-4.813 4.813h-86.636a4.813 4.813 0 0 1 0-9.626h86.636a4.813 4.813 0 0 1 4.813 4.813",fill:"#A3B4C6"}),a.createElement("mask",{fill:"#fff"}),a.createElement("path",{fill:"#A3B4C6",mask:"url(#d)",d:"M154.098 190.096h70.513v-84.617h-70.513z"}),a.createElement("path",{d:"M224.928 190.096H153.78a3.219 3.219 0 0 1-3.208-3.209V167.92a3.219 3.219 0 0 1 3.208-3.21h71.148a3.219 3.219 0 0 1 3.209 3.21v18.967a3.219 3.219 0 0 1-3.21 3.209M224.928 130.832H153.78a3.218 3.218 0 0 1-3.208-3.208v-18.968a3.219 3.219 0 0 1 3.208-3.209h71.148a3.219 3.219 0 0 1 3.209 3.21v18.967a3.218 3.218 0 0 1-3.21 3.208",fill:"#BFCDDD",mask:"url(#d)"}),a.createElement("path",{d:"M159.563 120.546a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M166.98 120.546a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M174.397 120.546a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M222.539 120.546h-22.461a.802.802 0 0 1-.802-.802v-3.208c0-.443.359-.803.802-.803h22.46c.444 0 .803.36.803.803v3.208c0 .443-.36.802-.802.802",fill:"#FFF",mask:"url(#d)"}),a.createElement("path",{d:"M224.928 160.464H153.78a3.218 3.218 0 0 1-3.208-3.209v-18.967a3.219 3.219 0 0 1 3.208-3.209h71.148a3.219 3.219 0 0 1 3.209 3.209v18.967a3.218 3.218 0 0 1-3.21 3.209",fill:"#BFCDDD",mask:"url(#d)"}),a.createElement("path",{d:"M173.455 130.832h49.301M164.984 130.832h6.089M155.952 130.832h6.75M173.837 160.613h49.3M165.365 160.613h6.089M155.57 160.613h6.751",stroke:"#7C90A5",strokeWidth:"1.124",strokeLinecap:"round",strokeLinejoin:"round",mask:"url(#d)"}),a.createElement("path",{d:"M159.563 151.038a2.407 2.407 0 1 1 0-4.814 2.407 2.407 0 0 1 0 4.814M166.98 151.038a2.407 2.407 0 1 1 0-4.814 2.407 2.407 0 0 1 0 4.814M174.397 151.038a2.407 2.407 0 1 1 .001-4.814 2.407 2.407 0 0 1 0 4.814M222.539 151.038h-22.461a.802.802 0 0 1-.802-.802v-3.209c0-.443.359-.802.802-.802h22.46c.444 0 .803.36.803.802v3.209c0 .443-.36.802-.802.802M159.563 179.987a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M166.98 179.987a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M174.397 179.987a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M222.539 179.987h-22.461a.802.802 0 0 1-.802-.802v-3.209c0-.443.359-.802.802-.802h22.46c.444 0 .803.36.803.802v3.209c0 .443-.36.802-.802.802",fill:"#FFF",mask:"url(#d)"}),a.createElement("path",{d:"M203.04 221.108h-27.372a2.413 2.413 0 0 1-2.406-2.407v-11.448a2.414 2.414 0 0 1 2.406-2.407h27.372a2.414 2.414 0 0 1 2.407 2.407V218.7a2.413 2.413 0 0 1-2.407 2.407",fill:"#BFCDDD",mask:"url(#d)"}),a.createElement("path",{d:"M177.259 207.217v11.52M201.05 207.217v11.52",stroke:"#A3B4C6",strokeWidth:"1.124",strokeLinecap:"round",strokeLinejoin:"round",mask:"url(#d)"}),a.createElement("path",{d:"M162.873 267.894a9.422 9.422 0 0 1-9.422-9.422v-14.82a9.423 9.423 0 0 1 18.845 0v14.82a9.423 9.423 0 0 1-9.423 9.422",fill:"#5BA02E",mask:"url(#d)"}),a.createElement("path",{d:"M171.22 267.83a9.422 9.422 0 0 1-9.422-9.423v-3.438a9.423 9.423 0 0 1 18.845 0v3.438a9.423 9.423 0 0 1-9.422 9.423",fill:"#92C110",mask:"url(#d)"}),a.createElement("path",{d:"M181.31 293.666h-27.712a3.209 3.209 0 0 1-3.209-3.21V269.79a3.209 3.209 0 0 1 3.209-3.21h27.711a3.209 3.209 0 0 1 3.209 3.21v20.668a3.209 3.209 0 0 1-3.209 3.209",fill:"#F2D7AD",mask:"url(#d)"})))},b=function(){return a.createElement("svg",{width:"251",height:"294"},a.createElement("g",{fill:"none",fillRule:"evenodd"},a.createElement("path",{d:"M0 129.023v-2.084C0 58.364 55.591 2.774 124.165 2.774h2.085c68.574 0 124.165 55.59 124.165 124.165v2.084c0 68.575-55.59 124.166-124.165 124.166h-2.085C55.591 253.189 0 197.598 0 129.023",fill:"#E4EBF7"}),a.createElement("path",{d:"M41.417 132.92a8.231 8.231 0 1 1-16.38-1.65 8.231 8.231 0 0 1 16.38 1.65",fill:"#FFF"}),a.createElement("path",{d:"M38.652 136.36l10.425 5.91M49.989 148.505l-12.58 10.73",stroke:"#FFF",strokeWidth:"2"}),a.createElement("path",{d:"M41.536 161.28a5.636 5.636 0 1 1-11.216-1.13 5.636 5.636 0 0 1 11.216 1.13M59.154 145.261a5.677 5.677 0 1 1-11.297-1.138 5.677 5.677 0 0 1 11.297 1.138M100.36 29.516l29.66-.013a4.562 4.562 0 1 0-.004-9.126l-29.66.013a4.563 4.563 0 0 0 .005 9.126M111.705 47.754l29.659-.013a4.563 4.563 0 1 0-.004-9.126l-29.66.013a4.563 4.563 0 1 0 .005 9.126",fill:"#FFF"}),a.createElement("path",{d:"M114.066 29.503V29.5l15.698-.007a4.563 4.563 0 1 0 .004 9.126l-15.698.007v-.002a4.562 4.562 0 0 0-.004-9.122M185.405 137.723c-.55 5.455-5.418 9.432-10.873 8.882-5.456-.55-9.432-5.418-8.882-10.873.55-5.455 5.418-9.432 10.873-8.882 5.455.55 9.432 5.418 8.882 10.873",fill:"#FFF"}),a.createElement("path",{d:"M180.17 143.772l12.572 7.129M193.841 158.42L178.67 171.36",stroke:"#FFF",strokeWidth:"2"}),a.createElement("path",{d:"M185.55 171.926a6.798 6.798 0 1 1-13.528-1.363 6.798 6.798 0 0 1 13.527 1.363M204.12 155.285a6.848 6.848 0 1 1-13.627-1.375 6.848 6.848 0 0 1 13.626 1.375",fill:"#FFF"}),a.createElement("path",{d:"M152.988 194.074a2.21 2.21 0 1 1-4.42 0 2.21 2.21 0 0 1 4.42 0zM225.931 118.217a2.21 2.21 0 1 1-4.421 0 2.21 2.21 0 0 1 4.421 0zM217.09 153.051a2.21 2.21 0 1 1-4.421 0 2.21 2.21 0 0 1 4.42 0zM177.84 109.842a2.21 2.21 0 1 1-4.422 0 2.21 2.21 0 0 1 4.421 0zM196.114 94.454a2.21 2.21 0 1 1-4.421 0 2.21 2.21 0 0 1 4.421 0zM202.844 182.523a2.21 2.21 0 1 1-4.42 0 2.21 2.21 0 0 1 4.42 0z",stroke:"#FFF",strokeWidth:"2"}),a.createElement("path",{stroke:"#FFF",strokeWidth:"2",d:"M215.125 155.262l-1.902 20.075-10.87 5.958M174.601 176.636l-6.322 9.761H156.98l-4.484 6.449M175.874 127.28V111.56M221.51 119.404l-12.77 7.859-15.228-7.86V96.668"}),a.createElement("path",{d:"M180.68 29.32C180.68 13.128 193.806 0 210 0c16.193 0 29.32 13.127 29.32 29.32 0 16.194-13.127 29.322-29.32 29.322-16.193 0-29.32-13.128-29.32-29.321",fill:"#A26EF4"}),a.createElement("path",{d:"M221.45 41.706l-21.563-.125a1.744 1.744 0 0 1-1.734-1.754l.071-12.23a1.744 1.744 0 0 1 1.754-1.734l21.562.125c.964.006 1.74.791 1.735 1.755l-.071 12.229a1.744 1.744 0 0 1-1.754 1.734",fill:"#FFF"}),a.createElement("path",{d:"M215.106 29.192c-.015 2.577-2.049 4.654-4.543 4.64-2.494-.014-4.504-2.115-4.489-4.693l.04-6.925c.016-2.577 2.05-4.654 4.543-4.64 2.494.015 4.504 2.116 4.49 4.693l-.04 6.925zm-4.53-14.074a6.877 6.877 0 0 0-6.916 6.837l-.043 7.368a6.877 6.877 0 0 0 13.754.08l.042-7.368a6.878 6.878 0 0 0-6.837-6.917zM167.566 68.367h-3.93a4.73 4.73 0 0 1-4.717-4.717 4.73 4.73 0 0 1 4.717-4.717h3.93a4.73 4.73 0 0 1 4.717 4.717 4.73 4.73 0 0 1-4.717 4.717",fill:"#FFF"}),a.createElement("path",{d:"M168.214 248.838a6.611 6.611 0 0 1-6.61-6.611v-66.108a6.611 6.611 0 0 1 13.221 0v66.108a6.611 6.611 0 0 1-6.61 6.61",fill:"#5BA02E"}),a.createElement("path",{d:"M176.147 248.176a6.611 6.611 0 0 1-6.61-6.61v-33.054a6.611 6.611 0 1 1 13.221 0v33.053a6.611 6.611 0 0 1-6.61 6.611",fill:"#92C110"}),a.createElement("path",{d:"M185.994 293.89h-27.376a3.17 3.17 0 0 1-3.17-3.17v-45.887a3.17 3.17 0 0 1 3.17-3.17h27.376a3.17 3.17 0 0 1 3.17 3.17v45.886a3.17 3.17 0 0 1-3.17 3.17",fill:"#F2D7AD"}),a.createElement("path",{d:"M81.972 147.673s6.377-.927 17.566-1.28c11.729-.371 17.57 1.086 17.57 1.086s3.697-3.855.968-8.424c1.278-12.077 5.982-32.827.335-48.273-1.116-1.339-3.743-1.512-7.536-.62-1.337.315-7.147-.149-7.983-.1l-15.311-.347s-3.487-.17-8.035-.508c-1.512-.113-4.227-1.683-5.458-.338-.406.443-2.425 5.669-1.97 16.077l8.635 35.642s-3.141 3.61 1.219 7.085",fill:"#FFF"}),a.createElement("path",{d:"M75.768 73.325l-.9-6.397 11.982-6.52s7.302-.118 8.038 1.205c.737 1.324-5.616.993-5.616.993s-1.836 1.388-2.615 2.5c-1.654 2.363-.986 6.471-8.318 5.986-1.708.284-2.57 2.233-2.57 2.233",fill:"#FFC6A0"}),a.createElement("path",{d:"M52.44 77.672s14.217 9.406 24.973 14.444c1.061.497-2.094 16.183-11.892 11.811-7.436-3.318-20.162-8.44-21.482-14.496-.71-3.258 2.543-7.643 8.401-11.76M141.862 80.113s-6.693 2.999-13.844 6.876c-3.894 2.11-10.137 4.704-12.33 7.988-6.224 9.314 3.536 11.22 12.947 7.503 6.71-2.651 28.999-12.127 13.227-22.367",fill:"#FFB594"}),a.createElement("path",{d:"M76.166 66.36l3.06 3.881s-2.783 2.67-6.31 5.747c-7.103 6.195-12.803 14.296-15.995 16.44-3.966 2.662-9.754 3.314-12.177-.118-3.553-5.032.464-14.628 31.422-25.95",fill:"#FFC6A0"}),a.createElement("path",{d:"M64.674 85.116s-2.34 8.413-8.912 14.447c.652.548 18.586 10.51 22.144 10.056 5.238-.669 6.417-18.968 1.145-20.531-.702-.208-5.901-1.286-8.853-2.167-.87-.26-1.611-1.71-3.545-.936l-1.98-.869zM128.362 85.826s5.318 1.956 7.325 13.734c-.546.274-17.55 12.35-21.829 7.805-6.534-6.94-.766-17.393 4.275-18.61 4.646-1.121 5.03-1.37 10.23-2.929",fill:"#FFF"}),a.createElement("path",{d:"M78.18 94.656s.911 7.41-4.914 13.078",stroke:"#E4EBF7",strokeWidth:"1.051",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M87.397 94.68s3.124 2.572 10.263 2.572c7.14 0 9.074-3.437 9.074-3.437",stroke:"#E4EBF7",strokeWidth:".932",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M117.184 68.639l-6.781-6.177s-5.355-4.314-9.223-.893c-3.867 3.422 4.463 2.083 5.653 4.165 1.19 2.082.848 1.143-2.083.446-5.603-1.331-2.082.893 2.975 5.355 2.091 1.845 6.992.955 6.992.955l2.467-3.851z",fill:"#FFC6A0"}),a.createElement("path",{d:"M105.282 91.315l-.297-10.937-15.918-.027-.53 10.45c-.026.403.17.788.515.999 2.049 1.251 9.387 5.093 15.799.424.287-.21.443-.554.431-.91",fill:"#FFB594"}),a.createElement("path",{d:"M107.573 74.24c.817-1.147.982-9.118 1.015-11.928a1.046 1.046 0 0 0-.965-1.055l-4.62-.365c-7.71-1.044-17.071.624-18.253 6.346-5.482 5.813-.421 13.244-.421 13.244s1.963 3.566 4.305 6.791c.756 1.041.398-3.731 3.04-5.929 5.524-4.594 15.899-7.103 15.899-7.103",fill:"#5C2552"}),a.createElement("path",{d:"M88.426 83.206s2.685 6.202 11.602 6.522c7.82.28 8.973-7.008 7.434-17.505l-.909-5.483c-6.118-2.897-15.478.54-15.478.54s-.576 2.044-.19 5.504c-2.276 2.066-1.824 5.618-1.824 5.618s-.905-1.922-1.98-2.321c-.86-.32-1.897.089-2.322 1.98-1.04 4.632 3.667 5.145 3.667 5.145",fill:"#FFC6A0"}),a.createElement("path",{stroke:"#DB836E",strokeWidth:"1.145",strokeLinecap:"round",strokeLinejoin:"round",d:"M100.843 77.099l1.701-.928-1.015-4.324.674-1.406"}),a.createElement("path",{d:"M105.546 74.092c-.022.713-.452 1.279-.96 1.263-.51-.016-.904-.607-.882-1.32.021-.713.452-1.278.96-1.263.51.016.904.607.882 1.32M97.592 74.349c-.022.713-.452 1.278-.961 1.263-.509-.016-.904-.607-.882-1.32.022-.713.452-1.279.961-1.263.51.016.904.606.882 1.32",fill:"#552950"}),a.createElement("path",{d:"M91.132 86.786s5.269 4.957 12.679 2.327",stroke:"#DB836E",strokeWidth:"1.145",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M99.776 81.903s-3.592.232-1.44-2.79c1.59-1.496 4.897-.46 4.897-.46s1.156 3.906-3.457 3.25",fill:"#DB836E"}),a.createElement("path",{d:"M102.88 70.6s2.483.84 3.402.715M93.883 71.975s2.492-1.144 4.778-1.073",stroke:"#5C2552",strokeWidth:"1.526",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M86.32 77.374s.961.879 1.458 2.106c-.377.48-1.033 1.152-.236 1.809M99.337 83.719s1.911.151 2.509-.254",stroke:"#DB836E",strokeWidth:"1.145",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M87.782 115.821l15.73-3.012M100.165 115.821l10.04-2.008",stroke:"#E4EBF7",strokeWidth:"1.051",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M66.508 86.763s-1.598 8.83-6.697 14.078",stroke:"#E4EBF7",strokeWidth:"1.114",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M128.31 87.934s3.013 4.121 4.06 11.785",stroke:"#E4EBF7",strokeWidth:"1.051",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M64.09 84.816s-6.03 9.912-13.607 9.903",stroke:"#DB836E",strokeWidth:".795",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M112.366 65.909l-.142 5.32s5.993 4.472 11.945 9.202c4.482 3.562 8.888 7.455 10.985 8.662 4.804 2.766 8.9 3.355 11.076 1.808 4.071-2.894 4.373-9.878-8.136-15.263-4.271-1.838-16.144-6.36-25.728-9.73",fill:"#FFC6A0"}),a.createElement("path",{d:"M130.532 85.488s4.588 5.757 11.619 6.214",stroke:"#DB836E",strokeWidth:".75",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M121.708 105.73s-.393 8.564-1.34 13.612",stroke:"#E4EBF7",strokeWidth:"1.051",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M115.784 161.512s-3.57-1.488-2.678-7.14",stroke:"#648BD8",strokeWidth:"1.051",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M101.52 290.246s4.326 2.057 7.408 1.03c2.842-.948 4.564.673 7.132 1.186 2.57.514 6.925 1.108 11.772-1.269-.104-5.551-6.939-4.01-12.048-6.763-2.582-1.39-3.812-4.757-3.625-8.863h-9.471s-1.402 10.596-1.169 14.68",fill:"#CBD1D1"}),a.createElement("path",{d:"M101.496 290.073s2.447 1.281 6.809.658c3.081-.44 3.74.485 7.479 1.039 3.739.554 10.802-.07 11.91-.9.415 1.108-.347 2.077-.347 2.077s-1.523.608-4.847.831c-2.045.137-5.843.293-7.663-.507-1.8-1.385-5.286-1.917-5.77-.243-3.947.958-7.41-.288-7.41-.288l-.16-2.667z",fill:"#2B0849"}),a.createElement("path",{d:"M108.824 276.19h3.116s-.103 6.751 4.57 8.62c-4.673.624-8.62-2.32-7.686-8.62",fill:"#A4AABA"}),a.createElement("path",{d:"M57.65 272.52s-2.122 7.47-4.518 12.396c-1.811 3.724-4.255 7.548 5.505 7.548 6.698 0 9.02-.483 7.479-6.648-1.541-6.164.268-13.296.268-13.296H57.65z",fill:"#CBD1D1"}),a.createElement("path",{d:"M51.54 290.04s2.111 1.178 6.682 1.178c6.128 0 8.31-1.662 8.31-1.662s.605 1.122-.624 2.18c-1 .862-3.624 1.603-7.444 1.559-4.177-.049-5.876-.57-6.786-1.177-.831-.554-.692-1.593-.138-2.078",fill:"#2B0849"}),a.createElement("path",{d:"M58.533 274.438s.034 1.529-.315 2.95c-.352 1.431-1.087 3.127-1.139 4.17-.058 1.16 4.57 1.592 5.194.035.623-1.559 1.303-6.475 1.927-7.306.622-.831-4.94-2.135-5.667.15",fill:"#A4AABA"}),a.createElement("path",{d:"M100.885 277.015l13.306.092s1.291-54.228 1.843-64.056c.552-9.828 3.756-43.13.997-62.788l-12.48-.64-22.725.776s-.433 3.944-1.19 9.921c-.062.493-.677.838-.744 1.358-.075.582.42 1.347.318 1.956-2.35 14.003-6.343 32.926-8.697 46.425-.116.663-1.227 1.004-1.45 2.677-.04.3.21 1.516.112 1.785-6.836 18.643-10.89 47.584-14.2 61.551l14.528-.014s2.185-8.524 4.008-16.878c2.796-12.817 22.987-84.553 22.987-84.553l3-.517 1.037 46.1s-.223 1.228.334 2.008c.558.782-.556 1.117-.39 2.233l.39 1.784s-.446 7.14-.892 11.826c-.446 4.685-.092 38.954-.092 38.954",fill:"#7BB2F9"}),a.createElement("path",{d:"M77.438 220.434c1.146.094 4.016-2.008 6.916-4.91M107.55 223.931s2.758-1.103 6.069-3.862",stroke:"#648BD8",strokeWidth:"1.051",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M108.459 220.905s2.759-1.104 6.07-3.863",stroke:"#648BD8",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M76.099 223.557s2.608-.587 6.47-3.346M87.33 150.82c-.27 3.088.297 8.478-4.315 9.073M104.829 149.075s.11 13.936-1.286 14.983c-2.207 1.655-2.975 1.934-2.975 1.934M101.014 149.63s.035 12.81-1.19 24.245M94.93 174.965s7.174-1.655 9.38-1.655M75.671 204.754c-.316 1.55-.64 3.067-.973 4.535 0 0-1.45 1.822-1.003 3.756.446 1.934-.943 2.034-4.96 15.273-1.686 5.559-4.464 18.49-6.313 27.447-.078.38-4.018 18.06-4.093 18.423M77.043 196.743a313.269 313.269 0 0 1-.877 4.729M83.908 151.414l-1.19 10.413s-1.091.148-.496 2.23c.111 1.34-2.66 15.692-5.153 30.267M57.58 272.94h13.238",stroke:"#648BD8",strokeWidth:"1.051",strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M117.377 147.423s-16.955-3.087-35.7.199c.157 2.501-.002 4.128-.002 4.128s14.607-2.802 35.476-.31c.251-2.342.226-4.017.226-4.017",fill:"#192064"}),a.createElement("path",{d:"M107.511 150.353l.004-4.885a.807.807 0 0 0-.774-.81c-2.428-.092-5.04-.108-7.795-.014a.814.814 0 0 0-.784.81l-.003 4.88c0 .456.371.82.827.808a140.76 140.76 0 0 1 7.688.017.81.81 0 0 0 .837-.806",fill:"#FFF"}),a.createElement("path",{d:"M106.402 149.426l.002-3.06a.64.64 0 0 0-.616-.643 94.135 94.135 0 0 0-5.834-.009.647.647 0 0 0-.626.643l-.001 3.056c0 .36.291.648.651.64 1.78-.04 3.708-.041 5.762.012.36.009.662-.279.662-.64",fill:"#192064"}),a.createElement("path",{d:"M101.485 273.933h12.272M102.652 269.075c.006 3.368.04 5.759.11 6.47M102.667 263.125c-.009 1.53-.015 2.98-.016 4.313M102.204 174.024l.893 44.402s.669 1.561-.224 2.677c-.892 1.116 2.455.67.893 2.231-1.562 1.562.893 1.116 0 3.347-.592 1.48-.988 20.987-1.09 34.956",stroke:"#648BD8",strokeWidth:"1.051",strokeLinecap:"round",strokeLinejoin:"round"})))},M={success:i.Z,error:c.Z,info:u.Z,warning:v},E={404:y,500:g,403:b},C=Object.keys(E),x=function(e){var t=e.prefixCls,n=e.className,o=e.subTitle,i=e.title,c=e.style,u=e.children,s=e.status,f=void 0===s?"info":s,d=e.icon,p=e.extra,v=a.useContext(m.E_),y=v.getPrefixCls,g=v.direction,b=y("result",t),x=l()(b,"".concat(b,"-").concat(f),n,(0,r.Z)({},"".concat(b,"-rtl"),"rtl"===g));return a.createElement("div",{className:x,style:c},function(e,t){var n=t.status,r=t.icon,o=l()("".concat(e,"-icon"));if((0,h.Z)(!("string"===typeof r&&r.length>2),"Result","`icon` is using ReactNode instead of string naming in v4. Please check `".concat(r,"` at https://ant.design/components/icon")),C.includes("".concat(n))){var i=E[n];return a.createElement("div",{className:"".concat(o," ").concat(e,"-image")},a.createElement(i,null))}var c=a.createElement(M[n]);return a.createElement("div",{className:o},r||c)}(b,{status:f,icon:d}),a.createElement("div",{className:"".concat(b,"-title")},i),o&&a.createElement("div",{className:"".concat(b,"-subtitle")},o),function(e,t){var n=t.extra;return n&&a.createElement("div",{className:"".concat(e,"-extra")},n)}(b,{extra:p}),u&&a.createElement("div",{className:"".concat(b,"-content")},u))};x.PRESENTED_IMAGE_403=E[403],x.PRESENTED_IMAGE_404=E[404],x.PRESENTED_IMAGE_500=E[500];var O=x},45471:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PresetStatusColorTypes=t.PresetColorTypes=void 0;var r=n(66764),a=(0,r.tuple)("success","processing","error","default","warning");t.PresetStatusColorTypes=a;var o=(0,r.tuple)("pink","red","yellow","orange","cyan","green","blue","purple","geekblue","magenta","volcano","gold","lime");t.PresetColorTypes=o},72454:function(e,t,n){"use strict";var r=n(50008);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,Object.defineProperty(t,"resetWarned",{enumerable:!0,get:function(){return a.resetWarned}});var a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!==typeof e)return{default:e};var n=o(t);if(n&&n.has(e))return n.get(e);var a={},l=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var c=l?Object.getOwnPropertyDescriptor(e,i):null;c&&(c.get||c.set)?Object.defineProperty(a,i,c):a[i]=e[i]}a.default=e,n&&n.set(e,a);return a}(n(45520));function o(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(o=function(e){return e?n:t})(e)}t.default=function(e,t,n){(0,a.default)(e,"[antd: ".concat(t,"] ").concat(n))}},53683:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getTransitionName=t.default=void 0;var n=function(){return{height:0,opacity:0}},r=function(e){return{height:e.scrollHeight,opacity:1}},a=function(e,t){return!0===(null===t||void 0===t?void 0:t.deadline)||"height"===t.propertyName},o={motionName:"ant-motion-collapse",onAppearStart:n,onEnterStart:n,onAppearActive:r,onEnterActive:r,onLeaveStart:function(e){return{height:e?e.offsetHeight:0}},onLeaveActive:n,onAppearEnd:a,onEnterEnd:a,onLeaveEnd:a,motionDeadline:500};t.getTransitionName=function(e,t,n){return void 0!==n?n:"".concat(e,"-").concat(t)};var l=o;t.default=l},59632:function(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=i;var a=r(n(64543)),o=0,l={};function i(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=o++,r=t;function i(){(r-=1)<=0?(e(),delete l[n]):l[n]=(0,a.default)(i)}return l[n]=(0,a.default)(i),n}i.cancel=function(e){void 0!==e&&(a.default.cancel(l[e]),delete l[e])},i.ids=l},47419:function(e,t,n){"use strict";var r=n(50008);Object.defineProperty(t,"__esModule",{value:!0}),t.cloneElement=function(e,t){return i(e,e,t)},t.isValidElement=void 0,t.replaceElement=i;var a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!==typeof e)return{default:e};var n=o(t);if(n&&n.has(e))return n.get(e);var a={},l=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var c=l?Object.getOwnPropertyDescriptor(e,i):null;c&&(c.get||c.set)?Object.defineProperty(a,i,c):a[i]=e[i]}a.default=e,n&&n.set(e,a);return a}(n(67294));function o(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(o=function(e){return e?n:t})(e)}var l=a.isValidElement;function i(e,t,n){return l(e)?a.cloneElement(e,"function"===typeof n?n(e.props||{}):n):t}t.isValidElement=l},38882:function(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.detectFlexGapSupported=t.canUseDocElement=void 0,Object.defineProperty(t,"isStyleSupport",{enumerable:!0,get:function(){return l.isStyleSupport}});var a,o=r(n(19158)),l=n(3481),i=function(){return(0,o.default)()&&window.document.documentElement};t.canUseDocElement=i;t.detectFlexGapSupported=function(){if(!i())return!1;if(void 0!==a)return a;var e=document.createElement("div");return e.style.display="flex",e.style.flexDirection="column",e.style.rowGap="1px",e.appendChild(document.createElement("div")),e.appendChild(document.createElement("div")),document.body.appendChild(e),a=1===e.scrollHeight,document.body.removeChild(e),a}},60938:function(e,t,n){"use strict";var r=n(95318),a=n(50008);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(67154)),l=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==a(e)&&"function"!==typeof e)return{default:e};var n=c(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var i=o?Object.getOwnPropertyDescriptor(e,l):null;i&&(i.get||i.set)?Object.defineProperty(r,l,i):r[l]=e[l]}r.default=e,n&&n.set(e,r);return r}(n(67294)),i=r(n(27712));function c(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(c=function(e){return e?n:t})(e)}var u=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},s={border:0,background:"transparent",padding:0,lineHeight:"inherit",display:"inline-block"},f=l.forwardRef((function(e,t){var n=e.style,r=e.noStyle,a=e.disabled,c=u(e,["style","noStyle","disabled"]),f={};return r||(f=(0,o.default)({},s)),a&&(f.pointerEvents="none"),f=(0,o.default)((0,o.default)({},f),n),l.createElement("div",(0,o.default)({role:"button",tabIndex:0,ref:t},c,{onKeyDown:function(e){e.keyCode===i.default.ENTER&&e.preventDefault()},onKeyUp:function(t){var n=t.keyCode,r=e.onClick;n===i.default.ENTER&&r&&r()},style:f}))}));t.default=f},66764:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.tupleNum=t.tuple=void 0;t.tuple=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t};t.tupleNum=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t}},1028:function(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=r(n(25633)).default;t.default=a},89281:function(e,t,n){"use strict";var r=n(95318),a=n(50008);t.Z=void 0;var o=r(n(67154)),l=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==a(e)&&"function"!==typeof e)return{default:e};var n=u(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var i=o?Object.getOwnPropertyDescriptor(e,l):null;i&&(i.get||i.set)?Object.defineProperty(r,l,i):r[l]=e[l]}r.default=e,n&&n.set(e,r);return r}(n(67294)),i=r(n(94184)),c=n(31929);function u(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(u=function(e){return e?n:t})(e)}var s=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},f=function(e){return l.createElement(c.ConfigConsumer,null,(function(t){var n=t.getPrefixCls,r=e.prefixCls,a=e.className,c=e.avatar,u=e.title,f=e.description,d=s(e,["prefixCls","className","avatar","title","description"]),p=n("card",r),v=(0,i.default)("".concat(p,"-meta"),a),m=c?l.createElement("div",{className:"".concat(p,"-meta-avatar")},c):null,h=u?l.createElement("div",{className:"".concat(p,"-meta-title")},u):null,y=f?l.createElement("div",{className:"".concat(p,"-meta-description")},f):null,g=h||y?l.createElement("div",{className:"".concat(p,"-meta-detail")},h,y):null;return l.createElement("div",(0,o.default)({},d,{className:v}),m,g)}))};t.Z=f},3236:function(e,t,n){"use strict";var r=n(50008);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.SizeContextProvider=void 0;var a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!==typeof e)return{default:e};var n=o(t);if(n&&n.has(e))return n.get(e);var a={},l=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var c=l?Object.getOwnPropertyDescriptor(e,i):null;c&&(c.get||c.set)?Object.defineProperty(a,i,c):a[i]=e[i]}a.default=e,n&&n.set(e,a);return a}(n(67294));function o(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(o=function(e){return e?n:t})(e)}var l=a.createContext(void 0);t.SizeContextProvider=function(e){var t=e.children,n=e.size;return a.createElement(l.Consumer,null,(function(e){return a.createElement(l.Provider,{value:n||e},t)}))};var i=l;t.default=i},7177:function(e,t,n){"use strict";var r=n(95318),a=n(50008);Object.defineProperty(t,"__esModule",{value:!0}),t.ConfigContext=t.ConfigConsumer=void 0,t.withConfigConsumer=function(e){return function(t){var n=function(n){return l.createElement(s,null,(function(r){var a=e.prefixCls,i=(0,r.getPrefixCls)(a,n.prefixCls);return l.createElement(t,(0,o.default)({},r,n,{prefixCls:i}))}))},r=t.constructor,a=r&&r.displayName||t.name||"Component";return n.displayName="withConfigConsumer(".concat(a,")"),n}};var o=r(n(67154)),l=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==a(e)&&"function"!==typeof e)return{default:e};var n=c(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var i=o?Object.getOwnPropertyDescriptor(e,l):null;i&&(i.get||i.set)?Object.defineProperty(r,l,i):r[l]=e[l]}r.default=e,n&&n.set(e,r);return r}(n(67294)),i=r(n(95190));function c(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(c=function(e){return e?n:t})(e)}var u=l.createContext({getPrefixCls:function(e,t){return t||(e?"ant-".concat(e):"ant")},renderEmpty:i.default});t.ConfigContext=u;var s=u.Consumer;t.ConfigConsumer=s},56301:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.registerTheme=function(e,t){var n={},i=function(e,t){var n=e.clone();return(n=(null===t||void 0===t?void 0:t(n))||n).toRgbString()},c=function(e,t){var r=new a.TinyColor(e),l=(0,o.generate)(r.toRgbString());n["".concat(t,"-color")]=i(r),n["".concat(t,"-color-disabled")]=l[1],n["".concat(t,"-color-hover")]=l[4],n["".concat(t,"-color-active")]=l[7],n["".concat(t,"-color-outline")]=r.clone().setAlpha(.2).toRgbString(),n["".concat(t,"-color-deprecated-bg")]=l[1],n["".concat(t,"-color-deprecated-border")]=l[3]};if(t.primaryColor){c(t.primaryColor,"primary");var u=new a.TinyColor(t.primaryColor),s=(0,o.generate)(u.toRgbString());s.forEach((function(e,t){n["primary-".concat(t+1)]=e})),n["primary-color-deprecated-l-35"]=i(u,(function(e){return e.lighten(35)})),n["primary-color-deprecated-l-20"]=i(u,(function(e){return e.lighten(20)})),n["primary-color-deprecated-t-20"]=i(u,(function(e){return e.tint(20)})),n["primary-color-deprecated-t-50"]=i(u,(function(e){return e.tint(50)})),n["primary-color-deprecated-f-12"]=i(u,(function(e){return e.setAlpha(.12*e.getAlpha())}));var f=new a.TinyColor(s[0]);n["primary-color-active-deprecated-f-30"]=i(f,(function(e){return e.setAlpha(.3*e.getAlpha())})),n["primary-color-active-deprecated-d-02"]=i(f,(function(e){return e.darken(2)}))}t.successColor&&c(t.successColor,"success");t.warningColor&&c(t.warningColor,"warning");t.errorColor&&c(t.errorColor,"error");t.infoColor&&c(t.infoColor,"info");var d=Object.keys(n).map((function(t){return"--".concat(e,"-").concat(t,": ").concat(n[t],";")}));(0,r.updateCSS)("\n :root {\n ".concat(d.join("\n"),"\n }\n "),"".concat(l,"-dynamic-theme"))};var r=n(93399),a=n(131),o=n(92138),l="-ant-".concat(Date.now(),"-").concat(Math.random())},31929:function(e,t,n){"use strict";var r=n(95318),a=n(50008);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ConfigConsumer",{enumerable:!0,get:function(){return d.ConfigConsumer}}),Object.defineProperty(t,"ConfigContext",{enumerable:!0,get:function(){return d.ConfigContext}}),t.globalConfig=t.defaultPrefixCls=t.defaultIconPrefixCls=t.default=t.configConsumerProps=void 0;var o=r(n(67154)),l=b(n(67294)),i=r(n(98399)),c=n(7866),u=r(n(67265)),s=b(n(53594)),f=r(n(73625)),d=n(7177),p=b(n(3236)),v=r(n(11187)),m=r(n(16318)),h=n(56301),y=r(n(56350));function g(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(g=function(e){return e?n:t})(e)}function b(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==a(e)&&"function"!==typeof e)return{default:e};var n=g(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var i=o?Object.getOwnPropertyDescriptor(e,l):null;i&&(i.get||i.set)?Object.defineProperty(r,l,i):r[l]=e[l]}return r.default=e,n&&n.set(e,r),r}t.configConsumerProps=["getTargetContainer","getPopupContainer","rootPrefixCls","getPrefixCls","renderEmpty","csp","autoInsertSpaceInButton","locale","pageHeader"];var M=["getTargetContainer","getPopupContainer","renderEmpty","pageHeader","input","form"];t.defaultPrefixCls="ant";var E,C,x="anticon";function O(){return E||"ant"}function w(){return C||x}t.defaultIconPrefixCls=x;t.globalConfig=function(){return{getPrefixCls:function(e,t){return t||(e?"".concat(O(),"-").concat(e):O())},getIconPrefixCls:w,getRootPrefixCls:function(e,t){return e||(E||(t&&t.includes("-")?t.replace(/^(.*)-[^-]*$/,"$1"):O()))}}};var k=function(e){var t,n,r,a=e.children,f=e.csp,v=e.autoInsertSpaceInButton,m=e.form,h=e.locale,g=e.componentSize,b=e.direction,E=e.space,C=e.virtual,x=e.dropdownMatchSelectWidth,O=e.legacyLocale,w=e.parentContext,k=e.iconPrefixCls,P=l.useCallback((function(t,n){var r=e.prefixCls;if(n)return n;var a=r||w.getPrefixCls("");return t?"".concat(a,"-").concat(t):a}),[w.getPrefixCls,e.prefixCls]),_=(0,o.default)((0,o.default)({},w),{csp:f,autoInsertSpaceInButton:v,locale:h||O,direction:b,space:E,virtual:C,dropdownMatchSelectWidth:x,getPrefixCls:P});M.forEach((function(t){var n=e[t];n&&(_[t]=n)}));var j=(0,u.default)((function(){return _}),_,(function(e,t){var n=Object.keys(e),r=Object.keys(t);return n.length!==r.length||n.some((function(n){return e[n]!==t[n]}))})),N=l.useMemo((function(){return{prefixCls:k,csp:f}}),[k]),S=a,T=(0,o.default)({},null===(t=y.default.Form)||void 0===t?void 0:t.defaultValidateMessages);return h&&(T=(null===(n=h.Form)||void 0===n?void 0:n.defaultValidateMessages)||(null===(r=y.default.Form)||void 0===r?void 0:r.defaultValidateMessages)||{}),m&&m.validateMessages&&(T=(0,o.default)((0,o.default)({},T),m.validateMessages)),Object.keys(T).length>0&&(S=l.createElement(c.FormProvider,{validateMessages:T},a)),h&&(S=l.createElement(s.default,{locale:h,_ANT_MARK__:s.ANT_MARK},S)),k&&(S=l.createElement(i.default.Provider,{value:N},S)),g&&(S=l.createElement(p.SizeContextProvider,{size:g},S)),l.createElement(d.ConfigContext.Provider,{value:j},S)},P=function(e){return l.useEffect((function(){e.direction&&(v.default.config({rtl:"rtl"===e.direction}),m.default.config({rtl:"rtl"===e.direction}))}),[e.direction]),l.createElement(f.default,null,(function(t,n,r){return l.createElement(d.ConfigConsumer,null,(function(t){return l.createElement(k,(0,o.default)({parentContext:t,legacyLocale:r},e))}))}))};P.ConfigContext=d.ConfigContext,P.SizeContext=p.default,P.config=function(e){var t=e.prefixCls,n=e.iconPrefixCls,r=e.theme;void 0!==t&&(E=t),void 0!==n&&(C=n),r&&(0,h.registerTheme)(O(),r)};var _=P;t.default=_},95190:function(e,t,n){"use strict";var r=n(95318),a=n(50008);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==a(e)&&"function"!==typeof e)return{default:e};var n=c(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var i=o?Object.getOwnPropertyDescriptor(e,l):null;i&&(i.get||i.set)?Object.defineProperty(r,l,i):r[l]=e[l]}r.default=e,n&&n.set(e,r);return r}(n(67294)),l=r(n(36671)),i=n(31929);function c(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(c=function(e){return e?n:t})(e)}var u=function(e){return o.createElement(i.ConfigConsumer,null,(function(t){var n=(0,t.getPrefixCls)("empty");switch(e){case"Table":case"List":return o.createElement(l.default,{image:l.default.PRESENTED_IMAGE_SIMPLE});case"Select":case"TreeSelect":case"Cascader":case"Transfer":case"Mentions":return o.createElement(l.default,{image:l.default.PRESENTED_IMAGE_SIMPLE,className:"".concat(n,"-small")});default:return o.createElement(l.default,null)}}))};t.default=u},25633:function(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=r(n(67154)),o=r(n(27590)),l=r(n(52040)),i={lang:(0,a.default)({placeholder:"Select date",yearPlaceholder:"Select year",quarterPlaceholder:"Select quarter",monthPlaceholder:"Select month",weekPlaceholder:"Select week",rangePlaceholder:["Start date","End date"],rangeYearPlaceholder:["Start year","End year"],rangeMonthPlaceholder:["Start month","End month"],rangeWeekPlaceholder:["Start week","End week"]},o.default),timePickerLocale:(0,a.default)({},l.default)};t.default=i},12268:function(e,t,n){"use strict";var r=n(50008);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!==typeof e)return{default:e};var n=l(t);if(n&&n.has(e))return n.get(e);var a={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var c=o?Object.getOwnPropertyDescriptor(e,i):null;c&&(c.get||c.set)?Object.defineProperty(a,i,c):a[i]=e[i]}a.default=e,n&&n.set(e,a);return a}(n(67294)),o=n(31929);function l(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(l=function(e){return e?n:t})(e)}var i=function(){var e=(0,a.useContext(o.ConfigContext).getPrefixCls)("empty-img-default");return a.createElement("svg",{className:e,width:"184",height:"152",viewBox:"0 0 184 152",xmlns:"http://www.w3.org/2000/svg"},a.createElement("g",{fill:"none",fillRule:"evenodd"},a.createElement("g",{transform:"translate(24 31.67)"},a.createElement("ellipse",{className:"".concat(e,"-ellipse"),cx:"67.797",cy:"106.89",rx:"67.797",ry:"12.668"}),a.createElement("path",{className:"".concat(e,"-path-1"),d:"M122.034 69.674L98.109 40.229c-1.148-1.386-2.826-2.225-4.593-2.225h-51.44c-1.766 0-3.444.839-4.592 2.225L13.56 69.674v15.383h108.475V69.674z"}),a.createElement("path",{className:"".concat(e,"-path-2"),d:"M101.537 86.214L80.63 61.102c-1.001-1.207-2.507-1.867-4.048-1.867H31.724c-1.54 0-3.047.66-4.048 1.867L6.769 86.214v13.792h94.768V86.214z",transform:"translate(13.56)"}),a.createElement("path",{className:"".concat(e,"-path-3"),d:"M33.83 0h67.933a4 4 0 0 1 4 4v93.344a4 4 0 0 1-4 4H33.83a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4z"}),a.createElement("path",{className:"".concat(e,"-path-4"),d:"M42.678 9.953h50.237a2 2 0 0 1 2 2V36.91a2 2 0 0 1-2 2H42.678a2 2 0 0 1-2-2V11.953a2 2 0 0 1 2-2zM42.94 49.767h49.713a2.262 2.262 0 1 1 0 4.524H42.94a2.262 2.262 0 0 1 0-4.524zM42.94 61.53h49.713a2.262 2.262 0 1 1 0 4.525H42.94a2.262 2.262 0 0 1 0-4.525zM121.813 105.032c-.775 3.071-3.497 5.36-6.735 5.36H20.515c-3.238 0-5.96-2.29-6.734-5.36a7.309 7.309 0 0 1-.222-1.79V69.675h26.318c2.907 0 5.25 2.448 5.25 5.42v.04c0 2.971 2.37 5.37 5.277 5.37h34.785c2.907 0 5.277-2.421 5.277-5.393V75.1c0-2.972 2.343-5.426 5.25-5.426h26.318v33.569c0 .617-.077 1.216-.221 1.789z"})),a.createElement("path",{className:"".concat(e,"-path-5"),d:"M149.121 33.292l-6.83 2.65a1 1 0 0 1-1.317-1.23l1.937-6.207c-2.589-2.944-4.109-6.534-4.109-10.408C138.802 8.102 148.92 0 161.402 0 173.881 0 184 8.102 184 18.097c0 9.995-10.118 18.097-22.599 18.097-4.528 0-8.744-1.066-12.28-2.902z"}),a.createElement("g",{className:"".concat(e,"-g"),transform:"translate(149.65 15.383)"},a.createElement("ellipse",{cx:"20.654",cy:"3.167",rx:"2.849",ry:"2.815"}),a.createElement("path",{d:"M5.698 5.63H0L2.898.704zM9.259.704h4.985V5.63H9.259z"}))))};t.default=i},36671:function(e,t,n){"use strict";var r=n(95318),a=n(50008);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(67154)),l=r(n(59713)),i=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==a(e)&&"function"!==typeof e)return{default:e};var n=p(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var i=o?Object.getOwnPropertyDescriptor(e,l):null;i&&(i.get||i.set)?Object.defineProperty(r,l,i):r[l]=e[l]}r.default=e,n&&n.set(e,r);return r}(n(67294)),c=r(n(94184)),u=n(31929),s=r(n(73625)),f=r(n(12268)),d=r(n(69749));function p(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(p=function(e){return e?n:t})(e)}var v=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},m=i.createElement(f.default,null),h=i.createElement(d.default,null),y=function(e){var t=e.className,n=e.prefixCls,r=e.image,a=void 0===r?m:r,f=e.description,d=e.children,p=e.imageStyle,y=v(e,["className","prefixCls","image","description","children","imageStyle"]),g=i.useContext(u.ConfigContext),b=g.getPrefixCls,M=g.direction;return i.createElement(s.default,{componentName:"Empty"},(function(e){var r,u=b("empty",n),s="undefined"!==typeof f?f:e.description,v="string"===typeof s?s:"empty",m=null;return m="string"===typeof a?i.createElement("img",{alt:v,src:a}):a,i.createElement("div",(0,o.default)({className:(0,c.default)(u,(r={},(0,l.default)(r,"".concat(u,"-normal"),a===h),(0,l.default)(r,"".concat(u,"-rtl"),"rtl"===M),r),t)},y),i.createElement("div",{className:"".concat(u,"-image"),style:p},m),s&&i.createElement("div",{className:"".concat(u,"-description")},s),d&&i.createElement("div",{className:"".concat(u,"-footer")},d))}))};y.PRESENTED_IMAGE_DEFAULT=m,y.PRESENTED_IMAGE_SIMPLE=h;var g=y;t.default=g},69749:function(e,t,n){"use strict";var r=n(50008);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!==typeof e)return{default:e};var n=l(t);if(n&&n.has(e))return n.get(e);var a={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var c=o?Object.getOwnPropertyDescriptor(e,i):null;c&&(c.get||c.set)?Object.defineProperty(a,i,c):a[i]=e[i]}a.default=e,n&&n.set(e,a);return a}(n(67294)),o=n(31929);function l(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(l=function(e){return e?n:t})(e)}var i=function(){var e=(0,a.useContext(o.ConfigContext).getPrefixCls)("empty-img-simple");return a.createElement("svg",{className:e,width:"64",height:"41",viewBox:"0 0 64 41",xmlns:"http://www.w3.org/2000/svg"},a.createElement("g",{transform:"translate(0 1)",fill:"none",fillRule:"evenodd"},a.createElement("ellipse",{className:"".concat(e,"-ellipse"),cx:"32",cy:"33",rx:"32",ry:"7"}),a.createElement("g",{className:"".concat(e,"-g"),fillRule:"nonzero"},a.createElement("path",{d:"M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z"}),a.createElement("path",{d:"M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z",className:"".concat(e,"-path")}))))};t.default=i},67434:function(e,t,n){"use strict";var r=n(95318),a=n(50008);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(59713)),l=r(n(34575)),i=r(n(93913)),c=r(n(2205)),u=r(n(99842)),s=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==a(e)&&"function"!==typeof e)return{default:e};var n=h(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var i=o?Object.getOwnPropertyDescriptor(e,l):null;i&&(i.get||i.set)?Object.defineProperty(r,l,i):r[l]=e[l]}r.default=e,n&&n.set(e,r);return r}(n(67294)),f=r(n(94184)),d=r(n(42547)),p=n(66764),v=n(47419),m=n(36714);function h(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(h=function(e){return e?n:t})(e)}var y=(0,p.tuple)("text","input");function g(e){return!(!e.addonBefore&&!e.addonAfter)}var b=function(e){(0,c.default)(n,e);var t=(0,u.default)(n);function n(){var e;return(0,l.default)(this,n),(e=t.apply(this,arguments)).containerRef=s.createRef(),e.onInputMouseUp=function(t){var n;if(null===(n=e.containerRef.current)||void 0===n?void 0:n.contains(t.target)){var r=e.props.triggerFocus;null===r||void 0===r||r()}},e}return(0,i.default)(n,[{key:"renderClearIcon",value:function(e){var t,n=this.props,r=n.allowClear,a=n.value,l=n.disabled,i=n.readOnly,c=n.handleReset,u=n.suffix;if(!r)return null;var p=!l&&!i&&a,v="".concat(e,"-clear-icon");return s.createElement(d.default,{onClick:c,onMouseDown:function(e){return e.preventDefault()},className:(0,f.default)((t={},(0,o.default)(t,"".concat(v,"-hidden"),!p),(0,o.default)(t,"".concat(v,"-has-suffix"),!!u),t),v),role:"button"})}},{key:"renderSuffix",value:function(e){var t=this.props,n=t.suffix,r=t.allowClear;return n||r?s.createElement("span",{className:"".concat(e,"-suffix")},this.renderClearIcon(e),n):null}},{key:"renderLabeledIcon",value:function(e,t){var n,r=this.props,a=r.focused,l=r.value,i=r.prefix,c=r.className,u=r.size,d=r.suffix,p=r.disabled,h=r.allowClear,y=r.direction,b=r.style,M=r.readOnly,E=r.bordered;if(!(0,m.hasPrefixSuffix)(this.props))return(0,v.cloneElement)(t,{value:l});var C=this.renderSuffix(e),x=i?s.createElement("span",{className:"".concat(e,"-prefix")},i):null,O=(0,f.default)("".concat(e,"-affix-wrapper"),(n={},(0,o.default)(n,"".concat(e,"-affix-wrapper-focused"),a),(0,o.default)(n,"".concat(e,"-affix-wrapper-disabled"),p),(0,o.default)(n,"".concat(e,"-affix-wrapper-sm"),"small"===u),(0,o.default)(n,"".concat(e,"-affix-wrapper-lg"),"large"===u),(0,o.default)(n,"".concat(e,"-affix-wrapper-input-with-clear-btn"),d&&h&&l),(0,o.default)(n,"".concat(e,"-affix-wrapper-rtl"),"rtl"===y),(0,o.default)(n,"".concat(e,"-affix-wrapper-readonly"),M),(0,o.default)(n,"".concat(e,"-affix-wrapper-borderless"),!E),(0,o.default)(n,"".concat(c),!g(this.props)&&c),n));return s.createElement("span",{ref:this.containerRef,className:O,style:b,onMouseUp:this.onInputMouseUp},x,(0,v.cloneElement)(t,{style:null,value:l,className:(0,m.getInputClassName)(e,E,u,p)}),C)}},{key:"renderInputWithLabel",value:function(e,t){var n,r=this.props,a=r.addonBefore,l=r.addonAfter,i=r.style,c=r.size,u=r.className,d=r.direction;if(!g(this.props))return t;var p="".concat(e,"-group"),m="".concat(p,"-addon"),h=a?s.createElement("span",{className:m},a):null,y=l?s.createElement("span",{className:m},l):null,b=(0,f.default)("".concat(e,"-wrapper"),p,(0,o.default)({},"".concat(p,"-rtl"),"rtl"===d)),M=(0,f.default)("".concat(e,"-group-wrapper"),(n={},(0,o.default)(n,"".concat(e,"-group-wrapper-sm"),"small"===c),(0,o.default)(n,"".concat(e,"-group-wrapper-lg"),"large"===c),(0,o.default)(n,"".concat(e,"-group-wrapper-rtl"),"rtl"===d),n),u);return s.createElement("span",{className:M,style:i},s.createElement("span",{className:b},h,(0,v.cloneElement)(t,{style:null}),y))}},{key:"renderTextAreaWithClearIcon",value:function(e,t){var n,r=this.props,a=r.value,l=r.allowClear,i=r.className,c=r.style,u=r.direction,d=r.bordered;if(!l)return(0,v.cloneElement)(t,{value:a});var p=(0,f.default)("".concat(e,"-affix-wrapper"),"".concat(e,"-affix-wrapper-textarea-with-clear-btn"),(n={},(0,o.default)(n,"".concat(e,"-affix-wrapper-rtl"),"rtl"===u),(0,o.default)(n,"".concat(e,"-affix-wrapper-borderless"),!d),(0,o.default)(n,"".concat(i),!g(this.props)&&i),n));return s.createElement("span",{className:p,style:c},(0,v.cloneElement)(t,{style:null,value:a}),this.renderClearIcon(e))}},{key:"render",value:function(){var e=this.props,t=e.prefixCls,n=e.inputType,r=e.element;return n===y[0]?this.renderTextAreaWithClearIcon(t,r):this.renderInputWithLabel(t,this.renderLabeledIcon(t,r))}}]),n}(s.Component);t.default=b},10815:function(e,t,n){"use strict";var r=n(95318),a=n(50008);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,t.fixControlledValue=C,t.resolveOnChange=x,t.triggerFocus=O;var o=r(n(50008)),l=r(n(319)),i=r(n(67154)),c=r(n(59713)),u=r(n(34575)),s=r(n(93913)),f=r(n(2205)),d=r(n(99842)),p=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==a(e)&&"function"!==typeof e)return{default:e};var n=E(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var i=o?Object.getOwnPropertyDescriptor(e,l):null;i&&(i.get||i.set)?Object.defineProperty(r,l,i):r[l]=e[l]}r.default=e,n&&n.set(e,r);return r}(n(67294)),v=r(n(94184)),m=r(n(18475)),h=r(n(67434)),y=n(31929),g=r(n(3236)),b=r(n(72454)),M=n(36714);function E(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(E=function(e){return e?n:t})(e)}function C(e){return"undefined"===typeof e||null===e?"":String(e)}function x(e,t,n,r){if(n){var a=t;if("click"===t.type){var o=e.cloneNode(!0);return a=Object.create(t,{target:{value:o},currentTarget:{value:o}}),o.value="",void n(a)}if(void 0!==r)return a=Object.create(t,{target:{value:e},currentTarget:{value:e}}),e.value=r,void n(a);n(a)}}function O(e,t){if(e){e.focus(t);var n=(t||{}).cursor;if(n){var r=e.value.length;switch(n){case"start":e.setSelectionRange(0,0);break;case"end":e.setSelectionRange(r,r);break;default:e.setSelectionRange(0,r)}}}}var w=function(e){(0,f.default)(n,e);var t=(0,d.default)(n);function n(e){var r;(0,u.default)(this,n),(r=t.call(this,e)).direction="ltr",r.focus=function(e){O(r.input,e)},r.saveClearableInput=function(e){r.clearableInput=e},r.saveInput=function(e){r.input=e},r.onFocus=function(e){var t=r.props.onFocus;r.setState({focused:!0},r.clearPasswordValueAttribute),null===t||void 0===t||t(e)},r.onBlur=function(e){var t=r.props.onBlur;r.setState({focused:!1},r.clearPasswordValueAttribute),null===t||void 0===t||t(e)},r.handleReset=function(e){r.setValue("",(function(){r.focus()})),x(r.input,e,r.props.onChange)},r.renderInput=function(e,t,n){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=r.props,l=o.className,u=o.addonBefore,s=o.addonAfter,f=o.size,d=o.disabled,h=o.htmlSize,y=(0,m.default)(r.props,["prefixCls","onPressEnter","addonBefore","addonAfter","prefix","suffix","allowClear","defaultValue","size","inputType","bordered","htmlSize"]);return p.createElement("input",(0,i.default)({autoComplete:a.autoComplete},y,{onChange:r.handleChange,onFocus:r.onFocus,onBlur:r.onBlur,onKeyDown:r.handleKeyDown,className:(0,v.default)((0,M.getInputClassName)(e,n,f||t,d,r.direction),(0,c.default)({},l,l&&!u&&!s)),ref:r.saveInput,size:h}))},r.clearPasswordValueAttribute=function(){r.removePasswordTimeout=setTimeout((function(){r.input&&"password"===r.input.getAttribute("type")&&r.input.hasAttribute("value")&&r.input.removeAttribute("value")}))},r.handleChange=function(e){r.setValue(e.target.value,r.clearPasswordValueAttribute),x(r.input,e,r.props.onChange)},r.handleKeyDown=function(e){var t=r.props,n=t.onPressEnter,a=t.onKeyDown;n&&13===e.keyCode&&n(e),null===a||void 0===a||a(e)},r.renderShowCountSuffix=function(e){var t=r.state.value,n=r.props,a=n.maxLength,i=n.suffix,u=n.showCount,s=Number(a)>0;if(i||u){var f=(0,l.default)(C(t)).length,d=null;return d="object"===(0,o.default)(u)?u.formatter({count:f,maxLength:a}):"".concat(f).concat(s?" / ".concat(a):""),p.createElement(p.Fragment,null,!!u&&p.createElement("span",{className:(0,v.default)("".concat(e,"-show-count-suffix"),(0,c.default)({},"".concat(e,"-show-count-has-suffix"),!!i))},d),i)}return null},r.renderComponent=function(e){var t=e.getPrefixCls,n=e.direction,a=e.input,o=r.state,l=o.value,c=o.focused,u=r.props,s=u.prefixCls,f=u.bordered,d=void 0===f||f,v=t("input",s);r.direction=n;var m=r.renderShowCountSuffix(v);return p.createElement(g.default.Consumer,null,(function(e){return p.createElement(h.default,(0,i.default)({size:e},r.props,{prefixCls:v,inputType:"input",value:C(l),element:r.renderInput(v,e,d,a),handleReset:r.handleReset,ref:r.saveClearableInput,direction:n,focused:c,triggerFocus:r.focus,bordered:d,suffix:m}))}))};var a="undefined"===typeof e.value?e.defaultValue:e.value;return r.state={value:a,focused:!1,prevValue:e.value},r}return(0,s.default)(n,[{key:"componentDidMount",value:function(){this.clearPasswordValueAttribute()}},{key:"componentDidUpdate",value:function(){}},{key:"getSnapshotBeforeUpdate",value:function(e){return(0,M.hasPrefixSuffix)(e)!==(0,M.hasPrefixSuffix)(this.props)&&(0,b.default)(this.input!==document.activeElement,"Input","When Input is focused, dynamic add or remove prefix / suffix will make it lose focus caused by dom structure change. Read more: https://ant.design/components/input/#FAQ"),null}},{key:"componentWillUnmount",value:function(){this.removePasswordTimeout&&clearTimeout(this.removePasswordTimeout)}},{key:"blur",value:function(){this.input.blur()}},{key:"setSelectionRange",value:function(e,t,n){this.input.setSelectionRange(e,t,n)}},{key:"select",value:function(){this.input.select()}},{key:"setValue",value:function(e,t){void 0===this.props.value?this.setState({value:e},t):null===t||void 0===t||t()}},{key:"render",value:function(){return p.createElement(y.ConfigConsumer,null,this.renderComponent)}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n=t.prevValue,r={prevValue:e.value};return void 0===e.value&&n===e.value||(r.value=e.value),e.disabled&&(r.focused=!1),r}}]),n}(p.Component);w.defaultProps={type:"text"};var k=w;t.default=k},14104:function(e,t,n){"use strict";var r=n(95318),a=n(50008);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(50008)),l=r(n(67154)),i=r(n(59713)),c=r(n(63038)),u=r(n(319)),s=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==a(e)&&"function"!==typeof e)return{default:e};var n=b(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var i=o?Object.getOwnPropertyDescriptor(e,l):null;i&&(i.get||i.set)?Object.defineProperty(r,l,i):r[l]=e[l]}r.default=e,n&&n.set(e,r);return r}(n(67294)),f=r(n(57239)),d=r(n(18475)),p=r(n(94184)),v=r(n(60869)),m=r(n(67434)),h=n(31929),y=n(10815),g=r(n(3236));function b(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(b=function(e){return e?n:t})(e)}var M=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n};function E(e,t){return(0,u.default)(e||"").slice(0,t).join("")}var C=s.forwardRef((function(e,t){var n,r=e.prefixCls,a=e.bordered,b=void 0===a||a,C=e.showCount,x=void 0!==C&&C,O=e.maxLength,w=e.className,k=e.style,P=e.size,_=e.onCompositionStart,j=e.onCompositionEnd,N=e.onChange,S=M(e,["prefixCls","bordered","showCount","maxLength","className","style","size","onCompositionStart","onCompositionEnd","onChange"]),T=s.useContext(h.ConfigContext),L=T.getPrefixCls,F=T.direction,A=s.useContext(g.default),z=s.useRef(null),R=s.useRef(null),D=s.useState(!1),W=(0,c.default)(D,2),B=W[0],I=W[1],H=(0,v.default)(S.defaultValue,{value:S.value}),V=(0,c.default)(H,2),U=V[0],Z=V[1],K=function(e,t){void 0===S.value&&(Z(e),null===t||void 0===t||t())},$=Number(O)>0,Y=L("input",r);s.useImperativeHandle(t,(function(){var e;return{resizableTextArea:null===(e=z.current)||void 0===e?void 0:e.resizableTextArea,focus:function(e){var t,n;(0,y.triggerFocus)(null===(n=null===(t=z.current)||void 0===t?void 0:t.resizableTextArea)||void 0===n?void 0:n.textArea,e)},blur:function(){var e;return null===(e=z.current)||void 0===e?void 0:e.blur()}}}));var G=s.createElement(f.default,(0,l.default)({},(0,d.default)(S,["allowClear"]),{className:(0,p.default)((n={},(0,i.default)(n,"".concat(Y,"-borderless"),!b),(0,i.default)(n,w,w&&!x),(0,i.default)(n,"".concat(Y,"-sm"),"small"===A||"small"===P),(0,i.default)(n,"".concat(Y,"-lg"),"large"===A||"large"===P),n)),style:x?void 0:k,prefixCls:Y,onCompositionStart:function(e){I(!0),null===_||void 0===_||_(e)},onChange:function(e){var t=e.target.value;!B&&$&&(t=E(t,O)),K(t),(0,y.resolveOnChange)(e.currentTarget,e,N,t)},onCompositionEnd:function(e){I(!1);var t=e.currentTarget.value;$&&(t=E(t,O)),t!==U&&(K(t),(0,y.resolveOnChange)(e.currentTarget,e,N,t)),null===j||void 0===j||j(e)},ref:z})),X=(0,y.fixControlledValue)(U);B||!$||null!==S.value&&void 0!==S.value||(X=E(X,O));var Q=s.createElement(m.default,(0,l.default)({},S,{prefixCls:Y,direction:F,inputType:"text",value:X,element:G,handleReset:function(e){var t,n;K("",(function(){var e;null===(e=z.current)||void 0===e||e.focus()})),(0,y.resolveOnChange)(null===(n=null===(t=z.current)||void 0===t?void 0:t.resizableTextArea)||void 0===n?void 0:n.textArea,e,N)},ref:R,bordered:b,style:x?void 0:k}));if(x){var q=(0,u.default)(X).length,J="";return J="object"===(0,o.default)(x)?x.formatter({count:q,maxLength:O}):"".concat(q).concat($?" / ".concat(O):""),s.createElement("div",{className:(0,p.default)("".concat(Y,"-textarea"),(0,i.default)({},"".concat(Y,"-textarea-rtl"),"rtl"===F),"".concat(Y,"-textarea-show-count"),w),style:k,"data-count":J},Q)}return Q}));t.default=C},36714:function(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.getInputClassName=function(e,t,n,r,l){var i;return(0,o.default)(e,(i={},(0,a.default)(i,"".concat(e,"-sm"),"small"===n),(0,a.default)(i,"".concat(e,"-lg"),"large"===n),(0,a.default)(i,"".concat(e,"-disabled"),r),(0,a.default)(i,"".concat(e,"-rtl"),"rtl"===l),(0,a.default)(i,"".concat(e,"-borderless"),!t),i))},t.hasPrefixSuffix=function(e){return!!(e.prefix||e.suffix||e.allowClear)};var a=r(n(59713)),o=r(n(94184))},73625:function(e,t,n){"use strict";var r=n(95318),a=n(50008);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,t.useLocaleReceiver=function(e,t){var n=s.useContext(d.default);return[s.useMemo((function(){var r=t||f.default[e||"global"],a=e&&n?n[e]:{};return(0,o.default)((0,o.default)({},"function"===typeof r?r():r),a||{})}),[e,t,n])]};var o=r(n(67154)),l=r(n(34575)),i=r(n(93913)),c=r(n(2205)),u=r(n(99842)),s=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==a(e)&&"function"!==typeof e)return{default:e};var n=p(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var i=o?Object.getOwnPropertyDescriptor(e,l):null;i&&(i.get||i.set)?Object.defineProperty(r,l,i):r[l]=e[l]}r.default=e,n&&n.set(e,r);return r}(n(67294)),f=r(n(95209)),d=r(n(89354));function p(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(p=function(e){return e?n:t})(e)}var v=function(e){(0,c.default)(n,e);var t=(0,u.default)(n);function n(){return(0,l.default)(this,n),t.apply(this,arguments)}return(0,i.default)(n,[{key:"getLocale",value:function(){var e=this.props,t=e.componentName,n=e.defaultLocale||f.default[null!==t&&void 0!==t?t:"global"],r=this.context,a=t&&r?r[t]:{};return(0,o.default)((0,o.default)({},n instanceof Function?n():n),a||{})}},{key:"getLocaleCode",value:function(){var e=this.context,t=e&&e.locale;return e&&e.exist&&!t?f.default.locale:t}},{key:"render",value:function(){return this.props.children(this.getLocale(),this.getLocaleCode(),this.context)}}]),n}(s.Component);t.default=v,v.defaultProps={componentName:"global"},v.contextType=d.default},89354:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=(0,n(67294).createContext)(void 0);t.default=r},95209:function(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=r(n(56350)).default;t.default=a},53594:function(e,t,n){"use strict";var r=n(95318),a=n(50008);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.ANT_MARK=void 0;var o=r(n(67154)),l=r(n(34575)),i=r(n(93913)),c=r(n(2205)),u=r(n(99842)),s=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==a(e)&&"function"!==typeof e)return{default:e};var n=m(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var i=o?Object.getOwnPropertyDescriptor(e,l):null;i&&(i.get||i.set)?Object.defineProperty(r,l,i):r[l]=e[l]}r.default=e,n&&n.set(e,r);return r}(n(67294)),f=r(n(30845)),d=r(n(72454)),p=n(10625),v=r(n(89354));function m(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(m=function(e){return e?n:t})(e)}var h="internalMark";t.ANT_MARK=h;var y=function(e){(0,c.default)(n,e);var t=(0,u.default)(n);function n(e){var r;return(0,l.default)(this,n),r=t.call(this,e),(0,p.changeConfirmLocale)(e.locale&&e.locale.Modal),(0,d.default)(e._ANT_MARK__===h,"LocaleProvider","`LocaleProvider` is deprecated. Please use `locale` with `ConfigProvider` instead: http://u.ant.design/locale"),r}return(0,i.default)(n,[{key:"componentDidMount",value:function(){(0,p.changeConfirmLocale)(this.props.locale&&this.props.locale.Modal)}},{key:"componentDidUpdate",value:function(e){var t=this.props.locale;e.locale!==t&&(0,p.changeConfirmLocale)(t&&t.Modal)}},{key:"componentWillUnmount",value:function(){(0,p.changeConfirmLocale)()}},{key:"render",value:function(){var e=this.props,t=e.locale,n=e.children,r=(0,f.default)((function(e){return(0,o.default)((0,o.default)({},e),{exist:!0})}))(t);return s.createElement(v.default.Provider,{value:r},n)}}]),n}(s.Component);t.default=y,y.defaultProps={locale:{}}},56350:function(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=r(n(62273)),o=r(n(25633)),l=r(n(52040)),i=r(n(1028)),c="${label} is not a valid ${type}",u={locale:"en",Pagination:a.default,DatePicker:o.default,TimePicker:l.default,Calendar:i.default,global:{placeholder:"Please select"},Table:{filterTitle:"Filter menu",filterConfirm:"OK",filterReset:"Reset",filterEmptyText:"No filters",filterCheckall:"Select all items",filterSearchPlaceholder:"Search in filters",emptyText:"No data",selectAll:"Select current page",selectInvert:"Invert current page",selectNone:"Clear all data",selectionAll:"Select all data",sortTitle:"Sort",expand:"Expand row",collapse:"Collapse row",triggerDesc:"Click to sort descending",triggerAsc:"Click to sort ascending",cancelSort:"Click to cancel sorting"},Modal:{okText:"OK",cancelText:"Cancel",justOkText:"OK"},Popconfirm:{okText:"OK",cancelText:"Cancel"},Transfer:{titles:["",""],searchPlaceholder:"Search here",itemUnit:"item",itemsUnit:"items",remove:"Remove",selectCurrent:"Select current page",removeCurrent:"Remove current page",selectAll:"Select all data",removeAll:"Remove all data",selectInvert:"Invert current page"},Upload:{uploading:"Uploading...",removeFile:"Remove file",uploadError:"Upload error",previewFile:"Preview file",downloadFile:"Download file"},Empty:{description:"No Data"},Icon:{icon:"icon"},Text:{edit:"Edit",copy:"Copy",copied:"Copied",expand:"Expand"},PageHeader:{back:"Back"},Form:{optional:"(optional)",defaultValidateMessages:{default:"Field validation error for ${label}",required:"Please enter ${label}",enum:"${label} must be one of [${enum}]",whitespace:"${label} cannot be a blank character",date:{format:"${label} date format is invalid",parse:"${label} cannot be converted to a date",invalid:"${label} is an invalid date"},types:{string:c,method:c,array:c,object:c,number:c,date:c,boolean:c,integer:c,float:c,regexp:c,email:c,url:c,hex:c},string:{len:"${label} must be ${len} characters",min:"${label} must be at least ${min} characters",max:"${label} must be up to ${max} characters",range:"${label} must be between ${min}-${max} characters"},number:{len:"${label} must be equal to ${len}",min:"${label} must be minimum ${min}",max:"${label} must be maximum ${max}",range:"${label} must be between ${min}-${max}"},array:{len:"Must be ${len} ${label}",min:"At least ${min} ${label}",max:"At most ${max} ${label}",range:"The amount of ${label} must be between ${min}-${max}"},pattern:{mismatch:"${label} does not match the pattern ${pattern}"}}},Image:{preview:"Preview"}};t.default=u},64333:function(e,t,n){"use strict";var r=n(95318),a=n(50008);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return function(){var n,r,a=null,f={add:function(e,t){null===a||void 0===a||a.component.add(e,t)}},d=(0,c.default)(f),p=(0,l.default)(d,2),v=p[0],m=p[1];var h=i.useRef({});return h.current.open=function(l){var i=l.prefixCls,c=n("message",i),u=n(),f=l.key||(0,s.getKeyThenIncreaseKey)(),d=new Promise((function(n){var i=function(){return"function"===typeof l.onClose&&l.onClose(),n(!0)};e((0,o.default)((0,o.default)({},l),{prefixCls:c,rootPrefixCls:u,getPopupContainer:r}),(function(e){var n=e.prefixCls,r=e.instance;a=r,v(t((0,o.default)((0,o.default)({},l),{key:f,onClose:i}),n))}))})),p=function(){a&&a.removeNotice(f)};return p.then=function(e,t){return d.then(e,t)},p.promise=d,p},["success","info","warning","error","loading"].forEach((function(e){return(0,s.attachTypeApi)(h.current,e)})),[h.current,i.createElement(u.ConfigConsumer,{key:"holder"},(function(e){return n=e.getPrefixCls,r=e.getPopupContainer,m}))]}};var o=r(n(67154)),l=r(n(63038)),i=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==a(e)&&"function"!==typeof e)return{default:e};var n=f(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var i=o?Object.getOwnPropertyDescriptor(e,l):null;i&&(i.get||i.set)?Object.defineProperty(r,l,i):r[l]=e[l]}r.default=e,n&&n.set(e,r);return r}(n(67294)),c=r(n(45484)),u=n(31929),s=n(11187);function f(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(f=function(e){return e?n:t})(e)}},11187:function(e,t,n){"use strict";var r=n(95318),a=n(50008);Object.defineProperty(t,"__esModule",{value:!0}),t.attachTypeApi=F,t.getInstance=t.default=void 0,t.getKeyThenIncreaseKey=j;var o,l=r(n(67154)),i=r(n(59713)),c=b(n(67294)),u=r(n(94184)),s=r(n(91127)),f=r(n(628)),d=r(n(42461)),p=r(n(42547)),v=r(n(37431)),m=r(n(94354)),h=r(n(64333)),y=b(n(31929));function g(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(g=function(e){return e?n:t})(e)}function b(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==a(e)&&"function"!==typeof e)return{default:e};var n=g(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var i=o?Object.getOwnPropertyDescriptor(e,l):null;i&&(i.get||i.set)?Object.defineProperty(r,l,i):r[l]=e[l]}return r.default=e,n&&n.set(e,r),r}var M,E,C,x=3,O=1,w="",k="move-up",P=!1,_=!1;function j(){return O++}function N(e,t){var n=e.prefixCls,r=e.getPopupContainer,a=(0,y.globalConfig)(),l=a.getPrefixCls,i=a.getRootPrefixCls,c=a.getIconPrefixCls,u=l("message",n||w),f=i(e.rootPrefixCls,u),d=c();if(o)t({prefixCls:u,rootPrefixCls:f,iconPrefixCls:d,instance:o});else{var p={prefixCls:u,transitionName:P?k:"".concat(f,"-").concat(k),style:{top:M},getContainer:E||r,maxCount:C};s.default.newInstance(p,(function(e){o?t({prefixCls:u,rootPrefixCls:f,iconPrefixCls:d,instance:o}):(o=e,t({prefixCls:u,rootPrefixCls:f,iconPrefixCls:d,instance:e}))}))}}var S={info:m.default,success:v.default,error:p.default,warning:d.default,loading:f.default};function T(e,t,n){var r,a=void 0!==e.duration?e.duration:x,o=S[e.type],l=(0,u.default)("".concat(t,"-custom-content"),(r={},(0,i.default)(r,"".concat(t,"-").concat(e.type),e.type),(0,i.default)(r,"".concat(t,"-rtl"),!0===_),r));return{key:e.key,duration:a,style:e.style||{},className:e.className,content:c.createElement(y.default,{iconPrefixCls:n},c.createElement("div",{className:l},e.icon||o&&c.createElement(o,null),c.createElement("span",null,e.content))),onClose:e.onClose,onClick:e.onClick}}var L={open:function(e){var t=e.key||j(),n=new Promise((function(n){var r=function(){return"function"===typeof e.onClose&&e.onClose(),n(!0)};N(e,(function(n){var a=n.prefixCls,o=n.iconPrefixCls;n.instance.notice(T((0,l.default)((0,l.default)({},e),{key:t,onClose:r}),a,o))}))})),r=function(){o&&o.removeNotice(t)};return r.then=function(e,t){return n.then(e,t)},r.promise=n,r},config:function(e){void 0!==e.top&&(M=e.top,o=null),void 0!==e.duration&&(x=e.duration),void 0!==e.prefixCls&&(w=e.prefixCls),void 0!==e.getContainer&&(E=e.getContainer),void 0!==e.transitionName&&(k=e.transitionName,o=null,P=!0),void 0!==e.maxCount&&(C=e.maxCount,o=null),void 0!==e.rtl&&(_=e.rtl)},destroy:function(e){if(o)if(e){(0,o.removeNotice)(e)}else{var t=o.destroy;t(),o=null}}};function F(e,t){e[t]=function(n,r,a){return function(e){return"[object Object]"===Object.prototype.toString.call(e)&&!!e.content}(n)?e.open((0,l.default)((0,l.default)({},n),{type:t})):("function"===typeof r&&(a=r,r=void 0),e.open({content:n,duration:r,type:t,onClose:a}))}}["success","info","warning","error","loading"].forEach((function(e){return F(L,e)})),L.warn=L.warning,L.useMessage=(0,h.default)(N,T);t.getInstance=function(){return null};var A=L;t.default=A},10625:function(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.changeConfirmLocale=function(e){l=e?(0,a.default)((0,a.default)({},l),e):(0,a.default)({},o.default.Modal)},t.getConfirmLocale=function(){return l};var a=r(n(67154)),o=r(n(56350)),l=(0,a.default)({},o.default.Modal)},23298:function(e,t,n){"use strict";var r=n(95318),a=n(50008);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return function(){var n,r=null,a={add:function(e,t){null===r||void 0===r||r.component.add(e,t)}},s=(0,c.default)(a),f=(0,l.default)(s,2),d=f[0],p=f[1];var v=i.useRef({});return v.current.open=function(a){var l=a.prefixCls,i=n("notification",l);e((0,o.default)((0,o.default)({},a),{prefixCls:i}),(function(e){var n=e.prefixCls,o=e.instance;r=o,d(t(a,n))}))},["success","info","warning","error"].forEach((function(e){v.current[e]=function(t){return v.current.open((0,o.default)((0,o.default)({},t),{type:e}))}})),[v.current,i.createElement(u.ConfigConsumer,{key:"holder"},(function(e){return n=e.getPrefixCls,p}))]}};var o=r(n(67154)),l=r(n(63038)),i=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==a(e)&&"function"!==typeof e)return{default:e};var n=s(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var i=o?Object.getOwnPropertyDescriptor(e,l):null;i&&(i.get||i.set)?Object.defineProperty(r,l,i):r[l]=e[l]}r.default=e,n&&n.set(e,r);return r}(n(67294)),c=r(n(45484)),u=n(31929);function s(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(s=function(e){return e?n:t})(e)}},16318:function(e,t,n){"use strict";var r=n(95318),a=n(50008);Object.defineProperty(t,"__esModule",{value:!0}),t.getInstance=t.default=void 0;var o=r(n(87757)),l=r(n(67154)),i=r(n(59713)),c=b(n(67294)),u=r(n(91127)),s=r(n(40753)),f=r(n(94184)),d=r(n(67996)),p=r(n(74337)),v=r(n(67039)),m=r(n(93201)),h=r(n(23298)),y=b(n(31929));function g(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(g=function(e){return e?n:t})(e)}function b(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==a(e)&&"function"!==typeof e)return{default:e};var n=g(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var i=o?Object.getOwnPropertyDescriptor(e,l):null;i&&(i.get||i.set)?Object.defineProperty(r,l,i):r[l]=e[l]}return r.default=e,n&&n.set(e,r),r}var M,E,C,x=function(e,t,n,r){return new(n||(n=Promise))((function(a,o){function l(e){try{c(r.next(e))}catch(t){o(t)}}function i(e){try{c(r.throw(e))}catch(t){o(t)}}function c(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(l,i)}c((r=r.apply(e,t||[])).next())}))},O={},w=4.5,k=24,P=24,_="",j="topRight",N=!1;function S(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:k,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:P;switch(e){case"topLeft":t={left:0,top:n,bottom:"auto"};break;case"topRight":t={right:0,top:n,bottom:"auto"};break;case"bottomLeft":t={left:0,top:"auto",bottom:r};break;default:t={right:0,top:"auto",bottom:r}}return t}function T(e,t){var n=e.placement,r=void 0===n?j:n,a=e.top,o=e.bottom,l=e.getContainer,c=void 0===l?M:l,s=e.prefixCls,d=(0,y.globalConfig)(),p=d.getPrefixCls,v=d.getIconPrefixCls,m=p("notification",s||_),h=v(),g="".concat(m,"-").concat(r),b=O[g];if(b)Promise.resolve(b).then((function(e){t({prefixCls:"".concat(m,"-notice"),iconPrefixCls:h,instance:e})}));else{var E=(0,f.default)("".concat(m,"-").concat(r),(0,i.default)({},"".concat(m,"-rtl"),!0===N));O[g]=new Promise((function(e){u.default.newInstance({prefixCls:m,className:E,style:S(r,a,o),getContainer:c,maxCount:C},(function(n){e(n),t({prefixCls:"".concat(m,"-notice"),iconPrefixCls:h,instance:n})}))}))}}var L={success:d.default,info:m.default,error:p.default,warning:v.default};function F(e,t,n){var r=e.duration,a=e.icon,o=e.type,l=e.description,u=e.message,d=e.btn,p=e.onClose,v=e.onClick,m=e.key,h=e.style,g=e.className,b=e.closeIcon,M=void 0===b?E:b,C=void 0===r?w:r,x=null;a?x=c.createElement("span",{className:"".concat(t,"-icon")},e.icon):o&&(x=c.createElement(L[o]||null,{className:"".concat(t,"-icon ").concat(t,"-icon-").concat(o)}));var O=c.createElement("span",{className:"".concat(t,"-close-x")},M||c.createElement(s.default,{className:"".concat(t,"-close-icon")})),k=!l&&x?c.createElement("span",{className:"".concat(t,"-message-single-line-auto-margin")}):null;return{content:c.createElement(y.default,{iconPrefixCls:n},c.createElement("div",{className:x?"".concat(t,"-with-icon"):"",role:"alert"},x,c.createElement("div",{className:"".concat(t,"-message")},k,u),c.createElement("div",{className:"".concat(t,"-description")},l),d?c.createElement("span",{className:"".concat(t,"-btn")},d):null)),duration:C,closable:!0,closeIcon:O,onClose:p,onClick:v,key:m,style:h||{},className:(0,f.default)(g,(0,i.default)({},"".concat(t,"-").concat(o),!!o))}}var A={open:function(e){T(e,(function(t){var n=t.prefixCls,r=t.iconPrefixCls;t.instance.notice(F(e,n,r))}))},close:function(e){Object.keys(O).forEach((function(t){return Promise.resolve(O[t]).then((function(t){t.removeNotice(e)}))}))},config:function(e){var t=e.duration,n=e.placement,r=e.bottom,a=e.top,o=e.getContainer,l=e.closeIcon,i=e.prefixCls;void 0!==i&&(_=i),void 0!==t&&(w=t),void 0!==n?j=n:e.rtl&&(j="topLeft"),void 0!==r&&(P=r),void 0!==a&&(k=a),void 0!==o&&(M=o),void 0!==l&&(E=l),void 0!==e.rtl&&(N=e.rtl),void 0!==e.maxCount&&(C=e.maxCount)},destroy:function(){Object.keys(O).forEach((function(e){Promise.resolve(O[e]).then((function(e){e.destroy()})),delete O[e]}))}};["success","info","warning","error"].forEach((function(e){A[e]=function(t){return A.open((0,l.default)((0,l.default)({},t),{type:e}))}})),A.warn=A.warning,A.useNotification=(0,h.default)(T,F);t.getInstance=function(e){return x(void 0,void 0,void 0,o.default.mark((function e(){return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",null);case 1:case"end":return e.stop()}}),e)})))};var z=A;t.default=z},52040:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={placeholder:"Select time",rangePlaceholder:["Start time","End time"]};t.default=n},94055:function(e,t,n){"use strict";var r=n(95318),a=n(50008);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(59713)),l=r(n(63038)),i=r(n(67154)),c=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==a(e)&&"function"!==typeof e)return{default:e};var n=y(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var i=o?Object.getOwnPropertyDescriptor(e,l):null;i&&(i.get||i.set)?Object.defineProperty(r,l,i):r[l]=e[l]}r.default=e,n&&n.set(e,r);return r}(n(67294)),u=r(n(22972)),s=r(n(60869)),f=r(n(94184)),d=r(n(27571)),p=n(47419),v=n(31929),m=n(45471),h=n(53683);function y(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(y=function(e){return e?n:t})(e)}var g=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},b=new RegExp("^(".concat(m.PresetColorTypes.join("|"),")(-inverse)?$"));function M(e,t){var n=e.type;if((!0===n.__ANT_BUTTON||!0===n.__ANT_SWITCH||!0===n.__ANT_CHECKBOX||"button"===e.type)&&e.props.disabled){var r=function(e,t){var n={},r=(0,i.default)({},e);return t.forEach((function(t){e&&t in e&&(n[t]=e[t],delete r[t])})),{picked:n,omitted:r}}(e.props.style,["position","left","right","top","bottom","float","display","zIndex"]),a=r.picked,o=r.omitted,l=(0,i.default)((0,i.default)({display:"inline-block"},a),{cursor:"not-allowed",width:e.props.block?"100%":null}),u=(0,i.default)((0,i.default)({},o),{pointerEvents:"none"}),s=(0,p.cloneElement)(e,{style:u,className:null});return c.createElement("span",{style:l,className:(0,f.default)(e.props.className,"".concat(t,"-disabled-compatible-wrapper"))},s)}return e}var E=c.forwardRef((function(e,t){var n,r=c.useContext(v.ConfigContext),a=r.getPopupContainer,m=r.getPrefixCls,y=r.direction,E=(0,s.default)(!1,{value:e.visible,defaultValue:e.defaultVisible}),C=(0,l.default)(E,2),x=C[0],O=C[1],w=function(){var t=e.title,n=e.overlay;return!t&&!n&&0!==t},k=function(){var t=e.builtinPlacements,n=e.arrowPointAtCenter,r=e.autoAdjustOverflow;return t||(0,d.default)({arrowPointAtCenter:n,autoAdjustOverflow:r})},P=e.getPopupContainer,_=g(e,["getPopupContainer"]),j=e.prefixCls,N=e.openClassName,S=e.getTooltipContainer,T=e.overlayClassName,L=e.color,F=e.overlayInnerStyle,A=e.children,z=m("tooltip",j),R=m(),D=x;!("visible"in e)&&w()&&(D=!1);var W,B=M((0,p.isValidElement)(A)?A:c.createElement("span",null,A),z),I=B.props,H=(0,f.default)(I.className,(0,o.default)({},N||"".concat(z,"-open"),!0)),V=(0,f.default)(T,(n={},(0,o.default)(n,"".concat(z,"-rtl"),"rtl"===y),(0,o.default)(n,"".concat(z,"-").concat(L),L&&b.test(L)),n)),U=F;return L&&!b.test(L)&&(U=(0,i.default)((0,i.default)({},F),{background:L}),W={background:L}),c.createElement(u.default,(0,i.default)({},_,{prefixCls:z,overlayClassName:V,getTooltipContainer:P||S||a,ref:t,builtinPlacements:k(),overlay:function(){var t=e.title,n=e.overlay;return 0===t?t:n||t||""}(),visible:D,onVisibleChange:function(t){var n;O(!w()&&t),w()||null===(n=e.onVisibleChange)||void 0===n||n.call(e,t)},onPopupAlign:function(e,t){var n=k(),r=Object.keys(n).filter((function(e){return n[e].points[0]===t.points[0]&&n[e].points[1]===t.points[1]}))[0];if(r){var a=e.getBoundingClientRect(),o={top:"50%",left:"50%"};r.indexOf("top")>=0||r.indexOf("Bottom")>=0?o.top="".concat(a.height-t.offset[1],"px"):(r.indexOf("Top")>=0||r.indexOf("bottom")>=0)&&(o.top="".concat(-t.offset[1],"px")),r.indexOf("left")>=0||r.indexOf("Right")>=0?o.left="".concat(a.width-t.offset[0],"px"):(r.indexOf("right")>=0||r.indexOf("Left")>=0)&&(o.left="".concat(-t.offset[0],"px")),e.style.transformOrigin="".concat(o.left," ").concat(o.top)}},overlayInnerStyle:U,arrowContent:c.createElement("span",{className:"".concat(z,"-arrow-content"),style:W}),motion:{motionName:(0,h.getTransitionName)(R,"zoom-big-fast",e.transitionName),motionDeadline:1e3}}),D?(0,p.cloneElement)(B,{className:H}):B)}));E.displayName="Tooltip",E.defaultProps={placement:"top",mouseEnterDelay:.1,mouseLeaveDelay:.1,arrowPointAtCenter:!1,autoAdjustOverflow:!0};var C=E;t.default=C},27571:function(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=e.arrowWidth,n=void 0===t?4:t,r=e.horizontalArrowShift,l=void 0===r?16:r,i=e.verticalArrowShift,s=void 0===i?8:i,f=e.autoAdjustOverflow,d={left:{points:["cr","cl"],offset:[-4,0]},right:{points:["cl","cr"],offset:[4,0]},top:{points:["bc","tc"],offset:[0,-4]},bottom:{points:["tc","bc"],offset:[0,4]},topLeft:{points:["bl","tc"],offset:[-(l+n),-4]},leftTop:{points:["tr","cl"],offset:[-4,-(s+n)]},topRight:{points:["br","tc"],offset:[l+n,-4]},rightTop:{points:["tl","cr"],offset:[4,-(s+n)]},bottomRight:{points:["tr","bc"],offset:[l+n,4]},rightBottom:{points:["bl","cr"],offset:[4,s+n]},bottomLeft:{points:["tl","bc"],offset:[-(l+n),4]},leftBottom:{points:["br","cl"],offset:[-4,s+n]}};return Object.keys(d).forEach((function(t){d[t]=e.arrowPointAtCenter?(0,a.default)((0,a.default)({},d[t]),{overflow:u(f),targetOffset:c}):(0,a.default)((0,a.default)({},o.placements[t]),{overflow:u(f)}),d[t].ignoreShake=!0})),d},t.getOverflowOptions=u;var a=r(n(67154)),o=n(24375),l={adjustX:1,adjustY:1},i={adjustX:0,adjustY:0},c=[0,0];function u(e){return"boolean"===typeof e?e?l:i:(0,a.default)((0,a.default)({},i),e)}},86586:function(e,t,n){"use strict";var r=n(95318),a=n(50008);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(59713)),l=r(n(319)),i=r(n(50008)),c=r(n(67154)),u=r(n(34575)),s=r(n(93913)),f=r(n(2205)),d=r(n(99842)),p=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==a(e)&&"function"!==typeof e)return{default:e};var n=T(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var i=o?Object.getOwnPropertyDescriptor(e,l):null;i&&(i.get||i.set)?Object.defineProperty(r,l,i):r[l]=e[l]}r.default=e,n&&n.set(e,r);return r}(n(67294)),v=r(n(94184)),m=r(n(45598)),h=r(n(20640)),y=r(n(18475)),g=r(n(10775)),b=r(n(71961)),M=r(n(69427)),E=r(n(48555)),C=n(31929),x=r(n(73625)),O=r(n(72454)),w=r(n(60938)),k=r(n(59632)),P=n(38882),_=r(n(94055)),j=r(n(89652)),N=r(n(69425)),S=r(n(36392));function T(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(T=function(e){return e?n:t})(e)}var L=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},F=(0,P.isStyleSupport)("webkitLineClamp"),A=(0,P.isStyleSupport)("textOverflow");function z(e,t,n){return!0===e||void 0===e?t:e||n&&t}var R=function(e){(0,f.default)(n,e);var t=(0,d.default)(n);function n(){var e;return(0,u.default)(this,n),(e=t.apply(this,arguments)).contentRef=p.createRef(),e.state={edit:!1,copied:!1,ellipsisText:"",ellipsisContent:null,isEllipsis:!1,expanded:!1,clientRendered:!1},e.getPrefixCls=function(){var t=e.props.prefixCls;return(0,e.context.getPrefixCls)("typography",t)},e.onExpandClick=function(t){var n,r=e.getEllipsis().onExpand;e.setState({expanded:!0}),null===(n=r)||void 0===n||n(t)},e.onEditClick=function(t){t.preventDefault(),e.triggerEdit(!0)},e.onEditChange=function(t){var n=e.getEditable().onChange;null===n||void 0===n||n(t),e.triggerEdit(!1)},e.onEditCancel=function(){var t,n;null===(n=(t=e.getEditable()).onCancel)||void 0===n||n.call(t),e.triggerEdit(!1)},e.onCopyClick=function(t){t.preventDefault();var n=e.props,r=n.children,a=n.copyable,o=(0,c.default)({},"object"===(0,i.default)(a)?a:null);void 0===o.text&&(o.text=String(r)),(0,h.default)(o.text||""),e.setState({copied:!0},(function(){o.onCopy&&o.onCopy(),e.copyId=window.setTimeout((function(){e.setState({copied:!1})}),3e3)}))},e.setEditRef=function(t){e.editIcon=t},e.triggerEdit=function(t){var n=e.getEditable().onStart;t&&n&&n(),e.setState({edit:t},(function(){!t&&e.editIcon&&e.editIcon.focus()}))},e.resizeOnNextFrame=function(){k.default.cancel(e.rafId),e.rafId=(0,k.default)((function(){e.syncEllipsis()}))},e}return(0,s.default)(n,[{key:"componentDidMount",value:function(){this.setState({clientRendered:!0}),this.resizeOnNextFrame()}},{key:"componentDidUpdate",value:function(e){var t=this.props.children,n=this.getEllipsis(),r=this.getEllipsis(e);t===e.children&&n.rows===r.rows||this.resizeOnNextFrame()}},{key:"componentWillUnmount",value:function(){window.clearTimeout(this.copyId),k.default.cancel(this.rafId)}},{key:"getEditable",value:function(e){var t=this.state.edit,n=(e||this.props).editable;return n?(0,c.default)({editing:t},"object"===(0,i.default)(n)?n:null):{editing:t}}},{key:"getEllipsis",value:function(e){var t=(e||this.props).ellipsis;return t?(0,c.default)({rows:1,expandable:!1},"object"===(0,i.default)(t)?t:null):{}}},{key:"canUseCSSEllipsis",value:function(){var e=this.state.clientRendered,t=this.props,n=t.editable,r=t.copyable,a=this.getEllipsis(),o=a.rows,l=a.expandable,i=a.suffix,c=a.onEllipsis,u=a.tooltip;return!i&&!u&&(!(n||r||l||!e||c)&&(1===o?A:F))}},{key:"syncEllipsis",value:function(){var e=this.state,t=e.ellipsisText,n=e.isEllipsis,r=e.expanded,a=this.getEllipsis(),o=a.rows,l=a.suffix,i=a.onEllipsis,c=this.props.children;if(o&&!(o<0)&&this.contentRef.current&&!r&&!this.canUseCSSEllipsis()){(0,O.default)((0,m.default)(c).every((function(e){return"string"===typeof e})),"Typography","`ellipsis` should use string as children only.");var u=(0,S.default)(this.contentRef.current,{rows:o,suffix:l},c,this.renderOperations(!0),"..."),s=u.content,f=u.text,d=u.ellipsis;t===f&&n===d||(this.setState({ellipsisText:f,ellipsisContent:s,isEllipsis:d}),n!==d&&i&&i(d))}}},{key:"renderExpand",value:function(e){var t,n=this.getEllipsis(),r=n.expandable,a=n.symbol,o=this.state,l=o.expanded,i=o.isEllipsis;return r&&(e||!l&&i)?(t=a||this.expandStr,p.createElement("a",{key:"expand",className:"".concat(this.getPrefixCls(),"-expand"),onClick:this.onExpandClick,"aria-label":this.expandStr},t)):null}},{key:"renderEdit",value:function(){var e=this.props.editable;if(e){var t=e.icon,n=e.tooltip,r=e.triggerType,a=void 0===r?["icon"]:r,o=(0,m.default)(n)[0]||this.editStr,l="string"===typeof o?o:"";return-1!==a.indexOf("icon")?p.createElement(_.default,{key:"edit",title:!1===n?"":o},p.createElement(w.default,{ref:this.setEditRef,className:"".concat(this.getPrefixCls(),"-edit"),onClick:this.onEditClick,"aria-label":l},t||p.createElement(g.default,{role:"button"}))):null}}},{key:"renderCopy",value:function(){var e=this.state.copied,t=this.props.copyable;if(t){var n=this.getPrefixCls(),r=t.tooltips,a=t.icon,o=Array.isArray(r)?r:[r],l=Array.isArray(a)?a:[a],i=e?z(o[1],this.copiedStr):z(o[0],this.copyStr),c=e?this.copiedStr:this.copyStr,u="string"===typeof i?i:c;return p.createElement(_.default,{key:"copy",title:i},p.createElement(w.default,{className:(0,v.default)("".concat(n,"-copy"),e&&"".concat(n,"-copy-success")),onClick:this.onCopyClick,"aria-label":u},e?z(l[1],p.createElement(b.default,null),!0):z(l[0],p.createElement(M.default,null),!0)))}}},{key:"renderEditInput",value:function(){var e=this.props,t=e.children,n=e.className,r=e.style,a=this.context.direction,o=this.getEditable(),l=o.maxLength,i=o.autoSize,c=o.onEnd,u=o.enterIcon;return p.createElement(N.default,{value:"string"===typeof t?t:"",onSave:this.onEditChange,onCancel:this.onEditCancel,onEnd:c,prefixCls:this.getPrefixCls(),className:n,style:r,direction:a,maxLength:l,autoSize:i,enterIcon:u})}},{key:"renderOperations",value:function(e){return[this.renderExpand(e),this.renderEdit(),this.renderCopy()].filter((function(e){return e}))}},{key:"renderContent",value:function(){var e=this,t=this.state,n=t.ellipsisContent,r=t.isEllipsis,a=t.expanded,i=this.props,u=i.component,s=i.children,f=i.className,d=i.type,m=i.disabled,h=i.style,g=L(i,["component","children","className","type","disabled","style"]),b=this.context.direction,M=this.getEllipsis(),O=M.rows,w=M.suffix,k=M.tooltip,P=this.getEditable().triggerType,N=void 0===P?["icon"]:P,S=this.getPrefixCls(),T=(0,y.default)(g,["prefixCls","editable","copyable","ellipsis","mark","code","delete","underline","strong","keyboard","italic"].concat((0,l.default)(C.configConsumerProps))),F=this.canUseCSSEllipsis(),A=1===O&&F,z=O&&O>1&&F,R=s;if(O&&r&&!a&&!F){var D=g.title,W=D||"";D||"string"!==typeof s&&"number"!==typeof s||(W=String(s)),W=W.slice(String(n||"").length),R=p.createElement(p.Fragment,null,n,p.createElement("span",{title:W,"aria-hidden":"true"},"..."),w),k&&(R=p.createElement(_.default,{title:!0===k?s:k},p.createElement("span",null,R)))}else R=p.createElement(p.Fragment,null,s,w);return R=function(e,t){var n=e.mark,r=e.code,a=e.underline,o=e.delete,l=e.strong,i=e.keyboard,c=e.italic,u=t;function s(e,t){e&&(u=p.createElement(t,{},u))}return s(l,"strong"),s(a,"u"),s(o,"del"),s(r,"code"),s(n,"mark"),s(i,"kbd"),s(c,"i"),u}(this.props,R),p.createElement(x.default,{componentName:"Text"},(function(t){var n,a=t.edit,l=t.copy,i=t.copied,s=t.expand;return e.editStr=a,e.copyStr=l,e.copiedStr=i,e.expandStr=s,p.createElement(E.default,{onResize:e.resizeOnNextFrame,disabled:F},p.createElement(j.default,(0,c.default)({className:(0,v.default)((n={},(0,o.default)(n,"".concat(S,"-").concat(d),d),(0,o.default)(n,"".concat(S,"-disabled"),m),(0,o.default)(n,"".concat(S,"-ellipsis"),O),(0,o.default)(n,"".concat(S,"-single-line"),1===O&&!r),(0,o.default)(n,"".concat(S,"-ellipsis-single-line"),A),(0,o.default)(n,"".concat(S,"-ellipsis-multiple-line"),z),n),f),style:(0,c.default)((0,c.default)({},h),{WebkitLineClamp:z?O:void 0}),component:u,ref:e.contentRef,direction:b,onClick:-1!==N.indexOf("text")?e.onEditClick:function(){}},T),R,e.renderOperations()))}))}},{key:"render",value:function(){return this.getEditable().editing?this.renderEditInput():this.renderContent()}}],[{key:"getDerivedStateFromProps",value:function(e){var t=e.children,n=e.editable;return(0,O.default)(!n||"string"===typeof t,"Typography","When `editable` is enabled, the `children` should use string."),{}}}]),n}(p.Component);R.contextType=C.ConfigContext,R.defaultProps={children:""};var D=R;t.default=D},69425:function(e,t,n){"use strict";var r=n(95318),a=n(50008);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(59713)),l=r(n(63038)),i=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==a(e)&&"function"!==typeof e)return{default:e};var n=p(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var i=o?Object.getOwnPropertyDescriptor(e,l):null;i&&(i.get||i.set)?Object.defineProperty(r,l,i):r[l]=e[l]}r.default=e,n&&n.set(e,r);return r}(n(67294)),c=r(n(94184)),u=r(n(27712)),s=r(n(39398)),f=r(n(14104)),d=n(47419);function p(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(p=function(e){return e?n:t})(e)}var v=function(e){var t=e.prefixCls,n=e["aria-label"],r=e.className,a=e.style,p=e.direction,v=e.maxLength,m=e.autoSize,h=void 0===m||m,y=e.value,g=e.onSave,b=e.onCancel,M=e.onEnd,E=e.enterIcon,C=void 0===E?i.createElement(s.default,null):E,x=i.useRef(),O=i.useRef(!1),w=i.useRef(),k=i.useState(y),P=(0,l.default)(k,2),_=P[0],j=P[1];i.useEffect((function(){j(y)}),[y]),i.useEffect((function(){if(x.current&&x.current.resizableTextArea){var e=x.current.resizableTextArea.textArea;e.focus();var t=e.value.length;e.setSelectionRange(t,t)}}),[]);var N=function(){g(_.trim())},S=(0,c.default)(t,"".concat(t,"-edit-content"),(0,o.default)({},"".concat(t,"-rtl"),"rtl"===p),r);return i.createElement("div",{className:S,style:a},i.createElement(f.default,{ref:x,maxLength:v,value:_,onChange:function(e){var t=e.target;j(t.value.replace(/[\n\r]/g,""))},onKeyDown:function(e){var t=e.keyCode;O.current||(w.current=t)},onKeyUp:function(e){var t=e.keyCode,n=e.ctrlKey,r=e.altKey,a=e.metaKey,o=e.shiftKey;w.current!==t||O.current||n||r||a||o||(t===u.default.ENTER?(N(),null===M||void 0===M||M()):t===u.default.ESC&&b())},onCompositionStart:function(){O.current=!0},onCompositionEnd:function(){O.current=!1},onBlur:function(){N()},"aria-label":n,autoSize:h}),null!==C?(0,d.cloneElement)(C,{className:"".concat(t,"-edit-content-confirm")}):null)};t.default=v},11700:function(e,t,n){"use strict";var r=n(95318),a=n(50008);t.Z=void 0;var o=r(n(67154)),l=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==a(e)&&"function"!==typeof e)return{default:e};var n=s(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var i=o?Object.getOwnPropertyDescriptor(e,l):null;i&&(i.get||i.set)?Object.defineProperty(r,l,i):r[l]=e[l]}r.default=e,n&&n.set(e,r);return r}(n(67294)),i=r(n(72454)),c=r(n(86586)),u=n(66764);function s(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(s=function(e){return e?n:t})(e)}var f=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},d=(0,u.tupleNum)(1,2,3,4,5),p=function(e){var t,n=e.level,r=void 0===n?1:n,a=f(e,["level"]);return-1!==d.indexOf(r)?t="h".concat(r):((0,i.default)(!1,"Typography.Title","Title only accept `1 | 2 | 3 | 4 | 5` as `level` value. And `5` need 4.6.0+ version."),t="h1"),l.createElement(c.default,(0,o.default)({},a,{component:t}))};t.Z=p},89652:function(e,t,n){"use strict";var r=n(95318),a=n(50008);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(67154)),l=r(n(59713)),i=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==a(e)&&"function"!==typeof e)return{default:e};var n=d(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var i=o?Object.getOwnPropertyDescriptor(e,l):null;i&&(i.get||i.set)?Object.defineProperty(r,l,i):r[l]=e[l]}r.default=e,n&&n.set(e,r);return r}(n(67294)),c=r(n(94184)),u=n(75531),s=n(31929),f=r(n(72454));function d(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(d=function(e){return e?n:t})(e)}var p=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},v=function(e,t){var n=e.prefixCls,r=e.component,a=void 0===r?"article":r,d=e.className,v=e["aria-label"],m=e.setContentRef,h=e.children,y=p(e,["prefixCls","component","className","aria-label","setContentRef","children"]),g=t;return m&&((0,f.default)(!1,"Typography","`setContentRef` is deprecated. Please use `ref` instead."),g=(0,u.composeRef)(t,m)),i.createElement(s.ConfigConsumer,null,(function(e){var t=e.getPrefixCls,r=e.direction,u=a,s=t("typography",n),f=(0,c.default)(s,(0,l.default)({},"".concat(s,"-rtl"),"rtl"===r),d);return i.createElement(u,(0,o.default)({className:f,"aria-label":v,ref:g},y),h)}))},m=i.forwardRef(v);m.displayName="Typography";var h=m;t.default=h},36392:function(e,t,n){"use strict";var r=n(95318),a=n(50008);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=n(73935),l=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==a(e)&&"function"!==typeof e)return{default:e};var n=c(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var i=o?Object.getOwnPropertyDescriptor(e,l):null;i&&(i.get||i.set)?Object.defineProperty(r,l,i):r[l]=e[l]}r.default=e,n&&n.set(e,r);return r}(n(67294)),i=r(n(45598));function c(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(c=function(e){return e?n:t})(e)}var u,s={padding:0,margin:0,display:"inline",lineHeight:"inherit"};function f(e,t){e.setAttribute("aria-hidden","true");var n,r=window.getComputedStyle(t),a=(n=r,Array.prototype.slice.apply(n).map((function(e){return"".concat(e,": ").concat(n.getPropertyValue(e),";")})).join(""));e.setAttribute("style",a),e.style.position="fixed",e.style.left="0",e.style.height="auto",e.style.minHeight="auto",e.style.maxHeight="auto",e.style.paddingTop="0",e.style.paddingBottom="0",e.style.borderTopWidth="0",e.style.borderBottomWidth="0",e.style.top="-999999px",e.style.zIndex="-1000",e.style.textOverflow="clip",e.style.whiteSpace="normal",e.style.webkitLineClamp="none"}t.default=function(e,t,n,r,a){u||(u=document.createElement("div")).setAttribute("aria-hidden","true"),u.parentNode||document.body.appendChild(u);var c=t.rows,d=t.suffix,p=void 0===d?"":d,v=function(e){var t=document.createElement("div");f(t,e),t.appendChild(document.createTextNode("text")),document.body.appendChild(t);var n=t.getBoundingClientRect().height;return document.body.removeChild(t),n}(e),m=Math.round(v*c*100)/100;f(u,e);var h=function(e){var t=[];return e.forEach((function(e){var n=t[t.length-1];"string"===typeof e&&"string"===typeof n?t[t.length-1]+=e:t.push(e)})),t}((0,i.default)(n));function y(){return Math.round(100*u.getBoundingClientRect().height)/100-.1<=m}if((0,o.render)(l.createElement("div",{style:s},l.createElement("span",{style:s},h,p),l.createElement("span",{style:s},r)),u),y())return(0,o.unmountComponentAtNode)(u),{content:n,text:u.innerHTML,ellipsis:!1};var g=Array.prototype.slice.apply(u.childNodes[0].childNodes[0].cloneNode(!0).childNodes).filter((function(e){return 8!==e.nodeType})),b=Array.prototype.slice.apply(u.childNodes[0].childNodes[1].cloneNode(!0).childNodes);(0,o.unmountComponentAtNode)(u);var M=[];u.innerHTML="";var E=document.createElement("span");u.appendChild(E);var C=document.createTextNode(a+p);function x(e){E.insertBefore(e,C)}function O(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:t.length,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,o=Math.floor((n+r)/2),l=t.slice(0,o);if(e.textContent=l,n>=r-1)for(var i=r;i>=n;i-=1){var c=t.slice(0,i);if(e.textContent=c,y()||!c)return i===t.length?{finished:!1,reactNode:t}:{finished:!0,reactNode:c}}return y()?O(e,t,o,r,o):O(e,t,n,o,a)}function w(e,t){var n=e.nodeType;if(1===n)return x(e),y()?{finished:!1,reactNode:h[t]}:(E.removeChild(e),{finished:!0,reactNode:null});if(3===n){var r=e.textContent||"",a=document.createTextNode(r);return x(a),O(a,r)}return{finished:!1,reactNode:null}}return E.appendChild(C),b.forEach((function(e){u.appendChild(e)})),g.some((function(e,t){var n=w(e,t),r=n.finished,a=n.reactNode;return a&&M.push(a),r})),{content:M,text:u.innerHTML,ellipsis:!0}}},56180:function(e,t,n){"use strict";n.d(t,{Z:function(){return p}});var r=n(4942),a=n(97685),o=n(91),l=n(67294),i=n(51169),c=n(94184),u=n.n(c),s={adjustX:1,adjustY:1},f=[0,0],d={topLeft:{points:["bl","tl"],overflow:s,offset:[0,-4],targetOffset:f},topCenter:{points:["bc","tc"],overflow:s,offset:[0,-4],targetOffset:f},topRight:{points:["br","tr"],overflow:s,offset:[0,-4],targetOffset:f},bottomLeft:{points:["tl","bl"],overflow:s,offset:[0,4],targetOffset:f},bottomCenter:{points:["tc","bc"],overflow:s,offset:[0,4],targetOffset:f},bottomRight:{points:["tr","br"],overflow:s,offset:[0,4],targetOffset:f}};var p=l.forwardRef((function(e,t){var n=e.arrow,c=void 0!==n&&n,s=e.prefixCls,f=void 0===s?"rc-dropdown":s,p=e.transitionName,v=e.animation,m=e.align,h=e.placement,y=void 0===h?"bottomLeft":h,g=e.placements,b=void 0===g?d:g,M=e.getPopupContainer,E=e.showAction,C=e.hideAction,x=e.overlayClassName,O=e.overlayStyle,w=e.visible,k=e.trigger,P=void 0===k?["hover"]:k,_=(0,o.Z)(e,["arrow","prefixCls","transitionName","animation","align","placement","placements","getPopupContainer","showAction","hideAction","overlayClassName","overlayStyle","visible","trigger"]),j=l.useState(),N=(0,a.Z)(j,2),S=N[0],T=N[1],L="visible"in e?w:S,F=l.useRef(null);l.useImperativeHandle(t,(function(){return F.current}));var A=function(){var t=e.overlay;return"function"===typeof t?t():t},z=function(t){var n=e.onOverlayClick,r=A().props;T(!1),n&&n(t),r.onClick&&r.onClick(t)},R=function(){var e=A(),t={prefixCls:"".concat(f,"-menu"),onClick:z};return"string"===typeof e.type&&delete t.prefixCls,l.createElement(l.Fragment,null,c&&l.createElement("div",{className:"".concat(f,"-arrow")}),l.cloneElement(e,t))},D=C;return D||-1===P.indexOf("contextMenu")||(D=["click"]),l.createElement(i.Z,Object.assign({},_,{prefixCls:f,ref:F,popupClassName:u()(x,(0,r.Z)({},"".concat(f,"-show-arrow"),c)),popupStyle:O,builtinPlacements:b,action:P,showAction:E,hideAction:D||[],popupPlacement:y,popupAlign:m,popupTransitionName:p,popupAnimation:v,popupVisible:L,stretch:function(){var t=e.minOverlayWidthMatchTrigger,n=e.alignPoint;return"minOverlayWidthMatchTrigger"in e?t:!n}()?"minWidth":"",popup:"function"===typeof e.overlay?R:R(),onPopupVisibleChange:function(t){var n=e.onVisibleChange;T(t),"function"===typeof n&&n(t)},getPopupContainer:M}),function(){var t=e.children,n=t.props?t.props:{},r=u()(n.className,function(){var t=e.openClassName;return void 0!==t?t:"".concat(f,"-open")}());return S&&t?l.cloneElement(t,{className:r}):t}())}))},32502:function(e,t,n){"use strict";var r=n(20862),a=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=a(n(67154)),l=a(n(59713)),i=a(n(34575)),c=a(n(93913)),u=a(n(2205)),s=a(n(99842)),f=r(n(67294)),d=a(n(73935)),p=a(n(94184)),v=function(e){(0,u.default)(n,e);var t=(0,s.default)(n);function n(){var e;(0,i.default)(this,n);for(var r=arguments.length,a=new Array(r),o=0;o<r;o++)a[o]=arguments[o];return(e=t.call.apply(t,[this].concat(a))).closeTimer=null,e.close=function(t){t&&t.stopPropagation(),e.clearCloseTimer();var n=e.props,r=n.onClose,a=n.noticeKey;r&&r(a)},e.startCloseTimer=function(){e.props.duration&&(e.closeTimer=window.setTimeout((function(){e.close()}),1e3*e.props.duration))},e.clearCloseTimer=function(){e.closeTimer&&(clearTimeout(e.closeTimer),e.closeTimer=null)},e}return(0,c.default)(n,[{key:"componentDidMount",value:function(){this.startCloseTimer()}},{key:"componentDidUpdate",value:function(e){(this.props.duration!==e.duration||this.props.updateMark!==e.updateMark||this.props.visible!==e.visible&&this.props.visible)&&this.restartCloseTimer()}},{key:"componentWillUnmount",value:function(){this.clearCloseTimer()}},{key:"restartCloseTimer",value:function(){this.clearCloseTimer(),this.startCloseTimer()}},{key:"render",value:function(){var e=this,t=this.props,n=t.prefixCls,r=t.className,a=t.closable,i=t.closeIcon,c=t.style,u=t.onClick,s=t.children,v=t.holder,m="".concat(n,"-notice"),h=Object.keys(this.props).reduce((function(t,n){return"data-"!==n.substr(0,5)&&"aria-"!==n.substr(0,5)&&"role"!==n||(t[n]=e.props[n]),t}),{}),y=f.createElement("div",(0,o.default)({className:(0,p.default)(m,r,(0,l.default)({},"".concat(m,"-closable"),a)),style:c,onMouseEnter:this.clearCloseTimer,onMouseLeave:this.startCloseTimer,onClick:u},h),f.createElement("div",{className:"".concat(m,"-content")},s),a?f.createElement("a",{tabIndex:0,onClick:this.close,className:"".concat(m,"-close")},i||f.createElement("span",{className:"".concat(m,"-close-x")})):null);return v?d.default.createPortal(y,v):y}}]),n}(f.Component);t.default=v,v.defaultProps={onClose:function(){},duration:1.5}},45484:function(e,t,n){"use strict";var r=n(20862),a=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=c.useRef({}),n=c.useState([]),r=(0,i.default)(n,2),a=r[0],s=r[1];return[function(n){var r=!0;e.add(n,(function(e,n){var a=n.key;if(e&&(!t.current[a]||r)){var i=c.createElement(u.default,(0,l.default)({},n,{holder:e}));t.current[a]=i,s((function(e){var t=e.findIndex((function(e){return e.key===n.key}));if(-1===t)return[].concat((0,o.default)(e),[i]);var r=(0,o.default)(e);return r[t]=i,r}))}r=!1}))},c.createElement(c.Fragment,null,a)]};var o=a(n(319)),l=a(n(67154)),i=a(n(63038)),c=r(n(67294)),u=a(n(32502))},62273:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default={items_per_page:"/ page",jump_to:"Go to",jump_to_confirm:"confirm",page:"",prev_page:"Previous Page",next_page:"Next Page",prev_5:"Previous 5 Pages",next_5:"Next 5 Pages",prev_3:"Previous 3 Pages",next_3:"Next 3 Pages"}},27590:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={locale:"en_US",today:"Today",now:"Now",backToToday:"Back to today",ok:"Ok",clear:"Clear",month:"Month",year:"Year",timeSelect:"select time",dateSelect:"select date",weekSelect:"Choose a week",monthSelect:"Choose a month",yearSelect:"Choose a year",decadeSelect:"Choose a decade",yearFormat:"YYYY",dateFormat:"M/D/YYYY",dayFormat:"D",dateTimeFormat:"M/D/YYYY HH:mm:ss",monthBeforeYear:!0,previousMonth:"Previous month (PageUp)",nextMonth:"Next month (PageDown)",previousYear:"Last year (Control + left)",nextYear:"Next year (Control + right)",previousDecade:"Last decade",nextDecade:"Next decade",previousCentury:"Last century",nextCentury:"Next century"};t.default=n},24375:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.placements=void 0;var n={adjustX:1,adjustY:1},r=[0,0],a={left:{points:["cr","cl"],overflow:n,offset:[-4,0],targetOffset:r},right:{points:["cl","cr"],overflow:n,offset:[4,0],targetOffset:r},top:{points:["bc","tc"],overflow:n,offset:[0,-4],targetOffset:r},bottom:{points:["tc","bc"],overflow:n,offset:[0,4],targetOffset:r},topLeft:{points:["bl","tl"],overflow:n,offset:[0,-4],targetOffset:r},leftTop:{points:["tr","tl"],overflow:n,offset:[-4,0],targetOffset:r},topRight:{points:["br","tr"],overflow:n,offset:[0,-4],targetOffset:r},rightTop:{points:["tl","tr"],overflow:n,offset:[4,0],targetOffset:r},bottomRight:{points:["tr","br"],overflow:n,offset:[0,4],targetOffset:r},rightBottom:{points:["bl","br"],overflow:n,offset:[4,0],targetOffset:r},bottomLeft:{points:["tl","bl"],overflow:n,offset:[0,4],targetOffset:r},leftBottom:{points:["br","bl"],overflow:n,offset:[-4,0],targetOffset:r}};t.placements=a;var o=a;t.default=o},45598:function(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=[];return a.default.Children.forEach(t,(function(t){(void 0!==t&&null!==t||n.keepEmpty)&&(Array.isArray(t)?r=r.concat(e(t)):(0,o.isFragment)(t)&&t.props?r=r.concat(e(t.props.children,n)):r.push(t))})),r};var a=r(n(67294)),o=n(59864)},19158:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){return!("undefined"===typeof window||!window.document||!window.document.createElement)}},93399:function(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.injectCSS=i,t.updateCSS=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=l(n);if(!c.has(r)){var a=i("",n),u=a.parentNode;c.set(r,u),u.removeChild(a)}var s=Array.from(c.get(r).children).find((function(e){return"STYLE"===e.tagName&&e[o]===t}));if(s){var f,d,p;if((null===(f=n.csp)||void 0===f?void 0:f.nonce)&&s.nonce!==(null===(d=n.csp)||void 0===d?void 0:d.nonce))s.nonce=null===(p=n.csp)||void 0===p?void 0:p.nonce;return s.innerHTML!==e&&(s.innerHTML=e),s}var v=i(e,n);return v[o]=t,v};var a=r(n(19158)),o="rc-util-key";function l(e){return e.attachTo?e.attachTo:document.querySelector("head")||document.body}function i(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!(0,a.default)())return null;var r,o=document.createElement("style");(null===(t=n.csp)||void 0===t?void 0:t.nonce)&&(o.nonce=null===(r=n.csp)||void 0===r?void 0:r.nonce);o.innerHTML=e;var i=l(n),c=i.firstChild;return n.prepend&&i.prepend?i.prepend(o):n.prepend&&c?i.insertBefore(o,c):i.appendChild(o),o}var c=new Map},3481:function(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.isStyleSupport=function(e,t){if(!Array.isArray(e)&&void 0!==t)return function(e,t){if(!o(e))return!1;var n=document.createElement("div"),r=n.style[e];return n.style[e]=t,n.style[e]!==r}(e,t);return o(e)};var a=r(n(19158)),o=function(e){if((0,a.default)()&&window.document.documentElement){var t=Array.isArray(e)?e:[e],n=window.document.documentElement;return t.some((function(e){return e in n.style}))}return!1}},27712:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={MAC_ENTER:3,BACKSPACE:8,TAB:9,NUM_CENTER:12,ENTER:13,SHIFT:16,CTRL:17,ALT:18,PAUSE:19,CAPS_LOCK:20,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,PRINT_SCREEN:44,INSERT:45,DELETE:46,ZERO:48,ONE:49,TWO:50,THREE:51,FOUR:52,FIVE:53,SIX:54,SEVEN:55,EIGHT:56,NINE:57,QUESTION_MARK:63,A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,T:84,U:85,V:86,W:87,X:88,Y:89,Z:90,META:91,WIN_KEY_RIGHT:92,CONTEXT_MENU:93,NUM_ZERO:96,NUM_ONE:97,NUM_TWO:98,NUM_THREE:99,NUM_FOUR:100,NUM_FIVE:101,NUM_SIX:102,NUM_SEVEN:103,NUM_EIGHT:104,NUM_NINE:105,NUM_MULTIPLY:106,NUM_PLUS:107,NUM_MINUS:109,NUM_PERIOD:110,NUM_DIVISION:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,NUMLOCK:144,SEMICOLON:186,DASH:189,EQUALS:187,COMMA:188,PERIOD:190,SLASH:191,APOSTROPHE:192,SINGLE_QUOTE:222,OPEN_SQUARE_BRACKET:219,BACKSLASH:220,CLOSE_SQUARE_BRACKET:221,WIN_KEY:224,MAC_FF_META:224,WIN_IME:229,isTextModifyingKeyEvent:function(e){var t=e.keyCode;if(e.altKey&&!e.ctrlKey||e.metaKey||t>=n.F1&&t<=n.F12)return!1;switch(t){case n.ALT:case n.CAPS_LOCK:case n.CONTEXT_MENU:case n.CTRL:case n.DOWN:case n.END:case n.ESC:case n.HOME:case n.INSERT:case n.LEFT:case n.MAC_FF_META:case n.META:case n.NUMLOCK:case n.NUM_CENTER:case n.PAGE_DOWN:case n.PAGE_UP:case n.PAUSE:case n.PRINT_SCREEN:case n.RIGHT:case n.SHIFT:case n.UP:case n.WIN_KEY:case n.WIN_KEY_RIGHT:return!1;default:return!0}},isCharacterKey:function(e){if(e>=n.ZERO&&e<=n.NINE)return!0;if(e>=n.NUM_ZERO&&e<=n.NUM_MULTIPLY)return!0;if(e>=n.A&&e<=n.Z)return!0;if(-1!==window.navigator.userAgent.indexOf("WebKit")&&0===e)return!0;switch(e){case n.SPACE:case n.QUESTION_MARK:case n.NUM_PLUS:case n.NUM_MINUS:case n.NUM_PERIOD:case n.NUM_DIVISION:case n.SEMICOLON:case n.DASH:case n.EQUALS:case n.COMMA:case n.PERIOD:case n.SLASH:case n.APOSTROPHE:case n.SINGLE_QUOTE:case n.OPEN_SQUARE_BRACKET:case n.BACKSLASH:case n.CLOSE_SQUARE_BRACKET:return!0;default:return!1}}},r=n;t.default=r},67265:function(e,t,n){"use strict";var r=n(20862);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n){var r=a.useRef({});"value"in r.current&&!n(r.current.condition,t)||(r.current.value=e(),r.current.condition=t);return r.current.value};var a=r(n(67294))},60869:function(e,t,n){"use strict";var r=n(20862),a=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var n=t||{},r=n.defaultValue,a=n.value,i=n.onChange,c=n.postState,u=l.useState((function(){return void 0!==a?a:void 0!==r?"function"===typeof r?r():r:"function"===typeof e?e():e})),s=(0,o.default)(u,2),f=s[0],d=s[1],p=void 0!==a?a:f;c&&(p=c(p));var v=l.useRef(i);v.current=i;var m=l.useCallback((function(e){d(e),p!==e&&v.current&&v.current(e,p)}),[p,v]),h=l.useRef(!0);return l.useEffect((function(){h.current?h.current=!1:void 0===a&&d(a)}),[a]),[p,m]};var o=a(n(63038)),l=r(n(67294))},18475:function(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var n=(0,a.default)({},e);Array.isArray(t)&&t.forEach((function(e){delete n[e]}));return n};var a=r(n(81109))},64543:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=i;var n=function(e){return+setTimeout(e,16)},r=function(e){return clearTimeout(e)};"undefined"!==typeof window&&"requestAnimationFrame"in window&&(n=function(e){return window.requestAnimationFrame(e)},r=function(e){return window.cancelAnimationFrame(e)});var a=0,o=new Map;function l(e){o.delete(e)}function i(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=a+=1;function i(t){if(0===t)l(r),e();else{var a=n((function(){i(t-1)}));o.set(r,a)}}return i(t),r}i.cancel=function(e){var t=o.get(e);return l(t),r(t)}},75531:function(e,t,n){"use strict";var r=n(95318);Object.defineProperty(t,"__esModule",{value:!0}),t.fillRef=i,t.composeRef=c,t.useComposeRef=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return(0,l.default)((function(){return c.apply(void 0,t)}),t,(function(e,t){return e.length===t.length&&e.every((function(e,n){return e===t[n]}))}))},t.supportRef=function(e){var t,n,r=(0,o.isMemo)(e)?e.type.type:e.type;if("function"===typeof r&&!(null===(t=r.prototype)||void 0===t?void 0:t.render))return!1;if("function"===typeof e&&!(null===(n=e.prototype)||void 0===n?void 0:n.render))return!1;return!0};var a=r(n(50008)),o=n(59864),l=r(n(67265));function i(e,t){"function"===typeof e?e(t):"object"===(0,a.default)(e)&&e&&"current"in e&&(e.current=t)}function c(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=t.filter((function(e){return e}));return r.length<=1?r[0]:function(e){t.forEach((function(t){i(t,e)}))}}},45520:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.warning=r,t.note=a,t.resetWarned=function(){n={}},t.call=o,t.warningOnce=l,t.noteOnce=function(e,t){o(a,e,t)},t.default=void 0;var n={};function r(e,t){0}function a(e,t){0}function o(e,t,r){t||n[r]||(e(!1,r),n[r]=!0)}function l(e,t){o(r,e,t)}var i=l;t.default=i}}]); \ No newline at end of file
diff --git a/static/admin/_next/static/chunks/17-7e60474a0bf727db.js b/static/admin/_next/static/chunks/17-8c3836887f4f3962.js
index b82ae3863..fdda31a9e 100644
--- a/static/admin/_next/static/chunks/17-7e60474a0bf727db.js
+++ b/static/admin/_next/static/chunks/17-8c3836887f4f3962.js
@@ -1 +1 @@
-"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[17],{91017:function(e,n,t){t.d(n,{Z:function(){return C}});var a=t(28520),l=t.n(a),r=t(85893),s=t(67294),o=t(17256),i=t(71577),c=t(69677),u=t(49919),d=t(56516),f=t(48689),p=t(66933),m=t(58827),h=t(25964);function v(e){var n=e.iconList,t=e.selectedOption,a=e.onSelected,l=""===t?null:t;return(0,r.jsxs)("div",{className:"social-dropdown-container",children:[(0,r.jsx)("p",{className:"description",children:"If you are looking for a platform name not on this list, please select Other and type in your own name. A logo will not be provided."}),(0,r.jsxs)("div",{className:"formfield-container",children:[(0,r.jsx)("div",{className:"label-side",children:(0,r.jsx)("span",{className:"formfield-label",children:"Social Platform"})}),(0,r.jsx)("div",{className:"input-side",children:(0,r.jsxs)(p.Z,{style:{width:240},className:"social-dropdown",placeholder:"Social platform...",defaultValue:l,value:l,onSelect:function(e){a&&a(e)},children:[n.map((function(e){var n=e.platform,t=e.icon,a=e.key,l="".concat(m.WB).concat(t.slice(1));return(0,r.jsxs)(p.Z.Option,{className:"social-option",value:a,children:[(0,r.jsx)("span",{className:"option-icon",children:(0,r.jsx)("img",{src:l,alt:"",className:"option-icon"})}),(0,r.jsx)("span",{className:"option-label",children:n})]},"platform-".concat(a))})),(0,r.jsx)(p.Z.Option,{className:"social-option",value:h.z_,children:"Other..."},"platform-".concat(h.z_))]})})]})]})}var j=t(35159),x=t(19411),b=t(48419),y=t(83200),N=t(78464);function g(e,n,t,a,l,r,s){try{var o=e[r](s),i=o.value}catch(c){return void t(c)}o.done?n(i):Promise.resolve(i).then(a,l)}function k(e){return function(){var n=this,t=arguments;return new Promise((function(a,l){var r=e.apply(n,t);function s(e){g(r,a,l,s,o,"next",e)}function o(e){g(r,a,l,s,o,"throw",e)}s(void 0)}))}}function w(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function S(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},a=Object.keys(t);"function"===typeof Object.getOwnPropertySymbols&&(a=a.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),a.forEach((function(n){w(e,n,t[n])}))}return e}function O(e){return function(e){if(Array.isArray(e)){for(var n=0,t=new Array(e.length);n<e.length;n++)t[n]=e[n];return t}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}var Z=o.Z.Title;function C(){var e=(0,s.useState)([]),n=e[0],t=e[1],a=(0,s.useState)([]),o=a[0],p=a[1],g=(0,s.useState)(!1),C=g[0],P=g[1],E=(0,s.useState)(!1),z=E[0],A=E[1],_=(0,s.useState)(!1),I=_[0],T=_[1],H=(0,s.useState)(-1),L=H[0],B=H[1],D=(0,s.useState)(h.wC),U=D[0],V=D[1],W=(0,s.useState)(null),F=W[0],K=W[1],Q=(0,s.useContext)(j.aC)||{},R=Q.serverConfig,Y=Q.setFieldInConfigState,$=R.instanceDetails,q=$.socialHandles,G=null,J=k(l().mark((function e(){var n,a;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,(0,m.rQ)(m.$i,{auth:!1});case 3:n=e.sent,a=Object.keys(n).map((function(e){return S({key:e},n[e])})),t(a),e.next=11;break;case 8:e.prev=8,e.t0=e.catch(0),console.log(e.t0);case 11:case"end":return e.stop()}}),e,null,[[0,8]])}))),M=function(e){return n.find((function(n){return n.key===e}))||!1},X=""!==U.platform&&!n.find((function(e){return e.key===U.platform}));(0,s.useEffect)((function(){J()}),[]),(0,s.useEffect)((function(){$.socialHandles&&p(q)}),[$]);var ee=function(){K(null),G=null,clearTimeout(G)},ne=function(){P(!1),B(-1),A(!1),T(!1),V(S({},h.wC))},te=function(){ne()},ae=function(e,n){V(S({},U,w({},e,n)))},le=k(l().mark((function e(n){return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,h.Si)({apiPath:h.c9,data:{value:n},onSuccess:function(){Y({fieldName:"socialHandles",value:n,path:"instanceDetails"}),T(!1),te(),K((0,y.kg)(y.zv)),G=setTimeout(ee,h.sI)},onError:function(e){K((0,y.kg)(y.Un,"There was an error: ".concat(e))),T(!1),G=setTimeout(ee,h.sI)}});case 2:case"end":return e.stop()}}),e)}))),re=[{title:"Social Link",dataIndex:"",key:"combo",render:function(e,n){var t=n.platform,a=n.url,l=M(t);if(!l)return(0,r.jsx)("div",{className:"social-handle-cell",children:(0,r.jsxs)("p",{className:"option-label",children:[(0,r.jsx)("strong",{children:t}),(0,r.jsx)("span",{className:"handle-url",title:a,children:a})]})});var s=l.icon,o=l.platform,i="".concat(m.WB).concat(s.slice(1));return(0,r.jsxs)("div",{className:"social-handle-cell",children:[(0,r.jsx)("span",{className:"option-icon",children:(0,r.jsx)("img",{src:i,alt:"",className:"option-icon"})}),(0,r.jsxs)("p",{className:"option-label",children:[(0,r.jsx)("strong",{children:o}),(0,r.jsx)("span",{className:"handle-url",title:a,children:a})]})]})}},{title:"",dataIndex:"",key:"edit",render:function(e,n,t){return(0,r.jsxs)("div",{className:"actions",children:[(0,r.jsx)(i.Z,{size:"small",onClick:function(){var e=o[t];B(t),V(S({},e)),P(!0),M(e.platform)||A(!0)},children:"Edit"}),(0,r.jsx)(i.Z,{className:"delete-button",icon:(0,r.jsx)(f.Z,{}),size:"small",onClick:function(){return function(e){var n=O(o);n.splice(e,1),le(n)}(t)}})]})}}],se={disabled:!(0,x.Z)(U.url)},oe=(0,r.jsxs)("div",{className:"other-field-container formfield-container",children:[(0,r.jsx)("div",{className:"label-side"}),(0,r.jsx)("div",{className:"input-side",children:(0,r.jsx)(c.Z,{placeholder:"Other platform name",defaultValue:U.platform,onChange:function(e){var n=e.target.value;ae("platform",n)}})})]});return(0,r.jsxs)("div",{className:"social-links-edit-container",children:[(0,r.jsx)(Z,{level:3,className:"section-title",children:"Your Social Handles"}),(0,r.jsx)("p",{className:"description",children:"Add all your social media handles and links to your other profiles here."}),(0,r.jsx)(N.Z,{status:F}),(0,r.jsx)(u.Z,{className:"social-handles-table",pagination:!1,size:"small",rowKey:function(e){return"".concat(e.platform,"-").concat(e.url)},columns:re,dataSource:o}),(0,r.jsx)(d.Z,{title:"Edit Social Handle",visible:C,onOk:function(){T(!0);var e=o.length?O(o):[];-1===L?e.push(U):e.splice(L,1,U),le(e)},onCancel:te,confirmLoading:I,okButtonProps:se,children:(0,r.jsxs)("div",{className:"social-handle-modal-content",children:[(0,r.jsx)(v,{iconList:n,selectedOption:X?h.z_:U.platform,onSelected:function(e){e===h.z_?(A(!0),ae("platform","")):(A(!1),ae("platform",e))}}),z&&oe,(0,r.jsx)("br",{}),(0,r.jsx)(b.ZP,{fieldName:"social-url",label:"URL",placeholder:{mastodon:"https://mastodon.social/@username",twitter:"https://twitter.com/username"}[U.platform]||"Url to page",value:U.url,onChange:function(e){var n=e.value;ae("url",n)},useTrim:!0,type:"url",pattern:x.a}),(0,r.jsx)(N.Z,{status:F})]})}),(0,r.jsx)("br",{}),(0,r.jsx)(i.Z,{type:"primary",onClick:function(){ne(),P(!0)},children:"Add a new social link"})]})}}}]); \ No newline at end of file
+"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[17],{91017:function(e,n,t){t.d(n,{Z:function(){return C}});var a=t(28520),l=t.n(a),r=t(85893),s=t(67294),o=t(44068),i=t(71577),c=t(69677),u=t(88829),d=t(56516),f=t(48689),p=t(66933),m=t(58827),h=t(25964);function v(e){var n=e.iconList,t=e.selectedOption,a=e.onSelected,l=""===t?null:t;return(0,r.jsxs)("div",{className:"social-dropdown-container",children:[(0,r.jsx)("p",{className:"description",children:"If you are looking for a platform name not on this list, please select Other and type in your own name. A logo will not be provided."}),(0,r.jsxs)("div",{className:"formfield-container",children:[(0,r.jsx)("div",{className:"label-side",children:(0,r.jsx)("span",{className:"formfield-label",children:"Social Platform"})}),(0,r.jsx)("div",{className:"input-side",children:(0,r.jsxs)(p.Z,{style:{width:240},className:"social-dropdown",placeholder:"Social platform...",defaultValue:l,value:l,onSelect:function(e){a&&a(e)},children:[n.map((function(e){var n=e.platform,t=e.icon,a=e.key,l="".concat(m.WB).concat(t.slice(1));return(0,r.jsxs)(p.Z.Option,{className:"social-option",value:a,children:[(0,r.jsx)("span",{className:"option-icon",children:(0,r.jsx)("img",{src:l,alt:"",className:"option-icon"})}),(0,r.jsx)("span",{className:"option-label",children:n})]},"platform-".concat(a))})),(0,r.jsx)(p.Z.Option,{className:"social-option",value:h.z_,children:"Other..."},"platform-".concat(h.z_))]})})]})]})}var j=t(35159),x=t(19411),b=t(48419),y=t(83200),N=t(78464);function g(e,n,t,a,l,r,s){try{var o=e[r](s),i=o.value}catch(c){return void t(c)}o.done?n(i):Promise.resolve(i).then(a,l)}function k(e){return function(){var n=this,t=arguments;return new Promise((function(a,l){var r=e.apply(n,t);function s(e){g(r,a,l,s,o,"next",e)}function o(e){g(r,a,l,s,o,"throw",e)}s(void 0)}))}}function w(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function S(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},a=Object.keys(t);"function"===typeof Object.getOwnPropertySymbols&&(a=a.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),a.forEach((function(n){w(e,n,t[n])}))}return e}function O(e){return function(e){if(Array.isArray(e)){for(var n=0,t=new Array(e.length);n<e.length;n++)t[n]=e[n];return t}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}var Z=o.Z.Title;function C(){var e=(0,s.useState)([]),n=e[0],t=e[1],a=(0,s.useState)([]),o=a[0],p=a[1],g=(0,s.useState)(!1),C=g[0],P=g[1],E=(0,s.useState)(!1),z=E[0],A=E[1],_=(0,s.useState)(!1),I=_[0],T=_[1],H=(0,s.useState)(-1),L=H[0],B=H[1],D=(0,s.useState)(h.wC),U=D[0],V=D[1],W=(0,s.useState)(null),F=W[0],K=W[1],Q=(0,s.useContext)(j.aC)||{},R=Q.serverConfig,Y=Q.setFieldInConfigState,$=R.instanceDetails,q=$.socialHandles,G=null,J=k(l().mark((function e(){var n,a;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,(0,m.rQ)(m.$i,{auth:!1});case 3:n=e.sent,a=Object.keys(n).map((function(e){return S({key:e},n[e])})),t(a),e.next=11;break;case 8:e.prev=8,e.t0=e.catch(0),console.log(e.t0);case 11:case"end":return e.stop()}}),e,null,[[0,8]])}))),M=function(e){return n.find((function(n){return n.key===e}))||!1},X=""!==U.platform&&!n.find((function(e){return e.key===U.platform}));(0,s.useEffect)((function(){J()}),[]),(0,s.useEffect)((function(){$.socialHandles&&p(q)}),[$]);var ee=function(){K(null),G=null,clearTimeout(G)},ne=function(){P(!1),B(-1),A(!1),T(!1),V(S({},h.wC))},te=function(){ne()},ae=function(e,n){V(S({},U,w({},e,n)))},le=k(l().mark((function e(n){return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,h.Si)({apiPath:h.c9,data:{value:n},onSuccess:function(){Y({fieldName:"socialHandles",value:n,path:"instanceDetails"}),T(!1),te(),K((0,y.kg)(y.zv)),G=setTimeout(ee,h.sI)},onError:function(e){K((0,y.kg)(y.Un,"There was an error: ".concat(e))),T(!1),G=setTimeout(ee,h.sI)}});case 2:case"end":return e.stop()}}),e)}))),re=[{title:"Social Link",dataIndex:"",key:"combo",render:function(e,n){var t=n.platform,a=n.url,l=M(t);if(!l)return(0,r.jsx)("div",{className:"social-handle-cell",children:(0,r.jsxs)("p",{className:"option-label",children:[(0,r.jsx)("strong",{children:t}),(0,r.jsx)("span",{className:"handle-url",title:a,children:a})]})});var s=l.icon,o=l.platform,i="".concat(m.WB).concat(s.slice(1));return(0,r.jsxs)("div",{className:"social-handle-cell",children:[(0,r.jsx)("span",{className:"option-icon",children:(0,r.jsx)("img",{src:i,alt:"",className:"option-icon"})}),(0,r.jsxs)("p",{className:"option-label",children:[(0,r.jsx)("strong",{children:o}),(0,r.jsx)("span",{className:"handle-url",title:a,children:a})]})]})}},{title:"",dataIndex:"",key:"edit",render:function(e,n,t){return(0,r.jsxs)("div",{className:"actions",children:[(0,r.jsx)(i.Z,{size:"small",onClick:function(){var e=o[t];B(t),V(S({},e)),P(!0),M(e.platform)||A(!0)},children:"Edit"}),(0,r.jsx)(i.Z,{className:"delete-button",icon:(0,r.jsx)(f.Z,{}),size:"small",onClick:function(){return function(e){var n=O(o);n.splice(e,1),le(n)}(t)}})]})}}],se={disabled:!(0,x.Z)(U.url)},oe=(0,r.jsxs)("div",{className:"other-field-container formfield-container",children:[(0,r.jsx)("div",{className:"label-side"}),(0,r.jsx)("div",{className:"input-side",children:(0,r.jsx)(c.Z,{placeholder:"Other platform name",defaultValue:U.platform,onChange:function(e){var n=e.target.value;ae("platform",n)}})})]});return(0,r.jsxs)("div",{className:"social-links-edit-container",children:[(0,r.jsx)(Z,{level:3,className:"section-title",children:"Your Social Handles"}),(0,r.jsx)("p",{className:"description",children:"Add all your social media handles and links to your other profiles here."}),(0,r.jsx)(N.Z,{status:F}),(0,r.jsx)(u.Z,{className:"social-handles-table",pagination:!1,size:"small",rowKey:function(e){return"".concat(e.platform,"-").concat(e.url)},columns:re,dataSource:o}),(0,r.jsx)(d.Z,{title:"Edit Social Handle",visible:C,onOk:function(){T(!0);var e=o.length?O(o):[];-1===L?e.push(U):e.splice(L,1,U),le(e)},onCancel:te,confirmLoading:I,okButtonProps:se,children:(0,r.jsxs)("div",{className:"social-handle-modal-content",children:[(0,r.jsx)(v,{iconList:n,selectedOption:X?h.z_:U.platform,onSelected:function(e){e===h.z_?(A(!0),ae("platform","")):(A(!1),ae("platform",e))}}),z&&oe,(0,r.jsx)("br",{}),(0,r.jsx)(b.ZP,{fieldName:"social-url",label:"URL",placeholder:{mastodon:"https://mastodon.social/@username",twitter:"https://twitter.com/username"}[U.platform]||"Url to page",value:U.url,onChange:function(e){var n=e.value;ae("url",n)},useTrim:!0,type:"url",pattern:x.a}),(0,r.jsx)(N.Z,{status:F})]})}),(0,r.jsx)("br",{}),(0,r.jsx)(i.Z,{type:"primary",onClick:function(){ne(),P(!0)},children:"Add a new social link"})]})}}}]); \ No newline at end of file
diff --git a/static/admin/_next/static/chunks/371-7cb27e335b0cdeb4.js b/static/admin/_next/static/chunks/371-7cb27e335b0cdeb4.js
deleted file mode 100644
index 88ed8a68b..000000000
--- a/static/admin/_next/static/chunks/371-7cb27e335b0cdeb4.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[371],{82911:function(e,n,t){t.d(n,{Z:function(){return c}});var r=t(1413),a=t(67294),o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 708c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm62.9-219.5a48.3 48.3 0 00-30.9 44.8V620c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-21.5c0-23.1 6.7-45.9 19.9-64.9 12.9-18.6 30.9-32.8 52.1-40.9 34-13.1 56-41.6 56-72.7 0-44.1-43.1-80-96-80s-96 35.9-96 80v7.6c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V420c0-39.3 17.2-76 48.4-103.3C430.4 290.4 470 276 512 276s81.6 14.5 111.6 40.7C654.8 344 672 380.7 672 420c0 57.8-38.1 109.8-97.1 132.5z"}}]},name:"question-circle",theme:"filled"},s=t(42135),i=function(e,n){return a.createElement(s.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:n,icon:o}))};i.displayName="QuestionCircleFilled";var c=a.forwardRef(i)},84674:function(e,n,t){t.d(n,{Z:function(){return c}});var r=t(1413),a=t(67294),o={icon:function(e,n){return{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm288.5 682.8L277.7 224C258 240 240 258 224 277.7l522.8 522.8C682.8 852.7 601 884 512 884c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372c0 89-31.3 170.8-83.5 234.8z",fill:e}},{tag:"path",attrs:{d:"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372c89 0 170.8-31.3 234.8-83.5L224 277.7c16-19.7 34-37.7 53.7-53.7l522.8 522.8C852.7 682.8 884 601 884 512c0-205.4-166.6-372-372-372z",fill:n}}]}},name:"stop",theme:"twotone"},s=t(42135),i=function(e,n){return a.createElement(s.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:n,icon:o}))};i.displayName="StopTwoTone";var c=a.forwardRef(i)},27049:function(e,n,t){var r=t(87462),a=t(4942),o=t(67294),s=t(94184),i=t.n(s),c=t(59844),l=function(e,n){var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&n.indexOf(r)<0&&(t[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)n.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(t[r[a]]=e[r[a]])}return t};n.Z=function(e){return o.createElement(c.C,null,(function(n){var t,s=n.getPrefixCls,c=n.direction,u=e.prefixCls,d=e.type,f=void 0===d?"horizontal":d,m=e.orientation,h=void 0===m?"center":m,p=e.orientationMargin,v=e.className,x=e.children,y=e.dashed,b=e.plain,j=l(e,["prefixCls","type","orientation","orientationMargin","className","children","dashed","plain"]),g=s("divider",u),Z=h.length>0?"-".concat(h):h,w=!!x,C="left"===h&&null!=p,k="right"===h&&null!=p,N=i()(g,"".concat(g,"-").concat(f),(t={},(0,a.Z)(t,"".concat(g,"-with-text"),w),(0,a.Z)(t,"".concat(g,"-with-text").concat(Z),w),(0,a.Z)(t,"".concat(g,"-dashed"),!!y),(0,a.Z)(t,"".concat(g,"-plain"),!!b),(0,a.Z)(t,"".concat(g,"-rtl"),"rtl"===c),(0,a.Z)(t,"".concat(g,"-no-default-orientation-margin-left"),C),(0,a.Z)(t,"".concat(g,"-no-default-orientation-margin-right"),k),t),v),A=(0,r.Z)((0,r.Z)({},C&&{marginLeft:p}),k&&{marginRight:p});return o.createElement("div",(0,r.Z)({className:N},j,{role:"separator"}),x&&o.createElement("span",{className:"".concat(g,"-inner-text"),style:A},x))}))}},66192:function(e,n,t){t.d(n,{Z:function(){return h}});var r=t(28520),a=t.n(r),o=t(85893),s=t(56516),i=t(71577),c=t(21640),l=t(82911),u=t(84674),d=t(58827);function f(e,n,t,r,a,o,s){try{var i=e[o](s),c=i.value}catch(l){return void t(l)}i.done?n(c):Promise.resolve(c).then(r,a)}function m(e){return function(){var n=this,t=arguments;return new Promise((function(r,a){var o=e.apply(n,t);function s(e){f(o,r,a,s,i,"next",e)}function i(e){f(o,r,a,s,i,"throw",e)}s(void 0)}))}}function h(e){var n=e.user,t=e.isEnabled,r=e.label,f=e.onClick;function h(){return(h=m(a().mark((function e(n){var r,o,s;return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=n.id,o={userId:r,enabled:!t},e.prev=2,e.next=5,(0,d.rQ)(d.NM,{data:o,method:"POST",auth:!0});case 5:return s=e.sent,e.abrupt("return",s.success);case 9:e.prev=9,e.t0=e.catch(2),console.error(e.t0);case 12:return e.abrupt("return",!1);case 13:case"end":return e.stop()}}),e,null,[[2,9]])})))).apply(this,arguments)}var p=t?"ban":"unban",v=t?(0,o.jsx)(c.Z,{style:{color:"var(--ant-error)"}}):(0,o.jsx)(l.Z,{style:{color:"var(--ant-warning)"}}),x=(0,o.jsxs)(o.Fragment,{children:["Are you sure you want to ",p," ",(0,o.jsx)("strong",{children:n.displayName}),t?" and remove their messages?":"?"]});return(0,o.jsx)(i.Z,{onClick:function(){s.Z.confirm({title:"Confirm ".concat(p),content:x,onCancel:function(){},onOk:function(){return new Promise((function(e,t){var r=function(e){return h.apply(this,arguments)}(n);r?setTimeout((function(){e(r),null===f||void 0===f||f()}),3e3):t()}))},okType:"danger",okText:t?"Absolutely":null,icon:v})},size:"small",icon:t?(0,o.jsx)(u.Z,{twoToneColor:"#ff4d4f"}):null,className:"block-user-button",children:r||p})}h.defaultProps={label:"",onClick:null}},85584:function(e,n,t){t.d(n,{Z:function(){return T}});var r=t(85893),a=t(67294),o=t(56266),s=t(56516),i=t(17256),c=t(25968),l=t(6226),u=t(27049),d=t(85533),f=t(58091),m=t(96486),h=t(66192),p=t(28520),v=t.n(p),x=t(71577),y=t(21640),b=t(82911),j=t(84674),g=t(58827);function Z(e,n,t,r,a,o,s){try{var i=e[o](s),c=i.value}catch(l){return void t(l)}i.done?n(c):Promise.resolve(c).then(r,a)}function w(e){return function(){var n=this,t=arguments;return new Promise((function(r,a){var o=e.apply(n,t);function s(e){Z(o,r,a,s,i,"next",e)}function i(e){Z(o,r,a,s,i,"throw",e)}s(void 0)}))}}function C(e){var n,t=e.user,a=e.onClick;function o(){return(o=w(v().mark((function e(n,t){var r,a,o;return v().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=n.id,a={userId:r,isModerator:t},e.prev=2,e.next=5,(0,g.rQ)(g.jr,{data:a,method:"POST",auth:!0});case 5:return o=e.sent,e.abrupt("return",o.success);case 9:e.prev=9,e.t0=e.catch(2),console.error(e.t0);case 12:return e.abrupt("return",!1);case 13:case"end":return e.stop()}}),e,null,[[2,9]])})))).apply(this,arguments)}var i=null===(n=t.scopes)||void 0===n?void 0:n.includes("MODERATOR"),c=i?"remove moderator":"add moderator",l=i?(0,r.jsx)(y.Z,{style:{color:"var(--ant-error)"}}):(0,r.jsx)(b.Z,{style:{color:"var(--ant-warning)"}}),u=(0,r.jsxs)(r.Fragment,{children:["Are you sure you want to ",c," ",(0,r.jsx)("strong",{children:t.displayName}),"?"]});return(0,r.jsx)(x.Z,{onClick:function(){s.Z.confirm({title:"Confirm ".concat(c),content:u,onCancel:function(){},onOk:function(){return new Promise((function(e,n){var r=function(e,n){return o.apply(this,arguments)}(t,!i);r?setTimeout((function(){e(r),null===a||void 0===a||a()}),3e3):n()}))},okType:"danger",okText:i?"Yup!":null,icon:l})},size:"small",icon:i?(0,r.jsx)(j.Z,{twoToneColor:"#ff4d4f"}):null,className:"block-user-button",children:c})}C.defaultProps={onClick:null};var k=t(20643),N=t(2766);function A(e){return function(e){if(Array.isArray(e)){for(var n=0,t=new Array(e.length);n<e.length;n++)t[n]=e[n];return t}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function T(e){var n=e.user,t=e.connectionInfo,p=e.children,v=(0,a.useState)(!1),x=v[0],y=v[1],b=function(){y(!1)},j=n.displayName,g=n.createdAt,Z=n.previousNames,w=n.nameChangedAt,T=n.disabledAt,O=t||{},P=O.connectedAt,D=O.messageCount,E=O.userAgent,S=null,M=Z&&A(Z);Z&&Z.length>1&&w&&(S=new Date(w),M.reverse());var z=new Date(g),I=(0,f.Z)(z,"PP pp"),F=S?(0,d.Z)(S):null;return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(o.Z,{title:(0,r.jsxs)(r.Fragment,{children:["Created at: ",I,".",(0,r.jsx)("br",{})," Click for more info."]}),placement:"bottomLeft",children:(0,r.jsx)("button",{type:"button","aria-label":"Display more details about this user",className:"user-item-container",onClick:function(){y(!0)},children:p})}),(0,r.jsx)(s.Z,{destroyOnClose:!0,width:600,cancelText:"Close",okButtonProps:{style:{display:"none"}},title:"User details: ".concat(j),visible:x,onOk:b,onCancel:b,children:(0,r.jsxs)("div",{className:"user-details",children:[(0,r.jsx)(i.Z.Title,{level:4,children:j}),(0,r.jsxs)("p",{className:"created-at",children:["User created at ",I,"."]}),(0,r.jsxs)(c.Z,{gutter:16,children:[t&&(0,r.jsxs)(l.Z,{md:S?12:24,children:[(0,r.jsx)(i.Z.Title,{level:5,children:"This user is currently connected to Chat."}),(0,r.jsxs)("ul",{className:"connection-info",children:[(0,r.jsxs)("li",{children:[(0,r.jsx)("strong",{children:"Active for:"})," ",(0,d.Z)(new Date(P))]}),(0,r.jsxs)("li",{children:[(0,r.jsx)("strong",{children:"Messages sent:"})," ",D]}),(0,r.jsxs)("li",{children:[(0,r.jsx)("strong",{children:"User Agent:"}),(0,r.jsx)("br",{}),(0,N.AB)(E)]})]})]}),S&&(0,r.jsxs)(l.Z,{md:t?12:24,children:[(0,r.jsx)(i.Z.Title,{level:5,children:"This user is also seen as:"}),(0,r.jsx)("ul",{className:"previous-names-list",children:(0,m.uniq)(M).map((function(e,n){return(0,r.jsxs)("li",{className:0===n?"latest":"",children:[(0,r.jsx)("span",{className:"user-name-item",children:e}),0===n?" (Changed ".concat(F," ago)"):""]})}))})]})]}),(0,r.jsx)(u.Z,{}),T?(0,r.jsxs)(r.Fragment,{children:["This user was banned on ",(0,r.jsx)("code",{children:(0,k.u)(T)}),".",(0,r.jsx)("br",{}),(0,r.jsx)("br",{}),(0,r.jsx)(h.Z,{label:"Unban this user",user:n,isEnabled:!1,onClick:b})]}):(0,r.jsx)(h.Z,{label:"Ban this user",user:n,isEnabled:!0,onClick:b}),(0,r.jsx)(C,{user:n,onClick:b})]})})]})}T.defaultProps={connectionInfo:null}},20643:function(e,n,t){t.d(n,{u:function(){return c},Z:function(){return l}});var r=t(85893),a=t(49919),o=t(58091),s=t(85584),i=t(66192);function c(e){return(0,o.Z)(new Date(e),"MMM d H:mma")}function l(e){var n=e.data,t=[{title:"Last Known Display Name",dataIndex:"displayName",key:"displayName",render:function(e,n){return(0,r.jsx)(s.Z,{user:n,children:(0,r.jsx)("span",{className:"display-name",children:e})})}},{title:"Created",dataIndex:"createdAt",key:"createdAt",render:function(e){return c(e)},sorter:function(e,n){return new Date(e.createdAt).getTime()-new Date(n.createdAt).getTime()},sortDirections:["descend","ascend"]},{title:"Disabled at",dataIndex:"disabledAt",key:"disabledAt",defaultSortOrder:"descend",render:function(e){return e?c(e):null},sorter:function(e,n){return new Date(e.disabledAt).getTime()-new Date(n.disabledAt).getTime()},sortDirections:["descend","ascend"]},{title:"",key:"block",className:"actions-col",render:function(e,n){return(0,r.jsx)(i.Z,{user:n,isEnabled:!n.disabledAt})}}];return(0,r.jsx)(a.Z,{pagination:{hideOnSinglePage:!0},className:"table-container",columns:t,dataSource:n,size:"small",rowKey:"id"})}}}]); \ No newline at end of file
diff --git a/static/admin/_next/static/chunks/464-deae2b2f674a34de.js b/static/admin/_next/static/chunks/464-deae2b2f674a34de.js
new file mode 100644
index 000000000..1daf6f7b9
--- /dev/null
+++ b/static/admin/_next/static/chunks/464-deae2b2f674a34de.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[464],{82911:function(e,t,n){n.d(t,{Z:function(){return s}});var r=n(1413),a=n(67294),o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 708c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm62.9-219.5a48.3 48.3 0 00-30.9 44.8V620c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-21.5c0-23.1 6.7-45.9 19.9-64.9 12.9-18.6 30.9-32.8 52.1-40.9 34-13.1 56-41.6 56-72.7 0-44.1-43.1-80-96-80s-96 35.9-96 80v7.6c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V420c0-39.3 17.2-76 48.4-103.3C430.4 290.4 470 276 512 276s81.6 14.5 111.6 40.7C654.8 344 672 380.7 672 420c0 57.8-38.1 109.8-97.1 132.5z"}}]},name:"question-circle",theme:"filled"},c=n(42135),i=function(e,t){return a.createElement(c.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:t,icon:o}))};i.displayName="QuestionCircleFilled";var s=a.forwardRef(i)},84674:function(e,t,n){n.d(t,{Z:function(){return s}});var r=n(1413),a=n(67294),o={icon:function(e,t){return{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm288.5 682.8L277.7 224C258 240 240 258 224 277.7l522.8 522.8C682.8 852.7 601 884 512 884c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372c0 89-31.3 170.8-83.5 234.8z",fill:e}},{tag:"path",attrs:{d:"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372c89 0 170.8-31.3 234.8-83.5L224 277.7c16-19.7 34-37.7 53.7-53.7l522.8 522.8C852.7 682.8 884 601 884 512c0-205.4-166.6-372-372-372z",fill:t}}]}},name:"stop",theme:"twotone"},c=n(42135),i=function(e,t){return a.createElement(c.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:t,icon:o}))};i.displayName="StopTwoTone";var s=a.forwardRef(i)},6226:function(e,t,n){n.d(t,{Z:function(){return m}});var r=n(4942),a=n(87462),o=n(71002),c=n(67294),i=n(94184),s=n.n(i),l=n(99134),u=n(59844),d=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n};var f=["xs","sm","md","lg","xl","xxl"],p=c.forwardRef((function(e,t){var n,i=c.useContext(u.E_),p=i.getPrefixCls,m=i.direction,h=c.useContext(l.Z),v=h.gutter,x=h.wrap,y=h.supportFlexGap,Z=e.prefixCls,b=e.span,g=e.order,j=e.offset,w=e.push,C=e.pull,O=e.className,N=e.children,k=e.flex,A=e.style,P=d(e,["prefixCls","span","order","offset","push","pull","className","children","flex","style"]),T=p("col",Z),E={};f.forEach((function(t){var n,c={},i=e[t];"number"===typeof i?c.span=i:"object"===(0,o.Z)(i)&&(c=i||{}),delete P[t],E=(0,a.Z)((0,a.Z)({},E),(n={},(0,r.Z)(n,"".concat(T,"-").concat(t,"-").concat(c.span),void 0!==c.span),(0,r.Z)(n,"".concat(T,"-").concat(t,"-order-").concat(c.order),c.order||0===c.order),(0,r.Z)(n,"".concat(T,"-").concat(t,"-offset-").concat(c.offset),c.offset||0===c.offset),(0,r.Z)(n,"".concat(T,"-").concat(t,"-push-").concat(c.push),c.push||0===c.push),(0,r.Z)(n,"".concat(T,"-").concat(t,"-pull-").concat(c.pull),c.pull||0===c.pull),(0,r.Z)(n,"".concat(T,"-rtl"),"rtl"===m),n))}));var S=s()(T,(n={},(0,r.Z)(n,"".concat(T,"-").concat(b),void 0!==b),(0,r.Z)(n,"".concat(T,"-order-").concat(g),g),(0,r.Z)(n,"".concat(T,"-offset-").concat(j),j),(0,r.Z)(n,"".concat(T,"-push-").concat(w),w),(0,r.Z)(n,"".concat(T,"-pull-").concat(C),C),n),O,E),M={};if(v&&v[0]>0){var z=v[0]/2;M.paddingLeft=z,M.paddingRight=z}if(v&&v[1]>0&&!y){var D=v[1]/2;M.paddingTop=D,M.paddingBottom=D}return k&&(M.flex=function(e){return"number"===typeof e?"".concat(e," ").concat(e," auto"):/^\d+(\.\d+)?(px|em|rem|%)$/.test(e)?"0 0 ".concat(e):e}(k),!1!==x||M.minWidth||(M.minWidth=0)),c.createElement("div",(0,a.Z)({},P,{style:(0,a.Z)((0,a.Z)({},M),A),className:S,ref:t}),N)}));p.displayName="Col";var m=p},27049:function(e,t,n){var r=n(87462),a=n(4942),o=n(67294),c=n(94184),i=n.n(c),s=n(59844),l=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n};t.Z=function(e){return o.createElement(s.C,null,(function(t){var n,c=t.getPrefixCls,s=t.direction,u=e.prefixCls,d=e.type,f=void 0===d?"horizontal":d,p=e.orientation,m=void 0===p?"center":p,h=e.orientationMargin,v=e.className,x=e.children,y=e.dashed,Z=e.plain,b=l(e,["prefixCls","type","orientation","orientationMargin","className","children","dashed","plain"]),g=c("divider",u),j=m.length>0?"-".concat(m):m,w=!!x,C="left"===m&&null!=h,O="right"===m&&null!=h,N=i()(g,"".concat(g,"-").concat(f),(n={},(0,a.Z)(n,"".concat(g,"-with-text"),w),(0,a.Z)(n,"".concat(g,"-with-text").concat(j),w),(0,a.Z)(n,"".concat(g,"-dashed"),!!y),(0,a.Z)(n,"".concat(g,"-plain"),!!Z),(0,a.Z)(n,"".concat(g,"-rtl"),"rtl"===s),(0,a.Z)(n,"".concat(g,"-no-default-orientation-margin-left"),C),(0,a.Z)(n,"".concat(g,"-no-default-orientation-margin-right"),O),n),v),k=(0,r.Z)((0,r.Z)({},C&&{marginLeft:h}),O&&{marginRight:h});return o.createElement("div",(0,r.Z)({className:N},b,{role:"separator"}),x&&o.createElement("span",{className:"".concat(g,"-inner-text"),style:k},x))}))}},99134:function(e,t,n){var r=(0,n(67294).createContext)({});t.Z=r},25968:function(e,t,n){n.d(t,{Z:function(){return x}});var r=n(87462),a=n(4942),o=n(71002),c=n(97685),i=n(67294),s=n(94184),l=n.n(s),u=n(59844),d=n(99134),f=n(93355),p=n(24308),m=n(98082),h=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},v=((0,f.b)("top","middle","bottom","stretch"),(0,f.b)("start","end","center","space-around","space-between"),i.forwardRef((function(e,t){var n,s=e.prefixCls,f=e.justify,v=e.align,x=e.className,y=e.style,Z=e.children,b=e.gutter,g=void 0===b?0:b,j=e.wrap,w=h(e,["prefixCls","justify","align","className","style","children","gutter","wrap"]),C=i.useContext(u.E_),O=C.getPrefixCls,N=C.direction,k=i.useState({xs:!0,sm:!0,md:!0,lg:!0,xl:!0,xxl:!0}),A=(0,c.Z)(k,2),P=A[0],T=A[1],E=(0,m.Z)(),S=i.useRef(g);i.useEffect((function(){var e=p.ZP.subscribe((function(e){var t=S.current||0;(!Array.isArray(t)&&"object"===(0,o.Z)(t)||Array.isArray(t)&&("object"===(0,o.Z)(t[0])||"object"===(0,o.Z)(t[1])))&&T(e)}));return function(){return p.ZP.unsubscribe(e)}}),[]);var M=O("row",s),z=function(){var e=[0,0];return(Array.isArray(g)?g:[g,0]).forEach((function(t,n){if("object"===(0,o.Z)(t))for(var r=0;r<p.c4.length;r++){var a=p.c4[r];if(P[a]&&void 0!==t[a]){e[n]=t[a];break}}else e[n]=t||0})),e}(),D=l()(M,(n={},(0,a.Z)(n,"".concat(M,"-no-wrap"),!1===j),(0,a.Z)(n,"".concat(M,"-").concat(f),f),(0,a.Z)(n,"".concat(M,"-").concat(v),v),(0,a.Z)(n,"".concat(M,"-rtl"),"rtl"===N),n),x),L={},R=z[0]>0?z[0]/-2:void 0,I=z[1]>0?z[1]/-2:void 0;if(R&&(L.marginLeft=R,L.marginRight=R),E){var B=(0,c.Z)(z,2);L.rowGap=B[1]}else I&&(L.marginTop=I,L.marginBottom=I);var F=i.useMemo((function(){return{gutter:z,wrap:j,supportFlexGap:E}}),[z,j,E]);return i.createElement(d.Z.Provider,{value:F},i.createElement("div",(0,r.Z)({},w,{className:D,style:(0,r.Z)((0,r.Z)({},L),y),ref:t}),Z))})));v.displayName="Row";var x=v},66192:function(e,t,n){n.d(t,{Z:function(){return m}});var r=n(28520),a=n.n(r),o=n(85893),c=n(56516),i=n(71577),s=n(21640),l=n(82911),u=n(84674),d=n(58827);function f(e,t,n,r,a,o,c){try{var i=e[o](c),s=i.value}catch(l){return void n(l)}i.done?t(s):Promise.resolve(s).then(r,a)}function p(e){return function(){var t=this,n=arguments;return new Promise((function(r,a){var o=e.apply(t,n);function c(e){f(o,r,a,c,i,"next",e)}function i(e){f(o,r,a,c,i,"throw",e)}c(void 0)}))}}function m(e){var t=e.user,n=e.isEnabled,r=e.label,f=e.onClick;function m(){return(m=p(a().mark((function e(t){var r,o,c;return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.id,o={userId:r,enabled:!n},e.prev=2,e.next=5,(0,d.rQ)(d.NM,{data:o,method:"POST",auth:!0});case 5:return c=e.sent,e.abrupt("return",c.success);case 9:e.prev=9,e.t0=e.catch(2),console.error(e.t0);case 12:return e.abrupt("return",!1);case 13:case"end":return e.stop()}}),e,null,[[2,9]])})))).apply(this,arguments)}var h=n?"ban":"unban",v=n?(0,o.jsx)(s.Z,{style:{color:"var(--ant-error)"}}):(0,o.jsx)(l.Z,{style:{color:"var(--ant-warning)"}}),x=(0,o.jsxs)(o.Fragment,{children:["Are you sure you want to ",h," ",(0,o.jsx)("strong",{children:t.displayName}),n?" and remove their messages?":"?"]});return(0,o.jsx)(i.Z,{onClick:function(){c.Z.confirm({title:"Confirm ".concat(h),content:x,onCancel:function(){},onOk:function(){return new Promise((function(e,n){var r=function(e){return m.apply(this,arguments)}(t);r?setTimeout((function(){e(r),null===f||void 0===f||f()}),3e3):n()}))},okType:"danger",okText:n?"Absolutely":null,icon:v})},size:"small",icon:n?(0,o.jsx)(u.Z,{twoToneColor:"#ff4d4f"}):null,className:"block-user-button",children:r||h})}m.defaultProps={label:"",onClick:null}},31386:function(e,t,n){n.d(t,{Z:function(){return z}});var r=n(85893),a=n(67294),o=n(56266),c=n(56516),i=n(44068),s=n(25968),l=n(6226),u=n(27049),d=n(26713),f=n(85533),p=n(58091),m=n(96486),h=n(66192),v=n(28520),x=n.n(v),y=n(71577),Z=n(21640),b=n(82911),g=n(84674),j=n(1413),w={icon:function(e,t){return{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6z",fill:e}},{tag:"path",attrs:{d:"M214 226.7v427.6l298 232.2 298-232.2V226.7L512 125.1 214 226.7zM632.8 328H688c6.5 0 10.3 7.4 6.5 12.7L481.9 633.4a16.1 16.1 0 01-26 0l-126.4-174c-3.8-5.3 0-12.7 6.5-12.7h55.2c5.2 0 10 2.5 13 6.6l64.7 89.1 150.9-207.8c3-4.1 7.9-6.6 13-6.6z",fill:t}},{tag:"path",attrs:{d:"M404.2 453.3c-3-4.1-7.8-6.6-13-6.6H336c-6.5 0-10.3 7.4-6.5 12.7l126.4 174a16.1 16.1 0 0026 0l212.6-292.7c3.8-5.3 0-12.7-6.5-12.7h-55.2c-5.1 0-10 2.5-13 6.6L468.9 542.4l-64.7-89.1z",fill:e}}]}},name:"safety-certificate",theme:"twotone"},C=n(42135),O=function(e,t){return a.createElement(C.Z,(0,j.Z)((0,j.Z)({},e),{},{ref:t,icon:w}))};O.displayName="SafetyCertificateTwoTone";var N=a.forwardRef(O),k=n(58827);function A(e,t,n,r,a,o,c){try{var i=e[o](c),s=i.value}catch(l){return void n(l)}i.done?t(s):Promise.resolve(s).then(r,a)}function P(e){return function(){var t=this,n=arguments;return new Promise((function(r,a){var o=e.apply(t,n);function c(e){A(o,r,a,c,i,"next",e)}function i(e){A(o,r,a,c,i,"throw",e)}c(void 0)}))}}function T(e){var t,n=e.user,a=e.onClick;function o(){return(o=P(x().mark((function e(t,n){var r,a,o;return x().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.id,a={userId:r,isModerator:n},e.prev=2,e.next=5,(0,k.rQ)(k.jr,{data:a,method:"POST",auth:!0});case 5:return o=e.sent,e.abrupt("return",o.success);case 9:e.prev=9,e.t0=e.catch(2),console.error(e.t0);case 12:return e.abrupt("return",!1);case 13:case"end":return e.stop()}}),e,null,[[2,9]])})))).apply(this,arguments)}var i=null===(t=n.scopes)||void 0===t?void 0:t.includes("MODERATOR"),s=i?"remove moderator":"add moderator",l=i?(0,r.jsx)(Z.Z,{style:{color:"var(--ant-error)"}}):(0,r.jsx)(b.Z,{style:{color:"var(--ant-warning)"}}),u=(0,r.jsxs)(r.Fragment,{children:["Are you sure you want to ",s," ",(0,r.jsx)("strong",{children:n.displayName}),"?"]});return(0,r.jsx)(y.Z,{onClick:function(){c.Z.confirm({title:"Confirm ".concat(s),content:u,onCancel:function(){},onOk:function(){return new Promise((function(e,t){var r=function(e,t){return o.apply(this,arguments)}(n,!i);r?setTimeout((function(){e(r),null===a||void 0===a||a()}),3e3):t()}))},okType:"danger",okText:i?"Yup!":null,icon:l})},size:"small",icon:i?(0,r.jsx)(g.Z,{twoToneColor:"#ff4d4f"}):(0,r.jsx)(N,{twoToneColor:"#22bb44"}),className:"block-user-button",children:s})}T.defaultProps={onClick:null};var E=n(20643),S=n(2766);function M(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function z(e){var t=e.user,n=e.connectionInfo,v=e.children,x=(0,a.useState)(!1),y=x[0],Z=x[1],b=function(){Z(!1)},g=t.displayName,j=t.createdAt,w=t.previousNames,C=t.nameChangedAt,O=t.disabledAt,N=n||{},k=N.connectedAt,A=N.messageCount,P=N.userAgent,z=null,D=w&&M(w);w&&w.length>1&&C&&(z=new Date(C),D.reverse());var L=new Date(j),R=(0,p.Z)(L,"PP pp"),I=z?(0,f.Z)(z):null;return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(o.Z,{title:(0,r.jsxs)(r.Fragment,{children:["Created at: ",R,".",(0,r.jsx)("br",{})," Click for more info."]}),placement:"bottomLeft",children:(0,r.jsx)("button",{type:"button","aria-label":"Display more details about this user",className:"user-item-container",onClick:function(){Z(!0)},children:v})}),(0,r.jsx)(c.Z,{destroyOnClose:!0,width:600,cancelText:"Close",okButtonProps:{style:{display:"none"}},title:"User details: ".concat(g),visible:y,onOk:b,onCancel:b,children:(0,r.jsxs)("div",{className:"user-details",children:[(0,r.jsx)(i.Z.Title,{level:4,children:g}),(0,r.jsxs)("p",{className:"created-at",children:["User created at ",R,"."]}),(0,r.jsxs)(s.Z,{gutter:16,children:[n&&(0,r.jsxs)(l.Z,{md:z?12:24,children:[(0,r.jsx)(i.Z.Title,{level:5,children:"This user is currently connected to Chat."}),(0,r.jsxs)("ul",{className:"connection-info",children:[(0,r.jsxs)("li",{children:[(0,r.jsx)("strong",{children:"Active for:"})," ",(0,f.Z)(new Date(k))]}),(0,r.jsxs)("li",{children:[(0,r.jsx)("strong",{children:"Messages sent:"})," ",A]}),(0,r.jsxs)("li",{children:[(0,r.jsx)("strong",{children:"User Agent:"}),(0,r.jsx)("br",{}),(0,S.AB)(P)]})]})]}),z&&(0,r.jsxs)(l.Z,{md:n?12:24,children:[(0,r.jsx)(i.Z.Title,{level:5,children:"This user is also seen as:"}),(0,r.jsx)("ul",{className:"previous-names-list",children:(0,m.uniq)(D).map((function(e,t){return(0,r.jsxs)("li",{className:0===t?"latest":"",children:[(0,r.jsx)("span",{className:"user-name-item",children:e}),0===t?" (Changed ".concat(I," ago)"):""]})}))})]})]}),(0,r.jsx)(u.Z,{}),(0,r.jsxs)(d.Z,{direction:"horizontal",children:[O?(0,r.jsxs)(r.Fragment,{children:["This user was banned on ",(0,r.jsx)("code",{children:(0,E.u)(O)}),".",(0,r.jsx)("br",{}),(0,r.jsx)("br",{}),(0,r.jsx)(h.Z,{label:"Unban this user",user:t,isEnabled:!1,onClick:b})]}):(0,r.jsx)(h.Z,{label:"Ban this user",user:t,isEnabled:!0,onClick:b}),(0,r.jsx)(T,{user:t,onClick:b})]})]})})]})}z.defaultProps={connectionInfo:null}},20643:function(e,t,n){n.d(t,{u:function(){return s},Z:function(){return l}});var r=n(85893),a=n(88829),o=n(58091),c=n(31386),i=n(66192);function s(e){return(0,o.Z)(new Date(e),"MMM d H:mma")}function l(e){var t=e.data,n=[{title:"Last Known Display Name",dataIndex:"displayName",key:"displayName",render:function(e,t){return(0,r.jsx)(c.Z,{user:t,children:(0,r.jsx)("span",{className:"display-name",children:e})})}},{title:"Created",dataIndex:"createdAt",key:"createdAt",render:function(e){return s(e)},sorter:function(e,t){return new Date(e.createdAt).getTime()-new Date(t.createdAt).getTime()},sortDirections:["descend","ascend"]},{title:"Disabled at",dataIndex:"disabledAt",key:"disabledAt",defaultSortOrder:"descend",render:function(e){return e?s(e):null},sorter:function(e,t){return new Date(e.disabledAt).getTime()-new Date(t.disabledAt).getTime()},sortDirections:["descend","ascend"]},{title:"",key:"block",className:"actions-col",render:function(e,t){return(0,r.jsx)(i.Z,{user:t,isEnabled:!t.disabledAt})}}];return(0,r.jsx)(a.Z,{pagination:{hideOnSinglePage:!0},className:"table-container",columns:n,dataSource:t,size:"small",rowKey:"id"})}}}]); \ No newline at end of file
diff --git a/static/admin/_next/static/chunks/516-b015193bc0d6919e.js b/static/admin/_next/static/chunks/516-b015193bc0d6919e.js
deleted file mode 100644
index ad030da4d..000000000
--- a/static/admin/_next/static/chunks/516-b015193bc0d6919e.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[516],{86743:function(e,n,t){var o=t(87462),r=t(97685),c=t(67294),i=t(71577),a=t(8613),l=t(73577);function u(e){return!(!e||!e.then)}n.Z=function(e){var n=c.useRef(!1),t=c.useRef(),s=(0,l.Z)(),f=c.useState(!1),d=(0,r.Z)(f,2),m=d[0],v=d[1];c.useEffect((function(){var n;if(e.autoFocus){var o=t.current;n=setTimeout((function(){return o.focus()}))}return function(){n&&clearTimeout(n)}}),[]);var p=e.type,C=e.children,g=e.prefixCls,y=e.buttonProps;return c.createElement(i.Z,(0,o.Z)({},(0,a.n)(p),{onClick:function(t){var o=e.actionFn,r=e.close;if(!n.current)if(n.current=!0,o){var c;if(e.emitEvent){if(c=o(t),e.quitOnNullishReturnValue&&!u(c))return n.current=!1,void r(t)}else if(o.length)c=o(r),n.current=!1;else if(!(c=o()))return void r();!function(t){var o=e.close;u(t)&&(v(!0),t.then((function(){s()||v(!1),o.apply(void 0,arguments),n.current=!1}),(function(e){console.error(e),s()||v(!1),n.current=!1})))}(c)}else r()},loading:m,prefixCls:g},y,{ref:t}),C)}},73577:function(e,n,t){t.d(n,{Z:function(){return r}});var o=t(67294);function r(){var e=o.useRef(!0);return o.useEffect((function(){return function(){e.current=!1}}),[]),function(){return!e.current}}},31808:function(e,n,t){t.d(n,{jD:function(){return c},fk:function(){return i}});var o,r=t(98924),c=function(){return(0,r.Z)()&&window.document.documentElement},i=function(){if(!c())return!1;if(void 0!==o)return o;var e=document.createElement("div");return e.style.display="flex",e.style.flexDirection="column",e.style.rowGap="1px",e.appendChild(document.createElement("div")),e.appendChild(document.createElement("div")),document.body.appendChild(e),o=1===e.scrollHeight,document.body.removeChild(e),o}},56516:function(e,n,t){t.d(n,{Z:function(){return Ie}});var o=t(4942),r=t(87462),c=t(67294),i=t(97685),a=t(15671),l=t(43144),u=t(60136),s=t(3289),f=t(71002),d=t(75164),m=t(59015),v=t(98924),p=t(74204);var C=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e)return{};var t=n.element,o=void 0===t?document.body:t,r={},c=Object.keys(e);return c.forEach((function(e){r[e]=o.style[e]})),c.forEach((function(n){o.style[n]=e[n]})),r};var g={},y=function(e){if(document.body.scrollHeight>(window.innerHeight||document.documentElement.clientHeight)&&window.innerWidth>document.body.offsetWidth||e){var n="ant-scrolling-effect",t=new RegExp("".concat(n),"g"),o=document.body.className;if(e){if(!t.test(o))return;return C(g),g={},void(document.body.className=o.replace(t,"").trim())}var r=(0,p.Z)();if(r&&(g=C({position:"relative",width:"calc(100% - ".concat(r,"px)")}),!t.test(o))){var c="".concat(o," ").concat(n);document.body.className=c.trim()}}},h=t(74902),k=[],b="ant-scrolling-effect",Z=new RegExp("".concat(b),"g"),E=0,x=new Map,w=function e(n){var t=this;(0,a.Z)(this,e),this.lockTarget=void 0,this.options=void 0,this.getContainer=function(){var e;return null===(e=t.options)||void 0===e?void 0:e.container},this.reLock=function(e){var n=k.find((function(e){return e.target===t.lockTarget}));n&&t.unLock(),t.options=e,n&&(n.options=e,t.lock())},this.lock=function(){var e;if(!k.some((function(e){return e.target===t.lockTarget})))if(k.some((function(e){var n,o=e.options;return(null===o||void 0===o?void 0:o.container)===(null===(n=t.options)||void 0===n?void 0:n.container)})))k=[].concat((0,h.Z)(k),[{target:t.lockTarget,options:t.options}]);else{var n=0,o=(null===(e=t.options)||void 0===e?void 0:e.container)||document.body;(o===document.body&&window.innerWidth-document.documentElement.clientWidth>0||o.scrollHeight>o.clientHeight)&&(n=(0,p.Z)());var r=o.className;if(0===k.filter((function(e){var n,o=e.options;return(null===o||void 0===o?void 0:o.container)===(null===(n=t.options)||void 0===n?void 0:n.container)})).length&&x.set(o,C({width:0!==n?"calc(100% - ".concat(n,"px)"):void 0,overflow:"hidden",overflowX:"hidden",overflowY:"hidden"},{element:o})),!Z.test(r)){var c="".concat(r," ").concat(b);o.className=c.trim()}k=[].concat((0,h.Z)(k),[{target:t.lockTarget,options:t.options}])}},this.unLock=function(){var e,n=k.find((function(e){return e.target===t.lockTarget}));if(k=k.filter((function(e){return e.target!==t.lockTarget})),n&&!k.some((function(e){var t,o=e.options;return(null===o||void 0===o?void 0:o.container)===(null===(t=n.options)||void 0===t?void 0:t.container)}))){var o=(null===(e=t.options)||void 0===e?void 0:e.container)||document.body,r=o.className;Z.test(r)&&(C(x.get(o),{element:o}),x.delete(o),o.className=o.className.replace(Z,"").trim())}},this.lockTarget=E++,this.options=n},N=0,T=(0,v.Z)();var P={},O=function(e){if(!T)return null;if(e){if("string"===typeof e)return document.querySelectorAll(e)[0];if("function"===typeof e)return e();if("object"===(0,f.Z)(e)&&e instanceof window.HTMLElement)return e}return document.body},R=function(e){(0,u.Z)(t,e);var n=(0,s.Z)(t);function t(e){var o;return(0,a.Z)(this,t),(o=n.call(this,e)).container=void 0,o.componentRef=c.createRef(),o.rafId=void 0,o.scrollLocker=void 0,o.renderComponent=void 0,o.updateScrollLocker=function(e){var n=(e||{}).visible,t=o.props,r=t.getContainer,c=t.visible;c&&c!==n&&T&&O(r)!==o.scrollLocker.getContainer()&&o.scrollLocker.reLock({container:O(r)})},o.updateOpenCount=function(e){var n=e||{},t=n.visible,r=n.getContainer,c=o.props,i=c.visible,a=c.getContainer;i!==t&&T&&O(a)===document.body&&(i&&!t?N+=1:e&&(N-=1)),("function"===typeof a&&"function"===typeof r?a.toString()!==r.toString():a!==r)&&o.removeCurrentContainer()},o.attachToParent=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(e||o.container&&!o.container.parentNode){var n=O(o.props.getContainer);return!!n&&(n.appendChild(o.container),!0)}return!0},o.getContainer=function(){return T?(o.container||(o.container=document.createElement("div"),o.attachToParent(!0)),o.setWrapperClassName(),o.container):null},o.setWrapperClassName=function(){var e=o.props.wrapperClassName;o.container&&e&&e!==o.container.className&&(o.container.className=e)},o.removeCurrentContainer=function(){var e,n;null===(e=o.container)||void 0===e||null===(n=e.parentNode)||void 0===n||n.removeChild(o.container)},o.switchScrollingEffect=function(){1!==N||Object.keys(P).length?N||(C(P),P={},y(!0)):(y(),P=C({overflow:"hidden",overflowX:"hidden",overflowY:"hidden"}))},o.scrollLocker=new w({container:O(e.getContainer)}),o}return(0,l.Z)(t,[{key:"componentDidMount",value:function(){var e=this;this.updateOpenCount(),this.attachToParent()||(this.rafId=(0,d.Z)((function(){e.forceUpdate()})))}},{key:"componentDidUpdate",value:function(e){this.updateOpenCount(e),this.updateScrollLocker(e),this.setWrapperClassName(),this.attachToParent()}},{key:"componentWillUnmount",value:function(){var e=this.props,n=e.visible,t=e.getContainer;T&&O(t)===document.body&&(N=n&&N?N-1:N),this.removeCurrentContainer(),d.Z.cancel(this.rafId)}},{key:"render",value:function(){var e=this.props,n=e.children,t=e.forceRender,o=e.visible,r=null,i={getOpenCount:function(){return N},getContainer:this.getContainer,switchScrollingEffect:this.switchScrollingEffect,scrollLocker:this.scrollLocker};return(t||o||this.componentRef.current)&&(r=c.createElement(m.Z,{getContainer:this.getContainer,ref:this.componentRef},n(i))),r}}]),t}(c.Component),S=t(1413),I=t(94184),L=t.n(I),A=t(15105),M=t(94999),j=t(64217),D=t(93481);function F(e){var n=e.prefixCls,t=e.style,o=e.visible,i=e.maskProps,a=e.motionName;return c.createElement(D.Z,{key:"mask",visible:o,motionName:a,leavedClassName:"".concat(n,"-mask-hidden")},(function(e){var o=e.className,a=e.style;return c.createElement("div",(0,r.Z)({style:(0,S.Z)((0,S.Z)({},a),t),className:L()("".concat(n,"-mask"),o)},i))}))}function H(e,n,t){var o=n;return!o&&t&&(o="".concat(e,"-").concat(t)),o}var W=-1;function B(e,n){var t=e["page".concat(n?"Y":"X","Offset")],o="scroll".concat(n?"Top":"Left");if("number"!==typeof t){var r=e.document;"number"!==typeof(t=r.documentElement[o])&&(t=r.body[o])}return t}var U=c.memo((function(e){return e.children}),(function(e,n){return!n.shouldUpdate})),z={width:0,height:0,overflow:"hidden",outline:"none"},_=c.forwardRef((function(e,n){var t=e.closable,o=e.prefixCls,a=e.width,l=e.height,u=e.footer,s=e.title,f=e.closeIcon,d=e.style,m=e.className,v=e.visible,p=e.forceRender,C=e.bodyStyle,g=e.bodyProps,y=e.children,h=e.destroyOnClose,k=e.modalRender,b=e.motionName,Z=e.ariaId,E=e.onClose,x=e.onVisibleChanged,w=e.onMouseDown,N=e.onMouseUp,T=e.mousePosition,P=(0,c.useRef)(),O=(0,c.useRef)(),R=(0,c.useRef)();c.useImperativeHandle(n,(function(){return{focus:function(){var e;null===(e=P.current)||void 0===e||e.focus()},changeActive:function(e){var n=document.activeElement;e&&n===O.current?P.current.focus():e||n!==P.current||O.current.focus()}}}));var I,A,M,j=c.useState(),F=(0,i.Z)(j,2),H=F[0],W=F[1],_={};function V(){var e=function(e){var n=e.getBoundingClientRect(),t={left:n.left,top:n.top},o=e.ownerDocument,r=o.defaultView||o.parentWindow;return t.left+=B(r),t.top+=B(r,!0),t}(R.current);W(T?"".concat(T.x-e.left,"px ").concat(T.y-e.top,"px"):"")}void 0!==a&&(_.width=a),void 0!==l&&(_.height=l),H&&(_.transformOrigin=H),u&&(I=c.createElement("div",{className:"".concat(o,"-footer")},u)),s&&(A=c.createElement("div",{className:"".concat(o,"-header")},c.createElement("div",{className:"".concat(o,"-title"),id:Z},s))),t&&(M=c.createElement("button",{type:"button",onClick:E,"aria-label":"Close",className:"".concat(o,"-close")},f||c.createElement("span",{className:"".concat(o,"-close-x")})));var X=c.createElement("div",{className:"".concat(o,"-content")},M,A,c.createElement("div",(0,r.Z)({className:"".concat(o,"-body"),style:C},g),y),I);return c.createElement(D.Z,{visible:v,onVisibleChanged:x,onAppearPrepare:V,onEnterPrepare:V,forceRender:p,motionName:b,removeOnLeave:h,ref:R},(function(e,n){var t=e.className,r=e.style;return c.createElement("div",{key:"dialog-element",role:"document",ref:n,style:(0,S.Z)((0,S.Z)((0,S.Z)({},r),d),_),className:L()(o,m,t),onMouseDown:w,onMouseUp:N},c.createElement("div",{tabIndex:0,ref:P,style:z,"aria-hidden":"true"}),c.createElement(U,{shouldUpdate:v||p},k?k(X):X),c.createElement("div",{tabIndex:0,ref:O,style:z,"aria-hidden":"true"}))}))}));_.displayName="Content";var V=_;function X(e){var n=e.prefixCls,t=void 0===n?"rc-dialog":n,o=e.zIndex,a=e.visible,l=void 0!==a&&a,u=e.keyboard,s=void 0===u||u,f=e.focusTriggerAfterClose,d=void 0===f||f,m=e.scrollLocker,v=e.title,p=e.wrapStyle,C=e.wrapClassName,g=e.wrapProps,y=e.onClose,h=e.afterClose,k=e.transitionName,b=e.animation,Z=e.closable,E=void 0===Z||Z,x=e.mask,w=void 0===x||x,N=e.maskTransitionName,T=e.maskAnimation,P=e.maskClosable,O=void 0===P||P,R=e.maskStyle,I=e.maskProps,D=(0,c.useRef)(),B=(0,c.useRef)(),U=(0,c.useRef)(),z=c.useState(l),_=(0,i.Z)(z,2),X=_[0],Y=_[1],q=(0,c.useRef)();function K(e){null===y||void 0===y||y(e)}q.current||(q.current="rcDialogTitle".concat(W+=1));var G=(0,c.useRef)(!1),J=(0,c.useRef)(),Q=null;return O&&(Q=function(e){G.current?G.current=!1:B.current===e.target&&K(e)}),(0,c.useEffect)((function(){return l&&Y(!0),function(){}}),[l]),(0,c.useEffect)((function(){return function(){clearTimeout(J.current)}}),[]),(0,c.useEffect)((function(){return X?(null===m||void 0===m||m.lock(),null===m||void 0===m?void 0:m.unLock):function(){}}),[X,m]),c.createElement("div",(0,r.Z)({className:"".concat(t,"-root")},(0,j.Z)(e,{data:!0})),c.createElement(F,{prefixCls:t,visible:w&&l,motionName:H(t,N,T),style:(0,S.Z)({zIndex:o},R),maskProps:I}),c.createElement("div",(0,r.Z)({tabIndex:-1,onKeyDown:function(e){if(s&&e.keyCode===A.Z.ESC)return e.stopPropagation(),void K(e);l&&e.keyCode===A.Z.TAB&&U.current.changeActive(!e.shiftKey)},className:L()("".concat(t,"-wrap"),C),ref:B,onClick:Q,role:"dialog","aria-labelledby":v?q.current:null,style:(0,S.Z)((0,S.Z)({zIndex:o},p),{},{display:X?null:"none"})},g),c.createElement(V,(0,r.Z)({},e,{onMouseDown:function(){clearTimeout(J.current),G.current=!0},onMouseUp:function(){J.current=setTimeout((function(){G.current=!1}))},ref:U,closable:E,ariaId:q.current,prefixCls:t,visible:l,onClose:K,onVisibleChanged:function(e){if(e){var n;if(!(0,M.Z)(B.current,document.activeElement))D.current=document.activeElement,null===(n=U.current)||void 0===n||n.focus()}else{if(Y(!1),w&&D.current&&d){try{D.current.focus({preventScroll:!0})}catch(t){}D.current=null}X&&(null===h||void 0===h||h())}},motionName:H(t,k,b)}))))}var Y=function(e){var n=e.visible,t=e.getContainer,o=e.forceRender,a=e.destroyOnClose,l=void 0!==a&&a,u=e.afterClose,s=c.useState(n),f=(0,i.Z)(s,2),d=f[0],m=f[1];return c.useEffect((function(){n&&m(!0)}),[n]),!1===t?c.createElement(X,(0,r.Z)({},e,{getOpenCount:function(){return 2}})):o||!l||d?c.createElement(R,{visible:n,forceRender:o,getContainer:t},(function(n){return c.createElement(X,(0,r.Z)({},e,{destroyOnClose:l,afterClose:function(){null===u||void 0===u||u(),m(!1)}},n))})):null};Y.displayName="Dialog";var q,K=Y,G=t(97937),J=t(83008),Q=t(71577),$=t(8613),ee=t(23715),ne=t(59844),te=t(31808),oe=t(33603),re=function(e,n){var t={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&n.indexOf(o)<0&&(t[o]=e[o]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(e);r<o.length;r++)n.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(e,o[r])&&(t[o[r]]=e[o[r]])}return t};(0,te.jD)()&&document.documentElement.addEventListener("click",(function(e){q={x:e.pageX,y:e.pageY},setTimeout((function(){q=null}),100)}),!0);var ce=function(e){var n,t=c.useContext(ne.E_),i=t.getPopupContainer,a=t.getPrefixCls,l=t.direction,u=function(n){var t=e.onCancel;null===t||void 0===t||t(n)},s=function(n){var t=e.onOk;null===t||void 0===t||t(n)},f=function(n){var t=e.okText,o=e.okType,i=e.cancelText,a=e.confirmLoading;return c.createElement(c.Fragment,null,c.createElement(Q.Z,(0,r.Z)({onClick:u},e.cancelButtonProps),i||n.cancelText),c.createElement(Q.Z,(0,r.Z)({},(0,$.n)(o),{loading:a,onClick:s},e.okButtonProps),t||n.okText))},d=e.prefixCls,m=e.footer,v=e.visible,p=e.wrapClassName,C=e.centered,g=e.getContainer,y=e.closeIcon,h=e.focusTriggerAfterClose,k=void 0===h||h,b=re(e,["prefixCls","footer","visible","wrapClassName","centered","getContainer","closeIcon","focusTriggerAfterClose"]),Z=a("modal",d),E=a(),x=c.createElement(ee.Z,{componentName:"Modal",defaultLocale:(0,J.A)()},f),w=c.createElement("span",{className:"".concat(Z,"-close-x")},y||c.createElement(G.Z,{className:"".concat(Z,"-close-icon")})),N=L()(p,(n={},(0,o.Z)(n,"".concat(Z,"-centered"),!!C),(0,o.Z)(n,"".concat(Z,"-wrap-rtl"),"rtl"===l),n));return c.createElement(K,(0,r.Z)({},b,{getContainer:void 0===g?i:g,prefixCls:Z,wrapClassName:N,footer:void 0===m?x:m,visible:v,mousePosition:q,onClose:u,closeIcon:w,focusTriggerAfterClose:k,transitionName:(0,oe.m)(E,"zoom",e.transitionName),maskTransitionName:(0,oe.m)(E,"fade",e.maskTransitionName)}))};ce.defaultProps={width:520,confirmLoading:!1,visible:!1,okType:"primary"};var ie=ce,ae=t(73935),le=t(45605),ue=t(8751),se=t(18429),fe=t(11475),de=t(86743),me=t(21687),ve=t(49264),pe=function(e){var n=e.icon,t=e.onCancel,r=e.onOk,i=e.close,a=e.zIndex,l=e.afterClose,u=e.visible,s=e.keyboard,f=e.centered,d=e.getContainer,m=e.maskStyle,v=e.okText,p=e.okButtonProps,C=e.cancelText,g=e.cancelButtonProps,y=e.direction,h=e.prefixCls,k=e.wrapClassName,b=e.rootPrefixCls,Z=e.iconPrefixCls,E=e.bodyStyle,x=e.closable,w=void 0!==x&&x,N=e.closeIcon,T=e.modalRender,P=e.focusTriggerAfterClose;(0,me.Z)(!("string"===typeof n&&n.length>2),"Modal","`icon` is using ReactNode instead of string naming in v4. Please check `".concat(n,"` at https://ant.design/components/icon"));var O=e.okType||"primary",R="".concat(h,"-confirm"),S=!("okCancel"in e)||e.okCancel,I=e.width||416,A=e.style||{},M=void 0===e.mask||e.mask,j=void 0!==e.maskClosable&&e.maskClosable,D=null!==e.autoFocusButton&&(e.autoFocusButton||"ok"),F=L()(R,"".concat(R,"-").concat(e.type),(0,o.Z)({},"".concat(R,"-rtl"),"rtl"===y),e.className),H=S&&c.createElement(de.Z,{actionFn:t,close:i,autoFocus:"cancel"===D,buttonProps:g,prefixCls:"".concat(b,"-btn")},C);return c.createElement(ve.ZP,{prefixCls:b,iconPrefixCls:Z,direction:y},c.createElement(ie,{prefixCls:h,className:F,wrapClassName:L()((0,o.Z)({},"".concat(R,"-centered"),!!e.centered),k),onCancel:function(){return i({triggerCancel:!0})},visible:u,title:"",footer:"",transitionName:(0,oe.m)(b,"zoom",e.transitionName),maskTransitionName:(0,oe.m)(b,"fade",e.maskTransitionName),mask:M,maskClosable:j,maskStyle:m,style:A,bodyStyle:E,width:I,zIndex:a,afterClose:l,keyboard:s,centered:f,getContainer:d,closable:w,closeIcon:N,modalRender:T,focusTriggerAfterClose:P},c.createElement("div",{className:"".concat(R,"-body-wrapper")},c.createElement("div",{className:"".concat(R,"-body")},n,void 0===e.title?null:c.createElement("span",{className:"".concat(R,"-title")},e.title),c.createElement("div",{className:"".concat(R,"-content")},e.content)),c.createElement("div",{className:"".concat(R,"-btns")},H,c.createElement(de.Z,{type:O,actionFn:r,close:i,autoFocus:"ok"===D,buttonProps:p,prefixCls:"".concat(b,"-btn")},v)))))},Ce=[],ge=function(e,n){var t={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&n.indexOf(o)<0&&(t[o]=e[o]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(e);r<o.length;r++)n.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(e,o[r])&&(t[o[r]]=e[o[r]])}return t},ye="";function he(e){var n=document.createDocumentFragment(),t=(0,r.Z)((0,r.Z)({},e),{close:a,visible:!0});function o(){ae.unmountComponentAtNode(n);for(var t=arguments.length,o=new Array(t),r=0;r<t;r++)o[r]=arguments[r];var c=o.some((function(e){return e&&e.triggerCancel}));e.onCancel&&c&&e.onCancel.apply(e,o);for(var i=0;i<Ce.length;i++){var l=Ce[i];if(l===a){Ce.splice(i,1);break}}}function i(e){var t=e.okText,o=e.cancelText,i=e.prefixCls,a=ge(e,["okText","cancelText","prefixCls"]);setTimeout((function(){var e=(0,J.A)(),l=(0,ve.w6)(),u=l.getPrefixCls,s=l.getIconPrefixCls,f=u(void 0,ye),d=i||"".concat(f,"-modal"),m=s();ae.render(c.createElement(pe,(0,r.Z)({},a,{prefixCls:d,rootPrefixCls:f,iconPrefixCls:m,okText:t||(a.okCancel?e.okText:e.justOkText),cancelText:o||e.cancelText})),n)}))}function a(){for(var n=this,c=arguments.length,a=new Array(c),l=0;l<c;l++)a[l]=arguments[l];i(t=(0,r.Z)((0,r.Z)({},t),{visible:!1,afterClose:function(){"function"===typeof e.afterClose&&e.afterClose(),o.apply(n,a)}}))}return i(t),Ce.push(a),{destroy:a,update:function(e){i(t="function"===typeof e?e(t):(0,r.Z)((0,r.Z)({},t),e))}}}function ke(e){return(0,r.Z)((0,r.Z)({icon:c.createElement(fe.Z,null),okCancel:!1},e),{type:"warning"})}function be(e){return(0,r.Z)((0,r.Z)({icon:c.createElement(le.Z,null),okCancel:!1},e),{type:"info"})}function Ze(e){return(0,r.Z)((0,r.Z)({icon:c.createElement(ue.Z,null),okCancel:!1},e),{type:"success"})}function Ee(e){return(0,r.Z)((0,r.Z)({icon:c.createElement(se.Z,null),okCancel:!1},e),{type:"error"})}function xe(e){return(0,r.Z)((0,r.Z)({icon:c.createElement(fe.Z,null),okCancel:!0},e),{type:"confirm"})}var we=t(6213),Ne=function(e,n){var t=e.afterClose,o=e.config,a=c.useState(!0),l=(0,i.Z)(a,2),u=l[0],s=l[1],f=c.useState(o),d=(0,i.Z)(f,2),m=d[0],v=d[1],p=c.useContext(ne.E_),C=p.direction,g=p.getPrefixCls,y=g("modal"),h=g(),k=function(){s(!1);for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];var o=n.some((function(e){return e&&e.triggerCancel}));m.onCancel&&o&&m.onCancel()};return c.useImperativeHandle(n,(function(){return{destroy:k,update:function(e){v((function(n){return(0,r.Z)((0,r.Z)({},n),e)}))}}})),c.createElement(ee.Z,{componentName:"Modal",defaultLocale:we.Z.Modal},(function(e){return c.createElement(pe,(0,r.Z)({prefixCls:y,rootPrefixCls:h},m,{close:k,visible:u,afterClose:t,okText:m.okText||(m.okCancel?e.okText:e.justOkText),direction:C,cancelText:m.cancelText||e.cancelText}))}))},Te=c.forwardRef(Ne),Pe=0,Oe=c.memo(c.forwardRef((function(e,n){var t=function(){var e=c.useState([]),n=(0,i.Z)(e,2),t=n[0],o=n[1];return[t,c.useCallback((function(e){return o((function(n){return[].concat((0,h.Z)(n),[e])})),function(){o((function(n){return n.filter((function(n){return n!==e}))}))}}),[])]}(),o=(0,i.Z)(t,2),r=o[0],a=o[1];return c.useImperativeHandle(n,(function(){return{patchElement:a}}),[]),c.createElement(c.Fragment,null,r)})));function Re(e){return he(ke(e))}var Se=ie;Se.useModal=function(){var e=c.useRef(null),n=c.useState([]),t=(0,i.Z)(n,2),o=t[0],r=t[1];c.useEffect((function(){o.length&&((0,h.Z)(o).forEach((function(e){e()})),r([]))}),[o]);var a=c.useCallback((function(n){return function(t){var o;Pe+=1;var i,a=c.createRef(),l=c.createElement(Te,{key:"modal-".concat(Pe),config:n(t),ref:a,afterClose:function(){i()}});return i=null===(o=e.current)||void 0===o?void 0:o.patchElement(l),{destroy:function(){function e(){var e;null===(e=a.current)||void 0===e||e.destroy()}a.current?e():r((function(n){return[].concat((0,h.Z)(n),[e])}))},update:function(e){function n(){var n;null===(n=a.current)||void 0===n||n.update(e)}a.current?n():r((function(e){return[].concat((0,h.Z)(e),[n])}))}}}}),[]);return[c.useMemo((function(){return{info:a(be),success:a(Ze),error:a(Ee),warning:a(ke),confirm:a(xe)}}),[]),c.createElement(Oe,{ref:e})]},Se.info=function(e){return he(be(e))},Se.success=function(e){return he(Ze(e))},Se.error=function(e){return he(Ee(e))},Se.warning=Re,Se.warn=Re,Se.confirm=function(e){return he(xe(e))},Se.destroyAll=function(){for(;Ce.length;){var e=Ce.pop();e&&e()}},Se.config=function(e){var n=e.rootPrefixCls;(0,me.Z)(!1,"Modal","Modal.config is deprecated. Please use ConfigProvider.config instead."),ye=n};var Ie=Se}}]); \ No newline at end of file
diff --git a/static/admin/_next/static/chunks/556-4bf62bd783267914.js b/static/admin/_next/static/chunks/556-4bf62bd783267914.js
new file mode 100644
index 000000000..151b5d12d
--- /dev/null
+++ b/static/admin/_next/static/chunks/556-4bf62bd783267914.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[556],{48689:function(e,t,n){n.d(t,{Z:function(){return l}});var a=n(1413),r=n(67294),o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M360 184h-8c4.4 0 8-3.6 8-8v8h304v-8c0 4.4 3.6 8 8 8h-8v72h72v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80h72v-72zm504 72H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM731.3 840H292.7l-24.2-512h487l-24.2 512z"}}]},name:"delete",theme:"outlined"},i=n(42135),s=function(e,t){return r.createElement(i.Z,(0,a.Z)((0,a.Z)({},e),{},{ref:t,icon:o}))};s.displayName="DeleteOutlined";var l=r.forwardRef(s)},6226:function(e,t,n){n.d(t,{Z:function(){return p}});var a=n(4942),r=n(87462),o=n(71002),i=n(67294),s=n(94184),l=n.n(s),u=n(99134),c=n(59844),d=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n};var f=["xs","sm","md","lg","xl","xxl"],v=i.forwardRef((function(e,t){var n,s=i.useContext(c.E_),v=s.getPrefixCls,p=s.direction,h=i.useContext(u.Z),m=h.gutter,g=h.wrap,y=h.supportFlexGap,b=e.prefixCls,Z=e.span,k=e.order,x=e.offset,C=e.push,M=e.pull,w=e.className,S=e.children,E=e.flex,O=e.style,P=d(e,["prefixCls","span","order","offset","push","pull","className","children","flex","style"]),N=v("col",b),T={};f.forEach((function(t){var n,i={},s=e[t];"number"===typeof s?i.span=s:"object"===(0,o.Z)(s)&&(i=s||{}),delete P[t],T=(0,r.Z)((0,r.Z)({},T),(n={},(0,a.Z)(n,"".concat(N,"-").concat(t,"-").concat(i.span),void 0!==i.span),(0,a.Z)(n,"".concat(N,"-").concat(t,"-order-").concat(i.order),i.order||0===i.order),(0,a.Z)(n,"".concat(N,"-").concat(t,"-offset-").concat(i.offset),i.offset||0===i.offset),(0,a.Z)(n,"".concat(N,"-").concat(t,"-push-").concat(i.push),i.push||0===i.push),(0,a.Z)(n,"".concat(N,"-").concat(t,"-pull-").concat(i.pull),i.pull||0===i.pull),(0,a.Z)(n,"".concat(N,"-rtl"),"rtl"===p),n))}));var B=l()(N,(n={},(0,a.Z)(n,"".concat(N,"-").concat(Z),void 0!==Z),(0,a.Z)(n,"".concat(N,"-order-").concat(k),k),(0,a.Z)(n,"".concat(N,"-offset-").concat(x),x),(0,a.Z)(n,"".concat(N,"-push-").concat(C),C),(0,a.Z)(n,"".concat(N,"-pull-").concat(M),M),n),w,T),L={};if(m&&m[0]>0){var R=m[0]/2;L.paddingLeft=R,L.paddingRight=R}if(m&&m[1]>0&&!y){var D=m[1]/2;L.paddingTop=D,L.paddingBottom=D}return E&&(L.flex=function(e){return"number"===typeof e?"".concat(e," ").concat(e," auto"):/^\d+(\.\d+)?(px|em|rem|%)$/.test(e)?"0 0 ".concat(e):e}(E),!1!==g||L.minWidth||(L.minWidth=0)),i.createElement("div",(0,r.Z)({},P,{style:(0,r.Z)((0,r.Z)({},L),O),className:B,ref:t}),S)}));v.displayName="Col";var p=v},99134:function(e,t,n){var a=(0,n(67294).createContext)({});t.Z=a},25968:function(e,t,n){n.d(t,{Z:function(){return g}});var a=n(87462),r=n(4942),o=n(71002),i=n(97685),s=n(67294),l=n(94184),u=n.n(l),c=n(59844),d=n(99134),f=n(93355),v=n(24308),p=n(98082),h=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n},m=((0,f.b)("top","middle","bottom","stretch"),(0,f.b)("start","end","center","space-around","space-between"),s.forwardRef((function(e,t){var n,l=e.prefixCls,f=e.justify,m=e.align,g=e.className,y=e.style,b=e.children,Z=e.gutter,k=void 0===Z?0:Z,x=e.wrap,C=h(e,["prefixCls","justify","align","className","style","children","gutter","wrap"]),M=s.useContext(c.E_),w=M.getPrefixCls,S=M.direction,E=s.useState({xs:!0,sm:!0,md:!0,lg:!0,xl:!0,xxl:!0}),O=(0,i.Z)(E,2),P=O[0],N=O[1],T=(0,p.Z)(),B=s.useRef(k);s.useEffect((function(){var e=v.ZP.subscribe((function(e){var t=B.current||0;(!Array.isArray(t)&&"object"===(0,o.Z)(t)||Array.isArray(t)&&("object"===(0,o.Z)(t[0])||"object"===(0,o.Z)(t[1])))&&N(e)}));return function(){return v.ZP.unsubscribe(e)}}),[]);var L=w("row",l),R=function(){var e=[0,0];return(Array.isArray(k)?k:[k,0]).forEach((function(t,n){if("object"===(0,o.Z)(t))for(var a=0;a<v.c4.length;a++){var r=v.c4[a];if(P[r]&&void 0!==t[r]){e[n]=t[r];break}}else e[n]=t||0})),e}(),D=u()(L,(n={},(0,r.Z)(n,"".concat(L,"-no-wrap"),!1===x),(0,r.Z)(n,"".concat(L,"-").concat(f),f),(0,r.Z)(n,"".concat(L,"-").concat(m),m),(0,r.Z)(n,"".concat(L,"-rtl"),"rtl"===S),n),g),F={},V=R[0]>0?R[0]/-2:void 0,H=R[1]>0?R[1]/-2:void 0;if(V&&(F.marginLeft=V,F.marginRight=V),T){var j=(0,i.Z)(R,2);F.rowGap=j[1]}else H&&(F.marginTop=H,F.marginBottom=H);var I=s.useMemo((function(){return{gutter:R,wrap:x,supportFlexGap:T}}),[R,x,T]);return s.createElement(d.Z.Provider,{value:I},s.createElement("div",(0,a.Z)({},C,{className:D,style:(0,a.Z)((0,a.Z)({},F),y),ref:t}),b))})));m.displayName="Row";var g=m},48761:function(e,t,n){n.d(t,{Z:function(){return ie}});var a=n(71002),r=n(4942),o=n(87462),i=n(97685),s=n(67294),l=n(1413),u=n(15671),c=n(43144),d=n(60136),f=n(3289),v=n(80334),p=function(e){var t,n,a=e.className,o=e.included,i=e.vertical,u=e.style,c=e.length,d=e.offset,f=e.reverse;c<0&&(f=!f,c=Math.abs(c),d=100-d);var v=i?(t={},(0,r.Z)(t,f?"top":"bottom","".concat(d,"%")),(0,r.Z)(t,f?"bottom":"top","auto"),(0,r.Z)(t,"height","".concat(c,"%")),t):(n={},(0,r.Z)(n,f?"right":"left","".concat(d,"%")),(0,r.Z)(n,f?"left":"right","auto"),(0,r.Z)(n,"width","".concat(c,"%")),n),p=(0,l.Z)((0,l.Z)({},u),v);return o?s.createElement("div",{className:a,style:p}):null},h=n(91),m=n(74902),g=n(61120);function y(e,t,n){return(y="undefined"!==typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var a=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=(0,g.Z)(e)););return e}(e,t);if(a){var r=Object.getOwnPropertyDescriptor(a,t);return r.get?r.get.call(n):r.value}})(e,t,n||e)}var b=n(64019),Z=n(94184),k=n.n(Z),x=function(e){var t=e.prefixCls,n=e.vertical,a=e.reverse,o=e.marks,i=e.dots,u=e.step,c=e.included,d=e.lowerBound,f=e.upperBound,p=e.max,h=e.min,m=e.dotStyle,g=e.activeDotStyle,y=p-h,b=function(e,t,n,a,r,o){(0,v.ZP)(!n||a>0,"`Slider[step]` should be a positive number in order to make Slider[dots] work.");var i=Object.keys(t).map(parseFloat).sort((function(e,t){return e-t}));if(n&&a)for(var s=r;s<=o;s+=a)-1===i.indexOf(s)&&i.push(s);return i}(0,o,i,u,h,p).map((function(e){var o,i="".concat(Math.abs(e-h)/y*100,"%"),u=!c&&e===f||c&&e<=f&&e>=d,v=n?(0,l.Z)((0,l.Z)({},m),{},(0,r.Z)({},a?"top":"bottom",i)):(0,l.Z)((0,l.Z)({},m),{},(0,r.Z)({},a?"right":"left",i));u&&(v=(0,l.Z)((0,l.Z)({},v),g));var p=k()((o={},(0,r.Z)(o,"".concat(t,"-dot"),!0),(0,r.Z)(o,"".concat(t,"-dot-active"),u),(0,r.Z)(o,"".concat(t,"-dot-reverse"),a),o));return s.createElement("span",{className:p,style:v,key:e})}));return s.createElement("div",{className:"".concat(t,"-step")},b)},C=function(e){var t=e.className,n=e.vertical,o=e.reverse,i=e.marks,u=e.included,c=e.upperBound,d=e.lowerBound,f=e.max,v=e.min,p=e.onClickLabel,h=Object.keys(i),m=f-v,g=h.map(parseFloat).sort((function(e,t){return e-t})).map((function(e){var f,h=i[e],g="object"===(0,a.Z)(h)&&!s.isValidElement(h),y=g?h.label:h;if(!y&&0!==y)return null;var b=!u&&e===c||u&&e<=c&&e>=d,Z=k()((f={},(0,r.Z)(f,"".concat(t,"-text"),!0),(0,r.Z)(f,"".concat(t,"-text-active"),b),f)),x=(0,r.Z)({marginBottom:"-50%"},o?"top":"bottom","".concat((e-v)/m*100,"%")),C=(0,r.Z)({transform:"translateX(".concat(o?"50%":"-50%",")"),msTransform:"translateX(".concat(o?"50%":"-50%",")")},o?"right":"left","".concat((e-v)/m*100,"%")),M=n?x:C,w=g?(0,l.Z)((0,l.Z)({},M),h.style):M;return s.createElement("span",{className:Z,style:w,key:e,onMouseDown:function(t){return p(t,e)},onTouchStart:function(t){return p(t,e)}},y)}));return s.createElement("div",{className:t},g)},M=["prefixCls","vertical","reverse","offset","style","disabled","min","max","value","tabIndex","ariaLabel","ariaLabelledBy","ariaValueTextFormatter"],w=function(e){(0,d.Z)(n,e);var t=(0,f.Z)(n);function n(){var e;(0,u.Z)(this,n);for(var a=arguments.length,r=new Array(a),o=0;o<a;o++)r[o]=arguments[o];return(e=t.call.apply(t,[this].concat(r))).state={clickFocused:!1},e.onMouseUpListener=void 0,e.handle=void 0,e.setHandleRef=function(t){e.handle=t},e.handleMouseUp=function(){document.activeElement===e.handle&&e.setClickFocus(!0)},e.handleMouseDown=function(t){t.preventDefault(),e.focus()},e.handleBlur=function(){e.setClickFocus(!1)},e.handleKeyDown=function(){e.setClickFocus(!1)},e}return(0,c.Z)(n,[{key:"componentDidMount",value:function(){this.onMouseUpListener=(0,b.Z)(document,"mouseup",this.handleMouseUp)}},{key:"componentWillUnmount",value:function(){this.onMouseUpListener&&this.onMouseUpListener.remove()}},{key:"setClickFocus",value:function(e){this.setState({clickFocused:e})}},{key:"clickFocus",value:function(){this.setClickFocus(!0),this.focus()}},{key:"focus",value:function(){this.handle.focus()}},{key:"blur",value:function(){this.handle.blur()}},{key:"render",value:function(){var e,t,n,a=this.props,i=a.prefixCls,u=a.vertical,c=a.reverse,d=a.offset,f=a.style,v=a.disabled,p=a.min,m=a.max,g=a.value,y=a.tabIndex,b=a.ariaLabel,Z=a.ariaLabelledBy,x=a.ariaValueTextFormatter,C=(0,h.Z)(a,M),w=k()(this.props.className,(0,r.Z)({},"".concat(i,"-handle-click-focused"),this.state.clickFocused)),S=u?(e={},(0,r.Z)(e,c?"top":"bottom","".concat(d,"%")),(0,r.Z)(e,c?"bottom":"top","auto"),(0,r.Z)(e,"transform",c?null:"translateY(+50%)"),e):(t={},(0,r.Z)(t,c?"right":"left","".concat(d,"%")),(0,r.Z)(t,c?"left":"right","auto"),(0,r.Z)(t,"transform","translateX(".concat(c?"+":"-","50%)")),t),E=(0,l.Z)((0,l.Z)({},f),S),O=y||0;return(v||null===y)&&(O=null),x&&(n=x(g)),s.createElement("div",(0,o.Z)({ref:this.setHandleRef,tabIndex:O},C,{className:w,style:E,onBlur:this.handleBlur,onKeyDown:this.handleKeyDown,onMouseDown:this.handleMouseDown,role:"slider","aria-valuemin":p,"aria-valuemax":m,"aria-valuenow":g,"aria-disabled":!!v,"aria-label":b,"aria-labelledby":Z,"aria-valuetext":n}))}}]),n}(s.Component),S=n(73935),E=n(15105);function O(e,t){try{return Object.keys(t).some((function(n){return e.target===(0,S.findDOMNode)(t[n])}))}catch(n){return!1}}function P(e,t){var n=t.min,a=t.max;return e<n||e>a}function N(e){return e.touches.length>1||"touchend"===e.type.toLowerCase()&&e.touches.length>0}function T(e,t){var n=t.marks,a=t.step,r=t.min,o=t.max,i=Object.keys(n).map(parseFloat);if(null!==a){var s=Math.pow(10,B(a)),l=Math.floor((o*s-r*s)/(a*s)),u=Math.min((e-r)/a,l),c=Math.round(u)*a+r;i.push(c)}var d=i.map((function(t){return Math.abs(e-t)}));return i[d.indexOf(Math.min.apply(Math,(0,m.Z)(d)))]}function B(e){var t=e.toString(),n=0;return t.indexOf(".")>=0&&(n=t.length-t.indexOf(".")-1),n}function L(e,t){return e?t.clientY:t.pageX}function R(e,t){return e?t.touches[0].clientY:t.touches[0].pageX}function D(e,t){var n=t.getBoundingClientRect();return e?n.top+.5*n.height:window.pageXOffset+n.left+.5*n.width}function F(e,t){var n=t.max,a=t.min;return e<=a?a:e>=n?n:e}function V(e,t){var n=t.step,a=isFinite(T(e,t))?T(e,t):0;return null===n?a:parseFloat(a.toFixed(B(n)))}function H(e){e.stopPropagation(),e.preventDefault()}function j(e,t,n){var a="increase",r="decrease",o=a;switch(e.keyCode){case E.Z.UP:o=t&&n?r:a;break;case E.Z.RIGHT:o=!t&&n?r:a;break;case E.Z.DOWN:o=t&&n?a:r;break;case E.Z.LEFT:o=!t&&n?a:r;break;case E.Z.END:return function(e,t){return t.max};case E.Z.HOME:return function(e,t){return t.min};case E.Z.PAGE_UP:return function(e,t){return e+2*t.step};case E.Z.PAGE_DOWN:return function(e,t){return e-2*t.step};default:return}return function(e,t){return function(e,t,n){var a={increase:function(e,t){return e+t},decrease:function(e,t){return e-t}},r=a[e](Object.keys(n.marks).indexOf(JSON.stringify(t)),1),o=Object.keys(n.marks)[r];return n.step?a[e](t,n.step):Object.keys(n.marks).length&&n.marks[o]?n.marks[o]:t}(o,e,t)}}var I=["index"];function U(){}function A(e){var t,n;return n=t=function(e){(0,d.Z)(n,e);var t=(0,f.Z)(n);function n(e){var a;(0,u.Z)(this,n),(a=t.call(this,e)).handlesRefs=void 0,a.sliderRef=void 0,a.document=void 0,a.dragOffset=void 0,a.prevMovedHandleIndex=void 0,a.onTouchMoveListener=void 0,a.onTouchUpListener=void 0,a.onMouseMoveListener=void 0,a.onMouseUpListener=void 0,a.dragTrack=void 0,a.startBounds=void 0,a.onDown=function(e,t){var n=t,r=a.props,o=r.draggableTrack,i=r.vertical,s=a.state.bounds,l=o&&a.positionGetValue&&a.positionGetValue(n)||[],u=O(e,a.handlesRefs);if(a.dragTrack=o&&s.length>=2&&!u&&!l.map((function(e,t){var n=!!t||e>=s[t];return t===l.length-1?e<=s[t]:n})).some((function(e){return!e})),a.dragTrack)a.dragOffset=n,a.startBounds=(0,m.Z)(s);else{if(u){var c=D(i,e.target);a.dragOffset=n-c,n=c}else a.dragOffset=0;a.onStart(n)}},a.onMouseDown=function(e){if(0===e.button){a.removeDocumentEvents();var t=L(a.props.vertical,e);a.onDown(e,t),a.addDocumentMouseEvents()}},a.onTouchStart=function(e){if(!N(e)){var t=R(a.props.vertical,e);a.onDown(e,t),a.addDocumentTouchEvents(),H(e)}},a.onFocus=function(e){var t=a.props,n=t.onFocus,r=t.vertical;if(O(e,a.handlesRefs)&&!a.dragTrack){var o=D(r,e.target);a.dragOffset=0,a.onStart(o),H(e),n&&n(e)}},a.onBlur=function(e){var t=a.props.onBlur;a.dragTrack||a.onEnd(),t&&t(e)},a.onMouseUp=function(){a.handlesRefs[a.prevMovedHandleIndex]&&a.handlesRefs[a.prevMovedHandleIndex].clickFocus()},a.onMouseMove=function(e){if(a.sliderRef){var t=L(a.props.vertical,e);a.onMove(e,t-a.dragOffset,a.dragTrack,a.startBounds)}else a.onEnd()},a.onTouchMove=function(e){if(!N(e)&&a.sliderRef){var t=R(a.props.vertical,e);a.onMove(e,t-a.dragOffset,a.dragTrack,a.startBounds)}else a.onEnd()},a.onKeyDown=function(e){a.sliderRef&&O(e,a.handlesRefs)&&a.onKeyboard(e)},a.onClickMarkLabel=function(e,t){e.stopPropagation(),a.onChange({value:t}),a.setState({value:t},(function(){return a.onEnd(!0)}))},a.saveSlider=function(e){a.sliderRef=e};var r=e.step,o=e.max,i=e.min,s=!isFinite(o-i)||(o-i)%r===0;return(0,v.ZP)(!r||Math.floor(r)!==r||s,"Slider[max] - Slider[min] (".concat(o-i,") should be a multiple of Slider[step] (").concat(r,")")),a.handlesRefs={},a}return(0,c.Z)(n,[{key:"componentDidMount",value:function(){this.document=this.sliderRef&&this.sliderRef.ownerDocument;var e=this.props,t=e.autoFocus,n=e.disabled;t&&!n&&this.focus()}},{key:"componentWillUnmount",value:function(){y((0,g.Z)(n.prototype),"componentWillUnmount",this)&&y((0,g.Z)(n.prototype),"componentWillUnmount",this).call(this),this.removeDocumentEvents()}},{key:"getSliderStart",value:function(){var e=this.sliderRef,t=this.props,n=t.vertical,a=t.reverse,r=e.getBoundingClientRect();return n?a?r.bottom:r.top:window.pageXOffset+(a?r.right:r.left)}},{key:"getSliderLength",value:function(){var e=this.sliderRef;if(!e)return 0;var t=e.getBoundingClientRect();return this.props.vertical?t.height:t.width}},{key:"addDocumentTouchEvents",value:function(){this.onTouchMoveListener=(0,b.Z)(this.document,"touchmove",this.onTouchMove),this.onTouchUpListener=(0,b.Z)(this.document,"touchend",this.onEnd)}},{key:"addDocumentMouseEvents",value:function(){this.onMouseMoveListener=(0,b.Z)(this.document,"mousemove",this.onMouseMove),this.onMouseUpListener=(0,b.Z)(this.document,"mouseup",this.onEnd)}},{key:"removeDocumentEvents",value:function(){this.onTouchMoveListener&&this.onTouchMoveListener.remove(),this.onTouchUpListener&&this.onTouchUpListener.remove(),this.onMouseMoveListener&&this.onMouseMoveListener.remove(),this.onMouseUpListener&&this.onMouseUpListener.remove()}},{key:"focus",value:function(){var e;this.props.disabled||null===(e=this.handlesRefs[0])||void 0===e||e.focus()}},{key:"blur",value:function(){var e=this;this.props.disabled||Object.keys(this.handlesRefs).forEach((function(t){var n,a;null===(n=e.handlesRefs[t])||void 0===n||null===(a=n.blur)||void 0===a||a.call(n)}))}},{key:"calcValue",value:function(e){var t=this.props,n=t.vertical,a=t.min,r=t.max,o=Math.abs(Math.max(e,0)/this.getSliderLength());return n?(1-o)*(r-a)+a:o*(r-a)+a}},{key:"calcValueByPos",value:function(e){var t=(this.props.reverse?-1:1)*(e-this.getSliderStart());return this.trimAlignValue(this.calcValue(t))}},{key:"calcOffset",value:function(e){var t=this.props,n=t.min,a=(e-n)/(t.max-n);return Math.max(0,100*a)}},{key:"saveHandle",value:function(e,t){this.handlesRefs[e]=t}},{key:"render",value:function(){var e,t=this.props,a=t.prefixCls,o=t.className,i=t.marks,u=t.dots,c=t.step,d=t.included,f=t.disabled,v=t.vertical,p=t.reverse,h=t.min,m=t.max,b=t.children,Z=t.maximumTrackStyle,M=t.style,w=t.railStyle,S=t.dotStyle,E=t.activeDotStyle,O=y((0,g.Z)(n.prototype),"render",this).call(this),P=O.tracks,N=O.handles,T=k()(a,(e={},(0,r.Z)(e,"".concat(a,"-with-marks"),Object.keys(i).length),(0,r.Z)(e,"".concat(a,"-disabled"),f),(0,r.Z)(e,"".concat(a,"-vertical"),v),(0,r.Z)(e,o,o),e));return s.createElement("div",{ref:this.saveSlider,className:T,onTouchStart:f?U:this.onTouchStart,onMouseDown:f?U:this.onMouseDown,onMouseUp:f?U:this.onMouseUp,onKeyDown:f?U:this.onKeyDown,onFocus:f?U:this.onFocus,onBlur:f?U:this.onBlur,style:M},s.createElement("div",{className:"".concat(a,"-rail"),style:(0,l.Z)((0,l.Z)({},Z),w)}),P,s.createElement(x,{prefixCls:a,vertical:v,reverse:p,marks:i,dots:u,step:c,included:d,lowerBound:this.getLowerBound(),upperBound:this.getUpperBound(),max:m,min:h,dotStyle:S,activeDotStyle:E}),N,s.createElement(C,{className:"".concat(a,"-mark"),onClickLabel:f?U:this.onClickMarkLabel,vertical:v,marks:i,included:d,lowerBound:this.getLowerBound(),upperBound:this.getUpperBound(),max:m,min:h,reverse:p}),b)}}]),n}(e),t.displayName="ComponentEnhancer(".concat(e.displayName,")"),t.defaultProps=(0,l.Z)((0,l.Z)({},e.defaultProps),{},{prefixCls:"rc-slider",className:"",min:0,max:100,step:1,marks:{},handle:function(e){var t=e.index,n=(0,h.Z)(e,I);return delete n.dragging,null===n.value?null:s.createElement(w,(0,o.Z)({},n,{key:t}))},onBeforeChange:U,onChange:U,onAfterChange:U,included:!0,disabled:!1,dots:!1,vertical:!1,reverse:!1,trackStyle:[{}],handleStyle:[{}],railStyle:{},dotStyle:{},activeDotStyle:{}}),n}var G=A(function(e){(0,d.Z)(n,e);var t=(0,f.Z)(n);function n(e){var a;(0,u.Z)(this,n),(a=t.call(this,e)).positionGetValue=function(e){return[]},a.startValue=void 0,a.startPosition=void 0,a.prevMovedHandleIndex=void 0,a.onEnd=function(e){var t=a.state.dragging;a.removeDocumentEvents(),(t||e)&&a.props.onAfterChange(a.getValue()),a.setState({dragging:!1})};var r=void 0!==e.defaultValue?e.defaultValue:e.min,o=void 0!==e.value?e.value:r;return a.state={value:a.trimAlignValue(o),dragging:!1},(0,v.ZP)(!("minimumTrackStyle"in e),"minimumTrackStyle will be deprecated, please use trackStyle instead."),(0,v.ZP)(!("maximumTrackStyle"in e),"maximumTrackStyle will be deprecated, please use railStyle instead."),a}return(0,c.Z)(n,[{key:"calcValueByPos",value:function(e){return 0}},{key:"calcOffset",value:function(e){return 0}},{key:"saveHandle",value:function(e,t){}},{key:"removeDocumentEvents",value:function(){}},{key:"componentDidUpdate",value:function(e,t){var n=this.props,a=n.min,r=n.max,o=n.value,i=n.onChange;if("min"in this.props||"max"in this.props){var s=void 0!==o?o:t.value,l=this.trimAlignValue(s,this.props);l!==t.value&&(this.setState({value:l}),a===e.min&&r===e.max||!P(s,this.props)||i(l))}}},{key:"onChange",value:function(e){var t=this.props,n=!("value"in t),a=e.value>this.props.max?(0,l.Z)((0,l.Z)({},e),{},{value:this.props.max}):e;n&&this.setState(a);var r=a.value;t.onChange(r)}},{key:"onStart",value:function(e){this.setState({dragging:!0});var t=this.props,n=this.getValue();t.onBeforeChange(n);var a=this.calcValueByPos(e);this.startValue=a,this.startPosition=e,a!==n&&(this.prevMovedHandleIndex=0,this.onChange({value:a}))}},{key:"onMove",value:function(e,t){H(e);var n=this.state.value,a=this.calcValueByPos(t);a!==n&&this.onChange({value:a})}},{key:"onKeyboard",value:function(e){var t=this.props,n=t.reverse,a=j(e,t.vertical,n);if(a){H(e);var r=this.state.value,o=a(r,this.props),i=this.trimAlignValue(o);if(i===r)return;this.onChange({value:i}),this.props.onAfterChange(i),this.onEnd()}}},{key:"getValue",value:function(){return this.state.value}},{key:"getLowerBound",value:function(){var e=this.props.startPoint||this.props.min;return this.state.value>e?e:this.state.value}},{key:"getUpperBound",value:function(){return this.state.value<this.props.startPoint?this.props.startPoint:this.state.value}},{key:"trimAlignValue",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(null===e)return null;var n=(0,l.Z)((0,l.Z)({},this.props),t),a=F(e,n);return V(a,n)}},{key:"render",value:function(){var e=this,t=this.props,n=t.prefixCls,a=t.vertical,r=t.included,o=t.disabled,i=t.minimumTrackStyle,u=t.trackStyle,c=t.handleStyle,d=t.tabIndex,f=t.ariaLabelForHandle,v=t.ariaLabelledByForHandle,h=t.ariaValueTextFormatterForHandle,m=t.min,g=t.max,y=t.startPoint,b=t.reverse,Z=t.handle,k=this.state,x=k.value,C=k.dragging,M=this.calcOffset(x),w=Z({className:"".concat(n,"-handle"),prefixCls:n,vertical:a,offset:M,value:x,dragging:C,disabled:o,min:m,max:g,reverse:b,index:0,tabIndex:d,ariaLabel:f,ariaLabelledBy:v,ariaValueTextFormatter:h,style:c[0]||c,ref:function(t){return e.saveHandle(0,t)}}),S=void 0!==y?this.calcOffset(y):0,E=u[0]||u;return{tracks:s.createElement(p,{className:"".concat(n,"-track"),vertical:a,included:r,offset:S,reverse:b,length:M-S,style:(0,l.Z)((0,l.Z)({},i),E)}),handles:w}}}]),n}(s.Component)),_=function(e){var t=e.value,n=e.handle,a=e.bounds,r=e.props,o=r.allowCross,i=r.pushable,s=Number(i),l=F(t,r),u=l;return o||null==n||void 0===a||(n>0&&l<=a[n-1]+s&&(u=a[n-1]+s),n<a.length-1&&l>=a[n+1]-s&&(u=a[n+1]-s)),V(u,r)},K=function(e){(0,d.Z)(n,e);var t=(0,f.Z)(n);function n(e){var a;(0,u.Z)(this,n),(a=t.call(this,e)).startValue=void 0,a.startPosition=void 0,a.prevMovedHandleIndex=void 0,a.internalPointsCache=void 0,a.handlesRefs=void 0,a.dragTrack=void 0,a.positionGetValue=function(e){var t=a.getValue(),n=a.calcValueByPos(e),r=a.getClosestBound(n),o=a.getBoundNeedMoving(n,r);if(n===t[o])return null;var i=(0,m.Z)(t);return i[o]=n,i},a.onEnd=function(e){var t=a.state.handle;a.removeDocumentEvents(),t||(a.dragTrack=!1),(null!==t||e)&&a.props.onAfterChange(a.getValue()),a.setState({handle:null})};var r=e.count,o=e.min,i=e.max,s=Array.apply(void 0,(0,m.Z)(Array(r+1))).map((function(){return o})),l="defaultValue"in e?e.defaultValue:s,c=(void 0!==e.value?e.value:l).map((function(t,n){return _({value:t,handle:n,props:e})})),d=c[0]===i?0:c.length-1;return a.state={handle:null,recent:d,bounds:c},a}return(0,c.Z)(n,[{key:"calcValueByPos",value:function(e){return 0}},{key:"getSliderLength",value:function(){return 0}},{key:"calcOffset",value:function(e){return 0}},{key:"saveHandle",value:function(e,t){}},{key:"removeDocumentEvents",value:function(){}},{key:"componentDidUpdate",value:function(e,t){var n=this,a=this.props,r=a.onChange,o=a.value,i=a.min,s=a.max;if(("min"in this.props||"max"in this.props)&&(i!==e.min||s!==e.max)){var l=o||t.bounds;if(l.some((function(e){return P(e,n.props)})))r(l.map((function(e){return F(e,n.props)})))}}},{key:"onChange",value:function(e){var t=this.props;if(!("value"in t))this.setState(e);else{var n={};["handle","recent"].forEach((function(t){void 0!==e[t]&&(n[t]=e[t])})),Object.keys(n).length&&this.setState(n)}var a=(0,l.Z)((0,l.Z)({},this.state),e).bounds;t.onChange(a)}},{key:"onStart",value:function(e){var t=this.props,n=this.state,a=this.getValue();t.onBeforeChange(a);var r=this.calcValueByPos(e);this.startValue=r,this.startPosition=e;var o=this.getClosestBound(r);if(this.prevMovedHandleIndex=this.getBoundNeedMoving(r,o),this.setState({handle:this.prevMovedHandleIndex,recent:this.prevMovedHandleIndex}),r!==a[this.prevMovedHandleIndex]){var i=(0,m.Z)(n.bounds);i[this.prevMovedHandleIndex]=r,this.onChange({bounds:i})}}},{key:"onMove",value:function(e,t,n,a){H(e);var r=this.state,o=this.props,i=o.max||100,s=o.min||0;if(n){var l=o.vertical?-t:t;l=o.reverse?-l:l;var u=i-Math.max.apply(Math,(0,m.Z)(a)),c=s-Math.min.apply(Math,(0,m.Z)(a)),d=Math.min(Math.max(l/(this.getSliderLength()/(i-s)),c),u),f=a.map((function(e){return Math.floor(Math.max(Math.min(e+d,i),s))}));r.bounds.map((function(e,t){return e===f[t]})).some((function(e){return!e}))&&this.onChange({bounds:f})}else{var v=this.calcValueByPos(t);v!==r.bounds[r.handle]&&this.moveTo(v)}}},{key:"onKeyboard",value:function(e){var t=this.props,n=t.reverse,a=j(e,t.vertical,n);if(a){H(e);var r=this.state,o=this.props,i=r.bounds,s=r.handle,l=i[null===s?r.recent:s],u=a(l,o),c=_({value:u,handle:s,bounds:r.bounds,props:o});if(c===l)return;this.moveTo(c,!0)}}},{key:"getValue",value:function(){return this.state.bounds}},{key:"getClosestBound",value:function(e){for(var t=this.state.bounds,n=0,a=1;a<t.length-1;a+=1)e>=t[a]&&(n=a);return Math.abs(t[n+1]-e)<Math.abs(t[n]-e)&&(n+=1),n}},{key:"getBoundNeedMoving",value:function(e,t){var n=this.state,a=n.bounds,r=n.recent,o=t,i=a[t+1]===a[t];return i&&a[r]===a[t]&&(o=r),i&&e!==a[t+1]&&(o=e<a[t+1]?t:t+1),o}},{key:"getLowerBound",value:function(){return this.state.bounds[0]}},{key:"getUpperBound",value:function(){var e=this.state.bounds;return e[e.length-1]}},{key:"getPoints",value:function(){var e=this.props,t=e.marks,n=e.step,a=e.min,r=e.max,o=this.internalPointsCache;if(!o||o.marks!==t||o.step!==n){var i=(0,l.Z)({},t);if(null!==n)for(var s=a;s<=r;s+=n)i[s]=s;var u=Object.keys(i).map(parseFloat);u.sort((function(e,t){return e-t})),this.internalPointsCache={marks:t,step:n,points:u}}return this.internalPointsCache.points}},{key:"moveTo",value:function(e,t){var n=this,a=this.state,r=this.props,o=(0,m.Z)(a.bounds),i=null===a.handle?a.recent:a.handle;o[i]=e;var s=i;!1!==r.pushable?this.pushSurroundingHandles(o,s):r.allowCross&&(o.sort((function(e,t){return e-t})),s=o.indexOf(e)),this.onChange({recent:s,handle:s,bounds:o}),t&&(this.props.onAfterChange(o),this.setState({},(function(){n.handlesRefs[s].focus()})),this.onEnd())}},{key:"pushSurroundingHandles",value:function(e,t){var n=e[t],a=this.props.pushable,r=Number(a),o=0;if(e[t+1]-n<r&&(o=1),n-e[t-1]<r&&(o=-1),0!==o){var i=t+o,s=o*(e[i]-n);this.pushHandle(e,i,o,r-s)||(e[t]=e[i]-o*r)}}},{key:"pushHandle",value:function(e,t,n,a){for(var r=e[t],o=e[t];n*(o-r)<a;){if(!this.pushHandleOnePoint(e,t,n))return e[t]=r,!1;o=e[t]}return!0}},{key:"pushHandleOnePoint",value:function(e,t,n){var a=this.getPoints(),r=a.indexOf(e[t])+n;if(r>=a.length||r<0)return!1;var o=t+n,i=a[r],s=this.props.pushable,l=Number(s),u=n*(e[o]-i);return!!this.pushHandle(e,o,n,l-u)&&(e[t]=i,!0)}},{key:"trimAlignValue",value:function(e){var t=this.state,n=t.handle,a=t.bounds;return _({value:e,handle:n,bounds:a,props:this.props})}},{key:"render",value:function(){var e=this,t=this.state,n=t.handle,a=t.bounds,o=this.props,i=o.prefixCls,l=o.vertical,u=o.included,c=o.disabled,d=o.min,f=o.max,v=o.reverse,h=o.handle,m=o.trackStyle,g=o.handleStyle,y=o.tabIndex,b=o.ariaLabelGroupForHandles,Z=o.ariaLabelledByGroupForHandles,x=o.ariaValueTextFormatterGroupForHandles,C=a.map((function(t){return e.calcOffset(t)})),M="".concat(i,"-handle"),w=a.map((function(t,a){var o,s=y[a]||0;(c||null===y[a])&&(s=null);var u=n===a;return h({className:k()((o={},(0,r.Z)(o,M,!0),(0,r.Z)(o,"".concat(M,"-").concat(a+1),!0),(0,r.Z)(o,"".concat(M,"-dragging"),u),o)),prefixCls:i,vertical:l,dragging:u,offset:C[a],value:t,index:a,tabIndex:s,min:d,max:f,reverse:v,disabled:c,style:g[a],ref:function(t){return e.saveHandle(a,t)},ariaLabel:b[a],ariaLabelledBy:Z[a],ariaValueTextFormatter:x[a]})}));return{tracks:a.slice(0,-1).map((function(e,t){var n,a=t+1,o=k()((n={},(0,r.Z)(n,"".concat(i,"-track"),!0),(0,r.Z)(n,"".concat(i,"-track-").concat(a),!0),n));return s.createElement(p,{className:o,vertical:l,reverse:v,included:u,offset:C[a-1],length:C[a]-C[a-1],style:m[t],key:a})})),handles:w}}}],[{key:"getDerivedStateFromProps",value:function(e,t){if(!("value"in e||"min"in e||"max"in e))return null;var n=e.value||t.bounds,a=n.map((function(n,a){return _({value:n,handle:a,bounds:t.bounds,props:e})}));if(t.bounds.length===a.length){if(a.every((function(e,n){return e===t.bounds[n]})))return null}else a=n.map((function(t,n){return _({value:t,handle:n,props:e})}));return(0,l.Z)((0,l.Z)({},t),{},{bounds:a})}}]),n}(s.Component);K.displayName="Range",K.defaultProps={count:1,allowCross:!0,pushable:!1,draggableTrack:!1,tabIndex:[],ariaLabelGroupForHandles:[],ariaLabelledByGroupForHandles:[],ariaValueTextFormatterGroupForHandles:[]};var W=A(K),X=n(22972),z=n(42550),Y=n(75164),Q=s.forwardRef((function(e,t){var n=e.visible,a=e.overlay,r=s.useRef(null),i=(0,z.sQ)(t,r),l=s.useRef(null);function u(){Y.Z.cancel(l.current)}return s.useEffect((function(){return n?l.current=(0,Y.Z)((function(){var e;null===(e=r.current)||void 0===e||e.forcePopupAlign()})):u(),u}),[n,a]),s.createElement(X.default,(0,o.Z)({ref:i},e))})),J=["value","dragging","index","disabled"],$=["prefixCls","overlay","placement","visible"];var q=G;q.Range=W,q.Handle=w,q.createSliderWithTooltip=function(e){var t,n;return n=t=function(t){(0,d.Z)(a,t);var n=(0,f.Z)(a);function a(){var e;(0,u.Z)(this,a);for(var t=arguments.length,i=new Array(t),c=0;c<t;c++)i[c]=arguments[c];return(e=n.call.apply(n,[this].concat(i))).state={visibles:{}},e.handleTooltipVisibleChange=function(t,n){e.setState((function(e){return{visibles:(0,l.Z)((0,l.Z)({},e.visibles),{},(0,r.Z)({},t,n))}}))},e.handleWithTooltip=function(t){var n,a=t.value,r=t.dragging,i=t.index,u=t.disabled,c=(0,h.Z)(t,J),d=e.props,f=d.tipFormatter,v=d.tipProps,p=d.handleStyle,m=d.getTooltipContainer,g=v.prefixCls,y=void 0===g?"rc-slider-tooltip":g,b=v.overlay,Z=void 0===b?f(a):b,k=v.placement,x=void 0===k?"top":k,C=v.visible,M=void 0!==C&&C,S=(0,h.Z)(v,$);return n=Array.isArray(p)?p[i]||p[0]:p,s.createElement(Q,(0,o.Z)({},S,{getTooltipContainer:m,prefixCls:y,overlay:Z,placement:x,visible:!u&&(e.state.visibles[i]||r)||M,key:i}),s.createElement(w,(0,o.Z)({},c,{style:(0,l.Z)({},n),value:a,onMouseEnter:function(){return e.handleTooltipVisibleChange(i,!0)},onMouseLeave:function(){return e.handleTooltipVisibleChange(i,!1)}})))},e}return(0,c.Z)(a,[{key:"render",value:function(){return s.createElement(e,(0,o.Z)({},this.props,{handle:this.handleWithTooltip}))}}]),a}(s.Component),t.defaultProps={tipFormatter:function(e){return e},handleStyle:[{}],tipProps:{},getTooltipContainer:function(e){return e.parentNode}},n};var ee=q,te=n(56266),ne=s.forwardRef((function(e,t){var n=e.visible,a=(0,s.useRef)(null),r=(0,s.useRef)(null);function i(){Y.Z.cancel(r.current),r.current=null}return s.useEffect((function(){return n?r.current=(0,Y.Z)((function(){var e;null===(e=a.current)||void 0===e||e.forcePopupAlign(),r.current=null})):i(),i}),[n,e.title]),s.createElement(te.Z,(0,o.Z)({ref:(0,z.sQ)(a,t)},e))})),ae=n(59844),re=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n},oe=s.forwardRef((function(e,t){var n,l=s.useContext(ae.E_),u=l.getPrefixCls,c=l.direction,d=l.getPopupContainer,f=s.useState({}),v=(0,i.Z)(f,2),p=v[0],h=v[1],m=function(e,t){h((function(n){return(0,o.Z)((0,o.Z)({},n),(0,r.Z)({},e,t))}))},g=function(e,t){return e||(t?"rtl"===c?"left":"right":"top")},y=function(t){var n=t.tooltipPrefixCls,a=t.prefixCls,r=t.info,i=r.value,l=r.dragging,c=r.index,f=re(r,["value","dragging","index"]),v=e.tipFormatter,h=e.tooltipVisible,y=e.tooltipPlacement,b=e.getTooltipPopupContainer,Z=e.vertical,k=!!v&&(p[c]||l),x=h||void 0===h&&k,C=u();return s.createElement(ne,{prefixCls:n,title:v?v(i):"",visible:x,placement:g(y,Z),transitionName:"".concat(C,"-zoom-down"),key:c,overlayClassName:"".concat(a,"-tooltip"),getPopupContainer:b||d},s.createElement(w,(0,o.Z)({},f,{value:i,onMouseEnter:function(){return m(c,!0)},onMouseLeave:function(){return m(c,!1)}})))},b=e.prefixCls,Z=e.tooltipPrefixCls,x=e.range,C=e.className,M=re(e,["prefixCls","tooltipPrefixCls","range","className"]),S=u("slider",b),E=u("tooltip",Z),O=k()(C,(0,r.Z)({},"".concat(S,"-rtl"),"rtl"===c));return"rtl"!==c||M.vertical||(M.reverse=!M.reverse),"object"===(0,a.Z)(x)&&(n=x.draggableTrack),x?s.createElement(W,(0,o.Z)({},M,{step:M.step,draggableTrack:n,className:O,ref:t,handle:function(e){return y({tooltipPrefixCls:E,prefixCls:S,info:e})},prefixCls:S})):s.createElement(ee,(0,o.Z)({},M,{step:M.step,className:O,ref:t,handle:function(e){return y({tooltipPrefixCls:E,prefixCls:S,info:e})},prefixCls:S}))}));oe.displayName="Slider",oe.defaultProps={tipFormatter:function(e){return"number"===typeof e?e.toString():""}};var ie=oe},94594:function(e,t,n){n.d(t,{Z:function(){return k}});var a=n(87462),r=n(4942),o=n(67294),i=n(97685),s=n(91),l=n(94184),u=n.n(l),c=n(21770),d=n(15105),f=o.forwardRef((function(e,t){var n,a=e.prefixCls,l=void 0===a?"rc-switch":a,f=e.className,v=e.checked,p=e.defaultChecked,h=e.disabled,m=e.loadingIcon,g=e.checkedChildren,y=e.unCheckedChildren,b=e.onClick,Z=e.onChange,k=e.onKeyDown,x=(0,s.Z)(e,["prefixCls","className","checked","defaultChecked","disabled","loadingIcon","checkedChildren","unCheckedChildren","onClick","onChange","onKeyDown"]),C=(0,c.Z)(!1,{value:v,defaultValue:p}),M=(0,i.Z)(C,2),w=M[0],S=M[1];function E(e,t){var n=w;return h||(S(n=e),null===Z||void 0===Z||Z(n,t)),n}var O=u()(l,f,(n={},(0,r.Z)(n,"".concat(l,"-checked"),w),(0,r.Z)(n,"".concat(l,"-disabled"),h),n));return o.createElement("button",Object.assign({},x,{type:"button",role:"switch","aria-checked":w,disabled:h,className:O,ref:t,onKeyDown:function(e){e.which===d.Z.LEFT?E(!1,e):e.which===d.Z.RIGHT&&E(!0,e),null===k||void 0===k||k(e)},onClick:function(e){var t=E(!w,e);null===b||void 0===b||b(t,e)}}),m,o.createElement("span",{className:"".concat(l,"-inner")},w?g:y))}));f.displayName="Switch";var v=f,p=n(50888),h=n(97202),m=n(59844),g=n(97647),y=n(21687),b=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n},Z=o.forwardRef((function(e,t){var n,i=e.prefixCls,s=e.size,l=e.loading,c=e.className,d=void 0===c?"":c,f=e.disabled,Z=b(e,["prefixCls","size","loading","className","disabled"]);(0,y.Z)("checked"in Z||!("value"in Z),"Switch","`value` is not a valid prop, do you mean `checked`?");var k=o.useContext(m.E_),x=k.getPrefixCls,C=k.direction,M=o.useContext(g.Z),w=x("switch",i),S=o.createElement("div",{className:"".concat(w,"-handle")},l&&o.createElement(p.Z,{className:"".concat(w,"-loading-icon")})),E=u()((n={},(0,r.Z)(n,"".concat(w,"-small"),"small"===(s||M)),(0,r.Z)(n,"".concat(w,"-loading"),l),(0,r.Z)(n,"".concat(w,"-rtl"),"rtl"===C),n),d);return o.createElement(h.Z,{insertExtraNode:!0},o.createElement(v,(0,a.Z)({},Z,{prefixCls:w,className:E,disabled:f||l,ref:t,loadingIcon:S})))}));Z.__ANT_SWITCH=!0,Z.displayName="Switch";var k=Z}}]); \ No newline at end of file
diff --git a/static/admin/_next/static/chunks/556-bbfb134a84808c78.js b/static/admin/_next/static/chunks/556-bbfb134a84808c78.js
deleted file mode 100644
index e086b0570..000000000
--- a/static/admin/_next/static/chunks/556-bbfb134a84808c78.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[556],{48689:function(e,t,n){n.d(t,{Z:function(){return l}});var a=n(1413),r=n(67294),o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M360 184h-8c4.4 0 8-3.6 8-8v8h304v-8c0 4.4 3.6 8 8 8h-8v72h72v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80h72v-72zm504 72H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM731.3 840H292.7l-24.2-512h487l-24.2 512z"}}]},name:"delete",theme:"outlined"},i=n(42135),s=function(e,t){return r.createElement(i.Z,(0,a.Z)((0,a.Z)({},e),{},{ref:t,icon:o}))};s.displayName="DeleteOutlined";var l=r.forwardRef(s)},98082:function(e,t,n){var a=n(97685),r=n(67294),o=n(31808);t.Z=function(){var e=r.useState(!1),t=(0,a.Z)(e,2),n=t[0],i=t[1];return r.useEffect((function(){i((0,o.fk)())}),[]),n}},6226:function(e,t,n){n.d(t,{Z:function(){return p}});var a=n(4942),r=n(87462),o=n(71002),i=n(67294),s=n(94184),l=n.n(s),u=n(99134),c=n(59844),d=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n};var f=["xs","sm","md","lg","xl","xxl"],v=i.forwardRef((function(e,t){var n,s=i.useContext(c.E_),v=s.getPrefixCls,p=s.direction,h=i.useContext(u.Z),m=h.gutter,g=h.wrap,y=h.supportFlexGap,b=e.prefixCls,Z=e.span,k=e.order,x=e.offset,C=e.push,M=e.pull,w=e.className,S=e.children,E=e.flex,O=e.style,P=d(e,["prefixCls","span","order","offset","push","pull","className","children","flex","style"]),N=v("col",b),T={};f.forEach((function(t){var n,i={},s=e[t];"number"===typeof s?i.span=s:"object"===(0,o.Z)(s)&&(i=s||{}),delete P[t],T=(0,r.Z)((0,r.Z)({},T),(n={},(0,a.Z)(n,"".concat(N,"-").concat(t,"-").concat(i.span),void 0!==i.span),(0,a.Z)(n,"".concat(N,"-").concat(t,"-order-").concat(i.order),i.order||0===i.order),(0,a.Z)(n,"".concat(N,"-").concat(t,"-offset-").concat(i.offset),i.offset||0===i.offset),(0,a.Z)(n,"".concat(N,"-").concat(t,"-push-").concat(i.push),i.push||0===i.push),(0,a.Z)(n,"".concat(N,"-").concat(t,"-pull-").concat(i.pull),i.pull||0===i.pull),(0,a.Z)(n,"".concat(N,"-rtl"),"rtl"===p),n))}));var B=l()(N,(n={},(0,a.Z)(n,"".concat(N,"-").concat(Z),void 0!==Z),(0,a.Z)(n,"".concat(N,"-order-").concat(k),k),(0,a.Z)(n,"".concat(N,"-offset-").concat(x),x),(0,a.Z)(n,"".concat(N,"-push-").concat(C),C),(0,a.Z)(n,"".concat(N,"-pull-").concat(M),M),n),w,T),L={};if(m&&m[0]>0){var R=m[0]/2;L.paddingLeft=R,L.paddingRight=R}if(m&&m[1]>0&&!y){var D=m[1]/2;L.paddingTop=D,L.paddingBottom=D}return E&&(L.flex=function(e){return"number"===typeof e?"".concat(e," ").concat(e," auto"):/^\d+(\.\d+)?(px|em|rem|%)$/.test(e)?"0 0 ".concat(e):e}(E),!1!==g||L.minWidth||(L.minWidth=0)),i.createElement("div",(0,r.Z)({},P,{style:(0,r.Z)((0,r.Z)({},L),O),className:B,ref:t}),S)}));v.displayName="Col";var p=v},99134:function(e,t,n){var a=(0,n(67294).createContext)({});t.Z=a},25968:function(e,t,n){n.d(t,{Z:function(){return g}});var a=n(87462),r=n(4942),o=n(71002),i=n(97685),s=n(67294),l=n(94184),u=n.n(l),c=n(59844),d=n(99134),f=n(93355),v=n(24308),p=n(98082),h=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n},m=((0,f.b)("top","middle","bottom","stretch"),(0,f.b)("start","end","center","space-around","space-between"),s.forwardRef((function(e,t){var n,l=e.prefixCls,f=e.justify,m=e.align,g=e.className,y=e.style,b=e.children,Z=e.gutter,k=void 0===Z?0:Z,x=e.wrap,C=h(e,["prefixCls","justify","align","className","style","children","gutter","wrap"]),M=s.useContext(c.E_),w=M.getPrefixCls,S=M.direction,E=s.useState({xs:!0,sm:!0,md:!0,lg:!0,xl:!0,xxl:!0}),O=(0,i.Z)(E,2),P=O[0],N=O[1],T=(0,p.Z)(),B=s.useRef(k);s.useEffect((function(){var e=v.ZP.subscribe((function(e){var t=B.current||0;(!Array.isArray(t)&&"object"===(0,o.Z)(t)||Array.isArray(t)&&("object"===(0,o.Z)(t[0])||"object"===(0,o.Z)(t[1])))&&N(e)}));return function(){return v.ZP.unsubscribe(e)}}),[]);var L=w("row",l),R=function(){var e=[0,0];return(Array.isArray(k)?k:[k,0]).forEach((function(t,n){if("object"===(0,o.Z)(t))for(var a=0;a<v.c4.length;a++){var r=v.c4[a];if(P[r]&&void 0!==t[r]){e[n]=t[r];break}}else e[n]=t||0})),e}(),D=u()(L,(n={},(0,r.Z)(n,"".concat(L,"-no-wrap"),!1===x),(0,r.Z)(n,"".concat(L,"-").concat(f),f),(0,r.Z)(n,"".concat(L,"-").concat(m),m),(0,r.Z)(n,"".concat(L,"-rtl"),"rtl"===S),n),g),F={},V=R[0]>0?R[0]/-2:void 0,H=R[1]>0?R[1]/-2:void 0;if(V&&(F.marginLeft=V,F.marginRight=V),T){var j=(0,i.Z)(R,2);F.rowGap=j[1]}else H&&(F.marginTop=H,F.marginBottom=H);var I=s.useMemo((function(){return{gutter:R,wrap:x,supportFlexGap:T}}),[R,x,T]);return s.createElement(d.Z.Provider,{value:I},s.createElement("div",(0,a.Z)({},C,{className:D,style:(0,a.Z)((0,a.Z)({},F),y),ref:t}),b))})));m.displayName="Row";var g=m},48761:function(e,t,n){n.d(t,{Z:function(){return ie}});var a=n(71002),r=n(4942),o=n(87462),i=n(97685),s=n(67294),l=n(1413),u=n(15671),c=n(43144),d=n(60136),f=n(3289),v=n(80334),p=function(e){var t,n,a=e.className,o=e.included,i=e.vertical,u=e.style,c=e.length,d=e.offset,f=e.reverse;c<0&&(f=!f,c=Math.abs(c),d=100-d);var v=i?(t={},(0,r.Z)(t,f?"top":"bottom","".concat(d,"%")),(0,r.Z)(t,f?"bottom":"top","auto"),(0,r.Z)(t,"height","".concat(c,"%")),t):(n={},(0,r.Z)(n,f?"right":"left","".concat(d,"%")),(0,r.Z)(n,f?"left":"right","auto"),(0,r.Z)(n,"width","".concat(c,"%")),n),p=(0,l.Z)((0,l.Z)({},u),v);return o?s.createElement("div",{className:a,style:p}):null},h=n(91),m=n(74902),g=n(61120);function y(e,t,n){return(y="undefined"!==typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var a=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=(0,g.Z)(e)););return e}(e,t);if(a){var r=Object.getOwnPropertyDescriptor(a,t);return r.get?r.get.call(n):r.value}})(e,t,n||e)}var b=n(64019),Z=n(94184),k=n.n(Z),x=function(e){var t=e.prefixCls,n=e.vertical,a=e.reverse,o=e.marks,i=e.dots,u=e.step,c=e.included,d=e.lowerBound,f=e.upperBound,p=e.max,h=e.min,m=e.dotStyle,g=e.activeDotStyle,y=p-h,b=function(e,t,n,a,r,o){(0,v.ZP)(!n||a>0,"`Slider[step]` should be a positive number in order to make Slider[dots] work.");var i=Object.keys(t).map(parseFloat).sort((function(e,t){return e-t}));if(n&&a)for(var s=r;s<=o;s+=a)-1===i.indexOf(s)&&i.push(s);return i}(0,o,i,u,h,p).map((function(e){var o,i="".concat(Math.abs(e-h)/y*100,"%"),u=!c&&e===f||c&&e<=f&&e>=d,v=n?(0,l.Z)((0,l.Z)({},m),{},(0,r.Z)({},a?"top":"bottom",i)):(0,l.Z)((0,l.Z)({},m),{},(0,r.Z)({},a?"right":"left",i));u&&(v=(0,l.Z)((0,l.Z)({},v),g));var p=k()((o={},(0,r.Z)(o,"".concat(t,"-dot"),!0),(0,r.Z)(o,"".concat(t,"-dot-active"),u),(0,r.Z)(o,"".concat(t,"-dot-reverse"),a),o));return s.createElement("span",{className:p,style:v,key:e})}));return s.createElement("div",{className:"".concat(t,"-step")},b)},C=function(e){var t=e.className,n=e.vertical,o=e.reverse,i=e.marks,u=e.included,c=e.upperBound,d=e.lowerBound,f=e.max,v=e.min,p=e.onClickLabel,h=Object.keys(i),m=f-v,g=h.map(parseFloat).sort((function(e,t){return e-t})).map((function(e){var f,h=i[e],g="object"===(0,a.Z)(h)&&!s.isValidElement(h),y=g?h.label:h;if(!y&&0!==y)return null;var b=!u&&e===c||u&&e<=c&&e>=d,Z=k()((f={},(0,r.Z)(f,"".concat(t,"-text"),!0),(0,r.Z)(f,"".concat(t,"-text-active"),b),f)),x=(0,r.Z)({marginBottom:"-50%"},o?"top":"bottom","".concat((e-v)/m*100,"%")),C=(0,r.Z)({transform:"translateX(".concat(o?"50%":"-50%",")"),msTransform:"translateX(".concat(o?"50%":"-50%",")")},o?"right":"left","".concat((e-v)/m*100,"%")),M=n?x:C,w=g?(0,l.Z)((0,l.Z)({},M),h.style):M;return s.createElement("span",{className:Z,style:w,key:e,onMouseDown:function(t){return p(t,e)},onTouchStart:function(t){return p(t,e)}},y)}));return s.createElement("div",{className:t},g)},M=["prefixCls","vertical","reverse","offset","style","disabled","min","max","value","tabIndex","ariaLabel","ariaLabelledBy","ariaValueTextFormatter"],w=function(e){(0,d.Z)(n,e);var t=(0,f.Z)(n);function n(){var e;(0,u.Z)(this,n);for(var a=arguments.length,r=new Array(a),o=0;o<a;o++)r[o]=arguments[o];return(e=t.call.apply(t,[this].concat(r))).state={clickFocused:!1},e.onMouseUpListener=void 0,e.handle=void 0,e.setHandleRef=function(t){e.handle=t},e.handleMouseUp=function(){document.activeElement===e.handle&&e.setClickFocus(!0)},e.handleMouseDown=function(t){t.preventDefault(),e.focus()},e.handleBlur=function(){e.setClickFocus(!1)},e.handleKeyDown=function(){e.setClickFocus(!1)},e}return(0,c.Z)(n,[{key:"componentDidMount",value:function(){this.onMouseUpListener=(0,b.Z)(document,"mouseup",this.handleMouseUp)}},{key:"componentWillUnmount",value:function(){this.onMouseUpListener&&this.onMouseUpListener.remove()}},{key:"setClickFocus",value:function(e){this.setState({clickFocused:e})}},{key:"clickFocus",value:function(){this.setClickFocus(!0),this.focus()}},{key:"focus",value:function(){this.handle.focus()}},{key:"blur",value:function(){this.handle.blur()}},{key:"render",value:function(){var e,t,n,a=this.props,i=a.prefixCls,u=a.vertical,c=a.reverse,d=a.offset,f=a.style,v=a.disabled,p=a.min,m=a.max,g=a.value,y=a.tabIndex,b=a.ariaLabel,Z=a.ariaLabelledBy,x=a.ariaValueTextFormatter,C=(0,h.Z)(a,M),w=k()(this.props.className,(0,r.Z)({},"".concat(i,"-handle-click-focused"),this.state.clickFocused)),S=u?(e={},(0,r.Z)(e,c?"top":"bottom","".concat(d,"%")),(0,r.Z)(e,c?"bottom":"top","auto"),(0,r.Z)(e,"transform",c?null:"translateY(+50%)"),e):(t={},(0,r.Z)(t,c?"right":"left","".concat(d,"%")),(0,r.Z)(t,c?"left":"right","auto"),(0,r.Z)(t,"transform","translateX(".concat(c?"+":"-","50%)")),t),E=(0,l.Z)((0,l.Z)({},f),S),O=y||0;return(v||null===y)&&(O=null),x&&(n=x(g)),s.createElement("div",(0,o.Z)({ref:this.setHandleRef,tabIndex:O},C,{className:w,style:E,onBlur:this.handleBlur,onKeyDown:this.handleKeyDown,onMouseDown:this.handleMouseDown,role:"slider","aria-valuemin":p,"aria-valuemax":m,"aria-valuenow":g,"aria-disabled":!!v,"aria-label":b,"aria-labelledby":Z,"aria-valuetext":n}))}}]),n}(s.Component),S=n(73935),E=n(15105);function O(e,t){try{return Object.keys(t).some((function(n){return e.target===(0,S.findDOMNode)(t[n])}))}catch(n){return!1}}function P(e,t){var n=t.min,a=t.max;return e<n||e>a}function N(e){return e.touches.length>1||"touchend"===e.type.toLowerCase()&&e.touches.length>0}function T(e,t){var n=t.marks,a=t.step,r=t.min,o=t.max,i=Object.keys(n).map(parseFloat);if(null!==a){var s=Math.pow(10,B(a)),l=Math.floor((o*s-r*s)/(a*s)),u=Math.min((e-r)/a,l),c=Math.round(u)*a+r;i.push(c)}var d=i.map((function(t){return Math.abs(e-t)}));return i[d.indexOf(Math.min.apply(Math,(0,m.Z)(d)))]}function B(e){var t=e.toString(),n=0;return t.indexOf(".")>=0&&(n=t.length-t.indexOf(".")-1),n}function L(e,t){return e?t.clientY:t.pageX}function R(e,t){return e?t.touches[0].clientY:t.touches[0].pageX}function D(e,t){var n=t.getBoundingClientRect();return e?n.top+.5*n.height:window.pageXOffset+n.left+.5*n.width}function F(e,t){var n=t.max,a=t.min;return e<=a?a:e>=n?n:e}function V(e,t){var n=t.step,a=isFinite(T(e,t))?T(e,t):0;return null===n?a:parseFloat(a.toFixed(B(n)))}function H(e){e.stopPropagation(),e.preventDefault()}function j(e,t,n){var a="increase",r="decrease",o=a;switch(e.keyCode){case E.Z.UP:o=t&&n?r:a;break;case E.Z.RIGHT:o=!t&&n?r:a;break;case E.Z.DOWN:o=t&&n?a:r;break;case E.Z.LEFT:o=!t&&n?a:r;break;case E.Z.END:return function(e,t){return t.max};case E.Z.HOME:return function(e,t){return t.min};case E.Z.PAGE_UP:return function(e,t){return e+2*t.step};case E.Z.PAGE_DOWN:return function(e,t){return e-2*t.step};default:return}return function(e,t){return function(e,t,n){var a={increase:function(e,t){return e+t},decrease:function(e,t){return e-t}},r=a[e](Object.keys(n.marks).indexOf(JSON.stringify(t)),1),o=Object.keys(n.marks)[r];return n.step?a[e](t,n.step):Object.keys(n.marks).length&&n.marks[o]?n.marks[o]:t}(o,e,t)}}var I=["index"];function U(){}function A(e){var t,n;return n=t=function(e){(0,d.Z)(n,e);var t=(0,f.Z)(n);function n(e){var a;(0,u.Z)(this,n),(a=t.call(this,e)).handlesRefs=void 0,a.sliderRef=void 0,a.document=void 0,a.dragOffset=void 0,a.prevMovedHandleIndex=void 0,a.onTouchMoveListener=void 0,a.onTouchUpListener=void 0,a.onMouseMoveListener=void 0,a.onMouseUpListener=void 0,a.dragTrack=void 0,a.startBounds=void 0,a.onDown=function(e,t){var n=t,r=a.props,o=r.draggableTrack,i=r.vertical,s=a.state.bounds,l=o&&a.positionGetValue&&a.positionGetValue(n)||[],u=O(e,a.handlesRefs);if(a.dragTrack=o&&s.length>=2&&!u&&!l.map((function(e,t){var n=!!t||e>=s[t];return t===l.length-1?e<=s[t]:n})).some((function(e){return!e})),a.dragTrack)a.dragOffset=n,a.startBounds=(0,m.Z)(s);else{if(u){var c=D(i,e.target);a.dragOffset=n-c,n=c}else a.dragOffset=0;a.onStart(n)}},a.onMouseDown=function(e){if(0===e.button){a.removeDocumentEvents();var t=L(a.props.vertical,e);a.onDown(e,t),a.addDocumentMouseEvents()}},a.onTouchStart=function(e){if(!N(e)){var t=R(a.props.vertical,e);a.onDown(e,t),a.addDocumentTouchEvents(),H(e)}},a.onFocus=function(e){var t=a.props,n=t.onFocus,r=t.vertical;if(O(e,a.handlesRefs)&&!a.dragTrack){var o=D(r,e.target);a.dragOffset=0,a.onStart(o),H(e),n&&n(e)}},a.onBlur=function(e){var t=a.props.onBlur;a.dragTrack||a.onEnd(),t&&t(e)},a.onMouseUp=function(){a.handlesRefs[a.prevMovedHandleIndex]&&a.handlesRefs[a.prevMovedHandleIndex].clickFocus()},a.onMouseMove=function(e){if(a.sliderRef){var t=L(a.props.vertical,e);a.onMove(e,t-a.dragOffset,a.dragTrack,a.startBounds)}else a.onEnd()},a.onTouchMove=function(e){if(!N(e)&&a.sliderRef){var t=R(a.props.vertical,e);a.onMove(e,t-a.dragOffset,a.dragTrack,a.startBounds)}else a.onEnd()},a.onKeyDown=function(e){a.sliderRef&&O(e,a.handlesRefs)&&a.onKeyboard(e)},a.onClickMarkLabel=function(e,t){e.stopPropagation(),a.onChange({value:t}),a.setState({value:t},(function(){return a.onEnd(!0)}))},a.saveSlider=function(e){a.sliderRef=e};var r=e.step,o=e.max,i=e.min,s=!isFinite(o-i)||(o-i)%r===0;return(0,v.ZP)(!r||Math.floor(r)!==r||s,"Slider[max] - Slider[min] (".concat(o-i,") should be a multiple of Slider[step] (").concat(r,")")),a.handlesRefs={},a}return(0,c.Z)(n,[{key:"componentDidMount",value:function(){this.document=this.sliderRef&&this.sliderRef.ownerDocument;var e=this.props,t=e.autoFocus,n=e.disabled;t&&!n&&this.focus()}},{key:"componentWillUnmount",value:function(){y((0,g.Z)(n.prototype),"componentWillUnmount",this)&&y((0,g.Z)(n.prototype),"componentWillUnmount",this).call(this),this.removeDocumentEvents()}},{key:"getSliderStart",value:function(){var e=this.sliderRef,t=this.props,n=t.vertical,a=t.reverse,r=e.getBoundingClientRect();return n?a?r.bottom:r.top:window.pageXOffset+(a?r.right:r.left)}},{key:"getSliderLength",value:function(){var e=this.sliderRef;if(!e)return 0;var t=e.getBoundingClientRect();return this.props.vertical?t.height:t.width}},{key:"addDocumentTouchEvents",value:function(){this.onTouchMoveListener=(0,b.Z)(this.document,"touchmove",this.onTouchMove),this.onTouchUpListener=(0,b.Z)(this.document,"touchend",this.onEnd)}},{key:"addDocumentMouseEvents",value:function(){this.onMouseMoveListener=(0,b.Z)(this.document,"mousemove",this.onMouseMove),this.onMouseUpListener=(0,b.Z)(this.document,"mouseup",this.onEnd)}},{key:"removeDocumentEvents",value:function(){this.onTouchMoveListener&&this.onTouchMoveListener.remove(),this.onTouchUpListener&&this.onTouchUpListener.remove(),this.onMouseMoveListener&&this.onMouseMoveListener.remove(),this.onMouseUpListener&&this.onMouseUpListener.remove()}},{key:"focus",value:function(){var e;this.props.disabled||null===(e=this.handlesRefs[0])||void 0===e||e.focus()}},{key:"blur",value:function(){var e=this;this.props.disabled||Object.keys(this.handlesRefs).forEach((function(t){var n,a;null===(n=e.handlesRefs[t])||void 0===n||null===(a=n.blur)||void 0===a||a.call(n)}))}},{key:"calcValue",value:function(e){var t=this.props,n=t.vertical,a=t.min,r=t.max,o=Math.abs(Math.max(e,0)/this.getSliderLength());return n?(1-o)*(r-a)+a:o*(r-a)+a}},{key:"calcValueByPos",value:function(e){var t=(this.props.reverse?-1:1)*(e-this.getSliderStart());return this.trimAlignValue(this.calcValue(t))}},{key:"calcOffset",value:function(e){var t=this.props,n=t.min,a=(e-n)/(t.max-n);return Math.max(0,100*a)}},{key:"saveHandle",value:function(e,t){this.handlesRefs[e]=t}},{key:"render",value:function(){var e,t=this.props,a=t.prefixCls,o=t.className,i=t.marks,u=t.dots,c=t.step,d=t.included,f=t.disabled,v=t.vertical,p=t.reverse,h=t.min,m=t.max,b=t.children,Z=t.maximumTrackStyle,M=t.style,w=t.railStyle,S=t.dotStyle,E=t.activeDotStyle,O=y((0,g.Z)(n.prototype),"render",this).call(this),P=O.tracks,N=O.handles,T=k()(a,(e={},(0,r.Z)(e,"".concat(a,"-with-marks"),Object.keys(i).length),(0,r.Z)(e,"".concat(a,"-disabled"),f),(0,r.Z)(e,"".concat(a,"-vertical"),v),(0,r.Z)(e,o,o),e));return s.createElement("div",{ref:this.saveSlider,className:T,onTouchStart:f?U:this.onTouchStart,onMouseDown:f?U:this.onMouseDown,onMouseUp:f?U:this.onMouseUp,onKeyDown:f?U:this.onKeyDown,onFocus:f?U:this.onFocus,onBlur:f?U:this.onBlur,style:M},s.createElement("div",{className:"".concat(a,"-rail"),style:(0,l.Z)((0,l.Z)({},Z),w)}),P,s.createElement(x,{prefixCls:a,vertical:v,reverse:p,marks:i,dots:u,step:c,included:d,lowerBound:this.getLowerBound(),upperBound:this.getUpperBound(),max:m,min:h,dotStyle:S,activeDotStyle:E}),N,s.createElement(C,{className:"".concat(a,"-mark"),onClickLabel:f?U:this.onClickMarkLabel,vertical:v,marks:i,included:d,lowerBound:this.getLowerBound(),upperBound:this.getUpperBound(),max:m,min:h,reverse:p}),b)}}]),n}(e),t.displayName="ComponentEnhancer(".concat(e.displayName,")"),t.defaultProps=(0,l.Z)((0,l.Z)({},e.defaultProps),{},{prefixCls:"rc-slider",className:"",min:0,max:100,step:1,marks:{},handle:function(e){var t=e.index,n=(0,h.Z)(e,I);return delete n.dragging,null===n.value?null:s.createElement(w,(0,o.Z)({},n,{key:t}))},onBeforeChange:U,onChange:U,onAfterChange:U,included:!0,disabled:!1,dots:!1,vertical:!1,reverse:!1,trackStyle:[{}],handleStyle:[{}],railStyle:{},dotStyle:{},activeDotStyle:{}}),n}var G=A(function(e){(0,d.Z)(n,e);var t=(0,f.Z)(n);function n(e){var a;(0,u.Z)(this,n),(a=t.call(this,e)).positionGetValue=function(e){return[]},a.startValue=void 0,a.startPosition=void 0,a.prevMovedHandleIndex=void 0,a.onEnd=function(e){var t=a.state.dragging;a.removeDocumentEvents(),(t||e)&&a.props.onAfterChange(a.getValue()),a.setState({dragging:!1})};var r=void 0!==e.defaultValue?e.defaultValue:e.min,o=void 0!==e.value?e.value:r;return a.state={value:a.trimAlignValue(o),dragging:!1},(0,v.ZP)(!("minimumTrackStyle"in e),"minimumTrackStyle will be deprecated, please use trackStyle instead."),(0,v.ZP)(!("maximumTrackStyle"in e),"maximumTrackStyle will be deprecated, please use railStyle instead."),a}return(0,c.Z)(n,[{key:"calcValueByPos",value:function(e){return 0}},{key:"calcOffset",value:function(e){return 0}},{key:"saveHandle",value:function(e,t){}},{key:"removeDocumentEvents",value:function(){}},{key:"componentDidUpdate",value:function(e,t){var n=this.props,a=n.min,r=n.max,o=n.value,i=n.onChange;if("min"in this.props||"max"in this.props){var s=void 0!==o?o:t.value,l=this.trimAlignValue(s,this.props);l!==t.value&&(this.setState({value:l}),a===e.min&&r===e.max||!P(s,this.props)||i(l))}}},{key:"onChange",value:function(e){var t=this.props,n=!("value"in t),a=e.value>this.props.max?(0,l.Z)((0,l.Z)({},e),{},{value:this.props.max}):e;n&&this.setState(a);var r=a.value;t.onChange(r)}},{key:"onStart",value:function(e){this.setState({dragging:!0});var t=this.props,n=this.getValue();t.onBeforeChange(n);var a=this.calcValueByPos(e);this.startValue=a,this.startPosition=e,a!==n&&(this.prevMovedHandleIndex=0,this.onChange({value:a}))}},{key:"onMove",value:function(e,t){H(e);var n=this.state.value,a=this.calcValueByPos(t);a!==n&&this.onChange({value:a})}},{key:"onKeyboard",value:function(e){var t=this.props,n=t.reverse,a=j(e,t.vertical,n);if(a){H(e);var r=this.state.value,o=a(r,this.props),i=this.trimAlignValue(o);if(i===r)return;this.onChange({value:i}),this.props.onAfterChange(i),this.onEnd()}}},{key:"getValue",value:function(){return this.state.value}},{key:"getLowerBound",value:function(){var e=this.props.startPoint||this.props.min;return this.state.value>e?e:this.state.value}},{key:"getUpperBound",value:function(){return this.state.value<this.props.startPoint?this.props.startPoint:this.state.value}},{key:"trimAlignValue",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(null===e)return null;var n=(0,l.Z)((0,l.Z)({},this.props),t),a=F(e,n);return V(a,n)}},{key:"render",value:function(){var e=this,t=this.props,n=t.prefixCls,a=t.vertical,r=t.included,o=t.disabled,i=t.minimumTrackStyle,u=t.trackStyle,c=t.handleStyle,d=t.tabIndex,f=t.ariaLabelForHandle,v=t.ariaLabelledByForHandle,h=t.ariaValueTextFormatterForHandle,m=t.min,g=t.max,y=t.startPoint,b=t.reverse,Z=t.handle,k=this.state,x=k.value,C=k.dragging,M=this.calcOffset(x),w=Z({className:"".concat(n,"-handle"),prefixCls:n,vertical:a,offset:M,value:x,dragging:C,disabled:o,min:m,max:g,reverse:b,index:0,tabIndex:d,ariaLabel:f,ariaLabelledBy:v,ariaValueTextFormatter:h,style:c[0]||c,ref:function(t){return e.saveHandle(0,t)}}),S=void 0!==y?this.calcOffset(y):0,E=u[0]||u;return{tracks:s.createElement(p,{className:"".concat(n,"-track"),vertical:a,included:r,offset:S,reverse:b,length:M-S,style:(0,l.Z)((0,l.Z)({},i),E)}),handles:w}}}]),n}(s.Component)),_=function(e){var t=e.value,n=e.handle,a=e.bounds,r=e.props,o=r.allowCross,i=r.pushable,s=Number(i),l=F(t,r),u=l;return o||null==n||void 0===a||(n>0&&l<=a[n-1]+s&&(u=a[n-1]+s),n<a.length-1&&l>=a[n+1]-s&&(u=a[n+1]-s)),V(u,r)},K=function(e){(0,d.Z)(n,e);var t=(0,f.Z)(n);function n(e){var a;(0,u.Z)(this,n),(a=t.call(this,e)).startValue=void 0,a.startPosition=void 0,a.prevMovedHandleIndex=void 0,a.internalPointsCache=void 0,a.handlesRefs=void 0,a.dragTrack=void 0,a.positionGetValue=function(e){var t=a.getValue(),n=a.calcValueByPos(e),r=a.getClosestBound(n),o=a.getBoundNeedMoving(n,r);if(n===t[o])return null;var i=(0,m.Z)(t);return i[o]=n,i},a.onEnd=function(e){var t=a.state.handle;a.removeDocumentEvents(),t||(a.dragTrack=!1),(null!==t||e)&&a.props.onAfterChange(a.getValue()),a.setState({handle:null})};var r=e.count,o=e.min,i=e.max,s=Array.apply(void 0,(0,m.Z)(Array(r+1))).map((function(){return o})),l="defaultValue"in e?e.defaultValue:s,c=(void 0!==e.value?e.value:l).map((function(t,n){return _({value:t,handle:n,props:e})})),d=c[0]===i?0:c.length-1;return a.state={handle:null,recent:d,bounds:c},a}return(0,c.Z)(n,[{key:"calcValueByPos",value:function(e){return 0}},{key:"getSliderLength",value:function(){return 0}},{key:"calcOffset",value:function(e){return 0}},{key:"saveHandle",value:function(e,t){}},{key:"removeDocumentEvents",value:function(){}},{key:"componentDidUpdate",value:function(e,t){var n=this,a=this.props,r=a.onChange,o=a.value,i=a.min,s=a.max;if(("min"in this.props||"max"in this.props)&&(i!==e.min||s!==e.max)){var l=o||t.bounds;if(l.some((function(e){return P(e,n.props)})))r(l.map((function(e){return F(e,n.props)})))}}},{key:"onChange",value:function(e){var t=this.props;if(!("value"in t))this.setState(e);else{var n={};["handle","recent"].forEach((function(t){void 0!==e[t]&&(n[t]=e[t])})),Object.keys(n).length&&this.setState(n)}var a=(0,l.Z)((0,l.Z)({},this.state),e).bounds;t.onChange(a)}},{key:"onStart",value:function(e){var t=this.props,n=this.state,a=this.getValue();t.onBeforeChange(a);var r=this.calcValueByPos(e);this.startValue=r,this.startPosition=e;var o=this.getClosestBound(r);if(this.prevMovedHandleIndex=this.getBoundNeedMoving(r,o),this.setState({handle:this.prevMovedHandleIndex,recent:this.prevMovedHandleIndex}),r!==a[this.prevMovedHandleIndex]){var i=(0,m.Z)(n.bounds);i[this.prevMovedHandleIndex]=r,this.onChange({bounds:i})}}},{key:"onMove",value:function(e,t,n,a){H(e);var r=this.state,o=this.props,i=o.max||100,s=o.min||0;if(n){var l=o.vertical?-t:t;l=o.reverse?-l:l;var u=i-Math.max.apply(Math,(0,m.Z)(a)),c=s-Math.min.apply(Math,(0,m.Z)(a)),d=Math.min(Math.max(l/(this.getSliderLength()/(i-s)),c),u),f=a.map((function(e){return Math.floor(Math.max(Math.min(e+d,i),s))}));r.bounds.map((function(e,t){return e===f[t]})).some((function(e){return!e}))&&this.onChange({bounds:f})}else{var v=this.calcValueByPos(t);v!==r.bounds[r.handle]&&this.moveTo(v)}}},{key:"onKeyboard",value:function(e){var t=this.props,n=t.reverse,a=j(e,t.vertical,n);if(a){H(e);var r=this.state,o=this.props,i=r.bounds,s=r.handle,l=i[null===s?r.recent:s],u=a(l,o),c=_({value:u,handle:s,bounds:r.bounds,props:o});if(c===l)return;this.moveTo(c,!0)}}},{key:"getValue",value:function(){return this.state.bounds}},{key:"getClosestBound",value:function(e){for(var t=this.state.bounds,n=0,a=1;a<t.length-1;a+=1)e>=t[a]&&(n=a);return Math.abs(t[n+1]-e)<Math.abs(t[n]-e)&&(n+=1),n}},{key:"getBoundNeedMoving",value:function(e,t){var n=this.state,a=n.bounds,r=n.recent,o=t,i=a[t+1]===a[t];return i&&a[r]===a[t]&&(o=r),i&&e!==a[t+1]&&(o=e<a[t+1]?t:t+1),o}},{key:"getLowerBound",value:function(){return this.state.bounds[0]}},{key:"getUpperBound",value:function(){var e=this.state.bounds;return e[e.length-1]}},{key:"getPoints",value:function(){var e=this.props,t=e.marks,n=e.step,a=e.min,r=e.max,o=this.internalPointsCache;if(!o||o.marks!==t||o.step!==n){var i=(0,l.Z)({},t);if(null!==n)for(var s=a;s<=r;s+=n)i[s]=s;var u=Object.keys(i).map(parseFloat);u.sort((function(e,t){return e-t})),this.internalPointsCache={marks:t,step:n,points:u}}return this.internalPointsCache.points}},{key:"moveTo",value:function(e,t){var n=this,a=this.state,r=this.props,o=(0,m.Z)(a.bounds),i=null===a.handle?a.recent:a.handle;o[i]=e;var s=i;!1!==r.pushable?this.pushSurroundingHandles(o,s):r.allowCross&&(o.sort((function(e,t){return e-t})),s=o.indexOf(e)),this.onChange({recent:s,handle:s,bounds:o}),t&&(this.props.onAfterChange(o),this.setState({},(function(){n.handlesRefs[s].focus()})),this.onEnd())}},{key:"pushSurroundingHandles",value:function(e,t){var n=e[t],a=this.props.pushable,r=Number(a),o=0;if(e[t+1]-n<r&&(o=1),n-e[t-1]<r&&(o=-1),0!==o){var i=t+o,s=o*(e[i]-n);this.pushHandle(e,i,o,r-s)||(e[t]=e[i]-o*r)}}},{key:"pushHandle",value:function(e,t,n,a){for(var r=e[t],o=e[t];n*(o-r)<a;){if(!this.pushHandleOnePoint(e,t,n))return e[t]=r,!1;o=e[t]}return!0}},{key:"pushHandleOnePoint",value:function(e,t,n){var a=this.getPoints(),r=a.indexOf(e[t])+n;if(r>=a.length||r<0)return!1;var o=t+n,i=a[r],s=this.props.pushable,l=Number(s),u=n*(e[o]-i);return!!this.pushHandle(e,o,n,l-u)&&(e[t]=i,!0)}},{key:"trimAlignValue",value:function(e){var t=this.state,n=t.handle,a=t.bounds;return _({value:e,handle:n,bounds:a,props:this.props})}},{key:"render",value:function(){var e=this,t=this.state,n=t.handle,a=t.bounds,o=this.props,i=o.prefixCls,l=o.vertical,u=o.included,c=o.disabled,d=o.min,f=o.max,v=o.reverse,h=o.handle,m=o.trackStyle,g=o.handleStyle,y=o.tabIndex,b=o.ariaLabelGroupForHandles,Z=o.ariaLabelledByGroupForHandles,x=o.ariaValueTextFormatterGroupForHandles,C=a.map((function(t){return e.calcOffset(t)})),M="".concat(i,"-handle"),w=a.map((function(t,a){var o,s=y[a]||0;(c||null===y[a])&&(s=null);var u=n===a;return h({className:k()((o={},(0,r.Z)(o,M,!0),(0,r.Z)(o,"".concat(M,"-").concat(a+1),!0),(0,r.Z)(o,"".concat(M,"-dragging"),u),o)),prefixCls:i,vertical:l,dragging:u,offset:C[a],value:t,index:a,tabIndex:s,min:d,max:f,reverse:v,disabled:c,style:g[a],ref:function(t){return e.saveHandle(a,t)},ariaLabel:b[a],ariaLabelledBy:Z[a],ariaValueTextFormatter:x[a]})}));return{tracks:a.slice(0,-1).map((function(e,t){var n,a=t+1,o=k()((n={},(0,r.Z)(n,"".concat(i,"-track"),!0),(0,r.Z)(n,"".concat(i,"-track-").concat(a),!0),n));return s.createElement(p,{className:o,vertical:l,reverse:v,included:u,offset:C[a-1],length:C[a]-C[a-1],style:m[t],key:a})})),handles:w}}}],[{key:"getDerivedStateFromProps",value:function(e,t){if(!("value"in e||"min"in e||"max"in e))return null;var n=e.value||t.bounds,a=n.map((function(n,a){return _({value:n,handle:a,bounds:t.bounds,props:e})}));if(t.bounds.length===a.length){if(a.every((function(e,n){return e===t.bounds[n]})))return null}else a=n.map((function(t,n){return _({value:t,handle:n,props:e})}));return(0,l.Z)((0,l.Z)({},t),{},{bounds:a})}}]),n}(s.Component);K.displayName="Range",K.defaultProps={count:1,allowCross:!0,pushable:!1,draggableTrack:!1,tabIndex:[],ariaLabelGroupForHandles:[],ariaLabelledByGroupForHandles:[],ariaValueTextFormatterGroupForHandles:[]};var W=A(K),X=n(22972),z=n(42550),Y=n(75164),Q=s.forwardRef((function(e,t){var n=e.visible,a=e.overlay,r=s.useRef(null),i=(0,z.sQ)(t,r),l=s.useRef(null);function u(){Y.Z.cancel(l.current)}return s.useEffect((function(){return n?l.current=(0,Y.Z)((function(){var e;null===(e=r.current)||void 0===e||e.forcePopupAlign()})):u(),u}),[n,a]),s.createElement(X.default,(0,o.Z)({ref:i},e))})),J=["value","dragging","index","disabled"],$=["prefixCls","overlay","placement","visible"];var q=G;q.Range=W,q.Handle=w,q.createSliderWithTooltip=function(e){var t,n;return n=t=function(t){(0,d.Z)(a,t);var n=(0,f.Z)(a);function a(){var e;(0,u.Z)(this,a);for(var t=arguments.length,i=new Array(t),c=0;c<t;c++)i[c]=arguments[c];return(e=n.call.apply(n,[this].concat(i))).state={visibles:{}},e.handleTooltipVisibleChange=function(t,n){e.setState((function(e){return{visibles:(0,l.Z)((0,l.Z)({},e.visibles),{},(0,r.Z)({},t,n))}}))},e.handleWithTooltip=function(t){var n,a=t.value,r=t.dragging,i=t.index,u=t.disabled,c=(0,h.Z)(t,J),d=e.props,f=d.tipFormatter,v=d.tipProps,p=d.handleStyle,m=d.getTooltipContainer,g=v.prefixCls,y=void 0===g?"rc-slider-tooltip":g,b=v.overlay,Z=void 0===b?f(a):b,k=v.placement,x=void 0===k?"top":k,C=v.visible,M=void 0!==C&&C,S=(0,h.Z)(v,$);return n=Array.isArray(p)?p[i]||p[0]:p,s.createElement(Q,(0,o.Z)({},S,{getTooltipContainer:m,prefixCls:y,overlay:Z,placement:x,visible:!u&&(e.state.visibles[i]||r)||M,key:i}),s.createElement(w,(0,o.Z)({},c,{style:(0,l.Z)({},n),value:a,onMouseEnter:function(){return e.handleTooltipVisibleChange(i,!0)},onMouseLeave:function(){return e.handleTooltipVisibleChange(i,!1)}})))},e}return(0,c.Z)(a,[{key:"render",value:function(){return s.createElement(e,(0,o.Z)({},this.props,{handle:this.handleWithTooltip}))}}]),a}(s.Component),t.defaultProps={tipFormatter:function(e){return e},handleStyle:[{}],tipProps:{},getTooltipContainer:function(e){return e.parentNode}},n};var ee=q,te=n(56266),ne=s.forwardRef((function(e,t){var n=e.visible,a=(0,s.useRef)(null),r=(0,s.useRef)(null);function i(){Y.Z.cancel(r.current),r.current=null}return s.useEffect((function(){return n?r.current=(0,Y.Z)((function(){var e;null===(e=a.current)||void 0===e||e.forcePopupAlign(),r.current=null})):i(),i}),[n,e.title]),s.createElement(te.Z,(0,o.Z)({ref:(0,z.sQ)(a,t)},e))})),ae=n(59844),re=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n},oe=s.forwardRef((function(e,t){var n,l=s.useContext(ae.E_),u=l.getPrefixCls,c=l.direction,d=l.getPopupContainer,f=s.useState({}),v=(0,i.Z)(f,2),p=v[0],h=v[1],m=function(e,t){h((function(n){return(0,o.Z)((0,o.Z)({},n),(0,r.Z)({},e,t))}))},g=function(e,t){return e||(t?"rtl"===c?"left":"right":"top")},y=function(t){var n=t.tooltipPrefixCls,a=t.prefixCls,r=t.info,i=r.value,l=r.dragging,c=r.index,f=re(r,["value","dragging","index"]),v=e.tipFormatter,h=e.tooltipVisible,y=e.tooltipPlacement,b=e.getTooltipPopupContainer,Z=e.vertical,k=!!v&&(p[c]||l),x=h||void 0===h&&k,C=u();return s.createElement(ne,{prefixCls:n,title:v?v(i):"",visible:x,placement:g(y,Z),transitionName:"".concat(C,"-zoom-down"),key:c,overlayClassName:"".concat(a,"-tooltip"),getPopupContainer:b||d},s.createElement(w,(0,o.Z)({},f,{value:i,onMouseEnter:function(){return m(c,!0)},onMouseLeave:function(){return m(c,!1)}})))},b=e.prefixCls,Z=e.tooltipPrefixCls,x=e.range,C=e.className,M=re(e,["prefixCls","tooltipPrefixCls","range","className"]),S=u("slider",b),E=u("tooltip",Z),O=k()(C,(0,r.Z)({},"".concat(S,"-rtl"),"rtl"===c));return"rtl"!==c||M.vertical||(M.reverse=!M.reverse),"object"===(0,a.Z)(x)&&(n=x.draggableTrack),x?s.createElement(W,(0,o.Z)({},M,{step:M.step,draggableTrack:n,className:O,ref:t,handle:function(e){return y({tooltipPrefixCls:E,prefixCls:S,info:e})},prefixCls:S})):s.createElement(ee,(0,o.Z)({},M,{step:M.step,className:O,ref:t,handle:function(e){return y({tooltipPrefixCls:E,prefixCls:S,info:e})},prefixCls:S}))}));oe.displayName="Slider",oe.defaultProps={tipFormatter:function(e){return"number"===typeof e?e.toString():""}};var ie=oe},94594:function(e,t,n){n.d(t,{Z:function(){return k}});var a=n(87462),r=n(4942),o=n(67294),i=n(97685),s=n(91),l=n(94184),u=n.n(l),c=n(21770),d=n(15105),f=o.forwardRef((function(e,t){var n,a=e.prefixCls,l=void 0===a?"rc-switch":a,f=e.className,v=e.checked,p=e.defaultChecked,h=e.disabled,m=e.loadingIcon,g=e.checkedChildren,y=e.unCheckedChildren,b=e.onClick,Z=e.onChange,k=e.onKeyDown,x=(0,s.Z)(e,["prefixCls","className","checked","defaultChecked","disabled","loadingIcon","checkedChildren","unCheckedChildren","onClick","onChange","onKeyDown"]),C=(0,c.Z)(!1,{value:v,defaultValue:p}),M=(0,i.Z)(C,2),w=M[0],S=M[1];function E(e,t){var n=w;return h||(S(n=e),null===Z||void 0===Z||Z(n,t)),n}var O=u()(l,f,(n={},(0,r.Z)(n,"".concat(l,"-checked"),w),(0,r.Z)(n,"".concat(l,"-disabled"),h),n));return o.createElement("button",Object.assign({},x,{type:"button",role:"switch","aria-checked":w,disabled:h,className:O,ref:t,onKeyDown:function(e){e.which===d.Z.LEFT?E(!1,e):e.which===d.Z.RIGHT&&E(!0,e),null===k||void 0===k||k(e)},onClick:function(e){var t=E(!w,e);null===b||void 0===b||b(t,e)}}),m,o.createElement("span",{className:"".concat(l,"-inner")},w?g:y))}));f.displayName="Switch";var v=f,p=n(50888),h=n(97202),m=n(59844),g=n(97647),y=n(21687),b=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n},Z=o.forwardRef((function(e,t){var n,i=e.prefixCls,s=e.size,l=e.loading,c=e.className,d=void 0===c?"":c,f=e.disabled,Z=b(e,["prefixCls","size","loading","className","disabled"]);(0,y.Z)("checked"in Z||!("value"in Z),"Switch","`value` is not a valid prop, do you mean `checked`?");var k=o.useContext(m.E_),x=k.getPrefixCls,C=k.direction,M=o.useContext(g.Z),w=x("switch",i),S=o.createElement("div",{className:"".concat(w,"-handle")},l&&o.createElement(p.Z,{className:"".concat(w,"-loading-icon")})),E=u()((n={},(0,r.Z)(n,"".concat(w,"-small"),"small"===(s||M)),(0,r.Z)(n,"".concat(w,"-loading"),l),(0,r.Z)(n,"".concat(w,"-rtl"),"rtl"===C),n),d);return o.createElement(h.Z,{insertExtraNode:!0},o.createElement(v,(0,a.Z)({},Z,{prefixCls:w,className:E,disabled:f||l,ref:t,loadingIcon:S})))}));Z.__ANT_SWITCH=!0,Z.displayName="Switch";var k=Z}}]); \ No newline at end of file
diff --git a/static/admin/_next/static/chunks/674-fd7f35cd345c7a4b.js b/static/admin/_next/static/chunks/674-fd7f35cd345c7a4b.js
new file mode 100644
index 000000000..c7c8ced2c
--- /dev/null
+++ b/static/admin/_next/static/chunks/674-fd7f35cd345c7a4b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[674],{24308:function(e,t,n){n.d(t,{c4:function(){return o}});var c=n(4942),r=n(87462),o=["xxl","xl","lg","md","sm","xs"],a={xs:"(max-width: 575px)",sm:"(min-width: 576px)",md:"(min-width: 768px)",lg:"(min-width: 992px)",xl:"(min-width: 1200px)",xxl:"(min-width: 1600px)"},l=new Map,i=-1,s={},u={matchHandlers:{},dispatch:function(e){return s=e,l.forEach((function(e){return e(s)})),l.size>=1},subscribe:function(e){return l.size||this.register(),i+=1,l.set(i,e),e(s),i},unsubscribe:function(e){l.delete(e),l.size||this.unregister()},unregister:function(){var e=this;Object.keys(a).forEach((function(t){var n=a[t],c=e.matchHandlers[n];null===c||void 0===c||c.mql.removeListener(null===c||void 0===c?void 0:c.listener)})),l.clear()},register:function(){var e=this;Object.keys(a).forEach((function(t){var n=a[t],o=function(n){var o=n.matches;e.dispatch((0,r.Z)((0,r.Z)({},s),(0,c.Z)({},t,o)))},l=window.matchMedia(n);l.addListener(o),e.matchHandlers[n]={mql:l,listener:o},o(l)}))}};t.ZP=u},6226:function(e,t,n){n.d(t,{Z:function(){return m}});var c=n(4942),r=n(87462),o=n(71002),a=n(67294),l=n(94184),i=n.n(l),s=n(99134),u=n(59844),f=function(e,t){var n={};for(var c in e)Object.prototype.hasOwnProperty.call(e,c)&&t.indexOf(c)<0&&(n[c]=e[c]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(c=Object.getOwnPropertySymbols(e);r<c.length;r++)t.indexOf(c[r])<0&&Object.prototype.propertyIsEnumerable.call(e,c[r])&&(n[c[r]]=e[c[r]])}return n};var d=["xs","sm","md","lg","xl","xxl"],p=a.forwardRef((function(e,t){var n,l=a.useContext(u.E_),p=l.getPrefixCls,m=l.direction,h=a.useContext(s.Z),v=h.gutter,b=h.wrap,y=h.supportFlexGap,Z=e.prefixCls,x=e.span,g=e.order,C=e.offset,w=e.push,O=e.pull,E=e.className,k=e.children,j=e.flex,N=e.style,P=f(e,["prefixCls","span","order","offset","push","pull","className","children","flex","style"]),S=p("col",Z),I={};d.forEach((function(t){var n,a={},l=e[t];"number"===typeof l?a.span=l:"object"===(0,o.Z)(l)&&(a=l||{}),delete P[t],I=(0,r.Z)((0,r.Z)({},I),(n={},(0,c.Z)(n,"".concat(S,"-").concat(t,"-").concat(a.span),void 0!==a.span),(0,c.Z)(n,"".concat(S,"-").concat(t,"-order-").concat(a.order),a.order||0===a.order),(0,c.Z)(n,"".concat(S,"-").concat(t,"-offset-").concat(a.offset),a.offset||0===a.offset),(0,c.Z)(n,"".concat(S,"-").concat(t,"-push-").concat(a.push),a.push||0===a.push),(0,c.Z)(n,"".concat(S,"-").concat(t,"-pull-").concat(a.pull),a.pull||0===a.pull),(0,c.Z)(n,"".concat(S,"-rtl"),"rtl"===m),n))}));var R=i()(S,(n={},(0,c.Z)(n,"".concat(S,"-").concat(x),void 0!==x),(0,c.Z)(n,"".concat(S,"-order-").concat(g),g),(0,c.Z)(n,"".concat(S,"-offset-").concat(C),C),(0,c.Z)(n,"".concat(S,"-push-").concat(w),w),(0,c.Z)(n,"".concat(S,"-pull-").concat(O),O),n),E,I),_={};if(v&&v[0]>0){var T=v[0]/2;_.paddingLeft=T,_.paddingRight=T}if(v&&v[1]>0&&!y){var A=v[1]/2;_.paddingTop=A,_.paddingBottom=A}return j&&(_.flex=function(e){return"number"===typeof e?"".concat(e," ").concat(e," auto"):/^\d+(\.\d+)?(px|em|rem|%)$/.test(e)?"0 0 ".concat(e):e}(j),!1!==b||_.minWidth||(_.minWidth=0)),a.createElement("div",(0,r.Z)({},P,{style:(0,r.Z)((0,r.Z)({},_),N),className:R,ref:t}),k)}));p.displayName="Col";var m=p},99134:function(e,t,n){var c=(0,n(67294).createContext)({});t.Z=c},25968:function(e,t,n){n.d(t,{Z:function(){return b}});var c=n(87462),r=n(4942),o=n(71002),a=n(97685),l=n(67294),i=n(94184),s=n.n(i),u=n(59844),f=n(99134),d=n(93355),p=n(24308),m=n(98082),h=function(e,t){var n={};for(var c in e)Object.prototype.hasOwnProperty.call(e,c)&&t.indexOf(c)<0&&(n[c]=e[c]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(c=Object.getOwnPropertySymbols(e);r<c.length;r++)t.indexOf(c[r])<0&&Object.prototype.propertyIsEnumerable.call(e,c[r])&&(n[c[r]]=e[c[r]])}return n},v=((0,d.b)("top","middle","bottom","stretch"),(0,d.b)("start","end","center","space-around","space-between"),l.forwardRef((function(e,t){var n,i=e.prefixCls,d=e.justify,v=e.align,b=e.className,y=e.style,Z=e.children,x=e.gutter,g=void 0===x?0:x,C=e.wrap,w=h(e,["prefixCls","justify","align","className","style","children","gutter","wrap"]),O=l.useContext(u.E_),E=O.getPrefixCls,k=O.direction,j=l.useState({xs:!0,sm:!0,md:!0,lg:!0,xl:!0,xxl:!0}),N=(0,a.Z)(j,2),P=N[0],S=N[1],I=(0,m.Z)(),R=l.useRef(g);l.useEffect((function(){var e=p.ZP.subscribe((function(e){var t=R.current||0;(!Array.isArray(t)&&"object"===(0,o.Z)(t)||Array.isArray(t)&&("object"===(0,o.Z)(t[0])||"object"===(0,o.Z)(t[1])))&&S(e)}));return function(){return p.ZP.unsubscribe(e)}}),[]);var _=E("row",i),T=function(){var e=[0,0];return(Array.isArray(g)?g:[g,0]).forEach((function(t,n){if("object"===(0,o.Z)(t))for(var c=0;c<p.c4.length;c++){var r=p.c4[c];if(P[r]&&void 0!==t[r]){e[n]=t[r];break}}else e[n]=t||0})),e}(),A=s()(_,(n={},(0,r.Z)(n,"".concat(_,"-no-wrap"),!1===C),(0,r.Z)(n,"".concat(_,"-").concat(d),d),(0,r.Z)(n,"".concat(_,"-").concat(v),v),(0,r.Z)(n,"".concat(_,"-rtl"),"rtl"===k),n),b),z={},H=T[0]>0?T[0]/-2:void 0,L=T[1]>0?T[1]/-2:void 0;if(H&&(z.marginLeft=H,z.marginRight=H),I){var F=(0,a.Z)(T,2);z.rowGap=F[1]}else L&&(z.marginTop=L,z.marginBottom=L);var G=l.useMemo((function(){return{gutter:T,wrap:C,supportFlexGap:I}}),[T,C,I]);return l.createElement(f.Z.Provider,{value:G},l.createElement("div",(0,c.Z)({},w,{className:A,style:(0,c.Z)((0,c.Z)({},z),y),ref:t}),Z))})));v.displayName="Row";var b=v},94594:function(e,t,n){n.d(t,{Z:function(){return g}});var c=n(87462),r=n(4942),o=n(67294),a=n(97685),l=n(91),i=n(94184),s=n.n(i),u=n(21770),f=n(15105),d=o.forwardRef((function(e,t){var n,c=e.prefixCls,i=void 0===c?"rc-switch":c,d=e.className,p=e.checked,m=e.defaultChecked,h=e.disabled,v=e.loadingIcon,b=e.checkedChildren,y=e.unCheckedChildren,Z=e.onClick,x=e.onChange,g=e.onKeyDown,C=(0,l.Z)(e,["prefixCls","className","checked","defaultChecked","disabled","loadingIcon","checkedChildren","unCheckedChildren","onClick","onChange","onKeyDown"]),w=(0,u.Z)(!1,{value:p,defaultValue:m}),O=(0,a.Z)(w,2),E=O[0],k=O[1];function j(e,t){var n=E;return h||(k(n=e),null===x||void 0===x||x(n,t)),n}var N=s()(i,d,(n={},(0,r.Z)(n,"".concat(i,"-checked"),E),(0,r.Z)(n,"".concat(i,"-disabled"),h),n));return o.createElement("button",Object.assign({},C,{type:"button",role:"switch","aria-checked":E,disabled:h,className:N,ref:t,onKeyDown:function(e){e.which===f.Z.LEFT?j(!1,e):e.which===f.Z.RIGHT&&j(!0,e),null===g||void 0===g||g(e)},onClick:function(e){var t=j(!E,e);null===Z||void 0===Z||Z(t,e)}}),v,o.createElement("span",{className:"".concat(i,"-inner")},E?b:y))}));d.displayName="Switch";var p=d,m=n(50888),h=n(97202),v=n(59844),b=n(97647),y=n(21687),Z=function(e,t){var n={};for(var c in e)Object.prototype.hasOwnProperty.call(e,c)&&t.indexOf(c)<0&&(n[c]=e[c]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(c=Object.getOwnPropertySymbols(e);r<c.length;r++)t.indexOf(c[r])<0&&Object.prototype.propertyIsEnumerable.call(e,c[r])&&(n[c[r]]=e[c[r]])}return n},x=o.forwardRef((function(e,t){var n,a=e.prefixCls,l=e.size,i=e.loading,u=e.className,f=void 0===u?"":u,d=e.disabled,x=Z(e,["prefixCls","size","loading","className","disabled"]);(0,y.Z)("checked"in x||!("value"in x),"Switch","`value` is not a valid prop, do you mean `checked`?");var g=o.useContext(v.E_),C=g.getPrefixCls,w=g.direction,O=o.useContext(b.Z),E=C("switch",a),k=o.createElement("div",{className:"".concat(E,"-handle")},i&&o.createElement(m.Z,{className:"".concat(E,"-loading-icon")})),j=s()((n={},(0,r.Z)(n,"".concat(E,"-small"),"small"===(l||O)),(0,r.Z)(n,"".concat(E,"-loading"),i),(0,r.Z)(n,"".concat(E,"-rtl"),"rtl"===w),n),f);return o.createElement(h.Z,{insertExtraNode:!0},o.createElement(p,(0,c.Z)({},x,{prefixCls:E,className:j,disabled:d||i,ref:t,loadingIcon:k})))}));x.__ANT_SWITCH=!0,x.displayName="Switch";var g=x},20550:function(e,t,n){n.d(t,{Z:function(){return g}});var c=n(4942),r=n(87462),o=n(97685),a=n(67294),l=n(94184),i=n.n(l),s=n(98423),u=n(97937),f=n(59844),d=function(e,t){var n={};for(var c in e)Object.prototype.hasOwnProperty.call(e,c)&&t.indexOf(c)<0&&(n[c]=e[c]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(c=Object.getOwnPropertySymbols(e);r<c.length;r++)t.indexOf(c[r])<0&&Object.prototype.propertyIsEnumerable.call(e,c[r])&&(n[c[r]]=e[c[r]])}return n},p=function(e){var t,n=e.prefixCls,o=e.className,l=e.checked,s=e.onChange,u=e.onClick,p=d(e,["prefixCls","className","checked","onChange","onClick"]),m=(0,a.useContext(f.E_).getPrefixCls)("tag",n),h=i()(m,(t={},(0,c.Z)(t,"".concat(m,"-checkable"),!0),(0,c.Z)(t,"".concat(m,"-checkable-checked"),l),t),o);return a.createElement("span",(0,r.Z)({},p,{className:h,onClick:function(e){null===s||void 0===s||s(!l),null===u||void 0===u||u(e)}}))},m=n(98787),h=n(97202),v=function(e,t){var n={};for(var c in e)Object.prototype.hasOwnProperty.call(e,c)&&t.indexOf(c)<0&&(n[c]=e[c]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(c=Object.getOwnPropertySymbols(e);r<c.length;r++)t.indexOf(c[r])<0&&Object.prototype.propertyIsEnumerable.call(e,c[r])&&(n[c[r]]=e[c[r]])}return n},b=new RegExp("^(".concat(m.Y.join("|"),")(-inverse)?$")),y=new RegExp("^(".concat(m.E.join("|"),")$")),Z=function(e,t){var n,l=e.prefixCls,d=e.className,p=e.style,m=e.children,Z=e.icon,x=e.color,g=e.onClose,C=e.closeIcon,w=e.closable,O=void 0!==w&&w,E=v(e,["prefixCls","className","style","children","icon","color","onClose","closeIcon","closable"]),k=a.useContext(f.E_),j=k.getPrefixCls,N=k.direction,P=a.useState(!0),S=(0,o.Z)(P,2),I=S[0],R=S[1];a.useEffect((function(){"visible"in E&&R(E.visible)}),[E.visible]);var _=function(){return!!x&&(b.test(x)||y.test(x))},T=(0,r.Z)({backgroundColor:x&&!_()?x:void 0},p),A=_(),z=j("tag",l),H=i()(z,(n={},(0,c.Z)(n,"".concat(z,"-").concat(x),A),(0,c.Z)(n,"".concat(z,"-has-color"),x&&!A),(0,c.Z)(n,"".concat(z,"-hidden"),!I),(0,c.Z)(n,"".concat(z,"-rtl"),"rtl"===N),n),d),L=function(e){e.stopPropagation(),null===g||void 0===g||g(e),e.defaultPrevented||"visible"in E||R(!1)},F="onClick"in E||m&&"a"===m.type,G=(0,s.Z)(E,["visible"]),D=Z||null,K=D?a.createElement(a.Fragment,null,D,a.createElement("span",null,m)):m,M=a.createElement("span",(0,r.Z)({},G,{ref:t,className:H,style:T}),K,O?C?a.createElement("span",{className:"".concat(z,"-close-icon"),onClick:L},C):a.createElement(u.Z,{className:"".concat(z,"-close-icon"),onClick:L}):null);return F?a.createElement(h.Z,null,M):M},x=a.forwardRef(Z);x.displayName="Tag",x.CheckableTag=p;var g=x}}]); \ No newline at end of file
diff --git a/static/admin/_next/static/chunks/751-f932ff7ec3e1342a.js b/static/admin/_next/static/chunks/751-f932ff7ec3e1342a.js
new file mode 100644
index 000000000..4d7f84b16
--- /dev/null
+++ b/static/admin/_next/static/chunks/751-f932ff7ec3e1342a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[751],{97751:function(e,t,a){a.d(t,{Z:function(){return h}});var n=a(4942),r=a(87462),c=a(67294),o=a(94184),l=a.n(o),i=a(98423),s=a(59844),p=function(e,t){var a={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(a[n]=e[n]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(a[n[r]]=e[n[r]])}return a},u=function(e){var t=e.prefixCls,a=e.className,o=e.hoverable,i=void 0===o||o,u=p(e,["prefixCls","className","hoverable"]);return c.createElement(s.C,null,(function(e){var o=(0,e.getPrefixCls)("card",t),s=l()("".concat(o,"-grid"),a,(0,n.Z)({},"".concat(o,"-grid-hoverable"),i));return c.createElement("div",(0,r.Z)({},u,{className:s}))}))},d=function(e,t){var a={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(a[n]=e[n]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(a[n[r]]=e[n[r]])}return a},f=function(e){return c.createElement(s.C,null,(function(t){var a=t.getPrefixCls,n=e.prefixCls,o=e.className,i=e.avatar,s=e.title,p=e.description,u=d(e,["prefixCls","className","avatar","title","description"]),f=a("card",n),m=l()("".concat(f,"-meta"),o),v=i?c.createElement("div",{className:"".concat(f,"-meta-avatar")},i):null,y=s?c.createElement("div",{className:"".concat(f,"-meta-title")},s):null,b=p?c.createElement("div",{className:"".concat(f,"-meta-description")},p):null,Z=y||b?c.createElement("div",{className:"".concat(f,"-meta-detail")},y,b):null;return c.createElement("div",(0,r.Z)({},u,{className:m}),v,Z)}))},m=a(87961),v=a(25968),y=a(6226),b=a(97647),Z=function(e,t){var a={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(a[n]=e[n]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(a[n[r]]=e[n[r]])}return a};var g=function(e){var t,a,o,p=c.useContext(s.E_),d=p.getPrefixCls,f=p.direction,g=c.useContext(b.Z),h=e.prefixCls,E=e.className,x=e.extra,O=e.headStyle,C=void 0===O?{}:O,N=e.bodyStyle,w=void 0===N?{}:N,j=e.title,P=e.loading,S=e.bordered,k=void 0===S||S,A=e.size,T=e.type,_=e.cover,K=e.actions,R=e.tabList,B=e.children,I=e.activeTabKey,G=e.defaultActiveTabKey,L=e.tabBarExtraContent,z=e.hoverable,F=e.tabProps,M=void 0===F?{}:F,W=Z(e,["prefixCls","className","extra","headStyle","bodyStyle","title","loading","bordered","size","type","cover","actions","tabList","children","activeTabKey","defaultActiveTabKey","tabBarExtraContent","hoverable","tabProps"]),$=d("card",h),q=0===w.padding||"0px"===w.padding?{padding:24}:void 0,D=c.createElement("div",{className:"".concat($,"-loading-block")}),H=c.createElement("div",{className:"".concat($,"-loading-content"),style:q},c.createElement(v.Z,{gutter:8},c.createElement(y.Z,{span:22},D)),c.createElement(v.Z,{gutter:8},c.createElement(y.Z,{span:8},D),c.createElement(y.Z,{span:15},D)),c.createElement(v.Z,{gutter:8},c.createElement(y.Z,{span:6},D),c.createElement(y.Z,{span:18},D)),c.createElement(v.Z,{gutter:8},c.createElement(y.Z,{span:13},D),c.createElement(y.Z,{span:9},D)),c.createElement(v.Z,{gutter:8},c.createElement(y.Z,{span:4},D),c.createElement(y.Z,{span:3},D),c.createElement(y.Z,{span:16},D))),J=void 0!==I,Q=(0,r.Z)((0,r.Z)({},M),(t={},(0,n.Z)(t,J?"activeKey":"defaultActiveKey",J?I:G),(0,n.Z)(t,"tabBarExtraContent",L),t)),U=R&&R.length?c.createElement(m.Z,(0,r.Z)({size:"large"},Q,{className:"".concat($,"-head-tabs"),onChange:function(t){var a;null===(a=e.onTabChange)||void 0===a||a.call(e,t)}}),R.map((function(e){return c.createElement(m.Z.TabPane,{tab:e.tab,disabled:e.disabled,key:e.key})}))):null;(j||x||U)&&(o=c.createElement("div",{className:"".concat($,"-head"),style:C},c.createElement("div",{className:"".concat($,"-head-wrapper")},j&&c.createElement("div",{className:"".concat($,"-head-title")},j),x&&c.createElement("div",{className:"".concat($,"-extra")},x)),U));var V=_?c.createElement("div",{className:"".concat($,"-cover")},_):null,X=c.createElement("div",{className:"".concat($,"-body"),style:w},P?H:B),Y=K&&K.length?c.createElement("ul",{className:"".concat($,"-actions")},function(e){return e.map((function(t,a){return c.createElement("li",{style:{width:"".concat(100/e.length,"%")},key:"action-".concat(a)},c.createElement("span",null,t))}))}(K)):null,ee=(0,i.Z)(W,["onTabChange"]),te=A||g,ae=l()($,(a={},(0,n.Z)(a,"".concat($,"-loading"),P),(0,n.Z)(a,"".concat($,"-bordered"),k),(0,n.Z)(a,"".concat($,"-hoverable"),z),(0,n.Z)(a,"".concat($,"-contain-grid"),function(){var t;return c.Children.forEach(e.children,(function(e){e&&e.type&&e.type===u&&(t=!0)})),t}()),(0,n.Z)(a,"".concat($,"-contain-tabs"),R&&R.length),(0,n.Z)(a,"".concat($,"-").concat(te),te),(0,n.Z)(a,"".concat($,"-type-").concat(T),!!T),(0,n.Z)(a,"".concat($,"-rtl"),"rtl"===f),a),E);return c.createElement("div",(0,r.Z)({},ee,{className:ae}),o,V,X,Y)};g.Grid=u,g.Meta=f;var h=g},6226:function(e,t,a){a.d(t,{Z:function(){return m}});var n=a(4942),r=a(87462),c=a(71002),o=a(67294),l=a(94184),i=a.n(l),s=a(99134),p=a(59844),u=function(e,t){var a={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(a[n]=e[n]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(a[n[r]]=e[n[r]])}return a};var d=["xs","sm","md","lg","xl","xxl"],f=o.forwardRef((function(e,t){var a,l=o.useContext(p.E_),f=l.getPrefixCls,m=l.direction,v=o.useContext(s.Z),y=v.gutter,b=v.wrap,Z=v.supportFlexGap,g=e.prefixCls,h=e.span,E=e.order,x=e.offset,O=e.push,C=e.pull,N=e.className,w=e.children,j=e.flex,P=e.style,S=u(e,["prefixCls","span","order","offset","push","pull","className","children","flex","style"]),k=f("col",g),A={};d.forEach((function(t){var a,o={},l=e[t];"number"===typeof l?o.span=l:"object"===(0,c.Z)(l)&&(o=l||{}),delete S[t],A=(0,r.Z)((0,r.Z)({},A),(a={},(0,n.Z)(a,"".concat(k,"-").concat(t,"-").concat(o.span),void 0!==o.span),(0,n.Z)(a,"".concat(k,"-").concat(t,"-order-").concat(o.order),o.order||0===o.order),(0,n.Z)(a,"".concat(k,"-").concat(t,"-offset-").concat(o.offset),o.offset||0===o.offset),(0,n.Z)(a,"".concat(k,"-").concat(t,"-push-").concat(o.push),o.push||0===o.push),(0,n.Z)(a,"".concat(k,"-").concat(t,"-pull-").concat(o.pull),o.pull||0===o.pull),(0,n.Z)(a,"".concat(k,"-rtl"),"rtl"===m),a))}));var T=i()(k,(a={},(0,n.Z)(a,"".concat(k,"-").concat(h),void 0!==h),(0,n.Z)(a,"".concat(k,"-order-").concat(E),E),(0,n.Z)(a,"".concat(k,"-offset-").concat(x),x),(0,n.Z)(a,"".concat(k,"-push-").concat(O),O),(0,n.Z)(a,"".concat(k,"-pull-").concat(C),C),a),N,A),_={};if(y&&y[0]>0){var K=y[0]/2;_.paddingLeft=K,_.paddingRight=K}if(y&&y[1]>0&&!Z){var R=y[1]/2;_.paddingTop=R,_.paddingBottom=R}return j&&(_.flex=function(e){return"number"===typeof e?"".concat(e," ").concat(e," auto"):/^\d+(\.\d+)?(px|em|rem|%)$/.test(e)?"0 0 ".concat(e):e}(j),!1!==b||_.minWidth||(_.minWidth=0)),o.createElement("div",(0,r.Z)({},S,{style:(0,r.Z)((0,r.Z)({},_),P),className:T,ref:t}),w)}));f.displayName="Col";var m=f},99134:function(e,t,a){var n=(0,a(67294).createContext)({});t.Z=n},25968:function(e,t,a){a.d(t,{Z:function(){return b}});var n=a(87462),r=a(4942),c=a(71002),o=a(97685),l=a(67294),i=a(94184),s=a.n(i),p=a(59844),u=a(99134),d=a(93355),f=a(24308),m=a(98082),v=function(e,t){var a={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(a[n]=e[n]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(a[n[r]]=e[n[r]])}return a},y=((0,d.b)("top","middle","bottom","stretch"),(0,d.b)("start","end","center","space-around","space-between"),l.forwardRef((function(e,t){var a,i=e.prefixCls,d=e.justify,y=e.align,b=e.className,Z=e.style,g=e.children,h=e.gutter,E=void 0===h?0:h,x=e.wrap,O=v(e,["prefixCls","justify","align","className","style","children","gutter","wrap"]),C=l.useContext(p.E_),N=C.getPrefixCls,w=C.direction,j=l.useState({xs:!0,sm:!0,md:!0,lg:!0,xl:!0,xxl:!0}),P=(0,o.Z)(j,2),S=P[0],k=P[1],A=(0,m.Z)(),T=l.useRef(E);l.useEffect((function(){var e=f.ZP.subscribe((function(e){var t=T.current||0;(!Array.isArray(t)&&"object"===(0,c.Z)(t)||Array.isArray(t)&&("object"===(0,c.Z)(t[0])||"object"===(0,c.Z)(t[1])))&&k(e)}));return function(){return f.ZP.unsubscribe(e)}}),[]);var _=N("row",i),K=function(){var e=[0,0];return(Array.isArray(E)?E:[E,0]).forEach((function(t,a){if("object"===(0,c.Z)(t))for(var n=0;n<f.c4.length;n++){var r=f.c4[n];if(S[r]&&void 0!==t[r]){e[a]=t[r];break}}else e[a]=t||0})),e}(),R=s()(_,(a={},(0,r.Z)(a,"".concat(_,"-no-wrap"),!1===x),(0,r.Z)(a,"".concat(_,"-").concat(d),d),(0,r.Z)(a,"".concat(_,"-").concat(y),y),(0,r.Z)(a,"".concat(_,"-rtl"),"rtl"===w),a),b),B={},I=K[0]>0?K[0]/-2:void 0,G=K[1]>0?K[1]/-2:void 0;if(I&&(B.marginLeft=I,B.marginRight=I),A){var L=(0,o.Z)(K,2);B.rowGap=L[1]}else G&&(B.marginTop=G,B.marginBottom=G);var z=l.useMemo((function(){return{gutter:K,wrap:x,supportFlexGap:A}}),[K,x,A]);return l.createElement(u.Z.Provider,{value:z},l.createElement("div",(0,n.Z)({},O,{className:R,style:(0,n.Z)((0,n.Z)({},B),Z),ref:t}),g))})));y.displayName="Row";var b=y}}]); \ No newline at end of file
diff --git a/static/admin/_next/static/chunks/763-6084d4b3c149b8f4.js b/static/admin/_next/static/chunks/763-6084d4b3c149b8f4.js
new file mode 100644
index 000000000..630a8c277
--- /dev/null
+++ b/static/admin/_next/static/chunks/763-6084d4b3c149b8f4.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[763],{41080:function(e,t,n){"use strict";n.d(t,{Z:function(){return N}});var r=n(4942),a=n(87462),c=n(71002),o=n(67294),u=n(94184),i=n.n(u),l=function(e){var t=e.prefixCls,n=e.className,r=e.width,c=e.style;return o.createElement("h3",{className:i()(t,n),style:(0,a.Z)({width:r},c)})},f=n(74902),s=function(e){var t=function(t){var n=e.width,r=e.rows,a=void 0===r?2:r;return Array.isArray(n)?n[t]:a-1===t?n:void 0},n=e.prefixCls,r=e.className,a=e.style,c=e.rows,u=(0,f.Z)(Array(c)).map((function(e,n){return o.createElement("li",{key:n,style:{width:t(n)}})}));return o.createElement("ul",{className:i()(n,r),style:a},u)},v=n(59844),d=function(e){var t,n,c=e.prefixCls,u=e.className,l=e.style,f=e.size,s=e.shape,v=i()((t={},(0,r.Z)(t,"".concat(c,"-lg"),"large"===f),(0,r.Z)(t,"".concat(c,"-sm"),"small"===f),t)),d=i()((n={},(0,r.Z)(n,"".concat(c,"-circle"),"circle"===s),(0,r.Z)(n,"".concat(c,"-square"),"square"===s),(0,r.Z)(n,"".concat(c,"-round"),"round"===s),n)),p="number"===typeof f?{width:f,height:f,lineHeight:"".concat(f,"px")}:{};return o.createElement("span",{className:i()(c,v,d,u),style:(0,a.Z)((0,a.Z)({},p),l)})},p=n(98423),m=function(e){var t=function(t){var n=t.getPrefixCls,c=e.prefixCls,u=e.className,l=e.active,f=n("skeleton",c),s=(0,p.Z)(e,["prefixCls","className"]),v=i()(f,"".concat(f,"-element"),(0,r.Z)({},"".concat(f,"-active"),l),u);return o.createElement("div",{className:v},o.createElement(d,(0,a.Z)({prefixCls:"".concat(f,"-avatar")},s)))};return o.createElement(v.C,null,t)};m.defaultProps={size:"default",shape:"circle"};var x=m,h=function(e){var t=function(t){var n,c=t.getPrefixCls,u=e.prefixCls,l=e.className,f=e.active,s=e.block,v=void 0!==s&&s,m=c("skeleton",u),x=(0,p.Z)(e,["prefixCls"]),h=i()(m,"".concat(m,"-element"),(n={},(0,r.Z)(n,"".concat(m,"-active"),f),(0,r.Z)(n,"".concat(m,"-block"),v),n),l);return o.createElement("div",{className:h},o.createElement(d,(0,a.Z)({prefixCls:"".concat(m,"-button")},x)))};return o.createElement(v.C,null,t)};h.defaultProps={size:"default"};var g=h,E=function(e){var t=function(t){var n=t.getPrefixCls,c=e.prefixCls,u=e.className,l=e.active,f=n("skeleton",c),s=(0,p.Z)(e,["prefixCls"]),v=i()(f,"".concat(f,"-element"),(0,r.Z)({},"".concat(f,"-active"),l),u);return o.createElement("div",{className:v},o.createElement(d,(0,a.Z)({prefixCls:"".concat(f,"-input")},s)))};return o.createElement(v.C,null,t)};E.defaultProps={size:"default"};var Z=E,w=function(e){var t=function(t){var n=t.getPrefixCls,r=e.prefixCls,a=e.className,c=e.style,u=n("skeleton",r),l=i()(u,"".concat(u,"-element"),a);return o.createElement("div",{className:l},o.createElement("div",{className:i()("".concat(u,"-image"),a),style:c},o.createElement("svg",{viewBox:"0 0 1098 1024",xmlns:"http://www.w3.org/2000/svg",className:"".concat(u,"-image-svg")},o.createElement("path",{d:"M365.714286 329.142857q0 45.714286-32.036571 77.677714t-77.677714 32.036571-77.677714-32.036571-32.036571-77.677714 32.036571-77.677714 77.677714-32.036571 77.677714 32.036571 32.036571 77.677714zM950.857143 548.571429l0 256-804.571429 0 0-109.714286 182.857143-182.857143 91.428571 91.428571 292.571429-292.571429zM1005.714286 146.285714l-914.285714 0q-7.460571 0-12.873143 5.412571t-5.412571 12.873143l0 694.857143q0 7.460571 5.412571 12.873143t12.873143 5.412571l914.285714 0q7.460571 0 12.873143-5.412571t5.412571-12.873143l0-694.857143q0-7.460571-5.412571-12.873143t-12.873143-5.412571zM1097.142857 164.571429l0 694.857143q0 37.741714-26.843429 64.585143t-64.585143 26.843429l-914.285714 0q-37.741714 0-64.585143-26.843429t-26.843429-64.585143l0-694.857143q0-37.741714 26.843429-64.585143t64.585143-26.843429l914.285714 0q37.741714 0 64.585143 26.843429t26.843429 64.585143z",className:"".concat(u,"-image-path")}))))};return o.createElement(v.C,null,t)};function y(e){return e&&"object"===(0,c.Z)(e)?e:{}}var C=function(e){var t=function(t){var n=t.getPrefixCls,c=t.direction,u=e.prefixCls,f=e.loading,v=e.className,p=e.style,m=e.children,x=e.avatar,h=e.title,g=e.paragraph,E=e.active,Z=e.round,w=n("skeleton",u);if(f||!("loading"in e)){var C,N,k,M=!!x,b=!!h,q=!!g;if(M){var P=(0,a.Z)((0,a.Z)({prefixCls:"".concat(w,"-avatar")},function(e,t){return e&&!t?{size:"large",shape:"square"}:{size:"large",shape:"circle"}}(b,q)),y(x));N=o.createElement("div",{className:"".concat(w,"-header")},o.createElement(d,P))}if(b||q){var I,T;if(b){var z=(0,a.Z)((0,a.Z)({prefixCls:"".concat(w,"-title")},function(e,t){return!e&&t?{width:"38%"}:e&&t?{width:"50%"}:{}}(M,q)),y(h));I=o.createElement(l,z)}if(q){var D=(0,a.Z)((0,a.Z)({prefixCls:"".concat(w,"-paragraph")},function(e,t){var n={};return e&&t||(n.width="61%"),n.rows=!e&&t?3:2,n}(M,b)),y(g));T=o.createElement(s,D)}k=o.createElement("div",{className:"".concat(w,"-content")},I,T)}var S=i()(w,(C={},(0,r.Z)(C,"".concat(w,"-with-avatar"),M),(0,r.Z)(C,"".concat(w,"-active"),E),(0,r.Z)(C,"".concat(w,"-rtl"),"rtl"===c),(0,r.Z)(C,"".concat(w,"-round"),Z),C),v);return o.createElement("div",{className:S,style:p},N,k)}return m};return o.createElement(v.C,null,t)};C.defaultProps={avatar:!1,title:!0,paragraph:!0},C.Button=g,C.Avatar=x,C.Input=Z,C.Image=w;var N=C},74763:function(e,t,n){"use strict";n.d(t,{Z:function(){return P}});var r=n(4942),a=n(87462),c=n(67294),o=n(94184),u=n.n(o),i=n(59844),l=n(41080),f=n(11726),s=n.n(f),v=function(e){var t,n=e.value,r=e.formatter,a=e.precision,o=e.decimalSeparator,u=e.groupSeparator,i=void 0===u?"":u,l=e.prefixCls;if("function"===typeof r)t=r(n);else{var f=String(n),v=f.match(/^(-?)(\d*)(\.(\d+))?$/);if(v&&"-"!==f){var d=v[1],p=v[2]||"0",m=v[4]||"";p=p.replace(/\B(?=(\d{3})+(?!\d))/g,i),"number"===typeof a&&(m=s()(m,a,"0").slice(0,a)),m&&(m="".concat(o).concat(m)),t=[c.createElement("span",{key:"int",className:"".concat(l,"-content-value-int")},d,p),m&&c.createElement("span",{key:"decimal",className:"".concat(l,"-content-value-decimal")},m)]}else t=f}return c.createElement("span",{className:"".concat(l,"-content-value")},t)},d=function(e){var t=e.prefixCls,n=e.className,o=e.style,i=e.valueStyle,f=e.value,s=void 0===f?0:f,d=e.title,p=e.valueRender,m=e.prefix,x=e.suffix,h=e.loading,g=e.direction,E=e.onMouseEnter,Z=e.onMouseLeave,w=c.createElement(v,(0,a.Z)({},e,{value:s})),y=u()(t,(0,r.Z)({},"".concat(t,"-rtl"),"rtl"===g),n);return c.createElement("div",{className:y,style:o,onMouseEnter:E,onMouseLeave:Z},d&&c.createElement("div",{className:"".concat(t,"-title")},d),c.createElement(l.Z,{paragraph:!1,loading:h},c.createElement("div",{style:i,className:"".concat(t,"-content")},m&&c.createElement("span",{className:"".concat(t,"-content-prefix")},m),p?p(w):w,x&&c.createElement("span",{className:"".concat(t,"-content-suffix")},x))))};d.defaultProps={decimalSeparator:".",groupSeparator:",",loading:!1};var p=(0,i.PG)({prefixCls:"statistic"})(d),m=n(15671),x=n(43144),h=n(60136),g=n(3289),E=n(97685),Z=n(32475),w=n.n(Z),y=[["Y",31536e6],["M",2592e6],["D",864e5],["H",36e5],["m",6e4],["s",1e3],["S",1]];function C(e,t){var n=t.format,r=void 0===n?"":n,a=new Date(e).getTime(),c=Date.now();return function(e,t){var n=e,r=/\[[^\]]*]/g,a=(t.match(r)||[]).map((function(e){return e.slice(1,-1)})),c=t.replace(r,"[]"),o=y.reduce((function(e,t){var r=(0,E.Z)(t,2),a=r[0],c=r[1];if(-1!==e.indexOf(a)){var o=Math.floor(n/c);return n-=o*c,e.replace(new RegExp("".concat(a,"+"),"g"),(function(e){var t=e.length;return w()(o.toString(),t,"0")}))}return e}),c),u=0;return o.replace(r,(function(){var e=a[u];return u+=1,e}))}(Math.max(a-c,0),r)}var N=n(96159),k=1e3/30;function M(e){return new Date(e).getTime()}var b=function(e){(0,h.Z)(n,e);var t=(0,g.Z)(n);function n(){var e;return(0,m.Z)(this,n),(e=t.apply(this,arguments)).syncTimer=function(){M(e.props.value)>=Date.now()?e.startTimer():e.stopTimer()},e.startTimer=function(){if(!e.countdownId){var t=e.props,n=t.onChange,r=M(t.value);e.countdownId=window.setInterval((function(){e.forceUpdate(),n&&r>Date.now()&&n(r-Date.now())}),k)}},e.stopTimer=function(){var t=e.props,n=t.onFinish,r=t.value;if(e.countdownId){clearInterval(e.countdownId),e.countdownId=void 0;var a=M(r);n&&a<Date.now()&&n()}},e.formatCountdown=function(t,n){var r=e.props.format;return C(t,(0,a.Z)((0,a.Z)({},n),{format:r}))},e.valueRender=function(e){return(0,N.Tm)(e,{title:void 0})},e}return(0,x.Z)(n,[{key:"componentDidMount",value:function(){this.syncTimer()}},{key:"componentDidUpdate",value:function(){this.syncTimer()}},{key:"componentWillUnmount",value:function(){this.stopTimer()}},{key:"render",value:function(){return c.createElement(p,(0,a.Z)({valueRender:this.valueRender},this.props,{formatter:this.formatCountdown}))}}]),n}(c.Component);b.defaultProps={format:"HH:mm:ss"};var q=b;p.Countdown=q;var P=p},29932:function(e){e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,a=Array(r);++n<r;)a[n]=t(e[n],n,e);return a}},48983:function(e,t,n){var r=n(40371)("length");e.exports=r},44286:function(e){e.exports=function(e){return e.split("")}},40371:function(e){e.exports=function(e){return function(t){return null==t?void 0:t[e]}}},18190:function(e){var t=Math.floor;e.exports=function(e,n){var r="";if(!e||n<1||n>9007199254740991)return r;do{n%2&&(r+=e),(n=t(n/2))&&(e+=e)}while(n);return r}},14259:function(e){e.exports=function(e,t,n){var r=-1,a=e.length;t<0&&(t=-t>a?0:a+t),(n=n>a?a:n)<0&&(n+=a),a=t>n?0:n-t>>>0,t>>>=0;for(var c=Array(a);++r<a;)c[r]=e[r+t];return c}},80531:function(e,t,n){var r=n(62705),a=n(29932),c=n(1469),o=n(33448),u=r?r.prototype:void 0,i=u?u.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(c(t))return a(t,e)+"";if(o(t))return i?i.call(t):"";var n=t+"";return"0"==n&&1/t==-Infinity?"-0":n}},40180:function(e,t,n){var r=n(14259);e.exports=function(e,t,n){var a=e.length;return n=void 0===n?a:n,!t&&n>=a?e:r(e,t,n)}},78302:function(e,t,n){var r=n(18190),a=n(80531),c=n(40180),o=n(62689),u=n(88016),i=n(83140),l=Math.ceil;e.exports=function(e,t){var n=(t=void 0===t?" ":a(t)).length;if(n<2)return n?r(t,e):t;var f=r(t,l(e/u(t)));return o(t)?c(i(f),0,e).join(""):f.slice(0,e)}},62689:function(e){var t=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");e.exports=function(e){return t.test(e)}},88016:function(e,t,n){var r=n(48983),a=n(62689),c=n(21903);e.exports=function(e){return a(e)?c(e):r(e)}},83140:function(e,t,n){var r=n(44286),a=n(62689),c=n(676);e.exports=function(e){return a(e)?c(e):r(e)}},21903:function(e){var t="[\\ud800-\\udfff]",n="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",r="\\ud83c[\\udffb-\\udfff]",a="[^\\ud800-\\udfff]",c="(?:\\ud83c[\\udde6-\\uddff]){2}",o="[\\ud800-\\udbff][\\udc00-\\udfff]",u="(?:"+n+"|"+r+")"+"?",i="[\\ufe0e\\ufe0f]?",l=i+u+("(?:\\u200d(?:"+[a,c,o].join("|")+")"+i+u+")*"),f="(?:"+[a+n+"?",n,c,o,t].join("|")+")",s=RegExp(r+"(?="+r+")|"+f+l,"g");e.exports=function(e){for(var t=s.lastIndex=0;s.test(e);)++t;return t}},676:function(e){var t="[\\ud800-\\udfff]",n="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",r="\\ud83c[\\udffb-\\udfff]",a="[^\\ud800-\\udfff]",c="(?:\\ud83c[\\udde6-\\uddff]){2}",o="[\\ud800-\\udbff][\\udc00-\\udfff]",u="(?:"+n+"|"+r+")"+"?",i="[\\ufe0e\\ufe0f]?",l=i+u+("(?:\\u200d(?:"+[a,c,o].join("|")+")"+i+u+")*"),f="(?:"+[a+n+"?",n,c,o,t].join("|")+")",s=RegExp(r+"(?="+r+")|"+f+l,"g");e.exports=function(e){return e.match(s)||[]}},11726:function(e,t,n){var r=n(78302),a=n(88016),c=n(40554),o=n(79833);e.exports=function(e,t,n){e=o(e);var u=(t=c(t))?a(e):0;return t&&u<t?e+r(t-u,n):e}},32475:function(e,t,n){var r=n(78302),a=n(88016),c=n(40554),o=n(79833);e.exports=function(e,t,n){e=o(e);var u=(t=c(t))?a(e):0;return t&&u<t?r(t-u,n)+e:e}},18601:function(e,t,n){var r=n(14841),a=1/0;e.exports=function(e){return e?(e=r(e))===a||e===-1/0?17976931348623157e292*(e<0?-1:1):e===e?e:0:0===e?e:0}},40554:function(e,t,n){var r=n(18601);e.exports=function(e){var t=r(e),n=t%1;return t===t?n?t-n:t:0}},79833:function(e,t,n){var r=n(80531);e.exports=function(e){return null==e?"":r(e)}}}]); \ No newline at end of file
diff --git a/static/admin/_next/static/chunks/829-c8d1f3db438c210b.js b/static/admin/_next/static/chunks/829-c8d1f3db438c210b.js
new file mode 100644
index 000000000..901302ed1
--- /dev/null
+++ b/static/admin/_next/static/chunks/829-c8d1f3db438c210b.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[829],{57838:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(97685),o=n(67294);function a(){var e=o.useReducer((function(e){return e+1}),0);return(0,r.Z)(e,2)[1]}},24308:function(e,t,n){"use strict";n.d(t,{c4:function(){return a}});var r=n(4942),o=n(87462),a=["xxl","xl","lg","md","sm","xs"],i={xs:"(max-width: 575px)",sm:"(min-width: 576px)",md:"(min-width: 768px)",lg:"(min-width: 992px)",xl:"(min-width: 1200px)",xxl:"(min-width: 1600px)"},c=new Map,l=-1,u={},s={matchHandlers:{},dispatch:function(e){return u=e,c.forEach((function(e){return e(u)})),c.size>=1},subscribe:function(e){return c.size||this.register(),l+=1,c.set(l,e),e(u),l},unsubscribe:function(e){c.delete(e),c.size||this.unregister()},unregister:function(){var e=this;Object.keys(i).forEach((function(t){var n=i[t],r=e.matchHandlers[n];null===r||void 0===r||r.mql.removeListener(null===r||void 0===r?void 0:r.listener)})),c.clear()},register:function(){var e=this;Object.keys(i).forEach((function(t){var n=i[t],a=function(n){var a=n.matches;e.dispatch((0,o.Z)((0,o.Z)({},u),(0,r.Z)({},t,a)))},c=window.matchMedia(n);c.addListener(a),e.matchHandlers[n]={mql:c,listener:a},a(c)}))}};t.ZP=s},32808:function(e,t,n){"use strict";n.d(t,{Z:function(){return Z}});var r=n(4942),o=n(87462),a=n(67294),i=n(94184),c=n.n(i),l=n(50132),u=n(74902),s=n(97685),d=n(98423),f=n(59844),p=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},v=a.createContext(null),m=function(e,t){var n=e.defaultValue,i=e.children,l=e.options,m=void 0===l?[]:l,h=e.prefixCls,y=e.className,g=e.style,b=e.onChange,x=p(e,["defaultValue","children","options","prefixCls","className","style","onChange"]),E=a.useContext(f.E_),w=E.getPrefixCls,Z=E.direction,N=a.useState(x.value||n||[]),S=(0,s.Z)(N,2),k=S[0],O=S[1],P=a.useState([]),K=(0,s.Z)(P,2),I=K[0],D=K[1];a.useEffect((function(){"value"in x&&O(x.value||[])}),[x.value]);var M=function(){return m.map((function(e){return"string"===typeof e?{label:e,value:e}:e}))},R=w("checkbox",h),T="".concat(R,"-group"),_=(0,d.Z)(x,["value","disabled"]);m&&m.length>0&&(i=M().map((function(e){return a.createElement(C,{prefixCls:R,key:e.value.toString(),disabled:"disabled"in e?e.disabled:x.disabled,value:e.value,checked:-1!==k.indexOf(e.value),onChange:e.onChange,className:"".concat(T,"-item"),style:e.style},e.label)})));var j={toggleOption:function(e){var t=k.indexOf(e.value),n=(0,u.Z)(k);-1===t?n.push(e.value):n.splice(t,1),"value"in x||O(n);var r=M();null===b||void 0===b||b(n.filter((function(e){return-1!==I.indexOf(e)})).sort((function(e,t){return r.findIndex((function(t){return t.value===e}))-r.findIndex((function(e){return e.value===t}))})))},value:k,disabled:x.disabled,name:x.name,registerValue:function(e){D((function(t){return[].concat((0,u.Z)(t),[e])}))},cancelValue:function(e){D((function(t){return t.filter((function(t){return t!==e}))}))}},L=c()(T,(0,r.Z)({},"".concat(T,"-rtl"),"rtl"===Z),y);return a.createElement("div",(0,o.Z)({className:L,style:g},_,{ref:t}),a.createElement(v.Provider,{value:j},i))},h=a.forwardRef(m),y=a.memo(h),g=n(21687),b=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},x=function(e,t){var n,i=e.prefixCls,u=e.className,s=e.children,d=e.indeterminate,p=void 0!==d&&d,m=e.style,h=e.onMouseEnter,y=e.onMouseLeave,x=e.skipGroup,E=void 0!==x&&x,C=b(e,["prefixCls","className","children","indeterminate","style","onMouseEnter","onMouseLeave","skipGroup"]),w=a.useContext(f.E_),Z=w.getPrefixCls,N=w.direction,S=a.useContext(v),k=a.useRef(C.value);a.useEffect((function(){null===S||void 0===S||S.registerValue(C.value),(0,g.Z)("checked"in C||!!S||!("value"in C),"Checkbox","`value` is not a valid prop, do you mean `checked`?")}),[]),a.useEffect((function(){if(!E)return C.value!==k.current&&(null===S||void 0===S||S.cancelValue(k.current),null===S||void 0===S||S.registerValue(C.value)),function(){return null===S||void 0===S?void 0:S.cancelValue(C.value)}}),[C.value]);var O=Z("checkbox",i),P=(0,o.Z)({},C);S&&!E&&(P.onChange=function(){C.onChange&&C.onChange.apply(C,arguments),S.toggleOption&&S.toggleOption({label:s,value:C.value})},P.name=S.name,P.checked=-1!==S.value.indexOf(C.value),P.disabled=C.disabled||S.disabled);var K=c()((n={},(0,r.Z)(n,"".concat(O,"-wrapper"),!0),(0,r.Z)(n,"".concat(O,"-rtl"),"rtl"===N),(0,r.Z)(n,"".concat(O,"-wrapper-checked"),P.checked),(0,r.Z)(n,"".concat(O,"-wrapper-disabled"),P.disabled),n),u),I=c()((0,r.Z)({},"".concat(O,"-indeterminate"),p));return a.createElement("label",{className:K,style:m,onMouseEnter:h,onMouseLeave:y},a.createElement(l.Z,(0,o.Z)({},P,{prefixCls:O,className:I,ref:t})),void 0!==s&&a.createElement("span",null,s))},E=a.forwardRef(x);E.displayName="Checkbox";var C=E,w=C;w.Group=y,w.__ANT_CHECKBOX=!0;var Z=w},25378:function(e,t,n){"use strict";var r=n(97685),o=n(67294),a=n(24308);t.Z=function(){var e=(0,o.useState)({}),t=(0,r.Z)(e,2),n=t[0],i=t[1];return(0,o.useEffect)((function(){var e=a.ZP.subscribe((function(e){i(e)}));return function(){return a.ZP.unsubscribe(e)}}),[]),n}},66933:function(e,t,n){"use strict";n.d(t,{Z:function(){return Te}});var r=n(4942),o=n(87462),a=n(67294),i=n(98423),c=n(94184),l=n.n(c),u=n(74902),s=n(1413),d=n(97685),f=n(91),p=n(71002),v=n(80334),m=n(21770),h=n(15105),y=n(31131),g=n(42550),b=n(98924),x=(0,b.Z)()?a.useLayoutEffect:a.useEffect,E=n(84506);function C(e,t){var n,r=e.key;return"value"in e&&(n=e.value),null!==r&&void 0!==r?r:void 0!==n?n:"rc-index-key-".concat(t)}function w(e,t){var n=e||{};return{label:n.label||(t?"children":"label"),value:n.value||"value",options:n.options||"options"}}function Z(e){var t=(0,s.Z)({},e);return"props"in t||Object.defineProperty(t,"props",{get:function(){return(0,v.ZP)(!1,"Return type is option instead of Option instance. Please read value directly instead of reading from `props`."),t}}),t}var N=n(51169),S=["prefixCls","disabled","visible","children","popupElement","containerWidth","animation","transitionName","dropdownStyle","dropdownClassName","direction","placement","dropdownMatchSelectWidth","dropdownRender","dropdownAlign","getPopupContainer","empty","getTriggerDOMNode","onPopupVisibleChange","onPopupMouseEnter","autoAdjustOverflow"],k=function(e,t){var n=e.prefixCls,i=(e.disabled,e.visible),c=e.children,u=e.popupElement,d=e.containerWidth,p=e.animation,v=e.transitionName,m=e.dropdownStyle,h=e.dropdownClassName,y=e.direction,g=void 0===y?"ltr":y,b=e.placement,x=e.dropdownMatchSelectWidth,E=void 0===x||x,C=e.dropdownRender,w=e.dropdownAlign,Z=e.getPopupContainer,k=e.empty,O=e.getTriggerDOMNode,P=e.onPopupVisibleChange,K=e.onPopupMouseEnter,I=e.autoAdjustOverflow,D=(0,f.Z)(e,S),M="".concat(n,"-dropdown"),R=u;C&&(R=C(u));var T=a.useMemo((function(){return{bottomLeft:{points:["tl","bl"],offset:[0,4],overflow:{adjustX:e=function(e){var t=e.autoAdjustOverflow,n=e.dropdownMatchSelectWidth;return t?1:"number"!==typeof n?0:1}({autoAdjustOverflow:I,dropdownMatchSelectWidth:E}),adjustY:1}},bottomRight:{points:["tr","br"],offset:[0,4],overflow:{adjustX:e,adjustY:1}},topLeft:{points:["bl","tl"],offset:[0,-4],overflow:{adjustX:e,adjustY:1}},topRight:{points:["br","tr"],offset:[0,-4],overflow:{adjustX:e,adjustY:1}}};var e}),[E,I]),_=p?"".concat(M,"-").concat(p):v,j=a.useRef(null);a.useImperativeHandle(t,(function(){return{getPopupElement:function(){return j.current}}}));var L=(0,s.Z)({minWidth:d},m);return"number"===typeof E?L.width=E:E&&(L.width=d),a.createElement(N.Z,(0,o.Z)({},D,{showAction:P?["click"]:[],hideAction:P?["click"]:[],popupPlacement:b||("rtl"===g?"bottomRight":"bottomLeft"),builtinPlacements:T,prefixCls:M,popupTransitionName:_,popup:a.createElement("div",{ref:j,onMouseEnter:K},R),popupAlign:w,popupVisible:i,getPopupContainer:Z,popupClassName:l()(h,(0,r.Z)({},"".concat(M,"-empty"),k)),popupStyle:L,getTriggerDOMNode:O,onPopupVisibleChange:P}),c)},O=a.forwardRef(k);O.displayName="SelectTrigger";var P=O,K=n(64217),I=n(34243),D=function(e){var t,n=e.className,r=e.customizeIcon,o=e.customizeIconProps,i=e.onMouseDown,c=e.onClick,u=e.children;return t="function"===typeof r?r(o):r,a.createElement("span",{className:n,onMouseDown:function(e){e.preventDefault(),i&&i(e)},style:{userSelect:"none",WebkitUserSelect:"none"},unselectable:"on",onClick:c,"aria-hidden":!0},void 0!==t?t:a.createElement("span",{className:l()(n.split(/\s+/).map((function(e){return"".concat(e,"-icon")})))},u))},M=function(e,t){var n,r,o=e.prefixCls,i=e.id,c=e.inputElement,u=e.disabled,d=e.tabIndex,f=e.autoFocus,p=e.autoComplete,v=e.editable,m=e.activeDescendantId,h=e.value,y=e.maxLength,b=e.onKeyDown,x=e.onMouseDown,E=e.onChange,C=e.onPaste,w=e.onCompositionStart,Z=e.onCompositionEnd,N=e.open,S=e.attrs,k=c||a.createElement("input",null),O=k,P=O.ref,K=O.props,I=K.onKeyDown,D=K.onChange,M=K.onMouseDown,R=K.onCompositionStart,T=K.onCompositionEnd,_=K.style;return k=a.cloneElement(k,(0,s.Z)((0,s.Z)({id:i,ref:(0,g.sQ)(t,P),disabled:u,tabIndex:d,autoComplete:p||"off",type:"search",autoFocus:f,className:l()("".concat(o,"-selection-search-input"),null===(n=k)||void 0===n||null===(r=n.props)||void 0===r?void 0:r.className),style:(0,s.Z)((0,s.Z)({},_),{},{opacity:v?null:0}),role:"combobox","aria-expanded":N,"aria-haspopup":"listbox","aria-owns":"".concat(i,"_list"),"aria-autocomplete":"list","aria-controls":"".concat(i,"_list"),"aria-activedescendant":m},S),{},{value:v?h:"",maxLength:y,readOnly:!v,unselectable:v?null:"on",onKeyDown:function(e){b(e),I&&I(e)},onMouseDown:function(e){x(e),M&&M(e)},onChange:function(e){E(e),D&&D(e)},onCompositionStart:function(e){w(e),R&&R(e)},onCompositionEnd:function(e){Z(e),T&&T(e)},onPaste:C}))},R=a.forwardRef(M);R.displayName="Input";var T=R;function _(e){return Array.isArray(e)?e:void 0!==e?[e]:[]}var j="undefined"!==typeof window&&window.document&&window.document.documentElement;var L=function(e){e.preventDefault(),e.stopPropagation()},A=function(e){var t,n,o=e.id,i=e.prefixCls,c=e.values,u=e.open,s=e.searchValue,f=e.inputRef,p=e.placeholder,v=e.disabled,m=e.mode,h=e.showSearch,y=e.autoFocus,g=e.autoComplete,b=e.activeDescendantId,x=e.tabIndex,E=e.removeIcon,C=e.maxTagCount,w=e.maxTagTextLength,Z=e.maxTagPlaceholder,N=void 0===Z?function(e){return"+ ".concat(e.length," ...")}:Z,S=e.tagRender,k=e.onToggleOpen,O=e.onRemove,P=e.onInputChange,M=e.onInputPaste,R=e.onInputKeyDown,_=e.onInputMouseDown,A=e.onInputCompositionStart,z=e.onInputCompositionEnd,H=a.useRef(null),V=(0,a.useState)(0),F=(0,d.Z)(V,2),B=F[0],U=F[1],W=(0,a.useState)(!1),G=(0,d.Z)(W,2),Y=G[0],q=G[1],X="".concat(i,"-selection"),J=u||"tags"===m?s:"",$="tags"===m||h&&(u||Y);function Q(e,t,n,o,i){return a.createElement("span",{className:l()("".concat(X,"-item"),(0,r.Z)({},"".concat(X,"-item-disabled"),n)),title:"string"===typeof e||"number"===typeof e?e.toString():void 0},a.createElement("span",{className:"".concat(X,"-item-content")},t),o&&a.createElement(D,{className:"".concat(X,"-item-remove"),onMouseDown:L,onClick:i,customizeIcon:E},"\xd7"))}t=function(){U(H.current.scrollWidth)},n=[J],j?a.useLayoutEffect(t,n):a.useEffect(t,n);var ee=a.createElement("div",{className:"".concat(X,"-search"),style:{width:B},onFocus:function(){q(!0)},onBlur:function(){q(!1)}},a.createElement(T,{ref:f,open:u,prefixCls:i,id:o,inputElement:null,disabled:v,autoFocus:y,autoComplete:g,editable:$,activeDescendantId:b,value:J,onKeyDown:R,onMouseDown:_,onChange:P,onPaste:M,onCompositionStart:A,onCompositionEnd:z,tabIndex:x,attrs:(0,K.Z)(e,!0)}),a.createElement("span",{ref:H,className:"".concat(X,"-search-mirror"),"aria-hidden":!0},J,"\xa0")),te=a.createElement(I.Z,{prefixCls:"".concat(X,"-overflow"),data:c,renderItem:function(e){var t=e.disabled,n=e.label,r=e.value,o=!v&&!t,i=n;if("number"===typeof w&&("string"===typeof n||"number"===typeof n)){var c=String(i);c.length>w&&(i="".concat(c.slice(0,w),"..."))}var l=function(t){t&&t.stopPropagation(),O(e)};return"function"===typeof S?function(e,t,n,r,o){return a.createElement("span",{onMouseDown:function(e){L(e),k(!u)}},S({label:t,value:e,disabled:n,closable:r,onClose:o}))}(r,i,t,o,l):Q(n,i,t,o,l)},renderRest:function(e){var t="function"===typeof N?N(e):N;return Q(t,t,!1)},suffix:ee,itemKey:"key",maxCount:C});return a.createElement(a.Fragment,null,te,!c.length&&!J&&a.createElement("span",{className:"".concat(X,"-placeholder")},p))},z=function(e){var t=e.inputElement,n=e.prefixCls,r=e.id,o=e.inputRef,i=e.disabled,c=e.autoFocus,l=e.autoComplete,u=e.activeDescendantId,s=e.mode,f=e.open,p=e.values,v=e.placeholder,m=e.tabIndex,h=e.showSearch,y=e.searchValue,g=e.activeValue,b=e.maxLength,x=e.onInputKeyDown,E=e.onInputMouseDown,C=e.onInputChange,w=e.onInputPaste,Z=e.onInputCompositionStart,N=e.onInputCompositionEnd,S=a.useState(!1),k=(0,d.Z)(S,2),O=k[0],P=k[1],I="combobox"===s,D=I||h,M=p[0],R=y||"";I&&g&&!O&&(R=g),a.useEffect((function(){I&&P(!1)}),[I,g]);var _=!("combobox"!==s&&!f)&&!!R,j=!M||"string"!==typeof M.label&&"number"!==typeof M.label?void 0:M.label.toString();return a.createElement(a.Fragment,null,a.createElement("span",{className:"".concat(n,"-selection-search")},a.createElement(T,{ref:o,prefixCls:n,id:r,open:f,inputElement:t,disabled:i,autoFocus:c,autoComplete:l,editable:D,activeDescendantId:u,value:R,onKeyDown:x,onMouseDown:E,onChange:function(e){P(!0),C(e)},onPaste:w,onCompositionStart:Z,onCompositionEnd:N,tabIndex:m,attrs:(0,K.Z)(e,!0),maxLength:I?b:void 0})),!I&&M&&!_&&a.createElement("span",{className:"".concat(n,"-selection-item"),title:j},M.label),function(){if(M)return null;var e=_?{visibility:"hidden"}:void 0;return a.createElement("span",{className:"".concat(n,"-selection-placeholder"),style:e},v)}())};function H(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:250,t=a.useRef(null),n=a.useRef(null);function r(r){(r||null===t.current)&&(t.current=r),window.clearTimeout(n.current),n.current=window.setTimeout((function(){t.current=null}),e)}return a.useEffect((function(){return function(){window.clearTimeout(n.current)}}),[]),[function(){return t.current},r]}var V=function(e,t){var n=(0,a.useRef)(null),r=(0,a.useRef)(!1),i=e.prefixCls,c=e.open,l=e.mode,u=e.showSearch,s=e.tokenWithEnter,f=e.onSearch,p=e.onSearchSubmit,v=e.onToggleOpen,m=e.onInputKeyDown,y=e.domRef;a.useImperativeHandle(t,(function(){return{focus:function(){n.current.focus()},blur:function(){n.current.blur()}}}));var g=H(0),b=(0,d.Z)(g,2),x=b[0],E=b[1],C=(0,a.useRef)(null),w=function(e){!1!==f(e,!0,r.current)&&v(!0)},Z={inputRef:n,onInputKeyDown:function(e){var t,n=e.which;n!==h.Z.UP&&n!==h.Z.DOWN||e.preventDefault(),m&&m(e),n!==h.Z.ENTER||"tags"!==l||r.current||c||null===p||void 0===p||p(e.target.value),t=n,[h.Z.ESC,h.Z.SHIFT,h.Z.BACKSPACE,h.Z.TAB,h.Z.WIN_KEY,h.Z.ALT,h.Z.META,h.Z.WIN_KEY_RIGHT,h.Z.CTRL,h.Z.SEMICOLON,h.Z.EQUALS,h.Z.CAPS_LOCK,h.Z.CONTEXT_MENU,h.Z.F1,h.Z.F2,h.Z.F3,h.Z.F4,h.Z.F5,h.Z.F6,h.Z.F7,h.Z.F8,h.Z.F9,h.Z.F10,h.Z.F11,h.Z.F12].includes(t)||v(!0)},onInputMouseDown:function(){E(!0)},onInputChange:function(e){var t=e.target.value;if(s&&C.current&&/[\r\n]/.test(C.current)){var n=C.current.replace(/[\r\n]+$/,"").replace(/\r\n/g," ").replace(/[\r\n]/g," ");t=t.replace(n,C.current)}C.current=null,w(t)},onInputPaste:function(e){var t=e.clipboardData.getData("text");C.current=t},onInputCompositionStart:function(){r.current=!0},onInputCompositionEnd:function(e){r.current=!1,"combobox"!==l&&w(e.target.value)}},N="multiple"===l||"tags"===l?a.createElement(A,(0,o.Z)({},e,Z)):a.createElement(z,(0,o.Z)({},e,Z));return a.createElement("div",{ref:y,className:"".concat(i,"-selector"),onClick:function(e){e.target!==n.current&&(void 0!==document.body.style.msTouchAction?setTimeout((function(){n.current.focus()})):n.current.focus())},onMouseDown:function(e){var t=x();e.target===n.current||t||e.preventDefault(),("combobox"===l||u&&t)&&c||(c&&f("",!0,!1),v())}},N)},F=a.forwardRef(V);F.displayName="Selector";var B=F;var U=a.createContext(null);var W=["id","prefixCls","className","showSearch","tagRender","direction","omitDomProps","displayValues","onDisplayValuesChange","emptyOptions","notFoundContent","onClear","mode","disabled","loading","getInputElement","getRawInputElement","open","defaultOpen","onDropdownVisibleChange","activeValue","onActiveValueChange","activeDescendantId","searchValue","onSearch","onSearchSplit","tokenSeparators","allowClear","showArrow","inputIcon","clearIcon","OptionList","animation","transitionName","dropdownStyle","dropdownClassName","dropdownMatchSelectWidth","dropdownRender","dropdownAlign","placement","getPopupContainer","showAction","onFocus","onBlur","onKeyUp","onKeyDown","onMouseDown"],G=["value","onChange","removeIcon","placeholder","autoFocus","maxTagCount","maxTagTextLength","maxTagPlaceholder","choiceTransitionName","onInputKeyDown","onPopupScroll","tabIndex"];function Y(e){return"tags"===e||"multiple"===e}var q=a.forwardRef((function(e,t){var n,i,c=e.id,v=e.prefixCls,b=e.className,C=e.showSearch,w=e.tagRender,Z=e.direction,N=e.omitDomProps,S=e.displayValues,k=e.onDisplayValuesChange,O=e.emptyOptions,K=e.notFoundContent,I=void 0===K?"Not Found":K,M=e.onClear,R=e.mode,T=e.disabled,_=e.loading,j=e.getInputElement,L=e.getRawInputElement,A=e.open,z=e.defaultOpen,V=e.onDropdownVisibleChange,F=e.activeValue,q=e.onActiveValueChange,X=e.activeDescendantId,J=e.searchValue,$=e.onSearch,Q=e.onSearchSplit,ee=e.tokenSeparators,te=e.allowClear,ne=e.showArrow,re=e.inputIcon,oe=e.clearIcon,ae=e.OptionList,ie=e.animation,ce=e.transitionName,le=e.dropdownStyle,ue=e.dropdownClassName,se=e.dropdownMatchSelectWidth,de=e.dropdownRender,fe=e.dropdownAlign,pe=e.placement,ve=e.getPopupContainer,me=e.showAction,he=void 0===me?[]:me,ye=e.onFocus,ge=e.onBlur,be=e.onKeyUp,xe=e.onKeyDown,Ee=e.onMouseDown,Ce=(0,f.Z)(e,W),we=Y(R),Ze=(void 0!==C?C:we)||"combobox"===R,Ne=(0,s.Z)({},Ce);G.forEach((function(e){delete Ne[e]})),null===N||void 0===N||N.forEach((function(e){delete Ne[e]}));var Se=a.useState(!1),ke=(0,d.Z)(Se,2),Oe=ke[0],Pe=ke[1];a.useEffect((function(){Pe((0,y.Z)())}),[]);var Ke=a.useRef(null),Ie=a.useRef(null),De=a.useRef(null),Me=a.useRef(null),Re=a.useRef(null),Te=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,t=a.useState(!1),n=(0,d.Z)(t,2),r=n[0],o=n[1],i=a.useRef(null),c=function(){window.clearTimeout(i.current)};return a.useEffect((function(){return c}),[]),[r,function(t,n){c(),i.current=window.setTimeout((function(){o(t),n&&n()}),e)},c]}(),_e=(0,d.Z)(Te,3),je=_e[0],Le=_e[1],Ae=_e[2];a.useImperativeHandle(t,(function(){var e,t;return{focus:null===(e=Me.current)||void 0===e?void 0:e.focus,blur:null===(t=Me.current)||void 0===t?void 0:t.blur,scrollTo:function(e){var t;return null===(t=Re.current)||void 0===t?void 0:t.scrollTo(e)}}}));var ze=a.useMemo((function(){var e;if("combobox"!==R)return J;var t=null===(e=S[0])||void 0===e?void 0:e.value;return"string"===typeof t||"number"===typeof t?String(t):""}),[J,R,S]),He="combobox"===R&&"function"===typeof j&&j()||null,Ve="function"===typeof L&&L(),Fe=(0,g.x1)(Ie,null===Ve||void 0===Ve||null===(n=Ve.props)||void 0===n?void 0:n.ref),Be=(0,m.Z)(void 0,{defaultValue:z,value:A}),Ue=(0,d.Z)(Be,2),We=Ue[0],Ge=Ue[1],Ye=We,qe=!I&&O;(T||qe&&Ye&&"combobox"===R)&&(Ye=!1);var Xe=!qe&&Ye,Je=a.useCallback((function(e){var t=void 0!==e?e:!Ye;Ye===t||T||(Ge(t),null===V||void 0===V||V(t))}),[T,Ye,Ge,V]),$e=a.useMemo((function(){return(ee||[]).some((function(e){return["\n","\r\n"].includes(e)}))}),[ee]),Qe=function(e,t,n){var r=!0,o=e;null===q||void 0===q||q(null);var a=n?null:function(e,t){if(!t||!t.length)return null;var n=!1,r=function e(t,r){var o=(0,E.Z)(r),a=o[0],i=o.slice(1);if(!a)return[t];var c=t.split(a);return n=n||c.length>1,c.reduce((function(t,n){return[].concat((0,u.Z)(t),(0,u.Z)(e(n,i)))}),[]).filter((function(e){return e}))}(e,t);return n?r:null}(e,ee);return"combobox"!==R&&a&&(o="",null===Q||void 0===Q||Q(a),Je(!1),r=!1),$&&ze!==o&&$(o,{source:t?"typing":"effect"}),r};a.useEffect((function(){Ye||we||"combobox"===R||Qe("",!1,!1)}),[Ye]),a.useEffect((function(){We&&T&&Ge(!1),T&&Le(!1)}),[T]);var et=H(),tt=(0,d.Z)(et,2),nt=tt[0],rt=tt[1],ot=a.useRef(!1),at=[];a.useEffect((function(){return function(){at.forEach((function(e){return clearTimeout(e)})),at.splice(0,at.length)}}),[]);var it,ct=a.useState(null),lt=(0,d.Z)(ct,2),ut=lt[0],st=lt[1],dt=a.useState({}),ft=(0,d.Z)(dt,2)[1];x((function(){if(Xe){var e,t=Math.ceil(null===(e=Ke.current)||void 0===e?void 0:e.offsetWidth);ut===t||Number.isNaN(t)||st(t)}}),[Xe]),Ve&&(it=function(e){Je(e)}),function(e,t,n){var r=a.useRef(null);r.current={open:t,triggerOpen:n},a.useEffect((function(){function t(t){var n=t.target;n.shadowRoot&&t.composed&&(n=t.composedPath()[0]||n),r.current.open&&e().filter((function(e){return e})).every((function(e){return!e.contains(n)&&e!==n}))&&r.current.triggerOpen(!1)}return window.addEventListener("mousedown",t),function(){return window.removeEventListener("mousedown",t)}}),[])}((function(){var e;return[Ke.current,null===(e=De.current)||void 0===e?void 0:e.getPopupElement()]}),Xe,Je);var pt,vt,mt=a.useMemo((function(){return(0,s.Z)((0,s.Z)({},e),{},{notFoundContent:I,open:Ye,triggerOpen:Xe,id:c,showSearch:Ze,multiple:we,toggleOpen:Je})}),[e,I,Xe,Ye,c,Ze,we,Je]),ht=void 0!==ne?ne:_||!we&&"combobox"!==R;ht&&(pt=a.createElement(D,{className:l()("".concat(v,"-arrow"),(0,r.Z)({},"".concat(v,"-arrow-loading"),_)),customizeIcon:re,customizeIconProps:{loading:_,searchValue:ze,open:Ye,focused:je,showSearch:Ze}}));!T&&te&&(S.length||ze)&&(vt=a.createElement(D,{className:"".concat(v,"-clear"),onMouseDown:function(){null===M||void 0===M||M(),k([],{type:"clear",values:S}),Qe("",!1,!1)},customizeIcon:oe},"\xd7"));var yt,gt=a.createElement(ae,{ref:Re}),bt=l()(v,b,(i={},(0,r.Z)(i,"".concat(v,"-focused"),je),(0,r.Z)(i,"".concat(v,"-multiple"),we),(0,r.Z)(i,"".concat(v,"-single"),!we),(0,r.Z)(i,"".concat(v,"-allow-clear"),te),(0,r.Z)(i,"".concat(v,"-show-arrow"),ht),(0,r.Z)(i,"".concat(v,"-disabled"),T),(0,r.Z)(i,"".concat(v,"-loading"),_),(0,r.Z)(i,"".concat(v,"-open"),Ye),(0,r.Z)(i,"".concat(v,"-customize-input"),He),(0,r.Z)(i,"".concat(v,"-show-search"),Ze),i)),xt=a.createElement(P,{ref:De,disabled:T,prefixCls:v,visible:Xe,popupElement:gt,containerWidth:ut,animation:ie,transitionName:ce,dropdownStyle:le,dropdownClassName:ue,direction:Z,dropdownMatchSelectWidth:se,dropdownRender:de,dropdownAlign:fe,placement:pe,getPopupContainer:ve,empty:O,getTriggerDOMNode:function(){return Ie.current},onPopupVisibleChange:it,onPopupMouseEnter:function(){ft({})}},Ve?a.cloneElement(Ve,{ref:Fe}):a.createElement(B,(0,o.Z)({},e,{domRef:Ie,prefixCls:v,inputElement:He,ref:Me,id:c,showSearch:Ze,mode:R,activeDescendantId:X,tagRender:w,values:S,open:Ye,onToggleOpen:Je,activeValue:F,searchValue:ze,onSearch:Qe,onSearchSubmit:function(e){e&&e.trim()&&$(e,{source:"submit"})},onRemove:function(e){var t=S.filter((function(t){return t!==e}));k(t,{type:"remove",values:[e]})},tokenWithEnter:$e})));return yt=Ve?xt:a.createElement("div",(0,o.Z)({className:bt},Ne,{ref:Ke,onMouseDown:function(e){var t,n=e.target,r=null===(t=De.current)||void 0===t?void 0:t.getPopupElement();if(r&&r.contains(n)){var o=setTimeout((function(){var e,t=at.indexOf(o);-1!==t&&at.splice(t,1),Ae(),Oe||r.contains(document.activeElement)||null===(e=Me.current)||void 0===e||e.focus()}));at.push(o)}for(var a=arguments.length,i=new Array(a>1?a-1:0),c=1;c<a;c++)i[c-1]=arguments[c];null===Ee||void 0===Ee||Ee.apply(void 0,[e].concat(i))},onKeyDown:function(e){var t,n=nt(),r=e.which;if(r===h.Z.ENTER&&("combobox"!==R&&e.preventDefault(),Ye||Je(!0)),rt(!!ze),r===h.Z.BACKSPACE&&!n&&we&&!ze&&S.length){for(var o=(0,u.Z)(S),a=null,i=o.length-1;i>=0;i-=1){var c=o[i];if(!c.disabled){o.splice(i,1),a=c;break}}a&&k(o,{type:"remove",values:[a]})}for(var l=arguments.length,s=new Array(l>1?l-1:0),d=1;d<l;d++)s[d-1]=arguments[d];Ye&&Re.current&&(t=Re.current).onKeyDown.apply(t,[e].concat(s)),null===xe||void 0===xe||xe.apply(void 0,[e].concat(s))},onKeyUp:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var o;Ye&&Re.current&&(o=Re.current).onKeyUp.apply(o,[e].concat(n)),null===be||void 0===be||be.apply(void 0,[e].concat(n))},onFocus:function(){Le(!0),T||(ye&&!ot.current&&ye.apply(void 0,arguments),he.includes("focus")&&Je(!0)),ot.current=!0},onBlur:function(){Le(!1,(function(){ot.current=!1,Je(!1)})),T||(ze&&("tags"===R?$(ze,{source:"submit"}):"multiple"===R&&$("",{source:"blur"})),ge&&ge.apply(void 0,arguments))}}),je&&!Ye&&a.createElement("span",{style:{width:0,height:0,display:"flex",overflow:"hidden",opacity:0},"aria-live":"polite"},"".concat(S.map((function(e){var t=e.label,n=e.value;return["number","string"].includes((0,p.Z)(t))?t:n})).join(", "))),xt,pt,vt),a.createElement(U.Provider,{value:mt},yt)})),X=n(56982),J=n(73453);var $=a.createContext(null),Q=["disabled","title","children","style","className"],ee=function(e,t){var n=a.useContext(U),c=n.prefixCls,u=n.id,s=n.open,p=n.multiple,v=n.searchValue,m=n.toggleOpen,y=n.notFoundContent,g=n.onPopupScroll,b=a.useContext($),x=b.flattenOptions,E=b.onActiveValue,C=b.defaultActiveFirstOption,w=b.onSelect,Z=b.menuItemSelectedIcon,N=b.rawValues,S=b.fieldNames,k=b.virtual,O=b.listHeight,P=b.listItemHeight,I="".concat(c,"-item"),M=(0,X.Z)((function(){return x}),[s,x],(function(e,t){return t[0]&&e[1]!==t[1]})),R=a.useRef(null),T=function(e){e.preventDefault()},_=function(e){R.current&&R.current.scrollTo({index:e})},j=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=M.length,r=0;r<n;r+=1){var o=(e+r*t+n)%n,a=M[o],i=a.group,c=a.data;if(!i&&!c.disabled)return o}return-1},L=a.useState((function(){return j(0)})),A=(0,d.Z)(L,2),z=A[0],H=A[1],V=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];H(e);var n={source:t?"keyboard":"mouse"},r=M[e];r?E(r.data.value,e,n):E(null,-1,n)};(0,a.useEffect)((function(){V(!1!==C?j(0):-1)}),[M.length,v]),(0,a.useEffect)((function(){var e,t=setTimeout((function(){if(!p&&s&&1===N.size){var e=Array.from(N)[0],t=M.findIndex((function(t){return t.data.value===e}));-1!==t&&(V(t),_(t))}}));s&&(null===(e=R.current)||void 0===e||e.scrollTo(void 0));return function(){return clearTimeout(t)}}),[s,v]);var F=function(e){void 0!==e&&w(e,{selected:!N.has(e)}),p||m(!1)};if(a.useImperativeHandle(t,(function(){return{onKeyDown:function(e){var t=e.which,n=e.ctrlKey;switch(t){case h.Z.N:case h.Z.P:case h.Z.UP:case h.Z.DOWN:var r=0;if(t===h.Z.UP?r=-1:t===h.Z.DOWN?r=1:/(mac\sos|macintosh)/i.test(navigator.appVersion)&&n&&(t===h.Z.N?r=1:t===h.Z.P&&(r=-1)),0!==r){var o=j(z+r,r);_(o),V(o,!0)}break;case h.Z.ENTER:var a=M[z];a&&!a.data.disabled?F(a.data.value):F(void 0),s&&e.preventDefault();break;case h.Z.ESC:m(!1),s&&e.stopPropagation()}},onKeyUp:function(){},scrollTo:function(e){_(e)}}})),0===M.length)return a.createElement("div",{role:"listbox",id:"".concat(u,"_list"),className:"".concat(I,"-empty"),onMouseDown:T},y);var B=Object.keys(S).map((function(e){return S[e]})),W=function(e){return e.label},G=function(e){var t=M[e];if(!t)return null;var n=t.data||{},r=n.value,i=t.group,c=(0,K.Z)(n,!0),l=W(t);return t?a.createElement("div",(0,o.Z)({"aria-label":"string"!==typeof l||i?null:l},c,{key:e,role:i?"presentation":"option",id:"".concat(u,"_list_").concat(e),"aria-selected":N.has(r)}),r):null};return a.createElement(a.Fragment,null,a.createElement("div",{role:"listbox",id:"".concat(u,"_list"),style:{height:0,width:0,overflow:"hidden"}},G(z-1),G(z),G(z+1)),a.createElement(J.Z,{itemKey:"key",ref:R,data:M,height:O,itemHeight:P,fullHeight:!1,onMouseDown:T,onScroll:g,virtual:k},(function(e,t){var n,c=e.group,u=e.groupOption,s=e.data,d=e.label,p=e.value,v=s.key;if(c)return a.createElement("div",{className:l()(I,"".concat(I,"-group"))},void 0!==d?d:v);var m=s.disabled,h=s.title,y=(s.children,s.style),g=s.className,b=(0,f.Z)(s,Q),x=(0,i.Z)(b,B),E=N.has(p),C="".concat(I,"-option"),w=l()(I,C,g,(n={},(0,r.Z)(n,"".concat(C,"-grouped"),u),(0,r.Z)(n,"".concat(C,"-active"),z===t&&!m),(0,r.Z)(n,"".concat(C,"-disabled"),m),(0,r.Z)(n,"".concat(C,"-selected"),E),n)),S=W(e),k=!Z||"function"===typeof Z||E,O=S||p,P="string"===typeof O||"number"===typeof O?O.toString():void 0;return void 0!==h&&(P=h),a.createElement("div",(0,o.Z)({},x,{"aria-selected":E,className:w,title:P,onMouseMove:function(){z===t||m||V(t)},onClick:function(){m||F(p)},style:y}),a.createElement("div",{className:"".concat(C,"-content")},O),a.isValidElement(Z)||E,k&&a.createElement(D,{className:"".concat(I,"-option-state"),customizeIcon:Z,customizeIconProps:{isSelected:E}},E?"\u2713":null))})))},te=a.forwardRef(ee);te.displayName="OptionList";var ne=te,re=function(){return null};re.isSelectOption=!0;var oe=re,ae=function(){return null};ae.isSelectOptGroup=!0;var ie=ae,ce=n(50344),le=["children","value"],ue=["children"];function se(e){var t=e.key,n=e.props,r=n.children,o=n.value,a=(0,f.Z)(n,le);return(0,s.Z)({key:t,value:void 0!==o?o:t,children:r},a)}function de(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return(0,ce.Z)(e).map((function(e,n){if(!a.isValidElement(e)||!e.type)return null;var r=e.type.isSelectOptGroup,o=e.key,i=e.props,c=i.children,l=(0,f.Z)(i,ue);return t||!r?se(e):(0,s.Z)((0,s.Z)({key:"__RC_SELECT_GRP__".concat(null===o?n:o,"__"),label:o},l),{},{options:de(c)})})).filter((function(e){return e}))}function fe(e,t,n){return a.useMemo((function(){var r=e;!e&&(r=de(t));var o=new Map,a=new Map;return function e(t){for(var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=0;i<t.length;i+=1){var c=t[i];!c[n.options]||r?(o.set(c[n.value],c),a.set(c[n.label],c)):e(c[n.options],!0)}}(r),{options:r,valueOptions:o,labelOptions:a}}),[e,t,n])}var pe=0,ve=(0,b.Z)();function me(e){var t=a.useState(),n=(0,d.Z)(t,2),r=n[0],o=n[1];return a.useEffect((function(){o("rc_select_".concat(function(){var e;return ve?(e=pe,pe+=1):e="TEST_OR_SSR",e}()))}),[]),e||r}function he(e){var t=a.useRef();return t.current=e,a.useCallback((function(){return t.current.apply(t,arguments)}),[])}function ye(e,t){return _(e).join("").toUpperCase().includes(t)}var ge=["id","mode","prefixCls","backfill","fieldNames","inputValue","searchValue","onSearch","autoClearSearchValue","onSelect","onDeselect","filterOption","filterSort","optionFilterProp","optionLabelProp","options","children","defaultActiveFirstOption","menuItemSelectedIcon","virtual","listHeight","listItemHeight","value","defaultValue","labelInValue","onChange"],be=["inputValue"];var xe=a.forwardRef((function(e,t){var n=e.id,i=e.mode,c=e.prefixCls,l=void 0===c?"rc-select":c,v=e.backfill,h=e.fieldNames,y=e.inputValue,g=e.searchValue,b=e.onSearch,x=e.autoClearSearchValue,E=void 0===x||x,N=e.onSelect,S=e.onDeselect,k=e.filterOption,O=e.filterSort,P=e.optionFilterProp,K=e.optionLabelProp,I=e.options,D=e.children,M=e.defaultActiveFirstOption,R=e.menuItemSelectedIcon,T=e.virtual,j=e.listHeight,L=void 0===j?200:j,A=e.listItemHeight,z=void 0===A?20:A,H=e.value,V=e.defaultValue,F=e.labelInValue,B=e.onChange,U=(0,f.Z)(e,ge),W=me(n),G=Y(i),X=!(I||!D),J=a.useMemo((function(){return(void 0!==k||"combobox"!==i)&&k}),[k,i]),Q=a.useMemo((function(){return w(h,X)}),[JSON.stringify(h),X]),ee=(0,m.Z)("",{value:void 0!==g?g:y,postState:function(e){return e||""}}),te=(0,d.Z)(ee,2),re=te[0],oe=te[1],ae=fe(I,D,Q),ie=ae.valueOptions,ce=ae.labelOptions,le=ae.options,ue=a.useCallback((function(e){return _(e).map((function(e){var t,n,r,o,a;(function(e){return!e||"object"!==(0,p.Z)(e)})(e)?t=e:(r=e.key,n=e.label,t=null!==(a=e.value)&&void 0!==a?a:r);var i,c=ie.get(t);c&&(void 0===n&&(n=null===c||void 0===c?void 0:c[K||Q.label]),void 0===r&&(r=null!==(i=null===c||void 0===c?void 0:c.key)&&void 0!==i?i:t),o=null===c||void 0===c?void 0:c.disabled);return{label:n,value:t,key:r,disabled:o}}))}),[Q,K,ie]),se=(0,m.Z)(V,{value:H}),de=(0,d.Z)(se,2),pe=de[0],ve=de[1],xe=function(e,t){var n=a.useRef({values:new Map,options:new Map});return[a.useMemo((function(){var r=n.current,o=r.values,a=r.options,i=e.map((function(e){var t;return void 0===e.label?(0,s.Z)((0,s.Z)({},e),{},{label:null===(t=o.get(e.value))||void 0===t?void 0:t.label}):e})),c=new Map,l=new Map;return i.forEach((function(e){c.set(e.value,e),l.set(e.value,t.get(e.value)||a.get(e.value))})),n.current.values=c,n.current.options=l,i}),[e,t]),a.useCallback((function(e){return t.get(e)||n.current.options.get(e)}),[t])]}(a.useMemo((function(){var e,t=ue(pe);return"combobox"!==i||(null===(e=t[0])||void 0===e?void 0:e.value)?t:[]}),[pe,ue,i]),ie),Ee=(0,d.Z)(xe,2),Ce=Ee[0],we=Ee[1],Ze=a.useMemo((function(){if(!i&&1===Ce.length){var e=Ce[0];if(null===e.value&&(null===e.label||void 0===e.label))return[]}return Ce.map((function(e){var t;return(0,s.Z)((0,s.Z)({},e),{},{label:null!==(t=e.label)&&void 0!==t?t:e.value})}))}),[i,Ce]),Ne=a.useMemo((function(){return new Set(Ce.map((function(e){return e.value})))}),[Ce]);a.useEffect((function(){if("combobox"===i){var e,t=null===(e=Ce[0])||void 0===e?void 0:e.value;void 0!==t&&null!==t&&oe(String(t))}}),[Ce]);var Se=he((function(e,t){var n,o=null!==t&&void 0!==t?t:e;return n={},(0,r.Z)(n,Q.value,e),(0,r.Z)(n,Q.label,o),n})),ke=function(e,t,n,o,i){return a.useMemo((function(){if(!n||!1===o)return e;var a=t.options,c=t.label,l=t.value,u=[],d="function"===typeof o,f=n.toUpperCase(),p=d?o:function(e,t){return i?ye(t[i],f):t[a]?ye(t["children"!==c?c:"label"],f):ye(t[l],f)},v=d?function(e){return Z(e)}:function(e){return e};return e.forEach((function(e){if(e[a])if(p(n,v(e)))u.push(e);else{var t=e[a].filter((function(e){return p(n,v(e))}));t.length&&u.push((0,s.Z)((0,s.Z)({},e),{},(0,r.Z)({},a,t)))}else p(n,v(e))&&u.push(e)})),u}),[e,o,i,n,t])}(a.useMemo((function(){if("tags"!==i)return le;var e=(0,u.Z)(le);return(0,u.Z)(Ce).sort((function(e,t){return e.value<t.value?-1:1})).forEach((function(t){var n=t.value;(function(e){return ie.has(e)})(n)||e.push(Se(n,t.label))})),e}),[Se,le,ie,Ce,i]),Q,re,J,P),Oe=a.useMemo((function(){return"tags"!==i||!re||ke.some((function(e){return e[P||"value"]===re}))?ke:[Se(re)].concat((0,u.Z)(ke))}),[Se,P,i,ke,re]),Pe=a.useMemo((function(){return O?(0,u.Z)(Oe).sort((function(e,t){return O(e,t)})):Oe}),[Oe,O]),Ke=a.useMemo((function(){return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.fieldNames,r=t.childrenAsData,o=[],a=w(n,!1),i=a.label,c=a.value,l=a.options;function u(e,t){e.forEach((function(e){var n=e[i];if(t||!(l in e)){var a=e[c];o.push({key:C(e,o.length),groupOption:t,data:e,label:n,value:a})}else{var s=n;void 0===s&&r&&(s=e.label),o.push({key:C(e,o.length),group:!0,data:e,label:s}),u(e[l],!0)}}))}return u(e,!1),o}(Pe,{fieldNames:Q,childrenAsData:X})}),[Pe,Q,X]),Ie=function(e){var t=ue(e);if(ve(t),B&&(t.length!==Ce.length||t.some((function(e,t){var n;return(null===(n=Ce[t])||void 0===n?void 0:n.value)!==(null===e||void 0===e?void 0:e.value)})))){var n=F?t:t.map((function(e){return e.value})),r=t.map((function(e){return Z(we(e.value))}));B(G?n:n[0],G?r:r[0])}},De=a.useState(null),Me=(0,d.Z)(De,2),Re=Me[0],Te=Me[1],_e=a.useState(0),je=(0,d.Z)(_e,2),Le=je[0],Ae=je[1],ze=void 0!==M?M:"combobox"!==i,He=a.useCallback((function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.source,o=void 0===r?"keyboard":r;Ae(t),v&&"combobox"===i&&null!==e&&"keyboard"===o&&Te(String(e))}),[v,i]),Ve=function(e,t){var n=function(){var t,n=we(e);return[F?{label:null===n||void 0===n?void 0:n[Q.label],value:e,key:null!==(t=n.key)&&void 0!==t?t:e}:e,Z(n)]};if(t&&N){var r=n(),o=(0,d.Z)(r,2),a=o[0],i=o[1];N(a,i)}else if(!t&&S){var c=n(),l=(0,d.Z)(c,2),u=l[0],s=l[1];S(u,s)}},Fe=he((function(e,t){var n,r=!G||t.selected;n=r?G?[].concat((0,u.Z)(Ce),[e]):[e]:Ce.filter((function(t){return t.value!==e})),Ie(n),Ve(e,r),"combobox"===i?Te(""):Y&&!E||(oe(""),Te(""))})),Be=a.useMemo((function(){return(0,s.Z)((0,s.Z)({},ae),{},{flattenOptions:Ke,onActiveValue:He,defaultActiveFirstOption:ze,onSelect:Fe,menuItemSelectedIcon:R,rawValues:Ne,fieldNames:Q,virtual:T,listHeight:L,listItemHeight:z,childrenAsData:X})}),[ae,Ke,He,ze,Fe,R,Ne,Q,T,L,z,X]);return a.createElement($.Provider,{value:Be},a.createElement(q,(0,o.Z)({},U,{id:W,prefixCls:l,ref:t,omitDomProps:be,mode:i,displayValues:Ze,onDisplayValuesChange:function(e,t){Ie(e),"remove"!==t.type&&"clear"!==t.type||t.values.forEach((function(e){Ve(e.value,!1)}))},searchValue:re,onSearch:function(e,t){if(oe(e),Te(null),"submit"!==t.source)"blur"!==t.source&&("combobox"===i&&Ie(e),null===b||void 0===b||b(e));else{var n=(e||"").trim();if(n){var r=Array.from(new Set([].concat((0,u.Z)(Ne),[n])));Ie(r),Ve(n,!0),oe("")}}},onSearchSplit:function(e){var t=e;"tags"!==i&&(t=e.map((function(e){var t=ce.get(e);return null===t||void 0===t?void 0:t.value})).filter((function(e){return void 0!==e})));var n=Array.from(new Set([].concat((0,u.Z)(Ne),(0,u.Z)(t))));Ie(n),n.forEach((function(e){Ve(e,!0)}))},OptionList:ne,emptyOptions:!Ke.length,activeValue:Re,activeDescendantId:"".concat(W,"_list_").concat(Le)})))}));xe.Option=oe,xe.OptGroup=ie;var Ee=xe,Ce=n(59844),we=n(80882),Ze=n(50888),Ne=n(63606),Se=n(97937),ke=n(4340),Oe=n(68795);var Pe=n(97647),Ke=n(33603),Ie=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},De="SECRET_COMBOBOX_MODE_DO_NOT_USE",Me=function(e,t){var n,c,u=e.prefixCls,s=e.bordered,d=void 0===s||s,f=e.className,p=e.getPopupContainer,v=e.dropdownClassName,m=e.listHeight,h=void 0===m?256:m,y=e.listItemHeight,g=void 0===y?24:y,b=e.size,x=e.notFoundContent,E=Ie(e,["prefixCls","bordered","className","getPopupContainer","dropdownClassName","listHeight","listItemHeight","size","notFoundContent"]),C=a.useContext(Ce.E_),w=C.getPopupContainer,Z=C.getPrefixCls,N=C.renderEmpty,S=C.direction,k=C.virtual,O=C.dropdownMatchSelectWidth,P=a.useContext(Pe.Z),K=Z("select",u),I=Z(),D=a.useMemo((function(){var e=E.mode;if("combobox"!==e)return e===De?"combobox":e}),[E.mode]),M="multiple"===D||"tags"===D;c=void 0!==x?x:"combobox"===D?null:N("Select");var R=function(e){var t=e.suffixIcon,n=e.clearIcon,r=e.menuItemSelectedIcon,o=e.removeIcon,i=e.loading,c=e.multiple,l=e.prefixCls,u=n;n||(u=a.createElement(ke.Z,null));var s=null;if(void 0!==t)s=t;else if(i)s=a.createElement(Ze.Z,{spin:!0});else{var d="".concat(l,"-suffix");s=function(e){var t=e.open,n=e.showSearch;return t&&n?a.createElement(Oe.Z,{className:d}):a.createElement(we.Z,{className:d})}}return{clearIcon:u,suffixIcon:s,itemIcon:void 0!==r?r:c?a.createElement(Ne.Z,null):null,removeIcon:void 0!==o?o:a.createElement(Se.Z,null)}}((0,o.Z)((0,o.Z)({},E),{multiple:M,prefixCls:K})),T=R.suffixIcon,_=R.itemIcon,j=R.removeIcon,L=R.clearIcon,A=(0,i.Z)(E,["suffixIcon","itemIcon"]),z=l()(v,(0,r.Z)({},"".concat(K,"-dropdown-").concat(S),"rtl"===S)),H=b||P,V=l()((n={},(0,r.Z)(n,"".concat(K,"-lg"),"large"===H),(0,r.Z)(n,"".concat(K,"-sm"),"small"===H),(0,r.Z)(n,"".concat(K,"-rtl"),"rtl"===S),(0,r.Z)(n,"".concat(K,"-borderless"),!d),n),f);return a.createElement(Ee,(0,o.Z)({ref:t,virtual:k,dropdownMatchSelectWidth:O},A,{transitionName:(0,Ke.m)(I,"slide-up",E.transitionName),listHeight:h,listItemHeight:g,mode:D,prefixCls:K,direction:S,inputIcon:T,menuItemSelectedIcon:_,removeIcon:j,clearIcon:L,notFoundContent:c,className:V,getPopupContainer:p||w,dropdownClassName:z}))},Re=a.forwardRef(Me);Re.SECRET_COMBOBOX_MODE_DO_NOT_USE=De,Re.Option=oe,Re.OptGroup=ie;var Te=Re},88829:function(e,t,n){"use strict";n.d(t,{Z:function(){return Go}});var r=n(71002),o=n(4942),a=n(97685),i=n(87462),c=n(67294),l=n(94184),u=n.n(l),s=n(98423),d=n(1413),f=n(74902),p=n(5110),v=n(64217),m=n(79370),h=n(96774),y=n.n(h),g=n(80334),b=n(48555),x=n(74204);var E=function(e){return null};var C=function(e){return null},w=n(91),Z=n(42550);function N(e){return void 0===e||null===e?[]:Array.isArray(e)?e:[e]}function S(e,t){if(!t&&"number"!==typeof t)return e;for(var n=N(t),r=e,o=0;o<n.length;o+=1){if(!r)return null;r=r[n[o]]}return r}function k(e){var t=[],n={};return e.forEach((function(e){for(var r=e||{},o=r.key,a=r.dataIndex,i=o||N(a).join("-")||"RC_TABLE_KEY";n[i];)i="".concat(i,"_next");n[i]=!0,t.push(i)})),t}function O(e){return null!==e&&void 0!==e}var P=c.createContext(!1),K=c.createContext({}),I=["colSpan","rowSpan","style","className"];function D(e,t){var n,a,i,l,s,f,p=e.prefixCls,v=e.className,m=e.record,h=e.index,y=e.renderIndex,g=e.dataIndex,b=e.render,x=e.children,E=e.component,C=void 0===E?"td":E,N=e.colSpan,k=e.rowSpan,K=e.fixLeft,D=e.fixRight,M=e.firstFixLeft,R=e.lastFixLeft,T=e.firstFixRight,_=e.lastFixRight,j=e.appendNode,L=e.additionalProps,A=void 0===L?{}:L,z=e.ellipsis,H=e.align,V=e.rowType,F=e.isSticky,B=e.hovering,U=e.onHover,W="".concat(p,"-cell"),G=c.useContext(P);if(O(x))s=x;else{var Y=S(m,g);if(s=Y,b){var q=b(Y,m,y);!(f=q)||"object"!==(0,r.Z)(f)||Array.isArray(f)||c.isValidElement(f)?s=q:(s=q.children,l=q.props)}}"object"!==(0,r.Z)(s)||Array.isArray(s)||c.isValidElement(s)||(s=null),z&&(R||T)&&(s=c.createElement("span",{className:"".concat(W,"-content")},s));var X=l||{},J=X.colSpan,$=X.rowSpan,Q=X.style,ee=X.className,te=(0,w.Z)(X,I),ne=null!==(n=void 0!==J?J:N)&&void 0!==n?n:1,re=null!==(a=void 0!==$?$:k)&&void 0!==a?a:1;if(0===ne||0===re)return null;var oe={},ae="number"===typeof K&&G,ie="number"===typeof D&&G;ae&&(oe.position="sticky",oe.left=K),ie&&(oe.position="sticky",oe.right=D);var ce={};H&&(ce.textAlign=H);var le,ue=!0===z?{showTitle:!0}:z;ue&&(ue.showTitle||"header"===V)&&("string"===typeof s||"number"===typeof s?le=s.toString():c.isValidElement(s)&&"string"===typeof s.props.children&&(le=s.props.children));var se,de=(0,d.Z)((0,d.Z)((0,d.Z)({title:le},te),A),{},{colSpan:1!==ne?ne:null,rowSpan:1!==re?re:null,className:u()(W,v,(i={},(0,o.Z)(i,"".concat(W,"-fix-left"),ae&&G),(0,o.Z)(i,"".concat(W,"-fix-left-first"),M&&G),(0,o.Z)(i,"".concat(W,"-fix-left-last"),R&&G),(0,o.Z)(i,"".concat(W,"-fix-right"),ie&&G),(0,o.Z)(i,"".concat(W,"-fix-right-first"),T&&G),(0,o.Z)(i,"".concat(W,"-fix-right-last"),_&&G),(0,o.Z)(i,"".concat(W,"-ellipsis"),z),(0,o.Z)(i,"".concat(W,"-with-append"),j),(0,o.Z)(i,"".concat(W,"-fix-sticky"),(ae||ie)&&F&&G),(0,o.Z)(i,"".concat(W,"-row-hover"),!l&&B),i),A.className,ee),style:(0,d.Z)((0,d.Z)((0,d.Z)((0,d.Z)({},A.style),ce),oe),Q),onMouseEnter:function(e){var t;m&&U(h,h+re-1),null===A||void 0===A||null===(t=A.onMouseEnter)||void 0===t||t.call(A,e)},onMouseLeave:function(e){var t;m&&U(-1,-1),null===A||void 0===A||null===(t=A.onMouseLeave)||void 0===t||t.call(A,e)},ref:(se=C,"string"===typeof se||(0,Z.Yr)(se)?t:null)});return c.createElement(C,de,j,s)}var M=c.forwardRef(D);M.displayName="Cell";var R=["expanded","className","hovering"],T=c.memo(M,(function(e,t){return t.shouldCellUpdate?R.every((function(n){return e[n]===t[n]}))&&!t.shouldCellUpdate(t.record,e.record):y()(e,t)})),_=c.forwardRef((function(e,t){var n=c.useContext(K),r=n.onHover,o=n.startRow,a=n.endRow,l=e.index,u=e.additionalProps,s=void 0===u?{}:u,d=e.colSpan,f=e.rowSpan,p=s.colSpan,v=s.rowSpan,m=null!==d&&void 0!==d?d:p,h=null!==f&&void 0!==f?f:v,y=function(e,t,n,r){return e<=r&&e+t-1>=n}(l,h||1,o,a);return c.createElement(T,(0,i.Z)({},e,{colSpan:m,rowSpan:h,hovering:y,ref:t,onHover:r}))}));_.displayName="WrappedCell";var j=_,L=c.createContext(null);function A(e,t,n,r,o){var a,i,c=n[e]||{},l=n[t]||{};"left"===c.fixed?a=r.left[e]:"right"===l.fixed&&(i=r.right[t]);var u=!1,s=!1,d=!1,f=!1,p=n[t+1],v=n[e-1];if("rtl"===o){if(void 0!==a)f=!(v&&"left"===v.fixed);else if(void 0!==i){d=!(p&&"right"===p.fixed)}}else if(void 0!==a){u=!(p&&"left"===p.fixed)}else if(void 0!==i){s=!(v&&"right"===v.fixed)}return{fixLeft:a,fixRight:i,lastFixLeft:u,firstFixRight:s,lastFixRight:d,firstFixLeft:f,isSticky:r.isSticky}}function z(e){var t,n=e.cells,r=e.stickyOffsets,o=e.flattenColumns,a=e.rowComponent,l=e.cellComponent,u=e.onHeaderRow,s=e.index,d=c.useContext(L),f=d.prefixCls,p=d.direction;u&&(t=u(n.map((function(e){return e.column})),s));var v=k(n.map((function(e){return e.column})));return c.createElement(a,t,n.map((function(e,t){var n,a=e.column,u=A(e.colStart,e.colEnd,o,r,p);return a&&a.onHeaderCell&&(n=e.column.onHeaderCell(a)),c.createElement(j,(0,i.Z)({},e,{ellipsis:a.ellipsis,align:a.align,component:l,prefixCls:f,key:v[t]},u,{additionalProps:n,rowType:"header"}))})))}z.displayName="HeaderRow";var H=z;var V=function(e){var t=e.stickyOffsets,n=e.columns,r=e.flattenColumns,o=e.onHeaderRow,a=c.useContext(L),i=a.prefixCls,l=a.getComponent,u=c.useMemo((function(){return function(e){var t=[];!function e(n,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;t[o]=t[o]||[];var a=r;return n.filter(Boolean).map((function(n){var r={key:n.key,className:n.className||"",children:n.title,column:n,colStart:a},i=1,c=n.children;return c&&c.length>0&&(i=e(c,a,o+1).reduce((function(e,t){return e+t}),0),r.hasSubColumns=!0),"colSpan"in n&&(i=n.colSpan),"rowSpan"in n&&(r.rowSpan=n.rowSpan),r.colSpan=i,r.colEnd=r.colStart+i-1,t[o].push(r),a+=i,i}))}(e,0);for(var n=t.length,r=function(e){t[e].forEach((function(t){"rowSpan"in t||t.hasSubColumns||(t.rowSpan=n-e)}))},o=0;o<n;o+=1)r(o);return t}(n)}),[n]),s=l(["header","wrapper"],"thead"),d=l(["header","row"],"tr"),f=l(["header","cell"],"th");return c.createElement(s,{className:"".concat(i,"-thead")},u.map((function(e,n){return c.createElement(H,{key:n,flattenColumns:r,cells:e,stickyOffsets:t,rowComponent:d,cellComponent:f,onHeaderRow:o,index:n})})))},F=c.createContext(null),B=c.createContext(null);var U=function(e){var t=e.prefixCls,n=e.children,r=e.component,o=e.cellComponent,a=e.className,i=e.expanded,l=e.colSpan,u=e.isEmpty,s=c.useContext(L).scrollbarSize,d=c.useContext(B),f=d.fixHeader,p=d.fixColumn,v=d.componentWidth,m=d.horizonScroll;return c.useMemo((function(){var e=n;return(u?m:p)&&(e=c.createElement("div",{style:{width:v-(f?s:0),position:"sticky",left:0,overflow:"hidden"},className:"".concat(t,"-expanded-row-fixed")},e)),c.createElement(r,{className:a,style:{display:i?null:"none"}},c.createElement(j,{component:o,prefixCls:t,colSpan:l},e))}),[n,r,a,i,l,u,s,v,p,f,m])},W=c.createContext(null);function G(e){var t=e.className,n=e.style,r=e.record,o=e.index,l=e.renderIndex,s=e.rowKey,f=e.rowExpandable,p=e.expandedKeys,v=e.onRow,m=e.indent,h=void 0===m?0:m,y=e.rowComponent,g=e.cellComponent,b=e.childrenColumnName,x=c.useContext(L),E=x.prefixCls,C=x.fixedInfoList,w=c.useContext(F),Z=w.flattenColumns,N=w.expandableType,S=w.expandRowByClick,O=w.onTriggerExpand,P=w.rowClassName,K=w.expandedRowClassName,I=w.indentSize,D=w.expandIcon,M=w.expandedRowRender,R=w.expandIconColumnIndex,T=c.useState(!1),_=(0,a.Z)(T,2),A=_[0],z=_[1],H=p&&p.has(e.recordKey);c.useEffect((function(){H&&z(!0)}),[H]);var V="row"===N&&(!f||f(r)),B="nest"===N,W=b&&r&&r[b],G=V||B,Y=c.useRef(O);Y.current=O;var q,X=function(){Y.current.apply(Y,arguments)};v&&(q=v(r,o));var J;"string"===typeof P?J=P:"function"===typeof P&&(J=P(r,o,h));var $,Q=k(Z),ee=c.createElement(y,(0,i.Z)({},q,{"data-row-key":s,className:u()(t,"".concat(E,"-row"),"".concat(E,"-row-level-").concat(h),J,q&&q.className),style:(0,d.Z)((0,d.Z)({},n),q?q.style:null),onClick:function(e){var t,n;S&&G&&X(r,e);for(var o=arguments.length,a=new Array(o>1?o-1:0),i=1;i<o;i++)a[i-1]=arguments[i];null===(t=q)||void 0===t||null===(n=t.onClick)||void 0===n||n.call.apply(n,[t,e].concat(a))}}),Z.map((function(e,t){var n,a,u=e.render,s=e.dataIndex,d=e.className,f=Q[t],p=C[t];return t===(R||0)&&B&&(n=c.createElement(c.Fragment,null,c.createElement("span",{style:{paddingLeft:"".concat(I*h,"px")},className:"".concat(E,"-row-indent indent-level-").concat(h)}),D({prefixCls:E,expanded:H,expandable:W,record:r,onExpand:X}))),e.onCell&&(a=e.onCell(r,o)),c.createElement(j,(0,i.Z)({className:d,ellipsis:e.ellipsis,align:e.align,component:g,prefixCls:E,key:f,record:r,index:o,renderIndex:l,dataIndex:s,render:u,shouldCellUpdate:e.shouldCellUpdate,expanded:n&&H},p,{appendNode:n,additionalProps:a}))})));if(V&&(A||H)){var te=M(r,o,h+1,H),ne=K&&K(r,o,h);$=c.createElement(U,{expanded:H,className:u()("".concat(E,"-expanded-row"),"".concat(E,"-expanded-row-level-").concat(h+1),ne),prefixCls:E,component:y,cellComponent:g,colSpan:Z.length,isEmpty:!1},te)}return c.createElement(c.Fragment,null,ee,$)}G.displayName="BodyRow";var Y=G;function q(e,t,n,r,o,a){var i=[];i.push({record:e,indent:t,index:a});var c=o(e),l=null===r||void 0===r?void 0:r.has(c);if(e&&Array.isArray(e[n])&&l)for(var u=0;u<e[n].length;u+=1){var s=q(e[n][u],t+1,n,r,o,u);i.push.apply(i,(0,f.Z)(s))}return i}function X(e){var t=e.columnKey,n=e.onColumnResize,r=c.useRef();return c.useEffect((function(){r.current&&n(t,r.current.offsetWidth)}),[]),c.createElement(b.default,{data:t},c.createElement("td",{ref:r,style:{padding:0,border:0,height:0}},c.createElement("div",{style:{height:0,overflow:"hidden"}},"\xa0")))}var J=n(75164);function $(e){var t=e.prefixCls,n=e.columnsKey,r=e.onColumnResize,o=c.useRef(new Map),a=c.useRef(null);return c.useEffect((function(){return function(){J.Z.cancel(a.current)}}),[]),c.createElement("tr",{"aria-hidden":"true",className:"".concat(t,"-measure-row"),style:{height:0,fontSize:0}},c.createElement(b.default.Collection,{onBatchResize:function(e){e.forEach((function(e){var t=e.data,n=e.size;o.current.set(t,n.offsetWidth)})),null===a.current&&(a.current=(0,J.Z)((function(){o.current.forEach((function(e,t){r(t,e)})),o.current.clear(),a.current=null}),2))}},n.map((function(e){return c.createElement(X,{key:e,columnKey:e,onColumnResize:r})}))))}function Q(e){var t=e.data,n=e.getRowKey,r=e.measureColumnWidth,o=e.expandedKeys,i=e.onRow,l=e.rowExpandable,u=e.emptyNode,s=e.childrenColumnName,d=c.useContext(W).onColumnResize,p=c.useContext(L),v=p.prefixCls,m=p.getComponent,h=c.useContext(F).flattenColumns,y=function(e,t,n,r){return c.useMemo((function(){if(null===n||void 0===n?void 0:n.size){for(var o=[],a=0;a<(null===e||void 0===e?void 0:e.length);a+=1){var i=e[a];o.push.apply(o,(0,f.Z)(q(i,0,t,n,r,a)))}return o}return null===e||void 0===e?void 0:e.map((function(e,t){return{record:e,indent:0,index:t}}))}),[e,t,n,r])}(t,s,o,n),g=c.useState(-1),b=(0,a.Z)(g,2),x=b[0],E=b[1],C=c.useState(-1),w=(0,a.Z)(C,2),Z=w[0],N=w[1],S=c.useCallback((function(e,t){E(e),N(t)}),[]),O=c.useMemo((function(){return{startRow:x,endRow:Z,onHover:S}}),[S,x,Z]),P=c.useMemo((function(){var e,a=m(["body","wrapper"],"tbody"),f=m(["body","row"],"tr"),p=m(["body","cell"],"td");e=t.length?y.map((function(e,t){var r=e.record,a=e.indent,u=e.index,d=n(r,t);return c.createElement(Y,{key:d,rowKey:d,record:r,recordKey:d,index:t,renderIndex:u,rowComponent:f,cellComponent:p,expandedKeys:o,onRow:i,getRowKey:n,rowExpandable:l,childrenColumnName:s,indent:a})})):c.createElement(U,{expanded:!0,className:"".concat(v,"-placeholder"),prefixCls:v,component:f,cellComponent:p,colSpan:h.length,isEmpty:!0},u);var g=k(h);return c.createElement(a,{className:"".concat(v,"-tbody")},r&&c.createElement($,{prefixCls:v,columnsKey:g,onColumnResize:d}),e)}),[t,v,i,r,o,n,m,u,h,s,d,l,y]);return c.createElement(K.Provider,{value:O},P)}var ee=c.memo(Q);ee.displayName="Body";var te=ee,ne=n(50344),re=["expandable"],oe="RC_TABLE_INTERNAL_COL_DEFINE";var ae={},ie=["children"],ce=["fixed"];function le(e){return(0,ne.Z)(e).filter((function(e){return c.isValidElement(e)})).map((function(e){var t=e.key,n=e.props,r=n.children,o=(0,w.Z)(n,ie),a=(0,d.Z)({key:t},o);return r&&(a.children=le(r)),a}))}function ue(e){return e.reduce((function(e,t){var n=t.fixed,r=!0===n?"left":n,o=t.children;return o&&o.length>0?[].concat((0,f.Z)(e),(0,f.Z)(ue(o).map((function(e){return(0,d.Z)({fixed:r},e)})))):[].concat((0,f.Z)(e),[(0,d.Z)((0,d.Z)({},t),{},{fixed:r})])}),[])}var se=function(e,t){var n=e.prefixCls,r=e.columns,a=e.children,i=e.expandable,l=e.expandedKeys,u=e.getRowKey,s=e.onTriggerExpand,f=e.expandIcon,p=e.rowExpandable,v=e.expandIconColumnIndex,m=e.direction,h=e.expandRowByClick,y=e.columnWidth,g=e.fixed,b=c.useMemo((function(){return r||le(a)}),[r,a]),x=c.useMemo((function(){if(i){var e,t=b.slice();if(!t.includes(ae)){var r=v||0;r>=0&&t.splice(r,0,ae)}0;var a=t.indexOf(ae);t=t.filter((function(e,t){return e!==ae||t===a}));var d,m=b[a];d="left"!==g&&!g||v?"right"!==g&&!g||v!==b.length?m?m.fixed:null:"right":"left";var x=(e={},(0,o.Z)(e,oe,{className:"".concat(n,"-expand-icon-col"),columnType:"EXPAND_COLUMN"}),(0,o.Z)(e,"title",""),(0,o.Z)(e,"fixed",d),(0,o.Z)(e,"className","".concat(n,"-row-expand-icon-cell")),(0,o.Z)(e,"width",y),(0,o.Z)(e,"render",(function(e,t,r){var o=u(t,r),a=l.has(o),i=!p||p(t),d=f({prefixCls:n,expanded:a,expandable:i,record:t,onExpand:s});return h?c.createElement("span",{onClick:function(e){return e.stopPropagation()}},d):d})),e);return t.map((function(e){return e===ae?x:e}))}return b.filter((function(e){return e!==ae}))}),[i,b,u,l,f,m]),E=c.useMemo((function(){var e=x;return t&&(e=t(e)),e.length||(e=[{render:function(){return null}}]),e}),[t,x,m]),C=c.useMemo((function(){return"rtl"===m?function(e){return e.map((function(e){var t=e.fixed,n=(0,w.Z)(e,ce),r=t;return"left"===t?r="right":"right"===t&&(r="left"),(0,d.Z)({fixed:r},n)}))}(ue(E)):ue(E)}),[E,m]);return[E,C]};function de(e){var t=(0,c.useRef)(e),n=(0,c.useState)({}),r=(0,a.Z)(n,2)[1],o=(0,c.useRef)(null),i=(0,c.useRef)([]);return(0,c.useEffect)((function(){return function(){o.current=null}}),[]),[t.current,function(e){i.current.push(e);var n=Promise.resolve();o.current=n,n.then((function(){if(o.current===n){var e=i.current,a=t.current;i.current=[],e.forEach((function(e){t.current=e(t.current)})),o.current=null,a!==t.current&&r({})}}))}]}var fe=function(e,t,n){return(0,c.useMemo)((function(){for(var r=[],o=[],a=0,i=0,c=0;c<t;c+=1)if("rtl"===n){o[c]=i,i+=e[c]||0;var l=t-c-1;r[l]=a,a+=e[l]||0}else{r[c]=a,a+=e[c]||0;var u=t-c-1;o[u]=i,i+=e[u]||0}return{left:r,right:o}}),[e,t,n])},pe=["columnType"];var ve=function(e){for(var t=e.colWidths,n=e.columns,r=[],o=!1,a=(e.columCount||n.length)-1;a>=0;a-=1){var l=t[a],u=n&&n[a],s=u&&u[oe];if(l||s||o){var d=s||{},f=(d.columnType,(0,w.Z)(d,pe));r.unshift(c.createElement("col",(0,i.Z)({key:a,style:{width:l}},f))),o=!0}}return c.createElement("colgroup",null,r)};var me=function(e){var t=e.className,n=e.children;return c.createElement("div",{className:t},n)};var he=["children"];function ye(e){return e.children}ye.Row=function(e){var t=e.children,n=(0,w.Z)(e,he);return c.createElement("tr",n,t)},ye.Cell=function(e){var t=e.className,n=e.index,r=e.children,o=e.colSpan,a=void 0===o?1:o,l=e.rowSpan,u=e.align,s=c.useContext(L),d=s.prefixCls,f=s.direction,p=c.useContext(be),v=p.scrollColumnIndex,m=p.stickyOffsets,h=n+a-1+1===v?a+1:a,y=A(n,n+h-1,p.flattenColumns,m,f);return c.createElement(j,(0,i.Z)({className:t,index:n,component:"td",prefixCls:d,record:null,dataIndex:null,align:u,colSpan:h,rowSpan:l,render:function(){return r}},y))};var ge=ye,be=c.createContext({});var xe=function(e){var t=e.children,n=e.stickyOffsets,r=e.flattenColumns,o=c.useContext(L).prefixCls,a=r.length-1,i=r[a],l=c.useMemo((function(){return{stickyOffsets:n,flattenColumns:r,scrollColumnIndex:(null===i||void 0===i?void 0:i.scrollbar)?a:null}}),[i,r,a,n]);return c.createElement(be.Provider,{value:l},c.createElement("tfoot",{className:"".concat(o,"-summary")},t))},Ee=ge;function Ce(e){var t,n=e.prefixCls,r=e.record,a=e.onExpand,i=e.expanded,l=e.expandable,s="".concat(n,"-row-expand-icon");if(!l)return c.createElement("span",{className:u()(s,"".concat(n,"-row-spaced"))});return c.createElement("span",{className:u()(s,(t={},(0,o.Z)(t,"".concat(n,"-row-expanded"),i),(0,o.Z)(t,"".concat(n,"-row-collapsed"),!i),t)),onClick:function(e){a(r,e),e.stopPropagation()}})}var we=n(64019);function Ze(e){var t=e.getBoundingClientRect(),n=document.documentElement;return{left:t.left+(window.pageXOffset||n.scrollLeft)-(n.clientLeft||document.body.clientLeft||0),top:t.top+(window.pageYOffset||n.scrollTop)-(n.clientTop||document.body.clientTop||0)}}var Ne=function(e,t){var n,r,i=e.scrollBodyRef,l=e.onScroll,s=e.offsetScroll,f=e.container,p=c.useContext(L).prefixCls,v=(null===(n=i.current)||void 0===n?void 0:n.scrollWidth)||0,m=(null===(r=i.current)||void 0===r?void 0:r.clientWidth)||0,h=v&&m*(m/v),y=c.useRef(),g=de({scrollLeft:0,isHiddenScrollBar:!1}),b=(0,a.Z)(g,2),E=b[0],C=b[1],w=c.useRef({delta:0,x:0}),Z=c.useState(!1),N=(0,a.Z)(Z,2),S=N[0],k=N[1],O=function(){k(!1)},P=function(e){var t,n=(e||(null===(t=window)||void 0===t?void 0:t.event)).buttons;if(S&&0!==n){var r=w.current.x+e.pageX-w.current.x-w.current.delta;r<=0&&(r=0),r+h>=m&&(r=m-h),l({scrollLeft:r/m*(v+2)}),w.current.x=e.pageX}else S&&k(!1)},K=function(){if(i.current){var e=Ze(i.current).top,t=e+i.current.offsetHeight,n=f===window?document.documentElement.scrollTop+window.innerHeight:Ze(f).top+f.clientHeight;t-(0,x.Z)()<=n||e>=n-s?C((function(e){return(0,d.Z)((0,d.Z)({},e),{},{isHiddenScrollBar:!0})})):C((function(e){return(0,d.Z)((0,d.Z)({},e),{},{isHiddenScrollBar:!1})}))}},I=function(e){C((function(t){return(0,d.Z)((0,d.Z)({},t),{},{scrollLeft:e/v*m||0})}))};return c.useImperativeHandle(t,(function(){return{setScrollLeft:I}})),c.useEffect((function(){var e=(0,we.Z)(document.body,"mouseup",O,!1),t=(0,we.Z)(document.body,"mousemove",P,!1);return K(),function(){e.remove(),t.remove()}}),[h,S]),c.useEffect((function(){var e=(0,we.Z)(f,"scroll",K,!1),t=(0,we.Z)(window,"resize",K,!1);return function(){e.remove(),t.remove()}}),[f]),c.useEffect((function(){E.isHiddenScrollBar||C((function(e){var t=i.current;return t?(0,d.Z)((0,d.Z)({},e),{},{scrollLeft:t.scrollLeft/t.scrollWidth*t.clientWidth}):e}))}),[E.isHiddenScrollBar]),v<=m||!h||E.isHiddenScrollBar?null:c.createElement("div",{style:{height:(0,x.Z)(),width:m,bottom:s},className:"".concat(p,"-sticky-scroll")},c.createElement("div",{onMouseDown:function(e){e.persist(),w.current.delta=e.pageX-E.scrollLeft,w.current.x=0,k(!0),e.preventDefault()},ref:y,className:u()("".concat(p,"-sticky-scroll-bar"),(0,o.Z)({},"".concat(p,"-sticky-scroll-bar-active"),S)),style:{width:"".concat(h,"px"),transform:"translate3d(".concat(E.scrollLeft,"px, 0, 0)")}}))},Se=c.forwardRef(Ne),ke=(0,n(98924).Z)()?window:null;var Oe=["className","noData","columns","flattenColumns","colWidths","columCount","stickyOffsets","direction","fixHeader","stickyTopOffset","stickyBottomOffset","stickyClassName","onScroll","maxContentScroll","children"];var Pe=c.forwardRef((function(e,t){var n=e.className,r=e.noData,a=e.columns,i=e.flattenColumns,l=e.colWidths,s=e.columCount,p=e.stickyOffsets,v=e.direction,m=e.fixHeader,h=e.stickyTopOffset,y=e.stickyBottomOffset,g=e.stickyClassName,b=e.onScroll,x=e.maxContentScroll,E=e.children,C=(0,w.Z)(e,Oe),N=c.useContext(L),S=N.prefixCls,k=N.scrollbarSize,O=N.isSticky,P=O&&!m?0:k,K=c.useRef(null),I=c.useCallback((function(e){(0,Z.mH)(t,e),(0,Z.mH)(K,e)}),[]);c.useEffect((function(){var e;function t(e){var t=e.currentTarget,n=e.deltaX;n&&(b({currentTarget:t,scrollLeft:t.scrollLeft+n}),e.preventDefault())}return null===(e=K.current)||void 0===e||e.addEventListener("wheel",t),function(){var e;null===(e=K.current)||void 0===e||e.removeEventListener("wheel",t)}}),[]);var D=c.useMemo((function(){return i.every((function(e){return e.width>=0}))}),[i]),M=i[i.length-1],R={fixed:M?M.fixed:null,scrollbar:!0,onHeaderCell:function(){return{className:"".concat(S,"-cell-scrollbar")}}},T=(0,c.useMemo)((function(){return P?[].concat((0,f.Z)(a),[R]):a}),[P,a]),_=(0,c.useMemo)((function(){return P?[].concat((0,f.Z)(i),[R]):i}),[P,i]),j=(0,c.useMemo)((function(){var e=p.right,t=p.left;return(0,d.Z)((0,d.Z)({},p),{},{left:"rtl"===v?[].concat((0,f.Z)(t.map((function(e){return e+P}))),[0]):t,right:"rtl"===v?e:[].concat((0,f.Z)(e.map((function(e){return e+P}))),[0]),isSticky:O})}),[P,p,O]),A=function(e,t){return(0,c.useMemo)((function(){for(var n=[],r=0;r<t;r+=1){var o=e[r];if(void 0===o)return null;n[r]=o}return n}),[e.join("_"),t])}(l,s);return c.createElement("div",{style:(0,d.Z)({overflow:"hidden"},O?{top:h,bottom:y}:{}),ref:I,className:u()(n,(0,o.Z)({},g,!!g))},c.createElement("table",{style:{tableLayout:"fixed",visibility:r||A?null:"hidden"}},(!r||!x||D)&&c.createElement(ve,{colWidths:A?[].concat((0,f.Z)(A),[P]):[],columCount:s+1,columns:_}),E((0,d.Z)((0,d.Z)({},C),{},{stickyOffsets:j,columns:T,flattenColumns:_}))))}));Pe.displayName="FixedHolder";var Ke=Pe,Ie=[],De={},Me="rc-table-internal-hook",Re=c.memo((function(e){return e.children}),(function(e,t){return!!y()(e.props,t.props)&&(e.pingLeft!==t.pingLeft||e.pingRight!==t.pingRight)}));function Te(e){var t,n=e.prefixCls,l=e.className,s=e.rowClassName,h=e.style,y=e.data,E=e.rowKey,C=e.scroll,Z=e.tableLayout,N=e.direction,K=e.title,I=e.footer,D=e.summary,M=e.id,R=e.showHeader,T=e.components,_=e.emptyText,j=e.onRow,z=e.onHeaderRow,H=e.internalHooks,U=e.transformColumns,G=e.internalRefs,Y=e.sticky,q=y||Ie,X=!!q.length;var J=c.useMemo((function(){return function(){var e={};function t(e,n){n&&Object.keys(n).forEach((function(o){var a=n[o];a&&"object"===(0,r.Z)(a)?(e[o]=e[o]||{},t(e[o],a)):e[o]=a}))}for(var n=arguments.length,o=new Array(n),a=0;a<n;a++)o[a]=arguments[a];return o.forEach((function(n){t(e,n)})),e}(T,{})}),[T]),$=c.useCallback((function(e,t){return S(J,e)||t}),[J]),Q=c.useMemo((function(){return"function"===typeof E?E:function(e){return e&&e[E]}}),[E]),ee=function(e){var t,n=e.expandable,r=(0,w.Z)(e,re);return!1===(t="expandable"in e?(0,d.Z)((0,d.Z)({},r),n):r).showExpandColumn&&(t.expandIconColumnIndex=-1),t}(e),ne=ee.expandIcon,oe=ee.expandedRowKeys,ae=ee.defaultExpandedRowKeys,ie=ee.defaultExpandAllRows,ce=ee.expandedRowRender,le=ee.onExpand,ue=ee.onExpandedRowsChange,pe=ee.expandRowByClick,he=ee.rowExpandable,ye=ee.expandIconColumnIndex,be=ee.expandedRowClassName,Ee=ee.childrenColumnName,we=ee.indentSize,Ze=ne||Ce,Ne=Ee||"children",Oe=c.useMemo((function(){return ce?"row":!!(e.expandable&&H===Me&&e.expandable.__PARENT_RENDER_ICON__||q.some((function(e){return e&&"object"===(0,r.Z)(e)&&e[Ne]})))&&"nest"}),[!!ce,q]),Pe=c.useState((function(){return ae||(ie?function(e,t,n){var r=[];return function e(o){(o||[]).forEach((function(o,a){r.push(t(o,a)),e(o[n])}))}(e),r}(q,Q,Ne):[])})),Te=(0,a.Z)(Pe,2),_e=Te[0],je=Te[1],Le=c.useMemo((function(){return new Set(oe||_e||[])}),[oe,_e]),Ae=c.useCallback((function(e){var t,n=Q(e,q.indexOf(e)),r=Le.has(n);r?(Le.delete(n),t=(0,f.Z)(Le)):t=[].concat((0,f.Z)(Le),[n]),je(t),le&&le(!r,e),ue&&ue(t)}),[Q,Le,q,le,ue]);var ze,He,Ve,Fe=c.useState(0),Be=(0,a.Z)(Fe,2),Ue=Be[0],We=Be[1],Ge=se((0,d.Z)((0,d.Z)((0,d.Z)({},e),ee),{},{expandable:!!ce,expandedKeys:Le,getRowKey:Q,onTriggerExpand:Ae,expandIcon:Ze,expandIconColumnIndex:ye,direction:N}),H===Me?U:null),Ye=(0,a.Z)(Ge,2),qe=Ye[0],Xe=Ye[1],Je=c.useMemo((function(){return{columns:qe,flattenColumns:Xe}}),[qe,Xe]),$e=c.useRef(),Qe=c.useRef(),et=c.useRef(),tt=c.useRef(),nt=c.useState(!1),rt=(0,a.Z)(nt,2),ot=rt[0],at=rt[1],it=c.useState(!1),ct=(0,a.Z)(it,2),lt=ct[0],ut=ct[1],st=de(new Map),dt=(0,a.Z)(st,2),ft=dt[0],pt=dt[1],vt=k(Xe).map((function(e){return ft.get(e)})),mt=c.useMemo((function(){return vt}),[vt.join("_")]),ht=fe(mt,Xe.length,N),yt=C&&O(C.y),gt=C&&O(C.x)||Boolean(ee.fixed),bt=gt&&Xe.some((function(e){return e.fixed})),xt=c.useRef(),Et=function(e,t){var n="object"===(0,r.Z)(e)?e:{},o=n.offsetHeader,a=void 0===o?0:o,i=n.offsetSummary,l=void 0===i?0:i,u=n.offsetScroll,s=void 0===u?0:u,d=n.getContainer,f=(void 0===d?function(){return ke}:d)()||ke;return c.useMemo((function(){var n=!!e;return{isSticky:n,stickyClassName:n?"".concat(t,"-sticky-holder"):"",offsetHeader:a,offsetSummary:l,offsetScroll:s,container:f}}),[s,a,l,t,f])}(Y,n),Ct=Et.isSticky,wt=Et.offsetHeader,Zt=Et.offsetSummary,Nt=Et.offsetScroll,St=Et.stickyClassName,kt=Et.container,Ot=null===D||void 0===D?void 0:D(q),Pt=(yt||Ct)&&c.isValidElement(Ot)&&Ot.type===ge&&Ot.props.fixed;yt&&(He={overflowY:"scroll",maxHeight:C.y}),gt&&(ze={overflowX:"auto"},yt||(He={overflowY:"hidden"}),Ve={width:!0===C.x?"auto":C.x,minWidth:"100%"});var Kt=c.useCallback((function(e,t){(0,p.Z)($e.current)&&pt((function(n){if(n.get(e)!==t){var r=new Map(n);return r.set(e,t),r}return n}))}),[]),It=function(e){var t=(0,c.useRef)(e||null),n=(0,c.useRef)();function r(){window.clearTimeout(n.current)}return(0,c.useEffect)((function(){return r}),[]),[function(e){t.current=e,r(),n.current=window.setTimeout((function(){t.current=null,n.current=void 0}),100)},function(){return t.current}]}(null),Dt=(0,a.Z)(It,2),Mt=Dt[0],Rt=Dt[1];function Tt(e,t){t&&("function"===typeof t?t(e):t.scrollLeft!==e&&(t.scrollLeft=e))}var _t=function(e){var t,n=e.currentTarget,r=e.scrollLeft,o="rtl"===N,a="number"===typeof r?r:n.scrollLeft,i=n||De;Rt()&&Rt()!==i||(Mt(i),Tt(a,Qe.current),Tt(a,et.current),Tt(a,tt.current),Tt(a,null===(t=xt.current)||void 0===t?void 0:t.setScrollLeft));if(n){var c=n.scrollWidth,l=n.clientWidth;o?(at(-a<c-l),ut(-a>0)):(at(a>0),ut(a<c-l))}},jt=function(){gt&&et.current?_t({currentTarget:et.current}):(at(!1),ut(!1))},Lt=c.useRef(!1);c.useEffect((function(){Lt.current&&jt()}),[gt,y,qe.length]),c.useEffect((function(){Lt.current=!0}),[]);var At=c.useState(0),zt=(0,a.Z)(At,2),Ht=zt[0],Vt=zt[1],Ft=c.useState(!0),Bt=(0,a.Z)(Ft,2),Ut=Bt[0],Wt=Bt[1];c.useEffect((function(){Vt((0,x.o)(et.current).width),Wt((0,m.G)("position","sticky"))}),[]),c.useEffect((function(){H===Me&&G&&(G.body.current=et.current)}));var Gt,Yt=$(["table"],"table"),qt=c.useMemo((function(){return Z||(bt?"max-content"===C.x?"auto":"fixed":yt||Ct||Xe.some((function(e){return e.ellipsis}))?"fixed":"auto")}),[yt,bt,Xe,Z,Ct]),Xt={colWidths:mt,columCount:Xe.length,stickyOffsets:ht,onHeaderRow:z,fixHeader:yt,scroll:C},Jt=c.useMemo((function(){return X?null:"function"===typeof _?_():_}),[X,_]),$t=c.createElement(te,{data:q,measureColumnWidth:yt||gt||Ct,expandedKeys:Le,rowExpandable:he,getRowKey:Q,onRow:j,emptyNode:Jt,childrenColumnName:Ne}),Qt=c.createElement(ve,{colWidths:Xe.map((function(e){return e.width})),columns:Xe}),en=$(["body"]);if(yt||Ct){var tn;"function"===typeof en?(tn=en(q,{scrollbarSize:Ht,ref:et,onScroll:_t}),Xt.colWidths=Xe.map((function(e,t){var n=e.width,r=t===qe.length-1?n-Ht:n;return"number"!==typeof r||Number.isNaN(r)?((0,g.ZP)(!1,"When use `components.body` with render props. Each column should have a fixed `width` value."),0):r}))):tn=c.createElement("div",{style:(0,d.Z)((0,d.Z)({},ze),He),onScroll:_t,ref:et,className:u()("".concat(n,"-body"))},c.createElement(Yt,{style:(0,d.Z)((0,d.Z)({},Ve),{},{tableLayout:qt})},Qt,$t,!Pt&&Ot&&c.createElement(xe,{stickyOffsets:ht,flattenColumns:Xe},Ot)));var nn=(0,d.Z)((0,d.Z)((0,d.Z)({noData:!q.length,maxContentScroll:gt&&"max-content"===C.x},Xt),Je),{},{direction:N,stickyClassName:St,onScroll:_t});Gt=c.createElement(c.Fragment,null,!1!==R&&c.createElement(Ke,(0,i.Z)({},nn,{stickyTopOffset:wt,className:"".concat(n,"-header"),ref:Qe}),(function(e){return c.createElement(c.Fragment,null,c.createElement(V,e),"top"===Pt&&c.createElement(xe,e,Ot))})),tn,Pt&&"top"!==Pt&&c.createElement(Ke,(0,i.Z)({},nn,{stickyBottomOffset:Zt,className:"".concat(n,"-summary"),ref:tt}),(function(e){return c.createElement(xe,e,Ot)})),Ct&&c.createElement(Se,{ref:xt,offsetScroll:Nt,scrollBodyRef:et,onScroll:_t,container:kt}))}else Gt=c.createElement("div",{style:(0,d.Z)((0,d.Z)({},ze),He),className:u()("".concat(n,"-content")),onScroll:_t,ref:et},c.createElement(Yt,{style:(0,d.Z)((0,d.Z)({},Ve),{},{tableLayout:qt})},Qt,!1!==R&&c.createElement(V,(0,i.Z)({},Xt,Je)),$t,Ot&&c.createElement(xe,{stickyOffsets:ht,flattenColumns:Xe},Ot)));var rn=(0,v.Z)(e,{aria:!0,data:!0}),on=c.createElement("div",(0,i.Z)({className:u()(n,l,(t={},(0,o.Z)(t,"".concat(n,"-rtl"),"rtl"===N),(0,o.Z)(t,"".concat(n,"-ping-left"),ot),(0,o.Z)(t,"".concat(n,"-ping-right"),lt),(0,o.Z)(t,"".concat(n,"-layout-fixed"),"fixed"===Z),(0,o.Z)(t,"".concat(n,"-fixed-header"),yt),(0,o.Z)(t,"".concat(n,"-fixed-column"),bt),(0,o.Z)(t,"".concat(n,"-scroll-horizontal"),gt),(0,o.Z)(t,"".concat(n,"-has-fix-left"),Xe[0]&&Xe[0].fixed),(0,o.Z)(t,"".concat(n,"-has-fix-right"),Xe[Xe.length-1]&&"right"===Xe[Xe.length-1].fixed),t)),style:h,id:M,ref:$e},rn),c.createElement(Re,{pingLeft:ot,pingRight:lt,props:(0,d.Z)((0,d.Z)({},e),{},{stickyOffsets:ht,mergedExpandedKeys:Le})},K&&c.createElement(me,{className:"".concat(n,"-title")},K(q)),c.createElement("div",{className:"".concat(n,"-container")},Gt),I&&c.createElement(me,{className:"".concat(n,"-footer")},I(q))));gt&&(on=c.createElement(b.default,{onResize:function(e){var t=e.width;t!==Ue&&(jt(),We($e.current?$e.current.offsetWidth:t))}},on));var an=c.useMemo((function(){return{prefixCls:n,getComponent:$,scrollbarSize:Ht,direction:N,fixedInfoList:Xe.map((function(e,t){return A(t,t,Xe,ht,N)})),isSticky:Ct}}),[n,$,Ht,N,Xe,ht,N,Ct]),cn=c.useMemo((function(){return(0,d.Z)((0,d.Z)({},Je),{},{tableLayout:qt,rowClassName:s,expandedRowClassName:be,expandIcon:Ze,expandableType:Oe,expandRowByClick:pe,expandedRowRender:ce,onTriggerExpand:Ae,expandIconColumnIndex:ye,indentSize:we})}),[Je,qt,s,be,Ze,Oe,pe,ce,Ae,ye,we]),ln=c.useMemo((function(){return{componentWidth:Ue,fixHeader:yt,fixColumn:bt,horizonScroll:gt}}),[Ue,yt,bt,gt]),un=c.useMemo((function(){return{onColumnResize:Kt}}),[Kt]);return c.createElement(P.Provider,{value:Ut},c.createElement(L.Provider,{value:an},c.createElement(F.Provider,{value:cn},c.createElement(B.Provider,{value:ln},c.createElement(W.Provider,{value:un},on)))))}Te.EXPAND_COLUMN=ae,Te.Column=C,Te.ColumnGroup=E,Te.Summary=Ee,Te.defaultProps={rowKey:"key",prefixCls:"rc-table",emptyText:function(){return"No Data"}};var _e=Te,je=n(15671),Le=n(43144),Ae=n(60136),ze=n(3289),He=n(23279),Ve=n.n(He),Fe=n(59844),Be=n(93355),Ue=n(96159),We=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Ge=((0,Be.b)("small","default","large"),null);var Ye=function(e){(0,Ae.Z)(n,e);var t=(0,ze.Z)(n);function n(e){var r;(0,je.Z)(this,n),(r=t.call(this,e)).debouncifyUpdateSpinning=function(e){var t=(e||r.props).delay;t&&(r.cancelExistingSpin(),r.updateSpinning=Ve()(r.originalUpdateSpinning,t))},r.updateSpinning=function(){var e=r.props.spinning;r.state.spinning!==e&&r.setState({spinning:e})},r.renderSpin=function(e){var t,n=e.getPrefixCls,a=e.direction,l=r.props,d=l.prefixCls,f=l.className,p=l.size,v=l.tip,m=l.wrapperClassName,h=l.style,y=We(l,["prefixCls","className","size","tip","wrapperClassName","style"]),g=r.state.spinning,b=n("spin",d),x=u()(b,(t={},(0,o.Z)(t,"".concat(b,"-sm"),"small"===p),(0,o.Z)(t,"".concat(b,"-lg"),"large"===p),(0,o.Z)(t,"".concat(b,"-spinning"),g),(0,o.Z)(t,"".concat(b,"-show-text"),!!v),(0,o.Z)(t,"".concat(b,"-rtl"),"rtl"===a),t),f),E=(0,s.Z)(y,["spinning","delay","indicator"]),C=c.createElement("div",(0,i.Z)({},E,{style:h,className:x}),function(e,t){var n=t.indicator,r="".concat(e,"-dot");return null===n?null:(0,Ue.l$)(n)?(0,Ue.Tm)(n,{className:u()(n.props.className,r)}):(0,Ue.l$)(Ge)?(0,Ue.Tm)(Ge,{className:u()(Ge.props.className,r)}):c.createElement("span",{className:u()(r,"".concat(e,"-dot-spin"))},c.createElement("i",{className:"".concat(e,"-dot-item")}),c.createElement("i",{className:"".concat(e,"-dot-item")}),c.createElement("i",{className:"".concat(e,"-dot-item")}),c.createElement("i",{className:"".concat(e,"-dot-item")}))}(b,r.props),v?c.createElement("div",{className:"".concat(b,"-text")},v):null);if(r.isNestedPattern()){var w=u()("".concat(b,"-container"),(0,o.Z)({},"".concat(b,"-blur"),g));return c.createElement("div",(0,i.Z)({},E,{className:u()("".concat(b,"-nested-loading"),m)}),g&&c.createElement("div",{key:"loading"},C),c.createElement("div",{className:w,key:"container"},r.props.children))}return C};var a=e.spinning,l=function(e,t){return!!e&&!!t&&!isNaN(Number(t))}(a,e.delay);return r.state={spinning:a&&!l},r.originalUpdateSpinning=r.updateSpinning,r.debouncifyUpdateSpinning(e),r}return(0,Le.Z)(n,[{key:"componentDidMount",value:function(){this.updateSpinning()}},{key:"componentDidUpdate",value:function(){this.debouncifyUpdateSpinning(),this.updateSpinning()}},{key:"componentWillUnmount",value:function(){this.cancelExistingSpin()}},{key:"cancelExistingSpin",value:function(){var e=this.updateSpinning;e&&e.cancel&&e.cancel()}},{key:"isNestedPattern",value:function(){return!(!this.props||"undefined"===typeof this.props.children)}},{key:"render",value:function(){return c.createElement(Fe.C,null,this.renderSpin)}}],[{key:"setDefaultIndicator",value:function(e){Ge=e}}]),n}(c.Component);Ye.defaultProps={spinning:!0,size:"default",wrapperClassName:""};var qe=Ye,Xe=function(e){var t,n="".concat(e.rootPrefixCls,"-item"),r=u()(n,"".concat(n,"-").concat(e.page),(t={},(0,o.Z)(t,"".concat(n,"-active"),e.active),(0,o.Z)(t,"".concat(n,"-disabled"),!e.page),(0,o.Z)(t,e.className,!!e.className),t));return c.createElement("li",{title:e.showTitle?e.page:null,className:r,onClick:function(){e.onClick(e.page)},onKeyPress:function(t){e.onKeyPress(t,e.onClick,e.page)},tabIndex:"0"},e.itemRender(e.page,"page",c.createElement("a",{rel:"nofollow"},e.page)))},Je=13,$e=38,Qe=40,et=function(e){(0,Ae.Z)(n,e);var t=(0,ze.Z)(n);function n(){var e;(0,je.Z)(this,n);for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return(e=t.call.apply(t,[this].concat(o))).state={goInputText:""},e.buildOptionText=function(t){return"".concat(t," ").concat(e.props.locale.items_per_page)},e.changeSize=function(t){e.props.changeSize(Number(t))},e.handleChange=function(t){e.setState({goInputText:t.target.value})},e.handleBlur=function(t){var n=e.props,r=n.goButton,o=n.quickGo,a=n.rootPrefixCls,i=e.state.goInputText;r||""===i||(e.setState({goInputText:""}),t.relatedTarget&&(t.relatedTarget.className.indexOf("".concat(a,"-item-link"))>=0||t.relatedTarget.className.indexOf("".concat(a,"-item"))>=0)||o(e.getValidValue()))},e.go=function(t){""!==e.state.goInputText&&(t.keyCode!==Je&&"click"!==t.type||(e.setState({goInputText:""}),e.props.quickGo(e.getValidValue())))},e}return(0,Le.Z)(n,[{key:"getValidValue",value:function(){var e=this.state.goInputText;return!e||isNaN(e)?void 0:Number(e)}},{key:"getPageSizeOptions",value:function(){var e=this.props,t=e.pageSize,n=e.pageSizeOptions;return n.some((function(e){return e.toString()===t.toString()}))?n:n.concat([t.toString()]).sort((function(e,t){return(isNaN(Number(e))?0:Number(e))-(isNaN(Number(t))?0:Number(t))}))}},{key:"render",value:function(){var e=this,t=this.props,n=t.pageSize,r=t.locale,o=t.rootPrefixCls,a=t.changeSize,i=t.quickGo,l=t.goButton,u=t.selectComponentClass,s=t.buildOptionText,d=t.selectPrefixCls,f=t.disabled,p=this.state.goInputText,v="".concat(o,"-options"),m=u,h=null,y=null,g=null;if(!a&&!i)return null;var b=this.getPageSizeOptions();if(a&&m){var x=b.map((function(t,n){return c.createElement(m.Option,{key:n,value:t.toString()},(s||e.buildOptionText)(t))}));h=c.createElement(m,{disabled:f,prefixCls:d,showSearch:!1,className:"".concat(v,"-size-changer"),optionLabelProp:"children",dropdownMatchSelectWidth:!1,value:(n||b[0]).toString(),onChange:this.changeSize,getPopupContainer:function(e){return e.parentNode}},x)}return i&&(l&&(g="boolean"===typeof l?c.createElement("button",{type:"button",onClick:this.go,onKeyUp:this.go,disabled:f,className:"".concat(v,"-quick-jumper-button")},r.jump_to_confirm):c.createElement("span",{onClick:this.go,onKeyUp:this.go},l)),y=c.createElement("div",{className:"".concat(v,"-quick-jumper")},r.jump_to,c.createElement("input",{disabled:f,type:"text",value:p,onChange:this.handleChange,onKeyUp:this.go,onBlur:this.handleBlur}),r.page,g)),c.createElement("li",{className:"".concat(v)},h,y)}}]),n}(c.Component);et.defaultProps={pageSizeOptions:["10","20","50","100"]};var tt=et;function nt(){}function rt(e,t,n){var r="undefined"===typeof e?t.pageSize:e;return Math.floor((n.total-1)/r)+1}var ot=function(e){(0,Ae.Z)(n,e);var t=(0,ze.Z)(n);function n(e){var r;(0,je.Z)(this,n),(r=t.call(this,e)).getJumpPrevPage=function(){return Math.max(1,r.state.current-(r.props.showLessItems?3:5))},r.getJumpNextPage=function(){return Math.min(rt(void 0,r.state,r.props),r.state.current+(r.props.showLessItems?3:5))},r.getItemIcon=function(e,t){var n=r.props.prefixCls,o=e||c.createElement("button",{type:"button","aria-label":t,className:"".concat(n,"-item-link")});return"function"===typeof e&&(o=c.createElement(e,(0,d.Z)({},r.props))),o},r.savePaginationNode=function(e){r.paginationNode=e},r.isValid=function(e){return"number"===typeof(t=e)&&isFinite(t)&&Math.floor(t)===t&&e!==r.state.current;var t},r.shouldDisplayQuickJumper=function(){var e=r.props,t=e.showQuickJumper,n=e.pageSize;return!(e.total<=n)&&t},r.handleKeyDown=function(e){e.keyCode!==$e&&e.keyCode!==Qe||e.preventDefault()},r.handleKeyUp=function(e){var t=r.getValidValue(e);t!==r.state.currentInputValue&&r.setState({currentInputValue:t}),e.keyCode===Je?r.handleChange(t):e.keyCode===$e?r.handleChange(t-1):e.keyCode===Qe&&r.handleChange(t+1)},r.changePageSize=function(e){var t=r.state.current,n=rt(e,r.state,r.props);t=t>n?n:t,0===n&&(t=r.state.current),"number"===typeof e&&("pageSize"in r.props||r.setState({pageSize:e}),"current"in r.props||r.setState({current:t,currentInputValue:t})),r.props.onShowSizeChange(t,e),"onChange"in r.props&&r.props.onChange&&r.props.onChange(t,e)},r.handleChange=function(e){var t=r.props.disabled,n=e;if(r.isValid(n)&&!t){var o=rt(void 0,r.state,r.props);n>o?n=o:n<1&&(n=1),"current"in r.props||r.setState({current:n,currentInputValue:n});var a=r.state.pageSize;return r.props.onChange(n,a),n}return r.state.current},r.prev=function(){r.hasPrev()&&r.handleChange(r.state.current-1)},r.next=function(){r.hasNext()&&r.handleChange(r.state.current+1)},r.jumpPrev=function(){r.handleChange(r.getJumpPrevPage())},r.jumpNext=function(){r.handleChange(r.getJumpNextPage())},r.hasPrev=function(){return r.state.current>1},r.hasNext=function(){return r.state.current<rt(void 0,r.state,r.props)},r.runIfEnter=function(e,t){if("Enter"===e.key||13===e.charCode){for(var n=arguments.length,r=new Array(n>2?n-2:0),o=2;o<n;o++)r[o-2]=arguments[o];t.apply(void 0,r)}},r.runIfEnterPrev=function(e){r.runIfEnter(e,r.prev)},r.runIfEnterNext=function(e){r.runIfEnter(e,r.next)},r.runIfEnterJumpPrev=function(e){r.runIfEnter(e,r.jumpPrev)},r.runIfEnterJumpNext=function(e){r.runIfEnter(e,r.jumpNext)},r.handleGoTO=function(e){e.keyCode!==Je&&"click"!==e.type||r.handleChange(r.state.currentInputValue)};var o=e.onChange!==nt;"current"in e&&!o&&console.warn("Warning: You provided a `current` prop to a Pagination component without an `onChange` handler. This will render a read-only component.");var a=e.defaultCurrent;"current"in e&&(a=e.current);var i=e.defaultPageSize;return"pageSize"in e&&(i=e.pageSize),a=Math.min(a,rt(i,void 0,e)),r.state={current:a,currentInputValue:a,pageSize:i},r}return(0,Le.Z)(n,[{key:"componentDidUpdate",value:function(e,t){var n=this.props.prefixCls;if(t.current!==this.state.current&&this.paginationNode){var r=this.paginationNode.querySelector(".".concat(n,"-item-").concat(t.current));r&&document.activeElement===r&&r.blur()}}},{key:"getValidValue",value:function(e){var t=e.target.value,n=rt(void 0,this.state,this.props),r=this.state.currentInputValue;return""===t?t:isNaN(Number(t))?r:t>=n?n:Number(t)}},{key:"getShowSizeChanger",value:function(){var e=this.props,t=e.showSizeChanger,n=e.total,r=e.totalBoundaryShowSizeChanger;return"undefined"!==typeof t?t:n>r}},{key:"renderPrev",value:function(e){var t=this.props,n=t.prevIcon,r=(0,t.itemRender)(e,"prev",this.getItemIcon(n,"prev page")),o=!this.hasPrev();return(0,c.isValidElement)(r)?(0,c.cloneElement)(r,{disabled:o}):r}},{key:"renderNext",value:function(e){var t=this.props,n=t.nextIcon,r=(0,t.itemRender)(e,"next",this.getItemIcon(n,"next page")),o=!this.hasNext();return(0,c.isValidElement)(r)?(0,c.cloneElement)(r,{disabled:o}):r}},{key:"render",value:function(){var e=this,t=this.props,n=t.prefixCls,r=t.className,a=t.style,l=t.disabled,s=t.hideOnSinglePage,d=t.total,f=t.locale,p=t.showQuickJumper,v=t.showLessItems,m=t.showTitle,h=t.showTotal,y=t.simple,g=t.itemRender,b=t.showPrevNextJumpers,x=t.jumpPrevIcon,E=t.jumpNextIcon,C=t.selectComponentClass,w=t.selectPrefixCls,Z=t.pageSizeOptions,N=this.state,S=N.current,k=N.pageSize,O=N.currentInputValue;if(!0===s&&d<=k)return null;var P=rt(void 0,this.state,this.props),K=[],I=null,D=null,M=null,R=null,T=null,_=p&&p.goButton,j=v?1:2,L=S-1>0?S-1:0,A=S+1<P?S+1:P,z=Object.keys(this.props).reduce((function(t,n){return"data-"!==n.substr(0,5)&&"aria-"!==n.substr(0,5)&&"role"!==n||(t[n]=e.props[n]),t}),{});if(y)return _&&(T="boolean"===typeof _?c.createElement("button",{type:"button",onClick:this.handleGoTO,onKeyUp:this.handleGoTO},f.jump_to_confirm):c.createElement("span",{onClick:this.handleGoTO,onKeyUp:this.handleGoTO},_),T=c.createElement("li",{title:m?"".concat(f.jump_to).concat(S,"/").concat(P):null,className:"".concat(n,"-simple-pager")},T)),c.createElement("ul",(0,i.Z)({className:u()(n,"".concat(n,"-simple"),(0,o.Z)({},"".concat(n,"-disabled"),l),r),style:a,ref:this.savePaginationNode},z),c.createElement("li",{title:m?f.prev_page:null,onClick:this.prev,tabIndex:this.hasPrev()?0:null,onKeyPress:this.runIfEnterPrev,className:u()("".concat(n,"-prev"),(0,o.Z)({},"".concat(n,"-disabled"),!this.hasPrev())),"aria-disabled":!this.hasPrev()},this.renderPrev(L)),c.createElement("li",{title:m?"".concat(S,"/").concat(P):null,className:"".concat(n,"-simple-pager")},c.createElement("input",{type:"text",value:O,disabled:l,onKeyDown:this.handleKeyDown,onKeyUp:this.handleKeyUp,onChange:this.handleKeyUp,size:"3"}),c.createElement("span",{className:"".concat(n,"-slash")},"/"),P),c.createElement("li",{title:m?f.next_page:null,onClick:this.next,tabIndex:this.hasPrev()?0:null,onKeyPress:this.runIfEnterNext,className:u()("".concat(n,"-next"),(0,o.Z)({},"".concat(n,"-disabled"),!this.hasNext())),"aria-disabled":!this.hasNext()},this.renderNext(A)),T);if(P<=3+2*j){var H={locale:f,rootPrefixCls:n,onClick:this.handleChange,onKeyPress:this.runIfEnter,showTitle:m,itemRender:g};P||K.push(c.createElement(Xe,(0,i.Z)({},H,{key:"noPager",page:1,className:"".concat(n,"-item-disabled")})));for(var V=1;V<=P;V+=1){var F=S===V;K.push(c.createElement(Xe,(0,i.Z)({},H,{key:V,page:V,active:F})))}}else{var B=v?f.prev_3:f.prev_5,U=v?f.next_3:f.next_5;b&&(I=c.createElement("li",{title:m?B:null,key:"prev",onClick:this.jumpPrev,tabIndex:"0",onKeyPress:this.runIfEnterJumpPrev,className:u()("".concat(n,"-jump-prev"),(0,o.Z)({},"".concat(n,"-jump-prev-custom-icon"),!!x))},g(this.getJumpPrevPage(),"jump-prev",this.getItemIcon(x,"prev page"))),D=c.createElement("li",{title:m?U:null,key:"next",tabIndex:"0",onClick:this.jumpNext,onKeyPress:this.runIfEnterJumpNext,className:u()("".concat(n,"-jump-next"),(0,o.Z)({},"".concat(n,"-jump-next-custom-icon"),!!E))},g(this.getJumpNextPage(),"jump-next",this.getItemIcon(E,"next page")))),R=c.createElement(Xe,{locale:f,last:!0,rootPrefixCls:n,onClick:this.handleChange,onKeyPress:this.runIfEnter,key:P,page:P,active:!1,showTitle:m,itemRender:g}),M=c.createElement(Xe,{locale:f,rootPrefixCls:n,onClick:this.handleChange,onKeyPress:this.runIfEnter,key:1,page:1,active:!1,showTitle:m,itemRender:g});var W=Math.max(1,S-j),G=Math.min(S+j,P);S-1<=j&&(G=1+2*j),P-S<=j&&(W=P-2*j);for(var Y=W;Y<=G;Y+=1){var q=S===Y;K.push(c.createElement(Xe,{locale:f,rootPrefixCls:n,onClick:this.handleChange,onKeyPress:this.runIfEnter,key:Y,page:Y,active:q,showTitle:m,itemRender:g}))}S-1>=2*j&&3!==S&&(K[0]=(0,c.cloneElement)(K[0],{className:"".concat(n,"-item-after-jump-prev")}),K.unshift(I)),P-S>=2*j&&S!==P-2&&(K[K.length-1]=(0,c.cloneElement)(K[K.length-1],{className:"".concat(n,"-item-before-jump-next")}),K.push(D)),1!==W&&K.unshift(M),G!==P&&K.push(R)}var X=null;h&&(X=c.createElement("li",{className:"".concat(n,"-total-text")},h(d,[0===d?0:(S-1)*k+1,S*k>d?d:S*k])));var J=!this.hasPrev()||!P,$=!this.hasNext()||!P;return c.createElement("ul",(0,i.Z)({className:u()(n,r,(0,o.Z)({},"".concat(n,"-disabled"),l)),style:a,unselectable:"unselectable",ref:this.savePaginationNode},z),X,c.createElement("li",{title:m?f.prev_page:null,onClick:this.prev,tabIndex:J?null:0,onKeyPress:this.runIfEnterPrev,className:u()("".concat(n,"-prev"),(0,o.Z)({},"".concat(n,"-disabled"),J)),"aria-disabled":J},this.renderPrev(L)),K,c.createElement("li",{title:m?f.next_page:null,onClick:this.next,tabIndex:$?null:0,onKeyPress:this.runIfEnterNext,className:u()("".concat(n,"-next"),(0,o.Z)({},"".concat(n,"-disabled"),$)),"aria-disabled":$},this.renderNext(A)),c.createElement(tt,{disabled:l,locale:f,rootPrefixCls:n,selectComponentClass:C,selectPrefixCls:w,changeSize:this.getShowSizeChanger()?this.changePageSize:null,current:S,pageSize:k,pageSizeOptions:Z,quickGo:this.shouldDisplayQuickJumper()?this.handleChange:null,goButton:_}))}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n={};if("current"in e&&(n.current=e.current,e.current!==t.current&&(n.currentInputValue=n.current)),"pageSize"in e&&e.pageSize!==t.pageSize){var r=t.current,o=rt(e.pageSize,t,e);r=r>o?o:r,"current"in e||(n.current=r,n.currentInputValue=r),n.pageSize=e.pageSize}return n}}]),n}(c.Component);ot.defaultProps={defaultCurrent:1,total:0,defaultPageSize:10,onChange:nt,className:"",selectPrefixCls:"rc-select",prefixCls:"rc-pagination",selectComponentClass:null,hideOnSinglePage:!1,showPrevNextJumpers:!0,showQuickJumper:!1,showLessItems:!1,showTitle:!0,onShowSizeChange:nt,locale:{items_per_page:"\u6761/\u9875",jump_to:"\u8df3\u81f3",jump_to_confirm:"\u786e\u5b9a",page:"\u9875",prev_page:"\u4e0a\u4e00\u9875",next_page:"\u4e0b\u4e00\u9875",prev_5:"\u5411\u524d 5 \u9875",next_5:"\u5411\u540e 5 \u9875",prev_3:"\u5411\u524d 3 \u9875",next_3:"\u5411\u540e 3 \u9875"},style:{},itemRender:function(e,t,n){return n},totalBoundaryShowSizeChanger:50};var at=ot,it=n(62906),ct=n(6171),lt=n(18073),ut={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M272.9 512l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L186.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H532c6.7 0 10.4-7.7 6.3-12.9L272.9 512zm304 0l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L490.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H836c6.7 0 10.4-7.7 6.3-12.9L576.9 512z"}}]},name:"double-left",theme:"outlined"},st=n(42135),dt=function(e,t){return c.createElement(st.Z,(0,d.Z)((0,d.Z)({},e),{},{ref:t,icon:ut}))};dt.displayName="DoubleLeftOutlined";var ft=c.forwardRef(dt),pt={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M533.2 492.3L277.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H188c-6.7 0-10.4 7.7-6.3 12.9L447.1 512 181.7 851.1A7.98 7.98 0 00188 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5zm304 0L581.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H492c-6.7 0-10.4 7.7-6.3 12.9L751.1 512 485.7 851.1A7.98 7.98 0 00492 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5z"}}]},name:"double-right",theme:"outlined"},vt=function(e,t){return c.createElement(st.Z,(0,d.Z)((0,d.Z)({},e),{},{ref:t,icon:pt}))};vt.displayName="DoubleRightOutlined";var mt=c.forwardRef(vt),ht=n(66933),yt=function(e){return c.createElement(ht.Z,(0,i.Z)({size:"small"},e))};yt.Option=ht.Z.Option;var gt=yt,bt=n(23715),xt=n(25378),Et=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Ct=function(e){var t=e.prefixCls,n=e.selectPrefixCls,r=e.className,a=e.size,l=e.locale,s=e.selectComponentClass,d=Et(e,["prefixCls","selectPrefixCls","className","size","locale","selectComponentClass"]),f=(0,xt.Z)().xs,p=c.useContext(Fe.E_),v=p.getPrefixCls,m=p.direction,h=v("pagination",t),y=function(e){var t=(0,i.Z)((0,i.Z)({},e),l),p="small"===a||!(!f||a||!d.responsive),y=v("select",n),g=u()((0,o.Z)({mini:p},"".concat(h,"-rtl"),"rtl"===m),r);return c.createElement(at,(0,i.Z)({},function(){var e=c.createElement("span",{className:"".concat(h,"-item-ellipsis")},"\u2022\u2022\u2022"),t=c.createElement("button",{className:"".concat(h,"-item-link"),type:"button",tabIndex:-1},c.createElement(ct.Z,null)),n=c.createElement("button",{className:"".concat(h,"-item-link"),type:"button",tabIndex:-1},c.createElement(lt.Z,null)),r=c.createElement("a",{className:"".concat(h,"-item-link")},c.createElement("div",{className:"".concat(h,"-item-container")},c.createElement(ft,{className:"".concat(h,"-item-link-icon")}),e)),o=c.createElement("a",{className:"".concat(h,"-item-link")},c.createElement("div",{className:"".concat(h,"-item-container")},c.createElement(mt,{className:"".concat(h,"-item-link-icon")}),e));if("rtl"===m){var a=[n,t];t=a[0],n=a[1];var i=[o,r];r=i[0],o=i[1]}return{prevIcon:t,nextIcon:n,jumpPrevIcon:r,jumpNextIcon:o}}(),d,{prefixCls:h,selectPrefixCls:y,className:g,selectComponentClass:s||(p?gt:ht.Z),locale:t}))};return c.createElement(bt.Z,{componentName:"Pagination",defaultLocale:it.Z},y)},wt=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n};function Zt(e,t,n){var o=t&&"object"===(0,r.Z)(t)?t:{},l=o.total,u=void 0===l?0:l,s=wt(o,["total"]),d=(0,c.useState)((function(){return{current:"defaultCurrent"in s?s.defaultCurrent:1,pageSize:"defaultPageSize"in s?s.defaultPageSize:10}})),f=(0,a.Z)(d,2),p=f[0],v=f[1],m=function(){for(var e={},t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return n.forEach((function(t){t&&Object.keys(t).forEach((function(n){var r=t[n];void 0!==r&&(e[n]=r)}))})),e}(p,s,{total:u>0?u:e}),h=Math.ceil((u||e)/m.pageSize);m.current>h&&(m.current=h||1);var y=function(e,t){v({current:null!==e&&void 0!==e?e:1,pageSize:t||m.pageSize})};return!1===t?[{},function(){}]:[(0,i.Z)((0,i.Z)({},m),{onChange:function(e,r){var o;t&&(null===(o=t.onChange)||void 0===o||o.call(t,e,r)),y(e,r),n(e,r||(null===m||void 0===m?void 0:m.pageSize))}}),y]}var Nt=n(84506),St=n(80882),kt=n(97326),Ot=c.createContext(null),Pt=function(e){for(var t=e.prefixCls,n=e.level,r=e.isStart,a=e.isEnd,i="".concat(t,"-indent-unit"),l=[],s=0;s<n;s+=1){var d;l.push(c.createElement("span",{key:s,className:u()(i,(d={},(0,o.Z)(d,"".concat(i,"-start"),r[s]),(0,o.Z)(d,"".concat(i,"-end"),a[s]),d))}))}return c.createElement("span",{"aria-hidden":"true",className:"".concat(t,"-indent")},l)},Kt=c.memo(Pt),It=["eventKey","className","style","dragOver","dragOverGapTop","dragOverGapBottom","isLeaf","isStart","isEnd","expanded","selected","checked","halfChecked","loading","domRef","active","data","onMouseMove","selectable"],Dt="open",Mt="close",Rt=function(e){(0,Ae.Z)(n,e);var t=(0,ze.Z)(n);function n(){var e;(0,je.Z)(this,n);for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return(e=t.call.apply(t,[this].concat(o))).state={dragNodeHighlight:!1},e.selectHandle=void 0,e.onSelectorClick=function(t){(0,e.props.context.onNodeClick)(t,tn(e.props)),e.isSelectable()?e.onSelect(t):e.onCheck(t)},e.onSelectorDoubleClick=function(t){(0,e.props.context.onNodeDoubleClick)(t,tn(e.props))},e.onSelect=function(t){if(!e.isDisabled()){var n=e.props.context.onNodeSelect;t.preventDefault(),n(t,tn(e.props))}},e.onCheck=function(t){if(!e.isDisabled()){var n=e.props,r=n.disableCheckbox,o=n.checked,a=e.props.context.onNodeCheck;if(e.isCheckable()&&!r){t.preventDefault();var i=!o;a(t,tn(e.props),i)}}},e.onMouseEnter=function(t){(0,e.props.context.onNodeMouseEnter)(t,tn(e.props))},e.onMouseLeave=function(t){(0,e.props.context.onNodeMouseLeave)(t,tn(e.props))},e.onContextMenu=function(t){(0,e.props.context.onNodeContextMenu)(t,tn(e.props))},e.onDragStart=function(t){var n=e.props.context.onNodeDragStart;t.stopPropagation(),e.setState({dragNodeHighlight:!0}),n(t,(0,kt.Z)(e));try{t.dataTransfer.setData("text/plain","")}catch(r){}},e.onDragEnter=function(t){var n=e.props.context.onNodeDragEnter;t.preventDefault(),t.stopPropagation(),n(t,(0,kt.Z)(e))},e.onDragOver=function(t){var n=e.props.context.onNodeDragOver;t.preventDefault(),t.stopPropagation(),n(t,(0,kt.Z)(e))},e.onDragLeave=function(t){var n=e.props.context.onNodeDragLeave;t.stopPropagation(),n(t,(0,kt.Z)(e))},e.onDragEnd=function(t){var n=e.props.context.onNodeDragEnd;t.stopPropagation(),e.setState({dragNodeHighlight:!1}),n(t,(0,kt.Z)(e))},e.onDrop=function(t){var n=e.props.context.onNodeDrop;t.preventDefault(),t.stopPropagation(),e.setState({dragNodeHighlight:!1}),n(t,(0,kt.Z)(e))},e.onExpand=function(t){var n=e.props,r=n.loading,o=n.context.onNodeExpand;r||o(t,tn(e.props))},e.setSelectHandle=function(t){e.selectHandle=t},e.getNodeState=function(){var t=e.props.expanded;return e.isLeaf()?null:t?Dt:Mt},e.hasChildren=function(){var t=e.props.eventKey;return!!((e.props.context.keyEntities[t]||{}).children||[]).length},e.isLeaf=function(){var t=e.props,n=t.isLeaf,r=t.loaded,o=e.props.context.loadData,a=e.hasChildren();return!1!==n&&(n||!o&&!a||o&&r&&!a)},e.isDisabled=function(){var t=e.props.disabled;return!(!e.props.context.disabled&&!t)},e.isCheckable=function(){var t=e.props.checkable,n=e.props.context.checkable;return!(!n||!1===t)&&n},e.syncLoadData=function(t){var n=t.expanded,r=t.loading,o=t.loaded,a=e.props.context,i=a.loadData,c=a.onNodeLoad;r||i&&n&&!e.isLeaf()&&(e.hasChildren()||o||c(tn(e.props)))},e.isDraggable=function(){var t=e.props,n=t.data,r=t.context.draggable;return!(!r||r.nodeDraggable&&!r.nodeDraggable(n))},e.renderDragHandler=function(){var t=e.props.context,n=t.draggable,r=t.prefixCls;return(null===n||void 0===n?void 0:n.icon)?c.createElement("span",{className:"".concat(r,"-draggable-icon")},n.icon):null},e.renderSwitcherIconDom=function(t){var n=e.props.switcherIcon,r=e.props.context.switcherIcon,o=n||r;return"function"===typeof o?o((0,d.Z)((0,d.Z)({},e.props),{},{isLeaf:t})):o},e.renderSwitcher=function(){var t=e.props.expanded,n=e.props.context.prefixCls;if(e.isLeaf()){var r=e.renderSwitcherIconDom(!0);return!1!==r?c.createElement("span",{className:u()("".concat(n,"-switcher"),"".concat(n,"-switcher-noop"))},r):null}var o=u()("".concat(n,"-switcher"),"".concat(n,"-switcher_").concat(t?Dt:Mt)),a=e.renderSwitcherIconDom(!1);return!1!==a?c.createElement("span",{onClick:e.onExpand,className:o},a):null},e.renderCheckbox=function(){var t=e.props,n=t.checked,r=t.halfChecked,o=t.disableCheckbox,a=e.props.context.prefixCls,i=e.isDisabled(),l=e.isCheckable();if(!l)return null;var s="boolean"!==typeof l?l:null;return c.createElement("span",{className:u()("".concat(a,"-checkbox"),n&&"".concat(a,"-checkbox-checked"),!n&&r&&"".concat(a,"-checkbox-indeterminate"),(i||o)&&"".concat(a,"-checkbox-disabled")),onClick:e.onCheck},s)},e.renderIcon=function(){var t=e.props.loading,n=e.props.context.prefixCls;return c.createElement("span",{className:u()("".concat(n,"-iconEle"),"".concat(n,"-icon__").concat(e.getNodeState()||"docu"),t&&"".concat(n,"-icon_loading"))})},e.renderSelector=function(){var t,n,r=e.state.dragNodeHighlight,o=e.props,a=o.title,i=o.selected,l=o.icon,s=o.loading,d=o.data,f=e.props.context,p=f.prefixCls,v=f.showIcon,m=f.icon,h=f.loadData,y=f.titleRender,g=e.isDisabled(),b="".concat(p,"-node-content-wrapper");if(v){var x=l||m;t=x?c.createElement("span",{className:u()("".concat(p,"-iconEle"),"".concat(p,"-icon__customize"))},"function"===typeof x?x(e.props):x):e.renderIcon()}else h&&s&&(t=e.renderIcon());n="function"===typeof a?a(d):y?y(d):a;var E=c.createElement("span",{className:"".concat(p,"-title")},n);return c.createElement("span",{ref:e.setSelectHandle,title:"string"===typeof a?a:"",className:u()("".concat(b),"".concat(b,"-").concat(e.getNodeState()||"normal"),!g&&(i||r)&&"".concat(p,"-node-selected")),onMouseEnter:e.onMouseEnter,onMouseLeave:e.onMouseLeave,onContextMenu:e.onContextMenu,onClick:e.onSelectorClick,onDoubleClick:e.onSelectorDoubleClick},t,E,e.renderDropIndicator())},e.renderDropIndicator=function(){var t=e.props,n=t.disabled,r=t.eventKey,o=e.props.context,a=o.draggable,i=o.dropLevelOffset,c=o.dropPosition,l=o.prefixCls,u=o.indent,s=o.dropIndicatorRender,d=o.dragOverNodeKey,f=o.direction;return!n&&!1!==a&&d===r?s({dropPosition:c,dropLevelOffset:i,indent:u,prefixCls:l,direction:f}):null},e}return(0,Le.Z)(n,[{key:"componentDidMount",value:function(){this.syncLoadData(this.props)}},{key:"componentDidUpdate",value:function(){this.syncLoadData(this.props)}},{key:"isSelectable",value:function(){var e=this.props.selectable,t=this.props.context.selectable;return"boolean"===typeof e?e:t}},{key:"render",value:function(){var e,t=this.props,n=t.eventKey,r=t.className,a=t.style,l=t.dragOver,s=t.dragOverGapTop,d=t.dragOverGapBottom,f=t.isLeaf,p=t.isStart,m=t.isEnd,h=t.expanded,y=t.selected,g=t.checked,b=t.halfChecked,x=t.loading,E=t.domRef,C=t.active,Z=(t.data,t.onMouseMove),N=t.selectable,S=(0,w.Z)(t,It),k=this.props.context,O=k.prefixCls,P=k.filterTreeNode,K=k.keyEntities,I=k.dropContainerKey,D=k.dropTargetKey,M=k.draggingNodeKey,R=this.isDisabled(),T=(0,v.Z)(S,{aria:!0,data:!0}),_=(K[n]||{}).level,j=m[m.length-1],L=this.isDraggable(),A=!R&&L,z=M===n,H=void 0!==N?{"aria-selected":!!N}:void 0;return c.createElement("div",(0,i.Z)({ref:E,className:u()(r,"".concat(O,"-treenode"),(e={},(0,o.Z)(e,"".concat(O,"-treenode-disabled"),R),(0,o.Z)(e,"".concat(O,"-treenode-switcher-").concat(h?"open":"close"),!f),(0,o.Z)(e,"".concat(O,"-treenode-checkbox-checked"),g),(0,o.Z)(e,"".concat(O,"-treenode-checkbox-indeterminate"),b),(0,o.Z)(e,"".concat(O,"-treenode-selected"),y),(0,o.Z)(e,"".concat(O,"-treenode-loading"),x),(0,o.Z)(e,"".concat(O,"-treenode-active"),C),(0,o.Z)(e,"".concat(O,"-treenode-leaf-last"),j),(0,o.Z)(e,"".concat(O,"-treenode-draggable"),A),(0,o.Z)(e,"dragging",z),(0,o.Z)(e,"drop-target",D===n),(0,o.Z)(e,"drop-container",I===n),(0,o.Z)(e,"drag-over",!R&&l),(0,o.Z)(e,"drag-over-gap-top",!R&&s),(0,o.Z)(e,"drag-over-gap-bottom",!R&&d),(0,o.Z)(e,"filter-node",P&&P(tn(this.props))),e)),style:a,draggable:A,"aria-grabbed":z,onDragStart:A?this.onDragStart:void 0,onDragEnter:L?this.onDragEnter:void 0,onDragOver:L?this.onDragOver:void 0,onDragLeave:L?this.onDragLeave:void 0,onDrop:L?this.onDrop:void 0,onDragEnd:L?this.onDragEnd:void 0,onMouseMove:Z},H,T),c.createElement(Kt,{prefixCls:O,level:_,isStart:p,isEnd:m}),this.renderDragHandler(),this.renderSwitcher(),this.renderCheckbox(),this.renderSelector())}}]),n}(c.Component),Tt=function(e){return c.createElement(Ot.Consumer,null,(function(t){return c.createElement(Rt,(0,i.Z)({},e,{context:t}))}))};Tt.displayName="TreeNode",Tt.defaultProps={title:"---"},Tt.isTreeNode=1;var _t=Tt;function jt(e,t){if(!e)return[];var n=e.slice(),r=n.indexOf(t);return r>=0&&n.splice(r,1),n}function Lt(e,t){var n=(e||[]).slice();return-1===n.indexOf(t)&&n.push(t),n}function At(e){return e.split("-")}function zt(e,t){return"".concat(e,"-").concat(t)}function Ht(e,t){var n=[];return function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];t.forEach((function(t){var r=t.key,o=t.children;n.push(r),e(o)}))}(t[e].children),n}function Vt(e){if(e.parent){var t=At(e.pos);return Number(t[t.length-1])===e.parent.children.length-1}return!1}function Ft(e,t,n,r,o,a,i,c,l,u){var s,d=e.clientX,f=e.clientY,p=e.target.getBoundingClientRect(),v=p.top,m=p.height,h=(("rtl"===u?-1:1)*(((null===o||void 0===o?void 0:o.x)||0)-d)-12)/r,y=c[n.props.eventKey];if(f<v+m/2){var g=i.findIndex((function(e){return e.data.key===y.key})),b=i[g<=0?0:g-1].data.key;y=c[b]}var x=y.key,E=y,C=y.key,w=0,Z=0;if(!l.includes(x))for(var N=0;N<h&&Vt(y);N+=1)y=y.parent,Z+=1;var S=t.props.data,k=y.node,O=!0;return function(e){var t=At(e.pos);return 0===Number(t[t.length-1])}(y)&&0===y.level&&f<v+m/2&&a({dragNode:S,dropNode:k,dropPosition:-1})&&y.key===n.props.eventKey?w=-1:(E.children||[]).length&&l.includes(C)?a({dragNode:S,dropNode:k,dropPosition:0})?w=0:O=!1:0===Z?h>-1.5?a({dragNode:S,dropNode:k,dropPosition:1})?w=1:O=!1:a({dragNode:S,dropNode:k,dropPosition:0})?w=0:a({dragNode:S,dropNode:k,dropPosition:1})?w=1:O=!1:a({dragNode:S,dropNode:k,dropPosition:1})?w=1:O=!1,{dropPosition:w,dropLevelOffset:Z,dropTargetKey:y.key,dropTargetPos:y.pos,dragOverNodeKey:C,dropContainerKey:0===w?null:(null===(s=y.parent)||void 0===s?void 0:s.key)||null,dropAllowed:O}}function Bt(e,t){if(e)return t.multiple?e.slice():e.length?[e[0]]:e}function Ut(e){if(!e)return null;var t;if(Array.isArray(e))t={checkedKeys:e,halfCheckedKeys:void 0};else{if("object"!==(0,r.Z)(e))return(0,g.ZP)(!1,"`checkedKeys` is not an array or an object"),null;t={checkedKeys:e.checked||void 0,halfCheckedKeys:e.halfChecked||void 0}}return t}function Wt(e,t){var n=new Set;function r(e){if(!n.has(e)){var o=t[e];if(o){n.add(e);var a=o.parent;o.node.disabled||a&&r(a.key)}}}return(e||[]).forEach((function(e){r(e)})),(0,f.Z)(n)}var Gt=["children"];function Yt(e,t){return null!==e&&void 0!==e?e:t}function qt(e){var t=e||{},n=t.title||"title";return{title:n,_title:t._title||[n],key:t.key||"key",children:t.children||"children"}}function Xt(e){return function e(t){return(0,ne.Z)(t).map((function(t){if(!function(e){return e&&e.type&&e.type.isTreeNode}(t))return(0,g.ZP)(!t,"Tree/TreeNode can only accept TreeNode as children."),null;var n=t.key,r=t.props,o=r.children,a=(0,w.Z)(r,Gt),i=(0,d.Z)({key:n},a),c=e(o);return c.length&&(i.children=c),i})).filter((function(e){return e}))}(e)}function Jt(e,t,n){var r=qt(n),o=r._title,a=r.key,i=r.children,c=new Set(!0===t?[]:t),l=[];return function e(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return n.map((function(u,p){for(var v,m=zt(r?r.pos:"0",p),h=Yt(u[a],m),y=0;y<o.length;y+=1){var g=o[y];if(void 0!==u[g]){v=u[g];break}}var b=(0,d.Z)((0,d.Z)({},(0,s.Z)(u,[].concat((0,f.Z)(o),[a,i]))),{},{title:v,key:h,parent:r,pos:m,children:null,data:u,isStart:[].concat((0,f.Z)(r?r.isStart:[]),[0===p]),isEnd:[].concat((0,f.Z)(r?r.isEnd:[]),[p===n.length-1])});return l.push(b),!0===t||c.has(h)?b.children=e(u[i]||[],b):b.children=[],b}))}(e),l}function $t(e,t,n){var o,a=("object"===(0,r.Z)(n)?n:{externalGetKey:n})||{},i=a.childrenPropName,c=a.externalGetKey,l=qt(a.fieldNames),u=l.key,s=l.children,d=i||s;c?"string"===typeof c?o=function(e){return e[c]}:"function"===typeof c&&(o=function(e){return c(e)}):o=function(e,t){return Yt(e[u],t)},function n(r,a,i,c){var l=r?r[d]:e,u=r?zt(i.pos,a):"0",s=r?[].concat((0,f.Z)(c),[r]):[];if(r){var p=o(r,u),v={node:r,index:a,pos:u,key:p,parentPos:i.node?i.pos:null,level:i.level+1,nodes:s};t(v)}l&&l.forEach((function(e,t){n(e,t,{node:r,pos:u,level:i?i.level+1:-1},s)}))}(null)}function Qt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.initWrapper,r=t.processEntity,o=t.onProcessFinished,a=t.externalGetKey,i=t.childrenPropName,c=t.fieldNames,l=arguments.length>2?arguments[2]:void 0,u=a||l,s={},d={},f={posEntities:s,keyEntities:d};return n&&(f=n(f)||f),$t(e,(function(e){var t=e.node,n=e.index,o=e.pos,a=e.key,i=e.parentPos,c=e.level,l={node:t,nodes:e.nodes,index:n,key:a,pos:o,level:c},u=Yt(a,o);s[o]=l,d[u]=l,l.parent=s[i],l.parent&&(l.parent.children=l.parent.children||[],l.parent.children.push(l)),r&&r(l,f)}),{externalGetKey:u,childrenPropName:i,fieldNames:c}),o&&o(f),f}function en(e,t){var n=t.expandedKeys,r=t.selectedKeys,o=t.loadedKeys,a=t.loadingKeys,i=t.checkedKeys,c=t.halfCheckedKeys,l=t.dragOverNodeKey,u=t.dropPosition,s=t.keyEntities[e];return{eventKey:e,expanded:-1!==n.indexOf(e),selected:-1!==r.indexOf(e),loaded:-1!==o.indexOf(e),loading:-1!==a.indexOf(e),checked:-1!==i.indexOf(e),halfChecked:-1!==c.indexOf(e),pos:String(s?s.pos:""),dragOver:l===e&&0===u,dragOverGapTop:l===e&&-1===u,dragOverGapBottom:l===e&&1===u}}function tn(e){var t=e.data,n=e.expanded,r=e.selected,o=e.checked,a=e.loaded,i=e.loading,c=e.halfChecked,l=e.dragOver,u=e.dragOverGapTop,s=e.dragOverGapBottom,f=e.pos,p=e.active,v=e.eventKey,m=(0,d.Z)((0,d.Z)({},t),{},{expanded:n,selected:r,checked:o,loaded:a,loading:i,halfChecked:c,dragOver:l,dragOverGapTop:u,dragOverGapBottom:s,pos:f,active:p,key:v});return"props"in m||Object.defineProperty(m,"props",{get:function(){return(0,g.ZP)(!1,"Second param return from event is node data instead of TreeNode instance. Please read value directly instead of reading from `props`."),e}}),m}function nn(e,t){var n=new Set;return e.forEach((function(e){t.has(e)||n.add(e)})),n}function rn(e){var t=e||{},n=t.disabled,r=t.disableCheckbox,o=t.checkable;return!(!n&&!r)||!1===o}function on(e,t,n,r){var o,a=[];o=r||rn;var i=new Set(e.filter((function(e){var t=!!n[e];return t||a.push(e),t}))),c=new Map,l=0;return Object.keys(n).forEach((function(e){var t=n[e],r=t.level,o=c.get(r);o||(o=new Set,c.set(r,o)),o.add(t),l=Math.max(l,r)})),(0,g.ZP)(!a.length,"Tree missing follow keys: ".concat(a.slice(0,100).map((function(e){return"'".concat(e,"'")})).join(", "))),!0===t?function(e,t,n,r){for(var o=new Set(e),a=new Set,i=0;i<=n;i+=1)(t.get(i)||new Set).forEach((function(e){var t=e.key,n=e.node,a=e.children,i=void 0===a?[]:a;o.has(t)&&!r(n)&&i.filter((function(e){return!r(e.node)})).forEach((function(e){o.add(e.key)}))}));for(var c=new Set,l=n;l>=0;l-=1)(t.get(l)||new Set).forEach((function(e){var t=e.parent,n=e.node;if(!r(n)&&e.parent&&!c.has(e.parent.key))if(r(e.parent.node))c.add(t.key);else{var i=!0,l=!1;(t.children||[]).filter((function(e){return!r(e.node)})).forEach((function(e){var t=e.key,n=o.has(t);i&&!n&&(i=!1),l||!n&&!a.has(t)||(l=!0)})),i&&o.add(t.key),l&&a.add(t.key),c.add(t.key)}}));return{checkedKeys:Array.from(o),halfCheckedKeys:Array.from(nn(a,o))}}(i,c,l,o):function(e,t,n,r,o){for(var a=new Set(e),i=new Set(t),c=0;c<=r;c+=1)(n.get(c)||new Set).forEach((function(e){var t=e.key,n=e.node,r=e.children,c=void 0===r?[]:r;a.has(t)||i.has(t)||o(n)||c.filter((function(e){return!o(e.node)})).forEach((function(e){a.delete(e.key)}))}));i=new Set;for(var l=new Set,u=r;u>=0;u-=1)(n.get(u)||new Set).forEach((function(e){var t=e.parent,n=e.node;if(!o(n)&&e.parent&&!l.has(e.parent.key))if(o(e.parent.node))l.add(t.key);else{var r=!0,c=!1;(t.children||[]).filter((function(e){return!o(e.node)})).forEach((function(e){var t=e.key,n=a.has(t);r&&!n&&(r=!1),c||!n&&!i.has(t)||(c=!0)})),r||a.delete(t.key),c&&i.add(t.key),l.add(t.key)}}));return{checkedKeys:Array.from(a),halfCheckedKeys:Array.from(nn(i,a))}}(i,t.halfCheckedKeys,c,l,o)}var an=n(21770),cn=n(32808),ln=n(56180),un=n(89705),sn=n(71577),dn=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},fn=sn.Z.Group,pn=function(e){var t=c.useContext(Fe.E_),n=t.getPopupContainer,r=t.getPrefixCls,o=t.direction,l=e.prefixCls,s=e.type,d=void 0===s?"default":s,f=e.disabled,p=e.loading,v=e.onClick,m=e.htmlType,h=e.children,y=e.className,g=e.overlay,b=e.trigger,x=e.align,E=e.visible,C=e.onVisibleChange,w=e.placement,Z=e.getPopupContainer,N=e.href,S=e.icon,k=void 0===S?c.createElement(un.Z,null):S,O=e.title,P=e.buttonsRender,K=void 0===P?function(e){return e}:P,I=e.mouseEnterDelay,D=e.mouseLeaveDelay,M=e.overlayClassName,R=e.overlayStyle,T=e.destroyPopupOnHide,_=dn(e,["prefixCls","type","disabled","loading","onClick","htmlType","children","className","overlay","trigger","align","visible","onVisibleChange","placement","getPopupContainer","href","icon","title","buttonsRender","mouseEnterDelay","mouseLeaveDelay","overlayClassName","overlayStyle","destroyPopupOnHide"]),j=r("dropdown-button",l),L={align:x,overlay:g,disabled:f,trigger:f?[]:b,onVisibleChange:C,getPopupContainer:Z||n,mouseEnterDelay:I,mouseLeaveDelay:D,overlayClassName:M,overlayStyle:R,destroyPopupOnHide:T};"visible"in e&&(L.visible=E),L.placement="placement"in e?w:"rtl"===o?"bottomLeft":"bottomRight";var A=K([c.createElement(sn.Z,{type:d,disabled:f,loading:p,onClick:v,htmlType:m,href:N,title:O},h),c.createElement(sn.Z,{type:d,icon:k})]),z=(0,a.Z)(A,2),H=z[0],V=z[1];return c.createElement(fn,(0,i.Z)({},_,{className:u()(j,y)}),H,c.createElement(yn,L,V))};pn.__ANT_BUTTON=!0;var vn=pn,mn=n(21687),hn=((0,Be.b)("topLeft","topCenter","topRight","bottomLeft","bottomCenter","bottomRight"),function(e){var t,n=c.useContext(Fe.E_),r=n.getPopupContainer,a=n.getPrefixCls,l=n.direction,s=e.arrow,d=e.prefixCls,f=e.children,p=e.trigger,v=e.disabled,m=e.getPopupContainer,h=e.overlayClassName,y=a("dropdown",d),g=c.Children.only(f),b=(0,Ue.Tm)(g,{className:u()("".concat(y,"-trigger"),(0,o.Z)({},"".concat(y,"-rtl"),"rtl"===l),g.props.className),disabled:v}),x=u()(h,(0,o.Z)({},"".concat(y,"-rtl"),"rtl"===l)),E=v?[]:p;return E&&-1!==E.indexOf("contextMenu")&&(t=!0),c.createElement(ln.Z,(0,i.Z)({arrow:s,alignPoint:t},e,{overlayClassName:x,prefixCls:y,getPopupContainer:m||r,transitionName:function(){var t=a(),n=e.placement,r=void 0===n?"":n,o=e.transitionName;return void 0!==o?o:r.indexOf("top")>=0?"".concat(t,"-slide-down"):"".concat(t,"-slide-up")}(),trigger:E,overlay:function(){return function(t){var n,r=e.overlay;n="function"===typeof r?r():r;var o=(n=c.Children.only("string"===typeof n?c.createElement("span",null,n):n)).props;(0,mn.Z)(!o.mode||"vertical"===o.mode,"Dropdown",'mode="'.concat(o.mode,"\" is not supported for Dropdown's Menu."));var a=o.selectable,i=void 0!==a&&a,l=o.expandIcon,u="undefined"!==typeof l&&c.isValidElement(l)?l:c.createElement("span",{className:"".concat(t,"-menu-submenu-arrow")},c.createElement(lt.Z,{className:"".concat(t,"-menu-submenu-arrow-icon")}));return"string"===typeof n.type?n:(0,Ue.Tm)(n,{mode:"vertical",selectable:i,expandIcon:u})}(y)},placement:function(){var t=e.placement;return void 0!==t?t:"rtl"===l?"bottomRight":"bottomLeft"}()}),b)});hn.Button=vn,hn.defaultProps={mouseEnterDelay:.15,mouseLeaveDelay:.1};var yn=hn,gn=yn,bn=n(68157),xn=n(50132),En=c.createContext(null),Cn=En.Provider,wn=En,Zn=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Nn=function(e,t){var n,r=c.useContext(wn),a=c.useContext(Fe.E_),l=a.getPrefixCls,s=a.direction,d=c.useRef(),f=(0,Z.sQ)(t,d);c.useEffect((function(){(0,mn.Z)(!("optionType"in e),"Radio","`optionType` is only support in Radio.Group.")}),[]);var p=e.prefixCls,v=e.className,m=e.children,h=e.style,y=Zn(e,["prefixCls","className","children","style"]),g=l("radio",p),b=(0,i.Z)({},y);r&&(b.name=r.name,b.onChange=function(t){var n,o;null===(n=e.onChange)||void 0===n||n.call(e,t),null===(o=null===r||void 0===r?void 0:r.onChange)||void 0===o||o.call(r,t)},b.checked=e.value===r.value,b.disabled=e.disabled||r.disabled);var x=u()("".concat(g,"-wrapper"),(n={},(0,o.Z)(n,"".concat(g,"-wrapper-checked"),b.checked),(0,o.Z)(n,"".concat(g,"-wrapper-disabled"),b.disabled),(0,o.Z)(n,"".concat(g,"-wrapper-rtl"),"rtl"===s),n),v);return c.createElement("label",{className:x,style:h,onMouseEnter:e.onMouseEnter,onMouseLeave:e.onMouseLeave},c.createElement(xn.Z,(0,i.Z)({},b,{type:"radio",prefixCls:g,ref:f})),void 0!==m?c.createElement("span",null,m):null)},Sn=c.forwardRef(Nn);Sn.displayName="Radio";var kn=Sn,On=n(97647),Pn=n(5467),Kn=c.forwardRef((function(e,t){var n=c.useContext(Fe.E_),r=n.getPrefixCls,l=n.direction,s=c.useContext(On.Z),d=(0,an.Z)(e.defaultValue,{value:e.value}),f=(0,a.Z)(d,2),p=f[0],v=f[1];return c.createElement(Cn,{value:{onChange:function(t){var n=p,r=t.target.value;"value"in e||v(r);var o=e.onChange;o&&r!==n&&o(t)},value:p,disabled:e.disabled,name:e.name}},function(){var n,a=e.prefixCls,d=e.className,f=void 0===d?"":d,v=e.options,m=e.optionType,h=e.buttonStyle,y=void 0===h?"outline":h,g=e.disabled,b=e.children,x=e.size,E=e.style,C=e.id,w=e.onMouseEnter,Z=e.onMouseLeave,N=r("radio",a),S="".concat(N,"-group"),k=b;if(v&&v.length>0){var O="button"===m?"".concat(N,"-button"):N;k=v.map((function(e){return"string"===typeof e?c.createElement(kn,{key:e,prefixCls:O,disabled:g,value:e,checked:p===e},e):c.createElement(kn,{key:"radio-group-value-options-".concat(e.value),prefixCls:O,disabled:e.disabled||g,value:e.value,checked:p===e.value,style:e.style},e.label)}))}var P=x||s,K=u()(S,"".concat(S,"-").concat(y),(n={},(0,o.Z)(n,"".concat(S,"-").concat(P),P),(0,o.Z)(n,"".concat(S,"-rtl"),"rtl"===l),n),f);return c.createElement("div",(0,i.Z)({},(0,Pn.Z)(e),{className:K,style:E,onMouseEnter:w,onMouseLeave:Z,id:C,ref:t}),k)}())})),In=c.memo(Kn),Dn=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Mn=function(e,t){var n=c.useContext(wn),r=c.useContext(Fe.E_).getPrefixCls,o=e.prefixCls,a=Dn(e,["prefixCls"]),l=r("radio-button",o);return n&&(a.checked=e.value===n.value,a.disabled=e.disabled||n.disabled),c.createElement(kn,(0,i.Z)({prefixCls:l},a,{type:"radio",ref:t}))},Rn=c.forwardRef(Mn),Tn=kn;Tn.Button=Rn,Tn.Group=In;var _n=Tn,jn={},Ln="SELECT_ALL",An="SELECT_INVERT",zn="SELECT_NONE";function Hn(e,t){var n=[];return(e||[]).forEach((function(e){n.push(e),e&&"object"===(0,r.Z)(e)&&t in e&&(n=[].concat((0,f.Z)(n),(0,f.Z)(Hn(e[t],t))))})),n}function Vn(e,t){var n=e||{},r=n.preserveSelectedRowKeys,l=n.selectedRowKeys,u=n.defaultSelectedRowKeys,s=n.getCheckboxProps,d=n.onChange,p=n.onSelect,v=n.onSelectAll,m=n.onSelectInvert,h=n.onSelectNone,y=n.onSelectMultiple,g=n.columnWidth,b=n.type,x=n.selections,E=n.fixed,C=n.renderCell,w=n.hideSelectAll,Z=n.checkStrictly,N=void 0===Z||Z,S=t.prefixCls,k=t.data,O=t.pageData,P=t.getRecordByKey,K=t.getRowKey,I=t.expandType,D=t.childrenColumnName,M=t.locale,R=t.getPopupContainer,T=(0,an.Z)(l||u||[],{value:l}),_=(0,a.Z)(T,2),j=_[0],L=_[1],A=c.useRef(new Map),z=(0,c.useCallback)((function(e){if(r){var t=new Map;e.forEach((function(e){var n=P(e);!n&&A.current.has(e)&&(n=A.current.get(e)),t.set(e,n)})),A.current=t}}),[P,r]);c.useEffect((function(){z(j)}),[j]);var H=(0,c.useMemo)((function(){return N?{keyEntities:null}:Qt(k,{externalGetKey:K,childrenPropName:D})}),[k,K,N,D]).keyEntities,V=(0,c.useMemo)((function(){return Hn(O,D)}),[O,D]),F=(0,c.useMemo)((function(){var e=new Map;return V.forEach((function(t,n){var r=K(t,n),o=(s?s(t):null)||{};e.set(r,o)})),e}),[V,K,s]),B=(0,c.useCallback)((function(e){var t;return!!(null===(t=F.get(K(e)))||void 0===t?void 0:t.disabled)}),[F,K]),U=(0,c.useMemo)((function(){if(N)return[j||[],[]];var e=on(j,!0,H,B);return[e.checkedKeys||[],e.halfCheckedKeys]}),[j,N,H,B]),W=(0,a.Z)(U,2),G=W[0],Y=W[1],q=(0,c.useMemo)((function(){var e="radio"===b?G.slice(0,1):G;return new Set(e)}),[G,b]),X=(0,c.useMemo)((function(){return"radio"===b?new Set:new Set(Y)}),[Y,b]),J=(0,c.useState)(null),$=(0,a.Z)(J,2),Q=$[0],ee=$[1];c.useEffect((function(){e||L([])}),[!!e]);var te=(0,c.useCallback)((function(e){var t,n;z(e),r?(t=e,n=e.map((function(e){return A.current.get(e)}))):(t=[],n=[],e.forEach((function(e){var r=P(e);void 0!==r&&(t.push(e),n.push(r))}))),L(t),null===d||void 0===d||d(t,n)}),[L,P,d,r]),ne=(0,c.useCallback)((function(e,t,n,r){if(p){var o=n.map((function(e){return P(e)}));p(P(e),t,o,r)}te(n)}),[p,P,te]),re=(0,c.useMemo)((function(){return!x||w?null:(!0===x?[Ln,An,zn]:x).map((function(e){return e===Ln?{key:"all",text:M.selectionAll,onSelect:function(){te(k.map((function(e,t){return K(e,t)})).filter((function(e){var t=F.get(e);return!(null===t||void 0===t?void 0:t.disabled)||q.has(e)})))}}:e===An?{key:"invert",text:M.selectInvert,onSelect:function(){var e=new Set(q);O.forEach((function(t,n){var r=K(t,n),o=F.get(r);(null===o||void 0===o?void 0:o.disabled)||(e.has(r)?e.delete(r):e.add(r))}));var t=Array.from(e);m&&((0,mn.Z)(!1,"Table","`onSelectInvert` will be removed in future. Please use `onChange` instead."),m(t)),te(t)}}:e===zn?{key:"none",text:M.selectNone,onSelect:function(){null===h||void 0===h||h(),te(Array.from(q).filter((function(e){var t=F.get(e);return null===t||void 0===t?void 0:t.disabled})))}}:e}))}),[x,q,O,K,m,te]);return[(0,c.useCallback)((function(t){var n;if(!e)return t.filter((function(e){return e!==jn}));var r,a,l=(0,f.Z)(t),u=new Set(q),s=V.map(K).filter((function(e){return!F.get(e).disabled})),d=s.every((function(e){return u.has(e)})),p=s.some((function(e){return u.has(e)}));if("radio"!==b){var m;if(re){var h=c.createElement(bn.Z,{getPopupContainer:R},re.map((function(e,t){var n=e.key,r=e.text,o=e.onSelect;return c.createElement(bn.Z.Item,{key:n||t,onClick:function(){null===o||void 0===o||o(s)}},r)})));m=c.createElement("div",{className:"".concat(S,"-selection-extra")},c.createElement(gn,{overlay:h,getPopupContainer:R},c.createElement("span",null,c.createElement(St.Z,null))))}var x=V.map((function(e,t){var n=K(e,t),r=F.get(n)||{};return(0,i.Z)({checked:u.has(n)},r)})).filter((function(e){return e.disabled})),Z=!!x.length&&x.length===V.length,k=Z&&x.every((function(e){return e.checked})),O=Z&&x.some((function(e){return e.checked}));r=!w&&c.createElement("div",{className:"".concat(S,"-selection")},c.createElement(cn.Z,{checked:Z?k:!!V.length&&d,indeterminate:Z?!k&&O:!d&&p,onChange:function(){var e=[];d?s.forEach((function(t){u.delete(t),e.push(t)})):s.forEach((function(t){u.has(t)||(u.add(t),e.push(t))}));var t=Array.from(u);null===v||void 0===v||v(!d,t.map((function(e){return P(e)})),e.map((function(e){return P(e)}))),te(t)},disabled:0===V.length||Z,skipGroup:!0}),m)}a="radio"===b?function(e,t,n){var r=K(t,n),o=u.has(r);return{node:c.createElement(_n,(0,i.Z)({},F.get(r),{checked:o,onClick:function(e){return e.stopPropagation()},onChange:function(e){u.has(r)||ne(r,!0,[r],e.nativeEvent)}})),checked:o}}:function(e,t,n){var r,o,a=K(t,n),l=u.has(a),d=X.has(a),p=F.get(a);return"nest"===I?(o=d,(0,mn.Z)("boolean"!==typeof(null===p||void 0===p?void 0:p.indeterminate),"Table","set `indeterminate` using `rowSelection.getCheckboxProps` is not allowed with tree structured dataSource.")):o=null!==(r=null===p||void 0===p?void 0:p.indeterminate)&&void 0!==r?r:d,{node:c.createElement(cn.Z,(0,i.Z)({},p,{indeterminate:o,checked:l,skipGroup:!0,onClick:function(e){return e.stopPropagation()},onChange:function(e){var t=e.nativeEvent,n=t.shiftKey,r=-1,o=-1;if(n&&N){var i=new Set([Q,a]);s.some((function(e,t){if(i.has(e)){if(-1!==r)return o=t,!0;r=t}return!1}))}if(-1!==o&&r!==o&&N){var c=s.slice(r,o+1),d=[];l?c.forEach((function(e){u.has(e)&&(d.push(e),u.delete(e))})):c.forEach((function(e){u.has(e)||(d.push(e),u.add(e))}));var p=Array.from(u);null===y||void 0===y||y(!l,p.map((function(e){return P(e)})),d.map((function(e){return P(e)}))),te(p)}else{var v=G;if(N){var m=l?jt(v,a):Lt(v,a);ne(a,!l,m,t)}else{var h=on([].concat((0,f.Z)(v),[a]),!0,H,B),g=h.checkedKeys,b=h.halfCheckedKeys,x=g;if(l){var E=new Set(g);E.delete(a),x=on(Array.from(E),{checked:!1,halfCheckedKeys:b},H,B).checkedKeys}ne(a,!l,x,t)}}ee(a)}})),checked:l}};if(!l.includes(jn))if(0===l.findIndex((function(e){var t;return"EXPAND_COLUMN"===(null===(t=e[oe])||void 0===t?void 0:t.columnType)}))){var D=l,M=(0,Nt.Z)(D),T=M[0],_=M.slice(1);l=[T,jn].concat((0,f.Z)(_))}else l=[jn].concat((0,f.Z)(l));var j=l.indexOf(jn);var L=(l=l.filter((function(e,t){return e!==jn||t===j})))[j-1],A=l[j+1],z=E;void 0===z&&(void 0!==(null===A||void 0===A?void 0:A.fixed)?z=A.fixed:void 0!==(null===L||void 0===L?void 0:L.fixed)&&(z=L.fixed)),z&&L&&"EXPAND_COLUMN"===(null===(n=L[oe])||void 0===n?void 0:n.columnType)&&void 0===L.fixed&&(L.fixed=z);var U=(0,o.Z)({fixed:z,width:g,className:"".concat(S,"-selection-column"),title:e.columnTitle||r,render:function(e,t,n){var r=a(e,t,n),o=r.node,i=r.checked;return C?C(i,t,n,o):o}},oe,{className:"".concat(S,"-selection-col")});return l.map((function(e){return e===jn?U:e}))}),[K,V,e,G,q,X,g,re,I,Q,F,y,ne,B]),q]}var Fn={icon:{tag:"svg",attrs:{viewBox:"0 0 1024 1024",focusable:"false"},children:[{tag:"path",attrs:{d:"M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z"}}]},name:"caret-down",theme:"outlined"},Bn=function(e,t){return c.createElement(st.Z,(0,d.Z)((0,d.Z)({},e),{},{ref:t,icon:Fn}))};Bn.displayName="CaretDownOutlined";var Un=c.forwardRef(Bn),Wn={icon:{tag:"svg",attrs:{viewBox:"0 0 1024 1024",focusable:"false"},children:[{tag:"path",attrs:{d:"M858.9 689L530.5 308.2c-9.4-10.9-27.5-10.9-37 0L165.1 689c-12.2 14.2-1.2 35 18.5 35h656.8c19.7 0 30.7-20.8 18.5-35z"}}]},name:"caret-up",theme:"outlined"},Gn=function(e,t){return c.createElement(st.Z,(0,d.Z)((0,d.Z)({},e),{},{ref:t,icon:Wn}))};Gn.displayName="CaretUpOutlined";var Yn=c.forwardRef(Gn),qn=n(56266);function Xn(e,t){return"key"in e&&void 0!==e.key&&null!==e.key?e.key:e.dataIndex?Array.isArray(e.dataIndex)?e.dataIndex.join("."):e.dataIndex:t}function Jn(e,t){return t?"".concat(t,"-").concat(e):"".concat(e)}function $n(e,t){return"function"===typeof e?e(t):e}var Qn="ascend",er="descend";function tr(e){return"object"===(0,r.Z)(e.sorter)&&"number"===typeof e.sorter.multiple&&e.sorter.multiple}function nr(e){return"function"===typeof e?e:!(!e||"object"!==(0,r.Z)(e)||!e.compare)&&e.compare}function rr(e,t,n){var r=[];function o(e,t){r.push({column:e,key:Xn(e,t),multiplePriority:tr(e),sortOrder:e.sortOrder})}return(e||[]).forEach((function(e,a){var i=Jn(a,n);e.children?("sortOrder"in e&&o(e,i),r=[].concat((0,f.Z)(r),(0,f.Z)(rr(e.children,t,i)))):e.sorter&&("sortOrder"in e?o(e,i):t&&e.defaultSortOrder&&r.push({column:e,key:Xn(e,i),multiplePriority:tr(e),sortOrder:e.defaultSortOrder}))})),r}function or(e,t,n,a,l,s,d,f){return(t||[]).map((function(t,p){var v=Jn(p,f),m=t;if(m.sorter){var h=m.sortDirections||l,y=void 0===m.showSorterTooltip?d:m.showSorterTooltip,g=Xn(m,v),b=n.find((function(e){return e.key===g})),x=b?b.sortOrder:null,E=function(e,t){return t?e[e.indexOf(t)+1]:e[0]}(h,x),C=h.includes(Qn)&&c.createElement(Yn,{className:u()("".concat(e,"-column-sorter-up"),{active:x===Qn})}),w=h.includes(er)&&c.createElement(Un,{className:u()("".concat(e,"-column-sorter-down"),{active:x===er})}),Z=s||{},N=Z.cancelSort,S=Z.triggerAsc,k=Z.triggerDesc,O=N;E===er?O=k:E===Qn&&(O=S);var P="object"===(0,r.Z)(y)?y:{title:O};m=(0,i.Z)((0,i.Z)({},m),{className:u()(m.className,(0,o.Z)({},"".concat(e,"-column-sort"),x)),title:function(n){var r=c.createElement("div",{className:"".concat(e,"-column-sorters")},c.createElement("span",{className:"".concat(e,"-column-title")},$n(t.title,n)),c.createElement("span",{className:u()("".concat(e,"-column-sorter"),(0,o.Z)({},"".concat(e,"-column-sorter-full"),!(!C||!w)))},c.createElement("span",{className:"".concat(e,"-column-sorter-inner")},C,w)));return y?c.createElement(qn.Z,P,r):r},onHeaderCell:function(n){var r=t.onHeaderCell&&t.onHeaderCell(n)||{},o=r.onClick;return r.onClick=function(e){a({column:t,key:g,sortOrder:E,multiplePriority:tr(t)}),o&&o(e)},r.className=u()(r.className,"".concat(e,"-column-has-sorters")),r}})}return"children"in m&&(m=(0,i.Z)((0,i.Z)({},m),{children:or(e,m.children,n,a,l,s,d,v)})),m}))}function ar(e){var t=e.column;return{column:t,order:e.sortOrder,field:t.dataIndex,columnKey:t.key}}function ir(e){var t=e.filter((function(e){return e.sortOrder})).map(ar);return 0===t.length&&e.length?(0,i.Z)((0,i.Z)({},ar(e[e.length-1])),{column:void 0}):t.length<=1?t[0]||{}:t}function cr(e,t,n){var r=t.slice().sort((function(e,t){return t.multiplePriority-e.multiplePriority})),a=e.slice(),c=r.filter((function(e){var t=e.column.sorter,n=e.sortOrder;return nr(t)&&n}));return c.length?a.sort((function(e,t){for(var n=0;n<c.length;n+=1){var r=c[n],o=r.column.sorter,a=r.sortOrder,i=nr(o);if(i&&a){var l=i(e,t,a);if(0!==l)return a===Qn?l:-l}}return 0})).map((function(e){var r=e[n];return r?(0,i.Z)((0,i.Z)({},e),(0,o.Z)({},n,cr(r,t,n))):e})):a}function lr(e){var t=e.prefixCls,n=e.mergedColumns,r=e.onSorterChange,o=e.sortDirections,l=e.tableLocale,u=e.showSorterTooltip,s=c.useState(rr(n,!0)),d=(0,a.Z)(s,2),p=d[0],v=d[1],m=c.useMemo((function(){var e=!0,t=rr(n,!1);if(!t.length)return p;var r=[];function o(t){e?r.push(t):r.push((0,i.Z)((0,i.Z)({},t),{sortOrder:null}))}var a=null;return t.forEach((function(t){null===a?(o(t),t.sortOrder&&(!1===t.multiplePriority?e=!1:a=!0)):(a&&!1!==t.multiplePriority||(e=!1),o(t))})),r}),[n,p]),h=c.useMemo((function(){var e=m.map((function(e){return{column:e.column,order:e.sortOrder}}));return{sortColumns:e,sortColumn:e[0]&&e[0].column,sortOrder:e[0]&&e[0].order}}),[m]);function y(e){var t;t=!1!==e.multiplePriority&&m.length&&!1!==m[0].multiplePriority?[].concat((0,f.Z)(m.filter((function(t){return t.key!==e.key}))),[e]):[e],v(t),r(ir(t),t)}return[function(e){return or(t,e,m,y,o,l,u)},m,h,function(){return ir(m)}]}var ur=n(18446),sr=n.n(ur),dr={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M349 838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V642H349v196zm531.1-684H143.9c-24.5 0-39.8 26.7-27.5 48l221.3 376h348.8l221.3-376c12.1-21.3-3.2-48-27.7-48z"}}]},name:"filter",theme:"filled"},fr=function(e,t){return c.createElement(st.Z,(0,d.Z)((0,d.Z)({},e),{},{ref:t,icon:dr}))};fr.displayName="FilterFilled";var pr=c.forwardRef(fr),vr={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M300 276.5a56 56 0 1056-97 56 56 0 00-56 97zm0 284a56 56 0 1056-97 56 56 0 00-56 97zM640 228a56 56 0 10112 0 56 56 0 00-112 0zm0 284a56 56 0 10112 0 56 56 0 00-112 0zM300 844.5a56 56 0 1056-97 56 56 0 00-56 97zM640 796a56 56 0 10112 0 56 56 0 00-112 0z"}}]},name:"holder",theme:"outlined"},mr=function(e,t){return c.createElement(st.Z,(0,d.Z)((0,d.Z)({},e),{},{ref:t,icon:vr}))};mr.displayName="HolderOutlined";var hr=c.forwardRef(mr),yr=n(15105),gr=n(73453),br=n(93481),xr=["className","style","motion","motionNodes","motionType","onMotionStart","onMotionEnd","active","treeNodeRequiredProps"],Er=function(e,t){var n=e.className,r=e.style,o=e.motion,l=e.motionNodes,s=e.motionType,d=e.onMotionStart,f=e.onMotionEnd,p=e.active,v=e.treeNodeRequiredProps,m=(0,w.Z)(e,xr),h=c.useState(!0),y=(0,a.Z)(h,2),g=y[0],b=y[1],x=c.useContext(Ot).prefixCls,E=c.useRef(!1),C=function(){E.current||f(),E.current=!0};return(0,c.useEffect)((function(){l&&"hide"===s&&g&&b(!1)}),[l]),(0,c.useEffect)((function(){return l&&d(),function(){l&&C()}}),[]),l?c.createElement(br.Z,(0,i.Z)({ref:t,visible:g},o,{motionAppear:"show"===s,onAppearEnd:C,onLeaveEnd:C}),(function(e,t){var n=e.className,r=e.style;return c.createElement("div",{ref:t,className:u()("".concat(x,"-treenode-motion"),n),style:r},l.map((function(e){var t=(0,i.Z)({},e.data),n=e.title,r=e.key,o=e.isStart,a=e.isEnd;delete t.children;var l=en(r,v);return c.createElement(_t,(0,i.Z)({},t,l,{title:n,active:p,data:e.data,key:r,isStart:o,isEnd:a}))})))})):c.createElement(_t,(0,i.Z)({domRef:t,className:n,style:r},m,{active:p}))};Er.displayName="MotionTreeNode";var Cr=c.forwardRef(Er);function wr(e,t,n){var r=e.findIndex((function(e){return e.data.key===n})),o=e[r+1],a=t.findIndex((function(e){return e.data.key===n}));if(o){var i=t.findIndex((function(e){return e.data.key===o.data.key}));return t.slice(a+1,i)}return t.slice(a+1)}var Zr=["prefixCls","data","selectable","checkable","expandedKeys","selectedKeys","checkedKeys","loadedKeys","loadingKeys","halfCheckedKeys","keyEntities","disabled","dragging","dragOverNodeKey","dropPosition","motion","height","itemHeight","virtual","focusable","activeItem","focused","tabIndex","onKeyDown","onFocus","onBlur","onActiveChange","onListChangeStart","onListChangeEnd"],Nr={width:0,height:0,display:"flex",overflow:"hidden",opacity:0,border:0,padding:0,margin:0},Sr=function(){},kr="RC_TREE_MOTION_".concat(Math.random()),Or={key:kr},Pr={key:kr,level:0,index:0,pos:"0",node:Or,nodes:[Or]},Kr={parent:null,children:[],pos:Pr.pos,data:Or,title:null,key:kr,isStart:[],isEnd:[]};function Ir(e,t,n,r){return!1!==t&&n?e.slice(0,Math.ceil(n/r)+1):e}function Dr(e){return Yt(e.data.key,e.pos)}var Mr=function(e,t){var n=e.prefixCls,r=e.data,o=(e.selectable,e.checkable,e.expandedKeys),l=e.selectedKeys,u=e.checkedKeys,s=e.loadedKeys,d=e.loadingKeys,f=e.halfCheckedKeys,p=e.keyEntities,v=e.disabled,m=e.dragging,h=e.dragOverNodeKey,y=e.dropPosition,g=e.motion,b=e.height,x=e.itemHeight,E=e.virtual,C=e.focusable,Z=e.activeItem,N=e.focused,S=e.tabIndex,k=e.onKeyDown,O=e.onFocus,P=e.onBlur,K=e.onActiveChange,I=e.onListChangeStart,D=e.onListChangeEnd,M=(0,w.Z)(e,Zr),R=c.useRef(null),T=c.useRef(null);c.useImperativeHandle(t,(function(){return{scrollTo:function(e){R.current.scrollTo(e)},getIndentWidth:function(){return T.current.offsetWidth}}}));var _=c.useState(o),j=(0,a.Z)(_,2),L=j[0],A=j[1],z=c.useState(r),H=(0,a.Z)(z,2),V=H[0],F=H[1],B=c.useState(r),U=(0,a.Z)(B,2),W=U[0],G=U[1],Y=c.useState([]),q=(0,a.Z)(Y,2),X=q[0],J=q[1],$=c.useState(null),Q=(0,a.Z)($,2),ee=Q[0],te=Q[1];function ne(){F(r),G(r),J([]),te(null),D()}c.useEffect((function(){A(o);var e=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=e.length,r=t.length;if(1!==Math.abs(n-r))return{add:!1,key:null};function o(e,t){var n=new Map;e.forEach((function(e){n.set(e,!0)}));var r=t.filter((function(e){return!n.has(e)}));return 1===r.length?r[0]:null}return n<r?{add:!0,key:o(e,t)}:{add:!1,key:o(t,e)}}(L,o);if(null!==e.key)if(e.add){var t=V.findIndex((function(t){return t.data.key===e.key})),n=Ir(wr(V,r,e.key),E,b,x),a=V.slice();a.splice(t+1,0,Kr),G(a),J(n),te("show")}else{var i=r.findIndex((function(t){return t.data.key===e.key})),c=Ir(wr(r,V,e.key),E,b,x),l=r.slice();l.splice(i+1,0,Kr),G(l),J(c),te("hide")}else V!==r&&(F(r),G(r))}),[o,r]),c.useEffect((function(){m||ne()}),[m]);var re=g?W:r,oe={expandedKeys:o,selectedKeys:l,loadedKeys:s,loadingKeys:d,checkedKeys:u,halfCheckedKeys:f,dragOverNodeKey:h,dropPosition:y,keyEntities:p};return c.createElement(c.Fragment,null,N&&Z&&c.createElement("span",{style:Nr,"aria-live":"assertive"},function(e){for(var t=String(e.data.key),n=e;n.parent;)n=n.parent,t="".concat(n.data.key," > ").concat(t);return t}(Z)),c.createElement("div",null,c.createElement("input",{style:Nr,disabled:!1===C||v,tabIndex:!1!==C?S:null,onKeyDown:k,onFocus:O,onBlur:P,value:"",onChange:Sr,"aria-label":"for screen reader"})),c.createElement("div",{className:"".concat(n,"-treenode"),"aria-hidden":!0,style:{position:"absolute",pointerEvents:"none",visibility:"hidden",height:0,overflow:"hidden"}},c.createElement("div",{className:"".concat(n,"-indent")},c.createElement("div",{ref:T,className:"".concat(n,"-indent-unit")}))),c.createElement(gr.Z,(0,i.Z)({},M,{data:re,itemKey:Dr,height:b,fullHeight:!1,virtual:E,itemHeight:x,prefixCls:"".concat(n,"-list"),ref:R,onVisibleChange:function(e,t){var n=new Set(e);t.filter((function(e){return!n.has(e)})).some((function(e){return Dr(e)===kr}))&&ne()}}),(function(e){var t=e.pos,n=(0,i.Z)({},e.data),r=e.title,o=e.key,a=e.isStart,l=e.isEnd,u=Yt(o,t);delete n.key,delete n.children;var s=en(u,oe);return c.createElement(Cr,(0,i.Z)({},n,s,{title:r,active:!!Z&&o===Z.data.key,pos:t,data:e.data,isStart:a,isEnd:l,motion:g,motionNodes:o===kr?X:null,motionType:ee,onMotionStart:I,onMotionEnd:ne,treeNodeRequiredProps:oe,onMouseMove:function(){K(null)}}))})))},Rr=c.forwardRef(Mr);Rr.displayName="NodeList";var Tr=Rr;var _r=function(e){(0,Ae.Z)(n,e);var t=(0,ze.Z)(n);function n(){var e;(0,je.Z)(this,n);for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return(e=t.call.apply(t,[this].concat(o))).destroyed=!1,e.delayedDragEnterLogic=void 0,e.loadingRetryTimes={},e.state={keyEntities:{},indent:null,selectedKeys:[],checkedKeys:[],halfCheckedKeys:[],loadedKeys:[],loadingKeys:[],expandedKeys:[],draggingNodeKey:null,dragChildrenKeys:[],dropTargetKey:null,dropPosition:null,dropContainerKey:null,dropLevelOffset:null,dropTargetPos:null,dropAllowed:!0,dragOverNodeKey:null,treeData:[],flattenNodes:[],focused:!1,activeKey:null,listChanging:!1,prevProps:null,fieldNames:qt()},e.dragStartMousePosition=null,e.dragNode=void 0,e.currentMouseOverDroppableNodeKey=null,e.listRef=c.createRef(),e.onNodeDragStart=function(t,n){var r=e.state,o=r.expandedKeys,a=r.keyEntities,i=e.props.onDragStart,c=n.props.eventKey;e.dragNode=n,e.dragStartMousePosition={x:t.clientX,y:t.clientY};var l=jt(o,c);e.setState({draggingNodeKey:c,dragChildrenKeys:Ht(c,a),indent:e.listRef.current.getIndentWidth()}),e.setExpandedKeys(l),window.addEventListener("dragend",e.onWindowDragEnd),i&&i({event:t,node:tn(n.props)})},e.onNodeDragEnter=function(t,n){var r=e.state,o=r.expandedKeys,a=r.keyEntities,i=r.dragChildrenKeys,c=r.flattenNodes,l=r.indent,u=e.props,s=u.onDragEnter,d=u.onExpand,p=u.allowDrop,v=u.direction,m=n.props,h=m.pos,y=m.eventKey,g=(0,kt.Z)(e).dragNode;if(e.currentMouseOverDroppableNodeKey!==y&&(e.currentMouseOverDroppableNodeKey=y),g){var b=Ft(t,g,n,l,e.dragStartMousePosition,p,c,a,o,v),x=b.dropPosition,E=b.dropLevelOffset,C=b.dropTargetKey,w=b.dropContainerKey,Z=b.dropTargetPos,N=b.dropAllowed,S=b.dragOverNodeKey;-1===i.indexOf(C)&&N?(e.delayedDragEnterLogic||(e.delayedDragEnterLogic={}),Object.keys(e.delayedDragEnterLogic).forEach((function(t){clearTimeout(e.delayedDragEnterLogic[t])})),g.props.eventKey!==n.props.eventKey&&(t.persist(),e.delayedDragEnterLogic[h]=window.setTimeout((function(){if(null!==e.state.draggingNodeKey){var r=(0,f.Z)(o),i=a[n.props.eventKey];i&&(i.children||[]).length&&(r=Lt(o,n.props.eventKey)),"expandedKeys"in e.props||e.setExpandedKeys(r),d&&d(r,{node:tn(n.props),expanded:!0,nativeEvent:t.nativeEvent})}}),800)),g.props.eventKey!==C||0!==E?(e.setState({dragOverNodeKey:S,dropPosition:x,dropLevelOffset:E,dropTargetKey:C,dropContainerKey:w,dropTargetPos:Z,dropAllowed:N}),s&&s({event:t,node:tn(n.props),expandedKeys:o})):e.resetDragState()):e.resetDragState()}else e.resetDragState()},e.onNodeDragOver=function(t,n){var r=e.state,o=r.dragChildrenKeys,a=r.flattenNodes,i=r.keyEntities,c=r.expandedKeys,l=r.indent,u=e.props,s=u.onDragOver,d=u.allowDrop,f=u.direction,p=(0,kt.Z)(e).dragNode;if(p){var v=Ft(t,p,n,l,e.dragStartMousePosition,d,a,i,c,f),m=v.dropPosition,h=v.dropLevelOffset,y=v.dropTargetKey,g=v.dropContainerKey,b=v.dropAllowed,x=v.dropTargetPos,E=v.dragOverNodeKey;-1===o.indexOf(y)&&b&&(p.props.eventKey===y&&0===h?null===e.state.dropPosition&&null===e.state.dropLevelOffset&&null===e.state.dropTargetKey&&null===e.state.dropContainerKey&&null===e.state.dropTargetPos&&!1===e.state.dropAllowed&&null===e.state.dragOverNodeKey||e.resetDragState():m===e.state.dropPosition&&h===e.state.dropLevelOffset&&y===e.state.dropTargetKey&&g===e.state.dropContainerKey&&x===e.state.dropTargetPos&&b===e.state.dropAllowed&&E===e.state.dragOverNodeKey||e.setState({dropPosition:m,dropLevelOffset:h,dropTargetKey:y,dropContainerKey:g,dropTargetPos:x,dropAllowed:b,dragOverNodeKey:E}),s&&s({event:t,node:tn(n.props)}))}},e.onNodeDragLeave=function(t,n){e.currentMouseOverDroppableNodeKey!==n.props.eventKey||t.currentTarget.contains(t.relatedTarget)||(e.resetDragState(),e.currentMouseOverDroppableNodeKey=null);var r=e.props.onDragLeave;r&&r({event:t,node:tn(n.props)})},e.onWindowDragEnd=function(t){e.onNodeDragEnd(t,null,!0),window.removeEventListener("dragend",e.onWindowDragEnd)},e.onNodeDragEnd=function(t,n){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=e.props.onDragEnd;e.setState({dragOverNodeKey:null}),e.cleanDragState(),o&&!r&&o({event:t,node:tn(n.props)}),e.dragNode=null},e.onNodeDrop=function(t,n){var r,o=arguments.length>2&&void 0!==arguments[2]&&arguments[2],a=e.state,i=a.dragChildrenKeys,c=a.dropPosition,l=a.dropTargetKey,u=a.dropTargetPos,s=a.dropAllowed;if(s){var f=e.props.onDrop;if(e.setState({dragOverNodeKey:null}),e.cleanDragState(),null!==l){var p=(0,d.Z)((0,d.Z)({},en(l,e.getTreeNodeRequiredProps())),{},{active:(null===(r=e.getActiveItem())||void 0===r?void 0:r.data.key)===l,data:e.state.keyEntities[l].node}),v=-1!==i.indexOf(l);(0,g.ZP)(!v,"Can not drop to dragNode's children node. This is a bug of rc-tree. Please report an issue.");var m=At(u),h={event:t,node:tn(p),dragNode:e.dragNode?tn(e.dragNode.props):null,dragNodesKeys:[e.dragNode.props.eventKey].concat(i),dropToGap:0!==c,dropPosition:c+Number(m[m.length-1])};f&&!o&&f(h),e.dragNode=null}}},e.cleanDragState=function(){null!==e.state.draggingNodeKey&&e.setState({draggingNodeKey:null,dropPosition:null,dropContainerKey:null,dropTargetKey:null,dropLevelOffset:null,dropAllowed:!0,dragOverNodeKey:null}),e.dragStartMousePosition=null,e.currentMouseOverDroppableNodeKey=null},e.onNodeClick=function(t,n){var r=e.props.onClick;r&&r(t,n)},e.onNodeDoubleClick=function(t,n){var r=e.props.onDoubleClick;r&&r(t,n)},e.onNodeSelect=function(t,n){var r=e.state.selectedKeys,o=e.state,a=o.keyEntities,i=o.fieldNames,c=e.props,l=c.onSelect,u=c.multiple,s=n.selected,d=n[i.key],f=!s,p=(r=f?u?Lt(r,d):[d]:jt(r,d)).map((function(e){var t=a[e];return t?t.node:null})).filter((function(e){return e}));e.setUncontrolledState({selectedKeys:r}),l&&l(r,{event:"select",selected:f,node:n,selectedNodes:p,nativeEvent:t.nativeEvent})},e.onNodeCheck=function(t,n,r){var o,a=e.state,i=a.keyEntities,c=a.checkedKeys,l=a.halfCheckedKeys,u=e.props,s=u.checkStrictly,d=u.onCheck,p=n.key,v={event:"check",node:n,checked:r,nativeEvent:t.nativeEvent};if(s){var m=r?Lt(c,p):jt(c,p);o={checked:m,halfChecked:jt(l,p)},v.checkedNodes=m.map((function(e){return i[e]})).filter((function(e){return e})).map((function(e){return e.node})),e.setUncontrolledState({checkedKeys:m})}else{var h=on([].concat((0,f.Z)(c),[p]),!0,i),y=h.checkedKeys,g=h.halfCheckedKeys;if(!r){var b=new Set(y);b.delete(p);var x=on(Array.from(b),{checked:!1,halfCheckedKeys:g},i);y=x.checkedKeys,g=x.halfCheckedKeys}o=y,v.checkedNodes=[],v.checkedNodesPositions=[],v.halfCheckedKeys=g,y.forEach((function(e){var t=i[e];if(t){var n=t.node,r=t.pos;v.checkedNodes.push(n),v.checkedNodesPositions.push({node:n,pos:r})}})),e.setUncontrolledState({checkedKeys:y},!1,{halfCheckedKeys:g})}d&&d(o,v)},e.onNodeLoad=function(t){var n=t.key,r=new Promise((function(r,o){e.setState((function(a){var i=a.loadedKeys,c=void 0===i?[]:i,l=a.loadingKeys,u=void 0===l?[]:l,s=e.props,d=s.loadData,f=s.onLoad;return d&&-1===c.indexOf(n)&&-1===u.indexOf(n)?(d(t).then((function(){var o=Lt(e.state.loadedKeys,n);f&&f(o,{event:"load",node:t}),e.setUncontrolledState({loadedKeys:o}),e.setState((function(e){return{loadingKeys:jt(e.loadingKeys,n)}})),r()})).catch((function(t){if(e.setState((function(e){return{loadingKeys:jt(e.loadingKeys,n)}})),e.loadingRetryTimes[n]=(e.loadingRetryTimes[n]||0)+1,e.loadingRetryTimes[n]>=10){var a=e.state.loadedKeys;(0,g.ZP)(!1,"Retry for `loadData` many times but still failed. No more retry."),e.setUncontrolledState({loadedKeys:Lt(a,n)}),r()}o(t)})),{loadingKeys:Lt(u,n)}):null}))}));return r.catch((function(){})),r},e.onNodeMouseEnter=function(t,n){var r=e.props.onMouseEnter;r&&r({event:t,node:n})},e.onNodeMouseLeave=function(t,n){var r=e.props.onMouseLeave;r&&r({event:t,node:n})},e.onNodeContextMenu=function(t,n){var r=e.props.onRightClick;r&&(t.preventDefault(),r({event:t,node:n}))},e.onFocus=function(){var t=e.props.onFocus;e.setState({focused:!0}),t&&t.apply(void 0,arguments)},e.onBlur=function(){var t=e.props.onBlur;e.setState({focused:!1}),e.onActiveChange(null),t&&t.apply(void 0,arguments)},e.getTreeNodeRequiredProps=function(){var t=e.state;return{expandedKeys:t.expandedKeys||[],selectedKeys:t.selectedKeys||[],loadedKeys:t.loadedKeys||[],loadingKeys:t.loadingKeys||[],checkedKeys:t.checkedKeys||[],halfCheckedKeys:t.halfCheckedKeys||[],dragOverNodeKey:t.dragOverNodeKey,dropPosition:t.dropPosition,keyEntities:t.keyEntities}},e.setExpandedKeys=function(t){var n=e.state,r=Jt(n.treeData,t,n.fieldNames);e.setUncontrolledState({expandedKeys:t,flattenNodes:r},!0)},e.onNodeExpand=function(t,n){var r=e.state.expandedKeys,o=e.state,a=o.listChanging,i=o.fieldNames,c=e.props,l=c.onExpand,u=c.loadData,s=n.expanded,d=n[i.key];if(!a){var f=r.indexOf(d),p=!s;if((0,g.ZP)(s&&-1!==f||!s&&-1===f,"Expand state not sync with index check"),r=p?Lt(r,d):jt(r,d),e.setExpandedKeys(r),l&&l(r,{node:n,expanded:p,nativeEvent:t.nativeEvent}),p&&u){var v=e.onNodeLoad(n);v&&v.then((function(){var t=Jt(e.state.treeData,r,i);e.setUncontrolledState({flattenNodes:t})})).catch((function(){var t=jt(e.state.expandedKeys,d);e.setExpandedKeys(t)}))}}},e.onListChangeStart=function(){e.setUncontrolledState({listChanging:!0})},e.onListChangeEnd=function(){setTimeout((function(){e.setUncontrolledState({listChanging:!1})}))},e.onActiveChange=function(t){var n=e.state.activeKey,r=e.props.onActiveChange;n!==t&&(e.setState({activeKey:t}),null!==t&&e.scrollTo({key:t}),r&&r(t))},e.getActiveItem=function(){var t=e.state,n=t.activeKey,r=t.flattenNodes;return null===n?null:r.find((function(e){return e.key===n}))||null},e.offsetActiveKey=function(t){var n=e.state,r=n.flattenNodes,o=n.activeKey,a=r.findIndex((function(e){return e.key===o}));-1===a&&t<0&&(a=r.length);var i=r[a=(a+t+r.length)%r.length];if(i){var c=i.key;e.onActiveChange(c)}else e.onActiveChange(null)},e.onKeyDown=function(t){var n=e.state,r=n.activeKey,o=n.expandedKeys,a=n.checkedKeys,i=e.props,c=i.onKeyDown,l=i.checkable,u=i.selectable;switch(t.which){case yr.Z.UP:e.offsetActiveKey(-1),t.preventDefault();break;case yr.Z.DOWN:e.offsetActiveKey(1),t.preventDefault()}var s=e.getActiveItem();if(s&&s.data){var f=e.getTreeNodeRequiredProps(),p=!1===s.data.isLeaf||!!(s.data.children||[]).length,v=tn((0,d.Z)((0,d.Z)({},en(r,f)),{},{data:s.data,active:!0}));switch(t.which){case yr.Z.LEFT:p&&o.includes(r)?e.onNodeExpand({},v):s.parent&&e.onActiveChange(s.parent.data.key),t.preventDefault();break;case yr.Z.RIGHT:p&&!o.includes(r)?e.onNodeExpand({},v):s.children&&s.children.length&&e.onActiveChange(s.children[0].data.key),t.preventDefault();break;case yr.Z.ENTER:case yr.Z.SPACE:!l||v.disabled||!1===v.checkable||v.disableCheckbox?l||!u||v.disabled||!1===v.selectable||e.onNodeSelect({},v):e.onNodeCheck({},v,!a.includes(r))}}c&&c(t)},e.setUncontrolledState=function(t){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;if(!e.destroyed){var o=!1,a=!0,i={};Object.keys(t).forEach((function(n){n in e.props?a=!1:(o=!0,i[n]=t[n])})),!o||n&&!a||e.setState((0,d.Z)((0,d.Z)({},i),r))}},e.scrollTo=function(t){e.listRef.current.scrollTo(t)},e}return(0,Le.Z)(n,[{key:"componentWillUnmount",value:function(){window.removeEventListener("dragend",this.onWindowDragEnd),this.destroyed=!0}},{key:"resetDragState",value:function(){this.setState({dragOverNodeKey:null,dropPosition:null,dropLevelOffset:null,dropTargetKey:null,dropContainerKey:null,dropTargetPos:null,dropAllowed:!1})}},{key:"render",value:function(){var e,t,n=this.state,a=n.focused,l=n.flattenNodes,s=n.keyEntities,d=n.draggingNodeKey,f=n.activeKey,p=n.dropLevelOffset,m=n.dropContainerKey,h=n.dropTargetKey,y=n.dropPosition,g=n.dragOverNodeKey,b=n.indent,x=this.props,E=x.prefixCls,C=x.className,w=x.style,Z=x.showLine,N=x.focusable,S=x.tabIndex,k=void 0===S?0:S,O=x.selectable,P=x.showIcon,K=x.icon,I=x.switcherIcon,D=x.draggable,M=x.checkable,R=x.checkStrictly,T=x.disabled,_=x.motion,j=x.loadData,L=x.filterTreeNode,A=x.height,z=x.itemHeight,H=x.virtual,V=x.titleRender,F=x.dropIndicatorRender,B=x.onContextMenu,U=x.onScroll,W=x.direction,G=(0,v.Z)(this.props,{aria:!0,data:!0});return D&&(t="object"===(0,r.Z)(D)?D:"function"===typeof D?{nodeDraggable:D}:{}),c.createElement(Ot.Provider,{value:{prefixCls:E,selectable:O,showIcon:P,icon:K,switcherIcon:I,draggable:t,draggingNodeKey:d,checkable:M,checkStrictly:R,disabled:T,keyEntities:s,dropLevelOffset:p,dropContainerKey:m,dropTargetKey:h,dropPosition:y,dragOverNodeKey:g,indent:b,direction:W,dropIndicatorRender:F,loadData:j,filterTreeNode:L,titleRender:V,onNodeClick:this.onNodeClick,onNodeDoubleClick:this.onNodeDoubleClick,onNodeExpand:this.onNodeExpand,onNodeSelect:this.onNodeSelect,onNodeCheck:this.onNodeCheck,onNodeLoad:this.onNodeLoad,onNodeMouseEnter:this.onNodeMouseEnter,onNodeMouseLeave:this.onNodeMouseLeave,onNodeContextMenu:this.onNodeContextMenu,onNodeDragStart:this.onNodeDragStart,onNodeDragEnter:this.onNodeDragEnter,onNodeDragOver:this.onNodeDragOver,onNodeDragLeave:this.onNodeDragLeave,onNodeDragEnd:this.onNodeDragEnd,onNodeDrop:this.onNodeDrop}},c.createElement("div",{role:"tree",className:u()(E,C,(e={},(0,o.Z)(e,"".concat(E,"-show-line"),Z),(0,o.Z)(e,"".concat(E,"-focused"),a),(0,o.Z)(e,"".concat(E,"-active-focused"),null!==f),e))},c.createElement(Tr,(0,i.Z)({ref:this.listRef,prefixCls:E,style:w,data:l,disabled:T,selectable:O,checkable:!!M,motion:_,dragging:null!==d,height:A,itemHeight:z,virtual:H,focusable:N,focused:a,tabIndex:k,activeItem:this.getActiveItem(),onFocus:this.onFocus,onBlur:this.onBlur,onKeyDown:this.onKeyDown,onActiveChange:this.onActiveChange,onListChangeStart:this.onListChangeStart,onListChangeEnd:this.onListChangeEnd,onContextMenu:B,onScroll:U},this.getTreeNodeRequiredProps(),G))))}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n,r=t.prevProps,a={prevProps:e};function i(t){return!r&&t in e||r&&r[t]!==e[t]}var c=t.fieldNames;if(i("fieldNames")&&(c=qt(e.fieldNames),a.fieldNames=c),i("treeData")?n=e.treeData:i("children")&&((0,g.ZP)(!1,"`children` of Tree is deprecated. Please use `treeData` instead."),n=Xt(e.children)),n){a.treeData=n;var l=Qt(n,{fieldNames:c});a.keyEntities=(0,d.Z)((0,o.Z)({},kr,Pr),l.keyEntities)}var u,s=a.keyEntities||t.keyEntities;if(i("expandedKeys")||r&&i("autoExpandParent"))a.expandedKeys=e.autoExpandParent||!r&&e.defaultExpandParent?Wt(e.expandedKeys,s):e.expandedKeys;else if(!r&&e.defaultExpandAll){var f=(0,d.Z)({},s);delete f[kr],a.expandedKeys=Object.keys(f).map((function(e){return f[e].key}))}else!r&&e.defaultExpandedKeys&&(a.expandedKeys=e.autoExpandParent||e.defaultExpandParent?Wt(e.defaultExpandedKeys,s):e.defaultExpandedKeys);if(a.expandedKeys||delete a.expandedKeys,n||a.expandedKeys){var p=Jt(n||t.treeData,a.expandedKeys||t.expandedKeys,c);a.flattenNodes=p}if((e.selectable&&(i("selectedKeys")?a.selectedKeys=Bt(e.selectedKeys,e):!r&&e.defaultSelectedKeys&&(a.selectedKeys=Bt(e.defaultSelectedKeys,e))),e.checkable)&&(i("checkedKeys")?u=Ut(e.checkedKeys)||{}:!r&&e.defaultCheckedKeys?u=Ut(e.defaultCheckedKeys)||{}:n&&(u=Ut(e.checkedKeys)||{checkedKeys:t.checkedKeys,halfCheckedKeys:t.halfCheckedKeys}),u)){var v=u,m=v.checkedKeys,h=void 0===m?[]:m,y=v.halfCheckedKeys,b=void 0===y?[]:y;if(!e.checkStrictly){var x=on(h,!0,s);h=x.checkedKeys,b=x.halfCheckedKeys}a.checkedKeys=h,a.halfCheckedKeys=b}return i("loadedKeys")&&(a.loadedKeys=e.loadedKeys),a}}]),n}(c.Component);_r.defaultProps={prefixCls:"rc-tree",showLine:!1,showIcon:!0,selectable:!0,multiple:!1,checkable:!1,disabled:!1,checkStrictly:!1,draggable:!1,defaultExpandParent:!0,autoExpandParent:!1,defaultExpandAll:!1,defaultExpandedKeys:[],defaultCheckedKeys:[],defaultSelectedKeys:[],dropIndicatorRender:function(e){var t=e.dropPosition,n=e.dropLevelOffset,r=e.indent,o={pointerEvents:"none",position:"absolute",right:0,backgroundColor:"red",height:2};switch(t){case-1:o.top=0,o.left=-n*r;break;case 1:o.bottom=0,o.left=-n*r;break;case 0:o.bottom=0,o.left=r}return c.createElement("div",{style:o})},allowDrop:function(){return!0}},_r.TreeNode=_t;var jr=_r,Lr={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494z"}}]},name:"file",theme:"outlined"},Ar=function(e,t){return c.createElement(st.Z,(0,d.Z)((0,d.Z)({},e),{},{ref:t,icon:Lr}))};Ar.displayName="FileOutlined";var zr=c.forwardRef(Ar),Hr={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M928 444H820V330.4c0-17.7-14.3-32-32-32H473L355.7 186.2a8.15 8.15 0 00-5.5-2.2H96c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h698c13 0 24.8-7.9 29.7-20l134-332c1.5-3.8 2.3-7.9 2.3-12 0-17.7-14.3-32-32-32zM136 256h188.5l119.6 114.4H748V444H238c-13 0-24.8 7.9-29.7 20L136 643.2V256zm635.3 512H159l103.3-256h612.4L771.3 768z"}}]},name:"folder-open",theme:"outlined"},Vr=function(e,t){return c.createElement(st.Z,(0,d.Z)((0,d.Z)({},e),{},{ref:t,icon:Hr}))};Vr.displayName="FolderOpenOutlined";var Fr=c.forwardRef(Vr),Br={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M880 298.4H521L403.7 186.2a8.15 8.15 0 00-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z"}}]},name:"folder",theme:"outlined"},Ur=function(e,t){return c.createElement(st.Z,(0,d.Z)((0,d.Z)({},e),{},{ref:t,icon:Br}))};Ur.displayName="FolderOutlined";var Wr,Gr=c.forwardRef(Ur);function Yr(e,t){e.forEach((function(e){var n=e.key,r=e.children;!1!==t(n,e)&&Yr(r||[],t)}))}function qr(e){var t=e.treeData,n=e.expandedKeys,r=e.startKey,o=e.endKey,a=[],i=Wr.None;if(r&&r===o)return[r];if(!r||!o)return[];return Yr(t,(function(e){if(i===Wr.End)return!1;if(function(e){return e===r||e===o}(e)){if(a.push(e),i===Wr.None)i=Wr.Start;else if(i===Wr.Start)return i=Wr.End,!1}else i===Wr.Start&&a.push(e);return-1!==n.indexOf(e)})),a}function Xr(e,t){var n=(0,f.Z)(t),r=[];return Yr(e,(function(e,t){var o=n.indexOf(e);return-1!==o&&(r.push(t),n.splice(o,1)),!!n.length})),r}!function(e){e[e.None=0]="None",e[e.Start=1]="Start",e[e.End=2]="End"}(Wr||(Wr={}));var Jr=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n};function $r(e){var t=e.isLeaf,n=e.expanded;return t?c.createElement(zr,null):n?c.createElement(Fr,null):c.createElement(Gr,null)}function Qr(e){var t=e.treeData,n=e.children;return t||Xt(n)}var eo=function(e,t){var n=e.defaultExpandAll,r=e.defaultExpandParent,l=e.defaultExpandedKeys,s=Jr(e,["defaultExpandAll","defaultExpandParent","defaultExpandedKeys"]),d=c.useRef(),p=c.useRef(),v=c.createRef();c.useImperativeHandle(t,(function(){return v.current}));var m=c.useState(s.selectedKeys||s.defaultSelectedKeys||[]),h=(0,a.Z)(m,2),y=h[0],g=h[1],b=c.useState(function(){var e=Qt(Qr(s)).keyEntities;return n?Object.keys(e):r?Wt(s.expandedKeys||l||[],e):s.expandedKeys||l}()),x=(0,a.Z)(b,2),E=x[0],C=x[1];c.useEffect((function(){"selectedKeys"in s&&g(s.selectedKeys)}),[s.selectedKeys]),c.useEffect((function(){"expandedKeys"in s&&C(s.expandedKeys)}),[s.expandedKeys]);var w=Ve()((function(e,t){t.isLeaf||e.shiftKey||e.metaKey||e.ctrlKey||v.current.onNodeExpand(e,t)}),200,{leading:!0}),Z=c.useContext(Fe.E_),N=Z.getPrefixCls,S=Z.direction,k=s.prefixCls,O=s.className,P=Jr(s,["prefixCls","className"]),K=N("tree",k),I=u()("".concat(K,"-directory"),(0,o.Z)({},"".concat(K,"-directory-rtl"),"rtl"===S),O);return c.createElement(yo,(0,i.Z)({icon:$r,ref:v,blockNode:!0},P,{prefixCls:K,className:I,expandedKeys:E,selectedKeys:y,onSelect:function(e,t){var n,r,o=s.multiple,a=t.node,c=t.nativeEvent,l=a.key,u=void 0===l?"":l,v=Qr(s),m=(0,i.Z)((0,i.Z)({},t),{selected:!0}),h=(null===c||void 0===c?void 0:c.ctrlKey)||(null===c||void 0===c?void 0:c.metaKey),y=null===c||void 0===c?void 0:c.shiftKey;o&&h?(r=e,d.current=u,p.current=r,m.selectedNodes=Xr(v,r)):o&&y?(r=Array.from(new Set([].concat((0,f.Z)(p.current||[]),(0,f.Z)(qr({treeData:v,expandedKeys:E,startKey:u,endKey:d.current}))))),m.selectedNodes=Xr(v,r)):(r=[u],d.current=u,p.current=r,m.selectedNodes=Xr(v,r)),null===(n=s.onSelect)||void 0===n||n.call(s,r,m),"selectedKeys"in s||g(r)},onClick:function(e,t){var n;"click"===s.expandAction&&w(e,t),null===(n=s.onClick)||void 0===n||n.call(s,e,t)},onDoubleClick:function(e,t){var n;"doubleClick"===s.expandAction&&w(e,t),null===(n=s.onDoubleClick)||void 0===n||n.call(s,e,t)},onExpand:function(e,t){var n;return"expandedKeys"in s||C(e),null===(n=s.onExpand)||void 0===n?void 0:n.call(s,e,t)}}))},to=c.forwardRef(eo);to.displayName="DirectoryTree",to.defaultProps={showIcon:!0,expandAction:"click"};var no=to,ro=n(33603),oo=n(50888),ao={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M328 544h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z"}},{tag:"path",attrs:{d:"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"}}]},name:"minus-square",theme:"outlined"},io=function(e,t){return c.createElement(st.Z,(0,d.Z)((0,d.Z)({},e),{},{ref:t,icon:ao}))};io.displayName="MinusSquareOutlined";var co=c.forwardRef(io),lo={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M328 544h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z"}},{tag:"path",attrs:{d:"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"}}]},name:"plus-square",theme:"outlined"},uo=function(e,t){return c.createElement(st.Z,(0,d.Z)((0,d.Z)({},e),{},{ref:t,icon:lo}))};uo.displayName="PlusSquareOutlined";var so=c.forwardRef(uo),fo={icon:{tag:"svg",attrs:{viewBox:"0 0 1024 1024",focusable:"false"},children:[{tag:"path",attrs:{d:"M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z"}}]},name:"caret-down",theme:"filled"},po=function(e,t){return c.createElement(st.Z,(0,d.Z)((0,d.Z)({},e),{},{ref:t,icon:fo}))};po.displayName="CaretDownFilled";var vo=c.forwardRef(po);function mo(e){var t,n=e.dropPosition,r=e.dropLevelOffset,a=e.prefixCls,i=e.indent,l=e.direction,u=void 0===l?"ltr":l,s="ltr"===u?"left":"right",d="ltr"===u?"right":"left",f=(t={},(0,o.Z)(t,s,-r*i+4),(0,o.Z)(t,d,0),t);switch(n){case-1:f.top=-3;break;case 1:f.bottom=-3;break;default:f.bottom=-3,f[s]=i+4}return c.createElement("div",{style:f,className:"".concat(a,"-drop-indicator")})}var ho=c.forwardRef((function(e,t){var n,a=c.useContext(Fe.E_),l=a.getPrefixCls,s=a.direction,d=a.virtual,f=e.prefixCls,p=e.className,v=e.showIcon,m=e.showLine,h=e.switcherIcon,y=e.blockNode,g=e.children,b=e.checkable,x=e.selectable,E=e.draggable,C=l("tree",f),w=(0,i.Z)((0,i.Z)({},e),{showLine:Boolean(m),dropIndicatorRender:mo}),Z=c.useMemo((function(){if(!E)return!1;var e={};switch((0,r.Z)(E)){case"function":e.nodeDraggable=E;break;case"object":e=(0,i.Z)({},E)}return!1!==e.icon&&(e.icon=e.icon||c.createElement(hr,null)),e}),[E]);return c.createElement(jr,(0,i.Z)({itemHeight:20,ref:t,virtual:d},w,{prefixCls:C,className:u()((n={},(0,o.Z)(n,"".concat(C,"-icon-hide"),!v),(0,o.Z)(n,"".concat(C,"-block-node"),y),(0,o.Z)(n,"".concat(C,"-unselectable"),!x),(0,o.Z)(n,"".concat(C,"-rtl"),"rtl"===s),n),p),direction:s,checkable:b?c.createElement("span",{className:"".concat(C,"-checkbox-inner")}):b,selectable:x,switcherIcon:function(e){return function(e,t,n,o){var a,i=o.isLeaf,l=o.expanded;if(o.loading)return c.createElement(oo.Z,{className:"".concat(e,"-switcher-loading-icon")});if(n&&"object"===(0,r.Z)(n)&&(a=n.showLeafIcon),i)return n?"object"!==(0,r.Z)(n)||a?c.createElement(zr,{className:"".concat(e,"-switcher-line-icon")}):c.createElement("span",{className:"".concat(e,"-switcher-leaf-line")}):null;var s="".concat(e,"-switcher-icon");return(0,Ue.l$)(t)?(0,Ue.Tm)(t,{className:u()(t.props.className||"",s)}):t||(n?l?c.createElement(co,{className:"".concat(e,"-switcher-line-icon")}):c.createElement(so,{className:"".concat(e,"-switcher-line-icon")}):c.createElement(vo,{className:s}))}(C,h,m,e)},draggable:Z}),g)}));ho.TreeNode=_t,ho.DirectoryTree=no,ho.defaultProps={checkable:!1,selectable:!0,showIcon:!1,motion:(0,i.Z)((0,i.Z)({},ro.Z),{motionAppear:!1}),blockNode:!1};var yo=ho,go=yo,bo=n(62986),xo=function(e){return c.createElement("div",{className:e.className,onClick:function(e){return e.stopPropagation()}},e.children)},Eo=n(68795),Co=n(69677),wo=function(e){var t=e.value,n=e.onChange,r=e.filterSearch,o=e.tablePrefixCls,a=e.locale;return r?c.createElement("div",{className:"".concat(o,"-filter-dropdown-search")},c.createElement(Co.Z,{prefix:c.createElement(Eo.Z,null),placeholder:a.filterSearchPlaceholder,onChange:n,value:t,htmlSize:1,className:"".concat(o,"-filter-dropdown-search-input")})):null},Zo=n(57838);function No(e,t){return("string"===typeof t||"number"===typeof t)&&(null===t||void 0===t?void 0:t.toString().toLowerCase().includes(e.trim().toLowerCase()))}function So(e){var t=e.filters,n=e.prefixCls,r=e.filteredKeys,o=e.filterMultiple,a=e.searchValue;return t.map((function(e,t){var i=String(e.value);if(e.children)return c.createElement(bn.Z.SubMenu,{key:i||t,title:e.text,popupClassName:"".concat(n,"-dropdown-submenu")},So({filters:e.children,prefixCls:n,filteredKeys:r,filterMultiple:o,searchValue:a}));var l=o?cn.Z:_n,u=c.createElement(bn.Z.Item,{key:void 0!==e.value?i:t},c.createElement(l,{checked:r.includes(i)}),c.createElement("span",null,e.text));return a.trim()?No(a,e.text)?u:void 0:u}))}var ko=function(e){var t,n=e.tablePrefixCls,r=e.prefixCls,i=e.column,l=e.dropdownPrefixCls,s=e.columnKey,d=e.filterMultiple,f=e.filterMode,p=void 0===f?"menu":f,v=e.filterSearch,m=void 0!==v&&v,h=e.filterState,y=e.triggerFilter,g=e.locale,b=e.children,x=e.getPopupContainer,E=i.filterDropdownVisible,C=i.onFilterDropdownVisibleChange,w=c.useState(!1),Z=(0,a.Z)(w,2),N=Z[0],S=Z[1],k=!(!h||!(null===(t=h.filteredKeys)||void 0===t?void 0:t.length)&&!h.forceFiltered),O=function(e){S(e),null===C||void 0===C||C(e)},P="boolean"===typeof E?E:N,K=null===h||void 0===h?void 0:h.filteredKeys,I=function(e){var t=c.useRef(e),n=(0,Zo.Z)();return[function(){return t.current},function(e){t.current=e,n()}]}(K||[]),D=(0,a.Z)(I,2),M=D[0],R=D[1],T=function(e){var t=e.selectedKeys;R(t)},_=function(e,t){var n=t.node,r=t.checked;T(d?{selectedKeys:e}:{selectedKeys:r&&n.key?[n.key]:[]})};c.useEffect((function(){N&&T({selectedKeys:K||[]})}),[K]);var j=c.useState([]),L=(0,a.Z)(j,2),A=L[0],z=L[1],H=c.useRef(),V=function(e){H.current=window.setTimeout((function(){z(e)}))},F=function(){window.clearTimeout(H.current)};c.useEffect((function(){return function(){window.clearTimeout(H.current)}}),[]);var B=c.useState(""),U=(0,a.Z)(B,2),W=U[0],G=U[1],Y=function(e){var t=e.target.value;G(t)};c.useEffect((function(){N||G("")}),[N]);var q,X=function(e){var t=e&&e.length?e:null;return null!==t||h&&h.filteredKeys?sr()(t,null===h||void 0===h?void 0:h.filteredKeys)?null:void y({column:i,key:s,filteredKeys:t}):null},J=function(){O(!1),X(M())},$=function(){G(""),R([])},Q=u()((0,o.Z)({},"".concat(l,"-menu-without-submenu"),!(i.filters||[]).some((function(e){return e.children})))),ee=function(e){if(e.target.checked){var t=Ko(null===i||void 0===i?void 0:i.filters).map((function(e){return String(e)}));R(t)}else R([])},te=function e(t){return(t.filters||[]).map((function(t,n){var r=String(t.value),o={title:t.text,key:void 0!==t.value?r:n};return t.children&&(o.children=e({filters:t.children})),o}))};if("function"===typeof i.filterDropdown)q=i.filterDropdown({prefixCls:"".concat(l,"-custom"),setSelectedKeys:function(e){return T({selectedKeys:e})},selectedKeys:M(),confirm:function(){(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{closeDropdown:!0}).closeDropdown&&O(!1),X(M())},clearFilters:$,filters:i.filters,visible:P});else if(i.filterDropdown)q=i.filterDropdown;else{var ne=M()||[];q=c.createElement(c.Fragment,null,0===(i.filters||[]).length?c.createElement(bo.Z,{image:bo.Z.PRESENTED_IMAGE_SIMPLE,description:g.filterEmptyText,imageStyle:{height:24},style:{margin:0,padding:"16px 0"}}):"tree"===p?c.createElement(c.Fragment,null,c.createElement(wo,{filterSearch:m,value:W,onChange:Y,tablePrefixCls:n,locale:g}),c.createElement("div",{className:"".concat(n,"-filter-dropdown-tree")},d?c.createElement(cn.Z,{className:"".concat(n,"-filter-dropdown-checkall"),onChange:ee},g.filterCheckall):null,c.createElement(go,{checkable:!0,selectable:!1,blockNode:!0,multiple:d,checkStrictly:!d,className:"".concat(l,"-menu"),onCheck:_,checkedKeys:ne,selectedKeys:ne,showIcon:!1,treeData:te({filters:i.filters}),autoExpandParent:!0,defaultExpandAll:!0,filterTreeNode:W.trim()?function(e){return No(W,e.title)}:void 0}))):c.createElement(c.Fragment,null,c.createElement(wo,{filterSearch:m,value:W,onChange:Y,tablePrefixCls:n,locale:g}),c.createElement(bn.Z,{multiple:d,prefixCls:"".concat(l,"-menu"),className:Q,onClick:F,onSelect:T,onDeselect:T,selectedKeys:ne,getPopupContainer:x,openKeys:A,onOpenChange:V},So({filters:i.filters||[],prefixCls:r,filteredKeys:M(),filterMultiple:d,searchValue:W}))),c.createElement("div",{className:"".concat(r,"-dropdown-btns")},c.createElement(sn.Z,{type:"link",size:"small",disabled:0===ne.length,onClick:$},g.filterReset),c.createElement(sn.Z,{type:"primary",size:"small",onClick:J},g.filterConfirm)))}var re,oe=c.createElement(xo,{className:"".concat(r,"-dropdown")},q);re="function"===typeof i.filterIcon?i.filterIcon(k):i.filterIcon?i.filterIcon:c.createElement(pr,null);var ae=c.useContext(Fe.E_).direction;return c.createElement("div",{className:"".concat(r,"-column")},c.createElement("span",{className:"".concat(n,"-column-title")},b),c.createElement(gn,{overlay:oe,trigger:["click"],visible:P,onVisibleChange:function(e){e&&void 0!==K&&R(K||[]),O(e),e||i.filterDropdown||J()},getPopupContainer:x,placement:"rtl"===ae?"bottomLeft":"bottomRight"},c.createElement("span",{role:"button",tabIndex:-1,className:u()("".concat(r,"-trigger"),{active:k}),onClick:function(e){e.stopPropagation()}},re)))};function Oo(e,t,n){var r=[];return(e||[]).forEach((function(e,o){var a,i=Jn(o,n);if(e.filters||"filterDropdown"in e||"onFilter"in e)if("filteredValue"in e){var c=e.filteredValue;"filterDropdown"in e||(c=null!==(a=null===c||void 0===c?void 0:c.map(String))&&void 0!==a?a:c),r.push({column:e,key:Xn(e,i),filteredKeys:c,forceFiltered:e.filtered})}else r.push({column:e,key:Xn(e,i),filteredKeys:t&&e.defaultFilteredValue?e.defaultFilteredValue:void 0,forceFiltered:e.filtered});"children"in e&&(r=[].concat((0,f.Z)(r),(0,f.Z)(Oo(e.children,t,i))))})),r}function Po(e,t,n,r,o,a,l,u){return n.map((function(n,s){var d=Jn(s,u),f=n.filterMultiple,p=void 0===f||f,v=n.filterMode,m=n.filterSearch,h=n;if(h.filters||h.filterDropdown){var y=Xn(h,d),g=r.find((function(e){var t=e.key;return y===t}));h=(0,i.Z)((0,i.Z)({},h),{title:function(r){return c.createElement(ko,{tablePrefixCls:e,prefixCls:"".concat(e,"-filter"),dropdownPrefixCls:t,column:h,columnKey:y,filterState:g,filterMultiple:p,filterMode:v,filterSearch:m,triggerFilter:o,locale:l,getPopupContainer:a},$n(n.title,r))}})}return"children"in h&&(h=(0,i.Z)((0,i.Z)({},h),{children:Po(e,t,h.children,r,o,a,l,d)})),h}))}function Ko(e){var t=[];return(e||[]).forEach((function(e){var n=e.value,r=e.children;t.push(n),r&&(t=[].concat((0,f.Z)(t),(0,f.Z)(Ko(r))))})),t}function Io(e){var t={};return e.forEach((function(e){var n=e.key,r=e.filteredKeys,o=e.column,a=o.filters;if(o.filterDropdown)t[n]=r||null;else if(Array.isArray(r)){var i=Ko(a);t[n]=i.filter((function(e){return r.includes(String(e))}))}else t[n]=null})),t}function Do(e,t){return t.reduce((function(e,t){var n=t.column,r=n.onFilter,o=n.filters,a=t.filteredKeys;return r&&a&&a.length?e.filter((function(e){return a.some((function(t){var n=Ko(o),a=n.findIndex((function(e){return String(e)===String(t)})),i=-1!==a?n[a]:t;return r(i,e)}))})):e}),e)}var Mo=function(e){var t=e.prefixCls,n=e.dropdownPrefixCls,r=e.mergedColumns,o=e.onFilterChange,i=e.getPopupContainer,l=e.locale,u=c.useState(Oo(r,!0)),s=(0,a.Z)(u,2),d=s[0],f=s[1],p=c.useMemo((function(){var e=Oo(r,!1),t=e.every((function(e){return void 0===e.filteredKeys}));if(t)return d;var n=e.every((function(e){return void 0!==e.filteredKeys}));return(0,mn.Z)(t||n,"Table","`FilteredKeys` should all be controlled or not controlled."),e}),[r,d]),v=c.useCallback((function(){return Io(p)}),[p]),m=function(e){var t=p.filter((function(t){return t.key!==e.key}));t.push(e),f(t),o(Io(t),t)};return[function(e){return Po(t,n,e,p,m,i,l)},p,v]};function Ro(e,t){return e.map((function(e){var n=(0,i.Z)({},e);return n.title=$n(e.title,t),"children"in n&&(n.children=Ro(n.children,t)),n}))}function To(e){return[c.useCallback((function(t){return Ro(t,e)}),[e])]}var _o=function(e){return function(t){var n,r=t.prefixCls,a=t.onExpand,i=t.record,l=t.expanded,s=t.expandable,d="".concat(r,"-row-expand-icon");return c.createElement("button",{type:"button",onClick:function(e){a(i,e),e.stopPropagation()},className:u()(d,(n={},(0,o.Z)(n,"".concat(d,"-spaced"),!s),(0,o.Z)(n,"".concat(d,"-expanded"),s&&l),(0,o.Z)(n,"".concat(d,"-collapsed"),s&&!l),n)),"aria-label":l?e.collapse:e.expand})}};function jo(e){return null!==e&&void 0!==e&&e===e.window}function Lo(e,t){var n;if("undefined"===typeof window)return 0;var r=t?"scrollTop":"scrollLeft",o=0;return jo(e)?o=e[t?"pageYOffset":"pageXOffset"]:e instanceof Document?o=e.documentElement[r]:e&&(o=e[r]),e&&!jo(e)&&"number"!==typeof o&&(o=null===(n=(e.ownerDocument||e).documentElement)||void 0===n?void 0:n[r]),o}function Ao(e,t,n,r){var o=n-t;return(e/=r/2)<1?o/2*e*e*e+t:o/2*((e-=2)*e*e+2)+t}function zo(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.getContainer,r=void 0===n?function(){return window}:n,o=t.callback,a=t.duration,i=void 0===a?450:a,c=r(),l=Lo(c,!0),u=Date.now(),s=function t(){var n=Date.now()-u,r=Ao(n>i?i:n,l,e,i);jo(c)?c.scrollTo(window.pageXOffset,r):c instanceof HTMLDocument||"HTMLDocument"===c.constructor.name?c.documentElement.scrollTop=r:c.scrollTop=r,n<i?(0,J.Z)(t):"function"===typeof o&&o()};(0,J.Z)(s)}var Ho=n(6213).Z;var Vo=function(e){return null};var Fo=function(e){return null},Bo=[];function Uo(e,t){var n,l=e.prefixCls,d=e.className,f=e.style,p=e.size,v=e.bordered,m=e.dropdownPrefixCls,h=e.dataSource,y=e.pagination,g=e.rowSelection,b=e.rowKey,x=e.rowClassName,E=e.columns,C=e.children,w=e.childrenColumnName,Z=e.onChange,N=e.getPopupContainer,S=e.loading,k=e.expandIcon,O=e.expandable,P=e.expandedRowRender,K=e.expandIconColumnIndex,I=e.indentSize,D=e.scroll,M=e.sortDirections,R=e.locale,T=e.showSorterTooltip,_=void 0===T||T;(0,mn.Z)(!("function"===typeof b&&b.length>1),"Table","`index` parameter of `rowKey` function is deprecated. There is no guarantee that it will work as expected.");var j=(0,xt.Z)(),L=c.useMemo((function(){var e=new Set(Object.keys(j).filter((function(e){return j[e]})));return(E||le(C)).filter((function(t){return!t.responsive||t.responsive.some((function(t){return e.has(t)}))}))}),[C,E,j]),A=(0,s.Z)(e,["className","style","columns"]),z=c.useContext(On.Z),H=c.useContext(Fe.E_),V=H.locale,F=void 0===V?Ho:V,B=H.renderEmpty,U=H.direction,W=p||z,G=(0,i.Z)((0,i.Z)({},F.Table),R),Y=h||Bo,q=c.useContext(Fe.E_).getPrefixCls,X=q("table",l),J=q("dropdown",m),$=(0,i.Z)({childrenColumnName:w,expandIconColumnIndex:K},O),Q=$.childrenColumnName,ee=void 0===Q?"children":Q,te=c.useMemo((function(){return Y.some((function(e){var t;return null===(t=e)||void 0===t?void 0:t[ee]}))?"nest":P||O&&O.expandedRowRender?"row":null}),[Y]),ne={body:c.useRef()},re=c.useMemo((function(){return"function"===typeof b?b:function(e){var t;return null===(t=e)||void 0===t?void 0:t[b]}}),[b]),oe=function(e,t,n){var o=c.useRef({});return[function(a){if(!o.current||o.current.data!==e||o.current.childrenColumnName!==t||o.current.getRowKey!==n){var i=new Map;function a(e){e.forEach((function(e,o){var c=n(e,o);i.set(c,e),e&&"object"===(0,r.Z)(e)&&t in e&&a(e[t]||[])}))}a(e),o.current={data:e,childrenColumnName:t,kvMap:i,getRowKey:n}}return o.current.kvMap.get(a)}]}(Y,ee,re),ae=(0,a.Z)(oe,1)[0],ie={},ce=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=(0,i.Z)((0,i.Z)({},ie),e);n&&(ie.resetPagination(),r.pagination.current&&(r.pagination.current=1),y&&y.onChange&&y.onChange(1,r.pagination.pageSize)),D&&!1!==D.scrollToFirstRowOnChange&&ne.body.current&&zo(0,{getContainer:function(){return ne.body.current}}),null===Z||void 0===Z||Z(r.pagination,r.filters,r.sorter,{currentDataSource:Do(cr(Y,r.sorterStates,ee),r.filterStates),action:t})},ue=lr({prefixCls:X,mergedColumns:L,onSorterChange:function(e,t){ce({sorter:e,sorterStates:t},"sort",!1)},sortDirections:M||["ascend","descend"],tableLocale:G,showSorterTooltip:_}),se=(0,a.Z)(ue,4),de=se[0],fe=se[1],pe=se[2],ve=se[3],me=c.useMemo((function(){return cr(Y,fe,ee)}),[Y,fe]);ie.sorter=ve(),ie.sorterStates=fe;var he=Mo({prefixCls:X,locale:G,dropdownPrefixCls:J,mergedColumns:L,onFilterChange:function(e,t){ce({filters:e,filterStates:t},"filter",!0)},getPopupContainer:N}),ye=(0,a.Z)(he,3),ge=ye[0],be=ye[1],xe=ye[2],Ee=Do(me,be);ie.filters=xe(),ie.filterStates=be;var Ce=To(c.useMemo((function(){return(0,i.Z)({},pe)}),[pe])),we=(0,a.Z)(Ce,1)[0],Ze=Zt(Ee.length,y,(function(e,t){ce({pagination:(0,i.Z)((0,i.Z)({},ie.pagination),{current:e,pageSize:t})},"paginate")})),Ne=(0,a.Z)(Ze,2),Se=Ne[0],ke=Ne[1];ie.pagination=!1===y?{}:function(e,t){var n={current:t.current,pageSize:t.pageSize},o=e&&"object"===(0,r.Z)(e)?e:{};return Object.keys(o).forEach((function(e){var r=t[e];"function"!==typeof r&&(n[e]=r)})),n}(y,Se),ie.resetPagination=ke;var Oe=c.useMemo((function(){if(!1===y||!Se.pageSize)return Ee;var e=Se.current,t=void 0===e?1:e,n=Se.total,r=Se.pageSize,o=void 0===r?10:r;return(0,mn.Z)(t>0,"Table","`current` should be positive number."),Ee.length<n?Ee.length>o?((0,mn.Z)(!1,"Table","`dataSource` length is less than `pagination.total` but large than `pagination.pageSize`. Please make sure your config correct data with async mode."),Ee.slice((t-1)*o,t*o)):Ee:Ee.slice((t-1)*o,t*o)}),[!!y,Ee,Se&&Se.current,Se&&Se.pageSize,Se&&Se.total]),Pe=Vn(g,{prefixCls:X,data:Ee,pageData:Oe,getRowKey:re,getRecordByKey:ae,expandType:te,childrenColumnName:ee,locale:G,getPopupContainer:N}),Ke=(0,a.Z)(Pe,2),Ie=Ke[0],De=Ke[1];$.__PARENT_RENDER_ICON__=$.expandIcon,$.expandIcon=$.expandIcon||k||_o(G),"nest"===te&&void 0===$.expandIconColumnIndex?$.expandIconColumnIndex=g?1:0:$.expandIconColumnIndex>0&&g&&($.expandIconColumnIndex-=1),"number"!==typeof $.indentSize&&($.indentSize="number"===typeof I?I:15);var Re,Te,je,Le=c.useCallback((function(e){return we(Ie(ge(de(e))))}),[de,ge,Ie]);if(!1!==y&&(null===Se||void 0===Se?void 0:Se.total)){var Ae;Ae=Se.size?Se.size:"small"===W||"middle"===W?"small":void 0;var ze=function(e){return c.createElement(Ct,(0,i.Z)({},Se,{className:u()("".concat(X,"-pagination ").concat(X,"-pagination-").concat(e),Se.className),size:Ae}))},He="rtl"===U?"left":"right",Ve=Se.position;if(null!==Ve&&Array.isArray(Ve)){var Be=Ve.find((function(e){return-1!==e.indexOf("top")})),Ue=Ve.find((function(e){return-1!==e.indexOf("bottom")})),We=Ve.every((function(e){return"none"==="".concat(e)}));Be||Ue||We||(Te=ze(He)),Be&&(Re=ze(Be.toLowerCase().replace("top",""))),Ue&&(Te=ze(Ue.toLowerCase().replace("bottom","")))}else Te=ze(He)}"boolean"===typeof S?je={spinning:S}:"object"===(0,r.Z)(S)&&(je=(0,i.Z)({spinning:!0},S));var Ge=u()("".concat(X,"-wrapper"),(0,o.Z)({},"".concat(X,"-wrapper-rtl"),"rtl"===U),d);return c.createElement("div",{ref:t,className:Ge,style:f},c.createElement(qe,(0,i.Z)({spinning:!1},je),Re,c.createElement(_e,(0,i.Z)({},A,{columns:L,direction:U,expandable:$,prefixCls:X,className:u()((n={},(0,o.Z)(n,"".concat(X,"-middle"),"middle"===W),(0,o.Z)(n,"".concat(X,"-small"),"small"===W),(0,o.Z)(n,"".concat(X,"-bordered"),v),(0,o.Z)(n,"".concat(X,"-empty"),0===Y.length),n)),data:Oe,rowKey:re,rowClassName:function(e,t,n){var r;return r="function"===typeof x?u()(x(e,t,n)):u()(x),u()((0,o.Z)({},"".concat(X,"-row-selected"),De.has(re(e,t))),r)},emptyText:R&&R.emptyText||B("Table"),internalHooks:Me,internalRefs:ne,transformColumns:Le})),Te))}var Wo=c.forwardRef(Uo);Wo.defaultProps={rowKey:"key"},Wo.SELECTION_COLUMN=jn,Wo.EXPAND_COLUMN=_e.EXPAND_COLUMN,Wo.SELECTION_ALL=Ln,Wo.SELECTION_INVERT=An,Wo.SELECTION_NONE=zn,Wo.Column=Vo,Wo.ColumnGroup=Fo,Wo.Summary=Ee;var Go=Wo},18552:function(e,t,n){var r=n(10852)(n(55639),"DataView");e.exports=r},1989:function(e,t,n){var r=n(51789),o=n(80401),a=n(57667),i=n(21327),c=n(81866);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}l.prototype.clear=r,l.prototype.delete=o,l.prototype.get=a,l.prototype.has=i,l.prototype.set=c,e.exports=l},38407:function(e,t,n){var r=n(27040),o=n(14125),a=n(82117),i=n(67518),c=n(54705);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}l.prototype.clear=r,l.prototype.delete=o,l.prototype.get=a,l.prototype.has=i,l.prototype.set=c,e.exports=l},57071:function(e,t,n){var r=n(10852)(n(55639),"Map");e.exports=r},83369:function(e,t,n){var r=n(24785),o=n(11285),a=n(96e3),i=n(49916),c=n(95265);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}l.prototype.clear=r,l.prototype.delete=o,l.prototype.get=a,l.prototype.has=i,l.prototype.set=c,e.exports=l},53818:function(e,t,n){var r=n(10852)(n(55639),"Promise");e.exports=r},58525:function(e,t,n){var r=n(10852)(n(55639),"Set");e.exports=r},88668:function(e,t,n){var r=n(83369),o=n(90619),a=n(72385);function i(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new r;++t<n;)this.add(e[t])}i.prototype.add=i.prototype.push=o,i.prototype.has=a,e.exports=i},46384:function(e,t,n){var r=n(38407),o=n(37465),a=n(63779),i=n(67599),c=n(44758),l=n(34309);function u(e){var t=this.__data__=new r(e);this.size=t.size}u.prototype.clear=o,u.prototype.delete=a,u.prototype.get=i,u.prototype.has=c,u.prototype.set=l,e.exports=u},62705:function(e,t,n){var r=n(55639).Symbol;e.exports=r},11149:function(e,t,n){var r=n(55639).Uint8Array;e.exports=r},70577:function(e,t,n){var r=n(10852)(n(55639),"WeakMap");e.exports=r},34963:function(e){e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,o=0,a=[];++n<r;){var i=e[n];t(i,n,e)&&(a[o++]=i)}return a}},14636:function(e,t,n){var r=n(22545),o=n(35694),a=n(1469),i=n(44144),c=n(65776),l=n(36719),u=Object.prototype.hasOwnProperty;e.exports=function(e,t){var n=a(e),s=!n&&o(e),d=!n&&!s&&i(e),f=!n&&!s&&!d&&l(e),p=n||s||d||f,v=p?r(e.length,String):[],m=v.length;for(var h in e)!t&&!u.call(e,h)||p&&("length"==h||d&&("offset"==h||"parent"==h)||f&&("buffer"==h||"byteLength"==h||"byteOffset"==h)||c(h,m))||v.push(h);return v}},62488:function(e){e.exports=function(e,t){for(var n=-1,r=t.length,o=e.length;++n<r;)e[o+n]=t[n];return e}},82908:function(e){e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}},18470:function(e,t,n){var r=n(10355);e.exports=function(e,t){for(var n=e.length;n--;)if(r(e[n][0],t))return n;return-1}},68866:function(e,t,n){var r=n(62488),o=n(1469);e.exports=function(e,t,n){var a=t(e);return o(e)?a:r(a,n(e))}},44239:function(e,t,n){var r=n(62705),o=n(89607),a=n(2333),i=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":i&&i in Object(e)?o(e):a(e)}},9454:function(e,t,n){var r=n(44239),o=n(37005);e.exports=function(e){return o(e)&&"[object Arguments]"==r(e)}},90939:function(e,t,n){var r=n(2492),o=n(37005);e.exports=function e(t,n,a,i,c){return t===n||(null==t||null==n||!o(t)&&!o(n)?t!==t&&n!==n:r(t,n,a,i,e,c))}},2492:function(e,t,n){var r=n(46384),o=n(67114),a=n(18351),i=n(16096),c=n(64160),l=n(1469),u=n(44144),s=n(36719),d="[object Arguments]",f="[object Array]",p="[object Object]",v=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,m,h,y){var g=l(e),b=l(t),x=g?f:c(e),E=b?f:c(t),C=(x=x==d?p:x)==p,w=(E=E==d?p:E)==p,Z=x==E;if(Z&&u(e)){if(!u(t))return!1;g=!0,C=!1}if(Z&&!C)return y||(y=new r),g||s(e)?o(e,t,n,m,h,y):a(e,t,x,n,m,h,y);if(!(1&n)){var N=C&&v.call(e,"__wrapped__"),S=w&&v.call(t,"__wrapped__");if(N||S){var k=N?e.value():e,O=S?t.value():t;return y||(y=new r),h(k,O,n,m,y)}}return!!Z&&(y||(y=new r),i(e,t,n,m,h,y))}},28458:function(e,t,n){var r=n(23560),o=n(15346),a=n(13218),i=n(80346),c=/^\[object .+?Constructor\]$/,l=Function.prototype,u=Object.prototype,s=l.toString,d=u.hasOwnProperty,f=RegExp("^"+s.call(d).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!a(e)||o(e))&&(r(e)?f:c).test(i(e))}},38749:function(e,t,n){var r=n(44239),o=n(41780),a=n(37005),i={};i["[object Float32Array]"]=i["[object Float64Array]"]=i["[object Int8Array]"]=i["[object Int16Array]"]=i["[object Int32Array]"]=i["[object Uint8Array]"]=i["[object Uint8ClampedArray]"]=i["[object Uint16Array]"]=i["[object Uint32Array]"]=!0,i["[object Arguments]"]=i["[object Array]"]=i["[object ArrayBuffer]"]=i["[object Boolean]"]=i["[object DataView]"]=i["[object Date]"]=i["[object Error]"]=i["[object Function]"]=i["[object Map]"]=i["[object Number]"]=i["[object Object]"]=i["[object RegExp]"]=i["[object Set]"]=i["[object String]"]=i["[object WeakMap]"]=!1,e.exports=function(e){return a(e)&&o(e.length)&&!!i[r(e)]}},280:function(e,t,n){var r=n(25726),o=n(86916),a=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return o(e);var t=[];for(var n in Object(e))a.call(e,n)&&"constructor"!=n&&t.push(n);return t}},22545:function(e){e.exports=function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}},27561:function(e,t,n){var r=n(67990),o=/^\s+/;e.exports=function(e){return e?e.slice(0,r(e)+1).replace(o,""):e}},7518:function(e){e.exports=function(e){return function(t){return e(t)}}},74757:function(e){e.exports=function(e,t){return e.has(t)}},14429:function(e,t,n){var r=n(55639)["__core-js_shared__"];e.exports=r},67114:function(e,t,n){var r=n(88668),o=n(82908),a=n(74757);e.exports=function(e,t,n,i,c,l){var u=1&n,s=e.length,d=t.length;if(s!=d&&!(u&&d>s))return!1;var f=l.get(e),p=l.get(t);if(f&&p)return f==t&&p==e;var v=-1,m=!0,h=2&n?new r:void 0;for(l.set(e,t),l.set(t,e);++v<s;){var y=e[v],g=t[v];if(i)var b=u?i(g,y,v,t,e,l):i(y,g,v,e,t,l);if(void 0!==b){if(b)continue;m=!1;break}if(h){if(!o(t,(function(e,t){if(!a(h,t)&&(y===e||c(y,e,n,i,l)))return h.push(t)}))){m=!1;break}}else if(y!==g&&!c(y,g,n,i,l)){m=!1;break}}return l.delete(e),l.delete(t),m}},18351:function(e,t,n){var r=n(62705),o=n(11149),a=n(10355),i=n(67114),c=n(68776),l=n(21814),u=r?r.prototype:void 0,s=u?u.valueOf:void 0;e.exports=function(e,t,n,r,u,d,f){switch(n){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!d(new o(e),new o(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return a(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var p=c;case"[object Set]":var v=1&r;if(p||(p=l),e.size!=t.size&&!v)return!1;var m=f.get(e);if(m)return m==t;r|=2,f.set(e,t);var h=i(p(e),p(t),r,u,d,f);return f.delete(e),h;case"[object Symbol]":if(s)return s.call(e)==s.call(t)}return!1}},16096:function(e,t,n){var r=n(58234),o=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,a,i,c){var l=1&n,u=r(e),s=u.length;if(s!=r(t).length&&!l)return!1;for(var d=s;d--;){var f=u[d];if(!(l?f in t:o.call(t,f)))return!1}var p=c.get(e),v=c.get(t);if(p&&v)return p==t&&v==e;var m=!0;c.set(e,t),c.set(t,e);for(var h=l;++d<s;){var y=e[f=u[d]],g=t[f];if(a)var b=l?a(g,y,f,t,e,c):a(y,g,f,e,t,c);if(!(void 0===b?y===g||i(y,g,n,a,c):b)){m=!1;break}h||(h="constructor"==f)}if(m&&!h){var x=e.constructor,E=t.constructor;x==E||!("constructor"in e)||!("constructor"in t)||"function"==typeof x&&x instanceof x&&"function"==typeof E&&E instanceof E||(m=!1)}return c.delete(e),c.delete(t),m}},31957:function(e,t,n){var r="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g;e.exports=r},58234:function(e,t,n){var r=n(68866),o=n(99551),a=n(3674);e.exports=function(e){return r(e,a,o)}},45050:function(e,t,n){var r=n(37019);e.exports=function(e,t){var n=e.__data__;return r(t)?n["string"==typeof t?"string":"hash"]:n.map}},10852:function(e,t,n){var r=n(28458),o=n(47801);e.exports=function(e,t){var n=o(e,t);return r(n)?n:void 0}},89607:function(e,t,n){var r=n(62705),o=Object.prototype,a=o.hasOwnProperty,i=o.toString,c=r?r.toStringTag:void 0;e.exports=function(e){var t=a.call(e,c),n=e[c];try{e[c]=void 0;var r=!0}catch(l){}var o=i.call(e);return r&&(t?e[c]=n:delete e[c]),o}},99551:function(e,t,n){var r=n(34963),o=n(70479),a=Object.prototype.propertyIsEnumerable,i=Object.getOwnPropertySymbols,c=i?function(e){return null==e?[]:(e=Object(e),r(i(e),(function(t){return a.call(e,t)})))}:o;e.exports=c},64160:function(e,t,n){var r=n(18552),o=n(57071),a=n(53818),i=n(58525),c=n(70577),l=n(44239),u=n(80346),s="[object Map]",d="[object Promise]",f="[object Set]",p="[object WeakMap]",v="[object DataView]",m=u(r),h=u(o),y=u(a),g=u(i),b=u(c),x=l;(r&&x(new r(new ArrayBuffer(1)))!=v||o&&x(new o)!=s||a&&x(a.resolve())!=d||i&&x(new i)!=f||c&&x(new c)!=p)&&(x=function(e){var t=l(e),n="[object Object]"==t?e.constructor:void 0,r=n?u(n):"";if(r)switch(r){case m:return v;case h:return s;case y:return d;case g:return f;case b:return p}return t}),e.exports=x},47801:function(e){e.exports=function(e,t){return null==e?void 0:e[t]}},51789:function(e,t,n){var r=n(94536);e.exports=function(){this.__data__=r?r(null):{},this.size=0}},80401:function(e){e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},57667:function(e,t,n){var r=n(94536),o=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(r){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return o.call(t,e)?t[e]:void 0}},21327:function(e,t,n){var r=n(94536),o=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;return r?void 0!==t[e]:o.call(t,e)}},81866:function(e,t,n){var r=n(94536);e.exports=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=r&&void 0===t?"__lodash_hash_undefined__":t,this}},65776:function(e){var t=/^(?:0|[1-9]\d*)$/;e.exports=function(e,n){var r=typeof e;return!!(n=null==n?9007199254740991:n)&&("number"==r||"symbol"!=r&&t.test(e))&&e>-1&&e%1==0&&e<n}},37019:function(e){e.exports=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}},15346:function(e,t,n){var r=n(14429),o=function(){var e=/[^.]+$/.exec(r&&r.keys&&r.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();e.exports=function(e){return!!o&&o in e}},25726:function(e){var t=Object.prototype;e.exports=function(e){var n=e&&e.constructor;return e===("function"==typeof n&&n.prototype||t)}},27040:function(e){e.exports=function(){this.__data__=[],this.size=0}},14125:function(e,t,n){var r=n(18470),o=Array.prototype.splice;e.exports=function(e){var t=this.__data__,n=r(t,e);return!(n<0)&&(n==t.length-1?t.pop():o.call(t,n,1),--this.size,!0)}},82117:function(e,t,n){var r=n(18470);e.exports=function(e){var t=this.__data__,n=r(t,e);return n<0?void 0:t[n][1]}},67518:function(e,t,n){var r=n(18470);e.exports=function(e){return r(this.__data__,e)>-1}},54705:function(e,t,n){var r=n(18470);e.exports=function(e,t){var n=this.__data__,o=r(n,e);return o<0?(++this.size,n.push([e,t])):n[o][1]=t,this}},24785:function(e,t,n){var r=n(1989),o=n(38407),a=n(57071);e.exports=function(){this.size=0,this.__data__={hash:new r,map:new(a||o),string:new r}}},11285:function(e,t,n){var r=n(45050);e.exports=function(e){var t=r(this,e).delete(e);return this.size-=t?1:0,t}},96e3:function(e,t,n){var r=n(45050);e.exports=function(e){return r(this,e).get(e)}},49916:function(e,t,n){var r=n(45050);e.exports=function(e){return r(this,e).has(e)}},95265:function(e,t,n){var r=n(45050);e.exports=function(e,t){var n=r(this,e),o=n.size;return n.set(e,t),this.size+=n.size==o?0:1,this}},68776:function(e){e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}},94536:function(e,t,n){var r=n(10852)(Object,"create");e.exports=r},86916:function(e,t,n){var r=n(5569)(Object.keys,Object);e.exports=r},31167:function(e,t,n){e=n.nmd(e);var r=n(31957),o=t&&!t.nodeType&&t,a=o&&e&&!e.nodeType&&e,i=a&&a.exports===o&&r.process,c=function(){try{var e=a&&a.require&&a.require("util").types;return e||i&&i.binding&&i.binding("util")}catch(t){}}();e.exports=c},2333:function(e){var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},5569:function(e){e.exports=function(e,t){return function(n){return e(t(n))}}},55639:function(e,t,n){var r=n(31957),o="object"==typeof self&&self&&self.Object===Object&&self,a=r||o||Function("return this")();e.exports=a},90619:function(e){e.exports=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this}},72385:function(e){e.exports=function(e){return this.__data__.has(e)}},21814:function(e){e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}},37465:function(e,t,n){var r=n(38407);e.exports=function(){this.__data__=new r,this.size=0}},63779:function(e){e.exports=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}},67599:function(e){e.exports=function(e){return this.__data__.get(e)}},44758:function(e){e.exports=function(e){return this.__data__.has(e)}},34309:function(e,t,n){var r=n(38407),o=n(57071),a=n(83369);e.exports=function(e,t){var n=this.__data__;if(n instanceof r){var i=n.__data__;if(!o||i.length<199)return i.push([e,t]),this.size=++n.size,this;n=this.__data__=new a(i)}return n.set(e,t),this.size=n.size,this}},80346:function(e){var t=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return t.call(e)}catch(n){}try{return e+""}catch(n){}}return""}},67990:function(e){var t=/\s/;e.exports=function(e){for(var n=e.length;n--&&t.test(e.charAt(n)););return n}},23279:function(e,t,n){var r=n(13218),o=n(7771),a=n(14841),i=Math.max,c=Math.min;e.exports=function(e,t,n){var l,u,s,d,f,p,v=0,m=!1,h=!1,y=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function g(t){var n=l,r=u;return l=u=void 0,v=t,d=e.apply(r,n)}function b(e){return v=e,f=setTimeout(E,t),m?g(e):d}function x(e){var n=e-p;return void 0===p||n>=t||n<0||h&&e-v>=s}function E(){var e=o();if(x(e))return C(e);f=setTimeout(E,function(e){var n=t-(e-p);return h?c(n,s-(e-v)):n}(e))}function C(e){return f=void 0,y&&l?g(e):(l=u=void 0,d)}function w(){var e=o(),n=x(e);if(l=arguments,u=this,p=e,n){if(void 0===f)return b(p);if(h)return clearTimeout(f),f=setTimeout(E,t),g(p)}return void 0===f&&(f=setTimeout(E,t)),d}return t=a(t)||0,r(n)&&(m=!!n.leading,s=(h="maxWait"in n)?i(a(n.maxWait)||0,t):s,y="trailing"in n?!!n.trailing:y),w.cancel=function(){void 0!==f&&clearTimeout(f),v=0,l=p=u=f=void 0},w.flush=function(){return void 0===f?d:C(o())},w}},10355:function(e){e.exports=function(e,t){return e===t||e!==e&&t!==t}},35694:function(e,t,n){var r=n(9454),o=n(37005),a=Object.prototype,i=a.hasOwnProperty,c=a.propertyIsEnumerable,l=r(function(){return arguments}())?r:function(e){return o(e)&&i.call(e,"callee")&&!c.call(e,"callee")};e.exports=l},1469:function(e){var t=Array.isArray;e.exports=t},98612:function(e,t,n){var r=n(23560),o=n(41780);e.exports=function(e){return null!=e&&o(e.length)&&!r(e)}},44144:function(e,t,n){e=n.nmd(e);var r=n(55639),o=n(95062),a=t&&!t.nodeType&&t,i=a&&e&&!e.nodeType&&e,c=i&&i.exports===a?r.Buffer:void 0,l=(c?c.isBuffer:void 0)||o;e.exports=l},18446:function(e,t,n){var r=n(90939);e.exports=function(e,t){return r(e,t)}},23560:function(e,t,n){var r=n(44239),o=n(13218);e.exports=function(e){if(!o(e))return!1;var t=r(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},41780:function(e){e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}},13218:function(e){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},37005:function(e){e.exports=function(e){return null!=e&&"object"==typeof e}},33448:function(e,t,n){var r=n(44239),o=n(37005);e.exports=function(e){return"symbol"==typeof e||o(e)&&"[object Symbol]"==r(e)}},36719:function(e,t,n){var r=n(38749),o=n(7518),a=n(31167),i=a&&a.isTypedArray,c=i?o(i):r;e.exports=c},3674:function(e,t,n){var r=n(14636),o=n(280),a=n(98612);e.exports=function(e){return a(e)?r(e):o(e)}},7771:function(e,t,n){var r=n(55639);e.exports=function(){return r.Date.now()}},70479:function(e){e.exports=function(){return[]}},95062:function(e){e.exports=function(){return!1}},14841:function(e,t,n){var r=n(27561),o=n(13218),a=n(33448),i=/^[-+]0x[0-9a-f]+$/i,c=/^0b[01]+$/i,l=/^0o[0-7]+$/i,u=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(a(e))return NaN;if(o(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=o(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=r(e);var n=c.test(e);return n||l.test(e)?u(e.slice(2),n?2:8):i.test(e)?NaN:+e}},50132:function(e,t,n){"use strict";var r=n(87462),o=n(4942),a=n(91),i=n(1413),c=n(15671),l=n(43144),u=n(60136),s=n(3289),d=n(67294),f=n(94184),p=n.n(f),v=function(e){(0,u.Z)(n,e);var t=(0,s.Z)(n);function n(e){var r;(0,c.Z)(this,n),(r=t.call(this,e)).handleChange=function(e){var t=r.props,n=t.disabled,o=t.onChange;n||("checked"in r.props||r.setState({checked:e.target.checked}),o&&o({target:(0,i.Z)((0,i.Z)({},r.props),{},{checked:e.target.checked}),stopPropagation:function(){e.stopPropagation()},preventDefault:function(){e.preventDefault()},nativeEvent:e.nativeEvent}))},r.saveInput=function(e){r.input=e};var o="checked"in e?e.checked:e.defaultChecked;return r.state={checked:o},r}return(0,l.Z)(n,[{key:"focus",value:function(){this.input.focus()}},{key:"blur",value:function(){this.input.blur()}},{key:"render",value:function(){var e,t=this.props,n=t.prefixCls,i=t.className,c=t.style,l=t.name,u=t.id,s=t.type,f=t.disabled,v=t.readOnly,m=t.tabIndex,h=t.onClick,y=t.onFocus,g=t.onBlur,b=t.onKeyDown,x=t.onKeyPress,E=t.onKeyUp,C=t.autoFocus,w=t.value,Z=t.required,N=(0,a.Z)(t,["prefixCls","className","style","name","id","type","disabled","readOnly","tabIndex","onClick","onFocus","onBlur","onKeyDown","onKeyPress","onKeyUp","autoFocus","value","required"]),S=Object.keys(N).reduce((function(e,t){return"aria-"!==t.substr(0,5)&&"data-"!==t.substr(0,5)&&"role"!==t||(e[t]=N[t]),e}),{}),k=this.state.checked,O=p()(n,i,(e={},(0,o.Z)(e,"".concat(n,"-checked"),k),(0,o.Z)(e,"".concat(n,"-disabled"),f),e));return d.createElement("span",{className:O,style:c},d.createElement("input",(0,r.Z)({name:l,id:u,type:s,required:Z,readOnly:v,disabled:f,tabIndex:m,className:"".concat(n,"-input"),checked:!!k,onClick:h,onFocus:y,onBlur:g,onKeyUp:E,onKeyDown:b,onKeyPress:x,onChange:this.handleChange,autoFocus:C,ref:this.saveInput,value:w},S)),d.createElement("span",{className:"".concat(n,"-inner")}))}}],[{key:"getDerivedStateFromProps",value:function(e,t){return"checked"in e?(0,i.Z)((0,i.Z)({},t),{},{checked:e.checked}):null}}]),n}(d.Component);v.defaultProps={prefixCls:"rc-checkbox",className:"",style:{},type:"checkbox",defaultChecked:!1,onFocus:function(){},onBlur:function(){},onChange:function(){},onKeyDown:function(){},onKeyPress:function(){},onKeyUp:function(){}},t.Z=v},56180:function(e,t,n){"use strict";n.d(t,{Z:function(){return p}});var r=n(4942),o=n(97685),a=n(91),i=n(67294),c=n(51169),l=n(94184),u=n.n(l),s={adjustX:1,adjustY:1},d=[0,0],f={topLeft:{points:["bl","tl"],overflow:s,offset:[0,-4],targetOffset:d},topCenter:{points:["bc","tc"],overflow:s,offset:[0,-4],targetOffset:d},topRight:{points:["br","tr"],overflow:s,offset:[0,-4],targetOffset:d},bottomLeft:{points:["tl","bl"],overflow:s,offset:[0,4],targetOffset:d},bottomCenter:{points:["tc","bc"],overflow:s,offset:[0,4],targetOffset:d},bottomRight:{points:["tr","br"],overflow:s,offset:[0,4],targetOffset:d}};var p=i.forwardRef((function(e,t){var n=e.arrow,l=void 0!==n&&n,s=e.prefixCls,d=void 0===s?"rc-dropdown":s,p=e.transitionName,v=e.animation,m=e.align,h=e.placement,y=void 0===h?"bottomLeft":h,g=e.placements,b=void 0===g?f:g,x=e.getPopupContainer,E=e.showAction,C=e.hideAction,w=e.overlayClassName,Z=e.overlayStyle,N=e.visible,S=e.trigger,k=void 0===S?["hover"]:S,O=(0,a.Z)(e,["arrow","prefixCls","transitionName","animation","align","placement","placements","getPopupContainer","showAction","hideAction","overlayClassName","overlayStyle","visible","trigger"]),P=i.useState(),K=(0,o.Z)(P,2),I=K[0],D=K[1],M="visible"in e?N:I,R=i.useRef(null);i.useImperativeHandle(t,(function(){return R.current}));var T=function(){var t=e.overlay;return"function"===typeof t?t():t},_=function(t){var n=e.onOverlayClick,r=T().props;D(!1),n&&n(t),r.onClick&&r.onClick(t)},j=function(){var e=T(),t={prefixCls:"".concat(d,"-menu"),onClick:_};return"string"===typeof e.type&&delete t.prefixCls,i.createElement(i.Fragment,null,l&&i.createElement("div",{className:"".concat(d,"-arrow")}),i.cloneElement(e,t))},L=C;return L||-1===k.indexOf("contextMenu")||(L=["click"]),i.createElement(c.Z,Object.assign({},O,{prefixCls:d,ref:R,popupClassName:u()(w,(0,r.Z)({},"".concat(d,"-show-arrow"),l)),popupStyle:Z,builtinPlacements:b,action:k,showAction:E,hideAction:L||[],popupPlacement:y,popupAlign:m,popupTransitionName:p,popupAnimation:v,popupVisible:M,stretch:function(){var t=e.minOverlayWidthMatchTrigger,n=e.alignPoint;return"minOverlayWidthMatchTrigger"in e?t:!n}()?"minWidth":"",popup:"function"===typeof e.overlay?j:j(),onPopupVisibleChange:function(t){var n=e.onVisibleChange;D(t),"function"===typeof n&&n(t)},getPopupContainer:x}),function(){var t=e.children,n=t.props?t.props:{},r=u()(n.className,function(){var t=e.openClassName;return void 0!==t?t:"".concat(d,"-open")}());return I&&t?i.cloneElement(t,{className:r}):t}())}))},73453:function(e,t,n){"use strict";n.d(t,{Z:function(){return Y}});var r=n(67294),o=n(94184),a=n.n(o),i=n(48555);function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach((function(t){u(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function u(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var s=r.forwardRef((function(e,t){var n=e.height,o=e.offset,c=e.children,s=e.prefixCls,d=e.onInnerResize,f={},p={display:"flex",flexDirection:"column"};return void 0!==o&&(f={height:n,position:"relative",overflow:"hidden"},p=l(l({},p),{},{transform:"translateY(".concat(o,"px)"),position:"absolute",left:0,right:0,top:0})),r.createElement("div",{style:f},r.createElement(i.default,{onResize:function(e){e.offsetHeight&&d&&d()}},r.createElement("div",{style:p,className:a()(u({},"".concat(s,"-holder-inner"),s)),ref:t},c)))}));s.displayName="Filler";var d=s,f=n(75164);function p(e){return(p="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function v(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function m(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function h(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function y(e,t){return(y=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function g(e){var t=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=x(e);if(t){var o=x(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return b(this,n)}}function b(e,t){if(t&&("object"===p(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function x(e){return(x=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function E(e){return"touches"in e?e.touches[0].pageY:e.pageY}var C=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&y(e,t)}(c,e);var t,n,o,i=g(c);function c(){var e;m(this,c);for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return(e=i.call.apply(i,[this].concat(n))).moveRaf=null,e.scrollbarRef=r.createRef(),e.thumbRef=r.createRef(),e.visibleTimeout=null,e.state={dragging:!1,pageY:null,startTop:null,visible:!1},e.delayHidden=function(){clearTimeout(e.visibleTimeout),e.setState({visible:!0}),e.visibleTimeout=setTimeout((function(){e.setState({visible:!1})}),2e3)},e.onScrollbarTouchStart=function(e){e.preventDefault()},e.onContainerMouseDown=function(e){e.stopPropagation(),e.preventDefault()},e.patchEvents=function(){window.addEventListener("mousemove",e.onMouseMove),window.addEventListener("mouseup",e.onMouseUp),e.thumbRef.current.addEventListener("touchmove",e.onMouseMove),e.thumbRef.current.addEventListener("touchend",e.onMouseUp)},e.removeEvents=function(){window.removeEventListener("mousemove",e.onMouseMove),window.removeEventListener("mouseup",e.onMouseUp),e.scrollbarRef.current.removeEventListener("touchstart",e.onScrollbarTouchStart),e.thumbRef.current.removeEventListener("touchstart",e.onMouseDown),e.thumbRef.current.removeEventListener("touchmove",e.onMouseMove),e.thumbRef.current.removeEventListener("touchend",e.onMouseUp),f.Z.cancel(e.moveRaf)},e.onMouseDown=function(t){var n=e.props.onStartMove;e.setState({dragging:!0,pageY:E(t),startTop:e.getTop()}),n(),e.patchEvents(),t.stopPropagation(),t.preventDefault()},e.onMouseMove=function(t){var n=e.state,r=n.dragging,o=n.pageY,a=n.startTop,i=e.props.onScroll;if(f.Z.cancel(e.moveRaf),r){var c=a+(E(t)-o),l=e.getEnableScrollRange(),u=e.getEnableHeightRange(),s=u?c/u:0,d=Math.ceil(s*l);e.moveRaf=(0,f.Z)((function(){i(d)}))}},e.onMouseUp=function(){var t=e.props.onStopMove;e.setState({dragging:!1}),t(),e.removeEvents()},e.getSpinHeight=function(){var t=e.props,n=t.height,r=n/t.count*10;return r=Math.max(r,20),r=Math.min(r,n/2),Math.floor(r)},e.getEnableScrollRange=function(){var t=e.props;return t.scrollHeight-t.height||0},e.getEnableHeightRange=function(){return e.props.height-e.getSpinHeight()||0},e.getTop=function(){var t=e.props.scrollTop,n=e.getEnableScrollRange(),r=e.getEnableHeightRange();return 0===t||0===n?0:t/n*r},e.showScroll=function(){var t=e.props,n=t.height;return t.scrollHeight>n},e}return t=c,(n=[{key:"componentDidMount",value:function(){this.scrollbarRef.current.addEventListener("touchstart",this.onScrollbarTouchStart),this.thumbRef.current.addEventListener("touchstart",this.onMouseDown)}},{key:"componentDidUpdate",value:function(e){e.scrollTop!==this.props.scrollTop&&this.delayHidden()}},{key:"componentWillUnmount",value:function(){this.removeEvents(),clearTimeout(this.visibleTimeout)}},{key:"render",value:function(){var e=this.state,t=e.dragging,n=e.visible,o=this.props.prefixCls,i=this.getSpinHeight(),c=this.getTop(),l=this.showScroll(),u=l&&n;return r.createElement("div",{ref:this.scrollbarRef,className:a()("".concat(o,"-scrollbar"),v({},"".concat(o,"-scrollbar-show"),l)),style:{width:8,top:0,bottom:0,right:0,position:"absolute",display:u?null:"none"},onMouseDown:this.onContainerMouseDown,onMouseMove:this.delayHidden},r.createElement("div",{ref:this.thumbRef,className:a()("".concat(o,"-scrollbar-thumb"),v({},"".concat(o,"-scrollbar-thumb-moving"),t)),style:{width:"100%",height:i,top:c,left:0,position:"absolute",background:"rgba(0, 0, 0, 0.5)",borderRadius:99,cursor:"pointer",userSelect:"none"},onMouseDown:this.onMouseDown}))}}])&&h(t.prototype,n),o&&h(t,o),c}(r.Component);function w(e){var t=e.children,n=e.setRef,o=r.useCallback((function(e){n(e)}),[]);return r.cloneElement(t,{ref:o})}var Z=n(34203);function N(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var S=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.maps=void 0,this.maps=Object.create(null)}var t,n,r;return t=e,(n=[{key:"set",value:function(e,t){this.maps[e]=t}},{key:"get",value:function(e){return this.maps[e]}}])&&N(t.prototype,n),r&&N(t,r),e}();function k(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,a=[],i=!0,c=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);i=!0);}catch(l){c=!0,o=l}finally{try{i||null==n.return||n.return()}finally{if(c)throw o}}return a}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return O(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return O(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function O(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function P(e){return(P="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function K(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,a=[],i=!0,c=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);i=!0);}catch(l){c=!0,o=l}finally{try{i||null==n.return||n.return()}finally{if(c)throw o}}return a}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return I(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return I(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function I(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function D(e,t,n){var o=K(r.useState(e),2),a=o[0],i=o[1],c=K(r.useState(null),2),l=c[0],u=c[1];return r.useEffect((function(){var r=function(e,t,n){var r,o,a=e.length,i=t.length;if(0===a&&0===i)return null;a<i?(r=e,o=t):(r=t,o=e);var c={__EMPTY_ITEM__:!0};function l(e){return void 0!==e?n(e):c}for(var u=null,s=1!==Math.abs(a-i),d=0;d<o.length;d+=1){var f=l(r[d]);if(f!==l(o[d])){u=d,s=s||f!==l(o[d+1]);break}}return null===u?null:{index:u,multiple:s}}(a||[],e||[],t);void 0!==(null===r||void 0===r?void 0:r.index)&&(null===n||void 0===n||n(r.index),u(e[r.index])),i(e)}),[e]),[l]}function M(e){return(M="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var R="object"===("undefined"===typeof navigator?"undefined":M(navigator))&&/Firefox/i.test(navigator.userAgent),T=function(e,t){var n=(0,r.useRef)(!1),o=(0,r.useRef)(null);function a(){clearTimeout(o.current),n.current=!0,o.current=setTimeout((function(){n.current=!1}),50)}var i=(0,r.useRef)({top:e,bottom:t});return i.current.top=e,i.current.bottom=t,function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=e<0&&i.current.top||e>0&&i.current.bottom;return t&&r?(clearTimeout(o.current),n.current=!1):r&&!n.current||a(),!n.current&&r}};var _=["prefixCls","className","height","itemHeight","fullHeight","style","data","children","itemKey","virtual","component","onScroll","onVisibleChange"];function j(){return(j=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function L(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function A(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?L(Object(n),!0).forEach((function(t){z(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):L(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function z(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function H(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,a=[],i=!0,c=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);i=!0);}catch(l){c=!0,o=l}finally{try{i||null==n.return||n.return()}finally{if(c)throw o}}return a}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return V(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return V(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function V(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function F(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var B=[],U={overflowY:"auto",overflowAnchor:"none"};function W(e,t){var n=e.prefixCls,o=void 0===n?"rc-virtual-list":n,i=e.className,c=e.height,l=e.itemHeight,u=e.fullHeight,s=void 0===u||u,p=e.style,v=e.data,m=e.children,h=e.itemKey,y=e.virtual,g=e.component,b=void 0===g?"div":g,x=e.onScroll,E=e.onVisibleChange,N=F(e,_),O=!(!1===y||!c||!l),K=O&&v&&l*v.length>c,I=H((0,r.useState)(0),2),M=I[0],L=I[1],V=H((0,r.useState)(!1),2),W=V[0],G=V[1],Y=a()(o,i),q=v||B,X=(0,r.useRef)(),J=(0,r.useRef)(),$=(0,r.useRef)(),Q=r.useCallback((function(e){return"function"===typeof h?h(e):null===e||void 0===e?void 0:e[h]}),[h]),ee={getKey:Q};function te(e){L((function(t){var n=function(e){var t=e;Number.isNaN(he.current)||(t=Math.min(t,he.current));return t=Math.max(t,0)}("function"===typeof e?e(t):e);return X.current.scrollTop=n,n}))}var ne=(0,r.useRef)({start:0,end:q.length}),re=(0,r.useRef)(),oe=H(D(q,Q),1)[0];re.current=oe;var ae=H(function(e,t,n){var o=k(r.useState(0),2),a=o[0],i=o[1],c=(0,r.useRef)(new Map),l=(0,r.useRef)(new S),u=(0,r.useRef)(0);function s(){u.current+=1;var e=u.current;Promise.resolve().then((function(){e===u.current&&(c.current.forEach((function(e,t){if(e&&e.offsetParent){var n=(0,Z.Z)(e),r=n.offsetHeight;l.current.get(t)!==r&&l.current.set(t,n.offsetHeight)}})),i((function(e){return e+1})))}))}return[function(r,o){var a=e(r),i=c.current.get(a);o?(c.current.set(a,o),s()):c.current.delete(a),!i!==!o&&(o?null===t||void 0===t||t(r):null===n||void 0===n||n(r))},s,l.current,a]}(Q,null,null),4),ie=ae[0],ce=ae[1],le=ae[2],ue=ae[3],se=r.useMemo((function(){if(!O)return{scrollHeight:void 0,start:0,end:q.length-1,offset:void 0};var e;if(!K)return{scrollHeight:(null===(e=J.current)||void 0===e?void 0:e.offsetHeight)||0,start:0,end:q.length-1,offset:void 0};for(var t,n,r,o=0,a=q.length,i=0;i<a;i+=1){var u=q[i],s=Q(u),d=le.get(s),f=o+(void 0===d?l:d);f>=M&&void 0===t&&(t=i,n=o),f>M+c&&void 0===r&&(r=i),o=f}return void 0===t&&(t=0,n=0),void 0===r&&(r=q.length-1),{scrollHeight:o,start:t,end:r=Math.min(r+1,q.length),offset:n}}),[K,O,M,q,ue,c]),de=se.scrollHeight,fe=se.start,pe=se.end,ve=se.offset;ne.current.start=fe,ne.current.end=pe;var me=de-c,he=(0,r.useRef)(me);he.current=me;var ye=M<=0,ge=M>=me,be=T(ye,ge);var xe=H(function(e,t,n,o){var a=(0,r.useRef)(0),i=(0,r.useRef)(null),c=(0,r.useRef)(null),l=(0,r.useRef)(!1),u=T(t,n);return[function(t){if(e){f.Z.cancel(i.current);var n=t.deltaY;a.current+=n,c.current=n,u(n)||(R||t.preventDefault(),i.current=(0,f.Z)((function(){var e=l.current?10:1;o(a.current*e),a.current=0})))}},function(t){e&&(l.current=t.detail===c.current)}]}(O,ye,ge,(function(e){te((function(t){return t+e}))})),2),Ee=xe[0],Ce=xe[1];!function(e,t,n){var o,a=(0,r.useRef)(!1),i=(0,r.useRef)(0),c=(0,r.useRef)(null),l=(0,r.useRef)(null),u=function(e){if(a.current){var t=Math.ceil(e.touches[0].pageY),r=i.current-t;i.current=t,n(r)&&e.preventDefault(),clearInterval(l.current),l.current=setInterval((function(){(!n(r*=.9333333333333333,!0)||Math.abs(r)<=.1)&&clearInterval(l.current)}),16)}},s=function(){a.current=!1,o()},d=function(e){o(),1!==e.touches.length||a.current||(a.current=!0,i.current=Math.ceil(e.touches[0].pageY),c.current=e.target,c.current.addEventListener("touchmove",u),c.current.addEventListener("touchend",s))};o=function(){c.current&&(c.current.removeEventListener("touchmove",u),c.current.removeEventListener("touchend",s))},r.useLayoutEffect((function(){return e&&t.current.addEventListener("touchstart",d),function(){t.current.removeEventListener("touchstart",d),o(),clearInterval(l.current)}}),[e])}(O,X,(function(e,t){return!be(e,t)&&(Ee({preventDefault:function(){},deltaY:e}),!0)})),(0,r.useLayoutEffect)((function(){function e(e){O&&e.preventDefault()}return X.current.addEventListener("wheel",Ee),X.current.addEventListener("DOMMouseScroll",Ce),X.current.addEventListener("MozMousePixelScroll",e),function(){X.current.removeEventListener("wheel",Ee),X.current.removeEventListener("DOMMouseScroll",Ce),X.current.removeEventListener("MozMousePixelScroll",e)}}),[O]);var we=function(e,t,n,o,a,i,c,l){var u=r.useRef();return function(r){if(null!==r&&void 0!==r){if(f.Z.cancel(u.current),"number"===typeof r)c(r);else if(r&&"object"===P(r)){var s,d=r.align;s="index"in r?r.index:t.findIndex((function(e){return a(e)===r.key}));var p=r.offset,v=void 0===p?0:p;!function r(l,p){if(!(l<0)&&e.current){var m=e.current.clientHeight,h=!1,y=p;if(m){for(var g=p||d,b=0,x=0,E=0,C=Math.min(t.length,s),w=0;w<=C;w+=1){var Z=a(t[w]);x=b;var N=n.get(Z);b=E=x+(void 0===N?o:N),w===s&&void 0===N&&(h=!0)}var S=null;switch(g){case"top":S=x-v;break;case"bottom":S=E-m+v;break;default:var k=e.current.scrollTop;x<k?y="top":E>k+m&&(y="bottom")}null!==S&&S!==e.current.scrollTop&&c(S)}u.current=(0,f.Z)((function(){h&&i(),r(l-1,y)}))}}(3)}}else l()}}(X,q,le,l,Q,ce,te,(function(){var e;null===(e=$.current)||void 0===e||e.delayHidden()}));r.useImperativeHandle(t,(function(){return{scrollTo:we}})),(0,r.useLayoutEffect)((function(){if(E){var e=q.slice(fe,pe+1);E(e,q)}}),[fe,pe,q]);var Ze=function(e,t,n,o,a,i){var c=i.getKey;return e.slice(t,n+1).map((function(e,n){var i=a(e,t+n,{}),l=c(e);return r.createElement(w,{key:l,setRef:function(t){return o(e,t)}},i)}))}(q,fe,pe,ie,m,ee),Ne=null;return c&&(Ne=A(z({},s?"height":"maxHeight",c),U),O&&(Ne.overflowY="hidden",W&&(Ne.pointerEvents="none"))),r.createElement("div",j({style:A(A({},p),{},{position:"relative"}),className:Y},N),r.createElement(b,{className:"".concat(o,"-holder"),style:Ne,ref:X,onScroll:function(e){var t=e.currentTarget.scrollTop;t!==M&&te(t),null===x||void 0===x||x(e)}},r.createElement(d,{prefixCls:o,height:de,offset:ve,onInnerResize:ce,ref:J},Ze)),O&&r.createElement(C,{ref:$,prefixCls:o,scrollTop:M,height:c,scrollHeight:de,count:q.length,onScroll:function(e){te(e)},onStartMove:function(){G(!0)},onStopMove:function(){G(!1)}}))}var G=r.forwardRef(W);G.displayName="List";var Y=G}}]); \ No newline at end of file
diff --git a/static/admin/_next/static/chunks/903-27a123d85f49824b.js b/static/admin/_next/static/chunks/903-27a123d85f49824b.js
deleted file mode 100644
index cc57d504a..000000000
--- a/static/admin/_next/static/chunks/903-27a123d85f49824b.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[903],{98082:function(e,t,n){var a=n(97685),r=n(67294),o=n(31808);t.Z=function(){var e=r.useState(!1),t=(0,a.Z)(e,2),n=t[0],c=t[1];return r.useEffect((function(){c((0,o.fk)())}),[]),n}},6226:function(e,t,n){n.d(t,{Z:function(){return p}});var a=n(4942),r=n(87462),o=n(71002),c=n(67294),i=n(94184),l=n.n(i),u=n(99134),s=n(59844),f=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n};var d=["xs","sm","md","lg","xl","xxl"],v=c.forwardRef((function(e,t){var n,i=c.useContext(s.E_),v=i.getPrefixCls,p=i.direction,m=c.useContext(u.Z),b=m.gutter,h=m.wrap,y=m.supportFlexGap,Z=e.prefixCls,g=e.span,E=e.order,x=e.offset,w=e.push,k=e.pull,C=e.className,N=e.children,P=e.flex,S=e.style,T=f(e,["prefixCls","span","order","offset","push","pull","className","children","flex","style"]),R=v("col",Z),I={};d.forEach((function(t){var n,c={},i=e[t];"number"===typeof i?c.span=i:"object"===(0,o.Z)(i)&&(c=i||{}),delete T[t],I=(0,r.Z)((0,r.Z)({},I),(n={},(0,a.Z)(n,"".concat(R,"-").concat(t,"-").concat(c.span),void 0!==c.span),(0,a.Z)(n,"".concat(R,"-").concat(t,"-order-").concat(c.order),c.order||0===c.order),(0,a.Z)(n,"".concat(R,"-").concat(t,"-offset-").concat(c.offset),c.offset||0===c.offset),(0,a.Z)(n,"".concat(R,"-").concat(t,"-push-").concat(c.push),c.push||0===c.push),(0,a.Z)(n,"".concat(R,"-").concat(t,"-pull-").concat(c.pull),c.pull||0===c.pull),(0,a.Z)(n,"".concat(R,"-rtl"),"rtl"===p),n))}));var O=l()(R,(n={},(0,a.Z)(n,"".concat(R,"-").concat(g),void 0!==g),(0,a.Z)(n,"".concat(R,"-order-").concat(E),E),(0,a.Z)(n,"".concat(R,"-offset-").concat(x),x),(0,a.Z)(n,"".concat(R,"-push-").concat(w),w),(0,a.Z)(n,"".concat(R,"-pull-").concat(k),k),n),C,I),M={};if(b&&b[0]>0){var j=b[0]/2;M.paddingLeft=j,M.paddingRight=j}if(b&&b[1]>0&&!y){var A=b[1]/2;M.paddingTop=A,M.paddingBottom=A}return P&&(M.flex=function(e){return"number"===typeof e?"".concat(e," ").concat(e," auto"):/^\d+(\.\d+)?(px|em|rem|%)$/.test(e)?"0 0 ".concat(e):e}(P),!1!==h||M.minWidth||(M.minWidth=0)),c.createElement("div",(0,r.Z)({},T,{style:(0,r.Z)((0,r.Z)({},M),S),className:O,ref:t}),N)}));v.displayName="Col";var p=v},99134:function(e,t,n){var a=(0,n(67294).createContext)({});t.Z=a},25968:function(e,t,n){n.d(t,{Z:function(){return h}});var a=n(87462),r=n(4942),o=n(71002),c=n(97685),i=n(67294),l=n(94184),u=n.n(l),s=n(59844),f=n(99134),d=n(93355),v=n(24308),p=n(98082),m=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n},b=((0,d.b)("top","middle","bottom","stretch"),(0,d.b)("start","end","center","space-around","space-between"),i.forwardRef((function(e,t){var n,l=e.prefixCls,d=e.justify,b=e.align,h=e.className,y=e.style,Z=e.children,g=e.gutter,E=void 0===g?0:g,x=e.wrap,w=m(e,["prefixCls","justify","align","className","style","children","gutter","wrap"]),k=i.useContext(s.E_),C=k.getPrefixCls,N=k.direction,P=i.useState({xs:!0,sm:!0,md:!0,lg:!0,xl:!0,xxl:!0}),S=(0,c.Z)(P,2),T=S[0],R=S[1],I=(0,p.Z)(),O=i.useRef(E);i.useEffect((function(){var e=v.ZP.subscribe((function(e){var t=O.current||0;(!Array.isArray(t)&&"object"===(0,o.Z)(t)||Array.isArray(t)&&("object"===(0,o.Z)(t[0])||"object"===(0,o.Z)(t[1])))&&R(e)}));return function(){return v.ZP.unsubscribe(e)}}),[]);var M=C("row",l),j=function(){var e=[0,0];return(Array.isArray(E)?E:[E,0]).forEach((function(t,n){if("object"===(0,o.Z)(t))for(var a=0;a<v.c4.length;a++){var r=v.c4[a];if(T[r]&&void 0!==t[r]){e[n]=t[r];break}}else e[n]=t||0})),e}(),A=u()(M,(n={},(0,r.Z)(n,"".concat(M,"-no-wrap"),!1===x),(0,r.Z)(n,"".concat(M,"-").concat(d),d),(0,r.Z)(n,"".concat(M,"-").concat(b),b),(0,r.Z)(n,"".concat(M,"-rtl"),"rtl"===N),n),h),B={},L=j[0]>0?j[0]/-2:void 0,D=j[1]>0?j[1]/-2:void 0;if(L&&(B.marginLeft=L,B.marginRight=L),I){var K=(0,c.Z)(j,2);B.rowGap=K[1]}else D&&(B.marginTop=D,B.marginBottom=D);var W=i.useMemo((function(){return{gutter:j,wrap:x,supportFlexGap:I}}),[j,x,I]);return i.createElement(f.Z.Provider,{value:W},i.createElement("div",(0,a.Z)({},w,{className:A,style:(0,a.Z)((0,a.Z)({},B),y),ref:t}),Z))})));b.displayName="Row";var h=b},87961:function(e,t,n){n.d(t,{Z:function(){return ee}});var a=n(87462),r=n(4942),o=n(67294),c=n(97685),i=n(71002),l=n(91),u=n(1413),s=n(94184),f=n.n(s),d=n(50344),v=n(31131),p=n(21770),m=n(74902),b=n(75164),h=n(48555);function y(e){var t=(0,o.useRef)(),n=(0,o.useRef)(!1);return(0,o.useEffect)((function(){return function(){n.current=!0,b.Z.cancel(t.current)}}),[]),function(){for(var a=arguments.length,r=new Array(a),o=0;o<a;o++)r[o]=arguments[o];n.current||(b.Z.cancel(t.current),t.current=(0,b.Z)((function(){e.apply(void 0,r)})))}}var Z=n(15105);function g(e,t){var n,a=e.prefixCls,c=e.id,i=e.active,l=e.tab,u=l.key,s=l.tab,d=l.disabled,v=l.closeIcon,p=e.closable,m=e.renderWrapper,b=e.removeAriaLabel,h=e.editable,y=e.onClick,g=e.onRemove,E=e.onFocus,x=e.style,w="".concat(a,"-tab");o.useEffect((function(){return g}),[]);var k=h&&!1!==p&&!d;function C(e){d||y(e)}var N=o.createElement("div",{key:u,ref:t,className:f()(w,(n={},(0,r.Z)(n,"".concat(w,"-with-remove"),k),(0,r.Z)(n,"".concat(w,"-active"),i),(0,r.Z)(n,"".concat(w,"-disabled"),d),n)),style:x,onClick:C},o.createElement("div",{role:"tab","aria-selected":i,id:c&&"".concat(c,"-tab-").concat(u),className:"".concat(w,"-btn"),"aria-controls":c&&"".concat(c,"-panel-").concat(u),"aria-disabled":d,tabIndex:d?null:0,onClick:function(e){e.stopPropagation(),C(e)},onKeyDown:function(e){[Z.Z.SPACE,Z.Z.ENTER].includes(e.which)&&(e.preventDefault(),C(e))},onFocus:E},s),k&&o.createElement("button",{type:"button","aria-label":b||"remove",tabIndex:0,className:"".concat(w,"-remove"),onClick:function(e){var t;e.stopPropagation(),(t=e).preventDefault(),t.stopPropagation(),h.onEdit("remove",{key:u,event:t})}},v||h.removeIcon||"\xd7"));return m?m(N):N}var E=o.forwardRef(g),x={width:0,height:0,left:0,top:0};var w={width:0,height:0,left:0,top:0,right:0};var k=n(33203),C=n(56180);function N(e,t){var n=e.prefixCls,a=e.editable,r=e.locale,c=e.style;return a&&!1!==a.showAdd?o.createElement("button",{ref:t,type:"button",className:"".concat(n,"-nav-add"),style:c,"aria-label":(null===r||void 0===r?void 0:r.addAriaLabel)||"Add tab",onClick:function(e){a.onEdit("add",{event:e})}},a.addIcon||"+"):null}var P=o.forwardRef(N);function S(e,t){var n=e.prefixCls,a=e.id,i=e.tabs,l=e.locale,u=e.mobile,s=e.moreIcon,d=void 0===s?"More":s,v=e.moreTransitionName,p=e.style,m=e.className,b=e.editable,h=e.tabBarGutter,y=e.rtl,g=e.onTabClick,E=(0,o.useState)(!1),x=(0,c.Z)(E,2),w=x[0],N=x[1],S=(0,o.useState)(null),T=(0,c.Z)(S,2),R=T[0],I=T[1],O="".concat(a,"-more-popup"),M="".concat(n,"-dropdown"),j=null!==R?"".concat(O,"-").concat(R):null,A=null===l||void 0===l?void 0:l.dropdownAriaLabel,B=o.createElement(k.ZP,{onClick:function(e){var t=e.key,n=e.domEvent;g(t,n),N(!1)},id:O,tabIndex:-1,role:"listbox","aria-activedescendant":j,selectedKeys:[R],"aria-label":void 0!==A?A:"expanded dropdown"},i.map((function(e){return o.createElement(k.sN,{key:e.key,id:"".concat(O,"-").concat(e.key),role:"option","aria-controls":a&&"".concat(a,"-panel-").concat(e.key),disabled:e.disabled},e.tab)})));function L(e){for(var t=i.filter((function(e){return!e.disabled})),n=t.findIndex((function(e){return e.key===R}))||0,a=t.length,r=0;r<a;r+=1){var o=t[n=(n+e+a)%a];if(!o.disabled)return void I(o.key)}}(0,o.useEffect)((function(){var e=document.getElementById(j);e&&e.scrollIntoView&&e.scrollIntoView(!1)}),[R]),(0,o.useEffect)((function(){w||I(null)}),[w]);var D=(0,r.Z)({},y?"marginRight":"marginLeft",h);i.length||(D.visibility="hidden",D.order=1);var K=f()((0,r.Z)({},"".concat(M,"-rtl"),y)),W=u?null:o.createElement(C.Z,{prefixCls:M,overlay:B,trigger:["hover"],visible:w,transitionName:v,onVisibleChange:N,overlayClassName:K,mouseEnterDelay:.1,mouseLeaveDelay:.1},o.createElement("button",{type:"button",className:"".concat(n,"-nav-more"),style:D,tabIndex:-1,"aria-hidden":"true","aria-haspopup":"listbox","aria-controls":O,id:"".concat(a,"-more"),"aria-expanded":w,onKeyDown:function(e){var t=e.which;if(w)switch(t){case Z.Z.UP:L(-1),e.preventDefault();break;case Z.Z.DOWN:L(1),e.preventDefault();break;case Z.Z.ESC:N(!1);break;case Z.Z.SPACE:case Z.Z.ENTER:null!==R&&g(R,e)}else[Z.Z.DOWN,Z.Z.SPACE,Z.Z.ENTER].includes(t)&&(N(!0),e.preventDefault())}},d));return o.createElement("div",{className:f()("".concat(n,"-nav-operations"),m),style:p,ref:t},W,o.createElement(P,{prefixCls:n,locale:l,editable:b}))}var T=o.forwardRef(S),R=(0,o.createContext)(null),I=Math.pow(.995,20);function O(e,t){var n=o.useRef(e),a=o.useState({}),r=(0,c.Z)(a,2)[1];return[n.current,function(e){var a="function"===typeof e?e(n.current):e;a!==n.current&&t(a,n.current),n.current=a,r({})}]}var M=function(e){var t,n=e.position,a=e.prefixCls,r=e.extra;if(!r)return null;var c={};return r&&"object"===(0,i.Z)(r)&&!o.isValidElement(r)?c=r:c.right=r,"right"===n&&(t=c.right),"left"===n&&(t=c.left),t?o.createElement("div",{className:"".concat(a,"-extra-content")},t):null};function j(e,t){var n,i=o.useContext(R),l=i.prefixCls,s=i.tabs,d=e.className,v=e.style,p=e.id,Z=e.animated,g=e.activeKey,k=e.rtl,C=e.extra,N=e.editable,S=e.locale,j=e.tabPosition,A=e.tabBarGutter,B=e.children,L=e.onTabClick,D=e.onTabScroll,K=(0,o.useRef)(),W=(0,o.useRef)(),_=(0,o.useRef)(),q=(0,o.useRef)(),G=function(){var e=(0,o.useRef)(new Map);return[function(t){return e.current.has(t)||e.current.set(t,o.createRef()),e.current.get(t)},function(t){e.current.delete(t)}]}(),V=(0,c.Z)(G,2),z=V[0],H=V[1],F="top"===j||"bottom"===j,Y=O(0,(function(e,t){F&&D&&D({direction:e>t?"left":"right"})})),X=(0,c.Z)(Y,2),U=X[0],$=X[1],J=O(0,(function(e,t){!F&&D&&D({direction:e>t?"top":"bottom"})})),Q=(0,c.Z)(J,2),ee=Q[0],te=Q[1],ne=(0,o.useState)(0),ae=(0,c.Z)(ne,2),re=ae[0],oe=ae[1],ce=(0,o.useState)(0),ie=(0,c.Z)(ce,2),le=ie[0],ue=ie[1],se=(0,o.useState)(0),fe=(0,c.Z)(se,2),de=fe[0],ve=fe[1],pe=(0,o.useState)(0),me=(0,c.Z)(pe,2),be=me[0],he=me[1],ye=(0,o.useState)(null),Ze=(0,c.Z)(ye,2),ge=Ze[0],Ee=Ze[1],xe=(0,o.useState)(null),we=(0,c.Z)(xe,2),ke=we[0],Ce=we[1],Ne=(0,o.useState)(0),Pe=(0,c.Z)(Ne,2),Se=Pe[0],Te=Pe[1],Re=(0,o.useState)(0),Ie=(0,c.Z)(Re,2),Oe=Ie[0],Me=Ie[1],je=function(e){var t=(0,o.useRef)([]),n=(0,o.useState)({}),a=(0,c.Z)(n,2)[1],r=(0,o.useRef)("function"===typeof e?e():e),i=y((function(){var e=r.current;t.current.forEach((function(t){e=t(e)})),t.current=[],r.current=e,a({})}));return[r.current,function(e){t.current.push(e),i()}]}(new Map),Ae=(0,c.Z)(je,2),Be=Ae[0],Le=Ae[1],De=function(e,t,n){return(0,o.useMemo)((function(){for(var n,a=new Map,r=t.get(null===(n=e[0])||void 0===n?void 0:n.key)||x,o=r.left+r.width,c=0;c<e.length;c+=1){var i,l=e[c].key,s=t.get(l);s||(s=t.get(null===(i=e[c-1])||void 0===i?void 0:i.key)||x);var f=a.get(l)||(0,u.Z)({},s);f.right=o-f.left-f.width,a.set(l,f)}return a}),[e.map((function(e){return e.key})).join("_"),t,n])}(s,Be,re),Ke="".concat(l,"-nav-operations-hidden"),We=0,_e=0;function qe(e){return e<We?We:e>_e?_e:e}F?k?(We=0,_e=Math.max(0,re-ge)):(We=Math.min(0,ge-re),_e=0):(We=Math.min(0,ke-le),_e=0);var Ge=(0,o.useRef)(),Ve=(0,o.useState)(),ze=(0,c.Z)(Ve,2),He=ze[0],Fe=ze[1];function Ye(){Fe(Date.now())}function Xe(){window.clearTimeout(Ge.current)}function Ue(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:g,t=De.get(e)||{width:0,height:0,left:0,right:0,top:0};if(F){var n=U;k?t.right<U?n=t.right:t.right+t.width>U+ge&&(n=t.right+t.width-ge):t.left<-U?n=-t.left:t.left+t.width>-U+ge&&(n=-(t.left+t.width-ge)),te(0),$(qe(n))}else{var a=ee;t.top<-ee?a=-t.top:t.top+t.height>-ee+ke&&(a=-(t.top+t.height-ke)),$(0),te(qe(a))}}!function(e,t){var n=(0,o.useState)(),a=(0,c.Z)(n,2),r=a[0],i=a[1],l=(0,o.useState)(0),u=(0,c.Z)(l,2),s=u[0],f=u[1],d=(0,o.useState)(0),v=(0,c.Z)(d,2),p=v[0],m=v[1],b=(0,o.useState)(),h=(0,c.Z)(b,2),y=h[0],Z=h[1],g=(0,o.useRef)(),E=(0,o.useRef)(),x=(0,o.useRef)(null);x.current={onTouchStart:function(e){var t=e.touches[0],n=t.screenX,a=t.screenY;i({x:n,y:a}),window.clearInterval(g.current)},onTouchMove:function(e){if(r){e.preventDefault();var n=e.touches[0],a=n.screenX,o=n.screenY;i({x:a,y:o});var c=a-r.x,l=o-r.y;t(c,l);var u=Date.now();f(u),m(u-s),Z({x:c,y:l})}},onTouchEnd:function(){if(r&&(i(null),Z(null),y)){var e=y.x/p,n=y.y/p,a=Math.abs(e),o=Math.abs(n);if(Math.max(a,o)<.1)return;var c=e,l=n;g.current=window.setInterval((function(){Math.abs(c)<.01&&Math.abs(l)<.01?window.clearInterval(g.current):t(20*(c*=I),20*(l*=I))}),20)}},onWheel:function(e){var n=e.deltaX,a=e.deltaY,r=0,o=Math.abs(n),c=Math.abs(a);o===c?r="x"===E.current?n:a:o>c?(r=n,E.current="x"):(r=a,E.current="y"),t(-r,-r)&&e.preventDefault()}},o.useEffect((function(){function t(e){x.current.onTouchMove(e)}function n(e){x.current.onTouchEnd(e)}return document.addEventListener("touchmove",t,{passive:!1}),document.addEventListener("touchend",n,{passive:!1}),e.current.addEventListener("touchstart",(function(e){x.current.onTouchStart(e)}),{passive:!1}),e.current.addEventListener("wheel",(function(e){x.current.onWheel(e)})),function(){document.removeEventListener("touchmove",t),document.removeEventListener("touchend",n)}}),[])}(K,(function(e,t){function n(e,t){e((function(e){return qe(e+t)}))}if(F){if(ge>=re)return!1;n($,e)}else{if(ke>=le)return!1;n(te,t)}return Xe(),Ye(),!0})),(0,o.useEffect)((function(){return Xe(),He&&(Ge.current=window.setTimeout((function(){Fe(0)}),100)),Xe}),[He]);var $e=function(e,t,n,a,r){var c,i,l,u=r.tabs,s=r.tabPosition,f=r.rtl;["top","bottom"].includes(s)?(c="width",i=f?"right":"left",l=Math.abs(t.left)):(c="height",i="top",l=-t.top);var d=t[c],v=n[c],p=a[c],m=d;return v+p>d&&(m=d-p),(0,o.useMemo)((function(){if(!u.length)return[0,0];for(var t=u.length,n=t,a=0;a<t;a+=1){var r=e.get(u[a].key)||w;if(r[i]+r[c]>l+m){n=a-1;break}}for(var o=0,s=t-1;s>=0;s-=1)if((e.get(u[s].key)||w)[i]<l){o=s+1;break}return[o,n]}),[e,l,m,s,u.map((function(e){return e.key})).join("_"),f])}(De,{width:ge,height:ke,left:U,top:ee},{width:de,height:be},{width:Se,height:Oe},(0,u.Z)((0,u.Z)({},e),{},{tabs:s})),Je=(0,c.Z)($e,2),Qe=Je[0],et=Je[1],tt={};"top"===j||"bottom"===j?tt[k?"marginRight":"marginLeft"]=A:tt.marginTop=A;var nt=s.map((function(e,t){var n=e.key;return o.createElement(E,{id:p,prefixCls:l,key:n,tab:e,style:0===t?void 0:tt,closable:e.closable,editable:N,active:n===g,renderWrapper:B,removeAriaLabel:null===S||void 0===S?void 0:S.removeAriaLabel,ref:z(n),onClick:function(e){L(n,e)},onRemove:function(){H(n)},onFocus:function(){Ue(n),Ye(),K.current&&(k||(K.current.scrollLeft=0),K.current.scrollTop=0)}})})),at=y((function(){var e,t,n,a,r,o,c,i,l,u=(null===(e=K.current)||void 0===e?void 0:e.offsetWidth)||0,f=(null===(t=K.current)||void 0===t?void 0:t.offsetHeight)||0,d=(null===(n=q.current)||void 0===n?void 0:n.offsetWidth)||0,v=(null===(a=q.current)||void 0===a?void 0:a.offsetHeight)||0,p=(null===(r=_.current)||void 0===r?void 0:r.offsetWidth)||0,m=(null===(o=_.current)||void 0===o?void 0:o.offsetHeight)||0;Ee(u),Ce(f),Te(d),Me(v);var b=((null===(c=W.current)||void 0===c?void 0:c.offsetWidth)||0)-d,h=((null===(i=W.current)||void 0===i?void 0:i.offsetHeight)||0)-v;oe(b),ue(h);var y=null===(l=_.current)||void 0===l?void 0:l.className.includes(Ke);ve(b-(y?0:p)),he(h-(y?0:m)),Le((function(){var e=new Map;return s.forEach((function(t){var n=t.key,a=z(n).current;a&&e.set(n,{width:a.offsetWidth,height:a.offsetHeight,left:a.offsetLeft,top:a.offsetTop})})),e}))})),rt=s.slice(0,Qe),ot=s.slice(et+1),ct=[].concat((0,m.Z)(rt),(0,m.Z)(ot)),it=(0,o.useState)(),lt=(0,c.Z)(it,2),ut=lt[0],st=lt[1],ft=De.get(g),dt=(0,o.useRef)();function vt(){b.Z.cancel(dt.current)}(0,o.useEffect)((function(){var e={};return ft&&(F?(k?e.right=ft.right:e.left=ft.left,e.width=ft.width):(e.top=ft.top,e.height=ft.height)),vt(),dt.current=(0,b.Z)((function(){st(e)})),vt}),[ft,F,k]),(0,o.useEffect)((function(){Ue()}),[g,ft,De,F]),(0,o.useEffect)((function(){at()}),[k,A,g,s.map((function(e){return e.key})).join("_")]);var pt,mt,bt,ht,yt=!!ct.length,Zt="".concat(l,"-nav-wrap");return F?k?(mt=U>0,pt=U+ge<re):(pt=U<0,mt=-U+ge<re):(bt=ee<0,ht=-ee+ke<le),o.createElement("div",{ref:t,role:"tablist",className:f()("".concat(l,"-nav"),d),style:v,onKeyDown:function(){Ye()}},o.createElement(M,{position:"left",extra:C,prefixCls:l}),o.createElement(h.default,{onResize:at},o.createElement("div",{className:f()(Zt,(n={},(0,r.Z)(n,"".concat(Zt,"-ping-left"),pt),(0,r.Z)(n,"".concat(Zt,"-ping-right"),mt),(0,r.Z)(n,"".concat(Zt,"-ping-top"),bt),(0,r.Z)(n,"".concat(Zt,"-ping-bottom"),ht),n)),ref:K},o.createElement(h.default,{onResize:at},o.createElement("div",{ref:W,className:"".concat(l,"-nav-list"),style:{transform:"translate(".concat(U,"px, ").concat(ee,"px)"),transition:He?"none":void 0}},nt,o.createElement(P,{ref:q,prefixCls:l,locale:S,editable:N,style:(0,u.Z)((0,u.Z)({},0===nt.length?void 0:tt),{},{visibility:yt?"hidden":null})}),o.createElement("div",{className:f()("".concat(l,"-ink-bar"),(0,r.Z)({},"".concat(l,"-ink-bar-animated"),Z.inkBar)),style:ut}))))),o.createElement(T,(0,a.Z)({},e,{ref:_,prefixCls:l,tabs:ct,className:!yt&&Ke})),o.createElement(M,{position:"right",extra:C,prefixCls:l}))}var A=o.forwardRef(j);function B(e){var t=e.id,n=e.activeKey,a=e.animated,c=e.tabPosition,i=e.rtl,l=e.destroyInactiveTabPane,u=o.useContext(R),s=u.prefixCls,d=u.tabs,v=a.tabPane,p=d.findIndex((function(e){return e.key===n}));return o.createElement("div",{className:f()("".concat(s,"-content-holder"))},o.createElement("div",{className:f()("".concat(s,"-content"),"".concat(s,"-content-").concat(c),(0,r.Z)({},"".concat(s,"-content-animated"),v)),style:p&&v?(0,r.Z)({},i?"marginRight":"marginLeft","-".concat(p,"00%")):null},d.map((function(e){return o.cloneElement(e.node,{key:e.key,prefixCls:s,tabKey:e.key,id:t,animated:v,active:e.key===n,destroyInactiveTabPane:l})}))))}function L(e){var t=e.prefixCls,n=e.forceRender,a=e.className,r=e.style,i=e.id,l=e.active,s=e.animated,d=e.destroyInactiveTabPane,v=e.tabKey,p=e.children,m=o.useState(n),b=(0,c.Z)(m,2),h=b[0],y=b[1];o.useEffect((function(){l?y(!0):d&&y(!1)}),[l,d]);var Z={};return l||(s?(Z.visibility="hidden",Z.height=0,Z.overflowY="hidden"):Z.display="none"),o.createElement("div",{id:i&&"".concat(i,"-panel-").concat(v),role:"tabpanel",tabIndex:l?0:-1,"aria-labelledby":i&&"".concat(i,"-tab-").concat(v),"aria-hidden":!l,style:(0,u.Z)((0,u.Z)({},Z),r),className:f()("".concat(t,"-tabpane"),l&&"".concat(t,"-tabpane-active"),a)},(l||h||n)&&p)}var D=["id","prefixCls","className","children","direction","activeKey","defaultActiveKey","editable","animated","tabPosition","tabBarGutter","tabBarStyle","tabBarExtraContent","locale","moreIcon","moreTransitionName","destroyInactiveTabPane","renderTabBar","onChange","onTabClick","onTabScroll"],K=0;function W(e,t){var n,s,m=e.id,b=e.prefixCls,h=void 0===b?"rc-tabs":b,y=e.className,Z=e.children,g=e.direction,E=e.activeKey,x=e.defaultActiveKey,w=e.editable,k=e.animated,C=void 0===k?{inkBar:!0,tabPane:!1}:k,N=e.tabPosition,P=void 0===N?"top":N,S=e.tabBarGutter,T=e.tabBarStyle,I=e.tabBarExtraContent,O=e.locale,M=e.moreIcon,j=e.moreTransitionName,L=e.destroyInactiveTabPane,W=e.renderTabBar,_=e.onChange,q=e.onTabClick,G=e.onTabScroll,V=(0,l.Z)(e,D),z=function(e){return(0,d.Z)(e).map((function(e){if(o.isValidElement(e)){var t=void 0!==e.key?String(e.key):void 0;return(0,u.Z)((0,u.Z)({key:t},e.props),{},{node:e})}return null})).filter((function(e){return e}))}(Z),H="rtl"===g;s=!1===C?{inkBar:!1,tabPane:!1}:!0===C?{inkBar:!0,tabPane:!0}:(0,u.Z)({inkBar:!0,tabPane:!1},"object"===(0,i.Z)(C)?C:{});var F=(0,o.useState)(!1),Y=(0,c.Z)(F,2),X=Y[0],U=Y[1];(0,o.useEffect)((function(){U((0,v.Z)())}),[]);var $=(0,p.Z)((function(){var e;return null===(e=z[0])||void 0===e?void 0:e.key}),{value:E,defaultValue:x}),J=(0,c.Z)($,2),Q=J[0],ee=J[1],te=(0,o.useState)((function(){return z.findIndex((function(e){return e.key===Q}))})),ne=(0,c.Z)(te,2),ae=ne[0],re=ne[1];(0,o.useEffect)((function(){var e,t=z.findIndex((function(e){return e.key===Q}));-1===t&&(t=Math.max(0,Math.min(ae,z.length-1)),ee(null===(e=z[t])||void 0===e?void 0:e.key));re(t)}),[z.map((function(e){return e.key})).join("_"),Q,ae]);var oe=(0,p.Z)(null,{value:m}),ce=(0,c.Z)(oe,2),ie=ce[0],le=ce[1],ue=P;X&&!["left","right"].includes(P)&&(ue="top"),(0,o.useEffect)((function(){m||(le("rc-tabs-".concat(K)),K+=1)}),[]);var se,fe={id:ie,activeKey:Q,animated:s,tabPosition:ue,rtl:H,mobile:X},de=(0,u.Z)((0,u.Z)({},fe),{},{editable:w,locale:O,moreIcon:M,moreTransitionName:j,tabBarGutter:S,onTabClick:function(e,t){null===q||void 0===q||q(e,t),ee(e),null===_||void 0===_||_(e)},onTabScroll:G,extra:I,style:T,panes:Z});return se=W?W(de,A):o.createElement(A,de),o.createElement(R.Provider,{value:{tabs:z,prefixCls:h}},o.createElement("div",(0,a.Z)({ref:t,id:m,className:f()(h,"".concat(h,"-").concat(ue),(n={},(0,r.Z)(n,"".concat(h,"-mobile"),X),(0,r.Z)(n,"".concat(h,"-editable"),w),(0,r.Z)(n,"".concat(h,"-rtl"),H),n),y)},V),se,o.createElement(B,(0,a.Z)({destroyInactiveTabPane:L},fe,{animated:s}))))}var _=o.forwardRef(W);_.TabPane=L;var q=_,G=n(89705),V={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"defs",attrs:{},children:[{tag:"style",attrs:{}}]},{tag:"path",attrs:{d:"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z"}},{tag:"path",attrs:{d:"M176 474h672q8 0 8 8v60q0 8-8 8H176q-8 0-8-8v-60q0-8 8-8z"}}]},name:"plus",theme:"outlined"},z=n(42135),H=function(e,t){return o.createElement(z.Z,(0,u.Z)((0,u.Z)({},e),{},{ref:t,icon:V}))};H.displayName="PlusOutlined";var F=o.forwardRef(H),Y=n(97937),X=n(21687),U=n(59844),$=n(97647),J=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n};function Q(e){var t,n=e.type,c=e.className,i=e.size,l=e.onEdit,u=e.hideAdd,s=e.centered,d=e.addIcon,v=J(e,["type","className","size","onEdit","hideAdd","centered","addIcon"]),p=v.prefixCls,m=v.moreIcon,b=void 0===m?o.createElement(G.Z,null):m,h=o.useContext(U.E_),y=h.getPrefixCls,Z=h.direction,g=y("tabs",p);"editable-card"===n&&(t={onEdit:function(e,t){var n=t.key,a=t.event;null===l||void 0===l||l("add"===e?a:n,e)},removeIcon:o.createElement(Y.Z,null),addIcon:d||o.createElement(F,null),showAdd:!0!==u});var E=y();return(0,X.Z)(!("onPrevClick"in v)&&!("onNextClick"in v),"Tabs","`onPrevClick` and `onNextClick` has been removed. Please use `onTabScroll` instead."),o.createElement($.Z.Consumer,null,(function(e){var l,u=void 0!==i?i:e;return o.createElement(q,(0,a.Z)({direction:Z,moreTransitionName:"".concat(E,"-slide-up")},v,{className:f()((l={},(0,r.Z)(l,"".concat(g,"-").concat(u),u),(0,r.Z)(l,"".concat(g,"-card"),["card","editable-card"].includes(n)),(0,r.Z)(l,"".concat(g,"-editable-card"),"editable-card"===n),(0,r.Z)(l,"".concat(g,"-centered"),s),l),c),editable:t,moreIcon:b,prefixCls:g}))}))}Q.TabPane=L;var ee=Q}}]); \ No newline at end of file
diff --git a/static/admin/_next/static/chunks/961-1db4468ca0742ea4.js b/static/admin/_next/static/chunks/961-1db4468ca0742ea4.js
new file mode 100644
index 000000000..dfd72c880
--- /dev/null
+++ b/static/admin/_next/static/chunks/961-1db4468ca0742ea4.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[961],{87961:function(e,t,n){n.d(t,{Z:function(){return ee}});var a=n(87462),r=n(4942),o=n(67294),i=n(97685),c=n(71002),l=n(91),u=n(1413),s=n(94184),d=n.n(s),f=n(50344),v=n(31131),m=n(21770),h=n(74902),b=n(75164),p=n(48555);function y(e){var t=(0,o.useRef)(),n=(0,o.useRef)(!1);return(0,o.useEffect)((function(){return function(){n.current=!0,b.Z.cancel(t.current)}}),[]),function(){for(var a=arguments.length,r=new Array(a),o=0;o<a;o++)r[o]=arguments[o];n.current||(b.Z.cancel(t.current),t.current=(0,b.Z)((function(){e.apply(void 0,r)})))}}var Z=n(15105);function g(e,t){var n,a=e.prefixCls,i=e.id,c=e.active,l=e.tab,u=l.key,s=l.tab,f=l.disabled,v=l.closeIcon,m=e.closable,h=e.renderWrapper,b=e.removeAriaLabel,p=e.editable,y=e.onClick,g=e.onRemove,E=e.onFocus,k=e.style,w="".concat(a,"-tab");o.useEffect((function(){return g}),[]);var x=p&&!1!==m&&!f;function C(e){f||y(e)}var N=o.createElement("div",{key:u,ref:t,className:d()(w,(n={},(0,r.Z)(n,"".concat(w,"-with-remove"),x),(0,r.Z)(n,"".concat(w,"-active"),c),(0,r.Z)(n,"".concat(w,"-disabled"),f),n)),style:k,onClick:C},o.createElement("div",{role:"tab","aria-selected":c,id:i&&"".concat(i,"-tab-").concat(u),className:"".concat(w,"-btn"),"aria-controls":i&&"".concat(i,"-panel-").concat(u),"aria-disabled":f,tabIndex:f?null:0,onClick:function(e){e.stopPropagation(),C(e)},onKeyDown:function(e){[Z.Z.SPACE,Z.Z.ENTER].includes(e.which)&&(e.preventDefault(),C(e))},onFocus:E},s),x&&o.createElement("button",{type:"button","aria-label":b||"remove",tabIndex:0,className:"".concat(w,"-remove"),onClick:function(e){var t;e.stopPropagation(),(t=e).preventDefault(),t.stopPropagation(),p.onEdit("remove",{key:u,event:t})}},v||p.removeIcon||"\xd7"));return h?h(N):N}var E=o.forwardRef(g),k={width:0,height:0,left:0,top:0};var w={width:0,height:0,left:0,top:0,right:0};var x=n(33203),C=n(56180);function N(e,t){var n=e.prefixCls,a=e.editable,r=e.locale,i=e.style;return a&&!1!==a.showAdd?o.createElement("button",{ref:t,type:"button",className:"".concat(n,"-nav-add"),style:i,"aria-label":(null===r||void 0===r?void 0:r.addAriaLabel)||"Add tab",onClick:function(e){a.onEdit("add",{event:e})}},a.addIcon||"+"):null}var T=o.forwardRef(N);function S(e,t){var n=e.prefixCls,a=e.id,c=e.tabs,l=e.locale,u=e.mobile,s=e.moreIcon,f=void 0===s?"More":s,v=e.moreTransitionName,m=e.style,h=e.className,b=e.editable,p=e.tabBarGutter,y=e.rtl,g=e.onTabClick,E=(0,o.useState)(!1),k=(0,i.Z)(E,2),w=k[0],N=k[1],S=(0,o.useState)(null),P=(0,i.Z)(S,2),I=P[0],R=P[1],M="".concat(a,"-more-popup"),B="".concat(n,"-dropdown"),L=null!==I?"".concat(M,"-").concat(I):null,A=null===l||void 0===l?void 0:l.dropdownAriaLabel,D=o.createElement(x.ZP,{onClick:function(e){var t=e.key,n=e.domEvent;g(t,n),N(!1)},id:M,tabIndex:-1,role:"listbox","aria-activedescendant":L,selectedKeys:[I],"aria-label":void 0!==A?A:"expanded dropdown"},c.map((function(e){return o.createElement(x.sN,{key:e.key,id:"".concat(M,"-").concat(e.key),role:"option","aria-controls":a&&"".concat(a,"-panel-").concat(e.key),disabled:e.disabled},e.tab)})));function K(e){for(var t=c.filter((function(e){return!e.disabled})),n=t.findIndex((function(e){return e.key===I}))||0,a=t.length,r=0;r<a;r+=1){var o=t[n=(n+e+a)%a];if(!o.disabled)return void R(o.key)}}(0,o.useEffect)((function(){var e=document.getElementById(L);e&&e.scrollIntoView&&e.scrollIntoView(!1)}),[I]),(0,o.useEffect)((function(){w||R(null)}),[w]);var O=(0,r.Z)({},y?"marginRight":"marginLeft",p);c.length||(O.visibility="hidden",O.order=1);var W=d()((0,r.Z)({},"".concat(B,"-rtl"),y)),j=u?null:o.createElement(C.Z,{prefixCls:B,overlay:D,trigger:["hover"],visible:w,transitionName:v,onVisibleChange:N,overlayClassName:W,mouseEnterDelay:.1,mouseLeaveDelay:.1},o.createElement("button",{type:"button",className:"".concat(n,"-nav-more"),style:O,tabIndex:-1,"aria-hidden":"true","aria-haspopup":"listbox","aria-controls":M,id:"".concat(a,"-more"),"aria-expanded":w,onKeyDown:function(e){var t=e.which;if(w)switch(t){case Z.Z.UP:K(-1),e.preventDefault();break;case Z.Z.DOWN:K(1),e.preventDefault();break;case Z.Z.ESC:N(!1);break;case Z.Z.SPACE:case Z.Z.ENTER:null!==I&&g(I,e)}else[Z.Z.DOWN,Z.Z.SPACE,Z.Z.ENTER].includes(t)&&(N(!0),e.preventDefault())}},f));return o.createElement("div",{className:d()("".concat(n,"-nav-operations"),h),style:m,ref:t},j,o.createElement(T,{prefixCls:n,locale:l,editable:b}))}var P=o.forwardRef(S),I=(0,o.createContext)(null),R=Math.pow(.995,20);function M(e,t){var n=o.useRef(e),a=o.useState({}),r=(0,i.Z)(a,2)[1];return[n.current,function(e){var a="function"===typeof e?e(n.current):e;a!==n.current&&t(a,n.current),n.current=a,r({})}]}var B=function(e){var t,n=e.position,a=e.prefixCls,r=e.extra;if(!r)return null;var i={};return r&&"object"===(0,c.Z)(r)&&!o.isValidElement(r)?i=r:i.right=r,"right"===n&&(t=i.right),"left"===n&&(t=i.left),t?o.createElement("div",{className:"".concat(a,"-extra-content")},t):null};function L(e,t){var n,c=o.useContext(I),l=c.prefixCls,s=c.tabs,f=e.className,v=e.style,m=e.id,Z=e.animated,g=e.activeKey,x=e.rtl,C=e.extra,N=e.editable,S=e.locale,L=e.tabPosition,A=e.tabBarGutter,D=e.children,K=e.onTabClick,O=e.onTabScroll,W=(0,o.useRef)(),j=(0,o.useRef)(),_=(0,o.useRef)(),q=(0,o.useRef)(),V=function(){var e=(0,o.useRef)(new Map);return[function(t){return e.current.has(t)||e.current.set(t,o.createRef()),e.current.get(t)},function(t){e.current.delete(t)}]}(),z=(0,i.Z)(V,2),H=z[0],G=z[1],Y="top"===L||"bottom"===L,F=M(0,(function(e,t){Y&&O&&O({direction:e>t?"left":"right"})})),X=(0,i.Z)(F,2),U=X[0],J=X[1],Q=M(0,(function(e,t){!Y&&O&&O({direction:e>t?"top":"bottom"})})),$=(0,i.Z)(Q,2),ee=$[0],te=$[1],ne=(0,o.useState)(0),ae=(0,i.Z)(ne,2),re=ae[0],oe=ae[1],ie=(0,o.useState)(0),ce=(0,i.Z)(ie,2),le=ce[0],ue=ce[1],se=(0,o.useState)(0),de=(0,i.Z)(se,2),fe=de[0],ve=de[1],me=(0,o.useState)(0),he=(0,i.Z)(me,2),be=he[0],pe=he[1],ye=(0,o.useState)(null),Ze=(0,i.Z)(ye,2),ge=Ze[0],Ee=Ze[1],ke=(0,o.useState)(null),we=(0,i.Z)(ke,2),xe=we[0],Ce=we[1],Ne=(0,o.useState)(0),Te=(0,i.Z)(Ne,2),Se=Te[0],Pe=Te[1],Ie=(0,o.useState)(0),Re=(0,i.Z)(Ie,2),Me=Re[0],Be=Re[1],Le=function(e){var t=(0,o.useRef)([]),n=(0,o.useState)({}),a=(0,i.Z)(n,2)[1],r=(0,o.useRef)("function"===typeof e?e():e),c=y((function(){var e=r.current;t.current.forEach((function(t){e=t(e)})),t.current=[],r.current=e,a({})}));return[r.current,function(e){t.current.push(e),c()}]}(new Map),Ae=(0,i.Z)(Le,2),De=Ae[0],Ke=Ae[1],Oe=function(e,t,n){return(0,o.useMemo)((function(){for(var n,a=new Map,r=t.get(null===(n=e[0])||void 0===n?void 0:n.key)||k,o=r.left+r.width,i=0;i<e.length;i+=1){var c,l=e[i].key,s=t.get(l);s||(s=t.get(null===(c=e[i-1])||void 0===c?void 0:c.key)||k);var d=a.get(l)||(0,u.Z)({},s);d.right=o-d.left-d.width,a.set(l,d)}return a}),[e.map((function(e){return e.key})).join("_"),t,n])}(s,De,re),We="".concat(l,"-nav-operations-hidden"),je=0,_e=0;function qe(e){return e<je?je:e>_e?_e:e}Y?x?(je=0,_e=Math.max(0,re-ge)):(je=Math.min(0,ge-re),_e=0):(je=Math.min(0,xe-le),_e=0);var Ve=(0,o.useRef)(),ze=(0,o.useState)(),He=(0,i.Z)(ze,2),Ge=He[0],Ye=He[1];function Fe(){Ye(Date.now())}function Xe(){window.clearTimeout(Ve.current)}function Ue(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:g,t=Oe.get(e)||{width:0,height:0,left:0,right:0,top:0};if(Y){var n=U;x?t.right<U?n=t.right:t.right+t.width>U+ge&&(n=t.right+t.width-ge):t.left<-U?n=-t.left:t.left+t.width>-U+ge&&(n=-(t.left+t.width-ge)),te(0),J(qe(n))}else{var a=ee;t.top<-ee?a=-t.top:t.top+t.height>-ee+xe&&(a=-(t.top+t.height-xe)),J(0),te(qe(a))}}!function(e,t){var n=(0,o.useState)(),a=(0,i.Z)(n,2),r=a[0],c=a[1],l=(0,o.useState)(0),u=(0,i.Z)(l,2),s=u[0],d=u[1],f=(0,o.useState)(0),v=(0,i.Z)(f,2),m=v[0],h=v[1],b=(0,o.useState)(),p=(0,i.Z)(b,2),y=p[0],Z=p[1],g=(0,o.useRef)(),E=(0,o.useRef)(),k=(0,o.useRef)(null);k.current={onTouchStart:function(e){var t=e.touches[0],n=t.screenX,a=t.screenY;c({x:n,y:a}),window.clearInterval(g.current)},onTouchMove:function(e){if(r){e.preventDefault();var n=e.touches[0],a=n.screenX,o=n.screenY;c({x:a,y:o});var i=a-r.x,l=o-r.y;t(i,l);var u=Date.now();d(u),h(u-s),Z({x:i,y:l})}},onTouchEnd:function(){if(r&&(c(null),Z(null),y)){var e=y.x/m,n=y.y/m,a=Math.abs(e),o=Math.abs(n);if(Math.max(a,o)<.1)return;var i=e,l=n;g.current=window.setInterval((function(){Math.abs(i)<.01&&Math.abs(l)<.01?window.clearInterval(g.current):t(20*(i*=R),20*(l*=R))}),20)}},onWheel:function(e){var n=e.deltaX,a=e.deltaY,r=0,o=Math.abs(n),i=Math.abs(a);o===i?r="x"===E.current?n:a:o>i?(r=n,E.current="x"):(r=a,E.current="y"),t(-r,-r)&&e.preventDefault()}},o.useEffect((function(){function t(e){k.current.onTouchMove(e)}function n(e){k.current.onTouchEnd(e)}return document.addEventListener("touchmove",t,{passive:!1}),document.addEventListener("touchend",n,{passive:!1}),e.current.addEventListener("touchstart",(function(e){k.current.onTouchStart(e)}),{passive:!1}),e.current.addEventListener("wheel",(function(e){k.current.onWheel(e)})),function(){document.removeEventListener("touchmove",t),document.removeEventListener("touchend",n)}}),[])}(W,(function(e,t){function n(e,t){e((function(e){return qe(e+t)}))}if(Y){if(ge>=re)return!1;n(J,e)}else{if(xe>=le)return!1;n(te,t)}return Xe(),Fe(),!0})),(0,o.useEffect)((function(){return Xe(),Ge&&(Ve.current=window.setTimeout((function(){Ye(0)}),100)),Xe}),[Ge]);var Je=function(e,t,n,a,r){var i,c,l,u=r.tabs,s=r.tabPosition,d=r.rtl;["top","bottom"].includes(s)?(i="width",c=d?"right":"left",l=Math.abs(t.left)):(i="height",c="top",l=-t.top);var f=t[i],v=n[i],m=a[i],h=f;return v+m>f&&(h=f-m),(0,o.useMemo)((function(){if(!u.length)return[0,0];for(var t=u.length,n=t,a=0;a<t;a+=1){var r=e.get(u[a].key)||w;if(r[c]+r[i]>l+h){n=a-1;break}}for(var o=0,s=t-1;s>=0;s-=1)if((e.get(u[s].key)||w)[c]<l){o=s+1;break}return[o,n]}),[e,l,h,s,u.map((function(e){return e.key})).join("_"),d])}(Oe,{width:ge,height:xe,left:U,top:ee},{width:fe,height:be},{width:Se,height:Me},(0,u.Z)((0,u.Z)({},e),{},{tabs:s})),Qe=(0,i.Z)(Je,2),$e=Qe[0],et=Qe[1],tt={};"top"===L||"bottom"===L?tt[x?"marginRight":"marginLeft"]=A:tt.marginTop=A;var nt=s.map((function(e,t){var n=e.key;return o.createElement(E,{id:m,prefixCls:l,key:n,tab:e,style:0===t?void 0:tt,closable:e.closable,editable:N,active:n===g,renderWrapper:D,removeAriaLabel:null===S||void 0===S?void 0:S.removeAriaLabel,ref:H(n),onClick:function(e){K(n,e)},onRemove:function(){G(n)},onFocus:function(){Ue(n),Fe(),W.current&&(x||(W.current.scrollLeft=0),W.current.scrollTop=0)}})})),at=y((function(){var e,t,n,a,r,o,i,c,l,u=(null===(e=W.current)||void 0===e?void 0:e.offsetWidth)||0,d=(null===(t=W.current)||void 0===t?void 0:t.offsetHeight)||0,f=(null===(n=q.current)||void 0===n?void 0:n.offsetWidth)||0,v=(null===(a=q.current)||void 0===a?void 0:a.offsetHeight)||0,m=(null===(r=_.current)||void 0===r?void 0:r.offsetWidth)||0,h=(null===(o=_.current)||void 0===o?void 0:o.offsetHeight)||0;Ee(u),Ce(d),Pe(f),Be(v);var b=((null===(i=j.current)||void 0===i?void 0:i.offsetWidth)||0)-f,p=((null===(c=j.current)||void 0===c?void 0:c.offsetHeight)||0)-v;oe(b),ue(p);var y=null===(l=_.current)||void 0===l?void 0:l.className.includes(We);ve(b-(y?0:m)),pe(p-(y?0:h)),Ke((function(){var e=new Map;return s.forEach((function(t){var n=t.key,a=H(n).current;a&&e.set(n,{width:a.offsetWidth,height:a.offsetHeight,left:a.offsetLeft,top:a.offsetTop})})),e}))})),rt=s.slice(0,$e),ot=s.slice(et+1),it=[].concat((0,h.Z)(rt),(0,h.Z)(ot)),ct=(0,o.useState)(),lt=(0,i.Z)(ct,2),ut=lt[0],st=lt[1],dt=Oe.get(g),ft=(0,o.useRef)();function vt(){b.Z.cancel(ft.current)}(0,o.useEffect)((function(){var e={};return dt&&(Y?(x?e.right=dt.right:e.left=dt.left,e.width=dt.width):(e.top=dt.top,e.height=dt.height)),vt(),ft.current=(0,b.Z)((function(){st(e)})),vt}),[dt,Y,x]),(0,o.useEffect)((function(){Ue()}),[g,dt,Oe,Y]),(0,o.useEffect)((function(){at()}),[x,A,g,s.map((function(e){return e.key})).join("_")]);var mt,ht,bt,pt,yt=!!it.length,Zt="".concat(l,"-nav-wrap");return Y?x?(ht=U>0,mt=U+ge<re):(mt=U<0,ht=-U+ge<re):(bt=ee<0,pt=-ee+xe<le),o.createElement("div",{ref:t,role:"tablist",className:d()("".concat(l,"-nav"),f),style:v,onKeyDown:function(){Fe()}},o.createElement(B,{position:"left",extra:C,prefixCls:l}),o.createElement(p.default,{onResize:at},o.createElement("div",{className:d()(Zt,(n={},(0,r.Z)(n,"".concat(Zt,"-ping-left"),mt),(0,r.Z)(n,"".concat(Zt,"-ping-right"),ht),(0,r.Z)(n,"".concat(Zt,"-ping-top"),bt),(0,r.Z)(n,"".concat(Zt,"-ping-bottom"),pt),n)),ref:W},o.createElement(p.default,{onResize:at},o.createElement("div",{ref:j,className:"".concat(l,"-nav-list"),style:{transform:"translate(".concat(U,"px, ").concat(ee,"px)"),transition:Ge?"none":void 0}},nt,o.createElement(T,{ref:q,prefixCls:l,locale:S,editable:N,style:(0,u.Z)((0,u.Z)({},0===nt.length?void 0:tt),{},{visibility:yt?"hidden":null})}),o.createElement("div",{className:d()("".concat(l,"-ink-bar"),(0,r.Z)({},"".concat(l,"-ink-bar-animated"),Z.inkBar)),style:ut}))))),o.createElement(P,(0,a.Z)({},e,{ref:_,prefixCls:l,tabs:it,className:!yt&&We})),o.createElement(B,{position:"right",extra:C,prefixCls:l}))}var A=o.forwardRef(L);function D(e){var t=e.id,n=e.activeKey,a=e.animated,i=e.tabPosition,c=e.rtl,l=e.destroyInactiveTabPane,u=o.useContext(I),s=u.prefixCls,f=u.tabs,v=a.tabPane,m=f.findIndex((function(e){return e.key===n}));return o.createElement("div",{className:d()("".concat(s,"-content-holder"))},o.createElement("div",{className:d()("".concat(s,"-content"),"".concat(s,"-content-").concat(i),(0,r.Z)({},"".concat(s,"-content-animated"),v)),style:m&&v?(0,r.Z)({},c?"marginRight":"marginLeft","-".concat(m,"00%")):null},f.map((function(e){return o.cloneElement(e.node,{key:e.key,prefixCls:s,tabKey:e.key,id:t,animated:v,active:e.key===n,destroyInactiveTabPane:l})}))))}function K(e){var t=e.prefixCls,n=e.forceRender,a=e.className,r=e.style,c=e.id,l=e.active,s=e.animated,f=e.destroyInactiveTabPane,v=e.tabKey,m=e.children,h=o.useState(n),b=(0,i.Z)(h,2),p=b[0],y=b[1];o.useEffect((function(){l?y(!0):f&&y(!1)}),[l,f]);var Z={};return l||(s?(Z.visibility="hidden",Z.height=0,Z.overflowY="hidden"):Z.display="none"),o.createElement("div",{id:c&&"".concat(c,"-panel-").concat(v),role:"tabpanel",tabIndex:l?0:-1,"aria-labelledby":c&&"".concat(c,"-tab-").concat(v),"aria-hidden":!l,style:(0,u.Z)((0,u.Z)({},Z),r),className:d()("".concat(t,"-tabpane"),l&&"".concat(t,"-tabpane-active"),a)},(l||p||n)&&m)}var O=["id","prefixCls","className","children","direction","activeKey","defaultActiveKey","editable","animated","tabPosition","tabBarGutter","tabBarStyle","tabBarExtraContent","locale","moreIcon","moreTransitionName","destroyInactiveTabPane","renderTabBar","onChange","onTabClick","onTabScroll"],W=0;function j(e,t){var n,s,h=e.id,b=e.prefixCls,p=void 0===b?"rc-tabs":b,y=e.className,Z=e.children,g=e.direction,E=e.activeKey,k=e.defaultActiveKey,w=e.editable,x=e.animated,C=void 0===x?{inkBar:!0,tabPane:!1}:x,N=e.tabPosition,T=void 0===N?"top":N,S=e.tabBarGutter,P=e.tabBarStyle,R=e.tabBarExtraContent,M=e.locale,B=e.moreIcon,L=e.moreTransitionName,K=e.destroyInactiveTabPane,j=e.renderTabBar,_=e.onChange,q=e.onTabClick,V=e.onTabScroll,z=(0,l.Z)(e,O),H=function(e){return(0,f.Z)(e).map((function(e){if(o.isValidElement(e)){var t=void 0!==e.key?String(e.key):void 0;return(0,u.Z)((0,u.Z)({key:t},e.props),{},{node:e})}return null})).filter((function(e){return e}))}(Z),G="rtl"===g;s=!1===C?{inkBar:!1,tabPane:!1}:!0===C?{inkBar:!0,tabPane:!0}:(0,u.Z)({inkBar:!0,tabPane:!1},"object"===(0,c.Z)(C)?C:{});var Y=(0,o.useState)(!1),F=(0,i.Z)(Y,2),X=F[0],U=F[1];(0,o.useEffect)((function(){U((0,v.Z)())}),[]);var J=(0,m.Z)((function(){var e;return null===(e=H[0])||void 0===e?void 0:e.key}),{value:E,defaultValue:k}),Q=(0,i.Z)(J,2),$=Q[0],ee=Q[1],te=(0,o.useState)((function(){return H.findIndex((function(e){return e.key===$}))})),ne=(0,i.Z)(te,2),ae=ne[0],re=ne[1];(0,o.useEffect)((function(){var e,t=H.findIndex((function(e){return e.key===$}));-1===t&&(t=Math.max(0,Math.min(ae,H.length-1)),ee(null===(e=H[t])||void 0===e?void 0:e.key));re(t)}),[H.map((function(e){return e.key})).join("_"),$,ae]);var oe=(0,m.Z)(null,{value:h}),ie=(0,i.Z)(oe,2),ce=ie[0],le=ie[1],ue=T;X&&!["left","right"].includes(T)&&(ue="top"),(0,o.useEffect)((function(){h||(le("rc-tabs-".concat(W)),W+=1)}),[]);var se,de={id:ce,activeKey:$,animated:s,tabPosition:ue,rtl:G,mobile:X},fe=(0,u.Z)((0,u.Z)({},de),{},{editable:w,locale:M,moreIcon:B,moreTransitionName:L,tabBarGutter:S,onTabClick:function(e,t){null===q||void 0===q||q(e,t),ee(e),null===_||void 0===_||_(e)},onTabScroll:V,extra:R,style:P,panes:Z});return se=j?j(fe,A):o.createElement(A,fe),o.createElement(I.Provider,{value:{tabs:H,prefixCls:p}},o.createElement("div",(0,a.Z)({ref:t,id:h,className:d()(p,"".concat(p,"-").concat(ue),(n={},(0,r.Z)(n,"".concat(p,"-mobile"),X),(0,r.Z)(n,"".concat(p,"-editable"),w),(0,r.Z)(n,"".concat(p,"-rtl"),G),n),y)},z),se,o.createElement(D,(0,a.Z)({destroyInactiveTabPane:K},de,{animated:s}))))}var _=o.forwardRef(j);_.TabPane=K;var q=_,V=n(89705),z={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"defs",attrs:{},children:[{tag:"style",attrs:{}}]},{tag:"path",attrs:{d:"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z"}},{tag:"path",attrs:{d:"M176 474h672q8 0 8 8v60q0 8-8 8H176q-8 0-8-8v-60q0-8 8-8z"}}]},name:"plus",theme:"outlined"},H=n(42135),G=function(e,t){return o.createElement(H.Z,(0,u.Z)((0,u.Z)({},e),{},{ref:t,icon:z}))};G.displayName="PlusOutlined";var Y=o.forwardRef(G),F=n(97937),X=n(21687),U=n(59844),J=n(97647),Q=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n};function $(e){var t,n=e.type,i=e.className,c=e.size,l=e.onEdit,u=e.hideAdd,s=e.centered,f=e.addIcon,v=Q(e,["type","className","size","onEdit","hideAdd","centered","addIcon"]),m=v.prefixCls,h=v.moreIcon,b=void 0===h?o.createElement(V.Z,null):h,p=o.useContext(U.E_),y=p.getPrefixCls,Z=p.direction,g=y("tabs",m);"editable-card"===n&&(t={onEdit:function(e,t){var n=t.key,a=t.event;null===l||void 0===l||l("add"===e?a:n,e)},removeIcon:o.createElement(F.Z,null),addIcon:f||o.createElement(Y,null),showAdd:!0!==u});var E=y();return(0,X.Z)(!("onPrevClick"in v)&&!("onNextClick"in v),"Tabs","`onPrevClick` and `onNextClick` has been removed. Please use `onTabScroll` instead."),o.createElement(J.Z.Consumer,null,(function(e){var l,u=void 0!==c?c:e;return o.createElement(q,(0,a.Z)({direction:Z,moreTransitionName:"".concat(E,"-slide-up")},v,{className:d()((l={},(0,r.Z)(l,"".concat(g,"-").concat(u),u),(0,r.Z)(l,"".concat(g,"-card"),["card","editable-card"].includes(n)),(0,r.Z)(l,"".concat(g,"-editable-card"),"editable-card"===n),(0,r.Z)(l,"".concat(g,"-centered"),s),l),i),editable:t,moreIcon:b,prefixCls:g}))}))}$.TabPane=K;var ee=$}}]); \ No newline at end of file
diff --git a/static/admin/_next/static/chunks/pages/_app-31024cc89d3736f1.js b/static/admin/_next/static/chunks/pages/_app-31024cc89d3736f1.js
new file mode 100644
index 000000000..9b0beb66a
--- /dev/null
+++ b/static/admin/_next/static/chunks/pages/_app-31024cc89d3736f1.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[888],{92138:function(e,t,n){"use strict";n.r(t),n.d(t,{blue:function(){return Z},cyan:function(){return E},geekblue:function(){return k},generate:function(){return d},gold:function(){return y},green:function(){return C},grey:function(){return S},lime:function(){return x},magenta:function(){return P},orange:function(){return b},presetDarkPalettes:function(){return v},presetPalettes:function(){return m},presetPrimaryColors:function(){return p},purple:function(){return N},red:function(){return h},volcano:function(){return g},yellow:function(){return w}});var r=n(86500),o=n(1350),i=[{index:7,opacity:.15},{index:6,opacity:.25},{index:5,opacity:.3},{index:5,opacity:.45},{index:5,opacity:.65},{index:5,opacity:.85},{index:4,opacity:.9},{index:3,opacity:.95},{index:2,opacity:.97},{index:1,opacity:.98}];function a(e){var t=e.r,n=e.g,o=e.b,i=(0,r.py)(t,n,o);return{h:360*i.h,s:i.s,v:i.v}}function c(e){var t=e.r,n=e.g,o=e.b;return"#".concat((0,r.vq)(t,n,o,!1))}function s(e,t,n){var r=n/100;return{r:(t.r-e.r)*r+e.r,g:(t.g-e.g)*r+e.g,b:(t.b-e.b)*r+e.b}}function l(e,t,n){var r;return(r=Math.round(e.h)>=60&&Math.round(e.h)<=240?n?Math.round(e.h)-2*t:Math.round(e.h)+2*t:n?Math.round(e.h)+2*t:Math.round(e.h)-2*t)<0?r+=360:r>=360&&(r-=360),r}function u(e,t,n){return 0===e.h&&0===e.s?e.s:((r=n?e.s-.16*t:4===t?e.s+.16:e.s+.05*t)>1&&(r=1),n&&5===t&&r>.1&&(r=.1),r<.06&&(r=.06),Number(r.toFixed(2)));var r}function f(e,t,n){var r;return(r=n?e.v+.05*t:e.v-.15*t)>1&&(r=1),Number(r.toFixed(2))}function d(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=[],r=(0,o.uA)(e),d=5;d>0;d-=1){var p=a(r),m=c((0,o.uA)({h:l(p,d,!0),s:u(p,d,!0),v:f(p,d,!0)}));n.push(m)}n.push(c(r));for(var v=1;v<=4;v+=1){var h=a(r),g=c((0,o.uA)({h:l(h,v),s:u(h,v),v:f(h,v)}));n.push(g)}return"dark"===t.theme?i.map((function(e){var r=e.index,i=e.opacity;return c(s((0,o.uA)(t.backgroundColor||"#141414"),(0,o.uA)(n[r]),100*i))})):n}var p={red:"#F5222D",volcano:"#FA541C",orange:"#FA8C16",gold:"#FAAD14",yellow:"#FADB14",lime:"#A0D911",green:"#52C41A",cyan:"#13C2C2",blue:"#1890FF",geekblue:"#2F54EB",purple:"#722ED1",magenta:"#EB2F96",grey:"#666666"},m={},v={};Object.keys(p).forEach((function(e){m[e]=d(p[e]),m[e].primary=m[e][5],v[e]=d(p[e],{theme:"dark",backgroundColor:"#141414"}),v[e].primary=v[e][5]}));var h=m.red,g=m.volcano,y=m.gold,b=m.orange,w=m.yellow,x=m.lime,C=m.green,E=m.cyan,Z=m.blue,k=m.geekblue,N=m.purple,P=m.magenta,S=m.grey},42135:function(e,t,n){"use strict";n.d(t,{Z:function(){return S}});var r=n(1413),o=n(97685),i=n(4942),a=n(91),c=n(67294),s=n(94184),l=n.n(s),u=n(63017),f=n(71002),d=n(92138),p=n(80334),m=n(44958);function v(e){return"object"===(0,f.Z)(e)&&"string"===typeof e.name&&"string"===typeof e.theme&&("object"===(0,f.Z)(e.icon)||"function"===typeof e.icon)}function h(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Object.keys(e).reduce((function(t,n){var r=e[n];switch(n){case"class":t.className=r,delete t.class;break;default:t[n]=r}return t}),{})}function g(e,t,n){return n?c.createElement(e.tag,(0,r.Z)((0,r.Z)({key:t},h(e.attrs)),n),(e.children||[]).map((function(n,r){return g(n,"".concat(t,"-").concat(e.tag,"-").concat(r))}))):c.createElement(e.tag,(0,r.Z)({key:t},h(e.attrs)),(e.children||[]).map((function(n,r){return g(n,"".concat(t,"-").concat(e.tag,"-").concat(r))})))}function y(e){return(0,d.generate)(e)[0]}function b(e){return e?Array.isArray(e)?e:[e]:[]}var w="\n.anticon {\n display: inline-block;\n color: inherit;\n font-style: normal;\n line-height: 0;\n text-align: center;\n text-transform: none;\n vertical-align: -0.125em;\n text-rendering: optimizeLegibility;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.anticon > * {\n line-height: 1;\n}\n\n.anticon svg {\n display: inline-block;\n}\n\n.anticon::before {\n display: none;\n}\n\n.anticon .anticon-icon {\n display: block;\n}\n\n.anticon[tabindex] {\n cursor: pointer;\n}\n\n.anticon-spin::before,\n.anticon-spin {\n display: inline-block;\n -webkit-animation: loadingCircle 1s infinite linear;\n animation: loadingCircle 1s infinite linear;\n}\n\n@-webkit-keyframes loadingCircle {\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes loadingCircle {\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n",x=["icon","className","onClick","style","primaryColor","secondaryColor"],C={primaryColor:"#333",secondaryColor:"#E6E6E6",calculated:!1};var E=function(e){var t,n,o=e.icon,i=e.className,s=e.onClick,l=e.style,f=e.primaryColor,d=e.secondaryColor,h=(0,a.Z)(e,x),b=C;if(f&&(b={primaryColor:f,secondaryColor:d||y(f)}),function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:w,t=(0,c.useContext)(u.Z).csp;(0,c.useEffect)((function(){(0,m.h)(e,"@ant-design-icons",{prepend:!0,csp:t})}),[])}(),t=v(o),n="icon should be icon definiton, but got ".concat(o),(0,p.ZP)(t,"[@ant-design/icons] ".concat(n)),!v(o))return null;var E=o;return E&&"function"===typeof E.icon&&(E=(0,r.Z)((0,r.Z)({},E),{},{icon:E.icon(b.primaryColor,b.secondaryColor)})),g(E.icon,"svg-".concat(E.name),(0,r.Z)({className:i,onClick:s,style:l,"data-icon":E.name,width:"1em",height:"1em",fill:"currentColor","aria-hidden":"true"},h))};E.displayName="IconReact",E.getTwoToneColors=function(){return(0,r.Z)({},C)},E.setTwoToneColors=function(e){var t=e.primaryColor,n=e.secondaryColor;C.primaryColor=t,C.secondaryColor=n||y(t),C.calculated=!!n};var Z=E;function k(e){var t=b(e),n=(0,o.Z)(t,2),r=n[0],i=n[1];return Z.setTwoToneColors({primaryColor:r,secondaryColor:i})}var N=["className","icon","spin","rotate","tabIndex","onClick","twoToneColor"];k("#1890ff");var P=c.forwardRef((function(e,t){var n,s=e.className,f=e.icon,d=e.spin,p=e.rotate,m=e.tabIndex,v=e.onClick,h=e.twoToneColor,g=(0,a.Z)(e,N),y=c.useContext(u.Z).prefixCls,w=void 0===y?"anticon":y,x=l()(w,(n={},(0,i.Z)(n,"".concat(w,"-").concat(f.name),!!f.name),(0,i.Z)(n,"".concat(w,"-spin"),!!d||"loading"===f.name),n),s),C=m;void 0===C&&v&&(C=-1);var E=p?{msTransform:"rotate(".concat(p,"deg)"),transform:"rotate(".concat(p,"deg)")}:void 0,k=b(h),P=(0,o.Z)(k,2),S=P[0],O=P[1];return c.createElement("span",(0,r.Z)((0,r.Z)({role:"img","aria-label":f.name},g),{},{ref:t,tabIndex:C,onClick:v,className:x}),c.createElement(Z,{icon:f,primaryColor:S,secondaryColor:O,style:E}))}));P.displayName="AntdIcon",P.getTwoToneColor=function(){var e=Z.getTwoToneColors();return e.calculated?[e.primaryColor,e.secondaryColor]:e.primaryColor},P.setTwoToneColor=k;var S=P},63017:function(e,t,n){"use strict";var r=(0,n(67294).createContext)({});t.Z=r},89739:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(1413),o=n(67294),i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm193.5 301.7l-210.6 292a31.8 31.8 0 01-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.5 12.7z"}}]},name:"check-circle",theme:"filled"},a=n(42135),c=function(e,t){return o.createElement(a.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:t,icon:i}))};c.displayName="CheckCircleFilled";var s=o.forwardRef(c)},8751:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(1413),o=n(67294),i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M699 353h-46.9c-10.2 0-19.9 4.9-25.9 13.3L469 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H325c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8a31.8 31.8 0 0051.7 0l210.6-292c3.9-5.3.1-12.7-6.4-12.7z"}},{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}}]},name:"check-circle",theme:"outlined"},a=n(42135),c=function(e,t){return o.createElement(a.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:t,icon:i}))};c.displayName="CheckCircleOutlined";var s=o.forwardRef(c)},63606:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(1413),o=n(67294),i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 00-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z"}}]},name:"check",theme:"outlined"},a=n(42135),c=function(e,t){return o.createElement(a.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:t,icon:i}))};c.displayName="CheckOutlined";var s=o.forwardRef(c)},4340:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(1413),o=n(67294),i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"}}]},name:"close-circle",theme:"filled"},a=n(42135),c=function(e,t){return o.createElement(a.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:t,icon:i}))};c.displayName="CloseCircleFilled";var s=o.forwardRef(c)},18429:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(1413),o=n(67294),i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M685.4 354.8c0-4.4-3.6-8-8-8l-66 .3L512 465.6l-99.3-118.4-66.1-.3c-4.4 0-8 3.5-8 8 0 1.9.7 3.7 1.9 5.2l130.1 155L340.5 670a8.32 8.32 0 00-1.9 5.2c0 4.4 3.6 8 8 8l66.1-.3L512 564.4l99.3 118.4 66 .3c4.4 0 8-3.5 8-8 0-1.9-.7-3.7-1.9-5.2L553.5 515l130.1-155c1.2-1.4 1.8-3.3 1.8-5.2z"}},{tag:"path",attrs:{d:"M512 65C264.6 65 64 265.6 64 513s200.6 448 448 448 448-200.6 448-448S759.4 65 512 65zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}}]},name:"close-circle",theme:"outlined"},a=n(42135),c=function(e,t){return o.createElement(a.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:t,icon:i}))};c.displayName="CloseCircleOutlined";var s=o.forwardRef(c)},97937:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(1413),o=n(67294),i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M563.8 512l262.5-312.9c4.4-5.2.7-13.1-6.1-13.1h-79.8c-4.7 0-9.2 2.1-12.3 5.7L511.6 449.8 295.1 191.7c-3-3.6-7.5-5.7-12.3-5.7H203c-6.8 0-10.5 7.9-6.1 13.1L459.4 512 196.9 824.9A7.95 7.95 0 00203 838h79.8c4.7 0 9.2-2.1 12.3-5.7l216.5-258.1 216.5 258.1c3 3.6 7.5 5.7 12.3 5.7h79.8c6.8 0 10.5-7.9 6.1-13.1L563.8 512z"}}]},name:"close",theme:"outlined"},a=n(42135),c=function(e,t){return o.createElement(a.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:t,icon:i}))};c.displayName="CloseOutlined";var s=o.forwardRef(c)},57132:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(1413),o=n(67294),i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z"}}]},name:"copy",theme:"outlined"},a=n(42135),c=function(e,t){return o.createElement(a.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:t,icon:i}))};c.displayName="CopyOutlined";var s=o.forwardRef(c)},80882:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(1413),o=n(67294),i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z"}}]},name:"down",theme:"outlined"},a=n(42135),c=function(e,t){return o.createElement(a.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:t,icon:i}))};c.displayName="DownOutlined";var s=o.forwardRef(c)},86548:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(1413),o=n(67294),i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z"}}]},name:"edit",theme:"outlined"},a=n(42135),c=function(e,t){return o.createElement(a.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:t,icon:i}))};c.displayName="EditOutlined";var s=o.forwardRef(c)},89705:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(1413),o=n(67294),i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M176 511a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0z"}}]},name:"ellipsis",theme:"outlined"},a=n(42135),c=function(e,t){return o.createElement(a.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:t,icon:i}))};c.displayName="EllipsisOutlined";var s=o.forwardRef(c)},21640:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(1413),o=n(67294),i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-32 232c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V296zm32 440a48.01 48.01 0 010-96 48.01 48.01 0 010 96z"}}]},name:"exclamation-circle",theme:"filled"},a=n(42135),c=function(e,t){return o.createElement(a.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:t,icon:i}))};c.displayName="ExclamationCircleFilled";var s=o.forwardRef(c)},11475:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(1413),o=n(67294),i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}},{tag:"path",attrs:{d:"M464 688a48 48 0 1096 0 48 48 0 10-96 0zm24-112h48c4.4 0 8-3.6 8-8V296c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8z"}}]},name:"exclamation-circle",theme:"outlined"},a=n(42135),c=function(e,t){return o.createElement(a.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:t,icon:i}))};c.displayName="ExclamationCircleOutlined";var s=o.forwardRef(c)},90420:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(1413),o=n(67294),i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M942.2 486.2Q889.47 375.11 816.7 305l-50.88 50.88C807.31 395.53 843.45 447.4 874.7 512 791.5 684.2 673.4 766 512 766q-72.67 0-133.87-22.38L323 798.75Q408 838 512 838q288.3 0 430.2-300.3a60.29 60.29 0 000-51.5zm-63.57-320.64L836 122.88a8 8 0 00-11.32 0L715.31 232.2Q624.86 186 512 186q-288.3 0-430.2 300.3a60.3 60.3 0 000 51.5q56.69 119.4 136.5 191.41L112.48 835a8 8 0 000 11.31L155.17 889a8 8 0 0011.31 0l712.15-712.12a8 8 0 000-11.32zM149.3 512C232.6 339.8 350.7 258 512 258c54.54 0 104.13 9.36 149.12 28.39l-70.3 70.3a176 176 0 00-238.13 238.13l-83.42 83.42C223.1 637.49 183.3 582.28 149.3 512zm246.7 0a112.11 112.11 0 01146.2-106.69L401.31 546.2A112 112 0 01396 512z"}},{tag:"path",attrs:{d:"M508 624c-3.46 0-6.87-.16-10.25-.47l-52.82 52.82a176.09 176.09 0 00227.42-227.42l-52.82 52.82c.31 3.38.47 6.79.47 10.25a111.94 111.94 0 01-112 112z"}}]},name:"eye-invisible",theme:"outlined"},a=n(42135),c=function(e,t){return o.createElement(a.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:t,icon:i}))};c.displayName="EyeInvisibleOutlined";var s=o.forwardRef(c)},99611:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(1413),o=n(67294),i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 000 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 766c-161.3 0-279.4-81.8-362.7-254C232.6 339.8 350.7 258 512 258c161.3 0 279.4 81.8 362.7 254C791.5 684.2 673.4 766 512 766zm-4-430c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm0 288c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z"}}]},name:"eye",theme:"outlined"},a=n(42135),c=function(e,t){return o.createElement(a.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:t,icon:i}))};c.displayName="EyeOutlined";var s=o.forwardRef(c)},78860:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(1413),o=n(67294),i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm32 664c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V456c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272zm-32-344a48.01 48.01 0 010-96 48.01 48.01 0 010 96z"}}]},name:"info-circle",theme:"filled"},a=n(42135),c=function(e,t){return o.createElement(a.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:t,icon:i}))};c.displayName="InfoCircleFilled";var s=o.forwardRef(c)},45605:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(1413),o=n(67294),i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}},{tag:"path",attrs:{d:"M464 336a48 48 0 1096 0 48 48 0 10-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z"}}]},name:"info-circle",theme:"outlined"},a=n(42135),c=function(e,t){return o.createElement(a.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:t,icon:i}))};c.displayName="InfoCircleOutlined";var s=o.forwardRef(c)},6171:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(1413),o=n(67294),i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 000 50.3l450.8 352.1c5.3 4.1 12.9.4 12.9-6.3v-77.3c0-4.9-2.3-9.6-6.1-12.6l-360-281 360-281.1c3.8-3 6.1-7.7 6.1-12.6z"}}]},name:"left",theme:"outlined"},a=n(42135),c=function(e,t){return o.createElement(a.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:t,icon:i}))};c.displayName="LeftOutlined";var s=o.forwardRef(c)},50888:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(1413),o=n(67294),i={icon:{tag:"svg",attrs:{viewBox:"0 0 1024 1024",focusable:"false"},children:[{tag:"path",attrs:{d:"M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 00-94.3-139.9 437.71 437.71 0 00-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.3C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3.1 19.9-16 36-35.9 36z"}}]},name:"loading",theme:"outlined"},a=n(42135),c=function(e,t){return o.createElement(a.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:t,icon:i}))};c.displayName="LoadingOutlined";var s=o.forwardRef(c)},18073:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(1413),o=n(67294),i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M765.7 486.8L314.9 134.7A7.97 7.97 0 00302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 000-50.4z"}}]},name:"right",theme:"outlined"},a=n(42135),c=function(e,t){return o.createElement(a.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:t,icon:i}))};c.displayName="RightOutlined";var s=o.forwardRef(c)},68795:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(1413),o=n(67294),i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M909.6 854.5L649.9 594.8C690.2 542.7 712 479 712 412c0-80.2-31.3-155.4-87.9-212.1-56.6-56.7-132-87.9-212.1-87.9s-155.5 31.3-212.1 87.9C143.2 256.5 112 331.8 112 412c0 80.1 31.3 155.5 87.9 212.1C256.5 680.8 331.8 712 412 712c67 0 130.6-21.8 182.7-62l259.7 259.6a8.2 8.2 0 0011.6 0l43.6-43.5a8.2 8.2 0 000-11.6zM570.4 570.4C528 612.7 471.8 636 412 636s-116-23.3-158.4-65.6C211.3 528 188 471.8 188 412s23.3-116.1 65.6-158.4C296 211.3 352.2 188 412 188s116.1 23.2 158.4 65.6S636 352.2 636 412s-23.3 116.1-65.6 158.4z"}}]},name:"search",theme:"outlined"},a=n(42135),c=function(e,t){return o.createElement(a.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:t,icon:i}))};c.displayName="SearchOutlined";var s=o.forwardRef(c)},87757:function(e,t,n){e.exports=n(35666)},86500:function(e,t,n){"use strict";n.d(t,{rW:function(){return o},lC:function(){return i},ve:function(){return c},py:function(){return s},WE:function(){return l},vq:function(){return u},s:function(){return f},GC:function(){return d},Wl:function(){return p},T6:function(){return m},VD:function(){return v},Yt:function(){return h}});var r=n(90279);function o(e,t,n){return{r:255*(0,r.sh)(e,255),g:255*(0,r.sh)(t,255),b:255*(0,r.sh)(n,255)}}function i(e,t,n){e=(0,r.sh)(e,255),t=(0,r.sh)(t,255),n=(0,r.sh)(n,255);var o=Math.max(e,t,n),i=Math.min(e,t,n),a=0,c=0,s=(o+i)/2;if(o===i)c=0,a=0;else{var l=o-i;switch(c=s>.5?l/(2-o-i):l/(o+i),o){case e:a=(t-n)/l+(t<n?6:0);break;case t:a=(n-e)/l+2;break;case n:a=(e-t)/l+4}a/=6}return{h:a,s:c,l:s}}function a(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+6*n*(t-e):n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function c(e,t,n){var o,i,c;if(e=(0,r.sh)(e,360),t=(0,r.sh)(t,100),n=(0,r.sh)(n,100),0===t)i=n,c=n,o=n;else{var s=n<.5?n*(1+t):n+t-n*t,l=2*n-s;o=a(l,s,e+1/3),i=a(l,s,e),c=a(l,s,e-1/3)}return{r:255*o,g:255*i,b:255*c}}function s(e,t,n){e=(0,r.sh)(e,255),t=(0,r.sh)(t,255),n=(0,r.sh)(n,255);var o=Math.max(e,t,n),i=Math.min(e,t,n),a=0,c=o,s=o-i,l=0===o?0:s/o;if(o===i)a=0;else{switch(o){case e:a=(t-n)/s+(t<n?6:0);break;case t:a=(n-e)/s+2;break;case n:a=(e-t)/s+4}a/=6}return{h:a,s:l,v:c}}function l(e,t,n){e=6*(0,r.sh)(e,360),t=(0,r.sh)(t,100),n=(0,r.sh)(n,100);var o=Math.floor(e),i=e-o,a=n*(1-t),c=n*(1-i*t),s=n*(1-(1-i)*t),l=o%6;return{r:255*[n,c,a,a,s,n][l],g:255*[s,n,n,c,a,a][l],b:255*[a,a,s,n,n,c][l]}}function u(e,t,n,o){var i=[(0,r.FZ)(Math.round(e).toString(16)),(0,r.FZ)(Math.round(t).toString(16)),(0,r.FZ)(Math.round(n).toString(16))];return o&&i[0].startsWith(i[0].charAt(1))&&i[1].startsWith(i[1].charAt(1))&&i[2].startsWith(i[2].charAt(1))?i[0].charAt(0)+i[1].charAt(0)+i[2].charAt(0):i.join("")}function f(e,t,n,o,i){var a=[(0,r.FZ)(Math.round(e).toString(16)),(0,r.FZ)(Math.round(t).toString(16)),(0,r.FZ)(Math.round(n).toString(16)),(0,r.FZ)(p(o))];return i&&a[0].startsWith(a[0].charAt(1))&&a[1].startsWith(a[1].charAt(1))&&a[2].startsWith(a[2].charAt(1))&&a[3].startsWith(a[3].charAt(1))?a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0)+a[3].charAt(0):a.join("")}function d(e,t,n,o){return[(0,r.FZ)(p(o)),(0,r.FZ)(Math.round(e).toString(16)),(0,r.FZ)(Math.round(t).toString(16)),(0,r.FZ)(Math.round(n).toString(16))].join("")}function p(e){return Math.round(255*parseFloat(e)).toString(16)}function m(e){return v(e)/255}function v(e){return parseInt(e,16)}function h(e){return{r:e>>16,g:(65280&e)>>8,b:255&e}}},48701:function(e,t,n){"use strict";n.d(t,{R:function(){return r}});var r={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",goldenrod:"#daa520",gold:"#ffd700",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavenderblush:"#fff0f5",lavender:"#e6e6fa",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"}},1350:function(e,t,n){"use strict";n.d(t,{uA:function(){return a},uz:function(){return f},ky:function(){return d}});var r=n(86500),o=n(48701),i=n(90279);function a(e){var t={r:0,g:0,b:0},n=1,o=null,a=null,c=null,s=!1,l=!1;return"string"===typeof e&&(e=f(e)),"object"===typeof e&&(d(e.r)&&d(e.g)&&d(e.b)?(t=(0,r.rW)(e.r,e.g,e.b),s=!0,l="%"===String(e.r).substr(-1)?"prgb":"rgb"):d(e.h)&&d(e.s)&&d(e.v)?(o=(0,i.JX)(e.s),a=(0,i.JX)(e.v),t=(0,r.WE)(e.h,o,a),s=!0,l="hsv"):d(e.h)&&d(e.s)&&d(e.l)&&(o=(0,i.JX)(e.s),c=(0,i.JX)(e.l),t=(0,r.ve)(e.h,o,c),s=!0,l="hsl"),Object.prototype.hasOwnProperty.call(e,"a")&&(n=e.a)),n=(0,i.Yq)(n),{ok:s,format:e.format||l,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:n}}var c="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)",s="[\\s|\\(]+("+c+")[,|\\s]+("+c+")[,|\\s]+("+c+")\\s*\\)?",l="[\\s|\\(]+("+c+")[,|\\s]+("+c+")[,|\\s]+("+c+")[,|\\s]+("+c+")\\s*\\)?",u={CSS_UNIT:new RegExp(c),rgb:new RegExp("rgb"+s),rgba:new RegExp("rgba"+l),hsl:new RegExp("hsl"+s),hsla:new RegExp("hsla"+l),hsv:new RegExp("hsv"+s),hsva:new RegExp("hsva"+l),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function f(e){if(0===(e=e.trim().toLowerCase()).length)return!1;var t=!1;if(o.R[e])e=o.R[e],t=!0;else if("transparent"===e)return{r:0,g:0,b:0,a:0,format:"name"};var n=u.rgb.exec(e);return n?{r:n[1],g:n[2],b:n[3]}:(n=u.rgba.exec(e))?{r:n[1],g:n[2],b:n[3],a:n[4]}:(n=u.hsl.exec(e))?{h:n[1],s:n[2],l:n[3]}:(n=u.hsla.exec(e))?{h:n[1],s:n[2],l:n[3],a:n[4]}:(n=u.hsv.exec(e))?{h:n[1],s:n[2],v:n[3]}:(n=u.hsva.exec(e))?{h:n[1],s:n[2],v:n[3],a:n[4]}:(n=u.hex8.exec(e))?{r:(0,r.VD)(n[1]),g:(0,r.VD)(n[2]),b:(0,r.VD)(n[3]),a:(0,r.T6)(n[4]),format:t?"name":"hex8"}:(n=u.hex6.exec(e))?{r:(0,r.VD)(n[1]),g:(0,r.VD)(n[2]),b:(0,r.VD)(n[3]),format:t?"name":"hex"}:(n=u.hex4.exec(e))?{r:(0,r.VD)(n[1]+n[1]),g:(0,r.VD)(n[2]+n[2]),b:(0,r.VD)(n[3]+n[3]),a:(0,r.T6)(n[4]+n[4]),format:t?"name":"hex8"}:!!(n=u.hex3.exec(e))&&{r:(0,r.VD)(n[1]+n[1]),g:(0,r.VD)(n[2]+n[2]),b:(0,r.VD)(n[3]+n[3]),format:t?"name":"hex"}}function d(e){return Boolean(u.CSS_UNIT.exec(String(e)))}},10274:function(e,t,n){"use strict";n.d(t,{C:function(){return c},H:function(){return s}});var r=n(86500),o=n(48701),i=n(1350),a=n(90279),c=function(){function e(t,n){var o;if(void 0===t&&(t=""),void 0===n&&(n={}),t instanceof e)return t;"number"===typeof t&&(t=(0,r.Yt)(t)),this.originalInput=t;var a=(0,i.uA)(t);this.originalInput=t,this.r=a.r,this.g=a.g,this.b=a.b,this.a=a.a,this.roundA=Math.round(100*this.a)/100,this.format=null!==(o=n.format)&&void 0!==o?o:a.format,this.gradientType=n.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=a.ok}return e.prototype.isDark=function(){return this.getBrightness()<128},e.prototype.isLight=function(){return!this.isDark()},e.prototype.getBrightness=function(){var e=this.toRgb();return(299*e.r+587*e.g+114*e.b)/1e3},e.prototype.getLuminance=function(){var e=this.toRgb(),t=e.r/255,n=e.g/255,r=e.b/255;return.2126*(t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4))+.7152*(n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4))+.0722*(r<=.03928?r/12.92:Math.pow((r+.055)/1.055,2.4))},e.prototype.getAlpha=function(){return this.a},e.prototype.setAlpha=function(e){return this.a=(0,a.Yq)(e),this.roundA=Math.round(100*this.a)/100,this},e.prototype.toHsv=function(){var e=(0,r.py)(this.r,this.g,this.b);return{h:360*e.h,s:e.s,v:e.v,a:this.a}},e.prototype.toHsvString=function(){var e=(0,r.py)(this.r,this.g,this.b),t=Math.round(360*e.h),n=Math.round(100*e.s),o=Math.round(100*e.v);return 1===this.a?"hsv("+t+", "+n+"%, "+o+"%)":"hsva("+t+", "+n+"%, "+o+"%, "+this.roundA+")"},e.prototype.toHsl=function(){var e=(0,r.lC)(this.r,this.g,this.b);return{h:360*e.h,s:e.s,l:e.l,a:this.a}},e.prototype.toHslString=function(){var e=(0,r.lC)(this.r,this.g,this.b),t=Math.round(360*e.h),n=Math.round(100*e.s),o=Math.round(100*e.l);return 1===this.a?"hsl("+t+", "+n+"%, "+o+"%)":"hsla("+t+", "+n+"%, "+o+"%, "+this.roundA+")"},e.prototype.toHex=function(e){return void 0===e&&(e=!1),(0,r.vq)(this.r,this.g,this.b,e)},e.prototype.toHexString=function(e){return void 0===e&&(e=!1),"#"+this.toHex(e)},e.prototype.toHex8=function(e){return void 0===e&&(e=!1),(0,r.s)(this.r,this.g,this.b,this.a,e)},e.prototype.toHex8String=function(e){return void 0===e&&(e=!1),"#"+this.toHex8(e)},e.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},e.prototype.toRgbString=function(){var e=Math.round(this.r),t=Math.round(this.g),n=Math.round(this.b);return 1===this.a?"rgb("+e+", "+t+", "+n+")":"rgba("+e+", "+t+", "+n+", "+this.roundA+")"},e.prototype.toPercentageRgb=function(){var e=function(e){return Math.round(100*(0,a.sh)(e,255))+"%"};return{r:e(this.r),g:e(this.g),b:e(this.b),a:this.a}},e.prototype.toPercentageRgbString=function(){var e=function(e){return Math.round(100*(0,a.sh)(e,255))};return 1===this.a?"rgb("+e(this.r)+"%, "+e(this.g)+"%, "+e(this.b)+"%)":"rgba("+e(this.r)+"%, "+e(this.g)+"%, "+e(this.b)+"%, "+this.roundA+")"},e.prototype.toName=function(){if(0===this.a)return"transparent";if(this.a<1)return!1;for(var e="#"+(0,r.vq)(this.r,this.g,this.b,!1),t=0,n=Object.entries(o.R);t<n.length;t++){var i=n[t],a=i[0];if(e===i[1])return a}return!1},e.prototype.toString=function(e){var t=Boolean(e);e=null!==e&&void 0!==e?e:this.format;var n=!1,r=this.a<1&&this.a>=0;return t||!r||!e.startsWith("hex")&&"name"!==e?("rgb"===e&&(n=this.toRgbString()),"prgb"===e&&(n=this.toPercentageRgbString()),"hex"!==e&&"hex6"!==e||(n=this.toHexString()),"hex3"===e&&(n=this.toHexString(!0)),"hex4"===e&&(n=this.toHex8String(!0)),"hex8"===e&&(n=this.toHex8String()),"name"===e&&(n=this.toName()),"hsl"===e&&(n=this.toHslString()),"hsv"===e&&(n=this.toHsvString()),n||this.toHexString()):"name"===e&&0===this.a?this.toName():this.toRgbString()},e.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},e.prototype.clone=function(){return new e(this.toString())},e.prototype.lighten=function(t){void 0===t&&(t=10);var n=this.toHsl();return n.l+=t/100,n.l=(0,a.V2)(n.l),new e(n)},e.prototype.brighten=function(t){void 0===t&&(t=10);var n=this.toRgb();return n.r=Math.max(0,Math.min(255,n.r-Math.round(-t/100*255))),n.g=Math.max(0,Math.min(255,n.g-Math.round(-t/100*255))),n.b=Math.max(0,Math.min(255,n.b-Math.round(-t/100*255))),new e(n)},e.prototype.darken=function(t){void 0===t&&(t=10);var n=this.toHsl();return n.l-=t/100,n.l=(0,a.V2)(n.l),new e(n)},e.prototype.tint=function(e){return void 0===e&&(e=10),this.mix("white",e)},e.prototype.shade=function(e){return void 0===e&&(e=10),this.mix("black",e)},e.prototype.desaturate=function(t){void 0===t&&(t=10);var n=this.toHsl();return n.s-=t/100,n.s=(0,a.V2)(n.s),new e(n)},e.prototype.saturate=function(t){void 0===t&&(t=10);var n=this.toHsl();return n.s+=t/100,n.s=(0,a.V2)(n.s),new e(n)},e.prototype.greyscale=function(){return this.desaturate(100)},e.prototype.spin=function(t){var n=this.toHsl(),r=(n.h+t)%360;return n.h=r<0?360+r:r,new e(n)},e.prototype.mix=function(t,n){void 0===n&&(n=50);var r=this.toRgb(),o=new e(t).toRgb(),i=n/100;return new e({r:(o.r-r.r)*i+r.r,g:(o.g-r.g)*i+r.g,b:(o.b-r.b)*i+r.b,a:(o.a-r.a)*i+r.a})},e.prototype.analogous=function(t,n){void 0===t&&(t=6),void 0===n&&(n=30);var r=this.toHsl(),o=360/n,i=[this];for(r.h=(r.h-(o*t>>1)+720)%360;--t;)r.h=(r.h+o)%360,i.push(new e(r));return i},e.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new e(t)},e.prototype.monochromatic=function(t){void 0===t&&(t=6);for(var n=this.toHsv(),r=n.h,o=n.s,i=n.v,a=[],c=1/t;t--;)a.push(new e({h:r,s:o,v:i})),i=(i+c)%1;return a},e.prototype.splitcomplement=function(){var t=this.toHsl(),n=t.h;return[this,new e({h:(n+72)%360,s:t.s,l:t.l}),new e({h:(n+216)%360,s:t.s,l:t.l})]},e.prototype.onBackground=function(t){var n=this.toRgb(),r=new e(t).toRgb();return new e({r:r.r+(n.r-r.r)*n.a,g:r.g+(n.g-r.g)*n.a,b:r.b+(n.b-r.b)*n.a})},e.prototype.triad=function(){return this.polyad(3)},e.prototype.tetrad=function(){return this.polyad(4)},e.prototype.polyad=function(t){for(var n=this.toHsl(),r=n.h,o=[this],i=360/t,a=1;a<t;a++)o.push(new e({h:(r+a*i)%360,s:n.s,l:n.l}));return o},e.prototype.equals=function(t){return this.toRgbString()===new e(t).toRgbString()},e}();function s(e,t){return void 0===e&&(e=""),void 0===t&&(t={}),new c(e,t)}},90279:function(e,t,n){"use strict";function r(e,t){(function(e){return"string"===typeof e&&-1!==e.indexOf(".")&&1===parseFloat(e)})(e)&&(e="100%");var n=function(e){return"string"===typeof e&&-1!==e.indexOf("%")}(e);return e=360===t?e:Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(String(e*t),10)/100),Math.abs(e-t)<1e-6?1:e=360===t?(e<0?e%t+t:e%t)/parseFloat(String(t)):e%t/parseFloat(String(t))}function o(e){return Math.min(1,Math.max(0,e))}function i(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function a(e){return e<=1?100*Number(e)+"%":e}function c(e){return 1===e.length?"0"+e:String(e)}n.d(t,{sh:function(){return r},V2:function(){return o},Yq:function(){return i},JX:function(){return a},FZ:function(){return c}})},86743:function(e,t,n){"use strict";var r=n(87462),o=n(97685),i=n(67294),a=n(71577),c=n(8613),s=n(73577);function l(e){return!(!e||!e.then)}t.Z=function(e){var t=i.useRef(!1),n=i.useRef(),u=(0,s.Z)(),f=i.useState(!1),d=(0,o.Z)(f,2),p=d[0],m=d[1];i.useEffect((function(){var t;if(e.autoFocus){var r=n.current;t=setTimeout((function(){return r.focus()}))}return function(){t&&clearTimeout(t)}}),[]);var v=e.type,h=e.children,g=e.prefixCls,y=e.buttonProps;return i.createElement(a.Z,(0,r.Z)({},(0,c.n)(v),{onClick:function(n){var r=e.actionFn,o=e.close;if(!t.current)if(t.current=!0,r){var i;if(e.emitEvent){if(i=r(n),e.quitOnNullishReturnValue&&!l(i))return t.current=!1,void o(n)}else if(r.length)i=r(o),t.current=!1;else if(!(i=r()))return void o();!function(n){var r=e.close;l(n)&&(m(!0),n.then((function(){u()||m(!1),r.apply(void 0,arguments),t.current=!1}),(function(e){console.error(e),u()||m(!1),t.current=!1})))}(i)}else o()},loading:p,prefixCls:g},y,{ref:n}),h)}},98787:function(e,t,n){"use strict";n.d(t,{E:function(){return o},Y:function(){return i}});var r=n(93355),o=(0,r.b)("success","processing","error","default","warning"),i=(0,r.b)("pink","red","yellow","orange","cyan","green","blue","purple","geekblue","magenta","volcano","gold","lime")},21687:function(e,t,n){"use strict";var r=n(80334);t.Z=function(e,t,n){(0,r.ZP)(e,"[antd: ".concat(t,"] ").concat(n))}},5467:function(e,t,n){"use strict";function r(e){return Object.keys(e).reduce((function(t,n){return"data-"!==n.substr(0,5)&&"aria-"!==n.substr(0,5)&&"role"!==n||"data-__"===n.substr(0,7)||(t[n]=e[n]),t}),{})}n.d(t,{Z:function(){return r}})},81643:function(e,t,n){"use strict";n.d(t,{Z:function(){return r}});var r=function(e){return e?"function"===typeof e?e():e:null}},73577:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(67294);function o(){var e=r.useRef(!0);return r.useEffect((function(){return function(){e.current=!1}}),[]),function(){return!e.current}}},98082:function(e,t,n){"use strict";var r=n(97685),o=n(67294),i=n(31808);t.Z=function(){var e=o.useState(!1),t=(0,r.Z)(e,2),n=t[0],a=t[1];return o.useEffect((function(){a((0,i.fk)())}),[]),n}},33603:function(e,t,n){"use strict";n.d(t,{m:function(){return c}});var r=function(){return{height:0,opacity:0}},o=function(e){return{height:e.scrollHeight,opacity:1}},i=function(e,t){return!0===(null===t||void 0===t?void 0:t.deadline)||"height"===t.propertyName},a={motionName:"ant-motion-collapse",onAppearStart:r,onEnterStart:r,onAppearActive:o,onEnterActive:o,onLeaveStart:function(e){return{height:e?e.offsetHeight:0}},onLeaveActive:r,onAppearEnd:i,onEnterEnd:i,onLeaveEnd:i,motionDeadline:500},c=function(e,t,n){return void 0!==n?n:"".concat(e,"-").concat(t)};t.Z=a},32637:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(75164),o=0,i={};function a(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=o++,a=t;function c(){(a-=1)<=0?(e(),delete i[n]):i[n]=(0,r.Z)(c)}return i[n]=(0,r.Z)(c),n}a.cancel=function(e){void 0!==e&&(r.Z.cancel(i[e]),delete i[e])},a.ids=i},96159:function(e,t,n){"use strict";n.d(t,{l$:function(){return o},wm:function(){return i},Tm:function(){return a}});var r=n(67294),o=r.isValidElement;function i(e,t,n){return o(e)?r.cloneElement(e,"function"===typeof n?n(e.props||{}):n):t}function a(e,t){return i(e,e,t)}},31808:function(e,t,n){"use strict";n.d(t,{jD:function(){return i},fk:function(){return a}});var r,o=n(98924),i=function(){return(0,o.Z)()&&window.document.documentElement},a=function(){if(!i())return!1;if(void 0!==r)return r;var e=document.createElement("div");return e.style.display="flex",e.style.flexDirection="column",e.style.rowGap="1px",e.appendChild(document.createElement("div")),e.appendChild(document.createElement("div")),document.body.appendChild(e),r=1===e.scrollHeight,document.body.removeChild(e),r}},93355:function(e,t,n){"use strict";n.d(t,{b:function(){return r},a:function(){return o}});var r=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t},o=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t}},97202:function(e,t,n){"use strict";n.d(t,{Z:function(){return g}});var r,o=n(15671),i=n(43144),a=n(97326),c=n(60136),s=n(3289),l=n(67294),u=n(44958),f=n(42550),d=n(32637),p=n(59844),m=n(96159);function v(e){return!e||null===e.offsetParent||e.hidden}function h(e){var t=(e||"").match(/rgba?\((\d*), (\d*), (\d*)(, [\d.]*)?\)/);return!(t&&t[1]&&t[2]&&t[3])||!(t[1]===t[2]&&t[2]===t[3])}var g=function(e){(0,c.Z)(n,e);var t=(0,s.Z)(n);function n(){var e;return(0,o.Z)(this,n),(e=t.apply(this,arguments)).containerRef=l.createRef(),e.animationStart=!1,e.destroyed=!1,e.onClick=function(t,n){var o,i,c=e.props,s=c.insertExtraNode;if(!(c.disabled||!t||v(t)||t.className.indexOf("-leave")>=0)){e.extraNode=document.createElement("div");var l=(0,a.Z)(e).extraNode,f=e.context.getPrefixCls;l.className="".concat(f(""),"-click-animating-node");var d=e.getAttributeName();if(t.setAttribute(d,"true"),n&&"#ffffff"!==n&&"rgb(255, 255, 255)"!==n&&h(n)&&!/rgba\((?:\d*, ){3}0\)/.test(n)&&"transparent"!==n){l.style.borderColor=n;var p=(null===(o=t.getRootNode)||void 0===o?void 0:o.call(t))||t.ownerDocument,m=p instanceof Document?p.body:null!==(i=p.firstChild)&&void 0!==i?i:p;r=(0,u.h)("\n [".concat(f(""),"-click-animating-without-extra-node='true']::after, .").concat(f(""),"-click-animating-node {\n --antd-wave-shadow-color: ").concat(n,";\n }"),"antd-wave",{csp:e.csp,attachTo:m})}s&&t.appendChild(l),["transition","animation"].forEach((function(n){t.addEventListener("".concat(n,"start"),e.onTransitionStart),t.addEventListener("".concat(n,"end"),e.onTransitionEnd)}))}},e.onTransitionStart=function(t){if(!e.destroyed){var n=e.containerRef.current;t&&t.target===n&&!e.animationStart&&e.resetEffect(n)}},e.onTransitionEnd=function(t){t&&"fadeEffect"===t.animationName&&e.resetEffect(t.target)},e.bindAnimationEvent=function(t){if(t&&t.getAttribute&&!t.getAttribute("disabled")&&!(t.className.indexOf("disabled")>=0)){var n=function(n){if("INPUT"!==n.target.tagName&&!v(n.target)){e.resetEffect(t);var r=getComputedStyle(t).getPropertyValue("border-top-color")||getComputedStyle(t).getPropertyValue("border-color")||getComputedStyle(t).getPropertyValue("background-color");e.clickWaveTimeoutId=window.setTimeout((function(){return e.onClick(t,r)}),0),d.Z.cancel(e.animationStartId),e.animationStart=!0,e.animationStartId=(0,d.Z)((function(){e.animationStart=!1}),10)}};return t.addEventListener("click",n,!0),{cancel:function(){t.removeEventListener("click",n,!0)}}}},e.renderWave=function(t){var n=t.csp,r=e.props.children;if(e.csp=n,!l.isValidElement(r))return r;var o=e.containerRef;return(0,f.Yr)(r)&&(o=(0,f.sQ)(r.ref,e.containerRef)),(0,m.Tm)(r,{ref:o})},e}return(0,i.Z)(n,[{key:"componentDidMount",value:function(){var e=this.containerRef.current;e&&1===e.nodeType&&(this.instance=this.bindAnimationEvent(e))}},{key:"componentWillUnmount",value:function(){this.instance&&this.instance.cancel(),this.clickWaveTimeoutId&&clearTimeout(this.clickWaveTimeoutId),this.destroyed=!0}},{key:"getAttributeName",value:function(){var e=this.context.getPrefixCls,t=this.props.insertExtraNode;return"".concat(e(""),t?"-click-animating":"-click-animating-without-extra-node")}},{key:"resetEffect",value:function(e){var t=this;if(e&&e!==this.extraNode&&e instanceof Element){var n=this.props.insertExtraNode,o=this.getAttributeName();e.setAttribute(o,"false"),r&&(r.innerHTML=""),n&&this.extraNode&&e.contains(this.extraNode)&&e.removeChild(this.extraNode),["transition","animation"].forEach((function(n){e.removeEventListener("".concat(n,"start"),t.onTransitionStart),e.removeEventListener("".concat(n,"end"),t.onTransitionEnd)}))}}},{key:"render",value:function(){return l.createElement(p.C,null,this.renderWave)}}]),n}(l.Component);g.contextType=p.E_},14670:function(e,t,n){"use strict";n.d(t,{Z:function(){return M}});var r=n(87462),o=n(4942),i=n(97685),a=n(67294),c=n(97937),s=n(8751),l=n(11475),u=n(45605),f=n(18429),d=n(89739),p=n(21640),m=n(78860),v=n(4340),h=n(93481),g=n(94184),y=n.n(g),b=n(59844),w=n(5467),x=n(15671),C=n(43144),E=n(60136),Z=n(3289),k=function(e){(0,E.Z)(n,e);var t=(0,Z.Z)(n);function n(){var e;return(0,x.Z)(this,n),(e=t.apply(this,arguments)).state={error:void 0,info:{componentStack:""}},e}return(0,C.Z)(n,[{key:"componentDidCatch",value:function(e,t){this.setState({error:e,info:t})}},{key:"render",value:function(){var e=this.props,t=e.message,n=e.description,r=e.children,o=this.state,i=o.error,c=o.info,s=c&&c.componentStack?c.componentStack:null,l="undefined"===typeof t?(i||"").toString():t,u="undefined"===typeof n?s:n;return i?a.createElement(M,{type:"error",message:l,description:a.createElement("pre",null,u)}):r}}]),n}(a.Component),N=n(96159),P=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},S={success:d.Z,info:m.Z,error:v.Z,warning:p.Z},O={success:s.Z,info:u.Z,error:f.Z,warning:l.Z},T=function(e){var t,n=e.description,s=e.prefixCls,l=e.message,u=e.banner,f=e.className,d=void 0===f?"":f,p=e.style,m=e.onMouseEnter,v=e.onMouseLeave,g=e.onClick,x=e.afterClose,C=e.showIcon,E=e.closable,Z=e.closeText,k=e.closeIcon,T=void 0===k?a.createElement(c.Z,null):k,M=e.action,A=P(e,["description","prefixCls","message","banner","className","style","onMouseEnter","onMouseLeave","onClick","afterClose","showIcon","closable","closeText","closeIcon","action"]),R=a.useState(!1),j=(0,i.Z)(R,2),F=j[0],I=j[1],L=a.useRef(),_=a.useContext(b.E_),D=_.getPrefixCls,V=_.direction,z=D("alert",s),H=function(e){var t;I(!0),null===(t=A.onClose)||void 0===t||t.call(A,e)},U=!!Z||E,B=function(){var e=A.type;return void 0!==e?e:u?"warning":"info"}(),q=!(!u||void 0!==C)||C,W=y()(z,"".concat(z,"-").concat(B),(t={},(0,o.Z)(t,"".concat(z,"-with-description"),!!n),(0,o.Z)(t,"".concat(z,"-no-icon"),!q),(0,o.Z)(t,"".concat(z,"-banner"),!!u),(0,o.Z)(t,"".concat(z,"-rtl"),"rtl"===V),t),d),$=(0,w.Z)(A);return a.createElement(h.Z,{visible:!F,motionName:"".concat(z,"-motion"),motionAppear:!1,motionEnter:!1,onLeaveStart:function(e){return{maxHeight:e.offsetHeight}},onLeaveEnd:x},(function(e){var t=e.className,i=e.style;return a.createElement("div",(0,r.Z)({ref:L,"data-show":!F,className:y()(W,t),style:(0,r.Z)((0,r.Z)({},p),i),onMouseEnter:m,onMouseLeave:v,onClick:g,role:"alert"},$),q?function(){var e=A.icon,t=(n?O:S)[B]||null;return e?(0,N.wm)(e,a.createElement("span",{className:"".concat(z,"-icon")},e),(function(){return{className:y()("".concat(z,"-icon"),(0,o.Z)({},e.props.className,e.props.className))}})):a.createElement(t,{className:"".concat(z,"-icon")})}():null,a.createElement("div",{className:"".concat(z,"-content")},l?a.createElement("div",{className:"".concat(z,"-message")},l):null,n?a.createElement("div",{className:"".concat(z,"-description")},n):null),M?a.createElement("div",{className:"".concat(z,"-action")},M):null,U?a.createElement("button",{type:"button",onClick:H,className:"".concat(z,"-close-icon"),tabIndex:0},Z?a.createElement("span",{className:"".concat(z,"-close-text")},Z):T):null)}))};T.ErrorBoundary=k;var M=T},8613:function(e,t,n){"use strict";n.d(t,{n:function(){return A},Z:function(){return F}});var r=n(87462),o=n(4942),i=n(97685),a=n(71002),c=n(67294),s=n(94184),l=n.n(s),u=n(98423),f=n(59844),d=n(43144),p=n(15671),m=(0,d.Z)((function e(t){(0,p.Z)(this,e),this.error=new Error("unreachable case: ".concat(JSON.stringify(t)))})),v=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},h=function(e){return c.createElement(f.C,null,(function(t){var n,i=t.getPrefixCls,a=t.direction,s=e.prefixCls,u=e.size,f=e.className,d=v(e,["prefixCls","size","className"]),p=i("btn-group",s),h="";switch(u){case"large":h="lg";break;case"small":h="sm";break;case"middle":case void 0:break;default:console.warn(new m(u).error)}var g=l()(p,(n={},(0,o.Z)(n,"".concat(p,"-").concat(h),h),(0,o.Z)(n,"".concat(p,"-rtl"),"rtl"===a),n),f);return c.createElement("div",(0,r.Z)({},d,{className:g}))}))},g=n(97202),y=n(93355),b=n(21687),w=n(97647),x=n(93481),C=n(50888),E=function(){return{width:0,opacity:0,transform:"scale(0)"}},Z=function(e){return{width:e.scrollWidth,opacity:1,transform:"scale(1)"}},k=function(e){var t=e.prefixCls,n=!!e.loading;return e.existIcon?c.createElement("span",{className:"".concat(t,"-loading-icon")},c.createElement(C.Z,null)):c.createElement(x.Z,{visible:n,motionName:"".concat(t,"-loading-icon-motion"),removeOnLeave:!0,onAppearStart:E,onAppearActive:Z,onEnterStart:E,onEnterActive:Z,onLeaveStart:Z,onLeaveActive:E},(function(e,n){var r=e.className,o=e.style;return c.createElement("span",{className:"".concat(t,"-loading-icon"),style:o,ref:n},c.createElement(C.Z,{className:r}))}))},N=n(96159),P=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},S=/^[\u4e00-\u9fa5]{2}$/,O=S.test.bind(S);function T(e){return"text"===e||"link"===e}function M(e,t){if(null!=e){var n,r=t?" ":"";return"string"!==typeof e&&"number"!==typeof e&&"string"===typeof e.type&&O(e.props.children)?(0,N.Tm)(e,{children:e.props.children.split("").join(r)}):"string"===typeof e?O(e)?c.createElement("span",null,e.split("").join(r)):c.createElement("span",null,e):(n=e,c.isValidElement(n)&&n.type===c.Fragment?c.createElement("span",null,e):e)}}(0,y.b)("default","primary","ghost","dashed","link","text"),(0,y.b)("default","circle","round"),(0,y.b)("submit","button","reset");function A(e){return"danger"===e?{danger:!0}:{type:e}}var R=function(e,t){var n,s=e.loading,d=void 0!==s&&s,p=e.prefixCls,m=e.type,v=e.danger,h=e.shape,y=void 0===h?"default":h,x=e.size,C=e.className,E=e.children,Z=e.icon,N=e.ghost,S=void 0!==N&&N,A=e.block,R=void 0!==A&&A,j=e.htmlType,F=void 0===j?"button":j,I=P(e,["loading","prefixCls","type","danger","shape","size","className","children","icon","ghost","block","htmlType"]),L=c.useContext(w.Z),_=c.useState(!!d),D=(0,i.Z)(_,2),V=D[0],z=D[1],H=c.useState(!1),U=(0,i.Z)(H,2),B=U[0],q=U[1],W=c.useContext(f.E_),$=W.getPrefixCls,K=W.autoInsertSpaceInButton,G=W.direction,Y=t||c.createRef(),X=c.useRef(),Q=function(){return 1===c.Children.count(E)&&!Z&&!T(m)},J="object"===(0,a.Z)(d)&&d.delay?d.delay||!0:!!d;c.useEffect((function(){clearTimeout(X.current),"number"===typeof J?X.current=window.setTimeout((function(){z(J)}),J):z(J)}),[J]),c.useEffect((function(){if(Y&&Y.current&&!1!==K){var e=Y.current.textContent;Q()&&O(e)?B||q(!0):B&&q(!1)}}),[Y]);var ee=function(t){var n,r=e.onClick,o=e.disabled;V||o?t.preventDefault():null===(n=r)||void 0===n||n(t)};(0,b.Z)(!("string"===typeof Z&&Z.length>2),"Button","`icon` is using ReactNode instead of string naming in v4. Please check `".concat(Z,"` at https://ant.design/components/icon")),(0,b.Z)(!(S&&T(m)),"Button","`link` or `text` button can't be a `ghost` button.");var te=$("btn",p),ne=!1!==K,re=x||L,oe=re&&{large:"lg",small:"sm",middle:void 0}[re]||"",ie=V?"loading":Z,ae=l()(te,(n={},(0,o.Z)(n,"".concat(te,"-").concat(m),m),(0,o.Z)(n,"".concat(te,"-").concat(y),"default"!==y&&y),(0,o.Z)(n,"".concat(te,"-").concat(oe),oe),(0,o.Z)(n,"".concat(te,"-icon-only"),!E&&0!==E&&!!ie),(0,o.Z)(n,"".concat(te,"-background-ghost"),S&&!T(m)),(0,o.Z)(n,"".concat(te,"-loading"),V),(0,o.Z)(n,"".concat(te,"-two-chinese-chars"),B&&ne),(0,o.Z)(n,"".concat(te,"-block"),R),(0,o.Z)(n,"".concat(te,"-dangerous"),!!v),(0,o.Z)(n,"".concat(te,"-rtl"),"rtl"===G),n),C),ce=Z&&!V?Z:c.createElement(k,{existIcon:!!Z,prefixCls:te,loading:!!V}),se=E||0===E?function(e,t){var n=!1,r=[];return c.Children.forEach(e,(function(e){var t=(0,a.Z)(e),o="string"===t||"number"===t;if(n&&o){var i=r.length-1,c=r[i];r[i]="".concat(c).concat(e)}else r.push(e);n=o})),c.Children.map(r,(function(e){return M(e,t)}))}(E,Q()&&ne):null,le=(0,u.Z)(I,["navigate"]);if(void 0!==le.href)return c.createElement("a",(0,r.Z)({},le,{className:ae,onClick:ee,ref:Y}),ce,se);var ue=c.createElement("button",(0,r.Z)({},I,{type:F,className:ae,onClick:ee,ref:Y}),ce,se);return T(m)?ue:c.createElement(g.Z,{disabled:!!V},ue)},j=c.forwardRef(R);j.displayName="Button",j.Group=h,j.__ANT_BUTTON=!0;var F=j},71577:function(e,t,n){"use strict";var r=n(8613);t.Z=r.Z},97647:function(e,t,n){"use strict";n.d(t,{q:function(){return i}});var r=n(67294),o=r.createContext(void 0),i=function(e){var t=e.children,n=e.size;return r.createElement(o.Consumer,null,(function(e){return r.createElement(o.Provider,{value:n||e},t)}))};t.Z=o},59844:function(e,t,n){"use strict";n.d(t,{C:function(){return s},E_:function(){return c},PG:function(){return l}});var r=n(87462),o=n(67294),i=n(62986),a=function(e){return o.createElement(s,null,(function(t){var n=(0,t.getPrefixCls)("empty");switch(e){case"Table":case"List":return o.createElement(i.Z,{image:i.Z.PRESENTED_IMAGE_SIMPLE});case"Select":case"TreeSelect":case"Cascader":case"Transfer":case"Mentions":return o.createElement(i.Z,{image:i.Z.PRESENTED_IMAGE_SIMPLE,className:"".concat(n,"-small")});default:return o.createElement(i.Z,null)}}))},c=o.createContext({getPrefixCls:function(e,t){return t||(e?"ant-".concat(e):"ant")},renderEmpty:a}),s=c.Consumer;function l(e){return function(t){var n=function(n){return o.createElement(s,null,(function(i){var a=e.prefixCls,c=(0,i.getPrefixCls)(a,n.prefixCls);return o.createElement(t,(0,r.Z)({},i,n,{prefixCls:c}))}))},i=t.constructor,a=i&&i.displayName||t.name||"Component";return n.displayName="withConfigConsumer(".concat(a,")"),n}}},49264:function(e,t,n){"use strict";n.d(t,{nf:function(){return Ee},ZP:function(){return Te},w6:function(){return Pe}});var r=n(87462),o=n(67294),i=n(63017),a=n(7866),c=n(56982),s=n(15671),l=n(43144),u=n(60136),f=n(3289),d=n(30845),p=n(21687),m=n(83008),v=n(67178),h="internalMark",g=function(e){(0,u.Z)(n,e);var t=(0,f.Z)(n);function n(e){var r;return(0,s.Z)(this,n),r=t.call(this,e),(0,m.f)(e.locale&&e.locale.Modal),(0,p.Z)(e._ANT_MARK__===h,"LocaleProvider","`LocaleProvider` is deprecated. Please use `locale` with `ConfigProvider` instead: http://u.ant.design/locale"),r}return(0,l.Z)(n,[{key:"componentDidMount",value:function(){(0,m.f)(this.props.locale&&this.props.locale.Modal)}},{key:"componentDidUpdate",value:function(e){var t=this.props.locale;e.locale!==t&&(0,m.f)(t&&t.Modal)}},{key:"componentWillUnmount",value:function(){(0,m.f)()}},{key:"render",value:function(){var e=this.props,t=e.locale,n=e.children,i=(0,d.default)((function(e){return(0,r.Z)((0,r.Z)({},e),{exist:!0})}))(t);return o.createElement(v.Z.Provider,{value:i},n)}}]),n}(o.Component);g.defaultProps={locale:{}};var y,b=n(23715),w=n(59844),x=n(97647),C=n(4942),E=n(94184),Z=n.n(E),k=n(91127),N=n(50888),P=n(21640),S=n(4340),O=n(89739),T=n(78860),M=n(97685),A=n(51550);var R,j,F,I=3,L=1,_="",D="move-up",V=!1,z=!1;function H(){return L++}function U(e,t){var n=e.prefixCls,r=e.getPopupContainer,o=Pe(),i=o.getPrefixCls,a=o.getRootPrefixCls,c=o.getIconPrefixCls,s=i("message",n||_),l=a(e.rootPrefixCls,s),u=c();if(y)t({prefixCls:s,rootPrefixCls:l,iconPrefixCls:u,instance:y});else{var f={prefixCls:s,transitionName:V?D:"".concat(l,"-").concat(D),style:{top:R},getContainer:j||r,maxCount:F};k.default.newInstance(f,(function(e){y?t({prefixCls:s,rootPrefixCls:l,iconPrefixCls:u,instance:y}):(y=e,t({prefixCls:s,rootPrefixCls:l,iconPrefixCls:u,instance:e}))}))}}var B={info:T.Z,success:O.Z,error:S.Z,warning:P.Z,loading:N.Z};function q(e,t,n){var r,i=void 0!==e.duration?e.duration:I,a=B[e.type],c=Z()("".concat(t,"-custom-content"),(r={},(0,C.Z)(r,"".concat(t,"-").concat(e.type),e.type),(0,C.Z)(r,"".concat(t,"-rtl"),!0===z),r));return{key:e.key,duration:i,style:e.style||{},className:e.className,content:o.createElement(Te,{iconPrefixCls:n},o.createElement("div",{className:c},e.icon||a&&o.createElement(a,null),o.createElement("span",null,e.content))),onClose:e.onClose,onClick:e.onClick}}var W={open:function(e){var t=e.key||H(),n=new Promise((function(n){var o=function(){return"function"===typeof e.onClose&&e.onClose(),n(!0)};U(e,(function(n){var i=n.prefixCls,a=n.iconPrefixCls;n.instance.notice(q((0,r.Z)((0,r.Z)({},e),{key:t,onClose:o}),i,a))}))})),o=function(){y&&y.removeNotice(t)};return o.then=function(e,t){return n.then(e,t)},o.promise=n,o},config:function(e){void 0!==e.top&&(R=e.top,y=null),void 0!==e.duration&&(I=e.duration),void 0!==e.prefixCls&&(_=e.prefixCls),void 0!==e.getContainer&&(j=e.getContainer),void 0!==e.transitionName&&(D=e.transitionName,y=null,V=!0),void 0!==e.maxCount&&(F=e.maxCount,y=null),void 0!==e.rtl&&(z=e.rtl)},destroy:function(e){if(y)if(e){(0,y.removeNotice)(e)}else{var t=y.destroy;t(),y=null}}};function $(e,t){e[t]=function(n,o,i){return function(e){return"[object Object]"===Object.prototype.toString.call(e)&&!!e.content}(n)?e.open((0,r.Z)((0,r.Z)({},n),{type:t})):("function"===typeof o&&(i=o,o=void 0),e.open({content:n,duration:o,type:t,onClose:i}))}}["success","info","warning","error","loading"].forEach((function(e){return $(W,e)})),W.warn=W.warning,W.useMessage=function(e,t){return function(){var n,i,a=null,c={add:function(e,t){null===a||void 0===a||a.component.add(e,t)}},s=(0,A.Z)(c),l=(0,M.Z)(s,2),u=l[0],f=l[1];var d=o.useRef({});return d.current.open=function(o){var c=o.prefixCls,s=n("message",c),l=n(),f=o.key||H(),d=new Promise((function(n){var c=function(){return"function"===typeof o.onClose&&o.onClose(),n(!0)};e((0,r.Z)((0,r.Z)({},o),{prefixCls:s,rootPrefixCls:l,getPopupContainer:i}),(function(e){var n=e.prefixCls,i=e.instance;a=i,u(t((0,r.Z)((0,r.Z)({},o),{key:f,onClose:c}),n))}))})),p=function(){a&&a.removeNotice(f)};return p.then=function(e,t){return d.then(e,t)},p.promise=d,p},["success","info","warning","error","loading"].forEach((function(e){return $(d.current,e)})),[d.current,o.createElement(w.C,{key:"holder"},(function(e){return n=e.getPrefixCls,i=e.getPopupContainer,f}))]}}(U,q);var K=W,G=(n(87757),n(97937)),Y=n(8751),X=n(18429),Q=n(11475),J=n(45605);var ee,te,ne,re={},oe=4.5,ie=24,ae=24,ce="",se="topRight",le=!1;function ue(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ie,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:ae;switch(e){case"topLeft":t={left:0,top:n,bottom:"auto"};break;case"topRight":t={right:0,top:n,bottom:"auto"};break;case"bottomLeft":t={left:0,top:"auto",bottom:r};break;default:t={right:0,top:"auto",bottom:r}}return t}function fe(e,t){var n=e.placement,r=void 0===n?se:n,o=e.top,i=e.bottom,a=e.getContainer,c=void 0===a?ee:a,s=e.prefixCls,l=Pe(),u=l.getPrefixCls,f=l.getIconPrefixCls,d=u("notification",s||ce),p=f(),m="".concat(d,"-").concat(r),v=re[m];if(v)Promise.resolve(v).then((function(e){t({prefixCls:"".concat(d,"-notice"),iconPrefixCls:p,instance:e})}));else{var h=Z()("".concat(d,"-").concat(r),(0,C.Z)({},"".concat(d,"-rtl"),!0===le));re[m]=new Promise((function(e){k.default.newInstance({prefixCls:d,className:h,style:ue(r,o,i),getContainer:c,maxCount:ne},(function(n){e(n),t({prefixCls:"".concat(d,"-notice"),iconPrefixCls:p,instance:n})}))}))}}var de={success:Y.Z,info:J.Z,error:X.Z,warning:Q.Z};function pe(e,t,n){var r=e.duration,i=e.icon,a=e.type,c=e.description,s=e.message,l=e.btn,u=e.onClose,f=e.onClick,d=e.key,p=e.style,m=e.className,v=e.closeIcon,h=void 0===v?te:v,g=void 0===r?oe:r,y=null;i?y=o.createElement("span",{className:"".concat(t,"-icon")},e.icon):a&&(y=o.createElement(de[a]||null,{className:"".concat(t,"-icon ").concat(t,"-icon-").concat(a)}));var b=o.createElement("span",{className:"".concat(t,"-close-x")},h||o.createElement(G.Z,{className:"".concat(t,"-close-icon")})),w=!c&&y?o.createElement("span",{className:"".concat(t,"-message-single-line-auto-margin")}):null;return{content:o.createElement(Te,{iconPrefixCls:n},o.createElement("div",{className:y?"".concat(t,"-with-icon"):"",role:"alert"},y,o.createElement("div",{className:"".concat(t,"-message")},w,s),o.createElement("div",{className:"".concat(t,"-description")},c),l?o.createElement("span",{className:"".concat(t,"-btn")},l):null)),duration:g,closable:!0,closeIcon:b,onClose:u,onClick:f,key:d,style:p||{},className:Z()(m,(0,C.Z)({},"".concat(t,"-").concat(a),!!a))}}var me={open:function(e){fe(e,(function(t){var n=t.prefixCls,r=t.iconPrefixCls;t.instance.notice(pe(e,n,r))}))},close:function(e){Object.keys(re).forEach((function(t){return Promise.resolve(re[t]).then((function(t){t.removeNotice(e)}))}))},config:function(e){var t=e.duration,n=e.placement,r=e.bottom,o=e.top,i=e.getContainer,a=e.closeIcon,c=e.prefixCls;void 0!==c&&(ce=c),void 0!==t&&(oe=t),void 0!==n?se=n:e.rtl&&(se="topLeft"),void 0!==r&&(ae=r),void 0!==o&&(ie=o),void 0!==i&&(ee=i),void 0!==a&&(te=a),void 0!==e.rtl&&(le=e.rtl),void 0!==e.maxCount&&(ne=e.maxCount)},destroy:function(){Object.keys(re).forEach((function(e){Promise.resolve(re[e]).then((function(e){e.destroy()})),delete re[e]}))}};["success","info","warning","error"].forEach((function(e){me[e]=function(t){return me.open((0,r.Z)((0,r.Z)({},t),{type:e}))}})),me.warn=me.warning,me.useNotification=function(e,t){return function(){var n,i=null,a={add:function(e,t){null===i||void 0===i||i.component.add(e,t)}},c=(0,A.Z)(a),s=(0,M.Z)(c,2),l=s[0],u=s[1];var f=o.useRef({});return f.current.open=function(o){var a=o.prefixCls,c=n("notification",a);e((0,r.Z)((0,r.Z)({},o),{prefixCls:c}),(function(e){var n=e.prefixCls,r=e.instance;i=r,l(t(o,n))}))},["success","info","warning","error"].forEach((function(e){f.current[e]=function(t){return f.current.open((0,r.Z)((0,r.Z)({},t),{type:e}))}})),[f.current,o.createElement(w.C,{key:"holder"},(function(e){return n=e.getPrefixCls,u}))]}}(fe,pe);var ve=me,he=n(44958),ge=n(10274),ye=n(92138),be="-ant-".concat(Date.now(),"-").concat(Math.random());var we,xe,Ce=n(6213),Ee=["getTargetContainer","getPopupContainer","rootPrefixCls","getPrefixCls","renderEmpty","csp","autoInsertSpaceInButton","locale","pageHeader"],Ze=["getTargetContainer","getPopupContainer","renderEmpty","pageHeader","input","form"];function ke(){return we||"ant"}function Ne(){return xe||"anticon"}var Pe=function(){return{getPrefixCls:function(e,t){return t||(e?"".concat(ke(),"-").concat(e):ke())},getIconPrefixCls:Ne,getRootPrefixCls:function(e,t){return e||(we||(t&&t.includes("-")?t.replace(/^(.*)-[^-]*$/,"$1"):ke()))}}},Se=function(e){var t,n,s,l=e.children,u=e.csp,f=e.autoInsertSpaceInButton,d=e.form,p=e.locale,m=e.componentSize,v=e.direction,y=e.space,b=e.virtual,C=e.dropdownMatchSelectWidth,E=e.legacyLocale,Z=e.parentContext,k=e.iconPrefixCls,N=o.useCallback((function(t,n){var r=e.prefixCls;if(n)return n;var o=r||Z.getPrefixCls("");return t?"".concat(o,"-").concat(t):o}),[Z.getPrefixCls,e.prefixCls]),P=(0,r.Z)((0,r.Z)({},Z),{csp:u,autoInsertSpaceInButton:f,locale:p||E,direction:v,space:y,virtual:b,dropdownMatchSelectWidth:C,getPrefixCls:N});Ze.forEach((function(t){var n=e[t];n&&(P[t]=n)}));var S=(0,c.Z)((function(){return P}),P,(function(e,t){var n=Object.keys(e),r=Object.keys(t);return n.length!==r.length||n.some((function(n){return e[n]!==t[n]}))})),O=o.useMemo((function(){return{prefixCls:k,csp:u}}),[k]),T=l,M=(0,r.Z)({},null===(t=Ce.Z.Form)||void 0===t?void 0:t.defaultValidateMessages);return p&&(M=(null===(n=p.Form)||void 0===n?void 0:n.defaultValidateMessages)||(null===(s=Ce.Z.Form)||void 0===s?void 0:s.defaultValidateMessages)||{}),d&&d.validateMessages&&(M=(0,r.Z)((0,r.Z)({},M),d.validateMessages)),Object.keys(M).length>0&&(T=o.createElement(a.FormProvider,{validateMessages:M},l)),p&&(T=o.createElement(g,{locale:p,_ANT_MARK__:h},T)),k&&(T=o.createElement(i.Z.Provider,{value:O},T)),m&&(T=o.createElement(x.q,{size:m},T)),o.createElement(w.E_.Provider,{value:S},T)},Oe=function(e){return o.useEffect((function(){e.direction&&(K.config({rtl:"rtl"===e.direction}),ve.config({rtl:"rtl"===e.direction}))}),[e.direction]),o.createElement(b.Z,null,(function(t,n,i){return o.createElement(w.C,null,(function(t){return o.createElement(Se,(0,r.Z)({parentContext:t,legacyLocale:i},e))}))}))};Oe.ConfigContext=w.E_,Oe.SizeContext=x.Z,Oe.config=function(e){var t=e.prefixCls,n=e.iconPrefixCls,r=e.theme;void 0!==t&&(we=t),void 0!==n&&(xe=n),r&&function(e,t){var n={},r=function(e,t){var n=e.clone();return(n=(null===t||void 0===t?void 0:t(n))||n).toRgbString()},o=function(e,t){var o=new ge.C(e),i=(0,ye.generate)(o.toRgbString());n["".concat(t,"-color")]=r(o),n["".concat(t,"-color-disabled")]=i[1],n["".concat(t,"-color-hover")]=i[4],n["".concat(t,"-color-active")]=i[7],n["".concat(t,"-color-outline")]=o.clone().setAlpha(.2).toRgbString(),n["".concat(t,"-color-deprecated-bg")]=i[1],n["".concat(t,"-color-deprecated-border")]=i[3]};if(t.primaryColor){o(t.primaryColor,"primary");var i=new ge.C(t.primaryColor),a=(0,ye.generate)(i.toRgbString());a.forEach((function(e,t){n["primary-".concat(t+1)]=e})),n["primary-color-deprecated-l-35"]=r(i,(function(e){return e.lighten(35)})),n["primary-color-deprecated-l-20"]=r(i,(function(e){return e.lighten(20)})),n["primary-color-deprecated-t-20"]=r(i,(function(e){return e.tint(20)})),n["primary-color-deprecated-t-50"]=r(i,(function(e){return e.tint(50)})),n["primary-color-deprecated-f-12"]=r(i,(function(e){return e.setAlpha(.12*e.getAlpha())}));var c=new ge.C(a[0]);n["primary-color-active-deprecated-f-30"]=r(c,(function(e){return e.setAlpha(.3*e.getAlpha())})),n["primary-color-active-deprecated-d-02"]=r(c,(function(e){return e.darken(2)}))}t.successColor&&o(t.successColor,"success"),t.warningColor&&o(t.warningColor,"warning"),t.errorColor&&o(t.errorColor,"error"),t.infoColor&&o(t.infoColor,"info");var s=Object.keys(n).map((function(t){return"--".concat(e,"-").concat(t,": ").concat(n[t],";")}));(0,he.h)("\n :root {\n ".concat(s.join("\n"),"\n }\n "),"".concat(be,"-dynamic-theme"))}(ke(),r)};var Te=Oe},62986:function(e,t,n){"use strict";n.d(t,{Z:function(){return h}});var r=n(87462),o=n(4942),i=n(67294),a=n(94184),c=n.n(a),s=n(59844),l=n(23715),u=function(){var e=(0,i.useContext(s.E_).getPrefixCls)("empty-img-default");return i.createElement("svg",{className:e,width:"184",height:"152",viewBox:"0 0 184 152",xmlns:"http://www.w3.org/2000/svg"},i.createElement("g",{fill:"none",fillRule:"evenodd"},i.createElement("g",{transform:"translate(24 31.67)"},i.createElement("ellipse",{className:"".concat(e,"-ellipse"),cx:"67.797",cy:"106.89",rx:"67.797",ry:"12.668"}),i.createElement("path",{className:"".concat(e,"-path-1"),d:"M122.034 69.674L98.109 40.229c-1.148-1.386-2.826-2.225-4.593-2.225h-51.44c-1.766 0-3.444.839-4.592 2.225L13.56 69.674v15.383h108.475V69.674z"}),i.createElement("path",{className:"".concat(e,"-path-2"),d:"M101.537 86.214L80.63 61.102c-1.001-1.207-2.507-1.867-4.048-1.867H31.724c-1.54 0-3.047.66-4.048 1.867L6.769 86.214v13.792h94.768V86.214z",transform:"translate(13.56)"}),i.createElement("path",{className:"".concat(e,"-path-3"),d:"M33.83 0h67.933a4 4 0 0 1 4 4v93.344a4 4 0 0 1-4 4H33.83a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4z"}),i.createElement("path",{className:"".concat(e,"-path-4"),d:"M42.678 9.953h50.237a2 2 0 0 1 2 2V36.91a2 2 0 0 1-2 2H42.678a2 2 0 0 1-2-2V11.953a2 2 0 0 1 2-2zM42.94 49.767h49.713a2.262 2.262 0 1 1 0 4.524H42.94a2.262 2.262 0 0 1 0-4.524zM42.94 61.53h49.713a2.262 2.262 0 1 1 0 4.525H42.94a2.262 2.262 0 0 1 0-4.525zM121.813 105.032c-.775 3.071-3.497 5.36-6.735 5.36H20.515c-3.238 0-5.96-2.29-6.734-5.36a7.309 7.309 0 0 1-.222-1.79V69.675h26.318c2.907 0 5.25 2.448 5.25 5.42v.04c0 2.971 2.37 5.37 5.277 5.37h34.785c2.907 0 5.277-2.421 5.277-5.393V75.1c0-2.972 2.343-5.426 5.25-5.426h26.318v33.569c0 .617-.077 1.216-.221 1.789z"})),i.createElement("path",{className:"".concat(e,"-path-5"),d:"M149.121 33.292l-6.83 2.65a1 1 0 0 1-1.317-1.23l1.937-6.207c-2.589-2.944-4.109-6.534-4.109-10.408C138.802 8.102 148.92 0 161.402 0 173.881 0 184 8.102 184 18.097c0 9.995-10.118 18.097-22.599 18.097-4.528 0-8.744-1.066-12.28-2.902z"}),i.createElement("g",{className:"".concat(e,"-g"),transform:"translate(149.65 15.383)"},i.createElement("ellipse",{cx:"20.654",cy:"3.167",rx:"2.849",ry:"2.815"}),i.createElement("path",{d:"M5.698 5.63H0L2.898.704zM9.259.704h4.985V5.63H9.259z"}))))},f=function(){var e=(0,i.useContext(s.E_).getPrefixCls)("empty-img-simple");return i.createElement("svg",{className:e,width:"64",height:"41",viewBox:"0 0 64 41",xmlns:"http://www.w3.org/2000/svg"},i.createElement("g",{transform:"translate(0 1)",fill:"none",fillRule:"evenodd"},i.createElement("ellipse",{className:"".concat(e,"-ellipse"),cx:"32",cy:"33",rx:"32",ry:"7"}),i.createElement("g",{className:"".concat(e,"-g"),fillRule:"nonzero"},i.createElement("path",{d:"M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z"}),i.createElement("path",{d:"M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z",className:"".concat(e,"-path")}))))},d=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},p=i.createElement(u,null),m=i.createElement(f,null),v=function(e){var t=e.className,n=e.prefixCls,a=e.image,u=void 0===a?p:a,f=e.description,v=e.children,h=e.imageStyle,g=d(e,["className","prefixCls","image","description","children","imageStyle"]),y=i.useContext(s.E_),b=y.getPrefixCls,w=y.direction;return i.createElement(l.Z,{componentName:"Empty"},(function(e){var a,s=b("empty",n),l="undefined"!==typeof f?f:e.description,d="string"===typeof l?l:"empty",p=null;return p="string"===typeof u?i.createElement("img",{alt:d,src:u}):u,i.createElement("div",(0,r.Z)({className:c()(s,(a={},(0,o.Z)(a,"".concat(s,"-normal"),u===m),(0,o.Z)(a,"".concat(s,"-rtl"),"rtl"===w),a),t)},g),i.createElement("div",{className:"".concat(s,"-image"),style:h},p),l&&i.createElement("div",{className:"".concat(s,"-description")},l),v&&i.createElement("div",{className:"".concat(s,"-footer")},v))}))};v.PRESENTED_IMAGE_DEFAULT=p,v.PRESENTED_IMAGE_SIMPLE=m;var h=v},69430:function(e,t,n){"use strict";var r=n(4942),o=n(15671),i=n(43144),a=n(60136),c=n(3289),s=n(67294),l=n(94184),u=n.n(l),f=n(4340),d=n(93355),p=n(96159),m=n(57737),v=(0,d.b)("text","input");function h(e){return!(!e.addonBefore&&!e.addonAfter)}var g=function(e){(0,a.Z)(n,e);var t=(0,c.Z)(n);function n(){var e;return(0,o.Z)(this,n),(e=t.apply(this,arguments)).containerRef=s.createRef(),e.onInputMouseUp=function(t){var n;if(null===(n=e.containerRef.current)||void 0===n?void 0:n.contains(t.target)){var r=e.props.triggerFocus;null===r||void 0===r||r()}},e}return(0,i.Z)(n,[{key:"renderClearIcon",value:function(e){var t,n=this.props,o=n.allowClear,i=n.value,a=n.disabled,c=n.readOnly,l=n.handleReset,d=n.suffix;if(!o)return null;var p=!a&&!c&&i,m="".concat(e,"-clear-icon");return s.createElement(f.Z,{onClick:l,onMouseDown:function(e){return e.preventDefault()},className:u()((t={},(0,r.Z)(t,"".concat(m,"-hidden"),!p),(0,r.Z)(t,"".concat(m,"-has-suffix"),!!d),t),m),role:"button"})}},{key:"renderSuffix",value:function(e){var t=this.props,n=t.suffix,r=t.allowClear;return n||r?s.createElement("span",{className:"".concat(e,"-suffix")},this.renderClearIcon(e),n):null}},{key:"renderLabeledIcon",value:function(e,t){var n,o=this.props,i=o.focused,a=o.value,c=o.prefix,l=o.className,f=o.size,d=o.suffix,v=o.disabled,g=o.allowClear,y=o.direction,b=o.style,w=o.readOnly,x=o.bordered;if(!(0,m.b)(this.props))return(0,p.Tm)(t,{value:a});var C=this.renderSuffix(e),E=c?s.createElement("span",{className:"".concat(e,"-prefix")},c):null,Z=u()("".concat(e,"-affix-wrapper"),(n={},(0,r.Z)(n,"".concat(e,"-affix-wrapper-focused"),i),(0,r.Z)(n,"".concat(e,"-affix-wrapper-disabled"),v),(0,r.Z)(n,"".concat(e,"-affix-wrapper-sm"),"small"===f),(0,r.Z)(n,"".concat(e,"-affix-wrapper-lg"),"large"===f),(0,r.Z)(n,"".concat(e,"-affix-wrapper-input-with-clear-btn"),d&&g&&a),(0,r.Z)(n,"".concat(e,"-affix-wrapper-rtl"),"rtl"===y),(0,r.Z)(n,"".concat(e,"-affix-wrapper-readonly"),w),(0,r.Z)(n,"".concat(e,"-affix-wrapper-borderless"),!x),(0,r.Z)(n,"".concat(l),!h(this.props)&&l),n));return s.createElement("span",{ref:this.containerRef,className:Z,style:b,onMouseUp:this.onInputMouseUp},E,(0,p.Tm)(t,{style:null,value:a,className:(0,m.X)(e,x,f,v)}),C)}},{key:"renderInputWithLabel",value:function(e,t){var n,o=this.props,i=o.addonBefore,a=o.addonAfter,c=o.style,l=o.size,f=o.className,d=o.direction;if(!h(this.props))return t;var m="".concat(e,"-group"),v="".concat(m,"-addon"),g=i?s.createElement("span",{className:v},i):null,y=a?s.createElement("span",{className:v},a):null,b=u()("".concat(e,"-wrapper"),m,(0,r.Z)({},"".concat(m,"-rtl"),"rtl"===d)),w=u()("".concat(e,"-group-wrapper"),(n={},(0,r.Z)(n,"".concat(e,"-group-wrapper-sm"),"small"===l),(0,r.Z)(n,"".concat(e,"-group-wrapper-lg"),"large"===l),(0,r.Z)(n,"".concat(e,"-group-wrapper-rtl"),"rtl"===d),n),f);return s.createElement("span",{className:w,style:c},s.createElement("span",{className:b},g,(0,p.Tm)(t,{style:null}),y))}},{key:"renderTextAreaWithClearIcon",value:function(e,t){var n,o=this.props,i=o.value,a=o.allowClear,c=o.className,l=o.style,f=o.direction,d=o.bordered;if(!a)return(0,p.Tm)(t,{value:i});var m=u()("".concat(e,"-affix-wrapper"),"".concat(e,"-affix-wrapper-textarea-with-clear-btn"),(n={},(0,r.Z)(n,"".concat(e,"-affix-wrapper-rtl"),"rtl"===f),(0,r.Z)(n,"".concat(e,"-affix-wrapper-borderless"),!d),(0,r.Z)(n,"".concat(c),!h(this.props)&&c),n));return s.createElement("span",{className:m,style:l},(0,p.Tm)(t,{style:null,value:i}),this.renderClearIcon(e))}},{key:"render",value:function(){var e=this.props,t=e.prefixCls,n=e.inputType,r=e.element;return n===v[0]?this.renderTextAreaWithClearIcon(t,r):this.renderInputWithLabel(t,this.renderLabeledIcon(t,r))}}]),n}(s.Component);t.Z=g},77749:function(e,t,n){"use strict";n.d(t,{D7:function(){return w},rJ:function(){return x},nH:function(){return C}});var r=n(71002),o=n(74902),i=n(87462),a=n(4942),c=n(15671),s=n(43144),l=n(60136),u=n(3289),f=n(67294),d=n(94184),p=n.n(d),m=n(98423),v=n(69430),h=n(59844),g=n(97647),y=n(21687),b=n(57737);function w(e){return"undefined"===typeof e||null===e?"":String(e)}function x(e,t,n,r){if(n){var o=t;if("click"===t.type){var i=e.cloneNode(!0);return o=Object.create(t,{target:{value:i},currentTarget:{value:i}}),i.value="",void n(o)}if(void 0!==r)return o=Object.create(t,{target:{value:e},currentTarget:{value:e}}),e.value=r,void n(o);n(o)}}function C(e,t){if(e){e.focus(t);var n=(t||{}).cursor;if(n){var r=e.value.length;switch(n){case"start":e.setSelectionRange(0,0);break;case"end":e.setSelectionRange(r,r);break;default:e.setSelectionRange(0,r)}}}}var E=function(e){(0,l.Z)(n,e);var t=(0,u.Z)(n);function n(e){var s;(0,c.Z)(this,n),(s=t.call(this,e)).direction="ltr",s.focus=function(e){C(s.input,e)},s.saveClearableInput=function(e){s.clearableInput=e},s.saveInput=function(e){s.input=e},s.onFocus=function(e){var t=s.props.onFocus;s.setState({focused:!0},s.clearPasswordValueAttribute),null===t||void 0===t||t(e)},s.onBlur=function(e){var t=s.props.onBlur;s.setState({focused:!1},s.clearPasswordValueAttribute),null===t||void 0===t||t(e)},s.handleReset=function(e){s.setValue("",(function(){s.focus()})),x(s.input,e,s.props.onChange)},s.renderInput=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=s.props,c=o.className,l=o.addonBefore,u=o.addonAfter,d=o.size,v=o.disabled,h=o.htmlSize,g=(0,m.Z)(s.props,["prefixCls","onPressEnter","addonBefore","addonAfter","prefix","suffix","allowClear","defaultValue","size","inputType","bordered","htmlSize"]);return f.createElement("input",(0,i.Z)({autoComplete:r.autoComplete},g,{onChange:s.handleChange,onFocus:s.onFocus,onBlur:s.onBlur,onKeyDown:s.handleKeyDown,className:p()((0,b.X)(e,n,d||t,v,s.direction),(0,a.Z)({},c,c&&!l&&!u)),ref:s.saveInput,size:h}))},s.clearPasswordValueAttribute=function(){s.removePasswordTimeout=setTimeout((function(){s.input&&"password"===s.input.getAttribute("type")&&s.input.hasAttribute("value")&&s.input.removeAttribute("value")}))},s.handleChange=function(e){s.setValue(e.target.value,s.clearPasswordValueAttribute),x(s.input,e,s.props.onChange)},s.handleKeyDown=function(e){var t=s.props,n=t.onPressEnter,r=t.onKeyDown;n&&13===e.keyCode&&n(e),null===r||void 0===r||r(e)},s.renderShowCountSuffix=function(e){var t=s.state.value,n=s.props,i=n.maxLength,c=n.suffix,l=n.showCount,u=Number(i)>0;if(c||l){var d=(0,o.Z)(w(t)).length,m=null;return m="object"===(0,r.Z)(l)?l.formatter({count:d,maxLength:i}):"".concat(d).concat(u?" / ".concat(i):""),f.createElement(f.Fragment,null,!!l&&f.createElement("span",{className:p()("".concat(e,"-show-count-suffix"),(0,a.Z)({},"".concat(e,"-show-count-has-suffix"),!!c))},m),c)}return null},s.renderComponent=function(e){var t=e.getPrefixCls,n=e.direction,r=e.input,o=s.state,a=o.value,c=o.focused,l=s.props,u=l.prefixCls,d=l.bordered,p=void 0===d||d,m=t("input",u);s.direction=n;var h=s.renderShowCountSuffix(m);return f.createElement(g.Z.Consumer,null,(function(e){return f.createElement(v.Z,(0,i.Z)({size:e},s.props,{prefixCls:m,inputType:"input",value:w(a),element:s.renderInput(m,e,p,r),handleReset:s.handleReset,ref:s.saveClearableInput,direction:n,focused:c,triggerFocus:s.focus,bordered:p,suffix:h}))}))};var l="undefined"===typeof e.value?e.defaultValue:e.value;return s.state={value:l,focused:!1,prevValue:e.value},s}return(0,s.Z)(n,[{key:"componentDidMount",value:function(){this.clearPasswordValueAttribute()}},{key:"componentDidUpdate",value:function(){}},{key:"getSnapshotBeforeUpdate",value:function(e){return(0,b.b)(e)!==(0,b.b)(this.props)&&(0,y.Z)(this.input!==document.activeElement,"Input","When Input is focused, dynamic add or remove prefix / suffix will make it lose focus caused by dom structure change. Read more: https://ant.design/components/input/#FAQ"),null}},{key:"componentWillUnmount",value:function(){this.removePasswordTimeout&&clearTimeout(this.removePasswordTimeout)}},{key:"blur",value:function(){this.input.blur()}},{key:"setSelectionRange",value:function(e,t,n){this.input.setSelectionRange(e,t,n)}},{key:"select",value:function(){this.input.select()}},{key:"setValue",value:function(e,t){void 0===this.props.value?this.setState({value:e},t):null===t||void 0===t||t()}},{key:"render",value:function(){return f.createElement(h.C,null,this.renderComponent)}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n=t.prevValue,r={prevValue:e.value};return void 0===e.value&&n===e.value||(r.value=e.value),e.disabled&&(r.focused=!1),r}}]),n}(f.Component);E.defaultProps={type:"text"},t.ZP=E},96330:function(e,t,n){"use strict";var r=n(71002),o=n(87462),i=n(4942),a=n(97685),c=n(74902),s=n(67294),l=n(57239),u=n(98423),f=n(94184),d=n.n(f),p=n(21770),m=n(69430),v=n(59844),h=n(77749),g=n(97647),y=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n};function b(e,t){return(0,c.Z)(e||"").slice(0,t).join("")}var w=s.forwardRef((function(e,t){var n,f=e.prefixCls,w=e.bordered,x=void 0===w||w,C=e.showCount,E=void 0!==C&&C,Z=e.maxLength,k=e.className,N=e.style,P=e.size,S=e.onCompositionStart,O=e.onCompositionEnd,T=e.onChange,M=y(e,["prefixCls","bordered","showCount","maxLength","className","style","size","onCompositionStart","onCompositionEnd","onChange"]),A=s.useContext(v.E_),R=A.getPrefixCls,j=A.direction,F=s.useContext(g.Z),I=s.useRef(null),L=s.useRef(null),_=s.useState(!1),D=(0,a.Z)(_,2),V=D[0],z=D[1],H=(0,p.Z)(M.defaultValue,{value:M.value}),U=(0,a.Z)(H,2),B=U[0],q=U[1],W=function(e,t){void 0===M.value&&(q(e),null===t||void 0===t||t())},$=Number(Z)>0,K=R("input",f);s.useImperativeHandle(t,(function(){var e;return{resizableTextArea:null===(e=I.current)||void 0===e?void 0:e.resizableTextArea,focus:function(e){var t,n;(0,h.nH)(null===(n=null===(t=I.current)||void 0===t?void 0:t.resizableTextArea)||void 0===n?void 0:n.textArea,e)},blur:function(){var e;return null===(e=I.current)||void 0===e?void 0:e.blur()}}}));var G=s.createElement(l.default,(0,o.Z)({},(0,u.Z)(M,["allowClear"]),{className:d()((n={},(0,i.Z)(n,"".concat(K,"-borderless"),!x),(0,i.Z)(n,k,k&&!E),(0,i.Z)(n,"".concat(K,"-sm"),"small"===F||"small"===P),(0,i.Z)(n,"".concat(K,"-lg"),"large"===F||"large"===P),n)),style:E?void 0:N,prefixCls:K,onCompositionStart:function(e){z(!0),null===S||void 0===S||S(e)},onChange:function(e){var t=e.target.value;!V&&$&&(t=b(t,Z)),W(t),(0,h.rJ)(e.currentTarget,e,T,t)},onCompositionEnd:function(e){z(!1);var t=e.currentTarget.value;$&&(t=b(t,Z)),t!==B&&(W(t),(0,h.rJ)(e.currentTarget,e,T,t)),null===O||void 0===O||O(e)},ref:I})),Y=(0,h.D7)(B);V||!$||null!==M.value&&void 0!==M.value||(Y=b(Y,Z));var X=s.createElement(m.Z,(0,o.Z)({},M,{prefixCls:K,direction:j,inputType:"text",value:Y,element:G,handleReset:function(e){var t,n;W("",(function(){var e;null===(e=I.current)||void 0===e||e.focus()})),(0,h.rJ)(null===(n=null===(t=I.current)||void 0===t?void 0:t.resizableTextArea)||void 0===n?void 0:n.textArea,e,T)},ref:L,bordered:x,style:E?void 0:N}));if(E){var Q=(0,c.Z)(Y).length,J="";return J="object"===(0,r.Z)(E)?E.formatter({count:Q,maxLength:Z}):"".concat(Q).concat($?" / ".concat(Z):""),s.createElement("div",{className:d()("".concat(K,"-textarea"),(0,i.Z)({},"".concat(K,"-textarea-rtl"),"rtl"===j),"".concat(K,"-textarea-show-count"),k),style:N,"data-count":J},X)}return X}));t.Z=w},69677:function(e,t,n){"use strict";n.d(t,{Z:function(){return S}});var r=n(77749),o=n(4942),i=n(67294),a=n(94184),c=n.n(a),s=n(59844),l=function(e){return i.createElement(s.C,null,(function(t){var n,r=t.getPrefixCls,a=t.direction,s=e.prefixCls,l=e.className,u=void 0===l?"":l,f=r("input-group",s),d=c()(f,(n={},(0,o.Z)(n,"".concat(f,"-lg"),"large"===e.size),(0,o.Z)(n,"".concat(f,"-sm"),"small"===e.size),(0,o.Z)(n,"".concat(f,"-compact"),e.compact),(0,o.Z)(n,"".concat(f,"-rtl"),"rtl"===a),n),u);return i.createElement("span",{className:d,style:e.style,onMouseEnter:e.onMouseEnter,onMouseLeave:e.onMouseLeave,onFocus:e.onFocus,onBlur:e.onBlur},e.children)}))},u=n(87462),f=n(42550),d=n(68795),p=n(71577),m=n(97647),v=n(96159),h=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},g=i.forwardRef((function(e,t){var n,a,l=e.prefixCls,g=e.inputPrefixCls,y=e.className,b=e.size,w=e.suffix,x=e.enterButton,C=void 0!==x&&x,E=e.addonAfter,Z=e.loading,k=e.disabled,N=e.onSearch,P=e.onChange,S=h(e,["prefixCls","inputPrefixCls","className","size","suffix","enterButton","addonAfter","loading","disabled","onSearch","onChange"]),O=i.useContext(s.E_),T=O.getPrefixCls,M=O.direction,A=i.useContext(m.Z),R=b||A,j=i.useRef(null),F=function(e){var t;document.activeElement===(null===(t=j.current)||void 0===t?void 0:t.input)&&e.preventDefault()},I=function(e){var t;N&&N(null===(t=j.current)||void 0===t?void 0:t.input.value,e)},L=T("input-search",l),_=T("input",g),D="boolean"===typeof C?i.createElement(d.Z,null):null,V="".concat(L,"-button"),z=C||{},H=z.type&&!0===z.type.__ANT_BUTTON;a=H||"button"===z.type?(0,v.Tm)(z,(0,u.Z)({onMouseDown:F,onClick:function(e){var t,n;null===(n=null===(t=null===z||void 0===z?void 0:z.props)||void 0===t?void 0:t.onClick)||void 0===n||n.call(t,e),I(e)},key:"enterButton"},H?{className:V,size:R}:{})):i.createElement(p.Z,{className:V,type:C?"primary":void 0,size:R,disabled:k,key:"enterButton",onMouseDown:F,onClick:I,loading:Z,icon:D},C),E&&(a=[a,(0,v.Tm)(E,{key:"addonAfter"})]);var U=c()(L,(n={},(0,o.Z)(n,"".concat(L,"-rtl"),"rtl"===M),(0,o.Z)(n,"".concat(L,"-").concat(R),!!R),(0,o.Z)(n,"".concat(L,"-with-button"),!!C),n),y);return i.createElement(r.ZP,(0,u.Z)({ref:(0,f.sQ)(j,t),onPressEnter:I},S,{size:R,prefixCls:_,addonAfter:a,suffix:w,onChange:function(e){e&&e.target&&"click"===e.type&&N&&N(e.target.value,e),P&&P(e)},className:U,disabled:k}))}));g.displayName="Search";var y=g,b=n(96330),w=n(97685),x=n(98423),C=n(99611),E=n(90420),Z=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},k={click:"onClick",hover:"onMouseOver"},N=i.forwardRef((function(e,t){var n=(0,i.useState)(!1),a=(0,w.Z)(n,2),l=a[0],f=a[1],d=function(){e.disabled||f(!l)},p=function(n){var a=n.getPrefixCls,s=e.className,f=e.prefixCls,p=e.inputPrefixCls,m=e.size,v=e.visibilityToggle,h=Z(e,["className","prefixCls","inputPrefixCls","size","visibilityToggle"]),g=a("input",p),y=a("input-password",f),b=v&&function(t){var n,r=e.action,a=e.iconRender,c=k[r]||"",s=(void 0===a?function(){return null}:a)(l),u=(n={},(0,o.Z)(n,c,d),(0,o.Z)(n,"className","".concat(t,"-icon")),(0,o.Z)(n,"key","passwordIcon"),(0,o.Z)(n,"onMouseDown",(function(e){e.preventDefault()})),(0,o.Z)(n,"onMouseUp",(function(e){e.preventDefault()})),n);return i.cloneElement(i.isValidElement(s)?s:i.createElement("span",null,s),u)}(y),w=c()(y,s,(0,o.Z)({},"".concat(y,"-").concat(m),!!m)),C=(0,u.Z)((0,u.Z)({},(0,x.Z)(h,["suffix","iconRender"])),{type:l?"text":"password",className:w,prefixCls:g,suffix:b});return m&&(C.size=m),i.createElement(r.ZP,(0,u.Z)({ref:t},C))};return i.createElement(s.C,null,p)}));N.defaultProps={action:"click",visibilityToggle:!0,iconRender:function(e){return e?i.createElement(C.Z,null):i.createElement(E.Z,null)}},N.displayName="Password";var P=N;r.ZP.Group=l,r.ZP.Search=y,r.ZP.TextArea=b.Z,r.ZP.Password=P;var S=r.ZP},57737:function(e,t,n){"use strict";n.d(t,{X:function(){return a},b:function(){return c}});var r=n(4942),o=n(94184),i=n.n(o);function a(e,t,n,o,a){var c;return i()(e,(c={},(0,r.Z)(c,"".concat(e,"-sm"),"small"===n),(0,r.Z)(c,"".concat(e,"-lg"),"large"===n),(0,r.Z)(c,"".concat(e,"-disabled"),o),(0,r.Z)(c,"".concat(e,"-rtl"),"rtl"===a),(0,r.Z)(c,"".concat(e,"-borderless"),!t),c))}function c(e){return!!(e.prefix||e.suffix||e.allowClear)}},7293:function(e,t,n){"use strict";n.d(t,{D:function(){return C},Z:function(){return k}});var r=n(4942),o=n(87462),i=n(97685),a=n(67294),c=n(94184),s=n.n(c),l=n(98423),u=n(1413),f={icon:{tag:"svg",attrs:{viewBox:"0 0 1024 1024",focusable:"false"},children:[{tag:"path",attrs:{d:"M912 192H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM104 228a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0z"}}]},name:"bars",theme:"outlined"},d=n(42135),p=function(e,t){return a.createElement(d.Z,(0,u.Z)((0,u.Z)({},e),{},{ref:t,icon:f}))};p.displayName="BarsOutlined";var m=a.forwardRef(p),v=n(18073),h=n(6171),g=n(2897),y=n(59844),b=function(e){return!isNaN(parseFloat(e))&&isFinite(e)},w=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},x={xs:"479.98px",sm:"575.98px",md:"767.98px",lg:"991.98px",xl:"1199.98px",xxl:"1599.98px"},C=a.createContext({}),E=function(){var e=0;return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return e+=1,"".concat(t).concat(e)}}(),Z=a.forwardRef((function(e,t){var n=e.prefixCls,c=e.className,u=e.trigger,f=e.children,d=e.defaultCollapsed,p=void 0!==d&&d,Z=e.theme,k=void 0===Z?"dark":Z,N=e.style,P=void 0===N?{}:N,S=e.collapsible,O=void 0!==S&&S,T=e.reverseArrow,M=void 0!==T&&T,A=e.width,R=void 0===A?200:A,j=e.collapsedWidth,F=void 0===j?80:j,I=e.zeroWidthTriggerStyle,L=e.breakpoint,_=e.onCollapse,D=e.onBreakpoint,V=w(e,["prefixCls","className","trigger","children","defaultCollapsed","theme","style","collapsible","reverseArrow","width","collapsedWidth","zeroWidthTriggerStyle","breakpoint","onCollapse","onBreakpoint"]),z=(0,a.useContext)(g.Gs).siderHook,H=(0,a.useState)("collapsed"in V?V.collapsed:p),U=(0,i.Z)(H,2),B=U[0],q=U[1],W=(0,a.useState)(!1),$=(0,i.Z)(W,2),K=$[0],G=$[1];(0,a.useEffect)((function(){"collapsed"in V&&q(V.collapsed)}),[V.collapsed]);var Y=function(e,t){"collapsed"in V||q(e),null===_||void 0===_||_(e,t)},X=(0,a.useRef)();X.current=function(e){G(e.matches),null===D||void 0===D||D(e.matches),B!==e.matches&&Y(e.matches,"responsive")},(0,a.useEffect)((function(){function e(e){return X.current(e)}var t;if("undefined"!==typeof window){var n=window.matchMedia;if(n&&L&&L in x){t=n("(max-width: ".concat(x[L],")"));try{t.addEventListener("change",e)}catch(r){t.addListener(e)}e(t)}}return function(){try{null===t||void 0===t||t.removeEventListener("change",e)}catch(r){null===t||void 0===t||t.removeListener(e)}}}),[]),(0,a.useEffect)((function(){var e=E("ant-sider-");return z.addSider(e),function(){return z.removeSider(e)}}),[]);var Q=function(){Y(!B,"clickTrigger")},J=(0,a.useContext)(y.E_).getPrefixCls,ee=a.useMemo((function(){return{siderCollapsed:B}}),[B]);return a.createElement(C.Provider,{value:ee},function(){var e,i=J("layout-sider",n),d=(0,l.Z)(V,["collapsed"]),p=B?F:R,g=b(p)?"".concat(p,"px"):String(p),y=0===parseFloat(String(F||0))?a.createElement("span",{onClick:Q,className:s()("".concat(i,"-zero-width-trigger"),"".concat(i,"-zero-width-trigger-").concat(M?"right":"left")),style:I},u||a.createElement(m,null)):null,w={expanded:M?a.createElement(v.Z,null):a.createElement(h.Z,null),collapsed:M?a.createElement(h.Z,null):a.createElement(v.Z,null)}[B?"collapsed":"expanded"],x=null!==u?y||a.createElement("div",{className:"".concat(i,"-trigger"),onClick:Q,style:{width:g}},u||w):null,C=(0,o.Z)((0,o.Z)({},P),{flex:"0 0 ".concat(g),maxWidth:g,minWidth:g,width:g}),E=s()(i,"".concat(i,"-").concat(k),(e={},(0,r.Z)(e,"".concat(i,"-collapsed"),!!B),(0,r.Z)(e,"".concat(i,"-has-trigger"),O&&null!==u&&!y),(0,r.Z)(e,"".concat(i,"-below"),!!K),(0,r.Z)(e,"".concat(i,"-zero-width"),0===parseFloat(g)),e),c);return a.createElement("aside",(0,o.Z)({className:E},d,{style:C,ref:t}),a.createElement("div",{className:"".concat(i,"-children")},f),O||K&&y?x:null)}())}));Z.displayName="Sider";var k=Z},2897:function(e,t,n){"use strict";n.d(t,{Gs:function(){return d},h4:function(){return h},$_:function(){return g},VY:function(){return y}});var r=n(74902),o=n(4942),i=n(97685),a=n(87462),c=n(67294),s=n(94184),l=n.n(s),u=n(59844),f=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},d=c.createContext({siderHook:{addSider:function(){return null},removeSider:function(){return null}}});function p(e){var t=e.suffixCls,n=e.tagName,r=e.displayName;return function(e){var o=function(r){var o=c.useContext(u.E_).getPrefixCls,i=r.prefixCls,s=o(t,i);return c.createElement(e,(0,a.Z)({prefixCls:s,tagName:n},r))};return o.displayName=r,o}}var m=function(e){var t=e.prefixCls,n=e.className,r=e.children,o=e.tagName,i=f(e,["prefixCls","className","children","tagName"]),s=l()(t,n);return c.createElement(o,(0,a.Z)({className:s},i),r)},v=p({suffixCls:"layout",tagName:"section",displayName:"Layout"})((function(e){var t,n=c.useContext(u.E_).direction,s=c.useState([]),p=(0,i.Z)(s,2),m=p[0],v=p[1],h=e.prefixCls,g=e.className,y=e.children,b=e.hasSider,w=e.tagName,x=f(e,["prefixCls","className","children","hasSider","tagName"]),C=l()(h,(t={},(0,o.Z)(t,"".concat(h,"-has-sider"),"boolean"===typeof b?b:m.length>0),(0,o.Z)(t,"".concat(h,"-rtl"),"rtl"===n),t),g),E=c.useMemo((function(){return{siderHook:{addSider:function(e){v((function(t){return[].concat((0,r.Z)(t),[e])}))},removeSider:function(e){v((function(t){return t.filter((function(t){return t!==e}))}))}}}}),[]);return c.createElement(d.Provider,{value:E},c.createElement(w,(0,a.Z)({className:C},x),y))})),h=p({suffixCls:"layout-header",tagName:"header",displayName:"Header"})(m),g=p({suffixCls:"layout-footer",tagName:"footer",displayName:"Footer"})(m),y=p({suffixCls:"layout-content",tagName:"main",displayName:"Content"})(m);t.ZP=v},23715:function(e,t,n){"use strict";n.d(t,{Z:function(){return f}});var r=n(87462),o=n(15671),i=n(43144),a=n(60136),c=n(3289),s=n(67294),l=n(6213).Z,u=n(67178),f=function(e){(0,a.Z)(n,e);var t=(0,c.Z)(n);function n(){return(0,o.Z)(this,n),t.apply(this,arguments)}return(0,i.Z)(n,[{key:"getLocale",value:function(){var e=this.props,t=e.componentName,n=e.defaultLocale||l[null!==t&&void 0!==t?t:"global"],o=this.context,i=t&&o?o[t]:{};return(0,r.Z)((0,r.Z)({},n instanceof Function?n():n),i||{})}},{key:"getLocaleCode",value:function(){var e=this.context,t=e&&e.locale;return e&&e.exist&&!t?l.locale:t}},{key:"render",value:function(){return this.props.children(this.getLocale(),this.getLocaleCode(),this.context)}}]),n}(s.Component);f.defaultProps={componentName:"global"},f.contextType=u.Z},67178:function(e,t,n){"use strict";var r=(0,n(67294).createContext)(void 0);t.Z=r},6213:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(62906),o=n(87462),i={locale:"en_US",today:"Today",now:"Now",backToToday:"Back to today",ok:"Ok",clear:"Clear",month:"Month",year:"Year",timeSelect:"select time",dateSelect:"select date",weekSelect:"Choose a week",monthSelect:"Choose a month",yearSelect:"Choose a year",decadeSelect:"Choose a decade",yearFormat:"YYYY",dateFormat:"M/D/YYYY",dayFormat:"D",dateTimeFormat:"M/D/YYYY HH:mm:ss",monthBeforeYear:!0,previousMonth:"Previous month (PageUp)",nextMonth:"Next month (PageDown)",previousYear:"Last year (Control + left)",nextYear:"Next year (Control + right)",previousDecade:"Last decade",nextDecade:"Next decade",previousCentury:"Last century",nextCentury:"Next century"},a={placeholder:"Select time",rangePlaceholder:["Start time","End time"]},c={lang:(0,o.Z)({placeholder:"Select date",yearPlaceholder:"Select year",quarterPlaceholder:"Select quarter",monthPlaceholder:"Select month",weekPlaceholder:"Select week",rangePlaceholder:["Start date","End date"],rangeYearPlaceholder:["Start year","End year"],rangeMonthPlaceholder:["Start month","End month"],rangeWeekPlaceholder:["Start week","End week"]},i),timePickerLocale:(0,o.Z)({},a)},s=c,l="${label} is not a valid ${type}",u={locale:"en",Pagination:r.Z,DatePicker:c,TimePicker:a,Calendar:s,global:{placeholder:"Please select"},Table:{filterTitle:"Filter menu",filterConfirm:"OK",filterReset:"Reset",filterEmptyText:"No filters",filterCheckall:"Select all items",filterSearchPlaceholder:"Search in filters",emptyText:"No data",selectAll:"Select current page",selectInvert:"Invert current page",selectNone:"Clear all data",selectionAll:"Select all data",sortTitle:"Sort",expand:"Expand row",collapse:"Collapse row",triggerDesc:"Click to sort descending",triggerAsc:"Click to sort ascending",cancelSort:"Click to cancel sorting"},Modal:{okText:"OK",cancelText:"Cancel",justOkText:"OK"},Popconfirm:{okText:"OK",cancelText:"Cancel"},Transfer:{titles:["",""],searchPlaceholder:"Search here",itemUnit:"item",itemsUnit:"items",remove:"Remove",selectCurrent:"Select current page",removeCurrent:"Remove current page",selectAll:"Select all data",removeAll:"Remove all data",selectInvert:"Invert current page"},Upload:{uploading:"Uploading...",removeFile:"Remove file",uploadError:"Upload error",previewFile:"Preview file",downloadFile:"Download file"},Empty:{description:"No Data"},Icon:{icon:"icon"},Text:{edit:"Edit",copy:"Copy",copied:"Copied",expand:"Expand"},PageHeader:{back:"Back"},Form:{optional:"(optional)",defaultValidateMessages:{default:"Field validation error for ${label}",required:"Please enter ${label}",enum:"${label} must be one of [${enum}]",whitespace:"${label} cannot be a blank character",date:{format:"${label} date format is invalid",parse:"${label} cannot be converted to a date",invalid:"${label} is an invalid date"},types:{string:l,method:l,array:l,object:l,number:l,date:l,boolean:l,integer:l,float:l,regexp:l,email:l,url:l,hex:l},string:{len:"${label} must be ${len} characters",min:"${label} must be at least ${min} characters",max:"${label} must be up to ${max} characters",range:"${label} must be between ${min}-${max} characters"},number:{len:"${label} must be equal to ${len}",min:"${label} must be minimum ${min}",max:"${label} must be maximum ${max}",range:"${label} must be between ${min}-${max}"},array:{len:"Must be ${len} ${label}",min:"At least ${min} ${label}",max:"At most ${max} ${label}",range:"The amount of ${label} must be between ${min}-${max}"},pattern:{mismatch:"${label} does not match the pattern ${pattern}"}}},Image:{preview:"Preview"}}},68157:function(e,t,n){"use strict";n.d(t,{Z:function(){return A}});var r=n(87462),o=n(15671),i=n(43144),a=n(60136),c=n(3289),s=n(67294),l=n(33203),u=n(94184),f=n.n(u),d=n(98423),p=n(89705),m=n(30845),v=(0,s.createContext)({prefixCls:"",firstLevel:!0,inlineCollapsed:!1}),h=n(96159);var g=function(e){var t,n,o=e.popupClassName,i=e.icon,a=e.title,c=s.useContext(v),u=c.prefixCls,p=c.inlineCollapsed,m=c.antdMenuTheme,g=(0,l.Xl)();if(i){var y=(0,h.l$)(a)&&"span"===a.type;n=s.createElement(s.Fragment,null,(0,h.Tm)(i,{className:f()((0,h.l$)(i)?null===(t=i.props)||void 0===t?void 0:t.className:"","".concat(u,"-item-icon"))}),y?a:s.createElement("span",{className:"".concat(u,"-title-content")},a))}else n=p&&!g.length&&a&&"string"===typeof a?s.createElement("div",{className:"".concat(u,"-inline-collapsed-noicon")},a.charAt(0)):s.createElement("span",{className:"".concat(u,"-title-content")},a);var b=s.useMemo((function(){return(0,r.Z)((0,r.Z)({},c),{firstLevel:!1})}),[c]);return s.createElement(v.Provider,{value:b},s.createElement(l.Wd,(0,r.Z)({},(0,d.Z)(e,["icon"]),{title:n,popupClassName:f()(u,"".concat(u,"-").concat(m),o)})))},y=n(4942),b=n(50344),w=n(56266),x=n(7293),C=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},E=function(e){(0,a.Z)(n,e);var t=(0,c.Z)(n);function n(){var e;return(0,o.Z)(this,n),(e=t.apply(this,arguments)).renderItem=function(t){var n,o,i=t.siderCollapsed,a=e.context,c=a.prefixCls,u=a.firstLevel,d=a.inlineCollapsed,p=a.direction,m=a.disableMenuItemTitleTooltip,v=e.props,g=v.className,x=v.children,E=e.props,Z=E.title,k=E.icon,N=E.danger,P=C(E,["title","icon","danger"]),S=Z;"undefined"===typeof Z?S=u?x:"":!1===Z&&(S="");var O={title:S};i||d||(O.title=null,O.visible=!1);var T=(0,b.Z)(x).length,M=s.createElement(l.ck,(0,r.Z)({},P,{className:f()((n={},(0,y.Z)(n,"".concat(c,"-item-danger"),N),(0,y.Z)(n,"".concat(c,"-item-only-child"),1===(k?T+1:T)),n),g),title:"string"===typeof Z?Z:void 0}),(0,h.Tm)(k,{className:f()((0,h.l$)(k)?null===(o=k.props)||void 0===o?void 0:o.className:"","".concat(c,"-item-icon"))}),e.renderItemChildren(d));return m||(M=s.createElement(w.Z,(0,r.Z)({},O,{placement:"rtl"===p?"left":"right",overlayClassName:"".concat(c,"-inline-collapsed-tooltip")}),M)),M},e}return(0,i.Z)(n,[{key:"renderItemChildren",value:function(e){var t=this.context,n=t.prefixCls,r=t.firstLevel,o=this.props,i=o.icon,a=o.children,c=s.createElement("span",{className:"".concat(n,"-title-content")},a);return(!i||(0,h.l$)(a)&&"span"===a.type)&&a&&e&&r&&"string"===typeof a?s.createElement("div",{className:"".concat(n,"-inline-collapsed-noicon")},a.charAt(0)):c}},{key:"render",value:function(){return s.createElement(x.D.Consumer,null,this.renderItem)}}]),n}(s.Component);E.contextType=v;var Z=n(59844),k=n(21687),N=n(33603),P=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},S=function(e){var t=e.prefixCls,n=e.className,o=e.dashed,i=P(e,["prefixCls","className","dashed"]),a=(0,s.useContext(Z.E_).getPrefixCls)("menu",t),c=f()((0,y.Z)({},"".concat(a,"-item-divider-dashed"),!!o),n);return s.createElement(l.iz,(0,r.Z)({className:c},i))},O=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},T=function(e){(0,a.Z)(n,e);var t=(0,c.Z)(n);function n(e){var i;return(0,o.Z)(this,n),(i=t.call(this,e)).renderMenu=function(e){var t=e.getPopupContainer,n=e.getPrefixCls,o=e.direction,a=n(),c=i.props,u=c.prefixCls,g=c.className,y=c.theme,b=c.expandIcon,w=c._internalDisableMenuItemTitleTooltip,x=O(c,["prefixCls","className","theme","expandIcon","_internalDisableMenuItemTitleTooltip"]),C=(0,d.Z)(x,["siderCollapsed","collapsedWidth"]),E=i.getInlineCollapsed(),Z={horizontal:{motionName:"".concat(a,"-slide-up")},inline:N.Z,other:{motionName:"".concat(a,"-zoom-big")}},k=n("menu",u),P=f()("".concat(k,"-").concat(y),g),S=(0,m.default)((function(e,t,n,r,o){return{prefixCls:e,inlineCollapsed:t||!1,antdMenuTheme:n,direction:r,firstLevel:!0,disableMenuItemTitleTooltip:o}}))(k,E,y,o,w);return s.createElement(v.Provider,{value:S},s.createElement(l.ZP,(0,r.Z)({getPopupContainer:t,overflowedIndicator:s.createElement(p.Z,null),overflowedIndicatorPopupClassName:"".concat(k,"-").concat(y)},C,{inlineCollapsed:E,className:P,prefixCls:k,direction:o,defaultMotions:Z,expandIcon:(0,h.Tm)(b,{className:"".concat(k,"-submenu-expand-icon")})})))},(0,k.Z)(!("inlineCollapsed"in e&&"inline"!==e.mode),"Menu","`inlineCollapsed` should only be used when `mode` is inline."),(0,k.Z)(!(void 0!==e.siderCollapsed&&"inlineCollapsed"in e),"Menu","`inlineCollapsed` not control Menu under Sider. Should set `collapsed` on Sider instead."),i}return(0,i.Z)(n,[{key:"getInlineCollapsed",value:function(){var e=this.props,t=e.inlineCollapsed,n=e.siderCollapsed;return void 0!==n?n:t}},{key:"render",value:function(){return s.createElement(Z.C,null,this.renderMenu)}}]),n}(s.Component);T.defaultProps={theme:"light"};var M=function(e){(0,a.Z)(n,e);var t=(0,c.Z)(n);function n(){return(0,o.Z)(this,n),t.apply(this,arguments)}return(0,i.Z)(n,[{key:"render",value:function(){var e=this;return s.createElement(x.D.Consumer,null,(function(t){return s.createElement(T,(0,r.Z)({},e.props,t))}))}}]),n}(s.Component);M.Divider=S,M.Item=E,M.SubMenu=g,M.ItemGroup=l.BW;var A=M},56516:function(e,t,n){"use strict";n.d(t,{Z:function(){return Ae}});var r=n(4942),o=n(87462),i=n(67294),a=n(97685),c=n(15671),s=n(43144),l=n(60136),u=n(3289),f=n(71002),d=n(75164),p=n(59015),m=n(98924),v=n(74204);var h=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e)return{};var n=t.element,r=void 0===n?document.body:n,o={},i=Object.keys(e);return i.forEach((function(e){o[e]=r.style[e]})),i.forEach((function(t){r.style[t]=e[t]})),o};var g={},y=function(e){if(document.body.scrollHeight>(window.innerHeight||document.documentElement.clientHeight)&&window.innerWidth>document.body.offsetWidth||e){var t="ant-scrolling-effect",n=new RegExp("".concat(t),"g"),r=document.body.className;if(e){if(!n.test(r))return;return h(g),g={},void(document.body.className=r.replace(n,"").trim())}var o=(0,v.Z)();if(o&&(g=h({position:"relative",width:"calc(100% - ".concat(o,"px)")}),!n.test(r))){var i="".concat(r," ").concat(t);document.body.className=i.trim()}}},b=n(74902),w=[],x="ant-scrolling-effect",C=new RegExp("".concat(x),"g"),E=0,Z=new Map,k=function e(t){var n=this;(0,c.Z)(this,e),this.lockTarget=void 0,this.options=void 0,this.getContainer=function(){var e;return null===(e=n.options)||void 0===e?void 0:e.container},this.reLock=function(e){var t=w.find((function(e){return e.target===n.lockTarget}));t&&n.unLock(),n.options=e,t&&(t.options=e,n.lock())},this.lock=function(){var e;if(!w.some((function(e){return e.target===n.lockTarget})))if(w.some((function(e){var t,r=e.options;return(null===r||void 0===r?void 0:r.container)===(null===(t=n.options)||void 0===t?void 0:t.container)})))w=[].concat((0,b.Z)(w),[{target:n.lockTarget,options:n.options}]);else{var t=0,r=(null===(e=n.options)||void 0===e?void 0:e.container)||document.body;(r===document.body&&window.innerWidth-document.documentElement.clientWidth>0||r.scrollHeight>r.clientHeight)&&(t=(0,v.Z)());var o=r.className;if(0===w.filter((function(e){var t,r=e.options;return(null===r||void 0===r?void 0:r.container)===(null===(t=n.options)||void 0===t?void 0:t.container)})).length&&Z.set(r,h({width:0!==t?"calc(100% - ".concat(t,"px)"):void 0,overflow:"hidden",overflowX:"hidden",overflowY:"hidden"},{element:r})),!C.test(o)){var i="".concat(o," ").concat(x);r.className=i.trim()}w=[].concat((0,b.Z)(w),[{target:n.lockTarget,options:n.options}])}},this.unLock=function(){var e,t=w.find((function(e){return e.target===n.lockTarget}));if(w=w.filter((function(e){return e.target!==n.lockTarget})),t&&!w.some((function(e){var n,r=e.options;return(null===r||void 0===r?void 0:r.container)===(null===(n=t.options)||void 0===n?void 0:n.container)}))){var r=(null===(e=n.options)||void 0===e?void 0:e.container)||document.body,o=r.className;C.test(o)&&(h(Z.get(r),{element:r}),Z.delete(r),r.className=r.className.replace(C,"").trim())}},this.lockTarget=E++,this.options=t},N=0,P=(0,m.Z)();var S={},O=function(e){if(!P)return null;if(e){if("string"===typeof e)return document.querySelectorAll(e)[0];if("function"===typeof e)return e();if("object"===(0,f.Z)(e)&&e instanceof window.HTMLElement)return e}return document.body},T=function(e){(0,l.Z)(n,e);var t=(0,u.Z)(n);function n(e){var r;return(0,c.Z)(this,n),(r=t.call(this,e)).container=void 0,r.componentRef=i.createRef(),r.rafId=void 0,r.scrollLocker=void 0,r.renderComponent=void 0,r.updateScrollLocker=function(e){var t=(e||{}).visible,n=r.props,o=n.getContainer,i=n.visible;i&&i!==t&&P&&O(o)!==r.scrollLocker.getContainer()&&r.scrollLocker.reLock({container:O(o)})},r.updateOpenCount=function(e){var t=e||{},n=t.visible,o=t.getContainer,i=r.props,a=i.visible,c=i.getContainer;a!==n&&P&&O(c)===document.body&&(a&&!n?N+=1:e&&(N-=1)),("function"===typeof c&&"function"===typeof o?c.toString()!==o.toString():c!==o)&&r.removeCurrentContainer()},r.attachToParent=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(e||r.container&&!r.container.parentNode){var t=O(r.props.getContainer);return!!t&&(t.appendChild(r.container),!0)}return!0},r.getContainer=function(){return P?(r.container||(r.container=document.createElement("div"),r.attachToParent(!0)),r.setWrapperClassName(),r.container):null},r.setWrapperClassName=function(){var e=r.props.wrapperClassName;r.container&&e&&e!==r.container.className&&(r.container.className=e)},r.removeCurrentContainer=function(){var e,t;null===(e=r.container)||void 0===e||null===(t=e.parentNode)||void 0===t||t.removeChild(r.container)},r.switchScrollingEffect=function(){1!==N||Object.keys(S).length?N||(h(S),S={},y(!0)):(y(),S=h({overflow:"hidden",overflowX:"hidden",overflowY:"hidden"}))},r.scrollLocker=new k({container:O(e.getContainer)}),r}return(0,s.Z)(n,[{key:"componentDidMount",value:function(){var e=this;this.updateOpenCount(),this.attachToParent()||(this.rafId=(0,d.Z)((function(){e.forceUpdate()})))}},{key:"componentDidUpdate",value:function(e){this.updateOpenCount(e),this.updateScrollLocker(e),this.setWrapperClassName(),this.attachToParent()}},{key:"componentWillUnmount",value:function(){var e=this.props,t=e.visible,n=e.getContainer;P&&O(n)===document.body&&(N=t&&N?N-1:N),this.removeCurrentContainer(),d.Z.cancel(this.rafId)}},{key:"render",value:function(){var e=this.props,t=e.children,n=e.forceRender,r=e.visible,o=null,a={getOpenCount:function(){return N},getContainer:this.getContainer,switchScrollingEffect:this.switchScrollingEffect,scrollLocker:this.scrollLocker};return(n||r||this.componentRef.current)&&(o=i.createElement(p.Z,{getContainer:this.getContainer,ref:this.componentRef},t(a))),o}}]),n}(i.Component),M=n(1413),A=n(94184),R=n.n(A),j=n(15105),F=n(94999),I=n(64217),L=n(93481);function _(e){var t=e.prefixCls,n=e.style,r=e.visible,a=e.maskProps,c=e.motionName;return i.createElement(L.Z,{key:"mask",visible:r,motionName:c,leavedClassName:"".concat(t,"-mask-hidden")},(function(e){var r=e.className,c=e.style;return i.createElement("div",(0,o.Z)({style:(0,M.Z)((0,M.Z)({},c),n),className:R()("".concat(t,"-mask"),r)},a))}))}function D(e,t,n){var r=t;return!r&&n&&(r="".concat(e,"-").concat(n)),r}var V=-1;function z(e,t){var n=e["page".concat(t?"Y":"X","Offset")],r="scroll".concat(t?"Top":"Left");if("number"!==typeof n){var o=e.document;"number"!==typeof(n=o.documentElement[r])&&(n=o.body[r])}return n}var H=i.memo((function(e){return e.children}),(function(e,t){return!t.shouldUpdate})),U={width:0,height:0,overflow:"hidden",outline:"none"},B=i.forwardRef((function(e,t){var n=e.closable,r=e.prefixCls,c=e.width,s=e.height,l=e.footer,u=e.title,f=e.closeIcon,d=e.style,p=e.className,m=e.visible,v=e.forceRender,h=e.bodyStyle,g=e.bodyProps,y=e.children,b=e.destroyOnClose,w=e.modalRender,x=e.motionName,C=e.ariaId,E=e.onClose,Z=e.onVisibleChanged,k=e.onMouseDown,N=e.onMouseUp,P=e.mousePosition,S=(0,i.useRef)(),O=(0,i.useRef)(),T=(0,i.useRef)();i.useImperativeHandle(t,(function(){return{focus:function(){var e;null===(e=S.current)||void 0===e||e.focus()},changeActive:function(e){var t=document.activeElement;e&&t===O.current?S.current.focus():e||t!==S.current||O.current.focus()}}}));var A,j,F,I=i.useState(),_=(0,a.Z)(I,2),D=_[0],V=_[1],B={};function q(){var e=function(e){var t=e.getBoundingClientRect(),n={left:t.left,top:t.top},r=e.ownerDocument,o=r.defaultView||r.parentWindow;return n.left+=z(o),n.top+=z(o,!0),n}(T.current);V(P?"".concat(P.x-e.left,"px ").concat(P.y-e.top,"px"):"")}void 0!==c&&(B.width=c),void 0!==s&&(B.height=s),D&&(B.transformOrigin=D),l&&(A=i.createElement("div",{className:"".concat(r,"-footer")},l)),u&&(j=i.createElement("div",{className:"".concat(r,"-header")},i.createElement("div",{className:"".concat(r,"-title"),id:C},u))),n&&(F=i.createElement("button",{type:"button",onClick:E,"aria-label":"Close",className:"".concat(r,"-close")},f||i.createElement("span",{className:"".concat(r,"-close-x")})));var W=i.createElement("div",{className:"".concat(r,"-content")},F,j,i.createElement("div",(0,o.Z)({className:"".concat(r,"-body"),style:h},g),y),A);return i.createElement(L.Z,{visible:m,onVisibleChanged:Z,onAppearPrepare:q,onEnterPrepare:q,forceRender:v,motionName:x,removeOnLeave:b,ref:T},(function(e,t){var n=e.className,o=e.style;return i.createElement("div",{key:"dialog-element",role:"document",ref:t,style:(0,M.Z)((0,M.Z)((0,M.Z)({},o),d),B),className:R()(r,p,n),onMouseDown:k,onMouseUp:N},i.createElement("div",{tabIndex:0,ref:S,style:U,"aria-hidden":"true"}),i.createElement(H,{shouldUpdate:m||v},w?w(W):W),i.createElement("div",{tabIndex:0,ref:O,style:U,"aria-hidden":"true"}))}))}));B.displayName="Content";var q=B;function W(e){var t=e.prefixCls,n=void 0===t?"rc-dialog":t,r=e.zIndex,c=e.visible,s=void 0!==c&&c,l=e.keyboard,u=void 0===l||l,f=e.focusTriggerAfterClose,d=void 0===f||f,p=e.scrollLocker,m=e.title,v=e.wrapStyle,h=e.wrapClassName,g=e.wrapProps,y=e.onClose,b=e.afterClose,w=e.transitionName,x=e.animation,C=e.closable,E=void 0===C||C,Z=e.mask,k=void 0===Z||Z,N=e.maskTransitionName,P=e.maskAnimation,S=e.maskClosable,O=void 0===S||S,T=e.maskStyle,A=e.maskProps,L=(0,i.useRef)(),z=(0,i.useRef)(),H=(0,i.useRef)(),U=i.useState(s),B=(0,a.Z)(U,2),W=B[0],$=B[1],K=(0,i.useRef)();function G(e){null===y||void 0===y||y(e)}K.current||(K.current="rcDialogTitle".concat(V+=1));var Y=(0,i.useRef)(!1),X=(0,i.useRef)(),Q=null;return O&&(Q=function(e){Y.current?Y.current=!1:z.current===e.target&&G(e)}),(0,i.useEffect)((function(){return s&&$(!0),function(){}}),[s]),(0,i.useEffect)((function(){return function(){clearTimeout(X.current)}}),[]),(0,i.useEffect)((function(){return W?(null===p||void 0===p||p.lock(),null===p||void 0===p?void 0:p.unLock):function(){}}),[W,p]),i.createElement("div",(0,o.Z)({className:"".concat(n,"-root")},(0,I.Z)(e,{data:!0})),i.createElement(_,{prefixCls:n,visible:k&&s,motionName:D(n,N,P),style:(0,M.Z)({zIndex:r},T),maskProps:A}),i.createElement("div",(0,o.Z)({tabIndex:-1,onKeyDown:function(e){if(u&&e.keyCode===j.Z.ESC)return e.stopPropagation(),void G(e);s&&e.keyCode===j.Z.TAB&&H.current.changeActive(!e.shiftKey)},className:R()("".concat(n,"-wrap"),h),ref:z,onClick:Q,role:"dialog","aria-labelledby":m?K.current:null,style:(0,M.Z)((0,M.Z)({zIndex:r},v),{},{display:W?null:"none"})},g),i.createElement(q,(0,o.Z)({},e,{onMouseDown:function(){clearTimeout(X.current),Y.current=!0},onMouseUp:function(){X.current=setTimeout((function(){Y.current=!1}))},ref:H,closable:E,ariaId:K.current,prefixCls:n,visible:s,onClose:G,onVisibleChanged:function(e){if(e){var t;if(!(0,F.Z)(z.current,document.activeElement))L.current=document.activeElement,null===(t=H.current)||void 0===t||t.focus()}else{if($(!1),k&&L.current&&d){try{L.current.focus({preventScroll:!0})}catch(n){}L.current=null}W&&(null===b||void 0===b||b())}},motionName:D(n,w,x)}))))}var $=function(e){var t=e.visible,n=e.getContainer,r=e.forceRender,c=e.destroyOnClose,s=void 0!==c&&c,l=e.afterClose,u=i.useState(t),f=(0,a.Z)(u,2),d=f[0],p=f[1];return i.useEffect((function(){t&&p(!0)}),[t]),!1===n?i.createElement(W,(0,o.Z)({},e,{getOpenCount:function(){return 2}})):r||!s||d?i.createElement(T,{visible:t,forceRender:r,getContainer:n},(function(t){return i.createElement(W,(0,o.Z)({},e,{destroyOnClose:s,afterClose:function(){null===l||void 0===l||l(),p(!1)}},t))})):null};$.displayName="Dialog";var K,G=$,Y=n(97937),X=n(83008),Q=n(71577),J=n(8613),ee=n(23715),te=n(59844),ne=n(31808),re=n(33603),oe=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n};(0,ne.jD)()&&document.documentElement.addEventListener("click",(function(e){K={x:e.pageX,y:e.pageY},setTimeout((function(){K=null}),100)}),!0);var ie=function(e){var t,n=i.useContext(te.E_),a=n.getPopupContainer,c=n.getPrefixCls,s=n.direction,l=function(t){var n=e.onCancel;null===n||void 0===n||n(t)},u=function(t){var n=e.onOk;null===n||void 0===n||n(t)},f=function(t){var n=e.okText,r=e.okType,a=e.cancelText,c=e.confirmLoading;return i.createElement(i.Fragment,null,i.createElement(Q.Z,(0,o.Z)({onClick:l},e.cancelButtonProps),a||t.cancelText),i.createElement(Q.Z,(0,o.Z)({},(0,J.n)(r),{loading:c,onClick:u},e.okButtonProps),n||t.okText))},d=e.prefixCls,p=e.footer,m=e.visible,v=e.wrapClassName,h=e.centered,g=e.getContainer,y=e.closeIcon,b=e.focusTriggerAfterClose,w=void 0===b||b,x=oe(e,["prefixCls","footer","visible","wrapClassName","centered","getContainer","closeIcon","focusTriggerAfterClose"]),C=c("modal",d),E=c(),Z=i.createElement(ee.Z,{componentName:"Modal",defaultLocale:(0,X.A)()},f),k=i.createElement("span",{className:"".concat(C,"-close-x")},y||i.createElement(Y.Z,{className:"".concat(C,"-close-icon")})),N=R()(v,(t={},(0,r.Z)(t,"".concat(C,"-centered"),!!h),(0,r.Z)(t,"".concat(C,"-wrap-rtl"),"rtl"===s),t));return i.createElement(G,(0,o.Z)({},x,{getContainer:void 0===g?a:g,prefixCls:C,wrapClassName:N,footer:void 0===p?Z:p,visible:m,mousePosition:K,onClose:l,closeIcon:k,focusTriggerAfterClose:w,transitionName:(0,re.m)(E,"zoom",e.transitionName),maskTransitionName:(0,re.m)(E,"fade",e.maskTransitionName)}))};ie.defaultProps={width:520,confirmLoading:!1,visible:!1,okType:"primary"};var ae=ie,ce=n(73935),se=n(45605),le=n(8751),ue=n(18429),fe=n(11475),de=n(86743),pe=n(21687),me=n(49264),ve=function(e){var t=e.icon,n=e.onCancel,o=e.onOk,a=e.close,c=e.zIndex,s=e.afterClose,l=e.visible,u=e.keyboard,f=e.centered,d=e.getContainer,p=e.maskStyle,m=e.okText,v=e.okButtonProps,h=e.cancelText,g=e.cancelButtonProps,y=e.direction,b=e.prefixCls,w=e.wrapClassName,x=e.rootPrefixCls,C=e.iconPrefixCls,E=e.bodyStyle,Z=e.closable,k=void 0!==Z&&Z,N=e.closeIcon,P=e.modalRender,S=e.focusTriggerAfterClose;(0,pe.Z)(!("string"===typeof t&&t.length>2),"Modal","`icon` is using ReactNode instead of string naming in v4. Please check `".concat(t,"` at https://ant.design/components/icon"));var O=e.okType||"primary",T="".concat(b,"-confirm"),M=!("okCancel"in e)||e.okCancel,A=e.width||416,j=e.style||{},F=void 0===e.mask||e.mask,I=void 0!==e.maskClosable&&e.maskClosable,L=null!==e.autoFocusButton&&(e.autoFocusButton||"ok"),_=R()(T,"".concat(T,"-").concat(e.type),(0,r.Z)({},"".concat(T,"-rtl"),"rtl"===y),e.className),D=M&&i.createElement(de.Z,{actionFn:n,close:a,autoFocus:"cancel"===L,buttonProps:g,prefixCls:"".concat(x,"-btn")},h);return i.createElement(me.ZP,{prefixCls:x,iconPrefixCls:C,direction:y},i.createElement(ae,{prefixCls:b,className:_,wrapClassName:R()((0,r.Z)({},"".concat(T,"-centered"),!!e.centered),w),onCancel:function(){return a({triggerCancel:!0})},visible:l,title:"",footer:"",transitionName:(0,re.m)(x,"zoom",e.transitionName),maskTransitionName:(0,re.m)(x,"fade",e.maskTransitionName),mask:F,maskClosable:I,maskStyle:p,style:j,bodyStyle:E,width:A,zIndex:c,afterClose:s,keyboard:u,centered:f,getContainer:d,closable:k,closeIcon:N,modalRender:P,focusTriggerAfterClose:S},i.createElement("div",{className:"".concat(T,"-body-wrapper")},i.createElement("div",{className:"".concat(T,"-body")},t,void 0===e.title?null:i.createElement("span",{className:"".concat(T,"-title")},e.title),i.createElement("div",{className:"".concat(T,"-content")},e.content)),i.createElement("div",{className:"".concat(T,"-btns")},D,i.createElement(de.Z,{type:O,actionFn:o,close:a,autoFocus:"ok"===L,buttonProps:v,prefixCls:"".concat(x,"-btn")},m)))))},he=[],ge=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},ye="";function be(e){var t=document.createDocumentFragment(),n=(0,o.Z)((0,o.Z)({},e),{close:c,visible:!0});function r(){ce.unmountComponentAtNode(t);for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];var i=r.some((function(e){return e&&e.triggerCancel}));e.onCancel&&i&&e.onCancel.apply(e,r);for(var a=0;a<he.length;a++){var s=he[a];if(s===c){he.splice(a,1);break}}}function a(e){var n=e.okText,r=e.cancelText,a=e.prefixCls,c=ge(e,["okText","cancelText","prefixCls"]);setTimeout((function(){var e=(0,X.A)(),s=(0,me.w6)(),l=s.getPrefixCls,u=s.getIconPrefixCls,f=l(void 0,ye),d=a||"".concat(f,"-modal"),p=u();ce.render(i.createElement(ve,(0,o.Z)({},c,{prefixCls:d,rootPrefixCls:f,iconPrefixCls:p,okText:n||(c.okCancel?e.okText:e.justOkText),cancelText:r||e.cancelText})),t)}))}function c(){for(var t=this,i=arguments.length,c=new Array(i),s=0;s<i;s++)c[s]=arguments[s];a(n=(0,o.Z)((0,o.Z)({},n),{visible:!1,afterClose:function(){"function"===typeof e.afterClose&&e.afterClose(),r.apply(t,c)}}))}return a(n),he.push(c),{destroy:c,update:function(e){a(n="function"===typeof e?e(n):(0,o.Z)((0,o.Z)({},n),e))}}}function we(e){return(0,o.Z)((0,o.Z)({icon:i.createElement(fe.Z,null),okCancel:!1},e),{type:"warning"})}function xe(e){return(0,o.Z)((0,o.Z)({icon:i.createElement(se.Z,null),okCancel:!1},e),{type:"info"})}function Ce(e){return(0,o.Z)((0,o.Z)({icon:i.createElement(le.Z,null),okCancel:!1},e),{type:"success"})}function Ee(e){return(0,o.Z)((0,o.Z)({icon:i.createElement(ue.Z,null),okCancel:!1},e),{type:"error"})}function Ze(e){return(0,o.Z)((0,o.Z)({icon:i.createElement(fe.Z,null),okCancel:!0},e),{type:"confirm"})}var ke=n(6213),Ne=function(e,t){var n=e.afterClose,r=e.config,c=i.useState(!0),s=(0,a.Z)(c,2),l=s[0],u=s[1],f=i.useState(r),d=(0,a.Z)(f,2),p=d[0],m=d[1],v=i.useContext(te.E_),h=v.direction,g=v.getPrefixCls,y=g("modal"),b=g(),w=function(){u(!1);for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=t.some((function(e){return e&&e.triggerCancel}));p.onCancel&&r&&p.onCancel()};return i.useImperativeHandle(t,(function(){return{destroy:w,update:function(e){m((function(t){return(0,o.Z)((0,o.Z)({},t),e)}))}}})),i.createElement(ee.Z,{componentName:"Modal",defaultLocale:ke.Z.Modal},(function(e){return i.createElement(ve,(0,o.Z)({prefixCls:y,rootPrefixCls:b},p,{close:w,visible:l,afterClose:n,okText:p.okText||(p.okCancel?e.okText:e.justOkText),direction:h,cancelText:p.cancelText||e.cancelText}))}))},Pe=i.forwardRef(Ne),Se=0,Oe=i.memo(i.forwardRef((function(e,t){var n=function(){var e=i.useState([]),t=(0,a.Z)(e,2),n=t[0],r=t[1];return[n,i.useCallback((function(e){return r((function(t){return[].concat((0,b.Z)(t),[e])})),function(){r((function(t){return t.filter((function(t){return t!==e}))}))}}),[])]}(),r=(0,a.Z)(n,2),o=r[0],c=r[1];return i.useImperativeHandle(t,(function(){return{patchElement:c}}),[]),i.createElement(i.Fragment,null,o)})));function Te(e){return be(we(e))}var Me=ae;Me.useModal=function(){var e=i.useRef(null),t=i.useState([]),n=(0,a.Z)(t,2),r=n[0],o=n[1];i.useEffect((function(){r.length&&((0,b.Z)(r).forEach((function(e){e()})),o([]))}),[r]);var c=i.useCallback((function(t){return function(n){var r;Se+=1;var a,c=i.createRef(),s=i.createElement(Pe,{key:"modal-".concat(Se),config:t(n),ref:c,afterClose:function(){a()}});return a=null===(r=e.current)||void 0===r?void 0:r.patchElement(s),{destroy:function(){function e(){var e;null===(e=c.current)||void 0===e||e.destroy()}c.current?e():o((function(t){return[].concat((0,b.Z)(t),[e])}))},update:function(e){function t(){var t;null===(t=c.current)||void 0===t||t.update(e)}c.current?t():o((function(e){return[].concat((0,b.Z)(e),[t])}))}}}}),[]);return[i.useMemo((function(){return{info:c(xe),success:c(Ce),error:c(Ee),warning:c(we),confirm:c(Ze)}}),[]),i.createElement(Oe,{ref:e})]},Me.info=function(e){return be(xe(e))},Me.success=function(e){return be(Ce(e))},Me.error=function(e){return be(Ee(e))},Me.warning=Te,Me.warn=Te,Me.confirm=function(e){return be(Ze(e))},Me.destroyAll=function(){for(;he.length;){var e=he.pop();e&&e()}},Me.config=function(e){var t=e.rootPrefixCls;(0,pe.Z)(!1,"Modal","Modal.config is deprecated. Please use ConfigProvider.config instead."),ye=t};var Ae=Me},83008:function(e,t,n){"use strict";n.d(t,{f:function(){return a},A:function(){return c}});var r=n(87462),o=n(6213),i=(0,r.Z)({},o.Z.Modal);function a(e){i=e?(0,r.Z)((0,r.Z)({},i),e):(0,r.Z)({},o.Z.Modal)}function c(){return i}},55241:function(e,t,n){"use strict";var r=n(87462),o=n(67294),i=n(56266),a=n(59844),c=n(81643),s=n(33603),l=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},u=o.forwardRef((function(e,t){var n=e.prefixCls,u=e.title,f=e.content,d=l(e,["prefixCls","title","content"]),p=o.useContext(a.E_).getPrefixCls,m=p("popover",n),v=p();return o.createElement(i.Z,(0,r.Z)({},d,{prefixCls:m,ref:t,overlay:function(e){return o.createElement(o.Fragment,null,u&&o.createElement("div",{className:"".concat(e,"-title")},(0,c.Z)(u)),o.createElement("div",{className:"".concat(e,"-inner-content")},(0,c.Z)(f)))}(m),transitionName:(0,s.m)(v,"zoom-big",d.transitionName)}))}));u.displayName="Popover",u.defaultProps={placement:"top",trigger:"hover",mouseEnterDelay:.1,mouseLeaveDelay:.1,overlayStyle:{}},t.Z=u},26713:function(e,t,n){"use strict";n.d(t,{u:function(){return m},Z:function(){return h}});var r=n(87462),o=n(4942),i=n(97685),a=n(67294),c=n(94184),s=n.n(c),l=n(50344),u=n(59844);function f(e){var t=e.className,n=e.direction,i=e.index,c=e.marginDirection,s=e.children,l=e.split,u=e.wrap,f=a.useContext(m),d=f.horizontalSize,p=f.verticalSize,v=f.latestIndex,h={};return f.supportFlexGap||("vertical"===n?i<v&&(h={marginBottom:d/(l?2:1)}):h=(0,r.Z)((0,r.Z)({},i<v&&(0,o.Z)({},c,d/(l?2:1))),u&&{paddingBottom:p})),null===s||void 0===s?null:a.createElement(a.Fragment,null,a.createElement("div",{className:t,style:h},s),i<v&&l&&a.createElement("span",{className:"".concat(t,"-split"),style:h},l))}var d=n(98082),p=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},m=a.createContext({latestIndex:0,horizontalSize:0,verticalSize:0,supportFlexGap:!1}),v={small:8,middle:16,large:24};var h=function(e){var t,n=a.useContext(u.E_),c=n.getPrefixCls,h=n.space,g=n.direction,y=e.size,b=void 0===y?(null===h||void 0===h?void 0:h.size)||"small":y,w=e.align,x=e.className,C=e.children,E=e.direction,Z=void 0===E?"horizontal":E,k=e.prefixCls,N=e.split,P=e.style,S=e.wrap,O=void 0!==S&&S,T=p(e,["size","align","className","children","direction","prefixCls","split","style","wrap"]),M=(0,d.Z)(),A=a.useMemo((function(){return(Array.isArray(b)?b:[b,b]).map((function(e){return function(e){return"string"===typeof e?v[e]:e||0}(e)}))}),[b]),R=(0,i.Z)(A,2),j=R[0],F=R[1],I=(0,l.Z)(C,{keepEmpty:!0}),L=void 0===w&&"horizontal"===Z?"center":w,_=c("space",k),D=s()(_,"".concat(_,"-").concat(Z),(t={},(0,o.Z)(t,"".concat(_,"-rtl"),"rtl"===g),(0,o.Z)(t,"".concat(_,"-align-").concat(L),L),t),x),V="".concat(_,"-item"),z="rtl"===g?"marginLeft":"marginRight",H=0,U=I.map((function(e,t){return null!==e&&void 0!==e&&(H=t),a.createElement(f,{className:V,key:"".concat(V,"-").concat(t),direction:Z,index:t,marginDirection:z,split:N,wrap:O},e)})),B=a.useMemo((function(){return{horizontalSize:j,verticalSize:F,latestIndex:H,supportFlexGap:M}}),[j,F,H,M]);if(0===I.length)return null;var q={};return O&&(q.flexWrap="wrap",M||(q.marginBottom=-F)),M&&(q.columnGap=j,q.rowGap=F),a.createElement("div",(0,r.Z)({className:D,style:(0,r.Z)((0,r.Z)({},q),P)},T),a.createElement(m.Provider,{value:B},U))}},56266:function(e,t,n){"use strict";n.d(t,{Z:function(){return Z}});var r=n(4942),o=n(97685),i=n(87462),a=n(67294),c=n(22972),s=n(21770),l=n(94184),u=n.n(l),f=n(43159),d={adjustX:1,adjustY:1},p={adjustX:0,adjustY:0},m=[0,0];function v(e){return"boolean"===typeof e?e?d:p:(0,i.Z)((0,i.Z)({},p),e)}var h=n(96159),g=n(59844),y=n(98787),b=n(33603),w=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},x=new RegExp("^(".concat(y.Y.join("|"),")(-inverse)?$"));function C(e,t){var n=e.type;if((!0===n.__ANT_BUTTON||!0===n.__ANT_SWITCH||!0===n.__ANT_CHECKBOX||"button"===e.type)&&e.props.disabled){var r=function(e,t){var n={},r=(0,i.Z)({},e);return t.forEach((function(t){e&&t in e&&(n[t]=e[t],delete r[t])})),{picked:n,omitted:r}}(e.props.style,["position","left","right","top","bottom","float","display","zIndex"]),o=r.picked,c=r.omitted,s=(0,i.Z)((0,i.Z)({display:"inline-block"},o),{cursor:"not-allowed",width:e.props.block?"100%":null}),l=(0,i.Z)((0,i.Z)({},c),{pointerEvents:"none"}),f=(0,h.Tm)(e,{style:l,className:null});return a.createElement("span",{style:s,className:u()(e.props.className,"".concat(t,"-disabled-compatible-wrapper"))},f)}return e}var E=a.forwardRef((function(e,t){var n,l=a.useContext(g.E_),d=l.getPopupContainer,p=l.getPrefixCls,y=l.direction,E=(0,s.Z)(!1,{value:e.visible,defaultValue:e.defaultVisible}),Z=(0,o.Z)(E,2),k=Z[0],N=Z[1],P=function(){var t=e.title,n=e.overlay;return!t&&!n&&0!==t},S=function(){var t=e.builtinPlacements,n=e.arrowPointAtCenter,r=e.autoAdjustOverflow;return t||function(e){var t=e.arrowWidth,n=void 0===t?4:t,r=e.horizontalArrowShift,o=void 0===r?16:r,a=e.verticalArrowShift,c=void 0===a?8:a,s=e.autoAdjustOverflow,l={left:{points:["cr","cl"],offset:[-4,0]},right:{points:["cl","cr"],offset:[4,0]},top:{points:["bc","tc"],offset:[0,-4]},bottom:{points:["tc","bc"],offset:[0,4]},topLeft:{points:["bl","tc"],offset:[-(o+n),-4]},leftTop:{points:["tr","cl"],offset:[-4,-(c+n)]},topRight:{points:["br","tc"],offset:[o+n,-4]},rightTop:{points:["tl","cr"],offset:[4,-(c+n)]},bottomRight:{points:["tr","bc"],offset:[o+n,4]},rightBottom:{points:["bl","cr"],offset:[4,c+n]},bottomLeft:{points:["tl","bc"],offset:[-(o+n),4]},leftBottom:{points:["br","cl"],offset:[-4,c+n]}};return Object.keys(l).forEach((function(t){l[t]=e.arrowPointAtCenter?(0,i.Z)((0,i.Z)({},l[t]),{overflow:v(s),targetOffset:m}):(0,i.Z)((0,i.Z)({},f.C[t]),{overflow:v(s)}),l[t].ignoreShake=!0})),l}({arrowPointAtCenter:n,autoAdjustOverflow:r})},O=e.getPopupContainer,T=w(e,["getPopupContainer"]),M=e.prefixCls,A=e.openClassName,R=e.getTooltipContainer,j=e.overlayClassName,F=e.color,I=e.overlayInnerStyle,L=e.children,_=p("tooltip",M),D=p(),V=k;!("visible"in e)&&P()&&(V=!1);var z,H=C((0,h.l$)(L)?L:a.createElement("span",null,L),_),U=H.props,B=u()(U.className,(0,r.Z)({},A||"".concat(_,"-open"),!0)),q=u()(j,(n={},(0,r.Z)(n,"".concat(_,"-rtl"),"rtl"===y),(0,r.Z)(n,"".concat(_,"-").concat(F),F&&x.test(F)),n)),W=I;return F&&!x.test(F)&&(W=(0,i.Z)((0,i.Z)({},I),{background:F}),z={background:F}),a.createElement(c.default,(0,i.Z)({},T,{prefixCls:_,overlayClassName:q,getTooltipContainer:O||R||d,ref:t,builtinPlacements:S(),overlay:function(){var t=e.title,n=e.overlay;return 0===t?t:n||t||""}(),visible:V,onVisibleChange:function(t){var n;N(!P()&&t),P()||null===(n=e.onVisibleChange)||void 0===n||n.call(e,t)},onPopupAlign:function(e,t){var n=S(),r=Object.keys(n).filter((function(e){return n[e].points[0]===t.points[0]&&n[e].points[1]===t.points[1]}))[0];if(r){var o=e.getBoundingClientRect(),i={top:"50%",left:"50%"};r.indexOf("top")>=0||r.indexOf("Bottom")>=0?i.top="".concat(o.height-t.offset[1],"px"):(r.indexOf("Top")>=0||r.indexOf("bottom")>=0)&&(i.top="".concat(-t.offset[1],"px")),r.indexOf("left")>=0||r.indexOf("Right")>=0?i.left="".concat(o.width-t.offset[0],"px"):(r.indexOf("right")>=0||r.indexOf("Left")>=0)&&(i.left="".concat(-t.offset[0],"px")),e.style.transformOrigin="".concat(i.left," ").concat(i.top)}},overlayInnerStyle:W,arrowContent:a.createElement("span",{className:"".concat(_,"-arrow-content"),style:z}),motion:{motionName:(0,b.m)(D,"zoom-big-fast",e.transitionName),motionDeadline:1e3}}),V?(0,h.Tm)(H,{className:B}):H)}));E.displayName="Tooltip",E.defaultProps={placement:"top",mouseEnterDelay:.1,mouseLeaveDelay:.1,arrowPointAtCenter:!1,autoAdjustOverflow:!0};var Z=E},44068:function(e,t,n){"use strict";n.d(t,{Z:function(){return ve}});var r=n(87462),o=n(4942),i=n(67294),a=n(94184),c=n.n(a),s=n(42550),l=n(59844),u=n(21687),f=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},d=function(e,t){var n=e.prefixCls,a=e.component,d=void 0===a?"article":a,p=e.className,m=e["aria-label"],v=e.setContentRef,h=e.children,g=f(e,["prefixCls","component","className","aria-label","setContentRef","children"]),y=t;return v&&((0,u.Z)(!1,"Typography","`setContentRef` is deprecated. Please use `ref` instead."),y=(0,s.sQ)(t,v)),i.createElement(l.C,null,(function(e){var t=e.getPrefixCls,a=e.direction,s=d,l=t("typography",n),u=c()(l,(0,o.Z)({},"".concat(l,"-rtl"),"rtl"===a),p);return i.createElement(s,(0,r.Z)({className:u,"aria-label":m,ref:y},g),h)}))},p=i.forwardRef(d);p.displayName="Typography";var m=p,v=n(71002),h=n(98423),g=n(74902),y=n(15671),b=n(43144),w=n(60136),x=n(3289),C=n(50344),E=n(20640),Z=n.n(E),k=n(86548),N=n(63606),P=n(57132),S=n(48555),O=n(49264),T=n(23715),M=n(15105),A=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},R={border:0,background:"transparent",padding:0,lineHeight:"inherit",display:"inline-block"},j=i.forwardRef((function(e,t){var n=e.style,o=e.noStyle,a=e.disabled,c=A(e,["style","noStyle","disabled"]),s={};return o||(s=(0,r.Z)({},R)),a&&(s.pointerEvents="none"),s=(0,r.Z)((0,r.Z)({},s),n),i.createElement("div",(0,r.Z)({role:"button",tabIndex:0,ref:t},c,{onKeyDown:function(e){e.keyCode===M.Z.ENTER&&e.preventDefault()},onKeyUp:function(t){var n=t.keyCode,r=e.onClick;n===M.Z.ENTER&&r&&r()},style:s}))})),F=n(32637),I=n(79370),L=n(56266),_=n(97685),D=n(1413),V={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M864 170h-60c-4.4 0-8 3.6-8 8v518H310v-73c0-6.7-7.8-10.5-13-6.3l-141.9 112a8 8 0 000 12.6l141.9 112c5.3 4.2 13 .4 13-6.3v-75h498c35.3 0 64-28.7 64-64V178c0-4.4-3.6-8-8-8z"}}]},name:"enter",theme:"outlined"},z=n(42135),H=function(e,t){return i.createElement(z.Z,(0,D.Z)((0,D.Z)({},e),{},{ref:t,icon:V}))};H.displayName="EnterOutlined";var U,B=i.forwardRef(H),q=n(96330),W=n(96159),$=function(e){var t=e.prefixCls,n=e["aria-label"],r=e.className,a=e.style,s=e.direction,l=e.maxLength,u=e.autoSize,f=void 0===u||u,d=e.value,p=e.onSave,m=e.onCancel,v=e.onEnd,h=e.enterIcon,g=void 0===h?i.createElement(B,null):h,y=i.useRef(),b=i.useRef(!1),w=i.useRef(),x=i.useState(d),C=(0,_.Z)(x,2),E=C[0],Z=C[1];i.useEffect((function(){Z(d)}),[d]),i.useEffect((function(){if(y.current&&y.current.resizableTextArea){var e=y.current.resizableTextArea.textArea;e.focus();var t=e.value.length;e.setSelectionRange(t,t)}}),[]);var k=function(){p(E.trim())},N=c()(t,"".concat(t,"-edit-content"),(0,o.Z)({},"".concat(t,"-rtl"),"rtl"===s),r);return i.createElement("div",{className:N,style:a},i.createElement(q.Z,{ref:y,maxLength:l,value:E,onChange:function(e){var t=e.target;Z(t.value.replace(/[\n\r]/g,""))},onKeyDown:function(e){var t=e.keyCode;b.current||(w.current=t)},onKeyUp:function(e){var t=e.keyCode,n=e.ctrlKey,r=e.altKey,o=e.metaKey,i=e.shiftKey;w.current!==t||b.current||n||r||o||i||(t===M.Z.ENTER?(k(),null===v||void 0===v||v()):t===M.Z.ESC&&m())},onCompositionStart:function(){b.current=!0},onCompositionEnd:function(){b.current=!1},onBlur:function(){k()},"aria-label":n,autoSize:f}),null!==g?(0,W.Tm)(g,{className:"".concat(t,"-edit-content-confirm")}):null)},K=n(73935),G={padding:0,margin:0,display:"inline",lineHeight:"inherit"};function Y(e,t){e.setAttribute("aria-hidden","true");var n,r=window.getComputedStyle(t),o=(n=r,Array.prototype.slice.apply(n).map((function(e){return"".concat(e,": ").concat(n.getPropertyValue(e),";")})).join(""));e.setAttribute("style",o),e.style.position="fixed",e.style.left="0",e.style.height="auto",e.style.minHeight="auto",e.style.maxHeight="auto",e.style.paddingTop="0",e.style.paddingBottom="0",e.style.borderTopWidth="0",e.style.borderBottomWidth="0",e.style.top="-999999px",e.style.zIndex="-1000",e.style.textOverflow="clip",e.style.whiteSpace="normal",e.style.webkitLineClamp="none"}var X=function(e,t,n,r,o){U||(U=document.createElement("div")).setAttribute("aria-hidden","true"),U.parentNode||document.body.appendChild(U);var a=t.rows,c=t.suffix,s=void 0===c?"":c,l=function(e){var t=document.createElement("div");Y(t,e),t.appendChild(document.createTextNode("text")),document.body.appendChild(t);var n=t.getBoundingClientRect().height;return document.body.removeChild(t),n}(e),u=Math.round(l*a*100)/100;Y(U,e);var f=function(e){var t=[];return e.forEach((function(e){var n=t[t.length-1];"string"===typeof e&&"string"===typeof n?t[t.length-1]+=e:t.push(e)})),t}((0,C.Z)(n));function d(){return Math.round(100*U.getBoundingClientRect().height)/100-.1<=u}if((0,K.render)(i.createElement("div",{style:G},i.createElement("span",{style:G},f,s),i.createElement("span",{style:G},r)),U),d())return(0,K.unmountComponentAtNode)(U),{content:n,text:U.innerHTML,ellipsis:!1};var p=Array.prototype.slice.apply(U.childNodes[0].childNodes[0].cloneNode(!0).childNodes).filter((function(e){return 8!==e.nodeType})),m=Array.prototype.slice.apply(U.childNodes[0].childNodes[1].cloneNode(!0).childNodes);(0,K.unmountComponentAtNode)(U);var v=[];U.innerHTML="";var h=document.createElement("span");U.appendChild(h);var g=document.createTextNode(o+s);function y(e){h.insertBefore(e,g)}function b(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:t.length,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,i=Math.floor((n+r)/2),a=t.slice(0,i);if(e.textContent=a,n>=r-1)for(var c=r;c>=n;c-=1){var s=t.slice(0,c);if(e.textContent=s,d()||!s)return c===t.length?{finished:!1,reactNode:t}:{finished:!0,reactNode:s}}return d()?b(e,t,i,r,i):b(e,t,n,i,o)}function w(e,t){var n=e.nodeType;if(1===n)return y(e),d()?{finished:!1,reactNode:f[t]}:(h.removeChild(e),{finished:!0,reactNode:null});if(3===n){var r=e.textContent||"",o=document.createTextNode(r);return y(o),b(o,r)}return{finished:!1,reactNode:null}}return h.appendChild(g),m.forEach((function(e){U.appendChild(e)})),p.some((function(e,t){var n=w(e,t),r=n.finished,o=n.reactNode;return o&&v.push(o),r})),{content:v,text:U.innerHTML,ellipsis:!0}},Q=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},J=(0,I.G)("webkitLineClamp"),ee=(0,I.G)("textOverflow");function te(e,t,n){return!0===e||void 0===e?t:e||n&&t}var ne=function(e){(0,w.Z)(n,e);var t=(0,x.Z)(n);function n(){var e;return(0,y.Z)(this,n),(e=t.apply(this,arguments)).contentRef=i.createRef(),e.state={edit:!1,copied:!1,ellipsisText:"",ellipsisContent:null,isEllipsis:!1,expanded:!1,clientRendered:!1},e.getPrefixCls=function(){var t=e.props.prefixCls;return(0,e.context.getPrefixCls)("typography",t)},e.onExpandClick=function(t){var n,r=e.getEllipsis().onExpand;e.setState({expanded:!0}),null===(n=r)||void 0===n||n(t)},e.onEditClick=function(t){t.preventDefault(),e.triggerEdit(!0)},e.onEditChange=function(t){var n=e.getEditable().onChange;null===n||void 0===n||n(t),e.triggerEdit(!1)},e.onEditCancel=function(){var t,n;null===(n=(t=e.getEditable()).onCancel)||void 0===n||n.call(t),e.triggerEdit(!1)},e.onCopyClick=function(t){t.preventDefault();var n=e.props,o=n.children,i=n.copyable,a=(0,r.Z)({},"object"===(0,v.Z)(i)?i:null);void 0===a.text&&(a.text=String(o)),Z()(a.text||""),e.setState({copied:!0},(function(){a.onCopy&&a.onCopy(),e.copyId=window.setTimeout((function(){e.setState({copied:!1})}),3e3)}))},e.setEditRef=function(t){e.editIcon=t},e.triggerEdit=function(t){var n=e.getEditable().onStart;t&&n&&n(),e.setState({edit:t},(function(){!t&&e.editIcon&&e.editIcon.focus()}))},e.resizeOnNextFrame=function(){F.Z.cancel(e.rafId),e.rafId=(0,F.Z)((function(){e.syncEllipsis()}))},e}return(0,b.Z)(n,[{key:"componentDidMount",value:function(){this.setState({clientRendered:!0}),this.resizeOnNextFrame()}},{key:"componentDidUpdate",value:function(e){var t=this.props.children,n=this.getEllipsis(),r=this.getEllipsis(e);t===e.children&&n.rows===r.rows||this.resizeOnNextFrame()}},{key:"componentWillUnmount",value:function(){window.clearTimeout(this.copyId),F.Z.cancel(this.rafId)}},{key:"getEditable",value:function(e){var t=this.state.edit,n=(e||this.props).editable;return n?(0,r.Z)({editing:t},"object"===(0,v.Z)(n)?n:null):{editing:t}}},{key:"getEllipsis",value:function(e){var t=(e||this.props).ellipsis;return t?(0,r.Z)({rows:1,expandable:!1},"object"===(0,v.Z)(t)?t:null):{}}},{key:"canUseCSSEllipsis",value:function(){var e=this.state.clientRendered,t=this.props,n=t.editable,r=t.copyable,o=this.getEllipsis(),i=o.rows,a=o.expandable,c=o.suffix,s=o.onEllipsis,l=o.tooltip;return!c&&!l&&(!(n||r||a||!e||s)&&(1===i?ee:J))}},{key:"syncEllipsis",value:function(){var e=this.state,t=e.ellipsisText,n=e.isEllipsis,r=e.expanded,o=this.getEllipsis(),i=o.rows,a=o.suffix,c=o.onEllipsis,s=this.props.children;if(i&&!(i<0)&&this.contentRef.current&&!r&&!this.canUseCSSEllipsis()){(0,u.Z)((0,C.Z)(s).every((function(e){return"string"===typeof e})),"Typography","`ellipsis` should use string as children only.");var l=X(this.contentRef.current,{rows:i,suffix:a},s,this.renderOperations(!0),"..."),f=l.content,d=l.text,p=l.ellipsis;t===d&&n===p||(this.setState({ellipsisText:d,ellipsisContent:f,isEllipsis:p}),n!==p&&c&&c(p))}}},{key:"renderExpand",value:function(e){var t,n=this.getEllipsis(),r=n.expandable,o=n.symbol,a=this.state,c=a.expanded,s=a.isEllipsis;return r&&(e||!c&&s)?(t=o||this.expandStr,i.createElement("a",{key:"expand",className:"".concat(this.getPrefixCls(),"-expand"),onClick:this.onExpandClick,"aria-label":this.expandStr},t)):null}},{key:"renderEdit",value:function(){var e=this.props.editable;if(e){var t=e.icon,n=e.tooltip,r=e.triggerType,o=void 0===r?["icon"]:r,a=(0,C.Z)(n)[0]||this.editStr,c="string"===typeof a?a:"";return-1!==o.indexOf("icon")?i.createElement(L.Z,{key:"edit",title:!1===n?"":a},i.createElement(j,{ref:this.setEditRef,className:"".concat(this.getPrefixCls(),"-edit"),onClick:this.onEditClick,"aria-label":c},t||i.createElement(k.Z,{role:"button"}))):null}}},{key:"renderCopy",value:function(){var e=this.state.copied,t=this.props.copyable;if(t){var n=this.getPrefixCls(),r=t.tooltips,o=t.icon,a=Array.isArray(r)?r:[r],s=Array.isArray(o)?o:[o],l=e?te(a[1],this.copiedStr):te(a[0],this.copyStr),u=e?this.copiedStr:this.copyStr,f="string"===typeof l?l:u;return i.createElement(L.Z,{key:"copy",title:l},i.createElement(j,{className:c()("".concat(n,"-copy"),e&&"".concat(n,"-copy-success")),onClick:this.onCopyClick,"aria-label":f},e?te(s[1],i.createElement(N.Z,null),!0):te(s[0],i.createElement(P.Z,null),!0)))}}},{key:"renderEditInput",value:function(){var e=this.props,t=e.children,n=e.className,r=e.style,o=this.context.direction,a=this.getEditable(),c=a.maxLength,s=a.autoSize,l=a.onEnd,u=a.enterIcon;return i.createElement($,{value:"string"===typeof t?t:"",onSave:this.onEditChange,onCancel:this.onEditCancel,onEnd:l,prefixCls:this.getPrefixCls(),className:n,style:r,direction:o,maxLength:c,autoSize:s,enterIcon:u})}},{key:"renderOperations",value:function(e){return[this.renderExpand(e),this.renderEdit(),this.renderCopy()].filter((function(e){return e}))}},{key:"renderContent",value:function(){var e=this,t=this.state,n=t.ellipsisContent,a=t.isEllipsis,s=t.expanded,l=this.props,u=l.component,f=l.children,d=l.className,p=l.type,v=l.disabled,y=l.style,b=Q(l,["component","children","className","type","disabled","style"]),w=this.context.direction,x=this.getEllipsis(),C=x.rows,E=x.suffix,Z=x.tooltip,k=this.getEditable().triggerType,N=void 0===k?["icon"]:k,P=this.getPrefixCls(),M=(0,h.Z)(b,["prefixCls","editable","copyable","ellipsis","mark","code","delete","underline","strong","keyboard","italic"].concat((0,g.Z)(O.nf))),A=this.canUseCSSEllipsis(),R=1===C&&A,j=C&&C>1&&A,F=f;if(C&&a&&!s&&!A){var I=b.title,_=I||"";I||"string"!==typeof f&&"number"!==typeof f||(_=String(f)),_=_.slice(String(n||"").length),F=i.createElement(i.Fragment,null,n,i.createElement("span",{title:_,"aria-hidden":"true"},"..."),E),Z&&(F=i.createElement(L.Z,{title:!0===Z?f:Z},i.createElement("span",null,F)))}else F=i.createElement(i.Fragment,null,f,E);return F=function(e,t){var n=e.mark,r=e.code,o=e.underline,a=e.delete,c=e.strong,s=e.keyboard,l=e.italic,u=t;function f(e,t){e&&(u=i.createElement(t,{},u))}return f(c,"strong"),f(o,"u"),f(a,"del"),f(r,"code"),f(n,"mark"),f(s,"kbd"),f(l,"i"),u}(this.props,F),i.createElement(T.Z,{componentName:"Text"},(function(t){var n,s=t.edit,l=t.copy,f=t.copied,h=t.expand;return e.editStr=s,e.copyStr=l,e.copiedStr=f,e.expandStr=h,i.createElement(S.default,{onResize:e.resizeOnNextFrame,disabled:A},i.createElement(m,(0,r.Z)({className:c()((n={},(0,o.Z)(n,"".concat(P,"-").concat(p),p),(0,o.Z)(n,"".concat(P,"-disabled"),v),(0,o.Z)(n,"".concat(P,"-ellipsis"),C),(0,o.Z)(n,"".concat(P,"-single-line"),1===C&&!a),(0,o.Z)(n,"".concat(P,"-ellipsis-single-line"),R),(0,o.Z)(n,"".concat(P,"-ellipsis-multiple-line"),j),n),d),style:(0,r.Z)((0,r.Z)({},y),{WebkitLineClamp:j?C:void 0}),component:u,ref:e.contentRef,direction:w,onClick:-1!==N.indexOf("text")?e.onEditClick:function(){}},M),F,e.renderOperations()))}))}},{key:"render",value:function(){return this.getEditable().editing?this.renderEditInput():this.renderContent()}}],[{key:"getDerivedStateFromProps",value:function(e){var t=e.children,n=e.editable;return(0,u.Z)(!n||"string"===typeof t,"Typography","When `editable` is enabled, the `children` should use string."),{}}}]),n}(i.Component);ne.contextType=l.E_,ne.defaultProps={children:""};var re=ne,oe=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},ie=function(e){var t=e.ellipsis,n=oe(e,["ellipsis"]),o=i.useMemo((function(){return t&&"object"===(0,v.Z)(t)?(0,h.Z)(t,["expandable","rows"]):t}),[t]);return(0,u.Z)("object"!==(0,v.Z)(t)||!t||!("expandable"in t)&&!("rows"in t),"Typography.Text","`ellipsis` do not support `expandable` or `rows` props."),i.createElement(re,(0,r.Z)({},n,{ellipsis:o,component:"span"}))},ae=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},ce=function(e,t){var n=e.ellipsis,o=e.rel,a=ae(e,["ellipsis","rel"]);(0,u.Z)("object"!==(0,v.Z)(n),"Typography.Link","`ellipsis` only supports boolean value.");var c=i.useRef(null);i.useImperativeHandle(t,(function(){var e;return null===(e=c.current)||void 0===e?void 0:e.contentRef.current}));var s=(0,r.Z)((0,r.Z)({},a),{rel:void 0===o&&"_blank"===a.target?"noopener noreferrer":o});return delete s.navigate,i.createElement(re,(0,r.Z)({},s,{ref:c,ellipsis:!!n,component:"a"}))},se=i.forwardRef(ce),le=n(93355),ue=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},fe=(0,le.a)(1,2,3,4,5),de=function(e){var t,n=e.level,o=void 0===n?1:n,a=ue(e,["level"]);return-1!==fe.indexOf(o)?t="h".concat(o):((0,u.Z)(!1,"Typography.Title","Title only accept `1 | 2 | 3 | 4 | 5` as `level` value. And `5` need 4.6.0+ version."),t="h1"),i.createElement(re,(0,r.Z)({},a,{component:t}))},pe=function(e){return i.createElement(re,(0,r.Z)({},e,{component:"div"}))},me=m;me.Text=ie,me.Link=se,me.Title=de,me.Paragraph=pe;var ve=me},94184:function(e,t){var n;!function(){"use strict";var r={}.hasOwnProperty;function o(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t];if(n){var i=typeof n;if("string"===i||"number"===i)e.push(n);else if(Array.isArray(n)){if(n.length){var a=o.apply(null,n);a&&e.push(a)}}else if("object"===i)if(n.toString===Object.prototype.toString)for(var c in n)r.call(n,c)&&n[c]&&e.push(c);else e.push(n.toString())}}return e.join(" ")}e.exports?(o.default=o,e.exports=o):void 0===(n=function(){return o}.apply(t,[]))||(e.exports=n)}()},20640:function(e,t,n){"use strict";var r=n(11742),o={"text/plain":"Text","text/html":"Url",default:"Text"};e.exports=function(e,t){var n,i,a,c,s,l,u=!1;t||(t={}),n=t.debug||!1;try{if(a=r(),c=document.createRange(),s=document.getSelection(),(l=document.createElement("span")).textContent=e,l.style.all="unset",l.style.position="fixed",l.style.top=0,l.style.clip="rect(0, 0, 0, 0)",l.style.whiteSpace="pre",l.style.webkitUserSelect="text",l.style.MozUserSelect="text",l.style.msUserSelect="text",l.style.userSelect="text",l.addEventListener("copy",(function(r){if(r.stopPropagation(),t.format)if(r.preventDefault(),"undefined"===typeof r.clipboardData){n&&console.warn("unable to use e.clipboardData"),n&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var i=o[t.format]||o.default;window.clipboardData.setData(i,e)}else r.clipboardData.clearData(),r.clipboardData.setData(t.format,e);t.onCopy&&(r.preventDefault(),t.onCopy(r.clipboardData))})),document.body.appendChild(l),c.selectNodeContents(l),s.addRange(c),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");u=!0}catch(f){n&&console.error("unable to copy using execCommand: ",f),n&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(t.format||"text",e),t.onCopy&&t.onCopy(window.clipboardData),u=!0}catch(f){n&&console.error("unable to copy using clipboardData: ",f),n&&console.error("falling back to prompt"),i=function(e){var t=(/mac os x/i.test(navigator.userAgent)?"\u2318":"Ctrl")+"+C";return e.replace(/#{\s*key\s*}/g,t)}("message"in t?t.message:"Copy to clipboard: #{key}, Enter"),window.prompt(i,e)}}finally{s&&("function"==typeof s.removeRange?s.removeRange(c):s.removeAllRanges()),l&&document.body.removeChild(l),a()}return u}},13882:function(e,t,n){"use strict";function r(e,t){if(t.length<e)throw new TypeError(e+" argument"+(e>1?"s":"")+" required, but only "+t.length+" present")}n.d(t,{Z:function(){return r}})},40364:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(19013),o=n(13882);function i(e,t){return(0,o.Z)(2,arguments),(0,r.Z)(e).getTime()-(0,r.Z)(t).getTime()}var a={ceil:Math.ceil,round:Math.round,floor:Math.floor,trunc:function(e){return e<0?Math.ceil(e):Math.floor(e)}};function c(e){return e?a[e]:a.trunc}function s(e,t,n){(0,o.Z)(2,arguments);var r=i(e,t)/1e3;return c(null===n||void 0===n?void 0:n.roundingMethod)(r)}},19013:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(13882);function o(e){(0,r.Z)(1,arguments);var t=Object.prototype.toString.call(e);return e instanceof Date||"object"===typeof e&&"[object Date]"===t?new Date(e.getTime()):"number"===typeof e||"[object Number]"===t?new Date(e):("string"!==typeof e&&"[object String]"!==t||"undefined"===typeof console||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule"),console.warn((new Error).stack)),new Date(NaN))}},30845:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return i}});var r=Number.isNaN||function(e){return"number"===typeof e&&e!==e};function o(e,t){if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++)if(o=e[n],i=t[n],!(o===i||r(o)&&r(i)))return!1;var o,i;return!0}function i(e,t){void 0===t&&(t=o);var n=null;function r(){for(var r=[],o=0;o<arguments.length;o++)r[o]=arguments[o];if(n&&n.lastThis===this&&t(r,n.lastArgs))return n.lastResult;var i=e.apply(this,r);return n={lastResult:i,lastArgs:r,lastThis:this},i}return r.clear=function(){n=null},r}},76363:function(e,t,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/_app",function(){return n(99651)}])},78464:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r,o=n(85893),i=(n(67294),n(94184)),a=n.n(i);function c(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e){var t=e.status||{},n=t.type,i=t.icon,s=t.message,l=a()((c(r={"status-container":!0},"status-".concat(n),n),c(r,"empty",!s),r));return(0,o.jsxs)("span",{className:l,children:[i?(0,o.jsx)("span",{className:"status-icon",children:i}):null,s?(0,o.jsx)("span",{className:"status-message",children:s}):null]})}},50197:function(e,t,n){"use strict";n.d(t,{Sk:function(){return b},xA:function(){return w},ZP:function(){return x}});var r=n(28520),o=n.n(r),i=n(85893),a=n(71577),c=n(94184),s=n.n(c),l=n(67294),u=n(25964),f=n(83200),d=n(35159),p=n(78464),m=n(48419);function v(e,t,n,r,o,i,a){try{var c=e[i](a),s=c.value}catch(l){return void n(l)}c.done?t(s):Promise.resolve(s).then(r,o)}function h(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function g(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"===typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),r.forEach((function(t){h(e,t,n[t])}))}return e}function y(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var b="textarea",w="url";function x(e){var t=(0,l.useState)(null),n=t[0],r=t[1],c=(0,l.useState)(!1),h=c[0],b=c[1],w=((0,l.useContext)(d.aC)||{}).setFieldInConfigState,x=null,C=e.apiPath,E=e.configPath,Z=void 0===E?"":E,k=e.initialValue,N=e.useTrim,P=e.useTrimLead,S=y(e,["apiPath","configPath","initialValue","useTrim","useTrimLead"]),O=S.fieldName,T=S.required,M=S.tip,A=S.status,R=S.value,j=S.onChange,F=S.onSubmit,I=function(){r(null),b(!1),clearTimeout(x),x=null};(0,l.useEffect)((function(){T&&(""===R||null===R)||R===k?b(!1):(I(),b(!0))}),[R]);var L,_=(L=o().mark((function e(){return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(T&&""!==R||R!==k)){e.next=6;break}return r((0,f.kg)(f.Jk)),e.next=4,(0,u.Si)({apiPath:C,data:{value:R},onSuccess:function(){w({fieldName:O,value:R,path:Z}),r((0,f.kg)(f.zv))},onError:function(e){r((0,f.kg)(f.Un,"There was an error: ".concat(e)))}});case 4:x=setTimeout(I,u.sI),F&&F();case 6:case"end":return e.stop()}}),e)})),function(){var e=this,t=arguments;return new Promise((function(n,r){var o=L.apply(e,t);function i(e){v(o,n,r,i,a,"next",e)}function a(e){v(o,n,r,i,a,"throw",e)}i(void 0)}))}),D=s()({"textfield-with-submit-container":!0,submittable:h});return(0,i.jsxs)("div",{className:D,children:[(0,i.jsx)("div",{className:"textfield-component",children:(0,i.jsx)(m.ZP,g({},S,{onSubmit:null,onBlur:function(e){var t=e.value;j&&T&&""===t&&j({fieldName:O,value:k})},onChange:function(e){var t=e.fieldName,n=e.value;if(j){var r=n;N?r=n.trim():P&&(r=n.replace(/^\s+/g,"")),j({fieldName:t,value:r})}}}))}),(0,i.jsxs)("div",{className:"formfield-container lower-container",children:[(0,i.jsx)("p",{className:"label-spacer"}),(0,i.jsxs)("div",{className:"lower-content",children:[(0,i.jsx)("div",{className:"field-tip",children:M}),(0,i.jsx)(p.Z,{status:A||n}),(0,i.jsx)("div",{className:"update-button-container",children:(0,i.jsx)(a.Z,{type:"primary",size:"small",className:"submit-button",onClick:_,disabled:!h,children:"Update"})})]})]})]})}x.defaultProps={configPath:"",initialValue:""}},48419:function(e,t,n){"use strict";n.d(t,{mG:function(){return te},A8:function(){return ee},Kx:function(){return J},Sk:function(){return ne},xA:function(){return re},ZP:function(){return oe}});var r=n(85893),o=n(67294),i=n(94184),a=n.n(i),c=n(87462),s=n(4942),l=n(97685),u=n(71002),f=n(91),d=n(15105),p=n(42550),m=n(15671),v=n(43144);function h(){return"function"===typeof BigInt}function g(e){var t=e.trim(),n=t.startsWith("-");n&&(t=t.slice(1)),(t=t.replace(/(\.\d*[^0])0*$/,"$1").replace(/\.0*$/,"").replace(/^0+/,"")).startsWith(".")&&(t="0".concat(t));var r=t||"0",o=r.split("."),i=o[0]||"0",a=o[1]||"0";"0"===i&&"0"===a&&(n=!1);var c=n?"-":"";return{negative:n,negativeStr:c,trimStr:r,integerStr:i,decimalStr:a,fullStr:"".concat(c).concat(r)}}function y(e){var t=String(e);return!Number.isNaN(Number(t))&&t.includes("e")}function b(e){var t=String(e);if(y(e)){var n=Number(t.slice(t.indexOf("e-")+2)),r=t.match(/\.(\d+)/);return(null===r||void 0===r?void 0:r[1])&&(n+=r[1].length),n}return t.includes(".")&&x(t)?t.length-t.indexOf(".")-1:0}function w(e){var t=String(e);if(y(e)){if(e>Number.MAX_SAFE_INTEGER)return String(h()?BigInt(e).toString():Number.MAX_SAFE_INTEGER);if(e<Number.MIN_SAFE_INTEGER)return String(h()?BigInt(e).toString():Number.MIN_SAFE_INTEGER);t=e.toFixed(b(t))}return g(t).fullStr}function x(e){return"number"===typeof e?!Number.isNaN(e):!!e&&(/^\s*-?\d+(\.\d+)?\s*$/.test(e)||/^\s*-?\d+\.\s*$/.test(e)||/^\s*-?\.\d+\s*$/.test(e))}var C=function(){function e(t){(0,m.Z)(this,e),this.origin="",this.number=void 0,this.empty=void 0,(t||0===t)&&String(t).trim()?(this.origin=String(t),this.number=Number(t)):this.empty=!0}return(0,v.Z)(e,[{key:"negate",value:function(){return new e(-this.toNumber())}},{key:"add",value:function(t){if(this.isInvalidate())return new e(t);var n=Number(t);if(Number.isNaN(n))return this;var r=this.number+n;if(r>Number.MAX_SAFE_INTEGER)return new e(Number.MAX_SAFE_INTEGER);if(r<Number.MIN_SAFE_INTEGER)return new e(Number.MIN_SAFE_INTEGER);var o=Math.max(b(this.number),b(n));return new e(r.toFixed(o))}},{key:"isEmpty",value:function(){return this.empty}},{key:"isNaN",value:function(){return Number.isNaN(this.number)}},{key:"isInvalidate",value:function(){return this.isEmpty()||this.isNaN()}},{key:"equals",value:function(e){return this.toNumber()===(null===e||void 0===e?void 0:e.toNumber())}},{key:"lessEquals",value:function(e){return this.add(e.negate().toString()).toNumber()<=0}},{key:"toNumber",value:function(){return this.number}},{key:"toString",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return e?this.isInvalidate()?"":w(this.number):this.origin}}]),e}(),E=function(){function e(t){if((0,m.Z)(this,e),this.origin="",this.negative=void 0,this.integer=void 0,this.decimal=void 0,this.decimalLen=void 0,this.empty=void 0,this.nan=void 0,(t||0===t)&&String(t).trim())if(this.origin=String(t),"-"!==t){var n=t;if(y(n)&&(n=Number(n)),x(n="string"===typeof n?n:w(n))){var r=g(n);this.negative=r.negative;var o=r.trimStr.split(".");this.integer=BigInt(o[0]);var i=o[1]||"0";this.decimal=BigInt(i),this.decimalLen=i.length}else this.nan=!0}else this.nan=!0;else this.empty=!0}return(0,v.Z)(e,[{key:"getMark",value:function(){return this.negative?"-":""}},{key:"getIntegerStr",value:function(){return this.integer.toString()}},{key:"getDecimalStr",value:function(){return this.decimal.toString().padStart(this.decimalLen,"0")}},{key:"alignDecimal",value:function(e){var t="".concat(this.getMark()).concat(this.getIntegerStr()).concat(this.getDecimalStr().padEnd(e,"0"));return BigInt(t)}},{key:"negate",value:function(){var t=new e(this.toString());return t.negative=!t.negative,t}},{key:"add",value:function(t){if(this.isInvalidate())return new e(t);var n=new e(t);if(n.isInvalidate())return this;var r=Math.max(this.getDecimalStr().length,n.getDecimalStr().length),o=g((this.alignDecimal(r)+n.alignDecimal(r)).toString()),i=o.negativeStr,a=o.trimStr,c="".concat(i).concat(a.padStart(r+1,"0"));return new e("".concat(c.slice(0,-r),".").concat(c.slice(-r)))}},{key:"isEmpty",value:function(){return this.empty}},{key:"isNaN",value:function(){return this.nan}},{key:"isInvalidate",value:function(){return this.isEmpty()||this.isNaN()}},{key:"equals",value:function(e){return this.toString()===(null===e||void 0===e?void 0:e.toString())}},{key:"lessEquals",value:function(e){return this.add(e.negate().toString()).toNumber()<=0}},{key:"toNumber",value:function(){return this.isNaN()?NaN:Number(this.toString())}},{key:"toString",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return e?this.isInvalidate()?"":g("".concat(this.getMark()).concat(this.getIntegerStr(),".").concat(this.getDecimalStr())).fullStr:this.origin}}]),e}();function Z(e){return h()?new E(e):new C(e)}function k(e,t,n){if(""===e)return"";var r=g(e),o=r.negativeStr,i=r.integerStr,a=r.decimalStr,c="".concat(t).concat(a),s="".concat(o).concat(i);if(n>=0){var l=Number(a[n]);return l>=5?k(Z(e).add("0.".concat("0".repeat(n)).concat(10-l)).toString(),t,n):0===n?s:"".concat(s).concat(t).concat(a.padEnd(n,"0").slice(0,n))}return".0"===c?s:"".concat(s).concat(c)}var N=n(31131);function P(e){var t=e.prefixCls,n=e.upNode,r=e.downNode,i=e.upDisabled,l=e.downDisabled,u=e.onStep,f=o.useRef(),d=o.useRef();d.current=u;var p=function(e,t){e.preventDefault(),d.current(t),f.current=setTimeout((function e(){d.current(t),f.current=setTimeout(e,200)}),600)},m=function(){clearTimeout(f.current)};if(o.useEffect((function(){return m}),[]),(0,N.Z)())return null;var v="".concat(t,"-handler"),h=a()(v,"".concat(v,"-up"),(0,s.Z)({},"".concat(v,"-up-disabled"),i)),g=a()(v,"".concat(v,"-down"),(0,s.Z)({},"".concat(v,"-down-disabled"),l)),y={unselectable:"on",role:"button",onMouseUp:m,onMouseLeave:m};return o.createElement("div",{className:"".concat(v,"-wrap")},o.createElement("span",(0,c.Z)({},y,{onMouseDown:function(e){p(e,!0)},"aria-label":"Increase Value","aria-disabled":i,className:h}),n||o.createElement("span",{unselectable:"on",className:"".concat(t,"-handler-up-inner")})),o.createElement("span",(0,c.Z)({},y,{onMouseDown:function(e){p(e,!1)},"aria-label":"Decrease Value","aria-disabled":l,className:g}),r||o.createElement("span",{unselectable:"on",className:"".concat(t,"-handler-down-inner")})))}var S=n(80334);var O=(0,n(98924).Z)()?o.useLayoutEffect:o.useEffect;function T(e,t){var n=o.useRef(!1);O((function(){if(n.current)return e();n.current=!0}),t)}var M=n(75164),A=["prefixCls","className","style","min","max","step","defaultValue","value","disabled","readOnly","upHandler","downHandler","keyboard","controls","stringMode","parser","formatter","precision","decimalSeparator","onChange","onInput","onPressEnter","onStep"],R=function(e,t){return e||t.isEmpty()?t.toString():t.toNumber()},j=function(e){var t=Z(e);return t.isInvalidate()?null:t},F=o.forwardRef((function(e,t){var n,r=e.prefixCls,i=void 0===r?"rc-input-number":r,m=e.className,v=e.style,h=e.min,g=e.max,y=e.step,C=void 0===y?1:y,E=e.defaultValue,N=e.value,O=e.disabled,F=e.readOnly,I=e.upHandler,L=e.downHandler,_=e.keyboard,D=e.controls,V=void 0===D||D,z=e.stringMode,H=e.parser,U=e.formatter,B=e.precision,q=e.decimalSeparator,W=e.onChange,$=e.onInput,K=e.onPressEnter,G=e.onStep,Y=(0,f.Z)(e,A),X="".concat(i,"-input"),Q=o.useRef(null),J=o.useState(!1),ee=(0,l.Z)(J,2),te=ee[0],ne=ee[1],re=o.useRef(!1),oe=o.useRef(!1),ie=o.useState((function(){return Z(null!==N&&void 0!==N?N:E)})),ae=(0,l.Z)(ie,2),ce=ae[0],se=ae[1];var le=o.useCallback((function(e,t){if(!t)return B>=0?B:Math.max(b(e),b(C))}),[B,C]),ue=o.useCallback((function(e){var t=String(e);if(H)return H(t);var n=t;return q&&(n=n.replace(q,".")),n.replace(/[^\w.-]+/g,"")}),[H,q]),fe=o.useRef(""),de=o.useCallback((function(e,t){if(U)return U(e,{userTyping:t,input:String(fe.current)});var n="number"===typeof e?w(e):e;if(!t){var r=le(n,t);if(x(n)&&(q||r>=0))n=k(n,q||".",r)}return n}),[U,le,q]),pe=o.useState((function(){var e=null!==E&&void 0!==E?E:N;return ce.isInvalidate()&&["string","number"].includes((0,u.Z)(e))?Number.isNaN(e)?"":e:de(ce.toString(),!1)})),me=(0,l.Z)(pe,2),ve=me[0],he=me[1];function ge(e,t){he(de(e.isInvalidate()?e.toString(!1):e.toString(!t),t))}fe.current=ve;var ye=o.useMemo((function(){return j(g)}),[g]),be=o.useMemo((function(){return j(h)}),[h]),we=o.useMemo((function(){return!(!ye||!ce||ce.isInvalidate())&&ye.lessEquals(ce)}),[ye,ce]),xe=o.useMemo((function(){return!(!be||!ce||ce.isInvalidate())&&ce.lessEquals(be)}),[be,ce]),Ce=function(e,t){var n=(0,o.useRef)(null);return[function(){try{var t=e.selectionStart,r=e.selectionEnd,o=e.value,i=o.substring(0,t),a=o.substring(r);n.current={start:t,end:r,value:o,beforeTxt:i,afterTxt:a}}catch(c){}},function(){if(e&&n.current&&t)try{var r=e.value,o=n.current,i=o.beforeTxt,a=o.afterTxt,c=o.start,s=r.length;if(r.endsWith(a))s=r.length-n.current.afterTxt.length;else if(r.startsWith(i))s=i.length;else{var l=i[c-1],u=r.indexOf(l,c-1);-1!==u&&(s=u+1)}e.setSelectionRange(s,s)}catch(f){(0,S.ZP)(!1,"Something warning of cursor restore. Please fire issue about this: ".concat(f.message))}}]}(Q.current,te),Ee=(0,l.Z)(Ce,2),Ze=Ee[0],ke=Ee[1],Ne=function(e){return ye&&!e.lessEquals(ye)?ye:be&&!be.lessEquals(e)?be:null},Pe=function(e){return!Ne(e)},Se=function(e,t){var n,r=e,o=Pe(r)||r.isEmpty();if(r.isEmpty()||t||(r=Ne(r)||r,o=!0),!F&&!O&&o){var i=r.toString(),a=le(i,t);return a>=0&&(r=Z(k(i,".",a))),r.equals(ce)||(n=r,void 0===N&&se(n),null===W||void 0===W||W(r.isEmpty()?null:R(z,r)),void 0===N&&ge(r,t)),r}return ce},Oe=function(){var e=(0,o.useRef)(0),t=function(){M.Z.cancel(e.current)};return(0,o.useEffect)((function(){return t}),[]),function(n){t(),e.current=(0,M.Z)((function(){n()}))}}(),Te=function e(t){if(Ze(),he(t),!oe.current){var n=Z(ue(t));n.isNaN()||Se(n,!0)}null===$||void 0===$||$(t),Oe((function(){var n=t;H||(n=t.replace(/\u3002/g,".")),n!==t&&e(n)}))},Me=function(e){var t;if(!(e&&we||!e&&xe)){re.current=!1;var n=Z(C);e||(n=n.negate());var r=(ce||Z(0)).add(n.toString()),o=Se(r,!1);null===G||void 0===G||G(R(z,o),{offset:C,type:e?"up":"down"}),null===(t=Q.current)||void 0===t||t.focus()}},Ae=function(e){var t=Z(ue(ve)),n=t;n=t.isNaN()?ce:Se(t,e),void 0!==N?ge(ce,!1):n.isNaN()||ge(n,!1)};return T((function(){ce.isInvalidate()||ge(ce,!1)}),[B]),T((function(){var e=Z(N);se(e);var t=Z(ue(ve));e.equals(t)&&re.current&&!U||ge(e,re.current)}),[N]),T((function(){U&&ke()}),[ve]),o.createElement("div",{className:a()(i,m,(n={},(0,s.Z)(n,"".concat(i,"-focused"),te),(0,s.Z)(n,"".concat(i,"-disabled"),O),(0,s.Z)(n,"".concat(i,"-readonly"),F),(0,s.Z)(n,"".concat(i,"-not-a-number"),ce.isNaN()),(0,s.Z)(n,"".concat(i,"-out-of-range"),!ce.isInvalidate()&&!Pe(ce)),n)),style:v,onFocus:function(){ne(!0)},onBlur:function(){Ae(!1),ne(!1),re.current=!1},onKeyDown:function(e){var t=e.which;re.current=!0,t===d.Z.ENTER&&(oe.current||(re.current=!1),Ae(!1),null===K||void 0===K||K(e)),!1!==_&&!oe.current&&[d.Z.UP,d.Z.DOWN].includes(t)&&(Me(d.Z.UP===t),e.preventDefault())},onKeyUp:function(){re.current=!1},onCompositionStart:function(){oe.current=!0},onCompositionEnd:function(){oe.current=!1,Te(Q.current.value)}},V&&o.createElement(P,{prefixCls:i,upNode:I,downNode:L,upDisabled:we,downDisabled:xe,onStep:Me}),o.createElement("div",{className:"".concat(X,"-wrap")},o.createElement("input",(0,c.Z)({autoComplete:"off",role:"spinbutton","aria-valuemin":h,"aria-valuemax":g,"aria-valuenow":ce.isInvalidate()?null:ce.toString(),step:C},Y,{ref:(0,p.sQ)(Q,t),className:X,value:ve,onChange:function(e){Te(e.target.value)},disabled:O,readOnly:F}))))}));F.displayName="InputNumber";var I=F,L=n(1413),_={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M890.5 755.3L537.9 269.2c-12.8-17.6-39-17.6-51.7 0L133.5 755.3A8 8 0 00140 768h75c5.1 0 9.9-2.5 12.9-6.6L512 369.8l284.1 391.6c3 4.1 7.8 6.6 12.9 6.6h75c6.5 0 10.3-7.4 6.5-12.7z"}}]},name:"up",theme:"outlined"},D=n(42135),V=function(e,t){return o.createElement(D.Z,(0,L.Z)((0,L.Z)({},e),{},{ref:t,icon:_}))};V.displayName="UpOutlined";var z=o.forwardRef(V),H=n(80882),U=n(59844),B=n(97647),q=n(96159),W=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},$=o.forwardRef((function(e,t){var n,r=o.useContext(U.E_),i=r.getPrefixCls,u=r.direction,f=o.useContext(B.Z),d=o.useState(!1),p=(0,l.Z)(d,2),m=p[0],v=p[1],h=o.useRef(null);o.useImperativeHandle(t,(function(){return h.current}));var g=e.className,y=e.size,b=e.prefixCls,w=e.addonBefore,x=e.addonAfter,C=e.prefix,E=e.bordered,Z=void 0===E||E,k=e.readOnly,N=W(e,["className","size","prefixCls","addonBefore","addonAfter","prefix","bordered","readOnly"]),P=i("input-number",b),S=o.createElement(z,{className:"".concat(P,"-handler-up-inner")}),O=o.createElement(H.Z,{className:"".concat(P,"-handler-down-inner")}),T=y||f,M=a()((n={},(0,s.Z)(n,"".concat(P,"-lg"),"large"===T),(0,s.Z)(n,"".concat(P,"-sm"),"small"===T),(0,s.Z)(n,"".concat(P,"-rtl"),"rtl"===u),(0,s.Z)(n,"".concat(P,"-readonly"),k),(0,s.Z)(n,"".concat(P,"-borderless"),!Z),n),g),A=o.createElement(I,(0,c.Z)({ref:h,className:M,upHandler:S,downHandler:O,prefixCls:P,readOnly:k},N));if(null!=C){var R,j=a()("".concat(P,"-affix-wrapper"),(R={},(0,s.Z)(R,"".concat(P,"-affix-wrapper-focused"),m),(0,s.Z)(R,"".concat(P,"-affix-wrapper-disabled"),e.disabled),(0,s.Z)(R,"".concat(P,"-affix-wrapper-sm"),"small"===f),(0,s.Z)(R,"".concat(P,"-affix-wrapper-lg"),"large"===f),(0,s.Z)(R,"".concat(P,"-affix-wrapper-rtl"),"rtl"===u),(0,s.Z)(R,"".concat(P,"-affix-wrapper-readonly"),k),(0,s.Z)(R,"".concat(P,"-affix-wrapper-borderless"),!Z),(0,s.Z)(R,"".concat(g),!(w||x)&&g),R));A=o.createElement("div",{className:j,style:e.style,onMouseUp:function(){return h.current.focus()}},o.createElement("span",{className:"".concat(P,"-prefix")},C),(0,q.Tm)(A,{style:null,value:e.value,onFocus:function(t){var n;v(!0),null===(n=e.onFocus)||void 0===n||n.call(e,t)},onBlur:function(t){var n;v(!1),null===(n=e.onBlur)||void 0===n||n.call(e,t)}}))}if(null!=w||null!=x){var F,L="".concat(P,"-group"),_="".concat(L,"-addon"),D=w?o.createElement("div",{className:_},w):null,V=x?o.createElement("div",{className:_},x):null,$=a()("".concat(P,"-wrapper"),L,(0,s.Z)({},"".concat(L,"-rtl"),"rtl"===u)),K=a()("".concat(P,"-group-wrapper"),(F={},(0,s.Z)(F,"".concat(P,"-group-wrapper-sm"),"small"===f),(0,s.Z)(F,"".concat(P,"-group-wrapper-lg"),"large"===f),(0,s.Z)(F,"".concat(P,"-group-wrapper-rtl"),"rtl"===u),F),g);A=o.createElement("div",{className:K,style:e.style},o.createElement("div",{className:$},D,(0,q.Tm)(A,{style:null}),V))}return A})),K=n(69677),G=n(78464);function Y(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function X(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"===typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),r.forEach((function(t){Y(e,t,n[t])}))}return e}var Q,J="default",ee="password",te="numeric",ne="textarea",re="url";function oe(e){var t=e.className,n=e.disabled,o=e.fieldName,i=e.label,c=e.maxLength,s=e.onBlur,l=e.onChange,u=e.onPressEnter,f=e.pattern,d=e.placeholder,p=e.required,m=e.status,v=e.tip,h=e.type,g=e.useTrim,y=e.value,b=K.Z,w={};h===ne?(b=K.Z.TextArea,w={autoSize:!0}):h===ee?(b=K.Z.Password,w={visibilityToggle:!0}):h===te?(b=$,w={type:"number",min:1,max:Math.pow(10,c)-1}):h===re&&(w={type:"url",pattern:f});var x="field-".concat(o),C=(m||{}).type,E=a()((Y(Q={"formfield-container":!0,"textfield-container":!0},"type-".concat(h),!0),Y(Q,"required",p),Y(Q,"status-".concat(C),m),Q));return(0,r.jsxs)("div",{className:E,children:[i?(0,r.jsx)("div",{className:"label-side",children:(0,r.jsx)("label",{htmlFor:x,className:"formfield-label",children:i})}):null,(0,r.jsxs)("div",{className:"input-side",children:[(0,r.jsx)("div",{className:"input-group",children:(0,r.jsx)(b,X({id:x,className:"field ".concat(t," ").concat(x)},w,h!==te&&{allowClear:!0},{placeholder:d,maxLength:c,onChange:function(e){if(l){var t=h===te?e:e.target.value;l({fieldName:o,value:g?t.trim():t})}},onBlur:function(e){var t=e.target.value;s&&s({value:t})},onPressEnter:function(){u&&u()},disabled:n,value:y}))}),(0,r.jsx)(G.Z,{status:m}),(0,r.jsx)("p",{className:"field-tip",children:v})]})]})}oe.defaultProps={className:"",disabled:!1,label:"",maxLength:255,placeholder:"",required:!1,status:null,tip:"",type:J,value:"",onSubmit:function(){},onBlur:function(){},onChange:function(){},onPressEnter:function(){}}},92659:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(85893);n(67294);function o(){return(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 95.68623352050781 104.46271514892578",className:"logo-svg",children:(0,r.jsx)("g",{transform:"matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)",children:(0,r.jsx)("g",{children:(0,r.jsxs)("g",{children:[(0,r.jsx)("g",{children:(0,r.jsxs)("g",{transform:"matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)",children:[(0,r.jsxs)("g",{transform:"matrix(1 0 0 1 0 0)",children:[(0,r.jsx)("defs",{children:(0,r.jsxs)("linearGradient",{x1:"0",y1:"0",x2:"0",y2:"1",id:"gradient120",gradientTransform:"rotate(-90 .5 .5)",children:[(0,r.jsx)("stop",{offset:"0",stopColor:"#1f2022",stopOpacity:"1"}),(0,r.jsx)("stop",{offset:"1",stopColor:"#635e69",stopOpacity:"1"})]})}),(0,r.jsx)("path",{fill:"url(#gradient120)",d:"M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"})]}),(0,r.jsxs)("g",{transform:"matrix(1 0 0 1 0 0)",children:[(0,r.jsx)("defs",{children:(0,r.jsxs)("linearGradient",{x1:"0",y1:"0",x2:"0",y2:"1",id:"gradient121",gradientTransform:"rotate(-180 .5 .5)",children:[(0,r.jsx)("stop",{offset:"0",stopColor:"#2087e2",stopOpacity:"1"}),(0,r.jsx)("stop",{offset:"1",stopColor:"#b63fff",stopOpacity:"1"})]})}),(0,r.jsx)("path",{fill:"url(#gradient121)",d:"M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"})]}),(0,r.jsxs)("g",{transform:"matrix(1 0 0 1 0 0)",children:[(0,r.jsx)("defs",{children:(0,r.jsxs)("linearGradient",{x1:"0",y1:"0",x2:"0",y2:"1",id:"gradient122",gradientTransform:"rotate(-90 .5 .5)",children:[(0,r.jsx)("stop",{offset:"0",stopColor:"#100f0f",stopOpacity:"1"}),(0,r.jsx)("stop",{offset:"1",stopColor:"#49261F",stopOpacity:"1"})]})}),(0,r.jsx)("path",{fill:"url(#gradient122)",d:"M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"})]}),(0,r.jsxs)("g",{transform:"matrix(1 0 0 1 0 0)",children:[(0,r.jsx)("defs",{children:(0,r.jsxs)("linearGradient",{x1:"0",y1:"0",x2:"0",y2:"1",id:"gradient123",gradientTransform:"rotate(-180 .5 .5)",children:[(0,r.jsx)("stop",{offset:"0",stopColor:"#222020",stopOpacity:"1"}),(0,r.jsx)("stop",{offset:"1",stopColor:"#49261F",stopOpacity:"1"})]})}),(0,r.jsx)("path",{fill:"url(#gradient123)",d:"M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"})]}),(0,r.jsxs)("g",{transform:"matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)",children:[(0,r.jsx)("defs",{children:(0,r.jsxs)("linearGradient",{x1:"0",y1:"0",x2:"0",y2:"1",id:"gradient124",gradientTransform:"rotate(-180 .5 .5)",children:[" ",(0,r.jsx)("stop",{offset:"0",stopColor:"#1e1c1c",stopOpacity:"1"}),(0,r.jsx)("stop",{offset:"1",stopColor:"#49261F",stopOpacity:"1"})]})}),(0,r.jsx)("path",{fill:"url(#gradient124)",d:"M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"})]}),(0,r.jsxs)("g",{transform:"matrix(1 0 0 1 0 0)",children:[(0,r.jsx)("defs",{children:(0,r.jsxs)("linearGradient",{x1:"0",y1:"0",x2:"0",y2:"1",id:"gradient125",gradientTransform:"rotate(-360 .5 .5)",children:[(0,r.jsx)("stop",{offset:"0",stopColor:"#FFFFFF",stopOpacity:"0.5"}),(0,r.jsx)("stop",{offset:"1",stopColor:"#FFFFFF",stopOpacity:"0.2"})]})}),(0,r.jsx)("path",{fill:"url(#gradient125)",d:"M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"})]}),(0,r.jsxs)("g",{transform:"matrix(1 0 0 1 0 0)",children:[(0,r.jsx)("defs",{children:(0,r.jsxs)("linearGradient",{x1:"0",y1:"0",x2:"0",y2:"1",id:"gradient126",gradientTransform:"rotate(-360 .5 .5)",children:[(0,r.jsx)("stop",{offset:"0",stopColor:"#FFFFFF",stopOpacity:"0.5"}),(0,r.jsx)("stop",{offset:"1",stopColor:"#FFFFFF",stopOpacity:"0.2"})]})}),(0,r.jsx)("path",{fill:"url(#gradient126)",d:"M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"})]})]})}),(0,r.jsx)("g",{transform:"matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)",children:(0,r.jsx)("path",{fill:"#000000",fillOpacity:"1",d:""})})]})})})})}},48418:function(e,t,n){"use strict";function r(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,o=!1,i=void 0;try{for(var a,c=e[Symbol.iterator]();!(r=(a=c.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(s){o=!0,i=s}finally{try{r||null==c.return||c.return()}finally{if(o)throw i}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}t.default=void 0;var o,i=(o=n(67294))&&o.__esModule?o:{default:o},a=n(76273),c=n(90387),s=n(57190);var l={};function u(e,t,n,r){if(e&&a.isLocalURL(t)){e.prefetch(t,n,r).catch((function(e){0}));var o=r&&"undefined"!==typeof r.locale?r.locale:e&&e.locale;l[t+"%"+n+(o?"%"+o:"")]=!0}}var f=function(e){var t,n=!1!==e.prefetch,o=c.useRouter(),f=i.default.useMemo((function(){var t=r(a.resolveHref(o,e.href,!0),2),n=t[0],i=t[1];return{href:n,as:e.as?a.resolveHref(o,e.as):i||n}}),[o,e.href,e.as]),d=f.href,p=f.as,m=e.children,v=e.replace,h=e.shallow,g=e.scroll,y=e.locale;"string"===typeof m&&(m=i.default.createElement("a",null,m));var b=(t=i.default.Children.only(m))&&"object"===typeof t&&t.ref,w=r(s.useIntersection({rootMargin:"200px"}),2),x=w[0],C=w[1],E=i.default.useCallback((function(e){x(e),b&&("function"===typeof b?b(e):"object"===typeof b&&(b.current=e))}),[b,x]);i.default.useEffect((function(){var e=C&&n&&a.isLocalURL(d),t="undefined"!==typeof y?y:o&&o.locale,r=l[d+"%"+p+(t?"%"+t:"")];e&&!r&&u(o,d,p,{locale:t})}),[p,d,C,y,n,o]);var Z={ref:E,onClick:function(e){t.props&&"function"===typeof t.props.onClick&&t.props.onClick(e),e.defaultPrevented||function(e,t,n,r,o,i,c,s){("A"!==e.currentTarget.nodeName||!function(e){var t=e.currentTarget.target;return t&&"_self"!==t||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||e.nativeEvent&&2===e.nativeEvent.which}(e)&&a.isLocalURL(n))&&(e.preventDefault(),null==c&&r.indexOf("#")>=0&&(c=!1),t[o?"replace":"push"](n,r,{shallow:i,locale:s,scroll:c}))}(e,o,d,p,v,h,g,y)},onMouseEnter:function(e){t.props&&"function"===typeof t.props.onMouseEnter&&t.props.onMouseEnter(e),a.isLocalURL(d)&&u(o,d,p,{priority:!0})}};if(e.passHref||"a"===t.type&&!("href"in t.props)){var k="undefined"!==typeof y?y:o&&o.locale,N=o&&o.isLocaleDomain&&a.getDomainLocale(p,k,o&&o.locales,o&&o.domainLocales);Z.href=N||a.addBasePath(a.addLocale(p,k,o&&o.defaultLocale))}return i.default.cloneElement(t,Z)};t.default=f},57190:function(e,t,n){"use strict";function r(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,o=!1,i=void 0;try{for(var a,c=e[Symbol.iterator]();!(r=(a=c.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(s){o=!0,i=s}finally{try{r||null==c.return||c.return()}finally{if(o)throw i}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}Object.defineProperty(t,"__esModule",{value:!0}),t.useIntersection=function(e){var t=e.rootMargin,n=e.disabled||!a,s=o.useRef(),l=r(o.useState(!1),2),u=l[0],f=l[1],d=o.useCallback((function(e){s.current&&(s.current(),s.current=void 0),n||u||e&&e.tagName&&(s.current=function(e,t,n){var r=function(e){var t=e.rootMargin||"",n=c.get(t);if(n)return n;var r=new Map,o=new IntersectionObserver((function(e){e.forEach((function(e){var t=r.get(e.target),n=e.isIntersecting||e.intersectionRatio>0;t&&n&&t(n)}))}),e);return c.set(t,n={id:t,observer:o,elements:r}),n}(n),o=r.id,i=r.observer,a=r.elements;return a.set(e,t),i.observe(e),function(){a.delete(e),i.unobserve(e),0===a.size&&(i.disconnect(),c.delete(o))}}(e,(function(e){return e&&f(e)}),{rootMargin:t}))}),[n,t,u]);return o.useEffect((function(){if(!a&&!u){var e=i.requestIdleCallback((function(){return f(!0)}));return function(){return i.cancelIdleCallback(e)}}}),[u]),[d,u]};var o=n(67294),i=n(9311),a="undefined"!==typeof IntersectionObserver;var c=new Map},99651:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return Ce}});var r=n(85893),o=(n(55062),n(54357),n(43476),n(96552),n(59221),n(43760),n(69207),n(35011),n(39708),n(70734),n(5075),n(71332),n(88727),n(23669),n(32650),n(62930),n(44822),n(35159)),i=n(57553),a=n(28520),c=n.n(a),s=n(67294),l=n(45697),u=n.n(l),f=n(41664),d=n(9008),p=n(40364),m=n(11163),v=n(2897),h=n(7293),g=v.ZP;g.Header=v.h4,g.Footer=v.$_,g.Content=v.VY,g.Sider=h.Z;var y=g,b=n(68157),w=n(14670),x=n(44068),C=n(55241),E=n(26713),Z=n(56266),k=n(71577),N=n(1413),P={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm144.1 454.9L437.7 677.8a8.02 8.02 0 01-12.7-6.5V353.7a8 8 0 0112.7-6.5L656.1 506a7.9 7.9 0 010 12.9z"}}]},name:"play-circle",theme:"filled"},S=n(42135),O=function(e,t){return s.createElement(S.Z,(0,N.Z)((0,N.Z)({},e),{},{ref:t,icon:P}))};O.displayName="PlayCircleFilled";var T=s.forwardRef(O),M={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z"}}]},name:"minus-square",theme:"filled"},A=function(e,t){return s.createElement(S.Z,(0,N.Z)((0,N.Z)({},e),{},{ref:t,icon:M}))};A.displayName="MinusSquareFilled";var R=s.forwardRef(A),j={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"}}]},name:"home",theme:"outlined"},F=function(e,t){return s.createElement(S.Z,(0,N.Z)((0,N.Z)({},e),{},{ref:t,icon:j}))};F.displayName="HomeOutlined";var I=s.forwardRef(F),L={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z"}}]},name:"line-chart",theme:"outlined"},_=function(e,t){return s.createElement(S.Z,(0,N.Z)((0,N.Z)({},e),{},{ref:t,icon:L}))};_.displayName="LineChartOutlined";var D=s.forwardRef(_),V={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"}}]},name:"message",theme:"outlined"},z=function(e,t){return s.createElement(S.Z,(0,N.Z)((0,N.Z)({},e),{},{ref:t,icon:V}))};z.displayName="MessageOutlined";var H=s.forwardRef(z),U={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"}}]},name:"setting",theme:"outlined"},B=function(e,t){return s.createElement(S.Z,(0,N.Z)((0,N.Z)({},e),{},{ref:t,icon:U}))};B.displayName="SettingOutlined";var q=s.forwardRef(B),W={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"}}]},name:"tool",theme:"outlined"},$=function(e,t){return s.createElement(S.Z,(0,N.Z)((0,N.Z)({},e),{},{ref:t,icon:W}))};$.displayName="ToolOutlined";var K=s.forwardRef($),G={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z"}}]},name:"experiment",theme:"outlined"},Y=function(e,t){return s.createElement(S.Z,(0,N.Z)((0,N.Z)({},e),{},{ref:t,icon:G}))};Y.displayName="ExperimentOutlined";var X=s.forwardRef(Y),Q={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}},{tag:"path",attrs:{d:"M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"}}]},name:"question-circle",theme:"outlined"},J=function(e,t){return s.createElement(S.Z,(0,N.Z)((0,N.Z)({},e),{},{ref:t,icon:Q}))};J.displayName="QuestionCircleOutlined";var ee=s.forwardRef(J),te=n(86548),ne=n(94184),re=n.n(ne),oe=n(58827),ie=n(2766),ae=n(92659),ce=n(50197),se=n(25964),le=n(69677),ue=n(56516),fe=n(83200);function de(e,t,n,r,o,i,a){try{var c=e[i](a),s=c.value}catch(l){return void n(l)}c.done?t(s):Promise.resolve(s).then(r,o)}function pe(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){de(i,r,o,a,c,"next",e)}function c(e){de(i,r,o,a,c,"throw",e)}a(void 0)}))}}var me=le.Z.TextArea;function ve(e){var t=e.visible,n=e.handleClose,o=(0,s.useState)(""),i=o[0],a=o[1],l=(0,s.useState)(!1),u=l[0],f=l[1],d=(0,s.useState)(null),p=d[0],m=d[1];function v(){return(v=pe(c().mark((function e(){var t;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return f(!0),t={value:i},e.prev=2,e.next=5,(0,oe.rQ)(oe.e_,{data:t,method:"POST",auth:!0});case 5:m(fe.zv),setTimeout(n,1e3),e.next=13;break;case 9:e.prev=9,e.t0=e.catch(2),console.error(e.t0),m(fe.Un);case 13:f(!1);case 14:case"end":return e.stop()}}),e,null,[[2,9]])})))).apply(this,arguments)}return(0,r.jsx)(ue.Z,{destroyOnClose:!0,width:600,title:"Post to Followers",visible:t,onCancel:n,footer:[(0,r.jsx)(k.Z,{onClick:function(){return n()},children:"Cancel"}),(0,r.jsx)(k.Z,{type:"primary",onClick:function(){return v.apply(this,arguments)},disabled:u||p,loading:u,children:(null===p||void 0===p?void 0:p.toUpperCase())||"Post"})],children:(0,r.jsx)(E.Z,{id:"fediverse-post-container",direction:"vertical",children:(0,r.jsx)(me,{placeholder:"Tell the world about your streaming plans...",size:"large",showCount:!0,maxLength:500,style:{height:"150px"},onChange:function(e){a(e.target.value)}})})})}function he(e,t,n,r,o,i,a){try{var c=e[i](a),s=c.value}catch(l){return void n(l)}c.done?t(s):Promise.resolve(s).then(r,o)}function ge(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ye(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"===typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),r.forEach((function(t){ge(e,t,n[t])}))}return e}function be(e){var t,n=e.children,a=(0,s.useContext)(o.aC)||{},l=a.serverConfig,u=a.online,v=a.broadcaster,h=a.versionNumber,g=l.instanceDetails,N=l.chatDisabled,P=l.federation.enabled,S=(0,s.useState)(""),O=S[0],M=S[1],A=(0,s.useState)(!1),j=A[0],F=A[1],L=(0,s.useContext)(i.k),_=((0,m.useRouter)()||{}).route,V=y.Header,z=y.Footer,U=y.Content,B=y.Sider,W=b.Z.SubMenu,$=(0,s.useState)(""),G=$[0],Y=$[1],Q=(t=c().mark((function e(){var t;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,(0,oe.GR)(h);case 3:t=e.sent,Y(t),e.next=10;break;case 7:e.prev=7,e.t0=e.catch(0),console.log("==== error",e.t0);case 10:case"end":return e.stop()}}),e,null,[[0,7]])})),function(){var e=this,n=arguments;return new Promise((function(r,o){var i=t.apply(e,n);function a(e){he(i,r,o,a,c,"next",e)}function c(e){he(i,r,o,a,c,"throw",e)}a(void 0)}))});(0,s.useEffect)((function(){Q()}),[h]),(0,s.useEffect)((function(){M(g.streamTitle)}),[g]);var J=re()({"app-container":!0,online:u}),ne=G?"block":"none",le="".concat(G)||"",ue="Upgrade to v".concat(le),fe=N?"none":"block",de=G?["utilities-menu"]:[],pe=L.message?(0,r.jsx)(w.Z,{message:L.message,afterClose:function(){L.setMessage(null)},banner:!0,closable:!0}):null,me=v?(0,ie.wS)((0,p.Z)(new Date,new Date(v.time))):"",ge=u?(0,r.jsx)("img",{src:"/thumbnail.jpg",className:"online-thumbnail",alt:"current thumbnail",width:"1rem"}):null,be=u?(0,r.jsx)(T,{}):(0,r.jsx)(R,{}),we=u?"Online ".concat(me):"Offline",xe=(0,r.jsx)(x.Z.Text,{children:"Thumbnail"}),Ce=(0,r.jsxs)("div",{className:"online-status-indicator",children:[(0,r.jsx)("span",{className:"status-label",children:we}),(0,r.jsx)("span",{className:"status-icon",children:be})]}),Ee=u?(0,r.jsx)(C.Z,{content:ge,title:xe,trigger:"hover",children:Ce}):Ce;return(0,r.jsxs)(y,{className:J,children:[(0,r.jsxs)(d.default,{children:[(0,r.jsx)("title",{children:"Owncast Admin"}),(0,r.jsx)("link",{rel:"icon",type:"image/png",sizes:"32x32",href:"/img/favicon/favicon-32x32.png"})]}),(0,r.jsx)(B,{width:240,className:"side-nav",children:(0,r.jsxs)(b.Z,{defaultSelectedKeys:[_.substring(1)||"home"],defaultOpenKeys:de,mode:"inline",className:"menu-container",children:[(0,r.jsxs)("h1",{className:"owncast-title",children:[(0,r.jsx)("span",{className:"logo-container",children:(0,r.jsx)(ae.Z,{})}),(0,r.jsx)("span",{className:"title-label",children:"Owncast Admin"})]}),(0,r.jsx)(b.Z.Item,{icon:(0,r.jsx)(I,{}),children:(0,r.jsx)(f.default,{href:"/",children:"Home"})},"home"),(0,r.jsx)(b.Z.Item,{icon:(0,r.jsx)(D,{}),title:"Current stream",children:(0,r.jsx)(f.default,{href:"/viewer-info",children:"Viewers"})},"viewer-info"),(0,r.jsxs)(W,{title:"Chat & Users",icon:(0,r.jsx)(H,{}),style:{display:fe},children:[(0,r.jsx)(b.Z.Item,{title:"Chat utilities",children:(0,r.jsx)(f.default,{href:"/chat/messages",children:"Messages"})},"messages"),(0,r.jsx)(b.Z.Item,{title:"Chat utilities",children:(0,r.jsx)(f.default,{href:"/chat/users",children:"Users"})},"chat-users")]},"chat-config"),(0,r.jsx)(b.Z.Item,{style:{display:P?"block":"none"},title:"Fediverse followers",icon:(0,r.jsx)("img",{alt:"fediverse icon",src:"/admin/fediverse-white.png",width:"15rem",style:{opacity:.6,position:"relative",top:"-1px"}}),children:(0,r.jsx)(f.default,{href:"/federation/followers",children:"Followers"})},"federation-followers"),(0,r.jsxs)(W,{title:"Configuration",icon:(0,r.jsx)(q,{}),children:[(0,r.jsx)(b.Z.Item,{children:(0,r.jsx)(f.default,{href:"/config-public-details",children:"General"})},"config-public-details"),(0,r.jsx)(b.Z.Item,{children:(0,r.jsx)(f.default,{href:"/config-server-details",children:"Server Setup"})},"config-server-details"),(0,r.jsx)(b.Z.Item,{children:(0,r.jsx)(f.default,{href:"/config-video",children:"Video"})},"config-video"),(0,r.jsx)(b.Z.Item,{children:(0,r.jsx)(f.default,{href:"/config-chat",children:"Chat"})},"config-chat"),(0,r.jsx)(b.Z.Item,{children:(0,r.jsx)(f.default,{href:"/config-federation",children:"Social"})},"config-federation"),(0,r.jsx)(b.Z.Item,{children:(0,r.jsx)(f.default,{href:"/config-storage",children:"S3 Storage"})},"config-storage")]},"configuration"),(0,r.jsxs)(W,{icon:(0,r.jsx)(K,{}),title:"Utilities",children:[(0,r.jsx)(b.Z.Item,{children:(0,r.jsx)(f.default,{href:"/hardware-info",children:"Hardware"})},"hardware-info"),(0,r.jsx)(b.Z.Item,{children:(0,r.jsx)(f.default,{href:"/logs",children:"Logs"})},"logs"),(0,r.jsx)(b.Z.Item,{title:"Social Actions",children:(0,r.jsx)(f.default,{href:"/federation/actions",children:"Social Actions"})},"federation-activities"),(0,r.jsx)(b.Z.Item,{style:{display:ne},children:(0,r.jsx)(f.default,{href:"/upgrade",children:ue})},"upgrade")]},"utilities-menu"),(0,r.jsxs)(W,{icon:(0,r.jsx)(X,{}),title:"Integrations",children:[(0,r.jsx)(b.Z.Item,{children:(0,r.jsx)(f.default,{href:"/webhooks",children:"Webhooks"})},"webhooks"),(0,r.jsx)(b.Z.Item,{children:(0,r.jsx)(f.default,{href:"/access-tokens",children:"Access Tokens"})},"access-tokens"),(0,r.jsx)(b.Z.Item,{children:(0,r.jsx)(f.default,{href:"/actions",children:"External Actions"})},"actions")]},"integrations-menu"),(0,r.jsx)(b.Z.Item,{icon:(0,r.jsx)(ee,{}),title:"Help",children:(0,r.jsx)(f.default,{href:"/help",children:"Help"})},"help")]})}),(0,r.jsxs)(y,{className:"layout-main",children:[(0,r.jsxs)(V,{className:"layout-header",children:[(0,r.jsx)(E.Z,{direction:"horizontal",children:(0,r.jsx)(Z.Z,{title:"Compose post to your followers",children:(0,r.jsx)(k.Z,{type:"primary",shape:"circle",icon:(0,r.jsx)(te.Z,{}),size:"large",onClick:function(){F(!0)},style:{display:P?"block":"none"}})})}),(0,r.jsx)("div",{className:"global-stream-title-container",children:(0,r.jsx)(ce.ZP,ye({fieldName:"streamTitle"},se.$t,{placeholder:"What are you streaming now",value:O,initialValue:g.streamTitle,onChange:function(e){var t=e.value;M(t)}}))}),(0,r.jsx)(E.Z,{direction:"horizontal",children:Ee})]}),pe,(0,r.jsx)(U,{className:"main-content-container",children:n}),(0,r.jsx)(z,{className:"footer-container",children:(0,r.jsxs)("a",{href:"https://owncast.online/?source=admin",target:"_blank",rel:"noopener noreferrer",children:["About Owncast v",h]})})]}),(0,r.jsx)(ve,{visible:j,handleClose:function(){return F(!1)}})]})}function we(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function xe(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"===typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),r.forEach((function(t){we(e,t,n[t])}))}return e}be.propTypes={children:u().element.isRequired};var Ce=function(e){var t=e.Component,n=e.pageProps;return(0,r.jsx)(o.ZP,{children:(0,r.jsx)(i.Z,{children:(0,r.jsx)(be,{children:(0,r.jsx)(t,xe({},n))})})})}},57553:function(e,t,n){"use strict";n.d(t,{k:function(){return c}});var r=n(85893),o=n(67294),i=n(45697),a=n.n(i),c=o.createContext({message:null,setMessage:function(e){return null}}),s=function(e){var t=e.children,n=(0,o.useState)(""),i={message:n[0],setMessage:n[1]};return(0,r.jsx)(c.Provider,{value:i,children:t})};s.propTypes={children:a().element.isRequired},t.Z=s},58827:function(e,t,n){"use strict";n.d(t,{WB:function(){return u},NE:function(){return d},Q_:function(){return p},bl:function(){return m},ao:function(){return v},iV:function(){return h},Kp:function(){return g},qk:function(){return y},NM:function(){return b},jr:function(){return w},GC:function(){return x},nx:function(){return C},sG:function(){return E},WQ:function(){return Z},WE:function(){return k},hn:function(){return N},ms:function(){return P},Wr:function(){return S},IO:function(){return O},XA:function(){return T},M_:function(){return M},iG:function(){return A},$i:function(){return R},e_:function(){return j},HP:function(){return F},E8:function(){return I},Y9:function(){return L},kb:function(){return _},op:function(){return D},UJ:function(){return V},rQ:function(){return H},kg:function(){return B},Kt:function(){return W},GR:function(){return Y}});var r=n(28520),o=n.n(r),i=n(34155);function a(e,t,n,r,o,i,a){try{var c=e[i](a),s=c.value}catch(l){return void n(l)}c.done?t(s):Promise.resolve(s).then(r,o)}function c(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function c(e){a(i,r,o,c,s,"next",e)}function s(e){a(i,r,o,c,s,"throw",e)}c(void 0)}))}}var s=i.env.NEXT_PUBLIC_ADMIN_USERNAME,l=i.env.NEXT_PUBLIC_ADMIN_STREAMKEY,u="/",f="".concat(u,"api/admin/"),d=15e3,p="".concat(f,"status"),m=("".concat(f,"disconnect"),"".concat(f,"changekey"),"".concat(f,"serverconfig")),v="".concat(f,"config"),h="".concat(f,"viewersOverTime"),g="".concat(f,"chat/clients"),y="".concat(f,"chat/users/disabled"),b="".concat(f,"chat/users/setenabled"),w="".concat(f,"chat/users/setmoderator"),x="".concat(f,"chat/users/moderators"),C="".concat(f,"hardwarestats"),E="".concat(f,"logs"),Z="".concat(f,"logs/warnings"),k="".concat(f,"chat/messages"),N="".concat(u,"api/admin/chat/updatemessagevisibility"),P="".concat(f,"accesstokens"),S="".concat(f,"accesstokens/delete"),O="".concat(f,"accesstokens/create"),T="".concat(f,"webhooks"),M="".concat(f,"webhooks/delete"),A="".concat(f,"webhooks/create"),R="".concat(u,"api/socialplatforms"),j=("".concat(f,"api/externalactions"),"".concat(f,"federation/send")),F="".concat(f,"followers"),I="".concat(f,"followers/pending"),L="".concat(f,"followers/blocked"),_="".concat(f,"followers/approve"),D="".concat(f,"federation/actions"),V="".concat(f,"yp/reset"),z="https://api.github.com/repos/owncast/owncast/releases/latest";function H(e,t){return U.apply(this,arguments)}function U(){return(U=c(o().mark((function e(t,n){var r,i,a,c,u,f,d,p,m,v,h;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=(r=n||{}).data,a=r.method,c=void 0===a?"GET":a,u=r.auth,f=void 0===u||u,d={method:c},i&&(d.body=JSON.stringify(i)),f&&s&&l&&(p=btoa("".concat(s,":").concat(l)),d.headers={Authorization:"Basic ".concat(p)},d.mode="cors",d.credentials="include"),e.prev=4,e.next=7,fetch(t,d);case 7:return m=e.sent,e.next=10,m.json();case 10:if(v=e.sent,m.ok){e.next=14;break}throw h=v.message||"An error has occurred: ".concat(m.status),new Error(h);case 14:return e.abrupt("return",v);case 17:return e.prev=17,e.t0=e.catch(4),e.abrupt("return",e.t0);case 20:case"end":return e.stop()}}),e,null,[[4,17]])})))).apply(this,arguments)}function B(e){return q.apply(this,arguments)}function q(){return(q=c(o().mark((function e(t){var n,r,i;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,fetch(t,{referrerPolicy:"no-referrer",referrer:""});case 3:if((n=e.sent).ok){e.next=7;break}throw r="An error has occured: ".concat(n.status),new Error(r);case 7:return e.next=9,n.json();case 9:return i=e.sent,e.abrupt("return",i);case 13:e.prev=13,e.t0=e.catch(0),console.log(e.t0);case 16:return e.abrupt("return",{});case 17:case"end":return e.stop()}}),e,null,[[0,13]])})))).apply(this,arguments)}function W(){return $.apply(this,arguments)}function $(){return($=c(o().mark((function e(){return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",B(z));case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var K=/^\d+(\.\d+){0,2}$/;function G(e,t){if(!e||!t||0===e.length||0===t.length)return!1;if(e===t)return!0;if(K.test(e)&&K.test(t)){for(var n=e.split(".");n.length<3;)n.push("0");for(var r=t.split(".");r.length<3;)r.push("0");for(var o=0;o<3;o++){var i=parseInt(n[o],10),a=parseInt(r[o],10);if(i!==a)return i>a}return!0}return e>=t}function Y(e){return X.apply(this,arguments)}function X(){return(X=c(o().mark((function e(t){var n,r;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,W();case 2:if(n=e.sent,"v"===(r=n.tag_name).substr(0,1)&&(r=r.substr(1)),G(t,r)){e.next=7;break}return e.abrupt("return",r);case 7:return e.abrupt("return",null);case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}},25964:function(e,t,n){"use strict";n.d(t,{sI:function(){return f},AA:function(){return d},d$:function(){return p},$w:function(){return h},c9:function(){return g},sv:function(){return y},vv:function(){return b},AP:function(){return w},CJ:function(){return x},cf:function(){return C},os:function(){return E},CQ:function(){return Z},pE:function(){return k},Si:function(){return N},RE:function(){return M},$t:function(){return A},rs:function(){return R},IX:function(){return j},ZQ:function(){return F},Ri:function(){return I},KB:function(){return L},rE:function(){return _},lT:function(){return D},cj:function(){return V},y_:function(){return z},EY:function(){return H},P:function(){return U},gX:function(){return B},yj:function(){return q},Dg:function(){return W},AN:function(){return $},Kl:function(){return K},LC:function(){return G},FE:function(){return Y},BF:function(){return X},Xc:function(){return Q},yi:function(){return J},B_:function(){return ee},dR:function(){return te},dL:function(){return ne},nm:function(){return re},Xq:function(){return oe},x8:function(){return ie},yC:function(){return ae},SS:function(){return ce},HM:function(){return se},t$:function(){return le},I$:function(){return ue},i3:function(){return fe},wC:function(){return de},z_:function(){return pe},zm:function(){return me}});var r=n(28520),o=n.n(r),i=n(58827),a=n(48419),c=n(19411);function s(e,t,n,r,o,i,a){try{var c=e[i](a),s=c.value}catch(l){return void n(l)}c.done?t(s):Promise.resolve(s).then(r,o)}function l(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){s(i,r,o,a,c,"next",e)}function c(e){s(i,r,o,a,c,"throw",e)}a(void 0)}))}}function u(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var f=3e3,d="/pagecontent",p="/customstyles",m="/serverurl",v="/nsfw",h="/s3",g="/socialhandles",y="/video/streamlatencylevel",b="/video/streamoutputvariants",w="/directoryenabled",x="/chat/forbiddenusernames",C="/chat/suggestedusernames",E="/externalactions",Z="/video/codec",k="/federation/blockdomains";function N(e){return P.apply(this,arguments)}function P(){return(P=l(o().mark((function e(t){var n,r,a,c,s;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.apiPath,r=t.data,a=t.onSuccess,c=t.onError,e.next=3,(0,i.rQ)("".concat(i.ao).concat(n),{data:r,method:"POST",auth:!0});case 3:(s=e.sent).success&&a?a(s.message):c&&c(s.message);case 5:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var S,O,T,M={apiPath:"/name",configPath:"instanceDetails",maxLength:255,placeholder:"Owncast site name",label:"Name",tip:"The name of your Owncast server",required:!0,useTrimLead:!0},A={apiPath:"/streamtitle",configPath:"instanceDetails",maxLength:100,placeholder:"Doing cool things...",label:"Stream Title",tip:"What is your stream about today?"},R={apiPath:"/serversummary",configPath:"instanceDetails",maxLength:500,placeholder:"",label:"About",tip:"A brief blurb about you, your server, or what your stream is about."},j={apiPath:"/welcomemessage",configPath:"instanceDetails",maxLength:2500,placeholder:"",label:"Welcome Message",tip:"A system chat message sent to viewers when they first connect to chat. Leave blank to disable."},F={apiPath:"/logo",configPath:"instanceDetails",maxLength:255,placeholder:"/img/mylogo.png",label:"Logo",tip:"Upload your logo if you have one. We recommend that you use a square image that is at least 256x256."},I={apiPath:"/key",configPath:"",maxLength:255,placeholder:"abc123",label:"Stream Key",tip:"Save this key somewhere safe, you will need it to stream or login to the admin dashboard!",required:!0},L={apiPath:"/ffmpegpath",configPath:"",maxLength:255,placeholder:"/usr/local/bin/ffmpeg",label:"FFmpeg Path",tip:"Absolute file path of the FFMPEG application on your server",required:!0},_={apiPath:"/webserverport",configPath:"",maxLength:6,placeholder:"8080",label:"Owncast port",tip:"What port is your Owncast web server listening? Default is 8080",required:!0},D={apiPath:"/rtmpserverport",configPath:"",maxLength:6,placeholder:"1935",label:"RTMP port",tip:"What port should accept inbound broadcasts? Default is 1935",required:!0},V={apiPath:m,configPath:"yp",maxLength:255,placeholder:"https://owncast.mysite.com",label:"Server URL",tip:"The full url to your Owncast server.",type:a.xA,pattern:c.a,useTrim:!0},z={apiPath:"/tags",configPath:"instanceDetails",maxLength:24,placeholder:"Add a new tag",required:!0,label:"",tip:""},H={apiPath:v,configPath:"instanceDetails",label:"NSFW?",tip:"Turn this ON if you plan to steam explicit or adult content. Please respectfully set this flag so unexpected eyes won't accidentally see it in the Directory."},U={apiPath:w,configPath:"yp",label:"Enable directory",tip:"Turn this ON to request to show up in the directory."},B={framerate:24,videoPassthrough:!1,videoBitrate:800,audioPassthrough:!0,audioBitrate:0,cpuUsageLevel:3,scaledHeight:null,scaledWidth:null,name:""},q={apiPath:"/chat/disable",configPath:"",label:"Chat",tip:"Turn the chat functionality on/off on your Owncast server.",useSubmit:!0},W={apiPath:x,placeholder:"username",label:"Forbidden usernames",tip:"A list of words in chat usernames you disallow."},$={apiPath:C,placeholder:"username",label:"Default usernames",tip:"An optional list of chat usernames that new users get assigned. If the list holds less then 10 items, random names will be generated. Users can change their usernames afterwards and the same username may be given out multple times.",min_not_reached:"At least 10 items are required for this feature.",no_entries:"The default name generator is used."},K={apiPath:"/federation/enable",configPath:"federation",label:"Enable Social Features",tip:"Send and receive activities on the Fediverse.",useSubmit:!0},G={apiPath:"/federation/private",configPath:"federation",label:"Private",tip:"Follow requests will require approval and only followers will see your activity.",useSubmit:!0},Y={apiPath:"/federation/showengagement",configPath:"showEngagement",label:"Show engagement",tip:"Following, liking and sharing will appear in the chat feed.",useSubmit:!0},X={apiPath:"/federation/livemessage",configPath:"federation",maxLength:500,placeholder:"My stream has started, tune in!",label:"Now Live message",tip:"The message sent announcing that your live stream has begun. Tags will be automatically added. Leave blank to disable."},Q={apiPath:"/federation/username",configPath:"federation",maxLength:10,placeholder:"owncast",default:"owncast",label:"Username",tip:'The username used for sending and receiving activities from the Fediverse. For example, if you use "bob" as a username you would send messages to the fediverse from @bob@yourserver. Once people start following your instance you should not change this.'},J={apiPath:m,configPath:"yp",maxLength:255,placeholder:"https://owncast.mysite.com",label:"Server URL",tip:"The full url to your Owncast server is required to enable social features. Must use SSL (https). Once people start following your instance you should not change this.",type:a.xA,pattern:c.a,useTrim:!0},ee={apiPath:v,configPath:"instanceDetails",label:"Potentially NSFW",tip:"Turn this ON if you plan to steam explicit or adult content so previews of your stream can be marked as potentially sensitive."},te={apiPath:k,configPath:"federation",label:"Blocked domains",placeholder:"bad.domain.biz",tip:"You can block specific domains from interacting with you."},ne={audioBitrate:{min:600,max:1200,defaultValue:800,unit:"kbps",incrementBy:100,tip:"nothing to see here"},videoPassthrough:{tip:"If enabled, all other settings will be disabled. Otherwise configure as desired."},audioPassthrough:{tip:"If No is selected, then you should set your desired Audio Bitrate."},scaledWidth:{fieldName:"scaledWidth",label:"Resized Width",maxLength:4,placeholder:"1080",tip:"Optionally resize this content's width."},scaledHeight:{fieldName:"scaledHeight",label:"Resized Height",maxLength:4,placeholder:"720",tip:"Optionally resize this content's height."}},re={min:24,max:120,defaultValue:24,unit:"fps",incrementBy:null,tip:"Reducing your framerate will decrease the amount of video that needs to be encoded and sent to your viewers, saving CPU and bandwidth at the expense of smoothness. A lower value is generally is fine for most content."},oe=(u(S={},re.min,"".concat(re.min," ").concat(re.unit)),u(S,25,""),u(S,30,""),u(S,50,""),u(S,60,""),u(S,90,""),u(S,re.max,"".concat(re.max," ").concat(re.unit)),S),ie=(u(O={},re.min,"".concat(re.min,"fps - Good for film, presentations, music, low power/bandwidth servers.")),u(O,25,"25fps - Good for film, presentations, music, low power/bandwidth servers."),u(O,30,"30fps - Good for slow/casual games, chat, general purpose."),u(O,50,"50fps - Good for fast/action games, sports, HD video."),u(O,60,"60fps - Good for fast/action games, sports, HD video."),u(O,90,"90fps - Good for newer fast games and hardware."),u(O,re.max,"".concat(re.max,"fps - Experimental, use at your own risk!")),O),ae={min:400,max:6e3,defaultValue:1200,unit:"kbps",incrementBy:100,tip:"The overall quality of your stream is generally impacted most by bitrate."},ce={fieldName:"name",label:"Name",maxLength:15,placeholder:"HD or Low",tip:"Human-readable name for for displaying in the player."},se=(u(T={},ae.min,"".concat(ae.min," ").concat(ae.unit)),u(T,3e3,3e3),u(T,4500,4500),u(T,ae.max,"".concat(ae.max," ").concat(ae.unit)),T),le={1:"lowest",2:"",3:"",4:"",5:"highest"},ue={1:"Lowest hardware usage - lowest quality video",2:"Low hardware usage - low quality video",3:"Medium hardware usage - average quality video",4:"High hardware usage - high quality video",5:"Highest hardware usage - higher quality video"},fe={VIDEO_HEIGHT:1080,VIDEO_BITRATE:3e3,HELP_TEXT:"You have only set one video quality variant. If your server has the computing resources, consider adding another, lower-quality variant, so more people can view your content!"},de={url:"",platform:""},pe="OTHER_SOCIAL_HANDLE_OPTION",me={accessKey:{fieldName:"accessKey",label:"Access Key",maxLength:255,placeholder:"access key 123",tip:""},acl:{fieldName:"acl",label:"ACL",maxLength:255,placeholder:"",tip:"Optional specific access control value to add to your content. Generally not required."},bucket:{fieldName:"bucket",label:"Bucket",maxLength:255,placeholder:"bucket 123",tip:"Create a new bucket for each Owncast instance you may be running."},endpoint:{fieldName:"endpoint",label:"Endpoint",maxLength:255,placeholder:"https://your.s3.provider.endpoint.com",tip:'The full URL (with "https://") endpoint from your storage provider.',useTrim:!0,type:a.xA,pattern:c.a},region:{fieldName:"region",label:"Region",maxLength:255,placeholder:"region 123",tip:""},secret:{fieldName:"secret",label:"Secret key",maxLength:255,placeholder:"your secret key",tip:""},servingEndpoint:{fieldName:"servingEndpoint",label:"Serving Endpoint",maxLength:255,placeholder:"http://cdn.ss3.provider.endpoint.com",tip:"Optional URL that content should be accessed from instead of the default. Used with CDNs and specific storage providers. Generally not required.",type:a.xA,pattern:c.a,useTrim:!0},forcePathStyle:{fieldName:"forcePathStyle",label:"Force path-style",tip:"If your S3 provider doesn't support virtual-hosted-style URLs set this to ON (i.e. Oracle Cloud Object Storage)"}}},2766:function(e,t,n){"use strict";n.d(t,{t5:function(){return i},Qr:function(){return a},wS:function(){return s},AB:function(){return l}});var r=n(42238),o=n.n(r);function i(e){var t=e.split(":");t[t.length-1]="";var n=t.join(":");return"[::1]"===(n=n.slice(0,n.length-1))||"127.0.0.1"===n?"Localhost":n}function a(e){return!e||0===Object.keys(e).length&&e.constructor===Object}function c(e,t,n){return String(t.repeat(n)+e).slice(-n)}function s(e){var t=void 0===e?0:e,n=Number.isFinite(+t)?Math.abs(t):0,r=Math.floor(n/86400),o=r>0?"".concat(r," day").concat(r>1?"s":""," "):"",i=Math.floor(n/3600%24),a=i||r?c("".concat(i,":"),"0",3):"",s=Math.floor(n/60%60),l=c("".concat(s,":"),"0",3),u=Math.floor(n%60);return o+a+l+c("".concat(u),"0",2)}function l(e){var t=o()(e),n=t.device,r=t.os,i=t.browser,a=i.major,c=i.name,s=r.version,l=r.name,u=n.model,f=n.type;if(!c||!a||!l)return e;var d=u||f?" (".concat(u||f,")"):"";return"".concat(c," ").concat(a," on ").concat(l," ").concat(s,"\n ").concat(d)}},83200:function(e,t,n){"use strict";n.d(t,{Un:function(){return v},Jk:function(){return g},zv:function(){return y},dG:function(){return b},kg:function(){return x}});var r=n(85893),o=n(1413),i=n(67294),a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M464 720a48 48 0 1096 0 48 48 0 10-96 0zm16-304v184c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V416c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8zm475.7 440l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zm-783.5-27.9L512 239.9l339.8 588.2H172.2z"}}]},name:"warning",theme:"outlined"},c=n(42135),s=function(e,t){return i.createElement(c.Z,(0,o.Z)((0,o.Z)({},e),{},{ref:t,icon:a}))};s.displayName="WarningOutlined";var l=i.forwardRef(s),u=n(89739),f=n(21640),d=n(50888);function p(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var m,v="error",h="invalid",g="proessing",y="success",b="warning",w=(p(m={},y,{type:y,icon:(0,r.jsx)(u.Z,{style:{color:"green"}}),message:"Success!"}),p(m,v,{type:v,icon:(0,r.jsx)(f.Z,{style:{color:"red"}}),message:"An error occurred."}),p(m,h,{type:h,icon:(0,r.jsx)(f.Z,{style:{color:"red"}}),message:"An error occurred."}),p(m,g,{type:g,icon:(0,r.jsx)(d.Z,{}),message:""}),p(m,b,{type:b,icon:(0,r.jsx)(l,{style:{color:"#fc0"}}),message:""}),m);function x(e,t){return e&&w[e]?t?{type:e,icon:w[e].icon,message:t}:w[e]:null}},35159:function(e,t,n){"use strict";n.d(t,{aC:function(){return h}});var r=n(28520),o=n.n(r),i=n(85893),a=n(67294),c=n(45697),s=n.n(c),l=n(58827);function u(e,t,n,r,o,i,a){try{var c=e[i](a),s=c.value}catch(l){return void n(l)}c.done?t(s):Promise.resolve(s).then(r,o)}function f(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){u(i,r,o,a,c,"next",e)}function c(e){u(i,r,o,a,c,"throw",e)}a(void 0)}))}}function d(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function p(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"===typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),r.forEach((function(t){d(e,t,n[t])}))}return e}var m={streamKey:"",instanceDetails:{customStyles:"",extraPageContent:"",logo:"",name:"",nsfw:!1,socialHandles:[],streamTitle:"",summary:"",tags:[],title:"",welcomeMessage:""},ffmpegPath:"",rtmpServerPort:"",webServerPort:"",s3:{accessKey:"",acl:"",bucket:"",enabled:!1,endpoint:"",region:"",secret:"",servingEndpoint:"",forcePathStyle:!1},yp:{enabled:!1,instanceUrl:""},videoSettings:{latencyLevel:4,cpuUsageLevel:3,videoQualityVariants:[n(25964).gX]},federation:{enabled:!1,isPrivate:!1,username:"",goLiveMessage:"",showEngagement:!0,blockedDomains:[]},externalActions:[],supportedCodecs:[],videoCodec:"",forbiddenUsernames:[],suggestedUsernames:[],chatDisabled:!1},v={broadcastActive:!1,broadcaster:null,currentBroadcast:null,online:!1,viewerCount:0,sessionMaxViewerCount:0,sessionPeakViewerCount:0,overallPeakViewerCount:0,versionNumber:"0.0.0",streamTitle:"",chatDisabled:!1},h=a.createContext(p({},v,{serverConfig:m,setFieldInConfigState:function(e){return null}})),g=function(e){var t=e.children,n=(0,a.useState)(v),r=n[0],c=n[1],s=(0,a.useState)(m),u=s[0],g=s[1],y=f(o().mark((function e(){var t;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,(0,l.rQ)(l.Q_);case 3:t=e.sent,c(p({},t)),e.next=9;break;case 7:e.prev=7,e.t0=e.catch(0);case 9:case"end":return e.stop()}}),e,null,[[0,7]])}))),b=f(o().mark((function e(){var t;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,(0,l.rQ)(l.bl);case 3:t=e.sent,g(t),e.next=9;break;case 7:e.prev=7,e.t0=e.catch(0);case 9:case"end":return e.stop()}}),e,null,[[0,7]])})));(0,a.useEffect)((function(){var e;return y(),e=setInterval(y,l.NE),b(),function(){clearInterval(e)}}),[]);var w=p({},r,{serverConfig:u,setFieldInConfigState:function(e){var t=e.fieldName,n=e.value,r=e.path,o=p({},u,r?d({},r,p({},u[r],d({},t,n))):d({},t,n));g(o)}});return(0,i.jsx)(h.Provider,{value:w,children:t})};g.propTypes={children:s().element.isRequired},t.ZP=g},19411:function(e,t,n){"use strict";n.d(t,{a:function(){return r},Z:function(){return o}});var r="https?://.*";function o(e){try{var t=new URL(e);if(""===t.protocol||""===t.hostname||!["http:","https:"].includes(t.protocol))return!1}catch(n){return!1}return!0}},55062:function(){},43476:function(){},32650:function(){},5075:function(){},88727:function(){},39708:function(){},70734:function(){},71332:function(){},35011:function(){},69207:function(){},59221:function(){},23669:function(){},43760:function(){},96552:function(){},44822:function(){},62930:function(){},54357:function(){},9008:function(e,t,n){e.exports=n(5443)},41664:function(e,t,n){e.exports=n(48418)},11163:function(e,t,n){e.exports=n(90387)},92703:function(e,t,n){"use strict";var r=n(50414);function o(){}function i(){}i.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,i,a){if(a!==r){var c=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw c.name="Invariant Violation",c}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:o};return n.PropTypes=n,n}},45697:function(e,t,n){e.exports=n(92703)()},50414:function(e){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},7866:function(e,t,n){"use strict";n.r(t),n.d(t,{Field:function(){return Ee},FieldContext:function(){return y},FormProvider:function(){return je},List:function(){return ke},ListContext:function(){return Ze},default:function(){return De},useForm:function(){return Ae}});var r=n(67294),o=n(87462),i=n(91),a=n(4942),c=n(1413),s=n(74902),l=n(15671),u=n(43144),f=n(97326),d=n(60136),p=n(3289),m=n(50344),v=n(80334),h="RC_FORM_INTERNAL_HOOKS",g=function(){(0,v.ZP)(!1,"Can not find FormContext. Please make sure you wrap Field under Form.")},y=r.createContext({getFieldValue:g,getFieldsValue:g,getFieldError:g,getFieldWarning:g,getFieldsError:g,isFieldsTouched:g,isFieldTouched:g,isFieldValidating:g,isFieldsValidating:g,resetFields:g,setFields:g,setFieldsValue:g,validateFields:g,submit:g,getInternalHooks:function(){return g(),{dispatch:g,initEntityValue:g,registerField:g,useSubscribe:g,setInitialValues:g,setCallbacks:g,getFields:g,setValidateMessages:g,setPreserve:g,getInitialValue:g}}});function b(e){return void 0===e||null===e?[]:Array.isArray(e)?e:[e]}var w=n(87757),x=n.n(w),C=n(15861),E=n(34155);function Z(){return(Z=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function k(e){return(k=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function N(e,t){return(N=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function P(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function S(e,t,n){return(S=P()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&N(o,n.prototype),o}).apply(null,arguments)}function O(e){var t="function"===typeof Map?new Map:void 0;return(O=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!==typeof e)throw new TypeError("Super expression must either be null or a function");if("undefined"!==typeof t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return S(e,arguments,k(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),N(r,e)})(e)}var T=/%[sdj%]/g;function M(e){if(!e||!e.length)return null;var t={};return e.forEach((function(e){var n=e.field;t[n]=t[n]||[],t[n].push(e)})),t}function A(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var o=0,i=n.length;if("function"===typeof e)return e.apply(null,n);if("string"===typeof e){var a=e.replace(T,(function(e){if("%%"===e)return"%";if(o>=i)return e;switch(e){case"%s":return String(n[o++]);case"%d":return Number(n[o++]);case"%j":try{return JSON.stringify(n[o++])}catch(t){return"[Circular]"}break;default:return e}}));return a}return e}function R(e,t){return void 0===e||null===e||(!("array"!==t||!Array.isArray(e)||e.length)||!(!function(e){return"string"===e||"url"===e||"hex"===e||"email"===e||"date"===e||"pattern"===e}(t)||"string"!==typeof e||e))}function j(e,t,n){var r=0,o=e.length;!function i(a){if(a&&a.length)n(a);else{var c=r;r+=1,c<o?t(e[c],i):n([])}}([])}"undefined"!==typeof E&&E.env;var F=function(e){var t,n;function r(t,n){var r;return(r=e.call(this,"Async Validation Error")||this).errors=t,r.fields=n,r}return n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,N(t,n),r}(O(Error));function I(e,t,n,r,o){if(t.first){var i=new Promise((function(t,i){j(function(e){var t=[];return Object.keys(e).forEach((function(n){t.push.apply(t,e[n]||[])})),t}(e),n,(function(e){return r(e),e.length?i(new F(e,M(e))):t(o)}))}));return i.catch((function(e){return e})),i}var a=!0===t.firstFields?Object.keys(e):t.firstFields||[],c=Object.keys(e),s=c.length,l=0,u=[],f=new Promise((function(t,i){var f=function(e){if(u.push.apply(u,e),++l===s)return r(u),u.length?i(new F(u,M(u))):t(o)};c.length||(r(u),t(o)),c.forEach((function(t){var r=e[t];-1!==a.indexOf(t)?j(r,n,f):function(e,t,n){var r=[],o=0,i=e.length;function a(e){r.push.apply(r,e||[]),++o===i&&n(r)}e.forEach((function(e){t(e,a)}))}(r,n,f)}))}));return f.catch((function(e){return e})),f}function L(e,t){return function(n){var r,o;return r=e.fullFields?function(e,t){for(var n=e,r=0;r<t.length;r++){if(void 0==n)return n;n=n[t[r]]}return n}(t,e.fullFields):t[n.field||e.fullField],(o=n)&&void 0!==o.message?(n.field=n.field||e.fullField,n.fieldValue=r,n):{message:"function"===typeof n?n():n,fieldValue:r,field:n.field||e.fullField}}}function _(e,t){if(t)for(var n in t)if(t.hasOwnProperty(n)){var r=t[n];"object"===typeof r&&"object"===typeof e[n]?e[n]=Z({},e[n],r):e[n]=r}return e}var D=function(e,t,n,r,o,i){!e.required||n.hasOwnProperty(e.field)&&!R(t,i||e.type)||r.push(A(o.messages.required,e.fullField))},V={email:/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+\.)+[a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}))$/,url:new RegExp("^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$","i"),hex:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i},z={integer:function(e){return z.number(e)&&parseInt(e,10)===e},float:function(e){return z.number(e)&&!z.integer(e)},array:function(e){return Array.isArray(e)},regexp:function(e){if(e instanceof RegExp)return!0;try{return!!new RegExp(e)}catch(t){return!1}},date:function(e){return"function"===typeof e.getTime&&"function"===typeof e.getMonth&&"function"===typeof e.getYear&&!isNaN(e.getTime())},number:function(e){return!isNaN(e)&&"number"===typeof e},object:function(e){return"object"===typeof e&&!z.array(e)},method:function(e){return"function"===typeof e},email:function(e){return"string"===typeof e&&e.length<=320&&!!e.match(V.email)},url:function(e){return"string"===typeof e&&e.length<=2048&&!!e.match(V.url)},hex:function(e){return"string"===typeof e&&!!e.match(V.hex)}},H={required:D,whitespace:function(e,t,n,r,o){(/^\s+$/.test(t)||""===t)&&r.push(A(o.messages.whitespace,e.fullField))},type:function(e,t,n,r,o){if(e.required&&void 0===t)D(e,t,n,r,o);else{var i=e.type;["integer","float","array","regexp","object","method","email","number","date","url","hex"].indexOf(i)>-1?z[i](t)||r.push(A(o.messages.types[i],e.fullField,e.type)):i&&typeof t!==e.type&&r.push(A(o.messages.types[i],e.fullField,e.type))}},range:function(e,t,n,r,o){var i="number"===typeof e.len,a="number"===typeof e.min,c="number"===typeof e.max,s=t,l=null,u="number"===typeof t,f="string"===typeof t,d=Array.isArray(t);if(u?l="number":f?l="string":d&&(l="array"),!l)return!1;d&&(s=t.length),f&&(s=t.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"_").length),i?s!==e.len&&r.push(A(o.messages[l].len,e.fullField,e.len)):a&&!c&&s<e.min?r.push(A(o.messages[l].min,e.fullField,e.min)):c&&!a&&s>e.max?r.push(A(o.messages[l].max,e.fullField,e.max)):a&&c&&(s<e.min||s>e.max)&&r.push(A(o.messages[l].range,e.fullField,e.min,e.max))},enum:function(e,t,n,r,o){e.enum=Array.isArray(e.enum)?e.enum:[],-1===e.enum.indexOf(t)&&r.push(A(o.messages.enum,e.fullField,e.enum.join(", ")))},pattern:function(e,t,n,r,o){if(e.pattern)if(e.pattern instanceof RegExp)e.pattern.lastIndex=0,e.pattern.test(t)||r.push(A(o.messages.pattern.mismatch,e.fullField,t,e.pattern));else if("string"===typeof e.pattern){new RegExp(e.pattern).test(t)||r.push(A(o.messages.pattern.mismatch,e.fullField,t,e.pattern))}}},U=function(e,t,n,r,o){var i=e.type,a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(R(t,i)&&!e.required)return n();H.required(e,t,r,a,o,i),R(t,i)||H.type(e,t,r,a,o)}n(a)},B={string:function(e,t,n,r,o){var i=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(R(t,"string")&&!e.required)return n();H.required(e,t,r,i,o,"string"),R(t,"string")||(H.type(e,t,r,i,o),H.range(e,t,r,i,o),H.pattern(e,t,r,i,o),!0===e.whitespace&&H.whitespace(e,t,r,i,o))}n(i)},method:function(e,t,n,r,o){var i=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(R(t)&&!e.required)return n();H.required(e,t,r,i,o),void 0!==t&&H.type(e,t,r,i,o)}n(i)},number:function(e,t,n,r,o){var i=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(""===t&&(t=void 0),R(t)&&!e.required)return n();H.required(e,t,r,i,o),void 0!==t&&(H.type(e,t,r,i,o),H.range(e,t,r,i,o))}n(i)},boolean:function(e,t,n,r,o){var i=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(R(t)&&!e.required)return n();H.required(e,t,r,i,o),void 0!==t&&H.type(e,t,r,i,o)}n(i)},regexp:function(e,t,n,r,o){var i=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(R(t)&&!e.required)return n();H.required(e,t,r,i,o),R(t)||H.type(e,t,r,i,o)}n(i)},integer:function(e,t,n,r,o){var i=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(R(t)&&!e.required)return n();H.required(e,t,r,i,o),void 0!==t&&(H.type(e,t,r,i,o),H.range(e,t,r,i,o))}n(i)},float:function(e,t,n,r,o){var i=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(R(t)&&!e.required)return n();H.required(e,t,r,i,o),void 0!==t&&(H.type(e,t,r,i,o),H.range(e,t,r,i,o))}n(i)},array:function(e,t,n,r,o){var i=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if((void 0===t||null===t)&&!e.required)return n();H.required(e,t,r,i,o,"array"),void 0!==t&&null!==t&&(H.type(e,t,r,i,o),H.range(e,t,r,i,o))}n(i)},object:function(e,t,n,r,o){var i=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(R(t)&&!e.required)return n();H.required(e,t,r,i,o),void 0!==t&&H.type(e,t,r,i,o)}n(i)},enum:function(e,t,n,r,o){var i=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(R(t)&&!e.required)return n();H.required(e,t,r,i,o),void 0!==t&&H.enum(e,t,r,i,o)}n(i)},pattern:function(e,t,n,r,o){var i=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(R(t,"string")&&!e.required)return n();H.required(e,t,r,i,o),R(t,"string")||H.pattern(e,t,r,i,o)}n(i)},date:function(e,t,n,r,o){var i=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(R(t,"date")&&!e.required)return n();var a;if(H.required(e,t,r,i,o),!R(t,"date"))a=t instanceof Date?t:new Date(t),H.type(e,a,r,i,o),a&&H.range(e,a.getTime(),r,i,o)}n(i)},url:U,hex:U,email:U,required:function(e,t,n,r,o){var i=[],a=Array.isArray(t)?"array":typeof t;H.required(e,t,r,i,o,a),n(i)},any:function(e,t,n,r,o){var i=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(R(t)&&!e.required)return n();H.required(e,t,r,i,o)}n(i)}};function q(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone:function(){var e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}var W=q(),$=function(){function e(e){this.rules=null,this._messages=W,this.define(e)}var t=e.prototype;return t.define=function(e){var t=this;if(!e)throw new Error("Cannot configure a schema with no rules");if("object"!==typeof e||Array.isArray(e))throw new Error("Rules must be an object");this.rules={},Object.keys(e).forEach((function(n){var r=e[n];t.rules[n]=Array.isArray(r)?r:[r]}))},t.messages=function(e){return e&&(this._messages=_(q(),e)),this._messages},t.validate=function(t,n,r){var o=this;void 0===n&&(n={}),void 0===r&&(r=function(){});var i=t,a=n,c=r;if("function"===typeof a&&(c=a,a={}),!this.rules||0===Object.keys(this.rules).length)return c&&c(null,i),Promise.resolve(i);if(a.messages){var s=this.messages();s===W&&(s=q()),_(s,a.messages),a.messages=s}else a.messages=this.messages();var l={};(a.keys||Object.keys(this.rules)).forEach((function(e){var n=o.rules[e],r=i[e];n.forEach((function(n){var a=n;"function"===typeof a.transform&&(i===t&&(i=Z({},i)),r=i[e]=a.transform(r)),(a="function"===typeof a?{validator:a}:Z({},a)).validator=o.getValidationMethod(a),a.validator&&(a.field=e,a.fullField=a.fullField||e,a.type=o.getType(a),l[e]=l[e]||[],l[e].push({rule:a,value:r,source:i,field:e}))}))}));var u={};return I(l,a,(function(t,n){var r,o=t.rule,c=("object"===o.type||"array"===o.type)&&("object"===typeof o.fields||"object"===typeof o.defaultField);function s(e,t){return Z({},t,{fullField:o.fullField+"."+e,fullFields:o.fullFields?[].concat(o.fullFields,[e]):[e]})}function l(r){void 0===r&&(r=[]);var l=Array.isArray(r)?r:[r];!a.suppressWarning&&l.length&&e.warning("async-validator:",l),l.length&&void 0!==o.message&&(l=[].concat(o.message));var f=l.map(L(o,i));if(a.first&&f.length)return u[o.field]=1,n(f);if(c){if(o.required&&!t.value)return void 0!==o.message?f=[].concat(o.message).map(L(o,i)):a.error&&(f=[a.error(o,A(a.messages.required,o.field))]),n(f);var d={};o.defaultField&&Object.keys(t.value).map((function(e){d[e]=o.defaultField})),d=Z({},d,t.rule.fields);var p={};Object.keys(d).forEach((function(e){var t=d[e],n=Array.isArray(t)?t:[t];p[e]=n.map(s.bind(null,e))}));var m=new e(p);m.messages(a.messages),t.rule.options&&(t.rule.options.messages=a.messages,t.rule.options.error=a.error),m.validate(t.value,t.rule.options||a,(function(e){var t=[];f&&f.length&&t.push.apply(t,f),e&&e.length&&t.push.apply(t,e),n(t.length?t:null)}))}else n(f)}c=c&&(o.required||!o.required&&t.value),o.field=t.field,o.asyncValidator?r=o.asyncValidator(o,t.value,l,t.source,a):o.validator&&(!0===(r=o.validator(o,t.value,l,t.source,a))?l():!1===r?l("function"===typeof o.message?o.message(o.fullField||o.field):o.message||(o.fullField||o.field)+" fails"):r instanceof Array?l(r):r instanceof Error&&l(r.message)),r&&r.then&&r.then((function(){return l()}),(function(e){return l(e)}))}),(function(e){!function(e){var t=[],n={};function r(e){var n;Array.isArray(e)?t=(n=t).concat.apply(n,e):t.push(e)}for(var o=0;o<e.length;o++)r(e[o]);t.length?(n=M(t),c(t,n)):c(null,i)}(e)}),i)},t.getType=function(e){if(void 0===e.type&&e.pattern instanceof RegExp&&(e.type="pattern"),"function"!==typeof e.validator&&e.type&&!B.hasOwnProperty(e.type))throw new Error(A("Unknown rule type %s",e.type));return e.type||"string"},t.getValidationMethod=function(e){if("function"===typeof e.validator)return e.validator;var t=Object.keys(e),n=t.indexOf("message");return-1!==n&&t.splice(n,1),1===t.length&&"required"===t[0]?B.required:B[this.getType(e)]||void 0},e}();$.register=function(e,t){if("function"!==typeof t)throw new Error("Cannot register a validator by type, validator is not a function");B[e]=t},$.warning=function(){},$.messages=W,$.validators=B;var K="'${name}' is not a valid ${type}",G={default:"Validation error on field '${name}'",required:"'${name}' is required",enum:"'${name}' must be one of [${enum}]",whitespace:"'${name}' cannot be empty",date:{format:"'${name}' is invalid for format date",parse:"'${name}' could not be parsed as date",invalid:"'${name}' is invalid date"},types:{string:K,method:K,array:K,object:K,number:K,date:K,boolean:K,integer:K,float:K,regexp:K,email:K,url:K,hex:K},string:{len:"'${name}' must be exactly ${len} characters",min:"'${name}' must be at least ${min} characters",max:"'${name}' cannot be longer than ${max} characters",range:"'${name}' must be between ${min} and ${max} characters"},number:{len:"'${name}' must equal ${len}",min:"'${name}' cannot be less than ${min}",max:"'${name}' cannot be greater than ${max}",range:"'${name}' must be between ${min} and ${max}"},array:{len:"'${name}' must be exactly ${len} in length",min:"'${name}' cannot be less than ${min} in length",max:"'${name}' cannot be greater than ${max} in length",range:"'${name}' must be between ${min} and ${max} in length"},pattern:{mismatch:"'${name}' does not match pattern ${pattern}"}},Y=n(71002);function X(e,t){for(var n=e,r=0;r<t.length;r+=1){if(null===n||void 0===n)return;n=n[t[r]]}return n}var Q=n(84506);function J(e,t,n,r){if(!t.length)return n;var o,i=(0,Q.Z)(t),a=i[0],l=i.slice(1);return o=e||"number"!==typeof a?Array.isArray(e)?(0,s.Z)(e):(0,c.Z)({},e):[],r&&void 0===n&&1===l.length?delete o[a][l[0]]:o[a]=J(o[a],l,n,r),o}function ee(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return t.length&&r&&void 0===n&&!X(e,t.slice(0,-1))?e:J(e,t,n,r)}function te(e){return b(e)}function ne(e,t){return X(e,t)}function re(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],o=ee(e,t,n,r);return o}function oe(e,t){var n={};return t.forEach((function(t){var r=ne(e,t);n=re(n,t,r)})),n}function ie(e,t){return e&&e.some((function(e){return le(e,t)}))}function ae(e){return"object"===(0,Y.Z)(e)&&null!==e&&Object.getPrototypeOf(e)===Object.prototype}function ce(e,t){var n=Array.isArray(e)?(0,s.Z)(e):(0,c.Z)({},e);return t?(Object.keys(t).forEach((function(e){var r=n[e],o=t[e],i=ae(r)&&ae(o);n[e]=i?ce(r,o||{}):o})),n):n}function se(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return n.reduce((function(e,t){return ce(e,t)}),e)}function le(e,t){return!(!e||!t||e.length!==t.length)&&e.every((function(e,n){return t[n]===e}))}function ue(e){var t=arguments.length<=1?void 0:arguments[1];return t&&t.target&&e in t.target?t.target[e]:t}function fe(e,t,n){var r=e.length;if(t<0||t>=r||n<0||n>=r)return e;var o=e[t],i=t-n;return i>0?[].concat((0,s.Z)(e.slice(0,n)),[o],(0,s.Z)(e.slice(n,t)),(0,s.Z)(e.slice(t+1,r))):i<0?[].concat((0,s.Z)(e.slice(0,t)),(0,s.Z)(e.slice(t+1,n+1)),[o],(0,s.Z)(e.slice(n+1,r))):e}var de=$;function pe(e,t){return e.replace(/\$\{\w+\}/g,(function(e){var n=e.slice(2,-1);return t[n]}))}function me(e,t,n,r,o){return ve.apply(this,arguments)}function ve(){return(ve=(0,C.Z)(x().mark((function e(t,n,o,i,l){var u,f,d,p,m,v,h,g;return x().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return delete(u=(0,c.Z)({},o)).ruleIndex,f=null,u&&"array"===u.type&&u.defaultField&&(f=u.defaultField,delete u.defaultField),d=new de((0,a.Z)({},t,[u])),p=se({},G,i.validateMessages),d.messages(p),m=[],e.prev=8,e.next=11,Promise.resolve(d.validate((0,a.Z)({},t,n),(0,c.Z)({},i)));case 11:e.next=16;break;case 13:e.prev=13,e.t0=e.catch(8),e.t0.errors?m=e.t0.errors.map((function(e,t){var n=e.message;return r.isValidElement(n)?r.cloneElement(n,{key:"error_".concat(t)}):n})):(console.error(e.t0),m=[p.default]);case 16:if(m.length||!f){e.next=21;break}return e.next=19,Promise.all(n.map((function(e,n){return me("".concat(t,".").concat(n),e,f,i,l)})));case 19:return v=e.sent,e.abrupt("return",v.reduce((function(e,t){return[].concat((0,s.Z)(e),(0,s.Z)(t))}),[]));case 21:return h=(0,c.Z)((0,c.Z)({},o),{},{name:t,enum:(o.enum||[]).join(", ")},l),g=m.map((function(e){return"string"===typeof e?pe(e,h):e})),e.abrupt("return",g);case 24:case"end":return e.stop()}}),e,null,[[8,13]])})))).apply(this,arguments)}function he(e,t,n,r,o,i){var a,s=e.join("."),l=n.map((function(e,t){var n=e.validator,r=(0,c.Z)((0,c.Z)({},e),{},{ruleIndex:t});return n&&(r.validator=function(e,t,r){var o=!1,i=n(e,t,(function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];Promise.resolve().then((function(){(0,v.ZP)(!o,"Your validator function has already return a promise. `callback` will be ignored."),o||r.apply(void 0,t)}))}));o=i&&"function"===typeof i.then&&"function"===typeof i.catch,(0,v.ZP)(o,"`callback` is deprecated. Please return a promise instead."),o&&i.then((function(){r()})).catch((function(e){r(e||" ")}))}),r})).sort((function(e,t){var n=e.warningOnly,r=e.ruleIndex,o=t.warningOnly,i=t.ruleIndex;return!!n===!!o?r-i:n?1:-1}));if(!0===o)a=new Promise(function(){var e=(0,C.Z)(x().mark((function e(n,o){var a,c,u;return x().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:a=0;case 1:if(!(a<l.length)){e.next=12;break}return c=l[a],e.next=5,me(s,t,c,r,i);case 5:if(!(u=e.sent).length){e.next=9;break}return o([{errors:u,rule:c}]),e.abrupt("return");case 9:a+=1,e.next=1;break;case 12:n([]);case 13:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}());else{var u=l.map((function(e){return me(s,t,e,r,i).then((function(t){return{errors:t,rule:e}}))}));a=(o?function(e){return ye.apply(this,arguments)}(u):function(e){return ge.apply(this,arguments)}(u)).then((function(e){return Promise.reject(e)}))}return a.catch((function(e){return e})),a}function ge(){return(ge=(0,C.Z)(x().mark((function e(t){return x().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",Promise.all(t).then((function(e){var t;return(t=[]).concat.apply(t,(0,s.Z)(e))})));case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ye(){return(ye=(0,C.Z)(x().mark((function e(t){var n;return x().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=0,e.abrupt("return",new Promise((function(e){t.forEach((function(r){r.then((function(r){r.errors.length&&e([r]),(n+=1)===t.length&&e([])}))}))})));case 2:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var be=["name"],we=[];function xe(e,t,n,r,o,i){return"function"===typeof e?e(t,n,"source"in i?{source:i.source}:{}):r!==o}var Ce=function(e){(0,d.Z)(n,e);var t=(0,p.Z)(n);function n(e){var o;((0,l.Z)(this,n),(o=t.call(this,e)).state={resetCount:0},o.cancelRegisterFunc=null,o.mounted=!1,o.touched=!1,o.dirty=!1,o.validatePromise=null,o.prevValidating=void 0,o.errors=we,o.warnings=we,o.cancelRegister=function(){var e=o.props,t=e.preserve,n=e.isListField,r=e.name;o.cancelRegisterFunc&&o.cancelRegisterFunc(n,t,te(r)),o.cancelRegisterFunc=null},o.getNamePath=function(){var e=o.props,t=e.name,n=e.fieldContext.prefixName,r=void 0===n?[]:n;return void 0!==t?[].concat((0,s.Z)(r),(0,s.Z)(t)):[]},o.getRules=function(){var e=o.props,t=e.rules,n=void 0===t?[]:t,r=e.fieldContext;return n.map((function(e){return"function"===typeof e?e(r):e}))},o.refresh=function(){o.mounted&&o.setState((function(e){return{resetCount:e.resetCount+1}}))},o.triggerMetaEvent=function(e){var t=o.props.onMetaChange;null===t||void 0===t||t((0,c.Z)((0,c.Z)({},o.getMeta()),{},{destroy:e}))},o.onStoreChange=function(e,t,n){var r=o.props,i=r.shouldUpdate,a=r.dependencies,c=void 0===a?[]:a,s=r.onReset,l=n.store,u=o.getNamePath(),f=o.getValue(e),d=o.getValue(l),p=t&&ie(t,u);switch("valueUpdate"===n.type&&"external"===n.source&&f!==d&&(o.touched=!0,o.dirty=!0,o.validatePromise=null,o.errors=we,o.warnings=we,o.triggerMetaEvent()),n.type){case"reset":if(!t||p)return o.touched=!1,o.dirty=!1,o.validatePromise=null,o.errors=we,o.warnings=we,o.triggerMetaEvent(),null===s||void 0===s||s(),void o.refresh();break;case"remove":if(i)return void o.reRender();break;case"setField":if(p){var m=n.data;return"touched"in m&&(o.touched=m.touched),"validating"in m&&!("originRCField"in m)&&(o.validatePromise=m.validating?Promise.resolve([]):null),"errors"in m&&(o.errors=m.errors||we),"warnings"in m&&(o.warnings=m.warnings||we),o.dirty=!0,o.triggerMetaEvent(),void o.reRender()}if(i&&!u.length&&xe(i,e,l,f,d,n))return void o.reRender();break;case"dependenciesUpdate":if(c.map(te).some((function(e){return ie(n.relatedFields,e)})))return void o.reRender();break;default:if(p||(!c.length||u.length||i)&&xe(i,e,l,f,d,n))return void o.reRender()}!0===i&&o.reRender()},o.validateRules=function(e){var t=o.getNamePath(),n=o.getValue(),r=Promise.resolve().then((function(){if(!o.mounted)return[];var i=o.props,a=i.validateFirst,c=void 0!==a&&a,l=i.messageVariables,u=(e||{}).triggerName,f=o.getRules();u&&(f=f.filter((function(e){var t=e.validateTrigger;return!t||b(t).includes(u)})));var d=he(t,n,f,e,c,l);return d.catch((function(e){return e})).then((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:we;if(o.validatePromise===r){o.validatePromise=null;var t=[],n=[];e.forEach((function(e){var r=e.rule.warningOnly,o=e.errors,i=void 0===o?we:o;r?n.push.apply(n,(0,s.Z)(i)):t.push.apply(t,(0,s.Z)(i))})),o.errors=t,o.warnings=n,o.triggerMetaEvent(),o.reRender()}})),d}));return o.validatePromise=r,o.dirty=!0,o.errors=we,o.warnings=we,o.triggerMetaEvent(),o.reRender(),r},o.isFieldValidating=function(){return!!o.validatePromise},o.isFieldTouched=function(){return o.touched},o.isFieldDirty=function(){return!(!o.dirty&&void 0===o.props.initialValue)||void 0!==(0,o.props.fieldContext.getInternalHooks(h).getInitialValue)(o.getNamePath())},o.getErrors=function(){return o.errors},o.getWarnings=function(){return o.warnings},o.isListField=function(){return o.props.isListField},o.isList=function(){return o.props.isList},o.isPreserve=function(){return o.props.preserve},o.getMeta=function(){return o.prevValidating=o.isFieldValidating(),{touched:o.isFieldTouched(),validating:o.prevValidating,errors:o.errors,warnings:o.warnings,name:o.getNamePath()}},o.getOnlyChild=function(e){if("function"===typeof e){var t=o.getMeta();return(0,c.Z)((0,c.Z)({},o.getOnlyChild(e(o.getControlled(),t,o.props.fieldContext))),{},{isFunction:!0})}var n=(0,m.Z)(e);return 1===n.length&&r.isValidElement(n[0])?{child:n[0],isFunction:!1}:{child:n,isFunction:!1}},o.getValue=function(e){var t=o.props.fieldContext.getFieldsValue,n=o.getNamePath();return ne(e||t(!0),n)},o.getControlled=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=o.props,n=t.trigger,r=t.validateTrigger,i=t.getValueFromEvent,s=t.normalize,l=t.valuePropName,u=t.getValueProps,f=t.fieldContext,d=void 0!==r?r:f.validateTrigger,p=o.getNamePath(),m=f.getInternalHooks,v=f.getFieldsValue,g=m(h),y=g.dispatch,w=o.getValue(),x=u||function(e){return(0,a.Z)({},l,e)},C=e[n],E=(0,c.Z)((0,c.Z)({},e),x(w));E[n]=function(){var e;o.touched=!0,o.dirty=!0,o.triggerMetaEvent();for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];e=i?i.apply(void 0,n):ue.apply(void 0,[l].concat(n)),s&&(e=s(e,w,v(!0))),y({type:"updateValue",namePath:p,value:e}),C&&C.apply(void 0,n)};var Z=b(d||[]);return Z.forEach((function(e){var t=E[e];E[e]=function(){t&&t.apply(void 0,arguments);var n=o.props.rules;n&&n.length&&y({type:"validateField",namePath:p,triggerName:e})}})),E},e.fieldContext)&&(0,(0,e.fieldContext.getInternalHooks)(h).initEntityValue)((0,f.Z)(o));return o}return(0,u.Z)(n,[{key:"componentDidMount",value:function(){var e=this.props,t=e.shouldUpdate,n=e.fieldContext;if(this.mounted=!0,n){var r=(0,n.getInternalHooks)(h).registerField;this.cancelRegisterFunc=r(this)}!0===t&&this.reRender()}},{key:"componentWillUnmount",value:function(){this.cancelRegister(),this.triggerMetaEvent(!0),this.mounted=!1}},{key:"reRender",value:function(){this.mounted&&this.forceUpdate()}},{key:"render",value:function(){var e,t=this.state.resetCount,n=this.props.children,o=this.getOnlyChild(n),i=o.child;return o.isFunction?e=i:r.isValidElement(i)?e=r.cloneElement(i,this.getControlled(i.props)):((0,v.ZP)(!i,"`children` of Field is not validate ReactElement."),e=i),r.createElement(r.Fragment,{key:t},e)}}]),n}(r.Component);Ce.contextType=y,Ce.defaultProps={trigger:"onChange",valuePropName:"value"};var Ee=function(e){var t=e.name,n=(0,i.Z)(e,be),a=r.useContext(y),c=void 0!==t?te(t):void 0,s="keep";return n.isListField||(s="_".concat((c||[]).join("_"))),r.createElement(Ce,(0,o.Z)({key:s,name:c},n,{fieldContext:a}))},Ze=r.createContext(null),ke=function(e){var t=e.name,n=e.initialValue,o=e.children,i=e.rules,a=e.validateTrigger,l=r.useContext(y),u=r.useRef({keys:[],id:0}).current,f=r.useMemo((function(){var e=te(l.prefixName)||[];return[].concat((0,s.Z)(e),(0,s.Z)(te(t)))}),[l.prefixName,t]),d=r.useMemo((function(){return(0,c.Z)((0,c.Z)({},l),{},{prefixName:f})}),[l,f]),p=r.useMemo((function(){return{getKey:function(e){var t=f.length,n=e[t];return[u.keys[n],e.slice(t+1)]}}}),[f]);if("function"!==typeof o)return(0,v.ZP)(!1,"Form.List only accepts function as children."),null;return r.createElement(Ze.Provider,{value:p},r.createElement(y.Provider,{value:d},r.createElement(Ee,{name:[],shouldUpdate:function(e,t,n){return"internal"!==n.source&&e!==t},rules:i,validateTrigger:a,initialValue:n,isList:!0},(function(e,t){var n=e.value,r=void 0===n?[]:n,i=e.onChange,a=l.getFieldValue,c=function(){return a(f||[])||[]},d={add:function(e,t){var n=c();t>=0&&t<=n.length?(u.keys=[].concat((0,s.Z)(u.keys.slice(0,t)),[u.id],(0,s.Z)(u.keys.slice(t))),i([].concat((0,s.Z)(n.slice(0,t)),[e],(0,s.Z)(n.slice(t))))):(u.keys=[].concat((0,s.Z)(u.keys),[u.id]),i([].concat((0,s.Z)(n),[e]))),u.id+=1},remove:function(e){var t=c(),n=new Set(Array.isArray(e)?e:[e]);n.size<=0||(u.keys=u.keys.filter((function(e,t){return!n.has(t)})),i(t.filter((function(e,t){return!n.has(t)}))))},move:function(e,t){if(e!==t){var n=c();e<0||e>=n.length||t<0||t>=n.length||(u.keys=fe(u.keys,e,t),i(fe(n,e,t)))}}},p=r||[];return Array.isArray(p)||(p=[]),o(p.map((function(e,t){var n=u.keys[t];return void 0===n&&(u.keys[t]=u.id,n=u.keys[t],u.id+=1),{name:t,key:n,isListField:!0}})),d,t)}))))},Ne=n(97685);var Pe="__@field_split__";function Se(e){return e.map((function(e){return"".concat((0,Y.Z)(e),":").concat(e)})).join(Pe)}var Oe=function(){function e(){(0,l.Z)(this,e),this.kvs=new Map}return(0,u.Z)(e,[{key:"set",value:function(e,t){this.kvs.set(Se(e),t)}},{key:"get",value:function(e){return this.kvs.get(Se(e))}},{key:"update",value:function(e,t){var n=t(this.get(e));n?this.set(e,n):this.delete(e)}},{key:"delete",value:function(e){this.kvs.delete(Se(e))}},{key:"map",value:function(e){return(0,s.Z)(this.kvs.entries()).map((function(t){var n=(0,Ne.Z)(t,2),r=n[0],o=n[1],i=r.split(Pe);return e({key:i.map((function(e){var t=e.match(/^([^:]*):(.*)$/),n=(0,Ne.Z)(t,3),r=n[1],o=n[2];return"number"===r?Number(o):o})),value:o})}))}},{key:"toJSON",value:function(){var e={};return this.map((function(t){var n=t.key,r=t.value;return e[n.join(".")]=r,null})),e}}]),e}(),Te=["name","errors"],Me=function e(t){var n=this;(0,l.Z)(this,e),this.formHooked=!1,this.forceRootUpdate=void 0,this.subscribable=!0,this.store={},this.fieldEntities=[],this.initialValues={},this.callbacks={},this.validateMessages=null,this.preserve=null,this.lastValidatePromise=null,this.getForm=function(){return{getFieldValue:n.getFieldValue,getFieldsValue:n.getFieldsValue,getFieldError:n.getFieldError,getFieldWarning:n.getFieldWarning,getFieldsError:n.getFieldsError,isFieldsTouched:n.isFieldsTouched,isFieldTouched:n.isFieldTouched,isFieldValidating:n.isFieldValidating,isFieldsValidating:n.isFieldsValidating,resetFields:n.resetFields,setFields:n.setFields,setFieldsValue:n.setFieldsValue,validateFields:n.validateFields,submit:n.submit,getInternalHooks:n.getInternalHooks}},this.getInternalHooks=function(e){return e===h?(n.formHooked=!0,{dispatch:n.dispatch,initEntityValue:n.initEntityValue,registerField:n.registerField,useSubscribe:n.useSubscribe,setInitialValues:n.setInitialValues,setCallbacks:n.setCallbacks,setValidateMessages:n.setValidateMessages,getFields:n.getFields,setPreserve:n.setPreserve,getInitialValue:n.getInitialValue}):((0,v.ZP)(!1,"`getInternalHooks` is internal usage. Should not call directly."),null)},this.useSubscribe=function(e){n.subscribable=e},this.setInitialValues=function(e,t){n.initialValues=e||{},t&&(n.store=se({},e,n.store))},this.getInitialValue=function(e){return ne(n.initialValues,e)},this.setCallbacks=function(e){n.callbacks=e},this.setValidateMessages=function(e){n.validateMessages=e},this.setPreserve=function(e){n.preserve=e},this.timeoutId=null,this.warningUnhooked=function(){0},this.getFieldEntities=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return e?n.fieldEntities.filter((function(e){return e.getNamePath().length})):n.fieldEntities},this.getFieldsMap=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=new Oe;return n.getFieldEntities(e).forEach((function(e){var n=e.getNamePath();t.set(n,e)})),t},this.getFieldEntitiesForNamePathList=function(e){if(!e)return n.getFieldEntities(!0);var t=n.getFieldsMap(!0);return e.map((function(e){var n=te(e);return t.get(n)||{INVALIDATE_NAME_PATH:te(e)}}))},this.getFieldsValue=function(e,t){if(n.warningUnhooked(),!0===e&&!t)return n.store;var r=n.getFieldEntitiesForNamePathList(Array.isArray(e)?e:null),o=[];return r.forEach((function(n){var r,i="INVALIDATE_NAME_PATH"in n?n.INVALIDATE_NAME_PATH:n.getNamePath();if(e||!(null===(r=n.isListField)||void 0===r?void 0:r.call(n)))if(t){var a="getMeta"in n?n.getMeta():null;t(a)&&o.push(i)}else o.push(i)})),oe(n.store,o.map(te))},this.getFieldValue=function(e){n.warningUnhooked();var t=te(e);return ne(n.store,t)},this.getFieldsError=function(e){return n.warningUnhooked(),n.getFieldEntitiesForNamePathList(e).map((function(t,n){return t&&!("INVALIDATE_NAME_PATH"in t)?{name:t.getNamePath(),errors:t.getErrors(),warnings:t.getWarnings()}:{name:te(e[n]),errors:[],warnings:[]}}))},this.getFieldError=function(e){n.warningUnhooked();var t=te(e);return n.getFieldsError([t])[0].errors},this.getFieldWarning=function(e){n.warningUnhooked();var t=te(e);return n.getFieldsError([t])[0].warnings},this.isFieldsTouched=function(){n.warningUnhooked();for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var o,i=t[0],a=t[1],c=!1;0===t.length?o=null:1===t.length?Array.isArray(i)?(o=i.map(te),c=!1):(o=null,c=i):(o=i.map(te),c=a);var l=n.getFieldEntities(!0),u=function(e){return e.isFieldTouched()};if(!o)return c?l.every(u):l.some(u);var f=new Oe;o.forEach((function(e){f.set(e,[])})),l.forEach((function(e){var t=e.getNamePath();o.forEach((function(n){n.every((function(e,n){return t[n]===e}))&&f.update(n,(function(t){return[].concat((0,s.Z)(t),[e])}))}))}));var d=function(e){return e.some(u)},p=f.map((function(e){return e.value}));return c?p.every(d):p.some(d)},this.isFieldTouched=function(e){return n.warningUnhooked(),n.isFieldsTouched([e])},this.isFieldsValidating=function(e){n.warningUnhooked();var t=n.getFieldEntities();if(!e)return t.some((function(e){return e.isFieldValidating()}));var r=e.map(te);return t.some((function(e){var t=e.getNamePath();return ie(r,t)&&e.isFieldValidating()}))},this.isFieldValidating=function(e){return n.warningUnhooked(),n.isFieldsValidating([e])},this.resetWithFieldInitialValue=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=new Oe,r=n.getFieldEntities(!0);r.forEach((function(e){var n=e.props.initialValue,r=e.getNamePath();if(void 0!==n){var o=t.get(r)||new Set;o.add({entity:e,value:n}),t.set(r,o)}}));var o,i=function(r){r.forEach((function(r){if(void 0!==r.props.initialValue){var o=r.getNamePath();if(void 0!==n.getInitialValue(o))(0,v.ZP)(!1,"Form already set 'initialValues' with path '".concat(o.join("."),"'. Field can not overwrite it."));else{var i=t.get(o);if(i&&i.size>1)(0,v.ZP)(!1,"Multiple Field with path '".concat(o.join("."),"' set 'initialValue'. Can not decide which one to pick."));else if(i){var a=n.getFieldValue(o);e.skipExist&&void 0!==a||(n.store=re(n.store,o,(0,s.Z)(i)[0].value))}}}}))};e.entities?o=e.entities:e.namePathList?(o=[],e.namePathList.forEach((function(e){var n,r=t.get(e);r&&(n=o).push.apply(n,(0,s.Z)((0,s.Z)(r).map((function(e){return e.entity}))))}))):o=r,i(o)},this.resetFields=function(e){n.warningUnhooked();var t=n.store;if(!e)return n.store=se({},n.initialValues),n.resetWithFieldInitialValue(),void n.notifyObservers(t,null,{type:"reset"});var r=e.map(te);r.forEach((function(e){var t=n.getInitialValue(e);n.store=re(n.store,e,t)})),n.resetWithFieldInitialValue({namePathList:r}),n.notifyObservers(t,r,{type:"reset"})},this.setFields=function(e){n.warningUnhooked();var t=n.store;e.forEach((function(e){var r=e.name,o=(e.errors,(0,i.Z)(e,Te)),a=te(r);"value"in o&&(n.store=re(n.store,a,o.value)),n.notifyObservers(t,[a],{type:"setField",data:e})}))},this.getFields=function(){return n.getFieldEntities(!0).map((function(e){var t=e.getNamePath(),r=e.getMeta(),o=(0,c.Z)((0,c.Z)({},r),{},{name:t,value:n.getFieldValue(t)});return Object.defineProperty(o,"originRCField",{value:!0}),o}))},this.initEntityValue=function(e){var t=e.props.initialValue;if(void 0!==t){var r=e.getNamePath();void 0===ne(n.store,r)&&(n.store=re(n.store,r,t))}},this.registerField=function(e){if(n.fieldEntities.push(e),void 0!==e.props.initialValue){var t=n.store;n.resetWithFieldInitialValue({entities:[e],skipExist:!0}),n.notifyObservers(t,[e.getNamePath()],{type:"valueUpdate",source:"internal"})}return function(t,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];n.fieldEntities=n.fieldEntities.filter((function(t){return t!==e}));var i=void 0!==r?r:n.preserve;if(!1===i&&(!t||o.length>1)){var a=e.getNamePath(),c=t?void 0:ne(n.initialValues,a);if(a.length&&n.getFieldValue(a)!==c&&n.fieldEntities.every((function(e){return!le(e.getNamePath(),a)}))){var s=n.store;n.store=re(s,a,c,!0),n.notifyObservers(s,[a],{type:"remove"}),n.triggerDependenciesUpdate(s,a)}}}},this.dispatch=function(e){switch(e.type){case"updateValue":var t=e.namePath,r=e.value;n.updateValue(t,r);break;case"validateField":var o=e.namePath,i=e.triggerName;n.validateFields([o],{triggerName:i})}},this.notifyObservers=function(e,t,r){if(n.subscribable){var o=(0,c.Z)((0,c.Z)({},r),{},{store:n.getFieldsValue(!0)});n.getFieldEntities().forEach((function(n){(0,n.onStoreChange)(e,t,o)}))}else n.forceRootUpdate()},this.triggerDependenciesUpdate=function(e,t){var r=n.getDependencyChildrenFields(t);return r.length&&n.validateFields(r),n.notifyObservers(e,r,{type:"dependenciesUpdate",relatedFields:[t].concat((0,s.Z)(r))}),r},this.updateValue=function(e,t){var r=te(e),o=n.store;n.store=re(n.store,r,t),n.notifyObservers(o,[r],{type:"valueUpdate",source:"internal"});var i=n.triggerDependenciesUpdate(o,r),a=n.callbacks.onValuesChange;a&&a(oe(n.store,[r]),n.getFieldsValue());n.triggerOnFieldsChange([r].concat((0,s.Z)(i)))},this.setFieldsValue=function(e){n.warningUnhooked();var t=n.store;e&&(n.store=se(n.store,e)),n.notifyObservers(t,null,{type:"valueUpdate",source:"external"})},this.getDependencyChildrenFields=function(e){var t=new Set,r=[],o=new Oe;n.getFieldEntities().forEach((function(e){(e.props.dependencies||[]).forEach((function(t){var n=te(t);o.update(n,(function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Set;return t.add(e),t}))}))}));return function e(n){(o.get(n)||new Set).forEach((function(n){if(!t.has(n)){t.add(n);var o=n.getNamePath();n.isFieldDirty()&&o.length&&(r.push(o),e(o))}}))}(e),r},this.triggerOnFieldsChange=function(e,t){var r=n.callbacks.onFieldsChange;if(r){var o=n.getFields();if(t){var i=new Oe;t.forEach((function(e){var t=e.name,n=e.errors;i.set(t,n)})),o.forEach((function(e){e.errors=i.get(e.name)||e.errors}))}r(o.filter((function(t){var n=t.name;return ie(e,n)})),o)}},this.validateFields=function(e,t){n.warningUnhooked();var r=!!e,o=r?e.map(te):[],i=[];n.getFieldEntities(!0).forEach((function(a){if(r||o.push(a.getNamePath()),(null===t||void 0===t?void 0:t.recursive)&&r){var l=a.getNamePath();l.every((function(t,n){return e[n]===t||void 0===e[n]}))&&o.push(l)}if(a.props.rules&&a.props.rules.length){var u=a.getNamePath();if(!r||ie(o,u)){var f=a.validateRules((0,c.Z)({validateMessages:(0,c.Z)((0,c.Z)({},G),n.validateMessages)},t));i.push(f.then((function(){return{name:u,errors:[],warnings:[]}})).catch((function(e){var t=[],n=[];return e.forEach((function(e){var r=e.rule.warningOnly,o=e.errors;r?n.push.apply(n,(0,s.Z)(o)):t.push.apply(t,(0,s.Z)(o))})),t.length?Promise.reject({name:u,errors:t,warnings:n}):{name:u,errors:t,warnings:n}})))}}}));var a=function(e){var t=!1,n=e.length,r=[];return e.length?new Promise((function(o,i){e.forEach((function(e,a){e.catch((function(e){return t=!0,e})).then((function(e){n-=1,r[a]=e,n>0||(t&&i(r),o(r))}))}))})):Promise.resolve([])}(i);n.lastValidatePromise=a,a.catch((function(e){return e})).then((function(e){var t=e.map((function(e){return e.name}));n.notifyObservers(n.store,t,{type:"validateFinish"}),n.triggerOnFieldsChange(t,e)}));var l=a.then((function(){return n.lastValidatePromise===a?Promise.resolve(n.getFieldsValue(o)):Promise.reject([])})).catch((function(e){var t=e.filter((function(e){return e&&e.errors.length}));return Promise.reject({values:n.getFieldsValue(o),errorFields:t,outOfDate:n.lastValidatePromise!==a})}));return l.catch((function(e){return e})),l},this.submit=function(){n.warningUnhooked(),n.validateFields().then((function(e){var t=n.callbacks.onFinish;if(t)try{t(e)}catch(r){console.error(r)}})).catch((function(e){var t=n.callbacks.onFinishFailed;t&&t(e)}))},this.forceRootUpdate=t};var Ae=function(e){var t=r.useRef(),n=r.useState({}),o=(0,Ne.Z)(n,2)[1];if(!t.current)if(e)t.current=e;else{var i=new Me((function(){o({})}));t.current=i.getForm()}return[t.current]},Re=r.createContext({triggerFormChange:function(){},triggerFormFinish:function(){},registerForm:function(){},unregisterForm:function(){}}),je=function(e){var t=e.validateMessages,n=e.onFormChange,o=e.onFormFinish,i=e.children,s=r.useContext(Re),l=r.useRef({});return r.createElement(Re.Provider,{value:(0,c.Z)((0,c.Z)({},s),{},{validateMessages:(0,c.Z)((0,c.Z)({},s.validateMessages),t),triggerFormChange:function(e,t){n&&n(e,{changedFields:t,forms:l.current}),s.triggerFormChange(e,t)},triggerFormFinish:function(e,t){o&&o(e,{values:t,forms:l.current}),s.triggerFormFinish(e,t)},registerForm:function(e,t){e&&(l.current=(0,c.Z)((0,c.Z)({},l.current),{},(0,a.Z)({},e,t))),s.registerForm(e,t)},unregisterForm:function(e){var t=(0,c.Z)({},l.current);delete t[e],l.current=t,s.unregisterForm(e)}})},i)},Fe=Re,Ie=["name","initialValues","fields","form","preserve","children","component","validateMessages","validateTrigger","onValuesChange","onFieldsChange","onFinish","onFinishFailed"],Le=function(e,t){var n=e.name,a=e.initialValues,l=e.fields,u=e.form,f=e.preserve,d=e.children,p=e.component,m=void 0===p?"form":p,v=e.validateMessages,g=e.validateTrigger,b=void 0===g?"onChange":g,w=e.onValuesChange,x=e.onFieldsChange,C=e.onFinish,E=e.onFinishFailed,Z=(0,i.Z)(e,Ie),k=r.useContext(Fe),N=Ae(u),P=(0,Ne.Z)(N,1)[0],S=P.getInternalHooks(h),O=S.useSubscribe,T=S.setInitialValues,M=S.setCallbacks,A=S.setValidateMessages,R=S.setPreserve;r.useImperativeHandle(t,(function(){return P})),r.useEffect((function(){return k.registerForm(n,P),function(){k.unregisterForm(n)}}),[k,P,n]),A((0,c.Z)((0,c.Z)({},k.validateMessages),v)),M({onValuesChange:w,onFieldsChange:function(e){if(k.triggerFormChange(n,e),x){for(var t=arguments.length,r=new Array(t>1?t-1:0),o=1;o<t;o++)r[o-1]=arguments[o];x.apply(void 0,[e].concat(r))}},onFinish:function(e){k.triggerFormFinish(n,e),C&&C(e)},onFinishFailed:E}),R(f);var j=r.useRef(null);T(a,!j.current),j.current||(j.current=!0);var F=d,I="function"===typeof d;I&&(F=d(P.getFieldsValue(!0),P));O(!I);var L=r.useRef();r.useEffect((function(){(function(e,t){if(e===t)return!0;if(!e&&t||e&&!t)return!1;if(!e||!t||"object"!==(0,Y.Z)(e)||"object"!==(0,Y.Z)(t))return!1;var n=Object.keys(e),r=Object.keys(t),o=new Set([].concat((0,s.Z)(n),(0,s.Z)(r)));return(0,s.Z)(o).every((function(n){var r=e[n],o=t[n];return"function"===typeof r&&"function"===typeof o||r===o}))})(L.current||[],l||[])||P.setFields(l||[]),L.current=l}),[l,P]);var _=r.useMemo((function(){return(0,c.Z)((0,c.Z)({},P),{},{validateTrigger:b})}),[P,b]),D=r.createElement(y.Provider,{value:_},F);return!1===m?D:r.createElement(m,(0,o.Z)({},Z,{onSubmit:function(e){e.preventDefault(),e.stopPropagation(),P.submit()},onReset:function(e){var t;e.preventDefault(),P.resetFields(),null===(t=Z.onReset)||void 0===t||t.call(Z,e)}}),D)},_e=r.forwardRef(Le);_e.FormProvider=je,_e.Field=Ee,_e.List=ke,_e.useForm=Ae;var De=_e},33203:function(e,t,n){"use strict";n.d(t,{iz:function(){return He},ck:function(){return $},BW:function(){return ze},sN:function(){return $},Wd:function(){return me},ZP:function(){return qe},Xl:function(){return Ue}});var r=n(87462),o=n(4942),i=n(1413),a=n(74902),c=n(97685),s=n(91),l=n(67294),u=n(94184),f=n.n(u),d=n(96774),p=n.n(d),m=n(21770),v=n(80334),h=n(34243),g=n(15671),y=n(43144),b=n(60136),w=n(3289),x=n(15105),C=n(98423),E=n(56982),Z=["children","locked"],k=l.createContext(null);function N(e){var t=e.children,n=e.locked,r=(0,s.Z)(e,Z),o=l.useContext(k),a=(0,E.Z)((function(){return function(e,t){var n=(0,i.Z)({},e);return Object.keys(t).forEach((function(e){var r=t[e];void 0!==r&&(n[e]=r)})),n}(o,r)}),[o,r],(function(e,t){return!n&&(e[0]!==t[0]||!p()(e[1],t[1]))}));return l.createElement(k.Provider,{value:a},t)}function P(e,t,n,r){var o=l.useContext(k),i=o.activeKey,a=o.onActive,c=o.onInactive,s={active:i===e};return t||(s.onMouseEnter=function(t){null===n||void 0===n||n({key:e,domEvent:t}),a(e)},s.onMouseLeave=function(t){null===r||void 0===r||r({key:e,domEvent:t}),c(e)}),s}var S=["item"];function O(e){var t=e.item,n=(0,s.Z)(e,S);return Object.defineProperty(n,"item",{get:function(){return(0,v.ZP)(!1,"`info.item` is deprecated since we will move to function component that not provides React Node instance in future."),t}}),n}function T(e){var t=e.icon,n=e.props,r=e.children;return("function"===typeof t?l.createElement(t,(0,i.Z)({},n)):t)||r||null}function M(e){var t=l.useContext(k),n=t.mode,r=t.rtl,o=t.inlineIndent;if("inline"!==n)return null;return r?{paddingRight:e*o}:{paddingLeft:e*o}}var A=[],R=l.createContext(null);function j(){return l.useContext(R)}var F=l.createContext(A);function I(e){var t=l.useContext(F);return l.useMemo((function(){return void 0!==e?[].concat((0,a.Z)(t),[e]):t}),[t,e])}var L=l.createContext(null),_=l.createContext(null);function D(e,t){return void 0===e?null:"".concat(e,"-").concat(t)}function V(e){return D(l.useContext(_),e)}var z=l.createContext({}),H=["title","attribute","elementRef"],U=["style","className","eventKey","warnKey","disabled","itemIcon","children","role","onMouseEnter","onMouseLeave","onClick","onKeyDown","onFocus"],B=["active"],q=function(e){(0,b.Z)(n,e);var t=(0,w.Z)(n);function n(){return(0,g.Z)(this,n),t.apply(this,arguments)}return(0,y.Z)(n,[{key:"render",value:function(){var e=this.props,t=e.title,n=e.attribute,o=e.elementRef,i=(0,s.Z)(e,H),a=(0,C.Z)(i,["eventKey"]);return(0,v.ZP)(!n,"`attribute` of Menu.Item is deprecated. Please pass attribute directly."),l.createElement(h.Z.Item,(0,r.Z)({},n,{title:"string"===typeof t?t:void 0},a,{ref:o}))}}]),n}(l.Component),W=function(e){var t,n=e.style,c=e.className,u=e.eventKey,d=(e.warnKey,e.disabled),p=e.itemIcon,m=e.children,v=e.role,h=e.onMouseEnter,g=e.onMouseLeave,y=e.onClick,b=e.onKeyDown,w=e.onFocus,C=(0,s.Z)(e,U),E=V(u),Z=l.useContext(k),N=Z.prefixCls,S=Z.onItemClick,A=Z.disabled,R=Z.overflowDisabled,j=Z.itemIcon,F=Z.selectedKeys,L=Z.onActive,_=l.useContext(z)._internalRenderMenuItem,D="".concat(N,"-item"),H=l.useRef(),W=l.useRef(),$=A||d,K=I(u);var G=function(e){return{key:u,keyPath:(0,a.Z)(K).reverse(),item:H.current,domEvent:e}},Y=p||j,X=P(u,$,h,g),Q=X.active,J=(0,s.Z)(X,B),ee=F.includes(u),te=M(K.length),ne={};"option"===e.role&&(ne["aria-selected"]=ee);var re=l.createElement(q,(0,r.Z)({ref:H,elementRef:W,role:null===v?"none":v||"menuitem",tabIndex:d?null:-1,"data-menu-id":R&&E?null:E},C,J,ne,{component:"li","aria-disabled":d,style:(0,i.Z)((0,i.Z)({},te),n),className:f()(D,(t={},(0,o.Z)(t,"".concat(D,"-active"),Q),(0,o.Z)(t,"".concat(D,"-selected"),ee),(0,o.Z)(t,"".concat(D,"-disabled"),$),t),c),onClick:function(e){if(!$){var t=G(e);null===y||void 0===y||y(O(t)),S(t)}},onKeyDown:function(e){if(null===b||void 0===b||b(e),e.which===x.Z.ENTER){var t=G(e);null===y||void 0===y||y(O(t)),S(t)}},onFocus:function(e){L(u),null===w||void 0===w||w(e)}}),m,l.createElement(T,{props:(0,i.Z)((0,i.Z)({},e),{},{isSelected:ee}),icon:Y}));return _&&(re=_(re,e)),re};var $=function(e){var t=e.eventKey,n=j(),r=I(t);return l.useEffect((function(){if(n)return n.registerPath(t,r),function(){n.unregisterPath(t,r)}}),[r]),n?null:l.createElement(W,e)},K=n(50344);function G(e,t){return(0,K.Z)(e).map((function(e,n){if(l.isValidElement(e)){var r,o,i=e.key,c=null!==(r=null===(o=e.props)||void 0===o?void 0:o.eventKey)&&void 0!==r?r:i;(null===c||void 0===c)&&(c="tmp_key-".concat([].concat((0,a.Z)(t),[n]).join("-")));var s={key:c,eventKey:c};return l.cloneElement(e,s)}return e}))}function Y(e){var t=l.useRef(e);t.current=e;var n=l.useCallback((function(){for(var e,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return null===(e=t.current)||void 0===e?void 0:e.call.apply(e,[t].concat(r))}),[]);return e?n:void 0}var X=["className","children"],Q=function(e,t){var n=e.className,o=e.children,i=(0,s.Z)(e,X),a=l.useContext(k),c=a.prefixCls,u=a.mode,d=a.rtl;return l.createElement("ul",(0,r.Z)({className:f()(c,d&&"".concat(c,"-rtl"),"".concat(c,"-sub"),"".concat(c,"-").concat("inline"===u?"inline":"vertical"),n)},i,{"data-menu-list":!0,ref:t}),o)},J=l.forwardRef(Q);J.displayName="SubMenuList";var ee=J,te=n(51169),ne=n(75164),re={adjustX:1,adjustY:1},oe={topLeft:{points:["bl","tl"],overflow:re,offset:[0,-7]},bottomLeft:{points:["tl","bl"],overflow:re,offset:[0,7]},leftTop:{points:["tr","tl"],overflow:re,offset:[-4,0]},rightTop:{points:["tl","tr"],overflow:re,offset:[4,0]}},ie={topLeft:{points:["bl","tl"],overflow:re,offset:[0,-7]},bottomLeft:{points:["tl","bl"],overflow:re,offset:[0,7]},rightTop:{points:["tr","tl"],overflow:re,offset:[-4,0]},leftTop:{points:["tl","tr"],overflow:re,offset:[4,0]}};function ae(e,t,n){return t||(n?n[e]||n.other:void 0)}var ce={horizontal:"bottomLeft",vertical:"rightTop","vertical-left":"rightTop","vertical-right":"leftTop"};function se(e){var t=e.prefixCls,n=e.visible,r=e.children,a=e.popup,s=e.popupClassName,u=e.popupOffset,d=e.disabled,p=e.mode,m=e.onVisibleChange,v=l.useContext(k),h=v.getPopupContainer,g=v.rtl,y=v.subMenuOpenDelay,b=v.subMenuCloseDelay,w=v.builtinPlacements,x=v.triggerSubMenuAction,C=v.forceSubMenuRender,E=v.motion,Z=v.defaultMotions,N=l.useState(!1),P=(0,c.Z)(N,2),S=P[0],O=P[1],T=g?(0,i.Z)((0,i.Z)({},ie),w):(0,i.Z)((0,i.Z)({},oe),w),M=ce[p],A=ae(p,E,Z),R=(0,i.Z)((0,i.Z)({},A),{},{leavedClassName:"".concat(t,"-hidden"),removeOnLeave:!1,motionAppear:!0}),j=l.useRef();return l.useEffect((function(){return j.current=(0,ne.Z)((function(){O(n)})),function(){ne.Z.cancel(j.current)}}),[n]),l.createElement(te.Z,{prefixCls:t,popupClassName:f()("".concat(t,"-popup"),(0,o.Z)({},"".concat(t,"-rtl"),g),s),stretch:"horizontal"===p?"minWidth":null,getPopupContainer:h,builtinPlacements:T,popupPlacement:M,popupVisible:S,popup:a,popupAlign:u&&{offset:u},action:d?[]:[x],mouseEnterDelay:y,mouseLeaveDelay:b,onPopupVisibleChange:m,forceRender:C,popupMotion:R},r)}var le=n(93481);function ue(e){var t=e.id,n=e.open,o=e.keyPath,a=e.children,s="inline",u=l.useContext(k),f=u.prefixCls,d=u.forceSubMenuRender,p=u.motion,m=u.defaultMotions,v=u.mode,h=l.useRef(!1);h.current=v===s;var g=l.useState(!h.current),y=(0,c.Z)(g,2),b=y[0],w=y[1],x=!!h.current&&n;l.useEffect((function(){h.current&&w(!1)}),[v]);var C=(0,i.Z)({},ae(s,p,m));o.length>1&&(C.motionAppear=!1);var E=C.onVisibleChanged;return C.onVisibleChanged=function(e){return h.current||e||w(!0),null===E||void 0===E?void 0:E(e)},b?null:l.createElement(N,{mode:s,locked:!h.current},l.createElement(le.Z,(0,r.Z)({visible:x},C,{forceRender:d,removeOnLeave:!1,leavedClassName:"".concat(f,"-hidden")}),(function(e){var n=e.className,r=e.style;return l.createElement(ee,{id:t,className:n,style:r},a)})))}var fe=["style","className","title","eventKey","warnKey","disabled","internalPopupClose","children","itemIcon","expandIcon","popupClassName","popupOffset","onClick","onMouseEnter","onMouseLeave","onTitleClick","onTitleMouseEnter","onTitleMouseLeave"],de=["active"],pe=function(e){var t,n=e.style,a=e.className,u=e.title,d=e.eventKey,p=(e.warnKey,e.disabled),m=e.internalPopupClose,v=e.children,g=e.itemIcon,y=e.expandIcon,b=e.popupClassName,w=e.popupOffset,x=e.onClick,C=e.onMouseEnter,E=e.onMouseLeave,Z=e.onTitleClick,S=e.onTitleMouseEnter,A=e.onTitleMouseLeave,R=(0,s.Z)(e,fe),j=V(d),F=l.useContext(k),_=F.prefixCls,D=F.mode,H=F.openKeys,U=F.disabled,B=F.overflowDisabled,q=F.activeKey,W=F.selectedKeys,$=F.itemIcon,K=F.expandIcon,G=F.onItemClick,X=F.onOpenChange,Q=F.onActive,J=l.useContext(z)._internalRenderSubMenuItem,te=l.useContext(L).isSubPathKey,ne=I(),re="".concat(_,"-submenu"),oe=U||p,ie=l.useRef(),ae=l.useRef();var ce=g||$,le=y||K,pe=H.includes(d),me=!B&&pe,ve=te(W,d),he=P(d,oe,S,A),ge=he.active,ye=(0,s.Z)(he,de),be=l.useState(!1),we=(0,c.Z)(be,2),xe=we[0],Ce=we[1],Ee=function(e){oe||Ce(e)},Ze=l.useMemo((function(){return ge||"inline"!==D&&(xe||te([q],d))}),[D,ge,q,xe,d,te]),ke=M(ne.length),Ne=Y((function(e){null===x||void 0===x||x(O(e)),G(e)})),Pe=j&&"".concat(j,"-popup"),Se=l.createElement("div",(0,r.Z)({role:"menuitem",style:ke,className:"".concat(re,"-title"),tabIndex:oe?null:-1,ref:ie,title:"string"===typeof u?u:null,"data-menu-id":B&&j?null:j,"aria-expanded":me,"aria-haspopup":!0,"aria-controls":Pe,"aria-disabled":oe,onClick:function(e){oe||(null===Z||void 0===Z||Z({key:d,domEvent:e}),"inline"===D&&X(d,!pe))},onFocus:function(){Q(d)}},ye),u,l.createElement(T,{icon:"horizontal"!==D?le:null,props:(0,i.Z)((0,i.Z)({},e),{},{isOpen:me,isSubMenu:!0})},l.createElement("i",{className:"".concat(re,"-arrow")}))),Oe=l.useRef(D);if("inline"!==D&&(Oe.current=ne.length>1?"vertical":D),!B){var Te=Oe.current;Se=l.createElement(se,{mode:Te,prefixCls:re,visible:!m&&me&&"inline"!==D,popupClassName:b,popupOffset:w,popup:l.createElement(N,{mode:"horizontal"===Te?"vertical":Te},l.createElement(ee,{id:Pe,ref:ae},v)),disabled:oe,onVisibleChange:function(e){"inline"!==D&&X(d,e)}},Se)}var Me=l.createElement(h.Z.Item,(0,r.Z)({role:"none"},R,{component:"li",style:n,className:f()(re,"".concat(re,"-").concat(D),a,(t={},(0,o.Z)(t,"".concat(re,"-open"),me),(0,o.Z)(t,"".concat(re,"-active"),Ze),(0,o.Z)(t,"".concat(re,"-selected"),ve),(0,o.Z)(t,"".concat(re,"-disabled"),oe),t)),onMouseEnter:function(e){Ee(!0),null===C||void 0===C||C({key:d,domEvent:e})},onMouseLeave:function(e){Ee(!1),null===E||void 0===E||E({key:d,domEvent:e})}}),Se,!B&&l.createElement(ue,{id:Pe,open:me,keyPath:ne},v));return J&&(Me=J(Me,e)),l.createElement(N,{onItemClick:Ne,mode:"horizontal"===D?"vertical":D,itemIcon:ce,expandIcon:le},Me)};function me(e){var t,n=e.eventKey,r=e.children,o=I(n),i=G(r,o),a=j();return l.useEffect((function(){if(a)return a.registerPath(n,o),function(){a.unregisterPath(n,o)}}),[o]),t=a?i:l.createElement(pe,e,i),l.createElement(F.Provider,{value:o},t)}var ve=n(5110);function he(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if((0,ve.Z)(e)){var n=e.nodeName.toLowerCase(),r=["input","select","textarea","button"].includes(n)||e.isContentEditable||"a"===n&&!!e.getAttribute("href"),o=e.getAttribute("tabindex"),i=Number(o),a=null;return o&&!Number.isNaN(i)?a=i:r&&null===a&&(a=0),r&&e.disabled&&(a=null),null!==a&&(a>=0||t&&a<0)}return!1}function ge(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=(0,a.Z)(e.querySelectorAll("*")).filter((function(e){return he(e,t)}));return he(e,t)&&n.unshift(e),n}var ye=x.Z.LEFT,be=x.Z.RIGHT,we=x.Z.UP,xe=x.Z.DOWN,Ce=x.Z.ENTER,Ee=x.Z.ESC,Ze=x.Z.HOME,ke=x.Z.END,Ne=[we,xe,ye,be];function Pe(e,t){return ge(e,!0).filter((function(e){return t.has(e)}))}function Se(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;if(!e)return null;var o=Pe(e,t),i=o.length,a=o.findIndex((function(e){return n===e}));return r<0?-1===a?a=i-1:a-=1:r>0&&(a+=1),o[a=(a+i)%i]}function Oe(e,t,n,r,i,a,c,s,u,f){var d=l.useRef(),p=l.useRef();p.current=t;var m=function(){ne.Z.cancel(d.current)};return l.useEffect((function(){return function(){m()}}),[]),function(l){var v=l.which;if([].concat(Ne,[Ce,Ee,Ze,ke]).includes(v)){var h,g,y,b=function(){return h=new Set,g=new Map,y=new Map,a().forEach((function(e){var t=document.querySelector("[data-menu-id='".concat(D(r,e),"']"));t&&(h.add(t),y.set(t,e),g.set(e,t))})),h};b();var w=function(e,t){for(var n=e||document.activeElement;n;){if(t.has(n))return n;n=n.parentElement}return null}(g.get(t),h),x=y.get(w),C=function(e,t,n,r){var i,a,c,s,l="prev",u="next",f="children",d="parent";if("inline"===e&&r===Ce)return{inlineTrigger:!0};var p=(i={},(0,o.Z)(i,we,l),(0,o.Z)(i,xe,u),i),m=(a={},(0,o.Z)(a,ye,n?u:l),(0,o.Z)(a,be,n?l:u),(0,o.Z)(a,xe,f),(0,o.Z)(a,Ce,f),a),v=(c={},(0,o.Z)(c,we,l),(0,o.Z)(c,xe,u),(0,o.Z)(c,Ce,f),(0,o.Z)(c,Ee,d),(0,o.Z)(c,ye,n?f:d),(0,o.Z)(c,be,n?d:f),c);switch(null===(s={inline:p,horizontal:m,vertical:v,inlineSub:p,horizontalSub:v,verticalSub:v}["".concat(e).concat(t?"":"Sub")])||void 0===s?void 0:s[r]){case l:return{offset:-1,sibling:!0};case u:return{offset:1,sibling:!0};case d:return{offset:-1,sibling:!1};case f:return{offset:1,sibling:!1};default:return null}}(e,1===c(x,!0).length,n,v);if(!C&&v!==Ze&&v!==ke)return;(Ne.includes(v)||[Ze,ke].includes(v))&&l.preventDefault();var E=function(e){if(e){var t=e,n=e.querySelector("a");(null===n||void 0===n?void 0:n.getAttribute("href"))&&(t=n);var r=y.get(e);s(r),m(),d.current=(0,ne.Z)((function(){p.current===r&&t.focus()}))}};if([Ze,ke].includes(v)||C.sibling||!w){var Z,k,N=Pe(Z=w&&"inline"!==e?function(e){for(var t=e;t;){if(t.getAttribute("data-menu-list"))return t;t=t.parentElement}return null}(w):i.current,h);k=v===Ze?N[0]:v===ke?N[N.length-1]:Se(Z,h,w,C.offset),E(k)}else if(C.inlineTrigger)u(x);else if(C.offset>0)u(x,!0),m(),d.current=(0,ne.Z)((function(){b();var e=w.getAttribute("aria-controls"),t=Se(document.getElementById(e),h);E(t)}),5);else if(C.offset<0){var P=c(x,!0),S=P[P.length-2],O=g.get(S);u(S,!1),E(O)}}null===f||void 0===f||f(l)}}var Te=Math.random().toFixed(5).toString().slice(2),Me=0;var Ae="__RC_UTIL_PATH_SPLIT__",Re=function(e){return e.join(Ae)},je="rc-menu-more";function Fe(){var e=l.useState({}),t=(0,c.Z)(e,2)[1],n=(0,l.useRef)(new Map),r=(0,l.useRef)(new Map),o=l.useState([]),i=(0,c.Z)(o,2),s=i[0],u=i[1],f=(0,l.useRef)(0),d=(0,l.useRef)(!1),p=(0,l.useCallback)((function(e,o){var i=Re(o);r.current.set(i,e),n.current.set(e,i),f.current+=1;var a,c=f.current;a=function(){c===f.current&&(d.current||t({}))},Promise.resolve().then(a)}),[]),m=(0,l.useCallback)((function(e,t){var o=Re(t);r.current.delete(o),n.current.delete(e)}),[]),v=(0,l.useCallback)((function(e){u(e)}),[]),h=(0,l.useCallback)((function(e,t){var r=n.current.get(e)||"",o=r.split(Ae);return t&&s.includes(o[0])&&o.unshift(je),o}),[s]),g=(0,l.useCallback)((function(e,t){return e.some((function(e){return h(e,!0).includes(t)}))}),[h]),y=(0,l.useCallback)((function(e){var t="".concat(n.current.get(e)).concat(Ae),o=new Set;return(0,a.Z)(r.current.keys()).forEach((function(e){e.startsWith(t)&&o.add(r.current.get(e))})),o}),[]);return l.useEffect((function(){return function(){d.current=!0}}),[]),{registerPath:p,unregisterPath:m,refreshOverflowKeys:v,isSubPathKey:g,getKeyPath:h,getKeys:function(){var e=(0,a.Z)(n.current.keys());return s.length&&e.push(je),e},getSubPathKeys:y}}var Ie=["prefixCls","style","className","tabIndex","children","direction","id","mode","inlineCollapsed","disabled","disabledOverflow","subMenuOpenDelay","subMenuCloseDelay","forceSubMenuRender","defaultOpenKeys","openKeys","activeKey","defaultActiveFirst","selectable","multiple","defaultSelectedKeys","selectedKeys","onSelect","onDeselect","inlineIndent","motion","defaultMotions","triggerSubMenuAction","builtinPlacements","itemIcon","expandIcon","overflowedIndicator","overflowedIndicatorPopupClassName","getPopupContainer","onClick","onOpenChange","onKeyDown","openAnimation","openTransitionName","_internalRenderMenuItem","_internalRenderSubMenuItem"],Le=[],_e=["className","title","eventKey","children"],De=["children"],Ve=function(e){var t=e.className,n=e.title,o=(e.eventKey,e.children),i=(0,s.Z)(e,_e),a=l.useContext(k).prefixCls,c="".concat(a,"-item-group");return l.createElement("li",(0,r.Z)({},i,{onClick:function(e){return e.stopPropagation()},className:f()(c,t)}),l.createElement("div",{className:"".concat(c,"-title"),title:"string"===typeof n?n:void 0},n),l.createElement("ul",{className:"".concat(c,"-list")},o))};function ze(e){var t=e.children,n=(0,s.Z)(e,De),r=G(t,I(n.eventKey));return j()?r:l.createElement(Ve,(0,C.Z)(n,["warnKey"]),r)}function He(e){var t=e.className,n=e.style,r=l.useContext(k).prefixCls;return j()?null:l.createElement("li",{className:f()("".concat(r,"-item-divider"),t),style:n})}var Ue=I,Be=function(e){var t,n,u=e.prefixCls,d=void 0===u?"rc-menu":u,v=e.style,g=e.className,y=e.tabIndex,b=void 0===y?0:y,w=e.children,x=e.direction,C=e.id,E=e.mode,Z=void 0===E?"vertical":E,k=e.inlineCollapsed,P=e.disabled,S=e.disabledOverflow,T=e.subMenuOpenDelay,M=void 0===T?.1:T,A=e.subMenuCloseDelay,j=void 0===A?.1:A,F=e.forceSubMenuRender,I=e.defaultOpenKeys,D=e.openKeys,V=e.activeKey,H=e.defaultActiveFirst,U=e.selectable,B=void 0===U||U,q=e.multiple,W=void 0!==q&&q,K=e.defaultSelectedKeys,X=e.selectedKeys,Q=e.onSelect,J=e.onDeselect,ee=e.inlineIndent,te=void 0===ee?24:ee,ne=e.motion,re=e.defaultMotions,oe=e.triggerSubMenuAction,ie=void 0===oe?"hover":oe,ae=e.builtinPlacements,ce=e.itemIcon,se=e.expandIcon,le=e.overflowedIndicator,ue=void 0===le?"...":le,fe=e.overflowedIndicatorPopupClassName,de=e.getPopupContainer,pe=e.onClick,ve=e.onOpenChange,he=e.onKeyDown,ge=(e.openAnimation,e.openTransitionName,e._internalRenderMenuItem),ye=e._internalRenderSubMenuItem,be=(0,s.Z)(e,Ie),we=G(w,Le),xe=l.useState(!1),Ce=(0,c.Z)(xe,2),Ee=Ce[0],Ze=Ce[1],ke=l.useRef(),Ne=function(e){var t=(0,m.Z)(e,{value:e}),n=(0,c.Z)(t,2),r=n[0],o=n[1];return l.useEffect((function(){Me+=1;var e="".concat(Te,"-").concat(Me);o("rc-menu-uuid-".concat(e))}),[]),r}(C),Pe="rtl"===x;var Se=l.useMemo((function(){return"inline"!==Z&&"vertical"!==Z||!k?[Z,!1]:["vertical",k]}),[Z,k]),Ae=(0,c.Z)(Se,2),Re=Ae[0],_e=Ae[1],De=l.useState(0),Ve=(0,c.Z)(De,2),ze=Ve[0],He=Ve[1],Ue=ze>=we.length-1||"horizontal"!==Re||S,Be=(0,m.Z)(I,{value:D,postState:function(e){return e||Le}}),qe=(0,c.Z)(Be,2),We=qe[0],$e=qe[1],Ke=function(e){$e(e),null===ve||void 0===ve||ve(e)},Ge=l.useState(We),Ye=(0,c.Z)(Ge,2),Xe=Ye[0],Qe=Ye[1],Je="inline"===Re,et=l.useRef(!1);l.useEffect((function(){Je&&Qe(We)}),[We]),l.useEffect((function(){et.current?Je?$e(Xe):Ke(Le):et.current=!0}),[Je]);var tt=Fe(),nt=tt.registerPath,rt=tt.unregisterPath,ot=tt.refreshOverflowKeys,it=tt.isSubPathKey,at=tt.getKeyPath,ct=tt.getKeys,st=tt.getSubPathKeys,lt=l.useMemo((function(){return{registerPath:nt,unregisterPath:rt}}),[nt,rt]),ut=l.useMemo((function(){return{isSubPathKey:it}}),[it]);l.useEffect((function(){ot(Ue?Le:we.slice(ze+1).map((function(e){return e.key})))}),[ze,Ue]);var ft=(0,m.Z)(V||H&&(null===(t=we[0])||void 0===t?void 0:t.key),{value:V}),dt=(0,c.Z)(ft,2),pt=dt[0],mt=dt[1],vt=Y((function(e){mt(e)})),ht=Y((function(){mt(void 0)})),gt=(0,m.Z)(K||[],{value:X,postState:function(e){return Array.isArray(e)?e:null===e||void 0===e?Le:[e]}}),yt=(0,c.Z)(gt,2),bt=yt[0],wt=yt[1],xt=Y((function(e){null===pe||void 0===pe||pe(O(e)),function(e){if(B){var t,n=e.key,r=bt.includes(n);t=W?r?bt.filter((function(e){return e!==n})):[].concat((0,a.Z)(bt),[n]):[n],wt(t);var o=(0,i.Z)((0,i.Z)({},e),{},{selectedKeys:t});r?null===J||void 0===J||J(o):null===Q||void 0===Q||Q(o)}!W&&We.length&&"inline"!==Re&&Ke(Le)}(e)})),Ct=Y((function(e,t){var n=We.filter((function(t){return t!==e}));if(t)n.push(e);else if("inline"!==Re){var r=st(e);n=n.filter((function(e){return!r.has(e)}))}p()(We,n)||Ke(n)})),Et=Y(de),Zt=Oe(Re,pt,Pe,Ne,ke,ct,at,mt,(function(e,t){var n=null!==t&&void 0!==t?t:!We.includes(e);Ct(e,n)}),he);l.useEffect((function(){Ze(!0)}),[]);var kt=l.useMemo((function(){return{_internalRenderMenuItem:ge,_internalRenderSubMenuItem:ye}}),[ge,ye]),Nt="horizontal"!==Re||S?we:we.map((function(e,t){return l.createElement(N,{key:e.key,overflowDisabled:t>ze},e)})),Pt=l.createElement(h.Z,(0,r.Z)({id:C,ref:ke,prefixCls:"".concat(d,"-overflow"),component:"ul",itemComponent:$,className:f()(d,"".concat(d,"-root"),"".concat(d,"-").concat(Re),g,(n={},(0,o.Z)(n,"".concat(d,"-inline-collapsed"),_e),(0,o.Z)(n,"".concat(d,"-rtl"),Pe),n)),dir:x,style:v,role:"menu",tabIndex:b,data:Nt,renderRawItem:function(e){return e},renderRawRest:function(e){var t=e.length,n=t?we.slice(-t):null;return l.createElement(me,{eventKey:je,title:ue,disabled:Ue,internalPopupClose:0===t,popupClassName:fe},n)},maxCount:"horizontal"!==Re||S?h.Z.INVALIDATE:h.Z.RESPONSIVE,ssr:"full","data-menu-list":!0,onVisibleChange:function(e){He(e)},onKeyDown:Zt},be));return l.createElement(z.Provider,{value:kt},l.createElement(_.Provider,{value:Ne},l.createElement(N,{prefixCls:d,mode:Re,openKeys:We,rtl:Pe,disabled:P,motion:Ee?ne:null,defaultMotions:Ee?re:null,activeKey:pt,onActive:vt,onInactive:ht,selectedKeys:bt,inlineIndent:te,subMenuOpenDelay:M,subMenuCloseDelay:j,forceSubMenuRender:F,builtinPlacements:ae,triggerSubMenuAction:ie,getPopupContainer:Et,itemIcon:ce,expandIcon:se,onItemClick:xt,onOpenChange:Ct},l.createElement(L.Provider,{value:ut},Pt),l.createElement("div",{style:{display:"none"},"aria-hidden":!0},l.createElement(R.Provider,{value:lt},we)))))};Be.Item=$,Be.SubMenu=me,Be.ItemGroup=ze,Be.Divider=He;var qe=Be},93481:function(e,t,n){"use strict";n.d(t,{V:function(){return re},Z:function(){return oe}});var r=n(4942),o=n(1413),i=n(97685),a=n(71002),c=n(67294),s=n(34203),l=n(42550),u=n(94184),f=n.n(u),d=n(98924);function p(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit".concat(e)]="webkit".concat(t),n["Moz".concat(e)]="moz".concat(t),n["ms".concat(e)]="MS".concat(t),n["O".concat(e)]="o".concat(t.toLowerCase()),n}var m=function(e,t){var n={animationend:p("Animation","AnimationEnd"),transitionend:p("Transition","TransitionEnd")};return e&&("AnimationEvent"in t||delete n.animationend.animation,"TransitionEvent"in t||delete n.transitionend.transition),n}((0,d.Z)(),"undefined"!==typeof window?window:{}),v={};if((0,d.Z)()){var h=document.createElement("div");v=h.style}var g={};function y(e){if(g[e])return g[e];var t=m[e];if(t)for(var n=Object.keys(t),r=n.length,o=0;o<r;o+=1){var i=n[o];if(Object.prototype.hasOwnProperty.call(t,i)&&i in v)return g[e]=t[i],g[e]}return""}var b=y("animationend"),w=y("transitionend"),x=!(!b||!w),C=b||"animationend",E=w||"transitionend";function Z(e,t){return e?"object"===(0,a.Z)(e)?e[t.replace(/-\w/g,(function(e){return e[1].toUpperCase()}))]:"".concat(e,"-").concat(t):null}var k="none",N="appear",P="enter",S="leave",O="none",T="prepare",M="start",A="active",R="end";function j(e){var t=(0,c.useRef)(!1),n=(0,c.useState)(e),r=(0,i.Z)(n,2),o=r[0],a=r[1];return(0,c.useEffect)((function(){return function(){t.current=!0}}),[]),[o,function(e){t.current||a(e)}]}var F=(0,d.Z)()?c.useLayoutEffect:c.useEffect,I=n(75164),L=[T,M,A,R];function _(e){return e===A||e===R}var D=function(e,t){var n=c.useState(O),r=(0,i.Z)(n,2),o=r[0],a=r[1],s=function(){var e=c.useRef(null);function t(){I.Z.cancel(e.current)}return c.useEffect((function(){return function(){t()}}),[]),[function n(r){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2;t();var i=(0,I.Z)((function(){o<=1?r({isCanceled:function(){return i!==e.current}}):n(r,o-1)}));e.current=i},t]}(),l=(0,i.Z)(s,2),u=l[0],f=l[1];return F((function(){if(o!==O&&o!==R){var e=L.indexOf(o),n=L[e+1],r=t(o);false===r?a(n):u((function(e){function t(){e.isCanceled()||a(n)}!0===r?t():Promise.resolve(r).then(t)}))}}),[e,o]),c.useEffect((function(){return function(){f()}}),[]),[function(){a(T)},o]};function V(e,t,n,a){var s=a.motionEnter,l=void 0===s||s,u=a.motionAppear,f=void 0===u||u,d=a.motionLeave,p=void 0===d||d,m=a.motionDeadline,v=a.motionLeaveImmediately,h=a.onAppearPrepare,g=a.onEnterPrepare,y=a.onLeavePrepare,b=a.onAppearStart,w=a.onEnterStart,x=a.onLeaveStart,Z=a.onAppearActive,O=a.onEnterActive,R=a.onLeaveActive,I=a.onAppearEnd,L=a.onEnterEnd,V=a.onLeaveEnd,z=a.onVisibleChanged,H=j(),U=(0,i.Z)(H,2),B=U[0],q=U[1],W=j(k),$=(0,i.Z)(W,2),K=$[0],G=$[1],Y=j(null),X=(0,i.Z)(Y,2),Q=X[0],J=X[1],ee=(0,c.useRef)(!1),te=(0,c.useRef)(null),ne=(0,c.useRef)(!1),re=(0,c.useRef)(null);function oe(){return n()||re.current}var ie=(0,c.useRef)(!1);function ae(e){var t,n=oe();e&&!e.deadline&&e.target!==n||(K===N&&ie.current?t=null===I||void 0===I?void 0:I(n,e):K===P&&ie.current?t=null===L||void 0===L?void 0:L(n,e):K===S&&ie.current&&(t=null===V||void 0===V?void 0:V(n,e)),!1===t||ne.current||(G(k),J(null)))}var ce=function(e){var t=(0,c.useRef)(),n=(0,c.useRef)(e);n.current=e;var r=c.useCallback((function(e){n.current(e)}),[]);function o(e){e&&(e.removeEventListener(E,r),e.removeEventListener(C,r))}return c.useEffect((function(){return function(){o(t.current)}}),[]),[function(e){t.current&&t.current!==e&&o(t.current),e&&e!==t.current&&(e.addEventListener(E,r),e.addEventListener(C,r),t.current=e)},o]}(ae),se=(0,i.Z)(ce,1)[0],le=c.useMemo((function(){var e,t,n;switch(K){case"appear":return e={},(0,r.Z)(e,T,h),(0,r.Z)(e,M,b),(0,r.Z)(e,A,Z),e;case"enter":return t={},(0,r.Z)(t,T,g),(0,r.Z)(t,M,w),(0,r.Z)(t,A,O),t;case"leave":return n={},(0,r.Z)(n,T,y),(0,r.Z)(n,M,x),(0,r.Z)(n,A,R),n;default:return{}}}),[K]),ue=D(K,(function(e){if(e===T){var t=le.prepare;return!!t&&t(oe())}var n;pe in le&&J((null===(n=le[pe])||void 0===n?void 0:n.call(le,oe(),null))||null);return pe===A&&(se(oe()),m>0&&(clearTimeout(te.current),te.current=setTimeout((function(){ae({deadline:!0})}),m))),true})),fe=(0,i.Z)(ue,2),de=fe[0],pe=fe[1],me=_(pe);ie.current=me,F((function(){q(t);var n,r=ee.current;(ee.current=!0,e)&&(!r&&t&&f&&(n=N),r&&t&&l&&(n=P),(r&&!t&&p||!r&&v&&!t&&p)&&(n=S),n&&(G(n),de()))}),[t]),(0,c.useEffect)((function(){(K===N&&!f||K===P&&!l||K===S&&!p)&&G(k)}),[f,l,p]),(0,c.useEffect)((function(){return function(){clearTimeout(te.current),ne.current=!0}}),[]),(0,c.useEffect)((function(){void 0!==B&&K===k&&(null===z||void 0===z||z(B))}),[B,K]);var ve=Q;return le.prepare&&pe===M&&(ve=(0,o.Z)({transition:"none"},ve)),[K,pe,ve,null!==B&&void 0!==B?B:t]}var z=n(15671),H=n(43144),U=n(60136),B=n(3289),q=function(e){(0,U.Z)(n,e);var t=(0,B.Z)(n);function n(){return(0,z.Z)(this,n),t.apply(this,arguments)}return(0,H.Z)(n,[{key:"render",value:function(){return this.props.children}}]),n}(c.Component);var W=function(e){var t=e;function n(e){return!(!e.motionName||!t)}"object"===(0,a.Z)(e)&&(t=e.transitionSupport);var u=c.forwardRef((function(e,t){var a=e.visible,u=void 0===a||a,d=e.removeOnLeave,p=void 0===d||d,m=e.forceRender,v=e.children,h=e.motionName,g=e.leavedClassName,y=e.eventProps,b=n(e),w=(0,c.useRef)(),x=(0,c.useRef)();var C=V(b,u,(function(){try{return(0,s.Z)(w.current||x.current)}catch(e){return null}}),e),E=(0,i.Z)(C,4),N=E[0],P=E[1],S=E[2],O=E[3],A=c.useRef(O);O&&(A.current=!0);var R=(0,c.useRef)(t);R.current=t;var j,F=c.useCallback((function(e){w.current=e,(0,l.mH)(R.current,e)}),[]),I=(0,o.Z)((0,o.Z)({},y),{},{visible:u});if(v)if(N!==k&&n(e)){var L,D;P===T?D="prepare":_(P)?D="active":P===M&&(D="start"),j=v((0,o.Z)((0,o.Z)({},I),{},{className:f()(Z(h,N),(L={},(0,r.Z)(L,Z(h,"".concat(N,"-").concat(D)),D),(0,r.Z)(L,h,"string"===typeof h),L)),style:S}),F)}else j=O?v((0,o.Z)({},I),F):!p&&A.current?v((0,o.Z)((0,o.Z)({},I),{},{className:g}),F):m?v((0,o.Z)((0,o.Z)({},I),{},{style:{display:"none"}}),F):null;else j=null;return c.createElement(q,{ref:x},j)}));return u.displayName="CSSMotion",u}(x),$=n(87462),K=n(91),G="add",Y="keep",X="remove",Q="removed";function J(e){var t;return t=e&&"object"===(0,a.Z)(e)&&"key"in e?e:{key:e},(0,o.Z)((0,o.Z)({},t),{},{key:String(t.key)})}function ee(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return e.map(J)}function te(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=[],r=0,i=t.length,a=ee(e),c=ee(t);a.forEach((function(e){for(var t=!1,a=r;a<i;a+=1){var s=c[a];if(s.key===e.key){r<a&&(n=n.concat(c.slice(r,a).map((function(e){return(0,o.Z)((0,o.Z)({},e),{},{status:G})}))),r=a),n.push((0,o.Z)((0,o.Z)({},s),{},{status:Y})),r+=1,t=!0;break}}t||n.push((0,o.Z)((0,o.Z)({},e),{},{status:X}))})),r<i&&(n=n.concat(c.slice(r).map((function(e){return(0,o.Z)((0,o.Z)({},e),{},{status:G})}))));var s={};n.forEach((function(e){var t=e.key;s[t]=(s[t]||0)+1}));var l=Object.keys(s).filter((function(e){return s[e]>1}));return l.forEach((function(e){(n=n.filter((function(t){var n=t.key,r=t.status;return n!==e||r!==X}))).forEach((function(t){t.key===e&&(t.status=Y)}))})),n}var ne=["eventProps","visible","children","motionName","motionAppear","motionEnter","motionLeave","motionLeaveImmediately","motionDeadline","removeOnLeave","leavedClassName","onAppearStart","onAppearActive","onAppearEnd","onEnterStart","onEnterActive","onEnterEnd","onLeaveStart","onLeaveActive","onLeaveEnd"];var re=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:W,n=function(e){(0,U.Z)(r,e);var n=(0,B.Z)(r);function r(){var e;return(0,z.Z)(this,r),(e=n.apply(this,arguments)).state={keyEntities:[]},e.removeKey=function(t){e.setState((function(e){return{keyEntities:e.keyEntities.map((function(e){return e.key!==t?e:(0,o.Z)((0,o.Z)({},e),{},{status:Q})}))}}))},e}return(0,H.Z)(r,[{key:"render",value:function(){var e=this,n=this.state.keyEntities,r=this.props,o=r.component,i=r.children,a=r.onVisibleChanged,s=(0,K.Z)(r,["component","children","onVisibleChanged"]),l=o||c.Fragment,u={};return ne.forEach((function(e){u[e]=s[e],delete s[e]})),delete s.keys,c.createElement(l,s,n.map((function(n){var r=n.status,o=(0,K.Z)(n,["status"]),s=r===G||r===Y;return c.createElement(t,(0,$.Z)({},u,{key:o.key,visible:s,eventProps:o,onVisibleChanged:function(t){null===a||void 0===a||a(t,{key:o.key}),t||e.removeKey(o.key)}}),i)})))}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n=e.keys,r=t.keyEntities,o=ee(n);return{keyEntities:te(r,o).filter((function(e){var t=r.find((function(t){var n=t.key;return e.key===n}));return!t||t.status!==Q||e.status!==X}))}}}]),r}(c.Component);return n.defaultProps={component:"div"},n}(x),oe=W},51784:function(e,t,n){"use strict";n.d(t,{Z:function(){return p}});var r=n(87462),o=n(4942),i=n(15671),a=n(43144),c=n(60136),s=n(3289),l=n(67294),u=n(73935),f=n(94184),d=n.n(f),p=function(e){(0,c.Z)(n,e);var t=(0,s.Z)(n);function n(){var e;(0,i.Z)(this,n);for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return(e=t.call.apply(t,[this].concat(o))).closeTimer=null,e.close=function(t){t&&t.stopPropagation(),e.clearCloseTimer();var n=e.props,r=n.onClose,o=n.noticeKey;r&&r(o)},e.startCloseTimer=function(){e.props.duration&&(e.closeTimer=window.setTimeout((function(){e.close()}),1e3*e.props.duration))},e.clearCloseTimer=function(){e.closeTimer&&(clearTimeout(e.closeTimer),e.closeTimer=null)},e}return(0,a.Z)(n,[{key:"componentDidMount",value:function(){this.startCloseTimer()}},{key:"componentDidUpdate",value:function(e){(this.props.duration!==e.duration||this.props.updateMark!==e.updateMark||this.props.visible!==e.visible&&this.props.visible)&&this.restartCloseTimer()}},{key:"componentWillUnmount",value:function(){this.clearCloseTimer()}},{key:"restartCloseTimer",value:function(){this.clearCloseTimer(),this.startCloseTimer()}},{key:"render",value:function(){var e=this,t=this.props,n=t.prefixCls,i=t.className,a=t.closable,c=t.closeIcon,s=t.style,f=t.onClick,p=t.children,m=t.holder,v="".concat(n,"-notice"),h=Object.keys(this.props).reduce((function(t,n){return"data-"!==n.substr(0,5)&&"aria-"!==n.substr(0,5)&&"role"!==n||(t[n]=e.props[n]),t}),{}),g=l.createElement("div",(0,r.Z)({className:d()(v,i,(0,o.Z)({},"".concat(v,"-closable"),a)),style:s,onMouseEnter:this.clearCloseTimer,onMouseLeave:this.startCloseTimer,onClick:f},h),l.createElement("div",{className:"".concat(v,"-content")},p),a?l.createElement("a",{tabIndex:0,onClick:this.close,className:"".concat(v,"-close")},c||l.createElement("span",{className:"".concat(v,"-close-x")})):null);return m?u.createPortal(g,m):g}}]),n}(l.Component);p.defaultProps={onClose:function(){},duration:1.5}},91127:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return x}});var r=n(91),o=n(87462),i=n(1413),a=n(15671),c=n(43144),s=n(60136),l=n(3289),u=n(67294),f=n(73935),d=n(94184),p=n.n(d),m=n(93481),v=n(51784),h=n(51550),g=0,y=Date.now();function b(){var e=g;return g+=1,"rcNotification_".concat(y,"_").concat(e)}var w=function(e){(0,s.Z)(n,e);var t=(0,l.Z)(n);function n(){var e;(0,a.Z)(this,n);for(var r=arguments.length,o=new Array(r),c=0;c<r;c++)o[c]=arguments[c];return(e=t.call.apply(t,[this].concat(o))).state={notices:[]},e.hookRefs=new Map,e.add=function(t,n){var r=t.key||b(),o=(0,i.Z)((0,i.Z)({},t),{},{key:r}),a=e.props.maxCount;e.setState((function(e){var t=e.notices,i=t.map((function(e){return e.notice.key})).indexOf(r),c=t.concat();return-1!==i?c.splice(i,1,{notice:o,holderCallback:n}):(a&&t.length>=a&&(o.key=c[0].notice.key,o.updateMark=b(),o.userPassKey=r,c.shift()),c.push({notice:o,holderCallback:n})),{notices:c}}))},e.remove=function(t){e.setState((function(e){return{notices:e.notices.filter((function(e){var n=e.notice,r=n.key;return(n.userPassKey||r)!==t}))}}))},e.noticePropsMap={},e}return(0,c.Z)(n,[{key:"getTransitionName",value:function(){var e=this.props,t=e.prefixCls,n=e.animation,r=this.props.transitionName;return!r&&n&&(r="".concat(t,"-").concat(n)),r}},{key:"render",value:function(){var e=this,t=this.state.notices,n=this.props,r=n.prefixCls,a=n.className,c=n.closeIcon,s=n.style,l=[];return t.forEach((function(n,o){var a=n.notice,s=n.holderCallback,u=o===t.length-1?a.updateMark:void 0,f=a.key,d=a.userPassKey,p=(0,i.Z)((0,i.Z)((0,i.Z)({prefixCls:r,closeIcon:c},a),a.props),{},{key:f,noticeKey:d||f,updateMark:u,onClose:function(t){var n;e.remove(t),null===(n=a.onClose)||void 0===n||n.call(a)},onClick:a.onClick,children:a.content});l.push(f),e.noticePropsMap[f]={props:p,holderCallback:s}})),u.createElement("div",{className:p()(r,a),style:s},u.createElement(m.V,{keys:l,motionName:this.getTransitionName(),onVisibleChanged:function(t,n){var r=n.key;t||delete e.noticePropsMap[r]}},(function(t){var n=t.key,a=t.className,c=t.style,s=t.visible,l=e.noticePropsMap[n],f=l.props,d=l.holderCallback;return d?u.createElement("div",{key:n,className:p()(a,"".concat(r,"-hook-holder")),style:(0,i.Z)({},c),ref:function(t){"undefined"!==typeof n&&(t?(e.hookRefs.set(n,t),d(t,f)):e.hookRefs.delete(n))}}):u.createElement(v.Z,(0,o.Z)({},f,{className:p()(a,null===f||void 0===f?void 0:f.className),style:(0,i.Z)((0,i.Z)({},c),null===f||void 0===f?void 0:f.style),visible:s}))})))}}]),n}(u.Component);w.newInstance=void 0,w.defaultProps={prefixCls:"rc-notification",animation:"fade",style:{top:65,left:"50%"}},w.newInstance=function(e,t){var n=e||{},i=n.getContainer,a=(0,r.Z)(n,["getContainer"]),c=document.createElement("div");i?i().appendChild(c):document.body.appendChild(c);var s=!1;f.render(u.createElement(w,(0,o.Z)({},a,{ref:function(e){s||(s=!0,t({notice:function(t){e.add(t)},removeNotice:function(t){e.remove(t)},component:e,destroy:function(){f.unmountComponentAtNode(c),c.parentNode&&c.parentNode.removeChild(c)},useNotification:function(){return(0,h.Z)(e)}}))}})),c)};var x=w},51550:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(74902),o=n(87462),i=n(97685),a=n(67294),c=n(51784);function s(e){var t=a.useRef({}),n=a.useState([]),s=(0,i.Z)(n,2),l=s[0],u=s[1];return[function(n){var i=!0;e.add(n,(function(e,n){var s=n.key;if(e&&(!t.current[s]||i)){var l=a.createElement(c.Z,(0,o.Z)({},n,{holder:e}));t.current[s]=l,u((function(e){var t=e.findIndex((function(e){return e.key===n.key}));if(-1===t)return[].concat((0,r.Z)(e),[l]);var o=(0,r.Z)(e);return o[t]=l,o}))}i=!1}))},a.createElement(a.Fragment,null,l)]}},34243:function(e,t,n){"use strict";n.d(t,{Z:function(){return k}});var r=n(87462),o=n(1413),i=n(97685),a=n(91),c=n(67294),s=n(94184),l=n.n(s),u=n(48555),f=void 0;function d(e,t){var n=e.prefixCls,i=e.invalidate,s=e.item,d=e.renderItem,p=e.responsive,m=e.registerSize,v=e.itemKey,h=e.className,g=e.style,y=e.children,b=e.display,w=e.order,x=e.component,C=void 0===x?"div":x,E=(0,a.Z)(e,["prefixCls","invalidate","item","renderItem","responsive","registerSize","itemKey","className","style","children","display","order","component"]),Z=p&&!b;function k(e){m(v,e)}c.useEffect((function(){return function(){k(null)}}),[]);var N,P=d&&s!==f?d(s):y;i||(N={opacity:Z?0:1,height:Z?0:f,overflowY:Z?"hidden":f,order:p?w:f,pointerEvents:Z?"none":f,position:Z?"absolute":f});var S={};Z&&(S["aria-hidden"]=!0);var O=c.createElement(C,(0,r.Z)({className:l()(!i&&n,h),style:(0,o.Z)((0,o.Z)({},N),g)},S,E,{ref:t}),P);return p&&(O=c.createElement(u.default,{onResize:function(e){k(e.offsetWidth)}},O)),O}var p=c.forwardRef(d);p.displayName="Item";var m=p,v=n(75164);var h=function(e,t){var n=c.useContext(b);if(!n){var o=e.component,i=void 0===o?"div":o,s=(0,a.Z)(e,["component"]);return c.createElement(i,(0,r.Z)({},s,{ref:t}))}var u=n.className,f=(0,a.Z)(n,["className"]),d=e.className,p=(0,a.Z)(e,["className"]);return c.createElement(b.Provider,{value:null},c.createElement(m,(0,r.Z)({ref:t,className:l()(u,d)},f,p)))},g=c.forwardRef(h);g.displayName="RawItem";var y=g,b=c.createContext(null),w="responsive",x="invalidate";function C(e){return"+ ".concat(e.length," ...")}function E(e,t){var n=e.prefixCls,s=void 0===n?"rc-overflow":n,f=e.data,d=void 0===f?[]:f,p=e.renderItem,h=e.renderRawItem,g=e.itemKey,y=e.itemWidth,E=void 0===y?10:y,Z=e.ssr,k=e.style,N=e.className,P=e.maxCount,S=e.renderRest,O=e.renderRawRest,T=e.suffix,M=e.component,A=void 0===M?"div":M,R=e.itemComponent,j=e.onVisibleChange,F=(0,a.Z)(e,["prefixCls","data","renderItem","renderRawItem","itemKey","itemWidth","ssr","style","className","maxCount","renderRest","renderRawRest","suffix","component","itemComponent","onVisibleChange"]),I=function(){var e=(0,c.useState)({}),t=(0,i.Z)(e,2)[1],n=(0,c.useRef)([]),r=(0,c.useRef)(!1),o=0,a=0;return(0,c.useEffect)((function(){return function(){r.current=!0}}),[]),function(e){var i=o;return o+=1,n.current.length<i+1&&(n.current[i]=e),[n.current[i],function(e){n.current[i]="function"===typeof e?e(n.current[i]):e,v.Z.cancel(a),a=(0,v.Z)((function(){r.current||t({})}))}]}}(),L="full"===Z,_=I(null),D=(0,i.Z)(_,2),V=D[0],z=D[1],H=V||0,U=I(new Map),B=(0,i.Z)(U,2),q=B[0],W=B[1],$=I(0),K=(0,i.Z)($,2),G=K[0],Y=K[1],X=I(0),Q=(0,i.Z)(X,2),J=Q[0],ee=Q[1],te=I(0),ne=(0,i.Z)(te,2),re=ne[0],oe=ne[1],ie=(0,c.useState)(null),ae=(0,i.Z)(ie,2),ce=ae[0],se=ae[1],le=(0,c.useState)(null),ue=(0,i.Z)(le,2),fe=ue[0],de=ue[1],pe=c.useMemo((function(){return null===fe&&L?Number.MAX_SAFE_INTEGER:fe||0}),[fe,V]),me=(0,c.useState)(!1),ve=(0,i.Z)(me,2),he=ve[0],ge=ve[1],ye="".concat(s,"-item"),be=Math.max(G,J),we=d.length&&P===w,xe=P===x,Ce=we||"number"===typeof P&&d.length>P,Ee=(0,c.useMemo)((function(){var e=d;return we?e=null===V&&L?d:d.slice(0,Math.min(d.length,H/E)):"number"===typeof P&&(e=d.slice(0,P)),e}),[d,E,V,P,we]),Ze=(0,c.useMemo)((function(){return we?d.slice(pe+1):d.slice(Ee.length)}),[d,Ee,we,pe]),ke=(0,c.useCallback)((function(e,t){var n;return"function"===typeof g?g(e):null!==(n=g&&(null===e||void 0===e?void 0:e[g]))&&void 0!==n?n:t}),[g]),Ne=(0,c.useCallback)(p||function(e){return e},[p]);function Pe(e,t){de(e),t||(ge(e<d.length-1),null===j||void 0===j||j(e))}function Se(e,t){W((function(n){var r=new Map(n);return null===t?r.delete(e):r.set(e,t),r}))}function Oe(e){return q.get(ke(Ee[e],e))}c.useLayoutEffect((function(){if(H&&be&&Ee){var e=re,t=Ee.length,n=t-1;if(!t)return Pe(0),void se(null);for(var r=0;r<t;r+=1){var o=Oe(r);if(void 0===o){Pe(r-1,!0);break}if(e+=o,0===n&&e<=H||r===n-1&&e+Oe(n)<=H){Pe(n),se(null);break}if(e+be>H){Pe(r-1),se(e-o-re+J);break}}T&&Oe(0)+re>H&&se(null)}}),[H,q,J,re,ke,Ee]);var Te=he&&!!Ze.length,Me={};null!==ce&&we&&(Me={position:"absolute",left:ce,top:0});var Ae,Re={prefixCls:ye,responsive:we,component:R,invalidate:xe},je=h?function(e,t){var n=ke(e,t);return c.createElement(b.Provider,{key:n,value:(0,o.Z)((0,o.Z)({},Re),{},{order:t,item:e,itemKey:n,registerSize:Se,display:t<=pe})},h(e,t))}:function(e,t){var n=ke(e,t);return c.createElement(m,(0,r.Z)({},Re,{order:t,key:n,item:e,renderItem:Ne,itemKey:n,registerSize:Se,display:t<=pe}))},Fe={order:Te?pe:Number.MAX_SAFE_INTEGER,className:"".concat(ye,"-rest"),registerSize:function(e,t){ee(t),Y(J)},display:Te};if(O)O&&(Ae=c.createElement(b.Provider,{value:(0,o.Z)((0,o.Z)({},Re),Fe)},O(Ze)));else{var Ie=S||C;Ae=c.createElement(m,(0,r.Z)({},Re,Fe),"function"===typeof Ie?Ie(Ze):Ie)}var Le=c.createElement(A,(0,r.Z)({className:l()(!xe&&s,N),style:k,ref:t},F),Ee.map(je),Ce?Ae:null,T&&c.createElement(m,(0,r.Z)({},Re,{order:pe,className:"".concat(ye,"-suffix"),registerSize:function(e,t){oe(t)},display:!0,style:Me}),T));return we&&(Le=c.createElement(u.default,{onResize:function(e,t){z(t.clientWidth)}},Le)),Le}var Z=c.forwardRef(E);Z.displayName="Overflow",Z.Item=y,Z.RESPONSIVE=w,Z.INVALIDATE=x;var k=Z},62906:function(e,t){"use strict";t.Z={items_per_page:"/ page",jump_to:"Go to",jump_to_confirm:"confirm",page:"",prev_page:"Previous Page",next_page:"Next Page",prev_5:"Previous 5 Pages",next_5:"Next 5 Pages",prev_3:"Previous 3 Pages",next_3:"Next 3 Pages"}},48555:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return w}});var r=n(87462),o=n(67294),i=n(50344),a=(n(80334),n(1413)),c=n(42550),s=n(34203),l=n(91033),u=new Map;var f=new l.Z((function(e){e.forEach((function(e){var t,n=e.target;null===(t=u.get(n))||void 0===t||t.forEach((function(e){return e(n)}))}))}));var d=n(15671),p=n(43144),m=n(60136),v=n(3289),h=function(e){(0,m.Z)(n,e);var t=(0,v.Z)(n);function n(){return(0,d.Z)(this,n),t.apply(this,arguments)}return(0,p.Z)(n,[{key:"render",value:function(){return this.props.children}}]),n}(o.Component),g=o.createContext(null);function y(e){var t=e.children,n=e.disabled,r=o.useRef(null),i=o.useRef(null),l=o.useContext(g),d=o.useRef({width:-1,height:-1,offsetWidth:-1,offsetHeight:-1}),p=o.isValidElement(t)&&(0,c.Yr)(t),m=p?t.ref:null,v=o.useMemo((function(){return(0,c.sQ)(m,r)}),[m,r]),y=o.useRef(e);y.current=e;var b=o.useCallback((function(e){var t=y.current,n=t.onResize,r=t.data,o=e.getBoundingClientRect(),i=o.width,c=o.height,s=e.offsetWidth,u=e.offsetHeight,f=Math.floor(i),p=Math.floor(c);if(d.current.width!==f||d.current.height!==p||d.current.offsetWidth!==s||d.current.offsetHeight!==u){var m={width:f,height:p,offsetWidth:s,offsetHeight:u};d.current=m;var v=s===Math.round(i)?i:s,h=u===Math.round(c)?c:u,g=(0,a.Z)((0,a.Z)({},m),{},{offsetWidth:v,offsetHeight:h});null===l||void 0===l||l(g,e,r),n&&Promise.resolve().then((function(){n(g,e)}))}}),[]);return o.useEffect((function(){var e,t,o=(0,s.Z)(r.current)||(0,s.Z)(i.current);return o&&!n&&(e=o,t=b,u.has(e)||(u.set(e,new Set),f.observe(e)),u.get(e).add(t)),function(){return function(e,t){u.has(e)&&(u.get(e).delete(t),u.get(e).size||(f.unobserve(e),u.delete(e)))}(o,b)}}),[r.current,n]),o.createElement(h,{ref:i},p?o.cloneElement(t,{ref:v}):t)}function b(e){var t=e.children;return(0,i.Z)(t).map((function(t,n){var i=(null===t||void 0===t?void 0:t.key)||"".concat("rc-observer-key","-").concat(n);return o.createElement(y,(0,r.Z)({},e,{key:i}),t)}))}b.Collection=function(e){var t=e.children,n=e.onBatchResize,r=o.useRef(0),i=o.useRef([]),a=o.useContext(g),c=o.useCallback((function(e,t,o){r.current+=1;var c=r.current;i.current.push({size:e,element:t,data:o}),Promise.resolve().then((function(){c===r.current&&(null===n||void 0===n||n(i.current),i.current=[])})),null===a||void 0===a||a(e,t,o)}),[n,a]);return o.createElement(g.Provider,{value:c},t)};var w=b},57239:function(e,t,n){"use strict";n.r(t),n.d(t,{ResizableTextArea:function(){return x},default:function(){return C}});var r,o,i=n(87462),a=n(15671),c=n(43144),s=n(60136),l=n(3289),u=n(67294),f=n(1413),d=n(4942),p=n(48555),m=n(98423),v=n(94184),h=n.n(v),g="\n min-height:0 !important;\n max-height:none !important;\n height:0 !important;\n visibility:hidden !important;\n overflow:hidden !important;\n position:absolute !important;\n z-index:-1000 !important;\n top:0 !important;\n right:0 !important\n",y=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","font-variant","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing"],b={};function w(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e.getAttribute("id")||e.getAttribute("data-reactid")||e.getAttribute("name");if(t&&b[n])return b[n];var r=window.getComputedStyle(e),o=r.getPropertyValue("box-sizing")||r.getPropertyValue("-moz-box-sizing")||r.getPropertyValue("-webkit-box-sizing"),i=parseFloat(r.getPropertyValue("padding-bottom"))+parseFloat(r.getPropertyValue("padding-top")),a=parseFloat(r.getPropertyValue("border-bottom-width"))+parseFloat(r.getPropertyValue("border-top-width")),c=y.map((function(e){return"".concat(e,":").concat(r.getPropertyValue(e))})).join(";"),s={sizingStyle:c,paddingSize:i,borderSize:a,boxSizing:o};return t&&n&&(b[n]=s),s}!function(e){e[e.NONE=0]="NONE",e[e.RESIZING=1]="RESIZING",e[e.RESIZED=2]="RESIZED"}(o||(o={}));var x=function(e){(0,s.Z)(n,e);var t=(0,l.Z)(n);function n(e){var c;return(0,a.Z)(this,n),(c=t.call(this,e)).saveTextArea=function(e){c.textArea=e},c.handleResize=function(e){var t=c.state.resizeStatus,n=c.props,r=n.autoSize,i=n.onResize;t===o.NONE&&("function"===typeof i&&i(e),r&&c.resizeOnNextFrame())},c.resizeOnNextFrame=function(){cancelAnimationFrame(c.nextFrameActionId),c.nextFrameActionId=requestAnimationFrame(c.resizeTextarea)},c.resizeTextarea=function(){var e=c.props.autoSize;if(e&&c.textArea){var t=e.minRows,n=e.maxRows,i=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;r||((r=document.createElement("textarea")).setAttribute("tab-index","-1"),r.setAttribute("aria-hidden","true"),document.body.appendChild(r)),e.getAttribute("wrap")?r.setAttribute("wrap",e.getAttribute("wrap")):r.removeAttribute("wrap");var i=w(e,t),a=i.paddingSize,c=i.borderSize,s=i.boxSizing,l=i.sizingStyle;r.setAttribute("style","".concat(l,";").concat(g)),r.value=e.value||e.placeholder||"";var u,f=Number.MIN_SAFE_INTEGER,d=Number.MAX_SAFE_INTEGER,p=r.scrollHeight;if("border-box"===s?p+=c:"content-box"===s&&(p-=a),null!==n||null!==o){r.value=" ";var m=r.scrollHeight-a;null!==n&&(f=m*n,"border-box"===s&&(f=f+a+c),p=Math.max(f,p)),null!==o&&(d=m*o,"border-box"===s&&(d=d+a+c),u=p>d?"":"hidden",p=Math.min(d,p))}return{height:p,minHeight:f,maxHeight:d,overflowY:u,resize:"none"}}(c.textArea,!1,t,n);c.setState({textareaStyles:i,resizeStatus:o.RESIZING},(function(){cancelAnimationFrame(c.resizeFrameId),c.resizeFrameId=requestAnimationFrame((function(){c.setState({resizeStatus:o.RESIZED},(function(){c.resizeFrameId=requestAnimationFrame((function(){c.setState({resizeStatus:o.NONE}),c.fixFirefoxAutoScroll()}))}))}))}))}},c.renderTextArea=function(){var e=c.props,t=e.prefixCls,n=void 0===t?"rc-textarea":t,r=e.autoSize,a=e.onResize,s=e.className,l=e.disabled,v=c.state,g=v.textareaStyles,y=v.resizeStatus,b=(0,m.Z)(c.props,["prefixCls","onPressEnter","autoSize","defaultValue","onResize"]),w=h()(n,s,(0,d.Z)({},"".concat(n,"-disabled"),l));"value"in b&&(b.value=b.value||"");var x=(0,f.Z)((0,f.Z)((0,f.Z)({},c.props.style),g),y===o.RESIZING?{overflowX:"hidden",overflowY:"hidden"}:null);return u.createElement(p.default,{onResize:c.handleResize,disabled:!(r||a)},u.createElement("textarea",(0,i.Z)({},b,{className:w,style:x,ref:c.saveTextArea})))},c.state={textareaStyles:{},resizeStatus:o.NONE},c}return(0,c.Z)(n,[{key:"componentDidMount",value:function(){this.resizeTextarea()}},{key:"componentDidUpdate",value:function(e){e.value!==this.props.value&&this.resizeTextarea()}},{key:"componentWillUnmount",value:function(){cancelAnimationFrame(this.nextFrameActionId),cancelAnimationFrame(this.resizeFrameId)}},{key:"fixFirefoxAutoScroll",value:function(){try{if(document.activeElement===this.textArea){var e=this.textArea.selectionStart,t=this.textArea.selectionEnd;this.textArea.setSelectionRange(e,t)}}catch(n){}}},{key:"render",value:function(){return this.renderTextArea()}}]),n}(u.Component),C=function(e){(0,s.Z)(n,e);var t=(0,l.Z)(n);function n(e){var r;(0,a.Z)(this,n),(r=t.call(this,e)).focus=function(){r.resizableTextArea.textArea.focus()},r.saveTextArea=function(e){r.resizableTextArea=e},r.handleChange=function(e){var t=r.props.onChange;r.setValue(e.target.value,(function(){r.resizableTextArea.resizeTextarea()})),t&&t(e)},r.handleKeyDown=function(e){var t=r.props,n=t.onPressEnter,o=t.onKeyDown;13===e.keyCode&&n&&n(e),o&&o(e)};var o="undefined"===typeof e.value||null===e.value?e.defaultValue:e.value;return r.state={value:o},r}return(0,c.Z)(n,[{key:"setValue",value:function(e,t){"value"in this.props||this.setState({value:e},t)}},{key:"blur",value:function(){this.resizableTextArea.textArea.blur()}},{key:"render",value:function(){return u.createElement(x,(0,i.Z)({},this.props,{value:this.state.value,onKeyDown:this.handleKeyDown,onChange:this.handleChange,ref:this.saveTextArea}))}}],[{key:"getDerivedStateFromProps",value:function(e){return"value"in e?{value:e.value}:null}}]),n}(u.Component)},22972:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return d}});var r=n(87462),o=n(71002),i=n(1413),a=n(91),c=n(67294),s=n(51169),l=n(43159),u=function(e){var t=e.overlay,n=e.prefixCls,r=e.id,o=e.overlayInnerStyle;return c.createElement("div",{className:"".concat(n,"-inner"),id:r,role:"tooltip",style:o},"function"===typeof t?t():t)},f=function(e,t){var n=e.overlayClassName,f=e.trigger,d=void 0===f?["hover"]:f,p=e.mouseEnterDelay,m=void 0===p?0:p,v=e.mouseLeaveDelay,h=void 0===v?.1:v,g=e.overlayStyle,y=e.prefixCls,b=void 0===y?"rc-tooltip":y,w=e.children,x=e.onVisibleChange,C=e.afterVisibleChange,E=e.transitionName,Z=e.animation,k=e.motion,N=e.placement,P=void 0===N?"right":N,S=e.align,O=void 0===S?{}:S,T=e.destroyTooltipOnHide,M=void 0!==T&&T,A=e.defaultVisible,R=e.getTooltipContainer,j=e.overlayInnerStyle,F=(0,a.Z)(e,["overlayClassName","trigger","mouseEnterDelay","mouseLeaveDelay","overlayStyle","prefixCls","children","onVisibleChange","afterVisibleChange","transitionName","animation","motion","placement","align","destroyTooltipOnHide","defaultVisible","getTooltipContainer","overlayInnerStyle"]),I=(0,c.useRef)(null);(0,c.useImperativeHandle)(t,(function(){return I.current}));var L=(0,i.Z)({},F);"visible"in e&&(L.popupVisible=e.visible);var _=!1,D=!1;if("boolean"===typeof M)_=M;else if(M&&"object"===(0,o.Z)(M)){var V=M.keepParent;_=!0===V,D=!1===V}return c.createElement(s.Z,(0,r.Z)({popupClassName:n,prefixCls:b,popup:function(){var t=e.arrowContent,n=void 0===t?null:t,r=e.overlay,o=e.id;return[c.createElement("div",{className:"".concat(b,"-arrow"),key:"arrow"},n),c.createElement(u,{key:"content",prefixCls:b,id:o,overlay:r,overlayInnerStyle:j})]},action:d,builtinPlacements:l.C,popupPlacement:P,ref:I,popupAlign:O,getPopupContainer:R,onPopupVisibleChange:x,afterPopupVisibleChange:C,popupTransitionName:E,popupAnimation:Z,popupMotion:k,defaultPopupVisible:A,destroyPopupOnHide:_,autoDestroy:D,mouseLeaveDelay:h,popupStyle:g,mouseEnterDelay:m},L),w)},d=(0,c.forwardRef)(f)},43159:function(e,t,n){"use strict";n.d(t,{C:function(){return i}});var r={adjustX:1,adjustY:1},o=[0,0],i={left:{points:["cr","cl"],overflow:r,offset:[-4,0],targetOffset:o},right:{points:["cl","cr"],overflow:r,offset:[4,0],targetOffset:o},top:{points:["bc","tc"],overflow:r,offset:[0,-4],targetOffset:o},bottom:{points:["tc","bc"],overflow:r,offset:[0,4],targetOffset:o},topLeft:{points:["bl","tl"],overflow:r,offset:[0,-4],targetOffset:o},leftTop:{points:["tr","tl"],overflow:r,offset:[-4,0],targetOffset:o},topRight:{points:["br","tr"],overflow:r,offset:[0,-4],targetOffset:o},rightTop:{points:["tl","tr"],overflow:r,offset:[4,0],targetOffset:o},bottomRight:{points:["tr","br"],overflow:r,offset:[0,4],targetOffset:o},rightBottom:{points:["bl","br"],overflow:r,offset:[4,0],targetOffset:o},bottomLeft:{points:["tl","bl"],overflow:r,offset:[0,4],targetOffset:o},leftBottom:{points:["br","bl"],overflow:r,offset:[-4,0],targetOffset:o}}},51169:function(e,t,n){"use strict";n.d(t,{Z:function(){return Xe}});var r=n(1413),o=n(87462),i=n(15671),a=n(43144),c=n(97326),s=n(60136),l=n(3289),u=n(67294),f=n(73935),d=n(75164),p=n(94999),m=n(34203),v=n(42550),h=n(64019),g=n(59015),y=n(94184),b=n.n(y);function w(e,t,n){return n?e[0]===t[0]:e[0]===t[0]&&e[1]===t[1]}var x=n(97685),C=n(91),E=n(31131),Z=n(93481);function k(e){var t=e.prefixCls,n=e.motion,r=e.animation,o=e.transitionName;return n||(r?{motionName:"".concat(t,"-").concat(r)}:o?{motionName:o}:null)}function N(e){var t=e.prefixCls,n=e.visible,i=e.zIndex,a=e.mask,c=e.maskMotion,s=e.maskAnimation,l=e.maskTransitionName;if(!a)return null;var f={};return(c||l||s)&&(f=(0,r.Z)({motionAppear:!0},k({motion:c,prefixCls:t,transitionName:l,animation:s}))),u.createElement(Z.Z,(0,o.Z)({},f,{visible:n,removeOnLeave:!0}),(function(e){var n=e.className;return u.createElement("div",{style:{zIndex:i},className:b()("".concat(t,"-mask"),n)})}))}var P,S=n(71002),O=n(5110);function T(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function M(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?T(Object(n),!0).forEach((function(t){R(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):T(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function A(e){return(A="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function R(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var j={Webkit:"-webkit-",Moz:"-moz-",ms:"-ms-",O:"-o-"};function F(){if(void 0!==P)return P;P="";var e=document.createElement("p").style;for(var t in j)t+"Transform"in e&&(P=t);return P}function I(){return F()?"".concat(F(),"TransitionProperty"):"transitionProperty"}function L(){return F()?"".concat(F(),"Transform"):"transform"}function _(e,t){var n=I();n&&(e.style[n]=t,"transitionProperty"!==n&&(e.style.transitionProperty=t))}function D(e,t){var n=L();n&&(e.style[n]=t,"transform"!==n&&(e.style.transform=t))}var V,z=/matrix\((.*)\)/,H=/matrix3d\((.*)\)/;function U(e){var t=e.style.display;e.style.display="none",e.offsetHeight,e.style.display=t}function B(e,t,n){var r=n;if("object"!==A(t))return"undefined"!==typeof r?("number"===typeof r&&(r="".concat(r,"px")),void(e.style[t]=r)):V(e,t);for(var o in t)t.hasOwnProperty(o)&&B(e,o,t[o])}function q(e,t){var n=e["page".concat(t?"Y":"X","Offset")],r="scroll".concat(t?"Top":"Left");if("number"!==typeof n){var o=e.document;"number"!==typeof(n=o.documentElement[r])&&(n=o.body[r])}return n}function W(e){return q(e)}function $(e){return q(e,!0)}function K(e){var t=function(e){var t,n,r,o=e.ownerDocument,i=o.body,a=o&&o.documentElement;return n=(t=e.getBoundingClientRect()).left,r=t.top,{left:n-=a.clientLeft||i.clientLeft||0,top:r-=a.clientTop||i.clientTop||0}}(e),n=e.ownerDocument,r=n.defaultView||n.parentWindow;return t.left+=W(r),t.top+=$(r),t}function G(e){return null!==e&&void 0!==e&&e==e.window}function Y(e){return G(e)?e.document:9===e.nodeType?e:e.ownerDocument}var X=new RegExp("^(".concat(/[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,")(?!px)[a-z%]+$"),"i"),Q=/^(top|right|bottom|left)$/;function J(e,t){return"left"===e?t.useCssRight?"right":e:t.useCssBottom?"bottom":e}function ee(e){return"left"===e?"right":"right"===e?"left":"top"===e?"bottom":"bottom"===e?"top":void 0}function te(e,t,n){"static"===B(e,"position")&&(e.style.position="relative");var r=-999,o=-999,i=J("left",n),a=J("top",n),c=ee(i),s=ee(a);"left"!==i&&(r=999),"top"!==a&&(o=999);var l,u="",f=K(e);("left"in t||"top"in t)&&(u=(l=e).style.transitionProperty||l.style[I()]||"",_(e,"none")),"left"in t&&(e.style[c]="",e.style[i]="".concat(r,"px")),"top"in t&&(e.style[s]="",e.style[a]="".concat(o,"px")),U(e);var d=K(e),p={};for(var m in t)if(t.hasOwnProperty(m)){var v=J(m,n),h="left"===m?r:o,g=f[m]-d[m];p[v]=v===m?h+g:h-g}B(e,p),U(e),("left"in t||"top"in t)&&_(e,u);var y={};for(var b in t)if(t.hasOwnProperty(b)){var w=J(b,n),x=t[b]-f[b];y[w]=b===w?p[w]+x:p[w]-x}B(e,y)}function ne(e,t){var n=K(e),r=function(e){var t=window.getComputedStyle(e,null),n=t.getPropertyValue("transform")||t.getPropertyValue(L());if(n&&"none"!==n){var r=n.replace(/[^0-9\-.,]/g,"").split(",");return{x:parseFloat(r[12]||r[4],0),y:parseFloat(r[13]||r[5],0)}}return{x:0,y:0}}(e),o={x:r.x,y:r.y};"left"in t&&(o.x=r.x+t.left-n.left),"top"in t&&(o.y=r.y+t.top-n.top),function(e,t){var n=window.getComputedStyle(e,null),r=n.getPropertyValue("transform")||n.getPropertyValue(L());if(r&&"none"!==r){var o,i=r.match(z);i?((o=(i=i[1]).split(",").map((function(e){return parseFloat(e,10)})))[4]=t.x,o[5]=t.y,D(e,"matrix(".concat(o.join(","),")"))):((o=r.match(H)[1].split(",").map((function(e){return parseFloat(e,10)})))[12]=t.x,o[13]=t.y,D(e,"matrix3d(".concat(o.join(","),")")))}else D(e,"translateX(".concat(t.x,"px) translateY(").concat(t.y,"px) translateZ(0)"))}(e,o)}function re(e,t){for(var n=0;n<e.length;n++)t(e[n])}function oe(e){return"border-box"===V(e,"boxSizing")}"undefined"!==typeof window&&(V=window.getComputedStyle?function(e,t,n){var r=n,o="",i=Y(e);return(r=r||i.defaultView.getComputedStyle(e,null))&&(o=r.getPropertyValue(t)||r[t]),o}:function(e,t){var n=e.currentStyle&&e.currentStyle[t];if(X.test(n)&&!Q.test(t)){var r=e.style,o=r.left,i=e.runtimeStyle.left;e.runtimeStyle.left=e.currentStyle.left,r.left="fontSize"===t?"1em":n||0,n=r.pixelLeft+"px",r.left=o,e.runtimeStyle.left=i}return""===n?"auto":n});var ie=["margin","border","padding"];function ae(e,t,n){var r,o={},i=e.style;for(r in t)t.hasOwnProperty(r)&&(o[r]=i[r],i[r]=t[r]);for(r in n.call(e),t)t.hasOwnProperty(r)&&(i[r]=o[r])}function ce(e,t,n){var r,o,i,a=0;for(o=0;o<t.length;o++)if(r=t[o])for(i=0;i<n.length;i++){var c=void 0;c="border"===r?"".concat(r).concat(n[i],"Width"):r+n[i],a+=parseFloat(V(e,c))||0}return a}var se={getParent:function(e){var t=e;do{t=11===t.nodeType&&t.host?t.host:t.parentNode}while(t&&1!==t.nodeType&&9!==t.nodeType);return t}};function le(e,t,n){var r=n;if(G(e))return"width"===t?se.viewportWidth(e):se.viewportHeight(e);if(9===e.nodeType)return"width"===t?se.docWidth(e):se.docHeight(e);var o="width"===t?["Left","Right"]:["Top","Bottom"],i="width"===t?e.getBoundingClientRect().width:e.getBoundingClientRect().height,a=oe(e),c=0;(null===i||void 0===i||i<=0)&&(i=void 0,(null===(c=V(e,t))||void 0===c||Number(c)<0)&&(c=e.style[t]||0),c=parseFloat(c)||0),void 0===r&&(r=a?1:-1);var s=void 0!==i||a,l=i||c;return-1===r?s?l-ce(e,["border","padding"],o):c:s?1===r?l:l+(2===r?-ce(e,["border"],o):ce(e,["margin"],o)):c+ce(e,ie.slice(r),o)}re(["Width","Height"],(function(e){se["doc".concat(e)]=function(t){var n=t.document;return Math.max(n.documentElement["scroll".concat(e)],n.body["scroll".concat(e)],se["viewport".concat(e)](n))},se["viewport".concat(e)]=function(t){var n="client".concat(e),r=t.document,o=r.body,i=r.documentElement[n];return"CSS1Compat"===r.compatMode&&i||o&&o[n]||i}}));var ue={position:"absolute",visibility:"hidden",display:"block"};function fe(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r,o=t[0];return 0!==o.offsetWidth?r=le.apply(void 0,t):ae(o,ue,(function(){r=le.apply(void 0,t)})),r}function de(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}re(["width","height"],(function(e){var t=e.charAt(0).toUpperCase()+e.slice(1);se["outer".concat(t)]=function(t,n){return t&&fe(t,e,n?0:1)};var n="width"===e?["Left","Right"]:["Top","Bottom"];se[e]=function(t,r){var o=r;return void 0!==o?t?(oe(t)&&(o+=ce(t,["padding","border"],n)),B(t,e,o)):void 0:t&&fe(t,e,-1)}}));var pe={getWindow:function(e){if(e&&e.document&&e.setTimeout)return e;var t=e.ownerDocument||e;return t.defaultView||t.parentWindow},getDocument:Y,offset:function(e,t,n){if("undefined"===typeof t)return K(e);!function(e,t,n){if(n.ignoreShake){var r=K(e),o=r.left.toFixed(0),i=r.top.toFixed(0),a=t.left.toFixed(0),c=t.top.toFixed(0);if(o===a&&i===c)return}n.useCssRight||n.useCssBottom?te(e,t,n):n.useCssTransform&&L()in document.body.style?ne(e,t):te(e,t,n)}(e,t,n||{})},isWindow:G,each:re,css:B,clone:function(e){var t,n={};for(t in e)e.hasOwnProperty(t)&&(n[t]=e[t]);if(e.overflow)for(t in e)e.hasOwnProperty(t)&&(n.overflow[t]=e.overflow[t]);return n},mix:de,getWindowScrollLeft:function(e){return W(e)},getWindowScrollTop:function(e){return $(e)},merge:function(){for(var e={},t=0;t<arguments.length;t++)pe.mix(e,t<0||arguments.length<=t?void 0:arguments[t]);return e},viewportWidth:0,viewportHeight:0};de(pe,se);var me=pe.getParent;function ve(e){if(pe.isWindow(e)||9===e.nodeType)return null;var t,n=pe.getDocument(e).body,r=pe.css(e,"position");if(!("fixed"===r||"absolute"===r))return"html"===e.nodeName.toLowerCase()?null:me(e);for(t=me(e);t&&t!==n&&9!==t.nodeType;t=me(t))if("static"!==(r=pe.css(t,"position")))return t;return null}var he=pe.getParent;function ge(e,t){for(var n={left:0,right:1/0,top:0,bottom:1/0},r=ve(e),o=pe.getDocument(e),i=o.defaultView||o.parentWindow,a=o.body,c=o.documentElement;r;){if(-1!==navigator.userAgent.indexOf("MSIE")&&0===r.clientWidth||r===a||r===c||"visible"===pe.css(r,"overflow")){if(r===a||r===c)break}else{var s=pe.offset(r);s.left+=r.clientLeft,s.top+=r.clientTop,n.top=Math.max(n.top,s.top),n.right=Math.min(n.right,s.left+r.clientWidth),n.bottom=Math.min(n.bottom,s.top+r.clientHeight),n.left=Math.max(n.left,s.left)}r=ve(r)}var l=null;pe.isWindow(e)||9===e.nodeType||(l=e.style.position,"absolute"===pe.css(e,"position")&&(e.style.position="fixed"));var u=pe.getWindowScrollLeft(i),f=pe.getWindowScrollTop(i),d=pe.viewportWidth(i),p=pe.viewportHeight(i),m=c.scrollWidth,v=c.scrollHeight,h=window.getComputedStyle(a);if("hidden"===h.overflowX&&(m=i.innerWidth),"hidden"===h.overflowY&&(v=i.innerHeight),e.style&&(e.style.position=l),t||function(e){if(pe.isWindow(e)||9===e.nodeType)return!1;var t=pe.getDocument(e),n=t.body,r=null;for(r=he(e);r&&r!==n&&r!==t;r=he(r))if("fixed"===pe.css(r,"position"))return!0;return!1}(e))n.left=Math.max(n.left,u),n.top=Math.max(n.top,f),n.right=Math.min(n.right,u+d),n.bottom=Math.min(n.bottom,f+p);else{var g=Math.max(m,u+d);n.right=Math.min(n.right,g);var y=Math.max(v,f+p);n.bottom=Math.min(n.bottom,y)}return n.top>=0&&n.left>=0&&n.bottom>n.top&&n.right>n.left?n:null}function ye(e){var t,n,r;if(pe.isWindow(e)||9===e.nodeType){var o=pe.getWindow(e);t={left:pe.getWindowScrollLeft(o),top:pe.getWindowScrollTop(o)},n=pe.viewportWidth(o),r=pe.viewportHeight(o)}else t=pe.offset(e),n=pe.outerWidth(e),r=pe.outerHeight(e);return t.width=n,t.height=r,t}function be(e,t){var n=t.charAt(0),r=t.charAt(1),o=e.width,i=e.height,a=e.left,c=e.top;return"c"===n?c+=i/2:"b"===n&&(c+=i),"c"===r?a+=o/2:"r"===r&&(a+=o),{left:a,top:c}}function we(e,t,n,r,o){var i=be(t,n[1]),a=be(e,n[0]),c=[a.left-i.left,a.top-i.top];return{left:Math.round(e.left-c[0]+r[0]-o[0]),top:Math.round(e.top-c[1]+r[1]-o[1])}}function xe(e,t,n){return e.left<n.left||e.left+t.width>n.right}function Ce(e,t,n){return e.top<n.top||e.top+t.height>n.bottom}function Ee(e,t,n){var r=[];return pe.each(e,(function(e){r.push(e.replace(t,(function(e){return n[e]})))})),r}function Ze(e,t){return e[t]=-e[t],e}function ke(e,t){return(/%$/.test(e)?parseInt(e.substring(0,e.length-1),10)/100*t:parseInt(e,10))||0}function Ne(e,t){e[0]=ke(e[0],t.width),e[1]=ke(e[1],t.height)}function Pe(e,t,n,r){var o=n.points,i=n.offset||[0,0],a=n.targetOffset||[0,0],c=n.overflow,s=n.source||e;i=[].concat(i),a=[].concat(a);var l={},u=0,f=ge(s,!(!(c=c||{})||!c.alwaysByViewport)),d=ye(s);Ne(i,d),Ne(a,t);var p=we(d,t,o,i,a),m=pe.merge(d,p);if(f&&(c.adjustX||c.adjustY)&&r){if(c.adjustX&&xe(p,d,f)){var v=Ee(o,/[lr]/gi,{l:"r",r:"l"}),h=Ze(i,0),g=Ze(a,0);(function(e,t,n){return e.left>n.right||e.left+t.width<n.left})(we(d,t,v,h,g),d,f)||(u=1,o=v,i=h,a=g)}if(c.adjustY&&Ce(p,d,f)){var y=Ee(o,/[tb]/gi,{t:"b",b:"t"}),b=Ze(i,1),w=Ze(a,1);(function(e,t,n){return e.top>n.bottom||e.top+t.height<n.top})(we(d,t,y,b,w),d,f)||(u=1,o=y,i=b,a=w)}u&&(p=we(d,t,o,i,a),pe.mix(m,p));var x=xe(p,d,f),C=Ce(p,d,f);if(x||C){var E=o;x&&(E=Ee(o,/[lr]/gi,{l:"r",r:"l"})),C&&(E=Ee(o,/[tb]/gi,{t:"b",b:"t"})),o=E,i=n.offset||[0,0],a=n.targetOffset||[0,0]}l.adjustX=c.adjustX&&x,l.adjustY=c.adjustY&&C,(l.adjustX||l.adjustY)&&(m=function(e,t,n,r){var o=pe.clone(e),i={width:t.width,height:t.height};return r.adjustX&&o.left<n.left&&(o.left=n.left),r.resizeWidth&&o.left>=n.left&&o.left+i.width>n.right&&(i.width-=o.left+i.width-n.right),r.adjustX&&o.left+i.width>n.right&&(o.left=Math.max(n.right-i.width,n.left)),r.adjustY&&o.top<n.top&&(o.top=n.top),r.resizeHeight&&o.top>=n.top&&o.top+i.height>n.bottom&&(i.height-=o.top+i.height-n.bottom),r.adjustY&&o.top+i.height>n.bottom&&(o.top=Math.max(n.bottom-i.height,n.top)),pe.mix(o,i)}(p,d,f,l))}return m.width!==d.width&&pe.css(s,"width",pe.width(s)+m.width-d.width),m.height!==d.height&&pe.css(s,"height",pe.height(s)+m.height-d.height),pe.offset(s,{left:m.left,top:m.top},{useCssRight:n.useCssRight,useCssBottom:n.useCssBottom,useCssTransform:n.useCssTransform,ignoreShake:n.ignoreShake}),{points:o,offset:i,targetOffset:a,overflow:l}}function Se(e,t,n){var r=n.target||t;return Pe(e,ye(r),n,!function(e,t){var n=ge(e,t),r=ye(e);return!n||r.left+r.width<=n.left||r.top+r.height<=n.top||r.left>=n.right||r.top>=n.bottom}(r,n.overflow&&n.overflow.alwaysByViewport))}Se.__getOffsetParent=ve,Se.__getVisibleRectForElement=ge;var Oe=n(91033);function Te(e,t){var n=null,r=null;var o=new Oe.Z((function(e){var o=(0,x.Z)(e,1)[0].target;if(document.documentElement.contains(o)){var i=o.getBoundingClientRect(),a=i.width,c=i.height,s=Math.floor(a),l=Math.floor(c);n===s&&r===l||Promise.resolve().then((function(){t({width:s,height:l})})),n=s,r=l}}));return e&&o.observe(e),function(){o.disconnect()}}function Me(e){return"function"!==typeof e?null:e()}function Ae(e){return"object"===(0,S.Z)(e)&&e?e:null}var Re=u.forwardRef((function(e,t){var n=e.children,r=e.disabled,o=e.target,i=e.align,a=e.onAlign,c=e.monitorWindowResize,s=e.monitorBufferTime,l=void 0===s?0:s,f=u.useRef({}),d=u.useRef(),m=u.Children.only(n),g=u.useRef({});g.current.disabled=r,g.current.target=o,g.current.onAlign=a;var y=function(e,t){var n=u.useRef(!1),r=u.useRef(null);function o(){window.clearTimeout(r.current)}return[function i(a){if(n.current&&!0!==a)o(),r.current=window.setTimeout((function(){n.current=!1,i()}),t);else{if(!1===e())return;n.current=!0,o(),r.current=window.setTimeout((function(){n.current=!1}),t)}},function(){n.current=!1,o()}]}((function(){var e=g.current,t=e.disabled,n=e.target,r=e.onAlign;if(!t&&n){var o,a=d.current,c=Me(n),s=Ae(n);f.current.element=c,f.current.point=s;var l=document.activeElement;return c&&(0,O.Z)(c)?o=Se(a,c,i):s&&(o=function(e,t,n){var r,o,i=pe.getDocument(e),a=i.defaultView||i.parentWindow,c=pe.getWindowScrollLeft(a),s=pe.getWindowScrollTop(a),l=pe.viewportWidth(a),u=pe.viewportHeight(a),f={left:r="pageX"in t?t.pageX:c+t.clientX,top:o="pageY"in t?t.pageY:s+t.clientY,width:0,height:0},d=r>=0&&r<=c+l&&o>=0&&o<=s+u,p=[n.points[0],"cc"];return Pe(e,f,M(M({},n),{},{points:p}),d)}(a,s,i)),function(e,t){e!==document.activeElement&&(0,p.Z)(t,e)&&"function"===typeof e.focus&&e.focus()}(l,a),r&&o&&r(a,o),!0}return!1}),l),b=(0,x.Z)(y,2),w=b[0],C=b[1],E=u.useRef({cancel:function(){}}),Z=u.useRef({cancel:function(){}});u.useEffect((function(){var e,t,n=Me(o),r=Ae(o);d.current!==Z.current.element&&(Z.current.cancel(),Z.current.element=d.current,Z.current.cancel=Te(d.current,w)),f.current.element===n&&((e=f.current.point)===(t=r)||e&&t&&("pageX"in t&&"pageY"in t?e.pageX===t.pageX&&e.pageY===t.pageY:"clientX"in t&&"clientY"in t&&e.clientX===t.clientX&&e.clientY===t.clientY))||(w(),E.current.element!==n&&(E.current.cancel(),E.current.element=n,E.current.cancel=Te(n,w)))})),u.useEffect((function(){r?C():w()}),[r]);var k=u.useRef(null);return u.useEffect((function(){c?k.current||(k.current=(0,h.Z)(window,"resize",w)):k.current&&(k.current.remove(),k.current=null)}),[c]),u.useEffect((function(){return function(){E.current.cancel(),Z.current.cancel(),k.current&&k.current.remove(),C()}}),[]),u.useImperativeHandle(t,(function(){return{forceAlign:function(){return w(!0)}}})),u.isValidElement(m)&&(m=u.cloneElement(m,{ref:(0,v.sQ)(m.ref,d)})),m}));Re.displayName="Align";var je=Re,Fe=n(87757),Ie=n.n(Fe),Le=n(15861),_e=["measure","align",null,"motion"],De=u.forwardRef((function(e,t){var n=e.visible,i=e.prefixCls,a=e.className,c=e.style,s=e.children,l=e.zIndex,f=e.stretch,p=e.destroyPopupOnHide,m=e.forceRender,v=e.align,h=e.point,g=e.getRootDomNode,y=e.getClassNameFromAlign,w=e.onAlign,C=e.onMouseEnter,E=e.onMouseLeave,N=e.onMouseDown,P=e.onTouchStart,S=(0,u.useRef)(),O=(0,u.useRef)(),T=(0,u.useState)(),M=(0,x.Z)(T,2),A=M[0],R=M[1],j=function(e){var t=u.useState({width:0,height:0}),n=(0,x.Z)(t,2),r=n[0],o=n[1];return[u.useMemo((function(){var t={};if(e){var n=r.width,o=r.height;-1!==e.indexOf("height")&&o?t.height=o:-1!==e.indexOf("minHeight")&&o&&(t.minHeight=o),-1!==e.indexOf("width")&&n?t.width=n:-1!==e.indexOf("minWidth")&&n&&(t.minWidth=n)}return t}),[e,r]),function(e){o({width:e.offsetWidth,height:e.offsetHeight})}]}(f),F=(0,x.Z)(j,2),I=F[0],L=F[1];var _=function(e,t){var n=(0,u.useState)(null),r=(0,x.Z)(n,2),o=r[0],i=r[1],a=(0,u.useRef)(),c=(0,u.useRef)(!1);function s(e){c.current||i(e)}function l(){d.Z.cancel(a.current)}return(0,u.useEffect)((function(){s("measure")}),[e]),(0,u.useEffect)((function(){switch(o){case"measure":t()}o&&(a.current=(0,d.Z)((0,Le.Z)(Ie().mark((function e(){var t,n;return Ie().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=_e.indexOf(o),(n=_e[t+1])&&-1!==t&&s(n);case 3:case"end":return e.stop()}}),e)})))))}),[o]),(0,u.useEffect)((function(){return function(){c.current=!0,l()}}),[]),[o,function(e){l(),a.current=(0,d.Z)((function(){s((function(e){switch(o){case"align":return"motion";case"motion":return"stable"}return e})),null===e||void 0===e||e()}))}]}(n,(function(){f&&L(g())})),D=(0,x.Z)(_,2),V=D[0],z=D[1],H=(0,u.useRef)();function U(){var e;null===(e=S.current)||void 0===e||e.forceAlign()}function B(e,t){var n=y(t);A!==n&&R(n),"align"===V&&(A!==n?Promise.resolve().then((function(){U()})):z((function(){var e;null===(e=H.current)||void 0===e||e.call(H)})),null===w||void 0===w||w(e,t))}var q=(0,r.Z)({},k(e));function W(){return new Promise((function(e){H.current=e}))}["onAppearEnd","onEnterEnd","onLeaveEnd"].forEach((function(e){var t=q[e];q[e]=function(e,n){return z(),null===t||void 0===t?void 0:t(e,n)}})),u.useEffect((function(){q.motionName||"motion"!==V||z()}),[q.motionName,V]),u.useImperativeHandle(t,(function(){return{forceAlign:U,getElement:function(){return O.current}}}));var $=(0,r.Z)((0,r.Z)({},I),{},{zIndex:l,opacity:"motion"!==V&&"stable"!==V&&n?0:void 0,pointerEvents:"stable"===V?void 0:"none"},c),K=!0;!(null===v||void 0===v?void 0:v.points)||"align"!==V&&"stable"!==V||(K=!1);var G=s;return u.Children.count(s)>1&&(G=u.createElement("div",{className:"".concat(i,"-content")},s)),u.createElement(Z.Z,(0,o.Z)({visible:n,ref:O,leavedClassName:"".concat(i,"-hidden")},q,{onAppearPrepare:W,onEnterPrepare:W,removeOnLeave:p,forceRender:m}),(function(e,t){var n=e.className,o=e.style,c=b()(i,a,A,n);return u.createElement(je,{target:h||g,key:"popup",ref:S,monitorWindowResize:!0,disabled:K,align:v,onAlign:B},u.createElement("div",{ref:t,className:c,onMouseEnter:C,onMouseLeave:E,onMouseDownCapture:N,onTouchStartCapture:P,style:(0,r.Z)((0,r.Z)({},o),$)},G))}))}));De.displayName="PopupInner";var Ve=De,ze=u.forwardRef((function(e,t){var n=e.prefixCls,i=e.visible,a=e.zIndex,c=e.children,s=e.mobile,l=(s=void 0===s?{}:s).popupClassName,f=s.popupStyle,d=s.popupMotion,p=void 0===d?{}:d,m=s.popupRender,v=u.useRef();u.useImperativeHandle(t,(function(){return{forceAlign:function(){},getElement:function(){return v.current}}}));var h=(0,r.Z)({zIndex:a},f),g=c;return u.Children.count(c)>1&&(g=u.createElement("div",{className:"".concat(n,"-content")},c)),m&&(g=m(g)),u.createElement(Z.Z,(0,o.Z)({visible:i,ref:v,removeOnLeave:!0},p),(function(e,t){var o=e.className,i=e.style,a=b()(n,l,o);return u.createElement("div",{ref:t,className:a,style:(0,r.Z)((0,r.Z)({},i),h)},g)}))}));ze.displayName="MobilePopupInner";var He=ze,Ue=["visible","mobile"],Be=u.forwardRef((function(e,t){var n=e.visible,i=e.mobile,a=(0,C.Z)(e,Ue),c=(0,u.useState)(n),s=(0,x.Z)(c,2),l=s[0],f=s[1],d=(0,u.useState)(!1),p=(0,x.Z)(d,2),m=p[0],v=p[1],h=(0,r.Z)((0,r.Z)({},a),{},{visible:l});(0,u.useEffect)((function(){f(n),n&&i&&v((0,E.Z)())}),[n,i]);var g=m?u.createElement(He,(0,o.Z)({},h,{mobile:i,ref:t})):u.createElement(Ve,(0,o.Z)({},h,{ref:t}));return u.createElement("div",null,u.createElement(N,h),g)}));Be.displayName="Popup";var qe=Be,We=u.createContext(null);function $e(){}function Ke(){return""}function Ge(e){return e?e.ownerDocument:window.document}var Ye=["onClick","onMouseDown","onTouchStart","onMouseEnter","onMouseLeave","onFocus","onBlur","onContextMenu"];var Xe=function(e){var t=function(t){(0,s.Z)(g,t);var n=(0,l.Z)(g);function g(e){var t,r;return(0,i.Z)(this,g),(t=n.call(this,e)).popupRef=u.createRef(),t.triggerRef=u.createRef(),t.attachId=void 0,t.clickOutsideHandler=void 0,t.touchOutsideHandler=void 0,t.contextMenuOutsideHandler1=void 0,t.contextMenuOutsideHandler2=void 0,t.mouseDownTimeout=void 0,t.focusTime=void 0,t.preClickTime=void 0,t.preTouchTime=void 0,t.delayTimer=void 0,t.hasPopupMouseDown=void 0,t.onMouseEnter=function(e){var n=t.props.mouseEnterDelay;t.fireEvents("onMouseEnter",e),t.delaySetPopupVisible(!0,n,n?null:e)},t.onMouseMove=function(e){t.fireEvents("onMouseMove",e),t.setPoint(e)},t.onMouseLeave=function(e){t.fireEvents("onMouseLeave",e),t.delaySetPopupVisible(!1,t.props.mouseLeaveDelay)},t.onPopupMouseEnter=function(){t.clearDelayTimer()},t.onPopupMouseLeave=function(e){var n;e.relatedTarget&&!e.relatedTarget.setTimeout&&(0,p.Z)(null===(n=t.popupRef.current)||void 0===n?void 0:n.getElement(),e.relatedTarget)||t.delaySetPopupVisible(!1,t.props.mouseLeaveDelay)},t.onFocus=function(e){t.fireEvents("onFocus",e),t.clearDelayTimer(),t.isFocusToShow()&&(t.focusTime=Date.now(),t.delaySetPopupVisible(!0,t.props.focusDelay))},t.onMouseDown=function(e){t.fireEvents("onMouseDown",e),t.preClickTime=Date.now()},t.onTouchStart=function(e){t.fireEvents("onTouchStart",e),t.preTouchTime=Date.now()},t.onBlur=function(e){t.fireEvents("onBlur",e),t.clearDelayTimer(),t.isBlurToHide()&&t.delaySetPopupVisible(!1,t.props.blurDelay)},t.onContextMenu=function(e){e.preventDefault(),t.fireEvents("onContextMenu",e),t.setPopupVisible(!0,e)},t.onContextMenuClose=function(){t.isContextMenuToShow()&&t.close()},t.onClick=function(e){if(t.fireEvents("onClick",e),t.focusTime){var n;if(t.preClickTime&&t.preTouchTime?n=Math.min(t.preClickTime,t.preTouchTime):t.preClickTime?n=t.preClickTime:t.preTouchTime&&(n=t.preTouchTime),Math.abs(n-t.focusTime)<20)return;t.focusTime=0}t.preClickTime=0,t.preTouchTime=0,t.isClickToShow()&&(t.isClickToHide()||t.isBlurToHide())&&e&&e.preventDefault&&e.preventDefault();var r=!t.state.popupVisible;(t.isClickToHide()&&!r||r&&t.isClickToShow())&&t.setPopupVisible(!t.state.popupVisible,e)},t.onPopupMouseDown=function(){var e;(t.hasPopupMouseDown=!0,clearTimeout(t.mouseDownTimeout),t.mouseDownTimeout=window.setTimeout((function(){t.hasPopupMouseDown=!1}),0),t.context)&&(e=t.context).onPopupMouseDown.apply(e,arguments)},t.onDocumentClick=function(e){if(!t.props.mask||t.props.maskClosable){var n=e.target,r=t.getRootDomNode(),o=t.getPopupDomNode();(0,p.Z)(r,n)&&!t.isContextMenuOnly()||(0,p.Z)(o,n)||t.hasPopupMouseDown||t.close()}},t.getRootDomNode=function(){var e=t.props.getTriggerDOMNode;if(e)return e(t.triggerRef.current);try{var n=(0,m.Z)(t.triggerRef.current);if(n)return n}catch(r){}return f.findDOMNode((0,c.Z)(t))},t.getPopupClassNameFromAlign=function(e){var n=[],r=t.props,o=r.popupPlacement,i=r.builtinPlacements,a=r.prefixCls,c=r.alignPoint,s=r.getPopupClassNameFromAlign;return o&&i&&n.push(function(e,t,n,r){for(var o=n.points,i=Object.keys(e),a=0;a<i.length;a+=1){var c=i[a];if(w(e[c].points,o,r))return"".concat(t,"-placement-").concat(c)}return""}(i,a,e,c)),s&&n.push(s(e)),n.join(" ")},t.getComponent=function(){var e=t.props,n=e.prefixCls,r=e.destroyPopupOnHide,i=e.popupClassName,a=e.onPopupAlign,c=e.popupMotion,s=e.popupAnimation,l=e.popupTransitionName,f=e.popupStyle,d=e.mask,p=e.maskAnimation,m=e.maskTransitionName,v=e.maskMotion,h=e.zIndex,g=e.popup,y=e.stretch,b=e.alignPoint,w=e.mobile,x=e.forceRender,C=t.state,E=C.popupVisible,Z=C.point,k=t.getPopupAlign(),N={};return t.isMouseEnterToShow()&&(N.onMouseEnter=t.onPopupMouseEnter),t.isMouseLeaveToHide()&&(N.onMouseLeave=t.onPopupMouseLeave),N.onMouseDown=t.onPopupMouseDown,N.onTouchStart=t.onPopupMouseDown,u.createElement(qe,(0,o.Z)({prefixCls:n,destroyPopupOnHide:r,visible:E,point:b&&Z,className:i,align:k,onAlign:a,animation:s,getClassNameFromAlign:t.getPopupClassNameFromAlign},N,{stretch:y,getRootDomNode:t.getRootDomNode,style:f,mask:d,zIndex:h,transitionName:l,maskAnimation:p,maskTransitionName:m,maskMotion:v,ref:t.popupRef,motion:c,mobile:w,forceRender:x}),"function"===typeof g?g():g)},t.attachParent=function(e){d.Z.cancel(t.attachId);var n,r=t.props,o=r.getPopupContainer,i=r.getDocument,a=t.getRootDomNode();o?(a||0===o.length)&&(n=o(a)):n=i(t.getRootDomNode()).body,n?n.appendChild(e):t.attachId=(0,d.Z)((function(){t.attachParent(e)}))},t.getContainer=function(){var e=(0,t.props.getDocument)(t.getRootDomNode()).createElement("div");return e.style.position="absolute",e.style.top="0",e.style.left="0",e.style.width="100%",t.attachParent(e),e},t.setPoint=function(e){t.props.alignPoint&&e&&t.setState({point:{pageX:e.pageX,pageY:e.pageY}})},t.handlePortalUpdate=function(){t.state.prevPopupVisible!==t.state.popupVisible&&t.props.afterPopupVisibleChange(t.state.popupVisible)},t.triggerContextValue={onPopupMouseDown:t.onPopupMouseDown},r="popupVisible"in e?!!e.popupVisible:!!e.defaultPopupVisible,t.state={prevPopupVisible:r,popupVisible:r},Ye.forEach((function(e){t["fire".concat(e)]=function(n){t.fireEvents(e,n)}})),t}return(0,a.Z)(g,[{key:"componentDidMount",value:function(){this.componentDidUpdate()}},{key:"componentDidUpdate",value:function(){var e,t=this.props;if(this.state.popupVisible)return this.clickOutsideHandler||!this.isClickToHide()&&!this.isContextMenuToShow()||(e=t.getDocument(this.getRootDomNode()),this.clickOutsideHandler=(0,h.Z)(e,"mousedown",this.onDocumentClick)),this.touchOutsideHandler||(e=e||t.getDocument(this.getRootDomNode()),this.touchOutsideHandler=(0,h.Z)(e,"touchstart",this.onDocumentClick)),!this.contextMenuOutsideHandler1&&this.isContextMenuToShow()&&(e=e||t.getDocument(this.getRootDomNode()),this.contextMenuOutsideHandler1=(0,h.Z)(e,"scroll",this.onContextMenuClose)),void(!this.contextMenuOutsideHandler2&&this.isContextMenuToShow()&&(this.contextMenuOutsideHandler2=(0,h.Z)(window,"blur",this.onContextMenuClose)));this.clearOutsideHandler()}},{key:"componentWillUnmount",value:function(){this.clearDelayTimer(),this.clearOutsideHandler(),clearTimeout(this.mouseDownTimeout),d.Z.cancel(this.attachId)}},{key:"getPopupDomNode",value:function(){var e;return(null===(e=this.popupRef.current)||void 0===e?void 0:e.getElement())||null}},{key:"getPopupAlign",value:function(){var e=this.props,t=e.popupPlacement,n=e.popupAlign,o=e.builtinPlacements;return t&&o?function(e,t,n){var o=e[t]||{};return(0,r.Z)((0,r.Z)({},o),n)}(o,t,n):n}},{key:"setPopupVisible",value:function(e,t){var n=this.props.alignPoint,r=this.state.popupVisible;this.clearDelayTimer(),r!==e&&("popupVisible"in this.props||this.setState({popupVisible:e,prevPopupVisible:r}),this.props.onPopupVisibleChange(e)),n&&t&&e&&this.setPoint(t)}},{key:"delaySetPopupVisible",value:function(e,t,n){var r=this,o=1e3*t;if(this.clearDelayTimer(),o){var i=n?{pageX:n.pageX,pageY:n.pageY}:null;this.delayTimer=window.setTimeout((function(){r.setPopupVisible(e,i),r.clearDelayTimer()}),o)}else this.setPopupVisible(e,n)}},{key:"clearDelayTimer",value:function(){this.delayTimer&&(clearTimeout(this.delayTimer),this.delayTimer=null)}},{key:"clearOutsideHandler",value:function(){this.clickOutsideHandler&&(this.clickOutsideHandler.remove(),this.clickOutsideHandler=null),this.contextMenuOutsideHandler1&&(this.contextMenuOutsideHandler1.remove(),this.contextMenuOutsideHandler1=null),this.contextMenuOutsideHandler2&&(this.contextMenuOutsideHandler2.remove(),this.contextMenuOutsideHandler2=null),this.touchOutsideHandler&&(this.touchOutsideHandler.remove(),this.touchOutsideHandler=null)}},{key:"createTwoChains",value:function(e){var t=this.props.children.props,n=this.props;return t[e]&&n[e]?this["fire".concat(e)]:t[e]||n[e]}},{key:"isClickToShow",value:function(){var e=this.props,t=e.action,n=e.showAction;return-1!==t.indexOf("click")||-1!==n.indexOf("click")}},{key:"isContextMenuOnly",value:function(){var e=this.props.action;return"contextMenu"===e||1===e.length&&"contextMenu"===e[0]}},{key:"isContextMenuToShow",value:function(){var e=this.props,t=e.action,n=e.showAction;return-1!==t.indexOf("contextMenu")||-1!==n.indexOf("contextMenu")}},{key:"isClickToHide",value:function(){var e=this.props,t=e.action,n=e.hideAction;return-1!==t.indexOf("click")||-1!==n.indexOf("click")}},{key:"isMouseEnterToShow",value:function(){var e=this.props,t=e.action,n=e.showAction;return-1!==t.indexOf("hover")||-1!==n.indexOf("mouseEnter")}},{key:"isMouseLeaveToHide",value:function(){var e=this.props,t=e.action,n=e.hideAction;return-1!==t.indexOf("hover")||-1!==n.indexOf("mouseLeave")}},{key:"isFocusToShow",value:function(){var e=this.props,t=e.action,n=e.showAction;return-1!==t.indexOf("focus")||-1!==n.indexOf("focus")}},{key:"isBlurToHide",value:function(){var e=this.props,t=e.action,n=e.hideAction;return-1!==t.indexOf("focus")||-1!==n.indexOf("blur")}},{key:"forcePopupAlign",value:function(){var e;this.state.popupVisible&&(null===(e=this.popupRef.current)||void 0===e||e.forceAlign())}},{key:"fireEvents",value:function(e,t){var n=this.props.children.props[e];n&&n(t);var r=this.props[e];r&&r(t)}},{key:"close",value:function(){this.setPopupVisible(!1)}},{key:"render",value:function(){var t=this.state.popupVisible,n=this.props,o=n.children,i=n.forceRender,a=n.alignPoint,c=n.className,s=n.autoDestroy,l=u.Children.only(o),f={key:"trigger"};this.isContextMenuToShow()?f.onContextMenu=this.onContextMenu:f.onContextMenu=this.createTwoChains("onContextMenu"),this.isClickToHide()||this.isClickToShow()?(f.onClick=this.onClick,f.onMouseDown=this.onMouseDown,f.onTouchStart=this.onTouchStart):(f.onClick=this.createTwoChains("onClick"),f.onMouseDown=this.createTwoChains("onMouseDown"),f.onTouchStart=this.createTwoChains("onTouchStart")),this.isMouseEnterToShow()?(f.onMouseEnter=this.onMouseEnter,a&&(f.onMouseMove=this.onMouseMove)):f.onMouseEnter=this.createTwoChains("onMouseEnter"),this.isMouseLeaveToHide()?f.onMouseLeave=this.onMouseLeave:f.onMouseLeave=this.createTwoChains("onMouseLeave"),this.isFocusToShow()||this.isBlurToHide()?(f.onFocus=this.onFocus,f.onBlur=this.onBlur):(f.onFocus=this.createTwoChains("onFocus"),f.onBlur=this.createTwoChains("onBlur"));var d=b()(l&&l.props&&l.props.className,c);d&&(f.className=d);var p=(0,r.Z)({},f);(0,v.Yr)(l)&&(p.ref=(0,v.sQ)(this.triggerRef,l.ref));var m,h=u.cloneElement(l,p);return(t||this.popupRef.current||i)&&(m=u.createElement(e,{key:"portal",getContainer:this.getContainer,didUpdate:this.handlePortalUpdate},this.getComponent())),!t&&s&&(m=null),u.createElement(We.Provider,{value:this.triggerContextValue},h,m)}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n=e.popupVisible,r={};return void 0!==n&&t.popupVisible!==n&&(r.popupVisible=n,r.prevPopupVisible=t.popupVisible),r}}]),g}(u.Component);return t.contextType=We,t.defaultProps={prefixCls:"rc-trigger-popup",getPopupClassNameFromAlign:Ke,getDocument:Ge,onPopupVisibleChange:$e,afterPopupVisibleChange:$e,onPopupAlign:$e,popupClassName:"",mouseEnterDelay:0,mouseLeaveDelay:.1,focusDelay:0,blurDelay:.15,popupStyle:{},destroyPopupOnHide:!1,popupAlign:{},defaultPopupVisible:!1,mask:!1,maskClosable:!0,action:[],showAction:[],hideAction:[],autoDestroy:!1},t}(g.Z)},50344:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(67294),o=n(59864);function i(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=[];return r.Children.forEach(e,(function(e){(void 0!==e&&null!==e||t.keepEmpty)&&(Array.isArray(e)?n=n.concat(i(e)):(0,o.isFragment)(e)&&e.props?n=n.concat(i(e.props.children,t)):n.push(e))})),n}},64019:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(73935);function o(e,t,n,o){var i=r.unstable_batchedUpdates?function(e){r.unstable_batchedUpdates(n,e)}:n;return e.addEventListener&&e.addEventListener(t,i,o),{remove:function(){e.removeEventListener&&e.removeEventListener(t,i)}}}},98924:function(e,t,n){"use strict";function r(){return!("undefined"===typeof window||!window.document||!window.document.createElement)}n.d(t,{Z:function(){return r}})},94999:function(e,t,n){"use strict";function r(e,t){return!!e&&e.contains(t)}n.d(t,{Z:function(){return r}})},44958:function(e,t,n){"use strict";n.d(t,{h:function(){return s}});var r=n(98924),o="rc-util-key";function i(e){return e.attachTo?e.attachTo:document.querySelector("head")||document.body}function a(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!(0,r.Z)())return null;var o,a=document.createElement("style");(null===(t=n.csp)||void 0===t?void 0:t.nonce)&&(a.nonce=null===(o=n.csp)||void 0===o?void 0:o.nonce);a.innerHTML=e;var c=i(n),s=c.firstChild;return n.prepend&&c.prepend?c.prepend(a):n.prepend&&s?c.insertBefore(a,s):c.appendChild(a),a}var c=new Map;function s(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=i(n);if(!c.has(r)){var s=a("",n),l=s.parentNode;c.set(r,l),l.removeChild(s)}var u=Array.from(c.get(r).children).find((function(e){return"STYLE"===e.tagName&&e[o]===t}));if(u){var f,d,p;if((null===(f=n.csp)||void 0===f?void 0:f.nonce)&&u.nonce!==(null===(d=n.csp)||void 0===d?void 0:d.nonce))u.nonce=null===(p=n.csp)||void 0===p?void 0:p.nonce;return u.innerHTML!==e&&(u.innerHTML=e),u}var m=a(e,n);return m[o]=t,m}},34203:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(73935);function o(e){return e instanceof HTMLElement?e:r.findDOMNode(e)}},5110:function(e,t){"use strict";t.Z=function(e){if(!e)return!1;if(e.offsetParent)return!0;if(e.getBBox){var t=e.getBBox();if(t.width||t.height)return!0}if(e.getBoundingClientRect){var n=e.getBoundingClientRect();if(n.width||n.height)return!0}return!1}},79370:function(e,t,n){"use strict";n.d(t,{G:function(){return i}});var r=n(98924),o=function(e){if((0,r.Z)()&&window.document.documentElement){var t=Array.isArray(e)?e:[e],n=window.document.documentElement;return t.some((function(e){return e in n.style}))}return!1};function i(e,t){return Array.isArray(e)||void 0===t?o(e):function(e,t){if(!o(e))return!1;var n=document.createElement("div"),r=n.style[e];return n.style[e]=t,n.style[e]!==r}(e,t)}},15105:function(e,t){"use strict";var n={MAC_ENTER:3,BACKSPACE:8,TAB:9,NUM_CENTER:12,ENTER:13,SHIFT:16,CTRL:17,ALT:18,PAUSE:19,CAPS_LOCK:20,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,PRINT_SCREEN:44,INSERT:45,DELETE:46,ZERO:48,ONE:49,TWO:50,THREE:51,FOUR:52,FIVE:53,SIX:54,SEVEN:55,EIGHT:56,NINE:57,QUESTION_MARK:63,A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,T:84,U:85,V:86,W:87,X:88,Y:89,Z:90,META:91,WIN_KEY_RIGHT:92,CONTEXT_MENU:93,NUM_ZERO:96,NUM_ONE:97,NUM_TWO:98,NUM_THREE:99,NUM_FOUR:100,NUM_FIVE:101,NUM_SIX:102,NUM_SEVEN:103,NUM_EIGHT:104,NUM_NINE:105,NUM_MULTIPLY:106,NUM_PLUS:107,NUM_MINUS:109,NUM_PERIOD:110,NUM_DIVISION:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,NUMLOCK:144,SEMICOLON:186,DASH:189,EQUALS:187,COMMA:188,PERIOD:190,SLASH:191,APOSTROPHE:192,SINGLE_QUOTE:222,OPEN_SQUARE_BRACKET:219,BACKSLASH:220,CLOSE_SQUARE_BRACKET:221,WIN_KEY:224,MAC_FF_META:224,WIN_IME:229,isTextModifyingKeyEvent:function(e){var t=e.keyCode;if(e.altKey&&!e.ctrlKey||e.metaKey||t>=n.F1&&t<=n.F12)return!1;switch(t){case n.ALT:case n.CAPS_LOCK:case n.CONTEXT_MENU:case n.CTRL:case n.DOWN:case n.END:case n.ESC:case n.HOME:case n.INSERT:case n.LEFT:case n.MAC_FF_META:case n.META:case n.NUMLOCK:case n.NUM_CENTER:case n.PAGE_DOWN:case n.PAGE_UP:case n.PAUSE:case n.PRINT_SCREEN:case n.RIGHT:case n.SHIFT:case n.UP:case n.WIN_KEY:case n.WIN_KEY_RIGHT:return!1;default:return!0}},isCharacterKey:function(e){if(e>=n.ZERO&&e<=n.NINE)return!0;if(e>=n.NUM_ZERO&&e<=n.NUM_MULTIPLY)return!0;if(e>=n.A&&e<=n.Z)return!0;if(-1!==window.navigator.userAgent.indexOf("WebKit")&&0===e)return!0;switch(e){case n.SPACE:case n.QUESTION_MARK:case n.NUM_PLUS:case n.NUM_MINUS:case n.NUM_PERIOD:case n.NUM_DIVISION:case n.SEMICOLON:case n.DASH:case n.EQUALS:case n.COMMA:case n.PERIOD:case n.SLASH:case n.APOSTROPHE:case n.SINGLE_QUOTE:case n.OPEN_SQUARE_BRACKET:case n.BACKSLASH:case n.CLOSE_SQUARE_BRACKET:return!0;default:return!1}}};t.Z=n},59015:function(e,t,n){"use strict";var r=n(67294),o=n(73935),i=n(98924),a=(0,r.forwardRef)((function(e,t){var n=e.didUpdate,a=e.getContainer,c=e.children,s=(0,r.useRef)();(0,r.useImperativeHandle)(t,(function(){return{}}));var l=(0,r.useRef)(!1);return!l.current&&(0,i.Z)()&&(s.current=a(),l.current=!0),(0,r.useEffect)((function(){null===n||void 0===n||n(e)})),(0,r.useEffect)((function(){return function(){var e,t;null===(e=s.current)||void 0===e||null===(t=e.parentNode)||void 0===t||t.removeChild(s.current)}}),[]),s.current?o.createPortal(c,s.current):null}));t.Z=a},74204:function(e,t,n){"use strict";var r;function o(e){if("undefined"===typeof document)return 0;if(e||void 0===r){var t=document.createElement("div");t.style.width="100%",t.style.height="200px";var n=document.createElement("div"),o=n.style;o.position="absolute",o.top="0",o.left="0",o.pointerEvents="none",o.visibility="hidden",o.width="200px",o.height="150px",o.overflow="hidden",n.appendChild(t),document.body.appendChild(n);var i=t.offsetWidth;n.style.overflow="scroll";var a=t.offsetWidth;i===a&&(a=n.clientWidth),document.body.removeChild(n),r=i-a}return r}function i(e){var t=e.match(/^(.*)px$/),n=Number(null===t||void 0===t?void 0:t[1]);return Number.isNaN(n)?o():n}function a(e){if("undefined"===typeof document||!e||!(e instanceof Element))return{width:0,height:0};var t=getComputedStyle(e,"::-webkit-scrollbar"),n=t.width,r=t.height;return{width:i(n),height:i(r)}}n.d(t,{Z:function(){return o},o:function(){return a}})},56982:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(67294);function o(e,t,n){var o=r.useRef({});return"value"in o.current&&!n(o.current.condition,t)||(o.current.value=e(),o.current.condition=t),o.current.value}},21770:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(97685),o=n(67294);function i(e,t){var n=t||{},i=n.defaultValue,a=n.value,c=n.onChange,s=n.postState,l=o.useState((function(){return void 0!==a?a:void 0!==i?"function"===typeof i?i():i:"function"===typeof e?e():e})),u=(0,r.Z)(l,2),f=u[0],d=u[1],p=void 0!==a?a:f;s&&(p=s(p));var m=o.useRef(c);m.current=c;var v=o.useCallback((function(e){d(e),p!==e&&m.current&&m.current(e,p)}),[p,m]),h=o.useRef(!0);return o.useEffect((function(){h.current?h.current=!1:void 0===a&&d(a)}),[a]),[p,v]}},31131:function(e,t){"use strict";t.Z=function(){if("undefined"===typeof navigator||"undefined"===typeof window)return!1;var e=navigator.userAgent||navigator.vendor||window.opera;return!(!/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(e)&&!/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(null===e||void 0===e?void 0:e.substr(0,4)))}},98423:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(1413);function o(e,t){var n=(0,r.Z)({},e);return Array.isArray(t)&&t.forEach((function(e){delete n[e]})),n}},64217:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(1413),o="".concat("accept acceptCharset accessKey action allowFullScreen allowTransparency\n alt async autoComplete autoFocus autoPlay capture cellPadding cellSpacing challenge\n charSet checked classID className colSpan cols content contentEditable contextMenu\n controls coords crossOrigin data dateTime default defer dir disabled download draggable\n encType form formAction formEncType formMethod formNoValidate formTarget frameBorder\n headers height hidden high href hrefLang htmlFor httpEquiv icon id inputMode integrity\n is keyParams keyType kind label lang list loop low manifest marginHeight marginWidth max maxLength media\n mediaGroup method min minLength multiple muted name noValidate nonce open\n optimum pattern placeholder poster preload radioGroup readOnly rel required\n reversed role rowSpan rows sandbox scope scoped scrolling seamless selected\n shape size sizes span spellCheck src srcDoc srcLang srcSet start step style\n summary tabIndex target title type useMap value width wmode wrap"," ").concat("onCopy onCut onPaste onCompositionEnd onCompositionStart onCompositionUpdate onKeyDown\n onKeyPress onKeyUp onFocus onBlur onChange onInput onSubmit onClick onContextMenu onDoubleClick\n onDrag onDragEnd onDragEnter onDragExit onDragLeave onDragOver onDragStart onDrop onMouseDown\n onMouseEnter onMouseLeave onMouseMove onMouseOut onMouseOver onMouseUp onSelect onTouchCancel\n onTouchEnd onTouchMove onTouchStart onScroll onWheel onAbort onCanPlay onCanPlayThrough\n onDurationChange onEmptied onEncrypted onEnded onError onLoadedData onLoadedMetadata\n onLoadStart onPause onPlay onPlaying onProgress onRateChange onSeeked onSeeking onStalled onSuspend onTimeUpdate onVolumeChange onWaiting onLoad onError").split(/[\s\n]+/),i="aria-",a="data-";function c(e,t){return 0===e.indexOf(t)}function s(e){var t,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];t=!1===n?{aria:!0,data:!0,attr:!0}:!0===n?{aria:!0}:(0,r.Z)({},n);var s={};return Object.keys(e).forEach((function(n){(t.aria&&("role"===n||c(n,i))||t.data&&c(n,a)||t.attr&&o.includes(n))&&(s[n]=e[n])})),s}},75164:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=function(e){return+setTimeout(e,16)},o=function(e){return clearTimeout(e)};"undefined"!==typeof window&&"requestAnimationFrame"in window&&(r=function(e){return window.requestAnimationFrame(e)},o=function(e){return window.cancelAnimationFrame(e)});var i=0,a=new Map;function c(e){a.delete(e)}function s(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=i+=1;function o(t){if(0===t)c(n),e();else{var i=r((function(){o(t-1)}));a.set(n,i)}}return o(t),n}s.cancel=function(e){var t=a.get(e);return c(t),o(t)}},42550:function(e,t,n){"use strict";n.d(t,{mH:function(){return a},sQ:function(){return c},x1:function(){return s},Yr:function(){return l}});var r=n(71002),o=n(59864),i=n(56982);function a(e,t){"function"===typeof e?e(t):"object"===(0,r.Z)(e)&&e&&"current"in e&&(e.current=t)}function c(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=t.filter((function(e){return e}));return r.length<=1?r[0]:function(e){t.forEach((function(t){a(t,e)}))}}function s(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return(0,i.Z)((function(){return c.apply(void 0,t)}),t,(function(e,t){return e.length===t.length&&e.every((function(e,n){return e===t[n]}))}))}function l(e){var t,n,r=(0,o.isMemo)(e)?e.type.type:e.type;return!("function"===typeof r&&!(null===(t=r.prototype)||void 0===t?void 0:t.render))&&!("function"===typeof e&&!(null===(n=e.prototype)||void 0===n?void 0:n.render))}},80334:function(e,t,n){"use strict";var r={};function o(e,t){0}function i(e,t,n){t||r[n]||(e(!1,n),r[n]=!0)}t.ZP=function(e,t){i(o,e,t)}},69921:function(e,t){"use strict";var n="function"===typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,o=n?Symbol.for("react.portal"):60106,i=n?Symbol.for("react.fragment"):60107,a=n?Symbol.for("react.strict_mode"):60108,c=n?Symbol.for("react.profiler"):60114,s=n?Symbol.for("react.provider"):60109,l=n?Symbol.for("react.context"):60110,u=n?Symbol.for("react.async_mode"):60111,f=n?Symbol.for("react.concurrent_mode"):60111,d=n?Symbol.for("react.forward_ref"):60112,p=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,v=n?Symbol.for("react.memo"):60115,h=n?Symbol.for("react.lazy"):60116,g=n?Symbol.for("react.block"):60121,y=n?Symbol.for("react.fundamental"):60117,b=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function x(e){if("object"===typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case u:case f:case i:case c:case a:case p:return e;default:switch(e=e&&e.$$typeof){case l:case d:case h:case v:case s:return e;default:return t}}case o:return t}}}function C(e){return x(e)===f}t.AsyncMode=u,t.ConcurrentMode=f,t.ContextConsumer=l,t.ContextProvider=s,t.Element=r,t.ForwardRef=d,t.Fragment=i,t.Lazy=h,t.Memo=v,t.Portal=o,t.Profiler=c,t.StrictMode=a,t.Suspense=p,t.isAsyncMode=function(e){return C(e)||x(e)===u},t.isConcurrentMode=C,t.isContextConsumer=function(e){return x(e)===l},t.isContextProvider=function(e){return x(e)===s},t.isElement=function(e){return"object"===typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return x(e)===d},t.isFragment=function(e){return x(e)===i},t.isLazy=function(e){return x(e)===h},t.isMemo=function(e){return x(e)===v},t.isPortal=function(e){return x(e)===o},t.isProfiler=function(e){return x(e)===c},t.isStrictMode=function(e){return x(e)===a},t.isSuspense=function(e){return x(e)===p},t.isValidElementType=function(e){return"string"===typeof e||"function"===typeof e||e===i||e===f||e===c||e===a||e===p||e===m||"object"===typeof e&&null!==e&&(e.$$typeof===h||e.$$typeof===v||e.$$typeof===s||e.$$typeof===l||e.$$typeof===d||e.$$typeof===y||e.$$typeof===b||e.$$typeof===w||e.$$typeof===g)},t.typeOf=x},59864:function(e,t,n){"use strict";e.exports=n(69921)},35666:function(e){var t=function(e){"use strict";var t,n=Object.prototype,r=n.hasOwnProperty,o="function"===typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",c=o.toStringTag||"@@toStringTag";function s(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{s({},"")}catch(M){s=function(e,t,n){return e[t]=n}}function l(e,t,n,r){var o=t&&t.prototype instanceof h?t:h,i=Object.create(o.prototype),a=new S(r||[]);return i._invoke=function(e,t,n){var r=f;return function(o,i){if(r===p)throw new Error("Generator is already running");if(r===m){if("throw"===o)throw i;return T()}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var c=k(a,n);if(c){if(c===v)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===f)throw r=m,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=p;var s=u(e,t,n);if("normal"===s.type){if(r=n.done?m:d,s.arg===v)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(r=m,n.method="throw",n.arg=s.arg)}}}(e,n,a),i}function u(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(M){return{type:"throw",arg:M}}}e.wrap=l;var f="suspendedStart",d="suspendedYield",p="executing",m="completed",v={};function h(){}function g(){}function y(){}var b={};b[i]=function(){return this};var w=Object.getPrototypeOf,x=w&&w(w(O([])));x&&x!==n&&r.call(x,i)&&(b=x);var C=y.prototype=h.prototype=Object.create(b);function E(e){["next","throw","return"].forEach((function(t){s(e,t,(function(e){return this._invoke(t,e)}))}))}function Z(e,t){function n(o,i,a,c){var s=u(e[o],e,i);if("throw"!==s.type){var l=s.arg,f=l.value;return f&&"object"===typeof f&&r.call(f,"__await")?t.resolve(f.__await).then((function(e){n("next",e,a,c)}),(function(e){n("throw",e,a,c)})):t.resolve(f).then((function(e){l.value=e,a(l)}),(function(e){return n("throw",e,a,c)}))}c(s.arg)}var o;this._invoke=function(e,r){function i(){return new t((function(t,o){n(e,r,t,o)}))}return o=o?o.then(i,i):i()}}function k(e,n){var r=e.iterator[n.method];if(r===t){if(n.delegate=null,"throw"===n.method){if(e.iterator.return&&(n.method="return",n.arg=t,k(e,n),"throw"===n.method))return v;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var o=u(r,e.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,v;var i=o.arg;return i?i.done?(n[e.resultName]=i.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,v):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function N(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function P(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function S(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(N,this),this.reset(!0)}function O(e){if(e){var n=e[i];if(n)return n.call(e);if("function"===typeof e.next)return e;if(!isNaN(e.length)){var o=-1,a=function n(){for(;++o<e.length;)if(r.call(e,o))return n.value=e[o],n.done=!1,n;return n.value=t,n.done=!0,n};return a.next=a}}return{next:T}}function T(){return{value:t,done:!0}}return g.prototype=C.constructor=y,y.constructor=g,g.displayName=s(y,c,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"===typeof e&&e.constructor;return!!t&&(t===g||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,y):(e.__proto__=y,s(e,c,"GeneratorFunction")),e.prototype=Object.create(C),e},e.awrap=function(e){return{__await:e}},E(Z.prototype),Z.prototype[a]=function(){return this},e.AsyncIterator=Z,e.async=function(t,n,r,o,i){void 0===i&&(i=Promise);var a=new Z(l(t,n,r,o),i);return e.isGeneratorFunction(n)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},E(C),s(C,c,"Generator"),C[i]=function(){return this},C.toString=function(){return"[object Generator]"},e.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var r=t.pop();if(r in e)return n.value=r,n.done=!1,n}return n.done=!0,n}},e.values=O,S.prototype={constructor:S,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(P),!e)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=t)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var n=this;function o(r,o){return c.type="throw",c.arg=e,n.next=r,o&&(n.method="next",n.arg=t),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var s=r.call(a,"catchLoc"),l=r.call(a,"finallyLoc");if(s&&l){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(s){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!l)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,v):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),v},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),P(n),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;P(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:O(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),v}},e}(e.exports);try{regeneratorRuntime=t}catch(n){Function("r","regeneratorRuntime = r")(t)}},91033:function(e,t,n){"use strict";var r=function(){if("undefined"!==typeof Map)return Map;function e(e,t){var n=-1;return e.some((function(e,r){return e[0]===t&&(n=r,!0)})),n}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(t){var n=e(this.__entries__,t),r=this.__entries__[n];return r&&r[1]},t.prototype.set=function(t,n){var r=e(this.__entries__,t);~r?this.__entries__[r][1]=n:this.__entries__.push([t,n])},t.prototype.delete=function(t){var n=this.__entries__,r=e(n,t);~r&&n.splice(r,1)},t.prototype.has=function(t){return!!~e(this.__entries__,t)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(e,t){void 0===t&&(t=null);for(var n=0,r=this.__entries__;n<r.length;n++){var o=r[n];e.call(t,o[1],o[0])}},t}()}(),o="undefined"!==typeof window&&"undefined"!==typeof document&&window.document===document,i="undefined"!==typeof n.g&&n.g.Math===Math?n.g:"undefined"!==typeof self&&self.Math===Math?self:"undefined"!==typeof window&&window.Math===Math?window:Function("return this")(),a="function"===typeof requestAnimationFrame?requestAnimationFrame.bind(i):function(e){return setTimeout((function(){return e(Date.now())}),1e3/60)};var c=["top","right","bottom","left","width","height","size","weight"],s="undefined"!==typeof MutationObserver,l=function(){function e(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=function(e,t){var n=!1,r=!1,o=0;function i(){n&&(n=!1,e()),r&&s()}function c(){a(i)}function s(){var e=Date.now();if(n){if(e-o<2)return;r=!0}else n=!0,r=!1,setTimeout(c,t);o=e}return s}(this.refresh.bind(this),20)}return e.prototype.addObserver=function(e){~this.observers_.indexOf(e)||this.observers_.push(e),this.connected_||this.connect_()},e.prototype.removeObserver=function(e){var t=this.observers_,n=t.indexOf(e);~n&&t.splice(n,1),!t.length&&this.connected_&&this.disconnect_()},e.prototype.refresh=function(){this.updateObservers_()&&this.refresh()},e.prototype.updateObservers_=function(){var e=this.observers_.filter((function(e){return e.gatherActive(),e.hasActive()}));return e.forEach((function(e){return e.broadcastActive()})),e.length>0},e.prototype.connect_=function(){o&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),s?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){o&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,n=void 0===t?"":t;c.some((function(e){return!!~n.indexOf(e)}))&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),u=function(e,t){for(var n=0,r=Object.keys(t);n<r.length;n++){var o=r[n];Object.defineProperty(e,o,{value:t[o],enumerable:!1,writable:!1,configurable:!0})}return e},f=function(e){return e&&e.ownerDocument&&e.ownerDocument.defaultView||i},d=y(0,0,0,0);function p(e){return parseFloat(e)||0}function m(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return t.reduce((function(t,n){return t+p(e["border-"+n+"-width"])}),0)}function v(e){var t=e.clientWidth,n=e.clientHeight;if(!t&&!n)return d;var r=f(e).getComputedStyle(e),o=function(e){for(var t={},n=0,r=["top","right","bottom","left"];n<r.length;n++){var o=r[n],i=e["padding-"+o];t[o]=p(i)}return t}(r),i=o.left+o.right,a=o.top+o.bottom,c=p(r.width),s=p(r.height);if("border-box"===r.boxSizing&&(Math.round(c+i)!==t&&(c-=m(r,"left","right")+i),Math.round(s+a)!==n&&(s-=m(r,"top","bottom")+a)),!function(e){return e===f(e).document.documentElement}(e)){var l=Math.round(c+i)-t,u=Math.round(s+a)-n;1!==Math.abs(l)&&(c-=l),1!==Math.abs(u)&&(s-=u)}return y(o.left,o.top,c,s)}var h="undefined"!==typeof SVGGraphicsElement?function(e){return e instanceof f(e).SVGGraphicsElement}:function(e){return e instanceof f(e).SVGElement&&"function"===typeof e.getBBox};function g(e){return o?h(e)?function(e){var t=e.getBBox();return y(0,0,t.width,t.height)}(e):v(e):d}function y(e,t,n,r){return{x:e,y:t,width:n,height:r}}var b=function(){function e(e){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=y(0,0,0,0),this.target=e}return e.prototype.isActive=function(){var e=g(this.target);return this.contentRect_=e,e.width!==this.broadcastWidth||e.height!==this.broadcastHeight},e.prototype.broadcastRect=function(){var e=this.contentRect_;return this.broadcastWidth=e.width,this.broadcastHeight=e.height,e},e}(),w=function(e,t){var n=function(e){var t=e.x,n=e.y,r=e.width,o=e.height,i="undefined"!==typeof DOMRectReadOnly?DOMRectReadOnly:Object,a=Object.create(i.prototype);return u(a,{x:t,y:n,width:r,height:o,top:n,right:t+r,bottom:o+n,left:t}),a}(t);u(this,{target:e,contentRect:n})},x=function(){function e(e,t,n){if(this.activeObservations_=[],this.observations_=new r,"function"!==typeof e)throw new TypeError("The callback provided as parameter 1 is not a function.");this.callback_=e,this.controller_=t,this.callbackCtx_=n}return e.prototype.observe=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!==typeof Element&&Element instanceof Object){if(!(e instanceof f(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)||(t.set(e,new b(e)),this.controller_.addObserver(this),this.controller_.refresh())}},e.prototype.unobserve=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!==typeof Element&&Element instanceof Object){if(!(e instanceof f(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)&&(t.delete(e),t.size||this.controller_.removeObserver(this))}},e.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},e.prototype.gatherActive=function(){var e=this;this.clearActive(),this.observations_.forEach((function(t){t.isActive()&&e.activeObservations_.push(t)}))},e.prototype.broadcastActive=function(){if(this.hasActive()){var e=this.callbackCtx_,t=this.activeObservations_.map((function(e){return new w(e.target,e.broadcastRect())}));this.callback_.call(e,t,e),this.clearActive()}},e.prototype.clearActive=function(){this.activeObservations_.splice(0)},e.prototype.hasActive=function(){return this.activeObservations_.length>0},e}(),C="undefined"!==typeof WeakMap?new WeakMap:new r,E=function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=l.getInstance(),r=new x(t,n,this);C.set(this,r)};["observe","unobserve","disconnect"].forEach((function(e){E.prototype[e]=function(){var t;return(t=C.get(this))[e].apply(t,arguments)}}));var Z="undefined"!==typeof i.ResizeObserver?i.ResizeObserver:E;t.Z=Z},96774:function(e){e.exports=function(e,t,n,r){var o=n?n.call(r,e,t):void 0;if(void 0!==o)return!!o;if(e===t)return!0;if("object"!==typeof e||!e||"object"!==typeof t||!t)return!1;var i=Object.keys(e),a=Object.keys(t);if(i.length!==a.length)return!1;for(var c=Object.prototype.hasOwnProperty.bind(t),s=0;s<i.length;s++){var l=i[s];if(!c(l))return!1;var u=e[l],f=t[l];if(!1===(o=n?n.call(r,u,f,l):void 0)||void 0===o&&u!==f)return!1}return!0}},11742:function(e){e.exports=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,n=[],r=0;r<e.rangeCount;r++)n.push(e.getRangeAt(r));switch(t.tagName.toUpperCase()){case"INPUT":case"TEXTAREA":t.blur();break;default:t=null}return e.removeAllRanges(),function(){"Caret"===e.type&&e.removeAllRanges(),e.rangeCount||n.forEach((function(t){e.addRange(t)})),t&&t.focus()}}},42238:function(e,t,n){var r;!function(o,i){"use strict";var a="function",c="undefined",s="object",l="string",u="model",f="name",d="type",p="vendor",m="version",v="architecture",h="console",g="mobile",y="tablet",b="smarttv",w="wearable",x="embedded",C="Amazon",E="Apple",Z="ASUS",k="BlackBerry",N="Firefox",P="Google",S="Huawei",O="LG",T="Microsoft",M="Motorola",A="Opera",R="Samsung",j="Sony",F="Xiaomi",I="Zebra",L="Facebook",_=function(e){for(var t={},n=0;n<e.length;n++)t[e[n].toUpperCase()]=e[n];return t},D=function(e,t){return typeof e===l&&-1!==V(t).indexOf(V(e))},V=function(e){return e.toLowerCase()},z=function(e,t){if(typeof e===l)return e=e.replace(/^\s\s*/,"").replace(/\s\s*$/,""),typeof t===c?e:e.substring(0,255)},H=function(e,t){for(var n,r,o,c,l,u,f=0;f<t.length&&!l;){var d=t[f],p=t[f+1];for(n=r=0;n<d.length&&!l;)if(l=d[n++].exec(e))for(o=0;o<p.length;o++)u=l[++r],typeof(c=p[o])===s&&c.length>0?2===c.length?typeof c[1]==a?this[c[0]]=c[1].call(this,u):this[c[0]]=c[1]:3===c.length?typeof c[1]!==a||c[1].exec&&c[1].test?this[c[0]]=u?u.replace(c[1],c[2]):i:this[c[0]]=u?c[1].call(this,u,c[2]):i:4===c.length&&(this[c[0]]=u?c[3].call(this,u.replace(c[1],c[2])):i):this[c]=u||i;f+=2}},U=function(e,t){for(var n in t)if(typeof t[n]===s&&t[n].length>0){for(var r=0;r<t[n].length;r++)if(D(t[n][r],e))return"?"===n?i:n}else if(D(t[n],e))return"?"===n?i:n;return e},B={ME:"4.90","NT 3.11":"NT3.51","NT 4.0":"NT4.0",2e3:"NT 5.0",XP:["NT 5.1","NT 5.2"],Vista:"NT 6.0",7:"NT 6.1",8:"NT 6.2",8.1:"NT 6.3",10:["NT 6.4","NT 10.0"],RT:"ARM"},q={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[m,[f,"Chrome"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[m,[f,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[f,m],[/opios[\/ ]+([\w\.]+)/i],[m,[f,"Opera Mini"]],[/\bopr\/([\w\.]+)/i],[m,[f,A]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i,/(avant |iemobile|slim)(?:browser)?[\/ ]?([\w\.]*)/i,/(ba?idubrowser)[\/ ]?([\w\.]+)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale|qqbrowserlite|qq)\/([-\w\.]+)/i,/(weibo)__([\d\.]+)/i],[f,m],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[m,[f,"UCBrowser"]],[/\bqbcore\/([\w\.]+)/i],[m,[f,"WeChat(Win) Desktop"]],[/micromessenger\/([\w\.]+)/i],[m,[f,"WeChat"]],[/konqueror\/([\w\.]+)/i],[m,[f,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[m,[f,"IE"]],[/yabrowser\/([\w\.]+)/i],[m,[f,"Yandex"]],[/(avast|avg)\/([\w\.]+)/i],[[f,/(.+)/,"$1 Secure Browser"],m],[/\bfocus\/([\w\.]+)/i],[m,[f,"Firefox Focus"]],[/\bopt\/([\w\.]+)/i],[m,[f,"Opera Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[m,[f,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[m,[f,"Dolphin"]],[/coast\/([\w\.]+)/i],[m,[f,"Opera Coast"]],[/miuibrowser\/([\w\.]+)/i],[m,[f,"MIUI Browser"]],[/fxios\/([-\w\.]+)/i],[m,[f,N]],[/\bqihu|(qi?ho?o?|360)browser/i],[[f,"360 Browser"]],[/(oculus|samsung|sailfish)browser\/([\w\.]+)/i],[[f,/(.+)/,"$1 Browser"],m],[/(comodo_dragon)\/([\w\.]+)/i],[[f,/_/g," "],m],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|baiduboxapp|2345Explorer)[\/ ]?([\w\.]+)/i],[f,m],[/(metasr)[\/ ]?([\w\.]+)/i,/(lbbrowser)/i],[f],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[f,L],m],[/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(chromium|instagram)[\/ ]([-\w\.]+)/i],[f,m],[/\bgsa\/([\w\.]+) .*safari\//i],[m,[f,"GSA"]],[/headlesschrome(?:\/([\w\.]+)| )/i],[m,[f,"Chrome Headless"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[f,"Chrome WebView"],m],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[m,[f,"Android Browser"]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[f,m],[/version\/([\w\.]+) .*mobile\/\w+ (safari)/i],[m,[f,"Mobile Safari"]],[/version\/([\w\.]+) .*(mobile ?safari|safari)/i],[m,f],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[f,[m,U,{"1.0":"/8",1.2:"/1",1.3:"/3","2.0":"/412","2.0.2":"/416","2.0.3":"/417","2.0.4":"/419","?":"/"}]],[/(webkit|khtml)\/([\w\.]+)/i],[f,m],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[f,"Netscape"],m],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[m,[f,"Firefox Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/(links) \(([\w\.]+)/i],[f,m]],cpu:[[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i],[[v,"amd64"]],[/(ia32(?=;))/i],[[v,V]],[/((?:i[346]|x)86)[;\)]/i],[[v,"ia32"]],[/\b(aarch64|arm(v?8e?l?|_?64))\b/i],[[v,"arm64"]],[/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i],[[v,"armhf"]],[/windows (ce|mobile); ppc;/i],[[v,"arm"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i],[[v,/ower/,"",V]],[/(sun4\w)[;\)]/i],[[v,"sparc"]],[/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i],[[v,V]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[pt]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[u,[p,R],[d,y]],[/\b((?:s[cgp]h|gt|sm)-\w+|galaxy nexus)/i,/samsung[- ]([-\w]+)/i,/sec-(sgh\w+)/i],[u,[p,R],[d,g]],[/\((ip(?:hone|od)[\w ]*);/i],[u,[p,E],[d,g]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[u,[p,E],[d,y]],[/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i],[u,[p,S],[d,y]],[/(?:huawei|honor)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}-[atu]?[ln][01259x][012359][an]?)\b(?!.+d\/s)/i],[u,[p,S],[d,g]],[/\b(poco[\w ]+)(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i],[[u,/_/g," "],[p,F],[d,g]],[/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i],[[u,/_/g," "],[p,F],[d,y]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[u,[p,"OPPO"],[d,g]],[/vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[u,[p,"Vivo"],[d,g]],[/\b(rmx[12]\d{3})(?: bui|;|\))/i],[u,[p,"Realme"],[d,g]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ](\w*)/i,/((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i],[u,[p,M],[d,g]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[u,[p,M],[d,y]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[u,[p,O],[d,y]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i,/\blg-?([\d\w]+) bui/i],[u,[p,O],[d,g]],[/(ideatab[-\w ]+)/i,/lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i],[u,[p,"Lenovo"],[d,y]],[/(?:maemo|nokia).*(n900|lumia \d+)/i,/nokia[-_ ]?([-\w\.]*)/i],[[u,/_/g," "],[p,"Nokia"],[d,g]],[/(pixel c)\b/i],[u,[p,P],[d,y]],[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],[u,[p,P],[d,g]],[/droid.+ ([c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[u,[p,j],[d,g]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[u,"Xperia Tablet"],[p,j],[d,y]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[u,[p,"OnePlus"],[d,g]],[/(alexa)webm/i,/(kf[a-z]{2}wi)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[u,[p,C],[d,y]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[u,/(.+)/g,"Fire Phone $1"],[p,C],[d,g]],[/(playbook);[-\w\),; ]+(rim)/i],[u,p,[d,y]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[u,[p,k],[d,g]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[u,[p,Z],[d,y]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[u,[p,Z],[d,g]],[/(nexus 9)/i],[u,[p,"HTC"],[d,y]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic|sony)[-_ ]?([-\w]*)/i],[p,[u,/_/g," "],[d,g]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[u,[p,"Acer"],[d,y]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[u,[p,"Meizu"],[d,g]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[u,[p,"Sharp"],[d,g]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\w]*)/i,/(hp) ([\w ]+\w)/i,/(asus)-?(\w+)/i,/(microsoft); (lumia[\w ]+)/i,/(lenovo)[-_ ]?([-\w]+)/i,/(jolla)/i,/(oppo) ?([\w ]+) bui/i],[p,u,[d,g]],[/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i,/(nook)[\w ]+build\/(\w+)/i,/(dell) (strea[kpr\d ]*[\dko])/i,/(le[- ]+pan)[- ]+(\w{1,9}) bui/i,/(trinity)[- ]*(t\d{3}) bui/i,/(gigaset)[- ]+(q\w{1,9}) bui/i,/(vodafone) ([\w ]+)(?:\)| bui)/i],[p,u,[d,y]],[/(surface duo)/i],[u,[p,T],[d,y]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[u,[p,"Fairphone"],[d,g]],[/(u304aa)/i],[u,[p,"AT&T"],[d,g]],[/\bsie-(\w*)/i],[u,[p,"Siemens"],[d,g]],[/\b(rct\w+) b/i],[u,[p,"RCA"],[d,y]],[/\b(venue[\d ]{2,7}) b/i],[u,[p,"Dell"],[d,y]],[/\b(q(?:mv|ta)\w+) b/i],[u,[p,"Verizon"],[d,y]],[/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],[u,[p,"Barnes & Noble"],[d,y]],[/\b(tm\d{3}\w+) b/i],[u,[p,"NuVision"],[d,y]],[/\b(k88) b/i],[u,[p,"ZTE"],[d,y]],[/\b(nx\d{3}j) b/i],[u,[p,"ZTE"],[d,g]],[/\b(gen\d{3}) b.+49h/i],[u,[p,"Swiss"],[d,g]],[/\b(zur\d{3}) b/i],[u,[p,"Swiss"],[d,y]],[/\b((zeki)?tb.*\b) b/i],[u,[p,"Zeki"],[d,y]],[/\b([yr]\d{2}) b/i,/\b(dragon[- ]+touch |dt)(\w{5}) b/i],[[p,"Dragon Touch"],u,[d,y]],[/\b(ns-?\w{0,9}) b/i],[u,[p,"Insignia"],[d,y]],[/\b((nxa|next)-?\w{0,9}) b/i],[u,[p,"NextBook"],[d,y]],[/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[p,"Voice"],u,[d,g]],[/\b(lvtel\-)?(v1[12]) b/i],[[p,"LvTel"],u,[d,g]],[/\b(ph-1) /i],[u,[p,"Essential"],[d,g]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[u,[p,"Envizen"],[d,y]],[/\b(trio[-\w\. ]+) b/i],[u,[p,"MachSpeed"],[d,y]],[/\btu_(1491) b/i],[u,[p,"Rotor"],[d,y]],[/(shield[\w ]+) b/i],[u,[p,"Nvidia"],[d,y]],[/(sprint) (\w+)/i],[p,u,[d,g]],[/(kin\.[onetw]{3})/i],[[u,/\./g," "],[p,T],[d,g]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[u,[p,I],[d,y]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[u,[p,I],[d,g]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[p,u,[d,h]],[/droid.+; (shield) bui/i],[u,[p,"Nvidia"],[d,h]],[/(playstation [345portablevi]+)/i],[u,[p,j],[d,h]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[u,[p,T],[d,h]],[/smart-tv.+(samsung)/i],[p,[d,b]],[/hbbtv.+maple;(\d+)/i],[[u,/^/,"SmartTV"],[p,R],[d,b]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[p,O],[d,b]],[/(apple) ?tv/i],[p,[u,"Apple TV"],[d,b]],[/crkey/i],[[u,"Chromecast"],[p,P],[d,b]],[/droid.+aft(\w)( bui|\))/i],[u,[p,C],[d,b]],[/\(dtv[\);].+(aquos)/i],[u,[p,"Sharp"],[d,b]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w ]*; *(\w[^;]*);([^;]*)/i],[[p,z],[u,z],[d,b]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[d,b]],[/((pebble))app/i],[p,u,[d,w]],[/droid.+; (glass) \d/i],[u,[p,P],[d,w]],[/droid.+; (wt63?0{2,3})\)/i],[u,[p,I],[d,w]],[/(quest( 2)?)/i],[u,[p,L],[d,w]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[p,[d,x]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+? mobile safari/i],[u,[d,g]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],[u,[d,y]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[d,y]],[/(phone|mobile(?:[;\/]| safari)|pda(?=.+windows ce))/i],[[d,g]],[/(android[-\w\. ]{0,9});.+buil/i],[u,[p,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[m,[f,"EdgeHTML"]],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[m,[f,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i],[f,m],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[m,f]],os:[[/microsoft (windows) (vista|xp)/i],[f,m],[/(windows) nt 6\.2; (arm)/i,/(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i,/(windows)[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i],[f,[m,U,B]],[/(win(?=3|9|n)|win 9x )([nt\d\.]+)/i],[[f,"Windows"],[m,U,B]],[/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,/cfnetwork\/.+darwin/i],[[m,/_/g,"."],[f,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i],[[f,"Mac OS"],[m,/_/g,"."]],[/droid ([\w\.]+)\b.+(android[- ]x86)/i],[m,f],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i,/(blackberry)\w*\/([\w\.]*)/i,/(tizen|kaios)[\/ ]([\w\.]+)/i,/\((series40);/i],[f,m],[/\(bb(10);/i],[m,[f,k]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i],[m,[f,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[m,[f,"Firefox OS"]],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],[m,[f,"webOS"]],[/crkey\/([\d\.]+)/i],[m,[f,"Chromecast"]],[/(cros) [\w]+ ([\w\.]+\w)/i],[[f,"Chromium OS"],m],[/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\);]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/(mint)[\/\(\) ]?(\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/(hurd|linux) ?([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) (\w+)/i],[f,m],[/(sunos) ?([\w\.\d]*)/i],[[f,"Solaris"],m],[/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/(aix) ((\d)(?=\.|\)| )[\w\.])*/i,/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux)/i,/(unix) ?([\w\.]*)/i],[f,m]]},W=function(e,t){if(typeof e===s&&(t=e,e=i),!(this instanceof W))return new W(e,t).getResult();var n=e||(typeof o!==c&&o.navigator&&o.navigator.userAgent?o.navigator.userAgent:""),r=t?function(e,t){var n={};for(var r in e)t[r]&&t[r].length%2===0?n[r]=t[r].concat(e[r]):n[r]=e[r];return n}(q,t):q;return this.getBrowser=function(){var e,t={};return t.name=i,t.version=i,H.call(t,n,r.browser),t.major=typeof(e=t.version)===l?e.replace(/[^\d\.]/g,"").split(".")[0]:i,t},this.getCPU=function(){var e={};return e.architecture=i,H.call(e,n,r.cpu),e},this.getDevice=function(){var e={};return e.vendor=i,e.model=i,e.type=i,H.call(e,n,r.device),e},this.getEngine=function(){var e={};return e.name=i,e.version=i,H.call(e,n,r.engine),e},this.getOS=function(){var e={};return e.name=i,e.version=i,H.call(e,n,r.os),e},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return n},this.setUA=function(e){return n=typeof e===l&&e.length>255?z(e,255):e,this},this.setUA(n),this};W.VERSION="1.0.2",W.BROWSER=_([f,m,"major"]),W.CPU=_([v]),W.DEVICE=_([u,p,d,h,g,b,y,w,x]),W.ENGINE=W.OS=_([f,m]),typeof t!==c?(e.exports&&(t=e.exports=W),t.UAParser=W):n.amdO?(r=function(){return W}.call(t,n,t,e))===i||(e.exports=r):typeof o!==c&&(o.UAParser=W);var $=typeof o!==c&&(o.jQuery||o.Zepto);if($&&!$.ua){var K=new W;$.ua=K.getResult(),$.ua.get=function(){return K.getUA()},$.ua.set=function(e){K.setUA(e);var t=K.getResult();for(var n in t)$.ua[n]=t[n]}}}("object"===typeof window?window:this)},30907:function(e,t,n){"use strict";function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}n.d(t,{Z:function(){return r}})},83878:function(e,t,n){"use strict";function r(e){if(Array.isArray(e))return e}n.d(t,{Z:function(){return r}})},97326:function(e,t,n){"use strict";function r(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}n.d(t,{Z:function(){return r}})},15861:function(e,t,n){"use strict";function r(e,t,n,r,o,i,a){try{var c=e[i](a),s=c.value}catch(l){return void n(l)}c.done?t(s):Promise.resolve(s).then(r,o)}function o(e){return function(){var t=this,n=arguments;return new Promise((function(o,i){var a=e.apply(t,n);function c(e){r(a,o,i,c,s,"next",e)}function s(e){r(a,o,i,c,s,"throw",e)}c(void 0)}))}}n.d(t,{Z:function(){return o}})},15671:function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}n.d(t,{Z:function(){return r}})},43144:function(e,t,n){"use strict";function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function o(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e}n.d(t,{Z:function(){return o}})},3289:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(61120);var o=n(71002),i=n(97326);function a(e,t){if(t&&("object"===(0,o.Z)(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return(0,i.Z)(e)}function c(e){var t=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,o=(0,r.Z)(e);if(t){var i=(0,r.Z)(this).constructor;n=Reflect.construct(o,arguments,i)}else n=o.apply(this,arguments);return a(this,n)}}},4942:function(e,t,n){"use strict";function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n.d(t,{Z:function(){return r}})},87462:function(e,t,n){"use strict";function r(){return(r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}n.d(t,{Z:function(){return r}})},61120:function(e,t,n){"use strict";function r(e){return(r=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}n.d(t,{Z:function(){return r}})},60136:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(89611);function o(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&(0,r.Z)(e,t)}},59199:function(e,t,n){"use strict";function r(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}n.d(t,{Z:function(){return r}})},25267:function(e,t,n){"use strict";function r(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}n.d(t,{Z:function(){return r}})},1413:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(4942);function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}},91:function(e,t,n){"use strict";function r(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}n.d(t,{Z:function(){return r}})},89611:function(e,t,n){"use strict";function r(e,t){return(r=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}n.d(t,{Z:function(){return r}})},97685:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(83878);var o=n(40181),i=n(25267);function a(e,t){return(0,r.Z)(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i=[],a=!0,c=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(s){c=!0,o=s}finally{try{a||null==n.return||n.return()}finally{if(c)throw o}}return i}}(e,t)||(0,o.Z)(e,t)||(0,i.Z)()}},84506:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(83878),o=n(59199),i=n(40181),a=n(25267);function c(e){return(0,r.Z)(e)||(0,o.Z)(e)||(0,i.Z)(e)||(0,a.Z)()}},74902:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(30907);var o=n(59199),i=n(40181);function a(e){return function(e){if(Array.isArray(e))return(0,r.Z)(e)}(e)||(0,o.Z)(e)||(0,i.Z)(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}},71002:function(e,t,n){"use strict";function r(e){return(r="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}n.d(t,{Z:function(){return r}})},40181:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(30907);function o(e,t){if(e){if("string"===typeof e)return(0,r.Z)(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?(0,r.Z)(e,t):void 0}}}},function(e){var t=function(t){return e(e.s=t)};e.O(0,[774,179],(function(){return t(76363),t(90387)}));var n=e.O();_N_E=n}]); \ No newline at end of file
diff --git a/static/admin/_next/static/chunks/pages/access-tokens-6045feeedf5d6be6.js b/static/admin/_next/static/chunks/pages/access-tokens-6045feeedf5d6be6.js
deleted file mode 100644
index 3b42988c6..000000000
--- a/static/admin/_next/static/chunks/pages/access-tokens-6045feeedf5d6be6.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[874],{48689:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(1413),c=n(67294),o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M360 184h-8c4.4 0 8-3.6 8-8v8h304v-8c0 4.4 3.6 8 8 8h-8v72h72v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80h72v-72zm504 72H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM731.3 840H292.7l-24.2-512h487l-24.2 512z"}}]},name:"delete",theme:"outlined"},a=n(42135),s=function(e,t){return c.createElement(a.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:t,icon:o}))};s.displayName="DeleteOutlined";var i=c.forwardRef(s)},98082:function(e,t,n){"use strict";var r=n(97685),c=n(67294),o=n(31808);t.Z=function(){var e=c.useState(!1),t=(0,r.Z)(e,2),n=t[0],a=t[1];return c.useEffect((function(){a((0,o.fk)())}),[]),n}},6226:function(e,t,n){"use strict";n.d(t,{Z:function(){return v}});var r=n(4942),c=n(87462),o=n(71002),a=n(67294),s=n(94184),i=n.n(s),l=n(99134),u=n(59844),p=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var c=0;for(r=Object.getOwnPropertySymbols(e);c<r.length;c++)t.indexOf(r[c])<0&&Object.prototype.propertyIsEnumerable.call(e,r[c])&&(n[r[c]]=e[r[c]])}return n};var f=["xs","sm","md","lg","xl","xxl"],d=a.forwardRef((function(e,t){var n,s=a.useContext(u.E_),d=s.getPrefixCls,v=s.direction,m=a.useContext(l.Z),h=m.gutter,y=m.wrap,x=m.supportFlexGap,Z=e.prefixCls,b=e.span,g=e.order,w=e.offset,k=e.push,j=e.pull,O=e.className,C=e.children,E=e.flex,S=e.style,N=p(e,["prefixCls","span","order","offset","push","pull","className","children","flex","style"]),P=d("col",Z),_={};f.forEach((function(t){var n,a={},s=e[t];"number"===typeof s?a.span=s:"object"===(0,o.Z)(s)&&(a=s||{}),delete N[t],_=(0,c.Z)((0,c.Z)({},_),(n={},(0,r.Z)(n,"".concat(P,"-").concat(t,"-").concat(a.span),void 0!==a.span),(0,r.Z)(n,"".concat(P,"-").concat(t,"-order-").concat(a.order),a.order||0===a.order),(0,r.Z)(n,"".concat(P,"-").concat(t,"-offset-").concat(a.offset),a.offset||0===a.offset),(0,r.Z)(n,"".concat(P,"-").concat(t,"-push-").concat(a.push),a.push||0===a.push),(0,r.Z)(n,"".concat(P,"-").concat(t,"-pull-").concat(a.pull),a.pull||0===a.pull),(0,r.Z)(n,"".concat(P,"-rtl"),"rtl"===v),n))}));var z=i()(P,(n={},(0,r.Z)(n,"".concat(P,"-").concat(b),void 0!==b),(0,r.Z)(n,"".concat(P,"-order-").concat(g),g),(0,r.Z)(n,"".concat(P,"-offset-").concat(w),w),(0,r.Z)(n,"".concat(P,"-push-").concat(k),k),(0,r.Z)(n,"".concat(P,"-pull-").concat(j),j),n),O,_),A={};if(h&&h[0]>0){var T=h[0]/2;A.paddingLeft=T,A.paddingRight=T}if(h&&h[1]>0&&!x){var I=h[1]/2;A.paddingTop=I,A.paddingBottom=I}return E&&(A.flex=function(e){return"number"===typeof e?"".concat(e," ").concat(e," auto"):/^\d+(\.\d+)?(px|em|rem|%)$/.test(e)?"0 0 ".concat(e):e}(E),!1!==y||A.minWidth||(A.minWidth=0)),a.createElement("div",(0,c.Z)({},N,{style:(0,c.Z)((0,c.Z)({},A),S),className:z,ref:t}),C)}));d.displayName="Col";var v=d},99134:function(e,t,n){"use strict";var r=(0,n(67294).createContext)({});t.Z=r},25968:function(e,t,n){"use strict";n.d(t,{Z:function(){return y}});var r=n(87462),c=n(4942),o=n(71002),a=n(97685),s=n(67294),i=n(94184),l=n.n(i),u=n(59844),p=n(99134),f=n(93355),d=n(24308),v=n(98082),m=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var c=0;for(r=Object.getOwnPropertySymbols(e);c<r.length;c++)t.indexOf(r[c])<0&&Object.prototype.propertyIsEnumerable.call(e,r[c])&&(n[r[c]]=e[r[c]])}return n},h=((0,f.b)("top","middle","bottom","stretch"),(0,f.b)("start","end","center","space-around","space-between"),s.forwardRef((function(e,t){var n,i=e.prefixCls,f=e.justify,h=e.align,y=e.className,x=e.style,Z=e.children,b=e.gutter,g=void 0===b?0:b,w=e.wrap,k=m(e,["prefixCls","justify","align","className","style","children","gutter","wrap"]),j=s.useContext(u.E_),O=j.getPrefixCls,C=j.direction,E=s.useState({xs:!0,sm:!0,md:!0,lg:!0,xl:!0,xxl:!0}),S=(0,a.Z)(E,2),N=S[0],P=S[1],_=(0,v.Z)(),z=s.useRef(g);s.useEffect((function(){var e=d.ZP.subscribe((function(e){var t=z.current||0;(!Array.isArray(t)&&"object"===(0,o.Z)(t)||Array.isArray(t)&&("object"===(0,o.Z)(t[0])||"object"===(0,o.Z)(t[1])))&&P(e)}));return function(){return d.ZP.unsubscribe(e)}}),[]);var A=O("row",i),T=function(){var e=[0,0];return(Array.isArray(g)?g:[g,0]).forEach((function(t,n){if("object"===(0,o.Z)(t))for(var r=0;r<d.c4.length;r++){var c=d.c4[r];if(N[c]&&void 0!==t[c]){e[n]=t[c];break}}else e[n]=t||0})),e}(),I=l()(A,(n={},(0,c.Z)(n,"".concat(A,"-no-wrap"),!1===w),(0,c.Z)(n,"".concat(A,"-").concat(f),f),(0,c.Z)(n,"".concat(A,"-").concat(h),h),(0,c.Z)(n,"".concat(A,"-rtl"),"rtl"===C),n),y),R={},G=T[0]>0?T[0]/-2:void 0,M=T[1]>0?T[1]/-2:void 0;if(G&&(R.marginLeft=G,R.marginRight=G),_){var F=(0,a.Z)(T,2);R.rowGap=F[1]}else M&&(R.marginTop=M,R.marginBottom=M);var B=s.useMemo((function(){return{gutter:T,wrap:w,supportFlexGap:_}}),[T,w,_]);return s.createElement(p.Z.Provider,{value:B},s.createElement("div",(0,r.Z)({},k,{className:I,style:(0,r.Z)((0,r.Z)({},R),x),ref:t}),Z))})));h.displayName="Row";var y=h},26713:function(e,t,n){"use strict";n.d(t,{u:function(){return v},Z:function(){return h}});var r=n(87462),c=n(4942),o=n(97685),a=n(67294),s=n(94184),i=n.n(s),l=n(50344),u=n(59844);function p(e){var t=e.className,n=e.direction,o=e.index,s=e.marginDirection,i=e.children,l=e.split,u=e.wrap,p=a.useContext(v),f=p.horizontalSize,d=p.verticalSize,m=p.latestIndex,h={};return p.supportFlexGap||("vertical"===n?o<m&&(h={marginBottom:f/(l?2:1)}):h=(0,r.Z)((0,r.Z)({},o<m&&(0,c.Z)({},s,f/(l?2:1))),u&&{paddingBottom:d})),null===i||void 0===i?null:a.createElement(a.Fragment,null,a.createElement("div",{className:t,style:h},i),o<m&&l&&a.createElement("span",{className:"".concat(t,"-split"),style:h},l))}var f=n(98082),d=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var c=0;for(r=Object.getOwnPropertySymbols(e);c<r.length;c++)t.indexOf(r[c])<0&&Object.prototype.propertyIsEnumerable.call(e,r[c])&&(n[r[c]]=e[r[c]])}return n},v=a.createContext({latestIndex:0,horizontalSize:0,verticalSize:0,supportFlexGap:!1}),m={small:8,middle:16,large:24};var h=function(e){var t,n=a.useContext(u.E_),s=n.getPrefixCls,h=n.space,y=n.direction,x=e.size,Z=void 0===x?(null===h||void 0===h?void 0:h.size)||"small":x,b=e.align,g=e.className,w=e.children,k=e.direction,j=void 0===k?"horizontal":k,O=e.prefixCls,C=e.split,E=e.style,S=e.wrap,N=void 0!==S&&S,P=d(e,["size","align","className","children","direction","prefixCls","split","style","wrap"]),_=(0,f.Z)(),z=a.useMemo((function(){return(Array.isArray(Z)?Z:[Z,Z]).map((function(e){return function(e){return"string"===typeof e?m[e]:e||0}(e)}))}),[Z]),A=(0,o.Z)(z,2),T=A[0],I=A[1],R=(0,l.Z)(w,{keepEmpty:!0}),G=void 0===b&&"horizontal"===j?"center":b,M=s("space",O),F=i()(M,"".concat(M,"-").concat(j),(t={},(0,c.Z)(t,"".concat(M,"-rtl"),"rtl"===y),(0,c.Z)(t,"".concat(M,"-align-").concat(G),G),t),g),B="".concat(M,"-item"),D="rtl"===y?"marginLeft":"marginRight",H=0,L=R.map((function(e,t){return null!==e&&void 0!==e&&(H=t),a.createElement(p,{className:B,key:"".concat(B,"-").concat(t),direction:j,index:t,marginDirection:D,split:C,wrap:N},e)})),U=a.useMemo((function(){return{horizontalSize:T,verticalSize:I,latestIndex:H,supportFlexGap:_}}),[T,I,H,_]);if(0===R.length)return null;var W={};return N&&(W.flexWrap="wrap",_||(W.marginBottom=-I)),_&&(W.columnGap=T,W.rowGap=I),a.createElement("div",(0,r.Z)({className:F,style:(0,r.Z)((0,r.Z)({},W),E)},P),a.createElement(v.Provider,{value:U},L))}},20550:function(e,t,n){"use strict";n.d(t,{Z:function(){return g}});var r=n(4942),c=n(87462),o=n(97685),a=n(67294),s=n(94184),i=n.n(s),l=n(98423),u=n(97937),p=n(59844),f=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var c=0;for(r=Object.getOwnPropertySymbols(e);c<r.length;c++)t.indexOf(r[c])<0&&Object.prototype.propertyIsEnumerable.call(e,r[c])&&(n[r[c]]=e[r[c]])}return n},d=function(e){var t,n=e.prefixCls,o=e.className,s=e.checked,l=e.onChange,u=e.onClick,d=f(e,["prefixCls","className","checked","onChange","onClick"]),v=(0,a.useContext(p.E_).getPrefixCls)("tag",n),m=i()(v,(t={},(0,r.Z)(t,"".concat(v,"-checkable"),!0),(0,r.Z)(t,"".concat(v,"-checkable-checked"),s),t),o);return a.createElement("span",(0,c.Z)({},d,{className:m,onClick:function(e){null===l||void 0===l||l(!s),null===u||void 0===u||u(e)}}))},v=n(98787),m=n(97202),h=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var c=0;for(r=Object.getOwnPropertySymbols(e);c<r.length;c++)t.indexOf(r[c])<0&&Object.prototype.propertyIsEnumerable.call(e,r[c])&&(n[r[c]]=e[r[c]])}return n},y=new RegExp("^(".concat(v.Y.join("|"),")(-inverse)?$")),x=new RegExp("^(".concat(v.E.join("|"),")$")),Z=function(e,t){var n,s=e.prefixCls,f=e.className,d=e.style,v=e.children,Z=e.icon,b=e.color,g=e.onClose,w=e.closeIcon,k=e.closable,j=void 0!==k&&k,O=h(e,["prefixCls","className","style","children","icon","color","onClose","closeIcon","closable"]),C=a.useContext(p.E_),E=C.getPrefixCls,S=C.direction,N=a.useState(!0),P=(0,o.Z)(N,2),_=P[0],z=P[1];a.useEffect((function(){"visible"in O&&z(O.visible)}),[O.visible]);var A=function(){return!!b&&(y.test(b)||x.test(b))},T=(0,c.Z)({backgroundColor:b&&!A()?b:void 0},d),I=A(),R=E("tag",s),G=i()(R,(n={},(0,r.Z)(n,"".concat(R,"-").concat(b),I),(0,r.Z)(n,"".concat(R,"-has-color"),b&&!I),(0,r.Z)(n,"".concat(R,"-hidden"),!_),(0,r.Z)(n,"".concat(R,"-rtl"),"rtl"===S),n),f),M=function(e){e.stopPropagation(),null===g||void 0===g||g(e),e.defaultPrevented||"visible"in O||z(!1)},F="onClick"in O||v&&"a"===v.type,B=(0,l.Z)(O,["visible"]),D=Z||null,H=D?a.createElement(a.Fragment,null,D,a.createElement("span",null,v)):v,L=a.createElement("span",(0,c.Z)({},B,{ref:t,className:G,style:T}),H,j?w?a.createElement("span",{className:"".concat(R,"-close-icon"),onClick:M},w):a.createElement(u.Z,{className:"".concat(R,"-close-icon"),onClick:M}):null);return F?a.createElement(m.Z,null,L):L},b=a.forwardRef(Z);b.displayName="Tag",b.CheckableTag=d;var g=b},17554:function(e,t,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/access-tokens",function(){return n(48849)}])},48849:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return E}});var r=n(28520),c=n.n(r),o=n(85893),a=n(67294),s=n(17256),i=n(56266),l=n(20550),u=n(6226),p=n(32808),f=n(56516),d=n(69677),v=n(25968),m=n(71577),h=n(26713),y=n(49919),x=n(48689),Z=n(58091),b=n(58827);function g(e,t,n,r,c,o,a){try{var s=e[o](a),i=s.value}catch(l){return void n(l)}s.done?t(i):Promise.resolve(i).then(r,c)}function w(e){return function(){var t=this,n=arguments;return new Promise((function(r,c){var o=e.apply(t,n);function a(e){g(o,r,c,a,s,"next",e)}function s(e){g(o,r,c,a,s,"throw",e)}a(void 0)}))}}var k=s.Z.Title,j=s.Z.Paragraph,O={CAN_SEND_SYSTEM_MESSAGES:{name:"System messages",description:"Can send official messages on behalf of the system.",color:"purple"},CAN_SEND_MESSAGES:{name:"User chat messages",description:"Can send chat messages on behalf of the owner of this token.",color:"green"},HAS_ADMIN_ACCESS:{name:"Has admin access",description:"Can perform administrative actions such as moderation, get server statuses, etc.",color:"red"}};function C(e){var t=e.onOk,n=e.onCancel,r=e.visible,c=(0,a.useState)([]),s=c[0],i=c[1],l=(0,a.useState)(""),h=l[0],y=l[1],x=Object.keys(O).map((function(e){return{value:e,label:O[e].description}})),Z={disabled:0===s.length||""===h},b=x.map((function(e){return(0,o.jsx)(u.Z,{span:8,children:(0,o.jsx)(p.Z,{value:e.value,children:e.label})},e.value)}));return(0,o.jsxs)(f.Z,{title:"Create New Access token",visible:r,onOk:function(){t(h,s),i([]),y("")},onCancel:n,okButtonProps:Z,children:[(0,o.jsxs)("p",{children:[(0,o.jsx)("p",{children:"The name will be displayed as the chat user when sending messages with this access token."}),(0,o.jsx)(d.Z,{value:h,placeholder:"Name of bot, service, or integration",onChange:function(e){return y(e.currentTarget.value)}})]}),(0,o.jsx)("p",{children:"Select the permissions this access token will have. It cannot be edited after it's created."}),(0,o.jsx)(p.Z.Group,{style:{width:"100%"},value:s,onChange:function(e){i(e)},children:(0,o.jsx)(v.Z,{children:b})}),(0,o.jsx)("p",{children:(0,o.jsx)(m.Z,{type:"primary",onClick:function(){i(Object.keys(O))},children:"Select all"})})]})}function E(){var e=function(e){console.error("error",e)},t=(0,a.useState)([]),n=t[0],r=t[1],s=(0,a.useState)(!1),u=s[0],p=s[1];function f(){return v.apply(this,arguments)}function v(){return(v=w(c().mark((function t(){var n;return c().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,(0,b.rQ)(b.ms);case 3:n=t.sent,r(n),t.next=10;break;case 7:t.prev=7,t.t0=t.catch(0),e(t.t0);case 10:case"end":return t.stop()}}),t,null,[[0,7]])})))).apply(this,arguments)}function g(){return(g=w(c().mark((function t(n){return c().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,(0,b.rQ)(b.Wr,{method:"POST",data:{token:n}});case 3:f(),t.next=9;break;case 6:t.prev=6,t.t0=t.catch(0),e(t.t0);case 9:case"end":return t.stop()}}),t,null,[[0,6]])})))).apply(this,arguments)}function E(){return(E=w(c().mark((function t(o,a){var s;return c().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,(0,b.rQ)(b.IO,{method:"POST",data:{name:o,scopes:a}});case 3:s=t.sent,r(n.concat(s)),t.next=10;break;case 7:t.prev=7,t.t0=t.catch(0),e(t.t0);case 10:case"end":return t.stop()}}),t,null,[[0,7]])})))).apply(this,arguments)}(0,a.useEffect)((function(){f()}),[]);var S=[{title:"",key:"delete",render:function(e,t){return(0,o.jsx)(h.Z,{size:"middle",children:(0,o.jsx)(m.Z,{onClick:function(){return function(e){return g.apply(this,arguments)}(t.accessToken)},icon:(0,o.jsx)(x.Z,{})})})}},{title:"Name",dataIndex:"displayName",key:"displayName"},{title:"Token",dataIndex:"accessToken",key:"accessToken",render:function(e){return(0,o.jsx)(d.Z.Password,{size:"small",bordered:!1,value:e})}},{title:"Scopes",dataIndex:"scopes",key:"scopes",render:function(e){return(0,o.jsx)(o.Fragment,{children:e.map((function(e){return function(e){if(!e||!O[e])return null;var t=O[e];return(0,o.jsx)(i.Z,{title:t.description,children:(0,o.jsx)(l.Z,{color:t.color,children:t.name})},e)}(e)}))})}},{title:"Last Used",dataIndex:"lastUsed",key:"lastUsed",render:function(e){if(!e)return"Never";var t=new Date(e);return(0,Z.Z)(t,"P p")}}];return(0,o.jsxs)("div",{children:[(0,o.jsx)(k,{children:"Access Tokens"}),(0,o.jsx)(j,{children:"Access tokens are used to allow external, 3rd party tools to perform specific actions on your Owncast server. They should be kept secure and never included in client code, instead they should be kept on a server that you control."}),(0,o.jsxs)(j,{children:["Read more about how to use these tokens, with examples, at"," ",(0,o.jsx)("a",{href:"https://owncast.online/docs/integrations/?source=admin",target:"_blank",rel:"noopener noreferrer",children:"our documentation"}),"."]}),(0,o.jsx)(y.Z,{rowKey:"token",columns:S,dataSource:n,pagination:!1}),(0,o.jsx)("br",{}),(0,o.jsx)(m.Z,{type:"primary",onClick:function(){p(!0)},children:"Create Access Token"}),(0,o.jsx)(C,{visible:u,onOk:function(e,t){p(!1),function(e,t){E.apply(this,arguments)}(e,t)},onCancel:function(){p(!1)}})]})}}},function(e){e.O(0,[919,516,91,774,888,179],(function(){return t=17554,e(e.s=t);var t}));var t=e.O();_N_E=t}]); \ No newline at end of file
diff --git a/static/admin/_next/static/chunks/pages/access-tokens-d3e9e11b79321dbb.js b/static/admin/_next/static/chunks/pages/access-tokens-d3e9e11b79321dbb.js
new file mode 100644
index 000000000..a2243a2d3
--- /dev/null
+++ b/static/admin/_next/static/chunks/pages/access-tokens-d3e9e11b79321dbb.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[874],{48689:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(1413),c=n(67294),o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M360 184h-8c4.4 0 8-3.6 8-8v8h304v-8c0 4.4 3.6 8 8 8h-8v72h72v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80h72v-72zm504 72H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM731.3 840H292.7l-24.2-512h487l-24.2 512z"}}]},name:"delete",theme:"outlined"},a=n(42135),s=function(e,t){return c.createElement(a.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:t,icon:o}))};s.displayName="DeleteOutlined";var i=c.forwardRef(s)},6226:function(e,t,n){"use strict";n.d(t,{Z:function(){return h}});var r=n(4942),c=n(87462),o=n(71002),a=n(67294),s=n(94184),i=n.n(s),l=n(99134),u=n(59844),f=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var c=0;for(r=Object.getOwnPropertySymbols(e);c<r.length;c++)t.indexOf(r[c])<0&&Object.prototype.propertyIsEnumerable.call(e,r[c])&&(n[r[c]]=e[r[c]])}return n};var p=["xs","sm","md","lg","xl","xxl"],d=a.forwardRef((function(e,t){var n,s=a.useContext(u.E_),d=s.getPrefixCls,h=s.direction,v=a.useContext(l.Z),m=v.gutter,y=v.wrap,x=v.supportFlexGap,b=e.prefixCls,Z=e.span,g=e.order,w=e.offset,k=e.push,j=e.pull,C=e.className,O=e.children,E=e.flex,N=e.style,S=f(e,["prefixCls","span","order","offset","push","pull","className","children","flex","style"]),P=d("col",b),_={};p.forEach((function(t){var n,a={},s=e[t];"number"===typeof s?a.span=s:"object"===(0,o.Z)(s)&&(a=s||{}),delete S[t],_=(0,c.Z)((0,c.Z)({},_),(n={},(0,r.Z)(n,"".concat(P,"-").concat(t,"-").concat(a.span),void 0!==a.span),(0,r.Z)(n,"".concat(P,"-").concat(t,"-order-").concat(a.order),a.order||0===a.order),(0,r.Z)(n,"".concat(P,"-").concat(t,"-offset-").concat(a.offset),a.offset||0===a.offset),(0,r.Z)(n,"".concat(P,"-").concat(t,"-push-").concat(a.push),a.push||0===a.push),(0,r.Z)(n,"".concat(P,"-").concat(t,"-pull-").concat(a.pull),a.pull||0===a.pull),(0,r.Z)(n,"".concat(P,"-rtl"),"rtl"===h),n))}));var T=i()(P,(n={},(0,r.Z)(n,"".concat(P,"-").concat(Z),void 0!==Z),(0,r.Z)(n,"".concat(P,"-order-").concat(g),g),(0,r.Z)(n,"".concat(P,"-offset-").concat(w),w),(0,r.Z)(n,"".concat(P,"-push-").concat(k),k),(0,r.Z)(n,"".concat(P,"-pull-").concat(j),j),n),C,_),A={};if(m&&m[0]>0){var I=m[0]/2;A.paddingLeft=I,A.paddingRight=I}if(m&&m[1]>0&&!x){var R=m[1]/2;A.paddingTop=R,A.paddingBottom=R}return E&&(A.flex=function(e){return"number"===typeof e?"".concat(e," ").concat(e," auto"):/^\d+(\.\d+)?(px|em|rem|%)$/.test(e)?"0 0 ".concat(e):e}(E),!1!==y||A.minWidth||(A.minWidth=0)),a.createElement("div",(0,c.Z)({},S,{style:(0,c.Z)((0,c.Z)({},A),N),className:T,ref:t}),O)}));d.displayName="Col";var h=d},99134:function(e,t,n){"use strict";var r=(0,n(67294).createContext)({});t.Z=r},25968:function(e,t,n){"use strict";n.d(t,{Z:function(){return y}});var r=n(87462),c=n(4942),o=n(71002),a=n(97685),s=n(67294),i=n(94184),l=n.n(i),u=n(59844),f=n(99134),p=n(93355),d=n(24308),h=n(98082),v=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var c=0;for(r=Object.getOwnPropertySymbols(e);c<r.length;c++)t.indexOf(r[c])<0&&Object.prototype.propertyIsEnumerable.call(e,r[c])&&(n[r[c]]=e[r[c]])}return n},m=((0,p.b)("top","middle","bottom","stretch"),(0,p.b)("start","end","center","space-around","space-between"),s.forwardRef((function(e,t){var n,i=e.prefixCls,p=e.justify,m=e.align,y=e.className,x=e.style,b=e.children,Z=e.gutter,g=void 0===Z?0:Z,w=e.wrap,k=v(e,["prefixCls","justify","align","className","style","children","gutter","wrap"]),j=s.useContext(u.E_),C=j.getPrefixCls,O=j.direction,E=s.useState({xs:!0,sm:!0,md:!0,lg:!0,xl:!0,xxl:!0}),N=(0,a.Z)(E,2),S=N[0],P=N[1],_=(0,h.Z)(),T=s.useRef(g);s.useEffect((function(){var e=d.ZP.subscribe((function(e){var t=T.current||0;(!Array.isArray(t)&&"object"===(0,o.Z)(t)||Array.isArray(t)&&("object"===(0,o.Z)(t[0])||"object"===(0,o.Z)(t[1])))&&P(e)}));return function(){return d.ZP.unsubscribe(e)}}),[]);var A=C("row",i),I=function(){var e=[0,0];return(Array.isArray(g)?g:[g,0]).forEach((function(t,n){if("object"===(0,o.Z)(t))for(var r=0;r<d.c4.length;r++){var c=d.c4[r];if(S[c]&&void 0!==t[c]){e[n]=t[c];break}}else e[n]=t||0})),e}(),R=l()(A,(n={},(0,c.Z)(n,"".concat(A,"-no-wrap"),!1===w),(0,c.Z)(n,"".concat(A,"-").concat(p),p),(0,c.Z)(n,"".concat(A,"-").concat(m),m),(0,c.Z)(n,"".concat(A,"-rtl"),"rtl"===O),n),y),M={},G=I[0]>0?I[0]/-2:void 0,H=I[1]>0?I[1]/-2:void 0;if(G&&(M.marginLeft=G,M.marginRight=G),_){var z=(0,a.Z)(I,2);M.rowGap=z[1]}else H&&(M.marginTop=H,M.marginBottom=H);var D=s.useMemo((function(){return{gutter:I,wrap:w,supportFlexGap:_}}),[I,w,_]);return s.createElement(f.Z.Provider,{value:D},s.createElement("div",(0,r.Z)({},k,{className:R,style:(0,r.Z)((0,r.Z)({},M),x),ref:t}),b))})));m.displayName="Row";var y=m},20550:function(e,t,n){"use strict";n.d(t,{Z:function(){return g}});var r=n(4942),c=n(87462),o=n(97685),a=n(67294),s=n(94184),i=n.n(s),l=n(98423),u=n(97937),f=n(59844),p=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var c=0;for(r=Object.getOwnPropertySymbols(e);c<r.length;c++)t.indexOf(r[c])<0&&Object.prototype.propertyIsEnumerable.call(e,r[c])&&(n[r[c]]=e[r[c]])}return n},d=function(e){var t,n=e.prefixCls,o=e.className,s=e.checked,l=e.onChange,u=e.onClick,d=p(e,["prefixCls","className","checked","onChange","onClick"]),h=(0,a.useContext(f.E_).getPrefixCls)("tag",n),v=i()(h,(t={},(0,r.Z)(t,"".concat(h,"-checkable"),!0),(0,r.Z)(t,"".concat(h,"-checkable-checked"),s),t),o);return a.createElement("span",(0,c.Z)({},d,{className:v,onClick:function(e){null===l||void 0===l||l(!s),null===u||void 0===u||u(e)}}))},h=n(98787),v=n(97202),m=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var c=0;for(r=Object.getOwnPropertySymbols(e);c<r.length;c++)t.indexOf(r[c])<0&&Object.prototype.propertyIsEnumerable.call(e,r[c])&&(n[r[c]]=e[r[c]])}return n},y=new RegExp("^(".concat(h.Y.join("|"),")(-inverse)?$")),x=new RegExp("^(".concat(h.E.join("|"),")$")),b=function(e,t){var n,s=e.prefixCls,p=e.className,d=e.style,h=e.children,b=e.icon,Z=e.color,g=e.onClose,w=e.closeIcon,k=e.closable,j=void 0!==k&&k,C=m(e,["prefixCls","className","style","children","icon","color","onClose","closeIcon","closable"]),O=a.useContext(f.E_),E=O.getPrefixCls,N=O.direction,S=a.useState(!0),P=(0,o.Z)(S,2),_=P[0],T=P[1];a.useEffect((function(){"visible"in C&&T(C.visible)}),[C.visible]);var A=function(){return!!Z&&(y.test(Z)||x.test(Z))},I=(0,c.Z)({backgroundColor:Z&&!A()?Z:void 0},d),R=A(),M=E("tag",s),G=i()(M,(n={},(0,r.Z)(n,"".concat(M,"-").concat(Z),R),(0,r.Z)(n,"".concat(M,"-has-color"),Z&&!R),(0,r.Z)(n,"".concat(M,"-hidden"),!_),(0,r.Z)(n,"".concat(M,"-rtl"),"rtl"===N),n),p),H=function(e){e.stopPropagation(),null===g||void 0===g||g(e),e.defaultPrevented||"visible"in C||T(!1)},z="onClick"in C||h&&"a"===h.type,D=(0,l.Z)(C,["visible"]),B=b||null,F=B?a.createElement(a.Fragment,null,B,a.createElement("span",null,h)):h,U=a.createElement("span",(0,c.Z)({},D,{ref:t,className:G,style:I}),F,j?w?a.createElement("span",{className:"".concat(M,"-close-icon"),onClick:H},w):a.createElement(u.Z,{className:"".concat(M,"-close-icon"),onClick:H}):null);return z?a.createElement(v.Z,null,U):U},Z=a.forwardRef(b);Z.displayName="Tag",Z.CheckableTag=d;var g=Z},17554:function(e,t,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/access-tokens",function(){return n(48849)}])},48849:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return E}});var r=n(28520),c=n.n(r),o=n(85893),a=n(67294),s=n(44068),i=n(56266),l=n(20550),u=n(6226),f=n(32808),p=n(56516),d=n(69677),h=n(25968),v=n(71577),m=n(26713),y=n(88829),x=n(48689),b=n(58091),Z=n(58827);function g(e,t,n,r,c,o,a){try{var s=e[o](a),i=s.value}catch(l){return void n(l)}s.done?t(i):Promise.resolve(i).then(r,c)}function w(e){return function(){var t=this,n=arguments;return new Promise((function(r,c){var o=e.apply(t,n);function a(e){g(o,r,c,a,s,"next",e)}function s(e){g(o,r,c,a,s,"throw",e)}a(void 0)}))}}var k=s.Z.Title,j=s.Z.Paragraph,C={CAN_SEND_SYSTEM_MESSAGES:{name:"System messages",description:"Can send official messages on behalf of the system.",color:"purple"},CAN_SEND_MESSAGES:{name:"User chat messages",description:"Can send chat messages on behalf of the owner of this token.",color:"green"},HAS_ADMIN_ACCESS:{name:"Has admin access",description:"Can perform administrative actions such as moderation, get server statuses, etc.",color:"red"}};function O(e){var t=e.onOk,n=e.onCancel,r=e.visible,c=(0,a.useState)([]),s=c[0],i=c[1],l=(0,a.useState)(""),m=l[0],y=l[1],x=Object.keys(C).map((function(e){return{value:e,label:C[e].description}})),b={disabled:0===s.length||""===m},Z=x.map((function(e){return(0,o.jsx)(u.Z,{span:8,children:(0,o.jsx)(f.Z,{value:e.value,children:e.label})},e.value)}));return(0,o.jsxs)(p.Z,{title:"Create New Access token",visible:r,onOk:function(){t(m,s),i([]),y("")},onCancel:n,okButtonProps:b,children:[(0,o.jsxs)("p",{children:[(0,o.jsx)("p",{children:"The name will be displayed as the chat user when sending messages with this access token."}),(0,o.jsx)(d.Z,{value:m,placeholder:"Name of bot, service, or integration",onChange:function(e){return y(e.currentTarget.value)}})]}),(0,o.jsx)("p",{children:"Select the permissions this access token will have. It cannot be edited after it's created."}),(0,o.jsx)(f.Z.Group,{style:{width:"100%"},value:s,onChange:function(e){i(e)},children:(0,o.jsx)(h.Z,{children:Z})}),(0,o.jsx)("p",{children:(0,o.jsx)(v.Z,{type:"primary",onClick:function(){i(Object.keys(C))},children:"Select all"})})]})}function E(){var e=function(e){console.error("error",e)},t=(0,a.useState)([]),n=t[0],r=t[1],s=(0,a.useState)(!1),u=s[0],f=s[1];function p(){return h.apply(this,arguments)}function h(){return(h=w(c().mark((function t(){var n;return c().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,(0,Z.rQ)(Z.ms);case 3:n=t.sent,r(n),t.next=10;break;case 7:t.prev=7,t.t0=t.catch(0),e(t.t0);case 10:case"end":return t.stop()}}),t,null,[[0,7]])})))).apply(this,arguments)}function g(){return(g=w(c().mark((function t(n){return c().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,(0,Z.rQ)(Z.Wr,{method:"POST",data:{token:n}});case 3:p(),t.next=9;break;case 6:t.prev=6,t.t0=t.catch(0),e(t.t0);case 9:case"end":return t.stop()}}),t,null,[[0,6]])})))).apply(this,arguments)}function E(){return(E=w(c().mark((function t(o,a){var s;return c().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,(0,Z.rQ)(Z.IO,{method:"POST",data:{name:o,scopes:a}});case 3:s=t.sent,r(n.concat(s)),t.next=10;break;case 7:t.prev=7,t.t0=t.catch(0),e(t.t0);case 10:case"end":return t.stop()}}),t,null,[[0,7]])})))).apply(this,arguments)}(0,a.useEffect)((function(){p()}),[]);var N=[{title:"",key:"delete",render:function(e,t){return(0,o.jsx)(m.Z,{size:"middle",children:(0,o.jsx)(v.Z,{onClick:function(){return function(e){return g.apply(this,arguments)}(t.accessToken)},icon:(0,o.jsx)(x.Z,{})})})}},{title:"Name",dataIndex:"displayName",key:"displayName"},{title:"Token",dataIndex:"accessToken",key:"accessToken",render:function(e){return(0,o.jsx)(d.Z.Password,{size:"small",bordered:!1,value:e})}},{title:"Scopes",dataIndex:"scopes",key:"scopes",render:function(e){return(0,o.jsx)(o.Fragment,{children:e.map((function(e){return function(e){if(!e||!C[e])return null;var t=C[e];return(0,o.jsx)(i.Z,{title:t.description,children:(0,o.jsx)(l.Z,{color:t.color,children:t.name})},e)}(e)}))})}},{title:"Last Used",dataIndex:"lastUsed",key:"lastUsed",render:function(e){if(!e)return"Never";var t=new Date(e);return(0,b.Z)(t,"P p")}}];return(0,o.jsxs)("div",{children:[(0,o.jsx)(k,{children:"Access Tokens"}),(0,o.jsx)(j,{children:"Access tokens are used to allow external, 3rd party tools to perform specific actions on your Owncast server. They should be kept secure and never included in client code, instead they should be kept on a server that you control."}),(0,o.jsxs)(j,{children:["Read more about how to use these tokens, with examples, at"," ",(0,o.jsx)("a",{href:"https://owncast.online/docs/integrations/?source=admin",target:"_blank",rel:"noopener noreferrer",children:"our documentation"}),"."]}),(0,o.jsx)(y.Z,{rowKey:"token",columns:N,dataSource:n,pagination:!1}),(0,o.jsx)("br",{}),(0,o.jsx)(v.Z,{type:"primary",onClick:function(){f(!0)},children:"Create Access Token"}),(0,o.jsx)(O,{visible:u,onOk:function(e,t){f(!1),function(e,t){E.apply(this,arguments)}(e,t)},onCancel:function(){f(!1)}})]})}}},function(e){e.O(0,[829,91,774,888,179],(function(){return t=17554,e(e.s=t);var t}));var t=e.O();_N_E=t}]); \ No newline at end of file
diff --git a/static/admin/_next/static/chunks/pages/actions-06962496c7d339c5.js b/static/admin/_next/static/chunks/pages/actions-06962496c7d339c5.js
deleted file mode 100644
index 0c990953a..000000000
--- a/static/admin/_next/static/chunks/pages/actions-06962496c7d339c5.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[807],{48689:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(1413),o=n(67294),a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M360 184h-8c4.4 0 8-3.6 8-8v8h304v-8c0 4.4 3.6 8 8 8h-8v72h72v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80h72v-72zm504 72H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM731.3 840H292.7l-24.2-512h487l-24.2 512z"}}]},name:"delete",theme:"outlined"},i=n(42135),c=function(e,t){return o.createElement(i.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:t,icon:a}))};c.displayName="DeleteOutlined";var l=o.forwardRef(c)},98082:function(e,t,n){"use strict";var r=n(97685),o=n(67294),a=n(31808);t.Z=function(){var e=o.useState(!1),t=(0,r.Z)(e,2),n=t[0],i=t[1];return o.useEffect((function(){i((0,a.fk)())}),[]),n}},26713:function(e,t,n){"use strict";n.d(t,{u:function(){return h},Z:function(){return x}});var r=n(87462),o=n(4942),a=n(97685),i=n(67294),c=n(94184),l=n.n(c),u=n(50344),s=n(59844);function d(e){var t=e.className,n=e.direction,a=e.index,c=e.marginDirection,l=e.children,u=e.split,s=e.wrap,d=i.useContext(h),p=d.horizontalSize,f=d.verticalSize,v=d.latestIndex,x={};return d.supportFlexGap||("vertical"===n?a<v&&(x={marginBottom:p/(u?2:1)}):x=(0,r.Z)((0,r.Z)({},a<v&&(0,o.Z)({},c,p/(u?2:1))),s&&{paddingBottom:f})),null===l||void 0===l?null:i.createElement(i.Fragment,null,i.createElement("div",{className:t,style:x},l),a<v&&u&&i.createElement("span",{className:"".concat(t,"-split"),style:x},u))}var p=n(98082),f=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},h=i.createContext({latestIndex:0,horizontalSize:0,verticalSize:0,supportFlexGap:!1}),v={small:8,middle:16,large:24};var x=function(e){var t,n=i.useContext(s.E_),c=n.getPrefixCls,x=n.space,m=n.direction,y=e.size,g=void 0===y?(null===x||void 0===x?void 0:x.size)||"small":y,w=e.align,j=e.className,k=e.children,Z=e.direction,b=void 0===Z?"horizontal":Z,C=e.prefixCls,S=e.split,E=e.style,O=e.wrap,z=void 0!==O&&O,I=f(e,["size","align","className","children","direction","prefixCls","split","style","wrap"]),N=(0,p.Z)(),_=i.useMemo((function(){return(Array.isArray(g)?g:[g,g]).map((function(e){return function(e){return"string"===typeof e?v[e]:e||0}(e)}))}),[g]),T=(0,a.Z)(_,2),A=T[0],P=T[1],R=(0,u.Z)(k,{keepEmpty:!0}),U=void 0===w&&"horizontal"===b?"center":w,B=c("space",C),F=l()(B,"".concat(B,"-").concat(b),(t={},(0,o.Z)(t,"".concat(B,"-rtl"),"rtl"===m),(0,o.Z)(t,"".concat(B,"-align-").concat(U),U),t),j),G="".concat(B,"-item"),H="rtl"===m?"marginLeft":"marginRight",L=0,q=R.map((function(e,t){return null!==e&&void 0!==e&&(L=t),i.createElement(d,{className:G,key:"".concat(G,"-").concat(t),direction:b,index:t,marginDirection:H,split:S,wrap:z},e)})),D=i.useMemo((function(){return{horizontalSize:A,verticalSize:P,latestIndex:L,supportFlexGap:N}}),[A,P,L,N]);if(0===R.length)return null;var M={};return z&&(M.flexWrap="wrap",N||(M.marginBottom=-P)),N&&(M.columnGap=A,M.rowGap=P),i.createElement("div",(0,r.Z)({className:F,style:(0,r.Z)((0,r.Z)({},M),E)},I),i.createElement(h.Provider,{value:D},q))}},75056:function(e,t,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/actions",function(){return n(16293)}])},16293:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return E}});var r=n(28520),o=n.n(r),a=n(85893),i=n(48689),c=n(17256),l=n(56516),u=n(69677),s=n(32808),d=n(26713),p=n(71577),f=n(49919),h=n(67294),v=n(78464),x=n(25964),m=n(83200),y=n(35159),g=n(19411);function w(e,t,n,r,o,a,i){try{var c=e[a](i),l=c.value}catch(u){return void n(u)}c.done?t(l):Promise.resolve(l).then(r,o)}function j(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var a=e.apply(t,n);function i(e){w(a,r,o,i,c,"next",e)}function c(e){w(a,r,o,i,c,"throw",e)}i(void 0)}))}}function k(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}var Z=c.Z.Title,b=c.Z.Paragraph,C=null;function S(e){var t=e.onOk,n=e.onCancel,r=e.visible,o=(0,h.useState)(""),i=o[0],c=o[1],d=(0,h.useState)(""),p=d[0],f=d[1],v=(0,h.useState)(""),x=v[0],m=v[1],y=(0,h.useState)(""),w=y[0],j=y[1],k=(0,h.useState)(""),Z=k[0],b=k[1],C=(0,h.useState)(!1),S=C[0],E=C[1],O={disabled:!function(){try{if("https:"!==new URL(i).protocol)return!1}catch(e){return!1}return(0,g.Z)(i)&&""!==p}()};return(0,a.jsx)(l.Z,{title:"Create New Action",visible:r,onOk:function(){t(i,p,x,w,Z,S),c(""),f(""),m(""),j(""),b(""),E(!1)},onCancel:n,okButtonProps:O,children:(0,a.jsxs)("div",{children:["Add the URL for the external action you want to present."," ",(0,a.jsx)("strong",{children:"Only HTTPS urls are supported."}),(0,a.jsx)("p",{children:(0,a.jsx)("a",{href:"https://owncast.online/docs",target:"_blank",rel:"noopener noreferrer",children:"Read more about external actions."})}),(0,a.jsx)("p",{children:(0,a.jsx)(u.Z,{value:i,required:!0,placeholder:"https://myserver.com/action (required)",onChange:function(e){return c(e.currentTarget.value.trim())},type:"url",pattern:g.a})}),(0,a.jsx)("p",{children:(0,a.jsx)(u.Z,{value:p,required:!0,placeholder:"Your action title (required)",onChange:function(e){return f(e.currentTarget.value)}})}),(0,a.jsx)("p",{children:(0,a.jsx)(u.Z,{value:x,placeholder:"Optional description",onChange:function(e){return m(e.currentTarget.value)}})}),(0,a.jsx)("p",{children:(0,a.jsx)(u.Z,{value:w,placeholder:"https://myserver.com/action/icon.png (optional)",onChange:function(e){return j(e.currentTarget.value)}})}),(0,a.jsxs)("p",{children:[(0,a.jsx)(u.Z,{type:"color",value:Z,onChange:function(e){return b(e.currentTarget.value)}}),"Optional background color of the action button."]}),(0,a.jsx)(s.Z,{checked:S,defaultChecked:S,onChange:function(e){E(e.target.checked)},children:"Open in a new tab instead of within your page."})]})})}function E(){var e=(0,h.useContext)(y.aC)||{},t=e.serverConfig,n=e.setFieldInConfigState,r=t.externalActions,c=(0,h.useState)([]),l=c[0],u=c[1],s=(0,h.useState)(!1),g=s[0],w=s[1],E=(0,h.useState)(null),O=E[0],z=E[1],I=function(){z(null),C=null,clearTimeout(C)};function N(e){return _.apply(this,arguments)}function _(){return(_=j(o().mark((function e(t){return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,x.Si)({apiPath:x.os,data:{value:t},onSuccess:function(){n({fieldName:"externalActions",value:t,path:""}),z((0,m.kg)(m.zv,"Updated.")),C=setTimeout(I,x.sI)},onError:function(e){console.log(e),z((0,m.kg)(m.Un,e)),C=setTimeout(I,x.sI)}});case 2:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function T(){return(T=j(o().mark((function e(t){var n,r;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=k(l),r=l.findIndex((function(e){return e.url===t.url})),n.splice(r,1);try{u(n),N(n)}catch(o){console.error(o)}case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function A(){return(A=j(o().mark((function e(t,n,r,a,i,c){var s,d;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,s=k(l),d=s.concat({url:t,title:n,description:r,icon:a,color:i,openExternally:c}),u(d),e.next=6,N(d);case 6:e.next=11;break;case 8:e.prev=8,e.t0=e.catch(0),console.error(e.t0);case 11:case"end":return e.stop()}}),e,null,[[0,8]])})))).apply(this,arguments)}(0,h.useEffect)((function(){u(r||[])}),[r]);var P=[{title:"",key:"delete",render:function(e,t){return(0,a.jsx)(d.Z,{size:"middle",children:(0,a.jsx)(p.Z,{onClick:function(){return function(e){return T.apply(this,arguments)}(t)},icon:(0,a.jsx)(i.Z,{})})})}},{title:"Name",dataIndex:"title",key:"title"},{title:"Description",dataIndex:"description",key:"description"},{title:"URL",dataIndex:"url",key:"url"},{title:"Icon",dataIndex:"icon",key:"icon",render:function(e){return e?(0,a.jsx)("img",{style:{width:"2vw"},src:e,alt:""}):null}},{title:"Color",dataIndex:"color",key:"color",render:function(e){return e?(0,a.jsx)("div",{style:{backgroundColor:e,height:"30px"},children:e}):null}},{title:"Opens",dataIndex:"openExternally",key:"openExternally",render:function(e){return e?"In a new tab":"In a modal"}}];return(0,a.jsxs)("div",{children:[(0,a.jsx)(Z,{children:"External Actions"}),(0,a.jsx)(b,{children:"External action URLs are 3rd party UI you can display, embedded, into your Owncast page when a user clicks on a button to launch your action."}),(0,a.jsxs)(b,{children:["Read more about how to use actions, with examples, at"," ",(0,a.jsx)("a",{href:"https://owncast.online/thirdparty/?source=admin",target:"_blank",rel:"noopener noreferrer",children:"our documentation"}),"."]}),(0,a.jsx)(f.Z,{rowKey:function(e){return"".concat(e.title,"-").concat(e.url)},columns:P,dataSource:l,pagination:!1}),(0,a.jsx)("br",{}),(0,a.jsx)(p.Z,{type:"primary",onClick:function(){w(!0)},children:"Create New Action"}),(0,a.jsx)(v.Z,{status:O}),(0,a.jsx)(S,{visible:g,onOk:function(e,t,n,r,o,a){w(!1),function(e,t,n,r,o,a){A.apply(this,arguments)}(e,t,n,r,o,a)},onCancel:function(){w(!1)}})]})}}},function(e){e.O(0,[919,516,774,888,179],(function(){return t=75056,e(e.s=t);var t}));var t=e.O();_N_E=t}]); \ No newline at end of file
diff --git a/static/admin/_next/static/chunks/pages/actions-6889c0d5d40aa70e.js b/static/admin/_next/static/chunks/pages/actions-6889c0d5d40aa70e.js
new file mode 100644
index 000000000..44f133c8e
--- /dev/null
+++ b/static/admin/_next/static/chunks/pages/actions-6889c0d5d40aa70e.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[807],{48689:function(e,n,t){"use strict";t.d(n,{Z:function(){return u}});var r=t(1413),o=t(67294),a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M360 184h-8c4.4 0 8-3.6 8-8v8h304v-8c0 4.4 3.6 8 8 8h-8v72h72v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80h72v-72zm504 72H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM731.3 840H292.7l-24.2-512h487l-24.2 512z"}}]},name:"delete",theme:"outlined"},i=t(42135),c=function(e,n){return o.createElement(i.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:n,icon:a}))};c.displayName="DeleteOutlined";var u=o.forwardRef(c)},75056:function(e,n,t){(window.__NEXT_P=window.__NEXT_P||[]).push(["/actions",function(){return t(16293)}])},16293:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return I}});var r=t(28520),o=t.n(r),a=t(85893),i=t(48689),c=t(44068),u=t(56516),l=t(69677),s=t(32808),d=t(26713),p=t(71577),h=t(88829),f=t(67294),v=t(78464),x=t(25964),y=t(83200),g=t(35159),m=t(19411);function w(e,n,t,r,o,a,i){try{var c=e[a](i),u=c.value}catch(l){return void t(l)}c.done?n(u):Promise.resolve(u).then(r,o)}function j(e){return function(){var n=this,t=arguments;return new Promise((function(r,o){var a=e.apply(n,t);function i(e){w(a,r,o,i,c,"next",e)}function c(e){w(a,r,o,i,c,"throw",e)}i(void 0)}))}}function k(e){return function(e){if(Array.isArray(e)){for(var n=0,t=new Array(e.length);n<e.length;n++)t[n]=e[n];return t}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}var b=c.Z.Title,C=c.Z.Paragraph,Z=null;function S(e){var n=e.onOk,t=e.onCancel,r=e.visible,o=(0,f.useState)(""),i=o[0],c=o[1],d=(0,f.useState)(""),p=d[0],h=d[1],v=(0,f.useState)(""),x=v[0],y=v[1],g=(0,f.useState)(""),w=g[0],j=g[1],k=(0,f.useState)(""),b=k[0],C=k[1],Z=(0,f.useState)(!1),S=Z[0],I=Z[1],E={disabled:!function(){try{if("https:"!==new URL(i).protocol)return!1}catch(e){return!1}return(0,m.Z)(i)&&""!==p}()};return(0,a.jsx)(u.Z,{title:"Create New Action",visible:r,onOk:function(){n(i,p,x,w,b,S),c(""),h(""),y(""),j(""),C(""),I(!1)},onCancel:t,okButtonProps:E,children:(0,a.jsxs)("div",{children:["Add the URL for the external action you want to present."," ",(0,a.jsx)("strong",{children:"Only HTTPS urls are supported."}),(0,a.jsx)("p",{children:(0,a.jsx)("a",{href:"https://owncast.online/docs",target:"_blank",rel:"noopener noreferrer",children:"Read more about external actions."})}),(0,a.jsx)("p",{children:(0,a.jsx)(l.Z,{value:i,required:!0,placeholder:"https://myserver.com/action (required)",onChange:function(e){return c(e.currentTarget.value.trim())},type:"url",pattern:m.a})}),(0,a.jsx)("p",{children:(0,a.jsx)(l.Z,{value:p,required:!0,placeholder:"Your action title (required)",onChange:function(e){return h(e.currentTarget.value)}})}),(0,a.jsx)("p",{children:(0,a.jsx)(l.Z,{value:x,placeholder:"Optional description",onChange:function(e){return y(e.currentTarget.value)}})}),(0,a.jsx)("p",{children:(0,a.jsx)(l.Z,{value:w,placeholder:"https://myserver.com/action/icon.png (optional)",onChange:function(e){return j(e.currentTarget.value)}})}),(0,a.jsxs)("p",{children:[(0,a.jsx)(l.Z,{type:"color",value:b,onChange:function(e){return C(e.currentTarget.value)}}),"Optional background color of the action button."]}),(0,a.jsx)(s.Z,{checked:S,defaultChecked:S,onChange:function(e){I(e.target.checked)},children:"Open in a new tab instead of within your page."})]})})}function I(){var e=(0,f.useContext)(g.aC)||{},n=e.serverConfig,t=e.setFieldInConfigState,r=n.externalActions,c=(0,f.useState)([]),u=c[0],l=c[1],s=(0,f.useState)(!1),m=s[0],w=s[1],I=(0,f.useState)(null),E=I[0],O=I[1],T=function(){O(null),Z=null,clearTimeout(Z)};function _(e){return A.apply(this,arguments)}function A(){return(A=j(o().mark((function e(n){return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,x.Si)({apiPath:x.os,data:{value:n},onSuccess:function(){t({fieldName:"externalActions",value:n,path:""}),O((0,y.kg)(y.zv,"Updated.")),Z=setTimeout(T,x.sI)},onError:function(e){console.log(e),O((0,y.kg)(y.Un,e)),Z=setTimeout(T,x.sI)}});case 2:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function N(){return(N=j(o().mark((function e(n){var t,r;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=k(u),r=u.findIndex((function(e){return e.url===n.url})),t.splice(r,1);try{l(t),_(t)}catch(o){console.error(o)}case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function P(){return(P=j(o().mark((function e(n,t,r,a,i,c){var s,d;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,s=k(u),d=s.concat({url:n,title:t,description:r,icon:a,color:i,openExternally:c}),l(d),e.next=6,_(d);case 6:e.next=11;break;case 8:e.prev=8,e.t0=e.catch(0),console.error(e.t0);case 11:case"end":return e.stop()}}),e,null,[[0,8]])})))).apply(this,arguments)}(0,f.useEffect)((function(){l(r||[])}),[r]);var R=[{title:"",key:"delete",render:function(e,n){return(0,a.jsx)(d.Z,{size:"middle",children:(0,a.jsx)(p.Z,{onClick:function(){return function(e){return N.apply(this,arguments)}(n)},icon:(0,a.jsx)(i.Z,{})})})}},{title:"Name",dataIndex:"title",key:"title"},{title:"Description",dataIndex:"description",key:"description"},{title:"URL",dataIndex:"url",key:"url"},{title:"Icon",dataIndex:"icon",key:"icon",render:function(e){return e?(0,a.jsx)("img",{style:{width:"2vw"},src:e,alt:""}):null}},{title:"Color",dataIndex:"color",key:"color",render:function(e){return e?(0,a.jsx)("div",{style:{backgroundColor:e,height:"30px"},children:e}):null}},{title:"Opens",dataIndex:"openExternally",key:"openExternally",render:function(e){return e?"In a new tab":"In a modal"}}];return(0,a.jsxs)("div",{children:[(0,a.jsx)(b,{children:"External Actions"}),(0,a.jsx)(C,{children:"External action URLs are 3rd party UI you can display, embedded, into your Owncast page when a user clicks on a button to launch your action."}),(0,a.jsxs)(C,{children:["Read more about how to use actions, with examples, at"," ",(0,a.jsx)("a",{href:"https://owncast.online/thirdparty/?source=admin",target:"_blank",rel:"noopener noreferrer",children:"our documentation"}),"."]}),(0,a.jsx)(h.Z,{rowKey:function(e){return"".concat(e.title,"-").concat(e.url)},columns:R,dataSource:u,pagination:!1}),(0,a.jsx)("br",{}),(0,a.jsx)(p.Z,{type:"primary",onClick:function(){w(!0)},children:"Create New Action"}),(0,a.jsx)(v.Z,{status:E}),(0,a.jsx)(S,{visible:m,onOk:function(e,n,t,r,o,a){w(!1),function(e,n,t,r,o,a){P.apply(this,arguments)}(e,n,t,r,o,a)},onCancel:function(){w(!1)}})]})}}},function(e){e.O(0,[829,774,888,179],(function(){return n=75056,e(e.s=n);var n}));var n=e.O();_N_E=n}]); \ No newline at end of file
diff --git a/static/admin/_next/static/chunks/pages/chat/messages-7f73b63d7ec03c12.js b/static/admin/_next/static/chunks/pages/chat/messages-7f73b63d7ec03c12.js
deleted file mode 100644
index f6cd5dd6e..000000000
--- a/static/admin/_next/static/chunks/pages/chat/messages-7f73b63d7ec03c12.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[145],{98082:function(e,t,n){"use strict";var r=n(97685),a=n(67294),o=n(31808);t.Z=function(){var e=a.useState(!1),t=(0,r.Z)(e,2),n=t[0],c=t[1];return a.useEffect((function(){c((0,o.fk)())}),[]),n}},6226:function(e,t,n){"use strict";n.d(t,{Z:function(){return m}});var r=n(4942),a=n(87462),o=n(71002),c=n(67294),s=n(94184),i=n.n(s),u=n(99134),l=n(59844),f=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n};var d=["xs","sm","md","lg","xl","xxl"],p=c.forwardRef((function(e,t){var n,s=c.useContext(l.E_),p=s.getPrefixCls,m=s.direction,h=c.useContext(u.Z),v=h.gutter,y=h.wrap,g=h.supportFlexGap,b=e.prefixCls,x=e.span,w=e.order,Z=e.offset,j=e.push,O=e.pull,N=e.className,P=e.children,S=e.flex,C=e.style,E=f(e,["prefixCls","span","order","offset","push","pull","className","children","flex","style"]),k=p("col",b),T={};d.forEach((function(t){var n,c={},s=e[t];"number"===typeof s?c.span=s:"object"===(0,o.Z)(s)&&(c=s||{}),delete E[t],T=(0,a.Z)((0,a.Z)({},T),(n={},(0,r.Z)(n,"".concat(k,"-").concat(t,"-").concat(c.span),void 0!==c.span),(0,r.Z)(n,"".concat(k,"-").concat(t,"-order-").concat(c.order),c.order||0===c.order),(0,r.Z)(n,"".concat(k,"-").concat(t,"-offset-").concat(c.offset),c.offset||0===c.offset),(0,r.Z)(n,"".concat(k,"-").concat(t,"-push-").concat(c.push),c.push||0===c.push),(0,r.Z)(n,"".concat(k,"-").concat(t,"-pull-").concat(c.pull),c.pull||0===c.pull),(0,r.Z)(n,"".concat(k,"-rtl"),"rtl"===m),n))}));var _=i()(k,(n={},(0,r.Z)(n,"".concat(k,"-").concat(x),void 0!==x),(0,r.Z)(n,"".concat(k,"-order-").concat(w),w),(0,r.Z)(n,"".concat(k,"-offset-").concat(Z),Z),(0,r.Z)(n,"".concat(k,"-push-").concat(j),j),(0,r.Z)(n,"".concat(k,"-pull-").concat(O),O),n),N,T),A={};if(v&&v[0]>0){var I=v[0]/2;A.paddingLeft=I,A.paddingRight=I}if(v&&v[1]>0&&!g){var M=v[1]/2;A.paddingTop=M,A.paddingBottom=M}return S&&(A.flex=function(e){return"number"===typeof e?"".concat(e," ").concat(e," auto"):/^\d+(\.\d+)?(px|em|rem|%)$/.test(e)?"0 0 ".concat(e):e}(S),!1!==y||A.minWidth||(A.minWidth=0)),c.createElement("div",(0,a.Z)({},E,{style:(0,a.Z)((0,a.Z)({},A),C),className:_,ref:t}),P)}));p.displayName="Col";var m=p},99134:function(e,t,n){"use strict";var r=(0,n(67294).createContext)({});t.Z=r},25968:function(e,t,n){"use strict";n.d(t,{Z:function(){return y}});var r=n(87462),a=n(4942),o=n(71002),c=n(97685),s=n(67294),i=n(94184),u=n.n(i),l=n(59844),f=n(99134),d=n(93355),p=n(24308),m=n(98082),h=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},v=((0,d.b)("top","middle","bottom","stretch"),(0,d.b)("start","end","center","space-around","space-between"),s.forwardRef((function(e,t){var n,i=e.prefixCls,d=e.justify,v=e.align,y=e.className,g=e.style,b=e.children,x=e.gutter,w=void 0===x?0:x,Z=e.wrap,j=h(e,["prefixCls","justify","align","className","style","children","gutter","wrap"]),O=s.useContext(l.E_),N=O.getPrefixCls,P=O.direction,S=s.useState({xs:!0,sm:!0,md:!0,lg:!0,xl:!0,xxl:!0}),C=(0,c.Z)(S,2),E=C[0],k=C[1],T=(0,m.Z)(),_=s.useRef(w);s.useEffect((function(){var e=p.ZP.subscribe((function(e){var t=_.current||0;(!Array.isArray(t)&&"object"===(0,o.Z)(t)||Array.isArray(t)&&("object"===(0,o.Z)(t[0])||"object"===(0,o.Z)(t[1])))&&k(e)}));return function(){return p.ZP.unsubscribe(e)}}),[]);var A=N("row",i),I=function(){var e=[0,0];return(Array.isArray(w)?w:[w,0]).forEach((function(t,n){if("object"===(0,o.Z)(t))for(var r=0;r<p.c4.length;r++){var a=p.c4[r];if(E[a]&&void 0!==t[a]){e[n]=t[a];break}}else e[n]=t||0})),e}(),M=u()(A,(n={},(0,a.Z)(n,"".concat(A,"-no-wrap"),!1===Z),(0,a.Z)(n,"".concat(A,"-").concat(d),d),(0,a.Z)(n,"".concat(A,"-").concat(v),v),(0,a.Z)(n,"".concat(A,"-rtl"),"rtl"===P),n),y),R={},z=I[0]>0?I[0]/-2:void 0,D=I[1]>0?I[1]/-2:void 0;if(z&&(R.marginLeft=z,R.marginRight=z),T){var Q=(0,c.Z)(I,2);R.rowGap=Q[1]}else D&&(R.marginTop=D,R.marginBottom=D);var U=s.useMemo((function(){return{gutter:I,wrap:Z,supportFlexGap:T}}),[I,Z,T]);return s.createElement(f.Z.Provider,{value:U},s.createElement("div",(0,r.Z)({},j,{className:M,style:(0,r.Z)((0,r.Z)({},R),g),ref:t}),b))})));v.displayName="Row";var y=v},9007:function(e,t,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/chat/messages",function(){return n(40625)}])},40625:function(e,t,n){"use strict";n.r(t),n.d(t,{OUTCOME_TIMEOUT:function(){return T},default:function(){return _}});var r=n(28520),a=n.n(r),o=n(85893),c=n(67294),s=n(17256),i=n(71577),u=n(49919),l=n(89739),f=n(21640),d=n(94184),p=n.n(d),m=n(58091),h=n(58827),v=n(2766),y=n(56266),g=n(99611),b=n(90420);function x(e,t,n,r,a,o,c){try{var s=e[o](c),i=s.value}catch(u){return void n(u)}s.done?t(i):Promise.resolve(i).then(r,a)}function w(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Z(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"===typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),r.forEach((function(t){w(e,t,n[t])}))}return e}function j(e){var t=e.isVisible,n=e.message,r=e.setMessage;if(!n||(0,v.Qr)(n))return null;var s=null,u=(0,c.useState)(0),d=u[0],p=u[1],m=(n||{}).id;(0,c.useEffect)((function(){return function(){clearTimeout(s)}}));var w,j=(w=a().mark((function e(){var o;return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return clearTimeout(s),p(0),e.next=4,(0,h.rQ)(h.hn,{auth:!0,method:"POST",data:{visible:!t,idArray:[m]}});case 4:(o=e.sent).success&&"changed"===o.message?(r(Z({},n,{visible:!t})),p(1)):(r(Z({},n,{visible:t})),p(-1)),s=setTimeout((function(){p(0)}),T);case 7:case"end":return e.stop()}}),e)})),function(){var e=this,t=arguments;return new Promise((function(n,r){var a=w.apply(e,t);function o(e){x(a,n,r,o,c,"next",e)}function c(e){x(a,n,r,o,c,"throw",e)}o(void 0)}))}),O=(0,o.jsx)(l.Z,{style:{color:"transparent"}});d&&(O=d>0?(0,o.jsx)(l.Z,{style:{color:"var(--ant-success)"}}):(0,o.jsx)(f.Z,{style:{color:"var(--ant-warning)"}}));var N="Click to ".concat(t?"hide":"show"," this message");return(0,o.jsxs)("div",{className:"toggle-switch ".concat(t?"":"hidden"),children:[(0,o.jsx)("span",{className:"outcome-icon",children:O}),(0,o.jsx)(y.Z,{title:N,placement:"topRight",children:(0,o.jsx)(i.Z,{shape:"circle",size:"small",type:"text",icon:t?(0,o.jsx)(g.Z,{}):(0,o.jsx)(b.Z,{}),onClick:j})})]})}var O=n(85584);function N(e,t,n,r,a,o,c){try{var s=e[o](c),i=s.value}catch(u){return void n(u)}s.done?t(i):Promise.resolve(i).then(r,a)}function P(e){return function(){var t=this,n=arguments;return new Promise((function(r,a){var o=e.apply(t,n);function c(e){N(o,r,a,c,s,"next",e)}function s(e){N(o,r,a,c,s,"throw",e)}c(void 0)}))}}function S(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function C(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"===typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),r.forEach((function(t){S(e,t,n[t])}))}return e}function E(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}var k=s.Z.Title;var T=3e3;function _(){var e=(0,c.useState)([]),t=e[0],n=e[1],r=(0,c.useState)([]),s=r[0],d=r[1],y=(0,c.useState)(!1),g=y[0],b=y[1],x=(0,c.useState)(null),w=x[0],Z=x[1],N=(0,c.useState)(""),S=N[0],_=N[1],A=null,I=null,M=P(a().mark((function e(){var t;return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,(0,h.rQ)(h.WE,{auth:!0});case 3:t=e.sent,(0,v.Qr)(t)?n([]):n(t),e.next=10;break;case 7:e.prev=7,e.t0=e.catch(0),console.log("==== error",e.t0);case 10:case"end":return e.stop()}}),e,null,[[0,7]])})));(0,c.useEffect)((function(){return M(),I=setInterval((function(){M()}),h.NE),function(){clearTimeout(A),clearTimeout(I)}}),[]);var R=function(e){return e.reduce((function(e,t){var n=t.user.id;return e.some((function(e){return e.text===n}))||e.push({text:n,value:n}),e}),[]).sort((function(e,t){var n=e.text.toUpperCase(),r=t.text.toUpperCase();return n<r?-1:n>r?1:0}))}(t),z={selectedRowKeys:s,onChange:function(e){d(e)}},D=function(e){var r=t.findIndex((function(t){return t.id===e.id}));t.splice(r,1,e),n(E(t))},Q=function(){A=setTimeout((function(){Z(null),_("")}),T)},U=P(a().mark((function e(r){var c,i;return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return b(!0),e.next=3,(0,h.rQ)(h.hn,{auth:!0,method:"POST",data:{visible:r,idArray:s}});case 3:(c=e.sent).success&&"changed"===c.message?(Z((0,o.jsx)(l.Z,{})),Q(),i=E(t),s.map((function(e){var n=i.findIndex((function(t){return t.id===e})),a=C({},t[n],{visible:r});return i.splice(n,1,a),null})),n(i),d([])):(Z((0,o.jsx)(f.Z,{})),Q()),b(!1);case 6:case"end":return e.stop()}}),e)}))),F=[{title:"Time",dataIndex:"timestamp",key:"timestamp",className:"timestamp-col",defaultSortOrder:"descend",render:function(e){var t=new Date(e);return(0,m.Z)(t,"PP pp")},sorter:function(e,t){return new Date(e.timestamp).getTime()-new Date(t.timestamp).getTime()},width:90},{title:"User",dataIndex:"user",key:"user",className:"name-col",filters:R,onFilter:function(e,t){return t.user.id===e},sorter:function(e,t){return e.user.displayName.localeCompare(t.user.displayName)},sortDirections:["ascend","descend"],ellipsis:!0,render:function(e){var t=e.displayName;return(0,o.jsx)(O.Z,{user:e,children:t})},width:110},{title:"Message",dataIndex:"body",key:"body",className:"message-col",width:320,render:function(e){return(0,o.jsx)("div",{className:"message-contents",dangerouslySetInnerHTML:{__html:e}})}},{title:"",dataIndex:"hiddenAt",key:"hiddenAt",className:"toggle-col",filters:[{text:"Visible messages",value:!0},{text:"Hidden messages",value:!1}],onFilter:function(e,t){return t.visible===e},render:function(e,t){return(0,o.jsx)(j,{isVisible:!e,message:t,setMessage:D})},width:30}],G=p()({"bulk-editor":!0,active:s.length});return(0,o.jsxs)("div",{className:"chat-messages",children:[(0,o.jsx)(k,{children:"Chat Messages"}),(0,o.jsx)("p",{children:"Manage the messages from viewers that show up on your stream."}),(0,o.jsxs)("div",{className:G,children:[(0,o.jsx)("span",{className:"label",children:"Check multiple messages to change their visibility to: "}),(0,o.jsx)(i.Z,{type:"primary",size:"small",shape:"round",className:"button",loading:"show"===S&&g,icon:"show"===S&&w,disabled:!s.length||S&&"show"!==S,onClick:function(){_("show"),U(!0)},children:"Show"}),(0,o.jsx)(i.Z,{type:"primary",size:"small",shape:"round",className:"button",loading:"hide"===S&&g,icon:"hide"===S&&w,disabled:!s.length||S&&"hide"!==S,onClick:function(){_("hide"),U(!1)},children:"Hide"})]}),(0,o.jsx)(u.Z,{size:"small",className:"table-container",pagination:{defaultPageSize:100,showSizeChanger:!0},scroll:{y:540},rowClassName:function(e){return e.hiddenAt?"hidden":""},dataSource:t,columns:F,rowKey:function(e){return e.id},rowSelection:z})]})}}},function(e){e.O(0,[662,919,516,91,533,371,774,888,179],(function(){return t=9007,e(e.s=t);var t}));var t=e.O();_N_E=t}]); \ No newline at end of file
diff --git a/static/admin/_next/static/chunks/pages/chat/messages-dc2695d5bac28933.js b/static/admin/_next/static/chunks/pages/chat/messages-dc2695d5bac28933.js
new file mode 100644
index 000000000..44671f804
--- /dev/null
+++ b/static/admin/_next/static/chunks/pages/chat/messages-dc2695d5bac28933.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[145],{9007:function(e,t,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/chat/messages",function(){return n(40625)}])},40625:function(e,t,n){"use strict";n.r(t),n.d(t,{OUTCOME_TIMEOUT:function(){return _},default:function(){return E}});var r=n(28520),s=n.n(r),i=n(85893),a=n(67294),o=n(44068),c=n(71577),u=n(88829),l=n(89739),d=n(21640),f=n(94184),m=n.n(f),h=n(58091),p=n(58827),v=n(2766),g=n(56266),y=n(99611),b=n(90420);function w(e,t,n,r,s,i,a){try{var o=e[i](a),c=o.value}catch(u){return void n(u)}o.done?t(c):Promise.resolve(c).then(r,s)}function x(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function j(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"===typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),r.forEach((function(t){x(e,t,n[t])}))}return e}function O(e){var t=e.isVisible,n=e.message,r=e.setMessage;if(!n||(0,v.Qr)(n))return null;var o=null,u=(0,a.useState)(0),f=u[0],m=u[1],h=(n||{}).id;(0,a.useEffect)((function(){return function(){clearTimeout(o)}}));var x,O=(x=s().mark((function e(){var i;return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return clearTimeout(o),m(0),e.next=4,(0,p.rQ)(p.hn,{auth:!0,method:"POST",data:{visible:!t,idArray:[h]}});case 4:(i=e.sent).success&&"changed"===i.message?(r(j({},n,{visible:!t})),m(1)):(r(j({},n,{visible:t})),m(-1)),o=setTimeout((function(){m(0)}),_);case 7:case"end":return e.stop()}}),e)})),function(){var e=this,t=arguments;return new Promise((function(n,r){var s=x.apply(e,t);function i(e){w(s,n,r,i,a,"next",e)}function a(e){w(s,n,r,i,a,"throw",e)}i(void 0)}))}),N=(0,i.jsx)(l.Z,{style:{color:"transparent"}});f&&(N=f>0?(0,i.jsx)(l.Z,{style:{color:"var(--ant-success)"}}):(0,i.jsx)(d.Z,{style:{color:"var(--ant-warning)"}}));var S="Click to ".concat(t?"hide":"show"," this message");return(0,i.jsxs)("div",{className:"toggle-switch ".concat(t?"":"hidden"),children:[(0,i.jsx)("span",{className:"outcome-icon",children:N}),(0,i.jsx)(g.Z,{title:S,placement:"topRight",children:(0,i.jsx)(c.Z,{shape:"circle",size:"small",type:"text",icon:t?(0,i.jsx)(y.Z,{}):(0,i.jsx)(b.Z,{}),onClick:O})})]})}var N=n(31386);function S(e,t,n,r,s,i,a){try{var o=e[i](a),c=o.value}catch(u){return void n(u)}o.done?t(c):Promise.resolve(c).then(r,s)}function k(e){return function(){var t=this,n=arguments;return new Promise((function(r,s){var i=e.apply(t,n);function a(e){S(i,r,s,a,o,"next",e)}function o(e){S(i,r,s,a,o,"throw",e)}a(void 0)}))}}function P(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function T(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"===typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),r.forEach((function(t){P(e,t,n[t])}))}return e}function C(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}var Z=o.Z.Title;var _=3e3;function E(){var e=(0,a.useState)([]),t=e[0],n=e[1],r=(0,a.useState)([]),o=r[0],f=r[1],g=(0,a.useState)(!1),y=g[0],b=g[1],w=(0,a.useState)(null),x=w[0],j=w[1],S=(0,a.useState)(""),P=S[0],E=S[1],A=null,I=null,M=k(s().mark((function e(){var t;return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,(0,p.rQ)(p.WE,{auth:!0});case 3:t=e.sent,(0,v.Qr)(t)?n([]):n(t),e.next=10;break;case 7:e.prev=7,e.t0=e.catch(0),console.log("==== error",e.t0);case 10:case"end":return e.stop()}}),e,null,[[0,7]])})));(0,a.useEffect)((function(){return M(),I=setInterval((function(){M()}),p.NE),function(){clearTimeout(A),clearTimeout(I)}}),[]);var z=function(e){return e.reduce((function(e,t){var n=t.user.id;return e.some((function(e){return e.text===n}))||e.push({text:n,value:n}),e}),[]).sort((function(e,t){var n=e.text.toUpperCase(),r=t.text.toUpperCase();return n<r?-1:n>r?1:0}))}(t),D={selectedRowKeys:o,onChange:function(e){f(e)}},Q=function(e){var r=t.findIndex((function(t){return t.id===e.id}));t.splice(r,1,e),n(C(t))},U=function(){A=setTimeout((function(){j(null),E("")}),_)},H=k(s().mark((function e(r){var a,c;return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return b(!0),e.next=3,(0,p.rQ)(p.hn,{auth:!0,method:"POST",data:{visible:r,idArray:o}});case 3:(a=e.sent).success&&"changed"===a.message?(j((0,i.jsx)(l.Z,{})),U(),c=C(t),o.map((function(e){var n=c.findIndex((function(t){return t.id===e})),s=T({},t[n],{visible:r});return c.splice(n,1,s),null})),n(c),f([])):(j((0,i.jsx)(d.Z,{})),U()),b(!1);case 6:case"end":return e.stop()}}),e)}))),V=[{title:"Time",dataIndex:"timestamp",key:"timestamp",className:"timestamp-col",defaultSortOrder:"descend",render:function(e){var t=new Date(e);return(0,h.Z)(t,"PP pp")},sorter:function(e,t){return new Date(e.timestamp).getTime()-new Date(t.timestamp).getTime()},width:90},{title:"User",dataIndex:"user",key:"user",className:"name-col",filters:z,onFilter:function(e,t){return t.user.id===e},sorter:function(e,t){return e.user.displayName.localeCompare(t.user.displayName)},sortDirections:["ascend","descend"],ellipsis:!0,render:function(e){var t=e.displayName;return(0,i.jsx)(N.Z,{user:e,children:t})},width:110},{title:"Message",dataIndex:"body",key:"body",className:"message-col",width:320,render:function(e){return(0,i.jsx)("div",{className:"message-contents",dangerouslySetInnerHTML:{__html:e}})}},{title:"",dataIndex:"hiddenAt",key:"hiddenAt",className:"toggle-col",filters:[{text:"Visible messages",value:!0},{text:"Hidden messages",value:!1}],onFilter:function(e,t){return t.visible===e},render:function(e,t){return(0,i.jsx)(O,{isVisible:!e,message:t,setMessage:Q})},width:30}],F=m()({"bulk-editor":!0,active:o.length});return(0,i.jsxs)("div",{className:"chat-messages",children:[(0,i.jsx)(Z,{children:"Chat Messages"}),(0,i.jsx)("p",{children:"Manage the messages from viewers that show up on your stream."}),(0,i.jsxs)("div",{className:F,children:[(0,i.jsx)("span",{className:"label",children:"Check multiple messages to change their visibility to: "}),(0,i.jsx)(c.Z,{type:"primary",size:"small",shape:"round",className:"button",loading:"show"===P&&y,icon:"show"===P&&x,disabled:!o.length||P&&"show"!==P,onClick:function(){E("show"),H(!0)},children:"Show"}),(0,i.jsx)(c.Z,{type:"primary",size:"small",shape:"round",className:"button",loading:"hide"===P&&y,icon:"hide"===P&&x,disabled:!o.length||P&&"hide"!==P,onClick:function(){E("hide"),H(!1)},children:"Hide"})]}),(0,i.jsx)(u.Z,{size:"small",className:"table-container",pagination:{defaultPageSize:100,showSizeChanger:!0},scroll:{y:540},rowClassName:function(e){return e.hiddenAt?"hidden":""},dataSource:t,columns:V,rowKey:function(e){return e.id},rowSelection:D})]})}}},function(e){e.O(0,[662,829,91,533,464,774,888,179],(function(){return t=9007,e(e.s=t);var t}));var t=e.O();_N_E=t}]); \ No newline at end of file
diff --git a/static/admin/_next/static/chunks/pages/chat/users-3192dc5fd27791e0.js b/static/admin/_next/static/chunks/pages/chat/users-3192dc5fd27791e0.js
deleted file mode 100644
index 87ae30d73..000000000
--- a/static/admin/_next/static/chunks/pages/chat/users-3192dc5fd27791e0.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[255],{22494:function(e,n,t){(window.__NEXT_P=window.__NEXT_P||[]).push(["/chat/users",function(){return t(20536)}])},20536:function(e,n,t){"use strict";t.r(n),t.d(n,{FETCH_INTERVAL:function(){return b},default:function(){return j}});var r=t(28520),s=t.n(r),a=t(85893),c=t(67294),o=t(87961),i=t(35159),u=t(58827),d=t(20643),l=t(49919),f=t(85533),h=t(85584),m=t(66192),p=t(2766);function x(e){var n=e.data,t=[{title:"Display Name",key:"username",render:function(e){var n=e.user,t={connectedAt:e.connectedAt,messageCount:e.messageCount,userAgent:e.userAgent};return(0,a.jsx)(h.Z,{user:n,connectionInfo:t,children:(0,a.jsx)("span",{className:"display-name",children:n.displayName})})},sorter:function(e,n){return e.user.displayName-n.user.displayName},sortDirections:["descend","ascend"]},{title:"Messages sent",dataIndex:"messageCount",key:"messageCount",className:"number-col",sorter:function(e,n){return e.messageCount-n.messageCount},sortDirections:["descend","ascend"]},{title:"Connected Time",dataIndex:"connectedAt",key:"connectedAt",defaultSortOrder:"ascend",render:function(e){return(0,f.Z)(new Date(e))},sorter:function(e,n){return new Date(e.connectedAt).getTime()-new Date(n.connectedAt).getTime()},sortDirections:["descend","ascend"]},{title:"User Agent",dataIndex:"userAgent",key:"userAgent",render:function(e){return(0,p.AB)(e)}},{title:"Location",dataIndex:"geo",key:"geo",render:function(e){return e?"".concat(e.regionName,", ").concat(e.countryCode):"-"}},{title:"",key:"block",className:"actions-col",render:function(e,n){return(0,a.jsx)(m.Z,{user:n.user,isEnabled:!n.user.disabledAt})}}];return(0,a.jsx)(l.Z,{className:"table-container",pagination:{hideOnSinglePage:!0},columns:t,dataSource:n,size:"small",rowKey:"id"})}function v(e,n,t,r,s,a,c){try{var o=e[a](c),i=o.value}catch(u){return void t(u)}o.done?n(i):Promise.resolve(i).then(r,s)}var g=o.Z.TabPane,b=1e4;function j(){var e,n=((0,c.useContext)(i.aC)||{}).online,t=(0,c.useState)([]),r=t[0],l=t[1],f=(0,c.useState)([]),h=f[0],m=f[1],p=(0,c.useState)([]),j=p[0],w=p[1],y=(e=s().mark((function e(){var n,t,r;return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,(0,u.rQ)(u.qk);case 3:n=e.sent,l(n),e.next=10;break;case 7:e.prev=7,e.t0=e.catch(0),console.log("==== error",e.t0);case 10:return e.prev=10,e.next=13,(0,u.rQ)(u.Kp);case 13:t=e.sent,m(t),e.next=20;break;case 17:e.prev=17,e.t1=e.catch(10),console.log("==== error",e.t1);case 20:return e.prev=20,e.next=23,(0,u.rQ)(u.GC);case 23:r=e.sent,w(r),e.next=30;break;case 27:e.prev=27,e.t2=e.catch(20),console.error("error fetching moderators",e.t2);case 30:case"end":return e.stop()}}),e,null,[[0,7],[10,17],[20,27]])})),function(){var n=this,t=arguments;return new Promise((function(r,s){var a=e.apply(n,t);function c(e){v(a,r,s,c,o,"next",e)}function o(e){v(a,r,s,c,o,"throw",e)}c(void 0)}))});(0,c.useEffect)((function(){var e;return y(),e=setInterval(y,b),function(){clearInterval(e)}}),[n]);var k=n?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(x,{data:h}),(0,a.jsxs)("p",{className:"description",children:["Visit the"," ",(0,a.jsx)("a",{href:"https://owncast.online/docs/viewers/?source=admin",target:"_blank",rel:"noopener noreferrer",children:"documentation"})," ","to configure additional details about your viewers."]})]}):(0,a.jsx)("p",{className:"description",children:"When a stream is active and chat is enabled, connected chat clients will be displayed here."});return(0,a.jsxs)(o.Z,{defaultActiveKey:"1",children:[(0,a.jsx)(g,{tab:(0,a.jsxs)("span",{children:["Connected ",n?"(".concat(h.length,")"):"(offline)"]}),children:k},"1"),(0,a.jsx)(g,{tab:(0,a.jsxs)("span",{children:["Banned ",n?"(".concat(r.length,")"):null]}),children:(0,a.jsx)(d.Z,{data:r})},"2"),(0,a.jsx)(g,{tab:(0,a.jsxs)("span",{children:["Moderators ",n?"(".concat(j.length,")"):null]}),children:(0,a.jsx)(d.Z,{data:j})},"3")]})}}},function(e){e.O(0,[662,919,516,91,903,533,371,774,888,179],(function(){return n=22494,e(e.s=n);var n}));var n=e.O();_N_E=n}]); \ No newline at end of file
diff --git a/static/admin/_next/static/chunks/pages/chat/users-4426bd981b718014.js b/static/admin/_next/static/chunks/pages/chat/users-4426bd981b718014.js
new file mode 100644
index 000000000..2b94b019e
--- /dev/null
+++ b/static/admin/_next/static/chunks/pages/chat/users-4426bd981b718014.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[255],{22494:function(e,n,t){(window.__NEXT_P=window.__NEXT_P||[]).push(["/chat/users",function(){return t(20536)}])},20536:function(e,n,t){"use strict";t.r(n),t.d(n,{FETCH_INTERVAL:function(){return j},default:function(){return w}});var r=t(28520),s=t.n(r),a=t(85893),c=t(67294),o=t(87961),i=t(35159),u=t(58827),d=t(20643),l=t(88829),f=t(85533),h=t(31386),m=t(66192),p=t(2766);function x(e){var n=e.data,t=[{title:"Display Name",key:"username",render:function(e){var n=e.user,t={connectedAt:e.connectedAt,messageCount:e.messageCount,userAgent:e.userAgent};return(0,a.jsx)(h.Z,{user:n,connectionInfo:t,children:(0,a.jsx)("span",{className:"display-name",children:n.displayName})})},sorter:function(e,n){return e.user.displayName-n.user.displayName},sortDirections:["descend","ascend"]},{title:"Messages sent",dataIndex:"messageCount",key:"messageCount",className:"number-col",width:"12%",sorter:function(e,n){return e.messageCount-n.messageCount},sortDirections:["descend","ascend"],render:function(e){return(0,a.jsx)("div",{style:{textAlign:"center"},children:e})}},{title:"Connected Time",dataIndex:"connectedAt",key:"connectedAt",defaultSortOrder:"ascend",render:function(e){return(0,f.Z)(new Date(e))},sorter:function(e,n){return new Date(e.connectedAt).getTime()-new Date(n.connectedAt).getTime()},sortDirections:["descend","ascend"]},{title:"User Agent",dataIndex:"userAgent",key:"userAgent",render:function(e){return(0,p.AB)(e)}},{title:"Location",dataIndex:"geo",key:"geo",render:function(e){return e?"".concat(e.regionName,", ").concat(e.countryCode):"-"}},{title:"",key:"block",className:"actions-col",render:function(e,n){return(0,a.jsx)(m.Z,{user:n.user,isEnabled:!n.user.disabledAt})}}];return(0,a.jsx)(l.Z,{className:"table-container",pagination:{hideOnSinglePage:!0},columns:t,dataSource:n,size:"small",rowKey:"id"})}function v(e,n,t,r,s,a,c){try{var o=e[a](c),i=o.value}catch(u){return void t(u)}o.done?n(i):Promise.resolve(i).then(r,s)}var g=o.Z.TabPane,j=1e4;function w(){var e,n=((0,c.useContext)(i.aC)||{}).online,t=(0,c.useState)([]),r=t[0],l=t[1],f=(0,c.useState)([]),h=f[0],m=f[1],p=(0,c.useState)([]),w=p[0],y=p[1],b=(e=s().mark((function e(){var n,t,r;return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,(0,u.rQ)(u.qk);case 3:n=e.sent,l(n),e.next=10;break;case 7:e.prev=7,e.t0=e.catch(0),console.log("==== error",e.t0);case 10:return e.prev=10,e.next=13,(0,u.rQ)(u.Kp);case 13:t=e.sent,m(t),e.next=20;break;case 17:e.prev=17,e.t1=e.catch(10),console.log("==== error",e.t1);case 20:return e.prev=20,e.next=23,(0,u.rQ)(u.GC);case 23:r=e.sent,y(r),e.next=30;break;case 27:e.prev=27,e.t2=e.catch(20),console.error("error fetching moderators",e.t2);case 30:case"end":return e.stop()}}),e,null,[[0,7],[10,17],[20,27]])})),function(){var n=this,t=arguments;return new Promise((function(r,s){var a=e.apply(n,t);function c(e){v(a,r,s,c,o,"next",e)}function o(e){v(a,r,s,c,o,"throw",e)}c(void 0)}))});(0,c.useEffect)((function(){var e;return b(),e=setInterval(b,j),function(){clearInterval(e)}}),[n]);var k=n?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(x,{data:h}),(0,a.jsxs)("p",{className:"description",children:["Visit the"," ",(0,a.jsx)("a",{href:"https://owncast.online/docs/viewers/?source=admin",target:"_blank",rel:"noopener noreferrer",children:"documentation"})," ","to configure additional details about your viewers."]})]}):(0,a.jsx)("p",{className:"description",children:"When a stream is active and chat is enabled, connected chat clients will be displayed here."});return(0,a.jsxs)(o.Z,{defaultActiveKey:"1",children:[(0,a.jsx)(g,{tab:(0,a.jsxs)("span",{children:["Connected ",n?"(".concat(h.length,")"):"(offline)"]}),children:k},"1"),(0,a.jsx)(g,{tab:(0,a.jsxs)("span",{children:["Banned ",n?"(".concat(r.length,")"):null]}),children:(0,a.jsx)(d.Z,{data:r})},"2"),(0,a.jsx)(g,{tab:(0,a.jsxs)("span",{children:["Moderators ",n?"(".concat(w.length,")"):null]}),children:(0,a.jsx)(d.Z,{data:w})},"3")]})}}},function(e){e.O(0,[662,829,91,961,533,464,774,888,179],(function(){return n=22494,e(e.s=n);var n}));var n=e.O();_N_E=n}]); \ No newline at end of file
diff --git a/static/admin/_next/static/chunks/pages/config-chat-3f47c2e436acea43.js b/static/admin/_next/static/chunks/pages/config-chat-3f47c2e436acea43.js
new file mode 100644
index 000000000..57cb2bfc5
--- /dev/null
+++ b/static/admin/_next/static/chunks/pages/config-chat-3f47c2e436acea43.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[524],{94594:function(e,n,t){"use strict";t.d(n,{Z:function(){return N}});var a=t(87462),s=t(4942),c=t(67294),i=t(97685),l=t(91),r=t(94184),o=t.n(r),u=t(21770),d=t(15105),f=c.forwardRef((function(e,n){var t,a=e.prefixCls,r=void 0===a?"rc-switch":a,f=e.className,m=e.checked,h=e.defaultChecked,g=e.disabled,v=e.loadingIcon,p=e.checkedChildren,b=e.unCheckedChildren,C=e.onClick,x=e.onChange,N=e.onKeyDown,k=(0,l.Z)(e,["prefixCls","className","checked","defaultChecked","disabled","loadingIcon","checkedChildren","unCheckedChildren","onClick","onChange","onKeyDown"]),y=(0,u.Z)(!1,{value:m,defaultValue:h}),j=(0,i.Z)(y,2),w=j[0],Z=j[1];function O(e,n){var t=w;return g||(Z(t=e),null===x||void 0===x||x(t,n)),t}var S=o()(r,f,(t={},(0,s.Z)(t,"".concat(r,"-checked"),w),(0,s.Z)(t,"".concat(r,"-disabled"),g),t));return c.createElement("button",Object.assign({},k,{type:"button",role:"switch","aria-checked":w,disabled:g,className:S,ref:n,onKeyDown:function(e){e.which===d.Z.LEFT?O(!1,e):e.which===d.Z.RIGHT&&O(!0,e),null===N||void 0===N||N(e)},onClick:function(e){var n=O(!w,e);null===C||void 0===C||C(n,e)}}),v,c.createElement("span",{className:"".concat(r,"-inner")},w?p:b))}));f.displayName="Switch";var m=f,h=t(50888),g=t(97202),v=t(59844),p=t(97647),b=t(21687),C=function(e,n){var t={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&n.indexOf(a)<0&&(t[a]=e[a]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var s=0;for(a=Object.getOwnPropertySymbols(e);s<a.length;s++)n.indexOf(a[s])<0&&Object.prototype.propertyIsEnumerable.call(e,a[s])&&(t[a[s]]=e[a[s]])}return t},x=c.forwardRef((function(e,n){var t,i=e.prefixCls,l=e.size,r=e.loading,u=e.className,d=void 0===u?"":u,f=e.disabled,x=C(e,["prefixCls","size","loading","className","disabled"]);(0,b.Z)("checked"in x||!("value"in x),"Switch","`value` is not a valid prop, do you mean `checked`?");var N=c.useContext(v.E_),k=N.getPrefixCls,y=N.direction,j=c.useContext(p.Z),w=k("switch",i),Z=c.createElement("div",{className:"".concat(w,"-handle")},r&&c.createElement(h.Z,{className:"".concat(w,"-loading-icon")})),O=o()((t={},(0,s.Z)(t,"".concat(w,"-small"),"small"===(l||j)),(0,s.Z)(t,"".concat(w,"-loading"),r),(0,s.Z)(t,"".concat(w,"-rtl"),"rtl"===y),t),d);return c.createElement(g.Z,{insertExtraNode:!0},c.createElement(m,(0,a.Z)({},x,{prefixCls:w,className:O,disabled:f||r,ref:n,loadingIcon:Z})))}));x.__ANT_SWITCH=!0,x.displayName="Switch";var N=x},20550:function(e,n,t){"use strict";t.d(n,{Z:function(){return N}});var a=t(4942),s=t(87462),c=t(97685),i=t(67294),l=t(94184),r=t.n(l),o=t(98423),u=t(97937),d=t(59844),f=function(e,n){var t={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&n.indexOf(a)<0&&(t[a]=e[a]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var s=0;for(a=Object.getOwnPropertySymbols(e);s<a.length;s++)n.indexOf(a[s])<0&&Object.prototype.propertyIsEnumerable.call(e,a[s])&&(t[a[s]]=e[a[s]])}return t},m=function(e){var n,t=e.prefixCls,c=e.className,l=e.checked,o=e.onChange,u=e.onClick,m=f(e,["prefixCls","className","checked","onChange","onClick"]),h=(0,i.useContext(d.E_).getPrefixCls)("tag",t),g=r()(h,(n={},(0,a.Z)(n,"".concat(h,"-checkable"),!0),(0,a.Z)(n,"".concat(h,"-checkable-checked"),l),n),c);return i.createElement("span",(0,s.Z)({},m,{className:g,onClick:function(e){null===o||void 0===o||o(!l),null===u||void 0===u||u(e)}}))},h=t(98787),g=t(97202),v=function(e,n){var t={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&n.indexOf(a)<0&&(t[a]=e[a]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var s=0;for(a=Object.getOwnPropertySymbols(e);s<a.length;s++)n.indexOf(a[s])<0&&Object.prototype.propertyIsEnumerable.call(e,a[s])&&(t[a[s]]=e[a[s]])}return t},p=new RegExp("^(".concat(h.Y.join("|"),")(-inverse)?$")),b=new RegExp("^(".concat(h.E.join("|"),")$")),C=function(e,n){var t,l=e.prefixCls,f=e.className,m=e.style,h=e.children,C=e.icon,x=e.color,N=e.onClose,k=e.closeIcon,y=e.closable,j=void 0!==y&&y,w=v(e,["prefixCls","className","style","children","icon","color","onClose","closeIcon","closable"]),Z=i.useContext(d.E_),O=Z.getPrefixCls,S=Z.direction,E=i.useState(!0),P=(0,c.Z)(E,2),U=P[0],I=P[1];i.useEffect((function(){"visible"in w&&I(w.visible)}),[w.visible]);var _=function(){return!!x&&(p.test(x)||b.test(x))},T=(0,s.Z)({backgroundColor:x&&!_()?x:void 0},m),D=_(),M=O("tag",l),A=r()(M,(t={},(0,a.Z)(t,"".concat(M,"-").concat(x),D),(0,a.Z)(t,"".concat(M,"-has-color"),x&&!D),(0,a.Z)(t,"".concat(M,"-hidden"),!U),(0,a.Z)(t,"".concat(M,"-rtl"),"rtl"===S),t),f),F=function(e){e.stopPropagation(),null===N||void 0===N||N(e),e.defaultPrevented||"visible"in w||I(!1)},R="onClick"in w||h&&"a"===h.type,z=(0,o.Z)(w,["visible"]),L=C||null,J=L?i.createElement(i.Fragment,null,L,i.createElement("span",null,h)):h,K=i.createElement("span",(0,s.Z)({},z,{ref:n,className:A,style:T}),J,j?k?i.createElement("span",{className:"".concat(M,"-close-icon"),onClick:F},k):i.createElement(u.Z,{className:"".concat(M,"-close-icon"),onClick:F}):null);return R?i.createElement(g.Z,null,K):K},x=i.forwardRef(C);x.displayName="Tag",x.CheckableTag=m;var N=x},44716:function(e,n,t){(window.__NEXT_P=window.__NEXT_P||[]).push(["/config-chat",function(){return t(90610)}])},10063:function(e,n,t){"use strict";t.d(n,{Q:function(){return u},Z:function(){return d}});var a=t(85893),s=t(67294),c=t(44068),i=t(20550),l=t(48419),r=t(78464),o=c.Z.Title,u="#5a67d8";function d(e){var n=(0,s.useState)(""),t=n[0],c=n[1],d=e.title,f=e.description,m=e.placeholder,h=e.maxLength,g=e.values,v=e.handleDeleteIndex,p=e.handleCreateString,b=e.submitStatus,C=e.continuousStatusMessage;return(0,a.jsxs)("div",{className:"edit-string-array-container",children:[(0,a.jsx)(o,{level:3,className:"section-title",children:d}),(0,a.jsx)("p",{className:"description",children:f}),(0,a.jsx)("div",{className:"edit-current-strings",children:null===g||void 0===g?void 0:g.map((function(e,n){return(0,a.jsx)(i.Z,{closable:!0,onClose:function(){v(n)},color:u,children:e},"tag-".concat(e,"-").concat(n))}))}),C&&(0,a.jsx)("div",{className:"continuous-status-section",children:(0,a.jsx)(r.Z,{status:C})}),(0,a.jsx)("div",{className:"add-new-string-section",children:(0,a.jsx)(l.ZP,{fieldName:"string-input",value:t,onChange:function(e){var n=e.value;c(n)},onPressEnter:function(){var e=t.trim();p(e),c("")},maxLength:h,placeholder:m,status:b})})]})}d.defaultProps={maxLength:50,description:null,submitStatus:null,continuousStatusMessage:null}},15976:function(e,n,t){"use strict";t.d(n,{Z:function(){return m}});var a=t(28520),s=t.n(a),c=t(85893),i=t(67294),l=t(94594),r=t(83200),o=t(78464),u=t(25964),d=t(35159);function f(e,n,t,a,s,c,i){try{var l=e[c](i),r=l.value}catch(o){return void t(o)}l.done?n(r):Promise.resolve(r).then(a,s)}function m(e){var n,t=(0,i.useState)(null),a=t[0],m=t[1],h=null,g=((0,i.useContext)(d.aC)||{}).setFieldInConfigState,v=e.apiPath,p=e.checked,b=e.reversed,C=void 0!==b&&b,x=e.configPath,N=void 0===x?"":x,k=e.disabled,y=void 0!==k&&k,j=e.fieldName,w=e.label,Z=e.tip,O=e.useSubmit,S=e.onChange,E=function(){m(null),clearTimeout(h),h=null},P=(n=s().mark((function e(n){var t;return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!O){e.next=6;break}return m((0,r.kg)(r.Jk)),t=C?!n:n,e.next=5,(0,u.Si)({apiPath:v,data:{value:t},onSuccess:function(){g({fieldName:j,value:t,path:N}),m((0,r.kg)(r.zv))},onError:function(e){m((0,r.kg)(r.Un,"There was an error: ".concat(e)))}});case 5:h=setTimeout(E,u.sI);case 6:S&&S(n);case 7:case"end":return e.stop()}}),e)})),function(){var e=this,t=arguments;return new Promise((function(a,s){var c=n.apply(e,t);function i(e){f(c,a,s,i,l,"next",e)}function l(e){f(c,a,s,i,l,"throw",e)}i(void 0)}))}),U=null!==a&&a.type===r.Jk;return(0,c.jsxs)("div",{className:"formfield-container toggleswitch-container",children:[w&&(0,c.jsx)("div",{className:"label-side",children:(0,c.jsx)("span",{className:"formfield-label",children:w})}),(0,c.jsxs)("div",{className:"input-side",children:[(0,c.jsxs)("div",{className:"input-group",children:[(0,c.jsx)(l.Z,{className:"switch field-".concat(j),loading:U,onChange:P,defaultChecked:p,checked:p,checkedChildren:"ON",unCheckedChildren:"OFF",disabled:y}),(0,c.jsx)(o.Z,{status:a})]}),(0,c.jsx)("p",{className:"field-tip",children:Z})]})]})}m.defaultProps={apiPath:"",checked:!1,reversed:!1,configPath:"",disabled:!1,label:"",tip:"",useSubmit:!1,onChange:null}},90610:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return g}});var a=t(85893),s=t(44068),c=t(67294),i=t(48419),l=t(50197),r=t(15976),o=t(10063),u=t(83200),d=t(25964),f=t(35159);function m(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function h(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},a=Object.keys(t);"function"===typeof Object.getOwnPropertySymbols&&(a=a.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),a.forEach((function(n){m(e,n,t[n])}))}return e}function g(){var e,n=function(){y(null)},t=function(){(0,d.Si)({apiPath:d.CJ,data:{value:C.forbiddenUsernames},onSuccess:function(){E({fieldName:"forbiddenUsernames",value:C.forbiddenUsernames}),y(u.zv),setTimeout(n,d.sI)},onError:function(e){y((0,u.kg)(u.Un,e)),setTimeout(n,d.sI)}})},g=function(){Z(null)},v=function(){(0,d.Si)({apiPath:d.cf,data:{value:C.suggestedUsernames},onSuccess:function(){E({fieldName:"suggestedUsernames",value:C.suggestedUsernames}),Z(u.zv),setTimeout(g,d.sI)},onError:function(e){y((0,u.kg)(u.Un,e)),setTimeout(g,d.sI)}})},p=s.Z.Title,b=(0,c.useState)(null),C=b[0],x=b[1],N=(0,c.useState)(null),k=N[0],y=N[1],j=(0,c.useState)(null),w=j[0],Z=j[1],O=(0,c.useContext)(f.aC)||{},S=O.serverConfig,E=O.setFieldInConfigState,P=S.chatDisabled,U=S.forbiddenUsernames,I=S.instanceDetails,_=S.suggestedUsernames,T=I.welcomeMessage,D=function(e){var n=e.fieldName,t=e.value;x(h({},C,m({},n,t)))};return(0,c.useEffect)((function(){x({chatDisabled:P,forbiddenUsernames:U,suggestedUsernames:_,welcomeMessage:T})}),[S]),C?(0,a.jsxs)("div",{className:"config-server-details-form",children:[(0,a.jsx)(p,{children:"Chat Settings"}),(0,a.jsxs)("div",{className:"form-module config-server-details-container",children:[(0,a.jsx)(r.Z,h({fieldName:"chatDisabled"},d.yj,{checked:!C.chatDisabled,reversed:!0,onChange:function(e){D({fieldName:"chatDisabled",value:!e})}})),(0,a.jsx)(l.ZP,h({fieldName:"welcomeMessage"},d.IX,{type:i.Sk,value:C.welcomeMessage,initialValue:T,onChange:D})),(0,a.jsx)("br",{}),(0,a.jsx)("br",{}),(0,a.jsx)(o.Z,{title:d.Dg.label,placeholder:d.Dg.placeholder,description:d.Dg.tip,values:C.forbiddenUsernames,handleDeleteIndex:function(e){C.forbiddenUsernames.splice(e,1),t()},handleCreateString:function(e){C.forbiddenUsernames.push(e),D({fieldName:"forbiddenUsernames",value:C.forbiddenUsernames}),t()},submitStatus:(0,u.kg)(k)}),(0,a.jsx)("br",{}),(0,a.jsx)("br",{}),(0,a.jsx)(o.Z,{title:d.AN.label,placeholder:d.AN.placeholder,description:d.AN.tip,values:C.suggestedUsernames,handleDeleteIndex:function(e){C.suggestedUsernames.splice(e,1),v()},handleCreateString:function(e){C.suggestedUsernames.push(e),D({fieldName:"suggestedUsernames",value:C.suggestedUsernames}),v()},submitStatus:(0,u.kg)(w),continuousStatusMessage:(e=C.suggestedUsernames.length,0===e?(0,u.kg)("success",d.AN.no_entries):e>0&&e<10?(0,u.kg)("warning",d.AN.min_not_reached):null)})]})]}):null}}},function(e){e.O(0,[774,888,179],(function(){return n=44716,e(e.s=n);var n}));var n=e.O();_N_E=n}]); \ No newline at end of file
diff --git a/static/admin/_next/static/chunks/pages/config-federation-ddff59205ab33383.js b/static/admin/_next/static/chunks/pages/config-federation-ddff59205ab33383.js
new file mode 100644
index 000000000..e5e5b5599
--- /dev/null
+++ b/static/admin/_next/static/chunks/pages/config-federation-ddff59205ab33383.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[457],{50291:function(e,n,t){(window.__NEXT_P=window.__NEXT_P||[]).push(["/config-federation",function(){return t(6898)}])},10063:function(e,n,t){"use strict";t.d(n,{Q:function(){return d},Z:function(){return u}});var a=t(85893),s=t(67294),i=t(44068),r=t(20550),l=t(48419),o=t(78464),c=i.Z.Title,d="#5a67d8";function u(e){var n=(0,s.useState)(""),t=n[0],i=n[1],u=e.title,h=e.description,f=e.placeholder,p=e.maxLength,m=e.values,v=e.handleDeleteIndex,g=e.handleCreateString,b=e.submitStatus,x=e.continuousStatusMessage;return(0,a.jsxs)("div",{className:"edit-string-array-container",children:[(0,a.jsx)(c,{level:3,className:"section-title",children:u}),(0,a.jsx)("p",{className:"description",children:h}),(0,a.jsx)("div",{className:"edit-current-strings",children:null===m||void 0===m?void 0:m.map((function(e,n){return(0,a.jsx)(r.Z,{closable:!0,onClose:function(){v(n)},color:d,children:e},"tag-".concat(e,"-").concat(n))}))}),x&&(0,a.jsx)("div",{className:"continuous-status-section",children:(0,a.jsx)(o.Z,{status:x})}),(0,a.jsx)("div",{className:"add-new-string-section",children:(0,a.jsx)(l.ZP,{fieldName:"string-input",value:t,onChange:function(e){var n=e.value;i(n)},onPressEnter:function(){var e=t.trim();g(e),i("")},maxLength:p,placeholder:f,status:b})})]})}u.defaultProps={maxLength:50,description:null,submitStatus:null,continuousStatusMessage:null}},15976:function(e,n,t){"use strict";t.d(n,{Z:function(){return f}});var a=t(28520),s=t.n(a),i=t(85893),r=t(67294),l=t(94594),o=t(83200),c=t(78464),d=t(25964),u=t(35159);function h(e,n,t,a,s,i,r){try{var l=e[i](r),o=l.value}catch(c){return void t(c)}l.done?n(o):Promise.resolve(o).then(a,s)}function f(e){var n,t=(0,r.useState)(null),a=t[0],f=t[1],p=null,m=((0,r.useContext)(u.aC)||{}).setFieldInConfigState,v=e.apiPath,g=e.checked,b=e.reversed,x=void 0!==b&&b,w=e.configPath,j=void 0===w?"":w,y=e.disabled,k=void 0!==y&&y,P=e.fieldName,N=e.label,S=e.tip,C=e.useSubmit,Z=e.onChange,E=function(){f(null),clearTimeout(p),p=null},T=(n=s().mark((function e(n){var t;return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!C){e.next=6;break}return f((0,o.kg)(o.Jk)),t=x?!n:n,e.next=5,(0,d.Si)({apiPath:v,data:{value:t},onSuccess:function(){m({fieldName:P,value:t,path:j}),f((0,o.kg)(o.zv))},onError:function(e){f((0,o.kg)(o.Un,"There was an error: ".concat(e)))}});case 5:p=setTimeout(E,d.sI);case 6:Z&&Z(n);case 7:case"end":return e.stop()}}),e)})),function(){var e=this,t=arguments;return new Promise((function(a,s){var i=n.apply(e,t);function r(e){h(i,a,s,r,l,"next",e)}function l(e){h(i,a,s,r,l,"throw",e)}r(void 0)}))}),O=null!==a&&a.type===o.Jk;return(0,i.jsxs)("div",{className:"formfield-container toggleswitch-container",children:[N&&(0,i.jsx)("div",{className:"label-side",children:(0,i.jsx)("span",{className:"formfield-label",children:N})}),(0,i.jsxs)("div",{className:"input-side",children:[(0,i.jsxs)("div",{className:"input-group",children:[(0,i.jsx)(l.Z,{className:"switch field-".concat(P),loading:O,onChange:T,defaultChecked:g,checked:g,checkedChildren:"ON",unCheckedChildren:"OFF",disabled:k}),(0,i.jsx)(c.Z,{status:a})]}),(0,i.jsx)("p",{className:"field-tip",children:S})]})]})}f.defaultProps={apiPath:"",checked:!1,reversed:!1,configPath:"",disabled:!1,label:"",tip:"",useSubmit:!1,onChange:null}},6898:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return y}});var a=t(85893),s=t(56516),i=t(71577),r=t(44068),l=t(25968),o=t(6226),c=t(67294),d=t(45697),u=t.n(d),h=t(48419),f=t(50197),p=t(15976),m=t(10063),v=t(25964),g=t(35159),b=t(83200);function x(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function w(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},a=Object.keys(t);"function"===typeof Object.getOwnPropertySymbols&&(a=a.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),a.forEach((function(n){x(e,n,t[n])}))}return e}function j(e){var n=e.cancelPressed,t=e.okPressed;return(0,a.jsxs)(s.Z,{width:"70%",title:"Enable Social Features",visible:!0,onCancel:n,footer:(0,a.jsxs)("div",{children:[(0,a.jsx)(i.Z,{onClick:n,children:"Do not enable"}),(0,a.jsx)(i.Z,{type:"primary",onClick:t,children:"Enable Social Features"})]}),children:[(0,a.jsx)(r.Z.Title,{level:3,children:"How do Owncast's social features work?"}),(0,a.jsxs)(r.Z.Paragraph,{children:["Owncast's social features are accomplished by having your server join The"," ",(0,a.jsx)("a",{href:"https://en.wikipedia.org/wiki/Fediverse",rel:"noopener noreferrer",target:"_blank",children:"Fediverse"}),", a decentralized, open, collection of independent servers, like yours."]}),"Please"," ",(0,a.jsx)("a",{href:"https://owncast.online/docs/social",rel:"noopener noreferrer",target:"_blank",children:"read more"})," ","about these features, the details behind them, and how they work.",(0,a.jsx)(r.Z.Paragraph,{}),(0,a.jsx)(r.Z.Title,{level:3,children:"What do you need to know?"}),(0,a.jsxs)("ul",{children:[(0,a.jsx)("li",{children:"These features are brand new. Given the variability of interfacing with the rest of the world, bugs are possible. Please report anything that you think isn't working quite right."}),(0,a.jsx)("li",{children:"You must always host your Owncast server with SSL using a https url."}),(0,a.jsx)("li",{children:"You should not change your server name URL or social username once people begin following you, as you will be seen as a completely different user on the Fediverse, and the old user will disappear."}),(0,a.jsxs)("li",{children:["Turning on ",(0,a.jsx)("i",{children:"Private mode"})," will allow you to manually approve each follower and limit the visibility of your posts to followers only."]})]}),(0,a.jsx)(r.Z.Title,{level:3,children:"Learn more about The Fediverse"}),(0,a.jsxs)(r.Z.Paragraph,{children:["If these concepts are new you should discover more about what this functionality has to offer. Visit"," ",(0,a.jsx)("a",{href:"https://owncast.online/docs/social",rel:"noopener noreferrer",target:"_blank",children:"our documentation"})," ","to be pointed at some resources that will help get you started on The Fediverse."]})]})}function y(){var e=function(){E(null)},n=function(){try{(0,v.Si)({apiPath:v.pE,data:{value:i.blockedDomains},onSuccess:function(){S({fieldName:"forbiddenUsernames",value:i.forbiddenUsernames}),E(b.zv),setTimeout(e,v.sI)},onError:function(n){E((0,b.kg)(b.Un,n)),setTimeout(e,v.sI)}})}catch(n){console.error(n),E(b.Un)}},t=r.Z.Title,s=(0,c.useState)(null),i=s[0],d=s[1],u=(0,c.useState)(!1),y=u[0],k=u[1],P=(0,c.useContext)(g.aC)||{},N=P.serverConfig,S=P.setFieldInConfigState,C=(0,c.useState)(null),Z=C[0],E=C[1],T=N.federation,O=N.yp,_=N.instanceDetails,U=T.enabled,F=T.isPrivate,D=T.username,L=T.goLiveMessage,I=T.showEngagement,R=T.blockedDomains,M=O.instanceUrl,q=_.nsfw,V=function(e){var n=e.fieldName,t=e.value;d(w({},i,x({},n,t)))};if((0,c.useEffect)((function(){d({enabled:U,isPrivate:F,username:D,goLiveMessage:L,showEngagement:I,blockedDomains:R,nsfw:q,instanceUrl:O.instanceUrl})}),[N,O]),!i)return null;var z=""!==M,K=M.startsWith("https://");return(0,a.jsxs)("div",{children:[(0,a.jsx)(t,{children:"Configure Social Features"}),(0,a.jsx)("p",{children:"Owncast provides the ability for people to follow and engage with your instance. It's a great way to promote alerting, sharing and engagement of your stream."}),(0,a.jsx)("p",{children:"Once enabled you'll alert your followers when you go live as well as gain the ability to compose custom posts to share any information you like."}),(0,a.jsx)("p",{children:(0,a.jsx)("a",{href:"https://owncast.online/docs/social",rel:"noopener noreferrer",target:"_blank",children:"Read more about the specifics of these social features."})}),(0,a.jsxs)(l.Z,{children:[(0,a.jsxs)(o.Z,{span:15,className:"form-module",style:{marginRight:"15px"},children:[(0,a.jsx)(p.Z,w({fieldName:"enabled",onChange:function(e){e?k(!0):d(w({},i,{enabled:!1}))}},v.Kl,{checked:i.enabled,disabled:!z||!K})),(0,a.jsx)(f.ZP,w({fieldName:"instanceUrl"},v.yi,{value:i.instanceUrl,initialValue:O.instanceUrl,type:h.xA,onChange:V,onSubmit:function(){var e=""!==i.instanceUrl,n=i.instanceUrl.startsWith("https://");e&&n||((0,v.Si)({apiPath:v.Kl.apiPath,data:{value:!1}}),d(w({},i,{enabled:!1})))}})),(0,a.jsx)(p.Z,w({fieldName:"isPrivate"},v.LC,{checked:i.isPrivate,disabled:!U})),(0,a.jsx)(p.Z,w({fieldName:"nsfw",useSubmit:!0},v.B_,{checked:i.nsfw,disabled:!z})),(0,a.jsx)(f.ZP,w({required:!0,fieldName:"username",type:h.Kx},v.Xc,{value:i.username,initialValue:D,onChange:V,disabled:!U})),(0,a.jsx)(f.ZP,w({fieldName:"goLiveMessage"},v.BF,{type:h.Sk,value:i.goLiveMessage,initialValue:L,onChange:V,disabled:!U})),(0,a.jsx)(p.Z,w({fieldName:"showEngagement"},v.FE,{checked:i.showEngagement,disabled:!U}))]}),(0,a.jsx)(o.Z,{span:8,className:"form-module",children:(0,a.jsx)(m.Z,{title:v.dR.label,placeholder:v.dR.placeholder,description:v.dR.tip,values:i.blockedDomains,handleDeleteIndex:function(e){i.blockedDomains.splice(e,1),n()},handleCreateString:function(e){var t;try{t=new URL(e).host}catch(a){t=e}i.blockedDomains.push(t),V({fieldName:"blockedDomains",value:i.blockedDomains}),n()},submitStatus:(0,b.kg)(Z)})})]}),y&&(0,a.jsx)(j,{cancelPressed:function(){k(!1),d(w({},i,{enabled:!1}))},okPressed:function(){k(!1),d(w({},i,{enabled:!0}))}})]})}j.propTypes={cancelPressed:u().func.isRequired,okPressed:u().func.isRequired}}},function(e){e.O(0,[674,774,888,179],(function(){return n=50291,e(e.s=n);var n}));var n=e.O();_N_E=n}]); \ No newline at end of file
diff --git a/static/admin/_next/static/chunks/pages/config-public-details-02c80e54bdb91852.js b/static/admin/_next/static/chunks/pages/config-public-details-02c80e54bdb91852.js
new file mode 100644
index 000000000..291f8d8c8
--- /dev/null
+++ b/static/admin/_next/static/chunks/pages/config-public-details-02c80e54bdb91852.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[721],{85344:function(e,n,t){(window.__NEXT_P=window.__NEXT_P||[]).push(["/config-public-details",function(){return t(99928)}])},10063:function(e,n,t){"use strict";t.d(n,{Q:function(){return u},Z:function(){return d}});var a=t(85893),r=t(67294),s=t(44068),i=t(20550),o=t(48419),c=t(78464),l=s.Z.Title,u="#5a67d8";function d(e){var n=(0,r.useState)(""),t=n[0],s=n[1],d=e.title,f=e.description,h=e.placeholder,m=e.maxLength,p=e.values,v=e.handleDeleteIndex,g=e.handleCreateString,x=e.submitStatus,j=e.continuousStatusMessage;return(0,a.jsxs)("div",{className:"edit-string-array-container",children:[(0,a.jsx)(l,{level:3,className:"section-title",children:d}),(0,a.jsx)("p",{className:"description",children:f}),(0,a.jsx)("div",{className:"edit-current-strings",children:null===p||void 0===p?void 0:p.map((function(e,n){return(0,a.jsx)(i.Z,{closable:!0,onClose:function(){v(n)},color:u,children:e},"tag-".concat(e,"-").concat(n))}))}),j&&(0,a.jsx)("div",{className:"continuous-status-section",children:(0,a.jsx)(c.Z,{status:j})}),(0,a.jsx)("div",{className:"add-new-string-section",children:(0,a.jsx)(o.ZP,{fieldName:"string-input",value:t,onChange:function(e){var n=e.value;s(n)},onPressEnter:function(){var e=t.trim();g(e),s("")},maxLength:m,placeholder:h,status:x})})]})}d.defaultProps={maxLength:50,description:null,submitStatus:null,continuousStatusMessage:null}},15976:function(e,n,t){"use strict";t.d(n,{Z:function(){return h}});var a=t(28520),r=t.n(a),s=t(85893),i=t(67294),o=t(94594),c=t(83200),l=t(78464),u=t(25964),d=t(35159);function f(e,n,t,a,r,s,i){try{var o=e[s](i),c=o.value}catch(l){return void t(l)}o.done?n(c):Promise.resolve(c).then(a,r)}function h(e){var n,t=(0,i.useState)(null),a=t[0],h=t[1],m=null,p=((0,i.useContext)(d.aC)||{}).setFieldInConfigState,v=e.apiPath,g=e.checked,x=e.reversed,j=void 0!==x&&x,y=e.configPath,w=void 0===y?"":y,N=e.disabled,b=void 0!==N&&N,S=e.fieldName,k=e.label,C=e.tip,P=e.useSubmit,T=e.onChange,Z=function(){h(null),clearTimeout(m),m=null},E=(n=r().mark((function e(n){var t;return r().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!P){e.next=6;break}return h((0,c.kg)(c.Jk)),t=j?!n:n,e.next=5,(0,u.Si)({apiPath:v,data:{value:t},onSuccess:function(){p({fieldName:S,value:t,path:w}),h((0,c.kg)(c.zv))},onError:function(e){h((0,c.kg)(c.Un,"There was an error: ".concat(e)))}});case 5:m=setTimeout(Z,u.sI);case 6:T&&T(n);case 7:case"end":return e.stop()}}),e)})),function(){var e=this,t=arguments;return new Promise((function(a,r){var s=n.apply(e,t);function i(e){f(s,a,r,i,o,"next",e)}function o(e){f(s,a,r,i,o,"throw",e)}i(void 0)}))}),_=null!==a&&a.type===c.Jk;return(0,s.jsxs)("div",{className:"formfield-container toggleswitch-container",children:[k&&(0,s.jsx)("div",{className:"label-side",children:(0,s.jsx)("span",{className:"formfield-label",children:k})}),(0,s.jsxs)("div",{className:"input-side",children:[(0,s.jsxs)("div",{className:"input-group",children:[(0,s.jsx)(o.Z,{className:"switch field-".concat(S),loading:_,onChange:E,defaultChecked:g,checked:g,checkedChildren:"ON",unCheckedChildren:"OFF",disabled:b}),(0,s.jsx)(l.Z,{status:a})]}),(0,s.jsx)("p",{className:"field-tip",children:C})]})]})}h.defaultProps={apiPath:"",checked:!1,reversed:!1,configPath:"",disabled:!1,label:"",tip:"",useSubmit:!1,onChange:null}},99928:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return q}});var a=t(85893),r=t(67294),s=t(44068),i=t(50197),o=t(35159),c=t(25964),l=t(15976),u=t(28520),d=t.n(u),f=t(77916),h=t(71577),m=t(50888),p=t(88484),v=t(78464),g=t(83200),x=t(58827);function j(e,n,t,a,r,s,i){try{var o=e[s](i),c=o.value}catch(l){return void t(l)}o.done?n(c):Promise.resolve(c).then(a,r)}var y=["image/svg+xml","image/png","image/jpeg","image/gif"];function w(){var e,n,t=(0,r.useState)(null),s=t[0],i=t[1],l=(0,r.useState)(!1),u=l[0],w=l[1],N=(0,r.useState)(0),b=N[0],S=N[1],k=(0,r.useContext)(o.aC)||{},C=k.setFieldInConfigState,P=k.serverConfig,T=null===P||void 0===P||null===(e=P.instanceDetails)||void 0===e?void 0:e.logo,Z=(0,r.useState)(null),E=Z[0],_=Z[1],O=null,I=c.ZQ.apiPath,L=c.ZQ.tip,U=function(){_(null),clearTimeout(O),O=null},D=(n=d().mark((function e(){return d().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(s===T){e.next=5;break}return _((0,g.kg)(g.Jk)),e.next=4,(0,c.Si)({apiPath:I,data:{value:s},onSuccess:function(){C({fieldName:"logo",value:s,path:""}),_((0,g.kg)(g.zv)),w(!1),S(Math.floor(100*Math.random()))},onError:function(e){_((0,g.kg)(g.Un,"There was an error: ".concat(e))),w(!1)}});case 4:O=setTimeout(U,c.sI);case 5:case"end":return e.stop()}}),e)})),function(){var e=this,t=arguments;return new Promise((function(a,r){var s=n.apply(e,t);function i(e){j(s,a,r,i,o,"next",e)}function o(e){j(s,a,r,i,o,"throw",e)}i(void 0)}))}),A="".concat(x.WB,"logo?random=").concat(b);return(0,a.jsxs)("div",{className:"formfield-container logo-upload-container",children:[(0,a.jsx)("div",{className:"label-side",children:(0,a.jsx)("span",{className:"formfield-label",children:"Logo"})}),(0,a.jsxs)("div",{className:"input-side",children:[(0,a.jsxs)("div",{className:"input-group",children:[(0,a.jsx)("img",{src:A,alt:"avatar",className:"logo-preview"}),(0,a.jsx)(f.Z,{name:"logo",listType:"picture",className:"avatar-uploader",showUploadList:!1,accept:y.join(","),beforeUpload:function(e){return w(!0),new Promise((function(n,t){if(!y.includes(e.type)){var a="File type is not supported: ".concat(e.type);return _((0,g.kg)(g.Un,"There was an error: ".concat(a))),O=setTimeout(U,c.sI),w(!1),t()}!function(e,n){var t=new FileReader;t.addEventListener("load",(function(){return n(t.result)})),t.readAsDataURL(e)}(e,(function(e){return i(e),n()}))}))},customRequest:D,disabled:u,children:u?(0,a.jsx)(m.Z,{style:{color:"white"}}):(0,a.jsx)(h.Z,{icon:(0,a.jsx)(p.Z,{})})})]}),(0,a.jsx)(v.Z,{status:E}),(0,a.jsx)("p",{className:"field-tip",children:L})]})]})}function N(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function b(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},a=Object.keys(t);"function"===typeof Object.getOwnPropertySymbols&&(a=a.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),a.forEach((function(n){N(e,n,t[n])}))}return e}var S=s.Z.Title;function k(){var e=(0,r.useState)(null),n=e[0],t=e[1],s=((0,r.useContext)(o.aC)||{}).serverConfig,u=s.instanceDetails,d=s.yp,f=d.instanceUrl;if((0,r.useEffect)((function(){t(b({},u,d))}),[u,d]),!n)return null;var h=function(e){var a=e.fieldName,r=e.value;t(b({},n,N({},a,r)))},m=""!==f;return(0,a.jsxs)("div",{className:"edit-general-settings",children:[(0,a.jsx)(S,{level:3,className:"section-title",children:"Configure Instance Details"}),(0,a.jsx)("br",{}),(0,a.jsx)(i.ZP,b({fieldName:"name"},c.RE,{value:n.name,initialValue:u.name,onChange:h})),(0,a.jsx)(i.ZP,b({fieldName:"instanceUrl"},c.cj,{value:n.instanceUrl,initialValue:d.instanceUrl,type:i.xA,onChange:h,onSubmit:function(){""===n.instanceUrl&&!0===d.enabled&&(0,c.Si)({apiPath:c.AP,data:{value:!1}})}})),(0,a.jsx)(i.ZP,b({fieldName:"summary"},c.rs,{type:i.Sk,value:n.summary,initialValue:u.summary,onChange:h})),(0,a.jsx)(w,{}),(0,a.jsx)("br",{}),(0,a.jsxs)("p",{className:"description",children:["Increase your audience by appearing in the"," ",(0,a.jsx)("a",{href:"https://directory.owncast.online",target:"_blank",rel:"noreferrer",children:(0,a.jsx)("strong",{children:"Owncast Directory"})}),". This is an external service run by the Owncast project."," ",(0,a.jsx)("a",{href:"https://owncast.online/docs/directory/?source=admin",target:"_blank",rel:"noopener noreferrer",children:"Learn more"}),"."]}),!d.instanceUrl&&(0,a.jsxs)("p",{className:"description",children:["You must set your ",(0,a.jsx)("strong",{children:"Server URL"})," above to enable the directory."]}),(0,a.jsxs)("div",{className:"config-yp-container",children:[(0,a.jsx)(l.Z,b({fieldName:"enabled",useSubmit:!0},c.P,{checked:n.enabled,disabled:!m})),(0,a.jsx)(l.Z,b({fieldName:"nsfw",useSubmit:!0},c.EY,{checked:n.nsfw,disabled:!m}))]})]})}var C=t(20550),P=t(48419),T=t(10063);function Z(e,n,t,a,r,s,i){try{var o=e[s](i),c=o.value}catch(l){return void t(l)}o.done?n(c):Promise.resolve(c).then(a,r)}function E(e){return function(e){if(Array.isArray(e)){for(var n=0,t=new Array(e.length);n<e.length;n++)t[n]=e[n];return t}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}var _=s.Z.Title;function O(){var e=(0,r.useState)(""),n=e[0],t=e[1],s=(0,r.useState)(null),i=s[0],l=s[1],u=(0,r.useContext)(o.aC)||{},f=u.serverConfig,h=u.setFieldInConfigState,m=f.instanceDetails.tags,p=void 0===m?[]:m,v=c.y_.apiPath,x=c.y_.maxLength,j=c.y_.placeholder,y=c.y_.configPath,w=null;(0,r.useEffect)((function(){return function(){clearTimeout(w)}}),[]);var N,b=function(){l(null),w=null,clearTimeout(w)},S=(N=d().mark((function e(n){return d().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return l((0,g.kg)(g.Jk)),e.next=3,(0,c.Si)({apiPath:v,data:{value:n},onSuccess:function(){h({fieldName:"tags",value:n,path:y}),l((0,g.kg)(g.zv,"Tags updated.")),t(""),w=setTimeout(b,c.sI)},onError:function(e){l((0,g.kg)(g.Un,e)),w=setTimeout(b,c.sI)}});case 3:case"end":return e.stop()}}),e)})),function(){var e=this,n=arguments;return new Promise((function(t,a){var r=N.apply(e,n);function s(e){Z(r,t,a,s,i,"next",e)}function i(e){Z(r,t,a,s,i,"throw",e)}s(void 0)}))});return(0,a.jsxs)("div",{className:"tag-editor-container",children:[(0,a.jsx)(_,{level:3,className:"section-title",children:"Add Tags"}),(0,a.jsx)("p",{className:"description",children:"This is a great way to categorize your Owncast server on the Directory!"}),(0,a.jsx)("div",{className:"edit-current-strings",children:p.map((function(e,n){return(0,a.jsx)(C.Z,{closable:!0,onClose:function(){!function(e){b();var n=E(p);n.splice(e,1),S(n)}(n)},color:T.Q,children:e},"tag-".concat(e,"-").concat(n))}))}),(0,a.jsx)("div",{className:"add-new-string-section",children:(0,a.jsx)(P.ZP,{fieldName:"tag-input",value:n,className:"new-tag-input",onChange:function(e){var n=e.value;i||l(null),t(n)},onPressEnter:function(){b();var e=n.trim();if(""!==e)if(p.some((function(n){return n.toLowerCase()===e.toLowerCase()})))l((0,g.kg)(g.dG,"This tag is already used!"));else{var t=E(p).concat([e]);S(t)}else l((0,g.kg)(g.dG,"Please enter a tag"))},maxLength:x,placeholder:j,status:i})})]})}var I=t(91017),L=t(5152),U=t(9980),D=t.n(U);t(56780);function A(e,n,t,a,r,s,i){try{var o=e[s](i),c=o.value}catch(l){return void t(l)}o.done?n(c):Promise.resolve(c).then(a,r)}function F(e){return function(){var n=this,t=arguments;return new Promise((function(a,r){var s=e.apply(n,t);function i(e){A(s,a,r,i,o,"next",e)}function o(e){A(s,a,r,i,o,"throw",e)}i(void 0)}))}}var z=new(D()),J=(0,L.default)((function(){return t.e(912).then(t.bind(t,1912))}),{loadableGenerated:{webpack:function(){return[1912]},modules:["../components/config/edit-page-content.tsx -> react-markdown-editor-lite"]},ssr:!1}),M=s.Z.Title;function R(){var e=(0,r.useState)(""),n=e[0],t=e[1],s=(0,r.useState)(null),i=s[0],l=s[1],u=(0,r.useState)(!1),f=u[0],m=u[1],p=(0,r.useContext)(o.aC)||{},x=p.serverConfig,j=p.setFieldInConfigState,y=x.instanceDetails,w=y.extraPageContent,N=null,b=function(){l(null),m(!1),clearTimeout(N),N=null};function S(){return(S=F(d().mark((function e(){return d().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return l((0,g.kg)(g.Jk)),e.next=3,(0,c.Si)({apiPath:c.AA,data:{value:n},onSuccess:function(e){j({fieldName:"extraPageContent",value:n,path:"instanceDetails"}),l((0,g.kg)(g.zv,e))},onError:function(e){l((0,g.kg)(g.Un,e))}});case 3:N=setTimeout(b,c.sI);case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}return(0,r.useEffect)((function(){t(w)}),[y]),(0,a.jsxs)("div",{className:"edit-page-content",children:[(0,a.jsx)(M,{level:3,className:"section-title",children:"Custom Page Content"}),(0,a.jsxs)("p",{className:"description",children:["Edit the content of your page by using simple"," ",(0,a.jsx)("a",{href:"https://www.markdownguide.org/basic-syntax/",target:"_blank",rel:"noopener noreferrer",children:"Markdown syntax"}),"."]}),(0,a.jsx)(J,{style:{height:"30em"},value:n,renderHTML:function(e){return z.render(e)},onChange:function(e){var n=e.text;t(n),n===w||f?n===w&&f&&m(!1):m(!0)},config:{htmlClass:"markdown-editor-preview-pane",markdownClass:"markdown-editor-pane"}}),(0,a.jsx)("br",{}),(0,a.jsxs)("div",{className:"page-content-actions",children:[f&&(0,a.jsx)(h.Z,{type:"primary",onClick:function(){return S.apply(this,arguments)},children:"Save"}),(0,a.jsx)(v.Z,{status:i})]})]})}function G(e,n,t,a,r,s,i){try{var o=e[s](i),c=o.value}catch(l){return void t(l)}o.done?n(c):Promise.resolve(c).then(a,r)}function Q(e){return function(){var n=this,t=arguments;return new Promise((function(a,r){var s=e.apply(n,t);function i(e){G(s,a,r,i,o,"next",e)}function o(e){G(s,a,r,i,o,"throw",e)}i(void 0)}))}}var V=s.Z.Title;function X(){var e=(0,r.useState)(""),n=e[0],t=e[1],s=(0,r.useState)(null),i=s[0],l=s[1],u=(0,r.useState)(!1),f=u[0],m=u[1],p=(0,r.useContext)(o.aC)||{},x=p.serverConfig,j=p.setFieldInConfigState,y=x.instanceDetails,w=y.customStyles,N=null,b=function(){l(null),m(!1),clearTimeout(N),N=null};function S(){return(S=Q(d().mark((function e(){return d().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return l((0,g.kg)(g.Jk)),e.next=3,(0,c.Si)({apiPath:c.d$,data:{value:n},onSuccess:function(e){j({fieldName:"customStyles",value:n,path:"instanceDetails"}),l((0,g.kg)(g.zv,e))},onError:function(e){l((0,g.kg)(g.Un,e))}});case 3:N=setTimeout(b,c.sI);case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}return(0,r.useEffect)((function(){t(w)}),[y]),(0,a.jsxs)("div",{className:"edit-custom-css",children:[(0,a.jsx)(V,{level:3,className:"section-title",children:"Customize your page styling with CSS"}),(0,a.jsxs)("p",{className:"description",children:["Customize the look and feel of your Owncast instance by overriding the CSS styles of various components on the page. Refer to the"," ",(0,a.jsx)("a",{href:"https://owncast.online/docs/website/",rel:"noopener noreferrer",target:"_blank",children:"CSS & Components guide"}),"."]}),(0,a.jsx)("p",{className:"description",children:"Please input plain CSS text, as this will be directly injected onto your page during load."}),(0,a.jsx)(P.ZP,{fieldName:"customStyles",type:P.Sk,value:n,maxLength:null,onChange:function(e){var n=e.value;t(n),n===w||f?n===w&&f&&m(!1):m(!0)},placeholder:"/* Enter custom CSS here */"}),(0,a.jsx)("br",{}),(0,a.jsxs)("div",{className:"page-content-actions",children:[f&&(0,a.jsx)(h.Z,{type:"primary",onClick:function(){return S.apply(this,arguments)},children:"Save"}),(0,a.jsx)(v.Z,{status:i})]})]})}var Y=s.Z.Title;function q(){return(0,a.jsxs)("div",{className:"config-public-details-page",children:[(0,a.jsx)(Y,{children:"General Settings"}),(0,a.jsxs)("p",{className:"description",children:["The following are displayed on your site to describe your stream and its content."," ",(0,a.jsx)("a",{href:"https://owncast.online/docs/website/?source=admin",target:"_blank",rel:"noopener noreferrer",children:"Learn more."})]}),(0,a.jsxs)("div",{className:"top-container",children:[(0,a.jsx)("div",{className:"form-module instance-details-container",children:(0,a.jsx)(k,{})}),(0,a.jsxs)("div",{className:"form-module social-items-container ",children:[(0,a.jsx)("div",{className:"form-module tags-module",children:(0,a.jsx)(O,{})}),(0,a.jsx)("div",{className:"form-module social-handles-container",children:(0,a.jsx)(I.Z,{})})]})]}),(0,a.jsx)("div",{className:"form-module page-content-module",children:(0,a.jsx)(R,{})}),(0,a.jsx)("div",{className:"form-module page-content-module",children:(0,a.jsx)(X,{})})]})}}},function(e){e.O(0,[774,829,910,589,17,888,179],(function(){return n=85344,e(e.s=n);var n}));var n=e.O();_N_E=n}]); \ No newline at end of file
diff --git a/static/admin/_next/static/chunks/pages/config-server-details-40fd225da49d9b45.js b/static/admin/_next/static/chunks/pages/config-server-details-40fd225da49d9b45.js
new file mode 100644
index 000000000..9ea0c64f3
--- /dev/null
+++ b/static/admin/_next/static/chunks/pages/config-server-details-40fd225da49d9b45.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[98],{40806:function(e,t,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/config-server-details",function(){return n(61977)}])},61977:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return K}});var r=n(85893),i=n(67294),a=n(44068),s=n(54907),o=n(56266),c=n(71577),l=n(1413),u={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M758.2 839.1C851.8 765.9 912 651.9 912 523.9 912 303 733.5 124.3 512.6 124 291.4 123.7 112 302.8 112 523.9c0 125.2 57.5 236.9 147.6 310.2 3.5 2.8 8.6 2.2 11.4-1.3l39.4-50.5c2.7-3.4 2.1-8.3-1.2-11.1-8.1-6.6-15.9-13.7-23.4-21.2a318.64 318.64 0 01-68.6-101.7C200.4 609 192 567.1 192 523.9s8.4-85.1 25.1-124.5c16.1-38.1 39.2-72.3 68.6-101.7 29.4-29.4 63.6-52.5 101.7-68.6C426.9 212.4 468.8 204 512 204s85.1 8.4 124.5 25.1c38.1 16.1 72.3 39.2 101.7 68.6 29.4 29.4 52.5 63.6 68.6 101.7 16.7 39.4 25.1 81.3 25.1 124.5s-8.4 85.1-25.1 124.5a318.64 318.64 0 01-68.6 101.7c-9.3 9.3-19.1 18-29.3 26L668.2 724a8 8 0 00-14.1 3l-39.6 162.2c-1.2 5 2.6 9.9 7.7 9.9l167 .8c6.7 0 10.5-7.7 6.3-12.9l-37.3-47.9z"}}]},name:"redo",theme:"outlined"},f=n(42135),d=function(e,t){return i.createElement(f.Z,(0,l.Z)((0,l.Z)({},e),{},{ref:t,icon:u}))};d.displayName="RedoOutlined";var m=i.forwardRef(d),h=n(57132),v=n(48419),y=n(50197),p=n(35159),g=n(57553),x=n(25964),w=n(28520),j=n.n(w),b=n(75443),k=n(58827),P=n(83200),N=n(78464);function C(e,t,n,r,i,a,s){try{var o=e[a](s),c=o.value}catch(l){return void n(l)}o.done?t(c):Promise.resolve(c).then(r,i)}function S(){var e,t=(0,i.useContext)(g.k).setMessage,n=(0,i.useState)(null),s=n[0],o=n[1],l=null,u=function(){o(null),l=null,clearTimeout(l)},f=(e=j().mark((function e(){return j().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o((0,P.kg)(P.Jk)),e.prev=1,e.next=4,(0,k.rQ)(k.UJ);case 4:t(""),o((0,P.kg)(P.zv)),l=setTimeout(u,x.sI),e.next=13;break;case 9:e.prev=9,e.t0=e.catch(1),o((0,P.kg)(P.Un,"There was an error: ".concat(e.t0))),l=setTimeout(u,x.sI);case 13:case"end":return e.stop()}}),e,null,[[1,9]])})),function(){var t=this,n=arguments;return new Promise((function(r,i){var a=e.apply(t,n);function s(e){C(a,r,i,s,o,"next",e)}function o(e){C(a,r,i,s,o,"throw",e)}s(void 0)}))});return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(a.Z.Title,{level:3,className:"section-title",children:"Reset Directory"}),(0,r.jsx)("p",{className:"description",children:'If you are experiencing issues with your listing on the Owncast Directory and were asked to "reset" your connection to the service, you can do that here. The next time you go live it will try and re-register your server with the directory from scratch.'}),(0,r.jsx)(b.Z,{placement:"topLeft",title:"Are you sure you want to reset your connection to the Owncast directory?",onConfirm:f,okText:"Yes",cancelText:"No",children:(0,r.jsx)(c.Z,{type:"primary",children:"Reset Directory Connection"})}),(0,r.jsx)("p",{children:(0,r.jsx)(N.Z,{status:s})})]})}function Z(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function T(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"===typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),r.forEach((function(t){Z(e,t,n[t])}))}return e}var O=s.Z.Panel;function _(){var e=(0,i.useState)(null),t=e[0],n=e[1],a=(0,i.useContext)(p.aC),l=(0,i.useContext)(g.k).setMessage,u=(a||{}).serverConfig,f=u.streamKey,d=u.ffmpegPath,w=u.rtmpServerPort,j=u.webServerPort,b=u.yp,k=(0,i.useState)(!1),P=k[0],N=k[1],C=3e3;if((0,i.useEffect)((function(){n({streamKey:f,ffmpegPath:d,rtmpServerPort:w,webServerPort:j})}),[u]),!t)return null;var _=function(e){var r=e.fieldName,i=e.value;n(T({},t,Z({},r,i)))},E=function(){l("Updating server settings requires a restart of your Owncast server.")};return(0,r.jsxs)("div",{className:"edit-server-details-container",children:[(0,r.jsx)("div",{className:"field-container field-streamkey-container",children:(0,r.jsxs)("div",{className:"left-side",children:[(0,r.jsx)(y.ZP,T({fieldName:"streamKey"},x.Ri,{value:t.streamKey,initialValue:f,type:v.A8,onChange:_,onSubmit:function(){l("Changing your stream key will log you out of the admin and block you from streaming until you change the key in your broadcasting software.")}})),(0,r.jsxs)("div",{className:"streamkey-actions",children:[(0,r.jsx)(o.Z,{title:"Generate a stream key",children:(0,r.jsx)(c.Z,{icon:(0,r.jsx)(m,{}),size:"small",onClick:function(){for(var e="",t=0;t<3;t+=1)e+=Math.random().toString(36).substring(2);_({fieldName:"streamKey",value:e})}})}),(0,r.jsx)(o.Z,{className:"copy-tooltip",title:P?"Copied!":"Copy to clipboard",children:(0,r.jsx)(c.Z,{icon:(0,r.jsx)(h.Z,{}),size:"small",onClick:function(){navigator.clipboard.writeText(t.streamKey).then((function(){N(!0),setTimeout((function(){return N(!1)}),C)}))}})})]})]})}),(0,r.jsx)(y.ZP,T({fieldName:"ffmpegPath"},x.KB,{value:t.ffmpegPath,initialValue:d,onChange:_,onSubmit:function(){a.online&&l("The updated ffmpeg path will be used when starting your next live stream.")}})),(0,r.jsx)(y.ZP,T({fieldName:"webServerPort"},x.rE,{value:t.webServerPort,initialValue:j,type:v.mG,onChange:_,onSubmit:E})),(0,r.jsx)(y.ZP,T({fieldName:"rtmpServerPort"},x.lT,{value:t.rtmpServerPort,initialValue:w,type:v.mG,onChange:_,onSubmit:E})),b.enabled&&(0,r.jsx)(s.Z,{className:"advanced-settings",children:(0,r.jsx)(O,{header:"Advanced Settings",children:(0,r.jsx)(S,{})},"1")})]})}var E=a.Z.Title;function K(){return(0,r.jsxs)("div",{className:"config-server-details-form",children:[(0,r.jsx)(E,{children:"Server Settings"}),(0,r.jsx)("p",{className:"description",children:"You should change your stream key from the default and keep it safe. For most people it's likely the other settings will not need to be changed."}),(0,r.jsx)("div",{className:"form-module config-server-details-container",children:(0,r.jsx)(_,{})})]})}}},function(e){e.O(0,[578,774,888,179],(function(){return t=40806,e(e.s=t);var t}));var t=e.O();_N_E=t}]); \ No newline at end of file
diff --git a/static/admin/_next/static/chunks/pages/config-server-details-955233623bf20860.js b/static/admin/_next/static/chunks/pages/config-server-details-955233623bf20860.js
deleted file mode 100644
index 4f6f6f7c9..000000000
--- a/static/admin/_next/static/chunks/pages/config-server-details-955233623bf20860.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[98],{86743:function(e,t,n){"use strict";var r=n(87462),i=n(97685),o=n(67294),a=n(71577),s=n(8613),c=n(73577);function u(e){return!(!e||!e.then)}t.Z=function(e){var t=o.useRef(!1),n=o.useRef(),l=(0,c.Z)(),f=o.useState(!1),d=(0,i.Z)(f,2),m=d[0],v=d[1];o.useEffect((function(){var t;if(e.autoFocus){var r=n.current;t=setTimeout((function(){return r.focus()}))}return function(){t&&clearTimeout(t)}}),[]);var h=e.type,p=e.children,y=e.prefixCls,g=e.buttonProps;return o.createElement(a.Z,(0,r.Z)({},(0,s.n)(h),{onClick:function(n){var r=e.actionFn,i=e.close;if(!t.current)if(t.current=!0,r){var o;if(e.emitEvent){if(o=r(n),e.quitOnNullishReturnValue&&!u(o))return t.current=!1,void i(n)}else if(r.length)o=r(i),t.current=!1;else if(!(o=r()))return void i();!function(n){var r=e.close;u(n)&&(v(!0),n.then((function(){l()||v(!1),r.apply(void 0,arguments),t.current=!1}),(function(e){console.error(e),l()||v(!1),t.current=!1})))}(o)}else i()},loading:m,prefixCls:y},g,{ref:n}),p)}},73577:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(67294);function i(){var e=r.useRef(!0);return r.useEffect((function(){return function(){e.current=!1}}),[]),function(){return!e.current}}},40806:function(e,t,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/config-server-details",function(){return n(61977)}])},61977:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return R}});var r=n(85893),i=n(67294),o=n(17256),a=n(54907),s=n(56266),c=n(71577),u=n(1413),l={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M758.2 839.1C851.8 765.9 912 651.9 912 523.9 912 303 733.5 124.3 512.6 124 291.4 123.7 112 302.8 112 523.9c0 125.2 57.5 236.9 147.6 310.2 3.5 2.8 8.6 2.2 11.4-1.3l39.4-50.5c2.7-3.4 2.1-8.3-1.2-11.1-8.1-6.6-15.9-13.7-23.4-21.2a318.64 318.64 0 01-68.6-101.7C200.4 609 192 567.1 192 523.9s8.4-85.1 25.1-124.5c16.1-38.1 39.2-72.3 68.6-101.7 29.4-29.4 63.6-52.5 101.7-68.6C426.9 212.4 468.8 204 512 204s85.1 8.4 124.5 25.1c38.1 16.1 72.3 39.2 101.7 68.6 29.4 29.4 52.5 63.6 68.6 101.7 16.7 39.4 25.1 81.3 25.1 124.5s-8.4 85.1-25.1 124.5a318.64 318.64 0 01-68.6 101.7c-9.3 9.3-19.1 18-29.3 26L668.2 724a8 8 0 00-14.1 3l-39.6 162.2c-1.2 5 2.6 9.9 7.7 9.9l167 .8c6.7 0 10.5-7.7 6.3-12.9l-37.3-47.9z"}}]},name:"redo",theme:"outlined"},f=n(42135),d=function(e,t){return i.createElement(f.Z,(0,u.Z)((0,u.Z)({},e),{},{ref:t,icon:l}))};d.displayName="RedoOutlined";var m=i.forwardRef(d),v=n(57132),h=n(48419),p=n(50197),y=n(35159),g=n(57553),x=n(25964),w=n(28520),j=n.n(w),b=n(75443),k=n(58827),P=n(83200),N=n(78464);function Z(e,t,n,r,i,o,a){try{var s=e[o](a),c=s.value}catch(u){return void n(u)}s.done?t(c):Promise.resolve(c).then(r,i)}function C(){var e,t=(0,i.useContext)(g.k).setMessage,n=(0,i.useState)(null),a=n[0],s=n[1],u=null,l=function(){s(null),u=null,clearTimeout(u)},f=(e=j().mark((function e(){return j().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s((0,P.kg)(P.Jk)),e.prev=1,e.next=4,(0,k.rQ)(k.UJ);case 4:t(""),s((0,P.kg)(P.zv)),u=setTimeout(l,x.sI),e.next=13;break;case 9:e.prev=9,e.t0=e.catch(1),s((0,P.kg)(P.Un,"There was an error: ".concat(e.t0))),u=setTimeout(l,x.sI);case 13:case"end":return e.stop()}}),e,null,[[1,9]])})),function(){var t=this,n=arguments;return new Promise((function(r,i){var o=e.apply(t,n);function a(e){Z(o,r,i,a,s,"next",e)}function s(e){Z(o,r,i,a,s,"throw",e)}a(void 0)}))});return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(o.Z.Title,{level:3,className:"section-title",children:"Reset Directory"}),(0,r.jsx)("p",{className:"description",children:'If you are experiencing issues with your listing on the Owncast Directory and were asked to "reset" your connection to the service, you can do that here. The next time you go live it will try and re-register your server with the directory from scratch.'}),(0,r.jsx)(b.Z,{placement:"topLeft",title:"Are you sure you want to reset your connection to the Owncast directory?",onConfirm:f,okText:"Yes",cancelText:"No",children:(0,r.jsx)(c.Z,{type:"primary",children:"Reset Directory Connection"})}),(0,r.jsx)("p",{children:(0,r.jsx)(N.Z,{status:a})})]})}function S(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function T(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"===typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),r.forEach((function(t){S(e,t,n[t])}))}return e}var O=a.Z.Panel;function E(){var e=(0,i.useState)(null),t=e[0],n=e[1],o=(0,i.useContext)(y.aC),u=(0,i.useContext)(g.k).setMessage,l=(o||{}).serverConfig,f=l.streamKey,d=l.ffmpegPath,w=l.rtmpServerPort,j=l.webServerPort,b=l.yp,k=(0,i.useState)(!1),P=k[0],N=k[1],Z=3e3;if((0,i.useEffect)((function(){n({streamKey:f,ffmpegPath:d,rtmpServerPort:w,webServerPort:j})}),[l]),!t)return null;var E=function(e){var r=e.fieldName,i=e.value;n(T({},t,S({},r,i)))},_=function(){u("Updating server settings requires a restart of your Owncast server.")};return(0,r.jsxs)("div",{className:"edit-server-details-container",children:[(0,r.jsx)("div",{className:"field-container field-streamkey-container",children:(0,r.jsxs)("div",{className:"left-side",children:[(0,r.jsx)(p.ZP,T({fieldName:"streamKey"},x.Ri,{value:t.streamKey,initialValue:f,type:h.A8,onChange:E,onSubmit:function(){u("Changing your stream key will log you out of the admin and block you from streaming until you change the key in your broadcasting software.")}})),(0,r.jsxs)("div",{className:"streamkey-actions",children:[(0,r.jsx)(s.Z,{title:"Generate a stream key",children:(0,r.jsx)(c.Z,{icon:(0,r.jsx)(m,{}),size:"small",onClick:function(){for(var e="",t=0;t<3;t+=1)e+=Math.random().toString(36).substring(2);E({fieldName:"streamKey",value:e})}})}),(0,r.jsx)(s.Z,{className:"copy-tooltip",title:P?"Copied!":"Copy to clipboard",children:(0,r.jsx)(c.Z,{icon:(0,r.jsx)(v.Z,{}),size:"small",onClick:function(){navigator.clipboard.writeText(t.streamKey).then((function(){N(!0),setTimeout((function(){return N(!1)}),Z)}))}})})]})]})}),(0,r.jsx)(p.ZP,T({fieldName:"ffmpegPath"},x.KB,{value:t.ffmpegPath,initialValue:d,onChange:E,onSubmit:function(){o.online&&u("The updated ffmpeg path will be used when starting your next live stream.")}})),(0,r.jsx)(p.ZP,T({fieldName:"webServerPort"},x.rE,{value:t.webServerPort,initialValue:j,type:h.mG,onChange:E,onSubmit:_})),(0,r.jsx)(p.ZP,T({fieldName:"rtmpServerPort"},x.lT,{value:t.rtmpServerPort,initialValue:w,type:h.mG,onChange:E,onSubmit:_})),b.enabled&&(0,r.jsx)(a.Z,{className:"advanced-settings",children:(0,r.jsx)(O,{header:"Advanced Settings",children:(0,r.jsx)(C,{})},"1")})]})}var _=o.Z.Title;function R(){return(0,r.jsxs)("div",{className:"config-server-details-form",children:[(0,r.jsx)(_,{children:"Server Settings"}),(0,r.jsx)("p",{className:"description",children:"You should change your stream key from the default and keep it safe. For most people it's likely the other settings will not need to be changed."}),(0,r.jsx)("div",{className:"form-module config-server-details-container",children:(0,r.jsx)(E,{})})]})}}},function(e){e.O(0,[578,774,888,179],(function(){return t=40806,e(e.s=t);var t}));var t=e.O();_N_E=t}]); \ No newline at end of file
diff --git a/static/admin/_next/static/chunks/pages/config-social-items-f1ffbab8bc62dd1e.js b/static/admin/_next/static/chunks/pages/config-social-items-9ecbdce4f557ac9b.js
index 8136fc917..8ba25935a 100644
--- a/static/admin/_next/static/chunks/pages/config-social-items-f1ffbab8bc62dd1e.js
+++ b/static/admin/_next/static/chunks/pages/config-social-items-9ecbdce4f557ac9b.js
@@ -1 +1 @@
-(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[269],{48689:function(e,n,t){"use strict";t.d(n,{Z:function(){return a}});var c=t(1413),i=t(67294),r={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M360 184h-8c4.4 0 8-3.6 8-8v8h304v-8c0 4.4 3.6 8 8 8h-8v72h72v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80h72v-72zm504 72H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM731.3 840H292.7l-24.2-512h487l-24.2 512z"}}]},name:"delete",theme:"outlined"},s=t(42135),u=function(e,n){return i.createElement(s.Z,(0,c.Z)((0,c.Z)({},e),{},{ref:n,icon:r}))};u.displayName="DeleteOutlined";var a=i.forwardRef(u)},23999:function(e,n,t){(window.__NEXT_P=window.__NEXT_P||[]).push(["/config-social-items",function(){return t(57535)}])},57535:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return u}});var c=t(85893),i=(t(67294),t(17256)),r=t(91017),s=i.Z.Title;function u(){return(0,c.jsxs)("div",{className:"config-social-items",children:[(0,c.jsx)(s,{children:"Social Items"}),(0,c.jsx)(r.Z,{})]})}}},function(e){e.O(0,[919,516,17,774,888,179],(function(){return n=23999,e(e.s=n);var n}));var n=e.O();_N_E=n}]); \ No newline at end of file
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[269],{48689:function(e,n,t){"use strict";t.d(n,{Z:function(){return a}});var c=t(1413),i=t(67294),r={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M360 184h-8c4.4 0 8-3.6 8-8v8h304v-8c0 4.4 3.6 8 8 8h-8v72h72v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80h72v-72zm504 72H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM731.3 840H292.7l-24.2-512h487l-24.2 512z"}}]},name:"delete",theme:"outlined"},s=t(42135),u=function(e,n){return i.createElement(s.Z,(0,c.Z)((0,c.Z)({},e),{},{ref:n,icon:r}))};u.displayName="DeleteOutlined";var a=i.forwardRef(u)},23999:function(e,n,t){(window.__NEXT_P=window.__NEXT_P||[]).push(["/config-social-items",function(){return t(57535)}])},57535:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return u}});var c=t(85893),i=(t(67294),t(44068)),r=t(91017),s=i.Z.Title;function u(){return(0,c.jsxs)("div",{className:"config-social-items",children:[(0,c.jsx)(s,{children:"Social Items"}),(0,c.jsx)(r.Z,{})]})}}},function(e){e.O(0,[829,17,774,888,179],(function(){return n=23999,e(e.s=n);var n}));var n=e.O();_N_E=n}]); \ No newline at end of file
diff --git a/static/admin/_next/static/chunks/pages/config-storage-7ff1038872a3ca18.js b/static/admin/_next/static/chunks/pages/config-storage-4b8f9ff84ca4aa30.js
index 3bfb048d0..bedf8e044 100644
--- a/static/admin/_next/static/chunks/pages/config-storage-7ff1038872a3ca18.js
+++ b/static/admin/_next/static/chunks/pages/config-storage-4b8f9ff84ca4aa30.js
@@ -1 +1 @@
-(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[852],{11165:function(e,n,t){(window.__NEXT_P=window.__NEXT_P||[]).push(["/config-storage",function(){return t(67389)}])},15976:function(e,n,t){"use strict";t.d(n,{Z:function(){return h}});var i=t(28520),a=t.n(i),r=t(85893),s=t(67294),o=t(94594),c=t(83200),l=t(78464),d=t(25964),u=t(35159);function f(e,n,t,i,a,r,s){try{var o=e[r](s),c=o.value}catch(l){return void t(l)}o.done?n(c):Promise.resolve(c).then(i,a)}function h(e){var n,t=(0,s.useState)(null),i=t[0],h=t[1],v=null,p=((0,s.useContext)(u.aC)||{}).setFieldInConfigState,m=e.apiPath,g=e.checked,x=e.reversed,b=void 0!==x&&x,j=e.configPath,y=void 0===j?"":j,k=e.disabled,N=void 0!==k&&k,P=e.fieldName,w=e.label,C=e.tip,S=e.useSubmit,Z=e.onChange,E=function(){h(null),clearTimeout(v),v=null},O=(n=a().mark((function e(n){var t;return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!S){e.next=6;break}return h((0,c.kg)(c.Jk)),t=b?!n:n,e.next=5,(0,d.Si)({apiPath:m,data:{value:t},onSuccess:function(){p({fieldName:P,value:t,path:y}),h((0,c.kg)(c.zv))},onError:function(e){h((0,c.kg)(c.Un,"There was an error: ".concat(e)))}});case 5:v=setTimeout(E,d.sI);case 6:Z&&Z(n);case 7:case"end":return e.stop()}}),e)})),function(){var e=this,t=arguments;return new Promise((function(i,a){var r=n.apply(e,t);function s(e){f(r,i,a,s,o,"next",e)}function o(e){f(r,i,a,s,o,"throw",e)}s(void 0)}))}),_=null!==i&&i.type===c.Jk;return(0,r.jsxs)("div",{className:"formfield-container toggleswitch-container",children:[w&&(0,r.jsx)("div",{className:"label-side",children:(0,r.jsx)("span",{className:"formfield-label",children:w})}),(0,r.jsxs)("div",{className:"input-side",children:[(0,r.jsxs)("div",{className:"input-group",children:[(0,r.jsx)(o.Z,{className:"switch field-".concat(P),loading:_,onChange:O,defaultChecked:g,checked:g,checkedChildren:"ON",unCheckedChildren:"OFF",disabled:N}),(0,r.jsx)(l.Z,{status:i})]}),(0,r.jsx)("p",{className:"field-tip",children:C})]})]})}h.defaultProps={apiPath:"",checked:!1,reversed:!1,configPath:"",disabled:!1,label:"",tip:"",useSubmit:!1,onChange:null}},67389:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return C}});var i=t(85893),a=t(17256),r=t(67294),s=t(28520),o=t.n(s),c=t(54907),l=t(71577),d=t(94184),u=t.n(d),f=t(35159),h=t(57553),v=t(25964),p=t(83200),m=t(48419),g=t(78464),x=t(19411),b=t(15976);function j(e,n,t,i,a,r,s){try{var o=e[r](s),c=o.value}catch(l){return void t(l)}o.done?n(c):Promise.resolve(c).then(i,a)}function y(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function k(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},i=Object.keys(t);"function"===typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),i.forEach((function(n){y(e,n,t[n])}))}return e}var N=c.Z.Panel;function P(){var e=(0,r.useState)(null),n=e[0],t=e[1],a=(0,r.useState)(null),s=a[0],d=a[1],P=(0,r.useState)(!1),w=P[0],C=P[1],S=(0,r.useContext)(f.aC)||{},Z=S.serverConfig,E=S.setFieldInConfigState,O=(0,r.useContext)(h.k).setMessage,_=Z.s3,z=_.accessKey,T=void 0===z?"":z,K=_.acl,F=void 0===K?"":K,I=_.bucket,D=void 0===I?"":I,U=_.enabled,J=void 0!==U&&U,X=_.endpoint,L=void 0===X?"":X,M=_.region,V=void 0===M?"":M,$=_.secret,q=void 0===$?"":$,A=_.servingEndpoint,B=void 0===A?"":A,G=_.forcePathStyle,H=void 0!==G&&G;if((0,r.useEffect)((function(){t({accessKey:T,acl:F,bucket:D,enabled:J,endpoint:L,region:V,secret:q,servingEndpoint:B,forcePathStyle:H}),C(J)}),[_]),!n)return null;var Q,R=null,W=function(){d(null),R=null,clearTimeout(R)},Y=function(e){var i=e.fieldName,a=e.value;t(k({},n,y({},i,a)))},ee=(Q=o().mark((function e(){var t;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return d((0,p.kg)(p.Jk)),t=n,e.next=4,(0,v.Si)({apiPath:v.$w,data:{value:t},onSuccess:function(){E({fieldName:"s3",value:t,path:""}),d((0,p.kg)(p.zv,"Updated.")),R=setTimeout(W,v.sI),O("Changing your storage configuration will take place the next time you start a new stream.")},onError:function(e){d((0,p.kg)(p.Un,e)),R=setTimeout(W,v.sI)}});case 4:case"end":return e.stop()}}),e)})),function(){var e=this,n=arguments;return new Promise((function(t,i){var a=Q.apply(e,n);function r(e){j(a,t,i,r,s,"next",e)}function s(e){j(a,t,i,r,s,"throw",e)}r(void 0)}))}),ne=u()({"edit-storage-container":!0,"form-module":!0,enabled:w}),te=function(e,n){var t=e.endpoint,i=e.accessKey,a=e.secret,r=e.bucket,s=e.region,o=e.enabled,c=e.servingEndpoint,l=e.acl,d=e.forcePathStyle;if(o){if(t&&(0,x.Z)(t)&&i&&a&&r&&s&&(o!==n.enabled||t!==n.endpoint||i!==n.accessKey||a!==n.secret||s!==n.region||!n.servingEndpoint&&""!==c||n.servingEndpoint&&c!==n.servingEndpoint||!n.acl&&""!==l||n.acl&&l!==n.acl||d!==n.forcePathStyle))return!0}else if(o!==n.enabled)return!0;return!1}(n,_);return(0,i.jsxs)("div",{className:ne,children:[(0,i.jsx)("div",{className:"enable-switch",children:(0,i.jsx)(b.Z,{apiPath:"",fieldName:"enabled",label:"Use S3 Storage Provider",checked:n.enabled,onChange:function(e){C(e),Y({fieldName:"enabled",value:e})}})}),(0,i.jsxs)("div",{className:"form-fields",children:[(0,i.jsx)("div",{className:"field-container",children:(0,i.jsx)(m.ZP,k({},v.zm.endpoint,{value:n.endpoint,onChange:Y}))}),(0,i.jsx)("div",{className:"field-container",children:(0,i.jsx)(m.ZP,k({},v.zm.accessKey,{value:n.accessKey,onChange:Y}))}),(0,i.jsx)("div",{className:"field-container",children:(0,i.jsx)(m.ZP,k({},v.zm.secret,{value:n.secret,onChange:Y}))}),(0,i.jsx)("div",{className:"field-container",children:(0,i.jsx)(m.ZP,k({},v.zm.bucket,{value:n.bucket,onChange:Y}))}),(0,i.jsx)("div",{className:"field-container",children:(0,i.jsx)(m.ZP,k({},v.zm.region,{value:n.region,onChange:Y}))}),(0,i.jsx)(c.Z,{className:"advanced-section",children:(0,i.jsxs)(N,{header:"Optional Settings",children:[(0,i.jsx)("div",{className:"field-container",children:(0,i.jsx)(m.ZP,k({},v.zm.acl,{value:n.acl,onChange:Y}))}),(0,i.jsx)("div",{className:"field-container",children:(0,i.jsx)(m.ZP,k({},v.zm.servingEndpoint,{value:n.servingEndpoint,onChange:Y}))}),(0,i.jsx)("div",{className:"enable-switch",children:(0,i.jsx)(b.Z,k({},v.zm.forcePathStyle,{fieldName:"forcePathStyle",checked:n.forcePathStyle,onChange:function(e){Y({fieldName:"forcePathStyle",value:e})}}))})]},"1")})]}),(0,i.jsxs)("div",{className:"button-container",children:[(0,i.jsx)(l.Z,{type:"primary",onClick:ee,disabled:!te,children:"Save"}),(0,i.jsx)(g.Z,{status:s})]})]})}var w=a.Z.Title;function C(){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(w,{children:"Storage"}),(0,i.jsxs)("p",{className:"description",children:["Owncast supports optionally using external storage providers to stream your video. Learn more about this by visiting our"," ",(0,i.jsx)("a",{href:"https://owncast.online/docs/storage/?source=admin",target:"_blank",rel:"noopener noreferrer",children:"Storage Documentation"}),"."]}),(0,i.jsx)("p",{className:"description",children:"Configuring this incorrectly will likely cause your video to be unplayable. Double check the documentation for your storage provider on how to configure the bucket you created for Owncast."}),(0,i.jsx)("p",{className:"description",children:"Keep in mind this is for live streaming, not for archival, recording or VOD purposes."}),(0,i.jsx)(P,{})]})}}},function(e){e.O(0,[473,774,888,179],(function(){return n=11165,e(e.s=n);var n}));var n=e.O();_N_E=n}]); \ No newline at end of file
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[852],{11165:function(e,n,t){(window.__NEXT_P=window.__NEXT_P||[]).push(["/config-storage",function(){return t(67389)}])},15976:function(e,n,t){"use strict";t.d(n,{Z:function(){return h}});var i=t(28520),a=t.n(i),r=t(85893),s=t(67294),o=t(94594),c=t(83200),l=t(78464),d=t(25964),u=t(35159);function f(e,n,t,i,a,r,s){try{var o=e[r](s),c=o.value}catch(l){return void t(l)}o.done?n(c):Promise.resolve(c).then(i,a)}function h(e){var n,t=(0,s.useState)(null),i=t[0],h=t[1],v=null,p=((0,s.useContext)(u.aC)||{}).setFieldInConfigState,m=e.apiPath,g=e.checked,x=e.reversed,b=void 0!==x&&x,j=e.configPath,y=void 0===j?"":j,k=e.disabled,N=void 0!==k&&k,P=e.fieldName,w=e.label,C=e.tip,S=e.useSubmit,Z=e.onChange,E=function(){h(null),clearTimeout(v),v=null},O=(n=a().mark((function e(n){var t;return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!S){e.next=6;break}return h((0,c.kg)(c.Jk)),t=b?!n:n,e.next=5,(0,d.Si)({apiPath:m,data:{value:t},onSuccess:function(){p({fieldName:P,value:t,path:y}),h((0,c.kg)(c.zv))},onError:function(e){h((0,c.kg)(c.Un,"There was an error: ".concat(e)))}});case 5:v=setTimeout(E,d.sI);case 6:Z&&Z(n);case 7:case"end":return e.stop()}}),e)})),function(){var e=this,t=arguments;return new Promise((function(i,a){var r=n.apply(e,t);function s(e){f(r,i,a,s,o,"next",e)}function o(e){f(r,i,a,s,o,"throw",e)}s(void 0)}))}),_=null!==i&&i.type===c.Jk;return(0,r.jsxs)("div",{className:"formfield-container toggleswitch-container",children:[w&&(0,r.jsx)("div",{className:"label-side",children:(0,r.jsx)("span",{className:"formfield-label",children:w})}),(0,r.jsxs)("div",{className:"input-side",children:[(0,r.jsxs)("div",{className:"input-group",children:[(0,r.jsx)(o.Z,{className:"switch field-".concat(P),loading:_,onChange:O,defaultChecked:g,checked:g,checkedChildren:"ON",unCheckedChildren:"OFF",disabled:N}),(0,r.jsx)(l.Z,{status:i})]}),(0,r.jsx)("p",{className:"field-tip",children:C})]})]})}h.defaultProps={apiPath:"",checked:!1,reversed:!1,configPath:"",disabled:!1,label:"",tip:"",useSubmit:!1,onChange:null}},67389:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return C}});var i=t(85893),a=t(44068),r=t(67294),s=t(28520),o=t.n(s),c=t(54907),l=t(71577),d=t(94184),u=t.n(d),f=t(35159),h=t(57553),v=t(25964),p=t(83200),m=t(48419),g=t(78464),x=t(19411),b=t(15976);function j(e,n,t,i,a,r,s){try{var o=e[r](s),c=o.value}catch(l){return void t(l)}o.done?n(c):Promise.resolve(c).then(i,a)}function y(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function k(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},i=Object.keys(t);"function"===typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),i.forEach((function(n){y(e,n,t[n])}))}return e}var N=c.Z.Panel;function P(){var e=(0,r.useState)(null),n=e[0],t=e[1],a=(0,r.useState)(null),s=a[0],d=a[1],P=(0,r.useState)(!1),w=P[0],C=P[1],S=(0,r.useContext)(f.aC)||{},Z=S.serverConfig,E=S.setFieldInConfigState,O=(0,r.useContext)(h.k).setMessage,_=Z.s3,z=_.accessKey,T=void 0===z?"":z,K=_.acl,F=void 0===K?"":K,I=_.bucket,D=void 0===I?"":I,U=_.enabled,J=void 0!==U&&U,X=_.endpoint,L=void 0===X?"":X,M=_.region,V=void 0===M?"":M,$=_.secret,q=void 0===$?"":$,A=_.servingEndpoint,B=void 0===A?"":A,G=_.forcePathStyle,H=void 0!==G&&G;if((0,r.useEffect)((function(){t({accessKey:T,acl:F,bucket:D,enabled:J,endpoint:L,region:V,secret:q,servingEndpoint:B,forcePathStyle:H}),C(J)}),[_]),!n)return null;var Q,R=null,W=function(){d(null),R=null,clearTimeout(R)},Y=function(e){var i=e.fieldName,a=e.value;t(k({},n,y({},i,a)))},ee=(Q=o().mark((function e(){var t;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return d((0,p.kg)(p.Jk)),t=n,e.next=4,(0,v.Si)({apiPath:v.$w,data:{value:t},onSuccess:function(){E({fieldName:"s3",value:t,path:""}),d((0,p.kg)(p.zv,"Updated.")),R=setTimeout(W,v.sI),O("Changing your storage configuration will take place the next time you start a new stream.")},onError:function(e){d((0,p.kg)(p.Un,e)),R=setTimeout(W,v.sI)}});case 4:case"end":return e.stop()}}),e)})),function(){var e=this,n=arguments;return new Promise((function(t,i){var a=Q.apply(e,n);function r(e){j(a,t,i,r,s,"next",e)}function s(e){j(a,t,i,r,s,"throw",e)}r(void 0)}))}),ne=u()({"edit-storage-container":!0,"form-module":!0,enabled:w}),te=function(e,n){var t=e.endpoint,i=e.accessKey,a=e.secret,r=e.bucket,s=e.region,o=e.enabled,c=e.servingEndpoint,l=e.acl,d=e.forcePathStyle;if(o){if(t&&(0,x.Z)(t)&&i&&a&&r&&s&&(o!==n.enabled||t!==n.endpoint||i!==n.accessKey||a!==n.secret||s!==n.region||!n.servingEndpoint&&""!==c||n.servingEndpoint&&c!==n.servingEndpoint||!n.acl&&""!==l||n.acl&&l!==n.acl||d!==n.forcePathStyle))return!0}else if(o!==n.enabled)return!0;return!1}(n,_);return(0,i.jsxs)("div",{className:ne,children:[(0,i.jsx)("div",{className:"enable-switch",children:(0,i.jsx)(b.Z,{apiPath:"",fieldName:"enabled",label:"Use S3 Storage Provider",checked:n.enabled,onChange:function(e){C(e),Y({fieldName:"enabled",value:e})}})}),(0,i.jsxs)("div",{className:"form-fields",children:[(0,i.jsx)("div",{className:"field-container",children:(0,i.jsx)(m.ZP,k({},v.zm.endpoint,{value:n.endpoint,onChange:Y}))}),(0,i.jsx)("div",{className:"field-container",children:(0,i.jsx)(m.ZP,k({},v.zm.accessKey,{value:n.accessKey,onChange:Y}))}),(0,i.jsx)("div",{className:"field-container",children:(0,i.jsx)(m.ZP,k({},v.zm.secret,{value:n.secret,onChange:Y}))}),(0,i.jsx)("div",{className:"field-container",children:(0,i.jsx)(m.ZP,k({},v.zm.bucket,{value:n.bucket,onChange:Y}))}),(0,i.jsx)("div",{className:"field-container",children:(0,i.jsx)(m.ZP,k({},v.zm.region,{value:n.region,onChange:Y}))}),(0,i.jsx)(c.Z,{className:"advanced-section",children:(0,i.jsxs)(N,{header:"Optional Settings",children:[(0,i.jsx)("div",{className:"field-container",children:(0,i.jsx)(m.ZP,k({},v.zm.acl,{value:n.acl,onChange:Y}))}),(0,i.jsx)("div",{className:"field-container",children:(0,i.jsx)(m.ZP,k({},v.zm.servingEndpoint,{value:n.servingEndpoint,onChange:Y}))}),(0,i.jsx)("div",{className:"enable-switch",children:(0,i.jsx)(b.Z,k({},v.zm.forcePathStyle,{fieldName:"forcePathStyle",checked:n.forcePathStyle,onChange:function(e){Y({fieldName:"forcePathStyle",value:e})}}))})]},"1")})]}),(0,i.jsxs)("div",{className:"button-container",children:[(0,i.jsx)(l.Z,{type:"primary",onClick:ee,disabled:!te,children:"Save"}),(0,i.jsx)(g.Z,{status:s})]})]})}var w=a.Z.Title;function C(){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(w,{children:"Storage"}),(0,i.jsxs)("p",{className:"description",children:["Owncast supports optionally using external storage providers to stream your video. Learn more about this by visiting our"," ",(0,i.jsx)("a",{href:"https://owncast.online/docs/storage/?source=admin",target:"_blank",rel:"noopener noreferrer",children:"Storage Documentation"}),"."]}),(0,i.jsx)("p",{className:"description",children:"Configuring this incorrectly will likely cause your video to be unplayable. Double check the documentation for your storage provider on how to configure the bucket you created for Owncast."}),(0,i.jsx)("p",{className:"description",children:"Keep in mind this is for live streaming, not for archival, recording or VOD purposes."}),(0,i.jsx)(P,{})]})}}},function(e){e.O(0,[473,774,888,179],(function(){return n=11165,e(e.s=n);var n}));var n=e.O();_N_E=n}]); \ No newline at end of file
diff --git a/static/admin/_next/static/chunks/pages/config-video-a76d6520c0f44ced.js b/static/admin/_next/static/chunks/pages/config-video-c250bf8f88dd1d1b.js
index ba1d72d01..fa1d271e0 100644
--- a/static/admin/_next/static/chunks/pages/config-video-a76d6520c0f44ced.js
+++ b/static/admin/_next/static/chunks/pages/config-video-c250bf8f88dd1d1b.js
@@ -1 +1 @@
-(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64],{79893:function(e,n,t){(window.__NEXT_P=window.__NEXT_P||[]).push(["/config-video",function(){return t(37252)}])},15976:function(e,n,t){"use strict";t.d(n,{Z:function(){return m}});var r=t(28520),a=t.n(r),i=t(85893),o=t(67294),s=t(94594),l=t(83200),c=t(78464),d=t(25964),u=t(35159);function h(e,n,t,r,a,i,o){try{var s=e[i](o),l=s.value}catch(c){return void t(c)}s.done?n(l):Promise.resolve(l).then(r,a)}function m(e){var n,t=(0,o.useState)(null),r=t[0],m=t[1],f=null,v=((0,o.useContext)(u.aC)||{}).setFieldInConfigState,p=e.apiPath,g=e.checked,x=e.reversed,y=void 0!==x&&x,b=e.configPath,j=void 0===b?"":b,w=e.disabled,N=void 0!==w&&w,k=e.fieldName,P=e.label,C=e.tip,S=e.useSubmit,Z=e.onChange,I=function(){m(null),clearTimeout(f),f=null},T=(n=a().mark((function e(n){var t;return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!S){e.next=6;break}return m((0,l.kg)(l.Jk)),t=y?!n:n,e.next=5,(0,d.Si)({apiPath:p,data:{value:t},onSuccess:function(){v({fieldName:k,value:t,path:j}),m((0,l.kg)(l.zv))},onError:function(e){m((0,l.kg)(l.Un,"There was an error: ".concat(e)))}});case 5:f=setTimeout(I,d.sI);case 6:Z&&Z(n);case 7:case"end":return e.stop()}}),e)})),function(){var e=this,t=arguments;return new Promise((function(r,a){var i=n.apply(e,t);function o(e){h(i,r,a,o,s,"next",e)}function s(e){h(i,r,a,o,s,"throw",e)}o(void 0)}))}),_=null!==r&&r.type===l.Jk;return(0,i.jsxs)("div",{className:"formfield-container toggleswitch-container",children:[P&&(0,i.jsx)("div",{className:"label-side",children:(0,i.jsx)("span",{className:"formfield-label",children:P})}),(0,i.jsxs)("div",{className:"input-side",children:[(0,i.jsxs)("div",{className:"input-group",children:[(0,i.jsx)(s.Z,{className:"switch field-".concat(k),loading:_,onChange:T,defaultChecked:g,checked:g,checkedChildren:"ON",unCheckedChildren:"OFF",disabled:N}),(0,i.jsx)(c.Z,{status:r})]}),(0,i.jsx)("p",{className:"field-tip",children:C})]})]})}m.defaultProps={apiPath:"",checked:!1,reversed:!1,configPath:"",disabled:!1,label:"",tip:"",useSubmit:!1,onChange:null}},37252:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return J}});var r=t(85893),a=t(54907),i=t(17256),o=t(25968),s=t(6226),l=t(67294),c=t(28520),d=t.n(c),u=t(66933),h=t(75443),m=t(57553),f=t(25964),v=t(83200),p=t(35159),g=t(78464);function x(e,n,t,r,a,i,o){try{var s=e[i](o),l=s.value}catch(c){return void t(c)}s.done?n(l):Promise.resolve(l).then(r,a)}function y(e){return function(){var n=this,t=arguments;return new Promise((function(r,a){var i=e.apply(n,t);function o(e){x(i,r,a,o,s,"next",e)}function s(e){x(i,r,a,o,s,"throw",e)}o(void 0)}))}}function b(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t=[],r=!0,a=!1,i=void 0;try{for(var o,s=e[Symbol.iterator]();!(r=(o=s.next()).done)&&(t.push(o.value),!n||t.length!==n);r=!0);}catch(l){a=!0,i=l}finally{try{r||null==s.return||s.return()}finally{if(a)throw i}}return t}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function j(){var e=(0,l.useContext)(p.aC),n=e||{},t=n.serverConfig,a=n.setFieldInConfigState,o=t||{},s=o.videoCodec,c=o.supportedCodecs,x=i.Z.Title,j=u.Z.Option,w=(0,l.useState)(null),N=w[0],k=w[1],P=(0,l.useContext)(m.k).setMessage,C=(0,l.useState)(s),S=C[0],Z=C[1],I=(0,l.useState)(s),T=I[0],_=I[1],V=b(l.useState(!1),2),O=V[0],E=V[1],A=null;(0,l.useEffect)((function(){Z(s)}),[s]);var U=function(){k(null),A=null,clearTimeout(A)};function L(){return(L=y(d().mark((function n(){return d().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return Z(T),_(""),E(!1),n.next=5,(0,f.Si)({apiPath:f.CQ,data:{value:T},onSuccess:function(){a({fieldName:"videoCodec",value:T,path:"videoSettings"}),k((0,v.kg)(v.zv,"Video codec updated.")),A=setTimeout(U,f.sI),e.online&&P("Your latency buffer setting will take effect the next time you begin a live stream.")},onError:function(e){k((0,v.kg)(v.Un,e)),A=setTimeout(U,f.sI)}});case 5:case"end":return n.stop()}}),n)})))).apply(this,arguments)}var B=c.map((function(e){var n=e;return"libx264"===n?n="Default (libx264)":"h264_nvenc"===n?n="NVIDIA GPU acceleration":"h264_vaapi"===n?n="VA-API hardware encoding":"h264_qsv"===n?n="Intel QuickSync":"h264_v4l2m2m"===n?n="Video4Linux hardware encoding":"h264_omx"===n&&(n="OpenMax (omx) for Raspberry Pi"),(0,r.jsx)(j,{value:e,children:n},e)})),F="";return"libx264"===S?F="libx264 is the default codec and generally the only working choice for shared VPS enviornments. This is likely what you should be using unless you know you have set up other options.":"h264_nvenc"===S?F="You can use your NVIDIA GPU for encoding if you have a modern NVIDIA card with encoding cores.":"h264_vaapi"===S?F="VA-API may be supported by your NVIDIA proprietary drivers, Mesa open-source drivers for AMD or Intel graphics.":"h264_qsv"===S?F="Quick Sync Video is Intel's brand for its dedicated video encoding and decoding hardware. It may be an option if you have a modern Intel CPU with integrated graphics.":"h264_v4l2m2m"===S?F="Video4Linux is an interface to multiple different hardware encoding platforms such as Intel and AMD.":"h264_omx"===S&&(F="OpenMax is a codec most often used with a Raspberry Pi."),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(x,{level:3,className:"section-title",children:"Video Codec"}),(0,r.jsxs)("div",{className:"description",children:["If you have access to specific hardware with the drivers and software installed for them, you may be able to improve your video encoding performance.",(0,r.jsx)("p",{children:(0,r.jsx)("a",{href:"https://owncast.online/docs/codecs?source=admin",target:"_blank",rel:"noopener noreferrer",children:"Read the documentation about this setting before changing it or you may make your stream unplayable."})})]}),(0,r.jsxs)("div",{className:"segment-slider-container",children:[(0,r.jsx)(h.Z,{title:"Are you sure you want to change your video codec to ".concat(T," and understand what this means?"),visible:O,placement:"leftBottom",onConfirm:function(){return L.apply(this,arguments)},okText:"Yes",cancelText:"No",children:(0,r.jsx)(u.Z,{defaultValue:S,value:S,style:{width:"100%"},onChange:function(e){_(e),E(!0)},children:B})}),(0,r.jsx)(g.Z,{status:N}),(0,r.jsx)("p",{id:"selected-codec-note",className:"selected-value-note",children:F})]})]})}var w=t(48761);function N(e,n,t,r,a,i,o){try{var s=e[i](o),l=s.value}catch(c){return void t(c)}s.done?n(l):Promise.resolve(l).then(r,a)}var k=i.Z.Title,P={0:"Lowest",1:"",2:"",3:"",4:"Highest"},C={0:"Lowest latency, lowest error tolerance (Not recommended, may not work for all content/configurations.)",1:"Low latency, low error tolerance",2:"Medium latency, medium error tolerance (Default)",3:"High latency, high error tolerance",4:"Highest latency, highest error tolerance"};function S(){var e=(0,l.useState)(null),n=e[0],t=e[1],a=(0,l.useState)(null),i=a[0],o=a[1],s=(0,l.useContext)(p.aC),c=(0,l.useContext)(m.k).setMessage,u=s||{},h=u.serverConfig,x=u.setFieldInConfigState,y=(h||{}).videoSettings,b=null;if(!y)return null;(0,l.useEffect)((function(){o(y.latencyLevel)}),[y]);var j,S=function(){t(null),b=null,clearTimeout(b)},Z=(j=d().mark((function e(n){return d().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t((0,v.kg)(v.Jk)),e.next=3,(0,f.Si)({apiPath:f.sv,data:{value:n},onSuccess:function(){x({fieldName:"latencyLevel",value:n,path:"videoSettings"}),t((0,v.kg)(v.zv,"Latency buffer level updated.")),b=setTimeout(S,f.sI),s.online&&c("Your latency buffer setting will take effect the next time you begin a live stream.")},onError:function(e){t((0,v.kg)(v.Un,e)),b=setTimeout(S,f.sI)}});case 3:case"end":return e.stop()}}),e)})),function(){var e=this,n=arguments;return new Promise((function(t,r){var a=j.apply(e,n);function i(e){N(a,t,r,i,o,"next",e)}function o(e){N(a,t,r,i,o,"throw",e)}i(void 0)}))});return(0,r.jsxs)("div",{className:"config-video-latency-container",children:[(0,r.jsx)(k,{level:3,className:"section-title",children:"Latency Buffer"}),(0,r.jsx)("p",{className:"description",children:"While it's natural to want to keep your latency as low as possible, you may experience reduced error tolerance and stability the lower you go. The lowest setting is not recommended."}),(0,r.jsxs)("p",{className:"description",children:["For interactive live streams you may want to experiment with a lower latency, for non-interactive broadcasts you may want to increase it."," ",(0,r.jsx)("a",{href:"https://owncast.online/docs/encoding#latency-buffer?source=admin",target:"_blank",rel:"noopener noreferrer",children:"Read to learn more."})]}),(0,r.jsxs)("div",{className:"segment-slider-container",children:[(0,r.jsx)(w.Z,{tipFormatter:function(e){return C[e]},onChange:function(e){Z(e)},min:0,max:4,marks:P,defaultValue:i,value:i}),(0,r.jsx)("p",{className:"selected-value-note",children:C[i]}),(0,r.jsx)(g.Z,{status:n})]})]})}var Z=t(71577),I=t(14670),T=t(49919),_=t(56516),V=t(48689),O=t(21640),E=t(94184),A=t.n(E),U=t(48419),L=t(15976);function B(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function F(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"===typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),r.forEach((function(n){B(e,n,t[n])}))}return e}var D=a.Z.Panel;function R(e){var n=e.dataState,t=void 0===n?f.gX:n,l=e.onUpdateField,c=t.videoPassthrough,d=A()({"config-variant-form":!0,"video-passthrough-enabled":c});return(0,r.jsxs)("div",{className:d,children:[(0,r.jsxs)("p",{className:"description",children:[(0,r.jsx)("a",{href:"https://owncast.online/docs/video?source=admin",target:"_blank",rel:"noopener noreferrer",children:"Learn more"})," ","about how each of these settings can impact the performance of your server."]}),c&&(0,r.jsxs)("p",{className:"passthrough-warning",children:["NOTE: Video Passthrough for this output stream variant is ",(0,r.jsx)("em",{children:"enabled"}),", disabling the below video encoding settings."]}),(0,r.jsxs)(o.Z,{gutter:16,children:[(0,r.jsx)(U.ZP,F({maxLength:"10"},f.SS,{value:t.name,onChange:function(e){l({fieldName:"name",value:e.value})}})),(0,r.jsx)(s.Z,{sm:24,md:12,children:(0,r.jsxs)("div",{className:"form-module cpu-usage-container",children:[(0,r.jsx)(i.Z.Title,{level:3,children:"CPU or GPU Utilization"}),(0,r.jsx)("p",{className:"description",children:"Reduce to improve server performance, or increase it to improve video quality."}),(0,r.jsxs)("div",{className:"segment-slider-container",children:[(0,r.jsx)(w.Z,{tipFormatter:function(e){return f.I$[e]},onChange:function(e){l({fieldName:"cpuUsageLevel",value:e})},min:1,max:Object.keys(f.t$).length,marks:f.t$,defaultValue:t.cpuUsageLevel,value:t.cpuUsageLevel,disabled:t.videoPassthrough}),(0,r.jsx)("p",{className:"selected-value-note",children:c?"CPU usage selection is disabled when Video Passthrough is enabled.":f.I$[t.cpuUsageLevel]||""})]}),(0,r.jsxs)("p",{className:"read-more-subtext",children:["This could mean GPU or CPU usage depending on your server environment."," ",(0,r.jsx)("a",{href:"https://owncast.online/docs/video/?source=admin#cpu-usage",target:"_blank",rel:"noopener noreferrer",children:"Read more about hardware performance."})]})]})}),(0,r.jsx)(s.Z,{sm:24,md:12,children:(0,r.jsxs)("div",{className:"form-module bitrate-container ".concat(t.videoPassthrough?"disabled":""),children:[(0,r.jsx)(i.Z.Title,{level:3,children:"Video Bitrate"}),(0,r.jsx)("p",{className:"description",children:f.yC.tip}),(0,r.jsxs)("div",{className:"segment-slider-container",children:[(0,r.jsx)(w.Z,{tipFormatter:function(e){return"".concat(e," ").concat(f.yC.unit)},disabled:t.videoPassthrough,defaultValue:t.videoBitrate,value:t.videoBitrate,onChange:function(e){l({fieldName:"videoBitrate",value:e})},step:f.yC.incrementBy,min:f.yC.min,max:f.yC.max,marks:f.HM}),(0,r.jsx)("p",{className:"selected-value-note",children:function(){if(c)return"Bitrate selection is disabled when Video Passthrough is enabled.";var e="".concat(t.videoBitrate).concat(f.yC.unit);return e=t.videoBitrate<2e3?"".concat(e," - Good for low bandwidth environments."):t.videoBitrate<3500?"".concat(e," - Good for most bandwidth environments."):"".concat(e," - Good for high bandwidth environments.")}()})]}),(0,r.jsx)("p",{className:"read-more-subtext",children:(0,r.jsx)("a",{href:"https://owncast.online/docs/video/?source=admin",target:"_blank",rel:"noopener noreferrer",children:"Read more about bitrates."})})]})})]}),(0,r.jsx)(a.Z,{className:"advanced-settings",children:(0,r.jsxs)(D,{header:"Advanced Settings",children:[(0,r.jsxs)(o.Z,{gutter:16,children:[(0,r.jsx)(s.Z,{sm:24,md:12,children:(0,r.jsxs)("div",{className:"form-module resolution-module",children:[(0,r.jsx)(i.Z.Title,{level:3,children:"Resolution"}),(0,r.jsxs)("p",{className:"description",children:["Resizing your content will take additional resources on your server. If you wish to optionally resize your content for this stream output then you should either set the width ",(0,r.jsx)("strong",{children:"or"})," the height to keep your aspect ratio."," ",(0,r.jsx)("a",{href:"https://owncast.online/docs/video/?source=admin",target:"_blank",rel:"noopener noreferrer",children:"Read more about resolutions."})]}),(0,r.jsx)("br",{}),(0,r.jsx)(U.ZP,F({type:"number"},f.dL.scaledWidth,{value:t.scaledWidth,onChange:function(e){var n=Number(e.value);isNaN(n)||l({fieldName:"scaledWidth",value:n||0})},disabled:t.videoPassthrough})),(0,r.jsx)(U.ZP,F({type:"number"},f.dL.scaledHeight,{value:t.scaledHeight,onChange:function(e){var n=Number(e.value);isNaN(n)||l({fieldName:"scaledHeight",value:n||0})},disabled:t.videoPassthrough}))]})}),(0,r.jsx)(s.Z,{sm:24,md:12,children:(0,r.jsxs)("div",{className:"form-module video-passthrough-module",children:[(0,r.jsx)(i.Z.Title,{level:3,children:"Video Passthrough"}),(0,r.jsxs)("div",{className:"description",children:[(0,r.jsxs)("p",{children:["Enabling video passthrough may allow for less hardware utilization, but may also make your stream ",(0,r.jsx)("strong",{children:"unplayable"}),"."]}),(0,r.jsx)("p",{children:"All other settings for this stream output will be disabled if passthrough is used."}),(0,r.jsx)("p",{children:(0,r.jsx)("a",{href:"https://owncast.online/docs/video/?source=admin#video-passthrough",target:"_blank",rel:"noopener noreferrer",children:"Read the documentation before enabling, as it impacts your stream."})})]}),(0,r.jsx)(h.Z,{disabled:!0===t.videoPassthrough,title:"Did you read the documentation about video passthrough and understand the risks involved with enabling it?",icon:(0,r.jsx)(O.Z,{}),onConfirm:function(){l({fieldName:"videoPassthrough",value:!0})},okText:"Yes",cancelText:"No",children:(0,r.jsx)("a",{href:"#",children:(0,r.jsx)(L.Z,{label:"Use Video Passthrough?",fieldName:"video-passthrough",tip:f.dL.videoPassthrough.tip,checked:t.videoPassthrough,onChange:function(e){c&&l({fieldName:"videoPassthrough",value:e})}})})})]})})]}),(0,r.jsxs)("div",{className:"form-module frame-rate-module",children:[(0,r.jsx)(i.Z.Title,{level:3,children:"Frame rate"}),(0,r.jsx)("p",{className:"description",children:f.nm.tip}),(0,r.jsxs)("div",{className:"segment-slider-container",children:[(0,r.jsx)(w.Z,{tipFormatter:function(e){return"".concat(e," ").concat(f.nm.unit)},defaultValue:t.framerate,value:t.framerate,onChange:function(e){l({fieldName:"framerate",value:e})},step:f.nm.incrementBy,min:f.nm.min,max:f.nm.max,marks:f.Xq,disabled:t.videoPassthrough}),(0,r.jsx)("p",{className:"selected-value-note",children:c?"Framerate selection is disabled when Video Passthrough is enabled.":f.x8[t.framerate]||""})]}),(0,r.jsx)("p",{className:"read-more-subtext",children:(0,r.jsx)("a",{href:"https://owncast.online/docs/video/?source=admin#framerate",target:"_blank",rel:"noopener noreferrer",children:"Read more about framerates."})})]})]},"1")})]})}function z(e,n,t,r,a,i,o){try{var s=e[i](o),l=s.value}catch(c){return void t(c)}s.done?n(l):Promise.resolve(l).then(r,a)}function H(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function M(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"===typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),r.forEach((function(n){H(e,n,t[n])}))}return e}function G(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t=[],r=!0,a=!1,i=void 0;try{for(var o,s=e[Symbol.iterator]();!(r=(o=s.next()).done)&&(t.push(o.value),!n||t.length!==n);r=!0);}catch(l){a=!0,i=l}finally{try{r||null==s.return||s.return()}finally{if(a)throw i}}return t}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function X(e){return function(e){if(Array.isArray(e)){for(var n=0,t=new Array(e.length);n<e.length;n++)t[n]=e[n];return t}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}var q=i.Z.Title;function Q(){var e=(0,l.useState)(!1),n=e[0],t=e[1],a=(0,l.useState)(!1),i=a[0],o=a[1],s=(0,l.useState)(0),c=s[0],u=s[1],h=(0,l.useContext)(m.k).setMessage,x=(0,l.useState)(f.gX),y=x[0],b=x[1],j=(0,l.useState)(null),w=j[0],N=j[1],k=(0,l.useContext)(p.aC),P=k||{},C=P.serverConfig,S=P.setFieldInConfigState,O=(C||{}).videoSettings,E=(O||{}).videoQualityVariants,A=null;if(!O)return null;var U,L=function(){N(null),A=null,clearTimeout(A)},B=function(){t(!1),u(-1),b(f.gX)},F=(U=d().mark((function e(n){return d().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return N((0,v.kg)(v.Jk)),e.next=3,(0,f.Si)({apiPath:f.vv,data:{value:n},onSuccess:function(){S({fieldName:"videoQualityVariants",value:n,path:"videoSettings"}),o(!1),B(),N((0,v.kg)(v.zv,"Variants updated")),A=setTimeout(L,f.sI),k.online&&h("Updating your video configuration will take effect the next time you begin a new stream.")},onError:function(e){N((0,v.kg)(v.Un,e)),o(!1),A=setTimeout(L,f.sI)}});case 3:case"end":return e.stop()}}),e)})),function(){var e=this,n=arguments;return new Promise((function(t,r){var a=U.apply(e,n);function i(e){z(a,t,r,i,o,"next",e)}function o(e){z(a,t,r,i,o,"throw",e)}i(void 0)}))}),D=[{title:"Name",dataIndex:"name",render:function(e){return e||"No name"}},{title:"Video bitrate",dataIndex:"videoBitrate",key:"videoBitrate",render:function(e,n){return!e||n.videoPassthrough?"Same as source":"".concat(e," kbps")}},{title:"CPU Usage",dataIndex:"cpuUsageLevel",key:"cpuUsageLevel",render:function(e,n){return!e||n.videoPassthrough?"n/a":f.I$[e].split(" ")[0]}},{title:"",dataIndex:"",key:"edit",render:function(e){var n=e.key-1;return(0,r.jsxs)("span",{className:"actions",children:[(0,r.jsx)(Z.Z,{size:"small",onClick:function(){u(n),b(E[n]),t(!0)},children:"Edit"}),(0,r.jsx)(Z.Z,{className:"delete-button",icon:(0,r.jsx)(V.Z,{}),size:"small",disabled:1===E.length,onClick:function(){!function(e){var n=X(E);n.splice(e,1),F(n)}(n)}})]})}}],Q=E.map((function(e,n){return M({key:n+1},e)}));return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(q,{level:3,className:"section-title",children:"Stream output"}),function(){if(1!==E.length)return!1;var e=G(E,1)[0];return f.i3.VIDEO_HEIGHT<=e.scaledHeight||f.i3.VIDEO_BITRATE<=e.videoBitrate}()&&(0,r.jsx)(I.Z,{message:f.i3.HELP_TEXT,type:"info",closable:!0}),(0,r.jsx)(g.Z,{status:w}),(0,r.jsx)(T.Z,{className:"variants-table",pagination:!1,size:"small",columns:D,dataSource:Q}),(0,r.jsxs)(_.Z,{title:"Edit Video Variant Details",visible:n,onOk:function(){o(!0);var e=X(E);-1===c?e.push(y):e.splice(c,1,y),F(e)},onCancel:B,confirmLoading:i,width:900,children:[(0,r.jsx)(R,{dataState:M({},y),onUpdateField:function(e){var n=e.fieldName,t=e.value;b(M({},y,H({},n,t)))}}),(0,r.jsx)(g.Z,{status:w})]}),(0,r.jsx)("br",{}),(0,r.jsx)(Z.Z,{type:"primary",onClick:function(){u(-1),b(f.gX),t(!0)},children:"Add a new variant"})]})}var Y=a.Z.Panel,$=i.Z.Title;function J(){return(0,r.jsxs)("div",{className:"config-video-variants",children:[(0,r.jsx)($,{children:"Video configuration"}),(0,r.jsxs)("p",{className:"description",children:["Before changing your video configuration"," ",(0,r.jsx)("a",{href:"https://owncast.online/docs/video?source=admin",target:"_blank",rel:"noopener noreferrer",children:"visit the video documentation"})," ","to learn how it impacts your stream performance. The general rule is to start conservatively by having one middle quality stream output variant and experiment with adding more of varied qualities."]}),(0,r.jsxs)(o.Z,{gutter:[16,16],children:[(0,r.jsx)(s.Z,{md:24,lg:12,children:(0,r.jsx)("div",{className:"form-module variants-table-module",children:(0,r.jsx)(Q,{})})}),(0,r.jsxs)(s.Z,{md:24,lg:12,children:[(0,r.jsx)("div",{className:"form-module latency-module",children:(0,r.jsx)(S,{})}),(0,r.jsx)(a.Z,{className:"advanced-settings codec-module",children:(0,r.jsx)(Y,{header:"Advanced Settings",children:(0,r.jsx)("div",{className:"form-module variants-table-module",children:(0,r.jsx)(j,{})})},"1")})]})]})]})}}},function(e){e.O(0,[919,516,578,556,774,888,179],(function(){return n=79893,e(e.s=n);var n}));var n=e.O();_N_E=n}]); \ No newline at end of file
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64],{79893:function(e,n,t){(window.__NEXT_P=window.__NEXT_P||[]).push(["/config-video",function(){return t(37252)}])},15976:function(e,n,t){"use strict";t.d(n,{Z:function(){return m}});var r=t(28520),a=t.n(r),i=t(85893),o=t(67294),s=t(94594),l=t(83200),c=t(78464),d=t(25964),u=t(35159);function h(e,n,t,r,a,i,o){try{var s=e[i](o),l=s.value}catch(c){return void t(c)}s.done?n(l):Promise.resolve(l).then(r,a)}function m(e){var n,t=(0,o.useState)(null),r=t[0],m=t[1],f=null,v=((0,o.useContext)(u.aC)||{}).setFieldInConfigState,p=e.apiPath,g=e.checked,x=e.reversed,y=void 0!==x&&x,b=e.configPath,j=void 0===b?"":b,w=e.disabled,N=void 0!==w&&w,k=e.fieldName,P=e.label,C=e.tip,S=e.useSubmit,Z=e.onChange,I=function(){m(null),clearTimeout(f),f=null},T=(n=a().mark((function e(n){var t;return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!S){e.next=6;break}return m((0,l.kg)(l.Jk)),t=y?!n:n,e.next=5,(0,d.Si)({apiPath:p,data:{value:t},onSuccess:function(){v({fieldName:k,value:t,path:j}),m((0,l.kg)(l.zv))},onError:function(e){m((0,l.kg)(l.Un,"There was an error: ".concat(e)))}});case 5:f=setTimeout(I,d.sI);case 6:Z&&Z(n);case 7:case"end":return e.stop()}}),e)})),function(){var e=this,t=arguments;return new Promise((function(r,a){var i=n.apply(e,t);function o(e){h(i,r,a,o,s,"next",e)}function s(e){h(i,r,a,o,s,"throw",e)}o(void 0)}))}),_=null!==r&&r.type===l.Jk;return(0,i.jsxs)("div",{className:"formfield-container toggleswitch-container",children:[P&&(0,i.jsx)("div",{className:"label-side",children:(0,i.jsx)("span",{className:"formfield-label",children:P})}),(0,i.jsxs)("div",{className:"input-side",children:[(0,i.jsxs)("div",{className:"input-group",children:[(0,i.jsx)(s.Z,{className:"switch field-".concat(k),loading:_,onChange:T,defaultChecked:g,checked:g,checkedChildren:"ON",unCheckedChildren:"OFF",disabled:N}),(0,i.jsx)(c.Z,{status:r})]}),(0,i.jsx)("p",{className:"field-tip",children:C})]})]})}m.defaultProps={apiPath:"",checked:!1,reversed:!1,configPath:"",disabled:!1,label:"",tip:"",useSubmit:!1,onChange:null}},37252:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return J}});var r=t(85893),a=t(54907),i=t(44068),o=t(25968),s=t(6226),l=t(67294),c=t(28520),d=t.n(c),u=t(66933),h=t(75443),m=t(57553),f=t(25964),v=t(83200),p=t(35159),g=t(78464);function x(e,n,t,r,a,i,o){try{var s=e[i](o),l=s.value}catch(c){return void t(c)}s.done?n(l):Promise.resolve(l).then(r,a)}function y(e){return function(){var n=this,t=arguments;return new Promise((function(r,a){var i=e.apply(n,t);function o(e){x(i,r,a,o,s,"next",e)}function s(e){x(i,r,a,o,s,"throw",e)}o(void 0)}))}}function b(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t=[],r=!0,a=!1,i=void 0;try{for(var o,s=e[Symbol.iterator]();!(r=(o=s.next()).done)&&(t.push(o.value),!n||t.length!==n);r=!0);}catch(l){a=!0,i=l}finally{try{r||null==s.return||s.return()}finally{if(a)throw i}}return t}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function j(){var e=(0,l.useContext)(p.aC),n=e||{},t=n.serverConfig,a=n.setFieldInConfigState,o=t||{},s=o.videoCodec,c=o.supportedCodecs,x=i.Z.Title,j=u.Z.Option,w=(0,l.useState)(null),N=w[0],k=w[1],P=(0,l.useContext)(m.k).setMessage,C=(0,l.useState)(s),S=C[0],Z=C[1],I=(0,l.useState)(s),T=I[0],_=I[1],V=b(l.useState(!1),2),O=V[0],E=V[1],A=null;(0,l.useEffect)((function(){Z(s)}),[s]);var U=function(){k(null),A=null,clearTimeout(A)};function L(){return(L=y(d().mark((function n(){return d().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return Z(T),_(""),E(!1),n.next=5,(0,f.Si)({apiPath:f.CQ,data:{value:T},onSuccess:function(){a({fieldName:"videoCodec",value:T,path:"videoSettings"}),k((0,v.kg)(v.zv,"Video codec updated.")),A=setTimeout(U,f.sI),e.online&&P("Your latency buffer setting will take effect the next time you begin a live stream.")},onError:function(e){k((0,v.kg)(v.Un,e)),A=setTimeout(U,f.sI)}});case 5:case"end":return n.stop()}}),n)})))).apply(this,arguments)}var B=c.map((function(e){var n=e;return"libx264"===n?n="Default (libx264)":"h264_nvenc"===n?n="NVIDIA GPU acceleration":"h264_vaapi"===n?n="VA-API hardware encoding":"h264_qsv"===n?n="Intel QuickSync":"h264_v4l2m2m"===n?n="Video4Linux hardware encoding":"h264_omx"===n&&(n="OpenMax (omx) for Raspberry Pi"),(0,r.jsx)(j,{value:e,children:n},e)})),F="";return"libx264"===S?F="libx264 is the default codec and generally the only working choice for shared VPS enviornments. This is likely what you should be using unless you know you have set up other options.":"h264_nvenc"===S?F="You can use your NVIDIA GPU for encoding if you have a modern NVIDIA card with encoding cores.":"h264_vaapi"===S?F="VA-API may be supported by your NVIDIA proprietary drivers, Mesa open-source drivers for AMD or Intel graphics.":"h264_qsv"===S?F="Quick Sync Video is Intel's brand for its dedicated video encoding and decoding hardware. It may be an option if you have a modern Intel CPU with integrated graphics.":"h264_v4l2m2m"===S?F="Video4Linux is an interface to multiple different hardware encoding platforms such as Intel and AMD.":"h264_omx"===S&&(F="OpenMax is a codec most often used with a Raspberry Pi."),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(x,{level:3,className:"section-title",children:"Video Codec"}),(0,r.jsxs)("div",{className:"description",children:["If you have access to specific hardware with the drivers and software installed for them, you may be able to improve your video encoding performance.",(0,r.jsx)("p",{children:(0,r.jsx)("a",{href:"https://owncast.online/docs/codecs?source=admin",target:"_blank",rel:"noopener noreferrer",children:"Read the documentation about this setting before changing it or you may make your stream unplayable."})})]}),(0,r.jsxs)("div",{className:"segment-slider-container",children:[(0,r.jsx)(h.Z,{title:"Are you sure you want to change your video codec to ".concat(T," and understand what this means?"),visible:O,placement:"leftBottom",onConfirm:function(){return L.apply(this,arguments)},okText:"Yes",cancelText:"No",children:(0,r.jsx)(u.Z,{defaultValue:S,value:S,style:{width:"100%"},onChange:function(e){_(e),E(!0)},children:B})}),(0,r.jsx)(g.Z,{status:N}),(0,r.jsx)("p",{id:"selected-codec-note",className:"selected-value-note",children:F})]})]})}var w=t(48761);function N(e,n,t,r,a,i,o){try{var s=e[i](o),l=s.value}catch(c){return void t(c)}s.done?n(l):Promise.resolve(l).then(r,a)}var k=i.Z.Title,P={0:"Lowest",1:"",2:"",3:"",4:"Highest"},C={0:"Lowest latency, lowest error tolerance (Not recommended, may not work for all content/configurations.)",1:"Low latency, low error tolerance",2:"Medium latency, medium error tolerance (Default)",3:"High latency, high error tolerance",4:"Highest latency, highest error tolerance"};function S(){var e=(0,l.useState)(null),n=e[0],t=e[1],a=(0,l.useState)(null),i=a[0],o=a[1],s=(0,l.useContext)(p.aC),c=(0,l.useContext)(m.k).setMessage,u=s||{},h=u.serverConfig,x=u.setFieldInConfigState,y=(h||{}).videoSettings,b=null;if(!y)return null;(0,l.useEffect)((function(){o(y.latencyLevel)}),[y]);var j,S=function(){t(null),b=null,clearTimeout(b)},Z=(j=d().mark((function e(n){return d().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t((0,v.kg)(v.Jk)),e.next=3,(0,f.Si)({apiPath:f.sv,data:{value:n},onSuccess:function(){x({fieldName:"latencyLevel",value:n,path:"videoSettings"}),t((0,v.kg)(v.zv,"Latency buffer level updated.")),b=setTimeout(S,f.sI),s.online&&c("Your latency buffer setting will take effect the next time you begin a live stream.")},onError:function(e){t((0,v.kg)(v.Un,e)),b=setTimeout(S,f.sI)}});case 3:case"end":return e.stop()}}),e)})),function(){var e=this,n=arguments;return new Promise((function(t,r){var a=j.apply(e,n);function i(e){N(a,t,r,i,o,"next",e)}function o(e){N(a,t,r,i,o,"throw",e)}i(void 0)}))});return(0,r.jsxs)("div",{className:"config-video-latency-container",children:[(0,r.jsx)(k,{level:3,className:"section-title",children:"Latency Buffer"}),(0,r.jsx)("p",{className:"description",children:"While it's natural to want to keep your latency as low as possible, you may experience reduced error tolerance and stability the lower you go. The lowest setting is not recommended."}),(0,r.jsxs)("p",{className:"description",children:["For interactive live streams you may want to experiment with a lower latency, for non-interactive broadcasts you may want to increase it."," ",(0,r.jsx)("a",{href:"https://owncast.online/docs/encoding#latency-buffer?source=admin",target:"_blank",rel:"noopener noreferrer",children:"Read to learn more."})]}),(0,r.jsxs)("div",{className:"segment-slider-container",children:[(0,r.jsx)(w.Z,{tipFormatter:function(e){return C[e]},onChange:function(e){Z(e)},min:0,max:4,marks:P,defaultValue:i,value:i}),(0,r.jsx)("p",{className:"selected-value-note",children:C[i]}),(0,r.jsx)(g.Z,{status:n})]})]})}var Z=t(71577),I=t(14670),T=t(88829),_=t(56516),V=t(48689),O=t(21640),E=t(94184),A=t.n(E),U=t(48419),L=t(15976);function B(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function F(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"===typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),r.forEach((function(n){B(e,n,t[n])}))}return e}var D=a.Z.Panel;function R(e){var n=e.dataState,t=void 0===n?f.gX:n,l=e.onUpdateField,c=t.videoPassthrough,d=A()({"config-variant-form":!0,"video-passthrough-enabled":c});return(0,r.jsxs)("div",{className:d,children:[(0,r.jsxs)("p",{className:"description",children:[(0,r.jsx)("a",{href:"https://owncast.online/docs/video?source=admin",target:"_blank",rel:"noopener noreferrer",children:"Learn more"})," ","about how each of these settings can impact the performance of your server."]}),c&&(0,r.jsxs)("p",{className:"passthrough-warning",children:["NOTE: Video Passthrough for this output stream variant is ",(0,r.jsx)("em",{children:"enabled"}),", disabling the below video encoding settings."]}),(0,r.jsxs)(o.Z,{gutter:16,children:[(0,r.jsx)(U.ZP,F({maxLength:"10"},f.SS,{value:t.name,onChange:function(e){l({fieldName:"name",value:e.value})}})),(0,r.jsx)(s.Z,{sm:24,md:12,children:(0,r.jsxs)("div",{className:"form-module cpu-usage-container",children:[(0,r.jsx)(i.Z.Title,{level:3,children:"CPU or GPU Utilization"}),(0,r.jsx)("p",{className:"description",children:"Reduce to improve server performance, or increase it to improve video quality."}),(0,r.jsxs)("div",{className:"segment-slider-container",children:[(0,r.jsx)(w.Z,{tipFormatter:function(e){return f.I$[e]},onChange:function(e){l({fieldName:"cpuUsageLevel",value:e})},min:1,max:Object.keys(f.t$).length,marks:f.t$,defaultValue:t.cpuUsageLevel,value:t.cpuUsageLevel,disabled:t.videoPassthrough}),(0,r.jsx)("p",{className:"selected-value-note",children:c?"CPU usage selection is disabled when Video Passthrough is enabled.":f.I$[t.cpuUsageLevel]||""})]}),(0,r.jsxs)("p",{className:"read-more-subtext",children:["This could mean GPU or CPU usage depending on your server environment."," ",(0,r.jsx)("a",{href:"https://owncast.online/docs/video/?source=admin#cpu-usage",target:"_blank",rel:"noopener noreferrer",children:"Read more about hardware performance."})]})]})}),(0,r.jsx)(s.Z,{sm:24,md:12,children:(0,r.jsxs)("div",{className:"form-module bitrate-container ".concat(t.videoPassthrough?"disabled":""),children:[(0,r.jsx)(i.Z.Title,{level:3,children:"Video Bitrate"}),(0,r.jsx)("p",{className:"description",children:f.yC.tip}),(0,r.jsxs)("div",{className:"segment-slider-container",children:[(0,r.jsx)(w.Z,{tipFormatter:function(e){return"".concat(e," ").concat(f.yC.unit)},disabled:t.videoPassthrough,defaultValue:t.videoBitrate,value:t.videoBitrate,onChange:function(e){l({fieldName:"videoBitrate",value:e})},step:f.yC.incrementBy,min:f.yC.min,max:f.yC.max,marks:f.HM}),(0,r.jsx)("p",{className:"selected-value-note",children:function(){if(c)return"Bitrate selection is disabled when Video Passthrough is enabled.";var e="".concat(t.videoBitrate).concat(f.yC.unit);return e=t.videoBitrate<2e3?"".concat(e," - Good for low bandwidth environments."):t.videoBitrate<3500?"".concat(e," - Good for most bandwidth environments."):"".concat(e," - Good for high bandwidth environments.")}()})]}),(0,r.jsx)("p",{className:"read-more-subtext",children:(0,r.jsx)("a",{href:"https://owncast.online/docs/video/?source=admin",target:"_blank",rel:"noopener noreferrer",children:"Read more about bitrates."})})]})})]}),(0,r.jsx)(a.Z,{className:"advanced-settings",children:(0,r.jsxs)(D,{header:"Advanced Settings",children:[(0,r.jsxs)(o.Z,{gutter:16,children:[(0,r.jsx)(s.Z,{sm:24,md:12,children:(0,r.jsxs)("div",{className:"form-module resolution-module",children:[(0,r.jsx)(i.Z.Title,{level:3,children:"Resolution"}),(0,r.jsxs)("p",{className:"description",children:["Resizing your content will take additional resources on your server. If you wish to optionally resize your content for this stream output then you should either set the width ",(0,r.jsx)("strong",{children:"or"})," the height to keep your aspect ratio."," ",(0,r.jsx)("a",{href:"https://owncast.online/docs/video/?source=admin",target:"_blank",rel:"noopener noreferrer",children:"Read more about resolutions."})]}),(0,r.jsx)("br",{}),(0,r.jsx)(U.ZP,F({type:"number"},f.dL.scaledWidth,{value:t.scaledWidth,onChange:function(e){var n=Number(e.value);isNaN(n)||l({fieldName:"scaledWidth",value:n||0})},disabled:t.videoPassthrough})),(0,r.jsx)(U.ZP,F({type:"number"},f.dL.scaledHeight,{value:t.scaledHeight,onChange:function(e){var n=Number(e.value);isNaN(n)||l({fieldName:"scaledHeight",value:n||0})},disabled:t.videoPassthrough}))]})}),(0,r.jsx)(s.Z,{sm:24,md:12,children:(0,r.jsxs)("div",{className:"form-module video-passthrough-module",children:[(0,r.jsx)(i.Z.Title,{level:3,children:"Video Passthrough"}),(0,r.jsxs)("div",{className:"description",children:[(0,r.jsxs)("p",{children:["Enabling video passthrough may allow for less hardware utilization, but may also make your stream ",(0,r.jsx)("strong",{children:"unplayable"}),"."]}),(0,r.jsx)("p",{children:"All other settings for this stream output will be disabled if passthrough is used."}),(0,r.jsx)("p",{children:(0,r.jsx)("a",{href:"https://owncast.online/docs/video/?source=admin#video-passthrough",target:"_blank",rel:"noopener noreferrer",children:"Read the documentation before enabling, as it impacts your stream."})})]}),(0,r.jsx)(h.Z,{disabled:!0===t.videoPassthrough,title:"Did you read the documentation about video passthrough and understand the risks involved with enabling it?",icon:(0,r.jsx)(O.Z,{}),onConfirm:function(){l({fieldName:"videoPassthrough",value:!0})},okText:"Yes",cancelText:"No",children:(0,r.jsx)("a",{href:"#",children:(0,r.jsx)(L.Z,{label:"Use Video Passthrough?",fieldName:"video-passthrough",tip:f.dL.videoPassthrough.tip,checked:t.videoPassthrough,onChange:function(e){c&&l({fieldName:"videoPassthrough",value:e})}})})})]})})]}),(0,r.jsxs)("div",{className:"form-module frame-rate-module",children:[(0,r.jsx)(i.Z.Title,{level:3,children:"Frame rate"}),(0,r.jsx)("p",{className:"description",children:f.nm.tip}),(0,r.jsxs)("div",{className:"segment-slider-container",children:[(0,r.jsx)(w.Z,{tipFormatter:function(e){return"".concat(e," ").concat(f.nm.unit)},defaultValue:t.framerate,value:t.framerate,onChange:function(e){l({fieldName:"framerate",value:e})},step:f.nm.incrementBy,min:f.nm.min,max:f.nm.max,marks:f.Xq,disabled:t.videoPassthrough}),(0,r.jsx)("p",{className:"selected-value-note",children:c?"Framerate selection is disabled when Video Passthrough is enabled.":f.x8[t.framerate]||""})]}),(0,r.jsx)("p",{className:"read-more-subtext",children:(0,r.jsx)("a",{href:"https://owncast.online/docs/video/?source=admin#framerate",target:"_blank",rel:"noopener noreferrer",children:"Read more about framerates."})})]})]},"1")})]})}function z(e,n,t,r,a,i,o){try{var s=e[i](o),l=s.value}catch(c){return void t(c)}s.done?n(l):Promise.resolve(l).then(r,a)}function H(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function M(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"===typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),r.forEach((function(n){H(e,n,t[n])}))}return e}function G(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t=[],r=!0,a=!1,i=void 0;try{for(var o,s=e[Symbol.iterator]();!(r=(o=s.next()).done)&&(t.push(o.value),!n||t.length!==n);r=!0);}catch(l){a=!0,i=l}finally{try{r||null==s.return||s.return()}finally{if(a)throw i}}return t}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function X(e){return function(e){if(Array.isArray(e)){for(var n=0,t=new Array(e.length);n<e.length;n++)t[n]=e[n];return t}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}var q=i.Z.Title;function Q(){var e=(0,l.useState)(!1),n=e[0],t=e[1],a=(0,l.useState)(!1),i=a[0],o=a[1],s=(0,l.useState)(0),c=s[0],u=s[1],h=(0,l.useContext)(m.k).setMessage,x=(0,l.useState)(f.gX),y=x[0],b=x[1],j=(0,l.useState)(null),w=j[0],N=j[1],k=(0,l.useContext)(p.aC),P=k||{},C=P.serverConfig,S=P.setFieldInConfigState,O=(C||{}).videoSettings,E=(O||{}).videoQualityVariants,A=null;if(!O)return null;var U,L=function(){N(null),A=null,clearTimeout(A)},B=function(){t(!1),u(-1),b(f.gX)},F=(U=d().mark((function e(n){return d().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return N((0,v.kg)(v.Jk)),e.next=3,(0,f.Si)({apiPath:f.vv,data:{value:n},onSuccess:function(){S({fieldName:"videoQualityVariants",value:n,path:"videoSettings"}),o(!1),B(),N((0,v.kg)(v.zv,"Variants updated")),A=setTimeout(L,f.sI),k.online&&h("Updating your video configuration will take effect the next time you begin a new stream.")},onError:function(e){N((0,v.kg)(v.Un,e)),o(!1),A=setTimeout(L,f.sI)}});case 3:case"end":return e.stop()}}),e)})),function(){var e=this,n=arguments;return new Promise((function(t,r){var a=U.apply(e,n);function i(e){z(a,t,r,i,o,"next",e)}function o(e){z(a,t,r,i,o,"throw",e)}i(void 0)}))}),D=[{title:"Name",dataIndex:"name",render:function(e){return e||"No name"}},{title:"Video bitrate",dataIndex:"videoBitrate",key:"videoBitrate",render:function(e,n){return!e||n.videoPassthrough?"Same as source":"".concat(e," kbps")}},{title:"CPU Usage",dataIndex:"cpuUsageLevel",key:"cpuUsageLevel",render:function(e,n){return!e||n.videoPassthrough?"n/a":f.I$[e].split(" ")[0]}},{title:"",dataIndex:"",key:"edit",render:function(e){var n=e.key-1;return(0,r.jsxs)("span",{className:"actions",children:[(0,r.jsx)(Z.Z,{size:"small",onClick:function(){u(n),b(E[n]),t(!0)},children:"Edit"}),(0,r.jsx)(Z.Z,{className:"delete-button",icon:(0,r.jsx)(V.Z,{}),size:"small",disabled:1===E.length,onClick:function(){!function(e){var n=X(E);n.splice(e,1),F(n)}(n)}})]})}}],Q=E.map((function(e,n){return M({key:n+1},e)}));return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(q,{level:3,className:"section-title",children:"Stream output"}),function(){if(1!==E.length)return!1;var e=G(E,1)[0];return f.i3.VIDEO_HEIGHT<=e.scaledHeight||f.i3.VIDEO_BITRATE<=e.videoBitrate}()&&(0,r.jsx)(I.Z,{message:f.i3.HELP_TEXT,type:"info",closable:!0}),(0,r.jsx)(g.Z,{status:w}),(0,r.jsx)(T.Z,{className:"variants-table",pagination:!1,size:"small",columns:D,dataSource:Q}),(0,r.jsxs)(_.Z,{title:"Edit Video Variant Details",visible:n,onOk:function(){o(!0);var e=X(E);-1===c?e.push(y):e.splice(c,1,y),F(e)},onCancel:B,confirmLoading:i,width:900,children:[(0,r.jsx)(R,{dataState:M({},y),onUpdateField:function(e){var n=e.fieldName,t=e.value;b(M({},y,H({},n,t)))}}),(0,r.jsx)(g.Z,{status:w})]}),(0,r.jsx)("br",{}),(0,r.jsx)(Z.Z,{type:"primary",onClick:function(){u(-1),b(f.gX),t(!0)},children:"Add a new variant"})]})}var Y=a.Z.Panel,$=i.Z.Title;function J(){return(0,r.jsxs)("div",{className:"config-video-variants",children:[(0,r.jsx)($,{children:"Video configuration"}),(0,r.jsxs)("p",{className:"description",children:["Before changing your video configuration"," ",(0,r.jsx)("a",{href:"https://owncast.online/docs/video?source=admin",target:"_blank",rel:"noopener noreferrer",children:"visit the video documentation"})," ","to learn how it impacts your stream performance. The general rule is to start conservatively by having one middle quality stream output variant and experiment with adding more of varied qualities."]}),(0,r.jsxs)(o.Z,{gutter:[16,16],children:[(0,r.jsx)(s.Z,{md:24,lg:12,children:(0,r.jsx)("div",{className:"form-module variants-table-module",children:(0,r.jsx)(Q,{})})}),(0,r.jsxs)(s.Z,{md:24,lg:12,children:[(0,r.jsx)("div",{className:"form-module latency-module",children:(0,r.jsx)(S,{})}),(0,r.jsx)(a.Z,{className:"advanced-settings codec-module",children:(0,r.jsx)(Y,{header:"Advanced Settings",children:(0,r.jsx)("div",{className:"form-module variants-table-module",children:(0,r.jsx)(j,{})})},"1")})]})]})]})}}},function(e){e.O(0,[829,578,556,774,888,179],(function(){return n=79893,e(e.s=n);var n}));var n=e.O();_N_E=n}]); \ No newline at end of file
diff --git a/static/admin/_next/static/chunks/pages/federation/actions-a817c8d84eb2e1bf.js b/static/admin/_next/static/chunks/pages/federation/actions-a817c8d84eb2e1bf.js
new file mode 100644
index 000000000..33d062a1c
--- /dev/null
+++ b/static/admin/_next/static/chunks/pages/federation/actions-a817c8d84eb2e1bf.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[332],{6131:function(e,t,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/federation/actions",function(){return n(63646)}])},63646:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return v}});var r=n(28520),i=n.n(r),a=n(85893),o=n(67294),s=n(44068),c=n(88829),u=n(58091),l=n(58827),f=n(2766);function d(e,t,n,r,i,a,o){try{var s=e[a](o),c=s.value}catch(u){return void n(u)}s.done?t(c):Promise.resolve(c).then(r,i)}var h=s.Z.Title,p=s.Z.Paragraph;function v(){var e,t=(0,o.useState)([]),n=t[0],r=t[1],s=(e=i().mark((function e(){var t;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,(0,l.rQ)(l.op,{auth:!0});case 3:t=e.sent,(0,f.Qr)(t)?r([]):r(t),e.next=10;break;case 7:e.prev=7,e.t0=e.catch(0),console.log("==== error",e.t0);case 10:case"end":return e.stop()}}),e,null,[[0,7]])})),function(){var t=this,n=arguments;return new Promise((function(r,i){var a=e.apply(t,n);function o(e){d(a,r,i,o,s,"next",e)}function s(e){d(a,r,i,o,s,"throw",e)}o(void 0)}))});(0,o.useEffect)((function(){s()}),[]);var v,E,w=[{title:"Action",dataIndex:"type",key:"type",width:50,render:function(e,t){var n,r;switch(t.type){case"FEDIVERSE_ENGAGEMENT_REPOST":n="/img/repost.svg",r="Share";break;case"FEDIVERSE_ENGAGEMENT_LIKE":n="/img/like.svg",r="Like";break;case"FEDIVERSE_ENGAGEMENT_FOLLOW":n="/img/follow.svg",r="Follow";break;default:n=""}return(0,a.jsxs)("div",{style:{width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"center",flexDirection:"column"},children:[(0,a.jsx)("img",{src:n,width:"70%",alt:r,title:r}),(0,a.jsx)("div",{style:{fontSize:"0.7rem"},children:r})]})}},{title:"From",dataIndex:"actorIRI",key:"from",render:function(e,t){return(0,a.jsx)("a",{href:t.actorIRI,children:t.actorIRI})}},{title:"When",dataIndex:"timestamp",key:"timestamp",render:function(e,t){var n=new Date(t.timestamp);return(0,u.Z)(n,"P pp")}}];return(0,a.jsxs)("div",{children:[(0,a.jsx)(h,{level:3,children:"Fediverse Actions"}),(0,a.jsx)(p,{children:"Below is a list of actions that were taken by others in response to your posts as well as people who requested to follow you."}),(v=n,E=w,(0,a.jsx)(c.Z,{dataSource:v,columns:E,size:"small",rowKey:function(e){return e.iri},pagination:{pageSize:50}}))]})}}},function(e){e.O(0,[829,91,774,888,179],(function(){return t=6131,e(e.s=t);var t}));var t=e.O();_N_E=t}]); \ No newline at end of file
diff --git a/static/admin/_next/static/chunks/pages/federation/followers-73207b872f42b7a6.js b/static/admin/_next/static/chunks/pages/federation/followers-73207b872f42b7a6.js
new file mode 100644
index 000000000..5ae304688
--- /dev/null
+++ b/static/admin/_next/static/chunks/pages/federation/followers-73207b872f42b7a6.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[480],{1481:function(e,t,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/federation/followers",function(){return n(38403)}])},38403:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return V}});var r=n(28520),a=n.n(r),c=n(85893),i=n(67294),o=n(87462),s=n(4942),l=n(71002),u=n(97685),d=n(94184),f=n.n(d),p=n(48555),m=n(42550),h=n(59844),v=n(21687),g=n(24308),x=n(25378),y=i.createContext("default"),w=function(e){var t=e.children,n=e.size;return i.createElement(y.Consumer,null,(function(e){return i.createElement(y.Provider,{value:n||e},t)}))},k=y,b=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},j=function(e,t){var n,r,a=i.useContext(k),c=i.useState(1),d=(0,u.Z)(c,2),y=d[0],w=d[1],j=i.useState(!1),Z=(0,u.Z)(j,2),E=Z[0],S=Z[1],C=i.useState(!0),O=(0,u.Z)(C,2),P=O[0],T=O[1],z=i.useRef(),N=i.useRef(),A=(0,m.sQ)(t,z),_=i.useContext(h.E_).getPrefixCls,D=function(){if(N.current&&z.current){var t=N.current.offsetWidth,n=z.current.offsetWidth;if(0!==t&&0!==n){var r=e.gap,a=void 0===r?4:r;2*a<n&&w(n-2*a<t?(n-2*a)/t:1)}}};i.useEffect((function(){S(!0)}),[]),i.useEffect((function(){T(!0),w(1)}),[e.src]),i.useEffect((function(){D()}),[e.gap]);var I=e.prefixCls,R=e.shape,Q=e.size,F=e.src,M=e.srcSet,q=e.icon,H=e.className,B=e.alt,U=e.draggable,W=e.children,X=e.crossOrigin,K=b(e,["prefixCls","shape","size","src","srcSet","icon","className","alt","draggable","children","crossOrigin"]),Y="default"===Q?a:Q,G=(0,x.Z)(),L=i.useMemo((function(){if("object"!==(0,l.Z)(Y))return{};var e=g.c4.find((function(e){return G[e]})),t=Y[e];return t?{width:t,height:t,lineHeight:"".concat(t,"px"),fontSize:q?t/2:18}:{}}),[G,Y]);(0,v.Z)(!("string"===typeof q&&q.length>2),"Avatar","`icon` is using ReactNode instead of string naming in v4. Please check `".concat(q,"` at https://ant.design/components/icon"));var V,J=_("avatar",I),$=f()((n={},(0,s.Z)(n,"".concat(J,"-lg"),"large"===Y),(0,s.Z)(n,"".concat(J,"-sm"),"small"===Y),n)),ee=i.isValidElement(F),te=f()(J,$,(r={},(0,s.Z)(r,"".concat(J,"-").concat(R),!!R),(0,s.Z)(r,"".concat(J,"-image"),ee||F&&P),(0,s.Z)(r,"".concat(J,"-icon"),!!q),r),H),ne="number"===typeof Y?{width:Y,height:Y,lineHeight:"".concat(Y,"px"),fontSize:q?Y/2:18}:{};if("string"===typeof F&&P)V=i.createElement("img",{src:F,draggable:U,srcSet:M,onError:function(){var t=e.onError;!1!==(t?t():void 0)&&T(!1)},alt:B,crossOrigin:X});else if(ee)V=F;else if(q)V=q;else if(E||1!==y){var re="scale(".concat(y,") translateX(-50%)"),ae={msTransform:re,WebkitTransform:re,transform:re},ce="number"===typeof Y?{lineHeight:"".concat(Y,"px")}:{};V=i.createElement(p.default,{onResize:D},i.createElement("span",{className:"".concat(J,"-string"),ref:function(e){N.current=e},style:(0,o.Z)((0,o.Z)({},ce),ae)},W))}else V=i.createElement("span",{className:"".concat(J,"-string"),style:{opacity:0},ref:function(e){N.current=e}},W);return delete K.onError,delete K.gap,i.createElement("span",(0,o.Z)({},K,{style:(0,o.Z)((0,o.Z)((0,o.Z)({},ne),L),K.style),className:te,ref:A}),V)},Z=i.forwardRef(j);Z.displayName="Avatar",Z.defaultProps={shape:"circle",size:"default"};var E=Z,S=n(50344),C=n(96159),O=n(55241),P=function(e){var t=i.useContext(h.E_),n=t.getPrefixCls,r=t.direction,a=e.prefixCls,c=e.className,o=void 0===c?"":c,l=e.maxCount,u=e.maxStyle,d=e.size,p=n("avatar-group",a),m=f()(p,(0,s.Z)({},"".concat(p,"-rtl"),"rtl"===r),o),v=e.children,g=e.maxPopoverPlacement,x=void 0===g?"top":g,y=e.maxPopoverTrigger,k=void 0===y?"hover":y,b=(0,S.Z)(v).map((function(e,t){return(0,C.Tm)(e,{key:"avatar-key-".concat(t)})})),j=b.length;if(l&&l<j){var Z=b.slice(0,l),P=b.slice(l,j);return Z.push(i.createElement(O.Z,{key:"avatar-popover-key",content:P,trigger:k,placement:x,overlayClassName:"".concat(p,"-popover")},i.createElement(E,{style:u},"+".concat(j-l)))),i.createElement(w,{size:d},i.createElement("div",{className:m,style:e.style},Z))}return i.createElement(w,{size:d},i.createElement("div",{className:m,style:e.style},b))},T=E;T.Group=P;var z=T,N=n(87961),A=n(88829),_=n(71577),D=n(58091),I=n(1413),R={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M678.3 642.4c24.2-13 51.9-20.4 81.4-20.4h.1c3 0 4.4-3.6 2.2-5.6a371.67 371.67 0 00-103.7-65.8c-.4-.2-.8-.3-1.2-.5C719.2 505 759.6 431.7 759.6 349c0-137-110.8-248-247.5-248S264.7 212 264.7 349c0 82.7 40.4 156 102.6 201.1-.4.2-.8.3-1.2.5-44.7 18.9-84.8 46-119.3 80.6a373.42 373.42 0 00-80.4 119.5A373.6 373.6 0 00137 888.8a8 8 0 008 8.2h59.9c4.3 0 7.9-3.5 8-7.8 2-77.2 32.9-149.5 87.6-204.3C357 628.2 432.2 597 512.2 597c56.7 0 111.1 15.7 158 45.1a8.1 8.1 0 008.1.3zM512.2 521c-45.8 0-88.9-17.9-121.4-50.4A171.2 171.2 0 01340.5 349c0-45.9 17.9-89.1 50.3-121.6S466.3 177 512.2 177s88.9 17.9 121.4 50.4A171.2 171.2 0 01683.9 349c0 45.9-17.9 89.1-50.3 121.6C601.1 503.1 558 521 512.2 521zM880 759h-84v-84c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v84h-84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h84v84c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-84h84c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z"}}]},name:"user-add",theme:"outlined"},Q=n(42135),F=function(e,t){return i.createElement(Q.Z,(0,I.Z)((0,I.Z)({},e),{},{ref:t,icon:R}))};F.displayName="UserAddOutlined";var M=i.forwardRef(F),q={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M678.3 655.4c24.2-13 51.9-20.4 81.4-20.4h.1c3 0 4.4-3.6 2.2-5.6a371.67 371.67 0 00-103.7-65.8c-.4-.2-.8-.3-1.2-.5C719.2 518 759.6 444.7 759.6 362c0-137-110.8-248-247.5-248S264.7 225 264.7 362c0 82.7 40.4 156 102.6 201.1-.4.2-.8.3-1.2.5-44.7 18.9-84.8 46-119.3 80.6a373.42 373.42 0 00-80.4 119.5A373.6 373.6 0 00137 901.8a8 8 0 008 8.2h59.9c4.3 0 7.9-3.5 8-7.8 2-77.2 32.9-149.5 87.6-204.3C357 641.2 432.2 610 512.2 610c56.7 0 111.1 15.7 158 45.1a8.1 8.1 0 008.1.3zM512.2 534c-45.8 0-88.9-17.9-121.4-50.4A171.2 171.2 0 01340.5 362c0-45.9 17.9-89.1 50.3-121.6S466.3 190 512.2 190s88.9 17.9 121.4 50.4A171.2 171.2 0 01683.9 362c0 45.9-17.9 89.1-50.3 121.6C601.1 516.1 558 534 512.2 534zM880 772H640c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h240c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z"}}]},name:"user-delete",theme:"outlined"},H=function(e,t){return i.createElement(Q.Z,(0,I.Z)((0,I.Z)({},e),{},{ref:t,icon:q}))};H.displayName="UserDeleteOutlined";var B=i.forwardRef(H),U=n(35159),W=n(58827),X=n(2766);function K(e,t,n,r,a,c,i){try{var o=e[c](i),s=o.value}catch(l){return void n(l)}o.done?t(s):Promise.resolve(s).then(r,a)}function Y(e){return function(){var t=this,n=arguments;return new Promise((function(r,a){var c=e.apply(t,n);function i(e){K(c,r,a,i,o,"next",e)}function o(e){K(c,r,a,i,o,"throw",e)}i(void 0)}))}}function G(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}var L=N.Z.TabPane;function V(){var e=function(e,t){return(0,c.jsx)(A.Z,{dataSource:e,columns:t,size:"small",rowKey:function(e){return e.link},pagination:{pageSize:20}})},t=(0,i.useState)([]),n=t[0],r=t[1],o=(0,i.useState)([]),s=o[0],l=o[1],u=(0,i.useState)([]),d=u[0],f=u[1],p=((0,i.useContext)(U.aC)||{}).serverConfig.federation.isPrivate,m=Y(a().mark((function e(){var t,n,c;return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,(0,W.rQ)(W.HP,{auth:!0});case 3:return t=e.sent,(0,X.Qr)(t)?f([]):f(t),e.next=7,(0,W.rQ)(W.E8,{auth:!0});case 7:return n=e.sent,(0,X.Qr)(n)?r([]):r(n),e.next=11,(0,W.rQ)(W.Y9,{auth:!0});case 11:c=e.sent,(0,X.Qr)(s)?l([]):l(c),e.next=18;break;case 15:e.prev=15,e.t0=e.catch(0),console.log("==== error",e.t0);case 18:case"end":return e.stop()}}),e,null,[[0,15]])})));(0,i.useEffect)((function(){m()}),[]);var h=[{title:"",dataIndex:"image",key:"image",width:90,render:function(e){return(0,c.jsx)(z,{size:40,src:e||"/img/logo.svg"})}},{title:"Name",dataIndex:"name",key:"name",render:function(e,t){return(0,c.jsx)("a",{href:t.link,target:"_blank",rel:"noreferrer",children:t.name||t.username})}},{title:"URL",dataIndex:"link",key:"link",render:function(e,t){return(0,c.jsx)("a",{href:t.link,target:"_blank",rel:"noreferrer",children:t.link})}}];function v(e){return g.apply(this,arguments)}function g(){return(g=Y(a().mark((function e(t){return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,(0,W.rQ)(W.kb,{auth:!0,method:"POST",data:{actorIRI:t.link,approved:!0}});case 3:m(),e.next=9;break;case 6:e.prev=6,e.t0=e.catch(0),console.error(e.t0);case 9:case"end":return e.stop()}}),e,null,[[0,6]])})))).apply(this,arguments)}function x(e){return y.apply(this,arguments)}function y(){return(y=Y(a().mark((function e(t){return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,(0,W.rQ)(W.kb,{auth:!0,method:"POST",data:{actorIRI:t.link,approved:!1}});case 3:m(),e.next=9;break;case 6:e.prev=6,e.t0=e.catch(0),console.error(e.t0);case 9:case"end":return e.stop()}}),e,null,[[0,6]])})))).apply(this,arguments)}var w=G(h);w.unshift({title:"Approve",dataIndex:null,key:null,render:function(e){return(0,c.jsx)(_.Z,{type:"primary",icon:(0,c.jsx)(M,{}),onClick:function(){v(e)}})},width:50},{title:"Reject",dataIndex:null,key:null,render:function(e){return(0,c.jsx)(_.Z,{type:"primary",danger:!0,icon:(0,c.jsx)(B,{}),onClick:function(){x(e)}})},width:50}),w.push({title:"Requested",dataIndex:"timestamp",key:"requested",width:200,render:function(e){var t=new Date(e);return(0,c.jsx)(c.Fragment,{children:(0,D.Z)(t,"P")})},sorter:function(e,t){return new Date(e.timestamp).getTime()-new Date(t.timestamp).getTime()},sortDirections:["descend","ascend"],defaultSortOrder:"descend"});var k=G(h);k.unshift({title:"Approve",dataIndex:null,key:null,render:function(e){return(0,c.jsx)(_.Z,{type:"primary",icon:(0,c.jsx)(M,{}),size:"large",onClick:function(){v(e)}})},width:50}),k.push({title:"Requested",dataIndex:"timestamp",key:"requested",width:200,render:function(e){var t=new Date(e);return(0,c.jsx)(c.Fragment,{children:(0,D.Z)(t,"P")})},sorter:function(e,t){return new Date(e.timestamp).getTime()-new Date(t.timestamp).getTime()},sortDirections:["descend","ascend"],defaultSortOrder:"descend"},{title:"Rejected/Blocked",dataIndex:"timestamp",key:"disabled_at",width:200,render:function(e){var t=new Date(e);return(0,c.jsx)(c.Fragment,{children:(0,D.Z)(t,"P")})},sorter:function(e,t){return new Date(e.timestamp).getTime()-new Date(t.timestamp).getTime()},sortDirections:["descend","ascend"],defaultSortOrder:"descend"});var b=G(h);b.push({title:"Added",dataIndex:"timestamp",key:"timestamp",width:200,render:function(e){var t=new Date(e);return(0,c.jsx)(c.Fragment,{children:(0,D.Z)(t,"P")})},sorter:function(e,t){return new Date(e.timestamp).getTime()-new Date(t.timestamp).getTime()},sortDirections:["descend","ascend"],defaultSortOrder:"descend"},{title:"Remove",dataIndex:null,key:null,render:function(e){return(0,c.jsx)(_.Z,{type:"primary",danger:!0,icon:(0,c.jsx)(B,{}),onClick:function(){x(e)}})},width:50});var j=p&&(0,c.jsxs)(L,{tab:(0,c.jsxs)("span",{children:["Requests ",n.length>0&&"(".concat(n.length,")")]}),children:[(0,c.jsxs)("p",{children:["The following people are requesting to follow your Owncast server on the"," ",(0,c.jsx)("a",{href:"https://en.wikipedia.org/wiki/Fediverse",target:"_blank",rel:"noopener noreferrer",children:"Fediverse"})," ","and be alerted to when you go live. Each must be approved."]}),e(n,w)]},"2");return(0,c.jsx)("div",{className:"followers-section",children:(0,c.jsxs)(N.Z,{defaultActiveKey:"1",children:[(0,c.jsxs)(L,{tab:(0,c.jsxs)("span",{children:["Followers ",d.length>0&&"(".concat(d.length,")")]}),children:[(0,c.jsx)("p",{children:"The following accounts get notified when you go live or send a post."}),e(d,b)," "]},"1"),j,(0,c.jsxs)(L,{tab:(0,c.jsxs)("span",{children:["Blocked ",s.length>0&&"(".concat(s.length,")")]}),children:[(0,c.jsx)("p",{children:"The following people were either rejected or blocked by you. You can approve them as a follower."}),(0,c.jsx)("p",{children:e(s,k)})]},"3")]})})}}},function(e){e.O(0,[829,91,961,774,888,179],(function(){return t=1481,e(e.s=t);var t}));var t=e.O();_N_E=t}]); \ No newline at end of file
diff --git a/static/admin/_next/static/chunks/pages/hardware-info-4094e416071b6cb5.js b/static/admin/_next/static/chunks/pages/hardware-info-4dcdf4aa6510006e.js
index a1745e286..933b781b3 100644
--- a/static/admin/_next/static/chunks/pages/hardware-info-4094e416071b6cb5.js
+++ b/static/admin/_next/static/chunks/pages/hardware-info-4dcdf4aa6510006e.js
@@ -1 +1 @@
-(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[177],{94194:function(e,t,r){(window.__NEXT_P=window.__NEXT_P||[]).push(["/hardware-info",function(){return r(61003)}])},89270:function(e,t,r){"use strict";r.d(t,{Z:function(){return s}});var n=r(85893),o=r(31877),c=r(92616),a=r.n(c),l=r(58091),i=r(60727);function u(e){var t={};return e.forEach((function(e){var r=new Date(e.time),n=(0,l.Z)(r,"H:mma");t[n]=e.value})),t}function s(e){var t=e.data,r=e.title,o=e.color,c=e.unit,a=e.dataCollections,l=[];return t&&t.length>0&&l.push({name:r,color:o,data:u(t)}),a.forEach((function(e){l.push({name:e.name,data:u(e.data),color:e.color})})),(0,n.jsx)("div",{className:"line-chart-container",children:(0,n.jsx)(i.wW,{xtitle:"Time",ytitle:r,suffix:c,legend:"bottom",color:o,data:l,download:r})})}a().use(o.Z),s.defaultProps={dataCollections:[],data:[],title:""}},34440:function(e,t,r){"use strict";r.d(t,{Z:function(){return p}});var n=r(85893),o=r(17256),c=r(97910),a=r(74763),l=r(97751);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function u(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"===typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){i(e,t,r[t])}))}return e}var s=o.Z.Text,f={title:"",value:0,prefix:null,color:"",progress:!1,centered:!1,formatter:null};function d(e){var t=e.title,r=e.value,o=e.prefix,a=e.color,l=r>90?"red":a,i=(0,n.jsxs)("div",{children:[o,(0,n.jsx)("div",{children:(0,n.jsx)(s,{type:"secondary",children:t})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s,{type:"secondary",children:[r,"%"]})})]});return(0,n.jsx)(c.Z,{type:"dashboard",percent:r,width:120,strokeColor:{"0%":a,"90%":l},format:function(){return i}})}function v(e){var t=e.title,r=e.value,o=e.prefix,c=e.formatter;return(0,n.jsx)(a.Z,{title:t,value:r,prefix:o,formatter:c})}function p(e){var t=e.progress?d:v,r=e.centered?{display:"flex",alignItems:"center",justifyContent:"center"}:{};return(0,n.jsx)(l.Z,{type:"inner",children:(0,n.jsx)("div",{style:r,children:(0,n.jsx)(t,u({},e))})})}d.defaultProps=f,v.defaultProps=f,p.defaultProps=f},61003:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return k}});var n=r(28520),o=r.n(n),c=r(85893),a=r(1413),l=r(67294),i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M956.9 845.1L896.4 632V168c0-17.7-14.3-32-32-32h-704c-17.7 0-32 14.3-32 32v464L67.9 845.1C60.4 866 75.8 888 98 888h828.8c22.2 0 37.6-22 30.1-42.9zM200.4 208h624v395h-624V208zm228.3 608l8.1-37h150.3l8.1 37H428.7zm224 0l-19.1-86.7c-.8-3.7-4.1-6.3-7.8-6.3H398.2c-3.8 0-7 2.6-7.8 6.3L371.3 816H151l42.3-149h638.2l42.3 149H652.7z"}}]},name:"laptop",theme:"outlined"},u=r(42135),s=function(e,t){return l.createElement(u.Z,(0,a.Z)((0,a.Z)({},e),{},{ref:t,icon:i}))};s.displayName="LaptopOutlined";var f=l.forwardRef(s),d={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M632 888H392c-4.4 0-8 3.6-8 8v32c0 17.7 14.3 32 32 32h192c17.7 0 32-14.3 32-32v-32c0-4.4-3.6-8-8-8zM512 64c-181.1 0-328 146.9-328 328 0 121.4 66 227.4 164 284.1V792c0 17.7 14.3 32 32 32h264c17.7 0 32-14.3 32-32V676.1c98-56.7 164-162.7 164-284.1 0-181.1-146.9-328-328-328zm127.9 549.8L604 634.6V752H420V634.6l-35.9-20.8C305.4 568.3 256 484.5 256 392c0-141.4 114.6-256 256-256s256 114.6 256 256c0 92.5-49.4 176.3-128.1 221.8z"}}]},name:"bulb",theme:"outlined"},v=function(e,t){return l.createElement(u.Z,(0,a.Z)((0,a.Z)({},e),{},{ref:t,icon:d}))};v.displayName="BulbOutlined";var p=l.forwardRef(v),h={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M893.3 293.3L730.7 130.7c-7.5-7.5-16.7-13-26.7-16V112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 184h256v104H384V184zm456 656H184V184h136v136c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V205.8l136 136V840zM512 442c-79.5 0-144 64.5-144 144s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144zm0 224c-44.2 0-80-35.8-80-80s35.8-80 80-80 80 35.8 80 80-35.8 80-80 80z"}}]},name:"save",theme:"outlined"},m=function(e,t){return l.createElement(u.Z,(0,a.Z)((0,a.Z)({},e),{},{ref:t,icon:h}))};m.displayName="SaveOutlined";var x=l.forwardRef(m),y=r(17256),j=r(25968),g=r(6226),b=r(58827),w=r(89270),Z=r(34440);function O(e,t,r,n,o,c,a){try{var l=e[c](a),i=l.value}catch(u){return void r(u)}l.done?t(i):Promise.resolve(i).then(n,o)}function P(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function E(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"===typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){P(e,t,r[t])}))}return e}function k(){var e,t,r,n,a=(0,l.useState)({cpu:[],memory:[],disk:[],message:""}),i=a[0],u=a[1],s=(n=o().mark((function e(){var t;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,(0,b.rQ)(b.nx);case 3:t=e.sent,u(E({},t)),e.next=10;break;case 7:e.prev=7,e.t0=e.catch(0),u(E({},i,{message:e.t0.message}));case 10:case"end":return e.stop()}}),e,null,[[0,7]])})),function(){var e=this,t=arguments;return new Promise((function(r,o){var c=n.apply(e,t);function a(e){O(c,r,o,a,l,"next",e)}function l(e){O(c,r,o,a,l,"throw",e)}a(void 0)}))});if((0,l.useEffect)((function(){var e;return s(),e=setInterval(s,b.NE),function(){clearInterval(e)}}),[]),!i.cpu)return null;var d=null===(e=i.cpu[i.cpu.length-1])||void 0===e?void 0:e.value,v=null===(t=i.memory[i.memory.length-1])||void 0===t?void 0:t.value,h=null===(r=i.disk[i.disk.length-1])||void 0===r?void 0:r.value,m=[{name:"CPU",color:"#B63FFF",data:i.cpu},{name:"Memory",color:"#2087E2",data:i.memory},{name:"Disk",color:"#FF7700",data:i.disk}];return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(y.Z.Title,{children:"Hardware Info"}),(0,c.jsx)("br",{}),(0,c.jsxs)("div",{children:[(0,c.jsxs)(j.Z,{gutter:[16,16],justify:"space-around",children:[(0,c.jsx)(g.Z,{children:(0,c.jsx)(Z.Z,{title:m[0].name,value:"".concat(d||0),prefix:(0,c.jsx)(f,{style:{color:m[0].color}}),color:m[0].color,progress:!0,centered:!0})}),(0,c.jsx)(g.Z,{children:(0,c.jsx)(Z.Z,{title:m[1].name,value:"".concat(v||0),prefix:(0,c.jsx)(p,{style:{color:m[1].color}}),color:m[1].color,progress:!0,centered:!0})}),(0,c.jsx)(g.Z,{children:(0,c.jsx)(Z.Z,{title:m[2].name,value:"".concat(h||0),prefix:(0,c.jsx)(x,{style:{color:m[2].color}}),color:m[2].color,progress:!0,centered:!0})})]}),(0,c.jsx)(w.Z,{title:"% used",dataCollections:m,color:"#FF7700",unit:"%"})]})]})}}},function(e){e.O(0,[570,91,903,102,910,958,774,888,179],(function(){return t=94194,e(e.s=t);var t}));var t=e.O();_N_E=t}]); \ No newline at end of file
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[177],{94194:function(e,t,r){(window.__NEXT_P=window.__NEXT_P||[]).push(["/hardware-info",function(){return r(61003)}])},89270:function(e,t,r){"use strict";r.d(t,{Z:function(){return s}});var n=r(85893),o=r(31877),c=r(92616),a=r.n(c),l=r(58091),i=r(60727);function u(e){var t={};return e.forEach((function(e){var r=new Date(e.time),n=(0,l.Z)(r,"H:mma");t[n]=e.value})),t}function s(e){var t=e.data,r=e.title,o=e.color,c=e.unit,a=e.dataCollections,l=[];return t&&t.length>0&&l.push({name:r,color:o,data:u(t)}),a.forEach((function(e){l.push({name:e.name,data:u(e.data),color:e.color})})),(0,n.jsx)("div",{className:"line-chart-container",children:(0,n.jsx)(i.wW,{xtitle:"Time",ytitle:r,suffix:c,legend:"bottom",color:o,data:l,download:r})})}a().use(o.Z),s.defaultProps={dataCollections:[],data:[],title:""}},34440:function(e,t,r){"use strict";r.d(t,{Z:function(){return p}});var n=r(85893),o=r(44068),c=r(97910),a=r(74763),l=r(97751);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function u(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"===typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){i(e,t,r[t])}))}return e}var s=o.Z.Text,f={title:"",value:0,prefix:null,color:"",progress:!1,centered:!1,formatter:null};function d(e){var t=e.title,r=e.value,o=e.prefix,a=e.color,l=r>90?"red":a,i=(0,n.jsxs)("div",{children:[o,(0,n.jsx)("div",{children:(0,n.jsx)(s,{type:"secondary",children:t})}),(0,n.jsx)("div",{children:(0,n.jsxs)(s,{type:"secondary",children:[r,"%"]})})]});return(0,n.jsx)(c.Z,{type:"dashboard",percent:r,width:120,strokeColor:{"0%":a,"90%":l},format:function(){return i}})}function v(e){var t=e.title,r=e.value,o=e.prefix,c=e.formatter;return(0,n.jsx)(a.Z,{title:t,value:r,prefix:o,formatter:c})}function p(e){var t=e.progress?d:v,r=e.centered?{display:"flex",alignItems:"center",justifyContent:"center"}:{};return(0,n.jsx)(l.Z,{type:"inner",children:(0,n.jsx)("div",{style:r,children:(0,n.jsx)(t,u({},e))})})}d.defaultProps=f,v.defaultProps=f,p.defaultProps=f},61003:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return k}});var n=r(28520),o=r.n(n),c=r(85893),a=r(1413),l=r(67294),i={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M956.9 845.1L896.4 632V168c0-17.7-14.3-32-32-32h-704c-17.7 0-32 14.3-32 32v464L67.9 845.1C60.4 866 75.8 888 98 888h828.8c22.2 0 37.6-22 30.1-42.9zM200.4 208h624v395h-624V208zm228.3 608l8.1-37h150.3l8.1 37H428.7zm224 0l-19.1-86.7c-.8-3.7-4.1-6.3-7.8-6.3H398.2c-3.8 0-7 2.6-7.8 6.3L371.3 816H151l42.3-149h638.2l42.3 149H652.7z"}}]},name:"laptop",theme:"outlined"},u=r(42135),s=function(e,t){return l.createElement(u.Z,(0,a.Z)((0,a.Z)({},e),{},{ref:t,icon:i}))};s.displayName="LaptopOutlined";var f=l.forwardRef(s),d={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M632 888H392c-4.4 0-8 3.6-8 8v32c0 17.7 14.3 32 32 32h192c17.7 0 32-14.3 32-32v-32c0-4.4-3.6-8-8-8zM512 64c-181.1 0-328 146.9-328 328 0 121.4 66 227.4 164 284.1V792c0 17.7 14.3 32 32 32h264c17.7 0 32-14.3 32-32V676.1c98-56.7 164-162.7 164-284.1 0-181.1-146.9-328-328-328zm127.9 549.8L604 634.6V752H420V634.6l-35.9-20.8C305.4 568.3 256 484.5 256 392c0-141.4 114.6-256 256-256s256 114.6 256 256c0 92.5-49.4 176.3-128.1 221.8z"}}]},name:"bulb",theme:"outlined"},v=function(e,t){return l.createElement(u.Z,(0,a.Z)((0,a.Z)({},e),{},{ref:t,icon:d}))};v.displayName="BulbOutlined";var p=l.forwardRef(v),h={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M893.3 293.3L730.7 130.7c-7.5-7.5-16.7-13-26.7-16V112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 184h256v104H384V184zm456 656H184V184h136v136c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V205.8l136 136V840zM512 442c-79.5 0-144 64.5-144 144s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144zm0 224c-44.2 0-80-35.8-80-80s35.8-80 80-80 80 35.8 80 80-35.8 80-80 80z"}}]},name:"save",theme:"outlined"},m=function(e,t){return l.createElement(u.Z,(0,a.Z)((0,a.Z)({},e),{},{ref:t,icon:h}))};m.displayName="SaveOutlined";var x=l.forwardRef(m),y=r(44068),j=r(25968),g=r(6226),b=r(58827),w=r(89270),Z=r(34440);function O(e,t,r,n,o,c,a){try{var l=e[c](a),i=l.value}catch(u){return void r(u)}l.done?t(i):Promise.resolve(i).then(n,o)}function P(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function E(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"===typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){P(e,t,r[t])}))}return e}function k(){var e,t,r,n,a=(0,l.useState)({cpu:[],memory:[],disk:[],message:""}),i=a[0],u=a[1],s=(n=o().mark((function e(){var t;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,(0,b.rQ)(b.nx);case 3:t=e.sent,u(E({},t)),e.next=10;break;case 7:e.prev=7,e.t0=e.catch(0),u(E({},i,{message:e.t0.message}));case 10:case"end":return e.stop()}}),e,null,[[0,7]])})),function(){var e=this,t=arguments;return new Promise((function(r,o){var c=n.apply(e,t);function a(e){O(c,r,o,a,l,"next",e)}function l(e){O(c,r,o,a,l,"throw",e)}a(void 0)}))});if((0,l.useEffect)((function(){var e;return s(),e=setInterval(s,b.NE),function(){clearInterval(e)}}),[]),!i.cpu)return null;var d=null===(e=i.cpu[i.cpu.length-1])||void 0===e?void 0:e.value,v=null===(t=i.memory[i.memory.length-1])||void 0===t?void 0:t.value,h=null===(r=i.disk[i.disk.length-1])||void 0===r?void 0:r.value,m=[{name:"CPU",color:"#B63FFF",data:i.cpu},{name:"Memory",color:"#2087E2",data:i.memory},{name:"Disk",color:"#FF7700",data:i.disk}];return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(y.Z.Title,{children:"Hardware Info"}),(0,c.jsx)("br",{}),(0,c.jsxs)("div",{children:[(0,c.jsxs)(j.Z,{gutter:[16,16],justify:"space-around",children:[(0,c.jsx)(g.Z,{children:(0,c.jsx)(Z.Z,{title:m[0].name,value:"".concat(d||0),prefix:(0,c.jsx)(f,{style:{color:m[0].color}}),color:m[0].color,progress:!0,centered:!0})}),(0,c.jsx)(g.Z,{children:(0,c.jsx)(Z.Z,{title:m[1].name,value:"".concat(v||0),prefix:(0,c.jsx)(p,{style:{color:m[1].color}}),color:m[1].color,progress:!0,centered:!0})}),(0,c.jsx)(g.Z,{children:(0,c.jsx)(Z.Z,{title:m[2].name,value:"".concat(h||0),prefix:(0,c.jsx)(x,{style:{color:m[2].color}}),color:m[2].color,progress:!0,centered:!0})})]}),(0,c.jsx)(w.Z,{title:"% used",dataCollections:m,color:"#FF7700",unit:"%"})]})]})}}},function(e){e.O(0,[570,91,961,751,763,910,958,774,888,179],(function(){return t=94194,e(e.s=t);var t}));var t=e.O();_N_E=t}]); \ No newline at end of file
diff --git a/static/admin/_next/static/chunks/pages/help-c7fc342e125a5d6b.js b/static/admin/_next/static/chunks/pages/help-3dd6da50dde27e48.js
index 48c54928a..f741b5c66 100644
--- a/static/admin/_next/static/chunks/pages/help-c7fc342e125a5d6b.js
+++ b/static/admin/_next/static/chunks/pages/help-3dd6da50dde27e48.js
@@ -1 +1 @@
-(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[233],{44156:function(e,n,t){(window.__NEXT_P=window.__NEXT_P||[]).push(["/help",function(){return t(54712)}])},54712:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return y}});var r=t(85893),o=t(25968),s=t(6226),i=t(33859),l=t(71577),a=t(27049),c=t(97751),d=t(89281),h=t(11700),x=t(90543),u=t(29158),j=t(38958),p=t(17502),f=t(65987),g=t(99767),w=t(30925),Z=t(80869),m=t(43439),b=t(99906);t(67294);function y(){var e=[{icon:(0,r.jsx)(x.Z,{style:{fontSize:"24px"}}),title:"I want to configure my owncast instance",content:(0,r.jsx)("div",{children:(0,r.jsxs)("a",{href:"https://owncast.online/docs/configuration/?source=admin",target:"_blank",rel:"noopener noreferrer",children:[(0,r.jsx)(u.Z,{})," Learn more"]})})},{icon:(0,r.jsx)(j.Z,{style:{fontSize:"24px"}}),title:"Help configuring my broadcasting software",content:(0,r.jsx)("div",{children:(0,r.jsxs)("a",{href:"https://owncast.online/docs/broadcasting/?source=admin",target:"_blank",rel:"noopener noreferrer",children:[(0,r.jsx)(u.Z,{})," Learn more"]})})},{icon:(0,r.jsx)(p.Z,{style:{fontSize:"24px"}}),title:"I want to embed my stream into another site",content:(0,r.jsx)("div",{children:(0,r.jsxs)("a",{href:"https://owncast.online/docs/embed/?source=admin",target:"_blank",rel:"noopener noreferrer",children:[(0,r.jsx)(u.Z,{})," Learn more"]})})},{icon:(0,r.jsx)(f.Z,{style:{fontSize:"24px"}}),title:"I want to customize my website",content:(0,r.jsx)("div",{children:(0,r.jsxs)("a",{href:"https://owncast.online/docs/website/?source=admin",target:"_blank",rel:"noopener noreferrer",children:[(0,r.jsx)(u.Z,{})," Learn more"]})})},{icon:(0,r.jsx)(g.Z,{style:{fontSize:"24px"}}),title:"I want to tweak my video output",content:(0,r.jsx)("div",{children:(0,r.jsxs)("a",{href:"https://owncast.online/docs/encoding/?source=admin",target:"_blank",rel:"noopener noreferrer",children:[(0,r.jsx)(u.Z,{})," Learn more"]})})},{icon:(0,r.jsx)(w.Z,{style:{fontSize:"24px"}}),title:"I want to use an external storage provider",content:(0,r.jsx)("div",{children:(0,r.jsxs)("a",{href:"https://owncast.online/docs/storage/?source=admin",target:"_blank",rel:"noopener noreferrer",children:[(0,r.jsx)(u.Z,{})," Learn more"]})})}],n=[{icon:(0,r.jsx)(Z.Z,{style:{fontSize:"24px"}}),title:"I found a bug",content:(0,r.jsxs)("div",{children:["If you found a bug, then please",(0,r.jsxs)("a",{href:"https://github.com/owncast/owncast/issues/new/choose",target:"_blank",rel:"noopener noreferrer",children:[" ","let us know"]})]})},{icon:(0,r.jsx)(m.Z,{style:{fontSize:"24px"}}),title:"I have a general question",content:(0,r.jsxs)("div",{children:["Most general questions are answered in our",(0,r.jsxs)("a",{href:"https://owncast.online/docs/faq/?source=admin",target:"_blank",rel:"noopener noreferrer",children:[" ","FAQ"]})," ","or exist in our"," ",(0,r.jsx)("a",{href:"https://github.com/owncast/owncast/discussions",target:"_blank",rel:"noopener noreferrer",children:"discussions"})]})},{icon:(0,r.jsx)(b.Z,{style:{fontSize:"24px"}}),title:"I want to build add-ons for Owncast",content:(0,r.jsxs)("div",{children:["You can build your own bots, overlays, tools and add-ons with our",(0,r.jsx)("a",{href:"https://owncast.online/thirdparty?source=admin",target:"_blank",rel:"noopener noreferrer",children:"\xa0developer APIs.\xa0"})]})}];return(0,r.jsxs)("div",{className:"help-page",children:[(0,r.jsx)(h.Z,{style:{textAlign:"center"},children:"How can we help you?"}),(0,r.jsxs)(o.Z,{gutter:[16,16],justify:"space-around",align:"middle",children:[(0,r.jsxs)(s.Z,{xs:24,lg:12,style:{textAlign:"center"},children:[(0,r.jsx)(i.ZP,{status:"500"}),(0,r.jsx)(h.Z,{level:2,children:"Troubleshooting"}),(0,r.jsx)(l.Z,{target:"_blank",rel:"noopener noreferrer",href:"https://owncast.online/docs/troubleshooting/?source=admin",icon:(0,r.jsx)(u.Z,{}),type:"primary",children:"Fix your problems"})]}),(0,r.jsxs)(s.Z,{xs:24,lg:12,style:{textAlign:"center"},children:[(0,r.jsx)(i.ZP,{status:"404"}),(0,r.jsx)(h.Z,{level:2,children:"Documentation"}),(0,r.jsx)(l.Z,{target:"_blank",rel:"noopener noreferrer",href:"https://owncast.online/docs?source=admin",icon:(0,r.jsx)(u.Z,{}),type:"primary",children:"Read the Docs"})]})]}),(0,r.jsx)(a.Z,{}),(0,r.jsx)(h.Z,{level:2,children:"Common tasks"}),(0,r.jsx)(o.Z,{gutter:[16,16],children:e.map((function(e){return(0,r.jsx)(s.Z,{xs:24,lg:12,children:(0,r.jsx)(c.Z,{children:(0,r.jsx)(d.Z,{avatar:e.icon,title:e.title,description:e.content})})},e.title)}))}),(0,r.jsx)(a.Z,{}),(0,r.jsx)(h.Z,{level:2,children:"Other"}),(0,r.jsx)(o.Z,{gutter:[16,16],children:n.map((function(e){return(0,r.jsx)(s.Z,{xs:24,lg:12,children:(0,r.jsx)(c.Z,{children:(0,r.jsx)(d.Z,{avatar:e.icon,title:e.title,description:e.content})})},e.title)}))})]})}}},function(e){e.O(0,[903,92,774,888,179],(function(){return n=44156,e(e.s=n);var n}));var n=e.O();_N_E=n}]); \ No newline at end of file
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[233],{44156:function(e,n,t){(window.__NEXT_P=window.__NEXT_P||[]).push(["/help",function(){return t(54712)}])},54712:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return y}});var r=t(85893),o=t(25968),s=t(6226),i=t(33859),l=t(71577),a=t(27049),c=t(97751),d=t(89281),h=t(11700),x=t(90543),u=t(29158),j=t(38958),p=t(17502),f=t(65987),g=t(99767),w=t(30925),Z=t(80869),m=t(43439),b=t(99906);t(67294);function y(){var e=[{icon:(0,r.jsx)(x.Z,{style:{fontSize:"24px"}}),title:"I want to configure my owncast instance",content:(0,r.jsx)("div",{children:(0,r.jsxs)("a",{href:"https://owncast.online/docs/configuration/?source=admin",target:"_blank",rel:"noopener noreferrer",children:[(0,r.jsx)(u.Z,{})," Learn more"]})})},{icon:(0,r.jsx)(j.Z,{style:{fontSize:"24px"}}),title:"Help configuring my broadcasting software",content:(0,r.jsx)("div",{children:(0,r.jsxs)("a",{href:"https://owncast.online/docs/broadcasting/?source=admin",target:"_blank",rel:"noopener noreferrer",children:[(0,r.jsx)(u.Z,{})," Learn more"]})})},{icon:(0,r.jsx)(p.Z,{style:{fontSize:"24px"}}),title:"I want to embed my stream into another site",content:(0,r.jsx)("div",{children:(0,r.jsxs)("a",{href:"https://owncast.online/docs/embed/?source=admin",target:"_blank",rel:"noopener noreferrer",children:[(0,r.jsx)(u.Z,{})," Learn more"]})})},{icon:(0,r.jsx)(f.Z,{style:{fontSize:"24px"}}),title:"I want to customize my website",content:(0,r.jsx)("div",{children:(0,r.jsxs)("a",{href:"https://owncast.online/docs/website/?source=admin",target:"_blank",rel:"noopener noreferrer",children:[(0,r.jsx)(u.Z,{})," Learn more"]})})},{icon:(0,r.jsx)(g.Z,{style:{fontSize:"24px"}}),title:"I want to tweak my video output",content:(0,r.jsx)("div",{children:(0,r.jsxs)("a",{href:"https://owncast.online/docs/encoding/?source=admin",target:"_blank",rel:"noopener noreferrer",children:[(0,r.jsx)(u.Z,{})," Learn more"]})})},{icon:(0,r.jsx)(w.Z,{style:{fontSize:"24px"}}),title:"I want to use an external storage provider",content:(0,r.jsx)("div",{children:(0,r.jsxs)("a",{href:"https://owncast.online/docs/storage/?source=admin",target:"_blank",rel:"noopener noreferrer",children:[(0,r.jsx)(u.Z,{})," Learn more"]})})}],n=[{icon:(0,r.jsx)(Z.Z,{style:{fontSize:"24px"}}),title:"I found a bug",content:(0,r.jsxs)("div",{children:["If you found a bug, then please",(0,r.jsxs)("a",{href:"https://github.com/owncast/owncast/issues/new/choose",target:"_blank",rel:"noopener noreferrer",children:[" ","let us know"]})]})},{icon:(0,r.jsx)(m.Z,{style:{fontSize:"24px"}}),title:"I have a general question",content:(0,r.jsxs)("div",{children:["Most general questions are answered in our",(0,r.jsxs)("a",{href:"https://owncast.online/docs/faq/?source=admin",target:"_blank",rel:"noopener noreferrer",children:[" ","FAQ"]})," ","or exist in our"," ",(0,r.jsx)("a",{href:"https://github.com/owncast/owncast/discussions",target:"_blank",rel:"noopener noreferrer",children:"discussions"})]})},{icon:(0,r.jsx)(b.Z,{style:{fontSize:"24px"}}),title:"I want to build add-ons for Owncast",content:(0,r.jsxs)("div",{children:["You can build your own bots, overlays, tools and add-ons with our",(0,r.jsx)("a",{href:"https://owncast.online/thirdparty?source=admin",target:"_blank",rel:"noopener noreferrer",children:"\xa0developer APIs.\xa0"})]})}];return(0,r.jsxs)("div",{className:"help-page",children:[(0,r.jsx)(h.Z,{style:{textAlign:"center"},children:"How can we help you?"}),(0,r.jsxs)(o.Z,{gutter:[16,16],justify:"space-around",align:"middle",children:[(0,r.jsxs)(s.Z,{xs:24,lg:12,style:{textAlign:"center"},children:[(0,r.jsx)(i.ZP,{status:"500"}),(0,r.jsx)(h.Z,{level:2,children:"Troubleshooting"}),(0,r.jsx)(l.Z,{target:"_blank",rel:"noopener noreferrer",href:"https://owncast.online/docs/troubleshooting/?source=admin",icon:(0,r.jsx)(u.Z,{}),type:"primary",children:"Fix your problems"})]}),(0,r.jsxs)(s.Z,{xs:24,lg:12,style:{textAlign:"center"},children:[(0,r.jsx)(i.ZP,{status:"404"}),(0,r.jsx)(h.Z,{level:2,children:"Documentation"}),(0,r.jsx)(l.Z,{target:"_blank",rel:"noopener noreferrer",href:"https://owncast.online/docs?source=admin",icon:(0,r.jsx)(u.Z,{}),type:"primary",children:"Read the Docs"})]})]}),(0,r.jsx)(a.Z,{}),(0,r.jsx)(h.Z,{level:2,children:"Common tasks"}),(0,r.jsx)(o.Z,{gutter:[16,16],children:e.map((function(e){return(0,r.jsx)(s.Z,{xs:24,lg:12,children:(0,r.jsx)(c.Z,{children:(0,r.jsx)(d.Z,{avatar:e.icon,title:e.title,description:e.content})})},e.title)}))}),(0,r.jsx)(a.Z,{}),(0,r.jsx)(h.Z,{level:2,children:"Other"}),(0,r.jsx)(o.Z,{gutter:[16,16],children:n.map((function(e){return(0,r.jsx)(s.Z,{xs:24,lg:12,children:(0,r.jsx)(c.Z,{children:(0,r.jsx)(d.Z,{avatar:e.icon,title:e.title,description:e.content})})},e.title)}))})]})}}},function(e){e.O(0,[961,751,132,774,888,179],(function(){return n=44156,e(e.s=n);var n}));var n=e.O();_N_E=n}]); \ No newline at end of file
diff --git a/static/admin/_next/static/chunks/pages/index-ceca52ff7a46f409.js b/static/admin/_next/static/chunks/pages/index-e81f0bed001d207c.js
index 5b59acdbb..b79cea04c 100644
--- a/static/admin/_next/static/chunks/pages/index-ceca52ff7a46f409.js
+++ b/static/admin/_next/static/chunks/pages/index-e81f0bed001d207c.js
@@ -1 +1 @@
-(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[405],{45301:function(e,n,t){(window.__NEXT_P=window.__NEXT_P||[]).push(["/",function(){return t(94831)}])},824:function(e,n,t){"use strict";t.d(n,{Z:function(){return m}});var r=t(85893),s=(t(67294),t(17256)),i=t(20550),a=t(49919),o=t(53731),l=t(58091),c=s.Z.Title;function d(e,n){var t="black";return"warning"===n.level?t="orange":"error"===n.level&&(t="red"),(0,r.jsx)(i.Z,{color:t,children:e})}function u(e){return(0,r.jsx)(o.Z,{children:e})}function m(e){var n=e.logs,t=e.pageSize;if(!(null===n||void 0===n?void 0:n.length))return null;var s=[{title:"Level",dataIndex:"level",key:"level",filters:[{text:"Info",value:"info"},{text:"Warning",value:"warning"},{text:"Error",value:"Error"}],onFilter:function(e,n){return 0===n.level.indexOf(e)},render:d},{title:"Timestamp",dataIndex:"time",key:"time",render:function(e){var n=new Date(e);return(0,l.Z)(n,"pp P")},sorter:function(e,n){return new Date(e.time).getTime()-new Date(n.time).getTime()},sortDirections:["descend","ascend"],defaultSortOrder:"descend"},{title:"Message",dataIndex:"message",key:"message",render:u}];return(0,r.jsxs)("div",{className:"logs-section",children:[(0,r.jsx)(c,{children:"Logs"}),(0,r.jsx)(a.Z,{size:"middle",dataSource:n,columns:s,rowKey:function(e){return e.time},pagination:{pageSize:t||20}})]})}},94831:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return K}});var r=t(28520),s=t.n(r),i=t(85893),a=t(67294),o=t(41080),l=t(74763),c=t(97751),d=t(25968),u=t(6226),m=t(24019),h=t(87547),f=t(26555),v=t(85533),x=t(35159),j=t(824),p=t(66567),w=t(63179),g=t(78346),Z=t(27482),b=t(43439),y=t(17256),k=t(41664),N=t(92659),S=t(54907),C=t(58091),O=t(58827);function _(e,n,t,r,s,i,a){try{var o=e[i](a),l=o.value}catch(c){return void t(c)}o.done?n(l):Promise.resolve(l).then(r,s)}function P(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}var D=S.Z.Panel,E=y.Z.Title,T=y.Z.Link;function I(e){var n=e.title,t=e.url,r=e.content_html,s=e.date_published,a=new Date(s),o=(0,C.Z)(a,"MMM dd, yyyy, HH:mm");return(0,i.jsx)("article",{children:(0,i.jsx)(S.Z,{children:(0,i.jsxs)(D,{header:n,children:[(0,i.jsxs)("p",{className:"timestamp",children:[o," (",(0,i.jsx)(T,{href:"".concat("https://owncast.online").concat(t),target:"_blank",rel:"noopener noreferrer",children:"Link"}),")"]}),(0,i.jsx)("div",{dangerouslySetInnerHTML:{__html:r}})]},t)})})}function U(){var e,n=(0,a.useState)([]),t=n[0],r=n[1],l=(0,a.useState)(!0),c=l[0],d=l[1],u=(e=s().mark((function e(){var n;return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return d(!1),e.prev=1,e.next=4,(0,O.kg)("https://owncast.online/news/index.json");case 4:(null===(n=e.sent)||void 0===n?void 0:n.items.length)>0&&r(n.items),e.next=11;break;case 8:e.prev=8,e.t0=e.catch(1),console.log("==== error",e.t0);case 11:case"end":return e.stop()}}),e,null,[[1,8]])})),function(){var n=this,t=arguments;return new Promise((function(r,s){var i=e.apply(n,t);function a(e){_(i,r,s,a,o,"next",e)}function o(e){_(i,r,s,a,o,"throw",e)}a(void 0)}))});(0,a.useEffect)((function(){u()}),[]);var m=c?(0,i.jsx)(o.Z,{loading:!0,active:!0}):null,h=c||0!==t.length?null:(0,i.jsx)("div",{children:"No news."});return(0,i.jsxs)("section",{className:"news-feed form-module",children:[(0,i.jsx)(E,{level:2,children:"News & Updates from Owncast"}),m,t.map((function(e){return(0,a.createElement)(I,function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"===typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),r.forEach((function(n){P(e,n,t[n])}))}return e}({},e,{key:e.url}))})),h]})}var z=y.Z.Paragraph,L=y.Z.Text,B=y.Z.Title,M=c.Z.Meta;function F(e,n){return"rtmp://".concat(e.replace(/(^\w+:|^)\/\//,""),":").concat(n,"/live/")}function Q(e){var n,r,s=e.logs,o=void 0===s?[]:s,l=e.config,m=((0,a.useContext)(x.aC)||{}).serverConfig,h=m.streamKey,f=m.rtmpServerPort,v=(null===(n=t.g.window)||void 0===n?void 0:n.location.hostname)||"",y=[{icon:(0,i.jsx)(p.Z,{twoToneColor:"#6f42c1"}),title:"Use your broadcasting software",content:(0,i.jsxs)("div",{children:[(0,i.jsx)("a",{href:"https://owncast.online/docs/broadcasting/?source=admin",target:"_blank",rel:"noopener noreferrer",children:"Learn how to point your existing software to your new server and start streaming your content."}),(0,i.jsxs)("div",{className:"stream-info-container",children:[(0,i.jsx)(L,{strong:!0,className:"stream-info-label",children:"Streaming URL:"}),(0,i.jsx)(z,{className:"stream-info-box",copyable:!0,children:F(v,f)}),(0,i.jsx)(L,{strong:!0,className:"stream-info-label",children:"Stream Key:"}),(0,i.jsx)(z,{className:"stream-info-box",copyable:{text:h},children:"*********************"})]})]})},{icon:(0,i.jsx)(w.Z,{twoToneColor:"#f9826c"}),title:"Embed your video onto other sites",content:(0,i.jsx)("div",{children:(0,i.jsx)("a",{href:"https://owncast.online/docs/embed?source=admin",target:"_blank",rel:"noopener noreferrer",children:"Learn how you can add your Owncast stream to other sites you control."})})}];return(null===l||void 0===l?void 0:l.chatDisabled)||y.push({icon:(0,i.jsx)(g.Z,{twoToneColor:"#0366d6"}),title:"Chat is disabled",content:(0,i.jsx)("span",{children:"Chat will continue to be disabled until you begin a live stream."})}),(null===l||void 0===l||null===(r=l.yp)||void 0===r?void 0:r.enabled)||y.push({icon:(0,i.jsx)(Z.Z,{twoToneColor:"#D18BFE"}),title:"Find an audience on the Owncast Directory",content:(0,i.jsxs)("div",{children:["List yourself in the Owncast Directory and show off your stream. Enable it in"," ",(0,i.jsx)(k.default,{href:"/config-public-details",children:"settings."})]})}),y.push({icon:(0,i.jsx)(b.Z,{twoToneColor:"#ffd33d"}),title:"Not sure what to do next?",content:(0,i.jsxs)("div",{children:["If you're having issues or would like to know how to customize and configure your Owncast server visit ",(0,i.jsx)(k.default,{href:"/help",children:"the help page."})]})}),(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(d.Z,{children:(0,i.jsx)(u.Z,{span:12,offset:6,children:(0,i.jsxs)("div",{className:"offline-intro",children:[(0,i.jsx)("span",{className:"logo",children:(0,i.jsx)(N.Z,{})}),(0,i.jsxs)("div",{children:[(0,i.jsx)(B,{level:2,children:"No stream is active"}),(0,i.jsx)("p",{children:"You should start one."})]})]})})}),(0,i.jsxs)(d.Z,{gutter:[16,16],className:"offline-content",children:[(0,i.jsx)(u.Z,{span:12,xs:24,sm:24,md:24,lg:12,className:"list-section",children:y.map((function(e){return(0,i.jsx)(c.Z,{size:"small",bordered:!1,children:(0,i.jsx)(M,{avatar:e.icon,title:e.title,description:e.content})},e.title)}))}),(0,i.jsx)(u.Z,{span:12,xs:24,sm:24,md:24,lg:12,children:(0,i.jsx)(U,{})})]}),(0,i.jsx)(j.Z,{logs:o,pageSize:5})]})}var V=t(2766);function A(e,n,t,r,s,i,a){try{var o=e[i](a),l=o.value}catch(c){return void t(c)}o.done?n(l):Promise.resolve(l).then(r,s)}function H(e){return(0,i.jsxs)("ul",{className:"statistics-list",children:[(0,i.jsxs)("li",{children:[e.videoCodec||"Unknown"," @ ",e.videoBitrate||"Unknown"," kbps"]}),(0,i.jsxs)("li",{children:[e.framerate||"Unknown"," fps"]}),(0,i.jsxs)("li",{children:[e.width," x ",e.height]})]})}function K(){var e,n,t,r=(0,a.useContext)(x.aC),p=r||{},w=p.broadcaster,g=p.serverConfig,Z=w||{},b=Z.remoteAddr,y=Z.streamDetails,k=(null===y||void 0===y?void 0:y.encoder)||"Unknown encoder",N=(0,a.useState)([]),S=N[0],C=N[1],_=(t=s().mark((function e(){var n;return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,(0,O.rQ)(O.WQ);case 3:n=e.sent,C(n),e.next=10;break;case 7:e.prev=7,e.t0=e.catch(0),console.log("==== error",e.t0);case 10:case"end":return e.stop()}}),e,null,[[0,7]])})),function(){var e=this,n=arguments;return new Promise((function(r,s){var i=t.apply(e,n);function a(e){A(i,r,s,a,o,"next",e)}function o(e){A(i,r,s,a,o,"throw",e)}a(void 0)}))}),P=function(){_()};if((0,a.useEffect)((function(){P();var e;return e=setInterval(P,O.NE),function(){clearInterval(e)}}),[]),(0,V.Qr)(g)||(0,V.Qr)(r))return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(o.Z,{active:!0}),(0,i.jsx)(o.Z,{active:!0}),(0,i.jsx)(o.Z,{active:!0})]});if(!w)return(0,i.jsx)(Q,{logs:S,config:g});var D=null===r||void 0===r||null===(e=r.currentBroadcast)||void 0===e||null===(n=e.outputSettings)||void 0===n?void 0:n.map((function(e){var n=e.audioPassthrough,t=e.videoPassthrough,r=e.audioBitrate,s=e.videoBitrate,a=e.framerate,o=n?"".concat(y.audioCodec||"Unknown",", ").concat(y.audioBitrate," kbps"):"".concat(r||"Unknown"," kbps"),c=t?"".concat(y.videoBitrate||"Unknown"," kbps, ").concat(y.framerate," fps ").concat(y.width," x ").concat(y.height):"".concat(s||"Unknown"," kbps, ").concat(a," fps");return(0,i.jsxs)("div",{className:"stream-details-item-container",children:[(0,i.jsx)(l.Z,{className:"stream-details-item",title:"Outbound Video Stream",value:c}),(0,i.jsx)(l.Z,{className:"stream-details-item",title:"Outbound Audio Stream",value:o})]})})),E=r.viewerCount,T=r.sessionPeakViewerCount,I="".concat(y.audioCodec,", ").concat(y.audioBitrate||"Unknown"," kbps"),z=new Date(w.time);return(0,i.jsxs)("div",{className:"home-container",children:[(0,i.jsxs)("div",{className:"sections-container",children:[(0,i.jsx)("div",{className:"online-status-section",children:(0,i.jsx)(c.Z,{size:"small",type:"inner",className:"online-details-card",children:(0,i.jsxs)(d.Z,{gutter:[16,16],align:"middle",children:[(0,i.jsx)(u.Z,{span:8,sm:24,md:8,children:(0,i.jsx)(l.Z,{title:"Stream started ".concat((0,f.Z)(z,Date.now())),value:(0,v.Z)(z),prefix:(0,i.jsx)(m.Z,{})})}),(0,i.jsx)(u.Z,{span:8,sm:24,md:8,children:(0,i.jsx)(l.Z,{title:"Viewers",value:E,prefix:(0,i.jsx)(h.Z,{})})}),(0,i.jsx)(u.Z,{span:8,sm:24,md:8,children:(0,i.jsx)(l.Z,{title:"Peak viewer count",value:T,prefix:(0,i.jsx)(h.Z,{})})})]})})}),(0,i.jsxs)(d.Z,{gutter:[16,16],className:"section stream-details-section",children:[(0,i.jsxs)(u.Z,{className:"stream-details",span:12,sm:24,md:24,lg:12,children:[(0,i.jsx)(c.Z,{size:"small",title:"Outbound Stream Details",type:"inner",className:"outbound-details",children:D}),(0,i.jsxs)(c.Z,{size:"small",title:"Inbound Stream Details",type:"inner",children:[(0,i.jsx)(l.Z,{className:"stream-details-item",title:"Input",value:"".concat(k," ").concat((0,V.t5)(b))}),(0,i.jsx)(l.Z,{className:"stream-details-item",title:"Inbound Video Stream",value:y,formatter:H}),(0,i.jsx)(l.Z,{className:"stream-details-item",title:"Inbound Audio Stream",value:I})]})]}),(0,i.jsx)(u.Z,{span:12,xs:24,sm:24,md:24,lg:12,children:(0,i.jsx)(U,{})})]})]}),(0,i.jsx)("br",{}),(0,i.jsx)(j.Z,{logs:S,pageSize:5})]})}}},function(e){e.O(0,[919,91,903,102,533,429,59,774,888,179],(function(){return n=45301,e(e.s=n);var n}));var n=e.O();_N_E=n}]); \ No newline at end of file
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[405],{45301:function(e,n,t){(window.__NEXT_P=window.__NEXT_P||[]).push(["/",function(){return t(94831)}])},824:function(e,n,t){"use strict";t.d(n,{Z:function(){return m}});var r=t(85893),s=(t(67294),t(44068)),i=t(20550),a=t(88829),o=t(53731),l=t(58091),c=s.Z.Title;function d(e,n){var t="black";return"warning"===n.level?t="orange":"error"===n.level&&(t="red"),(0,r.jsx)(i.Z,{color:t,children:e})}function u(e){return(0,r.jsx)(o.Z,{children:e})}function m(e){var n=e.logs,t=e.pageSize;if(!(null===n||void 0===n?void 0:n.length))return null;var s=[{title:"Level",dataIndex:"level",key:"level",filters:[{text:"Info",value:"info"},{text:"Warning",value:"warning"},{text:"Error",value:"Error"}],onFilter:function(e,n){return 0===n.level.indexOf(e)},render:d},{title:"Timestamp",dataIndex:"time",key:"time",render:function(e){var n=new Date(e);return(0,l.Z)(n,"pp P")},sorter:function(e,n){return new Date(e.time).getTime()-new Date(n.time).getTime()},sortDirections:["descend","ascend"],defaultSortOrder:"descend"},{title:"Message",dataIndex:"message",key:"message",render:u}];return(0,r.jsxs)("div",{className:"logs-section",children:[(0,r.jsx)(c,{children:"Logs"}),(0,r.jsx)(a.Z,{size:"middle",dataSource:n,columns:s,rowKey:function(e){return e.time},pagination:{pageSize:t||20}})]})}},94831:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return K}});var r=t(28520),s=t.n(r),i=t(85893),a=t(67294),o=t(41080),l=t(74763),c=t(97751),d=t(25968),u=t(6226),m=t(24019),h=t(87547),f=t(26555),v=t(85533),x=t(35159),j=t(824),p=t(66567),w=t(63179),g=t(78346),Z=t(27482),b=t(43439),y=t(44068),k=t(41664),N=t(92659),S=t(54907),C=t(58091),O=t(58827);function _(e,n,t,r,s,i,a){try{var o=e[i](a),l=o.value}catch(c){return void t(c)}o.done?n(l):Promise.resolve(l).then(r,s)}function P(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}var D=S.Z.Panel,E=y.Z.Title,T=y.Z.Link;function I(e){var n=e.title,t=e.url,r=e.content_html,s=e.date_published,a=new Date(s),o=(0,C.Z)(a,"MMM dd, yyyy, HH:mm");return(0,i.jsx)("article",{children:(0,i.jsx)(S.Z,{children:(0,i.jsxs)(D,{header:n,children:[(0,i.jsxs)("p",{className:"timestamp",children:[o," (",(0,i.jsx)(T,{href:"".concat("https://owncast.online").concat(t),target:"_blank",rel:"noopener noreferrer",children:"Link"}),")"]}),(0,i.jsx)("div",{dangerouslySetInnerHTML:{__html:r}})]},t)})})}function U(){var e,n=(0,a.useState)([]),t=n[0],r=n[1],l=(0,a.useState)(!0),c=l[0],d=l[1],u=(e=s().mark((function e(){var n;return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return d(!1),e.prev=1,e.next=4,(0,O.kg)("https://owncast.online/news/index.json");case 4:(null===(n=e.sent)||void 0===n?void 0:n.items.length)>0&&r(n.items),e.next=11;break;case 8:e.prev=8,e.t0=e.catch(1),console.log("==== error",e.t0);case 11:case"end":return e.stop()}}),e,null,[[1,8]])})),function(){var n=this,t=arguments;return new Promise((function(r,s){var i=e.apply(n,t);function a(e){_(i,r,s,a,o,"next",e)}function o(e){_(i,r,s,a,o,"throw",e)}a(void 0)}))});(0,a.useEffect)((function(){u()}),[]);var m=c?(0,i.jsx)(o.Z,{loading:!0,active:!0}):null,h=c||0!==t.length?null:(0,i.jsx)("div",{children:"No news."});return(0,i.jsxs)("section",{className:"news-feed form-module",children:[(0,i.jsx)(E,{level:2,children:"News & Updates from Owncast"}),m,t.map((function(e){return(0,a.createElement)(I,function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);"function"===typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),r.forEach((function(n){P(e,n,t[n])}))}return e}({},e,{key:e.url}))})),h]})}var z=y.Z.Paragraph,L=y.Z.Text,B=y.Z.Title,M=c.Z.Meta;function F(e,n){return"rtmp://".concat(e.replace(/(^\w+:|^)\/\//,""),":").concat(n,"/live/")}function Q(e){var n,r,s=e.logs,o=void 0===s?[]:s,l=e.config,m=((0,a.useContext)(x.aC)||{}).serverConfig,h=m.streamKey,f=m.rtmpServerPort,v=(null===(n=t.g.window)||void 0===n?void 0:n.location.hostname)||"",y=[{icon:(0,i.jsx)(p.Z,{twoToneColor:"#6f42c1"}),title:"Use your broadcasting software",content:(0,i.jsxs)("div",{children:[(0,i.jsx)("a",{href:"https://owncast.online/docs/broadcasting/?source=admin",target:"_blank",rel:"noopener noreferrer",children:"Learn how to point your existing software to your new server and start streaming your content."}),(0,i.jsxs)("div",{className:"stream-info-container",children:[(0,i.jsx)(L,{strong:!0,className:"stream-info-label",children:"Streaming URL:"}),(0,i.jsx)(z,{className:"stream-info-box",copyable:!0,children:F(v,f)}),(0,i.jsx)(L,{strong:!0,className:"stream-info-label",children:"Stream Key:"}),(0,i.jsx)(z,{className:"stream-info-box",copyable:{text:h},children:"*********************"})]})]})},{icon:(0,i.jsx)(w.Z,{twoToneColor:"#f9826c"}),title:"Embed your video onto other sites",content:(0,i.jsx)("div",{children:(0,i.jsx)("a",{href:"https://owncast.online/docs/embed?source=admin",target:"_blank",rel:"noopener noreferrer",children:"Learn how you can add your Owncast stream to other sites you control."})})}];return(null===l||void 0===l?void 0:l.chatDisabled)||y.push({icon:(0,i.jsx)(g.Z,{twoToneColor:"#0366d6"}),title:"Chat is disabled",content:(0,i.jsx)("span",{children:"Chat will continue to be disabled until you begin a live stream."})}),(null===l||void 0===l||null===(r=l.yp)||void 0===r?void 0:r.enabled)||y.push({icon:(0,i.jsx)(Z.Z,{twoToneColor:"#D18BFE"}),title:"Find an audience on the Owncast Directory",content:(0,i.jsxs)("div",{children:["List yourself in the Owncast Directory and show off your stream. Enable it in"," ",(0,i.jsx)(k.default,{href:"/config-public-details",children:"settings."})]})}),y.push({icon:(0,i.jsx)(b.Z,{twoToneColor:"#ffd33d"}),title:"Not sure what to do next?",content:(0,i.jsxs)("div",{children:["If you're having issues or would like to know how to customize and configure your Owncast server visit ",(0,i.jsx)(k.default,{href:"/help",children:"the help page."})]})}),(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(d.Z,{children:(0,i.jsx)(u.Z,{span:12,offset:6,children:(0,i.jsxs)("div",{className:"offline-intro",children:[(0,i.jsx)("span",{className:"logo",children:(0,i.jsx)(N.Z,{})}),(0,i.jsxs)("div",{children:[(0,i.jsx)(B,{level:2,children:"No stream is active"}),(0,i.jsx)("p",{children:"You should start one."})]})]})})}),(0,i.jsxs)(d.Z,{gutter:[16,16],className:"offline-content",children:[(0,i.jsx)(u.Z,{span:12,xs:24,sm:24,md:24,lg:12,className:"list-section",children:y.map((function(e){return(0,i.jsx)(c.Z,{size:"small",bordered:!1,children:(0,i.jsx)(M,{avatar:e.icon,title:e.title,description:e.content})},e.title)}))}),(0,i.jsx)(u.Z,{span:12,xs:24,sm:24,md:24,lg:12,children:(0,i.jsx)(U,{})})]}),(0,i.jsx)(j.Z,{logs:o,pageSize:5})]})}var V=t(2766);function A(e,n,t,r,s,i,a){try{var o=e[i](a),l=o.value}catch(c){return void t(c)}o.done?n(l):Promise.resolve(l).then(r,s)}function H(e){return(0,i.jsxs)("ul",{className:"statistics-list",children:[(0,i.jsxs)("li",{children:[e.videoCodec||"Unknown"," @ ",e.videoBitrate||"Unknown"," kbps"]}),(0,i.jsxs)("li",{children:[e.framerate||"Unknown"," fps"]}),(0,i.jsxs)("li",{children:[e.width," x ",e.height]})]})}function K(){var e,n,t,r=(0,a.useContext)(x.aC),p=r||{},w=p.broadcaster,g=p.serverConfig,Z=w||{},b=Z.remoteAddr,y=Z.streamDetails,k=(null===y||void 0===y?void 0:y.encoder)||"Unknown encoder",N=(0,a.useState)([]),S=N[0],C=N[1],_=(t=s().mark((function e(){var n;return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,(0,O.rQ)(O.WQ);case 3:n=e.sent,C(n),e.next=10;break;case 7:e.prev=7,e.t0=e.catch(0),console.log("==== error",e.t0);case 10:case"end":return e.stop()}}),e,null,[[0,7]])})),function(){var e=this,n=arguments;return new Promise((function(r,s){var i=t.apply(e,n);function a(e){A(i,r,s,a,o,"next",e)}function o(e){A(i,r,s,a,o,"throw",e)}a(void 0)}))}),P=function(){_()};if((0,a.useEffect)((function(){P();var e;return e=setInterval(P,O.NE),function(){clearInterval(e)}}),[]),(0,V.Qr)(g)||(0,V.Qr)(r))return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(o.Z,{active:!0}),(0,i.jsx)(o.Z,{active:!0}),(0,i.jsx)(o.Z,{active:!0})]});if(!w)return(0,i.jsx)(Q,{logs:S,config:g});var D=null===r||void 0===r||null===(e=r.currentBroadcast)||void 0===e||null===(n=e.outputSettings)||void 0===n?void 0:n.map((function(e){var n=e.audioPassthrough,t=e.videoPassthrough,r=e.audioBitrate,s=e.videoBitrate,a=e.framerate,o=n?"".concat(y.audioCodec||"Unknown",", ").concat(y.audioBitrate," kbps"):"".concat(r||"Unknown"," kbps"),c=t?"".concat(y.videoBitrate||"Unknown"," kbps, ").concat(y.framerate," fps ").concat(y.width," x ").concat(y.height):"".concat(s||"Unknown"," kbps, ").concat(a," fps");return(0,i.jsxs)("div",{className:"stream-details-item-container",children:[(0,i.jsx)(l.Z,{className:"stream-details-item",title:"Outbound Video Stream",value:c}),(0,i.jsx)(l.Z,{className:"stream-details-item",title:"Outbound Audio Stream",value:o})]})})),E=r.viewerCount,T=r.sessionPeakViewerCount,I="".concat(y.audioCodec,", ").concat(y.audioBitrate||"Unknown"," kbps"),z=new Date(w.time);return(0,i.jsxs)("div",{className:"home-container",children:[(0,i.jsxs)("div",{className:"sections-container",children:[(0,i.jsx)("div",{className:"online-status-section",children:(0,i.jsx)(c.Z,{size:"small",type:"inner",className:"online-details-card",children:(0,i.jsxs)(d.Z,{gutter:[16,16],align:"middle",children:[(0,i.jsx)(u.Z,{span:8,sm:24,md:8,children:(0,i.jsx)(l.Z,{title:"Stream started ".concat((0,f.Z)(z,Date.now())),value:(0,v.Z)(z),prefix:(0,i.jsx)(m.Z,{})})}),(0,i.jsx)(u.Z,{span:8,sm:24,md:8,children:(0,i.jsx)(l.Z,{title:"Viewers",value:E,prefix:(0,i.jsx)(h.Z,{})})}),(0,i.jsx)(u.Z,{span:8,sm:24,md:8,children:(0,i.jsx)(l.Z,{title:"Peak viewer count",value:T,prefix:(0,i.jsx)(h.Z,{})})})]})})}),(0,i.jsxs)(d.Z,{gutter:[16,16],className:"section stream-details-section",children:[(0,i.jsxs)(u.Z,{className:"stream-details",span:12,sm:24,md:24,lg:12,children:[(0,i.jsx)(c.Z,{size:"small",title:"Outbound Stream Details",type:"inner",className:"outbound-details",children:D}),(0,i.jsxs)(c.Z,{size:"small",title:"Inbound Stream Details",type:"inner",children:[(0,i.jsx)(l.Z,{className:"stream-details-item",title:"Input",value:"".concat(k," ").concat((0,V.t5)(b))}),(0,i.jsx)(l.Z,{className:"stream-details-item",title:"Inbound Video Stream",value:y,formatter:H}),(0,i.jsx)(l.Z,{className:"stream-details-item",title:"Inbound Audio Stream",value:I})]})]}),(0,i.jsx)(u.Z,{span:12,xs:24,sm:24,md:24,lg:12,children:(0,i.jsx)(U,{})})]})]}),(0,i.jsx)("br",{}),(0,i.jsx)(j.Z,{logs:S,pageSize:5})]})}}},function(e){e.O(0,[829,91,961,751,763,533,429,59,774,888,179],(function(){return n=45301,e(e.s=n);var n}));var n=e.O();_N_E=n}]); \ No newline at end of file
diff --git a/static/admin/_next/static/chunks/pages/logs-1ee721766d61c558.js b/static/admin/_next/static/chunks/pages/logs-d10676db469afea0.js
index b5a3bcd98..51beb004b 100644
--- a/static/admin/_next/static/chunks/pages/logs-1ee721766d61c558.js
+++ b/static/admin/_next/static/chunks/pages/logs-d10676db469afea0.js
@@ -1 +1 @@
-(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[203],{84841:function(e,n,r){(window.__NEXT_P=window.__NEXT_P||[]).push(["/logs",function(){return r(52736)}])},824:function(e,n,r){"use strict";r.d(n,{Z:function(){return f}});var t=r(85893),i=(r(67294),r(17256)),a=r(20550),o=r(49919),u=r(53731),s=r(58091),c=i.Z.Title;function l(e,n){var r="black";return"warning"===n.level?r="orange":"error"===n.level&&(r="red"),(0,t.jsx)(a.Z,{color:r,children:e})}function d(e){return(0,t.jsx)(u.Z,{children:e})}function f(e){var n=e.logs,r=e.pageSize;if(!(null===n||void 0===n?void 0:n.length))return null;var i=[{title:"Level",dataIndex:"level",key:"level",filters:[{text:"Info",value:"info"},{text:"Warning",value:"warning"},{text:"Error",value:"Error"}],onFilter:function(e,n){return 0===n.level.indexOf(e)},render:l},{title:"Timestamp",dataIndex:"time",key:"time",render:function(e){var n=new Date(e);return(0,s.Z)(n,"pp P")},sorter:function(e,n){return new Date(e.time).getTime()-new Date(n.time).getTime()},sortDirections:["descend","ascend"],defaultSortOrder:"descend"},{title:"Message",dataIndex:"message",key:"message",render:d}];return(0,t.jsxs)("div",{className:"logs-section",children:[(0,t.jsx)(c,{children:"Logs"}),(0,t.jsx)(o.Z,{size:"middle",dataSource:n,columns:i,rowKey:function(e){return e.time},pagination:{pageSize:r||20}})]})}},52736:function(e,n,r){"use strict";r.r(n),r.d(n,{default:function(){return l}});var t=r(28520),i=r.n(t),a=r(85893),o=r(67294),u=r(824),s=r(58827);function c(e,n,r,t,i,a,o){try{var u=e[a](o),s=u.value}catch(c){return void r(c)}u.done?n(s):Promise.resolve(s).then(t,i)}function l(){var e,n=(0,o.useState)([]),r=n[0],t=n[1],l=(e=i().mark((function e(){var n;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,(0,s.rQ)(s.sG);case 3:n=e.sent,t(n),e.next=10;break;case 7:e.prev=7,e.t0=e.catch(0),console.log("==== error",e.t0);case 10:case"end":return e.stop()}}),e,null,[[0,7]])})),function(){var n=this,r=arguments;return new Promise((function(t,i){var a=e.apply(n,r);function o(e){c(a,t,i,o,u,"next",e)}function u(e){c(a,t,i,o,u,"throw",e)}o(void 0)}))});return(0,o.useEffect)((function(){var e;return setInterval(l,5e3),l(),e=setInterval(l,5e3),function(){clearInterval(e)}}),[]),(0,a.jsx)(u.Z,{logs:r,pageSize:20})}}},function(e){e.O(0,[919,91,429,774,888,179],(function(){return n=84841,e(e.s=n);var n}));var n=e.O();_N_E=n}]); \ No newline at end of file
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[203],{84841:function(e,n,r){(window.__NEXT_P=window.__NEXT_P||[]).push(["/logs",function(){return r(52736)}])},824:function(e,n,r){"use strict";r.d(n,{Z:function(){return f}});var t=r(85893),i=(r(67294),r(44068)),a=r(20550),o=r(88829),u=r(53731),s=r(58091),c=i.Z.Title;function l(e,n){var r="black";return"warning"===n.level?r="orange":"error"===n.level&&(r="red"),(0,t.jsx)(a.Z,{color:r,children:e})}function d(e){return(0,t.jsx)(u.Z,{children:e})}function f(e){var n=e.logs,r=e.pageSize;if(!(null===n||void 0===n?void 0:n.length))return null;var i=[{title:"Level",dataIndex:"level",key:"level",filters:[{text:"Info",value:"info"},{text:"Warning",value:"warning"},{text:"Error",value:"Error"}],onFilter:function(e,n){return 0===n.level.indexOf(e)},render:l},{title:"Timestamp",dataIndex:"time",key:"time",render:function(e){var n=new Date(e);return(0,s.Z)(n,"pp P")},sorter:function(e,n){return new Date(e.time).getTime()-new Date(n.time).getTime()},sortDirections:["descend","ascend"],defaultSortOrder:"descend"},{title:"Message",dataIndex:"message",key:"message",render:d}];return(0,t.jsxs)("div",{className:"logs-section",children:[(0,t.jsx)(c,{children:"Logs"}),(0,t.jsx)(o.Z,{size:"middle",dataSource:n,columns:i,rowKey:function(e){return e.time},pagination:{pageSize:r||20}})]})}},52736:function(e,n,r){"use strict";r.r(n),r.d(n,{default:function(){return l}});var t=r(28520),i=r.n(t),a=r(85893),o=r(67294),u=r(824),s=r(58827);function c(e,n,r,t,i,a,o){try{var u=e[a](o),s=u.value}catch(c){return void r(c)}u.done?n(s):Promise.resolve(s).then(t,i)}function l(){var e,n=(0,o.useState)([]),r=n[0],t=n[1],l=(e=i().mark((function e(){var n;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,(0,s.rQ)(s.sG);case 3:n=e.sent,t(n),e.next=10;break;case 7:e.prev=7,e.t0=e.catch(0),console.log("==== error",e.t0);case 10:case"end":return e.stop()}}),e,null,[[0,7]])})),function(){var n=this,r=arguments;return new Promise((function(t,i){var a=e.apply(n,r);function o(e){c(a,t,i,o,u,"next",e)}function u(e){c(a,t,i,o,u,"throw",e)}o(void 0)}))});return(0,o.useEffect)((function(){var e;return setInterval(l,5e3),l(),e=setInterval(l,5e3),function(){clearInterval(e)}}),[]),(0,a.jsx)(u.Z,{logs:r,pageSize:20})}}},function(e){e.O(0,[829,91,429,774,888,179],(function(){return n=84841,e(e.s=n);var n}));var n=e.O();_N_E=n}]); \ No newline at end of file
diff --git a/static/admin/_next/static/chunks/pages/upgrade-3990d29ea930f50e.js b/static/admin/_next/static/chunks/pages/upgrade-6c4ec4a032ab7232.js
index a04c54330..5b4771b0c 100644
--- a/static/admin/_next/static/chunks/pages/upgrade-3990d29ea930f50e.js
+++ b/static/admin/_next/static/chunks/pages/upgrade-6c4ec4a032ab7232.js
@@ -1 +1 @@
-(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[69],{20014:function(e,n,r){(window.__NEXT_P=window.__NEXT_P||[]).push(["/upgrade",function(){return r(9103)}])},9103:function(e,n,r){"use strict";r.r(n),r.d(n,{default:function(){return w}});var t=r(28520),a=r.n(t),o=r(85893),u=r(67294),c=r(36275),i=r(17256),s=r(49919),l=r(58827);function f(e,n,r,t,a,o,u){try{var c=e[o](u),i=c.value}catch(s){return void r(s)}c.done?n(i):Promise.resolve(i).then(t,a)}function d(e,n,r){return n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function h(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{},t=Object.keys(r);"function"===typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),t.forEach((function(n){d(e,n,r[n])}))}return e}var v=i.Z.Title;function p(e){var n=Object.values(e),r=[{title:"Name",dataIndex:"name",key:"name",render:function(e,n){return(0,o.jsx)("a",{href:n.browser_download_url,children:e})}},{title:"Size",dataIndex:"size",key:"size",render:function(e){return"".concat((e/1024/1024).toFixed(2)," MB")}}];return(0,o.jsx)(s.Z,{dataSource:n,columns:r,rowKey:function(e){return e.id},size:"large",pagination:!1})}function w(){var e,n=(0,u.useState)({html_url:"",name:"",created_at:null,body:"",assets:[]}),r=n[0],t=n[1],i=(e=a().mark((function e(){var n;return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,(0,l.Kt)();case 3:n=e.sent,t(n),e.next=10;break;case 7:e.prev=7,e.t0=e.catch(0),console.log("==== error",e.t0);case 10:case"end":return e.stop()}}),e,null,[[0,7]])})),function(){var n=this,r=arguments;return new Promise((function(t,a){var o=e.apply(n,r);function u(e){f(o,t,a,u,c,"next",e)}function c(e){f(o,t,a,u,c,"throw",e)}u(void 0)}))});return(0,u.useEffect)((function(){i()}),[]),r?(0,o.jsxs)("div",{className:"upgrade-page",children:[(0,o.jsx)(v,{level:2,children:(0,o.jsx)("a",{href:r.html_url,children:r.name})}),(0,o.jsx)(v,{level:5,children:new Date(r.created_at).toDateString()}),(0,o.jsx)(c.D,{children:r.body}),(0,o.jsx)("h3",{children:"Downloads"}),(0,o.jsx)(p,h({},r.assets))]}):null}}},function(e){e.O(0,[919,275,774,888,179],(function(){return n=20014,e(e.s=n);var n}));var n=e.O();_N_E=n}]); \ No newline at end of file
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[69],{20014:function(e,n,r){(window.__NEXT_P=window.__NEXT_P||[]).push(["/upgrade",function(){return r(9103)}])},9103:function(e,n,r){"use strict";r.r(n),r.d(n,{default:function(){return w}});var t=r(28520),a=r.n(t),o=r(85893),u=r(67294),c=r(36275),i=r(44068),s=r(88829),l=r(58827);function f(e,n,r,t,a,o,u){try{var c=e[o](u),i=c.value}catch(s){return void r(s)}c.done?n(i):Promise.resolve(i).then(t,a)}function d(e,n,r){return n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function h(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{},t=Object.keys(r);"function"===typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),t.forEach((function(n){d(e,n,r[n])}))}return e}var v=i.Z.Title;function p(e){var n=Object.values(e),r=[{title:"Name",dataIndex:"name",key:"name",render:function(e,n){return(0,o.jsx)("a",{href:n.browser_download_url,children:e})}},{title:"Size",dataIndex:"size",key:"size",render:function(e){return"".concat((e/1024/1024).toFixed(2)," MB")}}];return(0,o.jsx)(s.Z,{dataSource:n,columns:r,rowKey:function(e){return e.id},size:"large",pagination:!1})}function w(){var e,n=(0,u.useState)({html_url:"",name:"",created_at:null,body:"",assets:[]}),r=n[0],t=n[1],i=(e=a().mark((function e(){var n;return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,(0,l.Kt)();case 3:n=e.sent,t(n),e.next=10;break;case 7:e.prev=7,e.t0=e.catch(0),console.log("==== error",e.t0);case 10:case"end":return e.stop()}}),e,null,[[0,7]])})),function(){var n=this,r=arguments;return new Promise((function(t,a){var o=e.apply(n,r);function u(e){f(o,t,a,u,c,"next",e)}function c(e){f(o,t,a,u,c,"throw",e)}u(void 0)}))});return(0,u.useEffect)((function(){i()}),[]),r?(0,o.jsxs)("div",{className:"upgrade-page",children:[(0,o.jsx)(v,{level:2,children:(0,o.jsx)("a",{href:r.html_url,children:r.name})}),(0,o.jsx)(v,{level:5,children:new Date(r.created_at).toDateString()}),(0,o.jsx)(c.D,{children:r.body}),(0,o.jsx)("h3",{children:"Downloads"}),(0,o.jsx)(p,h({},r.assets))]}):null}}},function(e){e.O(0,[829,275,774,888,179],(function(){return n=20014,e(e.s=n);var n}));var n=e.O();_N_E=n}]); \ No newline at end of file
diff --git a/static/admin/_next/static/chunks/pages/viewer-info-19c2b57872fa4f5f.js b/static/admin/_next/static/chunks/pages/viewer-info-a9586b5d2ecea7e8.js
index 19da3c86b..bcaa6e523 100644
--- a/static/admin/_next/static/chunks/pages/viewer-info-19c2b57872fa4f5f.js
+++ b/static/admin/_next/static/chunks/pages/viewer-info-a9586b5d2ecea7e8.js
@@ -1 +1 @@
-(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[194],{87547:function(e,t,r){"use strict";r.d(t,{Z:function(){return s}});var n=r(1413),i=r(67294),o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M858.5 763.6a374 374 0 00-80.6-119.5 375.63 375.63 0 00-119.5-80.6c-.4-.2-.8-.3-1.2-.5C719.5 518 760 444.7 760 362c0-137-111-248-248-248S264 225 264 362c0 82.7 40.5 156 102.8 201.1-.4.2-.8.3-1.2.5-44.8 18.9-85 46-119.5 80.6a375.63 375.63 0 00-80.6 119.5A371.7 371.7 0 00136 901.8a8 8 0 008 8.2h60c4.4 0 7.9-3.5 8-7.8 2-77.2 33-149.5 87.8-204.3 56.7-56.7 132-87.9 212.2-87.9s155.5 31.2 212.2 87.9C779 752.7 810 825 812 902.2c.1 4.4 3.6 7.8 8 7.8h60a8 8 0 008-8.2c-1-47.8-10.9-94.3-29.5-138.2zM512 534c-45.9 0-89.1-17.9-121.6-50.4S340 407.9 340 362c0-45.9 17.9-89.1 50.4-121.6S466.1 190 512 190s89.1 17.9 121.6 50.4S684 316.1 684 362c0 45.9-17.9 89.1-50.4 121.6S557.9 534 512 534z"}}]},name:"user",theme:"outlined"},a=r(42135),c=function(e,t){return i.createElement(a.Z,(0,n.Z)((0,n.Z)({},e),{},{ref:t,icon:o}))};c.displayName="UserOutlined";var s=i.forwardRef(c)},31709:function(e,t,r){(window.__NEXT_P=window.__NEXT_P||[]).push(["/viewer-info",function(){return r(48935)}])},89270:function(e,t,r){"use strict";r.d(t,{Z:function(){return l}});var n=r(85893),i=r(31877),o=r(92616),a=r.n(o),c=r(58091),s=r(60727);function u(e){var t={};return e.forEach((function(e){var r=new Date(e.time),n=(0,c.Z)(r,"H:mma");t[n]=e.value})),t}function l(e){var t=e.data,r=e.title,i=e.color,o=e.unit,a=e.dataCollections,c=[];return t&&t.length>0&&c.push({name:r,color:i,data:u(t)}),a.forEach((function(e){c.push({name:e.name,data:u(e.data),color:e.color})})),(0,n.jsx)("div",{className:"line-chart-container",children:(0,n.jsx)(s.wW,{xtitle:"Time",ytitle:r,suffix:o,legend:"bottom",color:i,data:c,download:r})})}a().use(i.Z),l.defaultProps={dataCollections:[],data:[],title:""}},34440:function(e,t,r){"use strict";r.d(t,{Z:function(){return x}});var n=r(85893),i=r(17256),o=r(97910),a=r(74763),c=r(97751);function s(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function u(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"===typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){s(e,t,r[t])}))}return e}var l=i.Z.Text,f={title:"",value:0,prefix:null,color:"",progress:!1,centered:!1,formatter:null};function d(e){var t=e.title,r=e.value,i=e.prefix,a=e.color,c=r>90?"red":a,s=(0,n.jsxs)("div",{children:[i,(0,n.jsx)("div",{children:(0,n.jsx)(l,{type:"secondary",children:t})}),(0,n.jsx)("div",{children:(0,n.jsxs)(l,{type:"secondary",children:[r,"%"]})})]});return(0,n.jsx)(o.Z,{type:"dashboard",percent:r,width:120,strokeColor:{"0%":a,"90%":c},format:function(){return s}})}function v(e){var t=e.title,r=e.value,i=e.prefix,o=e.formatter;return(0,n.jsx)(a.Z,{title:t,value:r,prefix:i,formatter:o})}function x(e){var t=e.progress?d:v,r=e.centered?{display:"flex",alignItems:"center",justifyContent:"center"}:{};return(0,n.jsx)(c.Z,{type:"inner",children:(0,n.jsx)("div",{style:r,children:(0,n.jsx)(t,u({},e))})})}d.defaultProps=f,v.defaultProps=f,x.defaultProps=f},48935:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return h}});var n=r(28520),i=r.n(n),o=r(85893),a=r(67294),c=r(17256),s=r(25968),u=r(6226),l=r(87547),f=r(89270),d=r(34440),v=r(35159),x=r(58827);function p(e,t,r,n,i,o,a){try{var c=e[o](a),s=c.value}catch(u){return void r(u)}c.done?t(s):Promise.resolve(s).then(n,i)}function h(){var e,t=(0,a.useContext)(v.aC)||{},r=t.online,n=t.viewerCount,h=t.overallPeakViewerCount,j=t.sessionPeakViewerCount,m=(0,a.useState)([]),w=m[0],Z=m[1],y=(e=i().mark((function e(){var t;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,(0,x.rQ)(x.iV);case 3:t=e.sent,Z(t),e.next=10;break;case 7:e.prev=7,e.t0=e.catch(0),console.log("==== error",e.t0);case 10:case"end":return e.stop()}}),e,null,[[0,7]])})),function(){var t=this,r=arguments;return new Promise((function(n,i){var o=e.apply(t,r);function a(e){p(o,n,i,a,c,"next",e)}function c(e){p(o,n,i,a,c,"throw",e)}a(void 0)}))});return(0,a.useEffect)((function(){var e=null;return y(),r?(e=setInterval(y,6e4),function(){clearInterval(e)}):function(){return[]}}),[r]),w.length?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(c.Z.Title,{children:"Viewer Info"}),(0,o.jsx)("br",{}),(0,o.jsxs)(s.Z,{gutter:[16,16],justify:"space-around",children:[r&&(0,o.jsx)(u.Z,{span:8,md:8,children:(0,o.jsx)(d.Z,{title:"Current viewers",value:n.toString(),prefix:(0,o.jsx)(l.Z,{})})}),(0,o.jsx)(u.Z,{md:r?8:12,children:(0,o.jsx)(d.Z,{title:r?"Max viewers this session":"Max viewers last session",value:j.toString(),prefix:(0,o.jsx)(l.Z,{})})}),(0,o.jsx)(u.Z,{md:r?8:12,children:(0,o.jsx)(d.Z,{title:"All-time max viewers",value:h.toString(),prefix:(0,o.jsx)(l.Z,{})})})]}),(0,o.jsx)(f.Z,{title:"Viewers",data:w,color:"#2087E2",unit:""})]}):"no info"}}},function(e){e.O(0,[570,91,903,102,910,958,774,888,179],(function(){return t=31709,e(e.s=t);var t}));var t=e.O();_N_E=t}]); \ No newline at end of file
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[194],{87547:function(e,t,r){"use strict";r.d(t,{Z:function(){return s}});var n=r(1413),i=r(67294),o={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M858.5 763.6a374 374 0 00-80.6-119.5 375.63 375.63 0 00-119.5-80.6c-.4-.2-.8-.3-1.2-.5C719.5 518 760 444.7 760 362c0-137-111-248-248-248S264 225 264 362c0 82.7 40.5 156 102.8 201.1-.4.2-.8.3-1.2.5-44.8 18.9-85 46-119.5 80.6a375.63 375.63 0 00-80.6 119.5A371.7 371.7 0 00136 901.8a8 8 0 008 8.2h60c4.4 0 7.9-3.5 8-7.8 2-77.2 33-149.5 87.8-204.3 56.7-56.7 132-87.9 212.2-87.9s155.5 31.2 212.2 87.9C779 752.7 810 825 812 902.2c.1 4.4 3.6 7.8 8 7.8h60a8 8 0 008-8.2c-1-47.8-10.9-94.3-29.5-138.2zM512 534c-45.9 0-89.1-17.9-121.6-50.4S340 407.9 340 362c0-45.9 17.9-89.1 50.4-121.6S466.1 190 512 190s89.1 17.9 121.6 50.4S684 316.1 684 362c0 45.9-17.9 89.1-50.4 121.6S557.9 534 512 534z"}}]},name:"user",theme:"outlined"},a=r(42135),c=function(e,t){return i.createElement(a.Z,(0,n.Z)((0,n.Z)({},e),{},{ref:t,icon:o}))};c.displayName="UserOutlined";var s=i.forwardRef(c)},31709:function(e,t,r){(window.__NEXT_P=window.__NEXT_P||[]).push(["/viewer-info",function(){return r(48935)}])},89270:function(e,t,r){"use strict";r.d(t,{Z:function(){return l}});var n=r(85893),i=r(31877),o=r(92616),a=r.n(o),c=r(58091),s=r(60727);function u(e){var t={};return e.forEach((function(e){var r=new Date(e.time),n=(0,c.Z)(r,"H:mma");t[n]=e.value})),t}function l(e){var t=e.data,r=e.title,i=e.color,o=e.unit,a=e.dataCollections,c=[];return t&&t.length>0&&c.push({name:r,color:i,data:u(t)}),a.forEach((function(e){c.push({name:e.name,data:u(e.data),color:e.color})})),(0,n.jsx)("div",{className:"line-chart-container",children:(0,n.jsx)(s.wW,{xtitle:"Time",ytitle:r,suffix:o,legend:"bottom",color:i,data:c,download:r})})}a().use(i.Z),l.defaultProps={dataCollections:[],data:[],title:""}},34440:function(e,t,r){"use strict";r.d(t,{Z:function(){return x}});var n=r(85893),i=r(44068),o=r(97910),a=r(74763),c=r(97751);function s(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function u(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"===typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){s(e,t,r[t])}))}return e}var l=i.Z.Text,f={title:"",value:0,prefix:null,color:"",progress:!1,centered:!1,formatter:null};function d(e){var t=e.title,r=e.value,i=e.prefix,a=e.color,c=r>90?"red":a,s=(0,n.jsxs)("div",{children:[i,(0,n.jsx)("div",{children:(0,n.jsx)(l,{type:"secondary",children:t})}),(0,n.jsx)("div",{children:(0,n.jsxs)(l,{type:"secondary",children:[r,"%"]})})]});return(0,n.jsx)(o.Z,{type:"dashboard",percent:r,width:120,strokeColor:{"0%":a,"90%":c},format:function(){return s}})}function v(e){var t=e.title,r=e.value,i=e.prefix,o=e.formatter;return(0,n.jsx)(a.Z,{title:t,value:r,prefix:i,formatter:o})}function x(e){var t=e.progress?d:v,r=e.centered?{display:"flex",alignItems:"center",justifyContent:"center"}:{};return(0,n.jsx)(c.Z,{type:"inner",children:(0,n.jsx)("div",{style:r,children:(0,n.jsx)(t,u({},e))})})}d.defaultProps=f,v.defaultProps=f,x.defaultProps=f},48935:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return h}});var n=r(28520),i=r.n(n),o=r(85893),a=r(67294),c=r(44068),s=r(25968),u=r(6226),l=r(87547),f=r(89270),d=r(34440),v=r(35159),x=r(58827);function p(e,t,r,n,i,o,a){try{var c=e[o](a),s=c.value}catch(u){return void r(u)}c.done?t(s):Promise.resolve(s).then(n,i)}function h(){var e,t=(0,a.useContext)(v.aC)||{},r=t.online,n=t.viewerCount,h=t.overallPeakViewerCount,j=t.sessionPeakViewerCount,m=(0,a.useState)([]),w=m[0],Z=m[1],y=(e=i().mark((function e(){var t;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,(0,x.rQ)(x.iV);case 3:t=e.sent,Z(t),e.next=10;break;case 7:e.prev=7,e.t0=e.catch(0),console.log("==== error",e.t0);case 10:case"end":return e.stop()}}),e,null,[[0,7]])})),function(){var t=this,r=arguments;return new Promise((function(n,i){var o=e.apply(t,r);function a(e){p(o,n,i,a,c,"next",e)}function c(e){p(o,n,i,a,c,"throw",e)}a(void 0)}))});return(0,a.useEffect)((function(){var e=null;return y(),r?(e=setInterval(y,6e4),function(){clearInterval(e)}):function(){return[]}}),[r]),w.length?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(c.Z.Title,{children:"Viewer Info"}),(0,o.jsx)("br",{}),(0,o.jsxs)(s.Z,{gutter:[16,16],justify:"space-around",children:[r&&(0,o.jsx)(u.Z,{span:8,md:8,children:(0,o.jsx)(d.Z,{title:"Current viewers",value:n.toString(),prefix:(0,o.jsx)(l.Z,{})})}),(0,o.jsx)(u.Z,{md:r?8:12,children:(0,o.jsx)(d.Z,{title:r?"Max viewers this session":"Max viewers last session",value:j.toString(),prefix:(0,o.jsx)(l.Z,{})})}),(0,o.jsx)(u.Z,{md:r?8:12,children:(0,o.jsx)(d.Z,{title:"All-time max viewers",value:h.toString(),prefix:(0,o.jsx)(l.Z,{})})})]}),(0,o.jsx)(f.Z,{title:"Viewers",data:w,color:"#2087E2",unit:""})]}):"no info"}}},function(e){e.O(0,[570,91,961,751,763,910,958,774,888,179],(function(){return t=31709,e(e.s=t);var t}));var t=e.O();_N_E=t}]); \ No newline at end of file
diff --git a/static/admin/_next/static/chunks/pages/webhooks-8b96f4afcc72aba4.js b/static/admin/_next/static/chunks/pages/webhooks-8b96f4afcc72aba4.js
new file mode 100644
index 000000000..477c3c659
--- /dev/null
+++ b/static/admin/_next/static/chunks/pages/webhooks-8b96f4afcc72aba4.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[462],{48689:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(1413),o=n(67294),c={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M360 184h-8c4.4 0 8-3.6 8-8v8h304v-8c0 4.4 3.6 8 8 8h-8v72h72v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80h72v-72zm504 72H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM731.3 840H292.7l-24.2-512h487l-24.2 512z"}}]},name:"delete",theme:"outlined"},a=n(42135),i=function(e,t){return o.createElement(a.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:t,icon:c}))};i.displayName="DeleteOutlined";var s=o.forwardRef(i)},6226:function(e,t,n){"use strict";n.d(t,{Z:function(){return h}});var r=n(4942),o=n(87462),c=n(71002),a=n(67294),i=n(94184),s=n.n(i),l=n(99134),u=n(59844),f=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n};var p=["xs","sm","md","lg","xl","xxl"],d=a.forwardRef((function(e,t){var n,i=a.useContext(u.E_),d=i.getPrefixCls,h=i.direction,v=a.useContext(l.Z),m=v.gutter,b=v.wrap,y=v.supportFlexGap,x=e.prefixCls,Z=e.span,g=e.order,w=e.offset,j=e.push,O=e.pull,k=e.className,C=e.children,E=e.flex,P=e.style,N=f(e,["prefixCls","span","order","offset","push","pull","className","children","flex","style"]),S=d("col",x),_={};p.forEach((function(t){var n,a={},i=e[t];"number"===typeof i?a.span=i:"object"===(0,c.Z)(i)&&(a=i||{}),delete N[t],_=(0,o.Z)((0,o.Z)({},_),(n={},(0,r.Z)(n,"".concat(S,"-").concat(t,"-").concat(a.span),void 0!==a.span),(0,r.Z)(n,"".concat(S,"-").concat(t,"-order-").concat(a.order),a.order||0===a.order),(0,r.Z)(n,"".concat(S,"-").concat(t,"-offset-").concat(a.offset),a.offset||0===a.offset),(0,r.Z)(n,"".concat(S,"-").concat(t,"-push-").concat(a.push),a.push||0===a.push),(0,r.Z)(n,"".concat(S,"-").concat(t,"-pull-").concat(a.pull),a.pull||0===a.pull),(0,r.Z)(n,"".concat(S,"-rtl"),"rtl"===h),n))}));var T=s()(S,(n={},(0,r.Z)(n,"".concat(S,"-").concat(Z),void 0!==Z),(0,r.Z)(n,"".concat(S,"-order-").concat(g),g),(0,r.Z)(n,"".concat(S,"-offset-").concat(w),w),(0,r.Z)(n,"".concat(S,"-push-").concat(j),j),(0,r.Z)(n,"".concat(S,"-pull-").concat(O),O),n),k,_),A={};if(m&&m[0]>0){var R=m[0]/2;A.paddingLeft=R,A.paddingRight=R}if(m&&m[1]>0&&!y){var I=m[1]/2;A.paddingTop=I,A.paddingBottom=I}return E&&(A.flex=function(e){return"number"===typeof e?"".concat(e," ").concat(e," auto"):/^\d+(\.\d+)?(px|em|rem|%)$/.test(e)?"0 0 ".concat(e):e}(E),!1!==b||A.minWidth||(A.minWidth=0)),a.createElement("div",(0,o.Z)({},N,{style:(0,o.Z)((0,o.Z)({},A),P),className:T,ref:t}),C)}));d.displayName="Col";var h=d},99134:function(e,t,n){"use strict";var r=(0,n(67294).createContext)({});t.Z=r},25968:function(e,t,n){"use strict";n.d(t,{Z:function(){return b}});var r=n(87462),o=n(4942),c=n(71002),a=n(97685),i=n(67294),s=n(94184),l=n.n(s),u=n(59844),f=n(99134),p=n(93355),d=n(24308),h=n(98082),v=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},m=((0,p.b)("top","middle","bottom","stretch"),(0,p.b)("start","end","center","space-around","space-between"),i.forwardRef((function(e,t){var n,s=e.prefixCls,p=e.justify,m=e.align,b=e.className,y=e.style,x=e.children,Z=e.gutter,g=void 0===Z?0:Z,w=e.wrap,j=v(e,["prefixCls","justify","align","className","style","children","gutter","wrap"]),O=i.useContext(u.E_),k=O.getPrefixCls,C=O.direction,E=i.useState({xs:!0,sm:!0,md:!0,lg:!0,xl:!0,xxl:!0}),P=(0,a.Z)(E,2),N=P[0],S=P[1],_=(0,h.Z)(),T=i.useRef(g);i.useEffect((function(){var e=d.ZP.subscribe((function(e){var t=T.current||0;(!Array.isArray(t)&&"object"===(0,c.Z)(t)||Array.isArray(t)&&("object"===(0,c.Z)(t[0])||"object"===(0,c.Z)(t[1])))&&S(e)}));return function(){return d.ZP.unsubscribe(e)}}),[]);var A=k("row",s),R=function(){var e=[0,0];return(Array.isArray(g)?g:[g,0]).forEach((function(t,n){if("object"===(0,c.Z)(t))for(var r=0;r<d.c4.length;r++){var o=d.c4[r];if(N[o]&&void 0!==t[o]){e[n]=t[o];break}}else e[n]=t||0})),e}(),I=l()(A,(n={},(0,o.Z)(n,"".concat(A,"-no-wrap"),!1===w),(0,o.Z)(n,"".concat(A,"-").concat(p),p),(0,o.Z)(n,"".concat(A,"-").concat(m),m),(0,o.Z)(n,"".concat(A,"-rtl"),"rtl"===C),n),b),W={},M=R[0]>0?R[0]/-2:void 0,G=R[1]>0?R[1]/-2:void 0;if(M&&(W.marginLeft=M,W.marginRight=M),_){var H=(0,a.Z)(R,2);W.rowGap=H[1]}else G&&(W.marginTop=G,W.marginBottom=G);var B=i.useMemo((function(){return{gutter:R,wrap:w,supportFlexGap:_}}),[R,w,_]);return i.createElement(f.Z.Provider,{value:B},i.createElement("div",(0,r.Z)({},j,{className:I,style:(0,r.Z)((0,r.Z)({},W),y),ref:t}),x))})));m.displayName="Row";var b=m},20550:function(e,t,n){"use strict";n.d(t,{Z:function(){return g}});var r=n(4942),o=n(87462),c=n(97685),a=n(67294),i=n(94184),s=n.n(i),l=n(98423),u=n(97937),f=n(59844),p=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},d=function(e){var t,n=e.prefixCls,c=e.className,i=e.checked,l=e.onChange,u=e.onClick,d=p(e,["prefixCls","className","checked","onChange","onClick"]),h=(0,a.useContext(f.E_).getPrefixCls)("tag",n),v=s()(h,(t={},(0,r.Z)(t,"".concat(h,"-checkable"),!0),(0,r.Z)(t,"".concat(h,"-checkable-checked"),i),t),c);return a.createElement("span",(0,o.Z)({},d,{className:v,onClick:function(e){null===l||void 0===l||l(!i),null===u||void 0===u||u(e)}}))},h=n(98787),v=n(97202),m=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},b=new RegExp("^(".concat(h.Y.join("|"),")(-inverse)?$")),y=new RegExp("^(".concat(h.E.join("|"),")$")),x=function(e,t){var n,i=e.prefixCls,p=e.className,d=e.style,h=e.children,x=e.icon,Z=e.color,g=e.onClose,w=e.closeIcon,j=e.closable,O=void 0!==j&&j,k=m(e,["prefixCls","className","style","children","icon","color","onClose","closeIcon","closable"]),C=a.useContext(f.E_),E=C.getPrefixCls,P=C.direction,N=a.useState(!0),S=(0,c.Z)(N,2),_=S[0],T=S[1];a.useEffect((function(){"visible"in k&&T(k.visible)}),[k.visible]);var A=function(){return!!Z&&(b.test(Z)||y.test(Z))},R=(0,o.Z)({backgroundColor:Z&&!A()?Z:void 0},d),I=A(),W=E("tag",i),M=s()(W,(n={},(0,r.Z)(n,"".concat(W,"-").concat(Z),I),(0,r.Z)(n,"".concat(W,"-has-color"),Z&&!I),(0,r.Z)(n,"".concat(W,"-hidden"),!_),(0,r.Z)(n,"".concat(W,"-rtl"),"rtl"===P),n),p),G=function(e){e.stopPropagation(),null===g||void 0===g||g(e),e.defaultPrevented||"visible"in k||T(!1)},H="onClick"in k||h&&"a"===h.type,B=(0,l.Z)(k,["visible"]),D=x||null,U=D?a.createElement(a.Fragment,null,D,a.createElement("span",null,h)):h,z=a.createElement("span",(0,o.Z)({},B,{ref:t,className:M,style:R}),U,O?w?a.createElement("span",{className:"".concat(W,"-close-icon"),onClick:G},w):a.createElement(u.Z,{className:"".concat(W,"-close-icon"),onClick:G}):null);return H?a.createElement(v.Z,null,z):z},Z=a.forwardRef(x);Z.displayName="Tag",Z.CheckableTag=d;var g=Z},75269:function(e,t,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/webhooks",function(){return n(90546)}])},90546:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return E}});var r=n(28520),o=n.n(r),c=n(85893),a=n(48689),i=n(44068),s=n(56266),l=n(20550),u=n(6226),f=n(32808),p=n(56516),d=n(69677),h=n(25968),v=n(71577),m=n(26713),b=n(88829),y=n(67294),x=n(58827),Z=n(19411);function g(e,t,n,r,o,c,a){try{var i=e[c](a),s=i.value}catch(l){return void n(l)}i.done?t(s):Promise.resolve(s).then(r,o)}function w(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var c=e.apply(t,n);function a(e){g(c,r,o,a,i,"next",e)}function i(e){g(c,r,o,a,i,"throw",e)}a(void 0)}))}}var j=i.Z.Title,O=i.Z.Paragraph,k={CHAT:{name:"Chat messages",description:"When a user sends a chat message",color:"purple"},USER_JOINED:{name:"User joined",description:"When a user joins the chat",color:"green"},NAME_CHANGE:{name:"User name changed",description:"When a user changes their name",color:"blue"},"VISIBILITY-UPDATE":{name:"Message visibility changed",description:"When a message visibility changes, likely due to moderation",color:"red"},STREAM_STARTED:{name:"Stream started",description:"When a stream starts",color:"orange"},STREAM_STOPPED:{name:"Stream stopped",description:"When a stream stops",color:"cyan"}};function C(e){var t=e.onOk,n=e.onCancel,r=e.visible,o=(0,y.useState)([]),a=o[0],i=o[1],s=(0,y.useState)(""),l=s[0],m=s[1],b=Object.keys(k).map((function(e){return{value:e,label:k[e].description}})),x={disabled:0===(null===a||void 0===a?void 0:a.length)||!(0,Z.Z)(l)},g=b.map((function(e){return(0,c.jsx)(u.Z,{span:8,children:(0,c.jsx)(f.Z,{value:e.value,children:e.label})},e.value)}));return(0,c.jsxs)(p.Z,{title:"Create New Webhook",visible:r,onOk:function(){t(l,a),m(""),i(null)},onCancel:n,okButtonProps:x,children:[(0,c.jsx)("div",{children:(0,c.jsx)(d.Z,{value:l,placeholder:"https://myserver.com/webhook",onChange:function(e){return m(e.currentTarget.value.trim())},type:"url",pattern:Z.a})}),(0,c.jsx)("p",{children:"Select the events that will be sent to this webhook."}),(0,c.jsx)(f.Z.Group,{style:{width:"100%"},value:a,onChange:function(e){i(e)},children:(0,c.jsx)(h.Z,{children:g})}),(0,c.jsx)("p",{children:(0,c.jsx)(v.Z,{type:"primary",onClick:function(){i(Object.keys(k))},children:"Select all"})})]})}function E(){var e=function(e){console.error("error",e)},t=(0,y.useState)([]),n=t[0],r=t[1],i=(0,y.useState)(!1),u=i[0],f=i[1];function p(){return d.apply(this,arguments)}function d(){return(d=w(o().mark((function t(){var n;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,(0,x.rQ)(x.XA);case 3:n=t.sent,r(n),t.next=10;break;case 7:t.prev=7,t.t0=t.catch(0),e(t.t0);case 10:case"end":return t.stop()}}),t,null,[[0,7]])})))).apply(this,arguments)}function h(){return(h=w(o().mark((function t(n){return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,(0,x.rQ)(x.M_,{method:"POST",data:{id:n}});case 3:p(),t.next=9;break;case 6:t.prev=6,t.t0=t.catch(0),e(t.t0);case 9:case"end":return t.stop()}}),t,null,[[0,6]])})))).apply(this,arguments)}function Z(){return(Z=w(o().mark((function t(c,a){var i;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,(0,x.rQ)(x.iG,{method:"POST",data:{url:c,events:a}});case 3:i=t.sent,r(n.concat(i)),t.next=10;break;case 7:t.prev=7,t.t0=t.catch(0),e(t.t0);case 10:case"end":return t.stop()}}),t,null,[[0,7]])})))).apply(this,arguments)}(0,y.useEffect)((function(){p()}),[]);var g=[{title:"",key:"delete",render:function(e,t){return(0,c.jsx)(m.Z,{size:"middle",children:(0,c.jsx)(v.Z,{onClick:function(){return function(e){return h.apply(this,arguments)}(t.id)},icon:(0,c.jsx)(a.Z,{})})})}},{title:"URL",dataIndex:"url",key:"url"},{title:"Events",dataIndex:"events",key:"events",render:function(e){return(0,c.jsx)(c.Fragment,{children:e.map((function(e){return function(e){if(!e||!k[e])return null;var t=k[e];return(0,c.jsx)(s.Z,{title:t.description,children:(0,c.jsx)(l.Z,{color:t.color,children:t.name})},e)}(e)}))})}}];return(0,c.jsxs)("div",{children:[(0,c.jsx)(j,{children:"Webhooks"}),(0,c.jsx)(O,{children:"A webhook is a callback made to an external API in response to an event that takes place within Owncast. This can be used to build chat bots or sending automatic notifications that you've started streaming."}),(0,c.jsxs)(O,{children:["Read more about how to use webhooks, with examples, at"," ",(0,c.jsx)("a",{href:"https://owncast.online/docs/integrations/?source=admin",target:"_blank",rel:"noopener noreferrer",children:"our documentation"}),"."]}),(0,c.jsx)(b.Z,{rowKey:function(e){return e.id},columns:g,dataSource:n,pagination:!1}),(0,c.jsx)("br",{}),(0,c.jsx)(v.Z,{type:"primary",onClick:function(){f(!0)},children:"Create Webhook"}),(0,c.jsx)(C,{visible:u,onOk:function(e,t){f(!1),function(e,t){Z.apply(this,arguments)}(e,t)},onCancel:function(){f(!1)}})]})}}},function(e){e.O(0,[829,774,888,179],(function(){return t=75269,e(e.s=t);var t}));var t=e.O();_N_E=t}]); \ No newline at end of file
diff --git a/static/admin/_next/static/chunks/pages/webhooks-f0ab34a6aedf78cb.js b/static/admin/_next/static/chunks/pages/webhooks-f0ab34a6aedf78cb.js
deleted file mode 100644
index 4b6e00970..000000000
--- a/static/admin/_next/static/chunks/pages/webhooks-f0ab34a6aedf78cb.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[462],{48689:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(1413),o=n(67294),a={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M360 184h-8c4.4 0 8-3.6 8-8v8h304v-8c0 4.4 3.6 8 8 8h-8v72h72v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80h72v-72zm504 72H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM731.3 840H292.7l-24.2-512h487l-24.2 512z"}}]},name:"delete",theme:"outlined"},c=n(42135),i=function(e,t){return o.createElement(c.Z,(0,r.Z)((0,r.Z)({},e),{},{ref:t,icon:a}))};i.displayName="DeleteOutlined";var l=o.forwardRef(i)},98082:function(e,t,n){"use strict";var r=n(97685),o=n(67294),a=n(31808);t.Z=function(){var e=o.useState(!1),t=(0,r.Z)(e,2),n=t[0],c=t[1];return o.useEffect((function(){c((0,a.fk)())}),[]),n}},6226:function(e,t,n){"use strict";n.d(t,{Z:function(){return v}});var r=n(4942),o=n(87462),a=n(71002),c=n(67294),i=n(94184),l=n.n(i),s=n(99134),u=n(59844),p=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n};var f=["xs","sm","md","lg","xl","xxl"],d=c.forwardRef((function(e,t){var n,i=c.useContext(u.E_),d=i.getPrefixCls,v=i.direction,h=c.useContext(s.Z),m=h.gutter,y=h.wrap,x=h.supportFlexGap,b=e.prefixCls,g=e.span,Z=e.order,w=e.offset,j=e.push,O=e.pull,C=e.className,E=e.children,k=e.flex,P=e.style,S=p(e,["prefixCls","span","order","offset","push","pull","className","children","flex","style"]),N=d("col",b),_={};f.forEach((function(t){var n,c={},i=e[t];"number"===typeof i?c.span=i:"object"===(0,a.Z)(i)&&(c=i||{}),delete S[t],_=(0,o.Z)((0,o.Z)({},_),(n={},(0,r.Z)(n,"".concat(N,"-").concat(t,"-").concat(c.span),void 0!==c.span),(0,r.Z)(n,"".concat(N,"-").concat(t,"-order-").concat(c.order),c.order||0===c.order),(0,r.Z)(n,"".concat(N,"-").concat(t,"-offset-").concat(c.offset),c.offset||0===c.offset),(0,r.Z)(n,"".concat(N,"-").concat(t,"-push-").concat(c.push),c.push||0===c.push),(0,r.Z)(n,"".concat(N,"-").concat(t,"-pull-").concat(c.pull),c.pull||0===c.pull),(0,r.Z)(n,"".concat(N,"-rtl"),"rtl"===v),n))}));var T=l()(N,(n={},(0,r.Z)(n,"".concat(N,"-").concat(g),void 0!==g),(0,r.Z)(n,"".concat(N,"-order-").concat(Z),Z),(0,r.Z)(n,"".concat(N,"-offset-").concat(w),w),(0,r.Z)(n,"".concat(N,"-push-").concat(j),j),(0,r.Z)(n,"".concat(N,"-pull-").concat(O),O),n),C,_),z={};if(m&&m[0]>0){var A=m[0]/2;z.paddingLeft=A,z.paddingRight=A}if(m&&m[1]>0&&!x){var I=m[1]/2;z.paddingTop=I,z.paddingBottom=I}return k&&(z.flex=function(e){return"number"===typeof e?"".concat(e," ").concat(e," auto"):/^\d+(\.\d+)?(px|em|rem|%)$/.test(e)?"0 0 ".concat(e):e}(k),!1!==y||z.minWidth||(z.minWidth=0)),c.createElement("div",(0,o.Z)({},S,{style:(0,o.Z)((0,o.Z)({},z),P),className:T,ref:t}),E)}));d.displayName="Col";var v=d},99134:function(e,t,n){"use strict";var r=(0,n(67294).createContext)({});t.Z=r},25968:function(e,t,n){"use strict";n.d(t,{Z:function(){return y}});var r=n(87462),o=n(4942),a=n(71002),c=n(97685),i=n(67294),l=n(94184),s=n.n(l),u=n(59844),p=n(99134),f=n(93355),d=n(24308),v=n(98082),h=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},m=((0,f.b)("top","middle","bottom","stretch"),(0,f.b)("start","end","center","space-around","space-between"),i.forwardRef((function(e,t){var n,l=e.prefixCls,f=e.justify,m=e.align,y=e.className,x=e.style,b=e.children,g=e.gutter,Z=void 0===g?0:g,w=e.wrap,j=h(e,["prefixCls","justify","align","className","style","children","gutter","wrap"]),O=i.useContext(u.E_),C=O.getPrefixCls,E=O.direction,k=i.useState({xs:!0,sm:!0,md:!0,lg:!0,xl:!0,xxl:!0}),P=(0,c.Z)(k,2),S=P[0],N=P[1],_=(0,v.Z)(),T=i.useRef(Z);i.useEffect((function(){var e=d.ZP.subscribe((function(e){var t=T.current||0;(!Array.isArray(t)&&"object"===(0,a.Z)(t)||Array.isArray(t)&&("object"===(0,a.Z)(t[0])||"object"===(0,a.Z)(t[1])))&&N(e)}));return function(){return d.ZP.unsubscribe(e)}}),[]);var z=C("row",l),A=function(){var e=[0,0];return(Array.isArray(Z)?Z:[Z,0]).forEach((function(t,n){if("object"===(0,a.Z)(t))for(var r=0;r<d.c4.length;r++){var o=d.c4[r];if(S[o]&&void 0!==t[o]){e[n]=t[o];break}}else e[n]=t||0})),e}(),I=s()(z,(n={},(0,o.Z)(n,"".concat(z,"-no-wrap"),!1===w),(0,o.Z)(n,"".concat(z,"-").concat(f),f),(0,o.Z)(n,"".concat(z,"-").concat(m),m),(0,o.Z)(n,"".concat(z,"-rtl"),"rtl"===E),n),y),R={},W=A[0]>0?A[0]/-2:void 0,G=A[1]>0?A[1]/-2:void 0;if(W&&(R.marginLeft=W,R.marginRight=W),_){var M=(0,c.Z)(A,2);R.rowGap=M[1]}else G&&(R.marginTop=G,R.marginBottom=G);var B=i.useMemo((function(){return{gutter:A,wrap:w,supportFlexGap:_}}),[A,w,_]);return i.createElement(p.Z.Provider,{value:B},i.createElement("div",(0,r.Z)({},j,{className:I,style:(0,r.Z)((0,r.Z)({},R),x),ref:t}),b))})));m.displayName="Row";var y=m},26713:function(e,t,n){"use strict";n.d(t,{u:function(){return v},Z:function(){return m}});var r=n(87462),o=n(4942),a=n(97685),c=n(67294),i=n(94184),l=n.n(i),s=n(50344),u=n(59844);function p(e){var t=e.className,n=e.direction,a=e.index,i=e.marginDirection,l=e.children,s=e.split,u=e.wrap,p=c.useContext(v),f=p.horizontalSize,d=p.verticalSize,h=p.latestIndex,m={};return p.supportFlexGap||("vertical"===n?a<h&&(m={marginBottom:f/(s?2:1)}):m=(0,r.Z)((0,r.Z)({},a<h&&(0,o.Z)({},i,f/(s?2:1))),u&&{paddingBottom:d})),null===l||void 0===l?null:c.createElement(c.Fragment,null,c.createElement("div",{className:t,style:m},l),a<h&&s&&c.createElement("span",{className:"".concat(t,"-split"),style:m},s))}var f=n(98082),d=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},v=c.createContext({latestIndex:0,horizontalSize:0,verticalSize:0,supportFlexGap:!1}),h={small:8,middle:16,large:24};var m=function(e){var t,n=c.useContext(u.E_),i=n.getPrefixCls,m=n.space,y=n.direction,x=e.size,b=void 0===x?(null===m||void 0===m?void 0:m.size)||"small":x,g=e.align,Z=e.className,w=e.children,j=e.direction,O=void 0===j?"horizontal":j,C=e.prefixCls,E=e.split,k=e.style,P=e.wrap,S=void 0!==P&&P,N=d(e,["size","align","className","children","direction","prefixCls","split","style","wrap"]),_=(0,f.Z)(),T=c.useMemo((function(){return(Array.isArray(b)?b:[b,b]).map((function(e){return function(e){return"string"===typeof e?h[e]:e||0}(e)}))}),[b]),z=(0,a.Z)(T,2),A=z[0],I=z[1],R=(0,s.Z)(w,{keepEmpty:!0}),W=void 0===g&&"horizontal"===O?"center":g,G=i("space",C),M=l()(G,"".concat(G,"-").concat(O),(t={},(0,o.Z)(t,"".concat(G,"-rtl"),"rtl"===y),(0,o.Z)(t,"".concat(G,"-align-").concat(W),W),t),Z),B="".concat(G,"-item"),F="rtl"===y?"marginLeft":"marginRight",D=0,H=R.map((function(e,t){return null!==e&&void 0!==e&&(D=t),c.createElement(p,{className:B,key:"".concat(B,"-").concat(t),direction:O,index:t,marginDirection:F,split:E,wrap:S},e)})),L=c.useMemo((function(){return{horizontalSize:A,verticalSize:I,latestIndex:D,supportFlexGap:_}}),[A,I,D,_]);if(0===R.length)return null;var U={};return S&&(U.flexWrap="wrap",_||(U.marginBottom=-I)),_&&(U.columnGap=A,U.rowGap=I),c.createElement("div",(0,r.Z)({className:M,style:(0,r.Z)((0,r.Z)({},U),k)},N),c.createElement(v.Provider,{value:L},H))}},20550:function(e,t,n){"use strict";n.d(t,{Z:function(){return Z}});var r=n(4942),o=n(87462),a=n(97685),c=n(67294),i=n(94184),l=n.n(i),s=n(98423),u=n(97937),p=n(59844),f=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},d=function(e){var t,n=e.prefixCls,a=e.className,i=e.checked,s=e.onChange,u=e.onClick,d=f(e,["prefixCls","className","checked","onChange","onClick"]),v=(0,c.useContext(p.E_).getPrefixCls)("tag",n),h=l()(v,(t={},(0,r.Z)(t,"".concat(v,"-checkable"),!0),(0,r.Z)(t,"".concat(v,"-checkable-checked"),i),t),a);return c.createElement("span",(0,o.Z)({},d,{className:h,onClick:function(e){null===s||void 0===s||s(!i),null===u||void 0===u||u(e)}}))},v=n(98787),h=n(97202),m=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},y=new RegExp("^(".concat(v.Y.join("|"),")(-inverse)?$")),x=new RegExp("^(".concat(v.E.join("|"),")$")),b=function(e,t){var n,i=e.prefixCls,f=e.className,d=e.style,v=e.children,b=e.icon,g=e.color,Z=e.onClose,w=e.closeIcon,j=e.closable,O=void 0!==j&&j,C=m(e,["prefixCls","className","style","children","icon","color","onClose","closeIcon","closable"]),E=c.useContext(p.E_),k=E.getPrefixCls,P=E.direction,S=c.useState(!0),N=(0,a.Z)(S,2),_=N[0],T=N[1];c.useEffect((function(){"visible"in C&&T(C.visible)}),[C.visible]);var z=function(){return!!g&&(y.test(g)||x.test(g))},A=(0,o.Z)({backgroundColor:g&&!z()?g:void 0},d),I=z(),R=k("tag",i),W=l()(R,(n={},(0,r.Z)(n,"".concat(R,"-").concat(g),I),(0,r.Z)(n,"".concat(R,"-has-color"),g&&!I),(0,r.Z)(n,"".concat(R,"-hidden"),!_),(0,r.Z)(n,"".concat(R,"-rtl"),"rtl"===P),n),f),G=function(e){e.stopPropagation(),null===Z||void 0===Z||Z(e),e.defaultPrevented||"visible"in C||T(!1)},M="onClick"in C||v&&"a"===v.type,B=(0,s.Z)(C,["visible"]),F=b||null,D=F?c.createElement(c.Fragment,null,F,c.createElement("span",null,v)):v,H=c.createElement("span",(0,o.Z)({},B,{ref:t,className:W,style:A}),D,O?w?c.createElement("span",{className:"".concat(R,"-close-icon"),onClick:G},w):c.createElement(u.Z,{className:"".concat(R,"-close-icon"),onClick:G}):null);return M?c.createElement(h.Z,null,H):H},g=c.forwardRef(b);g.displayName="Tag",g.CheckableTag=d;var Z=g},75269:function(e,t,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/webhooks",function(){return n(90546)}])},90546:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return k}});var r=n(28520),o=n.n(r),a=n(85893),c=n(48689),i=n(17256),l=n(56266),s=n(20550),u=n(6226),p=n(32808),f=n(56516),d=n(69677),v=n(25968),h=n(71577),m=n(26713),y=n(49919),x=n(67294),b=n(58827),g=n(19411);function Z(e,t,n,r,o,a,c){try{var i=e[a](c),l=i.value}catch(s){return void n(s)}i.done?t(l):Promise.resolve(l).then(r,o)}function w(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var a=e.apply(t,n);function c(e){Z(a,r,o,c,i,"next",e)}function i(e){Z(a,r,o,c,i,"throw",e)}c(void 0)}))}}var j=i.Z.Title,O=i.Z.Paragraph,C={CHAT:{name:"Chat messages",description:"When a user sends a chat message",color:"purple"},USER_JOINED:{name:"User joined",description:"When a user joins the chat",color:"green"},NAME_CHANGE:{name:"User name changed",description:"When a user changes their name",color:"blue"},"VISIBILITY-UPDATE":{name:"Message visibility changed",description:"When a message visibility changes, likely due to moderation",color:"red"},STREAM_STARTED:{name:"Stream started",description:"When a stream starts",color:"orange"},STREAM_STOPPED:{name:"Stream stopped",description:"When a stream stops",color:"cyan"}};function E(e){var t=e.onOk,n=e.onCancel,r=e.visible,o=(0,x.useState)([]),c=o[0],i=o[1],l=(0,x.useState)(""),s=l[0],m=l[1],y=Object.keys(C).map((function(e){return{value:e,label:C[e].description}})),b={disabled:0===(null===c||void 0===c?void 0:c.length)||!(0,g.Z)(s)},Z=y.map((function(e){return(0,a.jsx)(u.Z,{span:8,children:(0,a.jsx)(p.Z,{value:e.value,children:e.label})},e.value)}));return(0,a.jsxs)(f.Z,{title:"Create New Webhook",visible:r,onOk:function(){t(s,c),m(""),i(null)},onCancel:n,okButtonProps:b,children:[(0,a.jsx)("div",{children:(0,a.jsx)(d.Z,{value:s,placeholder:"https://myserver.com/webhook",onChange:function(e){return m(e.currentTarget.value.trim())},type:"url",pattern:g.a})}),(0,a.jsx)("p",{children:"Select the events that will be sent to this webhook."}),(0,a.jsx)(p.Z.Group,{style:{width:"100%"},value:c,onChange:function(e){i(e)},children:(0,a.jsx)(v.Z,{children:Z})}),(0,a.jsx)("p",{children:(0,a.jsx)(h.Z,{type:"primary",onClick:function(){i(Object.keys(C))},children:"Select all"})})]})}function k(){var e=function(e){console.error("error",e)},t=(0,x.useState)([]),n=t[0],r=t[1],i=(0,x.useState)(!1),u=i[0],p=i[1];function f(){return d.apply(this,arguments)}function d(){return(d=w(o().mark((function t(){var n;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,(0,b.rQ)(b.XA);case 3:n=t.sent,r(n),t.next=10;break;case 7:t.prev=7,t.t0=t.catch(0),e(t.t0);case 10:case"end":return t.stop()}}),t,null,[[0,7]])})))).apply(this,arguments)}function v(){return(v=w(o().mark((function t(n){return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,(0,b.rQ)(b.M_,{method:"POST",data:{id:n}});case 3:f(),t.next=9;break;case 6:t.prev=6,t.t0=t.catch(0),e(t.t0);case 9:case"end":return t.stop()}}),t,null,[[0,6]])})))).apply(this,arguments)}function g(){return(g=w(o().mark((function t(a,c){var i;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,(0,b.rQ)(b.iG,{method:"POST",data:{url:a,events:c}});case 3:i=t.sent,r(n.concat(i)),t.next=10;break;case 7:t.prev=7,t.t0=t.catch(0),e(t.t0);case 10:case"end":return t.stop()}}),t,null,[[0,7]])})))).apply(this,arguments)}(0,x.useEffect)((function(){f()}),[]);var Z=[{title:"",key:"delete",render:function(e,t){return(0,a.jsx)(m.Z,{size:"middle",children:(0,a.jsx)(h.Z,{onClick:function(){return function(e){return v.apply(this,arguments)}(t.id)},icon:(0,a.jsx)(c.Z,{})})})}},{title:"URL",dataIndex:"url",key:"url"},{title:"Events",dataIndex:"events",key:"events",render:function(e){return(0,a.jsx)(a.Fragment,{children:e.map((function(e){return function(e){if(!e||!C[e])return null;var t=C[e];return(0,a.jsx)(l.Z,{title:t.description,children:(0,a.jsx)(s.Z,{color:t.color,children:t.name})},e)}(e)}))})}}];return(0,a.jsxs)("div",{children:[(0,a.jsx)(j,{children:"Webhooks"}),(0,a.jsx)(O,{children:"A webhook is a callback made to an external API in response to an event that takes place within Owncast. This can be used to build chat bots or sending automatic notifications that you've started streaming."}),(0,a.jsxs)(O,{children:["Read more about how to use webhooks, with examples, at"," ",(0,a.jsx)("a",{href:"https://owncast.online/docs/integrations/?source=admin",target:"_blank",rel:"noopener noreferrer",children:"our documentation"}),"."]}),(0,a.jsx)(y.Z,{rowKey:function(e){return e.id},columns:Z,dataSource:n,pagination:!1}),(0,a.jsx)("br",{}),(0,a.jsx)(h.Z,{type:"primary",onClick:function(){p(!0)},children:"Create Webhook"}),(0,a.jsx)(E,{visible:u,onOk:function(e,t){p(!1),function(e,t){g.apply(this,arguments)}(e,t)},onCancel:function(){p(!1)}})]})}}},function(e){e.O(0,[919,516,774,888,179],(function(){return t=75269,e(e.s=t);var t}));var t=e.O();_N_E=t}]); \ No newline at end of file
diff --git a/static/admin/_next/static/chunks/webpack-32f373d36961f088.js b/static/admin/_next/static/chunks/webpack-32f373d36961f088.js
index b940eba56..780794d3f 100644
--- a/static/admin/_next/static/chunks/webpack-32f373d36961f088.js
+++ b/static/admin/_next/static/chunks/webpack-32f373d36961f088.js
@@ -1 +1,9 @@
-!function(){"use strict";var e={},n={};function t(r){var o=n[r];if(void 0!==o)return o.exports;var i=n[r]={id:r,loaded:!1,exports:{}},u=!0;try{e[r].call(i.exports,i,i.exports,t),u=!1}finally{u&&delete n[r]}return i.loaded=!0,i.exports}t.m=e,t.amdO={},function(){var e=[];t.O=function(n,r,o,i){if(!r){var u=1/0;for(l=0;l<e.length;l++){r=e[l][0],o=e[l][1],i=e[l][2];for(var a=!0,c=0;c<r.length;c++)(!1&i||u>=i)&&Object.keys(t.O).every((function(e){return t.O[e](r[c])}))?r.splice(c--,1):(a=!1,i<u&&(u=i));if(a){e.splice(l--,1);var f=o();void 0!==f&&(n=f)}}return n}i=i||0;for(var l=e.length;l>0&&e[l-1][2]>i;l--)e[l]=e[l-1];e[l]=[r,o,i]}}(),t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,{a:n}),n},t.d=function(e,n){for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},t.f={},t.e=function(e){return Promise.all(Object.keys(t.f).reduce((function(n,r){return t.f[r](e,n),n}),[]))},t.u=function(e){return"static/chunks/"+e+".6e0d7eb5a76a471d.js"},t.miniCssF=function(e){return"static/css/"+{589:"325160c29fde2de0",888:"ba0ae6285080d7f0"}[e]+".css"},t.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}(),t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},function(){var e={},n="_N_E:";t.l=function(r,o,i,u){if(e[r])e[r].push(o);else{var a,c;if(void 0!==i)for(var f=document.getElementsByTagName("script"),l=0;l<f.length;l++){var d=f[l];if(d.getAttribute("src")==r||d.getAttribute("data-webpack")==n+i){a=d;break}}a||(c=!0,(a=document.createElement("script")).charset="utf-8",a.timeout=120,t.nc&&a.setAttribute("nonce",t.nc),a.setAttribute("data-webpack",n+i),a.src=r),e[r]=[o];var s=function(n,t){a.onerror=a.onload=null,clearTimeout(p);var o=e[r];if(delete e[r],a.parentNode&&a.parentNode.removeChild(a),o&&o.forEach((function(e){return e(t)})),n)return n(t)},p=setTimeout(s.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=s.bind(null,a.onerror),a.onload=s.bind(null,a.onload),c&&document.head.appendChild(a)}}}(),t.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},t.p="/admin/_next/",function(){var e={272:0};t.f.j=function(n,r){var o=t.o(e,n)?e[n]:void 0;if(0!==o)if(o)r.push(o[2]);else if(272!=n){var i=new Promise((function(t,r){o=e[n]=[t,r]}));r.push(o[2]=i);var u=t.p+t.u(n),a=new Error;t.l(u,(function(r){if(t.o(e,n)&&(0!==(o=e[n])&&(e[n]=void 0),o)){var i=r&&("load"===r.type?"missing":r.type),u=r&&r.target&&r.target.src;a.message="Loading chunk "+n+" failed.\n("+i+": "+u+")",a.name="ChunkLoadError",a.type=i,a.request=u,o[1](a)}}),"chunk-"+n,n)}else e[n]=0},t.O.j=function(n){return 0===e[n]};var n=function(n,r){var o,i,u=r[0],a=r[1],c=r[2],f=0;if(u.some((function(n){return 0!==e[n]}))){for(o in a)t.o(a,o)&&(t.m[o]=a[o]);if(c)var l=c(t)}for(n&&n(r);f<u.length;f++)i=u[f],t.o(e,i)&&e[i]&&e[i][0](),e[u[f]]=0;return t.O(l)},r=self.webpackChunk_N_E=self.webpackChunk_N_E||[];r.forEach(n.bind(null,0)),r.push=n.bind(null,r.push.bind(r))}()}(); \ No newline at end of file
+<<<<<<< HEAD:static/admin/_next/static/chunks/webpack-32f373d36961f088.js
+!function(){"use strict";var e={},n={};function t(r){var o=n[r];if(void 0!==o)return o.exports;var i=n[r]={id:r,loaded:!1,exports:{}},u=!0;try{e[r].call(i.exports,i,i.exports,t),u=!1}finally{u&&delete n[r]}return i.loaded=!0,i.exports}t.m=e,t.amdO={},function(){var e=[];t.O=function(n,r,o,i){if(!r){var u=1/0;for(l=0;l<e.length;l++){r=e[l][0],o=e[l][1],i=e[l][2];for(var a=!0,c=0;c<r.length;c++)(!1&i||u>=i)&&Object.keys(t.O).every((function(e){return t.O[e](r[c])}))?r.splice(c--,1):(a=!1,i<u&&(u=i));if(a){e.splice(l--,1);var f=o();void 0!==f&&(n=f)}}return n}i=i||0;for(var l=e.length;l>0&&e[l-1][2]>i;l--)e[l]=e[l-1];e[l]=[r,o,i]}}(),t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,{a:n}),n},t.d=function(e,n){for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},t.f={},t.e=function(e){return Promise.all(Object.keys(t.f).reduce((function(n,r){return t.f[r](e,n),n}),[]))},t.u=function(e){return"static/chunks/"+e+".6e0d7eb5a76a471d.js"},t.miniCssF=function(e){return"static/css/"+{589:"325160c29fde2de0",888:"ba0ae6285080d7f0"}[e]+".css"},t.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}(),t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},function(){var e={},n="_N_E:";t.l=function(r,o,i,u){if(e[r])e[r].push(o);else{var a,c;if(void 0!==i)for(var f=document.getElementsByTagName("script"),l=0;l<f.length;l++){var d=f[l];if(d.getAttribute("src")==r||d.getAttribute("data-webpack")==n+i){a=d;break}}a||(c=!0,(a=document.createElement("script")).charset="utf-8",a.timeout=120,t.nc&&a.setAttribute("nonce",t.nc),a.setAttribute("data-webpack",n+i),a.src=r),e[r]=[o];var s=function(n,t){a.onerror=a.onload=null,clearTimeout(p);var o=e[r];if(delete e[r],a.parentNode&&a.parentNode.removeChild(a),o&&o.forEach((function(e){return e(t)})),n)return n(t)},p=setTimeout(s.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=s.bind(null,a.onerror),a.onload=s.bind(null,a.onload),c&&document.head.appendChild(a)}}}(),t.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},t.p="/admin/_next/",function(){var e={272:0};t.f.j=function(n,r){var o=t.o(e,n)?e[n]:void 0;if(0!==o)if(o)r.push(o[2]);else if(272!=n){var i=new Promise((function(t,r){o=e[n]=[t,r]}));r.push(o[2]=i);var u=t.p+t.u(n),a=new Error;t.l(u,(function(r){if(t.o(e,n)&&(0!==(o=e[n])&&(e[n]=void 0),o)){var i=r&&("load"===r.type?"missing":r.type),u=r&&r.target&&r.target.src;a.message="Loading chunk "+n+" failed.\n("+i+": "+u+")",a.name="ChunkLoadError",a.type=i,a.request=u,o[1](a)}}),"chunk-"+n,n)}else e[n]=0},t.O.j=function(n){return 0===e[n]};var n=function(n,r){var o,i,u=r[0],a=r[1],c=r[2],f=0;if(u.some((function(n){return 0!==e[n]}))){for(o in a)t.o(a,o)&&(t.m[o]=a[o]);if(c)var l=c(t)}for(n&&n(r);f<u.length;f++)i=u[f],t.o(e,i)&&e[i]&&e[i][0](),e[u[f]]=0;return t.O(l)},r=self.webpackChunk_N_E=self.webpackChunk_N_E||[];r.forEach(n.bind(null,0)),r.push=n.bind(null,r.push.bind(r))}()}();
+=======
+<<<<<<< HEAD:static/admin/_next/static/chunks/webpack-a84f071595ac1366.js
+!function(){"use strict";var e={},n={};function t(r){var o=n[r];if(void 0!==o)return o.exports;var i=n[r]={id:r,loaded:!1,exports:{}},u=!0;try{e[r].call(i.exports,i,i.exports,t),u=!1}finally{u&&delete n[r]}return i.loaded=!0,i.exports}t.m=e,t.amdO={},function(){var e=[];t.O=function(n,r,o,i){if(!r){var u=1/0;for(l=0;l<e.length;l++){r=e[l][0],o=e[l][1],i=e[l][2];for(var a=!0,c=0;c<r.length;c++)(!1&i||u>=i)&&Object.keys(t.O).every((function(e){return t.O[e](r[c])}))?r.splice(c--,1):(a=!1,i<u&&(u=i));if(a){e.splice(l--,1);var f=o();void 0!==f&&(n=f)}}return n}i=i||0;for(var l=e.length;l>0&&e[l-1][2]>i;l--)e[l]=e[l-1];e[l]=[r,o,i]}}(),t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,{a:n}),n},t.d=function(e,n){for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},t.f={},t.e=function(e){return Promise.all(Object.keys(t.f).reduce((function(n,r){return t.f[r](e,n),n}),[]))},t.u=function(e){return"static/chunks/"+e+".6e0d7eb5a76a471d.js"},t.miniCssF=function(e){return"static/css/"+{589:"325160c29fde2de0",888:"c46d3694b92335ff"}[e]+".css"},t.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}(),t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},function(){var e={},n="_N_E:";t.l=function(r,o,i,u){if(e[r])e[r].push(o);else{var a,c;if(void 0!==i)for(var f=document.getElementsByTagName("script"),l=0;l<f.length;l++){var d=f[l];if(d.getAttribute("src")==r||d.getAttribute("data-webpack")==n+i){a=d;break}}a||(c=!0,(a=document.createElement("script")).charset="utf-8",a.timeout=120,t.nc&&a.setAttribute("nonce",t.nc),a.setAttribute("data-webpack",n+i),a.src=r),e[r]=[o];var s=function(n,t){a.onerror=a.onload=null,clearTimeout(p);var o=e[r];if(delete e[r],a.parentNode&&a.parentNode.removeChild(a),o&&o.forEach((function(e){return e(t)})),n)return n(t)},p=setTimeout(s.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=s.bind(null,a.onerror),a.onload=s.bind(null,a.onload),c&&document.head.appendChild(a)}}}(),t.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},t.p="/admin/_next/",function(){var e={272:0};t.f.j=function(n,r){var o=t.o(e,n)?e[n]:void 0;if(0!==o)if(o)r.push(o[2]);else if(272!=n){var i=new Promise((function(t,r){o=e[n]=[t,r]}));r.push(o[2]=i);var u=t.p+t.u(n),a=new Error;t.l(u,(function(r){if(t.o(e,n)&&(0!==(o=e[n])&&(e[n]=void 0),o)){var i=r&&("load"===r.type?"missing":r.type),u=r&&r.target&&r.target.src;a.message="Loading chunk "+n+" failed.\n("+i+": "+u+")",a.name="ChunkLoadError",a.type=i,a.request=u,o[1](a)}}),"chunk-"+n,n)}else e[n]=0},t.O.j=function(n){return 0===e[n]};var n=function(n,r){var o,i,u=r[0],a=r[1],c=r[2],f=0;if(u.some((function(n){return 0!==e[n]}))){for(o in a)t.o(a,o)&&(t.m[o]=a[o]);if(c)var l=c(t)}for(n&&n(r);f<u.length;f++)i=u[f],t.o(e,i)&&e[i]&&e[i][0](),e[u[f]]=0;return t.O(l)},r=self.webpackChunk_N_E=self.webpackChunk_N_E||[];r.forEach(n.bind(null,0)),r.push=n.bind(null,r.push.bind(r))}()}();
+=======
+!function(){"use strict";var e={},n={};function t(r){var o=n[r];if(void 0!==o)return o.exports;var i=n[r]={id:r,loaded:!1,exports:{}},u=!0;try{e[r].call(i.exports,i,i.exports,t),u=!1}finally{u&&delete n[r]}return i.loaded=!0,i.exports}t.m=e,t.amdO={},function(){var e=[];t.O=function(n,r,o,i){if(!r){var u=1/0;for(l=0;l<e.length;l++){r=e[l][0],o=e[l][1],i=e[l][2];for(var c=!0,a=0;a<r.length;a++)(!1&i||u>=i)&&Object.keys(t.O).every((function(e){return t.O[e](r[a])}))?r.splice(a--,1):(c=!1,i<u&&(u=i));if(c){e.splice(l--,1);var f=o();void 0!==f&&(n=f)}}return n}i=i||0;for(var l=e.length;l>0&&e[l-1][2]>i;l--)e[l]=e[l-1];e[l]=[r,o,i]}}(),t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,{a:n}),n},t.d=function(e,n){for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},t.f={},t.e=function(e){return Promise.all(Object.keys(t.f).reduce((function(n,r){return t.f[r](e,n),n}),[]))},t.u=function(e){return"static/chunks/"+e+".6e0d7eb5a76a471d.js"},t.miniCssF=function(e){return"static/css/"+{589:"325160c29fde2de0",888:"4becf17e1d19857e"}[e]+".css"},t.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}(),t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},function(){var e={},n="_N_E:";t.l=function(r,o,i,u){if(e[r])e[r].push(o);else{var c,a;if(void 0!==i)for(var f=document.getElementsByTagName("script"),l=0;l<f.length;l++){var d=f[l];if(d.getAttribute("src")==r||d.getAttribute("data-webpack")==n+i){c=d;break}}c||(a=!0,(c=document.createElement("script")).charset="utf-8",c.timeout=120,t.nc&&c.setAttribute("nonce",t.nc),c.setAttribute("data-webpack",n+i),c.src=r),e[r]=[o];var s=function(n,t){c.onerror=c.onload=null,clearTimeout(p);var o=e[r];if(delete e[r],c.parentNode&&c.parentNode.removeChild(c),o&&o.forEach((function(e){return e(t)})),n)return n(t)},p=setTimeout(s.bind(null,void 0,{type:"timeout",target:c}),12e4);c.onerror=s.bind(null,c.onerror),c.onload=s.bind(null,c.onload),a&&document.head.appendChild(c)}}}(),t.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},t.p="/admin/_next/",function(){var e={272:0};t.f.j=function(n,r){var o=t.o(e,n)?e[n]:void 0;if(0!==o)if(o)r.push(o[2]);else if(272!=n){var i=new Promise((function(t,r){o=e[n]=[t,r]}));r.push(o[2]=i);var u=t.p+t.u(n),c=new Error;t.l(u,(function(r){if(t.o(e,n)&&(0!==(o=e[n])&&(e[n]=void 0),o)){var i=r&&("load"===r.type?"missing":r.type),u=r&&r.target&&r.target.src;c.message="Loading chunk "+n+" failed.\n("+i+": "+u+")",c.name="ChunkLoadError",c.type=i,c.request=u,o[1](c)}}),"chunk-"+n,n)}else e[n]=0},t.O.j=function(n){return 0===e[n]};var n=function(n,r){var o,i,u=r[0],c=r[1],a=r[2],f=0;if(u.some((function(n){return 0!==e[n]}))){for(o in c)t.o(c,o)&&(t.m[o]=c[o]);if(a)var l=a(t)}for(n&&n(r);f<u.length;f++)i=u[f],t.o(e,i)&&e[i]&&e[i][0](),e[u[f]]=0;return t.O(l)},r=self.webpackChunk_N_E=self.webpackChunk_N_E||[];r.forEach(n.bind(null,0)),r.push=n.bind(null,r.push.bind(r))}()}();
+>>>>>>> 826a8f86 (Update dev admin):static/admin/_next/static/chunks/webpack-4571edccc3862e8f.js
+>>>>>>> 60e1970a (Update dev admin):static/admin/_next/static/chunks/webpack-a84f071595ac1366.js
diff --git a/static/admin/_next/static/chunks/webpack-d3dfca19c7a5e28c.js b/static/admin/_next/static/chunks/webpack-d3dfca19c7a5e28c.js
new file mode 100644
index 000000000..9ef54c155
--- /dev/null
+++ b/static/admin/_next/static/chunks/webpack-d3dfca19c7a5e28c.js
@@ -0,0 +1 @@
+!function(){"use strict";var e={},n={};function t(r){var o=n[r];if(void 0!==o)return o.exports;var i=n[r]={id:r,loaded:!1,exports:{}},u=!0;try{e[r].call(i.exports,i,i.exports,t),u=!1}finally{u&&delete n[r]}return i.loaded=!0,i.exports}t.m=e,t.amdO={},function(){var e=[];t.O=function(n,r,o,i){if(!r){var u=1/0;for(l=0;l<e.length;l++){r=e[l][0],o=e[l][1],i=e[l][2];for(var a=!0,c=0;c<r.length;c++)(!1&i||u>=i)&&Object.keys(t.O).every((function(e){return t.O[e](r[c])}))?r.splice(c--,1):(a=!1,i<u&&(u=i));if(a){e.splice(l--,1);var f=o();void 0!==f&&(n=f)}}return n}i=i||0;for(var l=e.length;l>0&&e[l-1][2]>i;l--)e[l]=e[l-1];e[l]=[r,o,i]}}(),t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,{a:n}),n},t.d=function(e,n){for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},t.f={},t.e=function(e){return Promise.all(Object.keys(t.f).reduce((function(n,r){return t.f[r](e,n),n}),[]))},t.u=function(e){return"static/chunks/"+e+".6e0d7eb5a76a471d.js"},t.miniCssF=function(e){return"static/css/"+{589:"4da23ced01517a16",888:"8f06007bcaf49272"}[e]+".css"},t.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}(),t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},function(){var e={},n="_N_E:";t.l=function(r,o,i,u){if(e[r])e[r].push(o);else{var a,c;if(void 0!==i)for(var f=document.getElementsByTagName("script"),l=0;l<f.length;l++){var d=f[l];if(d.getAttribute("src")==r||d.getAttribute("data-webpack")==n+i){a=d;break}}a||(c=!0,(a=document.createElement("script")).charset="utf-8",a.timeout=120,t.nc&&a.setAttribute("nonce",t.nc),a.setAttribute("data-webpack",n+i),a.src=r),e[r]=[o];var s=function(n,t){a.onerror=a.onload=null,clearTimeout(p);var o=e[r];if(delete e[r],a.parentNode&&a.parentNode.removeChild(a),o&&o.forEach((function(e){return e(t)})),n)return n(t)},p=setTimeout(s.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=s.bind(null,a.onerror),a.onload=s.bind(null,a.onload),c&&document.head.appendChild(a)}}}(),t.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},t.p="/admin/_next/",function(){var e={272:0};t.f.j=function(n,r){var o=t.o(e,n)?e[n]:void 0;if(0!==o)if(o)r.push(o[2]);else if(272!=n){var i=new Promise((function(t,r){o=e[n]=[t,r]}));r.push(o[2]=i);var u=t.p+t.u(n),a=new Error;t.l(u,(function(r){if(t.o(e,n)&&(0!==(o=e[n])&&(e[n]=void 0),o)){var i=r&&("load"===r.type?"missing":r.type),u=r&&r.target&&r.target.src;a.message="Loading chunk "+n+" failed.\n("+i+": "+u+")",a.name="ChunkLoadError",a.type=i,a.request=u,o[1](a)}}),"chunk-"+n,n)}else e[n]=0},t.O.j=function(n){return 0===e[n]};var n=function(n,r){var o,i,u=r[0],a=r[1],c=r[2],f=0;if(u.some((function(n){return 0!==e[n]}))){for(o in a)t.o(a,o)&&(t.m[o]=a[o]);if(c)var l=c(t)}for(n&&n(r);f<u.length;f++)i=u[f],t.o(e,i)&&e[i]&&e[i][0](),e[u[f]]=0;return t.O(l)},r=self.webpackChunk_N_E=self.webpackChunk_N_E||[];r.forEach(n.bind(null,0)),r.push=n.bind(null,r.push.bind(r))}()}(); \ No newline at end of file
diff --git a/static/admin/_next/static/css/325160c29fde2de0.css b/static/admin/_next/static/css/4da23ced01517a16.css
index 469cb3210..cd19eb10f 100644
--- a/static/admin/_next/static/css/325160c29fde2de0.css
+++ b/static/admin/_next/static/css/4da23ced01517a16.css
@@ -1 +1 @@
-@font-face{font-family:rmel-iconfont;src:url(data:application/vnd.ms-fontobject;base64,fBkAAMAYAAABAAIAAAAAAAIABQMAAAAAAAABAJABAAAAAExQAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAB9vj4gAAAAAAAAAAAAAAAAAAAAAAABoAcgBtAGUAbAAtAGkAYwBvAG4AZgBvAG4AdAAAAA4AUgBlAGcAdQBsAGEAcgAAABYAVgBlAHIAcwBpAG8AbgAgADEALgAwAAAAGgByAG0AZQBsAC0AaQBjAG8AbgBmAG8AbgB0AAAAAAAAAQAAAAsAgAADADBHU1VCsP6z7QAAATgAAABCT1MvMj3jT5QAAAF8AAAAVmNtYXBA5I9dAAACPAAAAwhnbHlmMImhbQAABXwAAA9gaGVhZBtQ+k8AAADgAAAANmhoZWEH3gObAAAAvAAAACRobXR4aAAAAAAAAdQAAABobG9jYTX6MgAAAAVEAAAANm1heHABMAB7AAABGAAAACBuYW1lc9ztwgAAFNwAAAKpcG9zdCcpv64AABeIAAABNQABAAADgP+AAFwEAAAAAAAEAAABAAAAAAAAAAAAAAAAAAAAGgABAAAAAQAA4uPbB18PPPUACwQAAAAAANwY2ykAAAAA3BjbKQAA//8EAAMBAAAACAACAAAAAAAAAAEAAAAaAG8ADAAAAAAAAgAAAAoACgAAAP8AAAAAAAAAAQAAAAoAHgAsAAFERkxUAAgABAAAAAAAAAABAAAAAWxpZ2EACAAAAAEAAAABAAQABAAAAAEACAABAAYAAAABAAAAAAABBAABkAAFAAgCiQLMAAAAjwKJAswAAAHrADIBCAAAAgAFAwAAAAAAAAAAAAAAAAAAAAAAAAAAAABQZkVkAEDnbe2iA4D/gABcA4AAgAAAAAEAAAAAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAAAAAUAAAADAAAALAAAAAQAAAHMAAEAAAAAAMYAAwABAAAALAADAAoAAAHMAAQAmgAAABYAEAADAAbnbelB7TztRe1h7XXteO2A7Y3tov//AADnbelB7TvtRO1f7W/td+2A7Yztn///AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAWABYAFgAYABoAHgAqACwALAAuAAAAAQAEAAUAAwAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAAgAUABUAFgAXABgAGQAAAQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAABPAAAAAAAAAAZAADnbQAA520AAAABAADpQQAA6UEAAAAEAADtOwAA7TsAAAAFAADtPAAA7TwAAAADAADtRAAA7UQAAAAGAADtRQAA7UUAAAAHAADtXwAA7V8AAAAIAADtYAAA7WAAAAAJAADtYQAA7WEAAAAKAADtbwAA7W8AAAALAADtcAAA7XAAAAAMAADtcQAA7XEAAAANAADtcgAA7XIAAAAOAADtcwAA7XMAAAAPAADtdAAA7XQAAAAQAADtdQAA7XUAAAARAADtdwAA7XcAAAASAADteAAA7XgAAAATAADtgAAA7YAAAAACAADtjAAA7YwAAAAUAADtjQAA7Y0AAAAVAADtnwAA7Z8AAAAWAADtoAAA7aAAAAAXAADtoQAA7aEAAAAYAADtogAA7aIAAAAZAAAAAABmAMwBHgGEAbwB/gJmAsgC/gM0A3IDogRABKgE7gUuBXAFygYKBmoGpAbEBugHRgewAAAABQAAAAADVgLWAAsAGAAlADQAQAAAEyEyFhQGByEuATQ2Fz4BNyEeARQGIyEiJgM0NjchHgEUBiMhIiY3PgEzITIeARQOASMhIiYnFhQPAQYmNRE0NhfWAlQSGRkS/awSGRnaARgTAWASGRkS/qASGfQZEgJUEhkZEv2sEhnzARgTAWAMFAsLFAz+oBIZOQgIkgseHgsC1RklGAEBGCUZ8hMYAQEYJRkZ/oUTGAEBGCUZGdkSGQsVFxQMGoYGFgaVDAwRASoRDAwAAAAADAAAAAADqwKrAA8AEwAXABsAHwAjACcAMwA3ADsAPwBDAAABIQ4BBwMeARchPgE3ES4BBTMVIxUzFSMnMxUjFTMVKwI1MzUjNTMBISImNDYzITIWFAY3IzUzNSM1MxcjNTM1IzUzA1X9ViQwAQEBMSQCqiQxAQEx/lxWVlZWgFZWVlYqVlZWVgFV/wASGBgSAQASGBgZVlZWVoBWVlZWAqsBMST+ViQxAQExJAGqJDF/VipW1lYqVlYqVv6AGCQZGSQYqlYqVtZWKlYAAwAAAAADKwMAAA8AHwAzAAAlHgEXIT4BNxEuASchDgEHMyEyFhcRDgEHIS4BJxE+ASUnJisBIg8BIyIGFBYzITI2NCYjAQABMCQBViQwAQEwJP6qJDABgAEAExcBARcT/wATFwEBFwEoHgsStBILHmsTFxcTAgARGRkRVSQwAQEwJAGrJDABATAkFxT+qxEZAQEZEQFVFBfVHg0NHhcnFxcnFwADAAAAAAOrAtkAFgAtAD4AAAEVBg8BBiIvASY0PwEnJjQ/ATYyHwEWBTc2NC8BJiIPAQYHFRYfARYyPwE2NCcBJyYGBwMGFh8BFjY3EzYmJwOrAQmwBxEHHgYGk5MGBh4HEQewCf0PkwYGHwYSBrAJAQEJsAcRBx4GBgFCKQkPBOMCBwgoCQ8E4gMHCQGIEA0KsAYGHgcRBpOTBhIGHgYGsAoVkwYRBx4GBrAKDRANCrAGBh4GEgYB2Q8DBwj9jAgQAw4DBwgCcwgPBAACAAAAAAOaAm8AEAAhAAAlJzc2NCYiDwEGFB8BFjI2NCU3JyY0NjIfARYUDwEGIiY0AXOmpg0ZJAzEDQ3EDiEaAQ2mpg0aIQ7EDQ3EDiEa2qamDiEaDcQNIg3EDRohDqamDCQZDcQNIg3EDRkkAAAAAwAAAAADuAKsAAsAFwAjAAABDgEHHgEXPgE3LgEDLgEnPgE3HgEXDgEDDgEHHgEXPgE3LgECAJjrNTXrmJjrNTXrmFZwAgJwVlZwAgJwVjRDAQFDNDRDAQFDAqwCpIaGpAICpIaGpP4OAnBWVnACAnBWVnABPgFDNDRDAQFDNDRDAAAABQAAAAADgAKrAAsAFwAjADAAQAAAEyEyNjQmIyEiBhQWFyE+ATQmJyEOARQWEyEyNjQmIyEiBhQWJx4BFyE+ATQmJyEOASUhHgEXEQ4BByEuATURNDarAQATFxcT/wARGRkRAQATFxcT/wARGRkRAQATFxcT/wARGRkaARkRAQATFxcT/wARGQHUAQARGQEBGRH/ABMXFwEAFycXFycXqwEZIhkBARkiGQFVFycXFycX1RMXAQEXJhcBARcYARcT/gARGQEBGRECABMXAAAAAAMAAAAAA6sCVgAZACYAQAAAASMiBhQWOwEeARcOAQcjIgYUFjsBPgE3LgEFHgEXIT4BNCYnIQ4BFyMuASc+ATczMjY0JisBDgEHHgEXMzI2NCYC1YASGBgSgDdIAQFIN4ASGBgSgFt4AwN4/iUBGBIBABIYGBL/ABIYVYA3SAEBSDeAEhgYEoBbeAMDeFuAEhgYAlUYJBkBSTY2SQEZJBgCeFtbeNMSGAEBGCQYAQEYkgFJNjZJARkkGAJ4W1t4AhgkGQABAAAAAAOsAisAHgAAAS4BJw4BBwYWFxY2Nz4BNzIWFwcGFhczPgE3NS4BBwMSO5ZVh9Q4ChMXFCMJK6FnP28sURMTHu4SGAECMRYBvDQ6AQKJchcqCAYPElZpASslUhYxAgEYEu8dFBMAAAABAAAAAAOyAisAHgAAAQ4BBycmBgcVHgEXMz4BLwE+ATMeARceATc+AScuAQIUVZY7URYxAgEYEu4eFBNSLW8+Z6ErCSQTFxMKOdMCKwE6NFAUFB3vEhgBAjEWUiUrAWlWEg8GCCoXcokAAAADAAAAAAL1Ar8AFAAcACQAAAE+ATcuAScjDgEHER4BFyE+ATc0JiUzHgEUBgcjEyM1Mx4BFAYCkyEpAQJmTu8UGQEBGRQBB0lpAjT+1IgdJycdiJ+fnx0nJwGKF0QkTmYCARoT/d4TGgECYUk1UtkBJjsmAf7viQEmOyYAAQAAAAADEgK/ABwAAAEeARczAyMOARQWFzM+ATQmJyMTMz4BNCYnIw4BAaUBJh0hnDsdJiYd5B0mJh0hnDsdJiYd5B0mAnodJgH+lAEmOicBASc6JgEBbAEmOicBAScABgAAAAADlgLWAAsAFwAjAEEAUgBuAAABIT4BNCYnIQ4BFBYBIQ4BFBYXIT4BNCYDIQ4BFBYXIT4BNCYFIyIGFBY7ARUjIgYUFjsBFSMiBhQWOwEyNjc1LgEDMxUeATI2PQE0JisBIgYUFhcjIgYUFjsBBwYdARQWOwEyNjQmKwE3Nj0BLgEBawIAEhgYEv4AEhkZAhL+ABIZGRICABIYGBL+ABIZGRICABIYGP1YVQkMDAlAFQoLCwoVQAkMDAlVCgsBAQtfFQELEwwMCSsJDAxeVQkMDAk3RwUMCVUKCwsKN0gFAQsCVQEYJBgBARgkGP5VARgkGAEBGCQYAQEBGCQYAQEYJBjVDBIMFgwSDBYMEgwMCYAJDAHWawkMDAmACQwMEgzWDBIMVAYICQkMDBIMVAYICQkMAAAAAAYAAAAAA4sCwAAIABEAGgAmADIAPwAAEw4BFBYyNjQmAw4BFBYyNjQmAw4BFBYyNjQmFyE+ATQmJyEOARQWNyE+ATQmJyEOARQWAx4BFyE+ATQmJyEOAbUbJCQ3JCQcGyQkNyQkHBskJDYlJI8CABIYGBL+ABIYGBICABIYGBL+ABIYGBkBGBICABIYGBL+ABIYAcABJDYkJDYkAQEBJDYkJDYk/gEBJDYkJDYkagEYJBgBARgkGP8BGCQYAQEYJBgBKhIYAQEYJBgBARgAAAACAAAAAANWAlYAFgAtAAAlMjY/ATY9AS4BKwEiBh0BFBYXMwcGFgUyNj8BNj0BNCYrASIGBxUeARczBwYWATIRGwc9CQEYEqsSGBgSViwOIAHMEBsIPAkYEqsSGAEBGBJVLA0gqxEOeRIUwhIYGBKrEhgBWB4zAREOeRIUwhIYGBKrEhgBWB4zAAAAAAMAAAAAA4ACwAAIABkAJQAAJT4BNzUjFR4BAR4BFzMVMzUzPgE0JichDgEDIT4BNCYnIQ4BFBYCACQwAaoBMP75ASQblqqWGyQkG/4qGyQrAqoSGRkS/VYSGRlAATAkKyskMAI/GyQBgIABJDYkAQEk/noBGCQYAQEYJBgAAAAAAgAA//8DKwMBABsAKAAAJT4BNxEuASIGBxEUBgcGLgI1ES4BIgYHER4BBx4BMyEyNjQmIyEiBgIiYnoCAR4tHgFBNSFBNR0BHi0eAQOm1AEYEgIAEhgYEv4AEhitD5NlARcWHh4W/uQ3UwwHDys8IwEgFh4eFv7gdpR2EhkZJBgYAAAAAwAAAAADcALHAAsALQA5AAATIT4BNCYjISIGFBYFISIGFBYXITIWFxYGByM1LgEPAQYUHwEWNjc1Mz4BJy4BBSMiBhQWFzM+ATQmwAJVEhkZEv2rEhgYAgv+BxIYGBICBiAzBgUxKGABGQtMBgZMDBgBVU1iBQhk/m2rEhgYEqsSGBgCcQEYJBgYJBisGCQYAScgKTkCIg8KCkwHEQdMCgoPIgJrTkRV/xgkGAEBGCQYAAAAAgAAAAADlgLAABQAKAAAARQWFzMRHgEyNjcRMz4BNCYnIQ4BAzMVFBYyNjc1MzI2NCYnIQ4BFBYBayQclQEkNiQBlRwkJBz+VhwkwEAkNyQBQBskJBv/ABwkJAKAGyQB/kAbJCQbAcABJDYkAQEk/tDrGyQkG+skNyQBASQ3JAAKAAAAAAN4AvgADwAWABoAIQAlACkALQA0ADgAPwAAASEOAQcRHgEXIT4BNxEuAQEjIiY9ATM1IzUzNSM1NDY7ARMjNTM1IzUzNSM1MxMjNTMVFAY3IzUzNSM1MzIWFQMs/aggKgEBKiACWCAqAQEq/h5xDxaWlpaWFg9x4ZaWlpaWlrxxlhYWlpaWcQ8WAvcBKiD9qCAqAQEqIAJYICr9XhYPcUuWS3EPFv2olkuWS5b9qJZxDxbhlkuWFg8AAAACAAD//wOAAwAADwAgAAAlES4BJyEOAQcRHgEXIT4BJRc3NjIfARYGIyEiJj8BPgEDgAEwJP2qJDABATAkAlYkMP39WYUHFAeVCAwN/gEOCwhqBxRVAlYkMAEBMCT9qiQwAQEw+2yqCAnHCxcXC4kIAQAAAAEAAAAAAzUCNgAQAAABBwYUFjI/ARcWMjY0LwEmIgHZ/hAhLBHX1xEsIRD+EC4CJv4RLCEQ19cQISwR/hAAAAABAAAAAAM1AjYAEgAAAQcnJiciDgEWHwEWMj8BNjQuAQLW1tcQFxEbDQYM/hEsEf4QIS0CJtfXDwESICAM/hAQ/hAtIAEAAAAEAAAAAANrAusAEAAhADMARAAANzMVFBYyNj0BNCYrASIGFBYTIyIGFBY7ATI2PQE0JiIGFQEyNj0BMzI2NCYrASIGHQEUFhM1NCYiBh0BFBY7ATI2NCYjyWgeLB0dFpwWHR1+aBYdHRacFh0dLB4BahYeaBYdHRacFh0dSh4sHR0WnBYdHRaxaBYdHRacFh0dLB4Bnh4sHR0WnBYdHRb9Xx0WaB4sHR0WnBYdAjloFh0dFpwWHR0sHgAAAAQAAAAAA1QC1AARACMANABGAAATDgEHFR4BFzM+ATQmKwE1NCYnPgE9ATMyNjQmJyMOAQcVHgEBIyIGFBYXMz4BNzUuASIGFQMeATsBFRQWMjY3NS4BJyMOAd0VGwEBGxWRFRsbFWEcFBQcYRUbGxWRFRsBARsCK2EVGxsVkRUbAQEbKRySARsVYRwpGwEBGxWRFRsBHwEbFZEVGwEBGykcYRUbwwEbFWEcKRsBARsVkRUb/qscKRsBARsVkRUbGxUBtRQcYRUbGxWRFRsBARsAAAAAAAASAN4AAQAAAAAAAAAVAAAAAQAAAAAAAQANABUAAQAAAAAAAgAHACIAAQAAAAAAAwANACkAAQAAAAAABAANADYAAQAAAAAABQALAEMAAQAAAAAABgANAE4AAQAAAAAACgArAFsAAQAAAAAACwATAIYAAwABBAkAAAAqAJkAAwABBAkAAQAaAMMAAwABBAkAAgAOAN0AAwABBAkAAwAaAOsAAwABBAkABAAaAQUAAwABBAkABQAWAR8AAwABBAkABgAaATUAAwABBAkACgBWAU8AAwABBAkACwAmAaUKQ3JlYXRlZCBieSBpY29uZm9udApybWVsLWljb25mb250UmVndWxhcnJtZWwtaWNvbmZvbnRybWVsLWljb25mb250VmVyc2lvbiAxLjBybWVsLWljb25mb250R2VuZXJhdGVkIGJ5IHN2ZzJ0dGYgZnJvbSBGb250ZWxsbyBwcm9qZWN0Lmh0dHA6Ly9mb250ZWxsby5jb20ACgBDAHIAZQBhAHQAZQBkACAAYgB5ACAAaQBjAG8AbgBmAG8AbgB0AAoAcgBtAGUAbAAtAGkAYwBvAG4AZgBvAG4AdABSAGUAZwB1AGwAYQByAHIAbQBlAGwALQBpAGMAbwBuAGYAbwBuAHQAcgBtAGUAbAAtAGkAYwBvAG4AZgBvAG4AdABWAGUAcgBzAGkAbwBuACAAMQAuADAAcgBtAGUAbAAtAGkAYwBvAG4AZgBvAG4AdABHAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAHMAdgBnADIAdAB0AGYAIABmAHIAbwBtACAARgBvAG4AdABlAGwAbABvACAAcAByAG8AagBlAGMAdAAuAGgAdAB0AHAAOgAvAC8AZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREBEgETARQBFQEWARcBGAEZARoBGwADdGFiCGtleWJvYXJkBmRlbGV0ZQpjb2RlLWJsb2NrBGNvZGUKdmlzaWJpbGl0eQp2aWV3LXNwbGl0BGxpbmsEcmVkbwR1bmRvBGJvbGQGaXRhbGljDGxpc3Qtb3JkZXJlZA5saXN0LXVub3JkZXJlZAVxdW90ZQ1zdHJpa2V0aHJvdWdoCXVuZGVybGluZQR3cmFwCWZvbnQtc2l6ZQRncmlkBWltYWdlC2V4cGFuZC1sZXNzC2V4cGFuZC1tb3JlD2Z1bGxzY3JlZW4tZXhpdApmdWxsc2NyZWVuAAAAAAA=);src:url(data:font/ttf;base64,AAEAAAALAIAAAwAwR1NVQrD+s+0AAAE4AAAAQk9TLzI940+UAAABfAAAAFZjbWFwQOSPXQAAAjwAAAMIZ2x5ZjCJoW0AAAV8AAAPYGhlYWQbUPpPAAAA4AAAADZoaGVhB94DmwAAALwAAAAkaG10eGgAAAAAAAHUAAAAaGxvY2E1+jIAAAAFRAAAADZtYXhwATAAewAAARgAAAAgbmFtZXPc7cIAABTcAAACqXBvc3QnKb+uAAAXiAAAATUAAQAAA4D/gABcBAAAAAAABAAAAQAAAAAAAAAAAAAAAAAAABoAAQAAAAEAAOLjgrdfDzz1AAsEAAAAAADcGNspAAAAANwY2ykAAP//BAADAQAAAAgAAgAAAAAAAAABAAAAGgBvAAwAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKAB4ALAABREZMVAAIAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAAAAQQAAZAABQAIAokCzAAAAI8CiQLMAAAB6wAyAQgAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABA523togOA/4AAXAOAAIAAAAABAAAAAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAAAAAFAAAAAwAAACwAAAAEAAABzAABAAAAAADGAAMAAQAAACwAAwAKAAABzAAEAJoAAAAWABAAAwAG523pQe087UXtYe117XjtgO2N7aL//wAA523pQe077UTtX+1v7XftgO2M7Z///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAFgAWABYAGAAaAB4AKgAsACwALgAAAAEABAAFAAMABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATAAIAFAAVABYAFwAYABkAAAEGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAATwAAAAAAAAAGQAA520AAOdtAAAAAQAA6UEAAOlBAAAABAAA7TsAAO07AAAABQAA7TwAAO08AAAAAwAA7UQAAO1EAAAABgAA7UUAAO1FAAAABwAA7V8AAO1fAAAACAAA7WAAAO1gAAAACQAA7WEAAO1hAAAACgAA7W8AAO1vAAAACwAA7XAAAO1wAAAADAAA7XEAAO1xAAAADQAA7XIAAO1yAAAADgAA7XMAAO1zAAAADwAA7XQAAO10AAAAEAAA7XUAAO11AAAAEQAA7XcAAO13AAAAEgAA7XgAAO14AAAAEwAA7YAAAO2AAAAAAgAA7YwAAO2MAAAAFAAA7Y0AAO2NAAAAFQAA7Z8AAO2fAAAAFgAA7aAAAO2gAAAAFwAA7aEAAO2hAAAAGAAA7aIAAO2iAAAAGQAAAAAAZgDMAR4BhAG8Af4CZgLIAv4DNANyA6IEQASoBO4FLgVwBcoGCgZqBqQGxAboB0YHsAAAAAUAAAAAA1YC1gALABgAJQA0AEAAABMhMhYUBgchLgE0Nhc+ATchHgEUBiMhIiYDNDY3IR4BFAYjISImNz4BMyEyHgEUDgEjISImJxYUDwEGJjURNDYX1gJUEhkZEv2sEhkZ2gEYEwFgEhkZEv6gEhn0GRICVBIZGRL9rBIZ8wEYEwFgDBQLCxQM/qASGTkICJILHh4LAtUZJRgBARglGfITGAEBGCUZGf6FExgBARglGRnZEhkLFRcUDBqGBhYGlQwMEQEqEQwMAAAAAAwAAAAAA6sCqwAPABMAFwAbAB8AIwAnADMANwA7AD8AQwAAASEOAQcDHgEXIT4BNxEuAQUzFSMVMxUjJzMVIxUzFSsCNTM1IzUzASEiJjQ2MyEyFhQGNyM1MzUjNTMXIzUzNSM1MwNV/VYkMAEBATEkAqokMQEBMf5cVlZWVoBWVlZWKlZWVlYBVf8AEhgYEgEAEhgYGVZWVlaAVlZWVgKrATEk/lYkMQEBMSQBqiQxf1YqVtZWKlZWKlb+gBgkGRkkGKpWKlbWVipWAAMAAAAAAysDAAAPAB8AMwAAJR4BFyE+ATcRLgEnIQ4BBzMhMhYXEQ4BByEuAScRPgElJyYrASIPASMiBhQWMyEyNjQmIwEAATAkAVYkMAEBMCT+qiQwAYABABMXAQEXE/8AExcBARcBKB4LErQSCx5rExcXEwIAERkZEVUkMAEBMCQBqyQwAQEwJBcU/qsRGQEBGREBVRQX1R4NDR4XJxcXJxcAAwAAAAADqwLZABYALQA+AAABFQYPAQYiLwEmND8BJyY0PwE2Mh8BFgU3NjQvASYiDwEGBxUWHwEWMj8BNjQnAScmBgcDBhYfARY2NxM2JicDqwEJsAcRBx4GBpOTBgYeBxEHsAn9D5MGBh8GEgawCQEBCbAHEQceBgYBQikJDwTjAgcIKAkPBOIDBwkBiBANCrAGBh4HEQaTkwYSBh4GBrAKFZMGEQceBgawCg0QDQqwBgYeBhIGAdkPAwcI/YwIEAMOAwcIAnMIDwQAAgAAAAADmgJvABAAIQAAJSc3NjQmIg8BBhQfARYyNjQlNycmNDYyHwEWFA8BBiImNAFzpqYNGSQMxA0NxA4hGgENpqYNGiEOxA0NxA4hGtqmpg4hGg3EDSINxA0aIQ6mpgwkGQ3EDSINxA0ZJAAAAAMAAAAAA7gCrAALABcAIwAAAQ4BBx4BFz4BNy4BAy4BJz4BNx4BFw4BAw4BBx4BFz4BNy4BAgCY6zU165iY6zU165hWcAICcFZWcAICcFY0QwEBQzQ0QwEBQwKsAqSGhqQCAqSGhqT+DgJwVlZwAgJwVlZwAT4BQzQ0QwEBQzQ0QwAAAAUAAAAAA4ACqwALABcAIwAwAEAAABMhMjY0JiMhIgYUFhchPgE0JichDgEUFhMhMjY0JiMhIgYUFiceARchPgE0JichDgElIR4BFxEOAQchLgE1ETQ2qwEAExcXE/8AERkZEQEAExcXE/8AERkZEQEAExcXE/8AERkZGgEZEQEAExcXE/8AERkB1AEAERkBARkR/wATFxcBABcnFxcnF6sBGSIZAQEZIhkBVRcnFxcnF9UTFwEBFyYXAQEXGAEXE/4AERkBARkRAgATFwAAAAADAAAAAAOrAlYAGQAmAEAAAAEjIgYUFjsBHgEXDgEHIyIGFBY7AT4BNy4BBR4BFyE+ATQmJyEOARcjLgEnPgE3MzI2NCYrAQ4BBx4BFzMyNjQmAtWAEhgYEoA3SAEBSDeAEhgYEoBbeAMDeP4lARgSAQASGBgS/wASGFWAN0gBAUg3gBIYGBKAW3gDA3hbgBIYGAJVGCQZAUk2NkkBGSQYAnhbW3jTEhgBARgkGAEBGJIBSTY2SQEZJBgCeFtbeAIYJBkAAQAAAAADrAIrAB4AAAEuAScOAQcGFhcWNjc+ATcyFhcHBhYXMz4BNzUuAQcDEjuWVYfUOAoTFxQjCSuhZz9vLFETEx7uEhgBAjEWAbw0OgECiXIXKggGDxJWaQErJVIWMQIBGBLvHRQTAAAAAQAAAAADsgIrAB4AAAEOAQcnJgYHFR4BFzM+AS8BPgEzHgEXHgE3PgEnLgECFFWWO1EWMQIBGBLuHhQTUi1vPmehKwkkExcTCjnTAisBOjRQFBQd7xIYAQIxFlIlKwFpVhIPBggqF3KJAAAAAwAAAAAC9QK/ABQAHAAkAAABPgE3LgEnIw4BBxEeARchPgE3NCYlMx4BFAYHIxMjNTMeARQGApMhKQECZk7vFBkBARkUAQdJaQI0/tSIHScnHYifn58dJycBihdEJE5mAgEaE/3eExoBAmFJNVLZASY7JgH+74kBJjsmAAEAAAAAAxICvwAcAAABHgEXMwMjDgEUFhczPgE0JicjEzM+ATQmJyMOAQGlASYdIZw7HSYmHeQdJiYdIZw7HSYmHeQdJgJ6HSYB/pQBJjonAQEnOiYBAWwBJjonAQEnAAYAAAAAA5YC1gALABcAIwBBAFIAbgAAASE+ATQmJyEOARQWASEOARQWFyE+ATQmAyEOARQWFyE+ATQmBSMiBhQWOwEVIyIGFBY7ARUjIgYUFjsBMjY3NS4BAzMVHgEyNj0BNCYrASIGFBYXIyIGFBY7AQcGHQEUFjsBMjY0JisBNzY9AS4BAWsCABIYGBL+ABIZGQIS/gASGRkSAgASGBgS/gASGRkSAgASGBj9WFUJDAwJQBUKCwsKFUAJDAwJVQoLAQELXxUBCxMMDAkrCQwMXlUJDAwJN0cFDAlVCgsLCjdIBQELAlUBGCQYAQEYJBj+VQEYJBgBARgkGAEBARgkGAEBGCQY1QwSDBYMEgwWDBIMDAmACQwB1msJDAwJgAkMDBIM1gwSDFQGCAkJDAwSDFQGCAkJDAAAAAAGAAAAAAOLAsAACAARABoAJgAyAD8AABMOARQWMjY0JgMOARQWMjY0JgMOARQWMjY0JhchPgE0JichDgEUFjchPgE0JichDgEUFgMeARchPgE0JichDgG1GyQkNyQkHBskJDckJBwbJCQ2JSSPAgASGBgS/gASGBgSAgASGBgS/gASGBgZARgSAgASGBgS/gASGAHAASQ2JCQ2JAEBASQ2JCQ2JP4BASQ2JCQ2JGoBGCQYAQEYJBj/ARgkGAEBGCQYASoSGAEBGCQYAQEYAAAAAgAAAAADVgJWABYALQAAJTI2PwE2PQEuASsBIgYdARQWFzMHBhYFMjY/ATY9ATQmKwEiBgcVHgEXMwcGFgEyERsHPQkBGBKrEhgYElYsDiABzBAbCDwJGBKrEhgBARgSVSwNIKsRDnkSFMISGBgSqxIYAVgeMwERDnkSFMISGBgSqxIYAVgeMwAAAAADAAAAAAOAAsAACAAZACUAACU+ATc1IxUeAQEeARczFTM1Mz4BNCYnIQ4BAyE+ATQmJyEOARQWAgAkMAGqATD++QEkG5aqlhskJBv+KhskKwKqEhkZEv1WEhkZQAEwJCsrJDACPxskAYCAASQ2JAEBJP56ARgkGAEBGCQYAAAAAAIAAP//AysDAQAbACgAACU+ATcRLgEiBgcRFAYHBi4CNREuASIGBxEeAQceATMhMjY0JiMhIgYCImJ6AgEeLR4BQTUhQTUdAR4tHgEDptQBGBICABIYGBL+ABIYrQ+TZQEXFh4eFv7kN1MMBw8rPCMBIBYeHhb+4HaUdhIZGSQYGAAAAAMAAAAAA3ACxwALAC0AOQAAEyE+ATQmIyEiBhQWBSEiBhQWFyEyFhcWBgcjNS4BDwEGFB8BFjY3NTM+AScuAQUjIgYUFhczPgE0JsACVRIZGRL9qxIYGAIL/gcSGBgSAgYgMwYFMShgARkLTAYGTAwYAVVNYgUIZP5tqxIYGBKrEhgYAnEBGCQYGCQYrBgkGAEnICk5AiIPCgpMBxEHTAoKDyICa05EVf8YJBgBARgkGAAAAAIAAAAAA5YCwAAUACgAAAEUFhczER4BMjY3ETM+ATQmJyEOAQMzFRQWMjY3NTMyNjQmJyEOARQWAWskHJUBJDYkAZUcJCQc/lYcJMBAJDckAUAbJCQb/wAcJCQCgBskAf5AGyQkGwHAASQ2JAEBJP7Q6xskJBvrJDckAQEkNyQACgAAAAADeAL4AA8AFgAaACEAJQApAC0ANAA4AD8AAAEhDgEHER4BFyE+ATcRLgEBIyImPQEzNSM1MzUjNTQ2OwETIzUzNSM1MzUjNTMTIzUzFRQGNyM1MzUjNTMyFhUDLP2oICoBASogAlggKgEBKv4ecQ8WlpaWlhYPceGWlpaWlpa8cZYWFpaWlnEPFgL3ASog/aggKgEBKiACWCAq/V4WD3FLlktxDxb9qJZLlkuW/aiWcQ8W4ZZLlhYPAAAAAgAA//8DgAMAAA8AIAAAJREuASchDgEHER4BFyE+ASUXNzYyHwEWBiMhIiY/AT4BA4ABMCT9qiQwAQEwJAJWJDD9/VmFBxQHlQgMDf4BDgsIagcUVQJWJDABATAk/aokMAEBMPtsqggJxwsXFwuJCAEAAAABAAAAAAM1AjYAEAAAAQcGFBYyPwEXFjI2NC8BJiIB2f4QISwR19cRLCEQ/hAuAib+ESwhENfXECEsEf4QAAAAAQAAAAADNQI2ABIAAAEHJyYnIg4BFh8BFjI/ATY0LgEC1tbXEBcRGw0GDP4RLBH+ECEtAibX1w8BEiAgDP4QEP4QLSABAAAABAAAAAADawLrABAAIQAzAEQAADczFRQWMjY9ATQmKwEiBhQWEyMiBhQWOwEyNj0BNCYiBhUBMjY9ATMyNjQmKwEiBh0BFBYTNTQmIgYdARQWOwEyNjQmI8loHiwdHRacFh0dfmgWHR0WnBYdHSweAWoWHmgWHR0WnBYdHUoeLB0dFpwWHR0WsWgWHR0WnBYdHSweAZ4eLB0dFpwWHR0W/V8dFmgeLB0dFpwWHQI5aBYdHRacFh0dLB4AAAAEAAAAAANUAtQAEQAjADQARgAAEw4BBxUeARczPgE0JisBNTQmJz4BPQEzMjY0JicjDgEHFR4BASMiBhQWFzM+ATc1LgEiBhUDHgE7ARUUFjI2NzUuAScjDgHdFRsBARsVkRUbGxVhHBQUHGEVGxsVkRUbAQEbAithFRsbFZEVGwEBGykckgEbFWEcKRsBARsVkRUbAR8BGxWRFRsBARspHGEVG8MBGxVhHCkbAQEbFZEVG/6rHCkbAQEbFZEVGxsVAbUUHGEVGxsVkRUbAQEbAAAAAAAAEgDeAAEAAAAAAAAAFQAAAAEAAAAAAAEADQAVAAEAAAAAAAIABwAiAAEAAAAAAAMADQApAAEAAAAAAAQADQA2AAEAAAAAAAUACwBDAAEAAAAAAAYADQBOAAEAAAAAAAoAKwBbAAEAAAAAAAsAEwCGAAMAAQQJAAAAKgCZAAMAAQQJAAEAGgDDAAMAAQQJAAIADgDdAAMAAQQJAAMAGgDrAAMAAQQJAAQAGgEFAAMAAQQJAAUAFgEfAAMAAQQJAAYAGgE1AAMAAQQJAAoAVgFPAAMAAQQJAAsAJgGlCkNyZWF0ZWQgYnkgaWNvbmZvbnQKcm1lbC1pY29uZm9udFJlZ3VsYXJybWVsLWljb25mb250cm1lbC1pY29uZm9udFZlcnNpb24gMS4wcm1lbC1pY29uZm9udEdlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAAoAQwByAGUAYQB0AGUAZAAgAGIAeQAgAGkAYwBvAG4AZgBvAG4AdAAKAHIAbQBlAGwALQBpAGMAbwBuAGYAbwBuAHQAUgBlAGcAdQBsAGEAcgByAG0AZQBsAC0AaQBjAG8AbgBmAG8AbgB0AHIAbQBlAGwALQBpAGMAbwBuAGYAbwBuAHQAVgBlAHIAcwBpAG8AbgAgADEALgAwAHIAbQBlAGwALQBpAGMAbwBuAGYAbwBuAHQARwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABzAHYAZwAyAHQAdABmACAAZgByAG8AbQAgAEYAbwBuAHQAZQBsAGwAbwAgAHAAcgBvAGoAZQBjAHQALgBoAHQAdABwADoALwAvAGYAbwBuAHQAZQBsAGwAbwAuAGMAbwBtAAAAAAIAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgECAQMBBAEFAQYBBwEIAQkBCgELAQwBDQEOAQ8BEAERARIBEwEUARUBFgEXARgBGQEaARsAA3RhYghrZXlib2FyZAZkZWxldGUKY29kZS1ibG9jawRjb2RlCnZpc2liaWxpdHkKdmlldy1zcGxpdARsaW5rBHJlZG8EdW5kbwRib2xkBml0YWxpYwxsaXN0LW9yZGVyZWQObGlzdC11bm9yZGVyZWQFcXVvdGUNc3RyaWtldGhyb3VnaAl1bmRlcmxpbmUEd3JhcAlmb250LXNpemUEZ3JpZAVpbWFnZQtleHBhbmQtbGVzcwtleHBhbmQtbW9yZQ9mdWxsc2NyZWVuLWV4aXQKZnVsbHNjcmVlbgAAAAAA) format("truetype")}.rmel-iconfont{font-family:rmel-iconfont!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.rmel-icon-tab:before{content:"\e76d"}.rmel-icon-keyboard:before{content:"\ed80"}.rmel-icon-delete:before{content:"\ed3c"}.rmel-icon-code-block:before{content:"\e941"}.rmel-icon-code:before{content:"\ed3b"}.rmel-icon-visibility:before{content:"\ed44"}.rmel-icon-view-split:before{content:"\ed45"}.rmel-icon-link:before{content:"\ed5f"}.rmel-icon-redo:before{content:"\ed60"}.rmel-icon-undo:before{content:"\ed61"}.rmel-icon-bold:before{content:"\ed6f"}.rmel-icon-italic:before{content:"\ed70"}.rmel-icon-list-ordered:before{content:"\ed71"}.rmel-icon-list-unordered:before{content:"\ed72"}.rmel-icon-quote:before{content:"\ed73"}.rmel-icon-strikethrough:before{content:"\ed74"}.rmel-icon-underline:before{content:"\ed75"}.rmel-icon-wrap:before{content:"\ed77"}.rmel-icon-font-size:before{content:"\ed78"}.rmel-icon-grid:before{content:"\ed8c"}.rmel-icon-image:before{content:"\ed8d"}.rmel-icon-expand-less:before{content:"\ed9f"}.rmel-icon-expand-more:before{content:"\eda0"}.rmel-icon-fullscreen-exit:before{content:"\eda1"}.rmel-icon-fullscreen:before{content:"\eda2"}.rc-md-editor{padding-bottom:1px;position:relative;border:1px solid #e0e0e0;background:#fff;box-sizing:border-box;display:-webkit-flex;display:flex;-webkit-flex-direction:column;flex-direction:column}.rc-md-editor.full{width:100%;height:100%!important;position:fixed;left:0;top:0;z-index:1000}.rc-md-editor .editor-container{-webkit-flex:1;flex:1 1;display:-webkit-flex;display:flex;width:100%;min-height:0;position:relative}.rc-md-editor .editor-container>.section.in-visible{display:none}.rc-md-editor .editor-container>.section>.section-container{padding:10px 15px 15px}.rc-md-editor .editor-container .sec-md{-webkit-flex:1;flex:1 1;min-height:0;min-width:0}.rc-md-editor .editor-container .sec-md .input{display:block;box-sizing:border-box;width:100%;height:100%;overflow-y:scroll;border:none;resize:none;outline:none;min-height:0;background:#fff;color:#333;font-size:14px;line-height:1.7}.rc-md-editor .editor-container .sec-html{-webkit-flex:1;flex:1 1;min-height:0;min-width:0}.rc-md-editor .editor-container .sec-html .html-wrap{height:100%;box-sizing:border-box;overflow:auto}.custom-html-style{color:#333}.custom-html-style h1{font-size:32px;padding:0;border:none;font-weight:700;margin:32px 0;line-height:1.2}.custom-html-style h2{font-size:24px;padding:0;border:none;font-weight:700;margin:24px 0;line-height:1.7}.custom-html-style h3{font-size:18px;margin:18px 0;padding:0;line-height:1.7;border:none}.custom-html-style p{font-size:14px;line-height:1.7;margin:8px 0}.custom-html-style a{color:#0052d9}.custom-html-style a:hover{text-decoration:none}.custom-html-style strong{font-weight:700}.custom-html-style ol,.custom-html-style ul{font-size:14px;line-height:28px;padding-left:36px}.custom-html-style li{margin-bottom:8px;line-height:1.7}.custom-html-style hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.custom-html-style pre{display:block;padding:20px;line-height:28px;word-break:break-word}.custom-html-style code,.custom-html-style pre{background-color:#f5f5f5;font-size:14px;border-radius:0;overflow-x:auto}.custom-html-style code{padding:3px 0;margin:0;word-break:normal}.custom-html-style code:after,.custom-html-style code:before{letter-spacing:0}.custom-html-style blockquote{position:relative;margin:16px 0;padding:5px 8px 5px 30px;background:none repeat scroll 0 0 rgba(102,128,153,.05);color:#333;border:none;border-left:10px solid #d6dbdf}.custom-html-style img,.custom-html-style video{max-width:100%}.custom-html-style table{font-size:14px;line-height:1.7;max-width:100%;overflow:auto;border:1px solid #f6f6f6;border-collapse:collapse;border-spacing:0;box-sizing:border-box}.custom-html-style table td,.custom-html-style table th{word-break:break-all;word-wrap:break-word;white-space:normal}.custom-html-style table tr{border:1px solid #efefef}.custom-html-style table tr:nth-child(2n){background-color:transparent}.custom-html-style table th{text-align:center;font-weight:700;border:1px solid #efefef;padding:10px 6px;background-color:#f5f7fa;word-break:break-word}.custom-html-style table td{border:1px solid #efefef;text-align:left;padding:10px 15px;word-break:break-word;min-width:60px}.rc-md-editor .drop-wrap{display:block;position:absolute;left:0;top:28px;z-index:2;min-width:20px;padding:10px 0;text-align:center;background-color:#fff;border-color:#f1f1f1 #ddd #ddd #f1f1f1;border-style:solid;border-width:1px}.rc-md-editor .drop-wrap.hidden{display:none!important}.rc-md-editor .rc-md-navigation{min-height:38px;padding:0 8px;box-sizing:border-box;border-bottom:1px solid #e0e0e0;font-size:16px;background:#f5f5f5;-webkit-user-select:none;-ms-user-select:none;user-select:none;display:-webkit-flex;display:flex;-webkit-flex-direction:row;flex-direction:row;-webkit-justify-content:space-between;justify-content:space-between}.rc-md-editor .rc-md-navigation.in-visible{display:none}.rc-md-editor .rc-md-navigation .navigation-nav{-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;font-size:14px;color:#757575}.rc-md-editor .rc-md-navigation .button-wrap,.rc-md-editor .rc-md-navigation .navigation-nav{display:-webkit-flex;display:flex;-webkit-flex-direction:row;flex-direction:row}.rc-md-editor .rc-md-navigation .button-wrap{-webkit-flex-wrap:wrap;flex-wrap:wrap}.rc-md-editor .rc-md-navigation .button-wrap .button{position:relative;min-width:24px;height:28px;margin-left:3px;margin-right:3px;display:inline-block;cursor:pointer;line-height:28px;text-align:center;color:#757575}.rc-md-editor .rc-md-navigation .button-wrap .button:hover{color:#212121}.rc-md-editor .rc-md-navigation .button-wrap .button.disabled{color:#bdbdbd;cursor:not-allowed}.rc-md-editor .rc-md-navigation .button-wrap .button:first-child{margin-left:0}.rc-md-editor .rc-md-navigation .button-wrap .button:last-child{margin-right:0}.rc-md-editor .rc-md-navigation .button-wrap .rmel-iconfont{font-size:18px}.rc-md-editor .rc-md-navigation li,.rc-md-editor .rc-md-navigation ul{list-style:none;margin:0;padding:0}.rc-md-editor .rc-md-navigation .h1,.rc-md-editor .rc-md-navigation .h2,.rc-md-editor .rc-md-navigation .h3,.rc-md-editor .rc-md-navigation .h4,.rc-md-editor .rc-md-navigation .h5,.rc-md-editor .rc-md-navigation .h6,.rc-md-editor .rc-md-navigation h1,.rc-md-editor .rc-md-navigation h2,.rc-md-editor .rc-md-navigation h3,.rc-md-editor .rc-md-navigation h4,.rc-md-editor .rc-md-navigation h5,.rc-md-editor .rc-md-navigation h6{font-family:inherit;font-weight:500;color:inherit;padding:0;margin:0;line-height:1.1}.rc-md-editor .rc-md-navigation h1{font-size:34px}.rc-md-editor .rc-md-navigation h2{font-size:30px}.rc-md-editor .rc-md-navigation h3{font-size:24px}.rc-md-editor .rc-md-navigation h4{font-size:18px}.rc-md-editor .rc-md-navigation h5{font-size:14px}.rc-md-editor .rc-md-navigation h6{font-size:12px}.rc-md-editor .tool-bar{position:absolute;z-index:1;right:8px;top:8px}.rc-md-editor .tool-bar .button{min-width:24px;height:28px;margin-right:5px;display:inline-block;cursor:pointer;font-size:14px;line-height:28px;text-align:center;color:#999}.rc-md-editor .tool-bar .button:hover{color:#333}.rc-md-editor .rc-md-divider{display:block;width:1px;background-color:#e0e0e0}.rc-md-editor .table-list.wrap{position:relative;margin:0 10px;box-sizing:border-box}.rc-md-editor .table-list.wrap .list-item{position:absolute;top:0;left:0;display:inline-block;width:20px;height:20px;background-color:#e0e0e0;border-radius:3px}.rc-md-editor .table-list.wrap .list-item.active{background:#9e9e9e}.rc-md-editor .tab-map-list .list-item{width:120px;box-sizing:border-box}.rc-md-editor .tab-map-list .list-item:hover{background:#f5f5f5}.rc-md-editor .tab-map-list .list-item.active{font-weight:700}.rc-md-editor .header-list .list-item{width:100px;box-sizing:border-box;padding:8px 0}.rc-md-editor .header-list .list-item:hover{background:#f5f5f5} \ No newline at end of file
+@font-face{font-family:rmel-iconfont;src:url(data:application/vnd.ms-fontobject;base64,fBkAAMAYAAABAAIAAAAAAAIABQMAAAAAAAABAJABAAAAAExQAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAB9vj4gAAAAAAAAAAAAAAAAAAAAAAABoAcgBtAGUAbAAtAGkAYwBvAG4AZgBvAG4AdAAAAA4AUgBlAGcAdQBsAGEAcgAAABYAVgBlAHIAcwBpAG8AbgAgADEALgAwAAAAGgByAG0AZQBsAC0AaQBjAG8AbgBmAG8AbgB0AAAAAAAAAQAAAAsAgAADADBHU1VCsP6z7QAAATgAAABCT1MvMj3jT5QAAAF8AAAAVmNtYXBA5I9dAAACPAAAAwhnbHlmMImhbQAABXwAAA9gaGVhZBtQ+k8AAADgAAAANmhoZWEH3gObAAAAvAAAACRobXR4aAAAAAAAAdQAAABobG9jYTX6MgAAAAVEAAAANm1heHABMAB7AAABGAAAACBuYW1lc9ztwgAAFNwAAAKpcG9zdCcpv64AABeIAAABNQABAAADgP+AAFwEAAAAAAAEAAABAAAAAAAAAAAAAAAAAAAAGgABAAAAAQAA4uPbB18PPPUACwQAAAAAANwY2ykAAAAA3BjbKQAA//8EAAMBAAAACAACAAAAAAAAAAEAAAAaAG8ADAAAAAAAAgAAAAoACgAAAP8AAAAAAAAAAQAAAAoAHgAsAAFERkxUAAgABAAAAAAAAAABAAAAAWxpZ2EACAAAAAEAAAABAAQABAAAAAEACAABAAYAAAABAAAAAAABBAABkAAFAAgCiQLMAAAAjwKJAswAAAHrADIBCAAAAgAFAwAAAAAAAAAAAAAAAAAAAAAAAAAAAABQZkVkAEDnbe2iA4D/gABcA4AAgAAAAAEAAAAAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAAAAAUAAAADAAAALAAAAAQAAAHMAAEAAAAAAMYAAwABAAAALAADAAoAAAHMAAQAmgAAABYAEAADAAbnbelB7TztRe1h7XXteO2A7Y3tov//AADnbelB7TvtRO1f7W/td+2A7Yztn///AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAWABYAFgAYABoAHgAqACwALAAuAAAAAQAEAAUAAwAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAAgAUABUAFgAXABgAGQAAAQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAABPAAAAAAAAAAZAADnbQAA520AAAABAADpQQAA6UEAAAAEAADtOwAA7TsAAAAFAADtPAAA7TwAAAADAADtRAAA7UQAAAAGAADtRQAA7UUAAAAHAADtXwAA7V8AAAAIAADtYAAA7WAAAAAJAADtYQAA7WEAAAAKAADtbwAA7W8AAAALAADtcAAA7XAAAAAMAADtcQAA7XEAAAANAADtcgAA7XIAAAAOAADtcwAA7XMAAAAPAADtdAAA7XQAAAAQAADtdQAA7XUAAAARAADtdwAA7XcAAAASAADteAAA7XgAAAATAADtgAAA7YAAAAACAADtjAAA7YwAAAAUAADtjQAA7Y0AAAAVAADtnwAA7Z8AAAAWAADtoAAA7aAAAAAXAADtoQAA7aEAAAAYAADtogAA7aIAAAAZAAAAAABmAMwBHgGEAbwB/gJmAsgC/gM0A3IDogRABKgE7gUuBXAFygYKBmoGpAbEBugHRgewAAAABQAAAAADVgLWAAsAGAAlADQAQAAAEyEyFhQGByEuATQ2Fz4BNyEeARQGIyEiJgM0NjchHgEUBiMhIiY3PgEzITIeARQOASMhIiYnFhQPAQYmNRE0NhfWAlQSGRkS/awSGRnaARgTAWASGRkS/qASGfQZEgJUEhkZEv2sEhnzARgTAWAMFAsLFAz+oBIZOQgIkgseHgsC1RklGAEBGCUZ8hMYAQEYJRkZ/oUTGAEBGCUZGdkSGQsVFxQMGoYGFgaVDAwRASoRDAwAAAAADAAAAAADqwKrAA8AEwAXABsAHwAjACcAMwA3ADsAPwBDAAABIQ4BBwMeARchPgE3ES4BBTMVIxUzFSMnMxUjFTMVKwI1MzUjNTMBISImNDYzITIWFAY3IzUzNSM1MxcjNTM1IzUzA1X9ViQwAQEBMSQCqiQxAQEx/lxWVlZWgFZWVlYqVlZWVgFV/wASGBgSAQASGBgZVlZWVoBWVlZWAqsBMST+ViQxAQExJAGqJDF/VipW1lYqVlYqVv6AGCQZGSQYqlYqVtZWKlYAAwAAAAADKwMAAA8AHwAzAAAlHgEXIT4BNxEuASchDgEHMyEyFhcRDgEHIS4BJxE+ASUnJisBIg8BIyIGFBYzITI2NCYjAQABMCQBViQwAQEwJP6qJDABgAEAExcBARcT/wATFwEBFwEoHgsStBILHmsTFxcTAgARGRkRVSQwAQEwJAGrJDABATAkFxT+qxEZAQEZEQFVFBfVHg0NHhcnFxcnFwADAAAAAAOrAtkAFgAtAD4AAAEVBg8BBiIvASY0PwEnJjQ/ATYyHwEWBTc2NC8BJiIPAQYHFRYfARYyPwE2NCcBJyYGBwMGFh8BFjY3EzYmJwOrAQmwBxEHHgYGk5MGBh4HEQewCf0PkwYGHwYSBrAJAQEJsAcRBx4GBgFCKQkPBOMCBwgoCQ8E4gMHCQGIEA0KsAYGHgcRBpOTBhIGHgYGsAoVkwYRBx4GBrAKDRANCrAGBh4GEgYB2Q8DBwj9jAgQAw4DBwgCcwgPBAACAAAAAAOaAm8AEAAhAAAlJzc2NCYiDwEGFB8BFjI2NCU3JyY0NjIfARYUDwEGIiY0AXOmpg0ZJAzEDQ3EDiEaAQ2mpg0aIQ7EDQ3EDiEa2qamDiEaDcQNIg3EDRohDqamDCQZDcQNIg3EDRkkAAAAAwAAAAADuAKsAAsAFwAjAAABDgEHHgEXPgE3LgEDLgEnPgE3HgEXDgEDDgEHHgEXPgE3LgECAJjrNTXrmJjrNTXrmFZwAgJwVlZwAgJwVjRDAQFDNDRDAQFDAqwCpIaGpAICpIaGpP4OAnBWVnACAnBWVnABPgFDNDRDAQFDNDRDAAAABQAAAAADgAKrAAsAFwAjADAAQAAAEyEyNjQmIyEiBhQWFyE+ATQmJyEOARQWEyEyNjQmIyEiBhQWJx4BFyE+ATQmJyEOASUhHgEXEQ4BByEuATURNDarAQATFxcT/wARGRkRAQATFxcT/wARGRkRAQATFxcT/wARGRkaARkRAQATFxcT/wARGQHUAQARGQEBGRH/ABMXFwEAFycXFycXqwEZIhkBARkiGQFVFycXFycX1RMXAQEXJhcBARcYARcT/gARGQEBGRECABMXAAAAAAMAAAAAA6sCVgAZACYAQAAAASMiBhQWOwEeARcOAQcjIgYUFjsBPgE3LgEFHgEXIT4BNCYnIQ4BFyMuASc+ATczMjY0JisBDgEHHgEXMzI2NCYC1YASGBgSgDdIAQFIN4ASGBgSgFt4AwN4/iUBGBIBABIYGBL/ABIYVYA3SAEBSDeAEhgYEoBbeAMDeFuAEhgYAlUYJBkBSTY2SQEZJBgCeFtbeNMSGAEBGCQYAQEYkgFJNjZJARkkGAJ4W1t4AhgkGQABAAAAAAOsAisAHgAAAS4BJw4BBwYWFxY2Nz4BNzIWFwcGFhczPgE3NS4BBwMSO5ZVh9Q4ChMXFCMJK6FnP28sURMTHu4SGAECMRYBvDQ6AQKJchcqCAYPElZpASslUhYxAgEYEu8dFBMAAAABAAAAAAOyAisAHgAAAQ4BBycmBgcVHgEXMz4BLwE+ATMeARceATc+AScuAQIUVZY7URYxAgEYEu4eFBNSLW8+Z6ErCSQTFxMKOdMCKwE6NFAUFB3vEhgBAjEWUiUrAWlWEg8GCCoXcokAAAADAAAAAAL1Ar8AFAAcACQAAAE+ATcuAScjDgEHER4BFyE+ATc0JiUzHgEUBgcjEyM1Mx4BFAYCkyEpAQJmTu8UGQEBGRQBB0lpAjT+1IgdJycdiJ+fnx0nJwGKF0QkTmYCARoT/d4TGgECYUk1UtkBJjsmAf7viQEmOyYAAQAAAAADEgK/ABwAAAEeARczAyMOARQWFzM+ATQmJyMTMz4BNCYnIw4BAaUBJh0hnDsdJiYd5B0mJh0hnDsdJiYd5B0mAnodJgH+lAEmOicBASc6JgEBbAEmOicBAScABgAAAAADlgLWAAsAFwAjAEEAUgBuAAABIT4BNCYnIQ4BFBYBIQ4BFBYXIT4BNCYDIQ4BFBYXIT4BNCYFIyIGFBY7ARUjIgYUFjsBFSMiBhQWOwEyNjc1LgEDMxUeATI2PQE0JisBIgYUFhcjIgYUFjsBBwYdARQWOwEyNjQmKwE3Nj0BLgEBawIAEhgYEv4AEhkZAhL+ABIZGRICABIYGBL+ABIZGRICABIYGP1YVQkMDAlAFQoLCwoVQAkMDAlVCgsBAQtfFQELEwwMCSsJDAxeVQkMDAk3RwUMCVUKCwsKN0gFAQsCVQEYJBgBARgkGP5VARgkGAEBGCQYAQEBGCQYAQEYJBjVDBIMFgwSDBYMEgwMCYAJDAHWawkMDAmACQwMEgzWDBIMVAYICQkMDBIMVAYICQkMAAAAAAYAAAAAA4sCwAAIABEAGgAmADIAPwAAEw4BFBYyNjQmAw4BFBYyNjQmAw4BFBYyNjQmFyE+ATQmJyEOARQWNyE+ATQmJyEOARQWAx4BFyE+ATQmJyEOAbUbJCQ3JCQcGyQkNyQkHBskJDYlJI8CABIYGBL+ABIYGBICABIYGBL+ABIYGBkBGBICABIYGBL+ABIYAcABJDYkJDYkAQEBJDYkJDYk/gEBJDYkJDYkagEYJBgBARgkGP8BGCQYAQEYJBgBKhIYAQEYJBgBARgAAAACAAAAAANWAlYAFgAtAAAlMjY/ATY9AS4BKwEiBh0BFBYXMwcGFgUyNj8BNj0BNCYrASIGBxUeARczBwYWATIRGwc9CQEYEqsSGBgSViwOIAHMEBsIPAkYEqsSGAEBGBJVLA0gqxEOeRIUwhIYGBKrEhgBWB4zAREOeRIUwhIYGBKrEhgBWB4zAAAAAAMAAAAAA4ACwAAIABkAJQAAJT4BNzUjFR4BAR4BFzMVMzUzPgE0JichDgEDIT4BNCYnIQ4BFBYCACQwAaoBMP75ASQblqqWGyQkG/4qGyQrAqoSGRkS/VYSGRlAATAkKyskMAI/GyQBgIABJDYkAQEk/noBGCQYAQEYJBgAAAAAAgAA//8DKwMBABsAKAAAJT4BNxEuASIGBxEUBgcGLgI1ES4BIgYHER4BBx4BMyEyNjQmIyEiBgIiYnoCAR4tHgFBNSFBNR0BHi0eAQOm1AEYEgIAEhgYEv4AEhitD5NlARcWHh4W/uQ3UwwHDys8IwEgFh4eFv7gdpR2EhkZJBgYAAAAAwAAAAADcALHAAsALQA5AAATIT4BNCYjISIGFBYFISIGFBYXITIWFxYGByM1LgEPAQYUHwEWNjc1Mz4BJy4BBSMiBhQWFzM+ATQmwAJVEhkZEv2rEhgYAgv+BxIYGBICBiAzBgUxKGABGQtMBgZMDBgBVU1iBQhk/m2rEhgYEqsSGBgCcQEYJBgYJBisGCQYAScgKTkCIg8KCkwHEQdMCgoPIgJrTkRV/xgkGAEBGCQYAAAAAgAAAAADlgLAABQAKAAAARQWFzMRHgEyNjcRMz4BNCYnIQ4BAzMVFBYyNjc1MzI2NCYnIQ4BFBYBayQclQEkNiQBlRwkJBz+VhwkwEAkNyQBQBskJBv/ABwkJAKAGyQB/kAbJCQbAcABJDYkAQEk/tDrGyQkG+skNyQBASQ3JAAKAAAAAAN4AvgADwAWABoAIQAlACkALQA0ADgAPwAAASEOAQcRHgEXIT4BNxEuAQEjIiY9ATM1IzUzNSM1NDY7ARMjNTM1IzUzNSM1MxMjNTMVFAY3IzUzNSM1MzIWFQMs/aggKgEBKiACWCAqAQEq/h5xDxaWlpaWFg9x4ZaWlpaWlrxxlhYWlpaWcQ8WAvcBKiD9qCAqAQEqIAJYICr9XhYPcUuWS3EPFv2olkuWS5b9qJZxDxbhlkuWFg8AAAACAAD//wOAAwAADwAgAAAlES4BJyEOAQcRHgEXIT4BJRc3NjIfARYGIyEiJj8BPgEDgAEwJP2qJDABATAkAlYkMP39WYUHFAeVCAwN/gEOCwhqBxRVAlYkMAEBMCT9qiQwAQEw+2yqCAnHCxcXC4kIAQAAAAEAAAAAAzUCNgAQAAABBwYUFjI/ARcWMjY0LwEmIgHZ/hAhLBHX1xEsIRD+EC4CJv4RLCEQ19cQISwR/hAAAAABAAAAAAM1AjYAEgAAAQcnJiciDgEWHwEWMj8BNjQuAQLW1tcQFxEbDQYM/hEsEf4QIS0CJtfXDwESICAM/hAQ/hAtIAEAAAAEAAAAAANrAusAEAAhADMARAAANzMVFBYyNj0BNCYrASIGFBYTIyIGFBY7ATI2PQE0JiIGFQEyNj0BMzI2NCYrASIGHQEUFhM1NCYiBh0BFBY7ATI2NCYjyWgeLB0dFpwWHR1+aBYdHRacFh0dLB4BahYeaBYdHRacFh0dSh4sHR0WnBYdHRaxaBYdHRacFh0dLB4Bnh4sHR0WnBYdHRb9Xx0WaB4sHR0WnBYdAjloFh0dFpwWHR0sHgAAAAQAAAAAA1QC1AARACMANABGAAATDgEHFR4BFzM+ATQmKwE1NCYnPgE9ATMyNjQmJyMOAQcVHgEBIyIGFBYXMz4BNzUuASIGFQMeATsBFRQWMjY3NS4BJyMOAd0VGwEBGxWRFRsbFWEcFBQcYRUbGxWRFRsBARsCK2EVGxsVkRUbAQEbKRySARsVYRwpGwEBGxWRFRsBHwEbFZEVGwEBGykcYRUbwwEbFWEcKRsBARsVkRUb/qscKRsBARsVkRUbGxUBtRQcYRUbGxWRFRsBARsAAAAAAAASAN4AAQAAAAAAAAAVAAAAAQAAAAAAAQANABUAAQAAAAAAAgAHACIAAQAAAAAAAwANACkAAQAAAAAABAANADYAAQAAAAAABQALAEMAAQAAAAAABgANAE4AAQAAAAAACgArAFsAAQAAAAAACwATAIYAAwABBAkAAAAqAJkAAwABBAkAAQAaAMMAAwABBAkAAgAOAN0AAwABBAkAAwAaAOsAAwABBAkABAAaAQUAAwABBAkABQAWAR8AAwABBAkABgAaATUAAwABBAkACgBWAU8AAwABBAkACwAmAaUKQ3JlYXRlZCBieSBpY29uZm9udApybWVsLWljb25mb250UmVndWxhcnJtZWwtaWNvbmZvbnRybWVsLWljb25mb250VmVyc2lvbiAxLjBybWVsLWljb25mb250R2VuZXJhdGVkIGJ5IHN2ZzJ0dGYgZnJvbSBGb250ZWxsbyBwcm9qZWN0Lmh0dHA6Ly9mb250ZWxsby5jb20ACgBDAHIAZQBhAHQAZQBkACAAYgB5ACAAaQBjAG8AbgBmAG8AbgB0AAoAcgBtAGUAbAAtAGkAYwBvAG4AZgBvAG4AdABSAGUAZwB1AGwAYQByAHIAbQBlAGwALQBpAGMAbwBuAGYAbwBuAHQAcgBtAGUAbAAtAGkAYwBvAG4AZgBvAG4AdABWAGUAcgBzAGkAbwBuACAAMQAuADAAcgBtAGUAbAAtAGkAYwBvAG4AZgBvAG4AdABHAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAHMAdgBnADIAdAB0AGYAIABmAHIAbwBtACAARgBvAG4AdABlAGwAbABvACAAcAByAG8AagBlAGMAdAAuAGgAdAB0AHAAOgAvAC8AZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREBEgETARQBFQEWARcBGAEZARoBGwADdGFiCGtleWJvYXJkBmRlbGV0ZQpjb2RlLWJsb2NrBGNvZGUKdmlzaWJpbGl0eQp2aWV3LXNwbGl0BGxpbmsEcmVkbwR1bmRvBGJvbGQGaXRhbGljDGxpc3Qtb3JkZXJlZA5saXN0LXVub3JkZXJlZAVxdW90ZQ1zdHJpa2V0aHJvdWdoCXVuZGVybGluZQR3cmFwCWZvbnQtc2l6ZQRncmlkBWltYWdlC2V4cGFuZC1sZXNzC2V4cGFuZC1tb3JlD2Z1bGxzY3JlZW4tZXhpdApmdWxsc2NyZWVuAAAAAAA=);src:url(data:font/ttf;base64,AAEAAAALAIAAAwAwR1NVQrD+s+0AAAE4AAAAQk9TLzI940+UAAABfAAAAFZjbWFwQOSPXQAAAjwAAAMIZ2x5ZjCJoW0AAAV8AAAPYGhlYWQbUPpPAAAA4AAAADZoaGVhB94DmwAAALwAAAAkaG10eGgAAAAAAAHUAAAAaGxvY2E1+jIAAAAFRAAAADZtYXhwATAAewAAARgAAAAgbmFtZXPc7cIAABTcAAACqXBvc3QnKb+uAAAXiAAAATUAAQAAA4D/gABcBAAAAAAABAAAAQAAAAAAAAAAAAAAAAAAABoAAQAAAAEAAOLjgrdfDzz1AAsEAAAAAADcGNspAAAAANwY2ykAAP//BAADAQAAAAgAAgAAAAAAAAABAAAAGgBvAAwAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKAB4ALAABREZMVAAIAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAAAAQQAAZAABQAIAokCzAAAAI8CiQLMAAAB6wAyAQgAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABA523togOA/4AAXAOAAIAAAAABAAAAAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAAAAAFAAAAAwAAACwAAAAEAAABzAABAAAAAADGAAMAAQAAACwAAwAKAAABzAAEAJoAAAAWABAAAwAG523pQe087UXtYe117XjtgO2N7aL//wAA523pQe077UTtX+1v7XftgO2M7Z///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAFgAWABYAGAAaAB4AKgAsACwALgAAAAEABAAFAAMABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATAAIAFAAVABYAFwAYABkAAAEGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAATwAAAAAAAAAGQAA520AAOdtAAAAAQAA6UEAAOlBAAAABAAA7TsAAO07AAAABQAA7TwAAO08AAAAAwAA7UQAAO1EAAAABgAA7UUAAO1FAAAABwAA7V8AAO1fAAAACAAA7WAAAO1gAAAACQAA7WEAAO1hAAAACgAA7W8AAO1vAAAACwAA7XAAAO1wAAAADAAA7XEAAO1xAAAADQAA7XIAAO1yAAAADgAA7XMAAO1zAAAADwAA7XQAAO10AAAAEAAA7XUAAO11AAAAEQAA7XcAAO13AAAAEgAA7XgAAO14AAAAEwAA7YAAAO2AAAAAAgAA7YwAAO2MAAAAFAAA7Y0AAO2NAAAAFQAA7Z8AAO2fAAAAFgAA7aAAAO2gAAAAFwAA7aEAAO2hAAAAGAAA7aIAAO2iAAAAGQAAAAAAZgDMAR4BhAG8Af4CZgLIAv4DNANyA6IEQASoBO4FLgVwBcoGCgZqBqQGxAboB0YHsAAAAAUAAAAAA1YC1gALABgAJQA0AEAAABMhMhYUBgchLgE0Nhc+ATchHgEUBiMhIiYDNDY3IR4BFAYjISImNz4BMyEyHgEUDgEjISImJxYUDwEGJjURNDYX1gJUEhkZEv2sEhkZ2gEYEwFgEhkZEv6gEhn0GRICVBIZGRL9rBIZ8wEYEwFgDBQLCxQM/qASGTkICJILHh4LAtUZJRgBARglGfITGAEBGCUZGf6FExgBARglGRnZEhkLFRcUDBqGBhYGlQwMEQEqEQwMAAAAAAwAAAAAA6sCqwAPABMAFwAbAB8AIwAnADMANwA7AD8AQwAAASEOAQcDHgEXIT4BNxEuAQUzFSMVMxUjJzMVIxUzFSsCNTM1IzUzASEiJjQ2MyEyFhQGNyM1MzUjNTMXIzUzNSM1MwNV/VYkMAEBATEkAqokMQEBMf5cVlZWVoBWVlZWKlZWVlYBVf8AEhgYEgEAEhgYGVZWVlaAVlZWVgKrATEk/lYkMQEBMSQBqiQxf1YqVtZWKlZWKlb+gBgkGRkkGKpWKlbWVipWAAMAAAAAAysDAAAPAB8AMwAAJR4BFyE+ATcRLgEnIQ4BBzMhMhYXEQ4BByEuAScRPgElJyYrASIPASMiBhQWMyEyNjQmIwEAATAkAVYkMAEBMCT+qiQwAYABABMXAQEXE/8AExcBARcBKB4LErQSCx5rExcXEwIAERkZEVUkMAEBMCQBqyQwAQEwJBcU/qsRGQEBGREBVRQX1R4NDR4XJxcXJxcAAwAAAAADqwLZABYALQA+AAABFQYPAQYiLwEmND8BJyY0PwE2Mh8BFgU3NjQvASYiDwEGBxUWHwEWMj8BNjQnAScmBgcDBhYfARY2NxM2JicDqwEJsAcRBx4GBpOTBgYeBxEHsAn9D5MGBh8GEgawCQEBCbAHEQceBgYBQikJDwTjAgcIKAkPBOIDBwkBiBANCrAGBh4HEQaTkwYSBh4GBrAKFZMGEQceBgawCg0QDQqwBgYeBhIGAdkPAwcI/YwIEAMOAwcIAnMIDwQAAgAAAAADmgJvABAAIQAAJSc3NjQmIg8BBhQfARYyNjQlNycmNDYyHwEWFA8BBiImNAFzpqYNGSQMxA0NxA4hGgENpqYNGiEOxA0NxA4hGtqmpg4hGg3EDSINxA0aIQ6mpgwkGQ3EDSINxA0ZJAAAAAMAAAAAA7gCrAALABcAIwAAAQ4BBx4BFz4BNy4BAy4BJz4BNx4BFw4BAw4BBx4BFz4BNy4BAgCY6zU165iY6zU165hWcAICcFZWcAICcFY0QwEBQzQ0QwEBQwKsAqSGhqQCAqSGhqT+DgJwVlZwAgJwVlZwAT4BQzQ0QwEBQzQ0QwAAAAUAAAAAA4ACqwALABcAIwAwAEAAABMhMjY0JiMhIgYUFhchPgE0JichDgEUFhMhMjY0JiMhIgYUFiceARchPgE0JichDgElIR4BFxEOAQchLgE1ETQ2qwEAExcXE/8AERkZEQEAExcXE/8AERkZEQEAExcXE/8AERkZGgEZEQEAExcXE/8AERkB1AEAERkBARkR/wATFxcBABcnFxcnF6sBGSIZAQEZIhkBVRcnFxcnF9UTFwEBFyYXAQEXGAEXE/4AERkBARkRAgATFwAAAAADAAAAAAOrAlYAGQAmAEAAAAEjIgYUFjsBHgEXDgEHIyIGFBY7AT4BNy4BBR4BFyE+ATQmJyEOARcjLgEnPgE3MzI2NCYrAQ4BBx4BFzMyNjQmAtWAEhgYEoA3SAEBSDeAEhgYEoBbeAMDeP4lARgSAQASGBgS/wASGFWAN0gBAUg3gBIYGBKAW3gDA3hbgBIYGAJVGCQZAUk2NkkBGSQYAnhbW3jTEhgBARgkGAEBGJIBSTY2SQEZJBgCeFtbeAIYJBkAAQAAAAADrAIrAB4AAAEuAScOAQcGFhcWNjc+ATcyFhcHBhYXMz4BNzUuAQcDEjuWVYfUOAoTFxQjCSuhZz9vLFETEx7uEhgBAjEWAbw0OgECiXIXKggGDxJWaQErJVIWMQIBGBLvHRQTAAAAAQAAAAADsgIrAB4AAAEOAQcnJgYHFR4BFzM+AS8BPgEzHgEXHgE3PgEnLgECFFWWO1EWMQIBGBLuHhQTUi1vPmehKwkkExcTCjnTAisBOjRQFBQd7xIYAQIxFlIlKwFpVhIPBggqF3KJAAAAAwAAAAAC9QK/ABQAHAAkAAABPgE3LgEnIw4BBxEeARchPgE3NCYlMx4BFAYHIxMjNTMeARQGApMhKQECZk7vFBkBARkUAQdJaQI0/tSIHScnHYifn58dJycBihdEJE5mAgEaE/3eExoBAmFJNVLZASY7JgH+74kBJjsmAAEAAAAAAxICvwAcAAABHgEXMwMjDgEUFhczPgE0JicjEzM+ATQmJyMOAQGlASYdIZw7HSYmHeQdJiYdIZw7HSYmHeQdJgJ6HSYB/pQBJjonAQEnOiYBAWwBJjonAQEnAAYAAAAAA5YC1gALABcAIwBBAFIAbgAAASE+ATQmJyEOARQWASEOARQWFyE+ATQmAyEOARQWFyE+ATQmBSMiBhQWOwEVIyIGFBY7ARUjIgYUFjsBMjY3NS4BAzMVHgEyNj0BNCYrASIGFBYXIyIGFBY7AQcGHQEUFjsBMjY0JisBNzY9AS4BAWsCABIYGBL+ABIZGQIS/gASGRkSAgASGBgS/gASGRkSAgASGBj9WFUJDAwJQBUKCwsKFUAJDAwJVQoLAQELXxUBCxMMDAkrCQwMXlUJDAwJN0cFDAlVCgsLCjdIBQELAlUBGCQYAQEYJBj+VQEYJBgBARgkGAEBARgkGAEBGCQY1QwSDBYMEgwWDBIMDAmACQwB1msJDAwJgAkMDBIM1gwSDFQGCAkJDAwSDFQGCAkJDAAAAAAGAAAAAAOLAsAACAARABoAJgAyAD8AABMOARQWMjY0JgMOARQWMjY0JgMOARQWMjY0JhchPgE0JichDgEUFjchPgE0JichDgEUFgMeARchPgE0JichDgG1GyQkNyQkHBskJDckJBwbJCQ2JSSPAgASGBgS/gASGBgSAgASGBgS/gASGBgZARgSAgASGBgS/gASGAHAASQ2JCQ2JAEBASQ2JCQ2JP4BASQ2JCQ2JGoBGCQYAQEYJBj/ARgkGAEBGCQYASoSGAEBGCQYAQEYAAAAAgAAAAADVgJWABYALQAAJTI2PwE2PQEuASsBIgYdARQWFzMHBhYFMjY/ATY9ATQmKwEiBgcVHgEXMwcGFgEyERsHPQkBGBKrEhgYElYsDiABzBAbCDwJGBKrEhgBARgSVSwNIKsRDnkSFMISGBgSqxIYAVgeMwERDnkSFMISGBgSqxIYAVgeMwAAAAADAAAAAAOAAsAACAAZACUAACU+ATc1IxUeAQEeARczFTM1Mz4BNCYnIQ4BAyE+ATQmJyEOARQWAgAkMAGqATD++QEkG5aqlhskJBv+KhskKwKqEhkZEv1WEhkZQAEwJCsrJDACPxskAYCAASQ2JAEBJP56ARgkGAEBGCQYAAAAAAIAAP//AysDAQAbACgAACU+ATcRLgEiBgcRFAYHBi4CNREuASIGBxEeAQceATMhMjY0JiMhIgYCImJ6AgEeLR4BQTUhQTUdAR4tHgEDptQBGBICABIYGBL+ABIYrQ+TZQEXFh4eFv7kN1MMBw8rPCMBIBYeHhb+4HaUdhIZGSQYGAAAAAMAAAAAA3ACxwALAC0AOQAAEyE+ATQmIyEiBhQWBSEiBhQWFyEyFhcWBgcjNS4BDwEGFB8BFjY3NTM+AScuAQUjIgYUFhczPgE0JsACVRIZGRL9qxIYGAIL/gcSGBgSAgYgMwYFMShgARkLTAYGTAwYAVVNYgUIZP5tqxIYGBKrEhgYAnEBGCQYGCQYrBgkGAEnICk5AiIPCgpMBxEHTAoKDyICa05EVf8YJBgBARgkGAAAAAIAAAAAA5YCwAAUACgAAAEUFhczER4BMjY3ETM+ATQmJyEOAQMzFRQWMjY3NTMyNjQmJyEOARQWAWskHJUBJDYkAZUcJCQc/lYcJMBAJDckAUAbJCQb/wAcJCQCgBskAf5AGyQkGwHAASQ2JAEBJP7Q6xskJBvrJDckAQEkNyQACgAAAAADeAL4AA8AFgAaACEAJQApAC0ANAA4AD8AAAEhDgEHER4BFyE+ATcRLgEBIyImPQEzNSM1MzUjNTQ2OwETIzUzNSM1MzUjNTMTIzUzFRQGNyM1MzUjNTMyFhUDLP2oICoBASogAlggKgEBKv4ecQ8WlpaWlhYPceGWlpaWlpa8cZYWFpaWlnEPFgL3ASog/aggKgEBKiACWCAq/V4WD3FLlktxDxb9qJZLlkuW/aiWcQ8W4ZZLlhYPAAAAAgAA//8DgAMAAA8AIAAAJREuASchDgEHER4BFyE+ASUXNzYyHwEWBiMhIiY/AT4BA4ABMCT9qiQwAQEwJAJWJDD9/VmFBxQHlQgMDf4BDgsIagcUVQJWJDABATAk/aokMAEBMPtsqggJxwsXFwuJCAEAAAABAAAAAAM1AjYAEAAAAQcGFBYyPwEXFjI2NC8BJiIB2f4QISwR19cRLCEQ/hAuAib+ESwhENfXECEsEf4QAAAAAQAAAAADNQI2ABIAAAEHJyYnIg4BFh8BFjI/ATY0LgEC1tbXEBcRGw0GDP4RLBH+ECEtAibX1w8BEiAgDP4QEP4QLSABAAAABAAAAAADawLrABAAIQAzAEQAADczFRQWMjY9ATQmKwEiBhQWEyMiBhQWOwEyNj0BNCYiBhUBMjY9ATMyNjQmKwEiBh0BFBYTNTQmIgYdARQWOwEyNjQmI8loHiwdHRacFh0dfmgWHR0WnBYdHSweAWoWHmgWHR0WnBYdHUoeLB0dFpwWHR0WsWgWHR0WnBYdHSweAZ4eLB0dFpwWHR0W/V8dFmgeLB0dFpwWHQI5aBYdHRacFh0dLB4AAAAEAAAAAANUAtQAEQAjADQARgAAEw4BBxUeARczPgE0JisBNTQmJz4BPQEzMjY0JicjDgEHFR4BASMiBhQWFzM+ATc1LgEiBhUDHgE7ARUUFjI2NzUuAScjDgHdFRsBARsVkRUbGxVhHBQUHGEVGxsVkRUbAQEbAithFRsbFZEVGwEBGykckgEbFWEcKRsBARsVkRUbAR8BGxWRFRsBARspHGEVG8MBGxVhHCkbAQEbFZEVG/6rHCkbAQEbFZEVGxsVAbUUHGEVGxsVkRUbAQEbAAAAAAAAEgDeAAEAAAAAAAAAFQAAAAEAAAAAAAEADQAVAAEAAAAAAAIABwAiAAEAAAAAAAMADQApAAEAAAAAAAQADQA2AAEAAAAAAAUACwBDAAEAAAAAAAYADQBOAAEAAAAAAAoAKwBbAAEAAAAAAAsAEwCGAAMAAQQJAAAAKgCZAAMAAQQJAAEAGgDDAAMAAQQJAAIADgDdAAMAAQQJAAMAGgDrAAMAAQQJAAQAGgEFAAMAAQQJAAUAFgEfAAMAAQQJAAYAGgE1AAMAAQQJAAoAVgFPAAMAAQQJAAsAJgGlCkNyZWF0ZWQgYnkgaWNvbmZvbnQKcm1lbC1pY29uZm9udFJlZ3VsYXJybWVsLWljb25mb250cm1lbC1pY29uZm9udFZlcnNpb24gMS4wcm1lbC1pY29uZm9udEdlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAAoAQwByAGUAYQB0AGUAZAAgAGIAeQAgAGkAYwBvAG4AZgBvAG4AdAAKAHIAbQBlAGwALQBpAGMAbwBuAGYAbwBuAHQAUgBlAGcAdQBsAGEAcgByAG0AZQBsAC0AaQBjAG8AbgBmAG8AbgB0AHIAbQBlAGwALQBpAGMAbwBuAGYAbwBuAHQAVgBlAHIAcwBpAG8AbgAgADEALgAwAHIAbQBlAGwALQBpAGMAbwBuAGYAbwBuAHQARwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABzAHYAZwAyAHQAdABmACAAZgByAG8AbQAgAEYAbwBuAHQAZQBsAGwAbwAgAHAAcgBvAGoAZQBjAHQALgBoAHQAdABwADoALwAvAGYAbwBuAHQAZQBsAGwAbwAuAGMAbwBtAAAAAAIAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgECAQMBBAEFAQYBBwEIAQkBCgELAQwBDQEOAQ8BEAERARIBEwEUARUBFgEXARgBGQEaARsAA3RhYghrZXlib2FyZAZkZWxldGUKY29kZS1ibG9jawRjb2RlCnZpc2liaWxpdHkKdmlldy1zcGxpdARsaW5rBHJlZG8EdW5kbwRib2xkBml0YWxpYwxsaXN0LW9yZGVyZWQObGlzdC11bm9yZGVyZWQFcXVvdGUNc3RyaWtldGhyb3VnaAl1bmRlcmxpbmUEd3JhcAlmb250LXNpemUEZ3JpZAVpbWFnZQtleHBhbmQtbGVzcwtleHBhbmQtbW9yZQ9mdWxsc2NyZWVuLWV4aXQKZnVsbHNjcmVlbgAAAAAA) format("truetype")}.rmel-iconfont{font-family:rmel-iconfont!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.rmel-icon-tab:before{content:"\e76d"}.rmel-icon-keyboard:before{content:"\ed80"}.rmel-icon-delete:before{content:"\ed3c"}.rmel-icon-code-block:before{content:"\e941"}.rmel-icon-code:before{content:"\ed3b"}.rmel-icon-visibility:before{content:"\ed44"}.rmel-icon-view-split:before{content:"\ed45"}.rmel-icon-link:before{content:"\ed5f"}.rmel-icon-redo:before{content:"\ed60"}.rmel-icon-undo:before{content:"\ed61"}.rmel-icon-bold:before{content:"\ed6f"}.rmel-icon-italic:before{content:"\ed70"}.rmel-icon-list-ordered:before{content:"\ed71"}.rmel-icon-list-unordered:before{content:"\ed72"}.rmel-icon-quote:before{content:"\ed73"}.rmel-icon-strikethrough:before{content:"\ed74"}.rmel-icon-underline:before{content:"\ed75"}.rmel-icon-wrap:before{content:"\ed77"}.rmel-icon-font-size:before{content:"\ed78"}.rmel-icon-grid:before{content:"\ed8c"}.rmel-icon-image:before{content:"\ed8d"}.rmel-icon-expand-less:before{content:"\ed9f"}.rmel-icon-expand-more:before{content:"\eda0"}.rmel-icon-fullscreen-exit:before{content:"\eda1"}.rmel-icon-fullscreen:before{content:"\eda2"}.rc-md-editor{padding-bottom:1px;position:relative;border:1px solid #e0e0e0;background:#fff;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:-moz-box;display:flex;-moz-box-orient:vertical;-moz-box-direction:normal;flex-direction:column}.rc-md-editor.full{width:100%;height:100%!important;position:fixed;left:0;top:0;z-index:1000}.rc-md-editor .editor-container{-moz-box-flex:1;flex:1 1;display:-moz-box;display:flex;width:100%;min-height:0;position:relative}.rc-md-editor .editor-container>.section.in-visible{display:none}.rc-md-editor .editor-container>.section>.section-container{padding:10px 15px 15px}.rc-md-editor .editor-container .sec-md{-moz-box-flex:1;flex:1 1;min-height:0;min-width:0}.rc-md-editor .editor-container .sec-md .input{display:block;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;width:100%;height:100%;overflow-y:scroll;border:none;resize:none;outline:none;min-height:0;background:#fff;color:#333;font-size:14px;line-height:1.7}.rc-md-editor .editor-container .sec-html{-moz-box-flex:1;flex:1 1;min-height:0;min-width:0}.rc-md-editor .editor-container .sec-html .html-wrap{height:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;overflow:auto}.custom-html-style{color:#333}.custom-html-style h1{font-size:32px;padding:0;border:none;font-weight:700;margin:32px 0;line-height:1.2}.custom-html-style h2{font-size:24px;padding:0;border:none;font-weight:700;margin:24px 0;line-height:1.7}.custom-html-style h3{font-size:18px;margin:18px 0;padding:0;line-height:1.7;border:none}.custom-html-style p{font-size:14px;line-height:1.7;margin:8px 0}.custom-html-style a{color:#0052d9}.custom-html-style a:hover{text-decoration:none}.custom-html-style strong{font-weight:700}.custom-html-style ol,.custom-html-style ul{font-size:14px;line-height:28px;padding-left:36px}.custom-html-style li{margin-bottom:8px;line-height:1.7}.custom-html-style hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.custom-html-style pre{display:block;padding:20px;line-height:28px;word-break:break-word}.custom-html-style code,.custom-html-style pre{background-color:#f5f5f5;font-size:14px;border-radius:0;overflow-x:auto}.custom-html-style code{padding:3px 0;margin:0;word-break:normal}.custom-html-style code:after,.custom-html-style code:before{letter-spacing:0}.custom-html-style blockquote{position:relative;margin:16px 0;padding:5px 8px 5px 30px;background:none repeat scroll 0 0 rgba(102,128,153,.05);color:#333;border:none;border-left:10px solid #d6dbdf}.custom-html-style img,.custom-html-style video{max-width:100%}.custom-html-style table{font-size:14px;line-height:1.7;max-width:100%;overflow:auto;border:1px solid #f6f6f6;border-collapse:collapse;border-spacing:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.custom-html-style table td,.custom-html-style table th{word-break:break-all;word-wrap:break-word;white-space:normal}.custom-html-style table tr{border:1px solid #efefef}.custom-html-style table tr:nth-child(2n){background-color:transparent}.custom-html-style table th{text-align:center;font-weight:700;border:1px solid #efefef;padding:10px 6px;background-color:#f5f7fa;word-break:break-word}.custom-html-style table td{border:1px solid #efefef;text-align:left;padding:10px 15px;word-break:break-word;min-width:60px}.rc-md-editor .drop-wrap{display:block;position:absolute;left:0;top:28px;z-index:2;min-width:20px;padding:10px 0;text-align:center;background-color:#fff;border-color:#f1f1f1 #ddd #ddd #f1f1f1;border-style:solid;border-width:1px}.rc-md-editor .drop-wrap.hidden{display:none!important}.rc-md-editor .rc-md-navigation{min-height:38px;padding:0 8px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border-bottom:1px solid #e0e0e0;font-size:16px;background:#f5f5f5;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:-moz-box;display:flex;-moz-box-orient:horizontal;-moz-box-direction:normal;flex-direction:row;-moz-box-pack:justify;justify-content:space-between}.rc-md-editor .rc-md-navigation.in-visible{display:none}.rc-md-editor .rc-md-navigation .navigation-nav{-moz-box-align:center;align-items:center;-moz-box-pack:center;justify-content:center;font-size:14px;color:#757575}.rc-md-editor .rc-md-navigation .button-wrap,.rc-md-editor .rc-md-navigation .navigation-nav{display:-moz-box;display:flex;-moz-box-orient:horizontal;-moz-box-direction:normal;flex-direction:row}.rc-md-editor .rc-md-navigation .button-wrap{flex-wrap:wrap}.rc-md-editor .rc-md-navigation .button-wrap .button{position:relative;min-width:24px;height:28px;margin-left:3px;margin-right:3px;display:inline-block;cursor:pointer;line-height:28px;text-align:center;color:#757575}.rc-md-editor .rc-md-navigation .button-wrap .button:hover{color:#212121}.rc-md-editor .rc-md-navigation .button-wrap .button.disabled{color:#bdbdbd;cursor:not-allowed}.rc-md-editor .rc-md-navigation .button-wrap .button:first-child{margin-left:0}.rc-md-editor .rc-md-navigation .button-wrap .button:last-child{margin-right:0}.rc-md-editor .rc-md-navigation .button-wrap .rmel-iconfont{font-size:18px}.rc-md-editor .rc-md-navigation li,.rc-md-editor .rc-md-navigation ul{list-style:none;margin:0;padding:0}.rc-md-editor .rc-md-navigation .h1,.rc-md-editor .rc-md-navigation .h2,.rc-md-editor .rc-md-navigation .h3,.rc-md-editor .rc-md-navigation .h4,.rc-md-editor .rc-md-navigation .h5,.rc-md-editor .rc-md-navigation .h6,.rc-md-editor .rc-md-navigation h1,.rc-md-editor .rc-md-navigation h2,.rc-md-editor .rc-md-navigation h3,.rc-md-editor .rc-md-navigation h4,.rc-md-editor .rc-md-navigation h5,.rc-md-editor .rc-md-navigation h6{font-family:inherit;font-weight:500;color:inherit;padding:0;margin:0;line-height:1.1}.rc-md-editor .rc-md-navigation h1{font-size:34px}.rc-md-editor .rc-md-navigation h2{font-size:30px}.rc-md-editor .rc-md-navigation h3{font-size:24px}.rc-md-editor .rc-md-navigation h4{font-size:18px}.rc-md-editor .rc-md-navigation h5{font-size:14px}.rc-md-editor .rc-md-navigation h6{font-size:12px}.rc-md-editor .tool-bar{position:absolute;z-index:1;right:8px;top:8px}.rc-md-editor .tool-bar .button{min-width:24px;height:28px;margin-right:5px;display:inline-block;cursor:pointer;font-size:14px;line-height:28px;text-align:center;color:#999}.rc-md-editor .tool-bar .button:hover{color:#333}.rc-md-editor .rc-md-divider{display:block;width:1px;background-color:#e0e0e0}.rc-md-editor .table-list.wrap{position:relative;margin:0 10px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.rc-md-editor .table-list.wrap .list-item{position:absolute;top:0;left:0;display:inline-block;width:20px;height:20px;background-color:#e0e0e0;border-radius:3px}.rc-md-editor .table-list.wrap .list-item.active{background:#9e9e9e}.rc-md-editor .tab-map-list .list-item{width:120px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.rc-md-editor .tab-map-list .list-item:hover{background:#f5f5f5}.rc-md-editor .tab-map-list .list-item.active{font-weight:700}.rc-md-editor .header-list .list-item{width:100px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:8px 0}.rc-md-editor .header-list .list-item:hover{background:#f5f5f5} \ No newline at end of file
diff --git a/static/admin/_next/static/css/8f06007bcaf49272.css b/static/admin/_next/static/css/8f06007bcaf49272.css
new file mode 100644
index 000000000..8efd040f5
--- /dev/null
+++ b/static/admin/_next/static/css/8f06007bcaf49272.css
@@ -0,0 +1,9 @@
+/*!
+ *
+ * antd v4.18.3
+ *
+ * Copyright 2015-present, Alipay, Inc.
+ * All rights reserved.
+ *
+ */[class*=ant-]::-ms-clear,[class*=ant-] input::-ms-clear,[class*=ant-] input::-ms-reveal,[class^=ant-]::-ms-clear,[class^=ant-] input::-ms-clear,[class^=ant-] input::-ms-reveal{display:none}body,html{width:100%;height:100%}input::-ms-clear,input::-ms-reveal{display:none}*,:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}@-ms-viewport{width:device-width}body{margin:0;color:rgba(0,0,0,.85);font-size:14px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variant:tabular-nums;line-height:1.5715;background-color:#fff;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum"}[tabindex="-1"]:focus{outline:none!important}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;color:rgba(0,0,0,.85);font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;border-bottom:0;cursor:help}address{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=number],input[type=password],input[type=text],textarea{-webkit-appearance:none}dl,ol,ul{margin-top:0;margin-bottom:1em}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#1890ff;background-color:transparent;outline:none;cursor:pointer;-webkit-transition:color .3s;-moz-transition:color .3s;transition:color .3s;-webkit-text-decoration-skip:objects}a:hover{color:#40a9ff}a:active{color:#096dd9}a:active,a:focus,a:hover{text-decoration:none;outline:0}a[disabled]{color:rgba(0,0,0,.25);cursor:not-allowed}code,kbd,pre,samp{font-size:1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}[role=button],a,area,button,input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75em;padding-bottom:.3em;color:rgba(0,0,0,.45);text-align:left;caption-side:bottom}button,input,optgroup,select,textarea{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;margin:0;padding:0;border:0}legend{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{padding:.2em;background-color:#feffe6}::-moz-selection{color:#fff;background:#1890ff}::selection{color:#fff;background:#1890ff}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}.anticon{display:inline-block;color:inherit;font-style:normal;line-height:0;text-align:center;text-transform:none;vertical-align:-.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.anticon>*{line-height:1}.anticon svg{display:inline-block}.anticon:before{display:none}.anticon .anticon-icon{display:block}.anticon[tabindex]{cursor:pointer}.anticon-spin,.anticon-spin:before{display:inline-block;-webkit-animation:loadingCircle 1s linear infinite;-moz-animation:loadingCircle 1s linear infinite;animation:loadingCircle 1s linear infinite}.ant-fade-appear,.ant-fade-enter,.ant-fade-leave{-webkit-animation-duration:.2s;-moz-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;-moz-animation-play-state:paused;animation-play-state:paused}.ant-fade-appear.ant-fade-appear-active,.ant-fade-enter.ant-fade-enter-active{-webkit-animation-name:antFadeIn;-moz-animation-name:antFadeIn;animation-name:antFadeIn;-webkit-animation-play-state:running;-moz-animation-play-state:running;animation-play-state:running}.ant-fade-leave.ant-fade-leave-active{-webkit-animation-name:antFadeOut;-moz-animation-name:antFadeOut;animation-name:antFadeOut;-webkit-animation-play-state:running;-moz-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-fade-appear,.ant-fade-enter{opacity:0}.ant-fade-appear,.ant-fade-enter,.ant-fade-leave{-webkit-animation-timing-function:linear;-moz-animation-timing-function:linear;animation-timing-function:linear}@-webkit-keyframes antFadeIn{0%{opacity:0}to{opacity:1}}@-moz-keyframes antFadeIn{0%{opacity:0}to{opacity:1}}@keyframes antFadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes antFadeOut{0%{opacity:1}to{opacity:0}}@-moz-keyframes antFadeOut{0%{opacity:1}to{opacity:0}}@keyframes antFadeOut{0%{opacity:1}to{opacity:0}}.ant-move-up-appear,.ant-move-up-enter,.ant-move-up-leave{-webkit-animation-duration:.2s;-moz-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;-moz-animation-play-state:paused;animation-play-state:paused}.ant-move-up-appear.ant-move-up-appear-active,.ant-move-up-enter.ant-move-up-enter-active{-webkit-animation-name:antMoveUpIn;-moz-animation-name:antMoveUpIn;animation-name:antMoveUpIn;-webkit-animation-play-state:running;-moz-animation-play-state:running;animation-play-state:running}.ant-move-up-leave.ant-move-up-leave-active{-webkit-animation-name:antMoveUpOut;-moz-animation-name:antMoveUpOut;animation-name:antMoveUpOut;-webkit-animation-play-state:running;-moz-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-move-up-appear,.ant-move-up-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);-moz-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-move-up-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);-moz-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.ant-move-down-appear,.ant-move-down-enter,.ant-move-down-leave{-webkit-animation-duration:.2s;-moz-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;-moz-animation-play-state:paused;animation-play-state:paused}.ant-move-down-appear.ant-move-down-appear-active,.ant-move-down-enter.ant-move-down-enter-active{-webkit-animation-name:antMoveDownIn;-moz-animation-name:antMoveDownIn;animation-name:antMoveDownIn;-webkit-animation-play-state:running;-moz-animation-play-state:running;animation-play-state:running}.ant-move-down-leave.ant-move-down-leave-active{-webkit-animation-name:antMoveDownOut;-moz-animation-name:antMoveDownOut;animation-name:antMoveDownOut;-webkit-animation-play-state:running;-moz-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-move-down-appear,.ant-move-down-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);-moz-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-move-down-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);-moz-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.ant-move-left-appear,.ant-move-left-enter,.ant-move-left-leave{-webkit-animation-duration:.2s;-moz-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;-moz-animation-play-state:paused;animation-play-state:paused}.ant-move-left-appear.ant-move-left-appear-active,.ant-move-left-enter.ant-move-left-enter-active{-webkit-animation-name:antMoveLeftIn;-moz-animation-name:antMoveLeftIn;animation-name:antMoveLeftIn;-webkit-animation-play-state:running;-moz-animation-play-state:running;animation-play-state:running}.ant-move-left-leave.ant-move-left-leave-active{-webkit-animation-name:antMoveLeftOut;-moz-animation-name:antMoveLeftOut;animation-name:antMoveLeftOut;-webkit-animation-play-state:running;-moz-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-move-left-appear,.ant-move-left-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);-moz-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-move-left-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);-moz-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.ant-move-right-appear,.ant-move-right-enter,.ant-move-right-leave{-webkit-animation-duration:.2s;-moz-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;-moz-animation-play-state:paused;animation-play-state:paused}.ant-move-right-appear.ant-move-right-appear-active,.ant-move-right-enter.ant-move-right-enter-active{-webkit-animation-name:antMoveRightIn;-moz-animation-name:antMoveRightIn;animation-name:antMoveRightIn;-webkit-animation-play-state:running;-moz-animation-play-state:running;animation-play-state:running}.ant-move-right-leave.ant-move-right-leave-active{-webkit-animation-name:antMoveRightOut;-moz-animation-name:antMoveRightOut;animation-name:antMoveRightOut;-webkit-animation-play-state:running;-moz-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-move-right-appear,.ant-move-right-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);-moz-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-move-right-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);-moz-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}@-webkit-keyframes antMoveDownIn{0%{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-moz-keyframes antMoveDownIn{0%{-moz-transform:translateY(100%);transform:translateY(100%);-moz-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-moz-transform:translateY(0);transform:translateY(0);-moz-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antMoveDownIn{0%{-webkit-transform:translateY(100%);-moz-transform:translateY(100%);transform:translateY(100%);-webkit-transform-origin:0 0;-moz-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateY(0);-moz-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;-moz-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveDownOut{0%{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-moz-keyframes antMoveDownOut{0%{-moz-transform:translateY(0);transform:translateY(0);-moz-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-moz-transform:translateY(100%);transform:translateY(100%);-moz-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antMoveDownOut{0%{-webkit-transform:translateY(0);-moz-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;-moz-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateY(100%);-moz-transform:translateY(100%);transform:translateY(100%);-webkit-transform-origin:0 0;-moz-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antMoveLeftIn{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-moz-keyframes antMoveLeftIn{0%{-moz-transform:translateX(-100%);transform:translateX(-100%);-moz-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-moz-transform:translateX(0);transform:translateX(0);-moz-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antMoveLeftIn{0%{-webkit-transform:translateX(-100%);-moz-transform:translateX(-100%);transform:translateX(-100%);-webkit-transform-origin:0 0;-moz-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateX(0);-moz-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;-moz-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveLeftOut{0%{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-moz-keyframes antMoveLeftOut{0%{-moz-transform:translateX(0);transform:translateX(0);-moz-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-moz-transform:translateX(-100%);transform:translateX(-100%);-moz-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antMoveLeftOut{0%{-webkit-transform:translateX(0);-moz-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;-moz-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateX(-100%);-moz-transform:translateX(-100%);transform:translateX(-100%);-webkit-transform-origin:0 0;-moz-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antMoveRightIn{0%{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-moz-keyframes antMoveRightIn{0%{-moz-transform:translateX(100%);transform:translateX(100%);-moz-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-moz-transform:translateX(0);transform:translateX(0);-moz-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antMoveRightIn{0%{-webkit-transform:translateX(100%);-moz-transform:translateX(100%);transform:translateX(100%);-webkit-transform-origin:0 0;-moz-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateX(0);-moz-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;-moz-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveRightOut{0%{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-moz-keyframes antMoveRightOut{0%{-moz-transform:translateX(0);transform:translateX(0);-moz-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-moz-transform:translateX(100%);transform:translateX(100%);-moz-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antMoveRightOut{0%{-webkit-transform:translateX(0);-moz-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;-moz-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateX(100%);-moz-transform:translateX(100%);transform:translateX(100%);-webkit-transform-origin:0 0;-moz-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antMoveUpIn{0%{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-moz-keyframes antMoveUpIn{0%{-moz-transform:translateY(-100%);transform:translateY(-100%);-moz-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-moz-transform:translateY(0);transform:translateY(0);-moz-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antMoveUpIn{0%{-webkit-transform:translateY(-100%);-moz-transform:translateY(-100%);transform:translateY(-100%);-webkit-transform-origin:0 0;-moz-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateY(0);-moz-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;-moz-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveUpOut{0%{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-moz-keyframes antMoveUpOut{0%{-moz-transform:translateY(0);transform:translateY(0);-moz-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-moz-transform:translateY(-100%);transform:translateY(-100%);-moz-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antMoveUpOut{0%{-webkit-transform:translateY(0);-moz-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;-moz-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateY(-100%);-moz-transform:translateY(-100%);transform:translateY(-100%);-webkit-transform-origin:0 0;-moz-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes loadingCircle{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@-moz-keyframes loadingCircle{to{-moz-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes loadingCircle{to{-webkit-transform:rotate(1turn);-moz-transform:rotate(1turn);transform:rotate(1turn)}}[ant-click-animating-without-extra-node=true],[ant-click-animating=true]{position:relative}html{--antd-wave-shadow-color:#1890ff;--scroll-bar:0}.ant-click-animating-node,[ant-click-animating-without-extra-node=true]:after{position:absolute;top:0;right:0;bottom:0;left:0;display:block;border-radius:inherit;-webkit-box-shadow:0 0 0 0 #1890ff;box-shadow:0 0 0 0 #1890ff;-webkit-box-shadow:0 0 0 0 var(--antd-wave-shadow-color);box-shadow:0 0 0 0 var(--antd-wave-shadow-color);opacity:.2;-webkit-animation:fadeEffect 2s cubic-bezier(.08,.82,.17,1),waveEffect .4s cubic-bezier(.08,.82,.17,1);-moz-animation:fadeEffect 2s cubic-bezier(.08,.82,.17,1),waveEffect .4s cubic-bezier(.08,.82,.17,1);animation:fadeEffect 2s cubic-bezier(.08,.82,.17,1),waveEffect .4s cubic-bezier(.08,.82,.17,1);-webkit-animation-fill-mode:forwards;-moz-animation-fill-mode:forwards;animation-fill-mode:forwards;content:"";pointer-events:none}@-webkit-keyframes waveEffect{to{-webkit-box-shadow:0 0 0 #1890ff;box-shadow:0 0 0 #1890ff;-webkit-box-shadow:0 0 0 6px var(--antd-wave-shadow-color);box-shadow:0 0 0 6px var(--antd-wave-shadow-color)}}@-moz-keyframes waveEffect{to{box-shadow:0 0 0 #1890ff;box-shadow:0 0 0 6px var(--antd-wave-shadow-color)}}@keyframes waveEffect{to{-webkit-box-shadow:0 0 0 #1890ff;box-shadow:0 0 0 #1890ff;-webkit-box-shadow:0 0 0 6px var(--antd-wave-shadow-color);box-shadow:0 0 0 6px var(--antd-wave-shadow-color)}}@-webkit-keyframes fadeEffect{to{opacity:0}}@-moz-keyframes fadeEffect{to{opacity:0}}@keyframes fadeEffect{to{opacity:0}}.ant-slide-up-appear,.ant-slide-up-enter,.ant-slide-up-leave{-webkit-animation-duration:.2s;-moz-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;-moz-animation-play-state:paused;animation-play-state:paused}.ant-slide-up-appear.ant-slide-up-appear-active,.ant-slide-up-enter.ant-slide-up-enter-active{-webkit-animation-name:antSlideUpIn;-moz-animation-name:antSlideUpIn;animation-name:antSlideUpIn;-webkit-animation-play-state:running;-moz-animation-play-state:running;animation-play-state:running}.ant-slide-up-leave.ant-slide-up-leave-active{-webkit-animation-name:antSlideUpOut;-moz-animation-name:antSlideUpOut;animation-name:antSlideUpOut;-webkit-animation-play-state:running;-moz-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-slide-up-appear,.ant-slide-up-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);-moz-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.ant-slide-up-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);-moz-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.ant-slide-down-appear,.ant-slide-down-enter,.ant-slide-down-leave{-webkit-animation-duration:.2s;-moz-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;-moz-animation-play-state:paused;animation-play-state:paused}.ant-slide-down-appear.ant-slide-down-appear-active,.ant-slide-down-enter.ant-slide-down-enter-active{-webkit-animation-name:antSlideDownIn;-moz-animation-name:antSlideDownIn;animation-name:antSlideDownIn;-webkit-animation-play-state:running;-moz-animation-play-state:running;animation-play-state:running}.ant-slide-down-leave.ant-slide-down-leave-active{-webkit-animation-name:antSlideDownOut;-moz-animation-name:antSlideDownOut;animation-name:antSlideDownOut;-webkit-animation-play-state:running;-moz-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-slide-down-appear,.ant-slide-down-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);-moz-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.ant-slide-down-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);-moz-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.ant-slide-left-appear,.ant-slide-left-enter,.ant-slide-left-leave{-webkit-animation-duration:.2s;-moz-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;-moz-animation-play-state:paused;animation-play-state:paused}.ant-slide-left-appear.ant-slide-left-appear-active,.ant-slide-left-enter.ant-slide-left-enter-active{-webkit-animation-name:antSlideLeftIn;-moz-animation-name:antSlideLeftIn;animation-name:antSlideLeftIn;-webkit-animation-play-state:running;-moz-animation-play-state:running;animation-play-state:running}.ant-slide-left-leave.ant-slide-left-leave-active{-webkit-animation-name:antSlideLeftOut;-moz-animation-name:antSlideLeftOut;animation-name:antSlideLeftOut;-webkit-animation-play-state:running;-moz-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-slide-left-appear,.ant-slide-left-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);-moz-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.ant-slide-left-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);-moz-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.ant-slide-right-appear,.ant-slide-right-enter,.ant-slide-right-leave{-webkit-animation-duration:.2s;-moz-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;-moz-animation-play-state:paused;animation-play-state:paused}.ant-slide-right-appear.ant-slide-right-appear-active,.ant-slide-right-enter.ant-slide-right-enter-active{-webkit-animation-name:antSlideRightIn;-moz-animation-name:antSlideRightIn;animation-name:antSlideRightIn;-webkit-animation-play-state:running;-moz-animation-play-state:running;animation-play-state:running}.ant-slide-right-leave.ant-slide-right-leave-active{-webkit-animation-name:antSlideRightOut;-moz-animation-name:antSlideRightOut;animation-name:antSlideRightOut;-webkit-animation-play-state:running;-moz-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-slide-right-appear,.ant-slide-right-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);-moz-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.ant-slide-right-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);-moz-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}@-webkit-keyframes antSlideUpIn{0%{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-moz-keyframes antSlideUpIn{0%{-moz-transform:scaleY(.8);transform:scaleY(.8);-moz-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-moz-transform:scaleY(1);transform:scaleY(1);-moz-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antSlideUpIn{0%{-webkit-transform:scaleY(.8);-moz-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:0 0;-moz-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleY(1);-moz-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;-moz-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antSlideUpOut{0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-moz-keyframes antSlideUpOut{0%{-moz-transform:scaleY(1);transform:scaleY(1);-moz-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-moz-transform:scaleY(.8);transform:scaleY(.8);-moz-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antSlideUpOut{0%{-webkit-transform:scaleY(1);-moz-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;-moz-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleY(.8);-moz-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:0 0;-moz-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antSlideDownIn{0%{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}to{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}}@-moz-keyframes antSlideDownIn{0%{-moz-transform:scaleY(.8);transform:scaleY(.8);-moz-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}to{-moz-transform:scaleY(1);transform:scaleY(1);-moz-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}}@keyframes antSlideDownIn{0%{-webkit-transform:scaleY(.8);-moz-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:100% 100%;-moz-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}to{-webkit-transform:scaleY(1);-moz-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:100% 100%;-moz-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}}@-webkit-keyframes antSlideDownOut{0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}to{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}}@-moz-keyframes antSlideDownOut{0%{-moz-transform:scaleY(1);transform:scaleY(1);-moz-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}to{-moz-transform:scaleY(.8);transform:scaleY(.8);-moz-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}}@keyframes antSlideDownOut{0%{-webkit-transform:scaleY(1);-moz-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:100% 100%;-moz-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}to{-webkit-transform:scaleY(.8);-moz-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:100% 100%;-moz-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}}@-webkit-keyframes antSlideLeftIn{0%{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-moz-keyframes antSlideLeftIn{0%{-moz-transform:scaleX(.8);transform:scaleX(.8);-moz-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-moz-transform:scaleX(1);transform:scaleX(1);-moz-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antSlideLeftIn{0%{-webkit-transform:scaleX(.8);-moz-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:0 0;-moz-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleX(1);-moz-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;-moz-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antSlideLeftOut{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-moz-keyframes antSlideLeftOut{0%{-moz-transform:scaleX(1);transform:scaleX(1);-moz-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-moz-transform:scaleX(.8);transform:scaleX(.8);-moz-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antSlideLeftOut{0%{-webkit-transform:scaleX(1);-moz-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;-moz-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleX(.8);-moz-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:0 0;-moz-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antSlideRightIn{0%{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:0}to{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:1}}@-moz-keyframes antSlideRightIn{0%{-moz-transform:scaleX(.8);transform:scaleX(.8);-moz-transform-origin:100% 0;transform-origin:100% 0;opacity:0}to{-moz-transform:scaleX(1);transform:scaleX(1);-moz-transform-origin:100% 0;transform-origin:100% 0;opacity:1}}@keyframes antSlideRightIn{0%{-webkit-transform:scaleX(.8);-moz-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:100% 0;-moz-transform-origin:100% 0;transform-origin:100% 0;opacity:0}to{-webkit-transform:scaleX(1);-moz-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:100% 0;-moz-transform-origin:100% 0;transform-origin:100% 0;opacity:1}}@-webkit-keyframes antSlideRightOut{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:1}to{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:0}}@-moz-keyframes antSlideRightOut{0%{-moz-transform:scaleX(1);transform:scaleX(1);-moz-transform-origin:100% 0;transform-origin:100% 0;opacity:1}to{-moz-transform:scaleX(.8);transform:scaleX(.8);-moz-transform-origin:100% 0;transform-origin:100% 0;opacity:0}}@keyframes antSlideRightOut{0%{-webkit-transform:scaleX(1);-moz-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:100% 0;-moz-transform-origin:100% 0;transform-origin:100% 0;opacity:1}to{-webkit-transform:scaleX(.8);-moz-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:100% 0;-moz-transform-origin:100% 0;transform-origin:100% 0;opacity:0}}.ant-zoom-appear,.ant-zoom-enter,.ant-zoom-leave{-webkit-animation-duration:.2s;-moz-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;-moz-animation-play-state:paused;animation-play-state:paused}.ant-zoom-appear.ant-zoom-appear-active,.ant-zoom-enter.ant-zoom-enter-active{-webkit-animation-name:antZoomIn;-moz-animation-name:antZoomIn;animation-name:antZoomIn;-webkit-animation-play-state:running;-moz-animation-play-state:running;animation-play-state:running}.ant-zoom-leave.ant-zoom-leave-active{-webkit-animation-name:antZoomOut;-moz-animation-name:antZoomOut;animation-name:antZoomOut;-webkit-animation-play-state:running;-moz-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-zoom-appear,.ant-zoom-enter{-webkit-transform:scale(0);-moz-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);-moz-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-zoom-appear-prepare,.ant-zoom-enter-prepare{-webkit-transform:none;-moz-transform:none;transform:none}.ant-zoom-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);-moz-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-big-appear,.ant-zoom-big-enter,.ant-zoom-big-leave{-webkit-animation-duration:.2s;-moz-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;-moz-animation-play-state:paused;animation-play-state:paused}.ant-zoom-big-appear.ant-zoom-big-appear-active,.ant-zoom-big-enter.ant-zoom-big-enter-active{-webkit-animation-name:antZoomBigIn;-moz-animation-name:antZoomBigIn;animation-name:antZoomBigIn;-webkit-animation-play-state:running;-moz-animation-play-state:running;animation-play-state:running}.ant-zoom-big-leave.ant-zoom-big-leave-active{-webkit-animation-name:antZoomBigOut;-moz-animation-name:antZoomBigOut;animation-name:antZoomBigOut;-webkit-animation-play-state:running;-moz-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-zoom-big-appear,.ant-zoom-big-enter{-webkit-transform:scale(0);-moz-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);-moz-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-zoom-big-appear-prepare,.ant-zoom-big-enter-prepare{-webkit-transform:none;-moz-transform:none;transform:none}.ant-zoom-big-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);-moz-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-big-fast-appear,.ant-zoom-big-fast-enter,.ant-zoom-big-fast-leave{-webkit-animation-duration:.1s;-moz-animation-duration:.1s;animation-duration:.1s;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;-moz-animation-play-state:paused;animation-play-state:paused}.ant-zoom-big-fast-appear.ant-zoom-big-fast-appear-active,.ant-zoom-big-fast-enter.ant-zoom-big-fast-enter-active{-webkit-animation-name:antZoomBigIn;-moz-animation-name:antZoomBigIn;animation-name:antZoomBigIn;-webkit-animation-play-state:running;-moz-animation-play-state:running;animation-play-state:running}.ant-zoom-big-fast-leave.ant-zoom-big-fast-leave-active{-webkit-animation-name:antZoomBigOut;-moz-animation-name:antZoomBigOut;animation-name:antZoomBigOut;-webkit-animation-play-state:running;-moz-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-zoom-big-fast-appear,.ant-zoom-big-fast-enter{-webkit-transform:scale(0);-moz-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);-moz-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-zoom-big-fast-appear-prepare,.ant-zoom-big-fast-enter-prepare{-webkit-transform:none;-moz-transform:none;transform:none}.ant-zoom-big-fast-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);-moz-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-up-appear,.ant-zoom-up-enter,.ant-zoom-up-leave{-webkit-animation-duration:.2s;-moz-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;-moz-animation-play-state:paused;animation-play-state:paused}.ant-zoom-up-appear.ant-zoom-up-appear-active,.ant-zoom-up-enter.ant-zoom-up-enter-active{-webkit-animation-name:antZoomUpIn;-moz-animation-name:antZoomUpIn;animation-name:antZoomUpIn;-webkit-animation-play-state:running;-moz-animation-play-state:running;animation-play-state:running}.ant-zoom-up-leave.ant-zoom-up-leave-active{-webkit-animation-name:antZoomUpOut;-moz-animation-name:antZoomUpOut;animation-name:antZoomUpOut;-webkit-animation-play-state:running;-moz-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-zoom-up-appear,.ant-zoom-up-enter{-webkit-transform:scale(0);-moz-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);-moz-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-zoom-up-appear-prepare,.ant-zoom-up-enter-prepare{-webkit-transform:none;-moz-transform:none;transform:none}.ant-zoom-up-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);-moz-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-down-appear,.ant-zoom-down-enter,.ant-zoom-down-leave{-webkit-animation-duration:.2s;-moz-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;-moz-animation-play-state:paused;animation-play-state:paused}.ant-zoom-down-appear.ant-zoom-down-appear-active,.ant-zoom-down-enter.ant-zoom-down-enter-active{-webkit-animation-name:antZoomDownIn;-moz-animation-name:antZoomDownIn;animation-name:antZoomDownIn;-webkit-animation-play-state:running;-moz-animation-play-state:running;animation-play-state:running}.ant-zoom-down-leave.ant-zoom-down-leave-active{-webkit-animation-name:antZoomDownOut;-moz-animation-name:antZoomDownOut;animation-name:antZoomDownOut;-webkit-animation-play-state:running;-moz-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-zoom-down-appear,.ant-zoom-down-enter{-webkit-transform:scale(0);-moz-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);-moz-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-zoom-down-appear-prepare,.ant-zoom-down-enter-prepare{-webkit-transform:none;-moz-transform:none;transform:none}.ant-zoom-down-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);-moz-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-left-appear,.ant-zoom-left-enter,.ant-zoom-left-leave{-webkit-animation-duration:.2s;-moz-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;-moz-animation-play-state:paused;animation-play-state:paused}.ant-zoom-left-appear.ant-zoom-left-appear-active,.ant-zoom-left-enter.ant-zoom-left-enter-active{-webkit-animation-name:antZoomLeftIn;-moz-animation-name:antZoomLeftIn;animation-name:antZoomLeftIn;-webkit-animation-play-state:running;-moz-animation-play-state:running;animation-play-state:running}.ant-zoom-left-leave.ant-zoom-left-leave-active{-webkit-animation-name:antZoomLeftOut;-moz-animation-name:antZoomLeftOut;animation-name:antZoomLeftOut;-webkit-animation-play-state:running;-moz-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-zoom-left-appear,.ant-zoom-left-enter{-webkit-transform:scale(0);-moz-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);-moz-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-zoom-left-appear-prepare,.ant-zoom-left-enter-prepare{-webkit-transform:none;-moz-transform:none;transform:none}.ant-zoom-left-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);-moz-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-right-appear,.ant-zoom-right-enter,.ant-zoom-right-leave{-webkit-animation-duration:.2s;-moz-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;-moz-animation-play-state:paused;animation-play-state:paused}.ant-zoom-right-appear.ant-zoom-right-appear-active,.ant-zoom-right-enter.ant-zoom-right-enter-active{-webkit-animation-name:antZoomRightIn;-moz-animation-name:antZoomRightIn;animation-name:antZoomRightIn;-webkit-animation-play-state:running;-moz-animation-play-state:running;animation-play-state:running}.ant-zoom-right-leave.ant-zoom-right-leave-active{-webkit-animation-name:antZoomRightOut;-moz-animation-name:antZoomRightOut;animation-name:antZoomRightOut;-webkit-animation-play-state:running;-moz-animation-play-state:running;animation-play-state:running;pointer-events:none}.ant-zoom-right-appear,.ant-zoom-right-enter{-webkit-transform:scale(0);-moz-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);-moz-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-zoom-right-appear-prepare,.ant-zoom-right-enter-prepare{-webkit-transform:none;-moz-transform:none;transform:none}.ant-zoom-right-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);-moz-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}@-webkit-keyframes antZoomIn{0%{-webkit-transform:scale(.2);transform:scale(.2);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-moz-keyframes antZoomIn{0%{-moz-transform:scale(.2);transform:scale(.2);opacity:0}to{-moz-transform:scale(1);transform:scale(1);opacity:1}}@keyframes antZoomIn{0%{-webkit-transform:scale(.2);-moz-transform:scale(.2);transform:scale(.2);opacity:0}to{-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes antZoomOut{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.2);transform:scale(.2);opacity:0}}@-moz-keyframes antZoomOut{0%{-moz-transform:scale(1);transform:scale(1)}to{-moz-transform:scale(.2);transform:scale(.2);opacity:0}}@keyframes antZoomOut{0%{-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.2);-moz-transform:scale(.2);transform:scale(.2);opacity:0}}@-webkit-keyframes antZoomBigIn{0%{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-moz-keyframes antZoomBigIn{0%{-moz-transform:scale(.8);transform:scale(.8);opacity:0}to{-moz-transform:scale(1);transform:scale(1);opacity:1}}@keyframes antZoomBigIn{0%{-webkit-transform:scale(.8);-moz-transform:scale(.8);transform:scale(.8);opacity:0}to{-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes antZoomBigOut{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}}@-moz-keyframes antZoomBigOut{0%{-moz-transform:scale(1);transform:scale(1)}to{-moz-transform:scale(.8);transform:scale(.8);opacity:0}}@keyframes antZoomBigOut{0%{-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.8);-moz-transform:scale(.8);transform:scale(.8);opacity:0}}@-webkit-keyframes antZoomUpIn{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 0;transform-origin:50% 0;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;transform-origin:50% 0}}@-moz-keyframes antZoomUpIn{0%{-moz-transform:scale(.8);transform:scale(.8);-moz-transform-origin:50% 0;transform-origin:50% 0;opacity:0}to{-moz-transform:scale(1);transform:scale(1);-moz-transform-origin:50% 0;transform-origin:50% 0}}@keyframes antZoomUpIn{0%{-webkit-transform:scale(.8);-moz-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 0;-moz-transform-origin:50% 0;transform-origin:50% 0;opacity:0}to{-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;-moz-transform-origin:50% 0;transform-origin:50% 0}}@-webkit-keyframes antZoomUpOut{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;transform-origin:50% 0}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 0;transform-origin:50% 0;opacity:0}}@-moz-keyframes antZoomUpOut{0%{-moz-transform:scale(1);transform:scale(1);-moz-transform-origin:50% 0;transform-origin:50% 0}to{-moz-transform:scale(.8);transform:scale(.8);-moz-transform-origin:50% 0;transform-origin:50% 0;opacity:0}}@keyframes antZoomUpOut{0%{-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;-moz-transform-origin:50% 0;transform-origin:50% 0}to{-webkit-transform:scale(.8);-moz-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 0;-moz-transform-origin:50% 0;transform-origin:50% 0;opacity:0}}@-webkit-keyframes antZoomLeftIn{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 50%;transform-origin:0 50%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:0 50%;transform-origin:0 50%}}@-moz-keyframes antZoomLeftIn{0%{-moz-transform:scale(.8);transform:scale(.8);-moz-transform-origin:0 50%;transform-origin:0 50%;opacity:0}to{-moz-transform:scale(1);transform:scale(1);-moz-transform-origin:0 50%;transform-origin:0 50%}}@keyframes antZoomLeftIn{0%{-webkit-transform:scale(.8);-moz-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 50%;-moz-transform-origin:0 50%;transform-origin:0 50%;opacity:0}to{-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1);-webkit-transform-origin:0 50%;-moz-transform-origin:0 50%;transform-origin:0 50%}}@-webkit-keyframes antZoomLeftOut{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:0 50%;transform-origin:0 50%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 50%;transform-origin:0 50%;opacity:0}}@-moz-keyframes antZoomLeftOut{0%{-moz-transform:scale(1);transform:scale(1);-moz-transform-origin:0 50%;transform-origin:0 50%}to{-moz-transform:scale(.8);transform:scale(.8);-moz-transform-origin:0 50%;transform-origin:0 50%;opacity:0}}@keyframes antZoomLeftOut{0%{-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1);-webkit-transform-origin:0 50%;-moz-transform-origin:0 50%;transform-origin:0 50%}to{-webkit-transform:scale(.8);-moz-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 50%;-moz-transform-origin:0 50%;transform-origin:0 50%;opacity:0}}@-webkit-keyframes antZoomRightIn{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:100% 50%;transform-origin:100% 50%}}@-moz-keyframes antZoomRightIn{0%{-moz-transform:scale(.8);transform:scale(.8);-moz-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}to{-moz-transform:scale(1);transform:scale(1);-moz-transform-origin:100% 50%;transform-origin:100% 50%}}@keyframes antZoomRightIn{0%{-webkit-transform:scale(.8);-moz-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:100% 50%;-moz-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}to{-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1);-webkit-transform-origin:100% 50%;-moz-transform-origin:100% 50%;transform-origin:100% 50%}}@-webkit-keyframes antZoomRightOut{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:100% 50%;transform-origin:100% 50%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}}@-moz-keyframes antZoomRightOut{0%{-moz-transform:scale(1);transform:scale(1);-moz-transform-origin:100% 50%;transform-origin:100% 50%}to{-moz-transform:scale(.8);transform:scale(.8);-moz-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}}@keyframes antZoomRightOut{0%{-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1);-webkit-transform-origin:100% 50%;-moz-transform-origin:100% 50%;transform-origin:100% 50%}to{-webkit-transform:scale(.8);-moz-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:100% 50%;-moz-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}}@-webkit-keyframes antZoomDownIn{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 100%;transform-origin:50% 100%}}@-moz-keyframes antZoomDownIn{0%{-moz-transform:scale(.8);transform:scale(.8);-moz-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}to{-moz-transform:scale(1);transform:scale(1);-moz-transform-origin:50% 100%;transform-origin:50% 100%}}@keyframes antZoomDownIn{0%{-webkit-transform:scale(.8);-moz-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 100%;-moz-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}to{-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 100%;-moz-transform-origin:50% 100%;transform-origin:50% 100%}}@-webkit-keyframes antZoomDownOut{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 100%;transform-origin:50% 100%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}}@-moz-keyframes antZoomDownOut{0%{-moz-transform:scale(1);transform:scale(1);-moz-transform-origin:50% 100%;transform-origin:50% 100%}to{-moz-transform:scale(.8);transform:scale(.8);-moz-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}}@keyframes antZoomDownOut{0%{-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 100%;-moz-transform-origin:50% 100%;transform-origin:50% 100%}to{-webkit-transform:scale(.8);-moz-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 100%;-moz-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}}.ant-motion-collapse-legacy{overflow:hidden}.ant-motion-collapse,.ant-motion-collapse-legacy-active{-webkit-transition:height .2s cubic-bezier(.645,.045,.355,1),opacity .2s cubic-bezier(.645,.045,.355,1)!important;-moz-transition:height .2s cubic-bezier(.645,.045,.355,1),opacity .2s cubic-bezier(.645,.045,.355,1)!important;transition:height .2s cubic-bezier(.645,.045,.355,1),opacity .2s cubic-bezier(.645,.045,.355,1)!important}.ant-motion-collapse{overflow:hidden}.ant-affix{position:fixed;z-index:10}.ant-alert{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";position:relative;display:-moz-box;display:flex;-moz-box-align:center;align-items:center;padding:8px 15px;word-wrap:break-word;border-radius:2px}.ant-alert-content{-moz-box-flex:1;flex:1 1;min-width:0}.ant-alert-icon{margin-right:8px}.ant-alert-description{display:none;font-size:14px;line-height:22px}.ant-alert-success{background-color:#f6ffed;border:1px solid #b7eb8f}.ant-alert-success .ant-alert-icon{color:#52c41a}.ant-alert-info{background-color:#e6f7ff;border:1px solid #91d5ff}.ant-alert-info .ant-alert-icon{color:#1890ff}.ant-alert-warning{background-color:#fffbe6;border:1px solid #ffe58f}.ant-alert-warning .ant-alert-icon{color:#faad14}.ant-alert-error{background-color:#fff2f0;border:1px solid #ffccc7}.ant-alert-error .ant-alert-icon{color:#ff4d4f}.ant-alert-error .ant-alert-description>pre{margin:0;padding:0}.ant-alert-action{margin-left:8px}.ant-alert-close-icon{margin-left:8px;padding:0;overflow:hidden;font-size:12px;line-height:12px;background-color:transparent;border:none;outline:none;cursor:pointer}.ant-alert-close-icon .anticon-close{color:rgba(0,0,0,.45);-webkit-transition:color .3s;-moz-transition:color .3s;transition:color .3s}.ant-alert-close-icon .anticon-close:hover{color:rgba(0,0,0,.75)}.ant-alert-close-text{color:rgba(0,0,0,.45);-webkit-transition:color .3s;-moz-transition:color .3s;transition:color .3s}.ant-alert-close-text:hover{color:rgba(0,0,0,.75)}.ant-alert-with-description{-moz-box-align:start;align-items:flex-start;padding:15px 15px 15px 24px}.ant-alert-with-description.ant-alert-no-icon{padding:15px}.ant-alert-with-description .ant-alert-icon{margin-right:15px;font-size:24px}.ant-alert-with-description .ant-alert-message{display:block;margin-bottom:4px;color:rgba(0,0,0,.85);font-size:16px}.ant-alert-message{color:rgba(0,0,0,.85)}.ant-alert-with-description .ant-alert-description{display:block}.ant-alert.ant-alert-motion-leave{overflow:hidden;opacity:1;-webkit-transition:max-height .3s cubic-bezier(.78,.14,.15,.86),opacity .3s cubic-bezier(.78,.14,.15,.86),padding-top .3s cubic-bezier(.78,.14,.15,.86),padding-bottom .3s cubic-bezier(.78,.14,.15,.86),margin-bottom .3s cubic-bezier(.78,.14,.15,.86);-moz-transition:max-height .3s cubic-bezier(.78,.14,.15,.86),opacity .3s cubic-bezier(.78,.14,.15,.86),padding-top .3s cubic-bezier(.78,.14,.15,.86),padding-bottom .3s cubic-bezier(.78,.14,.15,.86),margin-bottom .3s cubic-bezier(.78,.14,.15,.86);transition:max-height .3s cubic-bezier(.78,.14,.15,.86),opacity .3s cubic-bezier(.78,.14,.15,.86),padding-top .3s cubic-bezier(.78,.14,.15,.86),padding-bottom .3s cubic-bezier(.78,.14,.15,.86),margin-bottom .3s cubic-bezier(.78,.14,.15,.86)}.ant-alert.ant-alert-motion-leave-active{max-height:0;margin-bottom:0!important;padding-top:0;padding-bottom:0;opacity:0}.ant-alert-banner{margin-bottom:0;border:0;border-radius:0}.ant-alert.ant-alert-rtl{direction:rtl}.ant-alert-rtl .ant-alert-icon{margin-right:auto;margin-left:8px}.ant-alert-rtl .ant-alert-action,.ant-alert-rtl .ant-alert-close-icon{margin-right:8px;margin-left:auto}.ant-alert-rtl.ant-alert-with-description{padding-right:24px;padding-left:15px}.ant-alert-rtl.ant-alert-with-description .ant-alert-icon{margin-right:auto;margin-left:15px}.ant-anchor{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";position:relative;padding:0 0 0 2px}.ant-anchor-wrapper{margin-left:-4px;padding-left:4px;overflow:auto;background-color:transparent}.ant-anchor-ink{position:absolute;top:0;left:0;height:100%}.ant-anchor-ink:before{position:relative;display:block;width:2px;height:100%;margin:0 auto;background-color:#f0f0f0;content:" "}.ant-anchor-ink-ball{position:absolute;left:50%;display:none;width:8px;height:8px;background-color:#fff;border:2px solid #1890ff;border-radius:8px;-webkit-transform:translateX(-50%);-moz-transform:translateX(-50%);transform:translateX(-50%);-webkit-transition:top .3s ease-in-out;-moz-transition:top .3s ease-in-out;transition:top .3s ease-in-out}.ant-anchor-ink-ball.visible{display:inline-block}.ant-anchor-fixed .ant-anchor-ink .ant-anchor-ink-ball{display:none}.ant-anchor-link{padding:7px 0 7px 16px;line-height:1.143}.ant-anchor-link-title{position:relative;display:block;margin-bottom:6px;overflow:hidden;color:rgba(0,0,0,.85);white-space:nowrap;text-overflow:ellipsis;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s}.ant-anchor-link-title:only-child{margin-bottom:0}.ant-anchor-link-active>.ant-anchor-link-title{color:#1890ff}.ant-anchor-link .ant-anchor-link{padding-top:5px;padding-bottom:5px}.ant-anchor-rtl{direction:rtl}.ant-anchor-rtl.ant-anchor-wrapper{margin-right:-4px;margin-left:0;padding-right:4px;padding-left:0}.ant-anchor-rtl .ant-anchor-ink{right:0;left:auto}.ant-anchor-rtl .ant-anchor-ink-ball{right:50%;left:0;-webkit-transform:translateX(50%);-moz-transform:translateX(50%);transform:translateX(50%)}.ant-anchor-rtl .ant-anchor-link{padding:7px 16px 7px 0}.ant-select-auto-complete{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum"}.ant-select-auto-complete .ant-select-clear{right:13px}.ant-select-single .ant-select-selector{display:-moz-box;display:flex}.ant-select-single .ant-select-selector .ant-select-selection-search{position:absolute;top:0;right:11px;bottom:0;left:11px}.ant-select-single .ant-select-selector .ant-select-selection-search-input{width:100%}.ant-select-single .ant-select-selector .ant-select-selection-item,.ant-select-single .ant-select-selector .ant-select-selection-placeholder{padding:0;line-height:30px;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s}@supports (-moz-appearance:meterbar){.ant-select-single .ant-select-selector .ant-select-selection-item,.ant-select-single .ant-select-selector .ant-select-selection-placeholder{line-height:30px}}.ant-select-single .ant-select-selector .ant-select-selection-item{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-select-single .ant-select-selector .ant-select-selection-placeholder{-webkit-transition:none;-moz-transition:none;transition:none;pointer-events:none}.ant-select-single .ant-select-selector .ant-select-selection-item:after,.ant-select-single .ant-select-selector .ant-select-selection-placeholder:after,.ant-select-single .ant-select-selector:after{display:inline-block;width:0;visibility:hidden;content:"\a0"}.ant-select-single.ant-select-show-arrow .ant-select-selection-search{right:25px}.ant-select-single.ant-select-show-arrow .ant-select-selection-item,.ant-select-single.ant-select-show-arrow .ant-select-selection-placeholder{padding-right:18px}.ant-select-single.ant-select-open .ant-select-selection-item{color:#bfbfbf}.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{width:100%;height:32px;padding:0 11px}.ant-select-single:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input{height:30px}.ant-select-single:not(.ant-select-customize-input) .ant-select-selector:after{line-height:30px}.ant-select-single.ant-select-customize-input .ant-select-selector:after{display:none}.ant-select-single.ant-select-customize-input .ant-select-selector .ant-select-selection-search{position:static;width:100%}.ant-select-single.ant-select-customize-input .ant-select-selector .ant-select-selection-placeholder{position:absolute;right:0;left:0;padding:0 11px}.ant-select-single.ant-select-customize-input .ant-select-selector .ant-select-selection-placeholder:after{display:none}.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector{height:40px}.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-item,.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-placeholder,.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector:after{line-height:38px}.ant-select-single.ant-select-lg:not(.ant-select-customize-input):not(.ant-select-customize-input) .ant-select-selection-search-input{height:38px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector{height:24px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-item,.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-placeholder,.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector:after{line-height:22px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input):not(.ant-select-customize-input) .ant-select-selection-search-input{height:22px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selection-search{right:7px;left:7px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector{padding:0 7px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-search{right:28px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-item,.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-placeholder{padding-right:21px}.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector{padding:0 11px}.ant-select-selection-overflow{position:relative;display:-moz-box;display:flex;-moz-box-flex:1;flex:auto;flex-wrap:wrap;max-width:100%}.ant-select-selection-overflow-item{-moz-box-flex:0;flex:none;align-self:center;max-width:100%}.ant-select-multiple .ant-select-selector{display:-moz-box;display:flex;flex-wrap:wrap;-moz-box-align:center;align-items:center;padding:1px 4px}.ant-select-show-search.ant-select-multiple .ant-select-selector{cursor:text}.ant-select-disabled.ant-select-multiple .ant-select-selector{background:#f5f5f5;cursor:not-allowed}.ant-select-multiple .ant-select-selector:after{display:inline-block;width:0;margin:2px 0;line-height:24px;content:"\a0"}.ant-select-multiple.ant-select-allow-clear .ant-select-selector,.ant-select-multiple.ant-select-show-arrow .ant-select-selector{padding-right:24px}.ant-select-multiple .ant-select-selection-item{position:relative;display:-moz-box;display:flex;-moz-box-flex:0;flex:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;max-width:100%;height:24px;margin-top:2px;margin-bottom:2px;line-height:22px;background:#f5f5f5;border:1px solid #f0f0f0;border-radius:2px;cursor:default;-webkit-transition:font-size .3s,line-height .3s,height .3s;-moz-transition:font-size .3s,line-height .3s,height .3s;transition:font-size .3s,line-height .3s,height .3s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-margin-end:4px;-moz-margin-end:4px;margin-inline-end:4px;-webkit-padding-start:8px;-moz-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:4px;-moz-padding-end:4px;padding-inline-end:4px}.ant-select-disabled.ant-select-multiple .ant-select-selection-item{color:#bfbfbf;border-color:#d9d9d9;cursor:not-allowed}.ant-select-multiple .ant-select-selection-item-content{display:inline-block;margin-right:4px;overflow:hidden;white-space:pre;text-overflow:ellipsis}.ant-select-multiple .ant-select-selection-item-remove{color:inherit;font-style:normal;line-height:0;text-align:center;text-transform:none;vertical-align:-.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;color:rgba(0,0,0,.45);font-weight:700;font-size:10px;line-height:inherit;cursor:pointer}.ant-select-multiple .ant-select-selection-item-remove>*{line-height:1}.ant-select-multiple .ant-select-selection-item-remove svg{display:inline-block}.ant-select-multiple .ant-select-selection-item-remove:before{display:none}.ant-select-multiple .ant-select-selection-item-remove .ant-select-multiple .ant-select-selection-item-remove-icon{display:block}.ant-select-multiple .ant-select-selection-item-remove>.anticon{vertical-align:-.2em}.ant-select-multiple .ant-select-selection-item-remove:hover{color:rgba(0,0,0,.75)}.ant-select-multiple .ant-select-selection-overflow-item+.ant-select-selection-overflow-item .ant-select-selection-search{-webkit-margin-start:0;-moz-margin-start:0;margin-inline-start:0}.ant-select-multiple .ant-select-selection-search{position:relative;max-width:100%;-webkit-margin-start:7px;-moz-margin-start:7px;margin-inline-start:7px}.ant-select-multiple .ant-select-selection-search-input,.ant-select-multiple .ant-select-selection-search-mirror{height:24px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:24px;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s}.ant-select-multiple .ant-select-selection-search-input{width:100%;min-width:4.1px}.ant-select-multiple .ant-select-selection-search-mirror{position:absolute;top:0;left:0;z-index:999;white-space:pre;visibility:hidden}.ant-select-multiple .ant-select-selection-placeholder{position:absolute;top:50%;right:11px;left:11px;-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);transform:translateY(-50%);-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s}.ant-select-multiple.ant-select-lg .ant-select-selector:after{line-height:32px}.ant-select-multiple.ant-select-lg .ant-select-selection-item{line-height:30px}.ant-select-multiple.ant-select-lg .ant-select-selection-search{height:32px;line-height:32px}.ant-select-multiple.ant-select-lg .ant-select-selection-search-input,.ant-select-multiple.ant-select-lg .ant-select-selection-search-mirror{height:32px;line-height:30px}.ant-select-multiple.ant-select-sm .ant-select-selector:after{line-height:16px}.ant-select-multiple.ant-select-sm .ant-select-selection-item{height:16px;line-height:14px}.ant-select-multiple.ant-select-sm .ant-select-selection-search{height:16px;line-height:16px}.ant-select-multiple.ant-select-sm .ant-select-selection-search-input,.ant-select-multiple.ant-select-sm .ant-select-selection-search-mirror{height:16px;line-height:14px}.ant-select-multiple.ant-select-sm .ant-select-selection-placeholder{left:7px}.ant-select-multiple.ant-select-sm .ant-select-selection-search{-webkit-margin-start:3px;-moz-margin-start:3px;margin-inline-start:3px}.ant-select-multiple.ant-select-lg .ant-select-selection-item{height:32px;line-height:32px}.ant-select-disabled .ant-select-selection-item-remove{display:none}.ant-select{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";position:relative;display:inline-block;cursor:pointer}.ant-select:not(.ant-select-customize-input) .ant-select-selector{position:relative;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);-moz-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1)}.ant-select:not(.ant-select-customize-input) .ant-select-selector input{cursor:pointer}.ant-select-show-search.ant-select:not(.ant-select-customize-input) .ant-select-selector{cursor:text}.ant-select-show-search.ant-select:not(.ant-select-customize-input) .ant-select-selector input{cursor:auto}.ant-select-focused:not(.ant-select-disabled).ant-select:not(.ant-select-customize-input) .ant-select-selector{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2);border-right-width:1px!important;outline:0}.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector{color:rgba(0,0,0,.25);background:#f5f5f5;cursor:not-allowed}.ant-select-multiple.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector{background:#f5f5f5}.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector input{cursor:not-allowed}.ant-select:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input{margin:0;padding:0;background:transparent;border:none;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.ant-select:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input::-webkit-search-cancel-button{display:none;-webkit-appearance:none}.ant-select:not(.ant-select-disabled):hover .ant-select-selector{border-color:#40a9ff;border-right-width:1px!important}.ant-select-selection-item{-moz-box-flex:1;flex:1 1;overflow:hidden;font-weight:400;white-space:nowrap;text-overflow:ellipsis}@media (-ms-high-contrast:none){.ant-select-selection-item,.ant-select-selection-item ::-ms-backdrop{flex:auto}}.ant-select-selection-placeholder{-moz-box-flex:1;flex:1 1;overflow:hidden;color:#bfbfbf;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}@media (-ms-high-contrast:none){.ant-select-selection-placeholder,.ant-select-selection-placeholder ::-ms-backdrop{flex:auto}}.ant-select-arrow{display:inline-block;color:inherit;font-style:normal;line-height:0;text-transform:none;vertical-align:-.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;top:50%;right:11px;width:12px;height:12px;margin-top:-6px;color:rgba(0,0,0,.25);font-size:12px;line-height:1;text-align:center;pointer-events:none}.ant-select-arrow>*{line-height:1}.ant-select-arrow svg{display:inline-block}.ant-select-arrow:before{display:none}.ant-select-arrow .ant-select-arrow-icon{display:block}.ant-select-arrow .anticon{vertical-align:top;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;-moz-transition:transform .3s,-moz-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s,-moz-transform .3s}.ant-select-arrow .anticon>svg{vertical-align:top}.ant-select-arrow .anticon:not(.ant-select-suffix){pointer-events:auto}.ant-select-disabled .ant-select-arrow{cursor:not-allowed}.ant-select-clear{position:absolute;top:50%;right:11px;z-index:1;display:inline-block;width:12px;height:12px;margin-top:-6px;color:rgba(0,0,0,.25);font-size:12px;font-style:normal;line-height:1;text-align:center;text-transform:none;background:#fff;cursor:pointer;opacity:0;-webkit-transition:color .3s ease,opacity .15s ease;-moz-transition:color .3s ease,opacity .15s ease;transition:color .3s ease,opacity .15s ease;text-rendering:auto}.ant-select-clear:before{display:block}.ant-select-clear:hover{color:rgba(0,0,0,.45)}.ant-select:hover .ant-select-clear{opacity:1}.ant-select-dropdown{margin:0;color:rgba(0,0,0,.85);font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum",;-moz-font-feature-settings:"tnum","tnum",;font-feature-settings:"tnum","tnum",;position:absolute;top:-9999px;left:-9999px;z-index:1050;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:4px 0;overflow:hidden;font-size:14px;font-variant:normal;background-color:#fff;border-radius:2px;outline:none;-webkit-box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05)}.ant-select-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-select-dropdown-placement-bottomLeft,.ant-select-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-select-dropdown-placement-bottomLeft{-webkit-animation-name:antSlideUpIn;-moz-animation-name:antSlideUpIn;animation-name:antSlideUpIn}.ant-select-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-select-dropdown-placement-topLeft,.ant-select-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-select-dropdown-placement-topLeft{-webkit-animation-name:antSlideDownIn;-moz-animation-name:antSlideDownIn;animation-name:antSlideDownIn}.ant-select-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-select-dropdown-placement-bottomLeft{-webkit-animation-name:antSlideUpOut;-moz-animation-name:antSlideUpOut;animation-name:antSlideUpOut}.ant-select-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-select-dropdown-placement-topLeft{-webkit-animation-name:antSlideDownOut;-moz-animation-name:antSlideDownOut;animation-name:antSlideDownOut}.ant-select-dropdown-hidden{display:none}.ant-select-dropdown-empty{color:rgba(0,0,0,.25)}.ant-select-item-empty{color:rgba(0,0,0,.85);color:rgba(0,0,0,.25)}.ant-select-item,.ant-select-item-empty{position:relative;display:block;min-height:32px;padding:5px 12px;font-weight:400;font-size:14px;line-height:22px}.ant-select-item{color:rgba(0,0,0,.85);cursor:pointer;-webkit-transition:background .3s ease;-moz-transition:background .3s ease;transition:background .3s ease}.ant-select-item-group{color:rgba(0,0,0,.45);font-size:12px;cursor:default}.ant-select-item-option{display:-moz-box;display:flex}.ant-select-item-option-content{-moz-box-flex:1;flex:auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ant-select-item-option-state{-moz-box-flex:0;flex:none}.ant-select-item-option-active:not(.ant-select-item-option-disabled){background-color:#f5f5f5}.ant-select-item-option-selected:not(.ant-select-item-option-disabled){color:rgba(0,0,0,.85);font-weight:600;background-color:#e6f7ff}.ant-select-item-option-selected:not(.ant-select-item-option-disabled) .ant-select-item-option-state{color:#1890ff}.ant-select-item-option-disabled{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-select-item-option-disabled.ant-select-item-option-selected{background-color:#f5f5f5}.ant-select-item-option-grouped{padding-left:24px}.ant-select-lg{font-size:16px}.ant-select-borderless .ant-select-selector{background-color:transparent!important;border-color:transparent!important;-webkit-box-shadow:none!important;box-shadow:none!important}.ant-select-rtl{direction:rtl}.ant-select-rtl .ant-select-arrow,.ant-select-rtl .ant-select-clear{right:auto;left:11px}.ant-select-dropdown-rtl{direction:rtl}.ant-select-dropdown-rtl .ant-select-item-option-grouped{padding-right:24px;padding-left:12px}.ant-select-rtl.ant-select-multiple.ant-select-allow-clear .ant-select-selector,.ant-select-rtl.ant-select-multiple.ant-select-show-arrow .ant-select-selector{padding-right:4px;padding-left:24px}.ant-select-rtl.ant-select-multiple .ant-select-selection-item{text-align:right}.ant-select-rtl.ant-select-multiple .ant-select-selection-item-content{margin-right:0;margin-left:4px;text-align:right}.ant-select-rtl.ant-select-multiple .ant-select-selection-search-mirror{right:0;left:auto}.ant-select-rtl.ant-select-multiple .ant-select-selection-placeholder{right:11px;left:auto}.ant-select-rtl.ant-select-multiple.ant-select-sm .ant-select-selection-placeholder{right:7px}.ant-select-rtl.ant-select-single .ant-select-selector .ant-select-selection-item,.ant-select-rtl.ant-select-single .ant-select-selector .ant-select-selection-placeholder{right:0;left:9px;text-align:right}.ant-select-rtl.ant-select-single.ant-select-show-arrow .ant-select-selection-search{right:11px;left:25px}.ant-select-rtl.ant-select-single.ant-select-show-arrow .ant-select-selection-item,.ant-select-rtl.ant-select-single.ant-select-show-arrow .ant-select-selection-placeholder{padding-right:0;padding-left:18px}.ant-select-rtl.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-search{right:6px}.ant-select-rtl.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-item,.ant-select-rtl.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-placeholder{padding-right:0;padding-left:21px}.ant-empty{margin:0 8px;font-size:14px;line-height:1.5715;text-align:center}.ant-empty-image{height:100px;margin-bottom:8px}.ant-empty-image img{height:100%}.ant-empty-image svg{height:100%;margin:auto}.ant-empty-footer{margin-top:16px}.ant-empty-normal{margin:32px 0;color:rgba(0,0,0,.25)}.ant-empty-normal .ant-empty-image{height:40px}.ant-empty-small{margin:8px 0;color:rgba(0,0,0,.25)}.ant-empty-small .ant-empty-image{height:35px}.ant-empty-img-default-ellipse{fill:#f5f5f5;fill-opacity:.8}.ant-empty-img-default-path-1{fill:#aeb8c2}.ant-empty-img-default-path-2{fill:url(#linearGradient-1)}.ant-empty-img-default-path-3{fill:#f5f5f7}.ant-empty-img-default-path-4,.ant-empty-img-default-path-5{fill:#dce0e6}.ant-empty-img-default-g{fill:#fff}.ant-empty-img-simple-ellipse{fill:#f5f5f5}.ant-empty-img-simple-g{stroke:#d9d9d9}.ant-empty-img-simple-path{fill:#fafafa}.ant-empty-rtl{direction:rtl}.ant-avatar{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";position:relative;display:inline-block;overflow:hidden;color:#fff;white-space:nowrap;text-align:center;vertical-align:middle;background:#ccc;width:32px;height:32px;line-height:32px;border-radius:50%}.ant-avatar-image{background:transparent}.ant-avatar .ant-image-img{display:block}.ant-avatar-string{position:absolute;left:50%;-webkit-transform-origin:0 center;-moz-transform-origin:0 center;transform-origin:0 center}.ant-avatar.ant-avatar-icon{font-size:18px}.ant-avatar.ant-avatar-icon>.anticon{margin:0}.ant-avatar-lg{width:40px;height:40px;line-height:40px;border-radius:50%}.ant-avatar-lg-string{position:absolute;left:50%;-webkit-transform-origin:0 center;-moz-transform-origin:0 center;transform-origin:0 center}.ant-avatar-lg.ant-avatar-icon{font-size:24px}.ant-avatar-lg.ant-avatar-icon>.anticon{margin:0}.ant-avatar-sm{width:24px;height:24px;line-height:24px;border-radius:50%}.ant-avatar-sm-string{position:absolute;left:50%;-webkit-transform-origin:0 center;-moz-transform-origin:0 center;transform-origin:0 center}.ant-avatar-sm.ant-avatar-icon{font-size:14px}.ant-avatar-sm.ant-avatar-icon>.anticon{margin:0}.ant-avatar-square{border-radius:2px}.ant-avatar>img{display:block;width:100%;height:100%;-webkit-object-fit:cover;object-fit:cover}.ant-avatar-group{display:-moz-inline-box;display:inline-flex}.ant-avatar-group .ant-avatar{border:1px solid #fff}.ant-avatar-group .ant-avatar:not(:first-child){margin-left:-8px}.ant-avatar-group-popover .ant-avatar+.ant-avatar{margin-left:3px}.ant-avatar-group-rtl .ant-avatar:not(:first-child){margin-right:-8px;margin-left:0}.ant-avatar-group-popover.ant-popover-rtl .ant-avatar+.ant-avatar{margin-right:3px;margin-left:0}.ant-popover{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";position:absolute;top:0;left:0;z-index:1030;font-weight:400;white-space:normal;text-align:left;cursor:auto;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.ant-popover:after{position:absolute;background:hsla(0,0%,100%,.01);content:""}.ant-popover-hidden{display:none}.ant-popover-placement-top,.ant-popover-placement-topLeft,.ant-popover-placement-topRight{padding-bottom:10px}.ant-popover-placement-right,.ant-popover-placement-rightBottom,.ant-popover-placement-rightTop{padding-left:10px}.ant-popover-placement-bottom,.ant-popover-placement-bottomLeft,.ant-popover-placement-bottomRight{padding-top:10px}.ant-popover-placement-left,.ant-popover-placement-leftBottom,.ant-popover-placement-leftTop{padding-right:10px}.ant-popover-inner{background-color:#fff;background-clip:padding-box;border-radius:2px;-webkit-box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);-webkit-box-shadow:0 0 8px rgba(0,0,0,.15)\9;box-shadow:0 0 8px rgba(0,0,0,.15)\9}@media (-ms-high-contrast:none),screen and (-ms-high-contrast:active){.ant-popover-inner{-webkit-box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05)}}.ant-popover-title{min-width:177px;min-height:32px;margin:0;padding:5px 16px 4px;color:rgba(0,0,0,.85);font-weight:500;border-bottom:1px solid #f0f0f0}.ant-popover-inner-content{padding:12px 16px;color:rgba(0,0,0,.85)}.ant-popover-message{position:relative;padding:4px 0 12px;color:rgba(0,0,0,.85);font-size:14px}.ant-popover-message>.anticon{position:absolute;top:8.0005px;color:#faad14;font-size:14px}.ant-popover-message-title{padding-left:22px}.ant-popover-buttons{margin-bottom:4px;text-align:right}.ant-popover-buttons button{margin-left:8px}.ant-popover-arrow{position:absolute;display:block;width:8.48528137px;height:8.48528137px;overflow:hidden;background:transparent;pointer-events:none}.ant-popover-arrow-content{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:6px;height:6px;margin:auto;background-color:#fff;content:"";pointer-events:auto}.ant-popover-placement-top .ant-popover-arrow,.ant-popover-placement-topLeft .ant-popover-arrow,.ant-popover-placement-topRight .ant-popover-arrow{bottom:1.51471863px}.ant-popover-placement-top .ant-popover-arrow-content,.ant-popover-placement-topLeft .ant-popover-arrow-content,.ant-popover-placement-topRight .ant-popover-arrow-content{-webkit-box-shadow:3px 3px 7px rgba(0,0,0,.07);box-shadow:3px 3px 7px rgba(0,0,0,.07);-webkit-transform:translateY(-4.24264069px) rotate(45deg);-moz-transform:translateY(-4.24264069px) rotate(45deg);transform:translateY(-4.24264069px) rotate(45deg)}.ant-popover-placement-top .ant-popover-arrow{left:50%;-webkit-transform:translateX(-50%);-moz-transform:translateX(-50%);transform:translateX(-50%)}.ant-popover-placement-topLeft .ant-popover-arrow{left:16px}.ant-popover-placement-topRight .ant-popover-arrow{right:16px}.ant-popover-placement-right .ant-popover-arrow,.ant-popover-placement-rightBottom .ant-popover-arrow,.ant-popover-placement-rightTop .ant-popover-arrow{left:1.51471863px}.ant-popover-placement-right .ant-popover-arrow-content,.ant-popover-placement-rightBottom .ant-popover-arrow-content,.ant-popover-placement-rightTop .ant-popover-arrow-content{-webkit-box-shadow:-3px 3px 7px rgba(0,0,0,.07);box-shadow:-3px 3px 7px rgba(0,0,0,.07);-webkit-transform:translateX(4.24264069px) rotate(45deg);-moz-transform:translateX(4.24264069px) rotate(45deg);transform:translateX(4.24264069px) rotate(45deg)}.ant-popover-placement-right .ant-popover-arrow{top:50%;-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);transform:translateY(-50%)}.ant-popover-placement-rightTop .ant-popover-arrow{top:12px}.ant-popover-placement-rightBottom .ant-popover-arrow{bottom:12px}.ant-popover-placement-bottom .ant-popover-arrow,.ant-popover-placement-bottomLeft .ant-popover-arrow,.ant-popover-placement-bottomRight .ant-popover-arrow{top:1.51471863px}.ant-popover-placement-bottom .ant-popover-arrow-content,.ant-popover-placement-bottomLeft .ant-popover-arrow-content,.ant-popover-placement-bottomRight .ant-popover-arrow-content{-webkit-box-shadow:-2px -2px 5px rgba(0,0,0,.06);box-shadow:-2px -2px 5px rgba(0,0,0,.06);-webkit-transform:translateY(4.24264069px) rotate(45deg);-moz-transform:translateY(4.24264069px) rotate(45deg);transform:translateY(4.24264069px) rotate(45deg)}.ant-popover-placement-bottom .ant-popover-arrow{left:50%;-webkit-transform:translateX(-50%);-moz-transform:translateX(-50%);transform:translateX(-50%)}.ant-popover-placement-bottomLeft .ant-popover-arrow{left:16px}.ant-popover-placement-bottomRight .ant-popover-arrow{right:16px}.ant-popover-placement-left .ant-popover-arrow,.ant-popover-placement-leftBottom .ant-popover-arrow,.ant-popover-placement-leftTop .ant-popover-arrow{right:1.51471863px}.ant-popover-placement-left .ant-popover-arrow-content,.ant-popover-placement-leftBottom .ant-popover-arrow-content,.ant-popover-placement-leftTop .ant-popover-arrow-content{-webkit-box-shadow:3px -3px 7px rgba(0,0,0,.07);box-shadow:3px -3px 7px rgba(0,0,0,.07);-webkit-transform:translateX(-4.24264069px) rotate(45deg);-moz-transform:translateX(-4.24264069px) rotate(45deg);transform:translateX(-4.24264069px) rotate(45deg)}.ant-popover-placement-left .ant-popover-arrow{top:50%;-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);transform:translateY(-50%)}.ant-popover-placement-leftTop .ant-popover-arrow{top:12px}.ant-popover-placement-leftBottom .ant-popover-arrow{bottom:12px}.ant-popover-magenta .ant-popover-arrow-content,.ant-popover-magenta .ant-popover-inner,.ant-popover-pink .ant-popover-arrow-content,.ant-popover-pink .ant-popover-inner{background-color:#eb2f96}.ant-popover-red .ant-popover-arrow-content,.ant-popover-red .ant-popover-inner{background-color:#f5222d}.ant-popover-volcano .ant-popover-arrow-content,.ant-popover-volcano .ant-popover-inner{background-color:#fa541c}.ant-popover-orange .ant-popover-arrow-content,.ant-popover-orange .ant-popover-inner{background-color:#fa8c16}.ant-popover-yellow .ant-popover-arrow-content,.ant-popover-yellow .ant-popover-inner{background-color:#fadb14}.ant-popover-gold .ant-popover-arrow-content,.ant-popover-gold .ant-popover-inner{background-color:#faad14}.ant-popover-cyan .ant-popover-arrow-content,.ant-popover-cyan .ant-popover-inner{background-color:#13c2c2}.ant-popover-lime .ant-popover-arrow-content,.ant-popover-lime .ant-popover-inner{background-color:#a0d911}.ant-popover-green .ant-popover-arrow-content,.ant-popover-green .ant-popover-inner{background-color:#52c41a}.ant-popover-blue .ant-popover-arrow-content,.ant-popover-blue .ant-popover-inner{background-color:#1890ff}.ant-popover-geekblue .ant-popover-arrow-content,.ant-popover-geekblue .ant-popover-inner{background-color:#2f54eb}.ant-popover-purple .ant-popover-arrow-content,.ant-popover-purple .ant-popover-inner{background-color:#722ed1}.ant-popover-rtl{direction:rtl;text-align:right}.ant-popover-rtl .ant-popover-message-title{padding-right:22px;padding-left:16px}.ant-popover-rtl .ant-popover-buttons{text-align:left}.ant-popover-rtl .ant-popover-buttons button{margin-right:8px;margin-left:0}.ant-back-top{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";position:fixed;right:100px;bottom:50px;z-index:10;width:40px;height:40px;cursor:pointer}.ant-back-top:empty{display:none}.ant-back-top-rtl{right:auto;left:100px;direction:rtl}.ant-back-top-content{width:40px;height:40px;overflow:hidden;color:#fff;text-align:center;background-color:rgba(0,0,0,.45);border-radius:20px}.ant-back-top-content,.ant-back-top-content:hover{-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s}.ant-back-top-content:hover{background-color:rgba(0,0,0,.85)}.ant-back-top-icon{font-size:24px;line-height:40px}@media screen and (max-width:768px){.ant-back-top{right:60px}}@media screen and (max-width:480px){.ant-back-top{right:20px}}.ant-badge{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";position:relative;display:inline-block;line-height:1}.ant-badge-count{z-index:auto;min-width:20px;height:20px;padding:0 6px;color:#fff;font-weight:400;font-size:12px;line-height:20px;white-space:nowrap;text-align:center;background:#ff4d4f;border-radius:10px;-webkit-box-shadow:0 0 0 1px #fff;box-shadow:0 0 0 1px #fff}.ant-badge-count a,.ant-badge-count a:hover{color:#fff}.ant-badge-count-sm{min-width:14px;height:14px;padding:0;font-size:12px;line-height:14px;border-radius:7px}.ant-badge-multiple-words{padding:0 8px}.ant-badge-dot{z-index:auto;width:6px;min-width:6px;height:6px;background:#ff4d4f;border-radius:100%;-webkit-box-shadow:0 0 0 1px #fff;box-shadow:0 0 0 1px #fff}.ant-badge-dot.ant-scroll-number{-webkit-transition:background 1.5s;-moz-transition:background 1.5s;transition:background 1.5s}.ant-badge-count,.ant-badge-dot,.ant-badge .ant-scroll-number-custom-component{position:absolute;top:0;right:0;-webkit-transform:translate(50%,-50%);-moz-transform:translate(50%,-50%);transform:translate(50%,-50%);-webkit-transform-origin:100% 0;-moz-transform-origin:100% 0;transform-origin:100% 0}.ant-badge-count.anticon-spin,.ant-badge-dot.anticon-spin,.ant-badge .ant-scroll-number-custom-component.anticon-spin{-webkit-animation:antBadgeLoadingCircle 1s linear infinite;-moz-animation:antBadgeLoadingCircle 1s linear infinite;animation:antBadgeLoadingCircle 1s linear infinite}.ant-badge-status{line-height:inherit;vertical-align:baseline}.ant-badge-status-dot{position:relative;top:-1px;display:inline-block;width:6px;height:6px;vertical-align:middle;border-radius:50%}.ant-badge-status-success{background-color:#52c41a}.ant-badge-status-processing{position:relative;background-color:#1890ff}.ant-badge-status-processing:after{position:absolute;top:0;left:0;width:100%;height:100%;border:1px solid #1890ff;border-radius:50%;-webkit-animation:antStatusProcessing 1.2s ease-in-out infinite;-moz-animation:antStatusProcessing 1.2s ease-in-out infinite;animation:antStatusProcessing 1.2s ease-in-out infinite;content:""}.ant-badge-status-default{background-color:#d9d9d9}.ant-badge-status-error{background-color:#ff4d4f}.ant-badge-status-warning{background-color:#faad14}.ant-badge-status-magenta,.ant-badge-status-pink{background:#eb2f96}.ant-badge-status-red{background:#f5222d}.ant-badge-status-volcano{background:#fa541c}.ant-badge-status-orange{background:#fa8c16}.ant-badge-status-yellow{background:#fadb14}.ant-badge-status-gold{background:#faad14}.ant-badge-status-cyan{background:#13c2c2}.ant-badge-status-lime{background:#a0d911}.ant-badge-status-green{background:#52c41a}.ant-badge-status-blue{background:#1890ff}.ant-badge-status-geekblue{background:#2f54eb}.ant-badge-status-purple{background:#722ed1}.ant-badge-status-text{margin-left:8px;color:rgba(0,0,0,.85);font-size:14px}.ant-badge-zoom-appear,.ant-badge-zoom-enter{-webkit-animation:antZoomBadgeIn .3s cubic-bezier(.12,.4,.29,1.46);-moz-animation:antZoomBadgeIn .3s cubic-bezier(.12,.4,.29,1.46);animation:antZoomBadgeIn .3s cubic-bezier(.12,.4,.29,1.46);-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}.ant-badge-zoom-leave{-webkit-animation:antZoomBadgeOut .3s cubic-bezier(.71,-.46,.88,.6);-moz-animation:antZoomBadgeOut .3s cubic-bezier(.71,-.46,.88,.6);animation:antZoomBadgeOut .3s cubic-bezier(.71,-.46,.88,.6);-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}.ant-badge-not-a-wrapper .ant-badge-zoom-appear,.ant-badge-not-a-wrapper .ant-badge-zoom-enter{-webkit-animation:antNoWrapperZoomBadgeIn .3s cubic-bezier(.12,.4,.29,1.46);-moz-animation:antNoWrapperZoomBadgeIn .3s cubic-bezier(.12,.4,.29,1.46);animation:antNoWrapperZoomBadgeIn .3s cubic-bezier(.12,.4,.29,1.46)}.ant-badge-not-a-wrapper .ant-badge-zoom-leave{-webkit-animation:antNoWrapperZoomBadgeOut .3s cubic-bezier(.71,-.46,.88,.6);-moz-animation:antNoWrapperZoomBadgeOut .3s cubic-bezier(.71,-.46,.88,.6);animation:antNoWrapperZoomBadgeOut .3s cubic-bezier(.71,-.46,.88,.6)}.ant-badge-not-a-wrapper:not(.ant-badge-status){vertical-align:middle}.ant-badge-not-a-wrapper .ant-badge-count,.ant-badge-not-a-wrapper .ant-scroll-number-custom-component{-webkit-transform:none;-moz-transform:none;transform:none}.ant-badge-not-a-wrapper .ant-scroll-number,.ant-badge-not-a-wrapper .ant-scroll-number-custom-component{position:relative;top:auto;display:block;-webkit-transform-origin:50% 50%;-moz-transform-origin:50% 50%;transform-origin:50% 50%}@-webkit-keyframes antStatusProcessing{0%{-webkit-transform:scale(.8);transform:scale(.8);opacity:.5}to{-webkit-transform:scale(2.4);transform:scale(2.4);opacity:0}}@-moz-keyframes antStatusProcessing{0%{-moz-transform:scale(.8);transform:scale(.8);opacity:.5}to{-moz-transform:scale(2.4);transform:scale(2.4);opacity:0}}@keyframes antStatusProcessing{0%{-webkit-transform:scale(.8);-moz-transform:scale(.8);transform:scale(.8);opacity:.5}to{-webkit-transform:scale(2.4);-moz-transform:scale(2.4);transform:scale(2.4);opacity:0}}.ant-scroll-number{overflow:hidden;direction:ltr}.ant-scroll-number-only{position:relative;display:inline-block;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);-moz-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1)}.ant-scroll-number-only,.ant-scroll-number-only>p.ant-scroll-number-only-unit{height:20px;-webkit-transform-style:preserve-3d;-webkit-backface-visibility:hidden}.ant-scroll-number-only>p.ant-scroll-number-only-unit{margin:0}.ant-scroll-number-symbol{vertical-align:top}@-webkit-keyframes antZoomBadgeIn{0%{-webkit-transform:scale(0) translate(50%,-50%);transform:scale(0) translate(50%,-50%);opacity:0}to{-webkit-transform:scale(1) translate(50%,-50%);transform:scale(1) translate(50%,-50%)}}@-moz-keyframes antZoomBadgeIn{0%{-moz-transform:scale(0) translate(50%,-50%);transform:scale(0) translate(50%,-50%);opacity:0}to{-moz-transform:scale(1) translate(50%,-50%);transform:scale(1) translate(50%,-50%)}}@keyframes antZoomBadgeIn{0%{-webkit-transform:scale(0) translate(50%,-50%);-moz-transform:scale(0) translate(50%,-50%);transform:scale(0) translate(50%,-50%);opacity:0}to{-webkit-transform:scale(1) translate(50%,-50%);-moz-transform:scale(1) translate(50%,-50%);transform:scale(1) translate(50%,-50%)}}@-webkit-keyframes antZoomBadgeOut{0%{-webkit-transform:scale(1) translate(50%,-50%);transform:scale(1) translate(50%,-50%)}to{-webkit-transform:scale(0) translate(50%,-50%);transform:scale(0) translate(50%,-50%);opacity:0}}@-moz-keyframes antZoomBadgeOut{0%{-moz-transform:scale(1) translate(50%,-50%);transform:scale(1) translate(50%,-50%)}to{-moz-transform:scale(0) translate(50%,-50%);transform:scale(0) translate(50%,-50%);opacity:0}}@keyframes antZoomBadgeOut{0%{-webkit-transform:scale(1) translate(50%,-50%);-moz-transform:scale(1) translate(50%,-50%);transform:scale(1) translate(50%,-50%)}to{-webkit-transform:scale(0) translate(50%,-50%);-moz-transform:scale(0) translate(50%,-50%);transform:scale(0) translate(50%,-50%);opacity:0}}@-webkit-keyframes antNoWrapperZoomBadgeIn{0%{-webkit-transform:scale(0);transform:scale(0);opacity:0}to{-webkit-transform:scale(1);transform:scale(1)}}@-moz-keyframes antNoWrapperZoomBadgeIn{0%{-moz-transform:scale(0);transform:scale(0);opacity:0}to{-moz-transform:scale(1);transform:scale(1)}}@keyframes antNoWrapperZoomBadgeIn{0%{-webkit-transform:scale(0);-moz-transform:scale(0);transform:scale(0);opacity:0}to{-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1)}}@-webkit-keyframes antNoWrapperZoomBadgeOut{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(0);transform:scale(0);opacity:0}}@-moz-keyframes antNoWrapperZoomBadgeOut{0%{-moz-transform:scale(1);transform:scale(1)}to{-moz-transform:scale(0);transform:scale(0);opacity:0}}@keyframes antNoWrapperZoomBadgeOut{0%{-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(0);-moz-transform:scale(0);transform:scale(0);opacity:0}}@-webkit-keyframes antBadgeLoadingCircle{0%{-webkit-transform-origin:50%;transform-origin:50%}to{-webkit-transform:translate(50%,-50%) rotate(1turn);transform:translate(50%,-50%) rotate(1turn);-webkit-transform-origin:50%;transform-origin:50%}}@-moz-keyframes antBadgeLoadingCircle{0%{-moz-transform-origin:50%;transform-origin:50%}to{-moz-transform:translate(50%,-50%) rotate(1turn);transform:translate(50%,-50%) rotate(1turn);-moz-transform-origin:50%;transform-origin:50%}}@keyframes antBadgeLoadingCircle{0%{-webkit-transform-origin:50%;-moz-transform-origin:50%;transform-origin:50%}to{-webkit-transform:translate(50%,-50%) rotate(1turn);-moz-transform:translate(50%,-50%) rotate(1turn);transform:translate(50%,-50%) rotate(1turn);-webkit-transform-origin:50%;-moz-transform-origin:50%;transform-origin:50%}}.ant-ribbon-wrapper{position:relative}.ant-ribbon{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";position:absolute;top:8px;height:22px;padding:0 8px;color:#fff;line-height:22px;white-space:nowrap;background-color:#1890ff;border-radius:2px}.ant-ribbon-text{color:#fff}.ant-ribbon-corner{position:absolute;top:100%;width:8px;height:8px;color:currentColor;border:4px solid;-webkit-transform:scaleY(.75);-moz-transform:scaleY(.75);transform:scaleY(.75);-webkit-transform-origin:top;-moz-transform-origin:top;transform-origin:top}.ant-ribbon-corner:after{position:absolute;top:-4px;left:-4px;width:inherit;height:inherit;color:rgba(0,0,0,.25);border:inherit;content:""}.ant-ribbon-color-magenta,.ant-ribbon-color-pink{color:#eb2f96;background:#eb2f96}.ant-ribbon-color-red{color:#f5222d;background:#f5222d}.ant-ribbon-color-volcano{color:#fa541c;background:#fa541c}.ant-ribbon-color-orange{color:#fa8c16;background:#fa8c16}.ant-ribbon-color-yellow{color:#fadb14;background:#fadb14}.ant-ribbon-color-gold{color:#faad14;background:#faad14}.ant-ribbon-color-cyan{color:#13c2c2;background:#13c2c2}.ant-ribbon-color-lime{color:#a0d911;background:#a0d911}.ant-ribbon-color-green{color:#52c41a;background:#52c41a}.ant-ribbon-color-blue{color:#1890ff;background:#1890ff}.ant-ribbon-color-geekblue{color:#2f54eb;background:#2f54eb}.ant-ribbon-color-purple{color:#722ed1;background:#722ed1}.ant-ribbon.ant-ribbon-placement-end{right:-8px;border-bottom-right-radius:0}.ant-ribbon.ant-ribbon-placement-end .ant-ribbon-corner{right:0;border-color:currentColor transparent transparent currentColor}.ant-ribbon.ant-ribbon-placement-start{left:-8px;border-bottom-left-radius:0}.ant-ribbon.ant-ribbon-placement-start .ant-ribbon-corner{left:0;border-color:currentColor currentColor transparent transparent}.ant-badge-rtl{direction:rtl}.ant-badge-rtl .ant-badge:not(.ant-badge-not-a-wrapper) .ant-badge-count,.ant-badge-rtl .ant-badge:not(.ant-badge-not-a-wrapper) .ant-badge-dot,.ant-badge-rtl .ant-badge:not(.ant-badge-not-a-wrapper) .ant-scroll-number-custom-component{right:auto;left:0;direction:ltr;-webkit-transform:translate(-50%,-50%);-moz-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-webkit-transform-origin:0 0;-moz-transform-origin:0 0;transform-origin:0 0}.ant-badge-rtl.ant-badge:not(.ant-badge-not-a-wrapper) .ant-scroll-number-custom-component{right:auto;left:0;-webkit-transform:translate(-50%,-50%);-moz-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-webkit-transform-origin:0 0;-moz-transform-origin:0 0;transform-origin:0 0}.ant-badge-rtl .ant-badge-status-text{margin-right:8px;margin-left:0}.ant-ribbon-rtl{direction:rtl}.ant-ribbon-rtl.ant-ribbon-placement-end{right:unset;left:-8px;border-bottom-right-radius:2px;border-bottom-left-radius:0}.ant-ribbon-rtl.ant-ribbon-placement-end .ant-ribbon-corner{right:unset;left:0}.ant-ribbon-rtl.ant-ribbon-placement-end .ant-ribbon-corner,.ant-ribbon-rtl.ant-ribbon-placement-end .ant-ribbon-corner:after{border-color:currentColor currentColor transparent transparent}.ant-ribbon-rtl.ant-ribbon-placement-start{right:-8px;left:unset;border-bottom-right-radius:0;border-bottom-left-radius:2px}.ant-ribbon-rtl.ant-ribbon-placement-start .ant-ribbon-corner{right:0;left:unset}.ant-ribbon-rtl.ant-ribbon-placement-start .ant-ribbon-corner,.ant-ribbon-rtl.ant-ribbon-placement-start .ant-ribbon-corner:after{border-color:currentColor transparent transparent currentColor}.ant-breadcrumb{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";color:rgba(0,0,0,.45);font-size:14px}.ant-breadcrumb .anticon{font-size:14px}.ant-breadcrumb a{color:rgba(0,0,0,.45);-webkit-transition:color .3s;-moz-transition:color .3s;transition:color .3s}.ant-breadcrumb a:hover{color:#40a9ff}.ant-breadcrumb>span:last-child,.ant-breadcrumb>span:last-child a{color:rgba(0,0,0,.85)}.ant-breadcrumb>span:last-child .ant-breadcrumb-separator{display:none}.ant-breadcrumb-separator{margin:0 8px;color:rgba(0,0,0,.45)}.ant-breadcrumb-link>.anticon+a,.ant-breadcrumb-link>.anticon+span,.ant-breadcrumb-overlay-link>.anticon{margin-left:4px}.ant-breadcrumb-rtl{direction:rtl}.ant-breadcrumb-rtl:before{display:table;content:""}.ant-breadcrumb-rtl:after{display:table;clear:both;content:""}.ant-breadcrumb-rtl>span{float:right}.ant-breadcrumb-rtl .ant-breadcrumb-link>.anticon+a,.ant-breadcrumb-rtl .ant-breadcrumb-link>.anticon+span,.ant-breadcrumb-rtl .ant-breadcrumb-overlay-link>.anticon{margin-right:4px;margin-left:0}.ant-menu-item-danger.ant-menu-item,.ant-menu-item-danger.ant-menu-item-active,.ant-menu-item-danger.ant-menu-item:hover{color:#ff4d4f}.ant-menu-item-danger.ant-menu-item:active{background:#fff1f0}.ant-menu-item-danger.ant-menu-item-selected,.ant-menu-item-danger.ant-menu-item-selected>a,.ant-menu-item-danger.ant-menu-item-selected>a:hover{color:#ff4d4f}.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected{background-color:#fff1f0}.ant-menu-inline .ant-menu-item-danger.ant-menu-item:after{border-right-color:#ff4d4f}.ant-menu-dark .ant-menu-item-danger.ant-menu-item,.ant-menu-dark .ant-menu-item-danger.ant-menu-item:hover,.ant-menu-dark .ant-menu-item-danger.ant-menu-item>a{color:#ff4d4f}.ant-menu-dark.ant-menu-dark:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected{color:#fff;background-color:#ff4d4f}.ant-menu{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;font-variant:tabular-nums;line-height:1.5715;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;line-height:0;text-align:left;list-style:none;background:#fff;outline:none;-webkit-box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);-webkit-transition:background .3s,width .3s cubic-bezier(.2,0,0,1) 0s;-moz-transition:background .3s,width .3s cubic-bezier(.2,0,0,1) 0s;transition:background .3s,width .3s cubic-bezier(.2,0,0,1) 0s}.ant-menu:after,.ant-menu:before{display:table;content:""}.ant-menu:after{clear:both}.ant-menu.ant-menu-root:focus-visible{-webkit-box-shadow:0 0 0 2px #e6f7ff;box-shadow:0 0 0 2px #e6f7ff}.ant-menu ol,.ant-menu ul{margin:0;padding:0;list-style:none}.ant-menu-overflow{display:-moz-box;display:flex}.ant-menu-overflow-item{-moz-box-flex:0;flex:none}.ant-menu-hidden,.ant-menu-submenu-hidden{display:none}.ant-menu-item-group-title{height:1.5715;padding:8px 16px;color:rgba(0,0,0,.45);font-size:14px;line-height:1.5715;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s}.ant-menu-horizontal .ant-menu-submenu{-webkit-transition:border-color .3s cubic-bezier(.645,.045,.355,1),background .3s cubic-bezier(.645,.045,.355,1);-moz-transition:border-color .3s cubic-bezier(.645,.045,.355,1),background .3s cubic-bezier(.645,.045,.355,1);transition:border-color .3s cubic-bezier(.645,.045,.355,1),background .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-submenu,.ant-menu-submenu-inline{-webkit-transition:border-color .3s cubic-bezier(.645,.045,.355,1),background .3s cubic-bezier(.645,.045,.355,1),padding .15s cubic-bezier(.645,.045,.355,1);-moz-transition:border-color .3s cubic-bezier(.645,.045,.355,1),background .3s cubic-bezier(.645,.045,.355,1),padding .15s cubic-bezier(.645,.045,.355,1);transition:border-color .3s cubic-bezier(.645,.045,.355,1),background .3s cubic-bezier(.645,.045,.355,1),padding .15s cubic-bezier(.645,.045,.355,1)}.ant-menu-submenu-selected{color:#1890ff}.ant-menu-item:active,.ant-menu-submenu-title:active{background:#e6f7ff}.ant-menu-submenu .ant-menu-sub{cursor:auto;-webkit-transition:background .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1);-moz-transition:background .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1);transition:background .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-title-content{-webkit-transition:color .3s;-moz-transition:color .3s;transition:color .3s}.ant-menu-item a{color:rgba(0,0,0,.85)}.ant-menu-item a:hover{color:#1890ff}.ant-menu-item a:before{position:absolute;top:0;right:0;bottom:0;left:0;background-color:transparent;content:""}.ant-menu-item>.ant-badge a{color:rgba(0,0,0,.85)}.ant-menu-item>.ant-badge a:hover{color:#1890ff}.ant-menu-item-divider{overflow:hidden;line-height:0;border:solid #f0f0f0;border-width:1px 0 0}.ant-menu-item-divider-dashed{border-style:dashed}.ant-menu-horizontal .ant-menu-item,.ant-menu-horizontal .ant-menu-submenu{margin-top:-1px}.ant-menu-horizontal>.ant-menu-item-active,.ant-menu-horizontal>.ant-menu-item:hover,.ant-menu-horizontal>.ant-menu-submenu .ant-menu-submenu-title:hover{background-color:transparent}.ant-menu-item-selected,.ant-menu-item-selected a,.ant-menu-item-selected a:hover{color:#1890ff}.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected{background-color:#e6f7ff}.ant-menu-inline,.ant-menu-vertical,.ant-menu-vertical-left{border-right:1px solid #f0f0f0}.ant-menu-vertical-right{border-left:1px solid #f0f0f0}.ant-menu-vertical-left.ant-menu-sub,.ant-menu-vertical-right.ant-menu-sub,.ant-menu-vertical.ant-menu-sub{min-width:160px;max-height:-webkit-calc(100vh - 100px);max-height:-moz-calc(100vh - 100px);max-height:calc(100vh - 100px);padding:0;overflow:hidden;border-right:0}.ant-menu-vertical-left.ant-menu-sub:not([class*=-active]),.ant-menu-vertical-right.ant-menu-sub:not([class*=-active]),.ant-menu-vertical.ant-menu-sub:not([class*=-active]){overflow-x:hidden;overflow-y:auto}.ant-menu-vertical-left.ant-menu-sub .ant-menu-item,.ant-menu-vertical-right.ant-menu-sub .ant-menu-item,.ant-menu-vertical.ant-menu-sub .ant-menu-item{left:0;margin-left:0;border-right:0}.ant-menu-vertical-left.ant-menu-sub .ant-menu-item:after,.ant-menu-vertical-right.ant-menu-sub .ant-menu-item:after,.ant-menu-vertical.ant-menu-sub .ant-menu-item:after{border-right:0}.ant-menu-vertical-left.ant-menu-sub>.ant-menu-item,.ant-menu-vertical-left.ant-menu-sub>.ant-menu-submenu,.ant-menu-vertical-right.ant-menu-sub>.ant-menu-item,.ant-menu-vertical-right.ant-menu-sub>.ant-menu-submenu,.ant-menu-vertical.ant-menu-sub>.ant-menu-item,.ant-menu-vertical.ant-menu-sub>.ant-menu-submenu{-webkit-transform-origin:0 0;-moz-transform-origin:0 0;transform-origin:0 0}.ant-menu-horizontal.ant-menu-sub{min-width:114px}.ant-menu-horizontal .ant-menu-item,.ant-menu-horizontal .ant-menu-submenu-title{-webkit-transition:border-color .3s,background .3s;-moz-transition:border-color .3s,background .3s;transition:border-color .3s,background .3s}.ant-menu-item,.ant-menu-submenu-title{position:relative;display:block;margin:0;padding:0 20px;white-space:nowrap;cursor:pointer;-webkit-transition:border-color .3s,background .3s,padding .3s cubic-bezier(.645,.045,.355,1);-moz-transition:border-color .3s,background .3s,padding .3s cubic-bezier(.645,.045,.355,1);transition:border-color .3s,background .3s,padding .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-item .ant-menu-item-icon,.ant-menu-item .anticon,.ant-menu-submenu-title .ant-menu-item-icon,.ant-menu-submenu-title .anticon{min-width:14px;font-size:14px;-webkit-transition:font-size .15s cubic-bezier(.215,.61,.355,1),margin .3s cubic-bezier(.645,.045,.355,1),color .3s;-moz-transition:font-size .15s cubic-bezier(.215,.61,.355,1),margin .3s cubic-bezier(.645,.045,.355,1),color .3s;transition:font-size .15s cubic-bezier(.215,.61,.355,1),margin .3s cubic-bezier(.645,.045,.355,1),color .3s}.ant-menu-item .ant-menu-item-icon+span,.ant-menu-item .anticon+span,.ant-menu-submenu-title .ant-menu-item-icon+span,.ant-menu-submenu-title .anticon+span{margin-left:10px;opacity:1;-webkit-transition:opacity .3s cubic-bezier(.645,.045,.355,1),margin .3s,color .3s;-moz-transition:opacity .3s cubic-bezier(.645,.045,.355,1),margin .3s,color .3s;transition:opacity .3s cubic-bezier(.645,.045,.355,1),margin .3s,color .3s}.ant-menu-item .ant-menu-item-icon.svg,.ant-menu-submenu-title .ant-menu-item-icon.svg{vertical-align:-.125em}.ant-menu-item.ant-menu-item-only-child>.ant-menu-item-icon,.ant-menu-item.ant-menu-item-only-child>.anticon,.ant-menu-submenu-title.ant-menu-item-only-child>.ant-menu-item-icon,.ant-menu-submenu-title.ant-menu-item-only-child>.anticon{margin-right:0}.ant-menu-item:focus-visible,.ant-menu-submenu-title:focus-visible{-webkit-box-shadow:0 0 0 2px #e6f7ff;box-shadow:0 0 0 2px #e6f7ff}.ant-menu>.ant-menu-item-divider{margin:1px 0;padding:0}.ant-menu-submenu-popup{position:absolute;z-index:1050;background:transparent;border-radius:2px;-webkit-box-shadow:none;box-shadow:none;-webkit-transform-origin:0 0;-moz-transform-origin:0 0;transform-origin:0 0}.ant-menu-submenu-popup:before{position:absolute;top:-7px;right:0;bottom:0;left:0;z-index:-1;width:100%;height:100%;opacity:.0001;content:" "}.ant-menu-submenu-placement-rightTop:before{top:0;left:-7px}.ant-menu-submenu>.ant-menu{background-color:#fff;border-radius:2px}.ant-menu-submenu>.ant-menu-submenu-title:after{-webkit-transition:-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:-webkit-transform .3s cubic-bezier(.645,.045,.355,1);-moz-transition:transform .3s cubic-bezier(.645,.045,.355,1),-moz-transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1),-webkit-transform .3s cubic-bezier(.645,.045,.355,1),-moz-transform .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-submenu-popup>.ant-menu{background-color:#fff}.ant-menu-submenu-arrow,.ant-menu-submenu-expand-icon{position:absolute;top:50%;right:16px;width:10px;color:rgba(0,0,0,.85);-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);transform:translateY(-50%);-webkit-transition:-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:-webkit-transform .3s cubic-bezier(.645,.045,.355,1);-moz-transition:transform .3s cubic-bezier(.645,.045,.355,1),-moz-transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1),-webkit-transform .3s cubic-bezier(.645,.045,.355,1),-moz-transform .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-submenu-arrow:after,.ant-menu-submenu-arrow:before{position:absolute;width:6px;height:1.5px;background-color:currentColor;border-radius:2px;-webkit-transition:background .3s cubic-bezier(.645,.045,.355,1),top .3s cubic-bezier(.645,.045,.355,1),color .3s cubic-bezier(.645,.045,.355,1),-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:background .3s cubic-bezier(.645,.045,.355,1),top .3s cubic-bezier(.645,.045,.355,1),color .3s cubic-bezier(.645,.045,.355,1),-webkit-transform .3s cubic-bezier(.645,.045,.355,1);-moz-transition:background .3s cubic-bezier(.645,.045,.355,1),transform .3s cubic-bezier(.645,.045,.355,1),top .3s cubic-bezier(.645,.045,.355,1),color .3s cubic-bezier(.645,.045,.355,1),-moz-transform .3s cubic-bezier(.645,.045,.355,1);transition:background .3s cubic-bezier(.645,.045,.355,1),transform .3s cubic-bezier(.645,.045,.355,1),top .3s cubic-bezier(.645,.045,.355,1),color .3s cubic-bezier(.645,.045,.355,1);transition:background .3s cubic-bezier(.645,.045,.355,1),transform .3s cubic-bezier(.645,.045,.355,1),top .3s cubic-bezier(.645,.045,.355,1),color .3s cubic-bezier(.645,.045,.355,1),-webkit-transform .3s cubic-bezier(.645,.045,.355,1),-moz-transform .3s cubic-bezier(.645,.045,.355,1);content:""}.ant-menu-submenu-arrow:before{-webkit-transform:rotate(45deg) translateY(-2.5px);-moz-transform:rotate(45deg) translateY(-2.5px);transform:rotate(45deg) translateY(-2.5px)}.ant-menu-submenu-arrow:after{-webkit-transform:rotate(-45deg) translateY(2.5px);-moz-transform:rotate(-45deg) translateY(2.5px);transform:rotate(-45deg) translateY(2.5px)}.ant-menu-submenu:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-submenu:hover>.ant-menu-submenu-title>.ant-menu-submenu-expand-icon{color:#1890ff}.ant-menu-inline-collapsed .ant-menu-submenu-arrow:before,.ant-menu-submenu-inline .ant-menu-submenu-arrow:before{-webkit-transform:rotate(-45deg) translateX(2.5px);-moz-transform:rotate(-45deg) translateX(2.5px);transform:rotate(-45deg) translateX(2.5px)}.ant-menu-inline-collapsed .ant-menu-submenu-arrow:after,.ant-menu-submenu-inline .ant-menu-submenu-arrow:after{-webkit-transform:rotate(45deg) translateX(-2.5px);-moz-transform:rotate(45deg) translateX(-2.5px);transform:rotate(45deg) translateX(-2.5px)}.ant-menu-submenu-horizontal .ant-menu-submenu-arrow{display:none}.ant-menu-submenu-open.ant-menu-submenu-inline>.ant-menu-submenu-title>.ant-menu-submenu-arrow{-webkit-transform:translateY(-2px);-moz-transform:translateY(-2px);transform:translateY(-2px)}.ant-menu-submenu-open.ant-menu-submenu-inline>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after{-webkit-transform:rotate(-45deg) translateX(-2.5px);-moz-transform:rotate(-45deg) translateX(-2.5px);transform:rotate(-45deg) translateX(-2.5px)}.ant-menu-submenu-open.ant-menu-submenu-inline>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before{-webkit-transform:rotate(45deg) translateX(2.5px);-moz-transform:rotate(45deg) translateX(2.5px);transform:rotate(45deg) translateX(2.5px)}.ant-menu-vertical-left .ant-menu-submenu-selected,.ant-menu-vertical-right .ant-menu-submenu-selected,.ant-menu-vertical .ant-menu-submenu-selected{color:#1890ff}.ant-menu-horizontal{line-height:46px;border:0;border-bottom:1px solid #f0f0f0;-webkit-box-shadow:none;box-shadow:none}.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu{margin-top:-1px;margin-bottom:0;padding:0 20px}.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-active,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-open,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-selected,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item:hover,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-active,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-open,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-selected,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu:hover{color:#1890ff}.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-active:after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-open:after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-selected:after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item:hover:after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-active:after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-open:after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-selected:after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu:hover:after{border-bottom:2px solid #1890ff}.ant-menu-horizontal>.ant-menu-item,.ant-menu-horizontal>.ant-menu-submenu{position:relative;top:1px;display:inline-block;vertical-align:bottom}.ant-menu-horizontal>.ant-menu-item:after,.ant-menu-horizontal>.ant-menu-submenu:after{position:absolute;right:20px;bottom:0;left:20px;border-bottom:2px solid transparent;-webkit-transition:border-color .3s cubic-bezier(.645,.045,.355,1);-moz-transition:border-color .3s cubic-bezier(.645,.045,.355,1);transition:border-color .3s cubic-bezier(.645,.045,.355,1);content:""}.ant-menu-horizontal>.ant-menu-submenu>.ant-menu-submenu-title{padding:0}.ant-menu-horizontal>.ant-menu-item a{color:rgba(0,0,0,.85)}.ant-menu-horizontal>.ant-menu-item a:hover{color:#1890ff}.ant-menu-horizontal>.ant-menu-item a:before{bottom:-2px}.ant-menu-horizontal>.ant-menu-item-selected a{color:#1890ff}.ant-menu-horizontal:after{display:block;clear:both;height:0;content:"\20"}.ant-menu-inline .ant-menu-item,.ant-menu-vertical-left .ant-menu-item,.ant-menu-vertical-right .ant-menu-item,.ant-menu-vertical .ant-menu-item{position:relative}.ant-menu-inline .ant-menu-item:after,.ant-menu-vertical-left .ant-menu-item:after,.ant-menu-vertical-right .ant-menu-item:after,.ant-menu-vertical .ant-menu-item:after{position:absolute;top:0;right:0;bottom:0;border-right:3px solid #1890ff;-webkit-transform:scaleY(.0001);-moz-transform:scaleY(.0001);transform:scaleY(.0001);opacity:0;-webkit-transition:opacity .15s cubic-bezier(.215,.61,.355,1),-webkit-transform .15s cubic-bezier(.215,.61,.355,1);transition:opacity .15s cubic-bezier(.215,.61,.355,1),-webkit-transform .15s cubic-bezier(.215,.61,.355,1);-moz-transition:transform .15s cubic-bezier(.215,.61,.355,1),opacity .15s cubic-bezier(.215,.61,.355,1),-moz-transform .15s cubic-bezier(.215,.61,.355,1);transition:transform .15s cubic-bezier(.215,.61,.355,1),opacity .15s cubic-bezier(.215,.61,.355,1);transition:transform .15s cubic-bezier(.215,.61,.355,1),opacity .15s cubic-bezier(.215,.61,.355,1),-webkit-transform .15s cubic-bezier(.215,.61,.355,1),-moz-transform .15s cubic-bezier(.215,.61,.355,1);content:""}.ant-menu-inline .ant-menu-item,.ant-menu-inline .ant-menu-submenu-title,.ant-menu-vertical-left .ant-menu-item,.ant-menu-vertical-left .ant-menu-submenu-title,.ant-menu-vertical-right .ant-menu-item,.ant-menu-vertical-right .ant-menu-submenu-title,.ant-menu-vertical .ant-menu-item,.ant-menu-vertical .ant-menu-submenu-title{height:40px;margin-top:4px;margin-bottom:4px;padding:0 16px;overflow:hidden;line-height:40px;text-overflow:ellipsis}.ant-menu-inline .ant-menu-submenu,.ant-menu-vertical-left .ant-menu-submenu,.ant-menu-vertical-right .ant-menu-submenu,.ant-menu-vertical .ant-menu-submenu{padding-bottom:.02px}.ant-menu-inline .ant-menu-item:not(:last-child),.ant-menu-vertical-left .ant-menu-item:not(:last-child),.ant-menu-vertical-right .ant-menu-item:not(:last-child),.ant-menu-vertical .ant-menu-item:not(:last-child){margin-bottom:8px}.ant-menu-inline>.ant-menu-item,.ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-vertical-left>.ant-menu-item,.ant-menu-vertical-left>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-vertical-right>.ant-menu-item,.ant-menu-vertical-right>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-vertical>.ant-menu-item,.ant-menu-vertical>.ant-menu-submenu>.ant-menu-submenu-title{height:40px;line-height:40px}.ant-menu-vertical .ant-menu-item-group-list .ant-menu-submenu-title,.ant-menu-vertical .ant-menu-submenu-title{padding-right:34px}.ant-menu-inline{width:100%}.ant-menu-inline .ant-menu-item-selected:after,.ant-menu-inline .ant-menu-selected:after{-webkit-transform:scaleY(1);-moz-transform:scaleY(1);transform:scaleY(1);opacity:1;-webkit-transition:opacity .15s cubic-bezier(.645,.045,.355,1),-webkit-transform .15s cubic-bezier(.645,.045,.355,1);transition:opacity .15s cubic-bezier(.645,.045,.355,1),-webkit-transform .15s cubic-bezier(.645,.045,.355,1);-moz-transition:transform .15s cubic-bezier(.645,.045,.355,1),opacity .15s cubic-bezier(.645,.045,.355,1),-moz-transform .15s cubic-bezier(.645,.045,.355,1);transition:transform .15s cubic-bezier(.645,.045,.355,1),opacity .15s cubic-bezier(.645,.045,.355,1);transition:transform .15s cubic-bezier(.645,.045,.355,1),opacity .15s cubic-bezier(.645,.045,.355,1),-webkit-transform .15s cubic-bezier(.645,.045,.355,1),-moz-transform .15s cubic-bezier(.645,.045,.355,1)}.ant-menu-inline .ant-menu-item,.ant-menu-inline .ant-menu-submenu-title{width:-webkit-calc(100% + 1px);width:-moz-calc(100% + 1px);width:calc(100% + 1px)}.ant-menu-inline .ant-menu-item-group-list .ant-menu-submenu-title,.ant-menu-inline .ant-menu-submenu-title{padding-right:34px}.ant-menu-inline.ant-menu-root .ant-menu-item,.ant-menu-inline.ant-menu-root .ant-menu-submenu-title{display:-moz-box;display:flex;-moz-box-align:center;align-items:center;-webkit-transition:border-color .3s,background .3s,padding .1s cubic-bezier(.215,.61,.355,1);-moz-transition:border-color .3s,background .3s,padding .1s cubic-bezier(.215,.61,.355,1);transition:border-color .3s,background .3s,padding .1s cubic-bezier(.215,.61,.355,1)}.ant-menu-inline.ant-menu-root .ant-menu-item>.ant-menu-title-content,.ant-menu-inline.ant-menu-root .ant-menu-submenu-title>.ant-menu-title-content{-moz-box-flex:1;flex:auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.ant-menu-inline.ant-menu-root .ant-menu-item>*,.ant-menu-inline.ant-menu-root .ant-menu-submenu-title>*{-moz-box-flex:0;flex:none}.ant-menu.ant-menu-inline-collapsed{width:80px}.ant-menu.ant-menu-inline-collapsed>.ant-menu-item,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title{left:0;padding:0 calc(50% - 16px / 2);text-overflow:clip}.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .ant-menu-submenu-arrow,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item .ant-menu-submenu-arrow,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-submenu-arrow{opacity:0}.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .anticon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .anticon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item .anticon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .anticon{margin:0;font-size:16px;line-height:40px}.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .ant-menu-item-icon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .anticon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-item-icon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .anticon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item .ant-menu-item-icon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item .anticon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-item-icon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .anticon+span{display:inline-block;opacity:0}.ant-menu.ant-menu-inline-collapsed .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed .anticon{display:inline-block}.ant-menu.ant-menu-inline-collapsed-tooltip{pointer-events:none}.ant-menu.ant-menu-inline-collapsed-tooltip .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed-tooltip .anticon{display:none}.ant-menu.ant-menu-inline-collapsed-tooltip a{color:hsla(0,0%,100%,.85)}.ant-menu.ant-menu-inline-collapsed .ant-menu-item-group-title{padding-right:4px;padding-left:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ant-menu-item-group-list{margin:0;padding:0}.ant-menu-item-group-list .ant-menu-item,.ant-menu-item-group-list .ant-menu-submenu-title{padding:0 16px 0 28px}.ant-menu-root.ant-menu-inline,.ant-menu-root.ant-menu-vertical,.ant-menu-root.ant-menu-vertical-left,.ant-menu-root.ant-menu-vertical-right{-webkit-box-shadow:none;box-shadow:none}.ant-menu-root.ant-menu-inline-collapsed .ant-menu-item>.ant-menu-inline-collapsed-noicon,.ant-menu-root.ant-menu-inline-collapsed .ant-menu-submenu .ant-menu-submenu-title>.ant-menu-inline-collapsed-noicon{font-size:16px;text-align:center}.ant-menu-sub.ant-menu-inline{padding:0;background:#fafafa;border-radius:0;-webkit-box-shadow:none;box-shadow:none}.ant-menu-sub.ant-menu-inline>.ant-menu-item,.ant-menu-sub.ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title{height:40px;line-height:40px;list-style-position:inside;list-style-type:disc}.ant-menu-sub.ant-menu-inline .ant-menu-item-group-title{padding-left:32px}.ant-menu-item-disabled,.ant-menu-submenu-disabled{color:rgba(0,0,0,.25)!important;background:none;cursor:not-allowed}.ant-menu-item-disabled:after,.ant-menu-submenu-disabled:after{border-color:transparent!important}.ant-menu-item-disabled a,.ant-menu-submenu-disabled a{color:rgba(0,0,0,.25)!important;pointer-events:none}.ant-menu-item-disabled>.ant-menu-submenu-title,.ant-menu-submenu-disabled>.ant-menu-submenu-title{color:rgba(0,0,0,.25)!important;cursor:not-allowed}.ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before{background:rgba(0,0,0,.25)!important}.ant-layout-header .ant-menu{line-height:inherit}.ant-menu-inline-collapsed-tooltip a,.ant-menu-inline-collapsed-tooltip a:hover{color:#fff}.ant-menu-light .ant-menu-item-active,.ant-menu-light .ant-menu-item:hover,.ant-menu-light .ant-menu-submenu-active,.ant-menu-light .ant-menu-submenu-title:hover,.ant-menu-light .ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open{color:#1890ff}.ant-menu-dark .ant-menu-sub,.ant-menu.ant-menu-dark,.ant-menu.ant-menu-dark .ant-menu-sub{color:hsla(0,0%,100%,.65);background:#001529}.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow{opacity:.45;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s}.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow:before{background:#fff}.ant-menu-dark.ant-menu-submenu-popup{background:transparent}.ant-menu-dark .ant-menu-inline.ant-menu-sub{background:#000c17}.ant-menu-dark.ant-menu-horizontal{border-bottom:0}.ant-menu-dark.ant-menu-horizontal>.ant-menu-item,.ant-menu-dark.ant-menu-horizontal>.ant-menu-submenu{top:0;margin-top:0;padding:0 20px;border-color:#001529;border-bottom:0}.ant-menu-dark.ant-menu-horizontal>.ant-menu-item:hover{background-color:#1890ff}.ant-menu-dark.ant-menu-horizontal>.ant-menu-item>a:before{bottom:0}.ant-menu-dark .ant-menu-item,.ant-menu-dark .ant-menu-item-group-title,.ant-menu-dark .ant-menu-item>a,.ant-menu-dark .ant-menu-item>span>a{color:hsla(0,0%,100%,.65)}.ant-menu-dark.ant-menu-inline,.ant-menu-dark.ant-menu-vertical,.ant-menu-dark.ant-menu-vertical-left,.ant-menu-dark.ant-menu-vertical-right{border-right:0}.ant-menu-dark.ant-menu-inline .ant-menu-item,.ant-menu-dark.ant-menu-vertical-left .ant-menu-item,.ant-menu-dark.ant-menu-vertical-right .ant-menu-item,.ant-menu-dark.ant-menu-vertical .ant-menu-item{left:0;margin-left:0;border-right:0}.ant-menu-dark.ant-menu-inline .ant-menu-item:after,.ant-menu-dark.ant-menu-vertical-left .ant-menu-item:after,.ant-menu-dark.ant-menu-vertical-right .ant-menu-item:after,.ant-menu-dark.ant-menu-vertical .ant-menu-item:after{border-right:0}.ant-menu-dark.ant-menu-inline .ant-menu-item,.ant-menu-dark.ant-menu-inline .ant-menu-submenu-title{width:100%}.ant-menu-dark .ant-menu-item-active,.ant-menu-dark .ant-menu-item:hover,.ant-menu-dark .ant-menu-submenu-active,.ant-menu-dark .ant-menu-submenu-open,.ant-menu-dark .ant-menu-submenu-selected,.ant-menu-dark .ant-menu-submenu-title:hover{color:#fff;background-color:transparent}.ant-menu-dark .ant-menu-item-active>a,.ant-menu-dark .ant-menu-item-active>span>a,.ant-menu-dark .ant-menu-item:hover>a,.ant-menu-dark .ant-menu-item:hover>span>a,.ant-menu-dark .ant-menu-submenu-active>a,.ant-menu-dark .ant-menu-submenu-active>span>a,.ant-menu-dark .ant-menu-submenu-open>a,.ant-menu-dark .ant-menu-submenu-open>span>a,.ant-menu-dark .ant-menu-submenu-selected>a,.ant-menu-dark .ant-menu-submenu-selected>span>a,.ant-menu-dark .ant-menu-submenu-title:hover>a,.ant-menu-dark .ant-menu-submenu-title:hover>span>a{color:#fff}.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow{opacity:1}.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before{background:#fff}.ant-menu-dark .ant-menu-item:hover{background-color:transparent}.ant-menu-dark.ant-menu-dark:not(.ant-menu-horizontal) .ant-menu-item-selected{background-color:#1890ff}.ant-menu-dark .ant-menu-item-selected{color:#fff;border-right:0}.ant-menu-dark .ant-menu-item-selected:after{border-right:0}.ant-menu-dark .ant-menu-item-selected .ant-menu-item-icon,.ant-menu-dark .ant-menu-item-selected .ant-menu-item-icon+span,.ant-menu-dark .ant-menu-item-selected .anticon,.ant-menu-dark .ant-menu-item-selected .anticon+span,.ant-menu-dark .ant-menu-item-selected>a,.ant-menu-dark .ant-menu-item-selected>a:hover,.ant-menu-dark .ant-menu-item-selected>span>a,.ant-menu-dark .ant-menu-item-selected>span>a:hover{color:#fff}.ant-menu-submenu-popup.ant-menu-dark .ant-menu-item-selected,.ant-menu.ant-menu-dark .ant-menu-item-selected{background-color:#1890ff}.ant-menu-dark .ant-menu-item-disabled,.ant-menu-dark .ant-menu-item-disabled>a,.ant-menu-dark .ant-menu-item-disabled>span>a,.ant-menu-dark .ant-menu-submenu-disabled,.ant-menu-dark .ant-menu-submenu-disabled>a,.ant-menu-dark .ant-menu-submenu-disabled>span>a{color:hsla(0,0%,100%,.35)!important;opacity:.8}.ant-menu-dark .ant-menu-item-disabled>.ant-menu-submenu-title,.ant-menu-dark .ant-menu-submenu-disabled>.ant-menu-submenu-title{color:hsla(0,0%,100%,.35)!important}.ant-menu-dark .ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before{background:hsla(0,0%,100%,.35)!important}.ant-menu.ant-menu-rtl{direction:rtl;text-align:right}.ant-menu-rtl .ant-menu-item-group-title{text-align:right}.ant-menu-rtl.ant-menu-inline,.ant-menu-rtl.ant-menu-vertical{border-right:none;border-left:1px solid #f0f0f0}.ant-menu-rtl.ant-menu-dark.ant-menu-inline,.ant-menu-rtl.ant-menu-dark.ant-menu-vertical{border-left:none}.ant-menu-rtl.ant-menu-vertical-left.ant-menu-sub>.ant-menu-item,.ant-menu-rtl.ant-menu-vertical-left.ant-menu-sub>.ant-menu-submenu,.ant-menu-rtl.ant-menu-vertical-right.ant-menu-sub>.ant-menu-item,.ant-menu-rtl.ant-menu-vertical-right.ant-menu-sub>.ant-menu-submenu,.ant-menu-rtl.ant-menu-vertical.ant-menu-sub>.ant-menu-item,.ant-menu-rtl.ant-menu-vertical.ant-menu-sub>.ant-menu-submenu{-webkit-transform-origin:top right;-moz-transform-origin:top right;transform-origin:top right}.ant-menu-rtl .ant-menu-item .ant-menu-item-icon,.ant-menu-rtl .ant-menu-item .anticon,.ant-menu-rtl .ant-menu-submenu-title .ant-menu-item-icon,.ant-menu-rtl .ant-menu-submenu-title .anticon{margin-right:auto;margin-left:10px}.ant-menu-rtl .ant-menu-item.ant-menu-item-only-child>.ant-menu-item-icon,.ant-menu-rtl .ant-menu-item.ant-menu-item-only-child>.anticon,.ant-menu-rtl .ant-menu-submenu-title.ant-menu-item-only-child>.ant-menu-item-icon,.ant-menu-rtl .ant-menu-submenu-title.ant-menu-item-only-child>.anticon{margin-left:0}.ant-menu-submenu-rtl.ant-menu-submenu-popup{-webkit-transform-origin:100% 0;-moz-transform-origin:100% 0;transform-origin:100% 0}.ant-menu-rtl .ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-rtl .ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-rtl .ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-rtl .ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow{right:auto;left:16px}.ant-menu-rtl .ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu-rtl .ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu-rtl .ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow:before{-webkit-transform:rotate(-45deg) translateY(-2px);-moz-transform:rotate(-45deg) translateY(-2px);transform:rotate(-45deg) translateY(-2px)}.ant-menu-rtl .ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-rtl .ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-rtl .ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow:after{-webkit-transform:rotate(45deg) translateY(2px);-moz-transform:rotate(45deg) translateY(2px);transform:rotate(45deg) translateY(2px)}.ant-menu-rtl.ant-menu-inline .ant-menu-item:after,.ant-menu-rtl.ant-menu-vertical-left .ant-menu-item:after,.ant-menu-rtl.ant-menu-vertical-right .ant-menu-item:after,.ant-menu-rtl.ant-menu-vertical .ant-menu-item:after{right:auto;left:0}.ant-menu-rtl.ant-menu-inline .ant-menu-item,.ant-menu-rtl.ant-menu-inline .ant-menu-submenu-title,.ant-menu-rtl.ant-menu-vertical-left .ant-menu-item,.ant-menu-rtl.ant-menu-vertical-left .ant-menu-submenu-title,.ant-menu-rtl.ant-menu-vertical-right .ant-menu-item,.ant-menu-rtl.ant-menu-vertical-right .ant-menu-submenu-title,.ant-menu-rtl.ant-menu-vertical .ant-menu-item,.ant-menu-rtl.ant-menu-vertical .ant-menu-submenu-title{text-align:right}.ant-menu-rtl.ant-menu-inline .ant-menu-submenu-title{padding-right:0;padding-left:34px}.ant-menu-rtl.ant-menu-vertical .ant-menu-submenu-title{padding-right:16px;padding-left:34px}.ant-menu-rtl.ant-menu-inline-collapsed.ant-menu-vertical .ant-menu-submenu-title{padding:0 calc(50% - 16px / 2)}.ant-menu-rtl .ant-menu-item-group-list .ant-menu-item,.ant-menu-rtl .ant-menu-item-group-list .ant-menu-submenu-title{padding:0 28px 0 16px}.ant-menu-sub.ant-menu-inline{border:0}.ant-menu-rtl.ant-menu-sub.ant-menu-inline .ant-menu-item-group-title{padding-right:32px;padding-left:0}.ant-tooltip{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";position:absolute;z-index:1070;display:block;width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:250px;visibility:visible}.ant-tooltip-hidden{display:none}.ant-tooltip-placement-top,.ant-tooltip-placement-topLeft,.ant-tooltip-placement-topRight{padding-bottom:8px}.ant-tooltip-placement-right,.ant-tooltip-placement-rightBottom,.ant-tooltip-placement-rightTop{padding-left:8px}.ant-tooltip-placement-bottom,.ant-tooltip-placement-bottomLeft,.ant-tooltip-placement-bottomRight{padding-top:8px}.ant-tooltip-placement-left,.ant-tooltip-placement-leftBottom,.ant-tooltip-placement-leftTop{padding-right:8px}.ant-tooltip-inner{min-width:30px;min-height:32px;padding:6px 8px;color:#fff;text-align:left;text-decoration:none;word-wrap:break-word;background-color:rgba(0,0,0,.75);border-radius:2px;-webkit-box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05)}.ant-tooltip-arrow{position:absolute;display:block;width:13.07106781px;height:13.07106781px;overflow:hidden;background:transparent;pointer-events:none}.ant-tooltip-arrow-content{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:5px;height:5px;margin:auto;background-color:rgba(0,0,0,.75);content:"";pointer-events:auto}.ant-tooltip-placement-top .ant-tooltip-arrow,.ant-tooltip-placement-topLeft .ant-tooltip-arrow,.ant-tooltip-placement-topRight .ant-tooltip-arrow{bottom:-5.07106781px}.ant-tooltip-placement-top .ant-tooltip-arrow-content,.ant-tooltip-placement-topLeft .ant-tooltip-arrow-content,.ant-tooltip-placement-topRight .ant-tooltip-arrow-content{-webkit-box-shadow:3px 3px 7px rgba(0,0,0,.07);box-shadow:3px 3px 7px rgba(0,0,0,.07);-webkit-transform:translateY(-6.53553391px) rotate(45deg);-moz-transform:translateY(-6.53553391px) rotate(45deg);transform:translateY(-6.53553391px) rotate(45deg)}.ant-tooltip-placement-top .ant-tooltip-arrow{left:50%;-webkit-transform:translateX(-50%);-moz-transform:translateX(-50%);transform:translateX(-50%)}.ant-tooltip-placement-topLeft .ant-tooltip-arrow{left:13px}.ant-tooltip-placement-topRight .ant-tooltip-arrow{right:13px}.ant-tooltip-placement-right .ant-tooltip-arrow,.ant-tooltip-placement-rightBottom .ant-tooltip-arrow,.ant-tooltip-placement-rightTop .ant-tooltip-arrow{left:-5.07106781px}.ant-tooltip-placement-right .ant-tooltip-arrow-content,.ant-tooltip-placement-rightBottom .ant-tooltip-arrow-content,.ant-tooltip-placement-rightTop .ant-tooltip-arrow-content{-webkit-box-shadow:-3px 3px 7px rgba(0,0,0,.07);box-shadow:-3px 3px 7px rgba(0,0,0,.07);-webkit-transform:translateX(6.53553391px) rotate(45deg);-moz-transform:translateX(6.53553391px) rotate(45deg);transform:translateX(6.53553391px) rotate(45deg)}.ant-tooltip-placement-right .ant-tooltip-arrow{top:50%;-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);transform:translateY(-50%)}.ant-tooltip-placement-rightTop .ant-tooltip-arrow{top:5px}.ant-tooltip-placement-rightBottom .ant-tooltip-arrow{bottom:5px}.ant-tooltip-placement-left .ant-tooltip-arrow,.ant-tooltip-placement-leftBottom .ant-tooltip-arrow,.ant-tooltip-placement-leftTop .ant-tooltip-arrow{right:-5.07106781px}.ant-tooltip-placement-left .ant-tooltip-arrow-content,.ant-tooltip-placement-leftBottom .ant-tooltip-arrow-content,.ant-tooltip-placement-leftTop .ant-tooltip-arrow-content{-webkit-box-shadow:3px -3px 7px rgba(0,0,0,.07);box-shadow:3px -3px 7px rgba(0,0,0,.07);-webkit-transform:translateX(-6.53553391px) rotate(45deg);-moz-transform:translateX(-6.53553391px) rotate(45deg);transform:translateX(-6.53553391px) rotate(45deg)}.ant-tooltip-placement-left .ant-tooltip-arrow{top:50%;-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);transform:translateY(-50%)}.ant-tooltip-placement-leftTop .ant-tooltip-arrow{top:5px}.ant-tooltip-placement-leftBottom .ant-tooltip-arrow{bottom:5px}.ant-tooltip-placement-bottom .ant-tooltip-arrow,.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow,.ant-tooltip-placement-bottomRight .ant-tooltip-arrow{top:-5.07106781px}.ant-tooltip-placement-bottom .ant-tooltip-arrow-content,.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow-content,.ant-tooltip-placement-bottomRight .ant-tooltip-arrow-content{-webkit-box-shadow:-3px -3px 7px rgba(0,0,0,.07);box-shadow:-3px -3px 7px rgba(0,0,0,.07);-webkit-transform:translateY(6.53553391px) rotate(45deg);-moz-transform:translateY(6.53553391px) rotate(45deg);transform:translateY(6.53553391px) rotate(45deg)}.ant-tooltip-placement-bottom .ant-tooltip-arrow{left:50%;-webkit-transform:translateX(-50%);-moz-transform:translateX(-50%);transform:translateX(-50%)}.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow{left:13px}.ant-tooltip-placement-bottomRight .ant-tooltip-arrow{right:13px}.ant-tooltip-magenta .ant-tooltip-arrow-content,.ant-tooltip-magenta .ant-tooltip-inner,.ant-tooltip-pink .ant-tooltip-arrow-content,.ant-tooltip-pink .ant-tooltip-inner{background-color:#eb2f96}.ant-tooltip-red .ant-tooltip-arrow-content,.ant-tooltip-red .ant-tooltip-inner{background-color:#f5222d}.ant-tooltip-volcano .ant-tooltip-arrow-content,.ant-tooltip-volcano .ant-tooltip-inner{background-color:#fa541c}.ant-tooltip-orange .ant-tooltip-arrow-content,.ant-tooltip-orange .ant-tooltip-inner{background-color:#fa8c16}.ant-tooltip-yellow .ant-tooltip-arrow-content,.ant-tooltip-yellow .ant-tooltip-inner{background-color:#fadb14}.ant-tooltip-gold .ant-tooltip-arrow-content,.ant-tooltip-gold .ant-tooltip-inner{background-color:#faad14}.ant-tooltip-cyan .ant-tooltip-arrow-content,.ant-tooltip-cyan .ant-tooltip-inner{background-color:#13c2c2}.ant-tooltip-lime .ant-tooltip-arrow-content,.ant-tooltip-lime .ant-tooltip-inner{background-color:#a0d911}.ant-tooltip-green .ant-tooltip-arrow-content,.ant-tooltip-green .ant-tooltip-inner{background-color:#52c41a}.ant-tooltip-blue .ant-tooltip-arrow-content,.ant-tooltip-blue .ant-tooltip-inner{background-color:#1890ff}.ant-tooltip-geekblue .ant-tooltip-arrow-content,.ant-tooltip-geekblue .ant-tooltip-inner{background-color:#2f54eb}.ant-tooltip-purple .ant-tooltip-arrow-content,.ant-tooltip-purple .ant-tooltip-inner{background-color:#722ed1}.ant-tooltip-rtl{direction:rtl}.ant-tooltip-rtl .ant-tooltip-inner{text-align:right}.ant-dropdown-menu-item.ant-dropdown-menu-item-danger{color:#ff4d4f}.ant-dropdown-menu-item.ant-dropdown-menu-item-danger:hover{color:#fff;background-color:#ff4d4f}.ant-dropdown{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";position:absolute;top:-9999px;left:-9999px;z-index:1050;display:block}.ant-dropdown:before{position:absolute;top:-4px;right:0;bottom:-4px;left:-7px;z-index:-9999;opacity:.0001;content:" "}.ant-dropdown-wrap{position:relative}.ant-dropdown-wrap .ant-btn>.anticon-down{font-size:10px}.ant-dropdown-wrap .anticon-down:before{-webkit-transition:-webkit-transform .2s;transition:-webkit-transform .2s;-moz-transition:transform .2s,-moz-transform .2s;transition:transform .2s;transition:transform .2s,-webkit-transform .2s,-moz-transform .2s}.ant-dropdown-wrap-open .anticon-down:before{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);transform:rotate(180deg)}.ant-dropdown-hidden,.ant-dropdown-menu-hidden,.ant-dropdown-menu-submenu-hidden{display:none}.ant-dropdown-show-arrow.ant-dropdown-placement-topCenter,.ant-dropdown-show-arrow.ant-dropdown-placement-topLeft,.ant-dropdown-show-arrow.ant-dropdown-placement-topRight{padding-bottom:10px}.ant-dropdown-show-arrow.ant-dropdown-placement-bottomCenter,.ant-dropdown-show-arrow.ant-dropdown-placement-bottomLeft,.ant-dropdown-show-arrow.ant-dropdown-placement-bottomRight{padding-top:10px}.ant-dropdown-arrow{position:absolute;z-index:1;display:block;width:8.48528137px;height:8.48528137px;background:transparent;border-style:solid;border-width:4.24264069px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);transform:rotate(45deg)}.ant-dropdown-placement-topCenter>.ant-dropdown-arrow,.ant-dropdown-placement-topLeft>.ant-dropdown-arrow,.ant-dropdown-placement-topRight>.ant-dropdown-arrow{bottom:6.2px;border-color:transparent #fff #fff transparent;-webkit-box-shadow:3px 3px 7px rgba(0,0,0,.07);box-shadow:3px 3px 7px rgba(0,0,0,.07)}.ant-dropdown-placement-topCenter>.ant-dropdown-arrow{left:50%;-webkit-transform:translateX(-50%) rotate(45deg);-moz-transform:translateX(-50%) rotate(45deg);transform:translateX(-50%) rotate(45deg)}.ant-dropdown-placement-topLeft>.ant-dropdown-arrow{left:16px}.ant-dropdown-placement-topRight>.ant-dropdown-arrow{right:16px}.ant-dropdown-placement-bottomCenter>.ant-dropdown-arrow,.ant-dropdown-placement-bottomLeft>.ant-dropdown-arrow,.ant-dropdown-placement-bottomRight>.ant-dropdown-arrow{top:6px;border-color:#fff transparent transparent #fff;-webkit-box-shadow:-2px -2px 5px rgba(0,0,0,.06);box-shadow:-2px -2px 5px rgba(0,0,0,.06)}.ant-dropdown-placement-bottomCenter>.ant-dropdown-arrow{left:50%;-webkit-transform:translateX(-50%) rotate(45deg);-moz-transform:translateX(-50%) rotate(45deg);transform:translateX(-50%) rotate(45deg)}.ant-dropdown-placement-bottomLeft>.ant-dropdown-arrow{left:16px}.ant-dropdown-placement-bottomRight>.ant-dropdown-arrow{right:16px}.ant-dropdown-menu{position:relative;margin:0;padding:4px 0;text-align:left;list-style-type:none;background-color:#fff;background-clip:padding-box;border-radius:2px;outline:none;-webkit-box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05)}.ant-dropdown-menu-item-group-title{padding:5px 12px;color:rgba(0,0,0,.45);-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s}.ant-dropdown-menu-submenu-popup{position:absolute;z-index:1050;background:transparent;-webkit-box-shadow:none;box-shadow:none;-webkit-transform-origin:0 0;-moz-transform-origin:0 0;transform-origin:0 0}.ant-dropdown-menu-submenu-popup li,.ant-dropdown-menu-submenu-popup ul{list-style:none}.ant-dropdown-menu-submenu-popup ul{margin-right:.3em;margin-left:.3em}.ant-dropdown-menu-item{position:relative;display:-moz-box;display:flex;-moz-box-align:center;align-items:center}.ant-dropdown-menu-item-icon{min-width:12px;margin-right:8px;font-size:12px}.ant-dropdown-menu-title-content{-moz-box-flex:1;flex:auto}.ant-dropdown-menu-title-content>a{color:inherit;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s}.ant-dropdown-menu-title-content>a:hover{color:inherit}.ant-dropdown-menu-title-content>a:after{position:absolute;top:0;right:0;bottom:0;left:0;content:""}.ant-dropdown-menu-item,.ant-dropdown-menu-submenu-title{clear:both;margin:0;padding:5px 12px;color:rgba(0,0,0,.85);font-weight:400;font-size:14px;line-height:22px;white-space:nowrap;cursor:pointer;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s}.ant-dropdown-menu-item-selected,.ant-dropdown-menu-submenu-title-selected{color:#1890ff;background-color:#e6f7ff}.ant-dropdown-menu-item:hover,.ant-dropdown-menu-submenu-title:hover{background-color:#f5f5f5}.ant-dropdown-menu-item-disabled,.ant-dropdown-menu-submenu-title-disabled{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-dropdown-menu-item-disabled:hover,.ant-dropdown-menu-submenu-title-disabled:hover{color:rgba(0,0,0,.25);background-color:#fff;cursor:not-allowed}.ant-dropdown-menu-item-disabled a,.ant-dropdown-menu-submenu-title-disabled a{pointer-events:none}.ant-dropdown-menu-item-divider,.ant-dropdown-menu-submenu-title-divider{height:1px;margin:4px 0;overflow:hidden;line-height:0;background-color:#f0f0f0}.ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon,.ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon{position:absolute;right:8px}.ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon,.ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon{margin-right:0!important;color:rgba(0,0,0,.45);font-size:10px;font-style:normal}.ant-dropdown-menu-item-group-list{margin:0 8px;padding:0;list-style:none}.ant-dropdown-menu-submenu-title{padding-right:24px}.ant-dropdown-menu-submenu-vertical{position:relative}.ant-dropdown-menu-submenu-vertical>.ant-dropdown-menu{position:absolute;top:0;left:100%;min-width:100%;margin-left:4px;-webkit-transform-origin:0 0;-moz-transform-origin:0 0;transform-origin:0 0}.ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title,.ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow-icon{color:rgba(0,0,0,.25);background-color:#fff;cursor:not-allowed}.ant-dropdown-menu-submenu-selected .ant-dropdown-menu-submenu-title{color:#1890ff}.ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottomCenter,.ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottomLeft,.ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottomRight,.ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottomCenter,.ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottomLeft,.ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottomRight{-webkit-animation-name:antSlideUpIn;-moz-animation-name:antSlideUpIn;animation-name:antSlideUpIn}.ant-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-dropdown-placement-topCenter,.ant-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-dropdown-placement-topLeft,.ant-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-dropdown-placement-topRight,.ant-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-dropdown-placement-topCenter,.ant-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-dropdown-placement-topLeft,.ant-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-dropdown-placement-topRight{-webkit-animation-name:antSlideDownIn;-moz-animation-name:antSlideDownIn;animation-name:antSlideDownIn}.ant-dropdown.ant-slide-down-leave.ant-slide-down-leave-active.ant-dropdown-placement-bottomCenter,.ant-dropdown.ant-slide-down-leave.ant-slide-down-leave-active.ant-dropdown-placement-bottomLeft,.ant-dropdown.ant-slide-down-leave.ant-slide-down-leave-active.ant-dropdown-placement-bottomRight{-webkit-animation-name:antSlideUpOut;-moz-animation-name:antSlideUpOut;animation-name:antSlideUpOut}.ant-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-dropdown-placement-topCenter,.ant-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-dropdown-placement-topLeft,.ant-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-dropdown-placement-topRight{-webkit-animation-name:antSlideDownOut;-moz-animation-name:antSlideDownOut;animation-name:antSlideDownOut}.ant-dropdown-button>.anticon.anticon-down,.ant-dropdown-link>.anticon.anticon-down,.ant-dropdown-trigger>.anticon.anticon-down{font-size:10px;vertical-align:baseline}.ant-dropdown-button{white-space:nowrap}.ant-dropdown-button.ant-btn-group>.ant-btn-loading,.ant-dropdown-button.ant-btn-group>.ant-btn-loading+.ant-btn{cursor:default;pointer-events:none}.ant-dropdown-button.ant-btn-group>.ant-btn-loading+.ant-btn:before{display:block}.ant-dropdown-button.ant-btn-group>.ant-btn:last-child:not(:first-child):not(.ant-btn-icon-only){padding-right:8px;padding-left:8px}.ant-dropdown-menu-dark,.ant-dropdown-menu-dark .ant-dropdown-menu{background:#001529}.ant-dropdown-menu-dark .ant-dropdown-menu-item,.ant-dropdown-menu-dark .ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow:after,.ant-dropdown-menu-dark .ant-dropdown-menu-item>.anticon+span>a,.ant-dropdown-menu-dark .ant-dropdown-menu-item>.anticon+span>a .ant-dropdown-menu-submenu-arrow:after,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a .ant-dropdown-menu-submenu-arrow:after,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow:after{color:hsla(0,0%,100%,.65)}.ant-dropdown-menu-dark .ant-dropdown-menu-item:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item>.anticon+span>a:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title:hover{color:#fff;background:transparent}.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected,.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected>a{color:#fff;background:#1890ff}.ant-dropdown-rtl{direction:rtl}.ant-dropdown-rtl.ant-dropdown:before{right:-7px;left:0}.ant-dropdown-menu-submenu-rtl .ant-dropdown-menu-item-group-title,.ant-dropdown-menu.ant-dropdown-menu-rtl,.ant-dropdown-rtl .ant-dropdown-menu-item-group-title{direction:rtl;text-align:right}.ant-dropdown-menu-submenu-popup.ant-dropdown-menu-submenu-rtl{-webkit-transform-origin:100% 0;-moz-transform-origin:100% 0;transform-origin:100% 0}.ant-dropdown-rtl .ant-dropdown-menu-item,.ant-dropdown-rtl .ant-dropdown-menu-submenu-popup li,.ant-dropdown-rtl .ant-dropdown-menu-submenu-popup ul,.ant-dropdown-rtl .ant-dropdown-menu-submenu-title{text-align:right}.ant-dropdown-rtl .ant-dropdown-menu-item>.anticon:first-child,.ant-dropdown-rtl .ant-dropdown-menu-item>span>.anticon:first-child,.ant-dropdown-rtl .ant-dropdown-menu-submenu-title>.anticon:first-child,.ant-dropdown-rtl .ant-dropdown-menu-submenu-title>span>.anticon:first-child{margin-right:0;margin-left:8px}.ant-dropdown-rtl .ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon,.ant-dropdown-rtl .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon{right:auto;left:8px}.ant-dropdown-rtl .ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon,.ant-dropdown-rtl .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon{margin-left:0!important;-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);transform:scaleX(-1)}.ant-dropdown-rtl .ant-dropdown-menu-submenu-title{padding-right:12px;padding-left:24px}.ant-dropdown-rtl .ant-dropdown-menu-submenu-vertical>.ant-dropdown-menu{right:100%;left:0;margin-right:4px;margin-left:0}.ant-btn{line-height:1.5715;position:relative;display:inline-block;font-weight:400;white-space:nowrap;text-align:center;background-image:none;-webkit-box-shadow:0 2px 0 rgba(0,0,0,.015);box-shadow:0 2px 0 rgba(0,0,0,.015);cursor:pointer;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);-moz-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;touch-action:manipulation;height:32px;padding:4px 15px;font-size:14px;border-radius:2px;color:rgba(0,0,0,.85);border:1px solid #d9d9d9;background:#fff}.ant-btn>.anticon{line-height:1}.ant-btn,.ant-btn:active,.ant-btn:focus{outline:0}.ant-btn:not([disabled]):hover{text-decoration:none}.ant-btn:not([disabled]):active{outline:0;-webkit-box-shadow:none;box-shadow:none}.ant-btn[disabled]{cursor:not-allowed}.ant-btn[disabled]>*{pointer-events:none}.ant-btn-lg{height:40px;padding:6.4px 15px;font-size:16px;border-radius:2px}.ant-btn-sm{height:24px;padding:0 7px;font-size:14px;border-radius:2px}.ant-btn>a:only-child{color:currentColor}.ant-btn>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn:focus,.ant-btn:hover{color:#40a9ff;border-color:#40a9ff;background:#fff}.ant-btn:focus>a:only-child,.ant-btn:hover>a:only-child{color:currentColor}.ant-btn:focus>a:only-child:after,.ant-btn:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn:active{color:#096dd9;border-color:#096dd9;background:#fff}.ant-btn:active>a:only-child{color:currentColor}.ant-btn:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn[disabled],.ant-btn[disabled]:active,.ant-btn[disabled]:focus,.ant-btn[disabled]:hover{color:rgba(0,0,0,.25);border-color:#d9d9d9;background:#f5f5f5;text-shadow:none;-webkit-box-shadow:none;box-shadow:none}.ant-btn[disabled]:active>a:only-child,.ant-btn[disabled]:focus>a:only-child,.ant-btn[disabled]:hover>a:only-child,.ant-btn[disabled]>a:only-child{color:currentColor}.ant-btn[disabled]:active>a:only-child:after,.ant-btn[disabled]:focus>a:only-child:after,.ant-btn[disabled]:hover>a:only-child:after,.ant-btn[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn:active,.ant-btn:focus,.ant-btn:hover{text-decoration:none;background:#fff}.ant-btn>span{display:inline-block}.ant-btn-primary{color:#fff;border-color:#1890ff;background:#1890ff;text-shadow:0 -1px 0 rgba(0,0,0,.12);-webkit-box-shadow:0 2px 0 rgba(0,0,0,.045);box-shadow:0 2px 0 rgba(0,0,0,.045)}.ant-btn-primary>a:only-child{color:currentColor}.ant-btn-primary>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-primary:focus,.ant-btn-primary:hover{color:#fff;border-color:#40a9ff;background:#40a9ff}.ant-btn-primary:focus>a:only-child,.ant-btn-primary:hover>a:only-child{color:currentColor}.ant-btn-primary:focus>a:only-child:after,.ant-btn-primary:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-primary:active{color:#fff;border-color:#096dd9;background:#096dd9}.ant-btn-primary:active>a:only-child{color:currentColor}.ant-btn-primary:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-primary[disabled],.ant-btn-primary[disabled]:active,.ant-btn-primary[disabled]:focus,.ant-btn-primary[disabled]:hover{color:rgba(0,0,0,.25);border-color:#d9d9d9;background:#f5f5f5;text-shadow:none;-webkit-box-shadow:none;box-shadow:none}.ant-btn-primary[disabled]:active>a:only-child,.ant-btn-primary[disabled]:focus>a:only-child,.ant-btn-primary[disabled]:hover>a:only-child,.ant-btn-primary[disabled]>a:only-child{color:currentColor}.ant-btn-primary[disabled]:active>a:only-child:after,.ant-btn-primary[disabled]:focus>a:only-child:after,.ant-btn-primary[disabled]:hover>a:only-child:after,.ant-btn-primary[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child){border-right-color:#40a9ff;border-left-color:#40a9ff}.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child):disabled{border-color:#d9d9d9}.ant-btn-group .ant-btn-primary:first-child:not(:last-child){border-right-color:#40a9ff}.ant-btn-group .ant-btn-primary:first-child:not(:last-child)[disabled]{border-right-color:#d9d9d9}.ant-btn-group .ant-btn-primary+.ant-btn-primary,.ant-btn-group .ant-btn-primary:last-child:not(:first-child){border-left-color:#40a9ff}.ant-btn-group .ant-btn-primary+.ant-btn-primary[disabled],.ant-btn-group .ant-btn-primary:last-child:not(:first-child)[disabled]{border-left-color:#d9d9d9}.ant-btn-ghost{color:rgba(0,0,0,.85);border-color:#d9d9d9;background:transparent}.ant-btn-ghost>a:only-child{color:currentColor}.ant-btn-ghost>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-ghost:focus,.ant-btn-ghost:hover{color:#40a9ff;border-color:#40a9ff;background:transparent}.ant-btn-ghost:focus>a:only-child,.ant-btn-ghost:hover>a:only-child{color:currentColor}.ant-btn-ghost:focus>a:only-child:after,.ant-btn-ghost:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-ghost:active{color:#096dd9;border-color:#096dd9;background:transparent}.ant-btn-ghost:active>a:only-child{color:currentColor}.ant-btn-ghost:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-ghost[disabled],.ant-btn-ghost[disabled]:active,.ant-btn-ghost[disabled]:focus,.ant-btn-ghost[disabled]:hover{color:rgba(0,0,0,.25);border-color:#d9d9d9;background:#f5f5f5;text-shadow:none;-webkit-box-shadow:none;box-shadow:none}.ant-btn-ghost[disabled]:active>a:only-child,.ant-btn-ghost[disabled]:focus>a:only-child,.ant-btn-ghost[disabled]:hover>a:only-child,.ant-btn-ghost[disabled]>a:only-child{color:currentColor}.ant-btn-ghost[disabled]:active>a:only-child:after,.ant-btn-ghost[disabled]:focus>a:only-child:after,.ant-btn-ghost[disabled]:hover>a:only-child:after,.ant-btn-ghost[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dashed{color:rgba(0,0,0,.85);border-color:#d9d9d9;background:#fff;border-style:dashed}.ant-btn-dashed>a:only-child{color:currentColor}.ant-btn-dashed>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dashed:focus,.ant-btn-dashed:hover{color:#40a9ff;border-color:#40a9ff;background:#fff}.ant-btn-dashed:focus>a:only-child,.ant-btn-dashed:hover>a:only-child{color:currentColor}.ant-btn-dashed:focus>a:only-child:after,.ant-btn-dashed:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dashed:active{color:#096dd9;border-color:#096dd9;background:#fff}.ant-btn-dashed:active>a:only-child{color:currentColor}.ant-btn-dashed:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dashed[disabled],.ant-btn-dashed[disabled]:active,.ant-btn-dashed[disabled]:focus,.ant-btn-dashed[disabled]:hover{color:rgba(0,0,0,.25);border-color:#d9d9d9;background:#f5f5f5;text-shadow:none;-webkit-box-shadow:none;box-shadow:none}.ant-btn-dashed[disabled]:active>a:only-child,.ant-btn-dashed[disabled]:focus>a:only-child,.ant-btn-dashed[disabled]:hover>a:only-child,.ant-btn-dashed[disabled]>a:only-child{color:currentColor}.ant-btn-dashed[disabled]:active>a:only-child:after,.ant-btn-dashed[disabled]:focus>a:only-child:after,.ant-btn-dashed[disabled]:hover>a:only-child:after,.ant-btn-dashed[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-danger{color:#fff;border-color:#ff4d4f;background:#ff4d4f;text-shadow:0 -1px 0 rgba(0,0,0,.12);-webkit-box-shadow:0 2px 0 rgba(0,0,0,.045);box-shadow:0 2px 0 rgba(0,0,0,.045)}.ant-btn-danger>a:only-child{color:currentColor}.ant-btn-danger>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-danger:focus,.ant-btn-danger:hover{color:#fff;border-color:#ff7875;background:#ff7875}.ant-btn-danger:focus>a:only-child,.ant-btn-danger:hover>a:only-child{color:currentColor}.ant-btn-danger:focus>a:only-child:after,.ant-btn-danger:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-danger:active{color:#fff;border-color:#d9363e;background:#d9363e}.ant-btn-danger:active>a:only-child{color:currentColor}.ant-btn-danger:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-danger[disabled],.ant-btn-danger[disabled]:active,.ant-btn-danger[disabled]:focus,.ant-btn-danger[disabled]:hover{color:rgba(0,0,0,.25);border-color:#d9d9d9;background:#f5f5f5;text-shadow:none;-webkit-box-shadow:none;box-shadow:none}.ant-btn-danger[disabled]:active>a:only-child,.ant-btn-danger[disabled]:focus>a:only-child,.ant-btn-danger[disabled]:hover>a:only-child,.ant-btn-danger[disabled]>a:only-child{color:currentColor}.ant-btn-danger[disabled]:active>a:only-child:after,.ant-btn-danger[disabled]:focus>a:only-child:after,.ant-btn-danger[disabled]:hover>a:only-child:after,.ant-btn-danger[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-link{color:#1890ff;border-color:transparent;background:transparent;-webkit-box-shadow:none;box-shadow:none}.ant-btn-link>a:only-child{color:currentColor}.ant-btn-link>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-link:focus,.ant-btn-link:hover{color:#40a9ff;border-color:#40a9ff;background:transparent}.ant-btn-link:focus>a:only-child,.ant-btn-link:hover>a:only-child{color:currentColor}.ant-btn-link:focus>a:only-child:after,.ant-btn-link:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-link:active{color:#096dd9;border-color:#096dd9;background:transparent}.ant-btn-link:active>a:only-child{color:currentColor}.ant-btn-link:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-link[disabled],.ant-btn-link[disabled]:active,.ant-btn-link[disabled]:focus,.ant-btn-link[disabled]:hover{border-color:#d9d9d9;background:#f5f5f5}.ant-btn-link:hover{background:transparent}.ant-btn-link:active,.ant-btn-link:focus,.ant-btn-link:hover{border-color:transparent}.ant-btn-link[disabled],.ant-btn-link[disabled]:active,.ant-btn-link[disabled]:focus,.ant-btn-link[disabled]:hover{color:rgba(0,0,0,.25);border-color:transparent;background:transparent;text-shadow:none;-webkit-box-shadow:none;box-shadow:none}.ant-btn-link[disabled]:active>a:only-child,.ant-btn-link[disabled]:focus>a:only-child,.ant-btn-link[disabled]:hover>a:only-child,.ant-btn-link[disabled]>a:only-child{color:currentColor}.ant-btn-link[disabled]:active>a:only-child:after,.ant-btn-link[disabled]:focus>a:only-child:after,.ant-btn-link[disabled]:hover>a:only-child:after,.ant-btn-link[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-text{color:rgba(0,0,0,.85);border-color:transparent;background:transparent;-webkit-box-shadow:none;box-shadow:none}.ant-btn-text>a:only-child{color:currentColor}.ant-btn-text>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-text:focus,.ant-btn-text:hover{color:#40a9ff;border-color:#40a9ff;background:transparent}.ant-btn-text:focus>a:only-child,.ant-btn-text:hover>a:only-child{color:currentColor}.ant-btn-text:focus>a:only-child:after,.ant-btn-text:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-text:active{color:#096dd9;border-color:#096dd9;background:transparent}.ant-btn-text:active>a:only-child{color:currentColor}.ant-btn-text:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-text[disabled],.ant-btn-text[disabled]:active,.ant-btn-text[disabled]:focus,.ant-btn-text[disabled]:hover{border-color:#d9d9d9;background:#f5f5f5}.ant-btn-text:focus,.ant-btn-text:hover{color:rgba(0,0,0,.85);background:rgba(0,0,0,.018);border-color:transparent}.ant-btn-text:active{color:rgba(0,0,0,.85);background:rgba(0,0,0,.028);border-color:transparent}.ant-btn-text[disabled],.ant-btn-text[disabled]:active,.ant-btn-text[disabled]:focus,.ant-btn-text[disabled]:hover{color:rgba(0,0,0,.25);border-color:transparent;background:transparent;text-shadow:none;-webkit-box-shadow:none;box-shadow:none}.ant-btn-text[disabled]:active>a:only-child,.ant-btn-text[disabled]:focus>a:only-child,.ant-btn-text[disabled]:hover>a:only-child,.ant-btn-text[disabled]>a:only-child{color:currentColor}.ant-btn-text[disabled]:active>a:only-child:after,.ant-btn-text[disabled]:focus>a:only-child:after,.ant-btn-text[disabled]:hover>a:only-child:after,.ant-btn-text[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous{color:#ff4d4f;border-color:#ff4d4f;background:#fff}.ant-btn-dangerous>a:only-child{color:currentColor}.ant-btn-dangerous>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous:focus,.ant-btn-dangerous:hover{color:#ff7875;border-color:#ff7875;background:#fff}.ant-btn-dangerous:focus>a:only-child,.ant-btn-dangerous:hover>a:only-child{color:currentColor}.ant-btn-dangerous:focus>a:only-child:after,.ant-btn-dangerous:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous:active{color:#d9363e;border-color:#d9363e;background:#fff}.ant-btn-dangerous:active>a:only-child{color:currentColor}.ant-btn-dangerous:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous[disabled],.ant-btn-dangerous[disabled]:active,.ant-btn-dangerous[disabled]:focus,.ant-btn-dangerous[disabled]:hover{color:rgba(0,0,0,.25);border-color:#d9d9d9;background:#f5f5f5;text-shadow:none;-webkit-box-shadow:none;box-shadow:none}.ant-btn-dangerous[disabled]:active>a:only-child,.ant-btn-dangerous[disabled]:focus>a:only-child,.ant-btn-dangerous[disabled]:hover>a:only-child,.ant-btn-dangerous[disabled]>a:only-child{color:currentColor}.ant-btn-dangerous[disabled]:active>a:only-child:after,.ant-btn-dangerous[disabled]:focus>a:only-child:after,.ant-btn-dangerous[disabled]:hover>a:only-child:after,.ant-btn-dangerous[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous.ant-btn-primary{color:#fff;border-color:#ff4d4f;background:#ff4d4f;text-shadow:0 -1px 0 rgba(0,0,0,.12);-webkit-box-shadow:0 2px 0 rgba(0,0,0,.045);box-shadow:0 2px 0 rgba(0,0,0,.045)}.ant-btn-dangerous.ant-btn-primary>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-primary>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous.ant-btn-primary:focus,.ant-btn-dangerous.ant-btn-primary:hover{color:#fff;border-color:#ff7875;background:#ff7875}.ant-btn-dangerous.ant-btn-primary:focus>a:only-child,.ant-btn-dangerous.ant-btn-primary:hover>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-primary:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-primary:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous.ant-btn-primary:active{color:#fff;border-color:#d9363e;background:#d9363e}.ant-btn-dangerous.ant-btn-primary:active>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-primary:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous.ant-btn-primary[disabled],.ant-btn-dangerous.ant-btn-primary[disabled]:active,.ant-btn-dangerous.ant-btn-primary[disabled]:focus,.ant-btn-dangerous.ant-btn-primary[disabled]:hover{color:rgba(0,0,0,.25);border-color:#d9d9d9;background:#f5f5f5;text-shadow:none;-webkit-box-shadow:none;box-shadow:none}.ant-btn-dangerous.ant-btn-primary[disabled]:active>a:only-child,.ant-btn-dangerous.ant-btn-primary[disabled]:focus>a:only-child,.ant-btn-dangerous.ant-btn-primary[disabled]:hover>a:only-child,.ant-btn-dangerous.ant-btn-primary[disabled]>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-primary[disabled]:active>a:only-child:after,.ant-btn-dangerous.ant-btn-primary[disabled]:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-primary[disabled]:hover>a:only-child:after,.ant-btn-dangerous.ant-btn-primary[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous.ant-btn-link{color:#ff4d4f;border-color:transparent;background:transparent;-webkit-box-shadow:none;box-shadow:none}.ant-btn-dangerous.ant-btn-link>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-link>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous.ant-btn-link:focus,.ant-btn-dangerous.ant-btn-link:hover{color:#40a9ff;border-color:#40a9ff}.ant-btn-dangerous.ant-btn-link:active{color:#096dd9;border-color:#096dd9}.ant-btn-dangerous.ant-btn-link[disabled],.ant-btn-dangerous.ant-btn-link[disabled]:active,.ant-btn-dangerous.ant-btn-link[disabled]:focus,.ant-btn-dangerous.ant-btn-link[disabled]:hover{border-color:#d9d9d9;background:#f5f5f5}.ant-btn-dangerous.ant-btn-link:focus,.ant-btn-dangerous.ant-btn-link:hover{color:#ff7875;border-color:transparent;background:transparent}.ant-btn-dangerous.ant-btn-link:focus>a:only-child,.ant-btn-dangerous.ant-btn-link:hover>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-link:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-link:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous.ant-btn-link:active{color:#d9363e;border-color:transparent;background:transparent}.ant-btn-dangerous.ant-btn-link:active>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-link:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous.ant-btn-link[disabled],.ant-btn-dangerous.ant-btn-link[disabled]:active,.ant-btn-dangerous.ant-btn-link[disabled]:focus,.ant-btn-dangerous.ant-btn-link[disabled]:hover{color:rgba(0,0,0,.25);border-color:transparent;background:transparent;text-shadow:none;-webkit-box-shadow:none;box-shadow:none}.ant-btn-dangerous.ant-btn-link[disabled]:active>a:only-child,.ant-btn-dangerous.ant-btn-link[disabled]:focus>a:only-child,.ant-btn-dangerous.ant-btn-link[disabled]:hover>a:only-child,.ant-btn-dangerous.ant-btn-link[disabled]>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-link[disabled]:active>a:only-child:after,.ant-btn-dangerous.ant-btn-link[disabled]:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-link[disabled]:hover>a:only-child:after,.ant-btn-dangerous.ant-btn-link[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous.ant-btn-text{color:#ff4d4f;border-color:transparent;background:transparent;-webkit-box-shadow:none;box-shadow:none}.ant-btn-dangerous.ant-btn-text>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-text>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous.ant-btn-text:focus,.ant-btn-dangerous.ant-btn-text:hover{color:#40a9ff;border-color:#40a9ff;background:transparent}.ant-btn-dangerous.ant-btn-text:active{color:#096dd9;border-color:#096dd9;background:transparent}.ant-btn-dangerous.ant-btn-text[disabled],.ant-btn-dangerous.ant-btn-text[disabled]:active,.ant-btn-dangerous.ant-btn-text[disabled]:focus,.ant-btn-dangerous.ant-btn-text[disabled]:hover{border-color:#d9d9d9;background:#f5f5f5}.ant-btn-dangerous.ant-btn-text:focus,.ant-btn-dangerous.ant-btn-text:hover{color:#ff7875;border-color:transparent;background:rgba(0,0,0,.018)}.ant-btn-dangerous.ant-btn-text:focus>a:only-child,.ant-btn-dangerous.ant-btn-text:hover>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-text:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-text:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous.ant-btn-text:active{color:#d9363e;border-color:transparent;background:rgba(0,0,0,.028)}.ant-btn-dangerous.ant-btn-text:active>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-text:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous.ant-btn-text[disabled],.ant-btn-dangerous.ant-btn-text[disabled]:active,.ant-btn-dangerous.ant-btn-text[disabled]:focus,.ant-btn-dangerous.ant-btn-text[disabled]:hover{color:rgba(0,0,0,.25);border-color:transparent;background:transparent;text-shadow:none;-webkit-box-shadow:none;box-shadow:none}.ant-btn-dangerous.ant-btn-text[disabled]:active>a:only-child,.ant-btn-dangerous.ant-btn-text[disabled]:focus>a:only-child,.ant-btn-dangerous.ant-btn-text[disabled]:hover>a:only-child,.ant-btn-dangerous.ant-btn-text[disabled]>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-text[disabled]:active>a:only-child:after,.ant-btn-dangerous.ant-btn-text[disabled]:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-text[disabled]:hover>a:only-child:after,.ant-btn-dangerous.ant-btn-text[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-icon-only{width:32px;height:32px;padding:2.4px 0;font-size:16px;border-radius:2px;vertical-align:-3px}.ant-btn-icon-only>*{font-size:16px}.ant-btn-icon-only.ant-btn-lg{width:40px;height:40px;padding:4.9px 0;font-size:18px;border-radius:2px}.ant-btn-icon-only.ant-btn-lg>*{font-size:18px}.ant-btn-icon-only.ant-btn-sm{width:24px;height:24px;padding:0;font-size:14px;border-radius:2px}.ant-btn-icon-only.ant-btn-sm>*{font-size:14px}.ant-btn-icon-only>.anticon{display:-moz-box;display:flex;-moz-box-pack:center;justify-content:center}a.ant-btn-icon-only{vertical-align:-1px}a.ant-btn-icon-only>.anticon{display:inline}.ant-btn-round{height:32px;padding:4px 16px;font-size:14px;border-radius:32px}.ant-btn-round.ant-btn-lg{height:40px;padding:6.4px 20px;font-size:16px;border-radius:40px}.ant-btn-round.ant-btn-sm{height:24px;padding:0 12px;font-size:14px;border-radius:24px}.ant-btn-round.ant-btn-icon-only{width:auto}.ant-btn-circle{min-width:32px;padding-right:0;padding-left:0;text-align:center;border-radius:50%}.ant-btn-circle.ant-btn-lg{min-width:40px;border-radius:50%}.ant-btn-circle.ant-btn-sm{min-width:24px;border-radius:50%}.ant-btn:before{position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;z-index:1;display:none;background:#fff;border-radius:inherit;opacity:.35;-webkit-transition:opacity .2s;-moz-transition:opacity .2s;transition:opacity .2s;content:"";pointer-events:none}.ant-btn .anticon{-webkit-transition:margin-left .3s cubic-bezier(.645,.045,.355,1);-moz-transition:margin-left .3s cubic-bezier(.645,.045,.355,1);transition:margin-left .3s cubic-bezier(.645,.045,.355,1)}.ant-btn .anticon.anticon-minus>svg,.ant-btn .anticon.anticon-plus>svg{shape-rendering:optimizeSpeed}.ant-btn.ant-btn-loading{position:relative;cursor:default}.ant-btn.ant-btn-loading:before{display:block}.ant-btn>.ant-btn-loading-icon{-webkit-transition:width .3s cubic-bezier(.645,.045,.355,1),opacity .3s cubic-bezier(.645,.045,.355,1);-moz-transition:width .3s cubic-bezier(.645,.045,.355,1),opacity .3s cubic-bezier(.645,.045,.355,1);transition:width .3s cubic-bezier(.645,.045,.355,1),opacity .3s cubic-bezier(.645,.045,.355,1)}.ant-btn>.ant-btn-loading-icon .anticon{padding-right:8px;-webkit-animation:none;-moz-animation:none;animation:none}.ant-btn>.ant-btn-loading-icon .anticon svg{-webkit-animation:loadingCircle 1s linear infinite;-moz-animation:loadingCircle 1s linear infinite;animation:loadingCircle 1s linear infinite}.ant-btn-group{display:-moz-inline-box;display:inline-flex}.ant-btn-group,.ant-btn-group>.ant-btn,.ant-btn-group>span>.ant-btn{position:relative}.ant-btn-group>.ant-btn:active,.ant-btn-group>.ant-btn:focus,.ant-btn-group>.ant-btn:hover,.ant-btn-group>span>.ant-btn:active,.ant-btn-group>span>.ant-btn:focus,.ant-btn-group>span>.ant-btn:hover{z-index:2}.ant-btn-group>.ant-btn[disabled],.ant-btn-group>span>.ant-btn[disabled]{z-index:0}.ant-btn-group .ant-btn-icon-only{font-size:14px}.ant-btn-group-lg>.ant-btn,.ant-btn-group-lg>span>.ant-btn{height:40px;padding:6.4px 15px;font-size:16px;border-radius:0}.ant-btn-group-lg .ant-btn.ant-btn-icon-only{width:40px;height:40px;padding-right:0;padding-left:0}.ant-btn-group-sm>.ant-btn,.ant-btn-group-sm>span>.ant-btn{height:24px;padding:0 7px;font-size:14px;border-radius:0}.ant-btn-group-sm>.ant-btn>.anticon,.ant-btn-group-sm>span>.ant-btn>.anticon{font-size:14px}.ant-btn-group-sm .ant-btn.ant-btn-icon-only{width:24px;height:24px;padding-right:0;padding-left:0}.ant-btn+.ant-btn-group,.ant-btn-group+.ant-btn,.ant-btn-group+.ant-btn-group,.ant-btn-group .ant-btn+.ant-btn,.ant-btn-group .ant-btn+span,.ant-btn-group>span+span,.ant-btn-group span+.ant-btn{margin-left:-1px}.ant-btn-group .ant-btn-primary+.ant-btn:not(.ant-btn-primary):not([disabled]){border-left-color:transparent}.ant-btn-group .ant-btn{border-radius:0}.ant-btn-group>.ant-btn:first-child,.ant-btn-group>span:first-child>.ant-btn{margin-left:0}.ant-btn-group>.ant-btn:only-child,.ant-btn-group>span:only-child>.ant-btn{border-radius:2px}.ant-btn-group>.ant-btn:first-child:not(:last-child),.ant-btn-group>span:first-child:not(:last-child)>.ant-btn{border-top-left-radius:2px;border-bottom-left-radius:2px}.ant-btn-group>.ant-btn:last-child:not(:first-child),.ant-btn-group>span:last-child:not(:first-child)>.ant-btn{border-top-right-radius:2px;border-bottom-right-radius:2px}.ant-btn-group-sm>.ant-btn:only-child,.ant-btn-group-sm>span:only-child>.ant-btn{border-radius:2px}.ant-btn-group-sm>.ant-btn:first-child:not(:last-child),.ant-btn-group-sm>span:first-child:not(:last-child)>.ant-btn{border-top-left-radius:2px;border-bottom-left-radius:2px}.ant-btn-group-sm>.ant-btn:last-child:not(:first-child),.ant-btn-group-sm>span:last-child:not(:first-child)>.ant-btn{border-top-right-radius:2px;border-bottom-right-radius:2px}.ant-btn-group>.ant-btn-group{float:left}.ant-btn-group>.ant-btn-group:not(:first-child):not(:last-child)>.ant-btn{border-radius:0}.ant-btn-group>.ant-btn-group:first-child:not(:last-child)>.ant-btn:last-child{padding-right:8px;border-top-right-radius:0;border-bottom-right-radius:0}.ant-btn-group>.ant-btn-group:last-child:not(:first-child)>.ant-btn:first-child{padding-left:8px;border-top-left-radius:0;border-bottom-left-radius:0}.ant-btn-group-rtl.ant-btn+.ant-btn-group,.ant-btn-group-rtl.ant-btn-group+.ant-btn,.ant-btn-group-rtl.ant-btn-group+.ant-btn-group,.ant-btn-group-rtl.ant-btn-group .ant-btn+.ant-btn,.ant-btn-group-rtl.ant-btn-group .ant-btn+span,.ant-btn-group-rtl.ant-btn-group>span+span,.ant-btn-group-rtl.ant-btn-group span+.ant-btn,.ant-btn-rtl.ant-btn+.ant-btn-group,.ant-btn-rtl.ant-btn-group+.ant-btn,.ant-btn-rtl.ant-btn-group+.ant-btn-group,.ant-btn-rtl.ant-btn-group .ant-btn+.ant-btn,.ant-btn-rtl.ant-btn-group .ant-btn+span,.ant-btn-rtl.ant-btn-group>span+span,.ant-btn-rtl.ant-btn-group span+.ant-btn{margin-right:-1px;margin-left:auto}.ant-btn-group.ant-btn-group-rtl{direction:rtl}.ant-btn-group-rtl.ant-btn-group>.ant-btn:first-child:not(:last-child),.ant-btn-group-rtl.ant-btn-group>span:first-child:not(:last-child)>.ant-btn{border-radius:0 2px 2px 0}.ant-btn-group-rtl.ant-btn-group>.ant-btn:last-child:not(:first-child),.ant-btn-group-rtl.ant-btn-group>span:last-child:not(:first-child)>.ant-btn{border-radius:2px 0 0 2px}.ant-btn-group-rtl.ant-btn-group-sm>.ant-btn:first-child:not(:last-child),.ant-btn-group-rtl.ant-btn-group-sm>span:first-child:not(:last-child)>.ant-btn{border-radius:0 2px 2px 0}.ant-btn-group-rtl.ant-btn-group-sm>.ant-btn:last-child:not(:first-child),.ant-btn-group-rtl.ant-btn-group-sm>span:last-child:not(:first-child)>.ant-btn{border-radius:2px 0 0 2px}.ant-btn:active>span,.ant-btn:focus>span{position:relative}.ant-btn>.anticon+span,.ant-btn>span+.anticon{margin-left:8px}.ant-btn.ant-btn-background-ghost{color:#fff;border-color:#fff}.ant-btn.ant-btn-background-ghost,.ant-btn.ant-btn-background-ghost:active,.ant-btn.ant-btn-background-ghost:focus,.ant-btn.ant-btn-background-ghost:hover{background:transparent}.ant-btn.ant-btn-background-ghost:focus,.ant-btn.ant-btn-background-ghost:hover{color:#40a9ff;border-color:#40a9ff}.ant-btn.ant-btn-background-ghost:active{color:#096dd9;border-color:#096dd9}.ant-btn.ant-btn-background-ghost[disabled]{color:rgba(0,0,0,.25);background:transparent;border-color:#d9d9d9}.ant-btn-background-ghost.ant-btn-primary{color:#1890ff;border-color:#1890ff;text-shadow:none}.ant-btn-background-ghost.ant-btn-primary>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-primary>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-primary:focus,.ant-btn-background-ghost.ant-btn-primary:hover{color:#40a9ff;border-color:#40a9ff}.ant-btn-background-ghost.ant-btn-primary:focus>a:only-child,.ant-btn-background-ghost.ant-btn-primary:hover>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-primary:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-primary:active{color:#096dd9;border-color:#096dd9}.ant-btn-background-ghost.ant-btn-primary:active>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-primary:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-primary[disabled],.ant-btn-background-ghost.ant-btn-primary[disabled]:active,.ant-btn-background-ghost.ant-btn-primary[disabled]:focus,.ant-btn-background-ghost.ant-btn-primary[disabled]:hover{color:rgba(0,0,0,.25);border-color:#d9d9d9;background:#f5f5f5;text-shadow:none;-webkit-box-shadow:none;box-shadow:none}.ant-btn-background-ghost.ant-btn-primary[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-primary[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-primary[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-primary[disabled]>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-primary[disabled]:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary[disabled]:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary[disabled]:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-danger{color:#ff4d4f;border-color:#ff4d4f;text-shadow:none}.ant-btn-background-ghost.ant-btn-danger>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-danger>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-danger:focus,.ant-btn-background-ghost.ant-btn-danger:hover{color:#ff7875;border-color:#ff7875}.ant-btn-background-ghost.ant-btn-danger:focus>a:only-child,.ant-btn-background-ghost.ant-btn-danger:hover>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-danger:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-danger:active{color:#d9363e;border-color:#d9363e}.ant-btn-background-ghost.ant-btn-danger:active>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-danger:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-danger[disabled],.ant-btn-background-ghost.ant-btn-danger[disabled]:active,.ant-btn-background-ghost.ant-btn-danger[disabled]:focus,.ant-btn-background-ghost.ant-btn-danger[disabled]:hover{color:rgba(0,0,0,.25);border-color:#d9d9d9;background:#f5f5f5;text-shadow:none;-webkit-box-shadow:none;box-shadow:none}.ant-btn-background-ghost.ant-btn-danger[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-danger[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-danger[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-danger[disabled]>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-danger[disabled]:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger[disabled]:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger[disabled]:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-dangerous{color:#ff4d4f;border-color:#ff4d4f;text-shadow:none}.ant-btn-background-ghost.ant-btn-dangerous>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-dangerous>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-dangerous:focus,.ant-btn-background-ghost.ant-btn-dangerous:hover{color:#ff7875;border-color:#ff7875}.ant-btn-background-ghost.ant-btn-dangerous:focus>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous:hover>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-dangerous:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-dangerous:active{color:#d9363e;border-color:#d9363e}.ant-btn-background-ghost.ant-btn-dangerous:active>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-dangerous:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-dangerous[disabled],.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:focus,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:hover{color:rgba(0,0,0,.25);border-color:#d9d9d9;background:#f5f5f5;text-shadow:none;-webkit-box-shadow:none;box-shadow:none}.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous[disabled]>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link{color:#ff4d4f;border-color:transparent;text-shadow:none}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover{color:#ff7875;border-color:transparent}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:active{color:#d9363e;border-color:transparent}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:active>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled],.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover{color:rgba(0,0,0,.25);border-color:#d9d9d9;background:#f5f5f5;text-shadow:none;-webkit-box-shadow:none;box-shadow:none}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-two-chinese-chars:first-letter{letter-spacing:.34em}.ant-btn-two-chinese-chars>:not(.anticon){margin-right:-.34em;letter-spacing:.34em}.ant-btn-block{width:100%}.ant-btn:empty{display:inline-block;width:0;visibility:hidden;content:"\a0"}a.ant-btn{padding-top:.01px!important;line-height:30px}a.ant-btn-lg{line-height:38px}a.ant-btn-sm{line-height:22px}.ant-btn-rtl{direction:rtl}.ant-btn-group-rtl.ant-btn-group .ant-btn-primary+.ant-btn-primary,.ant-btn-group-rtl.ant-btn-group .ant-btn-primary:last-child:not(:first-child){border-right-color:#40a9ff;border-left-color:#d9d9d9}.ant-btn-group-rtl.ant-btn-group .ant-btn-primary+.ant-btn-primary[disabled],.ant-btn-group-rtl.ant-btn-group .ant-btn-primary:last-child:not(:first-child)[disabled]{border-right-color:#d9d9d9;border-left-color:#40a9ff}.ant-btn-rtl.ant-btn>.ant-btn-loading-icon .anticon{padding-right:0;padding-left:8px}.ant-btn>.ant-btn-loading-icon:only-child .anticon{padding-right:0;padding-left:0}.ant-btn-rtl.ant-btn>.anticon+span,.ant-btn-rtl.ant-btn>span+.anticon{margin-right:8px;margin-left:0}.ant-picker-calendar{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";background:#fff}.ant-picker-calendar-header{display:-moz-box;display:flex;-moz-box-pack:end;justify-content:flex-end;padding:12px 0}.ant-picker-calendar-header .ant-picker-calendar-year-select{min-width:80px}.ant-picker-calendar-header .ant-picker-calendar-month-select{min-width:70px;margin-left:8px}.ant-picker-calendar-header .ant-picker-calendar-mode-switch{margin-left:8px}.ant-picker-calendar .ant-picker-panel{background:#fff;border:0;border-top:1px solid #f0f0f0;border-radius:0}.ant-picker-calendar .ant-picker-panel .ant-picker-date-panel,.ant-picker-calendar .ant-picker-panel .ant-picker-month-panel{width:auto}.ant-picker-calendar .ant-picker-panel .ant-picker-body{padding:8px 0}.ant-picker-calendar .ant-picker-panel .ant-picker-content{width:100%}.ant-picker-calendar-mini{border-radius:2px}.ant-picker-calendar-mini .ant-picker-calendar-header{padding-right:8px;padding-left:8px}.ant-picker-calendar-mini .ant-picker-panel{border-radius:0 0 2px 2px}.ant-picker-calendar-mini .ant-picker-content{height:256px}.ant-picker-calendar-mini .ant-picker-content th{height:auto;padding:0;line-height:18px}.ant-picker-calendar-full .ant-picker-panel{display:block;width:100%;text-align:right;background:#fff;border:0}.ant-picker-calendar-full .ant-picker-panel .ant-picker-body td,.ant-picker-calendar-full .ant-picker-panel .ant-picker-body th{padding:0}.ant-picker-calendar-full .ant-picker-panel .ant-picker-body th{height:auto;padding:0 12px 5px 0;line-height:18px}.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell:before{display:none}.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell:hover .ant-picker-calendar-date{background:#f5f5f5}.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell .ant-picker-calendar-date-today:before{display:none}.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected .ant-picker-calendar-date,.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected .ant-picker-calendar-date-today,.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected:hover .ant-picker-calendar-date,.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected:hover .ant-picker-calendar-date-today{background:#e6f7ff}.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected .ant-picker-calendar-date-today .ant-picker-calendar-date-value,.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected .ant-picker-calendar-date .ant-picker-calendar-date-value,.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected:hover .ant-picker-calendar-date-today .ant-picker-calendar-date-value,.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected:hover .ant-picker-calendar-date .ant-picker-calendar-date-value{color:#1890ff}.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date{display:block;width:auto;height:auto;margin:0 4px;padding:4px 8px 0;border:0;border-top:2px solid #f0f0f0;border-radius:0;-webkit-transition:background .3s;-moz-transition:background .3s;transition:background .3s}.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-value{line-height:24px;-webkit-transition:color .3s;-moz-transition:color .3s;transition:color .3s}.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-content{position:static;width:auto;height:86px;overflow-y:auto;color:rgba(0,0,0,.85);line-height:1.5715;text-align:left}.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-today{border-color:#1890ff}.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-today .ant-picker-calendar-date-value{color:rgba(0,0,0,.85)}@media only screen and (max-width:480px){.ant-picker-calendar-header{display:block}.ant-picker-calendar-header .ant-picker-calendar-year-select{width:50%}.ant-picker-calendar-header .ant-picker-calendar-month-select{width:-webkit-calc(50% - 8px);width:-moz-calc(50% - 8px);width:calc(50% - 8px)}.ant-picker-calendar-header .ant-picker-calendar-mode-switch{width:100%;margin-top:8px;margin-left:0}.ant-picker-calendar-header .ant-picker-calendar-mode-switch>label{width:50%;text-align:center}}.ant-picker-calendar-rtl{direction:rtl}.ant-picker-calendar-rtl .ant-picker-calendar-header .ant-picker-calendar-mode-switch,.ant-picker-calendar-rtl .ant-picker-calendar-header .ant-picker-calendar-month-select{margin-right:8px;margin-left:0}.ant-picker-calendar-rtl.ant-picker-calendar-full .ant-picker-panel{text-align:left}.ant-picker-calendar-rtl.ant-picker-calendar-full .ant-picker-panel .ant-picker-body th{padding:0 0 5px 12px}.ant-picker-calendar-rtl.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-content{text-align:right}.ant-radio-group{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";display:inline-block;font-size:0}.ant-radio-group .ant-badge-count{z-index:1}.ant-radio-group>.ant-badge:not(:first-child)>.ant-radio-button-wrapper{border-left:none}.ant-radio-wrapper{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";position:relative;display:-moz-inline-box;display:inline-flex;-moz-box-align:baseline;align-items:baseline;margin:0 8px 0 0;cursor:pointer}.ant-radio-wrapper-disabled{cursor:not-allowed}.ant-radio-wrapper:after{display:inline-block;width:0;overflow:hidden;content:"\a0"}.ant-radio{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";position:relative;top:.2em;display:inline-block;outline:none;cursor:pointer}.ant-radio-input:focus+.ant-radio-inner,.ant-radio-wrapper:hover .ant-radio,.ant-radio:hover .ant-radio-inner{border-color:#1890ff}.ant-radio-input:focus+.ant-radio-inner{-webkit-box-shadow:0 0 0 3px #e6f7ff;box-shadow:0 0 0 3px #e6f7ff}.ant-radio-checked:after{position:absolute;top:0;left:0;width:100%;height:100%;border:1px solid #1890ff;border-radius:50%;visibility:hidden;-webkit-animation:antRadioEffect .36s ease-in-out;-moz-animation:antRadioEffect .36s ease-in-out;animation:antRadioEffect .36s ease-in-out;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both;content:""}.ant-radio-wrapper:hover .ant-radio:after,.ant-radio:hover:after{visibility:visible}.ant-radio-inner{position:relative;top:0;left:0;display:block;width:16px;height:16px;background-color:#fff;border:1px solid #d9d9d9;border-radius:50%;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s}.ant-radio-inner:after{position:absolute;top:50%;left:50%;display:block;width:16px;height:16px;margin-top:-8px;margin-left:-8px;background-color:#1890ff;border-top:0;border-left:0;border-radius:16px;-webkit-transform:scale(0);-moz-transform:scale(0);transform:scale(0);opacity:0;-webkit-transition:all .3s cubic-bezier(.78,.14,.15,.86);-moz-transition:all .3s cubic-bezier(.78,.14,.15,.86);transition:all .3s cubic-bezier(.78,.14,.15,.86);content:" "}.ant-radio-input{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;cursor:pointer;opacity:0}.ant-radio-checked .ant-radio-inner{border-color:#1890ff}.ant-radio-checked .ant-radio-inner:after{-webkit-transform:scale(.5);-moz-transform:scale(.5);transform:scale(.5);opacity:1;-webkit-transition:all .3s cubic-bezier(.78,.14,.15,.86);-moz-transition:all .3s cubic-bezier(.78,.14,.15,.86);transition:all .3s cubic-bezier(.78,.14,.15,.86)}.ant-radio-disabled{cursor:not-allowed}.ant-radio-disabled .ant-radio-inner{background-color:#f5f5f5;border-color:#d9d9d9!important;cursor:not-allowed}.ant-radio-disabled .ant-radio-inner:after{background-color:rgba(0,0,0,.2)}.ant-radio-disabled .ant-radio-input{cursor:not-allowed}.ant-radio-disabled+span{color:rgba(0,0,0,.25);cursor:not-allowed}span.ant-radio+*{padding-right:8px;padding-left:8px}.ant-radio-button-wrapper{position:relative;display:inline-block;height:32px;margin:0;padding:0 15px;color:rgba(0,0,0,.85);font-size:14px;line-height:30px;background:#fff;border-color:#d9d9d9;border-style:solid;border-width:1.02px 1px 1px 0;cursor:pointer;-webkit-transition:color .3s,background .3s,border-color .3s,-webkit-box-shadow .3s;transition:color .3s,background .3s,border-color .3s,-webkit-box-shadow .3s;-moz-transition:color .3s,background .3s,border-color .3s,box-shadow .3s;transition:color .3s,background .3s,border-color .3s,box-shadow .3s;transition:color .3s,background .3s,border-color .3s,box-shadow .3s,-webkit-box-shadow .3s}.ant-radio-button-wrapper a{color:rgba(0,0,0,.85)}.ant-radio-button-wrapper>.ant-radio-button{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%}.ant-radio-group-large .ant-radio-button-wrapper{height:40px;font-size:16px;line-height:38px}.ant-radio-group-small .ant-radio-button-wrapper{height:24px;padding:0 7px;line-height:22px}.ant-radio-button-wrapper:not(:first-child):before{position:absolute;top:-1px;left:-1px;display:block;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;width:1px;height:100%;padding:1px 0;background-color:#d9d9d9;-webkit-transition:background-color .3s;-moz-transition:background-color .3s;transition:background-color .3s;content:""}.ant-radio-button-wrapper:first-child{border-left:1px solid #d9d9d9;border-radius:2px 0 0 2px}.ant-radio-button-wrapper:last-child{border-radius:0 2px 2px 0}.ant-radio-button-wrapper:first-child:last-child{border-radius:2px}.ant-radio-button-wrapper:hover{position:relative;color:#1890ff}.ant-radio-button-wrapper:focus-within{-webkit-box-shadow:0 0 0 3px #e6f7ff;box-shadow:0 0 0 3px #e6f7ff}.ant-radio-button-wrapper .ant-radio-inner,.ant-radio-button-wrapper input[type=checkbox],.ant-radio-button-wrapper input[type=radio]{width:0;height:0;opacity:0;pointer-events:none}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){z-index:1;color:#1890ff;background:#fff;border-color:#1890ff}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):before{background-color:#1890ff}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):first-child{border-color:#1890ff}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover{color:#40a9ff;border-color:#40a9ff}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover:before{background-color:#40a9ff}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active{color:#096dd9;border-color:#096dd9}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active:before{background-color:#096dd9}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within{-webkit-box-shadow:0 0 0 3px #e6f7ff;box-shadow:0 0 0 3px #e6f7ff}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){color:#fff;background:#1890ff;border-color:#1890ff}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover{color:#fff;background:#40a9ff;border-color:#40a9ff}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active{color:#fff;background:#096dd9;border-color:#096dd9}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within{-webkit-box-shadow:0 0 0 3px #e6f7ff;box-shadow:0 0 0 3px #e6f7ff}.ant-radio-button-wrapper-disabled{cursor:not-allowed}.ant-radio-button-wrapper-disabled,.ant-radio-button-wrapper-disabled:first-child,.ant-radio-button-wrapper-disabled:hover{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-radio-button-wrapper-disabled:first-child{border-left-color:#d9d9d9}.ant-radio-button-wrapper-disabled.ant-radio-button-wrapper-checked{color:rgba(0,0,0,.25);background-color:#e6e6e6;border-color:#d9d9d9;-webkit-box-shadow:none;box-shadow:none}@-webkit-keyframes antRadioEffect{0%{-webkit-transform:scale(1);transform:scale(1);opacity:.5}to{-webkit-transform:scale(1.6);transform:scale(1.6);opacity:0}}@-moz-keyframes antRadioEffect{0%{-moz-transform:scale(1);transform:scale(1);opacity:.5}to{-moz-transform:scale(1.6);transform:scale(1.6);opacity:0}}@keyframes antRadioEffect{0%{-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1);opacity:.5}to{-webkit-transform:scale(1.6);-moz-transform:scale(1.6);transform:scale(1.6);opacity:0}}.ant-radio-group.ant-radio-group-rtl{direction:rtl}.ant-radio-wrapper.ant-radio-wrapper-rtl{margin-right:0;margin-left:8px;direction:rtl}.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl{border-right-width:0;border-left-width:1px}.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl.ant-radio-button-wrapper:not(:first-child):before{right:-1px;left:0}.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl.ant-radio-button-wrapper:first-child{border-right:1px solid #d9d9d9;border-radius:0 2px 2px 0}.ant-radio-button-wrapper-checked:not([class*=" ant-radio-button-wrapper-disabled"]).ant-radio-button-wrapper:first-child{border-right-color:#40a9ff}.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl.ant-radio-button-wrapper:last-child{border-radius:2px 0 0 2px}.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl.ant-radio-button-wrapper-disabled:first-child{border-right-color:#d9d9d9}.ant-picker{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";padding:4px 11px;position:relative;display:-moz-inline-box;display:inline-flex;-moz-box-align:center;align-items:center;background:#fff;border:1px solid #d9d9d9;border-radius:2px;-webkit-transition:border .3s,-webkit-box-shadow .3s;transition:border .3s,-webkit-box-shadow .3s;-moz-transition:border .3s,box-shadow .3s;transition:border .3s,box-shadow .3s;transition:border .3s,box-shadow .3s,-webkit-box-shadow .3s}.ant-picker-focused,.ant-picker:hover{border-color:#40a9ff;border-right-width:1px!important}.ant-picker-focused{-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2);outline:0}.ant-picker.ant-picker-disabled{background:#f5f5f5;border-color:#d9d9d9;cursor:not-allowed}.ant-picker.ant-picker-disabled .ant-picker-suffix{color:rgba(0,0,0,.25)}.ant-picker.ant-picker-borderless{background-color:transparent!important;border-color:transparent!important;-webkit-box-shadow:none!important;box-shadow:none!important}.ant-picker-input{position:relative;display:-moz-inline-box;display:inline-flex;-moz-box-align:center;align-items:center;width:100%}.ant-picker-input>input{position:relative;display:inline-block;width:100%;min-width:0;color:rgba(0,0,0,.85);font-size:14px;line-height:1.5715;background-color:#fff;background-image:none;border-radius:2px;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s;-moz-box-flex:1;flex:auto;min-width:1px;height:auto;padding:0;background:transparent;border:0}.ant-picker-input>input:-ms-input-placeholder{color:#bfbfbf;-ms-user-select:none;user-select:none}.ant-picker-input>input::-webkit-input-placeholder{color:#bfbfbf;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-picker-input>input::placeholder{color:#bfbfbf;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-picker-input>input:-moz-placeholder-shown{text-overflow:ellipsis}.ant-picker-input>input:-ms-input-placeholder{text-overflow:ellipsis}.ant-picker-input>input:placeholder-shown{text-overflow:ellipsis}.ant-picker-input>input:hover{border-color:#40a9ff;border-right-width:1px!important}.ant-picker-input>input-focused,.ant-picker-input>input:focus{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2);border-right-width:1px!important;outline:0}.ant-picker-input>input-disabled{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;-webkit-box-shadow:none;box-shadow:none;cursor:not-allowed;opacity:1}.ant-picker-input>input-disabled:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-picker-input>input[disabled]{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;-webkit-box-shadow:none;box-shadow:none;cursor:not-allowed;opacity:1}.ant-picker-input>input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-picker-input>input-borderless,.ant-picker-input>input-borderless-disabled,.ant-picker-input>input-borderless-focused,.ant-picker-input>input-borderless:focus,.ant-picker-input>input-borderless:hover,.ant-picker-input>input-borderless[disabled]{background-color:transparent;border:none;-webkit-box-shadow:none;box-shadow:none}textarea.ant-picker-input>input{max-width:100%;height:auto;min-height:32px;line-height:1.5715;vertical-align:bottom;-webkit-transition:all .3s,height 0s;-moz-transition:all .3s,height 0s;transition:all .3s,height 0s}.ant-picker-input>input-lg{padding:6.5px 11px;font-size:16px}.ant-picker-input>input-sm{padding:0 7px}.ant-picker-input>input:focus{-webkit-box-shadow:none;box-shadow:none}.ant-picker-input>input[disabled]{background:transparent}.ant-picker-input:hover .ant-picker-clear{opacity:1}.ant-picker-input-placeholder>input{color:#bfbfbf}.ant-picker-large{padding:6.5px 11px}.ant-picker-large .ant-picker-input>input{font-size:16px}.ant-picker-small{padding:0 7px}.ant-picker-suffix{align-self:center;margin-left:4px;color:rgba(0,0,0,.25);line-height:1;pointer-events:none}.ant-picker-suffix>*{vertical-align:top}.ant-picker-clear{position:absolute;top:50%;right:0;color:rgba(0,0,0,.25);line-height:1;background:#fff;-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);transform:translateY(-50%);cursor:pointer;opacity:0;-webkit-transition:opacity .3s,color .3s;-moz-transition:opacity .3s,color .3s;transition:opacity .3s,color .3s}.ant-picker-clear>*{vertical-align:top}.ant-picker-clear:hover{color:rgba(0,0,0,.45)}.ant-picker-separator{position:relative;display:inline-block;width:1em;height:16px;color:rgba(0,0,0,.25);font-size:16px;vertical-align:top;cursor:default}.ant-picker-focused .ant-picker-separator{color:rgba(0,0,0,.45)}.ant-picker-disabled .ant-picker-range-separator .ant-picker-separator{cursor:not-allowed}.ant-picker-range{position:relative;display:-moz-inline-box;display:inline-flex}.ant-picker-range .ant-picker-clear{right:11px}.ant-picker-range:hover .ant-picker-clear{opacity:1}.ant-picker-range .ant-picker-active-bar{bottom:-1px;height:2px;margin-left:11px;background:#1890ff;opacity:0;-webkit-transition:all .3s ease-out;-moz-transition:all .3s ease-out;transition:all .3s ease-out;pointer-events:none}.ant-picker-range.ant-picker-focused .ant-picker-active-bar{opacity:1}.ant-picker-range-separator{-moz-box-align:center;align-items:center;padding:0 8px;line-height:1}.ant-picker-range.ant-picker-small .ant-picker-clear{right:7px}.ant-picker-range.ant-picker-small .ant-picker-active-bar{margin-left:7px}.ant-picker-dropdown{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";position:absolute;z-index:1050}.ant-picker-dropdown-hidden{display:none}.ant-picker-dropdown-placement-bottomLeft .ant-picker-range-arrow{top:1.66666667px;display:block;-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);transform:rotate(-45deg)}.ant-picker-dropdown-placement-topLeft .ant-picker-range-arrow{bottom:1.66666667px;display:block;-webkit-transform:rotate(135deg);-moz-transform:rotate(135deg);transform:rotate(135deg)}.ant-picker-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-picker-dropdown-placement-topLeft,.ant-picker-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-picker-dropdown-placement-topRight,.ant-picker-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-picker-dropdown-placement-topLeft,.ant-picker-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-picker-dropdown-placement-topRight{-webkit-animation-name:antSlideDownIn;-moz-animation-name:antSlideDownIn;animation-name:antSlideDownIn}.ant-picker-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-picker-dropdown-placement-bottomLeft,.ant-picker-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-picker-dropdown-placement-bottomRight,.ant-picker-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-picker-dropdown-placement-bottomLeft,.ant-picker-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-picker-dropdown-placement-bottomRight{-webkit-animation-name:antSlideUpIn;-moz-animation-name:antSlideUpIn;animation-name:antSlideUpIn}.ant-picker-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-picker-dropdown-placement-topLeft,.ant-picker-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-picker-dropdown-placement-topRight{-webkit-animation-name:antSlideDownOut;-moz-animation-name:antSlideDownOut;animation-name:antSlideDownOut}.ant-picker-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-picker-dropdown-placement-bottomLeft,.ant-picker-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-picker-dropdown-placement-bottomRight{-webkit-animation-name:antSlideUpOut;-moz-animation-name:antSlideUpOut;animation-name:antSlideUpOut}.ant-picker-dropdown-range{padding:6.66666667px 0}.ant-picker-dropdown-range-hidden{display:none}.ant-picker-dropdown .ant-picker-panel>.ant-picker-time-panel{padding-top:4px}.ant-picker-ranges{margin-bottom:0;padding:4px 12px;overflow:hidden;line-height:34px;text-align:left;list-style:none}.ant-picker-ranges>li{display:inline-block}.ant-picker-ranges .ant-picker-preset>.ant-tag-blue{color:#1890ff;background:#e6f7ff;border-color:#91d5ff;cursor:pointer}.ant-picker-ranges .ant-picker-ok{float:right;margin-left:8px}.ant-picker-range-wrapper{display:-moz-box;display:flex}.ant-picker-range-arrow{position:absolute;z-index:1;display:none;width:10px;height:10px;margin-left:16.5px;-webkit-box-shadow:2px -2px 6px rgba(0,0,0,.06);box-shadow:2px -2px 6px rgba(0,0,0,.06);-webkit-transition:left .3s ease-out;-moz-transition:left .3s ease-out;transition:left .3s ease-out}.ant-picker-range-arrow:after{position:absolute;top:1px;right:1px;width:10px;height:10px;border-color:#fff #fff transparent transparent;border-style:solid;border-width:5px;content:""}.ant-picker-panel-container{overflow:hidden;vertical-align:top;background:#fff;border-radius:2px;-webkit-box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);-webkit-transition:margin .3s;-moz-transition:margin .3s;transition:margin .3s}.ant-picker-panel-container .ant-picker-panels{display:-moz-inline-box;display:inline-flex;flex-wrap:nowrap;direction:ltr}.ant-picker-panel-container .ant-picker-panel{vertical-align:top;background:transparent;border-width:0 0 1px;border-radius:0}.ant-picker-panel-container .ant-picker-panel .ant-picker-content,.ant-picker-panel-container .ant-picker-panel table{text-align:center}.ant-picker-panel-container .ant-picker-panel-focused{border-color:#f0f0f0}.ant-picker-panel{display:-moz-inline-box;display:inline-flex;-moz-box-orient:vertical;-moz-box-direction:normal;flex-direction:column;text-align:center;background:#fff;border:1px solid #f0f0f0;border-radius:2px;outline:none}.ant-picker-panel-focused{border-color:#1890ff}.ant-picker-date-panel,.ant-picker-decade-panel,.ant-picker-month-panel,.ant-picker-quarter-panel,.ant-picker-time-panel,.ant-picker-week-panel,.ant-picker-year-panel{display:-moz-box;display:flex;-moz-box-orient:vertical;-moz-box-direction:normal;flex-direction:column;width:280px}.ant-picker-header{display:-moz-box;display:flex;padding:0 8px;color:rgba(0,0,0,.85);border-bottom:1px solid #f0f0f0}.ant-picker-header>*{-moz-box-flex:0;flex:none}.ant-picker-header button{padding:0;color:rgba(0,0,0,.25);line-height:40px;background:transparent;border:0;cursor:pointer;-webkit-transition:color .3s;-moz-transition:color .3s;transition:color .3s}.ant-picker-header>button{min-width:1.6em;font-size:14px}.ant-picker-header>button:hover{color:rgba(0,0,0,.85)}.ant-picker-header-view{-moz-box-flex:1;flex:auto;font-weight:500;line-height:40px}.ant-picker-header-view button{color:inherit;font-weight:inherit}.ant-picker-header-view button:not(:first-child){margin-left:8px}.ant-picker-header-view button:hover{color:#1890ff}.ant-picker-next-icon,.ant-picker-prev-icon,.ant-picker-super-next-icon,.ant-picker-super-prev-icon{position:relative;display:inline-block;width:7px;height:7px}.ant-picker-next-icon:before,.ant-picker-prev-icon:before,.ant-picker-super-next-icon:before,.ant-picker-super-prev-icon:before{position:absolute;top:0;left:0;display:inline-block;width:7px;height:7px;border:0 solid;border-width:1.5px 0 0 1.5px;content:""}.ant-picker-super-next-icon:after,.ant-picker-super-prev-icon:after{position:absolute;top:4px;left:4px;display:inline-block;width:7px;height:7px;border:0 solid;border-width:1.5px 0 0 1.5px;content:""}.ant-picker-prev-icon,.ant-picker-super-prev-icon{-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);transform:rotate(-45deg)}.ant-picker-next-icon,.ant-picker-super-next-icon{-webkit-transform:rotate(135deg);-moz-transform:rotate(135deg);transform:rotate(135deg)}.ant-picker-content{width:100%;table-layout:fixed;border-collapse:collapse}.ant-picker-content td,.ant-picker-content th{position:relative;min-width:24px;font-weight:400}.ant-picker-content th{height:30px;color:rgba(0,0,0,.85);line-height:30px}.ant-picker-cell{padding:3px 0;color:rgba(0,0,0,.25);cursor:pointer}.ant-picker-cell-in-view{color:rgba(0,0,0,.85)}.ant-picker-cell:before{position:absolute;top:50%;right:0;left:0;z-index:1;height:24px;-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);transform:translateY(-50%);-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s;content:""}.ant-picker-cell:hover:not(.ant-picker-cell-in-view) .ant-picker-cell-inner,.ant-picker-cell:hover:not(.ant-picker-cell-selected):not(.ant-picker-cell-range-start):not(.ant-picker-cell-range-end):not(.ant-picker-cell-range-hover-start):not(.ant-picker-cell-range-hover-end) .ant-picker-cell-inner{background:#f5f5f5}.ant-picker-cell-in-view.ant-picker-cell-today .ant-picker-cell-inner:before{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;border:1px solid #1890ff;border-radius:2px;content:""}.ant-picker-cell-in-view.ant-picker-cell-in-range{position:relative}.ant-picker-cell-in-view.ant-picker-cell-in-range:before{background:#e6f7ff}.ant-picker-cell-in-view.ant-picker-cell-range-end .ant-picker-cell-inner,.ant-picker-cell-in-view.ant-picker-cell-range-start .ant-picker-cell-inner,.ant-picker-cell-in-view.ant-picker-cell-selected .ant-picker-cell-inner{color:#fff;background:#1890ff}.ant-picker-cell-in-view.ant-picker-cell-range-end:not(.ant-picker-cell-range-end-single):before,.ant-picker-cell-in-view.ant-picker-cell-range-start:not(.ant-picker-cell-range-start-single):before{background:#e6f7ff}.ant-picker-cell-in-view.ant-picker-cell-range-start:before{left:50%}.ant-picker-cell-in-view.ant-picker-cell-range-end:before{right:50%}.ant-picker-cell-in-view.ant-picker-cell-range-hover-end.ant-picker-cell-range-end-single:after,.ant-picker-cell-in-view.ant-picker-cell-range-hover-end.ant-picker-cell-range-start.ant-picker-cell-range-end.ant-picker-cell-range-start-near-hover:after,.ant-picker-cell-in-view.ant-picker-cell-range-hover-end:not(.ant-picker-cell-in-range):not(.ant-picker-cell-range-start):not(.ant-picker-cell-range-end):after,.ant-picker-cell-in-view.ant-picker-cell-range-hover-start.ant-picker-cell-range-start-single:after,.ant-picker-cell-in-view.ant-picker-cell-range-hover-start.ant-picker-cell-range-start.ant-picker-cell-range-end.ant-picker-cell-range-end-near-hover:after,.ant-picker-cell-in-view.ant-picker-cell-range-hover-start:not(.ant-picker-cell-in-range):not(.ant-picker-cell-range-start):not(.ant-picker-cell-range-end):after,.ant-picker-cell-in-view.ant-picker-cell-range-hover:not(.ant-picker-cell-in-range):after{position:absolute;top:50%;z-index:0;height:24px;border-top:1px dashed #7ec1ff;border-bottom:1px dashed #7ec1ff;-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);transform:translateY(-50%);-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s;content:""}.ant-picker-cell-range-hover-end:after,.ant-picker-cell-range-hover-start:after,.ant-picker-cell-range-hover:after{right:0;left:2px}.ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover:before,.ant-picker-cell-in-view.ant-picker-cell-range-end.ant-picker-cell-range-hover:before,.ant-picker-cell-in-view.ant-picker-cell-range-end:not(.ant-picker-cell-range-end-single).ant-picker-cell-range-hover-end:before,.ant-picker-cell-in-view.ant-picker-cell-range-start.ant-picker-cell-range-hover:before,.ant-picker-cell-in-view.ant-picker-cell-range-start:not(.ant-picker-cell-range-start-single).ant-picker-cell-range-hover-start:before,.ant-picker-panel>:not(.ant-picker-date-panel) .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-end:before,.ant-picker-panel>:not(.ant-picker-date-panel) .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-start:before{background:#cbe6ff}.ant-picker-cell-in-view.ant-picker-cell-range-start:not(.ant-picker-cell-range-start-single):not(.ant-picker-cell-range-end) .ant-picker-cell-inner{border-radius:2px 0 0 2px}.ant-picker-cell-in-view.ant-picker-cell-range-end:not(.ant-picker-cell-range-end-single):not(.ant-picker-cell-range-start) .ant-picker-cell-inner{border-radius:0 2px 2px 0}.ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-end .ant-picker-cell-inner:after,.ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-start .ant-picker-cell-inner:after{position:absolute;top:0;bottom:0;z-index:-1;background:#cbe6ff;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s;content:""}.ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-start .ant-picker-cell-inner:after{right:-6px;left:0}.ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-end .ant-picker-cell-inner:after{right:0;left:-6px}.ant-picker-cell-range-hover.ant-picker-cell-range-start:after{right:50%}.ant-picker-cell-range-hover.ant-picker-cell-range-end:after{left:50%}.ant-picker-cell-in-view.ant-picker-cell-range-hover-edge-start:not(.ant-picker-cell-range-hover-edge-start-near-range):after,.ant-picker-cell-in-view.ant-picker-cell-range-hover-start:after,.ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover-edge-start.ant-picker-cell-range-hover-edge-start-near-range:after,tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover-end:first-child:after,tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover:first-child:after{left:6px;border-left:1px dashed #7ec1ff;border-top-left-radius:2px;border-bottom-left-radius:2px}.ant-picker-cell-in-view.ant-picker-cell-end.ant-picker-cell-range-hover-edge-end.ant-picker-cell-range-hover-edge-end-near-range:after,.ant-picker-cell-in-view.ant-picker-cell-range-hover-edge-end:not(.ant-picker-cell-range-hover-edge-end-near-range):after,.ant-picker-cell-in-view.ant-picker-cell-range-hover-end:after,tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child:after,tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover:last-child:after{right:6px;border-right:1px dashed #7ec1ff;border-top-right-radius:2px;border-bottom-right-radius:2px}.ant-picker-cell-disabled{color:rgba(0,0,0,.25);pointer-events:none}.ant-picker-cell-disabled .ant-picker-cell-inner{background:transparent}.ant-picker-cell-disabled:before{background:rgba(0,0,0,.04)}.ant-picker-cell-disabled.ant-picker-cell-today .ant-picker-cell-inner:before{border-color:rgba(0,0,0,.25)}.ant-picker-decade-panel .ant-picker-content,.ant-picker-month-panel .ant-picker-content,.ant-picker-quarter-panel .ant-picker-content,.ant-picker-year-panel .ant-picker-content{height:264px}.ant-picker-decade-panel .ant-picker-cell-inner,.ant-picker-month-panel .ant-picker-cell-inner,.ant-picker-quarter-panel .ant-picker-cell-inner,.ant-picker-year-panel .ant-picker-cell-inner{padding:0 8px}.ant-picker-quarter-panel .ant-picker-content{height:56px}.ant-picker-footer{width:-webkit-min-content;width:-moz-min-content;width:min-content;min-width:100%;line-height:38px;text-align:center;border-bottom:1px solid transparent}.ant-picker-panel .ant-picker-footer{border-top:1px solid #f0f0f0}.ant-picker-footer-extra{padding:0 12px;line-height:38px;text-align:left}.ant-picker-footer-extra:not(:last-child){border-bottom:1px solid #f0f0f0}.ant-picker-now{text-align:left}.ant-picker-today-btn{color:#1890ff}.ant-picker-today-btn:hover{color:#40a9ff}.ant-picker-today-btn:active{color:#096dd9}.ant-picker-today-btn.ant-picker-today-btn-disabled{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-picker-decade-panel .ant-picker-cell-inner{padding:0 4px}.ant-picker-decade-panel .ant-picker-cell:before{display:none}.ant-picker-month-panel .ant-picker-body,.ant-picker-quarter-panel .ant-picker-body,.ant-picker-year-panel .ant-picker-body{padding:0 8px}.ant-picker-month-panel .ant-picker-cell-inner,.ant-picker-quarter-panel .ant-picker-cell-inner,.ant-picker-year-panel .ant-picker-cell-inner{width:60px}.ant-picker-month-panel .ant-picker-cell-range-hover-start:after,.ant-picker-quarter-panel .ant-picker-cell-range-hover-start:after,.ant-picker-year-panel .ant-picker-cell-range-hover-start:after{left:14px;border-left:1px dashed #7ec1ff;border-radius:2px 0 0 2px}.ant-picker-month-panel .ant-picker-cell-range-hover-end:after,.ant-picker-panel-rtl .ant-picker-month-panel .ant-picker-cell-range-hover-start:after,.ant-picker-panel-rtl .ant-picker-quarter-panel .ant-picker-cell-range-hover-start:after,.ant-picker-panel-rtl .ant-picker-year-panel .ant-picker-cell-range-hover-start:after,.ant-picker-quarter-panel .ant-picker-cell-range-hover-end:after,.ant-picker-year-panel .ant-picker-cell-range-hover-end:after{right:14px;border-right:1px dashed #7ec1ff;border-radius:0 2px 2px 0}.ant-picker-panel-rtl .ant-picker-month-panel .ant-picker-cell-range-hover-end:after,.ant-picker-panel-rtl .ant-picker-quarter-panel .ant-picker-cell-range-hover-end:after,.ant-picker-panel-rtl .ant-picker-year-panel .ant-picker-cell-range-hover-end:after{left:14px;border-left:1px dashed #7ec1ff;border-radius:2px 0 0 2px}.ant-picker-week-panel .ant-picker-body{padding:8px 12px}.ant-picker-week-panel .ant-picker-cell-selected .ant-picker-cell-inner,.ant-picker-week-panel .ant-picker-cell .ant-picker-cell-inner,.ant-picker-week-panel .ant-picker-cell:hover .ant-picker-cell-inner{background:transparent!important}.ant-picker-week-panel-row td{-webkit-transition:background .3s;-moz-transition:background .3s;transition:background .3s}.ant-picker-week-panel-row:hover td{background:#f5f5f5}.ant-picker-week-panel-row-selected:hover td,.ant-picker-week-panel-row-selected td{background:#1890ff}.ant-picker-week-panel-row-selected:hover td.ant-picker-cell-week,.ant-picker-week-panel-row-selected td.ant-picker-cell-week{color:hsla(0,0%,100%,.5)}.ant-picker-week-panel-row-selected:hover td.ant-picker-cell-today .ant-picker-cell-inner:before,.ant-picker-week-panel-row-selected td.ant-picker-cell-today .ant-picker-cell-inner:before{border-color:#fff}.ant-picker-week-panel-row-selected:hover td .ant-picker-cell-inner,.ant-picker-week-panel-row-selected td .ant-picker-cell-inner{color:#fff}.ant-picker-date-panel .ant-picker-body{padding:8px 12px}.ant-picker-date-panel .ant-picker-content{width:252px}.ant-picker-date-panel .ant-picker-content th{width:36px}.ant-picker-datetime-panel{display:-moz-box;display:flex}.ant-picker-datetime-panel .ant-picker-time-panel{border-left:1px solid #f0f0f0}.ant-picker-datetime-panel .ant-picker-date-panel,.ant-picker-datetime-panel .ant-picker-time-panel{-webkit-transition:opacity .3s;-moz-transition:opacity .3s;transition:opacity .3s}.ant-picker-datetime-panel-active .ant-picker-date-panel,.ant-picker-datetime-panel-active .ant-picker-time-panel{opacity:.3}.ant-picker-datetime-panel-active .ant-picker-date-panel-active,.ant-picker-datetime-panel-active .ant-picker-time-panel-active{opacity:1}.ant-picker-time-panel{width:auto;min-width:auto}.ant-picker-time-panel .ant-picker-content{display:-moz-box;display:flex;-moz-box-flex:1;flex:auto;height:224px}.ant-picker-time-panel-column{-moz-box-flex:1;flex:1 0 auto;width:56px;margin:0;padding:0;overflow-y:hidden;text-align:left;list-style:none;-webkit-transition:background .3s;-moz-transition:background .3s;transition:background .3s}.ant-picker-time-panel-column:after{display:block;height:196px;content:""}.ant-picker-datetime-panel .ant-picker-time-panel-column:after{height:198px}.ant-picker-time-panel-column:not(:first-child){border-left:1px solid #f0f0f0}.ant-picker-time-panel-column-active{background:rgba(230,247,255,.2)}.ant-picker-time-panel-column:hover{overflow-y:auto}.ant-picker-time-panel-column>li{margin:0;padding:0}.ant-picker-time-panel-column>li.ant-picker-time-panel-cell .ant-picker-time-panel-cell-inner{display:block;width:100%;height:28px;margin:0;padding:0 0 0 14px;color:rgba(0,0,0,.85);line-height:28px;border-radius:0;cursor:pointer;-webkit-transition:background .3s;-moz-transition:background .3s;transition:background .3s}.ant-picker-time-panel-column>li.ant-picker-time-panel-cell .ant-picker-time-panel-cell-inner:hover{background:#f5f5f5}.ant-picker-time-panel-column>li.ant-picker-time-panel-cell-selected .ant-picker-time-panel-cell-inner{background:#e6f7ff}.ant-picker-time-panel-column>li.ant-picker-time-panel-cell-disabled .ant-picker-time-panel-cell-inner{color:rgba(0,0,0,.25);background:transparent;cursor:not-allowed}:root .ant-picker-range-wrapper .ant-picker-month-panel .ant-picker-cell,:root .ant-picker-range-wrapper .ant-picker-year-panel .ant-picker-cell,_:-ms-fullscreen .ant-picker-range-wrapper .ant-picker-month-panel .ant-picker-cell,_:-ms-fullscreen .ant-picker-range-wrapper .ant-picker-year-panel .ant-picker-cell{padding:21px 0}.ant-picker-rtl{direction:rtl}.ant-picker-rtl .ant-picker-suffix{margin-right:4px;margin-left:0}.ant-picker-rtl .ant-picker-clear{right:auto;left:0}.ant-picker-rtl .ant-picker-separator{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);transform:rotate(180deg)}.ant-picker-panel-rtl .ant-picker-header-view button:not(:first-child){margin-right:8px;margin-left:0}.ant-picker-rtl.ant-picker-range .ant-picker-clear{right:auto;left:11px}.ant-picker-rtl.ant-picker-range .ant-picker-active-bar{margin-right:11px;margin-left:0}.ant-picker-rtl.ant-picker-range.ant-picker-small .ant-picker-active-bar{margin-right:7px}.ant-picker-dropdown-rtl .ant-picker-ranges{text-align:right}.ant-picker-dropdown-rtl .ant-picker-ranges .ant-picker-ok{float:left;margin-right:8px;margin-left:0}.ant-picker-panel-rtl{direction:rtl}.ant-picker-panel-rtl .ant-picker-prev-icon,.ant-picker-panel-rtl .ant-picker-super-prev-icon{-webkit-transform:rotate(135deg);-moz-transform:rotate(135deg);transform:rotate(135deg)}.ant-picker-panel-rtl .ant-picker-next-icon,.ant-picker-panel-rtl .ant-picker-super-next-icon{-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);transform:rotate(-45deg)}.ant-picker-cell .ant-picker-cell-inner{position:relative;z-index:2;display:inline-block;min-width:24px;height:24px;line-height:24px;border-radius:2px;-webkit-transition:background .3s,border .3s;-moz-transition:background .3s,border .3s;transition:background .3s,border .3s}.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-start:before{right:50%;left:0}.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-end:before{right:0;left:50%}.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-start.ant-picker-cell-range-end:before{right:50%;left:50%}.ant-picker-panel-rtl .ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-start .ant-picker-cell-inner:after{right:0;left:-6px}.ant-picker-panel-rtl .ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-end .ant-picker-cell-inner:after{right:-6px;left:0}.ant-picker-panel-rtl .ant-picker-cell-range-hover.ant-picker-cell-range-start:after{right:0;left:50%}.ant-picker-panel-rtl .ant-picker-cell-range-hover.ant-picker-cell-range-end:after{right:50%;left:0}.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-start:not(.ant-picker-cell-range-start-single):not(.ant-picker-cell-range-end) .ant-picker-cell-inner{border-radius:0 2px 2px 0}.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-end:not(.ant-picker-cell-range-end-single):not(.ant-picker-cell-range-start) .ant-picker-cell-inner{border-radius:2px 0 0 2px}.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-hover-edge-start:not(.ant-picker-cell-range-hover-edge-start-near-range):after,.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:after,.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover-edge-start.ant-picker-cell-range-hover-edge-start-near-range:after,.ant-picker-panel-rtl tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover:not(.ant-picker-cell-selected):first-child:after{right:6px;left:0;border-right:1px dashed #7ec1ff;border-left:none;border-radius:0 2px 2px 0}.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-end.ant-picker-cell-range-hover-edge-end.ant-picker-cell-range-hover-edge-end-near-range:after,.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-hover-edge-end:not(.ant-picker-cell-range-hover-edge-end-near-range):after,.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-hover-end:after,.ant-picker-panel-rtl tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover:not(.ant-picker-cell-selected):last-child:after{right:0;left:6px;border-right:none;border-left:1px dashed #7ec1ff;border-radius:2px 0 0 2px}.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-end.ant-picker-cell-range-hover-start.ant-picker-cell-range-hover-edge-end:not(.ant-picker-cell-range-hover):after,.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover-edge-start:not(.ant-picker-cell-range-hover):after,.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover-end.ant-picker-cell-range-hover-edge-start:not(.ant-picker-cell-range-hover):after,.ant-picker-panel-rtl tr>.ant-picker-cell-in-view.ant-picker-cell-end.ant-picker-cell-range-hover.ant-picker-cell-range-hover-edge-end:first-child:after,.ant-picker-panel-rtl tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover-end:first-child:after,.ant-picker-panel-rtl tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child:after,.ant-picker-panel-rtl tr>.ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover.ant-picker-cell-range-hover-edge-start:last-child:after{right:6px;left:6px;border-right:1px dashed #7ec1ff;border-left:1px dashed #7ec1ff;border-radius:2px}.ant-picker-dropdown-rtl .ant-picker-footer-extra{direction:rtl;text-align:right}.ant-picker-panel-rtl .ant-picker-time-panel{direction:ltr}.ant-tag{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";display:inline-block;height:auto;margin:0 8px 0 0;padding:0 7px;font-size:12px;line-height:20px;white-space:nowrap;background:#fafafa;border:1px solid #d9d9d9;border-radius:2px;opacity:1;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s}.ant-tag,.ant-tag a,.ant-tag a:hover{color:rgba(0,0,0,.85)}.ant-tag>a:first-child:last-child{display:inline-block;margin:0 -8px;padding:0 8px}.ant-tag-close-icon{margin-left:3px;color:rgba(0,0,0,.45);font-size:10px;cursor:pointer;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s}.ant-tag-close-icon:hover{color:rgba(0,0,0,.85)}.ant-tag-has-color{border-color:transparent}.ant-tag-has-color,.ant-tag-has-color .anticon-close,.ant-tag-has-color .anticon-close:hover,.ant-tag-has-color a,.ant-tag-has-color a:hover{color:#fff}.ant-tag-checkable{background-color:transparent;border-color:transparent;cursor:pointer}.ant-tag-checkable:not(.ant-tag-checkable-checked):hover{color:#1890ff}.ant-tag-checkable-checked,.ant-tag-checkable:active{color:#fff}.ant-tag-checkable-checked{background-color:#1890ff}.ant-tag-checkable:active{background-color:#096dd9}.ant-tag-hidden{display:none}.ant-tag-pink{color:#c41d7f;background:#fff0f6;border-color:#ffadd2}.ant-tag-pink-inverse{color:#fff;background:#eb2f96;border-color:#eb2f96}.ant-tag-magenta{color:#c41d7f;background:#fff0f6;border-color:#ffadd2}.ant-tag-magenta-inverse{color:#fff;background:#eb2f96;border-color:#eb2f96}.ant-tag-red{color:#cf1322;background:#fff1f0;border-color:#ffa39e}.ant-tag-red-inverse{color:#fff;background:#f5222d;border-color:#f5222d}.ant-tag-volcano{color:#d4380d;background:#fff2e8;border-color:#ffbb96}.ant-tag-volcano-inverse{color:#fff;background:#fa541c;border-color:#fa541c}.ant-tag-orange{color:#d46b08;background:#fff7e6;border-color:#ffd591}.ant-tag-orange-inverse{color:#fff;background:#fa8c16;border-color:#fa8c16}.ant-tag-yellow{color:#d4b106;background:#feffe6;border-color:#fffb8f}.ant-tag-yellow-inverse{color:#fff;background:#fadb14;border-color:#fadb14}.ant-tag-gold{color:#d48806;background:#fffbe6;border-color:#ffe58f}.ant-tag-gold-inverse{color:#fff;background:#faad14;border-color:#faad14}.ant-tag-cyan{color:#08979c;background:#e6fffb;border-color:#87e8de}.ant-tag-cyan-inverse{color:#fff;background:#13c2c2;border-color:#13c2c2}.ant-tag-lime{color:#7cb305;background:#fcffe6;border-color:#eaff8f}.ant-tag-lime-inverse{color:#fff;background:#a0d911;border-color:#a0d911}.ant-tag-green{color:#389e0d;background:#f6ffed;border-color:#b7eb8f}.ant-tag-green-inverse{color:#fff;background:#52c41a;border-color:#52c41a}.ant-tag-blue{color:#096dd9;background:#e6f7ff;border-color:#91d5ff}.ant-tag-blue-inverse{color:#fff;background:#1890ff;border-color:#1890ff}.ant-tag-geekblue{color:#1d39c4;background:#f0f5ff;border-color:#adc6ff}.ant-tag-geekblue-inverse{color:#fff;background:#2f54eb;border-color:#2f54eb}.ant-tag-purple{color:#531dab;background:#f9f0ff;border-color:#d3adf7}.ant-tag-purple-inverse{color:#fff;background:#722ed1;border-color:#722ed1}.ant-tag-success{color:#52c41a;background:#f6ffed;border-color:#b7eb8f}.ant-tag-processing{color:#1890ff;background:#e6f7ff;border-color:#91d5ff}.ant-tag-error{color:#ff4d4f;background:#fff2f0;border-color:#ffccc7}.ant-tag-warning{color:#faad14;background:#fffbe6;border-color:#ffe58f}.ant-tag>.anticon+span,.ant-tag>span+.anticon{margin-left:7px}.ant-tag.ant-tag-rtl{margin-right:0;margin-left:8px;direction:rtl;text-align:right}.ant-tag-rtl .ant-tag-close-icon{margin-right:3px;margin-left:0}.ant-tag-rtl.ant-tag>.anticon+span,.ant-tag-rtl.ant-tag>span+.anticon{margin-right:7px;margin-left:0}.ant-card{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";position:relative;background:#fff;border-radius:2px}.ant-card-rtl{direction:rtl}.ant-card-hoverable{cursor:pointer;-webkit-transition:border-color .3s,-webkit-box-shadow .3s;transition:border-color .3s,-webkit-box-shadow .3s;-moz-transition:box-shadow .3s,border-color .3s;transition:box-shadow .3s,border-color .3s;transition:box-shadow .3s,border-color .3s,-webkit-box-shadow .3s}.ant-card-hoverable:hover{border-color:transparent;-webkit-box-shadow:0 1px 2px -2px rgba(0,0,0,.16),0 3px 6px 0 rgba(0,0,0,.12),0 5px 12px 4px rgba(0,0,0,.09);box-shadow:0 1px 2px -2px rgba(0,0,0,.16),0 3px 6px 0 rgba(0,0,0,.12),0 5px 12px 4px rgba(0,0,0,.09)}.ant-card-bordered{border:1px solid #f0f0f0}.ant-card-head{min-height:48px;margin-bottom:-1px;padding:0 24px;color:rgba(0,0,0,.85);font-weight:500;font-size:16px;background:transparent;border-bottom:1px solid #f0f0f0;border-radius:2px 2px 0 0}.ant-card-head:after,.ant-card-head:before{display:table;content:""}.ant-card-head:after{clear:both}.ant-card-head-wrapper{display:-moz-box;display:flex;-moz-box-align:center;align-items:center}.ant-card-head-title{display:inline-block;-moz-box-flex:1;flex:1 1;padding:16px 0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ant-card-head-title>.ant-typography,.ant-card-head-title>.ant-typography-edit-content{left:0;margin-top:0;margin-bottom:0}.ant-card-head .ant-tabs-top{clear:both;margin-bottom:-17px;color:rgba(0,0,0,.85);font-weight:400;font-size:14px}.ant-card-head .ant-tabs-top-bar{border-bottom:1px solid #f0f0f0}.ant-card-extra{float:right;margin-left:auto;padding:16px 0;color:rgba(0,0,0,.85);font-weight:400;font-size:14px}.ant-card-rtl .ant-card-extra{margin-right:auto;margin-left:0}.ant-card-body{padding:24px}.ant-card-body:after,.ant-card-body:before{display:table;content:""}.ant-card-body:after{clear:both}.ant-card-contain-grid:not(.ant-card-loading) .ant-card-body{margin:-1px 0 0 -1px;padding:0}.ant-card-grid{float:left;width:33.33%;padding:24px;border:0;border-radius:0;-webkit-box-shadow:1px 0 0 0 #f0f0f0,0 1px 0 0 #f0f0f0,1px 1px 0 0 #f0f0f0,inset 1px 0 0 0 #f0f0f0,inset 0 1px 0 0 #f0f0f0;box-shadow:1px 0 0 0 #f0f0f0,0 1px 0 0 #f0f0f0,1px 1px 0 0 #f0f0f0,inset 1px 0 0 0 #f0f0f0,inset 0 1px 0 0 #f0f0f0;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s}.ant-card-rtl .ant-card-grid{float:right}.ant-card-grid-hoverable:hover{position:relative;z-index:1;-webkit-box-shadow:0 1px 2px -2px rgba(0,0,0,.16),0 3px 6px 0 rgba(0,0,0,.12),0 5px 12px 4px rgba(0,0,0,.09);box-shadow:0 1px 2px -2px rgba(0,0,0,.16),0 3px 6px 0 rgba(0,0,0,.12),0 5px 12px 4px rgba(0,0,0,.09)}.ant-card-contain-tabs>.ant-card-head .ant-card-head-title{min-height:32px;padding-bottom:0}.ant-card-contain-tabs>.ant-card-head .ant-card-extra{padding-bottom:0}.ant-card-bordered .ant-card-cover{margin-top:-1px;margin-right:-1px;margin-left:-1px}.ant-card-cover>*{display:block;width:100%}.ant-card-cover img{border-radius:2px 2px 0 0}.ant-card-actions{margin:0;padding:0;list-style:none;background:#fff;border-top:1px solid #f0f0f0}.ant-card-actions:after,.ant-card-actions:before{display:table;content:""}.ant-card-actions:after{clear:both}.ant-card-actions>li{float:left;margin:12px 0;color:rgba(0,0,0,.45);text-align:center}.ant-card-rtl .ant-card-actions>li{float:right}.ant-card-actions>li>span{position:relative;display:block;min-width:32px;font-size:14px;line-height:1.5715;cursor:pointer}.ant-card-actions>li>span:hover{color:#1890ff;-webkit-transition:color .3s;-moz-transition:color .3s;transition:color .3s}.ant-card-actions>li>span>.anticon,.ant-card-actions>li>span a:not(.ant-btn){display:inline-block;width:100%;color:rgba(0,0,0,.45);line-height:22px;-webkit-transition:color .3s;-moz-transition:color .3s;transition:color .3s}.ant-card-actions>li>span>.anticon:hover,.ant-card-actions>li>span a:not(.ant-btn):hover{color:#1890ff}.ant-card-actions>li>span>.anticon{font-size:16px;line-height:22px}.ant-card-actions>li:not(:last-child){border-right:1px solid #f0f0f0}.ant-card-rtl .ant-card-actions>li:not(:last-child){border-right:none;border-left:1px solid #f0f0f0}.ant-card-type-inner .ant-card-head{padding:0 24px;background:#fafafa}.ant-card-type-inner .ant-card-head-title{padding:12px 0;font-size:14px}.ant-card-type-inner .ant-card-body{padding:16px 24px}.ant-card-type-inner .ant-card-extra{padding:13.5px 0}.ant-card-meta{margin:-4px 0}.ant-card-meta:after,.ant-card-meta:before{display:table;content:""}.ant-card-meta:after{clear:both}.ant-card-meta-avatar{float:left;padding-right:16px}.ant-card-rtl .ant-card-meta-avatar{float:right;padding-right:0;padding-left:16px}.ant-card-meta-detail{overflow:hidden}.ant-card-meta-detail>div:not(:last-child){margin-bottom:8px}.ant-card-meta-title{overflow:hidden;color:rgba(0,0,0,.85);font-weight:500;font-size:16px;white-space:nowrap;text-overflow:ellipsis}.ant-card-meta-description{color:rgba(0,0,0,.45)}.ant-card-loading{overflow:hidden}.ant-card-loading .ant-card-body{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-card-loading-content p{margin:0}.ant-card-loading-block{height:14px;margin:4px 0;background:-webkit-gradient(linear,left top,right top,from(rgba(207,216,220,.2)),color-stop(rgba(207,216,220,.4)),to(rgba(207,216,220,.2)));background:-webkit-linear-gradient(left,rgba(207,216,220,.2),rgba(207,216,220,.4),rgba(207,216,220,.2));background:-moz-linear-gradient(left,rgba(207,216,220,.2),rgba(207,216,220,.4),rgba(207,216,220,.2));background:linear-gradient(90deg,rgba(207,216,220,.2),rgba(207,216,220,.4),rgba(207,216,220,.2));background-size:600% 600%;border-radius:2px;-webkit-animation:card-loading 1.4s ease infinite;-moz-animation:card-loading 1.4s ease infinite;animation:card-loading 1.4s ease infinite}@-webkit-keyframes card-loading{0%,to{background-position:0 50%}50%{background-position:100% 50%}}@-moz-keyframes card-loading{0%,to{background-position:0 50%}50%{background-position:100% 50%}}@keyframes card-loading{0%,to{background-position:0 50%}50%{background-position:100% 50%}}.ant-card-small>.ant-card-head{min-height:36px;padding:0 12px;font-size:14px}.ant-card-small>.ant-card-head>.ant-card-head-wrapper>.ant-card-head-title{padding:8px 0}.ant-card-small>.ant-card-head>.ant-card-head-wrapper>.ant-card-extra{padding:8px 0;font-size:14px}.ant-card-small>.ant-card-body{padding:12px}.ant-tabs-small>.ant-tabs-nav .ant-tabs-tab{padding:8px 0;font-size:14px}.ant-tabs-large>.ant-tabs-nav .ant-tabs-tab{padding:16px 0;font-size:16px}.ant-tabs-card.ant-tabs-small>.ant-tabs-nav .ant-tabs-tab{padding:6px 16px}.ant-tabs-card.ant-tabs-large>.ant-tabs-nav .ant-tabs-tab{padding:7px 16px 6px}.ant-tabs-rtl{direction:rtl}.ant-tabs-rtl .ant-tabs-nav .ant-tabs-tab{margin:0 0 0 32px}.ant-tabs-rtl .ant-tabs-nav .ant-tabs-tab:last-of-type{margin-left:0}.ant-tabs-rtl .ant-tabs-nav .ant-tabs-tab .anticon{margin-right:0;margin-left:12px}.ant-tabs-rtl .ant-tabs-nav .ant-tabs-tab .ant-tabs-tab-remove{margin-right:8px;margin-left:-4px}.ant-tabs-rtl .ant-tabs-nav .ant-tabs-tab .ant-tabs-tab-remove .anticon{margin:0}.ant-tabs-rtl.ant-tabs-left>.ant-tabs-nav{-moz-box-ordinal-group:2;order:1}.ant-tabs-rtl.ant-tabs-left>.ant-tabs-content-holder,.ant-tabs-rtl.ant-tabs-right>.ant-tabs-nav{-moz-box-ordinal-group:1;order:0}.ant-tabs-rtl.ant-tabs-right>.ant-tabs-content-holder{-moz-box-ordinal-group:2;order:1}.ant-tabs-rtl.ant-tabs-card.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-nav-add,.ant-tabs-rtl.ant-tabs-card.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-rtl.ant-tabs-card.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-nav-add,.ant-tabs-rtl.ant-tabs-card.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-rtl.ant-tabs-card.ant-tabs-top>.ant-tabs-nav .ant-tabs-nav-add,.ant-tabs-rtl.ant-tabs-card.ant-tabs-top>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-rtl.ant-tabs-card.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-nav-add,.ant-tabs-rtl.ant-tabs-card.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab{margin-right:2px;margin-left:0}.ant-tabs-dropdown-rtl{direction:rtl}.ant-tabs-dropdown-rtl .ant-tabs-dropdown-menu-item{text-align:right}.ant-tabs-bottom,.ant-tabs-top{-moz-box-orient:vertical;-moz-box-direction:normal;flex-direction:column}.ant-tabs-bottom>.ant-tabs-nav,.ant-tabs-bottom>div>.ant-tabs-nav,.ant-tabs-top>.ant-tabs-nav,.ant-tabs-top>div>.ant-tabs-nav{margin:0 0 16px}.ant-tabs-bottom>.ant-tabs-nav:before,.ant-tabs-bottom>div>.ant-tabs-nav:before,.ant-tabs-top>.ant-tabs-nav:before,.ant-tabs-top>div>.ant-tabs-nav:before{position:absolute;right:0;left:0;border-bottom:1px solid #f0f0f0;content:""}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-top>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-ink-bar{height:2px}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-ink-bar-animated,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-ink-bar-animated,.ant-tabs-top>.ant-tabs-nav .ant-tabs-ink-bar-animated,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-ink-bar-animated{-webkit-transition:width .3s,left .3s,right .3s;-moz-transition:width .3s,left .3s,right .3s;transition:width .3s,left .3s,right .3s}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-top>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-top>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-nav-wrap:before{top:0;bottom:0;width:30px}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-top>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-nav-wrap:before{left:0;-webkit-box-shadow:inset 10px 0 8px -8px rgba(0,0,0,.08);box-shadow:inset 10px 0 8px -8px rgba(0,0,0,.08)}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-top>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-nav-wrap:after{right:0;-webkit-box-shadow:inset -10px 0 8px -8px rgba(0,0,0,.08);box-shadow:inset -10px 0 8px -8px rgba(0,0,0,.08)}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-left:before,.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-right:after,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-left:before,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-right:after,.ant-tabs-top>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-left:before,.ant-tabs-top>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-right:after,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-left:before,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-right:after{opacity:1}.ant-tabs-top>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-top>.ant-tabs-nav:before,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-top>div>.ant-tabs-nav:before{bottom:0}.ant-tabs-bottom>.ant-tabs-nav,.ant-tabs-bottom>div>.ant-tabs-nav{-moz-box-ordinal-group:2;order:1;margin-top:16px;margin-bottom:0}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-bottom>.ant-tabs-nav:before,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-bottom>div>.ant-tabs-nav:before{top:0}.ant-tabs-bottom>.ant-tabs-content-holder,.ant-tabs-bottom>div>.ant-tabs-content-holder{-moz-box-ordinal-group:1;order:0}.ant-tabs-left>.ant-tabs-nav,.ant-tabs-left>div>.ant-tabs-nav,.ant-tabs-right>.ant-tabs-nav,.ant-tabs-right>div>.ant-tabs-nav{-moz-box-orient:vertical;-moz-box-direction:normal;flex-direction:column;min-width:50px}.ant-tabs-left>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-right>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-tab{padding:8px 24px;text-align:center}.ant-tabs-left>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-right>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab{margin:16px 0 0}.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap{-moz-box-orient:vertical;-moz-box-direction:normal;flex-direction:column}.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap:before{right:0;left:0;height:30px}.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap:before{top:0;-webkit-box-shadow:inset 0 10px 8px -8px rgba(0,0,0,.08);box-shadow:inset 0 10px 8px -8px rgba(0,0,0,.08)}.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap:after{bottom:0;-webkit-box-shadow:inset 0 -10px 8px -8px rgba(0,0,0,.08);box-shadow:inset 0 -10px 8px -8px rgba(0,0,0,.08)}.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-bottom:after,.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-top:before,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-bottom:after,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-top:before,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-bottom:after,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-top:before,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-bottom:after,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-top:before{opacity:1}.ant-tabs-left>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-right>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-ink-bar{width:2px}.ant-tabs-left>.ant-tabs-nav .ant-tabs-ink-bar-animated,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-ink-bar-animated,.ant-tabs-right>.ant-tabs-nav .ant-tabs-ink-bar-animated,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-ink-bar-animated{-webkit-transition:height .3s,top .3s;-moz-transition:height .3s,top .3s;transition:height .3s,top .3s}.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-list,.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-operations,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-list,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-operations,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-list,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-operations,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-list,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-operations{-moz-box-flex:1;flex:1 0 auto;-moz-box-orient:vertical;-moz-box-direction:normal;flex-direction:column}.ant-tabs-left>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-ink-bar{right:0}.ant-tabs-left>.ant-tabs-content-holder,.ant-tabs-left>div>.ant-tabs-content-holder{margin-left:-1px;border-left:1px solid #f0f0f0}.ant-tabs-left>.ant-tabs-content-holder>.ant-tabs-content>.ant-tabs-tabpane,.ant-tabs-left>div>.ant-tabs-content-holder>.ant-tabs-content>.ant-tabs-tabpane{padding-left:24px}.ant-tabs-right>.ant-tabs-nav,.ant-tabs-right>div>.ant-tabs-nav{-moz-box-ordinal-group:2;order:1}.ant-tabs-right>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-ink-bar{left:0}.ant-tabs-right>.ant-tabs-content-holder,.ant-tabs-right>div>.ant-tabs-content-holder{-moz-box-ordinal-group:1;order:0;margin-right:-1px;border-right:1px solid #f0f0f0}.ant-tabs-right>.ant-tabs-content-holder>.ant-tabs-content>.ant-tabs-tabpane,.ant-tabs-right>div>.ant-tabs-content-holder>.ant-tabs-content>.ant-tabs-tabpane{padding-right:24px}.ant-tabs-dropdown{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";position:absolute;top:-9999px;left:-9999px;z-index:1050;display:block}.ant-tabs-dropdown-hidden{display:none}.ant-tabs-dropdown-menu{max-height:200px;margin:0;padding:4px 0;overflow-x:hidden;overflow-y:auto;text-align:left;list-style-type:none;background-color:#fff;background-clip:padding-box;border-radius:2px;outline:none;-webkit-box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05)}.ant-tabs-dropdown-menu-item{display:-moz-box;display:flex;-moz-box-align:center;align-items:center;min-width:120px;margin:0;padding:5px 12px;overflow:hidden;color:rgba(0,0,0,.85);font-weight:400;font-size:14px;line-height:22px;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s}.ant-tabs-dropdown-menu-item>span{-moz-box-flex:1;flex:1 1;white-space:nowrap}.ant-tabs-dropdown-menu-item-remove{-moz-box-flex:0;flex:none;margin-left:12px;color:rgba(0,0,0,.45);font-size:12px;background:transparent;border:0;cursor:pointer}.ant-tabs-dropdown-menu-item-remove:hover{color:#40a9ff}.ant-tabs-dropdown-menu-item:hover{background:#f5f5f5}.ant-tabs-dropdown-menu-item-disabled,.ant-tabs-dropdown-menu-item-disabled:hover{color:rgba(0,0,0,.25);background:transparent;cursor:not-allowed}.ant-tabs-card>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-card>div>.ant-tabs-nav .ant-tabs-tab{margin:0;padding:8px 16px;background:#fafafa;border:1px solid #f0f0f0;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);-moz-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1)}.ant-tabs-card>.ant-tabs-nav .ant-tabs-tab-active,.ant-tabs-card>div>.ant-tabs-nav .ant-tabs-tab-active{color:#1890ff;background:#fff}.ant-tabs-card>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-card>div>.ant-tabs-nav .ant-tabs-ink-bar{visibility:hidden}.ant-tabs-card.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-card.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-card.ant-tabs-top>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-card.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab{margin-left:2px}.ant-tabs-card.ant-tabs-top>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-card.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-tab{border-radius:2px 2px 0 0}.ant-tabs-card.ant-tabs-top>.ant-tabs-nav .ant-tabs-tab-active,.ant-tabs-card.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-tab-active{border-bottom-color:#fff}.ant-tabs-card.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-card.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-tab{border-radius:0 0 2px 2px}.ant-tabs-card.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-tab-active,.ant-tabs-card.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-tab-active{border-top-color:#fff}.ant-tabs-card.ant-tabs-left>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-card.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-card.ant-tabs-right>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-card.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab{margin-top:2px}.ant-tabs-card.ant-tabs-left>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-card.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-tab{border-radius:2px 0 0 2px}.ant-tabs-card.ant-tabs-left>.ant-tabs-nav .ant-tabs-tab-active,.ant-tabs-card.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-tab-active{border-right-color:#fff}.ant-tabs-card.ant-tabs-right>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-card.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-tab{border-radius:0 2px 2px 0}.ant-tabs-card.ant-tabs-right>.ant-tabs-nav .ant-tabs-tab-active,.ant-tabs-card.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-tab-active{border-left-color:#fff}.ant-tabs{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";display:-moz-box;display:flex;overflow:hidden}.ant-tabs>.ant-tabs-nav,.ant-tabs>div>.ant-tabs-nav{position:relative;display:-moz-box;display:flex;-moz-box-flex:0;flex:none;-moz-box-align:center;align-items:center}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-wrap,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-wrap{position:relative;display:inline-block;display:-moz-box;display:flex;-moz-box-flex:1;flex:auto;align-self:stretch;overflow:hidden;white-space:nowrap;-webkit-transform:translate(0);-moz-transform:translate(0);transform:translate(0)}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-wrap:before{position:absolute;z-index:1;opacity:0;-webkit-transition:opacity .3s;-moz-transition:opacity .3s;transition:opacity .3s;content:"";pointer-events:none}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-list,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-list{position:relative;display:-moz-box;display:flex;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;-moz-transition:transform .3s,-moz-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s,-moz-transform .3s}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-operations,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-operations{display:-moz-box;display:flex;align-self:stretch}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-operations-hidden,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-operations-hidden{position:absolute;visibility:hidden;pointer-events:none}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-more,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-more{position:relative;padding:8px 16px;background:transparent;border:0}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-more:after,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-more:after{position:absolute;right:0;bottom:0;left:0;height:5px;-webkit-transform:translateY(100%);-moz-transform:translateY(100%);transform:translateY(100%);content:""}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-add,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-add{min-width:40px;margin-left:2px;padding:0 8px;background:#fafafa;border:1px solid #f0f0f0;border-radius:2px 2px 0 0;outline:none;cursor:pointer;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);-moz-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1)}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-add:hover,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-add:hover{color:#40a9ff}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-add:active,.ant-tabs>.ant-tabs-nav .ant-tabs-nav-add:focus,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-add:active,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-add:focus{color:#096dd9}.ant-tabs-extra-content{-moz-box-flex:0;flex:none}.ant-tabs-centered>.ant-tabs-nav .ant-tabs-nav-wrap:not([class*=ant-tabs-nav-wrap-ping]),.ant-tabs-centered>div>.ant-tabs-nav .ant-tabs-nav-wrap:not([class*=ant-tabs-nav-wrap-ping]){-moz-box-pack:center;justify-content:center}.ant-tabs-ink-bar{position:absolute;background:#1890ff;pointer-events:none}.ant-tabs-tab{position:relative;display:-moz-inline-box;display:inline-flex;-moz-box-align:center;align-items:center;padding:12px 0;font-size:14px;background:transparent;border:0;outline:none;cursor:pointer}.ant-tabs-tab-btn:active,.ant-tabs-tab-btn:focus,.ant-tabs-tab-remove:active,.ant-tabs-tab-remove:focus{color:#096dd9}.ant-tabs-tab-btn,.ant-tabs-tab-remove{outline:none;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s}.ant-tabs-tab-remove{-moz-box-flex:0;flex:none;margin-right:-4px;margin-left:8px;color:rgba(0,0,0,.45);font-size:12px;background:transparent;border:none;cursor:pointer}.ant-tabs-tab-remove:hover{color:rgba(0,0,0,.85)}.ant-tabs-tab:hover{color:#40a9ff}.ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn{color:#1890ff;text-shadow:0 0 .25px currentColor}.ant-tabs-tab.ant-tabs-tab-disabled{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-tabs-tab.ant-tabs-tab-disabled .ant-tabs-tab-btn:active,.ant-tabs-tab.ant-tabs-tab-disabled .ant-tabs-tab-btn:focus,.ant-tabs-tab.ant-tabs-tab-disabled .ant-tabs-tab-remove:active,.ant-tabs-tab.ant-tabs-tab-disabled .ant-tabs-tab-remove:focus{color:rgba(0,0,0,.25)}.ant-tabs-tab .ant-tabs-tab-remove .anticon{margin:0}.ant-tabs-tab .anticon{margin-right:12px}.ant-tabs-tab+.ant-tabs-tab{margin:0 0 0 32px}.ant-tabs-content{display:-moz-box;display:flex;width:100%}.ant-tabs-content-holder{-moz-box-flex:1;flex:auto;min-width:0;min-height:0}.ant-tabs-content-animated{-webkit-transition:margin .3s;-moz-transition:margin .3s;transition:margin .3s}.ant-tabs-tabpane{-moz-box-flex:0;flex:none;width:100%;outline:none}.ant-row{-moz-box-orient:horizontal;-moz-box-direction:normal;flex-flow:row wrap}.ant-row,.ant-row:after,.ant-row:before{display:-moz-box;display:flex}.ant-row-no-wrap{flex-wrap:nowrap}.ant-row-start{-moz-box-pack:start;justify-content:flex-start}.ant-row-center{-moz-box-pack:center;justify-content:center}.ant-row-end{-moz-box-pack:end;justify-content:flex-end}.ant-row-space-between{-moz-box-pack:justify;justify-content:space-between}.ant-row-space-around{justify-content:space-around}.ant-row-top{-moz-box-align:start;align-items:flex-start}.ant-row-middle{-moz-box-align:center;align-items:center}.ant-row-bottom{-moz-box-align:end;align-items:flex-end}.ant-col{position:relative;max-width:100%;min-height:1px}.ant-col-24{display:block;-moz-box-flex:0;flex:0 0 100%;max-width:100%}.ant-col-push-24{left:100%}.ant-col-pull-24{right:100%}.ant-col-offset-24{margin-left:100%}.ant-col-order-24{-moz-box-ordinal-group:25;order:24}.ant-col-23{display:block;-moz-box-flex:0;flex:0 0 95.83333333%;max-width:95.83333333%}.ant-col-push-23{left:95.83333333%}.ant-col-pull-23{right:95.83333333%}.ant-col-offset-23{margin-left:95.83333333%}.ant-col-order-23{-moz-box-ordinal-group:24;order:23}.ant-col-22{display:block;-moz-box-flex:0;flex:0 0 91.66666667%;max-width:91.66666667%}.ant-col-push-22{left:91.66666667%}.ant-col-pull-22{right:91.66666667%}.ant-col-offset-22{margin-left:91.66666667%}.ant-col-order-22{-moz-box-ordinal-group:23;order:22}.ant-col-21{display:block;-moz-box-flex:0;flex:0 0 87.5%;max-width:87.5%}.ant-col-push-21{left:87.5%}.ant-col-pull-21{right:87.5%}.ant-col-offset-21{margin-left:87.5%}.ant-col-order-21{-moz-box-ordinal-group:22;order:21}.ant-col-20{display:block;-moz-box-flex:0;flex:0 0 83.33333333%;max-width:83.33333333%}.ant-col-push-20{left:83.33333333%}.ant-col-pull-20{right:83.33333333%}.ant-col-offset-20{margin-left:83.33333333%}.ant-col-order-20{-moz-box-ordinal-group:21;order:20}.ant-col-19{display:block;-moz-box-flex:0;flex:0 0 79.16666667%;max-width:79.16666667%}.ant-col-push-19{left:79.16666667%}.ant-col-pull-19{right:79.16666667%}.ant-col-offset-19{margin-left:79.16666667%}.ant-col-order-19{-moz-box-ordinal-group:20;order:19}.ant-col-18{display:block;-moz-box-flex:0;flex:0 0 75%;max-width:75%}.ant-col-push-18{left:75%}.ant-col-pull-18{right:75%}.ant-col-offset-18{margin-left:75%}.ant-col-order-18{-moz-box-ordinal-group:19;order:18}.ant-col-17{display:block;-moz-box-flex:0;flex:0 0 70.83333333%;max-width:70.83333333%}.ant-col-push-17{left:70.83333333%}.ant-col-pull-17{right:70.83333333%}.ant-col-offset-17{margin-left:70.83333333%}.ant-col-order-17{-moz-box-ordinal-group:18;order:17}.ant-col-16{display:block;-moz-box-flex:0;flex:0 0 66.66666667%;max-width:66.66666667%}.ant-col-push-16{left:66.66666667%}.ant-col-pull-16{right:66.66666667%}.ant-col-offset-16{margin-left:66.66666667%}.ant-col-order-16{-moz-box-ordinal-group:17;order:16}.ant-col-15{display:block;-moz-box-flex:0;flex:0 0 62.5%;max-width:62.5%}.ant-col-push-15{left:62.5%}.ant-col-pull-15{right:62.5%}.ant-col-offset-15{margin-left:62.5%}.ant-col-order-15{-moz-box-ordinal-group:16;order:15}.ant-col-14{display:block;-moz-box-flex:0;flex:0 0 58.33333333%;max-width:58.33333333%}.ant-col-push-14{left:58.33333333%}.ant-col-pull-14{right:58.33333333%}.ant-col-offset-14{margin-left:58.33333333%}.ant-col-order-14{-moz-box-ordinal-group:15;order:14}.ant-col-13{display:block;-moz-box-flex:0;flex:0 0 54.16666667%;max-width:54.16666667%}.ant-col-push-13{left:54.16666667%}.ant-col-pull-13{right:54.16666667%}.ant-col-offset-13{margin-left:54.16666667%}.ant-col-order-13{-moz-box-ordinal-group:14;order:13}.ant-col-12{display:block;-moz-box-flex:0;flex:0 0 50%;max-width:50%}.ant-col-push-12{left:50%}.ant-col-pull-12{right:50%}.ant-col-offset-12{margin-left:50%}.ant-col-order-12{-moz-box-ordinal-group:13;order:12}.ant-col-11{display:block;-moz-box-flex:0;flex:0 0 45.83333333%;max-width:45.83333333%}.ant-col-push-11{left:45.83333333%}.ant-col-pull-11{right:45.83333333%}.ant-col-offset-11{margin-left:45.83333333%}.ant-col-order-11{-moz-box-ordinal-group:12;order:11}.ant-col-10{display:block;-moz-box-flex:0;flex:0 0 41.66666667%;max-width:41.66666667%}.ant-col-push-10{left:41.66666667%}.ant-col-pull-10{right:41.66666667%}.ant-col-offset-10{margin-left:41.66666667%}.ant-col-order-10{-moz-box-ordinal-group:11;order:10}.ant-col-9{display:block;-moz-box-flex:0;flex:0 0 37.5%;max-width:37.5%}.ant-col-push-9{left:37.5%}.ant-col-pull-9{right:37.5%}.ant-col-offset-9{margin-left:37.5%}.ant-col-order-9{-moz-box-ordinal-group:10;order:9}.ant-col-8{display:block;-moz-box-flex:0;flex:0 0 33.33333333%;max-width:33.33333333%}.ant-col-push-8{left:33.33333333%}.ant-col-pull-8{right:33.33333333%}.ant-col-offset-8{margin-left:33.33333333%}.ant-col-order-8{-moz-box-ordinal-group:9;order:8}.ant-col-7{display:block;-moz-box-flex:0;flex:0 0 29.16666667%;max-width:29.16666667%}.ant-col-push-7{left:29.16666667%}.ant-col-pull-7{right:29.16666667%}.ant-col-offset-7{margin-left:29.16666667%}.ant-col-order-7{-moz-box-ordinal-group:8;order:7}.ant-col-6{display:block;-moz-box-flex:0;flex:0 0 25%;max-width:25%}.ant-col-push-6{left:25%}.ant-col-pull-6{right:25%}.ant-col-offset-6{margin-left:25%}.ant-col-order-6{-moz-box-ordinal-group:7;order:6}.ant-col-5{display:block;-moz-box-flex:0;flex:0 0 20.83333333%;max-width:20.83333333%}.ant-col-push-5{left:20.83333333%}.ant-col-pull-5{right:20.83333333%}.ant-col-offset-5{margin-left:20.83333333%}.ant-col-order-5{-moz-box-ordinal-group:6;order:5}.ant-col-4{display:block;-moz-box-flex:0;flex:0 0 16.66666667%;max-width:16.66666667%}.ant-col-push-4{left:16.66666667%}.ant-col-pull-4{right:16.66666667%}.ant-col-offset-4{margin-left:16.66666667%}.ant-col-order-4{-moz-box-ordinal-group:5;order:4}.ant-col-3{display:block;-moz-box-flex:0;flex:0 0 12.5%;max-width:12.5%}.ant-col-push-3{left:12.5%}.ant-col-pull-3{right:12.5%}.ant-col-offset-3{margin-left:12.5%}.ant-col-order-3{-moz-box-ordinal-group:4;order:3}.ant-col-2{display:block;-moz-box-flex:0;flex:0 0 8.33333333%;max-width:8.33333333%}.ant-col-push-2{left:8.33333333%}.ant-col-pull-2{right:8.33333333%}.ant-col-offset-2{margin-left:8.33333333%}.ant-col-order-2{-moz-box-ordinal-group:3;order:2}.ant-col-1{display:block;-moz-box-flex:0;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-push-1{left:4.16666667%}.ant-col-pull-1{right:4.16666667%}.ant-col-offset-1{margin-left:4.16666667%}.ant-col-order-1{-moz-box-ordinal-group:2;order:1}.ant-col-0{display:none}.ant-col-offset-0{margin-left:0}.ant-col-order-0{-moz-box-ordinal-group:1;order:0}.ant-col-offset-0.ant-col-rtl{margin-right:0}.ant-col-push-1.ant-col-rtl{right:4.16666667%;left:auto}.ant-col-pull-1.ant-col-rtl{right:auto;left:4.16666667%}.ant-col-offset-1.ant-col-rtl{margin-right:4.16666667%;margin-left:0}.ant-col-push-2.ant-col-rtl{right:8.33333333%;left:auto}.ant-col-pull-2.ant-col-rtl{right:auto;left:8.33333333%}.ant-col-offset-2.ant-col-rtl{margin-right:8.33333333%;margin-left:0}.ant-col-push-3.ant-col-rtl{right:12.5%;left:auto}.ant-col-pull-3.ant-col-rtl{right:auto;left:12.5%}.ant-col-offset-3.ant-col-rtl{margin-right:12.5%;margin-left:0}.ant-col-push-4.ant-col-rtl{right:16.66666667%;left:auto}.ant-col-pull-4.ant-col-rtl{right:auto;left:16.66666667%}.ant-col-offset-4.ant-col-rtl{margin-right:16.66666667%;margin-left:0}.ant-col-push-5.ant-col-rtl{right:20.83333333%;left:auto}.ant-col-pull-5.ant-col-rtl{right:auto;left:20.83333333%}.ant-col-offset-5.ant-col-rtl{margin-right:20.83333333%;margin-left:0}.ant-col-push-6.ant-col-rtl{right:25%;left:auto}.ant-col-pull-6.ant-col-rtl{right:auto;left:25%}.ant-col-offset-6.ant-col-rtl{margin-right:25%;margin-left:0}.ant-col-push-7.ant-col-rtl{right:29.16666667%;left:auto}.ant-col-pull-7.ant-col-rtl{right:auto;left:29.16666667%}.ant-col-offset-7.ant-col-rtl{margin-right:29.16666667%;margin-left:0}.ant-col-push-8.ant-col-rtl{right:33.33333333%;left:auto}.ant-col-pull-8.ant-col-rtl{right:auto;left:33.33333333%}.ant-col-offset-8.ant-col-rtl{margin-right:33.33333333%;margin-left:0}.ant-col-push-9.ant-col-rtl{right:37.5%;left:auto}.ant-col-pull-9.ant-col-rtl{right:auto;left:37.5%}.ant-col-offset-9.ant-col-rtl{margin-right:37.5%;margin-left:0}.ant-col-push-10.ant-col-rtl{right:41.66666667%;left:auto}.ant-col-pull-10.ant-col-rtl{right:auto;left:41.66666667%}.ant-col-offset-10.ant-col-rtl{margin-right:41.66666667%;margin-left:0}.ant-col-push-11.ant-col-rtl{right:45.83333333%;left:auto}.ant-col-pull-11.ant-col-rtl{right:auto;left:45.83333333%}.ant-col-offset-11.ant-col-rtl{margin-right:45.83333333%;margin-left:0}.ant-col-push-12.ant-col-rtl{right:50%;left:auto}.ant-col-pull-12.ant-col-rtl{right:auto;left:50%}.ant-col-offset-12.ant-col-rtl{margin-right:50%;margin-left:0}.ant-col-push-13.ant-col-rtl{right:54.16666667%;left:auto}.ant-col-pull-13.ant-col-rtl{right:auto;left:54.16666667%}.ant-col-offset-13.ant-col-rtl{margin-right:54.16666667%;margin-left:0}.ant-col-push-14.ant-col-rtl{right:58.33333333%;left:auto}.ant-col-pull-14.ant-col-rtl{right:auto;left:58.33333333%}.ant-col-offset-14.ant-col-rtl{margin-right:58.33333333%;margin-left:0}.ant-col-push-15.ant-col-rtl{right:62.5%;left:auto}.ant-col-pull-15.ant-col-rtl{right:auto;left:62.5%}.ant-col-offset-15.ant-col-rtl{margin-right:62.5%;margin-left:0}.ant-col-push-16.ant-col-rtl{right:66.66666667%;left:auto}.ant-col-pull-16.ant-col-rtl{right:auto;left:66.66666667%}.ant-col-offset-16.ant-col-rtl{margin-right:66.66666667%;margin-left:0}.ant-col-push-17.ant-col-rtl{right:70.83333333%;left:auto}.ant-col-pull-17.ant-col-rtl{right:auto;left:70.83333333%}.ant-col-offset-17.ant-col-rtl{margin-right:70.83333333%;margin-left:0}.ant-col-push-18.ant-col-rtl{right:75%;left:auto}.ant-col-pull-18.ant-col-rtl{right:auto;left:75%}.ant-col-offset-18.ant-col-rtl{margin-right:75%;margin-left:0}.ant-col-push-19.ant-col-rtl{right:79.16666667%;left:auto}.ant-col-pull-19.ant-col-rtl{right:auto;left:79.16666667%}.ant-col-offset-19.ant-col-rtl{margin-right:79.16666667%;margin-left:0}.ant-col-push-20.ant-col-rtl{right:83.33333333%;left:auto}.ant-col-pull-20.ant-col-rtl{right:auto;left:83.33333333%}.ant-col-offset-20.ant-col-rtl{margin-right:83.33333333%;margin-left:0}.ant-col-push-21.ant-col-rtl{right:87.5%;left:auto}.ant-col-pull-21.ant-col-rtl{right:auto;left:87.5%}.ant-col-offset-21.ant-col-rtl{margin-right:87.5%;margin-left:0}.ant-col-push-22.ant-col-rtl{right:91.66666667%;left:auto}.ant-col-pull-22.ant-col-rtl{right:auto;left:91.66666667%}.ant-col-offset-22.ant-col-rtl{margin-right:91.66666667%;margin-left:0}.ant-col-push-23.ant-col-rtl{right:95.83333333%;left:auto}.ant-col-pull-23.ant-col-rtl{right:auto;left:95.83333333%}.ant-col-offset-23.ant-col-rtl{margin-right:95.83333333%;margin-left:0}.ant-col-push-24.ant-col-rtl{right:100%;left:auto}.ant-col-pull-24.ant-col-rtl{right:auto;left:100%}.ant-col-offset-24.ant-col-rtl{margin-right:100%;margin-left:0}.ant-col-xs-24{display:block;-moz-box-flex:0;flex:0 0 100%;max-width:100%}.ant-col-xs-push-24{left:100%}.ant-col-xs-pull-24{right:100%}.ant-col-xs-offset-24{margin-left:100%}.ant-col-xs-order-24{-moz-box-ordinal-group:25;order:24}.ant-col-xs-23{display:block;-moz-box-flex:0;flex:0 0 95.83333333%;max-width:95.83333333%}.ant-col-xs-push-23{left:95.83333333%}.ant-col-xs-pull-23{right:95.83333333%}.ant-col-xs-offset-23{margin-left:95.83333333%}.ant-col-xs-order-23{-moz-box-ordinal-group:24;order:23}.ant-col-xs-22{display:block;-moz-box-flex:0;flex:0 0 91.66666667%;max-width:91.66666667%}.ant-col-xs-push-22{left:91.66666667%}.ant-col-xs-pull-22{right:91.66666667%}.ant-col-xs-offset-22{margin-left:91.66666667%}.ant-col-xs-order-22{-moz-box-ordinal-group:23;order:22}.ant-col-xs-21{display:block;-moz-box-flex:0;flex:0 0 87.5%;max-width:87.5%}.ant-col-xs-push-21{left:87.5%}.ant-col-xs-pull-21{right:87.5%}.ant-col-xs-offset-21{margin-left:87.5%}.ant-col-xs-order-21{-moz-box-ordinal-group:22;order:21}.ant-col-xs-20{display:block;-moz-box-flex:0;flex:0 0 83.33333333%;max-width:83.33333333%}.ant-col-xs-push-20{left:83.33333333%}.ant-col-xs-pull-20{right:83.33333333%}.ant-col-xs-offset-20{margin-left:83.33333333%}.ant-col-xs-order-20{-moz-box-ordinal-group:21;order:20}.ant-col-xs-19{display:block;-moz-box-flex:0;flex:0 0 79.16666667%;max-width:79.16666667%}.ant-col-xs-push-19{left:79.16666667%}.ant-col-xs-pull-19{right:79.16666667%}.ant-col-xs-offset-19{margin-left:79.16666667%}.ant-col-xs-order-19{-moz-box-ordinal-group:20;order:19}.ant-col-xs-18{display:block;-moz-box-flex:0;flex:0 0 75%;max-width:75%}.ant-col-xs-push-18{left:75%}.ant-col-xs-pull-18{right:75%}.ant-col-xs-offset-18{margin-left:75%}.ant-col-xs-order-18{-moz-box-ordinal-group:19;order:18}.ant-col-xs-17{display:block;-moz-box-flex:0;flex:0 0 70.83333333%;max-width:70.83333333%}.ant-col-xs-push-17{left:70.83333333%}.ant-col-xs-pull-17{right:70.83333333%}.ant-col-xs-offset-17{margin-left:70.83333333%}.ant-col-xs-order-17{-moz-box-ordinal-group:18;order:17}.ant-col-xs-16{display:block;-moz-box-flex:0;flex:0 0 66.66666667%;max-width:66.66666667%}.ant-col-xs-push-16{left:66.66666667%}.ant-col-xs-pull-16{right:66.66666667%}.ant-col-xs-offset-16{margin-left:66.66666667%}.ant-col-xs-order-16{-moz-box-ordinal-group:17;order:16}.ant-col-xs-15{display:block;-moz-box-flex:0;flex:0 0 62.5%;max-width:62.5%}.ant-col-xs-push-15{left:62.5%}.ant-col-xs-pull-15{right:62.5%}.ant-col-xs-offset-15{margin-left:62.5%}.ant-col-xs-order-15{-moz-box-ordinal-group:16;order:15}.ant-col-xs-14{display:block;-moz-box-flex:0;flex:0 0 58.33333333%;max-width:58.33333333%}.ant-col-xs-push-14{left:58.33333333%}.ant-col-xs-pull-14{right:58.33333333%}.ant-col-xs-offset-14{margin-left:58.33333333%}.ant-col-xs-order-14{-moz-box-ordinal-group:15;order:14}.ant-col-xs-13{display:block;-moz-box-flex:0;flex:0 0 54.16666667%;max-width:54.16666667%}.ant-col-xs-push-13{left:54.16666667%}.ant-col-xs-pull-13{right:54.16666667%}.ant-col-xs-offset-13{margin-left:54.16666667%}.ant-col-xs-order-13{-moz-box-ordinal-group:14;order:13}.ant-col-xs-12{display:block;-moz-box-flex:0;flex:0 0 50%;max-width:50%}.ant-col-xs-push-12{left:50%}.ant-col-xs-pull-12{right:50%}.ant-col-xs-offset-12{margin-left:50%}.ant-col-xs-order-12{-moz-box-ordinal-group:13;order:12}.ant-col-xs-11{display:block;-moz-box-flex:0;flex:0 0 45.83333333%;max-width:45.83333333%}.ant-col-xs-push-11{left:45.83333333%}.ant-col-xs-pull-11{right:45.83333333%}.ant-col-xs-offset-11{margin-left:45.83333333%}.ant-col-xs-order-11{-moz-box-ordinal-group:12;order:11}.ant-col-xs-10{display:block;-moz-box-flex:0;flex:0 0 41.66666667%;max-width:41.66666667%}.ant-col-xs-push-10{left:41.66666667%}.ant-col-xs-pull-10{right:41.66666667%}.ant-col-xs-offset-10{margin-left:41.66666667%}.ant-col-xs-order-10{-moz-box-ordinal-group:11;order:10}.ant-col-xs-9{display:block;-moz-box-flex:0;flex:0 0 37.5%;max-width:37.5%}.ant-col-xs-push-9{left:37.5%}.ant-col-xs-pull-9{right:37.5%}.ant-col-xs-offset-9{margin-left:37.5%}.ant-col-xs-order-9{-moz-box-ordinal-group:10;order:9}.ant-col-xs-8{display:block;-moz-box-flex:0;flex:0 0 33.33333333%;max-width:33.33333333%}.ant-col-xs-push-8{left:33.33333333%}.ant-col-xs-pull-8{right:33.33333333%}.ant-col-xs-offset-8{margin-left:33.33333333%}.ant-col-xs-order-8{-moz-box-ordinal-group:9;order:8}.ant-col-xs-7{display:block;-moz-box-flex:0;flex:0 0 29.16666667%;max-width:29.16666667%}.ant-col-xs-push-7{left:29.16666667%}.ant-col-xs-pull-7{right:29.16666667%}.ant-col-xs-offset-7{margin-left:29.16666667%}.ant-col-xs-order-7{-moz-box-ordinal-group:8;order:7}.ant-col-xs-6{display:block;-moz-box-flex:0;flex:0 0 25%;max-width:25%}.ant-col-xs-push-6{left:25%}.ant-col-xs-pull-6{right:25%}.ant-col-xs-offset-6{margin-left:25%}.ant-col-xs-order-6{-moz-box-ordinal-group:7;order:6}.ant-col-xs-5{display:block;-moz-box-flex:0;flex:0 0 20.83333333%;max-width:20.83333333%}.ant-col-xs-push-5{left:20.83333333%}.ant-col-xs-pull-5{right:20.83333333%}.ant-col-xs-offset-5{margin-left:20.83333333%}.ant-col-xs-order-5{-moz-box-ordinal-group:6;order:5}.ant-col-xs-4{display:block;-moz-box-flex:0;flex:0 0 16.66666667%;max-width:16.66666667%}.ant-col-xs-push-4{left:16.66666667%}.ant-col-xs-pull-4{right:16.66666667%}.ant-col-xs-offset-4{margin-left:16.66666667%}.ant-col-xs-order-4{-moz-box-ordinal-group:5;order:4}.ant-col-xs-3{display:block;-moz-box-flex:0;flex:0 0 12.5%;max-width:12.5%}.ant-col-xs-push-3{left:12.5%}.ant-col-xs-pull-3{right:12.5%}.ant-col-xs-offset-3{margin-left:12.5%}.ant-col-xs-order-3{-moz-box-ordinal-group:4;order:3}.ant-col-xs-2{display:block;-moz-box-flex:0;flex:0 0 8.33333333%;max-width:8.33333333%}.ant-col-xs-push-2{left:8.33333333%}.ant-col-xs-pull-2{right:8.33333333%}.ant-col-xs-offset-2{margin-left:8.33333333%}.ant-col-xs-order-2{-moz-box-ordinal-group:3;order:2}.ant-col-xs-1{display:block;-moz-box-flex:0;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-xs-push-1{left:4.16666667%}.ant-col-xs-pull-1{right:4.16666667%}.ant-col-xs-offset-1{margin-left:4.16666667%}.ant-col-xs-order-1{-moz-box-ordinal-group:2;order:1}.ant-col-xs-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-xs-push-0{left:auto}.ant-col-xs-pull-0{right:auto}.ant-col-xs-offset-0{margin-left:0}.ant-col-xs-order-0{-moz-box-ordinal-group:1;order:0}.ant-col-push-0.ant-col-rtl{right:auto}.ant-col-pull-0.ant-col-rtl{left:auto}.ant-col-xs-push-0.ant-col-rtl{right:auto}.ant-col-xs-pull-0.ant-col-rtl{left:auto}.ant-col-xs-offset-0.ant-col-rtl{margin-right:0}.ant-col-xs-push-1.ant-col-rtl{right:4.16666667%;left:auto}.ant-col-xs-pull-1.ant-col-rtl{right:auto;left:4.16666667%}.ant-col-xs-offset-1.ant-col-rtl{margin-right:4.16666667%;margin-left:0}.ant-col-xs-push-2.ant-col-rtl{right:8.33333333%;left:auto}.ant-col-xs-pull-2.ant-col-rtl{right:auto;left:8.33333333%}.ant-col-xs-offset-2.ant-col-rtl{margin-right:8.33333333%;margin-left:0}.ant-col-xs-push-3.ant-col-rtl{right:12.5%;left:auto}.ant-col-xs-pull-3.ant-col-rtl{right:auto;left:12.5%}.ant-col-xs-offset-3.ant-col-rtl{margin-right:12.5%;margin-left:0}.ant-col-xs-push-4.ant-col-rtl{right:16.66666667%;left:auto}.ant-col-xs-pull-4.ant-col-rtl{right:auto;left:16.66666667%}.ant-col-xs-offset-4.ant-col-rtl{margin-right:16.66666667%;margin-left:0}.ant-col-xs-push-5.ant-col-rtl{right:20.83333333%;left:auto}.ant-col-xs-pull-5.ant-col-rtl{right:auto;left:20.83333333%}.ant-col-xs-offset-5.ant-col-rtl{margin-right:20.83333333%;margin-left:0}.ant-col-xs-push-6.ant-col-rtl{right:25%;left:auto}.ant-col-xs-pull-6.ant-col-rtl{right:auto;left:25%}.ant-col-xs-offset-6.ant-col-rtl{margin-right:25%;margin-left:0}.ant-col-xs-push-7.ant-col-rtl{right:29.16666667%;left:auto}.ant-col-xs-pull-7.ant-col-rtl{right:auto;left:29.16666667%}.ant-col-xs-offset-7.ant-col-rtl{margin-right:29.16666667%;margin-left:0}.ant-col-xs-push-8.ant-col-rtl{right:33.33333333%;left:auto}.ant-col-xs-pull-8.ant-col-rtl{right:auto;left:33.33333333%}.ant-col-xs-offset-8.ant-col-rtl{margin-right:33.33333333%;margin-left:0}.ant-col-xs-push-9.ant-col-rtl{right:37.5%;left:auto}.ant-col-xs-pull-9.ant-col-rtl{right:auto;left:37.5%}.ant-col-xs-offset-9.ant-col-rtl{margin-right:37.5%;margin-left:0}.ant-col-xs-push-10.ant-col-rtl{right:41.66666667%;left:auto}.ant-col-xs-pull-10.ant-col-rtl{right:auto;left:41.66666667%}.ant-col-xs-offset-10.ant-col-rtl{margin-right:41.66666667%;margin-left:0}.ant-col-xs-push-11.ant-col-rtl{right:45.83333333%;left:auto}.ant-col-xs-pull-11.ant-col-rtl{right:auto;left:45.83333333%}.ant-col-xs-offset-11.ant-col-rtl{margin-right:45.83333333%;margin-left:0}.ant-col-xs-push-12.ant-col-rtl{right:50%;left:auto}.ant-col-xs-pull-12.ant-col-rtl{right:auto;left:50%}.ant-col-xs-offset-12.ant-col-rtl{margin-right:50%;margin-left:0}.ant-col-xs-push-13.ant-col-rtl{right:54.16666667%;left:auto}.ant-col-xs-pull-13.ant-col-rtl{right:auto;left:54.16666667%}.ant-col-xs-offset-13.ant-col-rtl{margin-right:54.16666667%;margin-left:0}.ant-col-xs-push-14.ant-col-rtl{right:58.33333333%;left:auto}.ant-col-xs-pull-14.ant-col-rtl{right:auto;left:58.33333333%}.ant-col-xs-offset-14.ant-col-rtl{margin-right:58.33333333%;margin-left:0}.ant-col-xs-push-15.ant-col-rtl{right:62.5%;left:auto}.ant-col-xs-pull-15.ant-col-rtl{right:auto;left:62.5%}.ant-col-xs-offset-15.ant-col-rtl{margin-right:62.5%;margin-left:0}.ant-col-xs-push-16.ant-col-rtl{right:66.66666667%;left:auto}.ant-col-xs-pull-16.ant-col-rtl{right:auto;left:66.66666667%}.ant-col-xs-offset-16.ant-col-rtl{margin-right:66.66666667%;margin-left:0}.ant-col-xs-push-17.ant-col-rtl{right:70.83333333%;left:auto}.ant-col-xs-pull-17.ant-col-rtl{right:auto;left:70.83333333%}.ant-col-xs-offset-17.ant-col-rtl{margin-right:70.83333333%;margin-left:0}.ant-col-xs-push-18.ant-col-rtl{right:75%;left:auto}.ant-col-xs-pull-18.ant-col-rtl{right:auto;left:75%}.ant-col-xs-offset-18.ant-col-rtl{margin-right:75%;margin-left:0}.ant-col-xs-push-19.ant-col-rtl{right:79.16666667%;left:auto}.ant-col-xs-pull-19.ant-col-rtl{right:auto;left:79.16666667%}.ant-col-xs-offset-19.ant-col-rtl{margin-right:79.16666667%;margin-left:0}.ant-col-xs-push-20.ant-col-rtl{right:83.33333333%;left:auto}.ant-col-xs-pull-20.ant-col-rtl{right:auto;left:83.33333333%}.ant-col-xs-offset-20.ant-col-rtl{margin-right:83.33333333%;margin-left:0}.ant-col-xs-push-21.ant-col-rtl{right:87.5%;left:auto}.ant-col-xs-pull-21.ant-col-rtl{right:auto;left:87.5%}.ant-col-xs-offset-21.ant-col-rtl{margin-right:87.5%;margin-left:0}.ant-col-xs-push-22.ant-col-rtl{right:91.66666667%;left:auto}.ant-col-xs-pull-22.ant-col-rtl{right:auto;left:91.66666667%}.ant-col-xs-offset-22.ant-col-rtl{margin-right:91.66666667%;margin-left:0}.ant-col-xs-push-23.ant-col-rtl{right:95.83333333%;left:auto}.ant-col-xs-pull-23.ant-col-rtl{right:auto;left:95.83333333%}.ant-col-xs-offset-23.ant-col-rtl{margin-right:95.83333333%;margin-left:0}.ant-col-xs-push-24.ant-col-rtl{right:100%;left:auto}.ant-col-xs-pull-24.ant-col-rtl{right:auto;left:100%}.ant-col-xs-offset-24.ant-col-rtl{margin-right:100%;margin-left:0}@media (min-width:576px){.ant-col-sm-24{display:block;-moz-box-flex:0;flex:0 0 100%;max-width:100%}.ant-col-sm-push-24{left:100%}.ant-col-sm-pull-24{right:100%}.ant-col-sm-offset-24{margin-left:100%}.ant-col-sm-order-24{-moz-box-ordinal-group:25;order:24}.ant-col-sm-23{display:block;-moz-box-flex:0;flex:0 0 95.83333333%;max-width:95.83333333%}.ant-col-sm-push-23{left:95.83333333%}.ant-col-sm-pull-23{right:95.83333333%}.ant-col-sm-offset-23{margin-left:95.83333333%}.ant-col-sm-order-23{-moz-box-ordinal-group:24;order:23}.ant-col-sm-22{display:block;-moz-box-flex:0;flex:0 0 91.66666667%;max-width:91.66666667%}.ant-col-sm-push-22{left:91.66666667%}.ant-col-sm-pull-22{right:91.66666667%}.ant-col-sm-offset-22{margin-left:91.66666667%}.ant-col-sm-order-22{-moz-box-ordinal-group:23;order:22}.ant-col-sm-21{display:block;-moz-box-flex:0;flex:0 0 87.5%;max-width:87.5%}.ant-col-sm-push-21{left:87.5%}.ant-col-sm-pull-21{right:87.5%}.ant-col-sm-offset-21{margin-left:87.5%}.ant-col-sm-order-21{-moz-box-ordinal-group:22;order:21}.ant-col-sm-20{display:block;-moz-box-flex:0;flex:0 0 83.33333333%;max-width:83.33333333%}.ant-col-sm-push-20{left:83.33333333%}.ant-col-sm-pull-20{right:83.33333333%}.ant-col-sm-offset-20{margin-left:83.33333333%}.ant-col-sm-order-20{-moz-box-ordinal-group:21;order:20}.ant-col-sm-19{display:block;-moz-box-flex:0;flex:0 0 79.16666667%;max-width:79.16666667%}.ant-col-sm-push-19{left:79.16666667%}.ant-col-sm-pull-19{right:79.16666667%}.ant-col-sm-offset-19{margin-left:79.16666667%}.ant-col-sm-order-19{-moz-box-ordinal-group:20;order:19}.ant-col-sm-18{display:block;-moz-box-flex:0;flex:0 0 75%;max-width:75%}.ant-col-sm-push-18{left:75%}.ant-col-sm-pull-18{right:75%}.ant-col-sm-offset-18{margin-left:75%}.ant-col-sm-order-18{-moz-box-ordinal-group:19;order:18}.ant-col-sm-17{display:block;-moz-box-flex:0;flex:0 0 70.83333333%;max-width:70.83333333%}.ant-col-sm-push-17{left:70.83333333%}.ant-col-sm-pull-17{right:70.83333333%}.ant-col-sm-offset-17{margin-left:70.83333333%}.ant-col-sm-order-17{-moz-box-ordinal-group:18;order:17}.ant-col-sm-16{display:block;-moz-box-flex:0;flex:0 0 66.66666667%;max-width:66.66666667%}.ant-col-sm-push-16{left:66.66666667%}.ant-col-sm-pull-16{right:66.66666667%}.ant-col-sm-offset-16{margin-left:66.66666667%}.ant-col-sm-order-16{-moz-box-ordinal-group:17;order:16}.ant-col-sm-15{display:block;-moz-box-flex:0;flex:0 0 62.5%;max-width:62.5%}.ant-col-sm-push-15{left:62.5%}.ant-col-sm-pull-15{right:62.5%}.ant-col-sm-offset-15{margin-left:62.5%}.ant-col-sm-order-15{-moz-box-ordinal-group:16;order:15}.ant-col-sm-14{display:block;-moz-box-flex:0;flex:0 0 58.33333333%;max-width:58.33333333%}.ant-col-sm-push-14{left:58.33333333%}.ant-col-sm-pull-14{right:58.33333333%}.ant-col-sm-offset-14{margin-left:58.33333333%}.ant-col-sm-order-14{-moz-box-ordinal-group:15;order:14}.ant-col-sm-13{display:block;-moz-box-flex:0;flex:0 0 54.16666667%;max-width:54.16666667%}.ant-col-sm-push-13{left:54.16666667%}.ant-col-sm-pull-13{right:54.16666667%}.ant-col-sm-offset-13{margin-left:54.16666667%}.ant-col-sm-order-13{-moz-box-ordinal-group:14;order:13}.ant-col-sm-12{display:block;-moz-box-flex:0;flex:0 0 50%;max-width:50%}.ant-col-sm-push-12{left:50%}.ant-col-sm-pull-12{right:50%}.ant-col-sm-offset-12{margin-left:50%}.ant-col-sm-order-12{-moz-box-ordinal-group:13;order:12}.ant-col-sm-11{display:block;-moz-box-flex:0;flex:0 0 45.83333333%;max-width:45.83333333%}.ant-col-sm-push-11{left:45.83333333%}.ant-col-sm-pull-11{right:45.83333333%}.ant-col-sm-offset-11{margin-left:45.83333333%}.ant-col-sm-order-11{-moz-box-ordinal-group:12;order:11}.ant-col-sm-10{display:block;-moz-box-flex:0;flex:0 0 41.66666667%;max-width:41.66666667%}.ant-col-sm-push-10{left:41.66666667%}.ant-col-sm-pull-10{right:41.66666667%}.ant-col-sm-offset-10{margin-left:41.66666667%}.ant-col-sm-order-10{-moz-box-ordinal-group:11;order:10}.ant-col-sm-9{display:block;-moz-box-flex:0;flex:0 0 37.5%;max-width:37.5%}.ant-col-sm-push-9{left:37.5%}.ant-col-sm-pull-9{right:37.5%}.ant-col-sm-offset-9{margin-left:37.5%}.ant-col-sm-order-9{-moz-box-ordinal-group:10;order:9}.ant-col-sm-8{display:block;-moz-box-flex:0;flex:0 0 33.33333333%;max-width:33.33333333%}.ant-col-sm-push-8{left:33.33333333%}.ant-col-sm-pull-8{right:33.33333333%}.ant-col-sm-offset-8{margin-left:33.33333333%}.ant-col-sm-order-8{-moz-box-ordinal-group:9;order:8}.ant-col-sm-7{display:block;-moz-box-flex:0;flex:0 0 29.16666667%;max-width:29.16666667%}.ant-col-sm-push-7{left:29.16666667%}.ant-col-sm-pull-7{right:29.16666667%}.ant-col-sm-offset-7{margin-left:29.16666667%}.ant-col-sm-order-7{-moz-box-ordinal-group:8;order:7}.ant-col-sm-6{display:block;-moz-box-flex:0;flex:0 0 25%;max-width:25%}.ant-col-sm-push-6{left:25%}.ant-col-sm-pull-6{right:25%}.ant-col-sm-offset-6{margin-left:25%}.ant-col-sm-order-6{-moz-box-ordinal-group:7;order:6}.ant-col-sm-5{display:block;-moz-box-flex:0;flex:0 0 20.83333333%;max-width:20.83333333%}.ant-col-sm-push-5{left:20.83333333%}.ant-col-sm-pull-5{right:20.83333333%}.ant-col-sm-offset-5{margin-left:20.83333333%}.ant-col-sm-order-5{-moz-box-ordinal-group:6;order:5}.ant-col-sm-4{display:block;-moz-box-flex:0;flex:0 0 16.66666667%;max-width:16.66666667%}.ant-col-sm-push-4{left:16.66666667%}.ant-col-sm-pull-4{right:16.66666667%}.ant-col-sm-offset-4{margin-left:16.66666667%}.ant-col-sm-order-4{-moz-box-ordinal-group:5;order:4}.ant-col-sm-3{display:block;-moz-box-flex:0;flex:0 0 12.5%;max-width:12.5%}.ant-col-sm-push-3{left:12.5%}.ant-col-sm-pull-3{right:12.5%}.ant-col-sm-offset-3{margin-left:12.5%}.ant-col-sm-order-3{-moz-box-ordinal-group:4;order:3}.ant-col-sm-2{display:block;-moz-box-flex:0;flex:0 0 8.33333333%;max-width:8.33333333%}.ant-col-sm-push-2{left:8.33333333%}.ant-col-sm-pull-2{right:8.33333333%}.ant-col-sm-offset-2{margin-left:8.33333333%}.ant-col-sm-order-2{-moz-box-ordinal-group:3;order:2}.ant-col-sm-1{display:block;-moz-box-flex:0;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-sm-push-1{left:4.16666667%}.ant-col-sm-pull-1{right:4.16666667%}.ant-col-sm-offset-1{margin-left:4.16666667%}.ant-col-sm-order-1{-moz-box-ordinal-group:2;order:1}.ant-col-sm-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-sm-push-0{left:auto}.ant-col-sm-pull-0{right:auto}.ant-col-sm-offset-0{margin-left:0}.ant-col-sm-order-0{-moz-box-ordinal-group:1;order:0}.ant-col-push-0.ant-col-rtl{right:auto}.ant-col-pull-0.ant-col-rtl{left:auto}.ant-col-sm-push-0.ant-col-rtl{right:auto}.ant-col-sm-pull-0.ant-col-rtl{left:auto}.ant-col-sm-offset-0.ant-col-rtl{margin-right:0}.ant-col-sm-push-1.ant-col-rtl{right:4.16666667%;left:auto}.ant-col-sm-pull-1.ant-col-rtl{right:auto;left:4.16666667%}.ant-col-sm-offset-1.ant-col-rtl{margin-right:4.16666667%;margin-left:0}.ant-col-sm-push-2.ant-col-rtl{right:8.33333333%;left:auto}.ant-col-sm-pull-2.ant-col-rtl{right:auto;left:8.33333333%}.ant-col-sm-offset-2.ant-col-rtl{margin-right:8.33333333%;margin-left:0}.ant-col-sm-push-3.ant-col-rtl{right:12.5%;left:auto}.ant-col-sm-pull-3.ant-col-rtl{right:auto;left:12.5%}.ant-col-sm-offset-3.ant-col-rtl{margin-right:12.5%;margin-left:0}.ant-col-sm-push-4.ant-col-rtl{right:16.66666667%;left:auto}.ant-col-sm-pull-4.ant-col-rtl{right:auto;left:16.66666667%}.ant-col-sm-offset-4.ant-col-rtl{margin-right:16.66666667%;margin-left:0}.ant-col-sm-push-5.ant-col-rtl{right:20.83333333%;left:auto}.ant-col-sm-pull-5.ant-col-rtl{right:auto;left:20.83333333%}.ant-col-sm-offset-5.ant-col-rtl{margin-right:20.83333333%;margin-left:0}.ant-col-sm-push-6.ant-col-rtl{right:25%;left:auto}.ant-col-sm-pull-6.ant-col-rtl{right:auto;left:25%}.ant-col-sm-offset-6.ant-col-rtl{margin-right:25%;margin-left:0}.ant-col-sm-push-7.ant-col-rtl{right:29.16666667%;left:auto}.ant-col-sm-pull-7.ant-col-rtl{right:auto;left:29.16666667%}.ant-col-sm-offset-7.ant-col-rtl{margin-right:29.16666667%;margin-left:0}.ant-col-sm-push-8.ant-col-rtl{right:33.33333333%;left:auto}.ant-col-sm-pull-8.ant-col-rtl{right:auto;left:33.33333333%}.ant-col-sm-offset-8.ant-col-rtl{margin-right:33.33333333%;margin-left:0}.ant-col-sm-push-9.ant-col-rtl{right:37.5%;left:auto}.ant-col-sm-pull-9.ant-col-rtl{right:auto;left:37.5%}.ant-col-sm-offset-9.ant-col-rtl{margin-right:37.5%;margin-left:0}.ant-col-sm-push-10.ant-col-rtl{right:41.66666667%;left:auto}.ant-col-sm-pull-10.ant-col-rtl{right:auto;left:41.66666667%}.ant-col-sm-offset-10.ant-col-rtl{margin-right:41.66666667%;margin-left:0}.ant-col-sm-push-11.ant-col-rtl{right:45.83333333%;left:auto}.ant-col-sm-pull-11.ant-col-rtl{right:auto;left:45.83333333%}.ant-col-sm-offset-11.ant-col-rtl{margin-right:45.83333333%;margin-left:0}.ant-col-sm-push-12.ant-col-rtl{right:50%;left:auto}.ant-col-sm-pull-12.ant-col-rtl{right:auto;left:50%}.ant-col-sm-offset-12.ant-col-rtl{margin-right:50%;margin-left:0}.ant-col-sm-push-13.ant-col-rtl{right:54.16666667%;left:auto}.ant-col-sm-pull-13.ant-col-rtl{right:auto;left:54.16666667%}.ant-col-sm-offset-13.ant-col-rtl{margin-right:54.16666667%;margin-left:0}.ant-col-sm-push-14.ant-col-rtl{right:58.33333333%;left:auto}.ant-col-sm-pull-14.ant-col-rtl{right:auto;left:58.33333333%}.ant-col-sm-offset-14.ant-col-rtl{margin-right:58.33333333%;margin-left:0}.ant-col-sm-push-15.ant-col-rtl{right:62.5%;left:auto}.ant-col-sm-pull-15.ant-col-rtl{right:auto;left:62.5%}.ant-col-sm-offset-15.ant-col-rtl{margin-right:62.5%;margin-left:0}.ant-col-sm-push-16.ant-col-rtl{right:66.66666667%;left:auto}.ant-col-sm-pull-16.ant-col-rtl{right:auto;left:66.66666667%}.ant-col-sm-offset-16.ant-col-rtl{margin-right:66.66666667%;margin-left:0}.ant-col-sm-push-17.ant-col-rtl{right:70.83333333%;left:auto}.ant-col-sm-pull-17.ant-col-rtl{right:auto;left:70.83333333%}.ant-col-sm-offset-17.ant-col-rtl{margin-right:70.83333333%;margin-left:0}.ant-col-sm-push-18.ant-col-rtl{right:75%;left:auto}.ant-col-sm-pull-18.ant-col-rtl{right:auto;left:75%}.ant-col-sm-offset-18.ant-col-rtl{margin-right:75%;margin-left:0}.ant-col-sm-push-19.ant-col-rtl{right:79.16666667%;left:auto}.ant-col-sm-pull-19.ant-col-rtl{right:auto;left:79.16666667%}.ant-col-sm-offset-19.ant-col-rtl{margin-right:79.16666667%;margin-left:0}.ant-col-sm-push-20.ant-col-rtl{right:83.33333333%;left:auto}.ant-col-sm-pull-20.ant-col-rtl{right:auto;left:83.33333333%}.ant-col-sm-offset-20.ant-col-rtl{margin-right:83.33333333%;margin-left:0}.ant-col-sm-push-21.ant-col-rtl{right:87.5%;left:auto}.ant-col-sm-pull-21.ant-col-rtl{right:auto;left:87.5%}.ant-col-sm-offset-21.ant-col-rtl{margin-right:87.5%;margin-left:0}.ant-col-sm-push-22.ant-col-rtl{right:91.66666667%;left:auto}.ant-col-sm-pull-22.ant-col-rtl{right:auto;left:91.66666667%}.ant-col-sm-offset-22.ant-col-rtl{margin-right:91.66666667%;margin-left:0}.ant-col-sm-push-23.ant-col-rtl{right:95.83333333%;left:auto}.ant-col-sm-pull-23.ant-col-rtl{right:auto;left:95.83333333%}.ant-col-sm-offset-23.ant-col-rtl{margin-right:95.83333333%;margin-left:0}.ant-col-sm-push-24.ant-col-rtl{right:100%;left:auto}.ant-col-sm-pull-24.ant-col-rtl{right:auto;left:100%}.ant-col-sm-offset-24.ant-col-rtl{margin-right:100%;margin-left:0}}@media (min-width:768px){.ant-col-md-24{display:block;-moz-box-flex:0;flex:0 0 100%;max-width:100%}.ant-col-md-push-24{left:100%}.ant-col-md-pull-24{right:100%}.ant-col-md-offset-24{margin-left:100%}.ant-col-md-order-24{-moz-box-ordinal-group:25;order:24}.ant-col-md-23{display:block;-moz-box-flex:0;flex:0 0 95.83333333%;max-width:95.83333333%}.ant-col-md-push-23{left:95.83333333%}.ant-col-md-pull-23{right:95.83333333%}.ant-col-md-offset-23{margin-left:95.83333333%}.ant-col-md-order-23{-moz-box-ordinal-group:24;order:23}.ant-col-md-22{display:block;-moz-box-flex:0;flex:0 0 91.66666667%;max-width:91.66666667%}.ant-col-md-push-22{left:91.66666667%}.ant-col-md-pull-22{right:91.66666667%}.ant-col-md-offset-22{margin-left:91.66666667%}.ant-col-md-order-22{-moz-box-ordinal-group:23;order:22}.ant-col-md-21{display:block;-moz-box-flex:0;flex:0 0 87.5%;max-width:87.5%}.ant-col-md-push-21{left:87.5%}.ant-col-md-pull-21{right:87.5%}.ant-col-md-offset-21{margin-left:87.5%}.ant-col-md-order-21{-moz-box-ordinal-group:22;order:21}.ant-col-md-20{display:block;-moz-box-flex:0;flex:0 0 83.33333333%;max-width:83.33333333%}.ant-col-md-push-20{left:83.33333333%}.ant-col-md-pull-20{right:83.33333333%}.ant-col-md-offset-20{margin-left:83.33333333%}.ant-col-md-order-20{-moz-box-ordinal-group:21;order:20}.ant-col-md-19{display:block;-moz-box-flex:0;flex:0 0 79.16666667%;max-width:79.16666667%}.ant-col-md-push-19{left:79.16666667%}.ant-col-md-pull-19{right:79.16666667%}.ant-col-md-offset-19{margin-left:79.16666667%}.ant-col-md-order-19{-moz-box-ordinal-group:20;order:19}.ant-col-md-18{display:block;-moz-box-flex:0;flex:0 0 75%;max-width:75%}.ant-col-md-push-18{left:75%}.ant-col-md-pull-18{right:75%}.ant-col-md-offset-18{margin-left:75%}.ant-col-md-order-18{-moz-box-ordinal-group:19;order:18}.ant-col-md-17{display:block;-moz-box-flex:0;flex:0 0 70.83333333%;max-width:70.83333333%}.ant-col-md-push-17{left:70.83333333%}.ant-col-md-pull-17{right:70.83333333%}.ant-col-md-offset-17{margin-left:70.83333333%}.ant-col-md-order-17{-moz-box-ordinal-group:18;order:17}.ant-col-md-16{display:block;-moz-box-flex:0;flex:0 0 66.66666667%;max-width:66.66666667%}.ant-col-md-push-16{left:66.66666667%}.ant-col-md-pull-16{right:66.66666667%}.ant-col-md-offset-16{margin-left:66.66666667%}.ant-col-md-order-16{-moz-box-ordinal-group:17;order:16}.ant-col-md-15{display:block;-moz-box-flex:0;flex:0 0 62.5%;max-width:62.5%}.ant-col-md-push-15{left:62.5%}.ant-col-md-pull-15{right:62.5%}.ant-col-md-offset-15{margin-left:62.5%}.ant-col-md-order-15{-moz-box-ordinal-group:16;order:15}.ant-col-md-14{display:block;-moz-box-flex:0;flex:0 0 58.33333333%;max-width:58.33333333%}.ant-col-md-push-14{left:58.33333333%}.ant-col-md-pull-14{right:58.33333333%}.ant-col-md-offset-14{margin-left:58.33333333%}.ant-col-md-order-14{-moz-box-ordinal-group:15;order:14}.ant-col-md-13{display:block;-moz-box-flex:0;flex:0 0 54.16666667%;max-width:54.16666667%}.ant-col-md-push-13{left:54.16666667%}.ant-col-md-pull-13{right:54.16666667%}.ant-col-md-offset-13{margin-left:54.16666667%}.ant-col-md-order-13{-moz-box-ordinal-group:14;order:13}.ant-col-md-12{display:block;-moz-box-flex:0;flex:0 0 50%;max-width:50%}.ant-col-md-push-12{left:50%}.ant-col-md-pull-12{right:50%}.ant-col-md-offset-12{margin-left:50%}.ant-col-md-order-12{-moz-box-ordinal-group:13;order:12}.ant-col-md-11{display:block;-moz-box-flex:0;flex:0 0 45.83333333%;max-width:45.83333333%}.ant-col-md-push-11{left:45.83333333%}.ant-col-md-pull-11{right:45.83333333%}.ant-col-md-offset-11{margin-left:45.83333333%}.ant-col-md-order-11{-moz-box-ordinal-group:12;order:11}.ant-col-md-10{display:block;-moz-box-flex:0;flex:0 0 41.66666667%;max-width:41.66666667%}.ant-col-md-push-10{left:41.66666667%}.ant-col-md-pull-10{right:41.66666667%}.ant-col-md-offset-10{margin-left:41.66666667%}.ant-col-md-order-10{-moz-box-ordinal-group:11;order:10}.ant-col-md-9{display:block;-moz-box-flex:0;flex:0 0 37.5%;max-width:37.5%}.ant-col-md-push-9{left:37.5%}.ant-col-md-pull-9{right:37.5%}.ant-col-md-offset-9{margin-left:37.5%}.ant-col-md-order-9{-moz-box-ordinal-group:10;order:9}.ant-col-md-8{display:block;-moz-box-flex:0;flex:0 0 33.33333333%;max-width:33.33333333%}.ant-col-md-push-8{left:33.33333333%}.ant-col-md-pull-8{right:33.33333333%}.ant-col-md-offset-8{margin-left:33.33333333%}.ant-col-md-order-8{-moz-box-ordinal-group:9;order:8}.ant-col-md-7{display:block;-moz-box-flex:0;flex:0 0 29.16666667%;max-width:29.16666667%}.ant-col-md-push-7{left:29.16666667%}.ant-col-md-pull-7{right:29.16666667%}.ant-col-md-offset-7{margin-left:29.16666667%}.ant-col-md-order-7{-moz-box-ordinal-group:8;order:7}.ant-col-md-6{display:block;-moz-box-flex:0;flex:0 0 25%;max-width:25%}.ant-col-md-push-6{left:25%}.ant-col-md-pull-6{right:25%}.ant-col-md-offset-6{margin-left:25%}.ant-col-md-order-6{-moz-box-ordinal-group:7;order:6}.ant-col-md-5{display:block;-moz-box-flex:0;flex:0 0 20.83333333%;max-width:20.83333333%}.ant-col-md-push-5{left:20.83333333%}.ant-col-md-pull-5{right:20.83333333%}.ant-col-md-offset-5{margin-left:20.83333333%}.ant-col-md-order-5{-moz-box-ordinal-group:6;order:5}.ant-col-md-4{display:block;-moz-box-flex:0;flex:0 0 16.66666667%;max-width:16.66666667%}.ant-col-md-push-4{left:16.66666667%}.ant-col-md-pull-4{right:16.66666667%}.ant-col-md-offset-4{margin-left:16.66666667%}.ant-col-md-order-4{-moz-box-ordinal-group:5;order:4}.ant-col-md-3{display:block;-moz-box-flex:0;flex:0 0 12.5%;max-width:12.5%}.ant-col-md-push-3{left:12.5%}.ant-col-md-pull-3{right:12.5%}.ant-col-md-offset-3{margin-left:12.5%}.ant-col-md-order-3{-moz-box-ordinal-group:4;order:3}.ant-col-md-2{display:block;-moz-box-flex:0;flex:0 0 8.33333333%;max-width:8.33333333%}.ant-col-md-push-2{left:8.33333333%}.ant-col-md-pull-2{right:8.33333333%}.ant-col-md-offset-2{margin-left:8.33333333%}.ant-col-md-order-2{-moz-box-ordinal-group:3;order:2}.ant-col-md-1{display:block;-moz-box-flex:0;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-md-push-1{left:4.16666667%}.ant-col-md-pull-1{right:4.16666667%}.ant-col-md-offset-1{margin-left:4.16666667%}.ant-col-md-order-1{-moz-box-ordinal-group:2;order:1}.ant-col-md-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-md-push-0{left:auto}.ant-col-md-pull-0{right:auto}.ant-col-md-offset-0{margin-left:0}.ant-col-md-order-0{-moz-box-ordinal-group:1;order:0}.ant-col-push-0.ant-col-rtl{right:auto}.ant-col-pull-0.ant-col-rtl{left:auto}.ant-col-md-push-0.ant-col-rtl{right:auto}.ant-col-md-pull-0.ant-col-rtl{left:auto}.ant-col-md-offset-0.ant-col-rtl{margin-right:0}.ant-col-md-push-1.ant-col-rtl{right:4.16666667%;left:auto}.ant-col-md-pull-1.ant-col-rtl{right:auto;left:4.16666667%}.ant-col-md-offset-1.ant-col-rtl{margin-right:4.16666667%;margin-left:0}.ant-col-md-push-2.ant-col-rtl{right:8.33333333%;left:auto}.ant-col-md-pull-2.ant-col-rtl{right:auto;left:8.33333333%}.ant-col-md-offset-2.ant-col-rtl{margin-right:8.33333333%;margin-left:0}.ant-col-md-push-3.ant-col-rtl{right:12.5%;left:auto}.ant-col-md-pull-3.ant-col-rtl{right:auto;left:12.5%}.ant-col-md-offset-3.ant-col-rtl{margin-right:12.5%;margin-left:0}.ant-col-md-push-4.ant-col-rtl{right:16.66666667%;left:auto}.ant-col-md-pull-4.ant-col-rtl{right:auto;left:16.66666667%}.ant-col-md-offset-4.ant-col-rtl{margin-right:16.66666667%;margin-left:0}.ant-col-md-push-5.ant-col-rtl{right:20.83333333%;left:auto}.ant-col-md-pull-5.ant-col-rtl{right:auto;left:20.83333333%}.ant-col-md-offset-5.ant-col-rtl{margin-right:20.83333333%;margin-left:0}.ant-col-md-push-6.ant-col-rtl{right:25%;left:auto}.ant-col-md-pull-6.ant-col-rtl{right:auto;left:25%}.ant-col-md-offset-6.ant-col-rtl{margin-right:25%;margin-left:0}.ant-col-md-push-7.ant-col-rtl{right:29.16666667%;left:auto}.ant-col-md-pull-7.ant-col-rtl{right:auto;left:29.16666667%}.ant-col-md-offset-7.ant-col-rtl{margin-right:29.16666667%;margin-left:0}.ant-col-md-push-8.ant-col-rtl{right:33.33333333%;left:auto}.ant-col-md-pull-8.ant-col-rtl{right:auto;left:33.33333333%}.ant-col-md-offset-8.ant-col-rtl{margin-right:33.33333333%;margin-left:0}.ant-col-md-push-9.ant-col-rtl{right:37.5%;left:auto}.ant-col-md-pull-9.ant-col-rtl{right:auto;left:37.5%}.ant-col-md-offset-9.ant-col-rtl{margin-right:37.5%;margin-left:0}.ant-col-md-push-10.ant-col-rtl{right:41.66666667%;left:auto}.ant-col-md-pull-10.ant-col-rtl{right:auto;left:41.66666667%}.ant-col-md-offset-10.ant-col-rtl{margin-right:41.66666667%;margin-left:0}.ant-col-md-push-11.ant-col-rtl{right:45.83333333%;left:auto}.ant-col-md-pull-11.ant-col-rtl{right:auto;left:45.83333333%}.ant-col-md-offset-11.ant-col-rtl{margin-right:45.83333333%;margin-left:0}.ant-col-md-push-12.ant-col-rtl{right:50%;left:auto}.ant-col-md-pull-12.ant-col-rtl{right:auto;left:50%}.ant-col-md-offset-12.ant-col-rtl{margin-right:50%;margin-left:0}.ant-col-md-push-13.ant-col-rtl{right:54.16666667%;left:auto}.ant-col-md-pull-13.ant-col-rtl{right:auto;left:54.16666667%}.ant-col-md-offset-13.ant-col-rtl{margin-right:54.16666667%;margin-left:0}.ant-col-md-push-14.ant-col-rtl{right:58.33333333%;left:auto}.ant-col-md-pull-14.ant-col-rtl{right:auto;left:58.33333333%}.ant-col-md-offset-14.ant-col-rtl{margin-right:58.33333333%;margin-left:0}.ant-col-md-push-15.ant-col-rtl{right:62.5%;left:auto}.ant-col-md-pull-15.ant-col-rtl{right:auto;left:62.5%}.ant-col-md-offset-15.ant-col-rtl{margin-right:62.5%;margin-left:0}.ant-col-md-push-16.ant-col-rtl{right:66.66666667%;left:auto}.ant-col-md-pull-16.ant-col-rtl{right:auto;left:66.66666667%}.ant-col-md-offset-16.ant-col-rtl{margin-right:66.66666667%;margin-left:0}.ant-col-md-push-17.ant-col-rtl{right:70.83333333%;left:auto}.ant-col-md-pull-17.ant-col-rtl{right:auto;left:70.83333333%}.ant-col-md-offset-17.ant-col-rtl{margin-right:70.83333333%;margin-left:0}.ant-col-md-push-18.ant-col-rtl{right:75%;left:auto}.ant-col-md-pull-18.ant-col-rtl{right:auto;left:75%}.ant-col-md-offset-18.ant-col-rtl{margin-right:75%;margin-left:0}.ant-col-md-push-19.ant-col-rtl{right:79.16666667%;left:auto}.ant-col-md-pull-19.ant-col-rtl{right:auto;left:79.16666667%}.ant-col-md-offset-19.ant-col-rtl{margin-right:79.16666667%;margin-left:0}.ant-col-md-push-20.ant-col-rtl{right:83.33333333%;left:auto}.ant-col-md-pull-20.ant-col-rtl{right:auto;left:83.33333333%}.ant-col-md-offset-20.ant-col-rtl{margin-right:83.33333333%;margin-left:0}.ant-col-md-push-21.ant-col-rtl{right:87.5%;left:auto}.ant-col-md-pull-21.ant-col-rtl{right:auto;left:87.5%}.ant-col-md-offset-21.ant-col-rtl{margin-right:87.5%;margin-left:0}.ant-col-md-push-22.ant-col-rtl{right:91.66666667%;left:auto}.ant-col-md-pull-22.ant-col-rtl{right:auto;left:91.66666667%}.ant-col-md-offset-22.ant-col-rtl{margin-right:91.66666667%;margin-left:0}.ant-col-md-push-23.ant-col-rtl{right:95.83333333%;left:auto}.ant-col-md-pull-23.ant-col-rtl{right:auto;left:95.83333333%}.ant-col-md-offset-23.ant-col-rtl{margin-right:95.83333333%;margin-left:0}.ant-col-md-push-24.ant-col-rtl{right:100%;left:auto}.ant-col-md-pull-24.ant-col-rtl{right:auto;left:100%}.ant-col-md-offset-24.ant-col-rtl{margin-right:100%;margin-left:0}}@media (min-width:992px){.ant-col-lg-24{display:block;-moz-box-flex:0;flex:0 0 100%;max-width:100%}.ant-col-lg-push-24{left:100%}.ant-col-lg-pull-24{right:100%}.ant-col-lg-offset-24{margin-left:100%}.ant-col-lg-order-24{-moz-box-ordinal-group:25;order:24}.ant-col-lg-23{display:block;-moz-box-flex:0;flex:0 0 95.83333333%;max-width:95.83333333%}.ant-col-lg-push-23{left:95.83333333%}.ant-col-lg-pull-23{right:95.83333333%}.ant-col-lg-offset-23{margin-left:95.83333333%}.ant-col-lg-order-23{-moz-box-ordinal-group:24;order:23}.ant-col-lg-22{display:block;-moz-box-flex:0;flex:0 0 91.66666667%;max-width:91.66666667%}.ant-col-lg-push-22{left:91.66666667%}.ant-col-lg-pull-22{right:91.66666667%}.ant-col-lg-offset-22{margin-left:91.66666667%}.ant-col-lg-order-22{-moz-box-ordinal-group:23;order:22}.ant-col-lg-21{display:block;-moz-box-flex:0;flex:0 0 87.5%;max-width:87.5%}.ant-col-lg-push-21{left:87.5%}.ant-col-lg-pull-21{right:87.5%}.ant-col-lg-offset-21{margin-left:87.5%}.ant-col-lg-order-21{-moz-box-ordinal-group:22;order:21}.ant-col-lg-20{display:block;-moz-box-flex:0;flex:0 0 83.33333333%;max-width:83.33333333%}.ant-col-lg-push-20{left:83.33333333%}.ant-col-lg-pull-20{right:83.33333333%}.ant-col-lg-offset-20{margin-left:83.33333333%}.ant-col-lg-order-20{-moz-box-ordinal-group:21;order:20}.ant-col-lg-19{display:block;-moz-box-flex:0;flex:0 0 79.16666667%;max-width:79.16666667%}.ant-col-lg-push-19{left:79.16666667%}.ant-col-lg-pull-19{right:79.16666667%}.ant-col-lg-offset-19{margin-left:79.16666667%}.ant-col-lg-order-19{-moz-box-ordinal-group:20;order:19}.ant-col-lg-18{display:block;-moz-box-flex:0;flex:0 0 75%;max-width:75%}.ant-col-lg-push-18{left:75%}.ant-col-lg-pull-18{right:75%}.ant-col-lg-offset-18{margin-left:75%}.ant-col-lg-order-18{-moz-box-ordinal-group:19;order:18}.ant-col-lg-17{display:block;-moz-box-flex:0;flex:0 0 70.83333333%;max-width:70.83333333%}.ant-col-lg-push-17{left:70.83333333%}.ant-col-lg-pull-17{right:70.83333333%}.ant-col-lg-offset-17{margin-left:70.83333333%}.ant-col-lg-order-17{-moz-box-ordinal-group:18;order:17}.ant-col-lg-16{display:block;-moz-box-flex:0;flex:0 0 66.66666667%;max-width:66.66666667%}.ant-col-lg-push-16{left:66.66666667%}.ant-col-lg-pull-16{right:66.66666667%}.ant-col-lg-offset-16{margin-left:66.66666667%}.ant-col-lg-order-16{-moz-box-ordinal-group:17;order:16}.ant-col-lg-15{display:block;-moz-box-flex:0;flex:0 0 62.5%;max-width:62.5%}.ant-col-lg-push-15{left:62.5%}.ant-col-lg-pull-15{right:62.5%}.ant-col-lg-offset-15{margin-left:62.5%}.ant-col-lg-order-15{-moz-box-ordinal-group:16;order:15}.ant-col-lg-14{display:block;-moz-box-flex:0;flex:0 0 58.33333333%;max-width:58.33333333%}.ant-col-lg-push-14{left:58.33333333%}.ant-col-lg-pull-14{right:58.33333333%}.ant-col-lg-offset-14{margin-left:58.33333333%}.ant-col-lg-order-14{-moz-box-ordinal-group:15;order:14}.ant-col-lg-13{display:block;-moz-box-flex:0;flex:0 0 54.16666667%;max-width:54.16666667%}.ant-col-lg-push-13{left:54.16666667%}.ant-col-lg-pull-13{right:54.16666667%}.ant-col-lg-offset-13{margin-left:54.16666667%}.ant-col-lg-order-13{-moz-box-ordinal-group:14;order:13}.ant-col-lg-12{display:block;-moz-box-flex:0;flex:0 0 50%;max-width:50%}.ant-col-lg-push-12{left:50%}.ant-col-lg-pull-12{right:50%}.ant-col-lg-offset-12{margin-left:50%}.ant-col-lg-order-12{-moz-box-ordinal-group:13;order:12}.ant-col-lg-11{display:block;-moz-box-flex:0;flex:0 0 45.83333333%;max-width:45.83333333%}.ant-col-lg-push-11{left:45.83333333%}.ant-col-lg-pull-11{right:45.83333333%}.ant-col-lg-offset-11{margin-left:45.83333333%}.ant-col-lg-order-11{-moz-box-ordinal-group:12;order:11}.ant-col-lg-10{display:block;-moz-box-flex:0;flex:0 0 41.66666667%;max-width:41.66666667%}.ant-col-lg-push-10{left:41.66666667%}.ant-col-lg-pull-10{right:41.66666667%}.ant-col-lg-offset-10{margin-left:41.66666667%}.ant-col-lg-order-10{-moz-box-ordinal-group:11;order:10}.ant-col-lg-9{display:block;-moz-box-flex:0;flex:0 0 37.5%;max-width:37.5%}.ant-col-lg-push-9{left:37.5%}.ant-col-lg-pull-9{right:37.5%}.ant-col-lg-offset-9{margin-left:37.5%}.ant-col-lg-order-9{-moz-box-ordinal-group:10;order:9}.ant-col-lg-8{display:block;-moz-box-flex:0;flex:0 0 33.33333333%;max-width:33.33333333%}.ant-col-lg-push-8{left:33.33333333%}.ant-col-lg-pull-8{right:33.33333333%}.ant-col-lg-offset-8{margin-left:33.33333333%}.ant-col-lg-order-8{-moz-box-ordinal-group:9;order:8}.ant-col-lg-7{display:block;-moz-box-flex:0;flex:0 0 29.16666667%;max-width:29.16666667%}.ant-col-lg-push-7{left:29.16666667%}.ant-col-lg-pull-7{right:29.16666667%}.ant-col-lg-offset-7{margin-left:29.16666667%}.ant-col-lg-order-7{-moz-box-ordinal-group:8;order:7}.ant-col-lg-6{display:block;-moz-box-flex:0;flex:0 0 25%;max-width:25%}.ant-col-lg-push-6{left:25%}.ant-col-lg-pull-6{right:25%}.ant-col-lg-offset-6{margin-left:25%}.ant-col-lg-order-6{-moz-box-ordinal-group:7;order:6}.ant-col-lg-5{display:block;-moz-box-flex:0;flex:0 0 20.83333333%;max-width:20.83333333%}.ant-col-lg-push-5{left:20.83333333%}.ant-col-lg-pull-5{right:20.83333333%}.ant-col-lg-offset-5{margin-left:20.83333333%}.ant-col-lg-order-5{-moz-box-ordinal-group:6;order:5}.ant-col-lg-4{display:block;-moz-box-flex:0;flex:0 0 16.66666667%;max-width:16.66666667%}.ant-col-lg-push-4{left:16.66666667%}.ant-col-lg-pull-4{right:16.66666667%}.ant-col-lg-offset-4{margin-left:16.66666667%}.ant-col-lg-order-4{-moz-box-ordinal-group:5;order:4}.ant-col-lg-3{display:block;-moz-box-flex:0;flex:0 0 12.5%;max-width:12.5%}.ant-col-lg-push-3{left:12.5%}.ant-col-lg-pull-3{right:12.5%}.ant-col-lg-offset-3{margin-left:12.5%}.ant-col-lg-order-3{-moz-box-ordinal-group:4;order:3}.ant-col-lg-2{display:block;-moz-box-flex:0;flex:0 0 8.33333333%;max-width:8.33333333%}.ant-col-lg-push-2{left:8.33333333%}.ant-col-lg-pull-2{right:8.33333333%}.ant-col-lg-offset-2{margin-left:8.33333333%}.ant-col-lg-order-2{-moz-box-ordinal-group:3;order:2}.ant-col-lg-1{display:block;-moz-box-flex:0;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-lg-push-1{left:4.16666667%}.ant-col-lg-pull-1{right:4.16666667%}.ant-col-lg-offset-1{margin-left:4.16666667%}.ant-col-lg-order-1{-moz-box-ordinal-group:2;order:1}.ant-col-lg-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-lg-push-0{left:auto}.ant-col-lg-pull-0{right:auto}.ant-col-lg-offset-0{margin-left:0}.ant-col-lg-order-0{-moz-box-ordinal-group:1;order:0}.ant-col-push-0.ant-col-rtl{right:auto}.ant-col-pull-0.ant-col-rtl{left:auto}.ant-col-lg-push-0.ant-col-rtl{right:auto}.ant-col-lg-pull-0.ant-col-rtl{left:auto}.ant-col-lg-offset-0.ant-col-rtl{margin-right:0}.ant-col-lg-push-1.ant-col-rtl{right:4.16666667%;left:auto}.ant-col-lg-pull-1.ant-col-rtl{right:auto;left:4.16666667%}.ant-col-lg-offset-1.ant-col-rtl{margin-right:4.16666667%;margin-left:0}.ant-col-lg-push-2.ant-col-rtl{right:8.33333333%;left:auto}.ant-col-lg-pull-2.ant-col-rtl{right:auto;left:8.33333333%}.ant-col-lg-offset-2.ant-col-rtl{margin-right:8.33333333%;margin-left:0}.ant-col-lg-push-3.ant-col-rtl{right:12.5%;left:auto}.ant-col-lg-pull-3.ant-col-rtl{right:auto;left:12.5%}.ant-col-lg-offset-3.ant-col-rtl{margin-right:12.5%;margin-left:0}.ant-col-lg-push-4.ant-col-rtl{right:16.66666667%;left:auto}.ant-col-lg-pull-4.ant-col-rtl{right:auto;left:16.66666667%}.ant-col-lg-offset-4.ant-col-rtl{margin-right:16.66666667%;margin-left:0}.ant-col-lg-push-5.ant-col-rtl{right:20.83333333%;left:auto}.ant-col-lg-pull-5.ant-col-rtl{right:auto;left:20.83333333%}.ant-col-lg-offset-5.ant-col-rtl{margin-right:20.83333333%;margin-left:0}.ant-col-lg-push-6.ant-col-rtl{right:25%;left:auto}.ant-col-lg-pull-6.ant-col-rtl{right:auto;left:25%}.ant-col-lg-offset-6.ant-col-rtl{margin-right:25%;margin-left:0}.ant-col-lg-push-7.ant-col-rtl{right:29.16666667%;left:auto}.ant-col-lg-pull-7.ant-col-rtl{right:auto;left:29.16666667%}.ant-col-lg-offset-7.ant-col-rtl{margin-right:29.16666667%;margin-left:0}.ant-col-lg-push-8.ant-col-rtl{right:33.33333333%;left:auto}.ant-col-lg-pull-8.ant-col-rtl{right:auto;left:33.33333333%}.ant-col-lg-offset-8.ant-col-rtl{margin-right:33.33333333%;margin-left:0}.ant-col-lg-push-9.ant-col-rtl{right:37.5%;left:auto}.ant-col-lg-pull-9.ant-col-rtl{right:auto;left:37.5%}.ant-col-lg-offset-9.ant-col-rtl{margin-right:37.5%;margin-left:0}.ant-col-lg-push-10.ant-col-rtl{right:41.66666667%;left:auto}.ant-col-lg-pull-10.ant-col-rtl{right:auto;left:41.66666667%}.ant-col-lg-offset-10.ant-col-rtl{margin-right:41.66666667%;margin-left:0}.ant-col-lg-push-11.ant-col-rtl{right:45.83333333%;left:auto}.ant-col-lg-pull-11.ant-col-rtl{right:auto;left:45.83333333%}.ant-col-lg-offset-11.ant-col-rtl{margin-right:45.83333333%;margin-left:0}.ant-col-lg-push-12.ant-col-rtl{right:50%;left:auto}.ant-col-lg-pull-12.ant-col-rtl{right:auto;left:50%}.ant-col-lg-offset-12.ant-col-rtl{margin-right:50%;margin-left:0}.ant-col-lg-push-13.ant-col-rtl{right:54.16666667%;left:auto}.ant-col-lg-pull-13.ant-col-rtl{right:auto;left:54.16666667%}.ant-col-lg-offset-13.ant-col-rtl{margin-right:54.16666667%;margin-left:0}.ant-col-lg-push-14.ant-col-rtl{right:58.33333333%;left:auto}.ant-col-lg-pull-14.ant-col-rtl{right:auto;left:58.33333333%}.ant-col-lg-offset-14.ant-col-rtl{margin-right:58.33333333%;margin-left:0}.ant-col-lg-push-15.ant-col-rtl{right:62.5%;left:auto}.ant-col-lg-pull-15.ant-col-rtl{right:auto;left:62.5%}.ant-col-lg-offset-15.ant-col-rtl{margin-right:62.5%;margin-left:0}.ant-col-lg-push-16.ant-col-rtl{right:66.66666667%;left:auto}.ant-col-lg-pull-16.ant-col-rtl{right:auto;left:66.66666667%}.ant-col-lg-offset-16.ant-col-rtl{margin-right:66.66666667%;margin-left:0}.ant-col-lg-push-17.ant-col-rtl{right:70.83333333%;left:auto}.ant-col-lg-pull-17.ant-col-rtl{right:auto;left:70.83333333%}.ant-col-lg-offset-17.ant-col-rtl{margin-right:70.83333333%;margin-left:0}.ant-col-lg-push-18.ant-col-rtl{right:75%;left:auto}.ant-col-lg-pull-18.ant-col-rtl{right:auto;left:75%}.ant-col-lg-offset-18.ant-col-rtl{margin-right:75%;margin-left:0}.ant-col-lg-push-19.ant-col-rtl{right:79.16666667%;left:auto}.ant-col-lg-pull-19.ant-col-rtl{right:auto;left:79.16666667%}.ant-col-lg-offset-19.ant-col-rtl{margin-right:79.16666667%;margin-left:0}.ant-col-lg-push-20.ant-col-rtl{right:83.33333333%;left:auto}.ant-col-lg-pull-20.ant-col-rtl{right:auto;left:83.33333333%}.ant-col-lg-offset-20.ant-col-rtl{margin-right:83.33333333%;margin-left:0}.ant-col-lg-push-21.ant-col-rtl{right:87.5%;left:auto}.ant-col-lg-pull-21.ant-col-rtl{right:auto;left:87.5%}.ant-col-lg-offset-21.ant-col-rtl{margin-right:87.5%;margin-left:0}.ant-col-lg-push-22.ant-col-rtl{right:91.66666667%;left:auto}.ant-col-lg-pull-22.ant-col-rtl{right:auto;left:91.66666667%}.ant-col-lg-offset-22.ant-col-rtl{margin-right:91.66666667%;margin-left:0}.ant-col-lg-push-23.ant-col-rtl{right:95.83333333%;left:auto}.ant-col-lg-pull-23.ant-col-rtl{right:auto;left:95.83333333%}.ant-col-lg-offset-23.ant-col-rtl{margin-right:95.83333333%;margin-left:0}.ant-col-lg-push-24.ant-col-rtl{right:100%;left:auto}.ant-col-lg-pull-24.ant-col-rtl{right:auto;left:100%}.ant-col-lg-offset-24.ant-col-rtl{margin-right:100%;margin-left:0}}@media (min-width:1200px){.ant-col-xl-24{display:block;-moz-box-flex:0;flex:0 0 100%;max-width:100%}.ant-col-xl-push-24{left:100%}.ant-col-xl-pull-24{right:100%}.ant-col-xl-offset-24{margin-left:100%}.ant-col-xl-order-24{-moz-box-ordinal-group:25;order:24}.ant-col-xl-23{display:block;-moz-box-flex:0;flex:0 0 95.83333333%;max-width:95.83333333%}.ant-col-xl-push-23{left:95.83333333%}.ant-col-xl-pull-23{right:95.83333333%}.ant-col-xl-offset-23{margin-left:95.83333333%}.ant-col-xl-order-23{-moz-box-ordinal-group:24;order:23}.ant-col-xl-22{display:block;-moz-box-flex:0;flex:0 0 91.66666667%;max-width:91.66666667%}.ant-col-xl-push-22{left:91.66666667%}.ant-col-xl-pull-22{right:91.66666667%}.ant-col-xl-offset-22{margin-left:91.66666667%}.ant-col-xl-order-22{-moz-box-ordinal-group:23;order:22}.ant-col-xl-21{display:block;-moz-box-flex:0;flex:0 0 87.5%;max-width:87.5%}.ant-col-xl-push-21{left:87.5%}.ant-col-xl-pull-21{right:87.5%}.ant-col-xl-offset-21{margin-left:87.5%}.ant-col-xl-order-21{-moz-box-ordinal-group:22;order:21}.ant-col-xl-20{display:block;-moz-box-flex:0;flex:0 0 83.33333333%;max-width:83.33333333%}.ant-col-xl-push-20{left:83.33333333%}.ant-col-xl-pull-20{right:83.33333333%}.ant-col-xl-offset-20{margin-left:83.33333333%}.ant-col-xl-order-20{-moz-box-ordinal-group:21;order:20}.ant-col-xl-19{display:block;-moz-box-flex:0;flex:0 0 79.16666667%;max-width:79.16666667%}.ant-col-xl-push-19{left:79.16666667%}.ant-col-xl-pull-19{right:79.16666667%}.ant-col-xl-offset-19{margin-left:79.16666667%}.ant-col-xl-order-19{-moz-box-ordinal-group:20;order:19}.ant-col-xl-18{display:block;-moz-box-flex:0;flex:0 0 75%;max-width:75%}.ant-col-xl-push-18{left:75%}.ant-col-xl-pull-18{right:75%}.ant-col-xl-offset-18{margin-left:75%}.ant-col-xl-order-18{-moz-box-ordinal-group:19;order:18}.ant-col-xl-17{display:block;-moz-box-flex:0;flex:0 0 70.83333333%;max-width:70.83333333%}.ant-col-xl-push-17{left:70.83333333%}.ant-col-xl-pull-17{right:70.83333333%}.ant-col-xl-offset-17{margin-left:70.83333333%}.ant-col-xl-order-17{-moz-box-ordinal-group:18;order:17}.ant-col-xl-16{display:block;-moz-box-flex:0;flex:0 0 66.66666667%;max-width:66.66666667%}.ant-col-xl-push-16{left:66.66666667%}.ant-col-xl-pull-16{right:66.66666667%}.ant-col-xl-offset-16{margin-left:66.66666667%}.ant-col-xl-order-16{-moz-box-ordinal-group:17;order:16}.ant-col-xl-15{display:block;-moz-box-flex:0;flex:0 0 62.5%;max-width:62.5%}.ant-col-xl-push-15{left:62.5%}.ant-col-xl-pull-15{right:62.5%}.ant-col-xl-offset-15{margin-left:62.5%}.ant-col-xl-order-15{-moz-box-ordinal-group:16;order:15}.ant-col-xl-14{display:block;-moz-box-flex:0;flex:0 0 58.33333333%;max-width:58.33333333%}.ant-col-xl-push-14{left:58.33333333%}.ant-col-xl-pull-14{right:58.33333333%}.ant-col-xl-offset-14{margin-left:58.33333333%}.ant-col-xl-order-14{-moz-box-ordinal-group:15;order:14}.ant-col-xl-13{display:block;-moz-box-flex:0;flex:0 0 54.16666667%;max-width:54.16666667%}.ant-col-xl-push-13{left:54.16666667%}.ant-col-xl-pull-13{right:54.16666667%}.ant-col-xl-offset-13{margin-left:54.16666667%}.ant-col-xl-order-13{-moz-box-ordinal-group:14;order:13}.ant-col-xl-12{display:block;-moz-box-flex:0;flex:0 0 50%;max-width:50%}.ant-col-xl-push-12{left:50%}.ant-col-xl-pull-12{right:50%}.ant-col-xl-offset-12{margin-left:50%}.ant-col-xl-order-12{-moz-box-ordinal-group:13;order:12}.ant-col-xl-11{display:block;-moz-box-flex:0;flex:0 0 45.83333333%;max-width:45.83333333%}.ant-col-xl-push-11{left:45.83333333%}.ant-col-xl-pull-11{right:45.83333333%}.ant-col-xl-offset-11{margin-left:45.83333333%}.ant-col-xl-order-11{-moz-box-ordinal-group:12;order:11}.ant-col-xl-10{display:block;-moz-box-flex:0;flex:0 0 41.66666667%;max-width:41.66666667%}.ant-col-xl-push-10{left:41.66666667%}.ant-col-xl-pull-10{right:41.66666667%}.ant-col-xl-offset-10{margin-left:41.66666667%}.ant-col-xl-order-10{-moz-box-ordinal-group:11;order:10}.ant-col-xl-9{display:block;-moz-box-flex:0;flex:0 0 37.5%;max-width:37.5%}.ant-col-xl-push-9{left:37.5%}.ant-col-xl-pull-9{right:37.5%}.ant-col-xl-offset-9{margin-left:37.5%}.ant-col-xl-order-9{-moz-box-ordinal-group:10;order:9}.ant-col-xl-8{display:block;-moz-box-flex:0;flex:0 0 33.33333333%;max-width:33.33333333%}.ant-col-xl-push-8{left:33.33333333%}.ant-col-xl-pull-8{right:33.33333333%}.ant-col-xl-offset-8{margin-left:33.33333333%}.ant-col-xl-order-8{-moz-box-ordinal-group:9;order:8}.ant-col-xl-7{display:block;-moz-box-flex:0;flex:0 0 29.16666667%;max-width:29.16666667%}.ant-col-xl-push-7{left:29.16666667%}.ant-col-xl-pull-7{right:29.16666667%}.ant-col-xl-offset-7{margin-left:29.16666667%}.ant-col-xl-order-7{-moz-box-ordinal-group:8;order:7}.ant-col-xl-6{display:block;-moz-box-flex:0;flex:0 0 25%;max-width:25%}.ant-col-xl-push-6{left:25%}.ant-col-xl-pull-6{right:25%}.ant-col-xl-offset-6{margin-left:25%}.ant-col-xl-order-6{-moz-box-ordinal-group:7;order:6}.ant-col-xl-5{display:block;-moz-box-flex:0;flex:0 0 20.83333333%;max-width:20.83333333%}.ant-col-xl-push-5{left:20.83333333%}.ant-col-xl-pull-5{right:20.83333333%}.ant-col-xl-offset-5{margin-left:20.83333333%}.ant-col-xl-order-5{-moz-box-ordinal-group:6;order:5}.ant-col-xl-4{display:block;-moz-box-flex:0;flex:0 0 16.66666667%;max-width:16.66666667%}.ant-col-xl-push-4{left:16.66666667%}.ant-col-xl-pull-4{right:16.66666667%}.ant-col-xl-offset-4{margin-left:16.66666667%}.ant-col-xl-order-4{-moz-box-ordinal-group:5;order:4}.ant-col-xl-3{display:block;-moz-box-flex:0;flex:0 0 12.5%;max-width:12.5%}.ant-col-xl-push-3{left:12.5%}.ant-col-xl-pull-3{right:12.5%}.ant-col-xl-offset-3{margin-left:12.5%}.ant-col-xl-order-3{-moz-box-ordinal-group:4;order:3}.ant-col-xl-2{display:block;-moz-box-flex:0;flex:0 0 8.33333333%;max-width:8.33333333%}.ant-col-xl-push-2{left:8.33333333%}.ant-col-xl-pull-2{right:8.33333333%}.ant-col-xl-offset-2{margin-left:8.33333333%}.ant-col-xl-order-2{-moz-box-ordinal-group:3;order:2}.ant-col-xl-1{display:block;-moz-box-flex:0;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-xl-push-1{left:4.16666667%}.ant-col-xl-pull-1{right:4.16666667%}.ant-col-xl-offset-1{margin-left:4.16666667%}.ant-col-xl-order-1{-moz-box-ordinal-group:2;order:1}.ant-col-xl-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-xl-push-0{left:auto}.ant-col-xl-pull-0{right:auto}.ant-col-xl-offset-0{margin-left:0}.ant-col-xl-order-0{-moz-box-ordinal-group:1;order:0}.ant-col-push-0.ant-col-rtl{right:auto}.ant-col-pull-0.ant-col-rtl{left:auto}.ant-col-xl-push-0.ant-col-rtl{right:auto}.ant-col-xl-pull-0.ant-col-rtl{left:auto}.ant-col-xl-offset-0.ant-col-rtl{margin-right:0}.ant-col-xl-push-1.ant-col-rtl{right:4.16666667%;left:auto}.ant-col-xl-pull-1.ant-col-rtl{right:auto;left:4.16666667%}.ant-col-xl-offset-1.ant-col-rtl{margin-right:4.16666667%;margin-left:0}.ant-col-xl-push-2.ant-col-rtl{right:8.33333333%;left:auto}.ant-col-xl-pull-2.ant-col-rtl{right:auto;left:8.33333333%}.ant-col-xl-offset-2.ant-col-rtl{margin-right:8.33333333%;margin-left:0}.ant-col-xl-push-3.ant-col-rtl{right:12.5%;left:auto}.ant-col-xl-pull-3.ant-col-rtl{right:auto;left:12.5%}.ant-col-xl-offset-3.ant-col-rtl{margin-right:12.5%;margin-left:0}.ant-col-xl-push-4.ant-col-rtl{right:16.66666667%;left:auto}.ant-col-xl-pull-4.ant-col-rtl{right:auto;left:16.66666667%}.ant-col-xl-offset-4.ant-col-rtl{margin-right:16.66666667%;margin-left:0}.ant-col-xl-push-5.ant-col-rtl{right:20.83333333%;left:auto}.ant-col-xl-pull-5.ant-col-rtl{right:auto;left:20.83333333%}.ant-col-xl-offset-5.ant-col-rtl{margin-right:20.83333333%;margin-left:0}.ant-col-xl-push-6.ant-col-rtl{right:25%;left:auto}.ant-col-xl-pull-6.ant-col-rtl{right:auto;left:25%}.ant-col-xl-offset-6.ant-col-rtl{margin-right:25%;margin-left:0}.ant-col-xl-push-7.ant-col-rtl{right:29.16666667%;left:auto}.ant-col-xl-pull-7.ant-col-rtl{right:auto;left:29.16666667%}.ant-col-xl-offset-7.ant-col-rtl{margin-right:29.16666667%;margin-left:0}.ant-col-xl-push-8.ant-col-rtl{right:33.33333333%;left:auto}.ant-col-xl-pull-8.ant-col-rtl{right:auto;left:33.33333333%}.ant-col-xl-offset-8.ant-col-rtl{margin-right:33.33333333%;margin-left:0}.ant-col-xl-push-9.ant-col-rtl{right:37.5%;left:auto}.ant-col-xl-pull-9.ant-col-rtl{right:auto;left:37.5%}.ant-col-xl-offset-9.ant-col-rtl{margin-right:37.5%;margin-left:0}.ant-col-xl-push-10.ant-col-rtl{right:41.66666667%;left:auto}.ant-col-xl-pull-10.ant-col-rtl{right:auto;left:41.66666667%}.ant-col-xl-offset-10.ant-col-rtl{margin-right:41.66666667%;margin-left:0}.ant-col-xl-push-11.ant-col-rtl{right:45.83333333%;left:auto}.ant-col-xl-pull-11.ant-col-rtl{right:auto;left:45.83333333%}.ant-col-xl-offset-11.ant-col-rtl{margin-right:45.83333333%;margin-left:0}.ant-col-xl-push-12.ant-col-rtl{right:50%;left:auto}.ant-col-xl-pull-12.ant-col-rtl{right:auto;left:50%}.ant-col-xl-offset-12.ant-col-rtl{margin-right:50%;margin-left:0}.ant-col-xl-push-13.ant-col-rtl{right:54.16666667%;left:auto}.ant-col-xl-pull-13.ant-col-rtl{right:auto;left:54.16666667%}.ant-col-xl-offset-13.ant-col-rtl{margin-right:54.16666667%;margin-left:0}.ant-col-xl-push-14.ant-col-rtl{right:58.33333333%;left:auto}.ant-col-xl-pull-14.ant-col-rtl{right:auto;left:58.33333333%}.ant-col-xl-offset-14.ant-col-rtl{margin-right:58.33333333%;margin-left:0}.ant-col-xl-push-15.ant-col-rtl{right:62.5%;left:auto}.ant-col-xl-pull-15.ant-col-rtl{right:auto;left:62.5%}.ant-col-xl-offset-15.ant-col-rtl{margin-right:62.5%;margin-left:0}.ant-col-xl-push-16.ant-col-rtl{right:66.66666667%;left:auto}.ant-col-xl-pull-16.ant-col-rtl{right:auto;left:66.66666667%}.ant-col-xl-offset-16.ant-col-rtl{margin-right:66.66666667%;margin-left:0}.ant-col-xl-push-17.ant-col-rtl{right:70.83333333%;left:auto}.ant-col-xl-pull-17.ant-col-rtl{right:auto;left:70.83333333%}.ant-col-xl-offset-17.ant-col-rtl{margin-right:70.83333333%;margin-left:0}.ant-col-xl-push-18.ant-col-rtl{right:75%;left:auto}.ant-col-xl-pull-18.ant-col-rtl{right:auto;left:75%}.ant-col-xl-offset-18.ant-col-rtl{margin-right:75%;margin-left:0}.ant-col-xl-push-19.ant-col-rtl{right:79.16666667%;left:auto}.ant-col-xl-pull-19.ant-col-rtl{right:auto;left:79.16666667%}.ant-col-xl-offset-19.ant-col-rtl{margin-right:79.16666667%;margin-left:0}.ant-col-xl-push-20.ant-col-rtl{right:83.33333333%;left:auto}.ant-col-xl-pull-20.ant-col-rtl{right:auto;left:83.33333333%}.ant-col-xl-offset-20.ant-col-rtl{margin-right:83.33333333%;margin-left:0}.ant-col-xl-push-21.ant-col-rtl{right:87.5%;left:auto}.ant-col-xl-pull-21.ant-col-rtl{right:auto;left:87.5%}.ant-col-xl-offset-21.ant-col-rtl{margin-right:87.5%;margin-left:0}.ant-col-xl-push-22.ant-col-rtl{right:91.66666667%;left:auto}.ant-col-xl-pull-22.ant-col-rtl{right:auto;left:91.66666667%}.ant-col-xl-offset-22.ant-col-rtl{margin-right:91.66666667%;margin-left:0}.ant-col-xl-push-23.ant-col-rtl{right:95.83333333%;left:auto}.ant-col-xl-pull-23.ant-col-rtl{right:auto;left:95.83333333%}.ant-col-xl-offset-23.ant-col-rtl{margin-right:95.83333333%;margin-left:0}.ant-col-xl-push-24.ant-col-rtl{right:100%;left:auto}.ant-col-xl-pull-24.ant-col-rtl{right:auto;left:100%}.ant-col-xl-offset-24.ant-col-rtl{margin-right:100%;margin-left:0}}@media (min-width:1600px){.ant-col-xxl-24{display:block;-moz-box-flex:0;flex:0 0 100%;max-width:100%}.ant-col-xxl-push-24{left:100%}.ant-col-xxl-pull-24{right:100%}.ant-col-xxl-offset-24{margin-left:100%}.ant-col-xxl-order-24{-moz-box-ordinal-group:25;order:24}.ant-col-xxl-23{display:block;-moz-box-flex:0;flex:0 0 95.83333333%;max-width:95.83333333%}.ant-col-xxl-push-23{left:95.83333333%}.ant-col-xxl-pull-23{right:95.83333333%}.ant-col-xxl-offset-23{margin-left:95.83333333%}.ant-col-xxl-order-23{-moz-box-ordinal-group:24;order:23}.ant-col-xxl-22{display:block;-moz-box-flex:0;flex:0 0 91.66666667%;max-width:91.66666667%}.ant-col-xxl-push-22{left:91.66666667%}.ant-col-xxl-pull-22{right:91.66666667%}.ant-col-xxl-offset-22{margin-left:91.66666667%}.ant-col-xxl-order-22{-moz-box-ordinal-group:23;order:22}.ant-col-xxl-21{display:block;-moz-box-flex:0;flex:0 0 87.5%;max-width:87.5%}.ant-col-xxl-push-21{left:87.5%}.ant-col-xxl-pull-21{right:87.5%}.ant-col-xxl-offset-21{margin-left:87.5%}.ant-col-xxl-order-21{-moz-box-ordinal-group:22;order:21}.ant-col-xxl-20{display:block;-moz-box-flex:0;flex:0 0 83.33333333%;max-width:83.33333333%}.ant-col-xxl-push-20{left:83.33333333%}.ant-col-xxl-pull-20{right:83.33333333%}.ant-col-xxl-offset-20{margin-left:83.33333333%}.ant-col-xxl-order-20{-moz-box-ordinal-group:21;order:20}.ant-col-xxl-19{display:block;-moz-box-flex:0;flex:0 0 79.16666667%;max-width:79.16666667%}.ant-col-xxl-push-19{left:79.16666667%}.ant-col-xxl-pull-19{right:79.16666667%}.ant-col-xxl-offset-19{margin-left:79.16666667%}.ant-col-xxl-order-19{-moz-box-ordinal-group:20;order:19}.ant-col-xxl-18{display:block;-moz-box-flex:0;flex:0 0 75%;max-width:75%}.ant-col-xxl-push-18{left:75%}.ant-col-xxl-pull-18{right:75%}.ant-col-xxl-offset-18{margin-left:75%}.ant-col-xxl-order-18{-moz-box-ordinal-group:19;order:18}.ant-col-xxl-17{display:block;-moz-box-flex:0;flex:0 0 70.83333333%;max-width:70.83333333%}.ant-col-xxl-push-17{left:70.83333333%}.ant-col-xxl-pull-17{right:70.83333333%}.ant-col-xxl-offset-17{margin-left:70.83333333%}.ant-col-xxl-order-17{-moz-box-ordinal-group:18;order:17}.ant-col-xxl-16{display:block;-moz-box-flex:0;flex:0 0 66.66666667%;max-width:66.66666667%}.ant-col-xxl-push-16{left:66.66666667%}.ant-col-xxl-pull-16{right:66.66666667%}.ant-col-xxl-offset-16{margin-left:66.66666667%}.ant-col-xxl-order-16{-moz-box-ordinal-group:17;order:16}.ant-col-xxl-15{display:block;-moz-box-flex:0;flex:0 0 62.5%;max-width:62.5%}.ant-col-xxl-push-15{left:62.5%}.ant-col-xxl-pull-15{right:62.5%}.ant-col-xxl-offset-15{margin-left:62.5%}.ant-col-xxl-order-15{-moz-box-ordinal-group:16;order:15}.ant-col-xxl-14{display:block;-moz-box-flex:0;flex:0 0 58.33333333%;max-width:58.33333333%}.ant-col-xxl-push-14{left:58.33333333%}.ant-col-xxl-pull-14{right:58.33333333%}.ant-col-xxl-offset-14{margin-left:58.33333333%}.ant-col-xxl-order-14{-moz-box-ordinal-group:15;order:14}.ant-col-xxl-13{display:block;-moz-box-flex:0;flex:0 0 54.16666667%;max-width:54.16666667%}.ant-col-xxl-push-13{left:54.16666667%}.ant-col-xxl-pull-13{right:54.16666667%}.ant-col-xxl-offset-13{margin-left:54.16666667%}.ant-col-xxl-order-13{-moz-box-ordinal-group:14;order:13}.ant-col-xxl-12{display:block;-moz-box-flex:0;flex:0 0 50%;max-width:50%}.ant-col-xxl-push-12{left:50%}.ant-col-xxl-pull-12{right:50%}.ant-col-xxl-offset-12{margin-left:50%}.ant-col-xxl-order-12{-moz-box-ordinal-group:13;order:12}.ant-col-xxl-11{display:block;-moz-box-flex:0;flex:0 0 45.83333333%;max-width:45.83333333%}.ant-col-xxl-push-11{left:45.83333333%}.ant-col-xxl-pull-11{right:45.83333333%}.ant-col-xxl-offset-11{margin-left:45.83333333%}.ant-col-xxl-order-11{-moz-box-ordinal-group:12;order:11}.ant-col-xxl-10{display:block;-moz-box-flex:0;flex:0 0 41.66666667%;max-width:41.66666667%}.ant-col-xxl-push-10{left:41.66666667%}.ant-col-xxl-pull-10{right:41.66666667%}.ant-col-xxl-offset-10{margin-left:41.66666667%}.ant-col-xxl-order-10{-moz-box-ordinal-group:11;order:10}.ant-col-xxl-9{display:block;-moz-box-flex:0;flex:0 0 37.5%;max-width:37.5%}.ant-col-xxl-push-9{left:37.5%}.ant-col-xxl-pull-9{right:37.5%}.ant-col-xxl-offset-9{margin-left:37.5%}.ant-col-xxl-order-9{-moz-box-ordinal-group:10;order:9}.ant-col-xxl-8{display:block;-moz-box-flex:0;flex:0 0 33.33333333%;max-width:33.33333333%}.ant-col-xxl-push-8{left:33.33333333%}.ant-col-xxl-pull-8{right:33.33333333%}.ant-col-xxl-offset-8{margin-left:33.33333333%}.ant-col-xxl-order-8{-moz-box-ordinal-group:9;order:8}.ant-col-xxl-7{display:block;-moz-box-flex:0;flex:0 0 29.16666667%;max-width:29.16666667%}.ant-col-xxl-push-7{left:29.16666667%}.ant-col-xxl-pull-7{right:29.16666667%}.ant-col-xxl-offset-7{margin-left:29.16666667%}.ant-col-xxl-order-7{-moz-box-ordinal-group:8;order:7}.ant-col-xxl-6{display:block;-moz-box-flex:0;flex:0 0 25%;max-width:25%}.ant-col-xxl-push-6{left:25%}.ant-col-xxl-pull-6{right:25%}.ant-col-xxl-offset-6{margin-left:25%}.ant-col-xxl-order-6{-moz-box-ordinal-group:7;order:6}.ant-col-xxl-5{display:block;-moz-box-flex:0;flex:0 0 20.83333333%;max-width:20.83333333%}.ant-col-xxl-push-5{left:20.83333333%}.ant-col-xxl-pull-5{right:20.83333333%}.ant-col-xxl-offset-5{margin-left:20.83333333%}.ant-col-xxl-order-5{-moz-box-ordinal-group:6;order:5}.ant-col-xxl-4{display:block;-moz-box-flex:0;flex:0 0 16.66666667%;max-width:16.66666667%}.ant-col-xxl-push-4{left:16.66666667%}.ant-col-xxl-pull-4{right:16.66666667%}.ant-col-xxl-offset-4{margin-left:16.66666667%}.ant-col-xxl-order-4{-moz-box-ordinal-group:5;order:4}.ant-col-xxl-3{display:block;-moz-box-flex:0;flex:0 0 12.5%;max-width:12.5%}.ant-col-xxl-push-3{left:12.5%}.ant-col-xxl-pull-3{right:12.5%}.ant-col-xxl-offset-3{margin-left:12.5%}.ant-col-xxl-order-3{-moz-box-ordinal-group:4;order:3}.ant-col-xxl-2{display:block;-moz-box-flex:0;flex:0 0 8.33333333%;max-width:8.33333333%}.ant-col-xxl-push-2{left:8.33333333%}.ant-col-xxl-pull-2{right:8.33333333%}.ant-col-xxl-offset-2{margin-left:8.33333333%}.ant-col-xxl-order-2{-moz-box-ordinal-group:3;order:2}.ant-col-xxl-1{display:block;-moz-box-flex:0;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-xxl-push-1{left:4.16666667%}.ant-col-xxl-pull-1{right:4.16666667%}.ant-col-xxl-offset-1{margin-left:4.16666667%}.ant-col-xxl-order-1{-moz-box-ordinal-group:2;order:1}.ant-col-xxl-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-xxl-push-0{left:auto}.ant-col-xxl-pull-0{right:auto}.ant-col-xxl-offset-0{margin-left:0}.ant-col-xxl-order-0{-moz-box-ordinal-group:1;order:0}.ant-col-push-0.ant-col-rtl{right:auto}.ant-col-pull-0.ant-col-rtl{left:auto}.ant-col-xxl-push-0.ant-col-rtl{right:auto}.ant-col-xxl-pull-0.ant-col-rtl{left:auto}.ant-col-xxl-offset-0.ant-col-rtl{margin-right:0}.ant-col-xxl-push-1.ant-col-rtl{right:4.16666667%;left:auto}.ant-col-xxl-pull-1.ant-col-rtl{right:auto;left:4.16666667%}.ant-col-xxl-offset-1.ant-col-rtl{margin-right:4.16666667%;margin-left:0}.ant-col-xxl-push-2.ant-col-rtl{right:8.33333333%;left:auto}.ant-col-xxl-pull-2.ant-col-rtl{right:auto;left:8.33333333%}.ant-col-xxl-offset-2.ant-col-rtl{margin-right:8.33333333%;margin-left:0}.ant-col-xxl-push-3.ant-col-rtl{right:12.5%;left:auto}.ant-col-xxl-pull-3.ant-col-rtl{right:auto;left:12.5%}.ant-col-xxl-offset-3.ant-col-rtl{margin-right:12.5%;margin-left:0}.ant-col-xxl-push-4.ant-col-rtl{right:16.66666667%;left:auto}.ant-col-xxl-pull-4.ant-col-rtl{right:auto;left:16.66666667%}.ant-col-xxl-offset-4.ant-col-rtl{margin-right:16.66666667%;margin-left:0}.ant-col-xxl-push-5.ant-col-rtl{right:20.83333333%;left:auto}.ant-col-xxl-pull-5.ant-col-rtl{right:auto;left:20.83333333%}.ant-col-xxl-offset-5.ant-col-rtl{margin-right:20.83333333%;margin-left:0}.ant-col-xxl-push-6.ant-col-rtl{right:25%;left:auto}.ant-col-xxl-pull-6.ant-col-rtl{right:auto;left:25%}.ant-col-xxl-offset-6.ant-col-rtl{margin-right:25%;margin-left:0}.ant-col-xxl-push-7.ant-col-rtl{right:29.16666667%;left:auto}.ant-col-xxl-pull-7.ant-col-rtl{right:auto;left:29.16666667%}.ant-col-xxl-offset-7.ant-col-rtl{margin-right:29.16666667%;margin-left:0}.ant-col-xxl-push-8.ant-col-rtl{right:33.33333333%;left:auto}.ant-col-xxl-pull-8.ant-col-rtl{right:auto;left:33.33333333%}.ant-col-xxl-offset-8.ant-col-rtl{margin-right:33.33333333%;margin-left:0}.ant-col-xxl-push-9.ant-col-rtl{right:37.5%;left:auto}.ant-col-xxl-pull-9.ant-col-rtl{right:auto;left:37.5%}.ant-col-xxl-offset-9.ant-col-rtl{margin-right:37.5%;margin-left:0}.ant-col-xxl-push-10.ant-col-rtl{right:41.66666667%;left:auto}.ant-col-xxl-pull-10.ant-col-rtl{right:auto;left:41.66666667%}.ant-col-xxl-offset-10.ant-col-rtl{margin-right:41.66666667%;margin-left:0}.ant-col-xxl-push-11.ant-col-rtl{right:45.83333333%;left:auto}.ant-col-xxl-pull-11.ant-col-rtl{right:auto;left:45.83333333%}.ant-col-xxl-offset-11.ant-col-rtl{margin-right:45.83333333%;margin-left:0}.ant-col-xxl-push-12.ant-col-rtl{right:50%;left:auto}.ant-col-xxl-pull-12.ant-col-rtl{right:auto;left:50%}.ant-col-xxl-offset-12.ant-col-rtl{margin-right:50%;margin-left:0}.ant-col-xxl-push-13.ant-col-rtl{right:54.16666667%;left:auto}.ant-col-xxl-pull-13.ant-col-rtl{right:auto;left:54.16666667%}.ant-col-xxl-offset-13.ant-col-rtl{margin-right:54.16666667%;margin-left:0}.ant-col-xxl-push-14.ant-col-rtl{right:58.33333333%;left:auto}.ant-col-xxl-pull-14.ant-col-rtl{right:auto;left:58.33333333%}.ant-col-xxl-offset-14.ant-col-rtl{margin-right:58.33333333%;margin-left:0}.ant-col-xxl-push-15.ant-col-rtl{right:62.5%;left:auto}.ant-col-xxl-pull-15.ant-col-rtl{right:auto;left:62.5%}.ant-col-xxl-offset-15.ant-col-rtl{margin-right:62.5%;margin-left:0}.ant-col-xxl-push-16.ant-col-rtl{right:66.66666667%;left:auto}.ant-col-xxl-pull-16.ant-col-rtl{right:auto;left:66.66666667%}.ant-col-xxl-offset-16.ant-col-rtl{margin-right:66.66666667%;margin-left:0}.ant-col-xxl-push-17.ant-col-rtl{right:70.83333333%;left:auto}.ant-col-xxl-pull-17.ant-col-rtl{right:auto;left:70.83333333%}.ant-col-xxl-offset-17.ant-col-rtl{margin-right:70.83333333%;margin-left:0}.ant-col-xxl-push-18.ant-col-rtl{right:75%;left:auto}.ant-col-xxl-pull-18.ant-col-rtl{right:auto;left:75%}.ant-col-xxl-offset-18.ant-col-rtl{margin-right:75%;margin-left:0}.ant-col-xxl-push-19.ant-col-rtl{right:79.16666667%;left:auto}.ant-col-xxl-pull-19.ant-col-rtl{right:auto;left:79.16666667%}.ant-col-xxl-offset-19.ant-col-rtl{margin-right:79.16666667%;margin-left:0}.ant-col-xxl-push-20.ant-col-rtl{right:83.33333333%;left:auto}.ant-col-xxl-pull-20.ant-col-rtl{right:auto;left:83.33333333%}.ant-col-xxl-offset-20.ant-col-rtl{margin-right:83.33333333%;margin-left:0}.ant-col-xxl-push-21.ant-col-rtl{right:87.5%;left:auto}.ant-col-xxl-pull-21.ant-col-rtl{right:auto;left:87.5%}.ant-col-xxl-offset-21.ant-col-rtl{margin-right:87.5%;margin-left:0}.ant-col-xxl-push-22.ant-col-rtl{right:91.66666667%;left:auto}.ant-col-xxl-pull-22.ant-col-rtl{right:auto;left:91.66666667%}.ant-col-xxl-offset-22.ant-col-rtl{margin-right:91.66666667%;margin-left:0}.ant-col-xxl-push-23.ant-col-rtl{right:95.83333333%;left:auto}.ant-col-xxl-pull-23.ant-col-rtl{right:auto;left:95.83333333%}.ant-col-xxl-offset-23.ant-col-rtl{margin-right:95.83333333%;margin-left:0}.ant-col-xxl-push-24.ant-col-rtl{right:100%;left:auto}.ant-col-xxl-pull-24.ant-col-rtl{right:auto;left:100%}.ant-col-xxl-offset-24.ant-col-rtl{margin-right:100%;margin-left:0}}.ant-row-rtl{direction:rtl}.ant-carousel{margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum"}.ant-carousel,.ant-carousel .slick-slider{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.ant-carousel .slick-slider{position:relative;display:block;touch-action:pan-y;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.ant-carousel .slick-list{position:relative;display:block;margin:0;padding:0;overflow:hidden}.ant-carousel .slick-list:focus{outline:none}.ant-carousel .slick-list.dragging{cursor:pointer}.ant-carousel .slick-list .slick-slide{pointer-events:none}.ant-carousel .slick-list .slick-slide input.ant-checkbox-input,.ant-carousel .slick-list .slick-slide input.ant-radio-input{visibility:hidden}.ant-carousel .slick-list .slick-slide.slick-active{pointer-events:auto}.ant-carousel .slick-list .slick-slide.slick-active input.ant-checkbox-input,.ant-carousel .slick-list .slick-slide.slick-active input.ant-radio-input{visibility:visible}.ant-carousel .slick-list .slick-slide>div>div{vertical-align:bottom}.ant-carousel .slick-slider .slick-list,.ant-carousel .slick-slider .slick-track{-webkit-transform:translateZ(0);-moz-transform:translateZ(0);transform:translateZ(0);touch-action:pan-y}.ant-carousel .slick-track{position:relative;top:0;left:0;display:block}.ant-carousel .slick-track:after,.ant-carousel .slick-track:before{display:table;content:""}.ant-carousel .slick-track:after{clear:both}.slick-loading .ant-carousel .slick-track{visibility:hidden}.ant-carousel .slick-slide{display:none;float:left;height:100%;min-height:1px}.ant-carousel .slick-slide img{display:block}.ant-carousel .slick-slide.slick-loading img{display:none}.ant-carousel .slick-slide.dragging img{pointer-events:none}.ant-carousel .slick-initialized .slick-slide{display:block}.ant-carousel .slick-loading .slick-slide{visibility:hidden}.ant-carousel .slick-vertical .slick-slide{display:block;height:auto}.ant-carousel .slick-arrow.slick-hidden{display:none}.ant-carousel .slick-next,.ant-carousel .slick-prev{position:absolute;top:50%;display:block;width:20px;height:20px;margin-top:-10px;padding:0;font-size:0;line-height:0;border:0;cursor:pointer}.ant-carousel .slick-next,.ant-carousel .slick-next:focus,.ant-carousel .slick-next:hover,.ant-carousel .slick-prev,.ant-carousel .slick-prev:focus,.ant-carousel .slick-prev:hover{color:transparent;background:transparent;outline:none}.ant-carousel .slick-next:focus:before,.ant-carousel .slick-next:hover:before,.ant-carousel .slick-prev:focus:before,.ant-carousel .slick-prev:hover:before{opacity:1}.ant-carousel .slick-next.slick-disabled:before,.ant-carousel .slick-prev.slick-disabled:before{opacity:.25}.ant-carousel .slick-prev{left:-25px}.ant-carousel .slick-prev:before{content:"←"}.ant-carousel .slick-next{right:-25px}.ant-carousel .slick-next:before{content:"→"}.ant-carousel .slick-dots{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-moz-box!important;display:flex!important;-moz-box-pack:center;justify-content:center;margin-right:15%;margin-left:15%;padding-left:0;list-style:none}.ant-carousel .slick-dots-bottom{bottom:12px}.ant-carousel .slick-dots-top{top:12px;bottom:auto}.ant-carousel .slick-dots li{position:relative;display:inline-block;-moz-box-flex:0;flex:0 1 auto;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;width:16px;margin:0 3px;text-align:center;text-indent:-999px;vertical-align:top}.ant-carousel .slick-dots li,.ant-carousel .slick-dots li button{height:3px;padding:0;-webkit-transition:all .5s;-moz-transition:all .5s;transition:all .5s}.ant-carousel .slick-dots li button{display:block;width:100%;color:transparent;font-size:0;background:#fff;border:0;border-radius:1px;outline:none;cursor:pointer;opacity:.3}.ant-carousel .slick-dots li button:focus,.ant-carousel .slick-dots li button:hover{opacity:.75}.ant-carousel .slick-dots li.slick-active{width:24px}.ant-carousel .slick-dots li.slick-active button{background:#fff;opacity:1}.ant-carousel .slick-dots li.slick-active:focus,.ant-carousel .slick-dots li.slick-active:hover{opacity:1}.ant-carousel-vertical .slick-dots{top:50%;bottom:auto;-moz-box-orient:vertical;-moz-box-direction:normal;flex-direction:column;width:3px;height:auto;margin:0;-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);transform:translateY(-50%)}.ant-carousel-vertical .slick-dots-left{right:auto;left:12px}.ant-carousel-vertical .slick-dots-right{right:12px;left:auto}.ant-carousel-vertical .slick-dots li{width:3px;height:16px;margin:4px 2px;vertical-align:baseline}.ant-carousel-vertical .slick-dots li button{width:3px;height:16px}.ant-carousel-vertical .slick-dots li.slick-active,.ant-carousel-vertical .slick-dots li.slick-active button{width:3px;height:24px}.ant-carousel-rtl{direction:rtl}.ant-carousel-rtl .ant-carousel .slick-track{right:0;left:auto}.ant-carousel-rtl .ant-carousel .slick-prev{right:-25px;left:auto}.ant-carousel-rtl .ant-carousel .slick-prev:before{content:"→"}.ant-carousel-rtl .ant-carousel .slick-next{right:auto;left:-25px}.ant-carousel-rtl .ant-carousel .slick-next:before{content:"←"}.ant-carousel-rtl.ant-carousel .slick-dots{-moz-box-orient:horizontal;-moz-box-direction:reverse;flex-direction:row-reverse}.ant-carousel-rtl.ant-carousel-vertical .slick-dots{-moz-box-orient:vertical;-moz-box-direction:normal;flex-direction:column}@-moz-keyframes antCheckboxEffect{0%{-moz-transform:scale(1);transform:scale(1);opacity:.5}to{-moz-transform:scale(1.6);transform:scale(1.6);opacity:0}}.ant-cascader-checkbox{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";position:relative;top:.2em;line-height:1;white-space:nowrap;outline:none;cursor:pointer}.ant-cascader-checkbox-input:focus+.ant-cascader-checkbox-inner,.ant-cascader-checkbox-wrapper:hover .ant-cascader-checkbox-inner,.ant-cascader-checkbox:hover .ant-cascader-checkbox-inner{border-color:#1890ff}.ant-cascader-checkbox-checked:after{position:absolute;top:0;left:0;width:100%;height:100%;border:1px solid #1890ff;border-radius:2px;visibility:hidden;-webkit-animation:antCheckboxEffect .36s ease-in-out;-moz-animation:antCheckboxEffect .36s ease-in-out;animation:antCheckboxEffect .36s ease-in-out;-webkit-animation-fill-mode:backwards;-moz-animation-fill-mode:backwards;animation-fill-mode:backwards;content:""}.ant-cascader-checkbox-wrapper:hover .ant-cascader-checkbox:after,.ant-cascader-checkbox:hover:after{visibility:visible}.ant-cascader-checkbox-inner{position:relative;top:0;left:0;display:block;width:16px;height:16px;direction:ltr;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;border-collapse:separate;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s}.ant-cascader-checkbox-inner:after{position:absolute;top:50%;left:21.5%;display:table;width:5.71428571px;height:9.14285714px;border:2px solid #fff;border-top:0;border-left:0;-webkit-transform:rotate(45deg) scale(0) translate(-50%,-50%);-moz-transform:rotate(45deg) scale(0) translate(-50%,-50%);transform:rotate(45deg) scale(0) translate(-50%,-50%);opacity:0;-webkit-transition:all .1s cubic-bezier(.71,-.46,.88,.6),opacity .1s;-moz-transition:all .1s cubic-bezier(.71,-.46,.88,.6),opacity .1s;transition:all .1s cubic-bezier(.71,-.46,.88,.6),opacity .1s;content:" "}.ant-cascader-checkbox-input{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;width:100%;height:100%;cursor:pointer;opacity:0}.ant-cascader-checkbox-checked .ant-cascader-checkbox-inner:after{position:absolute;display:table;border:2px solid #fff;border-top:0;border-left:0;-webkit-transform:rotate(45deg) scale(1) translate(-50%,-50%);-moz-transform:rotate(45deg) scale(1) translate(-50%,-50%);transform:rotate(45deg) scale(1) translate(-50%,-50%);opacity:1;-webkit-transition:all .2s cubic-bezier(.12,.4,.29,1.46) .1s;-moz-transition:all .2s cubic-bezier(.12,.4,.29,1.46) .1s;transition:all .2s cubic-bezier(.12,.4,.29,1.46) .1s;content:" "}.ant-cascader-checkbox-checked .ant-cascader-checkbox-inner{background-color:#1890ff;border-color:#1890ff}.ant-cascader-checkbox-disabled{cursor:not-allowed}.ant-cascader-checkbox-disabled.ant-cascader-checkbox-checked .ant-cascader-checkbox-inner:after{border-color:rgba(0,0,0,.25);-webkit-animation-name:none;-moz-animation-name:none;animation-name:none}.ant-cascader-checkbox-disabled .ant-cascader-checkbox-input{cursor:not-allowed}.ant-cascader-checkbox-disabled .ant-cascader-checkbox-inner{background-color:#f5f5f5;border-color:#d9d9d9!important}.ant-cascader-checkbox-disabled .ant-cascader-checkbox-inner:after{border-color:#f5f5f5;border-collapse:separate;-webkit-animation-name:none;-moz-animation-name:none;animation-name:none}.ant-cascader-checkbox-disabled+span{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-cascader-checkbox-disabled:hover:after,.ant-cascader-checkbox-wrapper:hover .ant-cascader-checkbox-disabled:after{visibility:hidden}.ant-cascader-checkbox-wrapper{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";display:-moz-inline-box;display:inline-flex;-moz-box-align:baseline;align-items:baseline;line-height:unset;cursor:pointer}.ant-cascader-checkbox-wrapper:after{display:inline-block;width:0;overflow:hidden;content:"\a0"}.ant-cascader-checkbox-wrapper.ant-cascader-checkbox-wrapper-disabled{cursor:not-allowed}.ant-cascader-checkbox-wrapper+.ant-cascader-checkbox-wrapper{margin-left:8px}.ant-cascader-checkbox+span{padding-right:8px;padding-left:8px}.ant-cascader-checkbox-group{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";display:inline-block}.ant-cascader-checkbox-group-item{margin-right:8px}.ant-cascader-checkbox-group-item:last-child{margin-right:0}.ant-cascader-checkbox-group-item+.ant-cascader-checkbox-group-item{margin-left:0}.ant-cascader-checkbox-indeterminate .ant-cascader-checkbox-inner{background-color:#fff;border-color:#d9d9d9}.ant-cascader-checkbox-indeterminate .ant-cascader-checkbox-inner:after{top:50%;left:50%;width:8px;height:8px;background-color:#1890ff;border:0;-webkit-transform:translate(-50%,-50%) scale(1);-moz-transform:translate(-50%,-50%) scale(1);transform:translate(-50%,-50%) scale(1);opacity:1;content:" "}.ant-cascader-checkbox-indeterminate.ant-cascader-checkbox-disabled .ant-cascader-checkbox-inner:after{background-color:rgba(0,0,0,.25);border-color:rgba(0,0,0,.25)}.ant-cascader{width:184px}.ant-cascader-checkbox{top:0;margin-right:8px}.ant-cascader-menus{display:-moz-box;display:flex;flex-wrap:nowrap;-moz-box-align:start;align-items:flex-start}.ant-cascader-menus.ant-cascader-menu-empty .ant-cascader-menu{width:100%;height:auto}.ant-cascader-menu{min-width:111px;height:180px;margin:-4px 0;padding:4px 0;overflow:auto;vertical-align:top;list-style:none;border-right:1px solid #f0f0f0;-ms-overflow-style:-ms-autohiding-scrollbar}.ant-cascader-menu-item{display:-moz-box;display:flex;flex-wrap:nowrap;-moz-box-align:center;align-items:center;padding:5px 12px;overflow:hidden;line-height:22px;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s}.ant-cascader-menu-item:hover{background:#f5f5f5}.ant-cascader-menu-item-disabled{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-cascader-menu-item-disabled:hover{background:transparent}.ant-cascader-menu-empty .ant-cascader-menu-item{color:rgba(0,0,0,.25);cursor:default;pointer-events:none}.ant-cascader-menu-item-active:not(.ant-cascader-menu-item-disabled),.ant-cascader-menu-item-active:not(.ant-cascader-menu-item-disabled):hover{font-weight:600;background-color:#e6f7ff}.ant-cascader-menu-item-content{-moz-box-flex:1;flex:auto}.ant-cascader-menu-item-expand .ant-cascader-menu-item-expand-icon,.ant-cascader-menu-item-loading-icon{margin-left:4px;color:rgba(0,0,0,.45);font-size:10px}.ant-cascader-menu-item-disabled.ant-cascader-menu-item-expand .ant-cascader-menu-item-expand-icon,.ant-cascader-menu-item-disabled.ant-cascader-menu-item-loading-icon{color:rgba(0,0,0,.25)}.ant-cascader-menu-item-keyword{color:#ff4d4f}.ant-cascader-rtl .ant-cascader-menu-item-expand-icon,.ant-cascader-rtl .ant-cascader-menu-item-loading-icon{margin-right:4px;margin-left:0}.ant-cascader-rtl .ant-cascader-checkbox{top:0;margin-right:0;margin-left:8px}.ant-checkbox{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";position:relative;top:.2em;line-height:1;white-space:nowrap;outline:none;cursor:pointer}.ant-checkbox-input:focus+.ant-checkbox-inner,.ant-checkbox-wrapper:hover .ant-checkbox-inner,.ant-checkbox:hover .ant-checkbox-inner{border-color:#1890ff}.ant-checkbox-checked:after{position:absolute;top:0;left:0;width:100%;height:100%;border:1px solid #1890ff;border-radius:2px;visibility:hidden;-webkit-animation:antCheckboxEffect .36s ease-in-out;-moz-animation:antCheckboxEffect .36s ease-in-out;animation:antCheckboxEffect .36s ease-in-out;-webkit-animation-fill-mode:backwards;-moz-animation-fill-mode:backwards;animation-fill-mode:backwards;content:""}.ant-checkbox-wrapper:hover .ant-checkbox:after,.ant-checkbox:hover:after{visibility:visible}.ant-checkbox-inner{position:relative;top:0;left:0;display:block;width:16px;height:16px;direction:ltr;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;border-collapse:separate;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s}.ant-checkbox-inner:after{position:absolute;top:50%;left:21.5%;display:table;width:5.71428571px;height:9.14285714px;border:2px solid #fff;border-top:0;border-left:0;-webkit-transform:rotate(45deg) scale(0) translate(-50%,-50%);-moz-transform:rotate(45deg) scale(0) translate(-50%,-50%);transform:rotate(45deg) scale(0) translate(-50%,-50%);opacity:0;-webkit-transition:all .1s cubic-bezier(.71,-.46,.88,.6),opacity .1s;-moz-transition:all .1s cubic-bezier(.71,-.46,.88,.6),opacity .1s;transition:all .1s cubic-bezier(.71,-.46,.88,.6),opacity .1s;content:" "}.ant-checkbox-input{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;width:100%;height:100%;cursor:pointer;opacity:0}.ant-checkbox-checked .ant-checkbox-inner:after{position:absolute;display:table;border:2px solid #fff;border-top:0;border-left:0;-webkit-transform:rotate(45deg) scale(1) translate(-50%,-50%);-moz-transform:rotate(45deg) scale(1) translate(-50%,-50%);transform:rotate(45deg) scale(1) translate(-50%,-50%);opacity:1;-webkit-transition:all .2s cubic-bezier(.12,.4,.29,1.46) .1s;-moz-transition:all .2s cubic-bezier(.12,.4,.29,1.46) .1s;transition:all .2s cubic-bezier(.12,.4,.29,1.46) .1s;content:" "}.ant-checkbox-checked .ant-checkbox-inner{background-color:#1890ff;border-color:#1890ff}.ant-checkbox-disabled{cursor:not-allowed}.ant-checkbox-disabled.ant-checkbox-checked .ant-checkbox-inner:after{border-color:rgba(0,0,0,.25);-webkit-animation-name:none;-moz-animation-name:none;animation-name:none}.ant-checkbox-disabled .ant-checkbox-input{cursor:not-allowed}.ant-checkbox-disabled .ant-checkbox-inner{background-color:#f5f5f5;border-color:#d9d9d9!important}.ant-checkbox-disabled .ant-checkbox-inner:after{border-color:#f5f5f5;border-collapse:separate;-webkit-animation-name:none;-moz-animation-name:none;animation-name:none}.ant-checkbox-disabled+span{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-checkbox-disabled:hover:after,.ant-checkbox-wrapper:hover .ant-checkbox-disabled:after{visibility:hidden}.ant-checkbox-wrapper{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";display:-moz-inline-box;display:inline-flex;-moz-box-align:baseline;align-items:baseline;line-height:unset;cursor:pointer}.ant-checkbox-wrapper:after{display:inline-block;width:0;overflow:hidden;content:"\a0"}.ant-checkbox-wrapper.ant-checkbox-wrapper-disabled{cursor:not-allowed}.ant-checkbox-wrapper+.ant-checkbox-wrapper{margin-left:8px}.ant-checkbox+span{padding-right:8px;padding-left:8px}.ant-checkbox-group{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";display:inline-block}.ant-checkbox-group-item{margin-right:8px}.ant-checkbox-group-item:last-child{margin-right:0}.ant-checkbox-group-item+.ant-checkbox-group-item{margin-left:0}.ant-checkbox-indeterminate .ant-checkbox-inner{background-color:#fff;border-color:#d9d9d9}.ant-checkbox-indeterminate .ant-checkbox-inner:after{top:50%;left:50%;width:8px;height:8px;background-color:#1890ff;border:0;-webkit-transform:translate(-50%,-50%) scale(1);-moz-transform:translate(-50%,-50%) scale(1);transform:translate(-50%,-50%) scale(1);opacity:1;content:" "}.ant-checkbox-indeterminate.ant-checkbox-disabled .ant-checkbox-inner:after{background-color:rgba(0,0,0,.25);border-color:rgba(0,0,0,.25)}.ant-checkbox-rtl{direction:rtl}.ant-checkbox-group-rtl .ant-checkbox-group-item{margin-right:0;margin-left:8px}.ant-checkbox-group-rtl .ant-checkbox-group-item:last-child{margin-left:0!important}.ant-checkbox-group-rtl .ant-checkbox-group-item+.ant-checkbox-group-item{margin-left:8px}.ant-collapse{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";background-color:#fafafa;border:1px solid #d9d9d9;border-bottom:0;border-radius:2px}.ant-collapse>.ant-collapse-item{border-bottom:1px solid #d9d9d9}.ant-collapse>.ant-collapse-item:last-child,.ant-collapse>.ant-collapse-item:last-child>.ant-collapse-header{border-radius:0 0 2px 2px}.ant-collapse>.ant-collapse-item>.ant-collapse-header{position:relative;display:-moz-box;display:flex;flex-wrap:nowrap;-moz-box-align:start;align-items:flex-start;padding:12px 16px;color:rgba(0,0,0,.85);line-height:1.5715;cursor:pointer;-webkit-transition:all .3s,visibility 0s;-moz-transition:all .3s,visibility 0s;transition:all .3s,visibility 0s}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow{display:inline-block;margin-right:12px;font-size:12px;vertical-align:-1px}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow svg{-webkit-transition:-webkit-transform .24s;transition:-webkit-transform .24s;-moz-transition:transform .24s,-moz-transform .24s;transition:transform .24s;transition:transform .24s,-webkit-transform .24s,-moz-transform .24s}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-extra{margin-left:auto}.ant-collapse>.ant-collapse-item>.ant-collapse-header:focus{outline:none}.ant-collapse>.ant-collapse-item .ant-collapse-header-collapsible-only{cursor:default}.ant-collapse>.ant-collapse-item .ant-collapse-header-collapsible-only .ant-collapse-header-text{cursor:pointer}.ant-collapse>.ant-collapse-item.ant-collapse-no-arrow>.ant-collapse-header{padding-left:12px}.ant-collapse-icon-position-right>.ant-collapse-item>.ant-collapse-header{position:relative;padding:12px 40px 12px 16px}.ant-collapse-icon-position-right>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow{position:absolute;top:50%;right:16px;left:auto;margin:0;-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);transform:translateY(-50%)}.ant-collapse-content{color:rgba(0,0,0,.85);background-color:#fff;border-top:1px solid #d9d9d9}.ant-collapse-content>.ant-collapse-content-box{padding:16px}.ant-collapse-content-hidden{display:none}.ant-collapse-item:last-child>.ant-collapse-content{border-radius:0 0 2px 2px}.ant-collapse-borderless{background-color:#fafafa;border:0}.ant-collapse-borderless>.ant-collapse-item{border-bottom:1px solid #d9d9d9}.ant-collapse-borderless>.ant-collapse-item:last-child,.ant-collapse-borderless>.ant-collapse-item:last-child .ant-collapse-header{border-radius:0}.ant-collapse-borderless>.ant-collapse-item>.ant-collapse-content{background-color:transparent;border-top:0}.ant-collapse-borderless>.ant-collapse-item>.ant-collapse-content>.ant-collapse-content-box{padding-top:4px}.ant-collapse-ghost{background-color:transparent;border:0}.ant-collapse-ghost>.ant-collapse-item{border-bottom:0}.ant-collapse-ghost>.ant-collapse-item>.ant-collapse-content{background-color:transparent;border-top:0}.ant-collapse-ghost>.ant-collapse-item>.ant-collapse-content>.ant-collapse-content-box{padding-top:12px;padding-bottom:12px}.ant-collapse .ant-collapse-item-disabled>.ant-collapse-header,.ant-collapse .ant-collapse-item-disabled>.ant-collapse-header>.arrow{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-collapse-rtl{direction:rtl}.ant-collapse-rtl .ant-collapse>.ant-collapse-item>.ant-collapse-header{padding:12px 40px 12px 16px}.ant-collapse-rtl.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow{margin-right:0;margin-left:12px}.ant-collapse-rtl.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow svg{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);transform:rotate(180deg)}.ant-collapse-rtl.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-extra{margin-right:auto;margin-left:0}.ant-collapse-rtl.ant-collapse>.ant-collapse-item.ant-collapse-no-arrow>.ant-collapse-header{padding-right:12px;padding-left:0}.ant-comment{position:relative;background-color:inherit}.ant-comment-inner{display:-moz-box;display:flex;padding:16px 0}.ant-comment-avatar{position:relative;flex-shrink:0;margin-right:12px;cursor:pointer}.ant-comment-avatar img{width:32px;height:32px;border-radius:50%}.ant-comment-content{position:relative;-moz-box-flex:1;flex:1 1 auto;min-width:1px;font-size:14px;word-wrap:break-word}.ant-comment-content-author{display:-moz-box;display:flex;flex-wrap:wrap;-moz-box-pack:start;justify-content:flex-start;margin-bottom:4px;font-size:14px}.ant-comment-content-author>a,.ant-comment-content-author>span{padding-right:8px;font-size:12px;line-height:18px}.ant-comment-content-author-name{color:rgba(0,0,0,.45);font-size:14px;-webkit-transition:color .3s;-moz-transition:color .3s;transition:color .3s}.ant-comment-content-author-name>*,.ant-comment-content-author-name>:hover{color:rgba(0,0,0,.45)}.ant-comment-content-author-time{color:#ccc;white-space:nowrap;cursor:auto}.ant-comment-content-detail p{margin-bottom:inherit;white-space:pre-wrap}.ant-comment-actions{margin-top:12px;margin-bottom:inherit;padding-left:0}.ant-comment-actions>li{display:inline-block;color:rgba(0,0,0,.45)}.ant-comment-actions>li>span{margin-right:10px;color:rgba(0,0,0,.45);font-size:12px;cursor:pointer;-webkit-transition:color .3s;-moz-transition:color .3s;transition:color .3s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-comment-actions>li>span:hover{color:#595959}.ant-comment-nested{margin-left:44px}.ant-comment-rtl{direction:rtl}.ant-comment-rtl .ant-comment-avatar{margin-right:0;margin-left:12px}.ant-comment-rtl .ant-comment-content-author>a,.ant-comment-rtl .ant-comment-content-author>span{padding-right:0;padding-left:8px}.ant-comment-rtl .ant-comment-actions{padding-right:0}.ant-comment-rtl .ant-comment-actions>li>span{margin-right:0;margin-left:10px}.ant-comment-rtl .ant-comment-nested{margin-right:44px;margin-left:0}.ant-descriptions-header{display:-moz-box;display:flex;-moz-box-align:center;align-items:center;margin-bottom:20px}.ant-descriptions-title{-moz-box-flex:1;flex:auto;overflow:hidden;color:rgba(0,0,0,.85);font-weight:700;font-size:16px;line-height:1.5715;white-space:nowrap;text-overflow:ellipsis}.ant-descriptions-extra{margin-left:auto;color:rgba(0,0,0,.85);font-size:14px}.ant-descriptions-view{width:100%;border-radius:2px}.ant-descriptions-view table{width:100%;table-layout:fixed}.ant-descriptions-row>td,.ant-descriptions-row>th{padding-bottom:16px}.ant-descriptions-row:last-child{border-bottom:none}.ant-descriptions-item-label{color:rgba(0,0,0,.85);font-weight:400;font-size:14px;line-height:1.5715;text-align:start}.ant-descriptions-item-label:after{content:":";position:relative;top:-.5px;margin:0 8px 0 2px}.ant-descriptions-item-label.ant-descriptions-item-no-colon:after{content:" "}.ant-descriptions-item-no-label:after{margin:0;content:""}.ant-descriptions-item-content{display:table-cell;-moz-box-flex:1;flex:1 1;color:rgba(0,0,0,.85);font-size:14px;line-height:1.5715;word-break:break-word;overflow-wrap:break-word}.ant-descriptions-item{padding-bottom:0;vertical-align:top}.ant-descriptions-item-container{display:-moz-box;display:flex}.ant-descriptions-item-container .ant-descriptions-item-content,.ant-descriptions-item-container .ant-descriptions-item-label{display:-moz-inline-box;display:inline-flex;-moz-box-align:baseline;align-items:baseline}.ant-descriptions-middle .ant-descriptions-row>td,.ant-descriptions-middle .ant-descriptions-row>th{padding-bottom:12px}.ant-descriptions-small .ant-descriptions-row>td,.ant-descriptions-small .ant-descriptions-row>th{padding-bottom:8px}.ant-descriptions-bordered .ant-descriptions-view{border:1px solid #f0f0f0}.ant-descriptions-bordered .ant-descriptions-view>table{table-layout:auto;border-collapse:collapse}.ant-descriptions-bordered .ant-descriptions-item-content,.ant-descriptions-bordered .ant-descriptions-item-label{padding:16px 24px;border-right:1px solid #f0f0f0}.ant-descriptions-bordered .ant-descriptions-item-content:last-child,.ant-descriptions-bordered .ant-descriptions-item-label:last-child{border-right:none}.ant-descriptions-bordered .ant-descriptions-item-label{background-color:#fafafa}.ant-descriptions-bordered .ant-descriptions-item-label:after{display:none}.ant-descriptions-bordered .ant-descriptions-row{border-bottom:1px solid #f0f0f0}.ant-descriptions-bordered .ant-descriptions-row:last-child{border-bottom:none}.ant-descriptions-bordered.ant-descriptions-middle .ant-descriptions-item-content,.ant-descriptions-bordered.ant-descriptions-middle .ant-descriptions-item-label{padding:12px 24px}.ant-descriptions-bordered.ant-descriptions-small .ant-descriptions-item-content,.ant-descriptions-bordered.ant-descriptions-small .ant-descriptions-item-label{padding:8px 16px}.ant-descriptions-rtl{direction:rtl}.ant-descriptions-rtl .ant-descriptions-item-label:after{margin:0 2px 0 8px}.ant-descriptions-rtl.ant-descriptions-bordered .ant-descriptions-item-content,.ant-descriptions-rtl.ant-descriptions-bordered .ant-descriptions-item-label{border-right:none;border-left:1px solid #f0f0f0}.ant-descriptions-rtl.ant-descriptions-bordered .ant-descriptions-item-content:last-child,.ant-descriptions-rtl.ant-descriptions-bordered .ant-descriptions-item-label:last-child{border-left:none}.ant-divider{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";border-top:1px solid rgba(0,0,0,.06)}.ant-divider-vertical{position:relative;top:-.06em;display:inline-block;height:.9em;margin:0 8px;vertical-align:middle;border-top:0;border-left:1px solid rgba(0,0,0,.06)}.ant-divider-horizontal{display:-moz-box;display:flex;clear:both;width:100%;min-width:100%;margin:24px 0}.ant-divider-horizontal.ant-divider-with-text{display:-moz-box;display:flex;margin:16px 0;color:rgba(0,0,0,.85);font-weight:500;font-size:16px;white-space:nowrap;text-align:center;border-top:0;border-top-color:rgba(0,0,0,.06)}.ant-divider-horizontal.ant-divider-with-text:after,.ant-divider-horizontal.ant-divider-with-text:before{position:relative;top:50%;width:50%;border-top:1px solid transparent;border-top-color:inherit;border-bottom:0;-webkit-transform:translateY(50%);-moz-transform:translateY(50%);transform:translateY(50%);content:""}.ant-divider-horizontal.ant-divider-with-text-left:before{top:50%;width:5%}.ant-divider-horizontal.ant-divider-with-text-left:after,.ant-divider-horizontal.ant-divider-with-text-right:before{top:50%;width:95%}.ant-divider-horizontal.ant-divider-with-text-right:after{top:50%;width:5%}.ant-divider-inner-text{display:inline-block;padding:0 1em}.ant-divider-dashed{background:none;border:dashed rgba(0,0,0,.06);border-width:1px 0 0}.ant-divider-horizontal.ant-divider-with-text.ant-divider-dashed:after,.ant-divider-horizontal.ant-divider-with-text.ant-divider-dashed:before{border-style:dashed none none}.ant-divider-vertical.ant-divider-dashed{border-width:0 0 0 1px}.ant-divider-plain.ant-divider-with-text{color:rgba(0,0,0,.85);font-weight:400;font-size:14px}.ant-divider-horizontal.ant-divider-with-text-left.ant-divider-no-default-orientation-margin-left:before{width:0}.ant-divider-horizontal.ant-divider-with-text-left.ant-divider-no-default-orientation-margin-left:after{width:100%}.ant-divider-horizontal.ant-divider-with-text-left.ant-divider-no-default-orientation-margin-left .ant-divider-inner-text{padding-left:0}.ant-divider-horizontal.ant-divider-with-text-right.ant-divider-no-default-orientation-margin-right:before{width:100%}.ant-divider-horizontal.ant-divider-with-text-right.ant-divider-no-default-orientation-margin-right:after{width:0}.ant-divider-horizontal.ant-divider-with-text-right.ant-divider-no-default-orientation-margin-right .ant-divider-inner-text{padding-right:0}.ant-divider-rtl{direction:rtl}.ant-divider-rtl.ant-divider-horizontal.ant-divider-with-text-left:before{width:95%}.ant-divider-rtl.ant-divider-horizontal.ant-divider-with-text-left:after,.ant-divider-rtl.ant-divider-horizontal.ant-divider-with-text-right:before{width:5%}.ant-divider-rtl.ant-divider-horizontal.ant-divider-with-text-right:after{width:95%}.ant-drawer{position:fixed;z-index:1000;width:0;height:100%;-webkit-transition:width 0s ease .3s,height 0s ease .3s;-moz-transition:width 0s ease .3s,height 0s ease .3s;transition:width 0s ease .3s,height 0s ease .3s}.ant-drawer-content-wrapper{position:absolute;width:100%;height:100%;-webkit-transition:-webkit-transform .3s cubic-bezier(.23,1,.32,1),-webkit-box-shadow .3s cubic-bezier(.23,1,.32,1);transition:-webkit-transform .3s cubic-bezier(.23,1,.32,1),-webkit-box-shadow .3s cubic-bezier(.23,1,.32,1);-moz-transition:transform .3s cubic-bezier(.23,1,.32,1),box-shadow .3s cubic-bezier(.23,1,.32,1),-moz-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),box-shadow .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),box-shadow .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1),-moz-transform .3s cubic-bezier(.23,1,.32,1),-webkit-box-shadow .3s cubic-bezier(.23,1,.32,1)}.ant-drawer .ant-drawer-content{width:100%;height:100%}.ant-drawer-left,.ant-drawer-right{top:0;width:0;height:100%}.ant-drawer-left .ant-drawer-content-wrapper,.ant-drawer-right .ant-drawer-content-wrapper{height:100%}.ant-drawer-left.ant-drawer-open,.ant-drawer-right.ant-drawer-open{width:100%;-webkit-transition:-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:-webkit-transform .3s cubic-bezier(.23,1,.32,1);-moz-transition:transform .3s cubic-bezier(.23,1,.32,1),-moz-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1),-moz-transform .3s cubic-bezier(.23,1,.32,1)}.ant-drawer-left,.ant-drawer-left .ant-drawer-content-wrapper{left:0}.ant-drawer-left.ant-drawer-open .ant-drawer-content-wrapper{-webkit-box-shadow:6px 0 16px -8px rgba(0,0,0,.08),9px 0 28px 0 rgba(0,0,0,.05),12px 0 48px 16px rgba(0,0,0,.03);box-shadow:6px 0 16px -8px rgba(0,0,0,.08),9px 0 28px 0 rgba(0,0,0,.05),12px 0 48px 16px rgba(0,0,0,.03)}.ant-drawer-right,.ant-drawer-right .ant-drawer-content-wrapper{right:0}.ant-drawer-right.ant-drawer-open .ant-drawer-content-wrapper{-webkit-box-shadow:-6px 0 16px -8px rgba(0,0,0,.08),-9px 0 28px 0 rgba(0,0,0,.05),-12px 0 48px 16px rgba(0,0,0,.03);box-shadow:-6px 0 16px -8px rgba(0,0,0,.08),-9px 0 28px 0 rgba(0,0,0,.05),-12px 0 48px 16px rgba(0,0,0,.03)}.ant-drawer-right.ant-drawer-open.no-mask{right:1px;-webkit-transform:translateX(1px);-moz-transform:translateX(1px);transform:translateX(1px)}.ant-drawer-bottom,.ant-drawer-top{left:0;width:100%;height:0%}.ant-drawer-bottom .ant-drawer-content-wrapper,.ant-drawer-top .ant-drawer-content-wrapper{width:100%}.ant-drawer-bottom.ant-drawer-open,.ant-drawer-top.ant-drawer-open{height:100%;-webkit-transition:-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:-webkit-transform .3s cubic-bezier(.23,1,.32,1);-moz-transition:transform .3s cubic-bezier(.23,1,.32,1),-moz-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1),-moz-transform .3s cubic-bezier(.23,1,.32,1)}.ant-drawer-top{top:0}.ant-drawer-top.ant-drawer-open .ant-drawer-content-wrapper{-webkit-box-shadow:0 6px 16px -8px rgba(0,0,0,.08),0 9px 28px 0 rgba(0,0,0,.05),0 12px 48px 16px rgba(0,0,0,.03);box-shadow:0 6px 16px -8px rgba(0,0,0,.08),0 9px 28px 0 rgba(0,0,0,.05),0 12px 48px 16px rgba(0,0,0,.03)}.ant-drawer-bottom,.ant-drawer-bottom .ant-drawer-content-wrapper{bottom:0}.ant-drawer-bottom.ant-drawer-open .ant-drawer-content-wrapper{-webkit-box-shadow:0 -6px 16px -8px rgba(0,0,0,.08),0 -9px 28px 0 rgba(0,0,0,.05),0 -12px 48px 16px rgba(0,0,0,.03);box-shadow:0 -6px 16px -8px rgba(0,0,0,.08),0 -9px 28px 0 rgba(0,0,0,.05),0 -12px 48px 16px rgba(0,0,0,.03)}.ant-drawer-bottom.ant-drawer-open.no-mask{bottom:1px;-webkit-transform:translateY(1px);-moz-transform:translateY(1px);transform:translateY(1px)}.ant-drawer.ant-drawer-open .ant-drawer-mask{height:100%;opacity:1;-webkit-transition:none;-moz-transition:none;transition:none;-webkit-animation:antdDrawerFadeIn .3s cubic-bezier(.23,1,.32,1);-moz-animation:antdDrawerFadeIn .3s cubic-bezier(.23,1,.32,1);animation:antdDrawerFadeIn .3s cubic-bezier(.23,1,.32,1);pointer-events:auto}.ant-drawer-title{-moz-box-flex:1;flex:1 1;margin:0;color:rgba(0,0,0,.85);font-weight:500;font-size:16px;line-height:22px}.ant-drawer-content{position:relative;z-index:1;overflow:auto;background-color:#fff;background-clip:padding-box;border:0}.ant-drawer-close{display:inline-block;margin-right:12px;color:rgba(0,0,0,.45);font-weight:700;font-size:16px;font-style:normal;line-height:1;text-align:center;text-transform:none;text-decoration:none;background:transparent;border:0;outline:0;cursor:pointer;-webkit-transition:color .3s;-moz-transition:color .3s;transition:color .3s;text-rendering:auto}.ant-drawer-close:focus,.ant-drawer-close:hover{color:rgba(0,0,0,.75);text-decoration:none}.ant-drawer-header{position:relative;padding:16px 24px;color:rgba(0,0,0,.85);background:#fff;border-bottom:1px solid #f0f0f0;border-radius:2px 2px 0 0}.ant-drawer-header,.ant-drawer-header-title{display:-moz-box;display:flex;-moz-box-align:center;align-items:center;-moz-box-pack:justify;justify-content:space-between}.ant-drawer-header-title{-moz-box-flex:1;flex:1 1}.ant-drawer-header-close-only{padding-bottom:0;border:none}.ant-drawer-wrapper-body{display:-moz-box;display:flex;-moz-box-orient:vertical;-moz-box-direction:normal;flex-flow:column nowrap;width:100%;height:100%}.ant-drawer-body{-moz-box-flex:1;flex-grow:1;padding:24px;overflow:auto;font-size:14px;line-height:1.5715;word-wrap:break-word}.ant-drawer-footer{flex-shrink:0;padding:10px 16px;border-top:1px solid #f0f0f0}.ant-drawer-mask{position:absolute;top:0;left:0;width:100%;height:0;background-color:rgba(0,0,0,.45);opacity:0;-webkit-transition:opacity .3s linear,height 0s ease .3s;-moz-transition:opacity .3s linear,height 0s ease .3s;transition:opacity .3s linear,height 0s ease .3s;pointer-events:none}.ant-drawer .ant-picker-clear{background:#fff}@-webkit-keyframes antdDrawerFadeIn{0%{opacity:0}to{opacity:1}}@-moz-keyframes antdDrawerFadeIn{0%{opacity:0}to{opacity:1}}@keyframes antdDrawerFadeIn{0%{opacity:0}to{opacity:1}}.ant-drawer-rtl{direction:rtl}.ant-drawer-rtl .ant-drawer-close{margin-right:0;margin-left:12px}.ant-form-item .ant-upload{background:transparent}.ant-form-item .ant-upload.ant-upload-drag{background:#fafafa}.ant-form-item input[type=checkbox],.ant-form-item input[type=radio]{width:14px;height:14px}.ant-form-item .ant-checkbox-inline,.ant-form-item .ant-radio-inline{display:inline-block;margin-left:8px;font-weight:400;vertical-align:middle;cursor:pointer}.ant-form-item .ant-checkbox-inline:first-child,.ant-form-item .ant-radio-inline:first-child{margin-left:0}.ant-form-item .ant-checkbox-vertical,.ant-form-item .ant-radio-vertical{display:block}.ant-form-item .ant-checkbox-vertical+.ant-checkbox-vertical,.ant-form-item .ant-radio-vertical+.ant-radio-vertical{margin-left:0}.ant-form-item .ant-input-number+.ant-form-text{margin-left:8px}.ant-form-item .ant-input-number-handler-wrap{z-index:2}.ant-form-item .ant-cascader-picker,.ant-form-item .ant-select{width:100%}.ant-form-item .ant-input-group .ant-cascader-picker,.ant-form-item .ant-input-group .ant-select,.ant-form-item .ant-input-number-group .ant-cascader-picker,.ant-form-item .ant-input-number-group .ant-select,.ant-form-item .ant-picker-calendar-month-select,.ant-form-item .ant-picker-calendar-year-select{width:auto}.ant-form-inline{display:-moz-box;display:flex;flex-wrap:wrap}.ant-form-inline .ant-form-item{-moz-box-flex:0;flex:none;flex-wrap:nowrap;margin-right:16px;margin-bottom:0}.ant-form-inline .ant-form-item-with-help{margin-bottom:24px}.ant-form-inline .ant-form-item>.ant-form-item-control,.ant-form-inline .ant-form-item>.ant-form-item-label{display:inline-block;vertical-align:top}.ant-form-inline .ant-form-item>.ant-form-item-label{-moz-box-flex:0;flex:none}.ant-form-inline .ant-form-item .ant-form-item-has-feedback,.ant-form-inline .ant-form-item .ant-form-text{display:inline-block}.ant-form-horizontal .ant-form-item-label{-moz-box-flex:0;flex-grow:0}.ant-form-horizontal .ant-form-item-control{-moz-box-flex:1;flex:1 1}.ant-form-horizontal .ant-form-item-control:not(.ant-col){min-width:0}.ant-form-vertical .ant-form-item{-moz-box-orient:vertical;-moz-box-direction:normal;flex-direction:column}.ant-form-vertical .ant-form-item-label>label{height:auto}.ant-col-24.ant-form-item-label,.ant-col-xl-24.ant-form-item-label,.ant-form-vertical .ant-form-item-label{padding:0 0 8px;line-height:1.5715;white-space:normal;text-align:left}.ant-col-24.ant-form-item-label>label,.ant-col-xl-24.ant-form-item-label>label,.ant-form-vertical .ant-form-item-label>label{margin:0}.ant-col-24.ant-form-item-label>label:after,.ant-col-xl-24.ant-form-item-label>label:after,.ant-form-vertical .ant-form-item-label>label:after{display:none}.ant-form-rtl.ant-col-24.ant-form-item-label,.ant-form-rtl.ant-col-xl-24.ant-form-item-label,.ant-form-rtl.ant-form-vertical .ant-form-item-label{text-align:right}@media (max-width:575px){.ant-form-item .ant-form-item-label{padding:0 0 8px;line-height:1.5715;white-space:normal;text-align:left}.ant-form-item .ant-form-item-label>label{margin:0}.ant-form-item .ant-form-item-label>label:after{display:none}.ant-form-rtl.ant-form-item .ant-form-item-label{text-align:right}.ant-form .ant-form-item{flex-wrap:wrap}.ant-form .ant-form-item .ant-form-item-control,.ant-form .ant-form-item .ant-form-item-label{-moz-box-flex:0;flex:0 0 100%;max-width:100%}.ant-col-xs-24.ant-form-item-label{padding:0 0 8px;line-height:1.5715;white-space:normal;text-align:left}.ant-col-xs-24.ant-form-item-label>label{margin:0}.ant-col-xs-24.ant-form-item-label>label:after{display:none}.ant-form-rtl.ant-col-xs-24.ant-form-item-label{text-align:right}}@media (max-width:767px){.ant-col-sm-24.ant-form-item-label{padding:0 0 8px;line-height:1.5715;white-space:normal;text-align:left}.ant-col-sm-24.ant-form-item-label>label{margin:0}.ant-col-sm-24.ant-form-item-label>label:after{display:none}.ant-form-rtl.ant-col-sm-24.ant-form-item-label{text-align:right}}@media (max-width:991px){.ant-col-md-24.ant-form-item-label{padding:0 0 8px;line-height:1.5715;white-space:normal;text-align:left}.ant-col-md-24.ant-form-item-label>label{margin:0}.ant-col-md-24.ant-form-item-label>label:after{display:none}.ant-form-rtl.ant-col-md-24.ant-form-item-label{text-align:right}}@media (max-width:1199px){.ant-col-lg-24.ant-form-item-label{padding:0 0 8px;line-height:1.5715;white-space:normal;text-align:left}.ant-col-lg-24.ant-form-item-label>label{margin:0}.ant-col-lg-24.ant-form-item-label>label:after{display:none}.ant-form-rtl.ant-col-lg-24.ant-form-item-label{text-align:right}}@media (max-width:1599px){.ant-col-xl-24.ant-form-item-label{padding:0 0 8px;line-height:1.5715;white-space:normal;text-align:left}.ant-col-xl-24.ant-form-item-label>label{margin:0}.ant-col-xl-24.ant-form-item-label>label:after{display:none}.ant-form-rtl.ant-col-xl-24.ant-form-item-label{text-align:right}}.ant-form-item-explain-error{color:#ff4d4f}.ant-form-item-explain-warning{color:#faad14}.ant-form-item-has-feedback .ant-input{padding-right:24px}.ant-form-item-has-feedback .ant-input-affix-wrapper .ant-input-suffix{padding-right:18px}.ant-form-item-has-feedback .ant-input-search:not(.ant-input-search-enter-button) .ant-input-suffix{right:28px}.ant-form-item-has-feedback .ant-switch{margin:2px 0 4px}.ant-form-item-has-feedback :not(.ant-input-group-addon)>.ant-select .ant-select-arrow,.ant-form-item-has-feedback :not(.ant-input-group-addon)>.ant-select .ant-select-clear,.ant-form-item-has-feedback :not(.ant-input-number-group-addon)>.ant-select .ant-select-arrow,.ant-form-item-has-feedback :not(.ant-input-number-group-addon)>.ant-select .ant-select-clear,.ant-form-item-has-feedback>.ant-select .ant-select-arrow,.ant-form-item-has-feedback>.ant-select .ant-select-clear{right:32px}.ant-form-item-has-feedback :not(.ant-input-group-addon)>.ant-select .ant-select-selection-selected-value,.ant-form-item-has-feedback :not(.ant-input-number-group-addon)>.ant-select .ant-select-selection-selected-value,.ant-form-item-has-feedback>.ant-select .ant-select-selection-selected-value{padding-right:42px}.ant-form-item-has-feedback .ant-cascader-picker-arrow{margin-right:19px}.ant-form-item-has-feedback .ant-cascader-picker-clear{right:32px}.ant-form-item-has-feedback .ant-picker,.ant-form-item-has-feedback .ant-picker-large{padding-right:29.2px}.ant-form-item-has-feedback .ant-picker-small{padding-right:25.2px}.ant-form-item-has-feedback.ant-form-item-has-error .ant-form-item-children-icon,.ant-form-item-has-feedback.ant-form-item-has-success .ant-form-item-children-icon,.ant-form-item-has-feedback.ant-form-item-has-warning .ant-form-item-children-icon,.ant-form-item-has-feedback.ant-form-item-is-validating .ant-form-item-children-icon{position:absolute;top:50%;right:0;z-index:1;width:32px;height:20px;margin-top:-10px;font-size:14px;line-height:20px;text-align:center;visibility:visible;-webkit-animation:zoomIn .3s cubic-bezier(.12,.4,.29,1.46);-moz-animation:zoomIn .3s cubic-bezier(.12,.4,.29,1.46);animation:zoomIn .3s cubic-bezier(.12,.4,.29,1.46);pointer-events:none}.ant-form-item-has-success.ant-form-item-has-feedback .ant-form-item-children-icon{color:#52c41a;-webkit-animation-name:diffZoomIn1!important;-moz-animation-name:diffZoomIn1!important;animation-name:diffZoomIn1!important}.ant-form-item-has-warning .ant-form-item-split{color:#faad14}.ant-form-item-has-warning :not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper,.ant-form-item-has-warning :not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper:hover,.ant-form-item-has-warning :not(.ant-input-disabled):not(.ant-input-borderless).ant-input,.ant-form-item-has-warning :not(.ant-input-disabled):not(.ant-input-borderless).ant-input:hover,.ant-form-item-has-warning :not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper,.ant-form-item-has-warning :not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper:hover{background-color:#fff;border-color:#faad14}.ant-form-item-has-warning .ant-calendar-picker-open .ant-calendar-picker-input,.ant-form-item-has-warning :not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper-focused,.ant-form-item-has-warning :not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper:focus,.ant-form-item-has-warning :not(.ant-input-disabled):not(.ant-input-borderless).ant-input-focused,.ant-form-item-has-warning :not(.ant-input-disabled):not(.ant-input-borderless).ant-input:focus,.ant-form-item-has-warning :not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper-focused,.ant-form-item-has-warning :not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper:focus{border-color:#ffc53d;-webkit-box-shadow:0 0 0 2px rgba(250,173,20,.2);box-shadow:0 0 0 2px rgba(250,173,20,.2);border-right-width:1px!important;outline:0}.ant-form-item-has-warning .ant-input-number-prefix,.ant-form-item-has-warning .ant-input-prefix{color:#faad14}.ant-form-item-has-warning .ant-input-group-addon,.ant-form-item-has-warning .ant-input-number-group-addon{color:#faad14;border-color:#faad14}.ant-form-item-has-warning .has-feedback{color:#faad14}.ant-form-item-has-warning.ant-form-item-has-feedback .ant-form-item-children-icon{color:#faad14;-webkit-animation-name:diffZoomIn3!important;-moz-animation-name:diffZoomIn3!important;animation-name:diffZoomIn3!important}.ant-form-item-has-warning .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input) .ant-select-selector{background-color:#fff;border-color:#faad14!important}.ant-form-item-has-warning .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input).ant-select-focused .ant-select-selector,.ant-form-item-has-warning .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input).ant-select-open .ant-select-selector{border-color:#ffc53d;-webkit-box-shadow:0 0 0 2px rgba(250,173,20,.2);box-shadow:0 0 0 2px rgba(250,173,20,.2);border-right-width:1px!important;outline:0}.ant-form-item-has-warning .ant-input-number,.ant-form-item-has-warning .ant-picker{background-color:#fff;border-color:#faad14}.ant-form-item-has-warning .ant-input-number-focused,.ant-form-item-has-warning .ant-input-number:focus,.ant-form-item-has-warning .ant-picker-focused,.ant-form-item-has-warning .ant-picker:focus{border-color:#ffc53d;-webkit-box-shadow:0 0 0 2px rgba(250,173,20,.2);box-shadow:0 0 0 2px rgba(250,173,20,.2);border-right-width:1px!important;outline:0}.ant-form-item-has-warning .ant-input-number:not([disabled]):hover,.ant-form-item-has-warning .ant-picker:not([disabled]):hover{background-color:#fff;border-color:#faad14}.ant-form-item-has-warning .ant-cascader-picker:focus .ant-cascader-input{border-color:#ffc53d;-webkit-box-shadow:0 0 0 2px rgba(250,173,20,.2);box-shadow:0 0 0 2px rgba(250,173,20,.2);border-right-width:1px!important;outline:0}.ant-form-item-has-error .ant-form-item-split{color:#ff4d4f}.ant-form-item-has-error :not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper,.ant-form-item-has-error :not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper:hover,.ant-form-item-has-error :not(.ant-input-disabled):not(.ant-input-borderless).ant-input,.ant-form-item-has-error :not(.ant-input-disabled):not(.ant-input-borderless).ant-input:hover,.ant-form-item-has-error :not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper,.ant-form-item-has-error :not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper:hover{background-color:#fff;border-color:#ff4d4f}.ant-form-item-has-error .ant-calendar-picker-open .ant-calendar-picker-input,.ant-form-item-has-error :not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper-focused,.ant-form-item-has-error :not(.ant-input-affix-wrapper-disabled):not(.ant-input-affix-wrapper-borderless).ant-input-affix-wrapper:focus,.ant-form-item-has-error :not(.ant-input-disabled):not(.ant-input-borderless).ant-input-focused,.ant-form-item-has-error :not(.ant-input-disabled):not(.ant-input-borderless).ant-input:focus,.ant-form-item-has-error :not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper-focused,.ant-form-item-has-error :not(.ant-input-number-affix-wrapper-disabled):not(.ant-input-number-affix-wrapper-borderless).ant-input-number-affix-wrapper:focus{border-color:#ff7875;-webkit-box-shadow:0 0 0 2px rgba(255,77,79,.2);box-shadow:0 0 0 2px rgba(255,77,79,.2);border-right-width:1px!important;outline:0}.ant-form-item-has-error .ant-input-number-prefix,.ant-form-item-has-error .ant-input-prefix{color:#ff4d4f}.ant-form-item-has-error .ant-input-group-addon,.ant-form-item-has-error .ant-input-number-group-addon{color:#ff4d4f;border-color:#ff4d4f}.ant-form-item-has-error .has-feedback{color:#ff4d4f}.ant-form-item-has-error.ant-form-item-has-feedback .ant-form-item-children-icon{color:#ff4d4f;-webkit-animation-name:diffZoomIn2!important;-moz-animation-name:diffZoomIn2!important;animation-name:diffZoomIn2!important}.ant-form-item-has-error .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input) .ant-select-selector{background-color:#fff;border-color:#ff4d4f!important}.ant-form-item-has-error .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input).ant-select-focused .ant-select-selector,.ant-form-item-has-error .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input).ant-select-open .ant-select-selector{border-color:#ff7875;-webkit-box-shadow:0 0 0 2px rgba(255,77,79,.2);box-shadow:0 0 0 2px rgba(255,77,79,.2);border-right-width:1px!important;outline:0}.ant-form-item-has-error .ant-input-group-addon .ant-select.ant-select-single:not(.ant-select-customize-input) .ant-select-selector,.ant-form-item-has-error .ant-input-number-group-addon .ant-select.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{background-color:inherit;border:0;-webkit-box-shadow:none;box-shadow:none}.ant-form-item-has-error .ant-select.ant-select-auto-complete .ant-input:focus{border-color:#ff4d4f}.ant-form-item-has-error .ant-input-number,.ant-form-item-has-error .ant-picker{background-color:#fff;border-color:#ff4d4f}.ant-form-item-has-error .ant-input-number-focused,.ant-form-item-has-error .ant-input-number:focus,.ant-form-item-has-error .ant-picker-focused,.ant-form-item-has-error .ant-picker:focus{border-color:#ff7875;-webkit-box-shadow:0 0 0 2px rgba(255,77,79,.2);box-shadow:0 0 0 2px rgba(255,77,79,.2);border-right-width:1px!important;outline:0}.ant-form-item-has-error .ant-input-number:not([disabled]):hover,.ant-form-item-has-error .ant-mention-wrapper .ant-mention-editor,.ant-form-item-has-error .ant-mention-wrapper .ant-mention-editor:not([disabled]):hover,.ant-form-item-has-error .ant-picker:not([disabled]):hover{background-color:#fff;border-color:#ff4d4f}.ant-form-item-has-error .ant-mention-wrapper.ant-mention-active:not([disabled]) .ant-mention-editor,.ant-form-item-has-error .ant-mention-wrapper .ant-mention-editor:not([disabled]):focus{border-color:#ff7875;-webkit-box-shadow:0 0 0 2px rgba(255,77,79,.2);box-shadow:0 0 0 2px rgba(255,77,79,.2);border-right-width:1px!important;outline:0}.ant-form-item-has-error .ant-cascader-picker:hover .ant-cascader-picker-label:hover+.ant-cascader-input.ant-input{border-color:#ff4d4f}.ant-form-item-has-error .ant-cascader-picker:focus .ant-cascader-input{background-color:#fff;border-color:#ff7875;-webkit-box-shadow:0 0 0 2px rgba(255,77,79,.2);box-shadow:0 0 0 2px rgba(255,77,79,.2);border-right-width:1px!important;outline:0}.ant-form-item-has-error .ant-transfer-list{border-color:#ff4d4f}.ant-form-item-has-error .ant-transfer-list-search:not([disabled]){border-color:#d9d9d9}.ant-form-item-has-error .ant-transfer-list-search:not([disabled]):hover{border-color:#40a9ff;border-right-width:1px!important}.ant-form-item-has-error .ant-transfer-list-search:not([disabled]):focus{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2);border-right-width:1px!important;outline:0}.ant-form-item-has-error .ant-radio-button-wrapper{border-color:#ff4d4f!important}.ant-form-item-has-error .ant-radio-button-wrapper:not(:first-child):before{background-color:#ff4d4f}.ant-form-item-has-error .ant-mentions{border-color:#ff4d4f!important}.ant-form-item-has-error .ant-mentions-focused,.ant-form-item-has-error .ant-mentions:focus{border-color:#ff7875;-webkit-box-shadow:0 0 0 2px rgba(255,77,79,.2);box-shadow:0 0 0 2px rgba(255,77,79,.2);border-right-width:1px!important;outline:0}.ant-form-item-is-validating.ant-form-item-has-feedback .ant-form-item-children-icon{display:inline-block;color:#1890ff}.ant-form{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum"}.ant-form legend{display:block;width:100%;margin-bottom:20px;padding:0;color:rgba(0,0,0,.45);font-size:16px;line-height:inherit;border:0;border-bottom:1px solid #d9d9d9}.ant-form label{font-size:14px}.ant-form input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.ant-form input[type=checkbox],.ant-form input[type=radio]{line-height:normal}.ant-form input[type=file]{display:block}.ant-form input[type=range]{display:block;width:100%}.ant-form select[multiple],.ant-form select[size]{height:auto}.ant-form input[type=checkbox]:focus,.ant-form input[type=file]:focus,.ant-form input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.ant-form output{display:block;padding-top:15px;color:rgba(0,0,0,.85);font-size:14px;line-height:1.5715}.ant-form .ant-form-text{display:inline-block;padding-right:8px}.ant-form-small .ant-form-item-label>label{height:24px}.ant-form-small .ant-form-item-control-input{min-height:24px}.ant-form-large .ant-form-item-label>label{height:40px}.ant-form-large .ant-form-item-control-input{min-height:40px}.ant-form-item{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";margin:0 0 24px;vertical-align:top;-webkit-transition:margin-bottom .3s linear 17ms;-moz-transition:margin-bottom .3s linear 17ms;transition:margin-bottom .3s linear 17ms}.ant-form-item-with-help{margin-bottom:0;-webkit-transition:none;-moz-transition:none;transition:none}.ant-form-item-hidden,.ant-form-item-hidden.ant-row{display:none}.ant-form-item-label{display:inline-block;-moz-box-flex:0;flex-grow:0;overflow:hidden;white-space:nowrap;text-align:right;vertical-align:middle}.ant-form-item-label-left{text-align:left}.ant-form-item-label-wrap{overflow:unset;line-height:1.3215em;white-space:unset}.ant-form-item-label>label{position:relative;display:-moz-inline-box;display:inline-flex;-moz-box-align:center;align-items:center;max-width:100%;height:32px;color:rgba(0,0,0,.85);font-size:14px}.ant-form-item-label>label>.anticon{font-size:14px;vertical-align:top}.ant-form-item-label>label.ant-form-item-required:not(.ant-form-item-required-mark-optional):before{display:inline-block;margin-right:4px;color:#ff4d4f;font-size:14px;font-family:SimSun,sans-serif;line-height:1;content:"*"}.ant-form-hide-required-mark .ant-form-item-label>label.ant-form-item-required:not(.ant-form-item-required-mark-optional):before{display:none}.ant-form-item-label>label .ant-form-item-optional{display:inline-block;margin-left:4px;color:rgba(0,0,0,.45)}.ant-form-hide-required-mark .ant-form-item-label>label .ant-form-item-optional{display:none}.ant-form-item-label>label .ant-form-item-tooltip{color:rgba(0,0,0,.45);cursor:help;-ms-writing-mode:lr-tb;-webkit-writing-mode:horizontal-tb;writing-mode:horizontal-tb;-webkit-margin-start:4px;-moz-margin-start:4px;margin-inline-start:4px}.ant-form-item-label>label:after{content:":";position:relative;top:-.5px;margin:0 8px 0 2px}.ant-form-item-label>label.ant-form-item-no-colon:after{content:" "}.ant-form-item-control{display:-moz-box;display:flex;-moz-box-orient:vertical;-moz-box-direction:normal;flex-direction:column;-moz-box-flex:1;flex-grow:1}.ant-form-item-control:first-child:not([class^=ant-col-]):not([class*=" ant-col-"]){width:100%}.ant-form-item-control-input{position:relative;display:-moz-box;display:flex;-moz-box-align:center;align-items:center;min-height:32px}.ant-form-item-control-input-content{-moz-box-flex:1;flex:auto;max-width:100%}.ant-form-item-explain,.ant-form-item-extra{clear:both;color:rgba(0,0,0,.45);font-size:14px;line-height:1.5715;-webkit-transition:color .3s cubic-bezier(.215,.61,.355,1);-moz-transition:color .3s cubic-bezier(.215,.61,.355,1);transition:color .3s cubic-bezier(.215,.61,.355,1)}.ant-form-item-explain-connected{height:0;min-height:0;opacity:0}.ant-form-item-extra{min-height:24px}.ant-form-item .ant-input-textarea-show-count:after{margin-bottom:-22px}.ant-form-item-with-help .ant-form-item-explain{height:auto;min-height:24px;opacity:1}.ant-show-help{-webkit-transition:height .3s linear,min-height .3s linear,margin-bottom .3s cubic-bezier(.645,.045,.355,1),opacity .3s cubic-bezier(.645,.045,.355,1);-moz-transition:height .3s linear,min-height .3s linear,margin-bottom .3s cubic-bezier(.645,.045,.355,1),opacity .3s cubic-bezier(.645,.045,.355,1);transition:height .3s linear,min-height .3s linear,margin-bottom .3s cubic-bezier(.645,.045,.355,1),opacity .3s cubic-bezier(.645,.045,.355,1)}.ant-show-help-leave{min-height:24px}.ant-show-help-leave-active{min-height:0}.ant-show-help-item{overflow:hidden;-webkit-transition:height .3s cubic-bezier(.645,.045,.355,1),opacity .3s cubic-bezier(.645,.045,.355,1),-webkit-transform .3s cubic-bezier(.645,.045,.355,1)!important;transition:height .3s cubic-bezier(.645,.045,.355,1),opacity .3s cubic-bezier(.645,.045,.355,1),-webkit-transform .3s cubic-bezier(.645,.045,.355,1)!important;-moz-transition:height .3s cubic-bezier(.645,.045,.355,1),opacity .3s cubic-bezier(.645,.045,.355,1),transform .3s cubic-bezier(.645,.045,.355,1),-moz-transform .3s cubic-bezier(.645,.045,.355,1)!important;transition:height .3s cubic-bezier(.645,.045,.355,1),opacity .3s cubic-bezier(.645,.045,.355,1),transform .3s cubic-bezier(.645,.045,.355,1)!important;transition:height .3s cubic-bezier(.645,.045,.355,1),opacity .3s cubic-bezier(.645,.045,.355,1),transform .3s cubic-bezier(.645,.045,.355,1),-webkit-transform .3s cubic-bezier(.645,.045,.355,1),-moz-transform .3s cubic-bezier(.645,.045,.355,1)!important}.ant-show-help-item-appear,.ant-show-help-item-enter{-webkit-transform:translateY(-5px);-moz-transform:translateY(-5px);transform:translateY(-5px);opacity:0}.ant-show-help-item-appear-active,.ant-show-help-item-enter-active{-webkit-transform:translateY(0);-moz-transform:translateY(0);transform:translateY(0);opacity:1}.ant-show-help-item-leave-active{-webkit-transform:translateY(-5px);-moz-transform:translateY(-5px);transform:translateY(-5px)}@-webkit-keyframes diffZoomIn1{0%{-webkit-transform:scale(0);transform:scale(0);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-moz-keyframes diffZoomIn1{0%{-moz-transform:scale(0);transform:scale(0);opacity:0}to{-moz-transform:scale(1);transform:scale(1);opacity:1}}@keyframes diffZoomIn1{0%{-webkit-transform:scale(0);-moz-transform:scale(0);transform:scale(0);opacity:0}to{-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes diffZoomIn2{0%{-webkit-transform:scale(0);transform:scale(0);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-moz-keyframes diffZoomIn2{0%{-moz-transform:scale(0);transform:scale(0);opacity:0}to{-moz-transform:scale(1);transform:scale(1);opacity:1}}@keyframes diffZoomIn2{0%{-webkit-transform:scale(0);-moz-transform:scale(0);transform:scale(0);opacity:0}to{-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes diffZoomIn3{0%{-webkit-transform:scale(0);transform:scale(0);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-moz-keyframes diffZoomIn3{0%{-moz-transform:scale(0);transform:scale(0);opacity:0}to{-moz-transform:scale(1);transform:scale(1);opacity:1}}@keyframes diffZoomIn3{0%{-webkit-transform:scale(0);-moz-transform:scale(0);transform:scale(0);opacity:0}to{-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1);opacity:1}}.ant-form-rtl{direction:rtl}.ant-form-rtl .ant-form-item-label{text-align:left}.ant-form-rtl .ant-form-item-label>label.ant-form-item-required:before{margin-right:0;margin-left:4px}.ant-form-rtl .ant-form-item-label>label:after{margin:0 2px 0 8px}.ant-form-rtl .ant-form-item-label>label .ant-form-item-optional{margin-right:4px;margin-left:0}.ant-col-rtl .ant-form-item-control:first-child{width:100%}.ant-form-rtl .ant-form-item-has-feedback .ant-input{padding-right:11px;padding-left:24px}.ant-form-rtl .ant-form-item-has-feedback .ant-input-affix-wrapper .ant-input-suffix{padding-right:11px;padding-left:18px}.ant-form-rtl .ant-form-item-has-feedback .ant-input-affix-wrapper .ant-input,.ant-form-rtl .ant-form-item-has-feedback .ant-input-number-affix-wrapper .ant-input-number{padding:0}.ant-form-rtl .ant-form-item-has-feedback .ant-input-search:not(.ant-input-search-enter-button) .ant-input-suffix{right:auto;left:28px}.ant-form-rtl .ant-form-item-has-feedback .ant-input-number{padding-left:18px}.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-group-addon)>.ant-select .ant-select-arrow,.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-group-addon)>.ant-select .ant-select-clear,.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-number-group-addon)>.ant-select .ant-select-arrow,.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-number-group-addon)>.ant-select .ant-select-clear,.ant-form-rtl .ant-form-item-has-feedback>.ant-select .ant-select-arrow,.ant-form-rtl .ant-form-item-has-feedback>.ant-select .ant-select-clear{right:auto;left:32px}.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-group-addon)>.ant-select .ant-select-selection-selected-value,.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-number-group-addon)>.ant-select .ant-select-selection-selected-value,.ant-form-rtl .ant-form-item-has-feedback>.ant-select .ant-select-selection-selected-value{padding-right:0;padding-left:42px}.ant-form-rtl .ant-form-item-has-feedback .ant-cascader-picker-arrow{margin-right:0;margin-left:19px}.ant-form-rtl .ant-form-item-has-feedback .ant-cascader-picker-clear{right:auto;left:32px}.ant-form-rtl .ant-form-item-has-feedback .ant-picker,.ant-form-rtl .ant-form-item-has-feedback .ant-picker-large{padding-right:11px;padding-left:29.2px}.ant-form-rtl .ant-form-item-has-feedback .ant-picker-small{padding-right:7px;padding-left:25.2px}.ant-form-rtl .ant-form-item-has-feedback.ant-form-item-has-error .ant-form-item-children-icon,.ant-form-rtl .ant-form-item-has-feedback.ant-form-item-has-success .ant-form-item-children-icon,.ant-form-rtl .ant-form-item-has-feedback.ant-form-item-has-warning .ant-form-item-children-icon,.ant-form-rtl .ant-form-item-has-feedback.ant-form-item-is-validating .ant-form-item-children-icon{right:auto;left:0}.ant-form-rtl.ant-form-inline .ant-form-item{margin-right:0;margin-left:16px}.ant-image{position:relative;display:inline-block}.ant-image-img{display:block;width:100%;height:auto}.ant-image-img-placeholder{background-color:#f5f5f5;background-image:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTQuNSAyLjVoLTEzQS41LjUgMCAwIDAgMSAzdjEwYS41LjUgMCAwIDAgLjUuNWgxM2EuNS41IDAgMCAwIC41LS41VjNhLjUuNSAwIDAgMC0uNS0uNXpNNS4yODEgNC43NWExIDEgMCAwIDEgMCAyIDEgMSAwIDAgMSAwLTJ6bTguMDMgNi44M2EuMTI3LjEyNyAwIDAgMS0uMDgxLjAzSDIuNzY5YS4xMjUuMTI1IDAgMCAxLS4wOTYtLjIwN2wyLjY2MS0zLjE1NmEuMTI2LjEyNiAwIDAgMSAuMTc3LS4wMTZsLjAxNi4wMTZMNy4wOCAxMC4wOWwyLjQ3LTIuOTNhLjEyNi4xMjYgMCAwIDEgLjE3Ny0uMDE2bC4wMTUuMDE2IDMuNTg4IDQuMjQ0YS4xMjcuMTI3IDAgMCAxLS4wMi4xNzV6IiBmaWxsPSIjOEM4QzhDIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48L3N2Zz4=");background-repeat:no-repeat;background-position:50%;background-size:30%}.ant-image-mask{position:absolute;top:0;right:0;bottom:0;left:0;display:-moz-box;display:flex;-moz-box-align:center;align-items:center;-moz-box-pack:center;justify-content:center;color:#fff;background:rgba(0,0,0,.5);cursor:pointer;opacity:0;-webkit-transition:opacity .3s;-moz-transition:opacity .3s;transition:opacity .3s}.ant-image-mask-info{padding:0 4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ant-image-mask-info .anticon{-webkit-margin-end:4px;-moz-margin-end:4px;margin-inline-end:4px}.ant-image-mask:hover{opacity:1}.ant-image-placeholder{position:absolute;top:0;right:0;bottom:0;left:0}.ant-image-preview{pointer-events:none;height:100%;text-align:center}.ant-image-preview.ant-zoom-enter,.ant-image-preview.antzoom-appear{-webkit-transform:none;-moz-transform:none;transform:none;opacity:0;-webkit-animation-duration:.3s;-moz-animation-duration:.3s;animation-duration:.3s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-image-preview-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;height:100%;background-color:rgba(0,0,0,.45)}.ant-image-preview-mask-hidden{display:none}.ant-image-preview-wrap{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;outline:0;-webkit-overflow-scrolling:touch}.ant-image-preview-body{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.ant-image-preview-img{max-width:100%;max-height:100%;vertical-align:middle;-webkit-transform:scaleX(1);-moz-transform:scaleX(1);transform:scaleX(1);cursor:-webkit-grab;cursor:-moz-grab;cursor:grab;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:auto}.ant-image-preview-img,.ant-image-preview-img-wrapper{-webkit-transition:-webkit-transform .3s cubic-bezier(.215,.61,.355,1) 0s;transition:-webkit-transform .3s cubic-bezier(.215,.61,.355,1) 0s;-moz-transition:transform .3s cubic-bezier(.215,.61,.355,1) 0s,-moz-transform .3s cubic-bezier(.215,.61,.355,1) 0s;transition:transform .3s cubic-bezier(.215,.61,.355,1) 0s;transition:transform .3s cubic-bezier(.215,.61,.355,1) 0s,-webkit-transform .3s cubic-bezier(.215,.61,.355,1) 0s,-moz-transform .3s cubic-bezier(.215,.61,.355,1) 0s}.ant-image-preview-img-wrapper{position:absolute;top:0;right:0;bottom:0;left:0}.ant-image-preview-img-wrapper:before{display:inline-block;width:1px;height:50%;margin-right:-1px;content:""}.ant-image-preview-moving .ant-image-preview-img{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.ant-image-preview-moving .ant-image-preview-img-wrapper{-webkit-transition-duration:0s;-moz-transition-duration:0s;transition-duration:0s}.ant-image-preview-wrap{z-index:1080}.ant-image-preview-operations{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";position:absolute;top:0;right:0;z-index:1;display:-moz-box;display:flex;-moz-box-orient:horizontal;-moz-box-direction:reverse;flex-direction:row-reverse;-moz-box-align:center;align-items:center;width:100%;color:hsla(0,0%,100%,.85);list-style:none;background:rgba(0,0,0,.1);pointer-events:auto}.ant-image-preview-operations-operation{margin-left:12px;padding:12px;cursor:pointer}.ant-image-preview-operations-operation-disabled{color:hsla(0,0%,100%,.25);pointer-events:none}.ant-image-preview-operations-operation:last-of-type{margin-left:0}.ant-image-preview-operations-icon{font-size:18px}.ant-image-preview-switch-left,.ant-image-preview-switch-right{position:absolute;top:50%;right:10px;z-index:1;display:-moz-box;display:flex;-moz-box-align:center;align-items:center;-moz-box-pack:center;justify-content:center;width:44px;height:44px;margin-top:-22px;color:hsla(0,0%,100%,.85);background:rgba(0,0,0,.1);border-radius:50%;cursor:pointer;pointer-events:auto}.ant-image-preview-switch-left-disabled,.ant-image-preview-switch-right-disabled{color:hsla(0,0%,100%,.25);cursor:not-allowed}.ant-image-preview-switch-left-disabled>.anticon,.ant-image-preview-switch-right-disabled>.anticon{cursor:not-allowed}.ant-image-preview-switch-left>.anticon,.ant-image-preview-switch-right>.anticon{font-size:18px}.ant-image-preview-switch-left{left:10px}.ant-image-preview-switch-right{right:10px}.ant-input-number-affix-wrapper{position:relative;display:inline-block;width:100%;min-width:0;color:rgba(0,0,0,.85);font-size:14px;line-height:1.5715;background-color:#fff;background-image:none;border:1px solid #d9d9d9;border-radius:2px;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s;position:static;display:-moz-inline-box;display:inline-flex;width:90px;padding:0;-webkit-padding-start:11px;-moz-padding-start:11px;padding-inline-start:11px}.ant-input-number-affix-wrapper:-ms-input-placeholder{color:#bfbfbf;-ms-user-select:none;user-select:none}.ant-input-number-affix-wrapper::-webkit-input-placeholder{color:#bfbfbf;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-input-number-affix-wrapper::placeholder{color:#bfbfbf;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-input-number-affix-wrapper:-moz-placeholder-shown{text-overflow:ellipsis}.ant-input-number-affix-wrapper:-ms-input-placeholder{text-overflow:ellipsis}.ant-input-number-affix-wrapper:placeholder-shown{text-overflow:ellipsis}.ant-input-number-affix-wrapper:hover{border-color:#40a9ff;border-right-width:1px!important}.ant-input-number-affix-wrapper-focused,.ant-input-number-affix-wrapper:focus{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2);border-right-width:1px!important;outline:0}.ant-input-number-affix-wrapper-disabled{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;-webkit-box-shadow:none;box-shadow:none;cursor:not-allowed;opacity:1}.ant-input-number-affix-wrapper-disabled:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-input-number-affix-wrapper[disabled]{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;-webkit-box-shadow:none;box-shadow:none;cursor:not-allowed;opacity:1}.ant-input-number-affix-wrapper[disabled]:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-input-number-affix-wrapper-borderless,.ant-input-number-affix-wrapper-borderless-disabled,.ant-input-number-affix-wrapper-borderless-focused,.ant-input-number-affix-wrapper-borderless:focus,.ant-input-number-affix-wrapper-borderless:hover,.ant-input-number-affix-wrapper-borderless[disabled]{background-color:transparent;border:none;-webkit-box-shadow:none;box-shadow:none}textarea.ant-input-number-affix-wrapper{max-width:100%;height:auto;min-height:32px;line-height:1.5715;vertical-align:bottom;-webkit-transition:all .3s,height 0s;-moz-transition:all .3s,height 0s;transition:all .3s,height 0s}.ant-input-number-affix-wrapper-lg{padding:6.5px 11px;font-size:16px}.ant-input-number-affix-wrapper-sm{padding:0 7px}.ant-input-number-affix-wrapper:not(.ant-input-number-affix-wrapper-disabled):hover{border-color:#40a9ff;border-right-width:1px!important;z-index:1}.ant-input-number-affix-wrapper-focused,.ant-input-number-affix-wrapper:focus{z-index:1}.ant-input-number-affix-wrapper-disabled .ant-input-number[disabled]{background:transparent}.ant-input-number-affix-wrapper>div.ant-input-number{width:100%;border:none;outline:none}.ant-input-number-affix-wrapper>div.ant-input-number.ant-input-number-focused{-webkit-box-shadow:none!important;box-shadow:none!important}.ant-input-number-affix-wrapper input.ant-input-number-input{padding:0}.ant-input-number-affix-wrapper:before{width:0;visibility:hidden;content:"\a0"}.ant-input-number-prefix{display:-moz-box;display:flex;-moz-box-flex:0;flex:none;-moz-box-align:center;align-items:center;-webkit-margin-end:4px;-moz-margin-end:4px;margin-inline-end:4px}.ant-input-number-group-wrapper .ant-input-number-affix-wrapper{width:100%}.ant-input-number{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;font-variant:tabular-nums;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";position:relative;width:100%;min-width:0;color:rgba(0,0,0,.85);font-size:14px;line-height:1.5715;background-color:#fff;background-image:none;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s;display:inline-block;width:90px;margin:0;padding:0;border:1px solid #d9d9d9;border-radius:2px}.ant-input-number:-ms-input-placeholder{color:#bfbfbf;-ms-user-select:none;user-select:none}.ant-input-number::-webkit-input-placeholder{color:#bfbfbf;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-input-number::placeholder{color:#bfbfbf;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-input-number:-moz-placeholder-shown{text-overflow:ellipsis}.ant-input-number:-ms-input-placeholder{text-overflow:ellipsis}.ant-input-number:placeholder-shown{text-overflow:ellipsis}.ant-input-number-focused,.ant-input-number:focus{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2);border-right-width:1px!important;outline:0}.ant-input-number[disabled]{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;-webkit-box-shadow:none;box-shadow:none;cursor:not-allowed;opacity:1}.ant-input-number[disabled]:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-input-number-borderless,.ant-input-number-borderless-disabled,.ant-input-number-borderless-focused,.ant-input-number-borderless:focus,.ant-input-number-borderless:hover,.ant-input-number-borderless[disabled]{background-color:transparent;border:none;-webkit-box-shadow:none;box-shadow:none}textarea.ant-input-number{max-width:100%;height:auto;min-height:32px;line-height:1.5715;vertical-align:bottom;-webkit-transition:all .3s,height 0s;-moz-transition:all .3s,height 0s;transition:all .3s,height 0s}.ant-input-number-lg{padding:6.5px 11px}.ant-input-number-sm{padding:0 7px}.ant-input-number-group{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";position:relative;display:table;width:100%;border-collapse:separate;border-spacing:0}.ant-input-number-group[class*=col-]{float:none;padding-right:0;padding-left:0}.ant-input-number-group>[class*=col-]{padding-right:8px}.ant-input-number-group>[class*=col-]:last-child{padding-right:0}.ant-input-number-group-addon,.ant-input-number-group-wrap,.ant-input-number-group>.ant-input-number{display:table-cell}.ant-input-number-group-addon:not(:first-child):not(:last-child),.ant-input-number-group-wrap:not(:first-child):not(:last-child),.ant-input-number-group>.ant-input-number:not(:first-child):not(:last-child){border-radius:0}.ant-input-number-group-addon,.ant-input-number-group-wrap{width:1px;white-space:nowrap;vertical-align:middle}.ant-input-number-group-wrap>*{display:block!important}.ant-input-number-group .ant-input-number{float:left;width:100%;margin-bottom:0;text-align:inherit}.ant-input-number-group .ant-input-number:focus,.ant-input-number-group .ant-input-number:hover{z-index:1;border-right-width:1px}.ant-input-search-with-button .ant-input-number-group .ant-input-number:hover{z-index:0}.ant-input-number-group-addon{position:relative;padding:0 11px;color:rgba(0,0,0,.85);font-weight:400;font-size:14px;text-align:center;background-color:#fafafa;border:1px solid #d9d9d9;border-radius:2px;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s}.ant-input-number-group-addon .ant-select{margin:-5px -11px}.ant-input-number-group-addon .ant-select.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{background-color:inherit;border:1px solid transparent;-webkit-box-shadow:none;box-shadow:none}.ant-input-number-group-addon .ant-select-focused .ant-select-selector,.ant-input-number-group-addon .ant-select-open .ant-select-selector{color:#1890ff}.ant-input-number-group-addon .ant-cascader-picker{margin:-9px -12px;background-color:transparent}.ant-input-number-group-addon .ant-cascader-picker .ant-cascader-input{text-align:left;border:0;-webkit-box-shadow:none;box-shadow:none}.ant-input-number-group-addon:first-child,.ant-input-number-group-addon:first-child .ant-select .ant-select-selector,.ant-input-number-group>.ant-input-number:first-child,.ant-input-number-group>.ant-input-number:first-child .ant-select .ant-select-selector{border-top-right-radius:0;border-bottom-right-radius:0}.ant-input-number-group>.ant-input-number-affix-wrapper:not(:first-child) .ant-input-number{border-top-left-radius:0;border-bottom-left-radius:0}.ant-input-number-group>.ant-input-number-affix-wrapper:not(:last-child) .ant-input-number{border-top-right-radius:0;border-bottom-right-radius:0}.ant-input-number-group-addon:first-child{border-right:0}.ant-input-number-group-addon:last-child{border-left:0}.ant-input-number-group-addon:last-child,.ant-input-number-group-addon:last-child .ant-select .ant-select-selector,.ant-input-number-group>.ant-input-number:last-child,.ant-input-number-group>.ant-input-number:last-child .ant-select .ant-select-selector{border-top-left-radius:0;border-bottom-left-radius:0}.ant-input-number-group-lg .ant-input-number,.ant-input-number-group-lg>.ant-input-number-group-addon{padding:6.5px 11px;font-size:16px}.ant-input-number-group-sm .ant-input-number,.ant-input-number-group-sm>.ant-input-number-group-addon{padding:0 7px}.ant-input-number-group-lg .ant-select-single .ant-select-selector{height:40px}.ant-input-number-group-sm .ant-select-single .ant-select-selector{height:24px}.ant-input-number-group .ant-input-number-affix-wrapper:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.ant-input-search .ant-input-number-group .ant-input-number-affix-wrapper:not(:last-child){border-top-left-radius:2px;border-bottom-left-radius:2px}.ant-input-number-group .ant-input-number-affix-wrapper:not(:first-child),.ant-input-search .ant-input-number-group .ant-input-number-affix-wrapper:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.ant-input-number-group.ant-input-number-group-compact{display:block}.ant-input-number-group.ant-input-number-group-compact:before{display:table;content:""}.ant-input-number-group.ant-input-number-group-compact:after{display:table;clear:both;content:""}.ant-input-number-group.ant-input-number-group-compact-addon:not(:first-child):not(:last-child),.ant-input-number-group.ant-input-number-group-compact-wrap:not(:first-child):not(:last-child),.ant-input-number-group.ant-input-number-group-compact>.ant-input-number:not(:first-child):not(:last-child){border-right-width:1px}.ant-input-number-group.ant-input-number-group-compact-addon:not(:first-child):not(:last-child):focus,.ant-input-number-group.ant-input-number-group-compact-addon:not(:first-child):not(:last-child):hover,.ant-input-number-group.ant-input-number-group-compact-wrap:not(:first-child):not(:last-child):focus,.ant-input-number-group.ant-input-number-group-compact-wrap:not(:first-child):not(:last-child):hover,.ant-input-number-group.ant-input-number-group-compact>.ant-input-number:not(:first-child):not(:last-child):focus,.ant-input-number-group.ant-input-number-group-compact>.ant-input-number:not(:first-child):not(:last-child):hover{z-index:1}.ant-input-number-group.ant-input-number-group-compact>*{display:inline-block;float:none;vertical-align:top;border-radius:0}.ant-input-number-group.ant-input-number-group-compact>.ant-input-number-affix-wrapper,.ant-input-number-group.ant-input-number-group-compact>.ant-picker-range{display:-moz-inline-box;display:inline-flex}.ant-input-number-group.ant-input-number-group-compact>:not(:last-child){margin-right:-1px;border-right-width:1px}.ant-input-number-group.ant-input-number-group-compact .ant-input-number{float:none}.ant-input-number-group.ant-input-number-group-compact>.ant-cascader-picker .ant-input,.ant-input-number-group.ant-input-number-group-compact>.ant-input-group-wrapper .ant-input,.ant-input-number-group.ant-input-number-group-compact>.ant-select-auto-complete .ant-input,.ant-input-number-group.ant-input-number-group-compact>.ant-select>.ant-select-selector{border-right-width:1px;border-radius:0}.ant-input-number-group.ant-input-number-group-compact>.ant-cascader-picker .ant-input:focus,.ant-input-number-group.ant-input-number-group-compact>.ant-cascader-picker .ant-input:hover,.ant-input-number-group.ant-input-number-group-compact>.ant-input-group-wrapper .ant-input:focus,.ant-input-number-group.ant-input-number-group-compact>.ant-input-group-wrapper .ant-input:hover,.ant-input-number-group.ant-input-number-group-compact>.ant-select-auto-complete .ant-input:focus,.ant-input-number-group.ant-input-number-group-compact>.ant-select-auto-complete .ant-input:hover,.ant-input-number-group.ant-input-number-group-compact>.ant-select-focused,.ant-input-number-group.ant-input-number-group-compact>.ant-select>.ant-select-arrow,.ant-input-number-group.ant-input-number-group-compact>.ant-select>.ant-select-selector:focus,.ant-input-number-group.ant-input-number-group-compact>.ant-select>.ant-select-selector:hover{z-index:1}.ant-input-number-group.ant-input-number-group-compact>.ant-cascader-picker:first-child .ant-input,.ant-input-number-group.ant-input-number-group-compact>.ant-select-auto-complete:first-child .ant-input,.ant-input-number-group.ant-input-number-group-compact>.ant-select:first-child>.ant-select-selector,.ant-input-number-group.ant-input-number-group-compact>:first-child{border-top-left-radius:2px;border-bottom-left-radius:2px}.ant-input-number-group.ant-input-number-group-compact>.ant-cascader-picker-focused:last-child .ant-input,.ant-input-number-group.ant-input-number-group-compact>.ant-cascader-picker:last-child .ant-input,.ant-input-number-group.ant-input-number-group-compact>.ant-select:last-child>.ant-select-selector,.ant-input-number-group.ant-input-number-group-compact>:last-child{border-right-width:1px;border-top-right-radius:2px;border-bottom-right-radius:2px}.ant-input-number-group.ant-input-number-group-compact>.ant-select-auto-complete .ant-input{vertical-align:top}.ant-input-number-group.ant-input-number-group-compact .ant-input-group-wrapper+.ant-input-group-wrapper{margin-left:-1px}.ant-input-number-group.ant-input-number-group-compact .ant-input-group-wrapper+.ant-input-group-wrapper .ant-input-affix-wrapper,.ant-input-number-group.ant-input-number-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search>.ant-input-group>.ant-input-group-addon>.ant-input-search-button{border-radius:0}.ant-input-number-group.ant-input-number-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search>.ant-input-group>.ant-input{border-radius:2px 0 0 2px}.ant-input-number-group-wrapper{display:inline-block;text-align:start;vertical-align:top}.ant-input-number-handler{position:relative;display:block;width:100%;height:50%;overflow:hidden;color:rgba(0,0,0,.45);font-weight:700;line-height:0;text-align:center;border-left:1px solid #d9d9d9;-webkit-transition:all .1s linear;-moz-transition:all .1s linear;transition:all .1s linear}.ant-input-number-handler:active{background:#f4f4f4}.ant-input-number-handler:hover .ant-input-number-handler-down-inner,.ant-input-number-handler:hover .ant-input-number-handler-up-inner{color:#40a9ff}.ant-input-number-handler-down-inner,.ant-input-number-handler-up-inner{display:inline-block;color:inherit;font-style:normal;line-height:0;text-align:center;text-transform:none;vertical-align:-.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;right:4px;width:12px;height:12px;color:rgba(0,0,0,.45);line-height:12px;-webkit-transition:all .1s linear;-moz-transition:all .1s linear;transition:all .1s linear;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-input-number-handler-down-inner>*,.ant-input-number-handler-up-inner>*{line-height:1}.ant-input-number-handler-down-inner svg,.ant-input-number-handler-up-inner svg{display:inline-block}.ant-input-number-handler-down-inner:before,.ant-input-number-handler-up-inner:before{display:none}.ant-input-number-handler-down-inner .ant-input-number-handler-down-inner-icon,.ant-input-number-handler-down-inner .ant-input-number-handler-up-inner-icon,.ant-input-number-handler-up-inner .ant-input-number-handler-down-inner-icon,.ant-input-number-handler-up-inner .ant-input-number-handler-up-inner-icon{display:block}.ant-input-number:hover{border-color:#40a9ff;border-right-width:1px!important}.ant-input-number:hover+.ant-form-item-children-icon{opacity:0;-webkit-transition:opacity .24s linear .24s;-moz-transition:opacity .24s linear .24s;transition:opacity .24s linear .24s}.ant-input-number-focused{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2);border-right-width:1px!important;outline:0}.ant-input-number-disabled{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;-webkit-box-shadow:none;box-shadow:none;cursor:not-allowed;opacity:1}.ant-input-number-disabled:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-input-number-disabled .ant-input-number-input{cursor:not-allowed}.ant-input-number-disabled .ant-input-number-handler-wrap,.ant-input-number-readonly .ant-input-number-handler-wrap{display:none}.ant-input-number-input{width:100%;height:30px;padding:0 11px;text-align:left;background-color:transparent;border:0;border-radius:2px;outline:0;-webkit-transition:all .3s linear;-moz-transition:all .3s linear;transition:all .3s linear;-webkit-appearance:textfield!important;-moz-appearance:textfield!important;appearance:textfield!important}.ant-input-number-input:-ms-input-placeholder{color:#bfbfbf;-ms-user-select:none;user-select:none}.ant-input-number-input::-webkit-input-placeholder{color:#bfbfbf;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-input-number-input::placeholder{color:#bfbfbf;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-input-number-input:-moz-placeholder-shown{text-overflow:ellipsis}.ant-input-number-input:-ms-input-placeholder{text-overflow:ellipsis}.ant-input-number-input:placeholder-shown{text-overflow:ellipsis}.ant-input-number-input[type=number]::-webkit-inner-spin-button,.ant-input-number-input[type=number]::-webkit-outer-spin-button{margin:0;-webkit-appearance:none;appearance:none}.ant-input-number-lg{padding:0;font-size:16px}.ant-input-number-lg input{height:38px}.ant-input-number-sm{padding:0}.ant-input-number-sm input{height:22px;padding:0 7px}.ant-input-number-handler-wrap{position:absolute;top:0;right:0;width:22px;height:100%;background:#fff;border-radius:0 2px 2px 0;opacity:0;-webkit-transition:opacity .24s linear .1s;-moz-transition:opacity .24s linear .1s;transition:opacity .24s linear .1s}.ant-input-number-handler-wrap .ant-input-number-handler .ant-input-number-handler-down-inner,.ant-input-number-handler-wrap .ant-input-number-handler .ant-input-number-handler-up-inner{display:-moz-box;display:flex;-moz-box-align:center;align-items:center;-moz-box-pack:center;justify-content:center;min-width:auto;margin-right:0;font-size:7px}.ant-input-number-borderless .ant-input-number-handler-wrap{border-left-width:0}.ant-input-number-handler-wrap:hover .ant-input-number-handler{height:40%}.ant-input-number-focused .ant-input-number-handler-wrap,.ant-input-number:hover .ant-input-number-handler-wrap{opacity:1}.ant-input-number-handler-up{border-top-right-radius:2px;cursor:pointer}.ant-input-number-handler-up-inner{top:50%;margin-top:-5px;text-align:center}.ant-input-number-handler-up:hover{height:60%!important}.ant-input-number-handler-down{top:0;border-top:1px solid #d9d9d9;border-bottom-right-radius:2px;cursor:pointer}.ant-input-number-handler-down-inner{top:50%;text-align:center;-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);transform:translateY(-50%)}.ant-input-number-handler-down:hover{height:60%!important}.ant-input-number-borderless .ant-input-number-handler-down{border-top-width:0}.ant-input-number-handler-down-disabled,.ant-input-number-handler-up-disabled{cursor:not-allowed}.ant-input-number-handler-down-disabled:hover .ant-input-number-handler-down-inner,.ant-input-number-handler-up-disabled:hover .ant-input-number-handler-up-inner{color:rgba(0,0,0,.25)}.ant-input-number-borderless{-webkit-box-shadow:none;box-shadow:none}.ant-input-number-out-of-range input{color:#ff4d4f}.ant-input-number-rtl{direction:rtl}.ant-input-number-rtl .ant-input-number-handler{border-right:1px solid #d9d9d9;border-left:0}.ant-input-number-rtl .ant-input-number-handler-wrap{right:auto;left:0}.ant-input-number-rtl.ant-input-number-borderless .ant-input-number-handler-wrap{border-right-width:0}.ant-input-number-rtl .ant-input-number-handler-up{border-top-right-radius:0}.ant-input-number-rtl .ant-input-number-handler-down{border-bottom-right-radius:0}.ant-input-number-rtl .ant-input-number-input{direction:ltr;text-align:right}.ant-input-affix-wrapper{position:relative;display:inline-block;width:100%;min-width:0;padding:4px 11px;color:rgba(0,0,0,.85);font-size:14px;line-height:1.5715;background-color:#fff;background-image:none;border:1px solid #d9d9d9;border-radius:2px;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s;display:-moz-inline-box;display:inline-flex}.ant-input-affix-wrapper:-ms-input-placeholder{color:#bfbfbf;-ms-user-select:none;user-select:none}.ant-input-affix-wrapper::-webkit-input-placeholder{color:#bfbfbf;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-input-affix-wrapper::placeholder{color:#bfbfbf;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-input-affix-wrapper:-moz-placeholder-shown{text-overflow:ellipsis}.ant-input-affix-wrapper:-ms-input-placeholder{text-overflow:ellipsis}.ant-input-affix-wrapper:placeholder-shown{text-overflow:ellipsis}.ant-input-affix-wrapper:hover{border-color:#40a9ff;border-right-width:1px!important}.ant-input-rtl .ant-input-affix-wrapper:hover{border-right-width:0;border-left-width:1px!important}.ant-input-affix-wrapper-focused,.ant-input-affix-wrapper:focus{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2);border-right-width:1px!important;outline:0}.ant-input-rtl .ant-input-affix-wrapper-focused,.ant-input-rtl .ant-input-affix-wrapper:focus{border-right-width:0;border-left-width:1px!important}.ant-input-affix-wrapper-disabled{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;-webkit-box-shadow:none;box-shadow:none;cursor:not-allowed;opacity:1}.ant-input-affix-wrapper-disabled:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-input-affix-wrapper[disabled]{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;-webkit-box-shadow:none;box-shadow:none;cursor:not-allowed;opacity:1}.ant-input-affix-wrapper[disabled]:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-input-affix-wrapper-borderless,.ant-input-affix-wrapper-borderless-disabled,.ant-input-affix-wrapper-borderless-focused,.ant-input-affix-wrapper-borderless:focus,.ant-input-affix-wrapper-borderless:hover,.ant-input-affix-wrapper-borderless[disabled]{background-color:transparent;border:none;-webkit-box-shadow:none;box-shadow:none}textarea.ant-input-affix-wrapper{max-width:100%;height:auto;min-height:32px;line-height:1.5715;vertical-align:bottom;-webkit-transition:all .3s,height 0s;-moz-transition:all .3s,height 0s;transition:all .3s,height 0s}.ant-input-affix-wrapper-lg{padding:6.5px 11px;font-size:16px}.ant-input-affix-wrapper-sm{padding:0 7px}.ant-input-affix-wrapper-rtl{direction:rtl}.ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover{border-color:#40a9ff;border-right-width:1px!important;z-index:1}.ant-input-rtl .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover{border-right-width:0;border-left-width:1px!important}.ant-input-search-with-button .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover{z-index:0}.ant-input-affix-wrapper-focused,.ant-input-affix-wrapper:focus{z-index:1}.ant-input-affix-wrapper-disabled .ant-input[disabled]{background:transparent}.ant-input-affix-wrapper>input.ant-input{padding:0;border:none;outline:none}.ant-input-affix-wrapper>input.ant-input:focus{-webkit-box-shadow:none!important;box-shadow:none!important}.ant-input-affix-wrapper:before{width:0;visibility:hidden;content:"\a0"}.ant-input-prefix,.ant-input-suffix{display:-moz-box;display:flex;-moz-box-flex:0;flex:none;-moz-box-align:center;align-items:center}.ant-input-show-count-suffix{color:rgba(0,0,0,.45)}.ant-input-show-count-has-suffix{margin-right:2px}.ant-input-prefix{margin-right:4px}.ant-input-suffix{margin-left:4px}.anticon.ant-input-clear-icon{margin:0;color:rgba(0,0,0,.25);font-size:12px;vertical-align:-1px;cursor:pointer;-webkit-transition:color .3s;-moz-transition:color .3s;transition:color .3s}.anticon.ant-input-clear-icon:hover{color:rgba(0,0,0,.45)}.anticon.ant-input-clear-icon:active{color:rgba(0,0,0,.85)}.anticon.ant-input-clear-icon-hidden{visibility:hidden}.anticon.ant-input-clear-icon-has-suffix{margin:0 4px}.ant-input-affix-wrapper-textarea-with-clear-btn{padding:0!important;border:0!important}.ant-input-affix-wrapper-textarea-with-clear-btn .ant-input-clear-icon{position:absolute;top:8px;right:8px;z-index:1}.ant-input{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;font-variant:tabular-nums;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";position:relative;display:inline-block;width:100%;min-width:0;padding:4px 11px;color:rgba(0,0,0,.85);font-size:14px;line-height:1.5715;background-color:#fff;background-image:none;border:1px solid #d9d9d9;border-radius:2px;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s}.ant-input:-ms-input-placeholder{color:#bfbfbf;-ms-user-select:none;user-select:none}.ant-input::-webkit-input-placeholder{color:#bfbfbf;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-input::placeholder{color:#bfbfbf;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-input:-moz-placeholder-shown{text-overflow:ellipsis}.ant-input:-ms-input-placeholder{text-overflow:ellipsis}.ant-input:placeholder-shown{text-overflow:ellipsis}.ant-input:hover{border-color:#40a9ff;border-right-width:1px!important}.ant-input-rtl .ant-input:hover{border-right-width:0;border-left-width:1px!important}.ant-input-focused,.ant-input:focus{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2);border-right-width:1px!important;outline:0}.ant-input-rtl .ant-input-focused,.ant-input-rtl .ant-input:focus{border-right-width:0;border-left-width:1px!important}.ant-input-disabled{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;-webkit-box-shadow:none;box-shadow:none;cursor:not-allowed;opacity:1}.ant-input-disabled:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-input[disabled]{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;-webkit-box-shadow:none;box-shadow:none;cursor:not-allowed;opacity:1}.ant-input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-input-borderless,.ant-input-borderless-disabled,.ant-input-borderless-focused,.ant-input-borderless:focus,.ant-input-borderless:hover,.ant-input-borderless[disabled]{background-color:transparent;border:none;-webkit-box-shadow:none;box-shadow:none}textarea.ant-input{max-width:100%;height:auto;min-height:32px;line-height:1.5715;vertical-align:bottom;-webkit-transition:all .3s,height 0s;-moz-transition:all .3s,height 0s;transition:all .3s,height 0s}.ant-input-lg{padding:6.5px 11px;font-size:16px}.ant-input-sm{padding:0 7px}.ant-input-rtl{direction:rtl}.ant-input-group{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";position:relative;display:table;width:100%;border-collapse:separate;border-spacing:0}.ant-input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.ant-input-group>[class*=col-]{padding-right:8px}.ant-input-group>[class*=col-]:last-child{padding-right:0}.ant-input-group-addon,.ant-input-group-wrap,.ant-input-group>.ant-input{display:table-cell}.ant-input-group-addon:not(:first-child):not(:last-child),.ant-input-group-wrap:not(:first-child):not(:last-child),.ant-input-group>.ant-input:not(:first-child):not(:last-child){border-radius:0}.ant-input-group-addon,.ant-input-group-wrap{width:1px;white-space:nowrap;vertical-align:middle}.ant-input-group-wrap>*{display:block!important}.ant-input-group .ant-input{float:left;width:100%;margin-bottom:0;text-align:inherit}.ant-input-group .ant-input:focus,.ant-input-group .ant-input:hover{z-index:1;border-right-width:1px}.ant-input-search-with-button .ant-input-group .ant-input:hover{z-index:0}.ant-input-group-addon{position:relative;padding:0 11px;color:rgba(0,0,0,.85);font-weight:400;font-size:14px;text-align:center;background-color:#fafafa;border:1px solid #d9d9d9;border-radius:2px;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s}.ant-input-group-addon .ant-select{margin:-5px -11px}.ant-input-group-addon .ant-select.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{background-color:inherit;border:1px solid transparent;-webkit-box-shadow:none;box-shadow:none}.ant-input-group-addon .ant-select-focused .ant-select-selector,.ant-input-group-addon .ant-select-open .ant-select-selector{color:#1890ff}.ant-input-group-addon .ant-cascader-picker{margin:-9px -12px;background-color:transparent}.ant-input-group-addon .ant-cascader-picker .ant-cascader-input{text-align:left;border:0;-webkit-box-shadow:none;box-shadow:none}.ant-input-group-addon:first-child,.ant-input-group-addon:first-child .ant-select .ant-select-selector,.ant-input-group>.ant-input:first-child,.ant-input-group>.ant-input:first-child .ant-select .ant-select-selector{border-top-right-radius:0;border-bottom-right-radius:0}.ant-input-group>.ant-input-affix-wrapper:not(:first-child) .ant-input{border-top-left-radius:0;border-bottom-left-radius:0}.ant-input-group>.ant-input-affix-wrapper:not(:last-child) .ant-input{border-top-right-radius:0;border-bottom-right-radius:0}.ant-input-group-addon:first-child{border-right:0}.ant-input-group-addon:last-child{border-left:0}.ant-input-group-addon:last-child,.ant-input-group-addon:last-child .ant-select .ant-select-selector,.ant-input-group>.ant-input:last-child,.ant-input-group>.ant-input:last-child .ant-select .ant-select-selector{border-top-left-radius:0;border-bottom-left-radius:0}.ant-input-group-lg .ant-input,.ant-input-group-lg>.ant-input-group-addon{padding:6.5px 11px;font-size:16px}.ant-input-group-sm .ant-input,.ant-input-group-sm>.ant-input-group-addon{padding:0 7px}.ant-input-group-lg .ant-select-single .ant-select-selector{height:40px}.ant-input-group-sm .ant-select-single .ant-select-selector{height:24px}.ant-input-group .ant-input-affix-wrapper:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.ant-input-search .ant-input-group .ant-input-affix-wrapper:not(:last-child){border-top-left-radius:2px;border-bottom-left-radius:2px}.ant-input-group .ant-input-affix-wrapper:not(:first-child),.ant-input-search .ant-input-group .ant-input-affix-wrapper:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.ant-input-group.ant-input-group-compact{display:block}.ant-input-group.ant-input-group-compact:before{display:table;content:""}.ant-input-group.ant-input-group-compact:after{display:table;clear:both;content:""}.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child),.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child),.ant-input-group.ant-input-group-compact>.ant-input:not(:first-child):not(:last-child){border-right-width:1px}.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child):focus,.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child):hover,.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child):focus,.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child):hover,.ant-input-group.ant-input-group-compact>.ant-input:not(:first-child):not(:last-child):focus,.ant-input-group.ant-input-group-compact>.ant-input:not(:first-child):not(:last-child):hover{z-index:1}.ant-input-group.ant-input-group-compact>*{display:inline-block;float:none;vertical-align:top;border-radius:0}.ant-input-group.ant-input-group-compact>.ant-input-affix-wrapper,.ant-input-group.ant-input-group-compact>.ant-picker-range{display:-moz-inline-box;display:inline-flex}.ant-input-group.ant-input-group-compact>:not(:last-child){margin-right:-1px;border-right-width:1px}.ant-input-group.ant-input-group-compact .ant-input{float:none}.ant-input-group.ant-input-group-compact>.ant-cascader-picker .ant-input,.ant-input-group.ant-input-group-compact>.ant-input-group-wrapper .ant-input,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-selector{border-right-width:1px;border-radius:0}.ant-input-group.ant-input-group-compact>.ant-cascader-picker .ant-input:focus,.ant-input-group.ant-input-group-compact>.ant-cascader-picker .ant-input:hover,.ant-input-group.ant-input-group-compact>.ant-input-group-wrapper .ant-input:focus,.ant-input-group.ant-input-group-compact>.ant-input-group-wrapper .ant-input:hover,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input:focus,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input:hover,.ant-input-group.ant-input-group-compact>.ant-select-focused,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-arrow,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-selector:focus,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-selector:hover{z-index:1}.ant-input-group.ant-input-group-compact>.ant-cascader-picker:first-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete:first-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-select:first-child>.ant-select-selector,.ant-input-group.ant-input-group-compact>:first-child{border-top-left-radius:2px;border-bottom-left-radius:2px}.ant-input-group.ant-input-group-compact>.ant-cascader-picker-focused:last-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-cascader-picker:last-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-select:last-child>.ant-select-selector,.ant-input-group.ant-input-group-compact>:last-child{border-right-width:1px;border-top-right-radius:2px;border-bottom-right-radius:2px}.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input{vertical-align:top}.ant-input-group.ant-input-group-compact .ant-input-group-wrapper+.ant-input-group-wrapper{margin-left:-1px}.ant-input-group.ant-input-group-compact .ant-input-group-wrapper+.ant-input-group-wrapper .ant-input-affix-wrapper,.ant-input-group.ant-input-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search>.ant-input-group>.ant-input-group-addon>.ant-input-search-button{border-radius:0}.ant-input-group.ant-input-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search>.ant-input-group>.ant-input{border-radius:2px 0 0 2px}.ant-input-group-rtl .ant-input-group-addon:first-child,.ant-input-group>.ant-input-rtl:first-child{border-radius:0 2px 2px 0}.ant-input-group-rtl .ant-input-group-addon:first-child{border-right:1px solid #d9d9d9;border-left:0}.ant-input-group-rtl .ant-input-group-addon:last-child{border-right:0;border-left:1px solid #d9d9d9}.ant-input-group-rtl.ant-input-group-addon:last-child,.ant-input-group-rtl.ant-input-group .ant-input-affix-wrapper:not(:first-child),.ant-input-group-rtl.ant-input-group>.ant-input:last-child{border-radius:2px 0 0 2px}.ant-input-group-rtl.ant-input-group .ant-input-affix-wrapper:not(:last-child){border-radius:0 2px 2px 0}.ant-input-group-rtl.ant-input-group.ant-input-group-compact>:not(:last-child){margin-right:0;margin-left:-1px;border-left-width:1px}.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-cascader-picker:first-child .ant-input,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-select-auto-complete:first-child .ant-input,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-select:first-child>.ant-select-selector,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>:first-child{border-radius:0 2px 2px 0}.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-cascader-picker-focused:last-child .ant-input,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-cascader-picker:last-child .ant-input,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-select-auto-complete:last-child .ant-input,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-select:last-child>.ant-select-selector,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>:last-child{border-left-width:1px;border-radius:2px 0 0 2px}.ant-input-group.ant-input-group-compact .ant-input-group-wrapper-rtl+.ant-input-group-wrapper-rtl{margin-right:-1px;margin-left:0}.ant-input-group.ant-input-group-compact .ant-input-group-wrapper-rtl:not(:last-child).ant-input-search>.ant-input-group>.ant-input{border-radius:0 2px 2px 0}.ant-input-group-wrapper{display:inline-block;width:100%;text-align:start;vertical-align:top}.ant-input-password-icon{color:rgba(0,0,0,.45);cursor:pointer;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s}.ant-input-password-icon:hover{color:rgba(0,0,0,.85)}.ant-input[type=color]{height:32px}.ant-input[type=color].ant-input-lg{height:40px}.ant-input[type=color].ant-input-sm{height:24px;padding-top:3px;padding-bottom:3px}.ant-input-textarea-show-count>.ant-input{height:100%}.ant-input-textarea-show-count:after{float:right;color:rgba(0,0,0,.45);white-space:nowrap;content:attr(data-count);pointer-events:none}.ant-input-search .ant-input:focus,.ant-input-search .ant-input:hover{border-color:#40a9ff}.ant-input-search .ant-input:focus+.ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary),.ant-input-search .ant-input:hover+.ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary){border-left-color:#40a9ff}.ant-input-search .ant-input-affix-wrapper{border-radius:0}.ant-input-search .ant-input-lg{line-height:1.5713}.ant-input-search>.ant-input-group>.ant-input-group-addon:last-child{left:-1px;padding:0;border:0}.ant-input-search>.ant-input-group>.ant-input-group-addon:last-child .ant-input-search-button{padding-top:0;padding-bottom:0;border-radius:0 2px 2px 0}.ant-input-search>.ant-input-group>.ant-input-group-addon:last-child .ant-input-search-button:not(.ant-btn-primary){color:rgba(0,0,0,.45)}.ant-input-search>.ant-input-group>.ant-input-group-addon:last-child .ant-input-search-button:not(.ant-btn-primary).ant-btn-loading:before{top:0;right:0;bottom:0;left:0}.ant-input-search-button{height:32px}.ant-input-search-button:focus,.ant-input-search-button:hover{z-index:1}.ant-input-search-large .ant-input-search-button{height:40px}.ant-input-search-small .ant-input-search-button{height:24px}.ant-input-group-rtl,.ant-input-group-wrapper-rtl{direction:rtl}.ant-input-affix-wrapper.ant-input-affix-wrapper-rtl>input.ant-input{border:none;outline:none}.ant-input-affix-wrapper-rtl .ant-input-prefix{margin:0 0 0 4px}.ant-input-affix-wrapper-rtl .ant-input-suffix{margin:0 4px 0 0}.ant-input-textarea-rtl{direction:rtl}.ant-input-textarea-rtl.ant-input-textarea-show-count:after{text-align:left}.ant-input-affix-wrapper-rtl .ant-input-clear-icon-has-suffix{margin-right:0;margin-left:4px}.ant-input-affix-wrapper-rtl .ant-input-clear-icon{right:auto;left:8px}.ant-input-search-rtl{direction:rtl}.ant-input-search-rtl .ant-input:focus+.ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary),.ant-input-search-rtl .ant-input:hover+.ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary){border-right-color:#40a9ff;border-left-color:#d9d9d9}.ant-input-search-rtl>.ant-input-group>.ant-input-affix-wrapper-focused,.ant-input-search-rtl>.ant-input-group>.ant-input-affix-wrapper:hover{border-right-color:#40a9ff}.ant-input-search-rtl>.ant-input-group>.ant-input-group-addon{right:-1px;left:auto}.ant-input-search-rtl>.ant-input-group>.ant-input-group-addon .ant-input-search-button{border-radius:2px 0 0 2px}@media (-ms-high-contrast:none),screen and (-ms-high-contrast:active){.ant-input{height:32px}.ant-input-lg{height:40px}.ant-input-sm{height:24px}.ant-input-affix-wrapper>input.ant-input{height:auto}}.ant-layout{display:-moz-box;display:flex;-moz-box-flex:1;flex:auto;-moz-box-orient:vertical;-moz-box-direction:normal;flex-direction:column;min-height:0;background:#f0f2f5}.ant-layout,.ant-layout *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.ant-layout.ant-layout-has-sider{-moz-box-orient:horizontal;-moz-box-direction:normal;flex-direction:row}.ant-layout.ant-layout-has-sider>.ant-layout,.ant-layout.ant-layout-has-sider>.ant-layout-content{width:0}.ant-layout-footer,.ant-layout-header{-moz-box-flex:0;flex:0 0 auto}.ant-layout-header{height:64px;padding:0 50px;color:rgba(0,0,0,.85);line-height:64px;background:#001529}.ant-layout-footer{padding:24px 50px;color:rgba(0,0,0,.85);font-size:14px;background:#f0f2f5}.ant-layout-content{-moz-box-flex:1;flex:auto;min-height:0}.ant-layout-sider{position:relative;min-width:0;background:#001529;-webkit-transition:all .2s;-moz-transition:all .2s;transition:all .2s}.ant-layout-sider-children{height:100%;margin-top:-.1px;padding-top:.1px}.ant-layout-sider-children .ant-menu.ant-menu-inline-collapsed{width:auto}.ant-layout-sider-has-trigger{padding-bottom:48px}.ant-layout-sider-right{-moz-box-ordinal-group:2;order:1}.ant-layout-sider-trigger{position:fixed;bottom:0;z-index:1;height:48px;color:#fff;line-height:48px;text-align:center;background:#002140;cursor:pointer;-webkit-transition:all .2s;-moz-transition:all .2s;transition:all .2s}.ant-layout-sider-zero-width>*{overflow:hidden}.ant-layout-sider-zero-width-trigger{position:absolute;top:64px;right:-36px;z-index:1;width:36px;height:42px;color:#fff;font-size:18px;line-height:42px;text-align:center;background:#001529;border-radius:0 2px 2px 0;cursor:pointer;-webkit-transition:background .3s ease;-moz-transition:background .3s ease;transition:background .3s ease}.ant-layout-sider-zero-width-trigger:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s;content:""}.ant-layout-sider-zero-width-trigger:hover:after{background:hsla(0,0%,100%,.1)}.ant-layout-sider-zero-width-trigger-right{left:-36px;border-radius:2px 0 0 2px}.ant-layout-sider-light{background:#fff}.ant-layout-sider-light .ant-layout-sider-trigger,.ant-layout-sider-light .ant-layout-sider-zero-width-trigger{color:rgba(0,0,0,.85);background:#fff}.ant-layout-rtl{direction:rtl}.ant-list{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";position:relative}.ant-list *{outline:none}.ant-list-pagination{margin-top:24px;text-align:right}.ant-list-pagination .ant-pagination-options{text-align:left}.ant-list-more{margin-top:12px;text-align:center}.ant-list-more button{padding-right:32px;padding-left:32px}.ant-list-spin{min-height:40px;text-align:center}.ant-list-empty-text{padding:16px;color:rgba(0,0,0,.25);font-size:14px;text-align:center}.ant-list-items{margin:0;padding:0;list-style:none}.ant-list-item{display:-moz-box;display:flex;-moz-box-align:center;align-items:center;-moz-box-pack:justify;justify-content:space-between;padding:12px 0;color:rgba(0,0,0,.85)}.ant-list-item-meta{display:-moz-box;display:flex;-moz-box-flex:1;flex:1 1;-moz-box-align:start;align-items:flex-start;max-width:100%}.ant-list-item-meta-avatar{margin-right:16px}.ant-list-item-meta-content{-moz-box-flex:1;flex:1 0;width:0;color:rgba(0,0,0,.85)}.ant-list-item-meta-title{margin-bottom:4px;color:rgba(0,0,0,.85);font-size:14px;line-height:1.5715}.ant-list-item-meta-title>a{color:rgba(0,0,0,.85);-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s}.ant-list-item-meta-title>a:hover{color:#1890ff}.ant-list-item-meta-description{color:rgba(0,0,0,.45);font-size:14px;line-height:1.5715}.ant-list-item-action{-moz-box-flex:0;flex:0 0 auto;margin-left:48px;padding:0;font-size:0;list-style:none}.ant-list-item-action>li{position:relative;display:inline-block;padding:0 8px;color:rgba(0,0,0,.45);font-size:14px;line-height:1.5715;text-align:center}.ant-list-item-action>li:first-child{padding-left:0}.ant-list-item-action-split{position:absolute;top:50%;right:0;width:1px;height:14px;margin-top:-7px;background-color:#f0f0f0}.ant-list-footer,.ant-list-header{background:transparent}.ant-list-footer,.ant-list-header{padding-top:12px;padding-bottom:12px}.ant-list-empty{padding:16px 0;color:rgba(0,0,0,.45);font-size:12px;text-align:center}.ant-list-split .ant-list-item{border-bottom:1px solid #f0f0f0}.ant-list-split .ant-list-item:last-child{border-bottom:none}.ant-list-split .ant-list-header{border-bottom:1px solid #f0f0f0}.ant-list-split.ant-list-empty .ant-list-footer{border-top:1px solid #f0f0f0}.ant-list-loading .ant-list-spin-nested-loading{min-height:32px}.ant-list-split.ant-list-something-after-last-item .ant-spin-container>.ant-list-items>.ant-list-item:last-child{border-bottom:1px solid #f0f0f0}.ant-list-lg .ant-list-item{padding:16px 24px}.ant-list-sm .ant-list-item{padding:8px 16px}.ant-list-vertical .ant-list-item{-moz-box-align:initial;align-items:normal}.ant-list-vertical .ant-list-item-main{display:block;-moz-box-flex:1;flex:1 1}.ant-list-vertical .ant-list-item-extra{margin-left:40px}.ant-list-vertical .ant-list-item-meta{margin-bottom:16px}.ant-list-vertical .ant-list-item-meta-title{margin-bottom:12px;color:rgba(0,0,0,.85);font-size:16px;line-height:24px}.ant-list-vertical .ant-list-item-action{margin-top:16px;margin-left:auto}.ant-list-vertical .ant-list-item-action>li{padding:0 16px}.ant-list-vertical .ant-list-item-action>li:first-child{padding-left:0}.ant-list-grid .ant-col>.ant-list-item{display:block;max-width:100%;margin-bottom:16px;padding-top:0;padding-bottom:0;border-bottom:none}.ant-list-item-no-flex{display:block}.ant-list:not(.ant-list-vertical) .ant-list-item-no-flex .ant-list-item-action{float:right}.ant-list-bordered{border:1px solid #d9d9d9;border-radius:2px}.ant-list-bordered .ant-list-footer,.ant-list-bordered .ant-list-header,.ant-list-bordered .ant-list-item{padding-right:24px;padding-left:24px}.ant-list-bordered .ant-list-pagination{margin:16px 24px}.ant-list-bordered.ant-list-sm .ant-list-footer,.ant-list-bordered.ant-list-sm .ant-list-header,.ant-list-bordered.ant-list-sm .ant-list-item{padding:8px 16px}.ant-list-bordered.ant-list-lg .ant-list-footer,.ant-list-bordered.ant-list-lg .ant-list-header,.ant-list-bordered.ant-list-lg .ant-list-item{padding:16px 24px}@media screen and (max-width:768px){.ant-list-item-action,.ant-list-vertical .ant-list-item-extra{margin-left:24px}}@media screen and (max-width:576px){.ant-list-item{flex-wrap:wrap}.ant-list-item-action{margin-left:12px}.ant-list-vertical .ant-list-item{flex-wrap:wrap-reverse}.ant-list-vertical .ant-list-item-main{min-width:220px}.ant-list-vertical .ant-list-item-extra{margin:auto auto 16px}}.ant-list-rtl{direction:rtl;text-align:right}.ant-list-rtl .ReactVirtualized__List .ant-list-item{direction:rtl}.ant-list-rtl .ant-list-pagination{text-align:left}.ant-list-rtl .ant-list-item-meta-avatar{margin-right:0;margin-left:16px}.ant-list-rtl .ant-list-item-action{margin-right:48px;margin-left:0}.ant-list.ant-list-rtl .ant-list-item-action>li:first-child{padding-right:0;padding-left:16px}.ant-list-rtl .ant-list-item-action-split{right:auto;left:0}.ant-list-rtl.ant-list-vertical .ant-list-item-extra{margin-right:40px;margin-left:0}.ant-list-rtl.ant-list-vertical .ant-list-item-action{margin-right:auto}.ant-list-rtl .ant-list-vertical .ant-list-item-action>li:first-child{padding-right:0;padding-left:16px}.ant-list-rtl .ant-list:not(.ant-list-vertical) .ant-list-item-no-flex .ant-list-item-action{float:left}@media screen and (max-width:768px){.ant-list-rtl .ant-list-item-action,.ant-list-rtl .ant-list-vertical .ant-list-item-extra{margin-right:24px;margin-left:0}}@media screen and (max-width:576px){.ant-list-rtl .ant-list-item-action{margin-right:22px;margin-left:0}.ant-list-rtl.ant-list-vertical .ant-list-item-extra{margin:auto auto 16px}}.ant-spin{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";position:absolute;display:none;color:#1890ff;text-align:center;vertical-align:middle;opacity:0;-webkit-transition:-webkit-transform .3s cubic-bezier(.78,.14,.15,.86);transition:-webkit-transform .3s cubic-bezier(.78,.14,.15,.86);-moz-transition:transform .3s cubic-bezier(.78,.14,.15,.86),-moz-transform .3s cubic-bezier(.78,.14,.15,.86);transition:transform .3s cubic-bezier(.78,.14,.15,.86);transition:transform .3s cubic-bezier(.78,.14,.15,.86),-webkit-transform .3s cubic-bezier(.78,.14,.15,.86),-moz-transform .3s cubic-bezier(.78,.14,.15,.86)}.ant-spin-spinning{position:static;display:inline-block;opacity:1}.ant-spin-nested-loading{position:relative}.ant-spin-nested-loading>div>.ant-spin{position:absolute;top:0;left:0;z-index:4;display:block;width:100%;height:100%;max-height:400px}.ant-spin-nested-loading>div>.ant-spin .ant-spin-dot{position:absolute;top:50%;left:50%;margin:-10px}.ant-spin-nested-loading>div>.ant-spin .ant-spin-text{position:absolute;top:50%;width:100%;padding-top:5px;text-shadow:0 1px 2px #fff}.ant-spin-nested-loading>div>.ant-spin.ant-spin-show-text .ant-spin-dot{margin-top:-20px}.ant-spin-nested-loading>div>.ant-spin-sm .ant-spin-dot{margin:-7px}.ant-spin-nested-loading>div>.ant-spin-sm .ant-spin-text{padding-top:2px}.ant-spin-nested-loading>div>.ant-spin-sm.ant-spin-show-text .ant-spin-dot{margin-top:-17px}.ant-spin-nested-loading>div>.ant-spin-lg .ant-spin-dot{margin:-16px}.ant-spin-nested-loading>div>.ant-spin-lg .ant-spin-text{padding-top:11px}.ant-spin-nested-loading>div>.ant-spin-lg.ant-spin-show-text .ant-spin-dot{margin-top:-26px}.ant-spin-container{position:relative;-webkit-transition:opacity .3s;-moz-transition:opacity .3s;transition:opacity .3s}.ant-spin-container:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:none\9;width:100%;height:100%;background:#fff;opacity:0;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s;content:"";pointer-events:none}.ant-spin-blur{clear:both;opacity:.5;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none}.ant-spin-blur:after{opacity:.4;pointer-events:auto}.ant-spin-tip{color:rgba(0,0,0,.45)}.ant-spin-dot{position:relative;display:inline-block;font-size:20px;width:1em;height:1em}.ant-spin-dot-item{position:absolute;display:block;width:9px;height:9px;background-color:#1890ff;border-radius:100%;-webkit-transform:scale(.75);-moz-transform:scale(.75);transform:scale(.75);-webkit-transform-origin:50% 50%;-moz-transform-origin:50% 50%;transform-origin:50% 50%;opacity:.3;-webkit-animation:antSpinMove 1s linear infinite alternate;-moz-animation:antSpinMove 1s linear infinite alternate;animation:antSpinMove 1s linear infinite alternate}.ant-spin-dot-item:first-child{top:0;left:0}.ant-spin-dot-item:nth-child(2){top:0;right:0;-webkit-animation-delay:.4s;-moz-animation-delay:.4s;animation-delay:.4s}.ant-spin-dot-item:nth-child(3){right:0;bottom:0;-webkit-animation-delay:.8s;-moz-animation-delay:.8s;animation-delay:.8s}.ant-spin-dot-item:nth-child(4){bottom:0;left:0;-webkit-animation-delay:1.2s;-moz-animation-delay:1.2s;animation-delay:1.2s}.ant-spin-dot-spin{-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);transform:rotate(45deg);-webkit-animation:antRotate 1.2s linear infinite;-moz-animation:antRotate 1.2s linear infinite;animation:antRotate 1.2s linear infinite}.ant-spin-sm .ant-spin-dot{font-size:14px}.ant-spin-sm .ant-spin-dot i{width:6px;height:6px}.ant-spin-lg .ant-spin-dot{font-size:32px}.ant-spin-lg .ant-spin-dot i{width:14px;height:14px}.ant-spin.ant-spin-show-text .ant-spin-text{display:block}@media (-ms-high-contrast:active),(-ms-high-contrast:none){.ant-spin-blur{background:#fff;opacity:.5}}@-webkit-keyframes antSpinMove{to{opacity:1}}@-moz-keyframes antSpinMove{to{opacity:1}}@keyframes antSpinMove{to{opacity:1}}@-webkit-keyframes antRotate{to{-webkit-transform:rotate(405deg);transform:rotate(405deg)}}@-moz-keyframes antRotate{to{-moz-transform:rotate(405deg);transform:rotate(405deg)}}@keyframes antRotate{to{-webkit-transform:rotate(405deg);-moz-transform:rotate(405deg);transform:rotate(405deg)}}.ant-spin-rtl{direction:rtl}.ant-spin-rtl .ant-spin-dot-spin{-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-animation-name:antRotateRtl;-moz-animation-name:antRotateRtl;animation-name:antRotateRtl}@-webkit-keyframes antRotateRtl{to{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}}@-moz-keyframes antRotateRtl{to{-moz-transform:rotate(-405deg);transform:rotate(-405deg)}}@keyframes antRotateRtl{to{-webkit-transform:rotate(-405deg);-moz-transform:rotate(-405deg);transform:rotate(-405deg)}}.ant-pagination{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum"}.ant-pagination,.ant-pagination ol,.ant-pagination ul{margin:0;padding:0;list-style:none}.ant-pagination:after{display:block;clear:both;height:0;overflow:hidden;visibility:hidden;content:" "}.ant-pagination-item,.ant-pagination-total-text{display:inline-block;height:32px;margin-right:8px;line-height:30px;vertical-align:middle}.ant-pagination-item{min-width:32px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;text-align:center;list-style:none;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;outline:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-pagination-item a{display:block;padding:0 6px;color:rgba(0,0,0,.85);-webkit-transition:none;-moz-transition:none;transition:none}.ant-pagination-item a:hover{text-decoration:none}.ant-pagination-item:focus-visible,.ant-pagination-item:hover{border-color:#1890ff;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s}.ant-pagination-item:focus-visible a,.ant-pagination-item:hover a{color:#1890ff}.ant-pagination-item-active{font-weight:500;background:#fff;border-color:#1890ff}.ant-pagination-item-active a{color:#1890ff}.ant-pagination-item-active:focus-visible,.ant-pagination-item-active:hover{border-color:#40a9ff}.ant-pagination-item-active:focus-visible a,.ant-pagination-item-active:hover a{color:#40a9ff}.ant-pagination-jump-next,.ant-pagination-jump-prev{outline:0}.ant-pagination-jump-next .ant-pagination-item-container,.ant-pagination-jump-prev .ant-pagination-item-container{position:relative}.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon,.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon{color:#1890ff;font-size:12px;letter-spacing:-1px;opacity:0;-webkit-transition:all .2s;-moz-transition:all .2s;transition:all .2s}.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon-svg,.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon-svg{top:0;right:0;bottom:0;left:0;margin:auto}.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-ellipsis,.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-ellipsis{position:absolute;top:0;right:0;bottom:0;left:0;display:block;margin:auto;color:rgba(0,0,0,.25);font-family:Arial,Helvetica,sans-serif;letter-spacing:2px;text-align:center;text-indent:.13em;opacity:1;-webkit-transition:all .2s;-moz-transition:all .2s;transition:all .2s}.ant-pagination-jump-next:focus-visible .ant-pagination-item-link-icon,.ant-pagination-jump-next:hover .ant-pagination-item-link-icon,.ant-pagination-jump-prev:focus-visible .ant-pagination-item-link-icon,.ant-pagination-jump-prev:hover .ant-pagination-item-link-icon{opacity:1}.ant-pagination-jump-next:focus-visible .ant-pagination-item-ellipsis,.ant-pagination-jump-next:hover .ant-pagination-item-ellipsis,.ant-pagination-jump-prev:focus-visible .ant-pagination-item-ellipsis,.ant-pagination-jump-prev:hover .ant-pagination-item-ellipsis{opacity:0}.ant-pagination-jump-next,.ant-pagination-jump-prev,.ant-pagination-prev{margin-right:8px}.ant-pagination-jump-next,.ant-pagination-jump-prev,.ant-pagination-next,.ant-pagination-prev{display:inline-block;min-width:32px;height:32px;color:rgba(0,0,0,.85);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:32px;text-align:center;vertical-align:middle;list-style:none;border-radius:2px;cursor:pointer;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s}.ant-pagination-next,.ant-pagination-prev{font-family:Arial,Helvetica,sans-serif;outline:0}.ant-pagination-next button,.ant-pagination-prev button{color:rgba(0,0,0,.85);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-pagination-next:hover button,.ant-pagination-prev:hover button{border-color:#40a9ff}.ant-pagination-next .ant-pagination-item-link,.ant-pagination-prev .ant-pagination-item-link{display:block;width:100%;height:100%;padding:0;font-size:12px;text-align:center;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;outline:none;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s}.ant-pagination-next:focus-visible .ant-pagination-item-link,.ant-pagination-next:hover .ant-pagination-item-link,.ant-pagination-prev:focus-visible .ant-pagination-item-link,.ant-pagination-prev:hover .ant-pagination-item-link{color:#1890ff;border-color:#1890ff}.ant-pagination-disabled,.ant-pagination-disabled:focus-visible,.ant-pagination-disabled:hover{cursor:not-allowed}.ant-pagination-disabled .ant-pagination-item-link,.ant-pagination-disabled:focus-visible .ant-pagination-item-link,.ant-pagination-disabled:hover .ant-pagination-item-link{color:rgba(0,0,0,.25);border-color:#d9d9d9;cursor:not-allowed}.ant-pagination-slash{margin:0 10px 0 5px}.ant-pagination-options{display:inline-block;margin-left:16px;vertical-align:middle}@media (-ms-high-contrast:none){.ant-pagination-options,.ant-pagination-options ::-ms-backdrop{vertical-align:top}}.ant-pagination-options-size-changer.ant-select{display:inline-block;width:auto}.ant-pagination-options-quick-jumper{display:inline-block;height:32px;margin-left:8px;line-height:32px;vertical-align:top}.ant-pagination-options-quick-jumper input{position:relative;display:inline-block;width:100%;min-width:0;padding:4px 11px;color:rgba(0,0,0,.85);font-size:14px;line-height:1.5715;background-color:#fff;background-image:none;border:1px solid #d9d9d9;border-radius:2px;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s;width:50px;height:32px;margin:0 8px}.ant-pagination-options-quick-jumper input:-ms-input-placeholder{color:#bfbfbf;-ms-user-select:none;user-select:none}.ant-pagination-options-quick-jumper input::-webkit-input-placeholder{color:#bfbfbf;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-pagination-options-quick-jumper input::placeholder{color:#bfbfbf;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-pagination-options-quick-jumper input:-moz-placeholder-shown{text-overflow:ellipsis}.ant-pagination-options-quick-jumper input:-ms-input-placeholder{text-overflow:ellipsis}.ant-pagination-options-quick-jumper input:placeholder-shown{text-overflow:ellipsis}.ant-pagination-options-quick-jumper input:hover{border-color:#40a9ff;border-right-width:1px!important}.ant-pagination-options-quick-jumper input-focused,.ant-pagination-options-quick-jumper input:focus{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2);border-right-width:1px!important;outline:0}.ant-pagination-options-quick-jumper input-disabled{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;-webkit-box-shadow:none;box-shadow:none;cursor:not-allowed;opacity:1}.ant-pagination-options-quick-jumper input-disabled:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-pagination-options-quick-jumper input[disabled]{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;-webkit-box-shadow:none;box-shadow:none;cursor:not-allowed;opacity:1}.ant-pagination-options-quick-jumper input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-pagination-options-quick-jumper input-borderless,.ant-pagination-options-quick-jumper input-borderless-disabled,.ant-pagination-options-quick-jumper input-borderless-focused,.ant-pagination-options-quick-jumper input-borderless:focus,.ant-pagination-options-quick-jumper input-borderless:hover,.ant-pagination-options-quick-jumper input-borderless[disabled]{background-color:transparent;border:none;-webkit-box-shadow:none;box-shadow:none}textarea.ant-pagination-options-quick-jumper input{max-width:100%;height:auto;min-height:32px;line-height:1.5715;vertical-align:bottom;-webkit-transition:all .3s,height 0s;-moz-transition:all .3s,height 0s;transition:all .3s,height 0s}.ant-pagination-options-quick-jumper input-lg{padding:6.5px 11px;font-size:16px}.ant-pagination-options-quick-jumper input-sm{padding:0 7px}.ant-pagination-simple .ant-pagination-next,.ant-pagination-simple .ant-pagination-prev{height:24px;line-height:24px;vertical-align:top}.ant-pagination-simple .ant-pagination-next .ant-pagination-item-link,.ant-pagination-simple .ant-pagination-prev .ant-pagination-item-link{height:24px;background-color:transparent;border:0}.ant-pagination-simple .ant-pagination-next .ant-pagination-item-link:after,.ant-pagination-simple .ant-pagination-prev .ant-pagination-item-link:after{height:24px;line-height:24px}.ant-pagination-simple .ant-pagination-simple-pager{display:inline-block;height:24px;margin-right:8px}.ant-pagination-simple .ant-pagination-simple-pager input{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;height:100%;margin-right:8px;padding:0 6px;text-align:center;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;outline:none;-webkit-transition:border-color .3s;-moz-transition:border-color .3s;transition:border-color .3s}.ant-pagination-simple .ant-pagination-simple-pager input:hover{border-color:#1890ff}.ant-pagination-simple .ant-pagination-simple-pager input:focus{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}.ant-pagination-simple .ant-pagination-simple-pager input[disabled]{color:rgba(0,0,0,.25);background:#f5f5f5;border-color:#d9d9d9;cursor:not-allowed}.ant-pagination.mini .ant-pagination-simple-pager,.ant-pagination.mini .ant-pagination-total-text{height:24px;line-height:24px}.ant-pagination.mini .ant-pagination-item{min-width:24px;height:24px;margin:0;line-height:22px}.ant-pagination.mini .ant-pagination-item:not(.ant-pagination-item-active){background:transparent;border-color:transparent}.ant-pagination.mini .ant-pagination-next,.ant-pagination.mini .ant-pagination-prev{min-width:24px;height:24px;margin:0;line-height:24px}.ant-pagination.mini .ant-pagination-next .ant-pagination-item-link,.ant-pagination.mini .ant-pagination-prev .ant-pagination-item-link{background:transparent;border-color:transparent}.ant-pagination.mini .ant-pagination-next .ant-pagination-item-link:after,.ant-pagination.mini .ant-pagination-prev .ant-pagination-item-link:after{height:24px;line-height:24px}.ant-pagination.mini .ant-pagination-jump-next,.ant-pagination.mini .ant-pagination-jump-prev{height:24px;margin-right:0;line-height:24px}.ant-pagination.mini .ant-pagination-options{margin-left:2px}.ant-pagination.mini .ant-pagination-options-size-changer{top:0}.ant-pagination.mini .ant-pagination-options-quick-jumper{height:24px;line-height:24px}.ant-pagination.mini .ant-pagination-options-quick-jumper input{padding:0 7px;width:44px;height:24px}.ant-pagination.ant-pagination-disabled{cursor:not-allowed}.ant-pagination.ant-pagination-disabled .ant-pagination-item{background:#f5f5f5;border-color:#d9d9d9;cursor:not-allowed}.ant-pagination.ant-pagination-disabled .ant-pagination-item a{color:rgba(0,0,0,.25);background:transparent;border:none;cursor:not-allowed}.ant-pagination.ant-pagination-disabled .ant-pagination-item-active{background:#e6e6e6}.ant-pagination.ant-pagination-disabled .ant-pagination-item-active a{color:rgba(0,0,0,.25)}.ant-pagination.ant-pagination-disabled .ant-pagination-item-link{color:rgba(0,0,0,.25);background:#f5f5f5;border-color:#d9d9d9;cursor:not-allowed}.ant-pagination-simple.ant-pagination.ant-pagination-disabled .ant-pagination-item-link{background:transparent}.ant-pagination.ant-pagination-disabled .ant-pagination-item-link-icon{opacity:0}.ant-pagination.ant-pagination-disabled .ant-pagination-item-ellipsis{opacity:1}.ant-pagination.ant-pagination-disabled .ant-pagination-simple-pager{color:rgba(0,0,0,.25)}@media only screen and (max-width:992px){.ant-pagination-item-after-jump-prev,.ant-pagination-item-before-jump-next{display:none}}@media only screen and (max-width:576px){.ant-pagination-options{display:none}}.ant-pagination-rtl .ant-pagination-item,.ant-pagination-rtl .ant-pagination-jump-next,.ant-pagination-rtl .ant-pagination-jump-prev,.ant-pagination-rtl .ant-pagination-prev,.ant-pagination-rtl .ant-pagination-total-text{margin-right:0;margin-left:8px}.ant-pagination-rtl .ant-pagination-slash{margin:0 5px 0 10px}.ant-pagination-rtl .ant-pagination-options{margin-right:16px;margin-left:0}.ant-pagination-rtl .ant-pagination-options .ant-pagination-options-size-changer.ant-select{margin-right:0;margin-left:8px}.ant-pagination-rtl .ant-pagination-options .ant-pagination-options-quick-jumper{margin-left:0}.ant-pagination-rtl.ant-pagination-simple .ant-pagination-simple-pager,.ant-pagination-rtl.ant-pagination-simple .ant-pagination-simple-pager input{margin-right:0;margin-left:8px}.ant-pagination-rtl.ant-pagination.mini .ant-pagination-options{margin-right:2px;margin-left:0}.ant-mentions{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;font-variant:tabular-nums;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";width:100%;min-width:0;color:rgba(0,0,0,.85);font-size:14px;background-color:#fff;background-image:none;border:1px solid #d9d9d9;border-radius:2px;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s;position:relative;display:inline-block;height:auto;padding:0;overflow:hidden;line-height:1.5715;white-space:pre-wrap;vertical-align:bottom}.ant-mentions:-ms-input-placeholder{color:#bfbfbf;-ms-user-select:none;user-select:none}.ant-mentions::-webkit-input-placeholder{color:#bfbfbf;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-mentions::placeholder{color:#bfbfbf;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-mentions:-moz-placeholder-shown{text-overflow:ellipsis}.ant-mentions:-ms-input-placeholder{text-overflow:ellipsis}.ant-mentions:placeholder-shown{text-overflow:ellipsis}.ant-mentions-focused,.ant-mentions:focus,.ant-mentions:hover{border-color:#40a9ff;border-right-width:1px!important}.ant-mentions-focused,.ant-mentions:focus{-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2);outline:0}.ant-mentions-disabled{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;-webkit-box-shadow:none;box-shadow:none;cursor:not-allowed;opacity:1}.ant-mentions-disabled:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-mentions[disabled]{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;-webkit-box-shadow:none;box-shadow:none;cursor:not-allowed;opacity:1}.ant-mentions[disabled]:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-mentions-borderless,.ant-mentions-borderless-disabled,.ant-mentions-borderless-focused,.ant-mentions-borderless:focus,.ant-mentions-borderless:hover,.ant-mentions-borderless[disabled]{background-color:transparent;border:none;-webkit-box-shadow:none;box-shadow:none}textarea.ant-mentions{max-width:100%;height:auto;min-height:32px;line-height:1.5715;vertical-align:bottom;-webkit-transition:all .3s,height 0s;-moz-transition:all .3s,height 0s;transition:all .3s,height 0s}.ant-mentions-lg{padding:6.5px 11px;font-size:16px}.ant-mentions-sm{padding:0 7px}.ant-mentions-disabled>textarea{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;-webkit-box-shadow:none;box-shadow:none;cursor:not-allowed;opacity:1}.ant-mentions-disabled>textarea:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-mentions-focused{border-color:#40a9ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2);border-right-width:1px!important;outline:0}.ant-mentions-measure,.ant-mentions>textarea{min-height:30px;margin:0;padding:4px 11px;overflow:inherit;overflow-x:hidden;overflow-y:auto;font-weight:inherit;font-size:inherit;font-family:inherit;font-style:inherit;-webkit-font-feature-settings:inherit;-moz-font-feature-settings:inherit;font-feature-settings:inherit;font-variant:inherit;font-size-adjust:inherit;font-stretch:inherit;line-height:inherit;direction:inherit;letter-spacing:inherit;white-space:inherit;text-align:inherit;vertical-align:top;word-wrap:break-word;word-break:inherit;-moz-tab-size:inherit;-webkit-tab-size:inherit;tab-size:inherit}.ant-mentions>textarea{width:100%;border:none;outline:none;resize:none}.ant-mentions>textarea:-ms-input-placeholder{color:#bfbfbf;-ms-user-select:none;user-select:none}.ant-mentions>textarea::-webkit-input-placeholder{color:#bfbfbf;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-mentions>textarea::placeholder{color:#bfbfbf;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-mentions>textarea:-moz-placeholder-shown{text-overflow:ellipsis}.ant-mentions>textarea:-ms-input-placeholder{text-overflow:ellipsis}.ant-mentions>textarea:placeholder-shown{text-overflow:ellipsis}.ant-mentions-measure{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;color:transparent;pointer-events:none}.ant-mentions-measure>span{display:inline-block;min-height:1em}.ant-mentions-dropdown{margin:0;padding:0;color:rgba(0,0,0,.85);font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum",;-moz-font-feature-settings:"tnum","tnum",;font-feature-settings:"tnum","tnum",;position:absolute;top:-9999px;left:-9999px;z-index:1050;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;font-size:14px;font-variant:normal;background-color:#fff;border-radius:2px;outline:none;-webkit-box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05)}.ant-mentions-dropdown-hidden{display:none}.ant-mentions-dropdown-menu{max-height:250px;margin-bottom:0;padding-left:0;overflow:auto;list-style:none;outline:none}.ant-mentions-dropdown-menu-item{position:relative;display:block;min-width:100px;padding:5px 12px;overflow:hidden;color:rgba(0,0,0,.85);font-weight:400;line-height:1.5715;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;-webkit-transition:background .3s ease;-moz-transition:background .3s ease;transition:background .3s ease}.ant-mentions-dropdown-menu-item:hover{background-color:#f5f5f5}.ant-mentions-dropdown-menu-item:first-child{border-radius:2px 2px 0 0}.ant-mentions-dropdown-menu-item:last-child{border-radius:0 0 2px 2px}.ant-mentions-dropdown-menu-item-disabled{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-mentions-dropdown-menu-item-disabled:hover{color:rgba(0,0,0,.25);background-color:#fff;cursor:not-allowed}.ant-mentions-dropdown-menu-item-selected{color:rgba(0,0,0,.85);font-weight:600;background-color:#fafafa}.ant-mentions-dropdown-menu-item-active{background-color:#f5f5f5}.ant-mentions-rtl{direction:rtl}.ant-message{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";position:fixed;top:8px;left:0;z-index:1010;width:100%;pointer-events:none}.ant-message-notice{padding:8px;text-align:center}.ant-message-notice-content{display:inline-block;padding:10px 16px;background:#fff;border-radius:2px;-webkit-box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);pointer-events:all}.ant-message-success .anticon{color:#52c41a}.ant-message-error .anticon{color:#ff4d4f}.ant-message-warning .anticon{color:#faad14}.ant-message-info .anticon,.ant-message-loading .anticon{color:#1890ff}.ant-message .anticon{position:relative;top:1px;margin-right:8px;font-size:16px}.ant-message-notice.ant-move-up-leave.ant-move-up-leave-active{-webkit-animation-name:MessageMoveOut;-moz-animation-name:MessageMoveOut;animation-name:MessageMoveOut;-webkit-animation-duration:.3s;-moz-animation-duration:.3s;animation-duration:.3s}@-webkit-keyframes MessageMoveOut{0%{max-height:150px;padding:8px;opacity:1}to{max-height:0;padding:0;opacity:0}}@-moz-keyframes MessageMoveOut{0%{max-height:150px;padding:8px;opacity:1}to{max-height:0;padding:0;opacity:0}}@keyframes MessageMoveOut{0%{max-height:150px;padding:8px;opacity:1}to{max-height:0;padding:0;opacity:0}}.ant-message-rtl,.ant-message-rtl span{direction:rtl}.ant-message-rtl .anticon{margin-right:0;margin-left:8px}.ant-modal{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";pointer-events:none;position:relative;top:100px;width:auto;max-width:-webkit-calc(100vw - 32px);max-width:-moz-calc(100vw - 32px);max-width:calc(100vw - 32px);margin:0 auto;padding:0 0 24px}.ant-modal.ant-zoom-enter,.ant-modal.antzoom-appear{-webkit-transform:none;-moz-transform:none;transform:none;opacity:0;-webkit-animation-duration:.3s;-moz-animation-duration:.3s;animation-duration:.3s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;height:100%;background-color:rgba(0,0,0,.45)}.ant-modal-mask-hidden{display:none}.ant-modal-wrap{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;outline:0;-webkit-overflow-scrolling:touch;z-index:1000}.ant-modal-title{margin:0;color:rgba(0,0,0,.85);font-size:16px;line-height:22px;word-wrap:break-word}.ant-modal-content{position:relative;background-color:#fff;background-clip:padding-box;border:0;border-radius:2px;-webkit-box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);pointer-events:auto}.ant-modal-close{position:absolute;top:0;right:0;z-index:10;padding:0;color:rgba(0,0,0,.45);font-weight:700;line-height:1;text-decoration:none;background:transparent;border:0;outline:0;cursor:pointer;-webkit-transition:color .3s;-moz-transition:color .3s;transition:color .3s}.ant-modal-close-x{display:block;width:56px;height:56px;font-size:16px;font-style:normal;line-height:56px;text-align:center;text-transform:none;text-rendering:auto}.ant-modal-close:focus,.ant-modal-close:hover{color:rgba(0,0,0,.75);text-decoration:none}.ant-modal-header{padding:16px 24px;color:rgba(0,0,0,.85);background:#fff;border-bottom:1px solid #f0f0f0;border-radius:2px 2px 0 0}.ant-modal-body{padding:24px;font-size:14px;line-height:1.5715;word-wrap:break-word}.ant-modal-footer{padding:10px 16px;text-align:right;background:transparent;border-top:1px solid #f0f0f0;border-radius:0 0 2px 2px}.ant-modal-footer .ant-btn+.ant-btn:not(.ant-dropdown-trigger){margin-bottom:0;margin-left:8px}.ant-modal-open{overflow:hidden}.ant-modal-centered{text-align:center}.ant-modal-centered:before{display:inline-block;width:0;height:100%;vertical-align:middle;content:""}.ant-modal-centered .ant-modal{top:0;display:inline-block;padding-bottom:0;text-align:left;vertical-align:middle}@media (max-width:767px){.ant-modal{max-width:-webkit-calc(100vw - 16px);max-width:-moz-calc(100vw - 16px);max-width:calc(100vw - 16px);margin:8px auto}.ant-modal-centered .ant-modal{-moz-box-flex:1;flex:1 1}}.ant-modal-confirm .ant-modal-header{display:none}.ant-modal-confirm .ant-modal-body{padding:32px 32px 24px}.ant-modal-confirm-body-wrapper:before{display:table;content:""}.ant-modal-confirm-body-wrapper:after{display:table;clear:both;content:""}.ant-modal-confirm-body .ant-modal-confirm-title{display:block;overflow:hidden;color:rgba(0,0,0,.85);font-weight:500;font-size:16px;line-height:1.4}.ant-modal-confirm-body .ant-modal-confirm-content{margin-top:8px;color:rgba(0,0,0,.85);font-size:14px}.ant-modal-confirm-body>.anticon{float:left;margin-right:16px;font-size:22px}.ant-modal-confirm-body>.anticon+.ant-modal-confirm-title+.ant-modal-confirm-content{margin-left:38px}.ant-modal-confirm .ant-modal-confirm-btns{float:right;margin-top:24px}.ant-modal-confirm .ant-modal-confirm-btns .ant-btn+.ant-btn{margin-bottom:0;margin-left:8px}.ant-modal-confirm-error .ant-modal-confirm-body>.anticon{color:#ff4d4f}.ant-modal-confirm-confirm .ant-modal-confirm-body>.anticon,.ant-modal-confirm-warning .ant-modal-confirm-body>.anticon{color:#faad14}.ant-modal-confirm-info .ant-modal-confirm-body>.anticon{color:#1890ff}.ant-modal-confirm-success .ant-modal-confirm-body>.anticon{color:#52c41a}.ant-modal-wrap-rtl{direction:rtl}.ant-modal-wrap-rtl .ant-modal-close{right:auto;left:0}.ant-modal-wrap-rtl .ant-modal-footer{text-align:left}.ant-modal-wrap-rtl .ant-modal-footer .ant-btn+.ant-btn{margin-right:8px;margin-left:0}.ant-modal-wrap-rtl .ant-modal-confirm-body{direction:rtl}.ant-modal-wrap-rtl .ant-modal-confirm-body>.anticon{float:right;margin-right:0;margin-left:16px}.ant-modal-wrap-rtl .ant-modal-confirm-body>.anticon+.ant-modal-confirm-title+.ant-modal-confirm-content{margin-right:38px;margin-left:0}.ant-modal-wrap-rtl .ant-modal-confirm-btns{float:left}.ant-modal-wrap-rtl .ant-modal-confirm-btns .ant-btn+.ant-btn{margin-right:8px;margin-left:0}.ant-modal-wrap-rtl.ant-modal-centered .ant-modal{text-align:right}.ant-notification{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";position:fixed;z-index:1010;margin:0 24px 0 0}.ant-notification-bottomLeft,.ant-notification-topLeft{margin-right:0;margin-left:24px}.ant-notification-bottomLeft .ant-notification-fade-appear.ant-notification-fade-appear-active,.ant-notification-bottomLeft .ant-notification-fade-enter.ant-notification-fade-enter-active,.ant-notification-topLeft .ant-notification-fade-appear.ant-notification-fade-appear-active,.ant-notification-topLeft .ant-notification-fade-enter.ant-notification-fade-enter-active{-webkit-animation-name:NotificationLeftFadeIn;-moz-animation-name:NotificationLeftFadeIn;animation-name:NotificationLeftFadeIn}.ant-notification-close-icon{font-size:14px;cursor:pointer}.ant-notification-hook-holder{position:relative}.ant-notification-notice{position:relative;width:384px;max-width:-webkit-calc(100vw - 24px * 2);max-width:-moz-calc(100vw - 24px * 2);max-width:calc(100vw - 24px * 2);margin-bottom:16px;margin-left:auto;padding:16px 24px;overflow:hidden;line-height:1.5715;word-wrap:break-word;background:#fff;border-radius:2px;-webkit-box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05)}.ant-notification-bottomLeft .ant-notification-notice,.ant-notification-topLeft .ant-notification-notice{margin-right:auto;margin-left:0}.ant-notification-notice-message{margin-bottom:8px;color:rgba(0,0,0,.85);font-size:16px;line-height:24px}.ant-notification-notice-message-single-line-auto-margin{display:block;width:-webkit-calc(384px - 24px * 2 - 24px - 48px - 100%);width:-moz-calc(384px - 24px * 2 - 24px - 48px - 100%);width:calc(384px - 24px * 2 - 24px - 48px - 100%);max-width:4px;background-color:transparent;pointer-events:none}.ant-notification-notice-message-single-line-auto-margin:before{display:block;content:""}.ant-notification-notice-description{font-size:14px}.ant-notification-notice-closable .ant-notification-notice-message{padding-right:24px}.ant-notification-notice-with-icon .ant-notification-notice-message{margin-bottom:4px;margin-left:48px;font-size:16px}.ant-notification-notice-with-icon .ant-notification-notice-description{margin-left:48px;font-size:14px}.ant-notification-notice-icon{position:absolute;margin-left:4px;font-size:24px;line-height:24px}.anticon.ant-notification-notice-icon-success{color:#52c41a}.anticon.ant-notification-notice-icon-info{color:#1890ff}.anticon.ant-notification-notice-icon-warning{color:#faad14}.anticon.ant-notification-notice-icon-error{color:#ff4d4f}.ant-notification-notice-close{position:absolute;top:16px;right:22px;color:rgba(0,0,0,.45);outline:none}.ant-notification-notice-close:hover{color:rgba(0,0,0,.67)}.ant-notification-notice-btn{float:right;margin-top:16px}.ant-notification .notification-fade-effect{-webkit-animation-duration:.24s;-moz-animation-duration:.24s;animation-duration:.24s;-webkit-animation-timing-function:cubic-bezier(.645,.045,.355,1);-moz-animation-timing-function:cubic-bezier(.645,.045,.355,1);animation-timing-function:cubic-bezier(.645,.045,.355,1);-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}.ant-notification-fade-appear,.ant-notification-fade-enter{opacity:0;-webkit-animation-play-state:paused;-moz-animation-play-state:paused;animation-play-state:paused}.ant-notification-fade-appear,.ant-notification-fade-enter,.ant-notification-fade-leave{-webkit-animation-duration:.24s;-moz-animation-duration:.24s;animation-duration:.24s;-webkit-animation-timing-function:cubic-bezier(.645,.045,.355,1);-moz-animation-timing-function:cubic-bezier(.645,.045,.355,1);animation-timing-function:cubic-bezier(.645,.045,.355,1);-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}.ant-notification-fade-leave{-webkit-animation-duration:.2s;-moz-animation-duration:.2s;animation-duration:.2s;-webkit-animation-play-state:paused;-moz-animation-play-state:paused;animation-play-state:paused}.ant-notification-fade-appear.ant-notification-fade-appear-active,.ant-notification-fade-enter.ant-notification-fade-enter-active{-webkit-animation-name:NotificationFadeIn;-moz-animation-name:NotificationFadeIn;animation-name:NotificationFadeIn;-webkit-animation-play-state:running;-moz-animation-play-state:running;animation-play-state:running}.ant-notification-fade-leave.ant-notification-fade-leave-active{-webkit-animation-name:NotificationFadeOut;-moz-animation-name:NotificationFadeOut;animation-name:NotificationFadeOut;-webkit-animation-play-state:running;-moz-animation-play-state:running;animation-play-state:running}@-webkit-keyframes NotificationFadeIn{0%{left:384px;opacity:0}to{left:0;opacity:1}}@-moz-keyframes NotificationFadeIn{0%{left:384px;opacity:0}to{left:0;opacity:1}}@keyframes NotificationFadeIn{0%{left:384px;opacity:0}to{left:0;opacity:1}}@-webkit-keyframes NotificationLeftFadeIn{0%{right:384px;opacity:0}to{right:0;opacity:1}}@-moz-keyframes NotificationLeftFadeIn{0%{right:384px;opacity:0}to{right:0;opacity:1}}@keyframes NotificationLeftFadeIn{0%{right:384px;opacity:0}to{right:0;opacity:1}}@-webkit-keyframes NotificationFadeOut{0%{max-height:150px;margin-bottom:16px;opacity:1}to{max-height:0;margin-bottom:0;padding-top:0;padding-bottom:0;opacity:0}}@-moz-keyframes NotificationFadeOut{0%{max-height:150px;margin-bottom:16px;opacity:1}to{max-height:0;margin-bottom:0;padding-top:0;padding-bottom:0;opacity:0}}@keyframes NotificationFadeOut{0%{max-height:150px;margin-bottom:16px;opacity:1}to{max-height:0;margin-bottom:0;padding-top:0;padding-bottom:0;opacity:0}}.ant-notification-rtl{direction:rtl}.ant-notification-rtl .ant-notification-notice-closable .ant-notification-notice-message{padding-right:0;padding-left:24px}.ant-notification-rtl .ant-notification-notice-with-icon .ant-notification-notice-description,.ant-notification-rtl .ant-notification-notice-with-icon .ant-notification-notice-message{margin-right:48px;margin-left:0}.ant-notification-rtl .ant-notification-notice-icon{margin-right:4px;margin-left:0}.ant-notification-rtl .ant-notification-notice-close{right:auto;left:22px}.ant-notification-rtl .ant-notification-notice-btn{float:left}.ant-page-header{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";position:relative;padding:16px 24px;background-color:#fff}.ant-page-header-ghost{background-color:inherit}.ant-page-header.has-breadcrumb{padding-top:12px}.ant-page-header.has-footer{padding-bottom:0}.ant-page-header-back{margin-right:16px;font-size:16px;line-height:1}.ant-page-header-back-button{color:#1890ff;text-decoration:none;outline:none;-webkit-transition:color .3s;-moz-transition:color .3s;transition:color .3s;color:#000;cursor:pointer}.ant-page-header-back-button:focus,.ant-page-header-back-button:hover{color:#40a9ff}.ant-page-header-back-button:active{color:#096dd9}.ant-page-header .ant-divider-vertical{height:14px;margin:0 12px;vertical-align:middle}.ant-breadcrumb+.ant-page-header-heading{margin-top:8px}.ant-page-header-heading{display:-moz-box;display:flex;-moz-box-pack:justify;justify-content:space-between}.ant-page-header-heading-left{display:-moz-box;display:flex;-moz-box-align:center;align-items:center;margin:4px 0;overflow:hidden}.ant-page-header-heading-title{margin-right:12px;margin-bottom:0;color:rgba(0,0,0,.85);font-weight:600;font-size:20px;line-height:32px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ant-page-header-heading .ant-avatar{margin-right:12px}.ant-page-header-heading-sub-title{margin-right:12px;color:rgba(0,0,0,.45);font-size:14px;line-height:1.5715;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ant-page-header-heading-extra{margin:4px 0;white-space:nowrap}.ant-page-header-heading-extra>*{margin-left:12px;white-space:unset}.ant-page-header-heading-extra>:first-child{margin-left:0}.ant-page-header-content{padding-top:12px}.ant-page-header-footer{margin-top:16px}.ant-page-header-footer .ant-tabs>.ant-tabs-nav{margin:0}.ant-page-header-footer .ant-tabs>.ant-tabs-nav:before{border:none}.ant-page-header-footer .ant-tabs .ant-tabs-tab{padding-top:8px;padding-bottom:8px;font-size:16px}.ant-page-header-compact .ant-page-header-heading{flex-wrap:wrap}.ant-page-header-rtl{direction:rtl}.ant-page-header-rtl .ant-page-header-back{float:right;margin-right:0;margin-left:16px}.ant-page-header-rtl .ant-page-header-heading-title,.ant-page-header-rtl .ant-page-header-heading .ant-avatar{margin-right:0;margin-left:12px}.ant-page-header-rtl .ant-page-header-heading-sub-title{float:right;margin-right:0;margin-left:12px}.ant-page-header-rtl .ant-page-header-heading-tags{float:right}.ant-page-header-rtl .ant-page-header-heading-extra{float:left}.ant-page-header-rtl .ant-page-header-heading-extra>*{margin-right:12px;margin-left:0}.ant-page-header-rtl .ant-page-header-heading-extra>:first-child{margin-right:0}.ant-page-header-rtl .ant-page-header-footer .ant-tabs-bar .ant-tabs-nav{float:right}.ant-popconfirm{z-index:1060}.ant-progress{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";display:inline-block}.ant-progress-line{position:relative;width:100%;font-size:14px}.ant-progress-steps{display:inline-block}.ant-progress-steps-outer{display:-moz-box;display:flex;-moz-box-orient:horizontal;-moz-box-direction:normal;flex-direction:row;-moz-box-align:center;align-items:center}.ant-progress-steps-item{flex-shrink:0;min-width:2px;margin-right:2px;background:#f3f3f3;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s}.ant-progress-steps-item-active{background:#1890ff}.ant-progress-small.ant-progress-line,.ant-progress-small.ant-progress-line .ant-progress-text .anticon{font-size:12px}.ant-progress-outer{display:inline-block;width:100%;margin-right:0;padding-right:0}.ant-progress-show-info .ant-progress-outer{margin-right:calc(-2em - 8px);padding-right:calc(2em + 8px)}.ant-progress-inner{position:relative;display:inline-block;width:100%;overflow:hidden;vertical-align:middle;background-color:#f5f5f5;border-radius:100px}.ant-progress-circle-trail{stroke:#f5f5f5}.ant-progress-circle-path{-webkit-animation:ant-progress-appear .3s;-moz-animation:ant-progress-appear .3s;animation:ant-progress-appear .3s}.ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path{stroke:#1890ff}.ant-progress-bg,.ant-progress-success-bg{position:relative;background-color:#1890ff;border-radius:100px;-webkit-transition:all .4s cubic-bezier(.08,.82,.17,1) 0s;-moz-transition:all .4s cubic-bezier(.08,.82,.17,1) 0s;transition:all .4s cubic-bezier(.08,.82,.17,1) 0s}.ant-progress-success-bg{position:absolute;top:0;left:0;background-color:#52c41a}.ant-progress-text{display:inline-block;width:2em;margin-left:8px;color:rgba(0,0,0,.85);font-size:1em;line-height:1;white-space:nowrap;text-align:left;vertical-align:middle;word-break:normal}.ant-progress-text .anticon{font-size:14px}.ant-progress-status-active .ant-progress-bg:before{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;border-radius:10px;opacity:0;-webkit-animation:ant-progress-active 2.4s cubic-bezier(.23,1,.32,1) infinite;-moz-animation:ant-progress-active 2.4s cubic-bezier(.23,1,.32,1) infinite;animation:ant-progress-active 2.4s cubic-bezier(.23,1,.32,1) infinite;content:""}.ant-progress-status-exception .ant-progress-bg{background-color:#ff4d4f}.ant-progress-status-exception .ant-progress-text{color:#ff4d4f}.ant-progress-status-exception .ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path{stroke:#ff4d4f}.ant-progress-status-success .ant-progress-bg{background-color:#52c41a}.ant-progress-status-success .ant-progress-text{color:#52c41a}.ant-progress-status-success .ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path{stroke:#52c41a}.ant-progress-circle .ant-progress-inner{position:relative;line-height:1;background-color:transparent}.ant-progress-circle .ant-progress-text{position:absolute;top:50%;left:50%;width:100%;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:1em;line-height:1;white-space:normal;text-align:center;-webkit-transform:translate(-50%,-50%);-moz-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.ant-progress-circle .ant-progress-text .anticon{font-size:1.16666667em}.ant-progress-circle.ant-progress-status-exception .ant-progress-text{color:#ff4d4f}.ant-progress-circle.ant-progress-status-success .ant-progress-text{color:#52c41a}@-webkit-keyframes ant-progress-active{0%{-webkit-transform:translateX(-100%) scaleX(0);transform:translateX(-100%) scaleX(0);opacity:.1}20%{-webkit-transform:translateX(-100%) scaleX(0);transform:translateX(-100%) scaleX(0);opacity:.5}to{-webkit-transform:translateX(0) scaleX(1);transform:translateX(0) scaleX(1);opacity:0}}@-moz-keyframes ant-progress-active{0%{-moz-transform:translateX(-100%) scaleX(0);transform:translateX(-100%) scaleX(0);opacity:.1}20%{-moz-transform:translateX(-100%) scaleX(0);transform:translateX(-100%) scaleX(0);opacity:.5}to{-moz-transform:translateX(0) scaleX(1);transform:translateX(0) scaleX(1);opacity:0}}@keyframes ant-progress-active{0%{-webkit-transform:translateX(-100%) scaleX(0);-moz-transform:translateX(-100%) scaleX(0);transform:translateX(-100%) scaleX(0);opacity:.1}20%{-webkit-transform:translateX(-100%) scaleX(0);-moz-transform:translateX(-100%) scaleX(0);transform:translateX(-100%) scaleX(0);opacity:.5}to{-webkit-transform:translateX(0) scaleX(1);-moz-transform:translateX(0) scaleX(1);transform:translateX(0) scaleX(1);opacity:0}}.ant-progress-rtl{direction:rtl}.ant-progress-rtl.ant-progress-show-info .ant-progress-outer{margin-right:0;margin-left:calc(-2em - 8px);padding-right:0;padding-left:calc(2em + 8px)}.ant-progress-rtl .ant-progress-success-bg{right:0;left:auto}.ant-progress-rtl.ant-progress-line .ant-progress-text,.ant-progress-rtl.ant-progress-steps .ant-progress-text{margin-right:8px;margin-left:0;text-align:right}.ant-rate{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";display:inline-block;margin:0;padding:0;color:#fadb14;font-size:20px;line-height:unset;list-style:none;outline:none}.ant-rate-disabled .ant-rate-star{cursor:default}.ant-rate-disabled .ant-rate-star:hover{-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1)}.ant-rate-star{position:relative;display:inline-block;color:inherit;cursor:pointer}.ant-rate-star:not(:last-child){margin-right:8px}.ant-rate-star>div{-webkit-transition:all .3s,outline 0s;-moz-transition:all .3s,outline 0s;transition:all .3s,outline 0s}.ant-rate-star>div:focus-visible,.ant-rate-star>div:hover{-webkit-transform:scale(1.1);-moz-transform:scale(1.1);transform:scale(1.1)}.ant-rate-star>div:focus{outline:0}.ant-rate-star>div:focus-visible{outline:1px dashed #fadb14}.ant-rate-star-first,.ant-rate-star-second{color:#f0f0f0;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-rate-star-first .anticon,.ant-rate-star-second .anticon{vertical-align:middle}.ant-rate-star-first{position:absolute;top:0;left:0;width:50%;height:100%;overflow:hidden;opacity:0}.ant-rate-star-half .ant-rate-star-first,.ant-rate-star-half .ant-rate-star-second{opacity:1}.ant-rate-star-full .ant-rate-star-second,.ant-rate-star-half .ant-rate-star-first{color:inherit}.ant-rate-text{display:inline-block;margin:0 8px;font-size:14px}.ant-rate-rtl{direction:rtl}.ant-rate-rtl .ant-rate-star:not(:last-child){margin-right:0;margin-left:8px}.ant-rate-rtl .ant-rate-star-first{right:0;left:auto}.ant-result{padding:48px 32px}.ant-result-success .ant-result-icon>.anticon{color:#52c41a}.ant-result-error .ant-result-icon>.anticon{color:#ff4d4f}.ant-result-info .ant-result-icon>.anticon{color:#1890ff}.ant-result-warning .ant-result-icon>.anticon{color:#faad14}.ant-result-image{width:250px;height:295px;margin:auto}.ant-result-icon{margin-bottom:24px;text-align:center}.ant-result-icon>.anticon{font-size:72px}.ant-result-title{color:rgba(0,0,0,.85);font-size:24px;line-height:1.8;text-align:center}.ant-result-subtitle{color:rgba(0,0,0,.45);font-size:14px;line-height:1.6;text-align:center}.ant-result-extra{margin:24px 0 0;text-align:center}.ant-result-extra>*{margin-right:8px}.ant-result-extra>:last-child{margin-right:0}.ant-result-content{margin-top:24px;padding:24px 40px;background-color:#fafafa}.ant-result-rtl{direction:rtl}.ant-result-rtl .ant-result-extra>*{margin-right:0;margin-left:8px}.ant-result-rtl .ant-result-extra>:last-child{margin-left:0}.ant-skeleton{display:table;width:100%}.ant-skeleton-header{display:table-cell;padding-right:16px;vertical-align:top}.ant-skeleton-header .ant-skeleton-avatar{display:inline-block;vertical-align:top;background:hsla(0,0%,75%,.2);width:32px;height:32px;line-height:32px}.ant-skeleton-header .ant-skeleton-avatar.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-header .ant-skeleton-avatar-lg{width:40px;height:40px;line-height:40px}.ant-skeleton-header .ant-skeleton-avatar-lg.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-header .ant-skeleton-avatar-sm{width:24px;height:24px;line-height:24px}.ant-skeleton-header .ant-skeleton-avatar-sm.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-content{display:table-cell;width:100%;vertical-align:top}.ant-skeleton-content .ant-skeleton-title{width:100%;height:16px;margin-top:16px;background:hsla(0,0%,75%,.2);border-radius:4px}.ant-skeleton-content .ant-skeleton-title+.ant-skeleton-paragraph{margin-top:24px}.ant-skeleton-content .ant-skeleton-paragraph{padding:0}.ant-skeleton-content .ant-skeleton-paragraph>li{width:100%;height:16px;list-style:none;background:hsla(0,0%,75%,.2);border-radius:4px}.ant-skeleton-content .ant-skeleton-paragraph>li:last-child:not(:first-child):not(:nth-child(2)){width:61%}.ant-skeleton-content .ant-skeleton-paragraph>li+li{margin-top:16px}.ant-skeleton-with-avatar .ant-skeleton-content .ant-skeleton-title{margin-top:12px}.ant-skeleton-with-avatar .ant-skeleton-content .ant-skeleton-title+.ant-skeleton-paragraph{margin-top:28px}.ant-skeleton-round .ant-skeleton-content .ant-skeleton-paragraph>li,.ant-skeleton-round .ant-skeleton-content .ant-skeleton-title{border-radius:100px}.ant-skeleton.ant-skeleton-active .ant-skeleton-avatar,.ant-skeleton.ant-skeleton-active .ant-skeleton-button,.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-paragraph>li,.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-title,.ant-skeleton.ant-skeleton-active .ant-skeleton-image,.ant-skeleton.ant-skeleton-active .ant-skeleton-input{background:-webkit-gradient(linear,left top,right top,color-stop(25%,hsla(0,0%,75%,.2)),color-stop(37%,hsla(0,0%,51%,.24)),color-stop(63%,hsla(0,0%,75%,.2)));background:-webkit-linear-gradient(left,hsla(0,0%,75%,.2) 25%,hsla(0,0%,51%,.24) 37%,hsla(0,0%,75%,.2) 63%);background:-moz-linear-gradient(left,hsla(0,0%,75%,.2) 25%,hsla(0,0%,51%,.24) 37%,hsla(0,0%,75%,.2) 63%);background:linear-gradient(90deg,hsla(0,0%,75%,.2) 25%,hsla(0,0%,51%,.24) 37%,hsla(0,0%,75%,.2) 63%);background-size:400% 100%;-webkit-animation:ant-skeleton-loading 1.4s ease infinite;-moz-animation:ant-skeleton-loading 1.4s ease infinite;animation:ant-skeleton-loading 1.4s ease infinite}.ant-skeleton.ant-skeleton-block,.ant-skeleton.ant-skeleton-block .ant-skeleton-button{width:100%}.ant-skeleton-element{display:inline-block;width:auto}.ant-skeleton-element .ant-skeleton-button{display:inline-block;vertical-align:top;background:hsla(0,0%,75%,.2);border-radius:2px;width:64px;min-width:64px;height:32px;line-height:32px}.ant-skeleton-element .ant-skeleton-button.ant-skeleton-button-circle{width:32px;min-width:32px;border-radius:50%}.ant-skeleton-element .ant-skeleton-button.ant-skeleton-button-round{border-radius:32px}.ant-skeleton-element .ant-skeleton-button-lg{width:80px;min-width:80px;height:40px;line-height:40px}.ant-skeleton-element .ant-skeleton-button-lg.ant-skeleton-button-circle{width:40px;min-width:40px;border-radius:50%}.ant-skeleton-element .ant-skeleton-button-lg.ant-skeleton-button-round{border-radius:40px}.ant-skeleton-element .ant-skeleton-button-sm{width:48px;min-width:48px;height:24px;line-height:24px}.ant-skeleton-element .ant-skeleton-button-sm.ant-skeleton-button-circle{width:24px;min-width:24px;border-radius:50%}.ant-skeleton-element .ant-skeleton-button-sm.ant-skeleton-button-round{border-radius:24px}.ant-skeleton-element .ant-skeleton-avatar{display:inline-block;vertical-align:top;background:hsla(0,0%,75%,.2);width:32px;height:32px;line-height:32px}.ant-skeleton-element .ant-skeleton-avatar.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-element .ant-skeleton-avatar-lg{width:40px;height:40px;line-height:40px}.ant-skeleton-element .ant-skeleton-avatar-lg.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-element .ant-skeleton-avatar-sm{width:24px;height:24px;line-height:24px}.ant-skeleton-element .ant-skeleton-avatar-sm.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-element .ant-skeleton-input{display:inline-block;vertical-align:top;background:hsla(0,0%,75%,.2);width:100%;height:32px;line-height:32px}.ant-skeleton-element .ant-skeleton-input-lg{width:100%;height:40px;line-height:40px}.ant-skeleton-element .ant-skeleton-input-sm{width:100%;height:24px;line-height:24px}.ant-skeleton-element .ant-skeleton-image{display:-moz-box;display:flex;-moz-box-align:center;align-items:center;-moz-box-pack:center;justify-content:center;vertical-align:top;background:hsla(0,0%,75%,.2);width:96px;height:96px;line-height:96px}.ant-skeleton-element .ant-skeleton-image.ant-skeleton-image-circle{border-radius:50%}.ant-skeleton-element .ant-skeleton-image-path{fill:#bfbfbf}.ant-skeleton-element .ant-skeleton-image-svg{width:48px;height:48px;line-height:48px;max-width:192px;max-height:192px}.ant-skeleton-element .ant-skeleton-image-svg.ant-skeleton-image-circle{border-radius:50%}@-webkit-keyframes ant-skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}@-moz-keyframes ant-skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}@keyframes ant-skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}.ant-skeleton-rtl{direction:rtl}.ant-skeleton-rtl .ant-skeleton-header{padding-right:0;padding-left:16px}.ant-skeleton-rtl.ant-skeleton.ant-skeleton-active .ant-skeleton-avatar,.ant-skeleton-rtl.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-paragraph>li,.ant-skeleton-rtl.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-title{-webkit-animation-name:ant-skeleton-loading-rtl;-moz-animation-name:ant-skeleton-loading-rtl;animation-name:ant-skeleton-loading-rtl}@-webkit-keyframes ant-skeleton-loading-rtl{0%{background-position:0 50%}to{background-position:100% 50%}}@-moz-keyframes ant-skeleton-loading-rtl{0%{background-position:0 50%}to{background-position:100% 50%}}@keyframes ant-skeleton-loading-rtl{0%{background-position:0 50%}to{background-position:100% 50%}}.ant-slider{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";position:relative;height:12px;margin:10px 6px;padding:4px 0;cursor:pointer;touch-action:none}.ant-slider-vertical{width:12px;height:100%;margin:6px 10px;padding:0 4px}.ant-slider-vertical .ant-slider-rail{width:4px;height:100%}.ant-slider-vertical .ant-slider-track{width:4px}.ant-slider-vertical .ant-slider-handle{margin-top:-6px;margin-left:-5px}.ant-slider-vertical .ant-slider-mark{top:0;left:12px;width:18px;height:100%}.ant-slider-vertical .ant-slider-mark-text{left:4px;white-space:nowrap}.ant-slider-vertical .ant-slider-step{width:4px;height:100%}.ant-slider-vertical .ant-slider-dot{top:auto;left:2px;margin-bottom:-4px}.ant-slider-tooltip .ant-tooltip-inner{min-width:unset}.ant-slider-rtl.ant-slider-vertical .ant-slider-handle{margin-right:-5px;margin-left:0}.ant-slider-rtl.ant-slider-vertical .ant-slider-mark{right:12px;left:auto}.ant-slider-rtl.ant-slider-vertical .ant-slider-mark-text{right:4px;left:auto}.ant-slider-rtl.ant-slider-vertical .ant-slider-dot{right:2px;left:auto}.ant-slider-with-marks{margin-bottom:28px}.ant-slider-rail{width:100%;background-color:#f5f5f5}.ant-slider-rail,.ant-slider-track{position:absolute;height:4px;border-radius:2px;-webkit-transition:background-color .3s;-moz-transition:background-color .3s;transition:background-color .3s}.ant-slider-track{background-color:#91d5ff}.ant-slider-handle{position:absolute;width:14px;height:14px;margin-top:-5px;background-color:#fff;border:2px solid #91d5ff;border-radius:50%;-webkit-box-shadow:0;box-shadow:0;cursor:pointer;-webkit-transition:border-color .3s,-webkit-box-shadow .6s,-webkit-transform .3s cubic-bezier(.18,.89,.32,1.28);transition:border-color .3s,-webkit-box-shadow .6s,-webkit-transform .3s cubic-bezier(.18,.89,.32,1.28);-moz-transition:border-color .3s,box-shadow .6s,transform .3s cubic-bezier(.18,.89,.32,1.28),-moz-transform .3s cubic-bezier(.18,.89,.32,1.28);transition:border-color .3s,box-shadow .6s,transform .3s cubic-bezier(.18,.89,.32,1.28);transition:border-color .3s,box-shadow .6s,transform .3s cubic-bezier(.18,.89,.32,1.28),-webkit-box-shadow .6s,-webkit-transform .3s cubic-bezier(.18,.89,.32,1.28),-moz-transform .3s cubic-bezier(.18,.89,.32,1.28)}.ant-slider-handle-dragging.ant-slider-handle-dragging.ant-slider-handle-dragging,.ant-slider-handle:focus{border-color:#46a6ff;-webkit-box-shadow:0 0 0 5px rgba(24,144,255,.12);box-shadow:0 0 0 5px rgba(24,144,255,.12)}.ant-slider-handle:focus{outline:none}.ant-slider-handle.ant-tooltip-open{border-color:#1890ff}.ant-slider:hover .ant-slider-rail{background-color:#e1e1e1}.ant-slider:hover .ant-slider-track{background-color:#69c0ff}.ant-slider:hover .ant-slider-handle:not(.ant-tooltip-open){border-color:#69c0ff}.ant-slider-mark{position:absolute;top:14px;left:0;width:100%;font-size:14px}.ant-slider-mark-text{position:absolute;display:inline-block;color:rgba(0,0,0,.45);text-align:center;word-break:keep-all;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-slider-mark-text-active{color:rgba(0,0,0,.85)}.ant-slider-step{position:absolute;width:100%;height:4px;background:transparent}.ant-slider-dot{position:absolute;top:-2px;width:8px;height:8px;background-color:#fff;border:2px solid #f0f0f0;border-radius:50%;cursor:pointer}.ant-slider-dot,.ant-slider-dot:first-child,.ant-slider-dot:last-child{margin-left:-4px}.ant-slider-dot-active{border-color:#8cc8ff}.ant-slider-disabled{cursor:not-allowed}.ant-slider-disabled .ant-slider-rail{background-color:#f5f5f5!important}.ant-slider-disabled .ant-slider-track{background-color:rgba(0,0,0,.25)!important}.ant-slider-disabled .ant-slider-dot,.ant-slider-disabled .ant-slider-handle{background-color:#fff;border-color:rgba(0,0,0,.25)!important;-webkit-box-shadow:none;box-shadow:none;cursor:not-allowed}.ant-slider-disabled .ant-slider-dot,.ant-slider-disabled .ant-slider-mark-text{cursor:not-allowed!important}.ant-slider-rtl{direction:rtl}.ant-slider-rtl .ant-slider-mark{right:0;left:auto}.ant-slider-rtl .ant-slider-dot,.ant-slider-rtl .ant-slider-dot:first-child,.ant-slider-rtl .ant-slider-dot:last-child{margin-right:-4px;margin-left:0}.ant-space{display:-moz-inline-box;display:inline-flex}.ant-space-vertical{-moz-box-orient:vertical;-moz-box-direction:normal;flex-direction:column}.ant-space-align-center{-moz-box-align:center;align-items:center}.ant-space-align-start{-moz-box-align:start;align-items:flex-start}.ant-space-align-end{-moz-box-align:end;align-items:flex-end}.ant-space-align-baseline{-moz-box-align:baseline;align-items:baseline}.ant-space-item:empty{display:none}.ant-space-rtl{direction:rtl}.ant-statistic{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum"}.ant-statistic-title{margin-bottom:4px;color:rgba(0,0,0,.45);font-size:14px}.ant-statistic-content{color:rgba(0,0,0,.85);font-size:24px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.ant-statistic-content-value{display:inline-block;direction:ltr}.ant-statistic-content-prefix,.ant-statistic-content-suffix{display:inline-block}.ant-statistic-content-prefix{margin-right:4px}.ant-statistic-content-suffix{margin-left:4px}.ant-statistic-rtl{direction:rtl}.ant-statistic-rtl .ant-statistic-content-prefix{margin-right:0;margin-left:4px}.ant-statistic-rtl .ant-statistic-content-suffix{margin-right:4px;margin-left:0}.ant-steps{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";display:-moz-box;display:flex;width:100%;font-size:0;text-align:left;text-align:initial}.ant-steps-item{position:relative;display:inline-block;-moz-box-flex:1;flex:1 1;overflow:hidden;vertical-align:top}.ant-steps-item-container{outline:none}.ant-steps-item:last-child{-moz-box-flex:0;flex:none}.ant-steps-item:last-child>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title:after,.ant-steps-item:last-child>.ant-steps-item-container>.ant-steps-item-tail{display:none}.ant-steps-item-content,.ant-steps-item-icon{display:inline-block;vertical-align:top}.ant-steps-item-icon{width:32px;height:32px;margin:0 8px 0 0;font-size:16px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:32px;text-align:center;border:1px solid rgba(0,0,0,.25);border-radius:32px;-webkit-transition:background-color .3s,border-color .3s;-moz-transition:background-color .3s,border-color .3s;transition:background-color .3s,border-color .3s}.ant-steps-item-icon .ant-steps-icon{position:relative;top:-.5px;color:#1890ff;line-height:1}.ant-steps-item-tail{position:absolute;top:12px;left:0;width:100%;padding:0 10px}.ant-steps-item-tail:after{display:inline-block;width:100%;height:1px;background:#f0f0f0;border-radius:1px;-webkit-transition:background .3s;-moz-transition:background .3s;transition:background .3s;content:""}.ant-steps-item-title{position:relative;display:inline-block;padding-right:16px;color:rgba(0,0,0,.85);font-size:16px;line-height:32px}.ant-steps-item-title:after{position:absolute;top:16px;left:100%;display:block;width:9999px;height:1px;background:#f0f0f0;content:""}.ant-steps-item-subtitle{display:inline;margin-left:8px;font-weight:400}.ant-steps-item-description,.ant-steps-item-subtitle{color:rgba(0,0,0,.45);font-size:14px}.ant-steps-item-wait .ant-steps-item-icon{background-color:#fff;border-color:rgba(0,0,0,.25)}.ant-steps-item-wait .ant-steps-item-icon>.ant-steps-icon{color:rgba(0,0,0,.25)}.ant-steps-item-wait .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:rgba(0,0,0,.25)}.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:rgba(0,0,0,.45)}.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title:after{background-color:#f0f0f0}.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description{color:rgba(0,0,0,.45)}.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-tail:after{background-color:#f0f0f0}.ant-steps-item-process .ant-steps-item-icon{background-color:#fff;border-color:#1890ff}.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon{color:#1890ff}.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#1890ff}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:rgba(0,0,0,.85)}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title:after{background-color:#f0f0f0}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description{color:rgba(0,0,0,.85)}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-tail:after{background-color:#f0f0f0}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-icon{background:#1890ff}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-icon .ant-steps-icon{color:#fff}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-title{font-weight:500}.ant-steps-item-finish .ant-steps-item-icon{background-color:#fff;border-color:#1890ff}.ant-steps-item-finish .ant-steps-item-icon>.ant-steps-icon{color:#1890ff}.ant-steps-item-finish .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#1890ff}.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:rgba(0,0,0,.85)}.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title:after{background-color:#1890ff}.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description{color:rgba(0,0,0,.45)}.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-tail:after{background-color:#1890ff}.ant-steps-item-error .ant-steps-item-icon{background-color:#fff;border-color:#ff4d4f}.ant-steps-item-error .ant-steps-item-icon>.ant-steps-icon{color:#ff4d4f}.ant-steps-item-error .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#ff4d4f}.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:#ff4d4f}.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title:after{background-color:#f0f0f0}.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description{color:#ff4d4f}.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-tail:after{background-color:#f0f0f0}.ant-steps-item.ant-steps-next-error .ant-steps-item-title:after{background:#ff4d4f}.ant-steps-item-disabled{cursor:not-allowed}.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]{cursor:pointer}.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button] .ant-steps-item-description,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button] .ant-steps-item-icon .ant-steps-icon,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button] .ant-steps-item-subtitle,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button] .ant-steps-item-title{-webkit-transition:color .3s;-moz-transition:color .3s;transition:color .3s}.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]:hover .ant-steps-item-description,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]:hover .ant-steps-item-subtitle,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]:hover .ant-steps-item-title{color:#1890ff}.ant-steps .ant-steps-item:not(.ant-steps-item-active):not(.ant-steps-item-process)>.ant-steps-item-container[role=button]:hover .ant-steps-item-icon{border-color:#1890ff}.ant-steps .ant-steps-item:not(.ant-steps-item-active):not(.ant-steps-item-process)>.ant-steps-item-container[role=button]:hover .ant-steps-item-icon .ant-steps-icon{color:#1890ff}.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item{padding-left:16px;white-space:nowrap}.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:first-child{padding-left:0}.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:last-child .ant-steps-item-title{padding-right:0}.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item-tail{display:none}.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item-description{max-width:140px;white-space:normal}.ant-steps-item-custom>.ant-steps-item-container>.ant-steps-item-icon{height:auto;background:none;border:0}.ant-steps-item-custom>.ant-steps-item-container>.ant-steps-item-icon>.ant-steps-icon{top:0;left:.5px;width:32px;height:32px;font-size:24px;line-height:32px}.ant-steps-item-custom.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon{color:#1890ff}.ant-steps:not(.ant-steps-vertical) .ant-steps-item-custom .ant-steps-item-icon{width:auto;background:none}.ant-steps-small.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item{padding-left:12px}.ant-steps-small.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:first-child{padding-left:0}.ant-steps-small .ant-steps-item-icon{width:24px;height:24px;margin:0 8px 0 0;font-size:12px;line-height:24px;text-align:center;border-radius:24px}.ant-steps-small .ant-steps-item-title{padding-right:12px;font-size:14px;line-height:24px}.ant-steps-small .ant-steps-item-title:after{top:12px}.ant-steps-small .ant-steps-item-description{color:rgba(0,0,0,.45);font-size:14px}.ant-steps-small .ant-steps-item-tail{top:8px}.ant-steps-small .ant-steps-item-custom .ant-steps-item-icon{width:inherit;height:inherit;line-height:inherit;background:none;border:0;border-radius:0}.ant-steps-small .ant-steps-item-custom .ant-steps-item-icon>.ant-steps-icon{font-size:24px;line-height:24px;-webkit-transform:none;-moz-transform:none;transform:none}.ant-steps-vertical{display:-moz-box;display:flex;-moz-box-orient:vertical;-moz-box-direction:normal;flex-direction:column}.ant-steps-vertical>.ant-steps-item{display:block;-moz-box-flex:1;flex:1 0 auto;padding-left:0;overflow:visible}.ant-steps-vertical>.ant-steps-item .ant-steps-item-icon{float:left;margin-right:16px}.ant-steps-vertical>.ant-steps-item .ant-steps-item-content{display:block;min-height:48px;overflow:hidden}.ant-steps-vertical>.ant-steps-item .ant-steps-item-title{line-height:32px}.ant-steps-vertical>.ant-steps-item .ant-steps-item-description{padding-bottom:12px}.ant-steps-vertical>.ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail{position:absolute;top:0;left:16px;width:1px;height:100%;padding:38px 0 6px}.ant-steps-vertical>.ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail:after{width:1px;height:100%}.ant-steps-vertical>.ant-steps-item:not(:last-child)>.ant-steps-item-container>.ant-steps-item-tail{display:block}.ant-steps-vertical>.ant-steps-item>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title:after{display:none}.ant-steps-vertical.ant-steps-small .ant-steps-item-container .ant-steps-item-tail{position:absolute;top:0;left:12px;padding:30px 0 6px}.ant-steps-vertical.ant-steps-small .ant-steps-item-container .ant-steps-item-title{line-height:24px}.ant-steps-label-vertical .ant-steps-item{overflow:visible}.ant-steps-label-vertical .ant-steps-item-tail{margin-left:58px;padding:3.5px 24px}.ant-steps-label-vertical .ant-steps-item-content{display:block;width:116px;margin-top:8px;text-align:center}.ant-steps-label-vertical .ant-steps-item-icon{display:inline-block;margin-left:42px}.ant-steps-label-vertical .ant-steps-item-title{padding-right:0;padding-left:0}.ant-steps-label-vertical .ant-steps-item-title:after{display:none}.ant-steps-label-vertical .ant-steps-item-subtitle{display:block;margin-bottom:4px;margin-left:0;line-height:1.5715}.ant-steps-label-vertical.ant-steps-small:not(.ant-steps-dot) .ant-steps-item-icon{margin-left:46px}.ant-steps-dot .ant-steps-item-title,.ant-steps-dot.ant-steps-small .ant-steps-item-title{line-height:1.5715}.ant-steps-dot .ant-steps-item-tail,.ant-steps-dot.ant-steps-small .ant-steps-item-tail{top:2px;width:100%;margin:0 0 0 70px;padding:0}.ant-steps-dot .ant-steps-item-tail:after,.ant-steps-dot.ant-steps-small .ant-steps-item-tail:after{width:-webkit-calc(100% - 20px);width:-moz-calc(100% - 20px);width:calc(100% - 20px);height:3px;margin-left:12px}.ant-steps-dot .ant-steps-item:first-child .ant-steps-icon-dot,.ant-steps-dot.ant-steps-small .ant-steps-item:first-child .ant-steps-icon-dot{left:2px}.ant-steps-dot .ant-steps-item-icon,.ant-steps-dot.ant-steps-small .ant-steps-item-icon{width:8px;height:8px;margin-left:67px;padding-right:0;line-height:8px;background:transparent;border:0}.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot,.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot{position:relative;float:left;width:100%;height:100%;border-radius:100px;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s}.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot:after,.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot:after{position:absolute;top:-12px;left:-26px;width:60px;height:32px;background:rgba(0,0,0,.001);content:""}.ant-steps-dot .ant-steps-item-content,.ant-steps-dot.ant-steps-small .ant-steps-item-content{width:140px}.ant-steps-dot .ant-steps-item-process .ant-steps-item-icon,.ant-steps-dot.ant-steps-small .ant-steps-item-process .ant-steps-item-icon{position:relative;top:-1px;width:10px;height:10px;line-height:10px;background:none}.ant-steps-dot .ant-steps-item-process .ant-steps-icon:first-child .ant-steps-icon-dot,.ant-steps-dot.ant-steps-small .ant-steps-item-process .ant-steps-icon:first-child .ant-steps-icon-dot{left:0}.ant-steps-vertical.ant-steps-dot .ant-steps-item-icon{margin-top:13px;margin-left:0;background:none}.ant-steps-vertical.ant-steps-dot .ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail{top:6.5px;left:-9px;margin:0;padding:22px 0 4px}.ant-steps-vertical.ant-steps-dot .ant-steps-item:first-child .ant-steps-icon-dot{left:0}.ant-steps-vertical.ant-steps-dot .ant-steps-item-content{width:inherit}.ant-steps-vertical.ant-steps-dot .ant-steps-item-process .ant-steps-item-container .ant-steps-item-icon .ant-steps-icon-dot{top:-1px;left:-1px}.ant-steps-navigation{padding-top:12px}.ant-steps-navigation.ant-steps-small .ant-steps-item-container{margin-left:-12px}.ant-steps-navigation .ant-steps-item{overflow:visible;text-align:center}.ant-steps-navigation .ant-steps-item-container{display:inline-block;height:100%;margin-left:-16px;padding-bottom:12px;text-align:left;-webkit-transition:opacity .3s;-moz-transition:opacity .3s;transition:opacity .3s}.ant-steps-navigation .ant-steps-item-container .ant-steps-item-content{max-width:auto}.ant-steps-navigation .ant-steps-item-container .ant-steps-item-title{max-width:100%;padding-right:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ant-steps-navigation .ant-steps-item-container .ant-steps-item-title:after{display:none}.ant-steps-navigation .ant-steps-item:not(.ant-steps-item-active) .ant-steps-item-container[role=button]{cursor:pointer}.ant-steps-navigation .ant-steps-item:not(.ant-steps-item-active) .ant-steps-item-container[role=button]:hover{opacity:.85}.ant-steps-navigation .ant-steps-item:last-child{-moz-box-flex:1;flex:1 1}.ant-steps-navigation .ant-steps-item:last-child:after{display:none}.ant-steps-navigation .ant-steps-item:after{position:absolute;top:50%;left:100%;display:inline-block;width:12px;height:12px;margin-top:-14px;margin-left:-2px;border:1px solid rgba(0,0,0,.25);border-bottom:none;border-left:none;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);transform:rotate(45deg);content:""}.ant-steps-navigation .ant-steps-item:before{position:absolute;bottom:0;left:50%;display:inline-block;width:0;height:2px;background-color:#1890ff;-webkit-transition:width .3s,left .3s;-moz-transition:width .3s,left .3s;transition:width .3s,left .3s;-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;transition-timing-function:ease-out;content:""}.ant-steps-navigation .ant-steps-item.ant-steps-item-active:before{left:0;width:100%}.ant-steps-navigation.ant-steps-vertical>.ant-steps-item{margin-right:0!important}.ant-steps-navigation.ant-steps-vertical>.ant-steps-item:before{display:none}.ant-steps-navigation.ant-steps-vertical>.ant-steps-item.ant-steps-item-active:before{top:0;right:0;left:unset;display:block;width:3px;height:-webkit-calc(100% - 24px);height:-moz-calc(100% - 24px);height:calc(100% - 24px)}.ant-steps-navigation.ant-steps-vertical>.ant-steps-item:after{position:relative;top:-2px;left:50%;display:block;width:8px;height:8px;margin-bottom:8px;text-align:center;-webkit-transform:rotate(135deg);-moz-transform:rotate(135deg);transform:rotate(135deg)}.ant-steps-navigation.ant-steps-vertical>.ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail{visibility:hidden}.ant-steps-rtl{direction:rtl}.ant-steps.ant-steps-rtl .ant-steps-item-icon{margin-right:0;margin-left:8px}.ant-steps-rtl .ant-steps-item-tail{right:0;left:auto}.ant-steps-rtl .ant-steps-item-title{padding-right:0;padding-left:16px}.ant-steps-rtl .ant-steps-item-title:after{right:100%;left:auto}.ant-steps-rtl.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item{padding-right:16px;padding-left:0}.ant-steps-rtl.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:first-child{padding-right:0}.ant-steps-rtl.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:last-child .ant-steps-item-title{padding-left:0}.ant-steps-rtl .ant-steps-item-custom .ant-steps-item-icon>.ant-steps-icon{right:.5px;left:auto}.ant-steps-rtl.ant-steps-navigation.ant-steps-small .ant-steps-item-container{margin-right:-12px;margin-left:0}.ant-steps-rtl.ant-steps-navigation .ant-steps-item-container{margin-right:-16px;margin-left:0;text-align:right}.ant-steps-rtl.ant-steps-navigation .ant-steps-item-container .ant-steps-item-title{padding-left:0}.ant-steps-rtl.ant-steps-navigation .ant-steps-item:after{right:100%;left:auto;margin-right:-2px;margin-left:0;-webkit-transform:rotate(225deg);-moz-transform:rotate(225deg);transform:rotate(225deg)}.ant-steps-rtl.ant-steps-small.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item{padding-right:12px;padding-left:0}.ant-steps-rtl.ant-steps-small.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:first-child{padding-right:0}.ant-steps-rtl.ant-steps-small .ant-steps-item-title{padding-right:0;padding-left:12px}.ant-steps-rtl.ant-steps-vertical>.ant-steps-item .ant-steps-item-icon{float:right;margin-right:0;margin-left:16px}.ant-steps-rtl.ant-steps-vertical>.ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail{right:16px;left:auto}.ant-steps-rtl.ant-steps-vertical.ant-steps-small .ant-steps-item-container .ant-steps-item-tail{right:12px;left:auto}.ant-steps-rtl.ant-steps-label-vertical .ant-steps-item-title{padding-left:0}.ant-steps-rtl.ant-steps-dot .ant-steps-item-tail,.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item-tail{margin:0 70px 0 0}.ant-steps-rtl.ant-steps-dot .ant-steps-item-tail:after,.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item-tail:after{margin-right:12px;margin-left:0}.ant-steps-rtl.ant-steps-dot .ant-steps-item:first-child .ant-steps-icon-dot,.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item:first-child .ant-steps-icon-dot{right:2px;left:auto}.ant-steps-rtl.ant-steps-dot .ant-steps-item-icon,.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item-icon{margin-right:67px;margin-left:0}.ant-steps-rtl.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot,.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot{float:right}.ant-steps-rtl.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot:after,.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot:after{right:-26px;left:auto}.ant-steps-rtl.ant-steps-vertical.ant-steps-dot .ant-steps-item-icon{margin-right:0;margin-left:16px}.ant-steps-rtl.ant-steps-vertical.ant-steps-dot .ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail{right:-9px;left:auto}.ant-steps-rtl.ant-steps-vertical.ant-steps-dot .ant-steps-item:first-child .ant-steps-icon-dot{right:0;left:auto}.ant-steps-rtl.ant-steps-vertical.ant-steps-dot .ant-steps-item-process .ant-steps-icon-dot{right:-2px;left:auto}.ant-steps-rtl.ant-steps-with-progress.ant-steps-horizontal.ant-steps-label-horizontal .ant-steps-item:first-child.ant-steps-item-active{padding-right:4px}.ant-steps-with-progress .ant-steps-item{padding-top:4px}.ant-steps-with-progress .ant-steps-item .ant-steps-item-tail{top:4px!important}.ant-steps-with-progress.ant-steps-horizontal .ant-steps-item:first-child{padding-bottom:4px;padding-left:4px}.ant-steps-with-progress .ant-steps-item-icon{position:relative}.ant-steps-with-progress .ant-steps-item-icon .ant-progress{position:absolute;top:-5px;right:-5px;bottom:-5px;left:-5px}.ant-switch{margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";position:relative;display:inline-block;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;min-width:44px;height:22px;line-height:22px;vertical-align:middle;background-color:rgba(0,0,0,.25);border:0;border-radius:100px;cursor:pointer;-webkit-transition:all .2s;-moz-transition:all .2s;transition:all .2s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-switch:focus{outline:0;-webkit-box-shadow:0 0 0 2px rgba(0,0,0,.1);box-shadow:0 0 0 2px rgba(0,0,0,.1)}.ant-switch-checked:focus{-webkit-box-shadow:0 0 0 2px #e6f7ff;box-shadow:0 0 0 2px #e6f7ff}.ant-switch:focus:hover{-webkit-box-shadow:none;box-shadow:none}.ant-switch-checked{background-color:#1890ff}.ant-switch-disabled,.ant-switch-loading{cursor:not-allowed;opacity:.4}.ant-switch-disabled *,.ant-switch-loading *{-webkit-box-shadow:none;box-shadow:none;cursor:not-allowed}.ant-switch-inner{display:block;margin:0 7px 0 25px;color:#fff;font-size:12px;-webkit-transition:margin .2s;-moz-transition:margin .2s;transition:margin .2s}.ant-switch-checked .ant-switch-inner{margin:0 25px 0 7px}.ant-switch-handle{top:2px;left:2px;width:18px;height:18px}.ant-switch-handle,.ant-switch-handle:before{position:absolute;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.ant-switch-handle:before{top:0;right:0;bottom:0;left:0;background-color:#fff;border-radius:9px;-webkit-box-shadow:0 2px 4px 0 rgba(0,35,11,.2);box-shadow:0 2px 4px 0 rgba(0,35,11,.2);content:""}.ant-switch-checked .ant-switch-handle{left:-webkit-calc(100% - 18px - 2px);left:-moz-calc(100% - 18px - 2px);left:calc(100% - 18px - 2px)}.ant-switch:not(.ant-switch-disabled):active .ant-switch-handle:before{right:-30%;left:0}.ant-switch:not(.ant-switch-disabled):active.ant-switch-checked .ant-switch-handle:before{right:0;left:-30%}.ant-switch-loading-icon.anticon{position:relative;top:2px;color:rgba(0,0,0,.65);vertical-align:top}.ant-switch-checked .ant-switch-loading-icon{color:#1890ff}.ant-switch-small{min-width:28px;height:16px;line-height:16px}.ant-switch-small .ant-switch-inner{margin:0 5px 0 18px;font-size:12px}.ant-switch-small .ant-switch-handle{width:12px;height:12px}.ant-switch-small .ant-switch-loading-icon{top:1.5px;font-size:9px}.ant-switch-small.ant-switch-checked .ant-switch-inner{margin:0 18px 0 5px}.ant-switch-small.ant-switch-checked .ant-switch-handle{left:-webkit-calc(100% - 12px - 2px);left:-moz-calc(100% - 12px - 2px);left:calc(100% - 12px - 2px)}.ant-switch-rtl{direction:rtl}.ant-switch-rtl .ant-switch-inner{margin:0 25px 0 7px}.ant-switch-rtl .ant-switch-handle{right:2px;left:auto}.ant-switch-rtl:not(.ant-switch-rtl-disabled):active .ant-switch-handle:before{right:0;left:-30%}.ant-switch-rtl:not(.ant-switch-rtl-disabled):active.ant-switch-checked .ant-switch-handle:before{right:-30%;left:0}.ant-switch-rtl.ant-switch-checked .ant-switch-inner{margin:0 7px 0 25px}.ant-switch-rtl.ant-switch-checked .ant-switch-handle{right:-webkit-calc(100% - 18px - 2px);right:-moz-calc(100% - 18px - 2px);right:calc(100% - 18px - 2px)}.ant-switch-rtl.ant-switch-small.ant-switch-checked .ant-switch-handle{right:-webkit-calc(100% - 12px - 2px);right:-moz-calc(100% - 12px - 2px);right:calc(100% - 12px - 2px)}.ant-table.ant-table-middle{font-size:14px}.ant-table.ant-table-middle .ant-table-footer,.ant-table.ant-table-middle .ant-table-tbody>tr>td,.ant-table.ant-table-middle .ant-table-thead>tr>th,.ant-table.ant-table-middle .ant-table-title,.ant-table.ant-table-middle tfoot>tr>td,.ant-table.ant-table-middle tfoot>tr>th{padding:12px 8px}.ant-table.ant-table-middle .ant-table-filter-trigger{margin-right:-4px}.ant-table.ant-table-middle .ant-table-expanded-row-fixed{margin:-12px -8px}.ant-table.ant-table-middle .ant-table-tbody .ant-table-wrapper:only-child .ant-table{margin:-12px -8px -12px 25px}.ant-table.ant-table-small{font-size:14px}.ant-table.ant-table-small .ant-table-footer,.ant-table.ant-table-small .ant-table-tbody>tr>td,.ant-table.ant-table-small .ant-table-thead>tr>th,.ant-table.ant-table-small .ant-table-title,.ant-table.ant-table-small tfoot>tr>td,.ant-table.ant-table-small tfoot>tr>th{padding:8px}.ant-table.ant-table-small .ant-table-filter-trigger{margin-right:-4px}.ant-table.ant-table-small .ant-table-expanded-row-fixed{margin:-8px}.ant-table.ant-table-small .ant-table-tbody .ant-table-wrapper:only-child .ant-table{margin:-8px -8px -8px 25px}.ant-table-small .ant-table-thead>tr>th{background-color:#fafafa}.ant-table-small .ant-table-selection-column{width:46px;min-width:46px}.ant-table.ant-table-bordered>.ant-table-title{border:1px solid #f0f0f0;border-bottom:0}.ant-table.ant-table-bordered>.ant-table-container{border-left:1px solid #f0f0f0}.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>tbody>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>tfoot>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>tfoot>tr>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>thead>tr>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>tbody>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>tfoot>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>tfoot>tr>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>thead>tr>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>tbody>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>tfoot>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>tfoot>tr>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>thead>tr>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tbody>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tfoot>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tfoot>tr>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>thead>tr>th{border-right:1px solid #f0f0f0}.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>thead>tr:not(:last-child)>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>thead>tr:not(:last-child)>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>thead>tr:not(:last-child)>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>thead>tr:not(:last-child)>th{border-bottom:1px solid #f0f0f0}.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>thead>tr>th:before,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>thead>tr>th:before,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>thead>tr>th:before,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>thead>tr>th:before{background-color:transparent!important}.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>tbody>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>tfoot>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>thead>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>tbody>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>tfoot>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>thead>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>tbody>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>tfoot>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>thead>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tbody>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tfoot>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>thead>tr>.ant-table-cell-fix-right-first:after{border-right:1px solid #f0f0f0}.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>tbody>tr>td>.ant-table-expanded-row-fixed,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>tbody>tr>td>.ant-table-expanded-row-fixed,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>tbody>tr>td>.ant-table-expanded-row-fixed,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tbody>tr>td>.ant-table-expanded-row-fixed{margin:-16px -17px}.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>tbody>tr>td>.ant-table-expanded-row-fixed:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>tbody>tr>td>.ant-table-expanded-row-fixed:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>tbody>tr>td>.ant-table-expanded-row-fixed:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tbody>tr>td>.ant-table-expanded-row-fixed:after{position:absolute;top:0;right:1px;bottom:0;border-right:1px solid #f0f0f0;content:""}.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table{border-top:1px solid #f0f0f0}.ant-table.ant-table-bordered.ant-table-scroll-horizontal>.ant-table-container>.ant-table-body>table>tbody>tr.ant-table-expanded-row>td,.ant-table.ant-table-bordered.ant-table-scroll-horizontal>.ant-table-container>.ant-table-body>table>tbody>tr.ant-table-placeholder>td{border-right:0}.ant-table.ant-table-bordered.ant-table-middle>.ant-table-container>.ant-table-body>table>tbody>tr>td>.ant-table-expanded-row-fixed,.ant-table.ant-table-bordered.ant-table-middle>.ant-table-container>.ant-table-content>table>tbody>tr>td>.ant-table-expanded-row-fixed{margin:-12px -9px}.ant-table.ant-table-bordered.ant-table-small>.ant-table-container>.ant-table-body>table>tbody>tr>td>.ant-table-expanded-row-fixed,.ant-table.ant-table-bordered.ant-table-small>.ant-table-container>.ant-table-content>table>tbody>tr>td>.ant-table-expanded-row-fixed{margin:-8px -9px}.ant-table.ant-table-bordered>.ant-table-footer{border:1px solid #f0f0f0;border-top:0}.ant-table-cell .ant-table-container:first-child{border-top:0}.ant-table-cell-scrollbar{-webkit-box-shadow:0 1px 0 1px #fafafa;box-shadow:0 1px 0 1px #fafafa}.ant-table-wrapper{clear:both;max-width:100%}.ant-table-wrapper:before{display:table;content:""}.ant-table-wrapper:after{display:table;clear:both;content:""}.ant-table{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";position:relative;font-size:14px;background:#fff;border-radius:2px}.ant-table table{width:100%;text-align:left;border-radius:2px 2px 0 0;border-collapse:separate;border-spacing:0}.ant-table-tbody>tr>td,.ant-table-thead>tr>th,.ant-table tfoot>tr>td,.ant-table tfoot>tr>th{position:relative;padding:16px;overflow-wrap:break-word}.ant-table-cell-ellipsis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all}.ant-table-cell-ellipsis.ant-table-cell-fix-left-last,.ant-table-cell-ellipsis.ant-table-cell-fix-right-first{overflow:visible}.ant-table-cell-ellipsis.ant-table-cell-fix-left-last .ant-table-cell-content,.ant-table-cell-ellipsis.ant-table-cell-fix-right-first .ant-table-cell-content{display:block;overflow:hidden;text-overflow:ellipsis}.ant-table-cell-ellipsis .ant-table-column-title{overflow:hidden;text-overflow:ellipsis;word-break:keep-all}.ant-table-title{padding:16px}.ant-table-footer{padding:16px;color:rgba(0,0,0,.85);background:#fafafa}.ant-table-thead>tr>th{position:relative;color:rgba(0,0,0,.85);font-weight:500;text-align:left;background:#fafafa;border-bottom:1px solid #f0f0f0;-webkit-transition:background .3s ease;-moz-transition:background .3s ease;transition:background .3s ease}.ant-table-thead>tr>th[colspan]:not([colspan="1"]){text-align:center}.ant-table-thead>tr>th:not(:last-child):not(.ant-table-selection-column):not(.ant-table-row-expand-icon-cell):not([colspan]):before{position:absolute;top:50%;right:0;width:1px;height:1.6em;background-color:rgba(0,0,0,.06);-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);transform:translateY(-50%);-webkit-transition:background-color .3s;-moz-transition:background-color .3s;transition:background-color .3s;content:""}.ant-table-thead>tr:not(:last-child)>th[colspan]{border-bottom:0}.ant-table-tbody>tr>td{border-bottom:1px solid #f0f0f0;-webkit-transition:background .3s;-moz-transition:background .3s;transition:background .3s}.ant-table-tbody>tr>td>.ant-table-expanded-row-fixed>.ant-table-wrapper:only-child .ant-table,.ant-table-tbody>tr>td>.ant-table-wrapper:only-child .ant-table{margin:-16px -16px -16px 33px}.ant-table-tbody>tr>td>.ant-table-expanded-row-fixed>.ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td,.ant-table-tbody>tr>td>.ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td{border-bottom:0}.ant-table-tbody>tr>td>.ant-table-expanded-row-fixed>.ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td:first-child,.ant-table-tbody>tr>td>.ant-table-expanded-row-fixed>.ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td:last-child,.ant-table-tbody>tr>td>.ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td:first-child,.ant-table-tbody>tr>td>.ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td:last-child{border-radius:0}.ant-table-tbody>tr.ant-table-row:hover>td,.ant-table-tbody>tr>td.ant-table-cell-row-hover{background:#fafafa}.ant-table-tbody>tr.ant-table-row-selected>td{background:#e6f7ff;border-color:rgba(0,0,0,.03)}.ant-table-tbody>tr.ant-table-row-selected:hover>td{background:#dcf4ff}.ant-table-summary{position:relative;z-index:2;background:#fff}div.ant-table-summary{-webkit-box-shadow:0 -1px 0 #f0f0f0;box-shadow:0 -1px 0 #f0f0f0}.ant-table-summary>tr>td,.ant-table-summary>tr>th{border-bottom:1px solid #f0f0f0}.ant-table-pagination.ant-pagination{margin:16px 0}.ant-table-pagination{display:-moz-box;display:flex;flex-wrap:wrap;grid-row-gap:8px;row-gap:8px}.ant-table-pagination>*{-moz-box-flex:0;flex:none}.ant-table-pagination-left{-moz-box-pack:start;justify-content:flex-start}.ant-table-pagination-center{-moz-box-pack:center;justify-content:center}.ant-table-pagination-right{-moz-box-pack:end;justify-content:flex-end}.ant-table-thead th.ant-table-column-has-sorters{cursor:pointer;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s}.ant-table-thead th.ant-table-column-has-sorters:hover{background:rgba(0,0,0,.04)}.ant-table-thead th.ant-table-column-has-sorters:hover:before{background-color:transparent!important}.ant-table-thead th.ant-table-column-has-sorters.ant-table-cell-fix-left:hover,.ant-table-thead th.ant-table-column-has-sorters.ant-table-cell-fix-right:hover,.ant-table-thead th.ant-table-column-sort{background:#f5f5f5}.ant-table-thead th.ant-table-column-sort:before{background-color:transparent!important}td.ant-table-column-sort{background:#fafafa}.ant-table-column-title{position:relative;z-index:1;-moz-box-flex:1;flex:1 1}.ant-table-column-sorters{display:-moz-box;display:flex;-moz-box-flex:1;flex:auto;-moz-box-align:center;align-items:center;-moz-box-pack:justify;justify-content:space-between}.ant-table-column-sorters:after{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;content:""}.ant-table-column-sorter{margin-left:4px;color:#bfbfbf;font-size:0;-webkit-transition:color .3s;-moz-transition:color .3s;transition:color .3s}.ant-table-column-sorter-inner{display:-moz-inline-box;display:inline-flex;-moz-box-orient:vertical;-moz-box-direction:normal;flex-direction:column;-moz-box-align:center;align-items:center}.ant-table-column-sorter-down,.ant-table-column-sorter-up{font-size:11px}.ant-table-column-sorter-down.active,.ant-table-column-sorter-up.active{color:#1890ff}.ant-table-column-sorter-up+.ant-table-column-sorter-down{margin-top:-.3em}.ant-table-column-sorters:hover .ant-table-column-sorter{color:#a6a6a6}.ant-table-filter-column{display:-moz-box;display:flex;-moz-box-pack:justify;justify-content:space-between}.ant-table-filter-trigger{position:relative;display:-moz-box;display:flex;-moz-box-align:center;align-items:center;margin:-4px -8px -4px 4px;padding:0 4px;color:#bfbfbf;font-size:12px;border-radius:2px;cursor:pointer;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s}.ant-table-filter-trigger:hover{color:rgba(0,0,0,.45);background:rgba(0,0,0,.04)}.ant-table-filter-trigger.active{color:#1890ff}.ant-table-filter-dropdown{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";min-width:120px;background-color:#fff;border-radius:2px;-webkit-box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05)}.ant-table-filter-dropdown .ant-dropdown-menu{max-height:264px;overflow-x:hidden;border:0;-webkit-box-shadow:none;box-shadow:none}.ant-table-filter-dropdown .ant-dropdown-menu:empty:after{display:block;padding:8px 0;color:rgba(0,0,0,.25);font-size:12px;text-align:center;content:"Not Found"}.ant-table-filter-dropdown-tree{padding:8px 8px 0}.ant-table-filter-dropdown-tree .ant-tree-treenode .ant-tree-node-content-wrapper:hover{background-color:#f5f5f5}.ant-table-filter-dropdown-tree .ant-tree-treenode-checkbox-checked .ant-tree-node-content-wrapper,.ant-table-filter-dropdown-tree .ant-tree-treenode-checkbox-checked .ant-tree-node-content-wrapper:hover{background-color:#bae7ff}.ant-table-filter-dropdown-search{padding:8px;border-bottom:1px solid #f0f0f0}.ant-table-filter-dropdown-search-input input{min-width:140px}.ant-table-filter-dropdown-search-input .anticon{color:rgba(0,0,0,.25)}.ant-table-filter-dropdown-checkall{width:100%;margin-bottom:4px;margin-left:4px}.ant-table-filter-dropdown-submenu>ul{max-height:-webkit-calc(100vh - 130px);max-height:-moz-calc(100vh - 130px);max-height:calc(100vh - 130px);overflow-x:hidden;overflow-y:auto}.ant-table-filter-dropdown-submenu .ant-checkbox-wrapper+span,.ant-table-filter-dropdown .ant-checkbox-wrapper+span{padding-left:8px}.ant-table-filter-dropdown-btns{display:-moz-box;display:flex;-moz-box-pack:justify;justify-content:space-between;padding:7px 8px;overflow:hidden;background-color:inherit;border-top:1px solid #f0f0f0}.ant-table-selection-col{width:32px}.ant-table-bordered .ant-table-selection-col{width:50px}table tr td.ant-table-selection-column,table tr th.ant-table-selection-column{padding-right:8px;padding-left:8px;text-align:center}table tr td.ant-table-selection-column .ant-radio-wrapper,table tr th.ant-table-selection-column .ant-radio-wrapper{margin-right:0}table tr th.ant-table-selection-column.ant-table-cell-fix-left{z-index:3}table tr th.ant-table-selection-column:after{background-color:transparent!important}.ant-table-selection{position:relative;display:-moz-inline-box;display:inline-flex;-moz-box-orient:vertical;-moz-box-direction:normal;flex-direction:column}.ant-table-selection-extra{position:absolute;top:0;z-index:1;cursor:pointer;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s;-webkit-margin-start:100%;-moz-margin-start:100%;margin-inline-start:100%;-webkit-padding-start:4px;-moz-padding-start:4px;padding-inline-start:4px}.ant-table-selection-extra .anticon{color:#bfbfbf;font-size:10px}.ant-table-selection-extra .anticon:hover{color:#a6a6a6}.ant-table-expand-icon-col{width:48px}.ant-table-row-expand-icon-cell{text-align:center}.ant-table-row-indent{float:left;height:1px}.ant-table-row-expand-icon{color:#1890ff;text-decoration:none;cursor:pointer;-webkit-transition:color .3s;-moz-transition:color .3s;transition:color .3s;position:relative;display:-moz-inline-box;display:inline-flex;float:left;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;width:17px;height:17px;padding:0;color:inherit;line-height:17px;background:#fff;border:1px solid #f0f0f0;border-radius:2px;outline:none;-webkit-transform:scale(.94117647);-moz-transform:scale(.94117647);transform:scale(.94117647);-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-table-row-expand-icon:focus,.ant-table-row-expand-icon:hover{color:#40a9ff}.ant-table-row-expand-icon:active{color:#096dd9}.ant-table-row-expand-icon:active,.ant-table-row-expand-icon:focus,.ant-table-row-expand-icon:hover{border-color:currentColor}.ant-table-row-expand-icon:after,.ant-table-row-expand-icon:before{position:absolute;background:currentColor;-webkit-transition:-webkit-transform .3s ease-out;transition:-webkit-transform .3s ease-out;-moz-transition:transform .3s ease-out,-moz-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out,-moz-transform .3s ease-out;content:""}.ant-table-row-expand-icon:before{top:7px;right:3px;left:3px;height:1px}.ant-table-row-expand-icon:after{top:3px;bottom:3px;left:7px;width:1px;-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);transform:rotate(90deg)}.ant-table-row-expand-icon-collapsed:before{-webkit-transform:rotate(-180deg);-moz-transform:rotate(-180deg);transform:rotate(-180deg)}.ant-table-row-expand-icon-collapsed:after{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);transform:rotate(0deg)}.ant-table-row-expand-icon-spaced{background:transparent;border:0;visibility:hidden}.ant-table-row-expand-icon-spaced:after,.ant-table-row-expand-icon-spaced:before{display:none;content:none}.ant-table-row-indent+.ant-table-row-expand-icon{margin-top:2.5005px;margin-right:8px}tr.ant-table-expanded-row:hover>td,tr.ant-table-expanded-row>td{background:#fbfbfb}tr.ant-table-expanded-row .ant-descriptions-view{display:-moz-box;display:flex}tr.ant-table-expanded-row .ant-descriptions-view table{-moz-box-flex:1;flex:auto;width:auto}.ant-table .ant-table-expanded-row-fixed{position:relative;margin:-16px;padding:16px}.ant-table-tbody>tr.ant-table-placeholder{text-align:center}.ant-table-empty .ant-table-tbody>tr.ant-table-placeholder{color:rgba(0,0,0,.25)}.ant-table-tbody>tr.ant-table-placeholder:hover>td{background:#fff}.ant-table-cell-fix-left,.ant-table-cell-fix-right{position:sticky!important;z-index:2;background:#fff}.ant-table-cell-fix-left-first:after,.ant-table-cell-fix-left-last:after{right:0;-webkit-transform:translateX(100%);-moz-transform:translateX(100%);transform:translateX(100%)}.ant-table-cell-fix-left-first:after,.ant-table-cell-fix-left-last:after,.ant-table-cell-fix-right-first:after,.ant-table-cell-fix-right-last:after{position:absolute;top:0;bottom:-1px;width:30px;-webkit-transition:-webkit-box-shadow .3s;transition:-webkit-box-shadow .3s;-moz-transition:box-shadow .3s;transition:box-shadow .3s;transition:box-shadow .3s,-webkit-box-shadow .3s;content:"";pointer-events:none}.ant-table-cell-fix-right-first:after,.ant-table-cell-fix-right-last:after{left:0;-webkit-transform:translateX(-100%);-moz-transform:translateX(-100%);transform:translateX(-100%)}.ant-table .ant-table-container:after,.ant-table .ant-table-container:before{position:absolute;top:0;bottom:0;z-index:1;width:30px;-webkit-transition:-webkit-box-shadow .3s;transition:-webkit-box-shadow .3s;-moz-transition:box-shadow .3s;transition:box-shadow .3s;transition:box-shadow .3s,-webkit-box-shadow .3s;content:"";pointer-events:none}.ant-table .ant-table-container:before{left:0}.ant-table .ant-table-container:after{right:0}.ant-table-ping-left:not(.ant-table-has-fix-left) .ant-table-container{position:relative}.ant-table-ping-left .ant-table-cell-fix-left-first:after,.ant-table-ping-left .ant-table-cell-fix-left-last:after,.ant-table-ping-left:not(.ant-table-has-fix-left) .ant-table-container:before{-webkit-box-shadow:inset 10px 0 8px -8px rgba(0,0,0,.15);box-shadow:inset 10px 0 8px -8px rgba(0,0,0,.15)}.ant-table-ping-left .ant-table-cell-fix-left-last:before{background-color:transparent!important}.ant-table-ping-right:not(.ant-table-has-fix-right) .ant-table-container{position:relative}.ant-table-ping-right .ant-table-cell-fix-right-first:after,.ant-table-ping-right .ant-table-cell-fix-right-last:after,.ant-table-ping-right:not(.ant-table-has-fix-right) .ant-table-container:after{-webkit-box-shadow:inset -10px 0 8px -8px rgba(0,0,0,.15);box-shadow:inset -10px 0 8px -8px rgba(0,0,0,.15)}.ant-table-sticky-holder,.ant-table-sticky-scroll{position:sticky;z-index:-webkit-calc(2 + 1);z-index:-moz-calc(2 + 1);z-index:calc(2 + 1);background:#fff}.ant-table-sticky-scroll{bottom:0;display:-moz-box;display:flex;-moz-box-align:center;align-items:center;border-top:1px solid #f0f0f0;opacity:.6}.ant-table-sticky-scroll:hover{-webkit-transform-origin:center bottom;-moz-transform-origin:center bottom;transform-origin:center bottom}.ant-table-sticky-scroll-bar{height:8px;background-color:rgba(0,0,0,.35);border-radius:4px}.ant-table-sticky-scroll-bar-active,.ant-table-sticky-scroll-bar:hover{background-color:rgba(0,0,0,.8)}@media (-ms-high-contrast:none){.ant-table-ping-left .ant-table-cell-fix-left-last:after,.ant-table-ping-right .ant-table-cell-fix-right-first:after{-webkit-box-shadow:none!important;box-shadow:none!important}}.ant-table-title{border-radius:2px 2px 0 0}.ant-table-title+.ant-table-container{border-top-left-radius:0;border-top-right-radius:0}.ant-table-title+.ant-table-container table>thead>tr:first-child th:first-child,.ant-table-title+.ant-table-container table>thead>tr:first-child th:last-child{border-radius:0}.ant-table-container{border-top-right-radius:2px}.ant-table-container,.ant-table-container table>thead>tr:first-child th:first-child{border-top-left-radius:2px}.ant-table-container table>thead>tr:first-child th:last-child{border-top-right-radius:2px}.ant-table-footer{border-radius:0 0 2px 2px}.ant-table-rtl,.ant-table-wrapper-rtl{direction:rtl}.ant-table-wrapper-rtl .ant-table table{text-align:right}.ant-table-wrapper-rtl .ant-table-thead>tr>th[colspan]:not([colspan="1"]){text-align:center}.ant-table-wrapper-rtl .ant-table-thead>tr>th:not(:last-child):not(.ant-table-selection-column):not(.ant-table-row-expand-icon-cell):not([colspan]):before{right:auto;left:0}.ant-table-wrapper-rtl .ant-table-thead>tr>th{text-align:right}.ant-table-tbody>tr .ant-table-wrapper:only-child .ant-table.ant-table-rtl{margin:-16px 33px -16px -16px}.ant-table-wrapper.ant-table-wrapper-rtl .ant-table-pagination-left{-moz-box-pack:end;justify-content:flex-end}.ant-table-wrapper.ant-table-wrapper-rtl .ant-table-pagination-right{-moz-box-pack:start;justify-content:flex-start}.ant-table-wrapper-rtl .ant-table-column-sorter{margin-right:4px;margin-left:0}.ant-table-wrapper-rtl .ant-table-filter-column-title{padding:16px 16px 16px 2.3em}.ant-table-rtl .ant-table-thead tr th.ant-table-column-has-sorters .ant-table-filter-column-title{padding:0 0 0 2.3em}.ant-table-wrapper-rtl .ant-table-filter-trigger{margin:-4px 4px -4px -8px}.ant-dropdown-menu-submenu-rtl.ant-table-filter-dropdown-submenu .ant-checkbox-wrapper+span,.ant-dropdown-menu-submenu-rtl.ant-table-filter-dropdown .ant-checkbox-wrapper+span,.ant-dropdown-rtl .ant-table-filter-dropdown-submenu .ant-checkbox-wrapper+span,.ant-dropdown-rtl .ant-table-filter-dropdown .ant-checkbox-wrapper+span{padding-right:8px;padding-left:0}.ant-table-wrapper-rtl .ant-table-selection{text-align:center}.ant-table-wrapper-rtl .ant-table-row-expand-icon,.ant-table-wrapper-rtl .ant-table-row-indent{float:right}.ant-table-wrapper-rtl .ant-table-row-indent+.ant-table-row-expand-icon{margin-right:0;margin-left:8px}.ant-table-wrapper-rtl .ant-table-row-expand-icon:after{-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);transform:rotate(-90deg)}.ant-table-wrapper-rtl .ant-table-row-expand-icon-collapsed:before{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);transform:rotate(180deg)}.ant-table-wrapper-rtl .ant-table-row-expand-icon-collapsed:after{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);transform:rotate(0deg)}@-moz-keyframes ant-tree-node-fx-do-not-use{0%{opacity:0}to{opacity:1}}.ant-tree.ant-tree-directory .ant-tree-treenode{position:relative}.ant-tree.ant-tree-directory .ant-tree-treenode:before{position:absolute;top:0;right:0;bottom:4px;left:0;-webkit-transition:background-color .3s;-moz-transition:background-color .3s;transition:background-color .3s;content:"";pointer-events:none}.ant-tree.ant-tree-directory .ant-tree-treenode:hover:before{background:#f5f5f5}.ant-tree.ant-tree-directory .ant-tree-treenode>*{z-index:1}.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-switcher{-webkit-transition:color .3s;-moz-transition:color .3s;transition:color .3s}.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-node-content-wrapper{border-radius:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-node-content-wrapper:hover{background:transparent}.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-node-content-wrapper.ant-tree-node-selected{color:#fff;background:transparent}.ant-tree.ant-tree-directory .ant-tree-treenode-selected:before,.ant-tree.ant-tree-directory .ant-tree-treenode-selected:hover:before{background:#1890ff}.ant-tree.ant-tree-directory .ant-tree-treenode-selected .ant-tree-switcher{color:#fff}.ant-tree.ant-tree-directory .ant-tree-treenode-selected .ant-tree-node-content-wrapper{color:#fff;background:transparent}.ant-tree-checkbox{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";position:relative;top:.2em;line-height:1;white-space:nowrap;outline:none;cursor:pointer}.ant-tree-checkbox-input:focus+.ant-tree-checkbox-inner,.ant-tree-checkbox-wrapper:hover .ant-tree-checkbox-inner,.ant-tree-checkbox:hover .ant-tree-checkbox-inner{border-color:#1890ff}.ant-tree-checkbox-checked:after{position:absolute;top:0;left:0;width:100%;height:100%;border:1px solid #1890ff;border-radius:2px;visibility:hidden;-webkit-animation:antCheckboxEffect .36s ease-in-out;-moz-animation:antCheckboxEffect .36s ease-in-out;animation:antCheckboxEffect .36s ease-in-out;-webkit-animation-fill-mode:backwards;-moz-animation-fill-mode:backwards;animation-fill-mode:backwards;content:""}.ant-tree-checkbox-wrapper:hover .ant-tree-checkbox:after,.ant-tree-checkbox:hover:after{visibility:visible}.ant-tree-checkbox-inner{position:relative;top:0;left:0;display:block;width:16px;height:16px;direction:ltr;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;border-collapse:separate;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s}.ant-tree-checkbox-inner:after{position:absolute;top:50%;left:21.5%;display:table;width:5.71428571px;height:9.14285714px;border:2px solid #fff;border-top:0;border-left:0;-webkit-transform:rotate(45deg) scale(0) translate(-50%,-50%);-moz-transform:rotate(45deg) scale(0) translate(-50%,-50%);transform:rotate(45deg) scale(0) translate(-50%,-50%);opacity:0;-webkit-transition:all .1s cubic-bezier(.71,-.46,.88,.6),opacity .1s;-moz-transition:all .1s cubic-bezier(.71,-.46,.88,.6),opacity .1s;transition:all .1s cubic-bezier(.71,-.46,.88,.6),opacity .1s;content:" "}.ant-tree-checkbox-input{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;width:100%;height:100%;cursor:pointer;opacity:0}.ant-tree-checkbox-checked .ant-tree-checkbox-inner:after{position:absolute;display:table;border:2px solid #fff;border-top:0;border-left:0;-webkit-transform:rotate(45deg) scale(1) translate(-50%,-50%);-moz-transform:rotate(45deg) scale(1) translate(-50%,-50%);transform:rotate(45deg) scale(1) translate(-50%,-50%);opacity:1;-webkit-transition:all .2s cubic-bezier(.12,.4,.29,1.46) .1s;-moz-transition:all .2s cubic-bezier(.12,.4,.29,1.46) .1s;transition:all .2s cubic-bezier(.12,.4,.29,1.46) .1s;content:" "}.ant-tree-checkbox-checked .ant-tree-checkbox-inner{background-color:#1890ff;border-color:#1890ff}.ant-tree-checkbox-disabled{cursor:not-allowed}.ant-tree-checkbox-disabled.ant-tree-checkbox-checked .ant-tree-checkbox-inner:after{border-color:rgba(0,0,0,.25);-webkit-animation-name:none;-moz-animation-name:none;animation-name:none}.ant-tree-checkbox-disabled .ant-tree-checkbox-input{cursor:not-allowed}.ant-tree-checkbox-disabled .ant-tree-checkbox-inner{background-color:#f5f5f5;border-color:#d9d9d9!important}.ant-tree-checkbox-disabled .ant-tree-checkbox-inner:after{border-color:#f5f5f5;border-collapse:separate;-webkit-animation-name:none;-moz-animation-name:none;animation-name:none}.ant-tree-checkbox-disabled+span{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-tree-checkbox-disabled:hover:after,.ant-tree-checkbox-wrapper:hover .ant-tree-checkbox-disabled:after{visibility:hidden}.ant-tree-checkbox-wrapper{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";display:-moz-inline-box;display:inline-flex;-moz-box-align:baseline;align-items:baseline;line-height:unset;cursor:pointer}.ant-tree-checkbox-wrapper:after{display:inline-block;width:0;overflow:hidden;content:"\a0"}.ant-tree-checkbox-wrapper.ant-tree-checkbox-wrapper-disabled{cursor:not-allowed}.ant-tree-checkbox-wrapper+.ant-tree-checkbox-wrapper{margin-left:8px}.ant-tree-checkbox+span{padding-right:8px;padding-left:8px}.ant-tree-checkbox-group{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";display:inline-block}.ant-tree-checkbox-group-item{margin-right:8px}.ant-tree-checkbox-group-item:last-child{margin-right:0}.ant-tree-checkbox-group-item+.ant-tree-checkbox-group-item{margin-left:0}.ant-tree-checkbox-indeterminate .ant-tree-checkbox-inner{background-color:#fff;border-color:#d9d9d9}.ant-tree-checkbox-indeterminate .ant-tree-checkbox-inner:after{top:50%;left:50%;width:8px;height:8px;background-color:#1890ff;border:0;-webkit-transform:translate(-50%,-50%) scale(1);-moz-transform:translate(-50%,-50%) scale(1);transform:translate(-50%,-50%) scale(1);opacity:1;content:" "}.ant-tree-checkbox-indeterminate.ant-tree-checkbox-disabled .ant-tree-checkbox-inner:after{background-color:rgba(0,0,0,.25);border-color:rgba(0,0,0,.25)}.ant-tree{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";background:#fff;border-radius:2px;-webkit-transition:background-color .3s;-moz-transition:background-color .3s;transition:background-color .3s}.ant-tree-focused:not(:hover):not(.ant-tree-active-focused){background:#e6f7ff}.ant-tree-list-holder-inner{-moz-box-align:start;align-items:flex-start}.ant-tree.ant-tree-block-node .ant-tree-list-holder-inner{-moz-box-align:stretch;align-items:stretch}.ant-tree.ant-tree-block-node .ant-tree-list-holder-inner .ant-tree-node-content-wrapper{-moz-box-flex:1;flex:auto}.ant-tree.ant-tree-block-node .ant-tree-list-holder-inner .ant-tree-treenode.dragging{position:relative}.ant-tree.ant-tree-block-node .ant-tree-list-holder-inner .ant-tree-treenode.dragging:after{position:absolute;top:0;right:0;bottom:4px;left:0;border:1px solid #1890ff;opacity:0;-webkit-animation:ant-tree-node-fx-do-not-use .3s;-moz-animation:ant-tree-node-fx-do-not-use .3s;animation:ant-tree-node-fx-do-not-use .3s;-webkit-animation-play-state:running;-moz-animation-play-state:running;animation-play-state:running;-webkit-animation-fill-mode:forwards;-moz-animation-fill-mode:forwards;animation-fill-mode:forwards;content:"";pointer-events:none}.ant-tree .ant-tree-treenode{display:-moz-box;display:flex;-moz-box-align:start;align-items:flex-start;padding:0 0 4px;outline:none}.ant-tree .ant-tree-treenode-disabled .ant-tree-node-content-wrapper{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-tree .ant-tree-treenode-disabled .ant-tree-node-content-wrapper:hover{background:transparent}.ant-tree .ant-tree-treenode-active .ant-tree-node-content-wrapper{background:#f5f5f5}.ant-tree .ant-tree-treenode:not(.ant-tree .ant-tree-treenode-disabled).filter-node .ant-tree-title{color:inherit;font-weight:500}.ant-tree-indent{align-self:stretch;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-tree-indent-unit{display:inline-block;width:24px}.ant-tree-draggable-icon{width:24px;line-height:24px;text-align:center;opacity:.2;-webkit-transition:opacity .3s;-moz-transition:opacity .3s;transition:opacity .3s}.ant-tree-treenode:hover .ant-tree-draggable-icon{opacity:.45}.ant-tree-switcher{position:relative;-moz-box-flex:0;flex:none;align-self:stretch;width:24px;margin:0;line-height:24px;text-align:center;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-tree-switcher .ant-select-tree-switcher-icon,.ant-tree-switcher .ant-tree-switcher-icon{display:inline-block;font-size:10px;vertical-align:baseline}.ant-tree-switcher .ant-select-tree-switcher-icon svg,.ant-tree-switcher .ant-tree-switcher-icon svg{-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;-moz-transition:transform .3s,-moz-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s,-moz-transform .3s}.ant-tree-switcher-noop{cursor:default}.ant-tree-switcher_close .ant-tree-switcher-icon svg{-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);transform:rotate(-90deg)}.ant-tree-switcher-loading-icon{color:#1890ff}.ant-tree-switcher-leaf-line{position:relative;z-index:1;display:inline-block;width:100%;height:100%}.ant-tree-switcher-leaf-line:before{position:absolute;top:0;right:12px;bottom:-4px;margin-left:-1px;border-right:1px solid #d9d9d9;content:" "}.ant-tree-switcher-leaf-line:after{position:absolute;width:10px;height:14px;border-bottom:1px solid #d9d9d9;content:" "}.ant-tree-checkbox{top:auto;margin:4px 8px 0 0}.ant-tree .ant-tree-node-content-wrapper{position:relative;z-index:auto;min-height:24px;margin:0;padding:0 4px;color:inherit;line-height:24px;background:transparent;border-radius:2px;cursor:pointer;-webkit-transition:all .3s,border 0s,line-height 0s,-webkit-box-shadow 0s;transition:all .3s,border 0s,line-height 0s,-webkit-box-shadow 0s;-moz-transition:all .3s,border 0s,line-height 0s,box-shadow 0s;transition:all .3s,border 0s,line-height 0s,box-shadow 0s;transition:all .3s,border 0s,line-height 0s,box-shadow 0s,-webkit-box-shadow 0s}.ant-tree .ant-tree-node-content-wrapper:hover{background-color:#f5f5f5}.ant-tree .ant-tree-node-content-wrapper.ant-tree-node-selected{background-color:#bae7ff}.ant-tree .ant-tree-node-content-wrapper .ant-tree-iconEle{display:inline-block;width:24px;height:24px;line-height:24px;text-align:center;vertical-align:top}.ant-tree .ant-tree-node-content-wrapper .ant-tree-iconEle:empty{display:none}.ant-tree-unselectable .ant-tree-node-content-wrapper:hover{background-color:transparent}.ant-tree-node-content-wrapper{line-height:24px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-tree-node-content-wrapper .ant-tree-drop-indicator{position:absolute;z-index:1;height:2px;background-color:#1890ff;border-radius:1px;pointer-events:none}.ant-tree-node-content-wrapper .ant-tree-drop-indicator:after{position:absolute;top:-3px;left:-6px;width:8px;height:8px;background-color:transparent;border:2px solid #1890ff;border-radius:50%;content:""}.ant-tree .ant-tree-treenode.drop-container>[draggable]{-webkit-box-shadow:0 0 0 2px #1890ff;box-shadow:0 0 0 2px #1890ff}.ant-tree-show-line .ant-tree-indent-unit{position:relative;height:100%}.ant-tree-show-line .ant-tree-indent-unit:before{position:absolute;top:0;right:12px;bottom:-4px;border-right:1px solid #d9d9d9;content:""}.ant-tree-show-line .ant-tree-indent-unit-end:before{display:none}.ant-tree-show-line .ant-tree-switcher{background:#fff}.ant-tree-show-line .ant-tree-switcher-line-icon{vertical-align:-.15em}.ant-tree .ant-tree-treenode-leaf-last .ant-tree-switcher-leaf-line:before{top:auto!important;bottom:auto!important;height:14px!important}.ant-tree-rtl{direction:rtl}.ant-tree-rtl .ant-tree-node-content-wrapper[draggable=true] .ant-tree-drop-indicator:after{right:-6px;left:unset}.ant-tree .ant-tree-treenode-rtl{direction:rtl}.ant-tree-rtl .ant-tree-switcher_close .ant-tree-switcher-icon svg{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);transform:rotate(90deg)}.ant-tree-rtl.ant-tree-show-line .ant-tree-indent-unit:before{right:auto;left:-13px;border-right:none;border-left:1px solid #d9d9d9}.ant-tree-rtl.ant-tree-checkbox,.ant-tree-select-dropdown-rtl .ant-select-tree-checkbox{margin:4px 0 0 8px}.ant-timeline{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";margin:0;padding:0;list-style:none}.ant-timeline-item{position:relative;margin:0;padding-bottom:20px;font-size:14px;list-style:none}.ant-timeline-item-tail{position:absolute;top:10px;left:4px;height:-webkit-calc(100% - 10px);height:-moz-calc(100% - 10px);height:calc(100% - 10px);border-left:2px solid #f0f0f0}.ant-timeline-item-pending .ant-timeline-item-head{font-size:12px;background-color:transparent}.ant-timeline-item-pending .ant-timeline-item-tail{display:none}.ant-timeline-item-head{position:absolute;width:10px;height:10px;background-color:#fff;border:2px solid transparent;border-radius:100px}.ant-timeline-item-head-blue{color:#1890ff;border-color:#1890ff}.ant-timeline-item-head-red{color:#ff4d4f;border-color:#ff4d4f}.ant-timeline-item-head-green{color:#52c41a;border-color:#52c41a}.ant-timeline-item-head-gray{color:rgba(0,0,0,.25);border-color:rgba(0,0,0,.25)}.ant-timeline-item-head-custom{position:absolute;top:5.5px;left:5px;width:auto;height:auto;margin-top:0;padding:3px 1px;line-height:1;text-align:center;border:0;border-radius:0;-webkit-transform:translate(-50%,-50%);-moz-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.ant-timeline-item-content{position:relative;top:-7.001px;margin:0 0 0 26px;word-break:break-word}.ant-timeline-item-last>.ant-timeline-item-tail{display:none}.ant-timeline-item-last>.ant-timeline-item-content{min-height:48px}.ant-timeline.ant-timeline-alternate .ant-timeline-item-head,.ant-timeline.ant-timeline-alternate .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-alternate .ant-timeline-item-tail,.ant-timeline.ant-timeline-label .ant-timeline-item-head,.ant-timeline.ant-timeline-label .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-label .ant-timeline-item-tail,.ant-timeline.ant-timeline-right .ant-timeline-item-head,.ant-timeline.ant-timeline-right .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-right .ant-timeline-item-tail{left:50%}.ant-timeline.ant-timeline-alternate .ant-timeline-item-head,.ant-timeline.ant-timeline-label .ant-timeline-item-head,.ant-timeline.ant-timeline-right .ant-timeline-item-head{margin-left:-4px}.ant-timeline.ant-timeline-alternate .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-label .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-right .ant-timeline-item-head-custom{margin-left:1px}.ant-timeline.ant-timeline-alternate .ant-timeline-item-left .ant-timeline-item-content,.ant-timeline.ant-timeline-label .ant-timeline-item-left .ant-timeline-item-content,.ant-timeline.ant-timeline-right .ant-timeline-item-left .ant-timeline-item-content{left:-webkit-calc(50% - 4px);left:-moz-calc(50% - 4px);left:calc(50% - 4px);width:-webkit-calc(50% - 14px);width:-moz-calc(50% - 14px);width:calc(50% - 14px);text-align:left}.ant-timeline.ant-timeline-alternate .ant-timeline-item-right .ant-timeline-item-content,.ant-timeline.ant-timeline-label .ant-timeline-item-right .ant-timeline-item-content,.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-content{width:-webkit-calc(50% - 12px);width:-moz-calc(50% - 12px);width:calc(50% - 12px);margin:0;text-align:right}.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head,.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-tail{left:-webkit-calc(100% - 4px - 2px);left:-moz-calc(100% - 4px - 2px);left:calc(100% - 4px - 2px)}.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-content{width:-webkit-calc(100% - 18px);width:-moz-calc(100% - 18px);width:calc(100% - 18px)}.ant-timeline.ant-timeline-pending .ant-timeline-item-last .ant-timeline-item-tail{display:block;height:-webkit-calc(100% - 14px);height:-moz-calc(100% - 14px);height:calc(100% - 14px);border-left:2px dotted #f0f0f0}.ant-timeline.ant-timeline-reverse .ant-timeline-item-last .ant-timeline-item-tail{display:none}.ant-timeline.ant-timeline-reverse .ant-timeline-item-pending .ant-timeline-item-tail{top:15px;display:block;height:-webkit-calc(100% - 15px);height:-moz-calc(100% - 15px);height:calc(100% - 15px);border-left:2px dotted #f0f0f0}.ant-timeline.ant-timeline-reverse .ant-timeline-item-pending .ant-timeline-item-content{min-height:48px}.ant-timeline.ant-timeline-label .ant-timeline-item-label{position:absolute;top:-7.001px;width:-webkit-calc(50% - 12px);width:-moz-calc(50% - 12px);width:calc(50% - 12px);text-align:right}.ant-timeline.ant-timeline-label .ant-timeline-item-right .ant-timeline-item-label{left:-webkit-calc(50% + 14px);left:-moz-calc(50% + 14px);left:calc(50% + 14px);width:-webkit-calc(50% - 14px);width:-moz-calc(50% - 14px);width:calc(50% - 14px);text-align:left}.ant-timeline-rtl{direction:rtl}.ant-timeline-rtl .ant-timeline-item-tail{right:4px;left:auto;border-right:2px solid #f0f0f0;border-left:none}.ant-timeline-rtl .ant-timeline-item-head-custom{right:5px;left:auto;-webkit-transform:translate(50%,-50%);-moz-transform:translate(50%,-50%);transform:translate(50%,-50%)}.ant-timeline-rtl .ant-timeline-item-content{margin:0 18px 0 0}.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-head,.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-head-custom,.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-tail,.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-head,.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-head-custom,.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-tail,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-head,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-head-custom,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-tail{right:50%;left:auto}.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-head,.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-head,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-head{margin-right:-4px;margin-left:0}.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-head-custom,.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-head-custom,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-head-custom{margin-right:1px;margin-left:0}.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-left .ant-timeline-item-content,.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-left .ant-timeline-item-content,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-left .ant-timeline-item-content{right:-webkit-calc(50% - 4px);right:-moz-calc(50% - 4px);right:calc(50% - 4px);left:auto;text-align:right}.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-right .ant-timeline-item-content,.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-right .ant-timeline-item-content,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-content{text-align:left}.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head-custom,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-tail{right:0;left:auto}.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-content{width:100%;margin-right:18px;text-align:right}.ant-timeline-rtl.ant-timeline.ant-timeline-pending .ant-timeline-item-last .ant-timeline-item-tail,.ant-timeline-rtl.ant-timeline.ant-timeline-reverse .ant-timeline-item-pending .ant-timeline-item-tail{border-right:2px dotted #f0f0f0;border-left:none}.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-label{text-align:left}.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-right .ant-timeline-item-label{right:-webkit-calc(50% + 14px);right:-moz-calc(50% + 14px);right:calc(50% + 14px);text-align:right}.ant-transfer-customize-list .ant-transfer-list{-moz-box-flex:1;flex:1 1 50%;width:auto;height:auto;min-height:200px}.ant-transfer-customize-list .ant-table-wrapper .ant-table-small{border:0;border-radius:0}.ant-transfer-customize-list .ant-table-wrapper .ant-table-small .ant-table-selection-column{width:40px;min-width:40px}.ant-transfer-customize-list .ant-table-wrapper .ant-table-small>.ant-table-content>.ant-table-body>table>.ant-table-thead>tr>th{background:#fafafa}.ant-transfer-customize-list .ant-table-wrapper .ant-table-small>.ant-table-content .ant-table-row:last-child td{border-bottom:1px solid #f0f0f0}.ant-transfer-customize-list .ant-table-wrapper .ant-table-small .ant-table-body{margin:0}.ant-transfer-customize-list .ant-table-wrapper .ant-table-pagination.ant-pagination{margin:16px 0 4px}.ant-transfer-customize-list .ant-input[disabled]{background-color:transparent}.ant-transfer{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";position:relative;display:-moz-box;display:flex;-moz-box-align:stretch;align-items:stretch}.ant-transfer-disabled .ant-transfer-list{background:#f5f5f5}.ant-transfer-list{display:-moz-box;display:flex;-moz-box-orient:vertical;-moz-box-direction:normal;flex-direction:column;width:180px;height:200px;border:1px solid #d9d9d9;border-radius:2px}.ant-transfer-list-with-pagination{width:250px;height:auto}.ant-transfer-list-search .anticon-search{color:rgba(0,0,0,.25)}.ant-transfer-list-header{display:-moz-box;display:flex;-moz-box-flex:0;flex:none;-moz-box-align:center;align-items:center;height:40px;padding:8px 12px 9px;color:rgba(0,0,0,.85);background:#fff;border-bottom:1px solid #f0f0f0;border-radius:2px 2px 0 0}.ant-transfer-list-header>:not(:last-child){margin-right:4px}.ant-transfer-list-header>*{-moz-box-flex:0;flex:none}.ant-transfer-list-header-title{-moz-box-flex:1;flex:auto;overflow:hidden;white-space:nowrap;text-align:right;text-overflow:ellipsis}.ant-transfer-list-header-dropdown{font-size:10px;-webkit-transform:translateY(10%);-moz-transform:translateY(10%);transform:translateY(10%);cursor:pointer}.ant-transfer-list-header-dropdown[disabled]{cursor:not-allowed}.ant-transfer-list-body{display:-moz-box;display:flex;-moz-box-flex:1;flex:auto;-moz-box-orient:vertical;-moz-box-direction:normal;flex-direction:column;overflow:hidden;font-size:14px}.ant-transfer-list-body-search-wrapper{position:relative;-moz-box-flex:0;flex:none;padding:12px}.ant-transfer-list-content{-moz-box-flex:1;flex:auto;margin:0;padding:0;overflow:auto;list-style:none}.ant-transfer-list-content-item{display:-moz-box;display:flex;-moz-box-align:center;align-items:center;min-height:32px;padding:6px 12px;line-height:20px;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s}.ant-transfer-list-content-item>:not(:last-child){margin-right:8px}.ant-transfer-list-content-item>*{-moz-box-flex:0;flex:none}.ant-transfer-list-content-item-text{-moz-box-flex:1;flex:auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ant-transfer-list-content-item-remove{color:#1890ff;text-decoration:none;outline:none;cursor:pointer;-webkit-transition:color .3s;-moz-transition:color .3s;transition:color .3s;position:relative;color:#d9d9d9}.ant-transfer-list-content-item-remove:focus,.ant-transfer-list-content-item-remove:hover{color:#40a9ff}.ant-transfer-list-content-item-remove:active{color:#096dd9}.ant-transfer-list-content-item-remove:after{position:absolute;top:-6px;right:-50%;bottom:-6px;left:-50%;content:""}.ant-transfer-list-content-item-remove:hover{color:#40a9ff}.ant-transfer-list-content-item:not(.ant-transfer-list-content-item-disabled):hover{background-color:#f5f5f5;cursor:pointer}.ant-transfer-list-content-item:not(.ant-transfer-list-content-item-disabled).ant-transfer-list-content-item-checked:hover{background-color:#dcf4ff}.ant-transfer-list-content-show-remove .ant-transfer-list-content-item:not(.ant-transfer-list-content-item-disabled):hover{background:transparent;cursor:default}.ant-transfer-list-content-item-checked{background-color:#e6f7ff}.ant-transfer-list-content-item-disabled{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-transfer-list-pagination{padding:8px 0;text-align:right;border-top:1px solid #f0f0f0}.ant-transfer-list-body-not-found{-moz-box-flex:0;flex:none;width:100%;margin:auto 0;color:rgba(0,0,0,.25);text-align:center}.ant-transfer-list-footer{border-top:1px solid #f0f0f0}.ant-transfer-operation{display:-moz-box;display:flex;-moz-box-flex:0;flex:none;-moz-box-orient:vertical;-moz-box-direction:normal;flex-direction:column;align-self:center;margin:0 8px;vertical-align:middle}.ant-transfer-operation .ant-btn{display:block}.ant-transfer-operation .ant-btn:first-child{margin-bottom:4px}.ant-transfer-operation .ant-btn .anticon{font-size:12px}.ant-transfer .ant-empty-image{max-height:-2px}.ant-transfer-rtl{direction:rtl}.ant-transfer-rtl .ant-transfer-list-search{padding-right:8px;padding-left:24px}.ant-transfer-rtl .ant-transfer-list-search-action{right:auto;left:12px}.ant-transfer-rtl .ant-transfer-list-header>:not(:last-child){margin-right:0;margin-left:4px}.ant-transfer-rtl .ant-transfer-list-header{right:0;left:auto}.ant-transfer-rtl .ant-transfer-list-header-title{text-align:left}.ant-transfer-rtl .ant-transfer-list-content-item>:not(:last-child){margin-right:0;margin-left:8px}.ant-transfer-rtl .ant-transfer-list-pagination{text-align:left}.ant-transfer-rtl .ant-transfer-list-footer{right:0;left:auto}@-webkit-keyframes ant-tree-node-fx-do-not-use{0%{opacity:0}to{opacity:1}}@keyframes ant-tree-node-fx-do-not-use{0%{opacity:0}to{opacity:1}}@-webkit-keyframes antCheckboxEffect{0%{-webkit-transform:scale(1);transform:scale(1);opacity:.5}to{-webkit-transform:scale(1.6);transform:scale(1.6);opacity:0}}@keyframes antCheckboxEffect{0%{-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1);opacity:.5}to{-webkit-transform:scale(1.6);-moz-transform:scale(1.6);transform:scale(1.6);opacity:0}}.ant-select-tree-checkbox{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";position:relative;top:.2em;line-height:1;white-space:nowrap;outline:none;cursor:pointer}.ant-select-tree-checkbox-input:focus+.ant-select-tree-checkbox-inner,.ant-select-tree-checkbox-wrapper:hover .ant-select-tree-checkbox-inner,.ant-select-tree-checkbox:hover .ant-select-tree-checkbox-inner{border-color:#1890ff}.ant-select-tree-checkbox-checked:after{position:absolute;top:0;left:0;width:100%;height:100%;border:1px solid #1890ff;border-radius:2px;visibility:hidden;-webkit-animation:antCheckboxEffect .36s ease-in-out;-moz-animation:antCheckboxEffect .36s ease-in-out;animation:antCheckboxEffect .36s ease-in-out;-webkit-animation-fill-mode:backwards;-moz-animation-fill-mode:backwards;animation-fill-mode:backwards;content:""}.ant-select-tree-checkbox-wrapper:hover .ant-select-tree-checkbox:after,.ant-select-tree-checkbox:hover:after{visibility:visible}.ant-select-tree-checkbox-inner{position:relative;top:0;left:0;display:block;width:16px;height:16px;direction:ltr;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;border-collapse:separate;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s}.ant-select-tree-checkbox-inner:after{position:absolute;top:50%;left:21.5%;display:table;width:5.71428571px;height:9.14285714px;border:2px solid #fff;border-top:0;border-left:0;-webkit-transform:rotate(45deg) scale(0) translate(-50%,-50%);-moz-transform:rotate(45deg) scale(0) translate(-50%,-50%);transform:rotate(45deg) scale(0) translate(-50%,-50%);opacity:0;-webkit-transition:all .1s cubic-bezier(.71,-.46,.88,.6),opacity .1s;-moz-transition:all .1s cubic-bezier(.71,-.46,.88,.6),opacity .1s;transition:all .1s cubic-bezier(.71,-.46,.88,.6),opacity .1s;content:" "}.ant-select-tree-checkbox-input{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;width:100%;height:100%;cursor:pointer;opacity:0}.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner:after{position:absolute;display:table;border:2px solid #fff;border-top:0;border-left:0;-webkit-transform:rotate(45deg) scale(1) translate(-50%,-50%);-moz-transform:rotate(45deg) scale(1) translate(-50%,-50%);transform:rotate(45deg) scale(1) translate(-50%,-50%);opacity:1;-webkit-transition:all .2s cubic-bezier(.12,.4,.29,1.46) .1s;-moz-transition:all .2s cubic-bezier(.12,.4,.29,1.46) .1s;transition:all .2s cubic-bezier(.12,.4,.29,1.46) .1s;content:" "}.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner{background-color:#1890ff;border-color:#1890ff}.ant-select-tree-checkbox-disabled{cursor:not-allowed}.ant-select-tree-checkbox-disabled.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner:after{border-color:rgba(0,0,0,.25);-webkit-animation-name:none;-moz-animation-name:none;animation-name:none}.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-input{cursor:not-allowed}.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner{background-color:#f5f5f5;border-color:#d9d9d9!important}.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner:after{border-color:#f5f5f5;border-collapse:separate;-webkit-animation-name:none;-moz-animation-name:none;animation-name:none}.ant-select-tree-checkbox-disabled+span{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-select-tree-checkbox-disabled:hover:after,.ant-select-tree-checkbox-wrapper:hover .ant-select-tree-checkbox-disabled:after{visibility:hidden}.ant-select-tree-checkbox-wrapper{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";display:-moz-inline-box;display:inline-flex;-moz-box-align:baseline;align-items:baseline;line-height:unset;cursor:pointer}.ant-select-tree-checkbox-wrapper:after{display:inline-block;width:0;overflow:hidden;content:"\a0"}.ant-select-tree-checkbox-wrapper.ant-select-tree-checkbox-wrapper-disabled{cursor:not-allowed}.ant-select-tree-checkbox-wrapper+.ant-select-tree-checkbox-wrapper{margin-left:8px}.ant-select-tree-checkbox+span{padding-right:8px;padding-left:8px}.ant-select-tree-checkbox-group{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";display:inline-block}.ant-select-tree-checkbox-group-item{margin-right:8px}.ant-select-tree-checkbox-group-item:last-child{margin-right:0}.ant-select-tree-checkbox-group-item+.ant-select-tree-checkbox-group-item{margin-left:0}.ant-select-tree-checkbox-indeterminate .ant-select-tree-checkbox-inner{background-color:#fff;border-color:#d9d9d9}.ant-select-tree-checkbox-indeterminate .ant-select-tree-checkbox-inner:after{top:50%;left:50%;width:8px;height:8px;background-color:#1890ff;border:0;-webkit-transform:translate(-50%,-50%) scale(1);-moz-transform:translate(-50%,-50%) scale(1);transform:translate(-50%,-50%) scale(1);opacity:1;content:" "}.ant-select-tree-checkbox-indeterminate.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner:after{background-color:rgba(0,0,0,.25);border-color:rgba(0,0,0,.25)}.ant-tree-select-dropdown{padding:8px 4px}.ant-tree-select-dropdown-rtl{direction:rtl}.ant-tree-select-dropdown .ant-select-tree{border-radius:0}.ant-tree-select-dropdown .ant-select-tree-list-holder-inner{-moz-box-align:stretch;align-items:stretch}.ant-tree-select-dropdown .ant-select-tree-list-holder-inner .ant-select-tree-treenode .ant-select-tree-node-content-wrapper{-moz-box-flex:1;flex:auto}.ant-select-tree{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";background:#fff;border-radius:2px;-webkit-transition:background-color .3s;-moz-transition:background-color .3s;transition:background-color .3s}.ant-select-tree-focused:not(:hover):not(.ant-select-tree-active-focused){background:#e6f7ff}.ant-select-tree-list-holder-inner{-moz-box-align:start;align-items:flex-start}.ant-select-tree.ant-select-tree-block-node .ant-select-tree-list-holder-inner{-moz-box-align:stretch;align-items:stretch}.ant-select-tree.ant-select-tree-block-node .ant-select-tree-list-holder-inner .ant-select-tree-node-content-wrapper{-moz-box-flex:1;flex:auto}.ant-select-tree.ant-select-tree-block-node .ant-select-tree-list-holder-inner .ant-select-tree-treenode.dragging{position:relative}.ant-select-tree.ant-select-tree-block-node .ant-select-tree-list-holder-inner .ant-select-tree-treenode.dragging:after{position:absolute;top:0;right:0;bottom:4px;left:0;border:1px solid #1890ff;opacity:0;-webkit-animation:ant-tree-node-fx-do-not-use .3s;-moz-animation:ant-tree-node-fx-do-not-use .3s;animation:ant-tree-node-fx-do-not-use .3s;-webkit-animation-play-state:running;-moz-animation-play-state:running;animation-play-state:running;-webkit-animation-fill-mode:forwards;-moz-animation-fill-mode:forwards;animation-fill-mode:forwards;content:"";pointer-events:none}.ant-select-tree .ant-select-tree-treenode{display:-moz-box;display:flex;-moz-box-align:start;align-items:flex-start;padding:0 0 4px;outline:none}.ant-select-tree .ant-select-tree-treenode-disabled .ant-select-tree-node-content-wrapper{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-select-tree .ant-select-tree-treenode-disabled .ant-select-tree-node-content-wrapper:hover{background:transparent}.ant-select-tree .ant-select-tree-treenode-active .ant-select-tree-node-content-wrapper{background:#f5f5f5}.ant-select-tree .ant-select-tree-treenode:not(.ant-select-tree .ant-select-tree-treenode-disabled).filter-node .ant-select-tree-title{color:inherit;font-weight:500}.ant-select-tree-indent{align-self:stretch;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-select-tree-indent-unit{display:inline-block;width:24px}.ant-select-tree-draggable-icon{width:24px;line-height:24px;text-align:center;opacity:.2;-webkit-transition:opacity .3s;-moz-transition:opacity .3s;transition:opacity .3s}.ant-select-tree-treenode:hover .ant-select-tree-draggable-icon{opacity:.45}.ant-select-tree-switcher{position:relative;-moz-box-flex:0;flex:none;align-self:stretch;width:24px;margin:0;line-height:24px;text-align:center;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-select-tree-switcher .ant-select-tree-switcher-icon,.ant-select-tree-switcher .ant-tree-switcher-icon{display:inline-block;font-size:10px;vertical-align:baseline}.ant-select-tree-switcher .ant-select-tree-switcher-icon svg,.ant-select-tree-switcher .ant-tree-switcher-icon svg{-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;-moz-transition:transform .3s,-moz-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s,-moz-transform .3s}.ant-select-tree-switcher-noop{cursor:default}.ant-select-tree-switcher_close .ant-select-tree-switcher-icon svg{-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);transform:rotate(-90deg)}.ant-select-tree-switcher-loading-icon{color:#1890ff}.ant-select-tree-switcher-leaf-line{position:relative;z-index:1;display:inline-block;width:100%;height:100%}.ant-select-tree-switcher-leaf-line:before{position:absolute;top:0;right:12px;bottom:-4px;margin-left:-1px;border-right:1px solid #d9d9d9;content:" "}.ant-select-tree-switcher-leaf-line:after{position:absolute;width:10px;height:14px;border-bottom:1px solid #d9d9d9;content:" "}.ant-select-tree-checkbox{top:auto;margin:4px 8px 0 0}.ant-select-tree .ant-select-tree-node-content-wrapper{position:relative;z-index:auto;min-height:24px;margin:0;padding:0 4px;color:inherit;line-height:24px;background:transparent;border-radius:2px;cursor:pointer;-webkit-transition:all .3s,border 0s,line-height 0s,-webkit-box-shadow 0s;transition:all .3s,border 0s,line-height 0s,-webkit-box-shadow 0s;-moz-transition:all .3s,border 0s,line-height 0s,box-shadow 0s;transition:all .3s,border 0s,line-height 0s,box-shadow 0s;transition:all .3s,border 0s,line-height 0s,box-shadow 0s,-webkit-box-shadow 0s}.ant-select-tree .ant-select-tree-node-content-wrapper:hover{background-color:#f5f5f5}.ant-select-tree .ant-select-tree-node-content-wrapper.ant-select-tree-node-selected{background-color:#bae7ff}.ant-select-tree .ant-select-tree-node-content-wrapper .ant-select-tree-iconEle{display:inline-block;width:24px;height:24px;line-height:24px;text-align:center;vertical-align:top}.ant-select-tree .ant-select-tree-node-content-wrapper .ant-select-tree-iconEle:empty{display:none}.ant-select-tree-unselectable .ant-select-tree-node-content-wrapper:hover{background-color:transparent}.ant-select-tree-node-content-wrapper{line-height:24px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-select-tree-node-content-wrapper .ant-tree-drop-indicator{position:absolute;z-index:1;height:2px;background-color:#1890ff;border-radius:1px;pointer-events:none}.ant-select-tree-node-content-wrapper .ant-tree-drop-indicator:after{position:absolute;top:-3px;left:-6px;width:8px;height:8px;background-color:transparent;border:2px solid #1890ff;border-radius:50%;content:""}.ant-select-tree .ant-select-tree-treenode.drop-container>[draggable]{-webkit-box-shadow:0 0 0 2px #1890ff;box-shadow:0 0 0 2px #1890ff}.ant-select-tree-show-line .ant-select-tree-indent-unit{position:relative;height:100%}.ant-select-tree-show-line .ant-select-tree-indent-unit:before{position:absolute;top:0;right:12px;bottom:-4px;border-right:1px solid #d9d9d9;content:""}.ant-select-tree-show-line .ant-select-tree-indent-unit-end:before{display:none}.ant-select-tree-show-line .ant-select-tree-switcher{background:#fff}.ant-select-tree-show-line .ant-select-tree-switcher-line-icon{vertical-align:-.15em}.ant-select-tree .ant-select-tree-treenode-leaf-last .ant-select-tree-switcher-leaf-line:before{top:auto!important;bottom:auto!important;height:14px!important}.ant-tree-select-dropdown-rtl .ant-select-tree .ant-select-tree-switcher_close .ant-select-tree-switcher-icon svg{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);transform:rotate(90deg)}.ant-tree-select-dropdown-rtl .ant-select-tree .ant-select-tree-switcher-loading-icon{-webkit-transform:scaleY(-1);-moz-transform:scaleY(-1);transform:scaleY(-1)}.ant-typography{color:rgba(0,0,0,.85);overflow-wrap:break-word}.ant-typography.ant-typography-secondary{color:rgba(0,0,0,.45)}.ant-typography.ant-typography-success{color:#52c41a}.ant-typography.ant-typography-warning{color:#faad14}.ant-typography.ant-typography-danger{color:#ff4d4f}a.ant-typography.ant-typography-danger:active,a.ant-typography.ant-typography-danger:focus,a.ant-typography.ant-typography-danger:hover{color:#ff7875}.ant-typography.ant-typography-disabled{color:rgba(0,0,0,.25);cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-typography p,div.ant-typography{margin-bottom:1em}.ant-typography h1,h1.ant-typography{margin-bottom:.5em;color:rgba(0,0,0,.85);font-weight:600;font-size:38px;line-height:1.23}.ant-typography h2,h2.ant-typography{margin-bottom:.5em;color:rgba(0,0,0,.85);font-weight:600;font-size:30px;line-height:1.35}.ant-typography h3,h3.ant-typography{margin-bottom:.5em;color:rgba(0,0,0,.85);font-weight:600;font-size:24px;line-height:1.35}.ant-typography h4,h4.ant-typography{margin-bottom:.5em;color:rgba(0,0,0,.85);font-weight:600;font-size:20px;line-height:1.4}.ant-typography h5,h5.ant-typography{margin-bottom:.5em;color:rgba(0,0,0,.85);font-weight:600;font-size:16px;line-height:1.5}.ant-typography+h1.ant-typography,.ant-typography+h2.ant-typography,.ant-typography+h3.ant-typography,.ant-typography+h4.ant-typography,.ant-typography+h5.ant-typography,.ant-typography div+h1,.ant-typography div+h2,.ant-typography div+h3,.ant-typography div+h4,.ant-typography div+h5,.ant-typography h1+h1,.ant-typography h1+h2,.ant-typography h1+h3,.ant-typography h1+h4,.ant-typography h1+h5,.ant-typography h2+h1,.ant-typography h2+h2,.ant-typography h2+h3,.ant-typography h2+h4,.ant-typography h2+h5,.ant-typography h3+h1,.ant-typography h3+h2,.ant-typography h3+h3,.ant-typography h3+h4,.ant-typography h3+h5,.ant-typography h4+h1,.ant-typography h4+h2,.ant-typography h4+h3,.ant-typography h4+h4,.ant-typography h4+h5,.ant-typography h5+h1,.ant-typography h5+h2,.ant-typography h5+h3,.ant-typography h5+h4,.ant-typography h5+h5,.ant-typography li+h1,.ant-typography li+h2,.ant-typography li+h3,.ant-typography li+h4,.ant-typography li+h5,.ant-typography p+h1,.ant-typography p+h2,.ant-typography p+h3,.ant-typography p+h4,.ant-typography p+h5,.ant-typography ul+h1,.ant-typography ul+h2,.ant-typography ul+h3,.ant-typography ul+h4,.ant-typography ul+h5{margin-top:1.2em}a.ant-typography-ellipsis,span.ant-typography-ellipsis{display:inline-block;max-width:100%}.ant-typography a,a.ant-typography{color:#1890ff;outline:none;cursor:pointer;-webkit-transition:color .3s;-moz-transition:color .3s;transition:color .3s;text-decoration:none}.ant-typography a:focus,.ant-typography a:hover,a.ant-typography:focus,a.ant-typography:hover{color:#40a9ff}.ant-typography a:active,a.ant-typography:active{color:#096dd9}.ant-typography a:active,.ant-typography a:hover,a.ant-typography:active,a.ant-typography:hover{text-decoration:none}.ant-typography a.ant-typography-disabled,.ant-typography a[disabled],a.ant-typography.ant-typography-disabled,a.ant-typography[disabled]{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-typography a.ant-typography-disabled:active,.ant-typography a.ant-typography-disabled:hover,.ant-typography a[disabled]:active,.ant-typography a[disabled]:hover,a.ant-typography.ant-typography-disabled:active,a.ant-typography.ant-typography-disabled:hover,a.ant-typography[disabled]:active,a.ant-typography[disabled]:hover{color:rgba(0,0,0,.25)}.ant-typography a.ant-typography-disabled:active,.ant-typography a[disabled]:active,a.ant-typography.ant-typography-disabled:active,a.ant-typography[disabled]:active{pointer-events:none}.ant-typography code{margin:0 .2em;padding:.2em .4em .1em;font-size:85%;background:hsla(0,0%,59%,.1);border:1px solid hsla(0,0%,39%,.2);border-radius:3px}.ant-typography kbd{margin:0 .2em;padding:.15em .4em .1em;font-size:90%;background:hsla(0,0%,59%,.06);border:solid hsla(0,0%,39%,.2);border-width:1px 1px 2px;border-radius:3px}.ant-typography mark{padding:0;background-color:#ffe58f}.ant-typography ins,.ant-typography u{text-decoration:underline;-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}.ant-typography del,.ant-typography s{text-decoration:line-through}.ant-typography strong{font-weight:600}.ant-typography-copy,.ant-typography-edit,.ant-typography-expand{color:#1890ff;text-decoration:none;outline:none;cursor:pointer;-webkit-transition:color .3s;-moz-transition:color .3s;transition:color .3s;margin-left:4px}.ant-typography-copy:focus,.ant-typography-copy:hover,.ant-typography-edit:focus,.ant-typography-edit:hover,.ant-typography-expand:focus,.ant-typography-expand:hover{color:#40a9ff}.ant-typography-copy:active,.ant-typography-edit:active,.ant-typography-expand:active{color:#096dd9}.ant-typography-copy-success,.ant-typography-copy-success:focus,.ant-typography-copy-success:hover{color:#52c41a}.ant-typography-edit-content{position:relative}div.ant-typography-edit-content{left:-12px;margin-top:-5px;margin-bottom:calc(1em - 4px - 1px)}.ant-typography-edit-content-confirm{position:absolute;right:10px;bottom:8px;color:rgba(0,0,0,.45);pointer-events:none}.ant-typography-edit-content textarea{-moz-transition:none}.ant-typography ol,.ant-typography ul{margin:0 0 1em;padding:0}.ant-typography ol li,.ant-typography ul li{margin:0 0 0 20px;padding:0 0 0 4px}.ant-typography ul{list-style-type:circle}.ant-typography ul ul{list-style-type:disc}.ant-typography ol{list-style-type:decimal}.ant-typography blockquote,.ant-typography pre{margin:1em 0}.ant-typography pre{padding:.4em .6em;white-space:pre-wrap;word-wrap:break-word;background:hsla(0,0%,59%,.1);border:1px solid hsla(0,0%,39%,.2);border-radius:3px}.ant-typography pre code{display:inline;margin:0;padding:0;font-size:inherit;font-family:inherit;background:transparent;border:0}.ant-typography blockquote{padding:0 0 0 .6em;border-left:4px solid hsla(0,0%,39%,.2);opacity:.85}.ant-typography-single-line{white-space:nowrap}.ant-typography-ellipsis-single-line{overflow:hidden;text-overflow:ellipsis}a.ant-typography-ellipsis-single-line,span.ant-typography-ellipsis-single-line{vertical-align:bottom}.ant-typography-ellipsis-multiple-line{display:-webkit-box;overflow:hidden;-webkit-line-clamp:3;
+ /*! autoprefixer: ignore next */-webkit-box-orient:vertical}.ant-typography-rtl{direction:rtl}.ant-typography-rtl .ant-typography-copy,.ant-typography-rtl .ant-typography-edit,.ant-typography-rtl .ant-typography-expand{margin-right:4px;margin-left:0}.ant-typography-rtl .ant-typography-expand{float:left}div.ant-typography-edit-content.ant-typography-rtl{right:-12px;left:auto}.ant-typography-rtl .ant-typography-edit-content-confirm{right:auto;left:10px}.ant-typography-rtl.ant-typography ol li,.ant-typography-rtl.ant-typography ul li{margin:0 20px 0 0;padding:0 4px 0 0}.ant-upload{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";outline:0}.ant-upload p{margin:0}.ant-upload-btn{display:block;width:100%;outline:none}.ant-upload input[type=file]{cursor:pointer}.ant-upload.ant-upload-select{display:inline-block}.ant-upload.ant-upload-disabled{cursor:not-allowed}.ant-upload.ant-upload-select-picture-card{width:104px;height:104px;margin-right:8px;margin-bottom:8px;text-align:center;vertical-align:top;background-color:#fafafa;border:1px dashed #d9d9d9;border-radius:2px;cursor:pointer;-webkit-transition:border-color .3s;-moz-transition:border-color .3s;transition:border-color .3s}.ant-upload.ant-upload-select-picture-card>.ant-upload{display:-moz-box;display:flex;-moz-box-align:center;align-items:center;-moz-box-pack:center;justify-content:center;height:100%;text-align:center}.ant-upload.ant-upload-select-picture-card:hover{border-color:#1890ff}.ant-upload-disabled.ant-upload.ant-upload-select-picture-card:hover{border-color:#d9d9d9}.ant-upload.ant-upload-drag{position:relative;width:100%;height:100%;text-align:center;background:#fafafa;border:1px dashed #d9d9d9;border-radius:2px;cursor:pointer;-webkit-transition:border-color .3s;-moz-transition:border-color .3s;transition:border-color .3s}.ant-upload.ant-upload-drag .ant-upload{padding:16px 0}.ant-upload.ant-upload-drag.ant-upload-drag-hover:not(.ant-upload-disabled){border-color:#096dd9}.ant-upload.ant-upload-drag.ant-upload-disabled{cursor:not-allowed}.ant-upload.ant-upload-drag .ant-upload-btn{display:table;height:100%}.ant-upload.ant-upload-drag .ant-upload-drag-container{display:table-cell;vertical-align:middle}.ant-upload.ant-upload-drag:not(.ant-upload-disabled):hover{border-color:#40a9ff}.ant-upload.ant-upload-drag p.ant-upload-drag-icon{margin-bottom:20px}.ant-upload.ant-upload-drag p.ant-upload-drag-icon .anticon{color:#40a9ff;font-size:48px}.ant-upload.ant-upload-drag p.ant-upload-text{margin:0 0 4px;color:rgba(0,0,0,.85);font-size:16px}.ant-upload.ant-upload-drag p.ant-upload-hint{color:rgba(0,0,0,.45);font-size:14px}.ant-upload.ant-upload-drag .anticon-plus{color:rgba(0,0,0,.25);font-size:30px;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s}.ant-upload.ant-upload-drag .anticon-plus:hover,.ant-upload.ant-upload-drag:hover .anticon-plus{color:rgba(0,0,0,.45)}.ant-upload-picture-card-wrapper{display:inline-block;width:100%}.ant-upload-picture-card-wrapper:before{display:table;content:""}.ant-upload-picture-card-wrapper:after{display:table;clear:both;content:""}.ant-upload-list{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.85);font-size:14px;font-variant:tabular-nums;list-style:none;-webkit-font-feature-settings:"tnum","tnum";-moz-font-feature-settings:"tnum","tnum";font-feature-settings:"tnum","tnum";line-height:1.5715}.ant-upload-list:after,.ant-upload-list:before{display:table;content:""}.ant-upload-list:after{clear:both}.ant-upload-list-item{position:relative;height:22.001px;margin-top:8px;font-size:14px}.ant-upload-list-item-name{display:inline-block;width:100%;padding-left:22px;overflow:hidden;line-height:1.5715;white-space:nowrap;text-overflow:ellipsis}.ant-upload-list-item-card-actions{position:absolute;right:0}.ant-upload-list-item-card-actions-btn{opacity:0}.ant-upload-list-item-card-actions-btn.ant-btn-sm{height:20px;line-height:1}.ant-upload-list-item-card-actions.picture{top:22px;line-height:0}.ant-upload-list-item-card-actions-btn:focus,.ant-upload-list-item-card-actions.picture .ant-upload-list-item-card-actions-btn{opacity:1}.ant-upload-list-item-card-actions .anticon{color:rgba(0,0,0,.45)}.ant-upload-list-item-info{height:100%;padding:0 4px;-webkit-transition:background-color .3s;-moz-transition:background-color .3s;transition:background-color .3s}.ant-upload-list-item-info>span{display:block;width:100%;height:100%}.ant-upload-list-item-info .ant-upload-text-icon .anticon,.ant-upload-list-item-info .anticon-loading .anticon{position:absolute;top:5px;color:rgba(0,0,0,.45);font-size:14px}.ant-upload-list-item .anticon-close{position:absolute;top:6px;right:4px;color:rgba(0,0,0,.45);font-size:10px;line-height:0;cursor:pointer;opacity:0;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s}.ant-upload-list-item .anticon-close:hover{color:rgba(0,0,0,.85)}.ant-upload-list-item:hover .ant-upload-list-item-info{background-color:#f5f5f5}.ant-upload-list-item:hover .ant-upload-list-item-card-actions-btn,.ant-upload-list-item:hover .anticon-close{opacity:1}.ant-upload-list-item-error,.ant-upload-list-item-error .ant-upload-list-item-card-actions .anticon,.ant-upload-list-item-error .ant-upload-list-item-name,.ant-upload-list-item-error .ant-upload-text-icon>.anticon{color:#ff4d4f}.ant-upload-list-item-error .ant-upload-list-item-card-actions-btn{opacity:1}.ant-upload-list-item-progress{position:absolute;bottom:-12px;width:100%;padding-left:26px;font-size:14px;line-height:0}.ant-upload-list-picture-card .ant-upload-list-item,.ant-upload-list-picture .ant-upload-list-item{position:relative;height:66px;padding:8px;border:1px solid #d9d9d9;border-radius:2px}.ant-upload-list-picture-card .ant-upload-list-item:hover,.ant-upload-list-picture .ant-upload-list-item:hover{background:transparent}.ant-upload-list-picture-card .ant-upload-list-item-error,.ant-upload-list-picture .ant-upload-list-item-error{border-color:#ff4d4f}.ant-upload-list-picture-card .ant-upload-list-item:hover .ant-upload-list-item-info,.ant-upload-list-picture .ant-upload-list-item:hover .ant-upload-list-item-info{background:transparent}.ant-upload-list-picture-card .ant-upload-list-item-uploading,.ant-upload-list-picture .ant-upload-list-item-uploading{border-style:dashed}.ant-upload-list-picture-card .ant-upload-list-item-thumbnail,.ant-upload-list-picture .ant-upload-list-item-thumbnail{width:48px;height:48px;line-height:60px;text-align:center;opacity:.8}.ant-upload-list-picture-card .ant-upload-list-item-thumbnail .anticon,.ant-upload-list-picture .ant-upload-list-item-thumbnail .anticon{font-size:26px}.ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill="#e6f7ff"],.ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill="#e6f7ff"]{fill:#fff2f0}.ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill="#1890ff"],.ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill="#1890ff"]{fill:#ff4d4f}.ant-upload-list-picture-card .ant-upload-list-item-icon,.ant-upload-list-picture .ant-upload-list-item-icon{position:absolute;top:50%;left:50%;font-size:26px;-webkit-transform:translate(-50%,-50%);-moz-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.ant-upload-list-picture-card .ant-upload-list-item-icon .anticon,.ant-upload-list-picture .ant-upload-list-item-icon .anticon{font-size:26px}.ant-upload-list-picture-card .ant-upload-list-item-image,.ant-upload-list-picture .ant-upload-list-item-image{max-width:100%}.ant-upload-list-picture-card .ant-upload-list-item-thumbnail img,.ant-upload-list-picture .ant-upload-list-item-thumbnail img{display:block;width:48px;height:48px;overflow:hidden}.ant-upload-list-picture-card .ant-upload-list-item-name,.ant-upload-list-picture .ant-upload-list-item-name{display:inline-block;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;max-width:100%;margin:0 0 0 8px;padding-right:8px;padding-left:48px;overflow:hidden;line-height:44px;white-space:nowrap;text-overflow:ellipsis;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s}.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-name,.ant-upload-list-picture .ant-upload-list-item-uploading .ant-upload-list-item-name{margin-bottom:12px}.ant-upload-list-picture-card .ant-upload-list-item-progress,.ant-upload-list-picture .ant-upload-list-item-progress{bottom:14px;width:-webkit-calc(100% - 24px);width:-moz-calc(100% - 24px);width:calc(100% - 24px);margin-top:0;padding-left:56px}.ant-upload-list-picture-card .anticon-close,.ant-upload-list-picture .anticon-close{position:absolute;top:8px;right:8px;line-height:1;opacity:1}.ant-upload-list-picture-card-container{display:inline-block;width:104px;height:104px;margin:0 8px 8px 0;vertical-align:top}.ant-upload-list-picture-card.ant-upload-list:after{display:none}.ant-upload-list-picture-card .ant-upload-list-item{height:100%;margin:0}.ant-upload-list-picture-card .ant-upload-list-item-info{position:relative;height:100%;overflow:hidden}.ant-upload-list-picture-card .ant-upload-list-item-info:before{position:absolute;z-index:1;width:100%;height:100%;background-color:rgba(0,0,0,.5);opacity:0;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s;content:" "}.ant-upload-list-picture-card .ant-upload-list-item:hover .ant-upload-list-item-info:before{opacity:1}.ant-upload-list-picture-card .ant-upload-list-item-actions{position:absolute;top:50%;left:50%;z-index:10;white-space:nowrap;-webkit-transform:translate(-50%,-50%);-moz-transform:translate(-50%,-50%);transform:translate(-50%,-50%);opacity:0;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s}.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-download,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye{z-index:10;width:16px;margin:0 4px;color:hsla(0,0%,100%,.85);font-size:16px;cursor:pointer;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s}.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete:hover,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-download:hover,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye:hover{color:#fff}.ant-upload-list-picture-card .ant-upload-list-item-actions:hover,.ant-upload-list-picture-card .ant-upload-list-item-info:hover+.ant-upload-list-item-actions{opacity:1}.ant-upload-list-picture-card .ant-upload-list-item-thumbnail,.ant-upload-list-picture-card .ant-upload-list-item-thumbnail img{position:static;display:block;width:100%;height:100%;-webkit-object-fit:contain;object-fit:contain}.ant-upload-list-picture-card .ant-upload-list-item-name{display:none;margin:8px 0 0;padding:0;line-height:1.5715;text-align:center}.ant-upload-list-picture-card .ant-upload-list-item-file+.ant-upload-list-item-name{position:absolute;bottom:10px;display:block}.ant-upload-list-picture-card .ant-upload-list-item-uploading.ant-upload-list-item{background-color:#fafafa}.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info{height:auto}.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info .anticon-delete,.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info .anticon-eye,.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info:before{display:none}.ant-upload-list-picture-card .ant-upload-list-item-progress{bottom:32px;width:-webkit-calc(100% - 14px);width:-moz-calc(100% - 14px);width:calc(100% - 14px);padding-left:0}.ant-upload-list-picture-container,.ant-upload-list-text-container{-webkit-transition:opacity .3s,height .3s;-moz-transition:opacity .3s,height .3s;transition:opacity .3s,height .3s}.ant-upload-list-picture-container:before,.ant-upload-list-text-container:before{display:table;width:0;height:0;content:""}.ant-upload-list-picture-container .ant-upload-span,.ant-upload-list-text-container .ant-upload-span{display:block;-moz-box-flex:1;flex:auto}.ant-upload-list-picture .ant-upload-span,.ant-upload-list-text .ant-upload-span{display:-moz-box;display:flex;-moz-box-align:center;align-items:center}.ant-upload-list-picture .ant-upload-span>*,.ant-upload-list-text .ant-upload-span>*{-moz-box-flex:0;flex:none}.ant-upload-list-picture .ant-upload-list-item-name,.ant-upload-list-text .ant-upload-list-item-name{-moz-box-flex:1;flex:auto;margin:0;padding:0 8px}.ant-upload-list-picture .ant-upload-list-item-card-actions,.ant-upload-list-text .ant-upload-list-item-card-actions,.ant-upload-list-text .ant-upload-text-icon .anticon{position:static}.ant-upload-list .ant-upload-animate-inline-appear,.ant-upload-list .ant-upload-animate-inline-enter,.ant-upload-list .ant-upload-animate-inline-leave{-webkit-animation-duration:.3s;-moz-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:cubic-bezier(.78,.14,.15,.86);-moz-animation-fill-mode:cubic-bezier(.78,.14,.15,.86);animation-fill-mode:cubic-bezier(.78,.14,.15,.86)}.ant-upload-list .ant-upload-animate-inline-appear,.ant-upload-list .ant-upload-animate-inline-enter{-webkit-animation-name:uploadAnimateInlineIn;-moz-animation-name:uploadAnimateInlineIn;animation-name:uploadAnimateInlineIn}.ant-upload-list .ant-upload-animate-inline-leave{-webkit-animation-name:uploadAnimateInlineOut;-moz-animation-name:uploadAnimateInlineOut;animation-name:uploadAnimateInlineOut}@-webkit-keyframes uploadAnimateInlineIn{0%{width:0;height:0;margin:0;padding:0;opacity:0}}@-moz-keyframes uploadAnimateInlineIn{0%{width:0;height:0;margin:0;padding:0;opacity:0}}@keyframes uploadAnimateInlineIn{0%{width:0;height:0;margin:0;padding:0;opacity:0}}@-webkit-keyframes uploadAnimateInlineOut{to{width:0;height:0;margin:0;padding:0;opacity:0}}@-moz-keyframes uploadAnimateInlineOut{to{width:0;height:0;margin:0;padding:0;opacity:0}}@keyframes uploadAnimateInlineOut{to{width:0;height:0;margin:0;padding:0;opacity:0}}.ant-upload-rtl{direction:rtl}.ant-upload-rtl.ant-upload.ant-upload-select-picture-card{margin-right:auto;margin-left:8px}.ant-upload-list-rtl{direction:rtl}.ant-upload-list-rtl .ant-upload-list-item-list-type-text:hover .ant-upload-list-item-name-icon-count-1{padding-right:22px;padding-left:14px}.ant-upload-list-rtl .ant-upload-list-item-list-type-text:hover .ant-upload-list-item-name-icon-count-2{padding-right:22px;padding-left:28px}.ant-upload-list-rtl .ant-upload-list-item-name{padding-right:22px;padding-left:0}.ant-upload-list-rtl .ant-upload-list-item-name-icon-count-1{padding-left:14px}.ant-upload-list-rtl .ant-upload-list-item-card-actions{right:auto;left:0}.ant-upload-list-rtl .ant-upload-list-item-card-actions .anticon{padding-right:0;padding-left:5px}.ant-upload-list-rtl .ant-upload-list-item-info{padding:0 4px 0 12px}.ant-upload-list-rtl .ant-upload-list-item .anticon-close{right:auto;left:4px}.ant-upload-list-rtl .ant-upload-list-item-error .ant-upload-list-item-card-actions .anticon{padding-right:0;padding-left:5px}.ant-upload-list-rtl .ant-upload-list-item-progress{padding-right:26px;padding-left:0}.ant-upload-list-picture-card .ant-upload-list-item-info,.ant-upload-list-picture .ant-upload-list-item-info{padding:0}.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-thumbnail,.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-thumbnail{right:8px;left:auto}.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-icon,.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-icon{right:50%;left:auto;-webkit-transform:translate(50%,-50%);-moz-transform:translate(50%,-50%);transform:translate(50%,-50%)}.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-name,.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-name{margin:0 8px 0 0;padding-right:48px;padding-left:8px}.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-name-icon-count-1,.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-name-icon-count-1{padding-right:48px;padding-left:18px}.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-name-icon-count-2,.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-name-icon-count-2{padding-right:48px;padding-left:36px}.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-progress,.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-progress{padding-right:0;padding-left:0}.ant-upload-list-rtl.ant-upload-list-picture-card .anticon-close,.ant-upload-list-rtl.ant-upload-list-picture .anticon-close{right:auto;left:8px}.ant-upload-list-rtl .ant-upload-list-picture-card-container{margin:0 0 8px 8px}.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-actions{right:50%;left:auto;-webkit-transform:translate(50%,-50%);-moz-transform:translate(50%,-50%);transform:translate(50%,-50%)}.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-file+.ant-upload-list-item-name{margin:8px 0 0;padding:0}:root{--white:#fff;--white-15:hsla(0,0%,100%,0.15);--white-25:hsla(0,0%,100%,0.25);--white-35:hsla(0,0%,100%,0.35);--white-50:hsla(0,0%,100%,0.5);--white-75:hsla(0,0%,100%,0.75);--white-88:hsla(0,0%,100%,0.88);--black:#000;--black-35:rgba(0,0,0,0.35);--black-50:rgba(0,0,0,0.5);--black-75:rgba(0,0,0,0.75);--owncast-purple:#7871ff;--purple-dark:#1c1a3b;--pink:#c98bfe;--blue:#2086e1;--owncast-purple-25:rgba(120,113,255,0.25);--owncast-purple-50:rgba(120,113,255,0.5);--gray-light:#a8afc5;--gray-medium:#666b78;--gray:#33353c;--gray-dark:#17181b;--online-color:#73dd3f;--offline-color:#999;--ant-error:#ff4d4f;--ant-success:#52c41a;--ant-warning:#faad14;--ant-transition-duration:0.15s;--default-text-color:var(--white-88);--default-bg-color:var(--black);--default-link-color:var(--owncast-purple);--container-bg-color:var(--gray-dark);--container-bg-color-alt:var(--purple-dark);--container-border-radius:4px;--code-color:#9cdcfe;--code-bg-color:var(--owncast-purple-25);--nav-bg-color:var(--gray-dark);--nav-text:#aaa;--nav-selected-text:var(--pink);--button-focused:var(--owncast-purple-50);--textfield-border:var(--white-25);--textfield-bg:var(--black);--popover-base-color:var(--gray);--tooltip-base-color:var(--gray-medium)}.ant-card,.ant-collapse,.ant-collapse-content,.ant-layout,.ant-layout-footer,.ant-layout-header,.ant-layout-sider,.ant-menu,.ant-menu-submenu>.ant-menu,.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected,.ant-statistic,.ant-statistic-content,.ant-statistic-title,.ant-table,.ant-table-small .ant-table-thead>tr>th,.ant-table-tbody>tr.ant-table-row:hover>td,.ant-table-thead>tr>th,.ant-table-thead th.ant-table-column-sort,td.ant-table-column-sort,th.ant-table-column-sort{background-color:transparent;color:var(--default-text-color)}.ant-typography,.ant-typography h1,.ant-typography h2,.ant-typography h3,.ant-typography h4,.ant-typography h5,h1.ant-typography,h2.ant-typography,h3.ant-typography,h4.ant-typography,h5.ant-typography{color:var(--white);font-weight:400;margin:.5em 0}.ant-typography.ant-typography-secondary{color:var(--white);font-weight:400}.ant-typography{font-weight:300;color:var(--white-75)}.ant-typography a{color:var(--owncast-purple)}.ant-typography h1,h1.ant-typography{font-size:1.75em;color:var(--pink)}.ant-typography h1:first-of-type,h1.ant-typography:first-of-type{margin-top:0}.ant-typography h2,h2.ant-typography{font-size:1.5em}.ant-typography h3,h3.ant-typography{font-size:1.25em}.ant-progress-circle .ant-progress-text,.ant-progress-text{color:var(--default-text-color)}.ant-menu-item{-webkit-transition-duration:var(--ant-transition-duration);-moz-transition-duration:var(--ant-transition-duration);transition-duration:var(--ant-transition-duration)}.ant-menu-item .anticon,.ant-menu-item a{-webkit-transition-duration:var(--ant-transition-duration);-moz-transition-duration:var(--ant-transition-duration);transition-duration:var(--ant-transition-duration);color:var(--nav-text)}.ant-menu-item a:hover{color:var(--white)}.ant-menu-item:hover{background-color:var(--black-50);color:var(--white)}.ant-menu-item:hover .anticon{color:var(--white)}.ant-menu-item:active,.ant-menu-submenu-title:active{background-color:var(--black-50)}.ant-menu-item-selected,.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected{background-color:var(--black)}.ant-menu-item-selected .anticon,.ant-menu-item-selected a,.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected .anticon,.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected a{color:var(--nav-selected-text)}.ant-menu-item-selected:after,.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected:after{border-color:var(--nav-selected-text);-webkit-transition-duration:var(--ant-transition-duration);-moz-transition-duration:var(--ant-transition-duration);transition-duration:var(--ant-transition-duration)}.ant-menu-submenu>.ant-menu{border-left:1px solid var(--white-50);background-color:var(--black-35)}.ant-menu-submenu .ant-menu-submenu-title{-webkit-transition-duration:var(--ant-transition-duration);-moz-transition-duration:var(--ant-transition-duration);transition-duration:var(--ant-transition-duration);color:var(--nav-text)}.ant-menu-submenu .ant-menu-submenu-title .anticon{color:var(--nav-text)}.ant-menu-submenu .ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-submenu .ant-menu-submenu-title .ant-menu-submenu-arrow:before{-webkit-transition-duration:var(--ant-transition-duration);-moz-transition-duration:var(--ant-transition-duration);transition-duration:var(--ant-transition-duration);background-image:-webkit-gradient(linear,left top,right top,from(var(--nav-text)),to(var(--nav-text)));background-image:-webkit-linear-gradient(left,var(--nav-text),var(--nav-text));background-image:-moz-linear-gradient(left,var(--nav-text),var(--nav-text));background-image:linear-gradient(to right,var(--nav-text),var(--nav-text))}.ant-menu-submenu:hover .ant-menu-submenu-title,.ant-menu-submenu:hover .ant-menu-submenu-title .anticon{color:var(--white)}.ant-menu-submenu:hover .ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-submenu:hover .ant-menu-submenu-title .ant-menu-submenu-arrow:before{background-image:-webkit-gradient(linear,left top,right top,from(var(--white)),to(var(--white)));background-image:-webkit-linear-gradient(left,var(--white),var(--white));background-image:-moz-linear-gradient(left,var(--white),var(--white));background-image:linear-gradient(to right,var(--white),var(--white))}.ant-result-title{color:var(--default-text-color)}.ant-result-subtitle{color:var(--white-75)}.ant-card{border-radius:var(--container-border-radius);background-color:var(--container-bg-color);color:var(--default-text-color)}.ant-card-bordered{border-color:var(--white-25)}.ant-card-meta-title{color:var(--white)}.ant-card-meta-description{color:var(--white-75)}.ant-card-type-inner .ant-card-head{background-color:var(--black);color:var(--white-88);border-color:var(--white-25)}input.ant-input,textarea.ant-input{background-color:var(--textfield-bg);color:var(--white-88);border-color:var(--black)}input.ant-input::-webkit-input-placeholder,textarea.ant-input::-webkit-input-placeholder{color:var(--owncast-purple-50)}input.ant-input:-ms-input-placeholder,textarea.ant-input:-ms-input-placeholder{color:var(--owncast-purple-50)}input.ant-input::placeholder,textarea.ant-input::placeholder{color:var(--owncast-purple-50)}.ant-input-affix-wrapper,.ant-input-number{background-color:var(--textfield-bg);border-color:var(--textfield-border)}.ant-input-affix-wrapper input,.ant-input-affix-wrapper textarea,.ant-input-number input,.ant-input-number textarea{background-color:transparent;color:var(--white-88);border-color:var(--black)}.ant-input-affix-wrapper input::-webkit-input-placeholder,.ant-input-affix-wrapper textarea::-webkit-input-placeholder,.ant-input-number input::-webkit-input-placeholder,.ant-input-number textarea::-webkit-input-placeholder{color:var(--owncast-purple-50)}.ant-input-affix-wrapper input:-ms-input-placeholder,.ant-input-affix-wrapper textarea:-ms-input-placeholder,.ant-input-number input:-ms-input-placeholder,.ant-input-number textarea:-ms-input-placeholder{color:var(--owncast-purple-50)}.ant-input-affix-wrapper input::placeholder,.ant-input-affix-wrapper textarea::placeholder,.ant-input-number input::placeholder,.ant-input-number textarea::placeholder{color:var(--owncast-purple-50)}.ant-input-affix-wrapper input:-webkit-autofill,.ant-input-affix-wrapper textarea:-webkit-autofill,.ant-input-number input:-webkit-autofill,.ant-input-number textarea:-webkit-autofill{background-color:transparent}.ant-input,.ant-input-affix-wrapper-focused,.ant-input-affix-wrapper:focus,.ant-input-affix-wrapper:hover,.ant-input-affix-wrapper:hover input,.ant-input-affix-wrapper:hover textarea,.ant-input-number:focus,.ant-input-number:hover,.ant-input-number:hover input,.ant-input-number:hover textarea,.ant-input:hover,.ant-input:hover input,.ant-input:hover textarea{border-color:var(--owncast-purple)}.ant-input-affix-wrapper-focused input,.ant-input-affix-wrapper-focused textarea,.ant-input-affix-wrapper:focus input,.ant-input-affix-wrapper:focus textarea,.ant-input-number:focus input,.ant-input-number:focus textarea,.ant-input input,.ant-input textarea{color:var(--white);border-color:var(--owncast-purple)}textarea.ant-input{padding-right:25px}.ant-input-affix-wrapper{color:transparent}.ant-input-clear-icon,.ant-input-password-icon,.ant-input-suffix,.ant-input-textarea-clear-icon{color:var(--white-50)}.ant-input-clear-icon:hover,.ant-input-password-icon:hover,.ant-input-suffix:hover,.ant-input-textarea-clear-icon:hover{color:var(--white)}.ant-btn{background-color:var(--owncast-purple-25);border-color:var(--owncast-purple-25);color:var(--white-75)}.ant-btn:focus,.ant-btn:hover{background-color:var(--button-focused);color:var(--white)}.ant-btn-primary{background-color:var(--owncast-purple);border-color:var(--owncast-purple)}.ant-btn-primary:focus,.ant-btn-primary:hover{background-color:var(--button-focused);color:var(--white)}.ant-btn-primary:focus,.ant-btn.ant-btn-primary:hover,.ant-btn:focus{border-color:var(--white)}.ant-btn-primary[disabled]{background-color:var(--white-25);border-color:var(--white-25);color:var(--white-50)}.ant-btn-primary[disabled]:hover{background-color:var(--white-35);border-color:var(--white-35)}.ant-btn,.ant-input-affix-wrapper{-webkit-transition-delay:0s;-moz-transition-delay:0s;transition-delay:0s;-webkit-transition-duration:.15s;-moz-transition-duration:.15s;transition-duration:.15s}.ant-btn-dangerous{color:var(--white-88);border-color:var(--ant-error);background-color:var(--purple-dark)}.ant-btn-sm{font-size:12px}.ant-table-small .ant-table-thead>tr>th,.ant-table-thead>tr>th{-webkit-transition-duration:var(--ant-transition-duration);-moz-transition-duration:var(--ant-transition-duration);transition-duration:var(--ant-transition-duration);background-color:var(--purple-dark);font-weight:500;color:var(--white)}.ant-table-small .ant-table-thead>tr>th,.ant-table-tbody>tr>td,.ant-table-thead>tr>th{border-color:var(--white-15)}.ant-table-tbody>tr>td{-webkit-transition-duration:var(--ant-transition-duration);-moz-transition-duration:var(--ant-transition-duration);transition-duration:var(--ant-transition-duration);color:var(--white-75)}.ant-table-tbody>tr.ant-table-row:hover>td,.ant-table-tbody>tr>td{background-color:var(--gray-dark)}.ant-table-tbody>tr.ant-table-row-selected>td{background:var(--white-25)}.ant-empty{color:var(--white-75)}.ant-table-empty .ant-table-tbody>tr.ant-table-placeholder .ant-empty-image{display:none}.ant-table-empty .ant-table-tbody>tr.ant-table-placeholder:hover>td{background-color:var(--gray-dark)}.ant-table-thead th.ant-table-column-has-sorters:hover,.ant-table-thead th.ant-table-column-has-sorters:hover .ant-table-filter-trigger-container{background-color:var(--textfield-border)}.ant-table-thead th.ant-table-column-sort{background-color:var(--owncast-purple-25);opacity:.75}.ant-modal,.ant-modal-body{font-size:1em}.ant-modal-content{border-radius:var(--container-border-radius);border:1px solid var(--owncast-purple);background-color:var(--black)}.ant-modal-header{border-radius:var(--container-border-radius) var(--container-border-radius) 0 0}.ant-modal-close-x{color:var(--white)}.ant-modal-title{font-weight:500;font-size:1.25em;color:var(--nav-selected-text)}.ant-modal-body{background-color:var(--gray);color:var(--default-text-color)}.ant-modal-footer,.ant-modal-header{background:var(--black)}.ant-modal-content,.ant-modal-footer,.ant-modal-header{border-color:var(--white-50)}.ant-modal-confirm-body .ant-modal-confirm-content,.ant-modal-confirm-body .ant-modal-confirm-title{color:var(--default-text-color)}.ant-select-dropdown{background-color:var(--black)}.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{background-color:var(--black);border-color:var(--owncast-purple-50)}.ant-select-arrow{color:var(--owncast-purple)}.ant-select-selection-placeholder{color:var(--owncast-purple-50)}.ant-select{color:var(--white)}.ant-select-item{background-color:var(--gray-dark);color:var(--white-88)}.ant-select-item-option-active:not(.ant-select-item-option-disabled){background-color:var(--gray);color:var(--white-75)}.ant-slider-mark-text{font-size:.85em;white-space:nowrap;color:var(--white);opacity:.5}.ant-slider-handle{border-color:var(--blue)}.ant-slider:hover .ant-slider-track{background-color:var(--blue)}.ant-slider-rail{background-color:var(--black)}.ant-slider-track{background-color:var(--nav-text)}.ant-slider-mark-text-active{opacity:1}.ant-switch{background-color:var(--gray-medium)}.ant-switch-checked{background-color:var(--ant-success)}.ant-switch-checked .ant-switch-inner{color:var(--white)}.ant-collapse{font-size:1em}.ant-collapse,.ant-collapse .ant-collapse-content,.ant-collapse>.ant-collapse-item{border-color:transparent}.ant-collapse .ant-collapse-content>.ant-collapse-header,.ant-collapse>.ant-collapse-item>.ant-collapse-header{border-radius:var(--container-border-radius);border-color:transparent;background-color:var(--purple-dark);color:var(--white);font-weight:500}.ant-collapse-content{background-color:var(--black-35)}.ant-collapse>.ant-collapse-item:last-child,.ant-collapse>.ant-collapse-item:last-child>.ant-collapse-header{border-radius:var(--container-border-radius) var(--container-border-radius) 0 0}.ant-collapse-item:last-child>.ant-collapse-content{border-radius:0 0 var(--container-border-radius) var(--container-border-radius)}.ant-popover-inner{background-color:var(--popover-base-color)}.ant-popover-inner-content,.ant-popover-message{color:var(--default-text-color)}.ant-popover-placement-topLeft>.ant-popover-content>.ant-popover-arrow{border-color:var(--popover-base-color)}.ant-popover-arrow-content{background-color:var(--popover-base-color)}.ant-tooltip{font-size:.75em}.ant-tooltip-inner{color:var(--white)}.ant-tooltip-arrow-content,.ant-tooltip-inner{background-color:var(--tooltip-base-color)}.ant-tag-blue,.ant-tag-green,.ant-tag-orange,.ant-tag-purple,.ant-tag-red{background-color:var(--black)}.ant-pagination-item{border-color:var(--white)}.ant-pagination-item,.ant-pagination-item a{color:var(--default-link-color)}.ant-pagination-item:active,.ant-pagination-item:focus,.ant-pagination-item:hover{border-color:var(--white)}.ant-pagination-item:active a,.ant-pagination-item:focus a,.ant-pagination-item:hover a{color:var(--white)}.ant-pagination-item-active{color:var(--white);background-color:var(--default-link-color);border-color:var(--default-link-color)}.ant-pagination-item-active a{color:var(--white)}.ant-pagination-item-active:active,.ant-pagination-item-active:focus,.ant-pagination-item-active:hover{border-color:var(--default-link-color)}.ant-pagination-item-active:active a,.ant-pagination-item-active:focus a,.ant-pagination-item-active:hover a{color:var(--white)}.ant-pagination-next .ant-pagination-item-link,.ant-pagination-prev .ant-pagination-item-link{color:var(--default-link-color);background:transparent;border-color:transparent}.ant-pagination-next .ant-pagination-item-link:hover,.ant-pagination-prev .ant-pagination-item-link:hover{color:var(--white)}.ant-checkbox-wrapper{color:var(--white-75);margin:.5em 0}.ant-checkbox-group .ant-checkbox-group-item{display:block}.rc-virtual-list-scrollbar{display:block!important}.rc-md-editor{border-color:var(--black)!important;border:1px solid var(--black);background-color:var(--black)!important}.rc-md-editor .rc-md-navigation{background-color:var(--black);border-color:var(--black)}.rc-md-editor .editor-container{background-color:#e2e8f0!important}.rc-md-editor .editor-container p{color:var(--black-75)}.rc-md-editor .editor-container .sec-html{background-color:#fff}.rc-md-editor .editor-container .sec-html code,.rc-md-editor .editor-container .sec-html pre{background-color:#eee;color:#900}.rc-md-editor .markdown-editor-preview-pane{color:var(--black-75)}.rc-md-editor .markdown-editor-preview-pane a{color:var(--owncast-purple)}.rc-md-editor .markdown-editor-preview-pane h1{font-size:2em}.rc-md-editor .markdown-editor-pane{color:rgba(255,255,255,.85)!important;border-color:#000!important;background-color:#000;font-family:monospace}.rc-md-editor textarea{background-color:var(--gray)!important;color:rgba(255,255,255,.5)!important;overflow:auto}.rc-md-editor .button-type-clear,.rc-md-editor .button-type-code-block,.rc-md-editor .button-type-code-inline,.rc-md-editor .button-type-image,.rc-md-editor .button-type-quote,.rc-md-editor .button-type-redo,.rc-md-editor .button-type-strikethrough,.rc-md-editor .button-type-undo,.rc-md-editor .button-type-wrap{display:none!important}body,html{padding:0;margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:16px;background-color:var(--default-bg-color);color:var(--default-text-color)}a{color:inherit;text-decoration:none;color:var(--default-link-color)}a:hover{color:var(--default-text-color)}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.ant-typography,.description,p,p.description{font-weight:500;margin:1em 0;color:var(--white-75)}pre{display:block;padding:1rem;margin:.5rem 0;background-color:var(--code-bg-color);color:var(--white-50)}code{color:var(--code-color);background-color:var(--white-15);display:inline-block;padding:2px 4px;border-radius:4px;font-size:.88em}strong{font-weight:600}.logo-svg{height:2rem;width:2rem}.line-chart-container{margin:2em auto;padding:1em;border:1px solid var(--gray-dark)}.line-chart-container canvas{max-width:100%}.form-module{margin:1em 0;background-color:var(--container-bg-color);padding:2em;border-radius:var(--container-border-radius)}.form-module h3:first-of-type{margin-top:0}.row{display:-moz-box;display:flex;-moz-box-orient:horizontal;-moz-box-direction:normal;flex-direction:row;-moz-box-pack:justify;justify-content:space-between;-moz-box-align:start;align-items:flex-start}@media(max-width:980px){.row{-moz-box-orient:vertical;-moz-box-direction:normal;flex-direction:column}.row .form-module{width:100%}}input:not(:focus):invalid{color:var(--ant-error)}.table-container .ant-table-tbody>tr>td{-webkit-transition:background-color .15s;-moz-transition:background-color .15s;transition:background-color .15s}.table-container .ant-table-tbody>tr.ant-table-row:hover>td{background-color:var(--gray)}.table-container .ant-table-small .ant-table-cell{font-size:12px}.table-container .ant-table-small .ant-table-selection-column{width:20px;min-width:20px}.table-container .ant-table-row.hidden .ant-table-cell{color:var(--black-35)}@media(prefers-color-scheme:dark){.table-container .ant-table-row.hidden .ant-table-cell{color:var(--white-25)}}.table-container .ant-table-cell.actions-col,.table-container td.number-col{text-align:right}.ant-tabs-tab{color:var(--owncast-purple)}.ant-tabs-tab .ant-tabs-tab-active{border-color:var(--nav-selected-text)}.ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn{color:var(--nav-selected-text)}.ant-tabs-ink-bar{background:var(--nav-selected-text)}#fediverse-post-container{max-width:50vw;width:100%}#fediverse-post-container #fediverse-post-input{color:var(--white-75);border-color:var(--owncast-purple);background-color:var(--default-bg-color);height:250px}#fediverse-post-container .ant-input-textarea-show-count:after{color:var(--owncast-purple)}.app-container .side-nav{position:fixed;height:100vh;overflow:auto;z-index:10;background-color:var(--nav-bg-color)}.app-container .menu-container{border-color:transparent}.app-container h1.owncast-title{padding:1rem;display:-moz-box;display:flex;-moz-box-orient:horizontal;-moz-box-direction:normal;flex-direction:row;-moz-box-pack:center;justify-content:center;-moz-box-align:center;align-items:center}.app-container h1.owncast-title .logo-container{background-color:var(--white);padding:.35rem;border-radius:9999px}.app-container h1.owncast-title .title-label{display:inline-block;margin-left:1rem;color:var(--white);font-size:1.15rem;font-weight:200;text-transform:uppercase;line-height:normal;letter-spacing:.05em}.app-container .layout-main{margin-left:240px}.app-container .layout-header{display:-moz-box;display:flex;-moz-box-orient:horizontal;-moz-box-direction:normal;flex-direction:row;-moz-box-pack:end;justify-content:flex-end;padding-right:1rem;padding-left:1rem;background-color:var(--nav-bg-color)}.app-container .main-content-container{padding:2em 3em 3em;min-width:50vw}.app-container .footer-container{text-align:center}.app-container .online-status-indicator{display:-moz-box;display:flex;-moz-box-orient:horizontal;-moz-box-direction:normal;flex-direction:row;-moz-box-pack:center;justify-content:center;-moz-box-align:center;align-items:center}.app-container .online-status-indicator .online-thumbnail{width:12.5rem}.app-container .online-status-indicator .status-label{color:var(--white);text-transform:uppercase;font-size:.75rem;display:inline-block;margin-right:.5rem;color:var(--offline-color)}.app-container .online-status-indicator .status-icon{font-size:1.5rem}.app-container .online-status-indicator .status-icon svg{fill:var(--offline-color)}.app-container.online .online-status-indicator .status-icon svg{fill:var(--online-color)}.app-container.online .online-status-indicator .status-label{white-space:nowrap;color:var(--online-color)}.global-stream-title-container{display:-moz-box;display:flex;-moz-box-pack:center;justify-content:center;-moz-box-align:center;align-items:center;width:100%}.global-stream-title-container .textfield-with-submit-container{-moz-box-orient:horizontal;-moz-box-direction:normal;flex-direction:row;-moz-box-pack:center;justify-content:center;-moz-box-align:center;align-items:center;margin-bottom:0}.global-stream-title-container .textfield-with-submit-container .ant-input-affix-wrapper{border-color:var(--owncast-purple-50)}.global-stream-title-container .textfield-with-submit-container input.ant-input::-webkit-input-placeholder{color:var(--owncast-purple);text-align:center}.global-stream-title-container .textfield-with-submit-container input.ant-input:-ms-input-placeholder{color:var(--owncast-purple);text-align:center}.global-stream-title-container .textfield-with-submit-container input.ant-input::placeholder{color:var(--owncast-purple);text-align:center}.global-stream-title-container .textfield-with-submit-container .input-side{width:400px}@media(max-width:800px){.global-stream-title-container .textfield-with-submit-container .input-side{width:auto}}.global-stream-title-container .textfield-with-submit-container .label-side{display:none}.global-stream-title-container .textfield-with-submit-container .lower-container{width:auto}.global-stream-title-container .textfield-with-submit-container .lower-container .lower-content{-moz-box-orient:vertical;-moz-box-direction:reverse;flex-direction:column-reverse;position:relative}.global-stream-title-container .textfield-with-submit-container .lower-container .field-tip,.global-stream-title-container .textfield-with-submit-container .lower-container .label-spacer{display:none}.global-stream-title-container .textfield-with-submit-container .lower-container .status-container{line-height:1;position:absolute;bottom:-2em}.global-stream-title-container .textfield-with-submit-container .lower-container .update-button-container{margin:0 0 0 .5em;line-height:1}.formfield-container{--form-label-container-width:15em;display:-moz-box;display:flex;-moz-box-orient:horizontal;-moz-box-direction:normal;flex-direction:row;-moz-box-align:start;align-items:flex-start;-moz-box-pack:start;justify-content:flex-start;width:100%;max-width:600px}.formfield-container .label-side{padding-right:1.25em;text-align:right;width:var(--form-label-container-width);margin:.2em 0}.formfield-container .formfield-label{font-weight:500;font-size:1em;color:var(--owncast-purple)}.formfield-container .formfield-label:after{content:":"}.formfield-container.required .formfield-label:before{content:"*";display:inline-block;margin-right:.25em;color:var(--ant-error)}.formfield-container .input-side{max-width:500px;width:100%}.formfield-container .input-group{display:-moz-box;display:flex;-moz-box-orient:horizontal;-moz-box-direction:normal;flex-direction:row;-moz-box-pack:start;justify-content:flex-start;-moz-box-align:center;align-items:center}.formfield-container .status-container{margin:.25em;width:100%;display:block}.formfield-container .status-container.empty{display:none;visibility:visible}.formfield-container .field-tip{margin:.5em}@media(max-width:800px){.formfield-container{flex-wrap:wrap}.formfield-container .label-side{width:100%;text-align:left}}.textfield-with-submit-container{display:-moz-box;display:flex;-moz-box-orient:vertical;-moz-box-direction:normal;flex-direction:column;-moz-box-align:start;align-items:flex-start;margin-bottom:1em}.textfield-with-submit-container .textfield-component{width:100%}.textfield-with-submit-container .textfield-component .textfield-container .field-tip,.textfield-with-submit-container .textfield-component .textfield-container .status-container{display:none}.textfield-with-submit-container .lower-container{display:-moz-box;display:flex;-moz-box-orient:horizontal;-moz-box-direction:normal;flex-direction:row;-moz-box-align:start;align-items:flex-start;-moz-box-pack:start;justify-content:flex-start}.textfield-with-submit-container .lower-container .label-spacer{width:var(--form-label-container-width)}.textfield-with-submit-container .lower-container .lower-content{display:-moz-box;display:flex;-moz-box-orient:horizontal;-moz-box-direction:normal;flex-direction:row;-moz-box-align:start;align-items:flex-start;-moz-box-pack:end;justify-content:flex-end;width:100%}.textfield-with-submit-container .lower-container .lower-content .field-tip{margin-right:1em;width:100%}.textfield-with-submit-container .lower-container .lower-content .status-container{margin:.5em}.textfield-with-submit-container .lower-container .lower-content .status-container.empty{display:none}.textfield-with-submit-container .lower-container .update-button-container{visibility:hidden;margin:.25em 0}.textfield-with-submit-container.submittable .lower-container .update-button-container{visibility:visible}@media(max-width:800px){.textfield-with-submit-container .label-spacer{display:none}}.toggleswitch-container{margin:2em 0 1em}.toggleswitch-container .label-side{margin-top:0}.toggleswitch-container .input-group{display:-moz-box;display:flex;-moz-box-orient:horizontal;-moz-box-direction:normal;flex-direction:row;-moz-box-pack:start;justify-content:flex-start;-moz-box-align:center;align-items:center}.toggleswitch-container .input-group .status-container{width:auto;margin:0 0 0 1em;display:inline-block}.status-container{display:-moz-box;display:flex;-moz-box-orient:horizontal;-moz-box-direction:normal;flex-direction:row;-moz-box-pack:start;justify-content:flex-start;-moz-box-align:center;align-items:center;font-size:.75rem}.status-container.status-success{color:var(--ant-success)}.status-container.status-error{color:var(--ant-error)}.status-container.status-warning{color:var(--ant-warning)}.status-container.empty{display:none}.status-container .status-icon{display:inline-block;margin-right:.5em}.field-tip{font-size:.8em;color:var(--white-50)}.field-container{padding:.85em 0 .5em}.segment-slider-container{width:100%;margin:auto;padding:1em 2em .75em;background-color:var(--owncast-purple-25);border-radius:var(--container-border-radius)}.segment-slider-container .status-container{width:100%;margin:.5em auto;text-align:center}.segment-slider-container .selected-value-note{width:100%;margin:3em auto 0;text-align:center;font-size:.75em;line-height:normal;color:var(--white);padding:1em;border-radius:var(--container-border-radius);background-color:var(--black-35)}.segment-tip{width:10em;text-align:center;margin:auto;display:inline-block}#selected-codec-note{margin-top:8px;text-align:justify;line-height:1.4em}.social-dropdown .ant-select-item-option-content,.social-dropdown .ant-select-selection-item,.social-option .ant-select-item-option-content,.social-option .ant-select-selection-item{display:-moz-box;display:flex;-moz-box-orient:horizontal;-moz-box-direction:normal;flex-direction:row;-moz-box-pack:start;justify-content:flex-start;-moz-box-align:center;align-items:center;padding:.25em;line-height:normal}.social-dropdown .ant-select-item-option-content .option-icon,.social-dropdown .ant-select-selection-item .option-icon,.social-option .ant-select-item-option-content .option-icon,.social-option .ant-select-selection-item .option-icon{height:1.5em;width:1.5em;line-height:normal}.social-dropdown .ant-select-item-option-content .option-label,.social-dropdown .ant-select-selection-item .option-label,.social-option .ant-select-item-option-content .option-label,.social-option .ant-select-selection-item .option-label{display:inline-block;margin-left:1em;line-height:normal;word-break:break-word}.social-links-edit-container .social-handles-table .social-handle-cell{display:-moz-box;display:flex;-moz-box-orient:horizontal;-moz-box-direction:normal;flex-direction:row;-moz-box-align:center;align-items:center;-moz-box-pack:start;justify-content:flex-start;color:var(--white-75)}.social-links-edit-container .social-handles-table .social-handle-cell .option-icon{height:2em;width:2em;line-height:normal}.social-links-edit-container .social-handles-table .social-handle-cell .option-label{display:-moz-box;display:flex;-moz-box-orient:vertical;-moz-box-direction:normal;flex-direction:column;margin:0 0 0 1em;line-height:2;font-size:.85em;word-break:break-word}.social-links-edit-container .social-handles-table .actions{display:-moz-box;display:flex;-moz-box-orient:horizontal;-moz-box-direction:normal;flex-direction:row;-moz-box-align:center;align-items:center;-moz-box-pack:space-evenly;justify-content:space-evenly;width:6em}.edit-storage-container{padding:1em}.edit-storage-container .form-fields{display:none;margin-bottom:1em}.edit-storage-container.enabled .form-fields{display:block}.edit-storage-container .button-container{margin:2em 0 1em}.edit-storage-container .advanced-section{margin:1em 0}.edit-server-details-container .field-streamkey-container{margin-bottom:1.5em}.edit-server-details-container .field-streamkey-container .field-tip{color:var(--ant-warning)}.edit-server-details-container .field-streamkey-container .left-side{display:-moz-box;display:flex;-moz-box-orient:horizontal;-moz-box-direction:normal;flex-direction:row;-moz-box-align:start;align-items:flex-start}.edit-server-details-container .field-streamkey-container .textfield-with-submit-container{margin-bottom:0}.edit-server-details-container .field-streamkey-container .streamkey-actions{white-space:nowrap}.edit-server-details-container .field-streamkey-container .streamkey-actions button{margin:.25em}@media(max-width:800px){.edit-server-details-container .field-streamkey-container .streamkey-actions{margin-top:2em}}.edit-server-details-container .advanced-settings{max-width:800px}.edit-current-strings .ant-tag{margin:.1rem;font-size:.85rem;border-radius:10em;padding:.25em 1em}.edit-current-strings .ant-tag:hover{opacity:1}.edit-current-strings .ant-tag .ant-tag-close-icon{-webkit-transform:translateY(-1px);-moz-transform:translateY(-1px);transform:translateY(-1px);margin-left:.3rem;padding:2px;border-radius:5rem;color:var(--black);border:1px solid var(--black);-webkit-transition-duration:var(--ant-transition-duration);-moz-transition-duration:var(--ant-transition-duration);transition-duration:var(--ant-transition-duration)}.edit-current-strings .ant-tag .ant-tag-close-icon:hover{border-color:var(--owncast-purple);background-color:var(--white)}.edit-current-strings .ant-tag .ant-tag-close-icon:hover svg{fill:#000;-webkit-transition:fill var(--ant-transition-duration);-moz-transition:fill var(--ant-transition-duration);transition:fill var(--ant-transition-duration)}.add-new-string-section{display:-moz-box;display:flex;-moz-box-orient:horizontal;-moz-box-direction:normal;flex-direction:row;-moz-box-pack:start;justify-content:flex-start;-moz-box-align:center;align-items:center;margin-top:2em}.continuous-status-section{margin-top:1em}.config-video-variants .variants-table{margin-top:2em}.config-video-variants .variants-table-module{min-width:400px}.config-variant-form .description{margin-top:0}.config-variant-form .passthrough-warning{text-align:center;padding:1em;color:var(--ant-warning);font-size:.88em;font-weight:500;background-color:var(--black-50);border-radius:var(--container-border-radius)}.config-variant-form .bitrate-container,.config-variant-form .cpu-usage-container{min-height:22em}.config-variant-form .advanced-settings{margin-top:1em}.config-variant-form .advanced-settings .resolution-module,.config-variant-form .advanced-settings .video-passthrough-module{min-height:30em}.config-variant-form.video-passthrough-enabled .form-module:not(.video-passthrough-module){opacity:.25;cursor:not-allowed}.variants-table .actions{display:-moz-box;display:flex;-moz-box-align:center;align-items:center;-moz-box-pack:center;justify-content:center}.variants-table .delete-button{margin-left:.5em;opacity:.8}.read-more-subtext{font-size:.8rem}.codec-module .ant-collapse-content-active{background-color:var(--white-15)}.config-public-details-page{width:100%}.config-public-details-page .top-container{display:-moz-box;display:flex;-moz-box-orient:horizontal;-moz-box-direction:normal;flex-direction:row;flex-wrap:nowrap}@media(max-width:1200px){.config-public-details-page .top-container{flex-wrap:wrap}.config-public-details-page .top-container .social-items-container{display:-moz-box;display:flex;-moz-box-orient:horizontal;-moz-box-direction:normal;flex-direction:row;justify-content:space-around;flex-wrap:nowrap;margin:1em 0;width:100%;max-width:none}.config-public-details-page .top-container .social-items-container .tags-module{margin-right:1em}.config-public-details-page .top-container .social-items-container .form-module{max-width:none}}@media(max-width:1200px)and (max-width:980px){.config-public-details-page .top-container .social-items-container{-moz-box-orient:vertical;-moz-box-direction:normal;flex-direction:column}.config-public-details-page .top-container .social-items-container .form-module{width:100%}.config-public-details-page .top-container .social-items-container .tags-module{margin-bottom:0}}.config-public-details-page .instance-details-container{width:100%}.config-public-details-page .social-items-container{background-color:var(--container-bg-color-alt);padding:0 .75em;margin-left:1em;max-width:450px}.config-public-details-page .social-items-container .form-module{background-color:var(--black)}.config-public-details-page .social-items-container .social-handles-container{min-width:350px}.config-public-details-page .instance-details-container,.config-public-details-page .page-content-module{margin:1em 0}.config-public-details-page .field-summary textarea{height:6em!important}.config-public-details-page .edit-custom-css #field-customStyles{height:15em;width:100%;font-family:monospace;resize:auto}.other-field-container{margin:.5em 0}.logo-upload-container .input-group{-moz-box-align:center;align-items:center}.logo-upload-container img.logo-preview{min-height:120px;min-width:120px;max-height:256px;max-width:256px;margin-right:1em;display:inline-block;border:1px solid var(--white-25)}.home-container .online-status-section{margin-bottom:1em}.home-container .online-status-section .online-details-card{border-color:var(--online-color)}.home-container .online-status-section .ant-statistic{text-align:center}.home-container .online-status-section .ant-statistic-title{color:var(--white-50)}.home-container .ant-card-head{color:var(--online-color)}.home-container .stream-details-item-container{margin:1em 0}.home-container .stream-details-item-container:first-of-type{margin-top:0}.home-container .ant-statistic.stream-details-item{background-color:var(--black-50);padding:1em}.home-container .ant-statistic.stream-details-item .ant-statistic-title{color:var(--blue)}.home-container .ant-statistic.stream-details-item .ant-statistic-content{font-size:1.25em;white-space:nowrap}.home-container .stream-details>.ant-card-bordered{border-color:rgba(255,255,255,.1)}.home-container .outbound-details{margin-bottom:1em}.offline-content .logo-section .ant-result-title{font-size:2rem}.offline-content .logo-section .ant-result-subtitle{font-size:1rem}.offline-content .logo-section .ant-result-icon svg{height:8rem;width:8rem}.offline-content .list-section{background-color:var(--container-bg-color-alt);border-radius:var(--container-border-radius);padding:1em}.offline-content .list-section>.ant-card{background-color:var(--black);margin-bottom:1em}.offline-content .list-section>.ant-card .ant-card-meta-avatar{margin-top:.25rem}.offline-content .list-section>.ant-card .ant-card-meta-avatar svg{height:1.5em;width:1.5em}.offline-intro{display:-moz-box;display:flex;-moz-box-orient:horizontal;-moz-box-direction:normal;flex-direction:row;-moz-box-pack:space-evenly;justify-content:space-evenly;-moz-box-align:center;align-items:center;margin-bottom:2em}.offline-intro .logo-svg{height:6em;width:6em}.news-feed{margin-top:0;padding:1.5em}.news-feed h2{font-size:1.2em;margin-top:0;color:var(--pink)}.news-feed article{padding:1em .25em;font-size:14px;color:var(--white-75);border-bottom:1px solid var(--gray)}.news-feed article h3{font-size:1.2em}.news-feed article h3 a{font-weight:400;font-size:1em}.news-feed article .timestamp{margin-top:0;font-size:.75em;color:var(--white-50)}.chat-messages .ant-table-cell.name-col{text-overflow:ellipsis;overflow:hidden}.chat-messages .ant-table-cell.toggle-col label{font-size:11px}.chat-messages .ant-table-cell .message-contents{overflow:auto;max-height:200px}.chat-messages .ant-table-cell .message-contents img{position:relative;margin-top:-5px;width:3rem;padding:.25rem}.chat-messages .ant-table-cell .message-contents p{margin-bottom:0}.chat-messages .bulk-editor{margin:.5rem 0;padding:.5rem;border:1px solid var(--textfield-border);display:-moz-box;display:flex;-moz-box-orient:horizontal;-moz-box-direction:normal;flex-direction:row;-moz-box-align:center;align-items:center;-moz-box-pack:end;justify-content:flex-end;border-radius:4px}.chat-messages .bulk-editor.active .label{color:var(--black-3)}.chat-messages .bulk-editor .label{font-size:.75rem;color:var(--white-50);margin-right:.5rem}.chat-messages .bulk-editor button{margin:0 .2rem;font-size:.75rem}.ant-table-filter-dropdown{max-width:250px}.toggle-switch{display:-moz-box;display:flex;-moz-box-orient:horizontal;-moz-box-direction:normal;flex-direction:row;-moz-box-align:center;align-items:center;flex-wrap:nowrap;-moz-box-pack:end;justify-content:flex-end;-webkit-transition:opacity .15s;-moz-transition:opacity .15s;transition:opacity .15s}.toggle-switch .outcome-icon{margin-right:.5rem}.toggle-switch.hidden{opacity:.25}.toggle-switch.hidden:hover{opacity:1}.toggle-switch .ant-btn .anticon{opacity:.5}.toggle-switch .ant-btn:hover .anticon{opacity:1}.toggle-switch .ant-btn-text:hover{background-color:var(--black-35)}.blockuser-popover{max-width:400px}.user-item-container{border:none;background:none;text-align:left;padding:0;margin:0;cursor:pointer;outline:none}.user-item-container .display-name{color:var(--white);border-bottom:1px dotted var(--white-50)}.user-item-container:hover .display-name{border-color:var(--white)}.user-details h5{color:var(--white)}.user-details .created-at{font-size:.75em;font-style:italic}.user-details .connection-info,.user-details .previous-names-list{font-size:.88em}.user-details .previous-names-list .user-name-item{font-family:monospace}.user-details .previous-names-list .latest{font-style:italic}.user-details .previous-names-list .latest .user-name-item{font-weight:700;font-style:normal;color:var(--pink)}.user-details .ant-divider{border-color:var(--white-25)}.block-user-button{text-transform:capitalize}.upgrade-page h2,.upgrade-page h3{color:var(--pink);font-size:1.25em}.stream-info-box{background-color:var(--purple-dark);color:var(--white);padding:.25rem .5rem;margin:0!important}.stream-info-box .ant-typography-copy{margin-left:.25rem}.stream-info-label{align-self:center;text-align:right;margin:0}.stream-info-container{margin:8px 0 4px;display:grid;grid-template-columns:-webkit-max-content 1fr;grid-template-columns:max-content 1fr;grid-template-rows:-webkit-min-content -webkit-min-content;grid-template-rows:min-content min-content;grid-gap:8px 8px;gap:8px 8px;grid-template-areas:". ." ". ."} \ No newline at end of file
diff --git a/static/admin/access-tokens/index.html b/static/admin/access-tokens/index.html
index a60e42e06..c5c2c00e3 100644
--- a/static/admin/access-tokens/index.html
+++ b/static/admin/access-tokens/index.html
@@ -1 +1 @@
-<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width"/><meta charSet="utf-8"/><title>Owncast Admin</title><link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png"/><meta name="next-head-count" content="4"/><link rel="preload" href="/admin/_next/static/css/ba0ae6285080d7f0.css" as="style"/><link rel="stylesheet" href="/admin/_next/static/css/ba0ae6285080d7f0.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/admin/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/admin/_next/static/chunks/webpack-32f373d36961f088.js" defer=""></script><script src="/admin/_next/static/chunks/framework-4975f770e34de116.js" defer=""></script><script src="/admin/_next/static/chunks/main-6bdb99735697720d.js" defer=""></script><script src="/admin/_next/static/chunks/pages/_app-4f17b8df12d0e919.js" defer=""></script><script src="/admin/_next/static/chunks/919-5396b8f9fccff000.js" defer=""></script><script src="/admin/_next/static/chunks/516-b015193bc0d6919e.js" defer=""></script><script src="/admin/_next/static/chunks/91-5f5f536776e2d9c6.js" defer=""></script><script src="/admin/_next/static/chunks/pages/access-tokens-6045feeedf5d6be6.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_buildManifest.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_ssgManifest.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_middlewareManifest.js" defer=""></script></head><body><div id="__next" data-reactroot=""><section class="ant-layout app-container"><aside class="ant-layout-sider ant-layout-sider-dark side-nav" style="flex:0 0 240px;max-width:240px;min-width:240px;width:240px"><div class="ant-layout-sider-children"><ul class="ant-menu ant-menu-root ant-menu-inline ant-menu-light menu-container" role="menu" tabindex="0" data-menu-list="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1><li class="ant-menu-item" style="padding-left:24px" role="menuitem" tabindex="-1"><span role="img" aria-label="home" class="anticon anticon-home ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="home" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/">Home</a></span></li><li class="ant-menu-item" style="padding-left:24px" title="Current stream" role="menuitem" tabindex="-1"><span role="img" aria-label="line-chart" class="anticon anticon-line-chart ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="line-chart" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/viewer-info/">Viewers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" style="display:block" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="message" class="anticon anticon-message ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="message" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"></path></svg></span><span class="ant-menu-title-content">Chat &amp; Users</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="setting" class="anticon anticon-setting ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="setting" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"></path></svg></span><span class="ant-menu-title-content">Configuration</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="tool" class="anticon anticon-tool ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="tool" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"></path></svg></span><span class="ant-menu-title-content">Utilities</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="experiment" class="anticon anticon-experiment ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="experiment" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z"></path></svg></span><span class="ant-menu-title-content">Integrations</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px" title="Help" role="menuitem" tabindex="-1"><span role="img" aria-label="question-circle" class="anticon anticon-question-circle ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/help/">Help</a></span></li></ul><div style="display:none" aria-hidden="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1></div></div></aside><section class="ant-layout layout-main"><header class="ant-layout-header layout-header"><div class="global-stream-title-container"><div class="textfield-with-submit-container"><div class="textfield-component"><div class="formfield-container textfield-container type-default"><div class="label-side"><label for="field-streamTitle" class="formfield-label">Stream Title</label></div><div class="input-side"><div class="input-group"><span class="ant-input-affix-wrapper field field-streamTitle"><input type="text" id="field-streamTitle" class="ant-input" placeholder="What are you streaming now" maxLength="100" value=""/><span class="ant-input-suffix"><span role="button" aria-label="close-circle" tabindex="-1" class="anticon anticon-close-circle ant-input-clear-icon-hidden ant-input-clear-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"></path></svg></span></span></span></div><span class="status-container empty"></span><p class="field-tip">What is your stream about today?</p></div></div></div><div class="formfield-container lower-container"><p class="label-spacer"></p><div class="lower-content"><div class="field-tip">What is your stream about today?</div><span class="status-container empty"></span><div class="update-button-container"><button disabled="" type="button" class="ant-btn ant-btn-primary ant-btn-sm submit-button"><span>Update</span></button></div></div></div></div></div><div class="online-status-indicator"><span class="status-label">Offline</span><span class="status-icon"><span role="img" aria-label="minus-square" class="anticon anticon-minus-square"><svg viewBox="64 64 896 896" focusable="false" data-icon="minus-square" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z"></path></svg></span></span></div></header><main class="ant-layout-content main-content-container"><div><h1 class="ant-typography">Access Tokens</h1><div class="ant-typography">Access tokens are used to allow external, 3rd party tools to perform specific actions on your Owncast server. They should be kept secure and never included in client code, instead they should be kept on a server that you control.</div><div class="ant-typography">Read more about how to use these tokens, with examples, at<!-- --> <a href="https://owncast.online/docs/integrations/?source=admin" target="_blank" rel="noopener noreferrer">our documentation</a>.</div><div class="ant-table-wrapper"><div class="ant-spin-nested-loading"><div class="ant-spin-container"><div class="ant-table ant-table-empty"><div class="ant-table-container"><div class="ant-table-content"><table style="table-layout:auto"><colgroup></colgroup><thead class="ant-table-thead"><tr><th class="ant-table-cell"></th><th class="ant-table-cell">Name</th><th class="ant-table-cell">Token</th><th class="ant-table-cell">Scopes</th><th class="ant-table-cell">Last Used</th></tr></thead><tbody class="ant-table-tbody"><tr class="ant-table-placeholder"><td colSpan="5" class="ant-table-cell"><div class="ant-empty ant-empty-normal"><div class="ant-empty-image"><svg class="ant-empty-img-simple" width="64" height="41" viewBox="0 0 64 41" xmlns="http://www.w3.org/2000/svg"><g transform="translate(0 1)" fill="none" fill-rule="evenodd"><ellipse class="ant-empty-img-simple-ellipse" cx="32" cy="33" rx="32" ry="7"></ellipse><g class="ant-empty-img-simple-g" fill-rule="nonzero"><path d="M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z"></path><path d="M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z" class="ant-empty-img-simple-path"></path></g></g></svg></div><div class="ant-empty-description">No Data</div></div></td></tr></tbody></table></div></div></div></div></div></div><br/><button type="button" class="ant-btn ant-btn-primary"><span>Create Access Token</span></button></div></main><footer class="ant-layout-footer footer-container"><a href="https://owncast.online/?source=admin" target="_blank" rel="noopener noreferrer">About Owncast v<!-- -->0.0.0</a></footer></section></section></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/access-tokens","query":{},"buildId":"7a6totYv41sSc3NmR-l5-","assetPrefix":"/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html> \ No newline at end of file
+<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width"/><meta charSet="utf-8"/><title>Owncast Admin</title><link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png"/><meta name="next-head-count" content="4"/><link rel="preload" href="/admin/_next/static/css/8f06007bcaf49272.css" as="style"/><link rel="stylesheet" href="/admin/_next/static/css/8f06007bcaf49272.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/admin/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/admin/_next/static/chunks/webpack-d3dfca19c7a5e28c.js" defer=""></script><script src="/admin/_next/static/chunks/framework-4975f770e34de116.js" defer=""></script><script src="/admin/_next/static/chunks/main-6bdb99735697720d.js" defer=""></script><script src="/admin/_next/static/chunks/pages/_app-31024cc89d3736f1.js" defer=""></script><script src="/admin/_next/static/chunks/829-c8d1f3db438c210b.js" defer=""></script><script src="/admin/_next/static/chunks/91-5f5f536776e2d9c6.js" defer=""></script><script src="/admin/_next/static/chunks/pages/access-tokens-d3e9e11b79321dbb.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_buildManifest.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_ssgManifest.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_middlewareManifest.js" defer=""></script></head><body><div id="__next" data-reactroot=""><section class="ant-layout app-container"><aside class="ant-layout-sider ant-layout-sider-dark side-nav" style="flex:0 0 240px;max-width:240px;min-width:240px;width:240px"><div class="ant-layout-sider-children"><ul class="ant-menu ant-menu-root ant-menu-inline ant-menu-light menu-container" role="menu" tabindex="0" data-menu-list="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1><li class="ant-menu-item" style="padding-left:24px" role="menuitem" tabindex="-1"><span role="img" aria-label="home" class="anticon anticon-home ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="home" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/">Home</a></span></li><li class="ant-menu-item" style="padding-left:24px" title="Current stream" role="menuitem" tabindex="-1"><span role="img" aria-label="line-chart" class="anticon anticon-line-chart ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="line-chart" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/viewer-info/">Viewers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" style="display:block" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="message" class="anticon anticon-message ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="message" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"></path></svg></span><span class="ant-menu-title-content">Chat &amp; Users</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px;display:none" title="Fediverse followers" role="menuitem" tabindex="-1"><img alt="fediverse icon" src="/admin/fediverse-white.png" width="15rem" style="opacity:0.6;position:relative;top:-1px" class="ant-menu-item-icon"/><span class="ant-menu-title-content"><a href="/admin/federation/followers/">Followers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="setting" class="anticon anticon-setting ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="setting" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"></path></svg></span><span class="ant-menu-title-content">Configuration</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="tool" class="anticon anticon-tool ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="tool" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"></path></svg></span><span class="ant-menu-title-content">Utilities</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="experiment" class="anticon anticon-experiment ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="experiment" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z"></path></svg></span><span class="ant-menu-title-content">Integrations</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px" title="Help" role="menuitem" tabindex="-1"><span role="img" aria-label="question-circle" class="anticon anticon-question-circle ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/help/">Help</a></span></li></ul><div style="display:none" aria-hidden="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1></div></div></aside><section class="ant-layout layout-main"><header class="ant-layout-header layout-header"><div class="ant-space ant-space-horizontal ant-space-align-center"><div class="ant-space-item"><button style="display:none" type="button" class="ant-btn ant-btn-primary ant-btn-circle ant-btn-lg ant-btn-icon-only"><span role="img" aria-label="edit" class="anticon anticon-edit"><svg viewBox="64 64 896 896" focusable="false" data-icon="edit" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z"></path></svg></span></button></div></div><div class="global-stream-title-container"><div class="textfield-with-submit-container"><div class="textfield-component"><div class="formfield-container textfield-container type-default"><div class="label-side"><label for="field-streamTitle" class="formfield-label">Stream Title</label></div><div class="input-side"><div class="input-group"><span class="ant-input-affix-wrapper field field-streamTitle"><input type="text" id="field-streamTitle" class="ant-input" placeholder="What are you streaming now" maxLength="100" value=""/><span class="ant-input-suffix"><span role="button" aria-label="close-circle" tabindex="-1" class="anticon anticon-close-circle ant-input-clear-icon-hidden ant-input-clear-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"></path></svg></span></span></span></div><span class="status-container empty"></span><p class="field-tip">What is your stream about today?</p></div></div></div><div class="formfield-container lower-container"><p class="label-spacer"></p><div class="lower-content"><div class="field-tip">What is your stream about today?</div><span class="status-container empty"></span><div class="update-button-container"><button disabled="" type="button" class="ant-btn ant-btn-primary ant-btn-sm submit-button"><span>Update</span></button></div></div></div></div></div><div class="ant-space ant-space-horizontal ant-space-align-center"><div class="ant-space-item"><div class="online-status-indicator"><span class="status-label">Offline</span><span class="status-icon"><span role="img" aria-label="minus-square" class="anticon anticon-minus-square"><svg viewBox="64 64 896 896" focusable="false" data-icon="minus-square" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z"></path></svg></span></span></div></div></div></header><main class="ant-layout-content main-content-container"><div><h1 class="ant-typography">Access Tokens</h1><div class="ant-typography">Access tokens are used to allow external, 3rd party tools to perform specific actions on your Owncast server. They should be kept secure and never included in client code, instead they should be kept on a server that you control.</div><div class="ant-typography">Read more about how to use these tokens, with examples, at<!-- --> <a href="https://owncast.online/docs/integrations/?source=admin" target="_blank" rel="noopener noreferrer">our documentation</a>.</div><div class="ant-table-wrapper"><div class="ant-spin-nested-loading"><div class="ant-spin-container"><div class="ant-table ant-table-empty"><div class="ant-table-container"><div class="ant-table-content"><table style="table-layout:auto"><colgroup></colgroup><thead class="ant-table-thead"><tr><th class="ant-table-cell"></th><th class="ant-table-cell">Name</th><th class="ant-table-cell">Token</th><th class="ant-table-cell">Scopes</th><th class="ant-table-cell">Last Used</th></tr></thead><tbody class="ant-table-tbody"><tr class="ant-table-placeholder"><td colSpan="5" class="ant-table-cell"><div class="ant-empty ant-empty-normal"><div class="ant-empty-image"><svg class="ant-empty-img-simple" width="64" height="41" viewBox="0 0 64 41" xmlns="http://www.w3.org/2000/svg"><g transform="translate(0 1)" fill="none" fill-rule="evenodd"><ellipse class="ant-empty-img-simple-ellipse" cx="32" cy="33" rx="32" ry="7"></ellipse><g class="ant-empty-img-simple-g" fill-rule="nonzero"><path d="M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z"></path><path d="M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z" class="ant-empty-img-simple-path"></path></g></g></svg></div><div class="ant-empty-description">No Data</div></div></td></tr></tbody></table></div></div></div></div></div></div><br/><button type="button" class="ant-btn ant-btn-primary"><span>Create Access Token</span></button></div></main><footer class="ant-layout-footer footer-container"><a href="https://owncast.online/?source=admin" target="_blank" rel="noopener noreferrer">About Owncast v<!-- -->0.0.0</a></footer></section></section></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/access-tokens","query":{},"buildId":"S0l4GknIl5ifWnPqwFnrr","assetPrefix":"/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html> \ No newline at end of file
diff --git a/static/admin/actions/index.html b/static/admin/actions/index.html
index 35cda17e0..fa4b913d8 100644
--- a/static/admin/actions/index.html
+++ b/static/admin/actions/index.html
@@ -1 +1 @@
-<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width"/><meta charSet="utf-8"/><title>Owncast Admin</title><link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png"/><meta name="next-head-count" content="4"/><link rel="preload" href="/admin/_next/static/css/ba0ae6285080d7f0.css" as="style"/><link rel="stylesheet" href="/admin/_next/static/css/ba0ae6285080d7f0.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/admin/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/admin/_next/static/chunks/webpack-32f373d36961f088.js" defer=""></script><script src="/admin/_next/static/chunks/framework-4975f770e34de116.js" defer=""></script><script src="/admin/_next/static/chunks/main-6bdb99735697720d.js" defer=""></script><script src="/admin/_next/static/chunks/pages/_app-4f17b8df12d0e919.js" defer=""></script><script src="/admin/_next/static/chunks/919-5396b8f9fccff000.js" defer=""></script><script src="/admin/_next/static/chunks/516-b015193bc0d6919e.js" defer=""></script><script src="/admin/_next/static/chunks/pages/actions-06962496c7d339c5.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_buildManifest.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_ssgManifest.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_middlewareManifest.js" defer=""></script></head><body><div id="__next" data-reactroot=""><section class="ant-layout app-container"><aside class="ant-layout-sider ant-layout-sider-dark side-nav" style="flex:0 0 240px;max-width:240px;min-width:240px;width:240px"><div class="ant-layout-sider-children"><ul class="ant-menu ant-menu-root ant-menu-inline ant-menu-light menu-container" role="menu" tabindex="0" data-menu-list="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1><li class="ant-menu-item" style="padding-left:24px" role="menuitem" tabindex="-1"><span role="img" aria-label="home" class="anticon anticon-home ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="home" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/">Home</a></span></li><li class="ant-menu-item" style="padding-left:24px" title="Current stream" role="menuitem" tabindex="-1"><span role="img" aria-label="line-chart" class="anticon anticon-line-chart ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="line-chart" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/viewer-info/">Viewers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" style="display:block" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="message" class="anticon anticon-message ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="message" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"></path></svg></span><span class="ant-menu-title-content">Chat &amp; Users</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="setting" class="anticon anticon-setting ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="setting" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"></path></svg></span><span class="ant-menu-title-content">Configuration</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="tool" class="anticon anticon-tool ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="tool" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"></path></svg></span><span class="ant-menu-title-content">Utilities</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="experiment" class="anticon anticon-experiment ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="experiment" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z"></path></svg></span><span class="ant-menu-title-content">Integrations</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px" title="Help" role="menuitem" tabindex="-1"><span role="img" aria-label="question-circle" class="anticon anticon-question-circle ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/help/">Help</a></span></li></ul><div style="display:none" aria-hidden="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1></div></div></aside><section class="ant-layout layout-main"><header class="ant-layout-header layout-header"><div class="global-stream-title-container"><div class="textfield-with-submit-container"><div class="textfield-component"><div class="formfield-container textfield-container type-default"><div class="label-side"><label for="field-streamTitle" class="formfield-label">Stream Title</label></div><div class="input-side"><div class="input-group"><span class="ant-input-affix-wrapper field field-streamTitle"><input type="text" id="field-streamTitle" class="ant-input" placeholder="What are you streaming now" maxLength="100" value=""/><span class="ant-input-suffix"><span role="button" aria-label="close-circle" tabindex="-1" class="anticon anticon-close-circle ant-input-clear-icon-hidden ant-input-clear-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"></path></svg></span></span></span></div><span class="status-container empty"></span><p class="field-tip">What is your stream about today?</p></div></div></div><div class="formfield-container lower-container"><p class="label-spacer"></p><div class="lower-content"><div class="field-tip">What is your stream about today?</div><span class="status-container empty"></span><div class="update-button-container"><button disabled="" type="button" class="ant-btn ant-btn-primary ant-btn-sm submit-button"><span>Update</span></button></div></div></div></div></div><div class="online-status-indicator"><span class="status-label">Offline</span><span class="status-icon"><span role="img" aria-label="minus-square" class="anticon anticon-minus-square"><svg viewBox="64 64 896 896" focusable="false" data-icon="minus-square" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z"></path></svg></span></span></div></header><main class="ant-layout-content main-content-container"><div><h1 class="ant-typography">External Actions</h1><div class="ant-typography">External action URLs are 3rd party UI you can display, embedded, into your Owncast page when a user clicks on a button to launch your action.</div><div class="ant-typography">Read more about how to use actions, with examples, at<!-- --> <a href="https://owncast.online/thirdparty/?source=admin" target="_blank" rel="noopener noreferrer">our documentation</a>.</div><div class="ant-table-wrapper"><div class="ant-spin-nested-loading"><div class="ant-spin-container"><div class="ant-table ant-table-empty"><div class="ant-table-container"><div class="ant-table-content"><table style="table-layout:auto"><colgroup></colgroup><thead class="ant-table-thead"><tr><th class="ant-table-cell"></th><th class="ant-table-cell">Name</th><th class="ant-table-cell">Description</th><th class="ant-table-cell">URL</th><th class="ant-table-cell">Icon</th><th class="ant-table-cell">Color</th><th class="ant-table-cell">Opens</th></tr></thead><tbody class="ant-table-tbody"><tr class="ant-table-placeholder"><td colSpan="7" class="ant-table-cell"><div class="ant-empty ant-empty-normal"><div class="ant-empty-image"><svg class="ant-empty-img-simple" width="64" height="41" viewBox="0 0 64 41" xmlns="http://www.w3.org/2000/svg"><g transform="translate(0 1)" fill="none" fill-rule="evenodd"><ellipse class="ant-empty-img-simple-ellipse" cx="32" cy="33" rx="32" ry="7"></ellipse><g class="ant-empty-img-simple-g" fill-rule="nonzero"><path d="M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z"></path><path d="M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z" class="ant-empty-img-simple-path"></path></g></g></svg></div><div class="ant-empty-description">No Data</div></div></td></tr></tbody></table></div></div></div></div></div></div><br/><button type="button" class="ant-btn ant-btn-primary"><span>Create New Action</span></button><span class="status-container empty"></span></div></main><footer class="ant-layout-footer footer-container"><a href="https://owncast.online/?source=admin" target="_blank" rel="noopener noreferrer">About Owncast v<!-- -->0.0.0</a></footer></section></section></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/actions","query":{},"buildId":"7a6totYv41sSc3NmR-l5-","assetPrefix":"/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html> \ No newline at end of file
+<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width"/><meta charSet="utf-8"/><title>Owncast Admin</title><link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png"/><meta name="next-head-count" content="4"/><link rel="preload" href="/admin/_next/static/css/8f06007bcaf49272.css" as="style"/><link rel="stylesheet" href="/admin/_next/static/css/8f06007bcaf49272.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/admin/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/admin/_next/static/chunks/webpack-d3dfca19c7a5e28c.js" defer=""></script><script src="/admin/_next/static/chunks/framework-4975f770e34de116.js" defer=""></script><script src="/admin/_next/static/chunks/main-6bdb99735697720d.js" defer=""></script><script src="/admin/_next/static/chunks/pages/_app-31024cc89d3736f1.js" defer=""></script><script src="/admin/_next/static/chunks/829-c8d1f3db438c210b.js" defer=""></script><script src="/admin/_next/static/chunks/pages/actions-6889c0d5d40aa70e.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_buildManifest.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_ssgManifest.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_middlewareManifest.js" defer=""></script></head><body><div id="__next" data-reactroot=""><section class="ant-layout app-container"><aside class="ant-layout-sider ant-layout-sider-dark side-nav" style="flex:0 0 240px;max-width:240px;min-width:240px;width:240px"><div class="ant-layout-sider-children"><ul class="ant-menu ant-menu-root ant-menu-inline ant-menu-light menu-container" role="menu" tabindex="0" data-menu-list="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1><li class="ant-menu-item" style="padding-left:24px" role="menuitem" tabindex="-1"><span role="img" aria-label="home" class="anticon anticon-home ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="home" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/">Home</a></span></li><li class="ant-menu-item" style="padding-left:24px" title="Current stream" role="menuitem" tabindex="-1"><span role="img" aria-label="line-chart" class="anticon anticon-line-chart ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="line-chart" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/viewer-info/">Viewers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" style="display:block" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="message" class="anticon anticon-message ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="message" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"></path></svg></span><span class="ant-menu-title-content">Chat &amp; Users</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px;display:none" title="Fediverse followers" role="menuitem" tabindex="-1"><img alt="fediverse icon" src="/admin/fediverse-white.png" width="15rem" style="opacity:0.6;position:relative;top:-1px" class="ant-menu-item-icon"/><span class="ant-menu-title-content"><a href="/admin/federation/followers/">Followers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="setting" class="anticon anticon-setting ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="setting" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"></path></svg></span><span class="ant-menu-title-content">Configuration</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="tool" class="anticon anticon-tool ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="tool" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"></path></svg></span><span class="ant-menu-title-content">Utilities</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="experiment" class="anticon anticon-experiment ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="experiment" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z"></path></svg></span><span class="ant-menu-title-content">Integrations</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px" title="Help" role="menuitem" tabindex="-1"><span role="img" aria-label="question-circle" class="anticon anticon-question-circle ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/help/">Help</a></span></li></ul><div style="display:none" aria-hidden="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1></div></div></aside><section class="ant-layout layout-main"><header class="ant-layout-header layout-header"><div class="ant-space ant-space-horizontal ant-space-align-center"><div class="ant-space-item"><button style="display:none" type="button" class="ant-btn ant-btn-primary ant-btn-circle ant-btn-lg ant-btn-icon-only"><span role="img" aria-label="edit" class="anticon anticon-edit"><svg viewBox="64 64 896 896" focusable="false" data-icon="edit" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z"></path></svg></span></button></div></div><div class="global-stream-title-container"><div class="textfield-with-submit-container"><div class="textfield-component"><div class="formfield-container textfield-container type-default"><div class="label-side"><label for="field-streamTitle" class="formfield-label">Stream Title</label></div><div class="input-side"><div class="input-group"><span class="ant-input-affix-wrapper field field-streamTitle"><input type="text" id="field-streamTitle" class="ant-input" placeholder="What are you streaming now" maxLength="100" value=""/><span class="ant-input-suffix"><span role="button" aria-label="close-circle" tabindex="-1" class="anticon anticon-close-circle ant-input-clear-icon-hidden ant-input-clear-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"></path></svg></span></span></span></div><span class="status-container empty"></span><p class="field-tip">What is your stream about today?</p></div></div></div><div class="formfield-container lower-container"><p class="label-spacer"></p><div class="lower-content"><div class="field-tip">What is your stream about today?</div><span class="status-container empty"></span><div class="update-button-container"><button disabled="" type="button" class="ant-btn ant-btn-primary ant-btn-sm submit-button"><span>Update</span></button></div></div></div></div></div><div class="ant-space ant-space-horizontal ant-space-align-center"><div class="ant-space-item"><div class="online-status-indicator"><span class="status-label">Offline</span><span class="status-icon"><span role="img" aria-label="minus-square" class="anticon anticon-minus-square"><svg viewBox="64 64 896 896" focusable="false" data-icon="minus-square" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z"></path></svg></span></span></div></div></div></header><main class="ant-layout-content main-content-container"><div><h1 class="ant-typography">External Actions</h1><div class="ant-typography">External action URLs are 3rd party UI you can display, embedded, into your Owncast page when a user clicks on a button to launch your action.</div><div class="ant-typography">Read more about how to use actions, with examples, at<!-- --> <a href="https://owncast.online/thirdparty/?source=admin" target="_blank" rel="noopener noreferrer">our documentation</a>.</div><div class="ant-table-wrapper"><div class="ant-spin-nested-loading"><div class="ant-spin-container"><div class="ant-table ant-table-empty"><div class="ant-table-container"><div class="ant-table-content"><table style="table-layout:auto"><colgroup></colgroup><thead class="ant-table-thead"><tr><th class="ant-table-cell"></th><th class="ant-table-cell">Name</th><th class="ant-table-cell">Description</th><th class="ant-table-cell">URL</th><th class="ant-table-cell">Icon</th><th class="ant-table-cell">Color</th><th class="ant-table-cell">Opens</th></tr></thead><tbody class="ant-table-tbody"><tr class="ant-table-placeholder"><td colSpan="7" class="ant-table-cell"><div class="ant-empty ant-empty-normal"><div class="ant-empty-image"><svg class="ant-empty-img-simple" width="64" height="41" viewBox="0 0 64 41" xmlns="http://www.w3.org/2000/svg"><g transform="translate(0 1)" fill="none" fill-rule="evenodd"><ellipse class="ant-empty-img-simple-ellipse" cx="32" cy="33" rx="32" ry="7"></ellipse><g class="ant-empty-img-simple-g" fill-rule="nonzero"><path d="M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z"></path><path d="M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z" class="ant-empty-img-simple-path"></path></g></g></svg></div><div class="ant-empty-description">No Data</div></div></td></tr></tbody></table></div></div></div></div></div></div><br/><button type="button" class="ant-btn ant-btn-primary"><span>Create New Action</span></button><span class="status-container empty"></span></div></main><footer class="ant-layout-footer footer-container"><a href="https://owncast.online/?source=admin" target="_blank" rel="noopener noreferrer">About Owncast v<!-- -->0.0.0</a></footer></section></section></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/actions","query":{},"buildId":"S0l4GknIl5ifWnPqwFnrr","assetPrefix":"/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html> \ No newline at end of file
diff --git a/static/admin/chat/messages/index.html b/static/admin/chat/messages/index.html
index 3b0d00771..b00a6a03a 100644
--- a/static/admin/chat/messages/index.html
+++ b/static/admin/chat/messages/index.html
@@ -1 +1 @@
-<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width"/><meta charSet="utf-8"/><title>Owncast Admin</title><link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png"/><meta name="next-head-count" content="4"/><link rel="preload" href="/admin/_next/static/css/ba0ae6285080d7f0.css" as="style"/><link rel="stylesheet" href="/admin/_next/static/css/ba0ae6285080d7f0.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/admin/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/admin/_next/static/chunks/webpack-32f373d36961f088.js" defer=""></script><script src="/admin/_next/static/chunks/framework-4975f770e34de116.js" defer=""></script><script src="/admin/_next/static/chunks/main-6bdb99735697720d.js" defer=""></script><script src="/admin/_next/static/chunks/pages/_app-4f17b8df12d0e919.js" defer=""></script><script src="/admin/_next/static/chunks/29107295-2c3ce868677a27a4.js" defer=""></script><script src="/admin/_next/static/chunks/919-5396b8f9fccff000.js" defer=""></script><script src="/admin/_next/static/chunks/516-b015193bc0d6919e.js" defer=""></script><script src="/admin/_next/static/chunks/91-5f5f536776e2d9c6.js" defer=""></script><script src="/admin/_next/static/chunks/533-2f63c37b8986cca1.js" defer=""></script><script src="/admin/_next/static/chunks/371-7cb27e335b0cdeb4.js" defer=""></script><script src="/admin/_next/static/chunks/pages/chat/messages-7f73b63d7ec03c12.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_buildManifest.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_ssgManifest.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_middlewareManifest.js" defer=""></script></head><body><div id="__next" data-reactroot=""><section class="ant-layout app-container"><aside class="ant-layout-sider ant-layout-sider-dark side-nav" style="flex:0 0 240px;max-width:240px;min-width:240px;width:240px"><div class="ant-layout-sider-children"><ul class="ant-menu ant-menu-root ant-menu-inline ant-menu-light menu-container" role="menu" tabindex="0" data-menu-list="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1><li class="ant-menu-item" style="padding-left:24px" role="menuitem" tabindex="-1"><span role="img" aria-label="home" class="anticon anticon-home ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="home" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/">Home</a></span></li><li class="ant-menu-item" style="padding-left:24px" title="Current stream" role="menuitem" tabindex="-1"><span role="img" aria-label="line-chart" class="anticon anticon-line-chart ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="line-chart" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/viewer-info/">Viewers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" style="display:block" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="message" class="anticon anticon-message ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="message" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"></path></svg></span><span class="ant-menu-title-content">Chat &amp; Users</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="setting" class="anticon anticon-setting ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="setting" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"></path></svg></span><span class="ant-menu-title-content">Configuration</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="tool" class="anticon anticon-tool ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="tool" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"></path></svg></span><span class="ant-menu-title-content">Utilities</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="experiment" class="anticon anticon-experiment ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="experiment" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z"></path></svg></span><span class="ant-menu-title-content">Integrations</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px" title="Help" role="menuitem" tabindex="-1"><span role="img" aria-label="question-circle" class="anticon anticon-question-circle ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/help/">Help</a></span></li></ul><div style="display:none" aria-hidden="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1></div></div></aside><section class="ant-layout layout-main"><header class="ant-layout-header layout-header"><div class="global-stream-title-container"><div class="textfield-with-submit-container"><div class="textfield-component"><div class="formfield-container textfield-container type-default"><div class="label-side"><label for="field-streamTitle" class="formfield-label">Stream Title</label></div><div class="input-side"><div class="input-group"><span class="ant-input-affix-wrapper field field-streamTitle"><input type="text" id="field-streamTitle" class="ant-input" placeholder="What are you streaming now" maxLength="100" value=""/><span class="ant-input-suffix"><span role="button" aria-label="close-circle" tabindex="-1" class="anticon anticon-close-circle ant-input-clear-icon-hidden ant-input-clear-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"></path></svg></span></span></span></div><span class="status-container empty"></span><p class="field-tip">What is your stream about today?</p></div></div></div><div class="formfield-container lower-container"><p class="label-spacer"></p><div class="lower-content"><div class="field-tip">What is your stream about today?</div><span class="status-container empty"></span><div class="update-button-container"><button disabled="" type="button" class="ant-btn ant-btn-primary ant-btn-sm submit-button"><span>Update</span></button></div></div></div></div></div><div class="online-status-indicator"><span class="status-label">Offline</span><span class="status-icon"><span role="img" aria-label="minus-square" class="anticon anticon-minus-square"><svg viewBox="64 64 896 896" focusable="false" data-icon="minus-square" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z"></path></svg></span></span></div></header><main class="ant-layout-content main-content-container"><div class="chat-messages"><h1 class="ant-typography">Chat Messages</h1><p>Manage the messages from viewers that show up on your stream.</p><div class="bulk-editor"><span class="label">Check multiple messages to change their visibility to: </span><button disabled="" type="button" class="ant-btn ant-btn-primary ant-btn-round ant-btn-sm button"><span>Show</span></button><button disabled="" type="button" class="ant-btn ant-btn-primary ant-btn-round ant-btn-sm button"><span>Hide</span></button></div><div class="ant-table-wrapper table-container"><div class="ant-spin-nested-loading"><div class="ant-spin-container"><div class="ant-table ant-table-small ant-table-empty ant-table-fixed-header"><div class="ant-table-container"><div style="overflow:hidden" class="ant-table-header"><table style="table-layout:fixed"><colgroup><col class="ant-table-selection-col"/></colgroup><thead class="ant-table-thead"><tr><th class="ant-table-cell ant-table-selection-column"><div class="ant-table-selection"><label class="ant-checkbox-wrapper ant-checkbox-wrapper-disabled"><span class="ant-checkbox ant-checkbox-disabled"><input type="checkbox" disabled="" class="ant-checkbox-input"/><span class="ant-checkbox-inner"></span></span></label></div></th><th class="ant-table-cell timestamp-col ant-table-column-sort ant-table-column-has-sorters"><div class="ant-table-column-sorters"><span class="ant-table-column-title">Time</span><span class="ant-table-column-sorter ant-table-column-sorter-full"><span class="ant-table-column-sorter-inner"><span role="img" aria-label="caret-up" class="anticon anticon-caret-up ant-table-column-sorter-up"><svg viewBox="0 0 1024 1024" focusable="false" data-icon="caret-up" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M858.9 689L530.5 308.2c-9.4-10.9-27.5-10.9-37 0L165.1 689c-12.2 14.2-1.2 35 18.5 35h656.8c19.7 0 30.7-20.8 18.5-35z"></path></svg></span><span role="img" aria-label="caret-down" class="anticon anticon-caret-down ant-table-column-sorter-down active"><svg viewBox="0 0 1024 1024" focusable="false" data-icon="caret-down" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z"></path></svg></span></span></span></div></th><th class="ant-table-cell name-col ant-table-cell-ellipsis ant-table-column-has-sorters"><div class="ant-table-filter-column"><span class="ant-table-column-title"><div class="ant-table-column-sorters"><span class="ant-table-column-title">User</span><span class="ant-table-column-sorter ant-table-column-sorter-full"><span class="ant-table-column-sorter-inner"><span role="img" aria-label="caret-up" class="anticon anticon-caret-up ant-table-column-sorter-up"><svg viewBox="0 0 1024 1024" focusable="false" data-icon="caret-up" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M858.9 689L530.5 308.2c-9.4-10.9-27.5-10.9-37 0L165.1 689c-12.2 14.2-1.2 35 18.5 35h656.8c19.7 0 30.7-20.8 18.5-35z"></path></svg></span><span role="img" aria-label="caret-down" class="anticon anticon-caret-down ant-table-column-sorter-down"><svg viewBox="0 0 1024 1024" focusable="false" data-icon="caret-down" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z"></path></svg></span></span></span></div></span><span role="button" tabindex="-1" class="ant-dropdown-trigger ant-table-filter-trigger"><span role="img" aria-label="filter" class="anticon anticon-filter"><svg viewBox="64 64 896 896" focusable="false" data-icon="filter" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M349 838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V642H349v196zm531.1-684H143.9c-24.5 0-39.8 26.7-27.5 48l221.3 376h348.8l221.3-376c12.1-21.3-3.2-48-27.7-48z"></path></svg></span></span></div></th><th class="ant-table-cell message-col">Message</th><th class="ant-table-cell toggle-col"><div class="ant-table-filter-column"><span class="ant-table-column-title"></span><span role="button" tabindex="-1" class="ant-dropdown-trigger ant-table-filter-trigger"><span role="img" aria-label="filter" class="anticon anticon-filter"><svg viewBox="64 64 896 896" focusable="false" data-icon="filter" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M349 838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V642H349v196zm531.1-684H143.9c-24.5 0-39.8 26.7-27.5 48l221.3 376h348.8l221.3-376c12.1-21.3-3.2-48-27.7-48z"></path></svg></span></span></div></th></tr></thead></table></div><div style="overflow-y:scroll;max-height:540px" class="ant-table-body"><table style="table-layout:fixed"><colgroup><col class="ant-table-selection-col"/><col style="width:90px"/><col style="width:110px"/><col style="width:320px"/><col style="width:30px"/></colgroup><tbody class="ant-table-tbody"><tr aria-hidden="true" class="ant-table-measure-row" style="height:0;font-size:0"><td style="padding:0;border:0;height:0"><div style="height:0;overflow:hidden"> </div></td><td style="padding:0;border:0;height:0"><div style="height:0;overflow:hidden"> </div></td><td style="padding:0;border:0;height:0"><div style="height:0;overflow:hidden"> </div></td><td style="padding:0;border:0;height:0"><div style="height:0;overflow:hidden"> </div></td><td style="padding:0;border:0;height:0"><div style="height:0;overflow:hidden"> </div></td></tr><tr class="ant-table-placeholder"><td colSpan="5" class="ant-table-cell"><div class="ant-empty ant-empty-normal"><div class="ant-empty-image"><svg class="ant-empty-img-simple" width="64" height="41" viewBox="0 0 64 41" xmlns="http://www.w3.org/2000/svg"><g transform="translate(0 1)" fill="none" fill-rule="evenodd"><ellipse class="ant-empty-img-simple-ellipse" cx="32" cy="33" rx="32" ry="7"></ellipse><g class="ant-empty-img-simple-g" fill-rule="nonzero"><path d="M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z"></path><path d="M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z" class="ant-empty-img-simple-path"></path></g></g></svg></div><div class="ant-empty-description">No Data</div></div></td></tr></tbody></table></div></div></div></div></div></div></div></main><footer class="ant-layout-footer footer-container"><a href="https://owncast.online/?source=admin" target="_blank" rel="noopener noreferrer">About Owncast v<!-- -->0.0.0</a></footer></section></section></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/chat/messages","query":{},"buildId":"7a6totYv41sSc3NmR-l5-","assetPrefix":"/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html> \ No newline at end of file
+<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width"/><meta charSet="utf-8"/><title>Owncast Admin</title><link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png"/><meta name="next-head-count" content="4"/><link rel="preload" href="/admin/_next/static/css/8f06007bcaf49272.css" as="style"/><link rel="stylesheet" href="/admin/_next/static/css/8f06007bcaf49272.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/admin/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/admin/_next/static/chunks/webpack-d3dfca19c7a5e28c.js" defer=""></script><script src="/admin/_next/static/chunks/framework-4975f770e34de116.js" defer=""></script><script src="/admin/_next/static/chunks/main-6bdb99735697720d.js" defer=""></script><script src="/admin/_next/static/chunks/pages/_app-31024cc89d3736f1.js" defer=""></script><script src="/admin/_next/static/chunks/29107295-2c3ce868677a27a4.js" defer=""></script><script src="/admin/_next/static/chunks/829-c8d1f3db438c210b.js" defer=""></script><script src="/admin/_next/static/chunks/91-5f5f536776e2d9c6.js" defer=""></script><script src="/admin/_next/static/chunks/533-2f63c37b8986cca1.js" defer=""></script><script src="/admin/_next/static/chunks/464-deae2b2f674a34de.js" defer=""></script><script src="/admin/_next/static/chunks/pages/chat/messages-dc2695d5bac28933.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_buildManifest.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_ssgManifest.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_middlewareManifest.js" defer=""></script></head><body><div id="__next" data-reactroot=""><section class="ant-layout app-container"><aside class="ant-layout-sider ant-layout-sider-dark side-nav" style="flex:0 0 240px;max-width:240px;min-width:240px;width:240px"><div class="ant-layout-sider-children"><ul class="ant-menu ant-menu-root ant-menu-inline ant-menu-light menu-container" role="menu" tabindex="0" data-menu-list="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1><li class="ant-menu-item" style="padding-left:24px" role="menuitem" tabindex="-1"><span role="img" aria-label="home" class="anticon anticon-home ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="home" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/">Home</a></span></li><li class="ant-menu-item" style="padding-left:24px" title="Current stream" role="menuitem" tabindex="-1"><span role="img" aria-label="line-chart" class="anticon anticon-line-chart ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="line-chart" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/viewer-info/">Viewers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" style="display:block" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="message" class="anticon anticon-message ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="message" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"></path></svg></span><span class="ant-menu-title-content">Chat &amp; Users</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px;display:none" title="Fediverse followers" role="menuitem" tabindex="-1"><img alt="fediverse icon" src="/admin/fediverse-white.png" width="15rem" style="opacity:0.6;position:relative;top:-1px" class="ant-menu-item-icon"/><span class="ant-menu-title-content"><a href="/admin/federation/followers/">Followers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="setting" class="anticon anticon-setting ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="setting" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"></path></svg></span><span class="ant-menu-title-content">Configuration</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="tool" class="anticon anticon-tool ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="tool" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"></path></svg></span><span class="ant-menu-title-content">Utilities</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="experiment" class="anticon anticon-experiment ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="experiment" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z"></path></svg></span><span class="ant-menu-title-content">Integrations</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px" title="Help" role="menuitem" tabindex="-1"><span role="img" aria-label="question-circle" class="anticon anticon-question-circle ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/help/">Help</a></span></li></ul><div style="display:none" aria-hidden="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1></div></div></aside><section class="ant-layout layout-main"><header class="ant-layout-header layout-header"><div class="ant-space ant-space-horizontal ant-space-align-center"><div class="ant-space-item"><button style="display:none" type="button" class="ant-btn ant-btn-primary ant-btn-circle ant-btn-lg ant-btn-icon-only"><span role="img" aria-label="edit" class="anticon anticon-edit"><svg viewBox="64 64 896 896" focusable="false" data-icon="edit" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z"></path></svg></span></button></div></div><div class="global-stream-title-container"><div class="textfield-with-submit-container"><div class="textfield-component"><div class="formfield-container textfield-container type-default"><div class="label-side"><label for="field-streamTitle" class="formfield-label">Stream Title</label></div><div class="input-side"><div class="input-group"><span class="ant-input-affix-wrapper field field-streamTitle"><input type="text" id="field-streamTitle" class="ant-input" placeholder="What are you streaming now" maxLength="100" value=""/><span class="ant-input-suffix"><span role="button" aria-label="close-circle" tabindex="-1" class="anticon anticon-close-circle ant-input-clear-icon-hidden ant-input-clear-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"></path></svg></span></span></span></div><span class="status-container empty"></span><p class="field-tip">What is your stream about today?</p></div></div></div><div class="formfield-container lower-container"><p class="label-spacer"></p><div class="lower-content"><div class="field-tip">What is your stream about today?</div><span class="status-container empty"></span><div class="update-button-container"><button disabled="" type="button" class="ant-btn ant-btn-primary ant-btn-sm submit-button"><span>Update</span></button></div></div></div></div></div><div class="ant-space ant-space-horizontal ant-space-align-center"><div class="ant-space-item"><div class="online-status-indicator"><span class="status-label">Offline</span><span class="status-icon"><span role="img" aria-label="minus-square" class="anticon anticon-minus-square"><svg viewBox="64 64 896 896" focusable="false" data-icon="minus-square" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z"></path></svg></span></span></div></div></div></header><main class="ant-layout-content main-content-container"><div class="chat-messages"><h1 class="ant-typography">Chat Messages</h1><p>Manage the messages from viewers that show up on your stream.</p><div class="bulk-editor"><span class="label">Check multiple messages to change their visibility to: </span><button disabled="" type="button" class="ant-btn ant-btn-primary ant-btn-round ant-btn-sm button"><span>Show</span></button><button disabled="" type="button" class="ant-btn ant-btn-primary ant-btn-round ant-btn-sm button"><span>Hide</span></button></div><div class="ant-table-wrapper table-container"><div class="ant-spin-nested-loading"><div class="ant-spin-container"><div class="ant-table ant-table-small ant-table-empty ant-table-fixed-header"><div class="ant-table-container"><div style="overflow:hidden" class="ant-table-header"><table style="table-layout:fixed"><colgroup><col class="ant-table-selection-col"/></colgroup><thead class="ant-table-thead"><tr><th class="ant-table-cell ant-table-selection-column"><div class="ant-table-selection"><label class="ant-checkbox-wrapper ant-checkbox-wrapper-disabled"><span class="ant-checkbox ant-checkbox-disabled"><input type="checkbox" disabled="" class="ant-checkbox-input"/><span class="ant-checkbox-inner"></span></span></label></div></th><th class="ant-table-cell timestamp-col ant-table-column-sort ant-table-column-has-sorters"><div class="ant-table-column-sorters"><span class="ant-table-column-title">Time</span><span class="ant-table-column-sorter ant-table-column-sorter-full"><span class="ant-table-column-sorter-inner"><span role="img" aria-label="caret-up" class="anticon anticon-caret-up ant-table-column-sorter-up"><svg viewBox="0 0 1024 1024" focusable="false" data-icon="caret-up" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M858.9 689L530.5 308.2c-9.4-10.9-27.5-10.9-37 0L165.1 689c-12.2 14.2-1.2 35 18.5 35h656.8c19.7 0 30.7-20.8 18.5-35z"></path></svg></span><span role="img" aria-label="caret-down" class="anticon anticon-caret-down ant-table-column-sorter-down active"><svg viewBox="0 0 1024 1024" focusable="false" data-icon="caret-down" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z"></path></svg></span></span></span></div></th><th class="ant-table-cell name-col ant-table-cell-ellipsis ant-table-column-has-sorters"><div class="ant-table-filter-column"><span class="ant-table-column-title"><div class="ant-table-column-sorters"><span class="ant-table-column-title">User</span><span class="ant-table-column-sorter ant-table-column-sorter-full"><span class="ant-table-column-sorter-inner"><span role="img" aria-label="caret-up" class="anticon anticon-caret-up ant-table-column-sorter-up"><svg viewBox="0 0 1024 1024" focusable="false" data-icon="caret-up" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M858.9 689L530.5 308.2c-9.4-10.9-27.5-10.9-37 0L165.1 689c-12.2 14.2-1.2 35 18.5 35h656.8c19.7 0 30.7-20.8 18.5-35z"></path></svg></span><span role="img" aria-label="caret-down" class="anticon anticon-caret-down ant-table-column-sorter-down"><svg viewBox="0 0 1024 1024" focusable="false" data-icon="caret-down" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z"></path></svg></span></span></span></div></span><span role="button" tabindex="-1" class="ant-dropdown-trigger ant-table-filter-trigger"><span role="img" aria-label="filter" class="anticon anticon-filter"><svg viewBox="64 64 896 896" focusable="false" data-icon="filter" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M349 838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V642H349v196zm531.1-684H143.9c-24.5 0-39.8 26.7-27.5 48l221.3 376h348.8l221.3-376c12.1-21.3-3.2-48-27.7-48z"></path></svg></span></span></div></th><th class="ant-table-cell message-col">Message</th><th class="ant-table-cell toggle-col"><div class="ant-table-filter-column"><span class="ant-table-column-title"></span><span role="button" tabindex="-1" class="ant-dropdown-trigger ant-table-filter-trigger"><span role="img" aria-label="filter" class="anticon anticon-filter"><svg viewBox="64 64 896 896" focusable="false" data-icon="filter" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M349 838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V642H349v196zm531.1-684H143.9c-24.5 0-39.8 26.7-27.5 48l221.3 376h348.8l221.3-376c12.1-21.3-3.2-48-27.7-48z"></path></svg></span></span></div></th></tr></thead></table></div><div style="overflow-y:scroll;max-height:540px" class="ant-table-body"><table style="table-layout:fixed"><colgroup><col class="ant-table-selection-col"/><col style="width:90px"/><col style="width:110px"/><col style="width:320px"/><col style="width:30px"/></colgroup><tbody class="ant-table-tbody"><tr aria-hidden="true" class="ant-table-measure-row" style="height:0;font-size:0"><td style="padding:0;border:0;height:0"><div style="height:0;overflow:hidden"> </div></td><td style="padding:0;border:0;height:0"><div style="height:0;overflow:hidden"> </div></td><td style="padding:0;border:0;height:0"><div style="height:0;overflow:hidden"> </div></td><td style="padding:0;border:0;height:0"><div style="height:0;overflow:hidden"> </div></td><td style="padding:0;border:0;height:0"><div style="height:0;overflow:hidden"> </div></td></tr><tr class="ant-table-placeholder"><td colSpan="5" class="ant-table-cell"><div class="ant-empty ant-empty-normal"><div class="ant-empty-image"><svg class="ant-empty-img-simple" width="64" height="41" viewBox="0 0 64 41" xmlns="http://www.w3.org/2000/svg"><g transform="translate(0 1)" fill="none" fill-rule="evenodd"><ellipse class="ant-empty-img-simple-ellipse" cx="32" cy="33" rx="32" ry="7"></ellipse><g class="ant-empty-img-simple-g" fill-rule="nonzero"><path d="M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z"></path><path d="M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z" class="ant-empty-img-simple-path"></path></g></g></svg></div><div class="ant-empty-description">No Data</div></div></td></tr></tbody></table></div></div></div></div></div></div></div></main><footer class="ant-layout-footer footer-container"><a href="https://owncast.online/?source=admin" target="_blank" rel="noopener noreferrer">About Owncast v<!-- -->0.0.0</a></footer></section></section></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/chat/messages","query":{},"buildId":"S0l4GknIl5ifWnPqwFnrr","assetPrefix":"/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html> \ No newline at end of file
diff --git a/static/admin/chat/users/index.html b/static/admin/chat/users/index.html
index 7c438dee4..59ea6640c 100644
--- a/static/admin/chat/users/index.html
+++ b/static/admin/chat/users/index.html
@@ -1 +1 @@
-<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width"/><meta charSet="utf-8"/><title>Owncast Admin</title><link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png"/><meta name="next-head-count" content="4"/><link rel="preload" href="/admin/_next/static/css/ba0ae6285080d7f0.css" as="style"/><link rel="stylesheet" href="/admin/_next/static/css/ba0ae6285080d7f0.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/admin/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/admin/_next/static/chunks/webpack-32f373d36961f088.js" defer=""></script><script src="/admin/_next/static/chunks/framework-4975f770e34de116.js" defer=""></script><script src="/admin/_next/static/chunks/main-6bdb99735697720d.js" defer=""></script><script src="/admin/_next/static/chunks/pages/_app-4f17b8df12d0e919.js" defer=""></script><script src="/admin/_next/static/chunks/29107295-2c3ce868677a27a4.js" defer=""></script><script src="/admin/_next/static/chunks/919-5396b8f9fccff000.js" defer=""></script><script src="/admin/_next/static/chunks/516-b015193bc0d6919e.js" defer=""></script><script src="/admin/_next/static/chunks/91-5f5f536776e2d9c6.js" defer=""></script><script src="/admin/_next/static/chunks/903-27a123d85f49824b.js" defer=""></script><script src="/admin/_next/static/chunks/533-2f63c37b8986cca1.js" defer=""></script><script src="/admin/_next/static/chunks/371-7cb27e335b0cdeb4.js" defer=""></script><script src="/admin/_next/static/chunks/pages/chat/users-3192dc5fd27791e0.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_buildManifest.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_ssgManifest.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_middlewareManifest.js" defer=""></script></head><body><div id="__next" data-reactroot=""><section class="ant-layout app-container"><aside class="ant-layout-sider ant-layout-sider-dark side-nav" style="flex:0 0 240px;max-width:240px;min-width:240px;width:240px"><div class="ant-layout-sider-children"><ul class="ant-menu ant-menu-root ant-menu-inline ant-menu-light menu-container" role="menu" tabindex="0" data-menu-list="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1><li class="ant-menu-item" style="padding-left:24px" role="menuitem" tabindex="-1"><span role="img" aria-label="home" class="anticon anticon-home ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="home" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/">Home</a></span></li><li class="ant-menu-item" style="padding-left:24px" title="Current stream" role="menuitem" tabindex="-1"><span role="img" aria-label="line-chart" class="anticon anticon-line-chart ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="line-chart" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/viewer-info/">Viewers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" style="display:block" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="message" class="anticon anticon-message ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="message" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"></path></svg></span><span class="ant-menu-title-content">Chat &amp; Users</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="setting" class="anticon anticon-setting ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="setting" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"></path></svg></span><span class="ant-menu-title-content">Configuration</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="tool" class="anticon anticon-tool ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="tool" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"></path></svg></span><span class="ant-menu-title-content">Utilities</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="experiment" class="anticon anticon-experiment ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="experiment" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z"></path></svg></span><span class="ant-menu-title-content">Integrations</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px" title="Help" role="menuitem" tabindex="-1"><span role="img" aria-label="question-circle" class="anticon anticon-question-circle ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/help/">Help</a></span></li></ul><div style="display:none" aria-hidden="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1></div></div></aside><section class="ant-layout layout-main"><header class="ant-layout-header layout-header"><div class="global-stream-title-container"><div class="textfield-with-submit-container"><div class="textfield-component"><div class="formfield-container textfield-container type-default"><div class="label-side"><label for="field-streamTitle" class="formfield-label">Stream Title</label></div><div class="input-side"><div class="input-group"><span class="ant-input-affix-wrapper field field-streamTitle"><input type="text" id="field-streamTitle" class="ant-input" placeholder="What are you streaming now" maxLength="100" value=""/><span class="ant-input-suffix"><span role="button" aria-label="close-circle" tabindex="-1" class="anticon anticon-close-circle ant-input-clear-icon-hidden ant-input-clear-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"></path></svg></span></span></span></div><span class="status-container empty"></span><p class="field-tip">What is your stream about today?</p></div></div></div><div class="formfield-container lower-container"><p class="label-spacer"></p><div class="lower-content"><div class="field-tip">What is your stream about today?</div><span class="status-container empty"></span><div class="update-button-container"><button disabled="" type="button" class="ant-btn ant-btn-primary ant-btn-sm submit-button"><span>Update</span></button></div></div></div></div></div><div class="online-status-indicator"><span class="status-label">Offline</span><span class="status-icon"><span role="img" aria-label="minus-square" class="anticon anticon-minus-square"><svg viewBox="64 64 896 896" focusable="false" data-icon="minus-square" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z"></path></svg></span></span></div></header><main class="ant-layout-content main-content-container"><div class="ant-tabs ant-tabs-top"><div role="tablist" class="ant-tabs-nav"><div class="ant-tabs-nav-wrap"><div class="ant-tabs-nav-list" style="transform:translate(0px, 0px)"><div class="ant-tabs-tab ant-tabs-tab-active"><div role="tab" aria-selected="true" class="ant-tabs-tab-btn" tabindex="0"><span>Connected <!-- -->(offline)</span></div></div><div class="ant-tabs-tab"><div role="tab" aria-selected="false" class="ant-tabs-tab-btn" tabindex="0"><span>Banned </span></div></div><div class="ant-tabs-tab"><div role="tab" aria-selected="false" class="ant-tabs-tab-btn" tabindex="0"><span>Moderators </span></div></div><div class="ant-tabs-ink-bar ant-tabs-ink-bar-animated"></div></div></div><div class="ant-tabs-nav-operations ant-tabs-nav-operations-hidden"><button type="button" class="ant-tabs-nav-more" style="visibility:hidden;order:1" tabindex="-1" aria-hidden="true" aria-haspopup="listbox" aria-controls="null-more-popup" id="null-more" aria-expanded="false"><span role="img" aria-label="ellipsis" class="anticon anticon-ellipsis"><svg viewBox="64 64 896 896" focusable="false" data-icon="ellipsis" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M176 511a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0z"></path></svg></span></button></div></div><div class="ant-tabs-content-holder"><div class="ant-tabs-content ant-tabs-content-top"><div role="tabpanel" tabindex="0" aria-hidden="false" class="ant-tabs-tabpane ant-tabs-tabpane-active"><p class="description">When a stream is active and chat is enabled, connected chat clients will be displayed here.</p></div><div role="tabpanel" tabindex="-1" aria-hidden="true" style="display:none" class="ant-tabs-tabpane"></div><div role="tabpanel" tabindex="-1" aria-hidden="true" style="display:none" class="ant-tabs-tabpane"></div></div></div></div></main><footer class="ant-layout-footer footer-container"><a href="https://owncast.online/?source=admin" target="_blank" rel="noopener noreferrer">About Owncast v<!-- -->0.0.0</a></footer></section></section></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/chat/users","query":{},"buildId":"7a6totYv41sSc3NmR-l5-","assetPrefix":"/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html> \ No newline at end of file
+<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width"/><meta charSet="utf-8"/><title>Owncast Admin</title><link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png"/><meta name="next-head-count" content="4"/><link rel="preload" href="/admin/_next/static/css/8f06007bcaf49272.css" as="style"/><link rel="stylesheet" href="/admin/_next/static/css/8f06007bcaf49272.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/admin/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/admin/_next/static/chunks/webpack-d3dfca19c7a5e28c.js" defer=""></script><script src="/admin/_next/static/chunks/framework-4975f770e34de116.js" defer=""></script><script src="/admin/_next/static/chunks/main-6bdb99735697720d.js" defer=""></script><script src="/admin/_next/static/chunks/pages/_app-31024cc89d3736f1.js" defer=""></script><script src="/admin/_next/static/chunks/29107295-2c3ce868677a27a4.js" defer=""></script><script src="/admin/_next/static/chunks/829-c8d1f3db438c210b.js" defer=""></script><script src="/admin/_next/static/chunks/91-5f5f536776e2d9c6.js" defer=""></script><script src="/admin/_next/static/chunks/961-1db4468ca0742ea4.js" defer=""></script><script src="/admin/_next/static/chunks/533-2f63c37b8986cca1.js" defer=""></script><script src="/admin/_next/static/chunks/464-deae2b2f674a34de.js" defer=""></script><script src="/admin/_next/static/chunks/pages/chat/users-4426bd981b718014.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_buildManifest.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_ssgManifest.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_middlewareManifest.js" defer=""></script></head><body><div id="__next" data-reactroot=""><section class="ant-layout app-container"><aside class="ant-layout-sider ant-layout-sider-dark side-nav" style="flex:0 0 240px;max-width:240px;min-width:240px;width:240px"><div class="ant-layout-sider-children"><ul class="ant-menu ant-menu-root ant-menu-inline ant-menu-light menu-container" role="menu" tabindex="0" data-menu-list="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1><li class="ant-menu-item" style="padding-left:24px" role="menuitem" tabindex="-1"><span role="img" aria-label="home" class="anticon anticon-home ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="home" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/">Home</a></span></li><li class="ant-menu-item" style="padding-left:24px" title="Current stream" role="menuitem" tabindex="-1"><span role="img" aria-label="line-chart" class="anticon anticon-line-chart ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="line-chart" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/viewer-info/">Viewers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" style="display:block" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="message" class="anticon anticon-message ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="message" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"></path></svg></span><span class="ant-menu-title-content">Chat &amp; Users</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px;display:none" title="Fediverse followers" role="menuitem" tabindex="-1"><img alt="fediverse icon" src="/admin/fediverse-white.png" width="15rem" style="opacity:0.6;position:relative;top:-1px" class="ant-menu-item-icon"/><span class="ant-menu-title-content"><a href="/admin/federation/followers/">Followers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="setting" class="anticon anticon-setting ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="setting" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"></path></svg></span><span class="ant-menu-title-content">Configuration</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="tool" class="anticon anticon-tool ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="tool" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"></path></svg></span><span class="ant-menu-title-content">Utilities</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="experiment" class="anticon anticon-experiment ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="experiment" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z"></path></svg></span><span class="ant-menu-title-content">Integrations</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px" title="Help" role="menuitem" tabindex="-1"><span role="img" aria-label="question-circle" class="anticon anticon-question-circle ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/help/">Help</a></span></li></ul><div style="display:none" aria-hidden="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1></div></div></aside><section class="ant-layout layout-main"><header class="ant-layout-header layout-header"><div class="ant-space ant-space-horizontal ant-space-align-center"><div class="ant-space-item"><button style="display:none" type="button" class="ant-btn ant-btn-primary ant-btn-circle ant-btn-lg ant-btn-icon-only"><span role="img" aria-label="edit" class="anticon anticon-edit"><svg viewBox="64 64 896 896" focusable="false" data-icon="edit" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z"></path></svg></span></button></div></div><div class="global-stream-title-container"><div class="textfield-with-submit-container"><div class="textfield-component"><div class="formfield-container textfield-container type-default"><div class="label-side"><label for="field-streamTitle" class="formfield-label">Stream Title</label></div><div class="input-side"><div class="input-group"><span class="ant-input-affix-wrapper field field-streamTitle"><input type="text" id="field-streamTitle" class="ant-input" placeholder="What are you streaming now" maxLength="100" value=""/><span class="ant-input-suffix"><span role="button" aria-label="close-circle" tabindex="-1" class="anticon anticon-close-circle ant-input-clear-icon-hidden ant-input-clear-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"></path></svg></span></span></span></div><span class="status-container empty"></span><p class="field-tip">What is your stream about today?</p></div></div></div><div class="formfield-container lower-container"><p class="label-spacer"></p><div class="lower-content"><div class="field-tip">What is your stream about today?</div><span class="status-container empty"></span><div class="update-button-container"><button disabled="" type="button" class="ant-btn ant-btn-primary ant-btn-sm submit-button"><span>Update</span></button></div></div></div></div></div><div class="ant-space ant-space-horizontal ant-space-align-center"><div class="ant-space-item"><div class="online-status-indicator"><span class="status-label">Offline</span><span class="status-icon"><span role="img" aria-label="minus-square" class="anticon anticon-minus-square"><svg viewBox="64 64 896 896" focusable="false" data-icon="minus-square" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z"></path></svg></span></span></div></div></div></header><main class="ant-layout-content main-content-container"><div class="ant-tabs ant-tabs-top"><div role="tablist" class="ant-tabs-nav"><div class="ant-tabs-nav-wrap"><div class="ant-tabs-nav-list" style="transform:translate(0px, 0px)"><div class="ant-tabs-tab ant-tabs-tab-active"><div role="tab" aria-selected="true" class="ant-tabs-tab-btn" tabindex="0"><span>Connected <!-- -->(offline)</span></div></div><div class="ant-tabs-tab"><div role="tab" aria-selected="false" class="ant-tabs-tab-btn" tabindex="0"><span>Banned </span></div></div><div class="ant-tabs-tab"><div role="tab" aria-selected="false" class="ant-tabs-tab-btn" tabindex="0"><span>Moderators </span></div></div><div class="ant-tabs-ink-bar ant-tabs-ink-bar-animated"></div></div></div><div class="ant-tabs-nav-operations ant-tabs-nav-operations-hidden"><button type="button" class="ant-tabs-nav-more" style="visibility:hidden;order:1" tabindex="-1" aria-hidden="true" aria-haspopup="listbox" aria-controls="null-more-popup" id="null-more" aria-expanded="false"><span role="img" aria-label="ellipsis" class="anticon anticon-ellipsis"><svg viewBox="64 64 896 896" focusable="false" data-icon="ellipsis" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M176 511a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0z"></path></svg></span></button></div></div><div class="ant-tabs-content-holder"><div class="ant-tabs-content ant-tabs-content-top"><div role="tabpanel" tabindex="0" aria-hidden="false" class="ant-tabs-tabpane ant-tabs-tabpane-active"><p class="description">When a stream is active and chat is enabled, connected chat clients will be displayed here.</p></div><div role="tabpanel" tabindex="-1" aria-hidden="true" style="display:none" class="ant-tabs-tabpane"></div><div role="tabpanel" tabindex="-1" aria-hidden="true" style="display:none" class="ant-tabs-tabpane"></div></div></div></div></main><footer class="ant-layout-footer footer-container"><a href="https://owncast.online/?source=admin" target="_blank" rel="noopener noreferrer">About Owncast v<!-- -->0.0.0</a></footer></section></section></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/chat/users","query":{},"buildId":"S0l4GknIl5ifWnPqwFnrr","assetPrefix":"/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html> \ No newline at end of file
diff --git a/static/admin/config-chat/index.html b/static/admin/config-chat/index.html
index cfcee0ea6..1394add0e 100644
--- a/static/admin/config-chat/index.html
+++ b/static/admin/config-chat/index.html
@@ -1 +1 @@
-<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width"/><meta charSet="utf-8"/><title>Owncast Admin</title><link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png"/><meta name="next-head-count" content="4"/><link rel="preload" href="/admin/_next/static/css/ba0ae6285080d7f0.css" as="style"/><link rel="stylesheet" href="/admin/_next/static/css/ba0ae6285080d7f0.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/admin/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/admin/_next/static/chunks/webpack-32f373d36961f088.js" defer=""></script><script src="/admin/_next/static/chunks/framework-4975f770e34de116.js" defer=""></script><script src="/admin/_next/static/chunks/main-6bdb99735697720d.js" defer=""></script><script src="/admin/_next/static/chunks/pages/_app-4f17b8df12d0e919.js" defer=""></script><script src="/admin/_next/static/chunks/pages/config-chat-3f5bc5c73afdee0f.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_buildManifest.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_ssgManifest.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_middlewareManifest.js" defer=""></script></head><body><div id="__next" data-reactroot=""><section class="ant-layout app-container"><aside class="ant-layout-sider ant-layout-sider-dark side-nav" style="flex:0 0 240px;max-width:240px;min-width:240px;width:240px"><div class="ant-layout-sider-children"><ul class="ant-menu ant-menu-root ant-menu-inline ant-menu-light menu-container" role="menu" tabindex="0" data-menu-list="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1><li class="ant-menu-item" style="padding-left:24px" role="menuitem" tabindex="-1"><span role="img" aria-label="home" class="anticon anticon-home ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="home" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/">Home</a></span></li><li class="ant-menu-item" style="padding-left:24px" title="Current stream" role="menuitem" tabindex="-1"><span role="img" aria-label="line-chart" class="anticon anticon-line-chart ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="line-chart" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/viewer-info/">Viewers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" style="display:block" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="message" class="anticon anticon-message ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="message" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"></path></svg></span><span class="ant-menu-title-content">Chat &amp; Users</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="setting" class="anticon anticon-setting ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="setting" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"></path></svg></span><span class="ant-menu-title-content">Configuration</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="tool" class="anticon anticon-tool ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="tool" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"></path></svg></span><span class="ant-menu-title-content">Utilities</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="experiment" class="anticon anticon-experiment ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="experiment" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z"></path></svg></span><span class="ant-menu-title-content">Integrations</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px" title="Help" role="menuitem" tabindex="-1"><span role="img" aria-label="question-circle" class="anticon anticon-question-circle ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/help/">Help</a></span></li></ul><div style="display:none" aria-hidden="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1></div></div></aside><section class="ant-layout layout-main"><header class="ant-layout-header layout-header"><div class="global-stream-title-container"><div class="textfield-with-submit-container"><div class="textfield-component"><div class="formfield-container textfield-container type-default"><div class="label-side"><label for="field-streamTitle" class="formfield-label">Stream Title</label></div><div class="input-side"><div class="input-group"><span class="ant-input-affix-wrapper field field-streamTitle"><input type="text" id="field-streamTitle" class="ant-input" placeholder="What are you streaming now" maxLength="100" value=""/><span class="ant-input-suffix"><span role="button" aria-label="close-circle" tabindex="-1" class="anticon anticon-close-circle ant-input-clear-icon-hidden ant-input-clear-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"></path></svg></span></span></span></div><span class="status-container empty"></span><p class="field-tip">What is your stream about today?</p></div></div></div><div class="formfield-container lower-container"><p class="label-spacer"></p><div class="lower-content"><div class="field-tip">What is your stream about today?</div><span class="status-container empty"></span><div class="update-button-container"><button disabled="" type="button" class="ant-btn ant-btn-primary ant-btn-sm submit-button"><span>Update</span></button></div></div></div></div></div><div class="online-status-indicator"><span class="status-label">Offline</span><span class="status-icon"><span role="img" aria-label="minus-square" class="anticon anticon-minus-square"><svg viewBox="64 64 896 896" focusable="false" data-icon="minus-square" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z"></path></svg></span></span></div></header><main class="ant-layout-content main-content-container"></main><footer class="ant-layout-footer footer-container"><a href="https://owncast.online/?source=admin" target="_blank" rel="noopener noreferrer">About Owncast v<!-- -->0.0.0</a></footer></section></section></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/config-chat","query":{},"buildId":"7a6totYv41sSc3NmR-l5-","assetPrefix":"/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html> \ No newline at end of file
+<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width"/><meta charSet="utf-8"/><title>Owncast Admin</title><link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png"/><meta name="next-head-count" content="4"/><link rel="preload" href="/admin/_next/static/css/8f06007bcaf49272.css" as="style"/><link rel="stylesheet" href="/admin/_next/static/css/8f06007bcaf49272.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/admin/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/admin/_next/static/chunks/webpack-d3dfca19c7a5e28c.js" defer=""></script><script src="/admin/_next/static/chunks/framework-4975f770e34de116.js" defer=""></script><script src="/admin/_next/static/chunks/main-6bdb99735697720d.js" defer=""></script><script src="/admin/_next/static/chunks/pages/_app-31024cc89d3736f1.js" defer=""></script><script src="/admin/_next/static/chunks/pages/config-chat-3f47c2e436acea43.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_buildManifest.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_ssgManifest.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_middlewareManifest.js" defer=""></script></head><body><div id="__next" data-reactroot=""><section class="ant-layout app-container"><aside class="ant-layout-sider ant-layout-sider-dark side-nav" style="flex:0 0 240px;max-width:240px;min-width:240px;width:240px"><div class="ant-layout-sider-children"><ul class="ant-menu ant-menu-root ant-menu-inline ant-menu-light menu-container" role="menu" tabindex="0" data-menu-list="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1><li class="ant-menu-item" style="padding-left:24px" role="menuitem" tabindex="-1"><span role="img" aria-label="home" class="anticon anticon-home ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="home" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/">Home</a></span></li><li class="ant-menu-item" style="padding-left:24px" title="Current stream" role="menuitem" tabindex="-1"><span role="img" aria-label="line-chart" class="anticon anticon-line-chart ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="line-chart" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/viewer-info/">Viewers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" style="display:block" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="message" class="anticon anticon-message ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="message" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"></path></svg></span><span class="ant-menu-title-content">Chat &amp; Users</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px;display:none" title="Fediverse followers" role="menuitem" tabindex="-1"><img alt="fediverse icon" src="/admin/fediverse-white.png" width="15rem" style="opacity:0.6;position:relative;top:-1px" class="ant-menu-item-icon"/><span class="ant-menu-title-content"><a href="/admin/federation/followers/">Followers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="setting" class="anticon anticon-setting ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="setting" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"></path></svg></span><span class="ant-menu-title-content">Configuration</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="tool" class="anticon anticon-tool ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="tool" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"></path></svg></span><span class="ant-menu-title-content">Utilities</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="experiment" class="anticon anticon-experiment ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="experiment" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z"></path></svg></span><span class="ant-menu-title-content">Integrations</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px" title="Help" role="menuitem" tabindex="-1"><span role="img" aria-label="question-circle" class="anticon anticon-question-circle ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/help/">Help</a></span></li></ul><div style="display:none" aria-hidden="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1></div></div></aside><section class="ant-layout layout-main"><header class="ant-layout-header layout-header"><div class="ant-space ant-space-horizontal ant-space-align-center"><div class="ant-space-item"><button style="display:none" type="button" class="ant-btn ant-btn-primary ant-btn-circle ant-btn-lg ant-btn-icon-only"><span role="img" aria-label="edit" class="anticon anticon-edit"><svg viewBox="64 64 896 896" focusable="false" data-icon="edit" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z"></path></svg></span></button></div></div><div class="global-stream-title-container"><div class="textfield-with-submit-container"><div class="textfield-component"><div class="formfield-container textfield-container type-default"><div class="label-side"><label for="field-streamTitle" class="formfield-label">Stream Title</label></div><div class="input-side"><div class="input-group"><span class="ant-input-affix-wrapper field field-streamTitle"><input type="text" id="field-streamTitle" class="ant-input" placeholder="What are you streaming now" maxLength="100" value=""/><span class="ant-input-suffix"><span role="button" aria-label="close-circle" tabindex="-1" class="anticon anticon-close-circle ant-input-clear-icon-hidden ant-input-clear-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"></path></svg></span></span></span></div><span class="status-container empty"></span><p class="field-tip">What is your stream about today?</p></div></div></div><div class="formfield-container lower-container"><p class="label-spacer"></p><div class="lower-content"><div class="field-tip">What is your stream about today?</div><span class="status-container empty"></span><div class="update-button-container"><button disabled="" type="button" class="ant-btn ant-btn-primary ant-btn-sm submit-button"><span>Update</span></button></div></div></div></div></div><div class="ant-space ant-space-horizontal ant-space-align-center"><div class="ant-space-item"><div class="online-status-indicator"><span class="status-label">Offline</span><span class="status-icon"><span role="img" aria-label="minus-square" class="anticon anticon-minus-square"><svg viewBox="64 64 896 896" focusable="false" data-icon="minus-square" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z"></path></svg></span></span></div></div></div></header><main class="ant-layout-content main-content-container"></main><footer class="ant-layout-footer footer-container"><a href="https://owncast.online/?source=admin" target="_blank" rel="noopener noreferrer">About Owncast v<!-- -->0.0.0</a></footer></section></section></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/config-chat","query":{},"buildId":"S0l4GknIl5ifWnPqwFnrr","assetPrefix":"/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html> \ No newline at end of file
diff --git a/static/admin/config-federation/index.html b/static/admin/config-federation/index.html
new file mode 100644
index 000000000..22d704b3e
--- /dev/null
+++ b/static/admin/config-federation/index.html
@@ -0,0 +1 @@
+<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width"/><meta charSet="utf-8"/><title>Owncast Admin</title><link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png"/><meta name="next-head-count" content="4"/><link rel="preload" href="/admin/_next/static/css/8f06007bcaf49272.css" as="style"/><link rel="stylesheet" href="/admin/_next/static/css/8f06007bcaf49272.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/admin/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/admin/_next/static/chunks/webpack-d3dfca19c7a5e28c.js" defer=""></script><script src="/admin/_next/static/chunks/framework-4975f770e34de116.js" defer=""></script><script src="/admin/_next/static/chunks/main-6bdb99735697720d.js" defer=""></script><script src="/admin/_next/static/chunks/pages/_app-31024cc89d3736f1.js" defer=""></script><script src="/admin/_next/static/chunks/674-fd7f35cd345c7a4b.js" defer=""></script><script src="/admin/_next/static/chunks/pages/config-federation-ddff59205ab33383.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_buildManifest.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_ssgManifest.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_middlewareManifest.js" defer=""></script></head><body><div id="__next" data-reactroot=""><section class="ant-layout app-container"><aside class="ant-layout-sider ant-layout-sider-dark side-nav" style="flex:0 0 240px;max-width:240px;min-width:240px;width:240px"><div class="ant-layout-sider-children"><ul class="ant-menu ant-menu-root ant-menu-inline ant-menu-light menu-container" role="menu" tabindex="0" data-menu-list="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1><li class="ant-menu-item" style="padding-left:24px" role="menuitem" tabindex="-1"><span role="img" aria-label="home" class="anticon anticon-home ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="home" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/">Home</a></span></li><li class="ant-menu-item" style="padding-left:24px" title="Current stream" role="menuitem" tabindex="-1"><span role="img" aria-label="line-chart" class="anticon anticon-line-chart ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="line-chart" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/viewer-info/">Viewers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" style="display:block" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="message" class="anticon anticon-message ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="message" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"></path></svg></span><span class="ant-menu-title-content">Chat &amp; Users</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px;display:none" title="Fediverse followers" role="menuitem" tabindex="-1"><img alt="fediverse icon" src="/admin/fediverse-white.png" width="15rem" style="opacity:0.6;position:relative;top:-1px" class="ant-menu-item-icon"/><span class="ant-menu-title-content"><a href="/admin/federation/followers/">Followers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="setting" class="anticon anticon-setting ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="setting" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"></path></svg></span><span class="ant-menu-title-content">Configuration</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="tool" class="anticon anticon-tool ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="tool" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"></path></svg></span><span class="ant-menu-title-content">Utilities</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="experiment" class="anticon anticon-experiment ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="experiment" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z"></path></svg></span><span class="ant-menu-title-content">Integrations</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px" title="Help" role="menuitem" tabindex="-1"><span role="img" aria-label="question-circle" class="anticon anticon-question-circle ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/help/">Help</a></span></li></ul><div style="display:none" aria-hidden="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1></div></div></aside><section class="ant-layout layout-main"><header class="ant-layout-header layout-header"><div class="ant-space ant-space-horizontal ant-space-align-center"><div class="ant-space-item"><button style="display:none" type="button" class="ant-btn ant-btn-primary ant-btn-circle ant-btn-lg ant-btn-icon-only"><span role="img" aria-label="edit" class="anticon anticon-edit"><svg viewBox="64 64 896 896" focusable="false" data-icon="edit" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z"></path></svg></span></button></div></div><div class="global-stream-title-container"><div class="textfield-with-submit-container"><div class="textfield-component"><div class="formfield-container textfield-container type-default"><div class="label-side"><label for="field-streamTitle" class="formfield-label">Stream Title</label></div><div class="input-side"><div class="input-group"><span class="ant-input-affix-wrapper field field-streamTitle"><input type="text" id="field-streamTitle" class="ant-input" placeholder="What are you streaming now" maxLength="100" value=""/><span class="ant-input-suffix"><span role="button" aria-label="close-circle" tabindex="-1" class="anticon anticon-close-circle ant-input-clear-icon-hidden ant-input-clear-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"></path></svg></span></span></span></div><span class="status-container empty"></span><p class="field-tip">What is your stream about today?</p></div></div></div><div class="formfield-container lower-container"><p class="label-spacer"></p><div class="lower-content"><div class="field-tip">What is your stream about today?</div><span class="status-container empty"></span><div class="update-button-container"><button disabled="" type="button" class="ant-btn ant-btn-primary ant-btn-sm submit-button"><span>Update</span></button></div></div></div></div></div><div class="ant-space ant-space-horizontal ant-space-align-center"><div class="ant-space-item"><div class="online-status-indicator"><span class="status-label">Offline</span><span class="status-icon"><span role="img" aria-label="minus-square" class="anticon anticon-minus-square"><svg viewBox="64 64 896 896" focusable="false" data-icon="minus-square" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z"></path></svg></span></span></div></div></div></header><main class="ant-layout-content main-content-container"></main><footer class="ant-layout-footer footer-container"><a href="https://owncast.online/?source=admin" target="_blank" rel="noopener noreferrer">About Owncast v<!-- -->0.0.0</a></footer></section></section></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/config-federation","query":{},"buildId":"S0l4GknIl5ifWnPqwFnrr","assetPrefix":"/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html> \ No newline at end of file
diff --git a/static/admin/config-public-details/index.html b/static/admin/config-public-details/index.html
index c6763d759..932202ef8 100644
--- a/static/admin/config-public-details/index.html
+++ b/static/admin/config-public-details/index.html
@@ -1 +1 @@
-<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width"/><meta charSet="utf-8"/><title>Owncast Admin</title><link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png"/><meta name="next-head-count" content="4"/><link rel="preload" href="/admin/_next/static/css/ba0ae6285080d7f0.css" as="style"/><link rel="stylesheet" href="/admin/_next/static/css/ba0ae6285080d7f0.css" data-n-g=""/><link rel="preload" href="/admin/_next/static/css/325160c29fde2de0.css" as="style"/><link rel="stylesheet" href="/admin/_next/static/css/325160c29fde2de0.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/admin/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/admin/_next/static/chunks/webpack-32f373d36961f088.js" defer=""></script><script src="/admin/_next/static/chunks/framework-4975f770e34de116.js" defer=""></script><script src="/admin/_next/static/chunks/main-6bdb99735697720d.js" defer=""></script><script src="/admin/_next/static/chunks/pages/_app-4f17b8df12d0e919.js" defer=""></script><script src="/admin/_next/static/chunks/919-5396b8f9fccff000.js" defer=""></script><script src="/admin/_next/static/chunks/516-b015193bc0d6919e.js" defer=""></script><script src="/admin/_next/static/chunks/910-ed07ccf32f311d03.js" defer=""></script><script src="/admin/_next/static/chunks/589-57c6e66ff27bec68.js" defer=""></script><script src="/admin/_next/static/chunks/17-7e60474a0bf727db.js" defer=""></script><script src="/admin/_next/static/chunks/pages/config-public-details-eff7220124454dae.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_buildManifest.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_ssgManifest.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_middlewareManifest.js" defer=""></script></head><body><div id="__next" data-reactroot=""><section class="ant-layout app-container"><aside class="ant-layout-sider ant-layout-sider-dark side-nav" style="flex:0 0 240px;max-width:240px;min-width:240px;width:240px"><div class="ant-layout-sider-children"><ul class="ant-menu ant-menu-root ant-menu-inline ant-menu-light menu-container" role="menu" tabindex="0" data-menu-list="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1><li class="ant-menu-item" style="padding-left:24px" role="menuitem" tabindex="-1"><span role="img" aria-label="home" class="anticon anticon-home ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="home" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/">Home</a></span></li><li class="ant-menu-item" style="padding-left:24px" title="Current stream" role="menuitem" tabindex="-1"><span role="img" aria-label="line-chart" class="anticon anticon-line-chart ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="line-chart" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/viewer-info/">Viewers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" style="display:block" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="message" class="anticon anticon-message ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="message" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"></path></svg></span><span class="ant-menu-title-content">Chat &amp; Users</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="setting" class="anticon anticon-setting ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="setting" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"></path></svg></span><span class="ant-menu-title-content">Configuration</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="tool" class="anticon anticon-tool ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="tool" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"></path></svg></span><span class="ant-menu-title-content">Utilities</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="experiment" class="anticon anticon-experiment ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="experiment" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z"></path></svg></span><span class="ant-menu-title-content">Integrations</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px" title="Help" role="menuitem" tabindex="-1"><span role="img" aria-label="question-circle" class="anticon anticon-question-circle ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/help/">Help</a></span></li></ul><div style="display:none" aria-hidden="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1></div></div></aside><section class="ant-layout layout-main"><header class="ant-layout-header layout-header"><div class="global-stream-title-container"><div class="textfield-with-submit-container"><div class="textfield-component"><div class="formfield-container textfield-container type-default"><div class="label-side"><label for="field-streamTitle" class="formfield-label">Stream Title</label></div><div class="input-side"><div class="input-group"><span class="ant-input-affix-wrapper field field-streamTitle"><input type="text" id="field-streamTitle" class="ant-input" placeholder="What are you streaming now" maxLength="100" value=""/><span class="ant-input-suffix"><span role="button" aria-label="close-circle" tabindex="-1" class="anticon anticon-close-circle ant-input-clear-icon-hidden ant-input-clear-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"></path></svg></span></span></span></div><span class="status-container empty"></span><p class="field-tip">What is your stream about today?</p></div></div></div><div class="formfield-container lower-container"><p class="label-spacer"></p><div class="lower-content"><div class="field-tip">What is your stream about today?</div><span class="status-container empty"></span><div class="update-button-container"><button disabled="" type="button" class="ant-btn ant-btn-primary ant-btn-sm submit-button"><span>Update</span></button></div></div></div></div></div><div class="online-status-indicator"><span class="status-label">Offline</span><span class="status-icon"><span role="img" aria-label="minus-square" class="anticon anticon-minus-square"><svg viewBox="64 64 896 896" focusable="false" data-icon="minus-square" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z"></path></svg></span></span></div></header><main class="ant-layout-content main-content-container"><div class="config-public-details-page"><h1 class="ant-typography">General Settings</h1><p class="description">The following are displayed on your site to describe your stream and its content.<!-- --> <a href="https://owncast.online/docs/website/?source=admin" target="_blank" rel="noopener noreferrer">Learn more.</a></p><div class="top-container"><div class="form-module instance-details-container"></div><div class="form-module social-items-container "><div class="form-module tags-module"><div class="tag-editor-container"><h3 class="ant-typography section-title">Add Tags</h3><p class="description">This is a great way to categorize your Owncast server on the Directory!</p><div class="edit-current-strings"></div><div class="add-new-string-section"><div class="formfield-container textfield-container type-default"><div class="input-side"><div class="input-group"><span class="ant-input-affix-wrapper field new-tag-input field-tag-input"><input type="text" id="field-tag-input" class="ant-input" placeholder="Add a new tag" maxLength="24" value=""/><span class="ant-input-suffix"><span role="button" aria-label="close-circle" tabindex="-1" class="anticon anticon-close-circle ant-input-clear-icon-hidden ant-input-clear-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"></path></svg></span></span></span></div><span class="status-container empty"></span><p class="field-tip"></p></div></div></div></div></div><div class="form-module social-handles-container"><div class="social-links-edit-container"><h3 class="ant-typography section-title">Your Social Handles</h3><p class="description">Add all your social media handles and links to your other profiles here.</p><span class="status-container empty"></span><div class="ant-table-wrapper social-handles-table"><div class="ant-spin-nested-loading"><div class="ant-spin-container"><div class="ant-table ant-table-small ant-table-empty"><div class="ant-table-container"><div class="ant-table-content"><table style="table-layout:auto"><colgroup></colgroup><thead class="ant-table-thead"><tr><th class="ant-table-cell">Social Link</th><th class="ant-table-cell"></th></tr></thead><tbody class="ant-table-tbody"><tr class="ant-table-placeholder"><td colSpan="2" class="ant-table-cell"><div class="ant-empty ant-empty-normal"><div class="ant-empty-image"><svg class="ant-empty-img-simple" width="64" height="41" viewBox="0 0 64 41" xmlns="http://www.w3.org/2000/svg"><g transform="translate(0 1)" fill="none" fill-rule="evenodd"><ellipse class="ant-empty-img-simple-ellipse" cx="32" cy="33" rx="32" ry="7"></ellipse><g class="ant-empty-img-simple-g" fill-rule="nonzero"><path d="M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z"></path><path d="M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z" class="ant-empty-img-simple-path"></path></g></g></svg></div><div class="ant-empty-description">No Data</div></div></td></tr></tbody></table></div></div></div></div></div></div><br/><button type="button" class="ant-btn ant-btn-primary"><span>Add a new social link</span></button></div></div></div></div><div class="form-module page-content-module"><div class="edit-page-content"><h3 class="ant-typography section-title">Custom Page Content</h3><p class="description">Edit the content of your page by using simple<!-- --> <a href="https://www.markdownguide.org/basic-syntax/" target="_blank" rel="noopener noreferrer">Markdown syntax</a>.</p><br/><div class="page-content-actions"><span class="status-container empty"></span></div></div></div><div class="form-module page-content-module"><div class="edit-custom-css"><h3 class="ant-typography section-title">Customize your page styling with CSS</h3><p class="description">Customize the look and feel of your Owncast instance by overriding the CSS styles of various components on the page. Refer to the<!-- --> <a href="https://owncast.online/docs/website/" rel="noopener noreferrer" target="_blank">CSS &amp; Components guide</a>.</p><p class="description">Please input plain CSS text, as this will be directly injected onto your page during load.</p><div class="formfield-container textfield-container type-textarea"><div class="input-side"><div class="input-group"><span class="ant-input-affix-wrapper ant-input-affix-wrapper-textarea-with-clear-btn"><textarea id="field-customStyles" placeholder="/* Enter custom CSS here */" class="ant-input field field-customStyles"></textarea><span role="button" aria-label="close-circle" tabindex="-1" class="anticon anticon-close-circle ant-input-clear-icon-hidden ant-input-clear-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"></path></svg></span></span></div><span class="status-container empty"></span><p class="field-tip"></p></div></div><br/><div class="page-content-actions"><span class="status-container empty"></span></div></div></div></div></main><footer class="ant-layout-footer footer-container"><a href="https://owncast.online/?source=admin" target="_blank" rel="noopener noreferrer">About Owncast v<!-- -->0.0.0</a></footer></section></section></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/config-public-details","query":{},"buildId":"7a6totYv41sSc3NmR-l5-","assetPrefix":"/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html> \ No newline at end of file
+<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width"/><meta charSet="utf-8"/><title>Owncast Admin</title><link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png"/><meta name="next-head-count" content="4"/><link rel="preload" href="/admin/_next/static/css/8f06007bcaf49272.css" as="style"/><link rel="stylesheet" href="/admin/_next/static/css/8f06007bcaf49272.css" data-n-g=""/><link rel="preload" href="/admin/_next/static/css/4da23ced01517a16.css" as="style"/><link rel="stylesheet" href="/admin/_next/static/css/4da23ced01517a16.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/admin/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/admin/_next/static/chunks/webpack-d3dfca19c7a5e28c.js" defer=""></script><script src="/admin/_next/static/chunks/framework-4975f770e34de116.js" defer=""></script><script src="/admin/_next/static/chunks/main-6bdb99735697720d.js" defer=""></script><script src="/admin/_next/static/chunks/pages/_app-31024cc89d3736f1.js" defer=""></script><script src="/admin/_next/static/chunks/829-c8d1f3db438c210b.js" defer=""></script><script src="/admin/_next/static/chunks/910-ed07ccf32f311d03.js" defer=""></script><script src="/admin/_next/static/chunks/589-57c6e66ff27bec68.js" defer=""></script><script src="/admin/_next/static/chunks/17-8c3836887f4f3962.js" defer=""></script><script src="/admin/_next/static/chunks/pages/config-public-details-02c80e54bdb91852.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_buildManifest.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_ssgManifest.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_middlewareManifest.js" defer=""></script></head><body><div id="__next" data-reactroot=""><section class="ant-layout app-container"><aside class="ant-layout-sider ant-layout-sider-dark side-nav" style="flex:0 0 240px;max-width:240px;min-width:240px;width:240px"><div class="ant-layout-sider-children"><ul class="ant-menu ant-menu-root ant-menu-inline ant-menu-light menu-container" role="menu" tabindex="0" data-menu-list="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1><li class="ant-menu-item" style="padding-left:24px" role="menuitem" tabindex="-1"><span role="img" aria-label="home" class="anticon anticon-home ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="home" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/">Home</a></span></li><li class="ant-menu-item" style="padding-left:24px" title="Current stream" role="menuitem" tabindex="-1"><span role="img" aria-label="line-chart" class="anticon anticon-line-chart ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="line-chart" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/viewer-info/">Viewers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" style="display:block" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="message" class="anticon anticon-message ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="message" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"></path></svg></span><span class="ant-menu-title-content">Chat &amp; Users</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px;display:none" title="Fediverse followers" role="menuitem" tabindex="-1"><img alt="fediverse icon" src="/admin/fediverse-white.png" width="15rem" style="opacity:0.6;position:relative;top:-1px" class="ant-menu-item-icon"/><span class="ant-menu-title-content"><a href="/admin/federation/followers/">Followers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="setting" class="anticon anticon-setting ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="setting" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"></path></svg></span><span class="ant-menu-title-content">Configuration</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="tool" class="anticon anticon-tool ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="tool" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"></path></svg></span><span class="ant-menu-title-content">Utilities</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="experiment" class="anticon anticon-experiment ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="experiment" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z"></path></svg></span><span class="ant-menu-title-content">Integrations</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px" title="Help" role="menuitem" tabindex="-1"><span role="img" aria-label="question-circle" class="anticon anticon-question-circle ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/help/">Help</a></span></li></ul><div style="display:none" aria-hidden="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1></div></div></aside><section class="ant-layout layout-main"><header class="ant-layout-header layout-header"><div class="ant-space ant-space-horizontal ant-space-align-center"><div class="ant-space-item"><button style="display:none" type="button" class="ant-btn ant-btn-primary ant-btn-circle ant-btn-lg ant-btn-icon-only"><span role="img" aria-label="edit" class="anticon anticon-edit"><svg viewBox="64 64 896 896" focusable="false" data-icon="edit" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z"></path></svg></span></button></div></div><div class="global-stream-title-container"><div class="textfield-with-submit-container"><div class="textfield-component"><div class="formfield-container textfield-container type-default"><div class="label-side"><label for="field-streamTitle" class="formfield-label">Stream Title</label></div><div class="input-side"><div class="input-group"><span class="ant-input-affix-wrapper field field-streamTitle"><input type="text" id="field-streamTitle" class="ant-input" placeholder="What are you streaming now" maxLength="100" value=""/><span class="ant-input-suffix"><span role="button" aria-label="close-circle" tabindex="-1" class="anticon anticon-close-circle ant-input-clear-icon-hidden ant-input-clear-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"></path></svg></span></span></span></div><span class="status-container empty"></span><p class="field-tip">What is your stream about today?</p></div></div></div><div class="formfield-container lower-container"><p class="label-spacer"></p><div class="lower-content"><div class="field-tip">What is your stream about today?</div><span class="status-container empty"></span><div class="update-button-container"><button disabled="" type="button" class="ant-btn ant-btn-primary ant-btn-sm submit-button"><span>Update</span></button></div></div></div></div></div><div class="ant-space ant-space-horizontal ant-space-align-center"><div class="ant-space-item"><div class="online-status-indicator"><span class="status-label">Offline</span><span class="status-icon"><span role="img" aria-label="minus-square" class="anticon anticon-minus-square"><svg viewBox="64 64 896 896" focusable="false" data-icon="minus-square" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z"></path></svg></span></span></div></div></div></header><main class="ant-layout-content main-content-container"><div class="config-public-details-page"><h1 class="ant-typography">General Settings</h1><p class="description">The following are displayed on your site to describe your stream and its content.<!-- --> <a href="https://owncast.online/docs/website/?source=admin" target="_blank" rel="noopener noreferrer">Learn more.</a></p><div class="top-container"><div class="form-module instance-details-container"></div><div class="form-module social-items-container "><div class="form-module tags-module"><div class="tag-editor-container"><h3 class="ant-typography section-title">Add Tags</h3><p class="description">This is a great way to categorize your Owncast server on the Directory!</p><div class="edit-current-strings"></div><div class="add-new-string-section"><div class="formfield-container textfield-container type-default"><div class="input-side"><div class="input-group"><span class="ant-input-affix-wrapper field new-tag-input field-tag-input"><input type="text" id="field-tag-input" class="ant-input" placeholder="Add a new tag" maxLength="24" value=""/><span class="ant-input-suffix"><span role="button" aria-label="close-circle" tabindex="-1" class="anticon anticon-close-circle ant-input-clear-icon-hidden ant-input-clear-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"></path></svg></span></span></span></div><span class="status-container empty"></span><p class="field-tip"></p></div></div></div></div></div><div class="form-module social-handles-container"><div class="social-links-edit-container"><h3 class="ant-typography section-title">Your Social Handles</h3><p class="description">Add all your social media handles and links to your other profiles here.</p><span class="status-container empty"></span><div class="ant-table-wrapper social-handles-table"><div class="ant-spin-nested-loading"><div class="ant-spin-container"><div class="ant-table ant-table-small ant-table-empty"><div class="ant-table-container"><div class="ant-table-content"><table style="table-layout:auto"><colgroup></colgroup><thead class="ant-table-thead"><tr><th class="ant-table-cell">Social Link</th><th class="ant-table-cell"></th></tr></thead><tbody class="ant-table-tbody"><tr class="ant-table-placeholder"><td colSpan="2" class="ant-table-cell"><div class="ant-empty ant-empty-normal"><div class="ant-empty-image"><svg class="ant-empty-img-simple" width="64" height="41" viewBox="0 0 64 41" xmlns="http://www.w3.org/2000/svg"><g transform="translate(0 1)" fill="none" fill-rule="evenodd"><ellipse class="ant-empty-img-simple-ellipse" cx="32" cy="33" rx="32" ry="7"></ellipse><g class="ant-empty-img-simple-g" fill-rule="nonzero"><path d="M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z"></path><path d="M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z" class="ant-empty-img-simple-path"></path></g></g></svg></div><div class="ant-empty-description">No Data</div></div></td></tr></tbody></table></div></div></div></div></div></div><br/><button type="button" class="ant-btn ant-btn-primary"><span>Add a new social link</span></button></div></div></div></div><div class="form-module page-content-module"><div class="edit-page-content"><h3 class="ant-typography section-title">Custom Page Content</h3><p class="description">Edit the content of your page by using simple<!-- --> <a href="https://www.markdownguide.org/basic-syntax/" target="_blank" rel="noopener noreferrer">Markdown syntax</a>.</p><br/><div class="page-content-actions"><span class="status-container empty"></span></div></div></div><div class="form-module page-content-module"><div class="edit-custom-css"><h3 class="ant-typography section-title">Customize your page styling with CSS</h3><p class="description">Customize the look and feel of your Owncast instance by overriding the CSS styles of various components on the page. Refer to the<!-- --> <a href="https://owncast.online/docs/website/" rel="noopener noreferrer" target="_blank">CSS &amp; Components guide</a>.</p><p class="description">Please input plain CSS text, as this will be directly injected onto your page during load.</p><div class="formfield-container textfield-container type-textarea"><div class="input-side"><div class="input-group"><span class="ant-input-affix-wrapper ant-input-affix-wrapper-textarea-with-clear-btn"><textarea id="field-customStyles" placeholder="/* Enter custom CSS here */" class="ant-input field field-customStyles"></textarea><span role="button" aria-label="close-circle" tabindex="-1" class="anticon anticon-close-circle ant-input-clear-icon-hidden ant-input-clear-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"></path></svg></span></span></div><span class="status-container empty"></span><p class="field-tip"></p></div></div><br/><div class="page-content-actions"><span class="status-container empty"></span></div></div></div></div></main><footer class="ant-layout-footer footer-container"><a href="https://owncast.online/?source=admin" target="_blank" rel="noopener noreferrer">About Owncast v<!-- -->0.0.0</a></footer></section></section></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/config-public-details","query":{},"buildId":"S0l4GknIl5ifWnPqwFnrr","assetPrefix":"/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html> \ No newline at end of file
diff --git a/static/admin/config-server-details/index.html b/static/admin/config-server-details/index.html
index 3bec13985..71b79bf9b 100644
--- a/static/admin/config-server-details/index.html
+++ b/static/admin/config-server-details/index.html
@@ -1 +1 @@
-<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width"/><meta charSet="utf-8"/><title>Owncast Admin</title><link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png"/><meta name="next-head-count" content="4"/><link rel="preload" href="/admin/_next/static/css/ba0ae6285080d7f0.css" as="style"/><link rel="stylesheet" href="/admin/_next/static/css/ba0ae6285080d7f0.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/admin/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/admin/_next/static/chunks/webpack-32f373d36961f088.js" defer=""></script><script src="/admin/_next/static/chunks/framework-4975f770e34de116.js" defer=""></script><script src="/admin/_next/static/chunks/main-6bdb99735697720d.js" defer=""></script><script src="/admin/_next/static/chunks/pages/_app-4f17b8df12d0e919.js" defer=""></script><script src="/admin/_next/static/chunks/578-b2fdca9619a3031e.js" defer=""></script><script src="/admin/_next/static/chunks/pages/config-server-details-955233623bf20860.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_buildManifest.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_ssgManifest.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_middlewareManifest.js" defer=""></script></head><body><div id="__next" data-reactroot=""><section class="ant-layout app-container"><aside class="ant-layout-sider ant-layout-sider-dark side-nav" style="flex:0 0 240px;max-width:240px;min-width:240px;width:240px"><div class="ant-layout-sider-children"><ul class="ant-menu ant-menu-root ant-menu-inline ant-menu-light menu-container" role="menu" tabindex="0" data-menu-list="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1><li class="ant-menu-item" style="padding-left:24px" role="menuitem" tabindex="-1"><span role="img" aria-label="home" class="anticon anticon-home ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="home" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/">Home</a></span></li><li class="ant-menu-item" style="padding-left:24px" title="Current stream" role="menuitem" tabindex="-1"><span role="img" aria-label="line-chart" class="anticon anticon-line-chart ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="line-chart" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/viewer-info/">Viewers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" style="display:block" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="message" class="anticon anticon-message ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="message" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"></path></svg></span><span class="ant-menu-title-content">Chat &amp; Users</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="setting" class="anticon anticon-setting ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="setting" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"></path></svg></span><span class="ant-menu-title-content">Configuration</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="tool" class="anticon anticon-tool ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="tool" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"></path></svg></span><span class="ant-menu-title-content">Utilities</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="experiment" class="anticon anticon-experiment ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="experiment" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z"></path></svg></span><span class="ant-menu-title-content">Integrations</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px" title="Help" role="menuitem" tabindex="-1"><span role="img" aria-label="question-circle" class="anticon anticon-question-circle ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/help/">Help</a></span></li></ul><div style="display:none" aria-hidden="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1></div></div></aside><section class="ant-layout layout-main"><header class="ant-layout-header layout-header"><div class="global-stream-title-container"><div class="textfield-with-submit-container"><div class="textfield-component"><div class="formfield-container textfield-container type-default"><div class="label-side"><label for="field-streamTitle" class="formfield-label">Stream Title</label></div><div class="input-side"><div class="input-group"><span class="ant-input-affix-wrapper field field-streamTitle"><input type="text" id="field-streamTitle" class="ant-input" placeholder="What are you streaming now" maxLength="100" value=""/><span class="ant-input-suffix"><span role="button" aria-label="close-circle" tabindex="-1" class="anticon anticon-close-circle ant-input-clear-icon-hidden ant-input-clear-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"></path></svg></span></span></span></div><span class="status-container empty"></span><p class="field-tip">What is your stream about today?</p></div></div></div><div class="formfield-container lower-container"><p class="label-spacer"></p><div class="lower-content"><div class="field-tip">What is your stream about today?</div><span class="status-container empty"></span><div class="update-button-container"><button disabled="" type="button" class="ant-btn ant-btn-primary ant-btn-sm submit-button"><span>Update</span></button></div></div></div></div></div><div class="online-status-indicator"><span class="status-label">Offline</span><span class="status-icon"><span role="img" aria-label="minus-square" class="anticon anticon-minus-square"><svg viewBox="64 64 896 896" focusable="false" data-icon="minus-square" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z"></path></svg></span></span></div></header><main class="ant-layout-content main-content-container"><div class="config-server-details-form"><h1 class="ant-typography">Server Settings</h1><p class="description">You should change your stream key from the default and keep it safe. For most people it&#x27;s likely the other settings will not need to be changed.</p><div class="form-module config-server-details-container"></div></div></main><footer class="ant-layout-footer footer-container"><a href="https://owncast.online/?source=admin" target="_blank" rel="noopener noreferrer">About Owncast v<!-- -->0.0.0</a></footer></section></section></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/config-server-details","query":{},"buildId":"7a6totYv41sSc3NmR-l5-","assetPrefix":"/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html> \ No newline at end of file
+<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width"/><meta charSet="utf-8"/><title>Owncast Admin</title><link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png"/><meta name="next-head-count" content="4"/><link rel="preload" href="/admin/_next/static/css/8f06007bcaf49272.css" as="style"/><link rel="stylesheet" href="/admin/_next/static/css/8f06007bcaf49272.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/admin/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/admin/_next/static/chunks/webpack-d3dfca19c7a5e28c.js" defer=""></script><script src="/admin/_next/static/chunks/framework-4975f770e34de116.js" defer=""></script><script src="/admin/_next/static/chunks/main-6bdb99735697720d.js" defer=""></script><script src="/admin/_next/static/chunks/pages/_app-31024cc89d3736f1.js" defer=""></script><script src="/admin/_next/static/chunks/578-b2fdca9619a3031e.js" defer=""></script><script src="/admin/_next/static/chunks/pages/config-server-details-40fd225da49d9b45.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_buildManifest.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_ssgManifest.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_middlewareManifest.js" defer=""></script></head><body><div id="__next" data-reactroot=""><section class="ant-layout app-container"><aside class="ant-layout-sider ant-layout-sider-dark side-nav" style="flex:0 0 240px;max-width:240px;min-width:240px;width:240px"><div class="ant-layout-sider-children"><ul class="ant-menu ant-menu-root ant-menu-inline ant-menu-light menu-container" role="menu" tabindex="0" data-menu-list="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1><li class="ant-menu-item" style="padding-left:24px" role="menuitem" tabindex="-1"><span role="img" aria-label="home" class="anticon anticon-home ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="home" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/">Home</a></span></li><li class="ant-menu-item" style="padding-left:24px" title="Current stream" role="menuitem" tabindex="-1"><span role="img" aria-label="line-chart" class="anticon anticon-line-chart ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="line-chart" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/viewer-info/">Viewers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" style="display:block" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="message" class="anticon anticon-message ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="message" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"></path></svg></span><span class="ant-menu-title-content">Chat &amp; Users</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px;display:none" title="Fediverse followers" role="menuitem" tabindex="-1"><img alt="fediverse icon" src="/admin/fediverse-white.png" width="15rem" style="opacity:0.6;position:relative;top:-1px" class="ant-menu-item-icon"/><span class="ant-menu-title-content"><a href="/admin/federation/followers/">Followers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="setting" class="anticon anticon-setting ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="setting" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"></path></svg></span><span class="ant-menu-title-content">Configuration</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="tool" class="anticon anticon-tool ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="tool" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"></path></svg></span><span class="ant-menu-title-content">Utilities</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="experiment" class="anticon anticon-experiment ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="experiment" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z"></path></svg></span><span class="ant-menu-title-content">Integrations</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px" title="Help" role="menuitem" tabindex="-1"><span role="img" aria-label="question-circle" class="anticon anticon-question-circle ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/help/">Help</a></span></li></ul><div style="display:none" aria-hidden="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1></div></div></aside><section class="ant-layout layout-main"><header class="ant-layout-header layout-header"><div class="ant-space ant-space-horizontal ant-space-align-center"><div class="ant-space-item"><button style="display:none" type="button" class="ant-btn ant-btn-primary ant-btn-circle ant-btn-lg ant-btn-icon-only"><span role="img" aria-label="edit" class="anticon anticon-edit"><svg viewBox="64 64 896 896" focusable="false" data-icon="edit" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z"></path></svg></span></button></div></div><div class="global-stream-title-container"><div class="textfield-with-submit-container"><div class="textfield-component"><div class="formfield-container textfield-container type-default"><div class="label-side"><label for="field-streamTitle" class="formfield-label">Stream Title</label></div><div class="input-side"><div class="input-group"><span class="ant-input-affix-wrapper field field-streamTitle"><input type="text" id="field-streamTitle" class="ant-input" placeholder="What are you streaming now" maxLength="100" value=""/><span class="ant-input-suffix"><span role="button" aria-label="close-circle" tabindex="-1" class="anticon anticon-close-circle ant-input-clear-icon-hidden ant-input-clear-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"></path></svg></span></span></span></div><span class="status-container empty"></span><p class="field-tip">What is your stream about today?</p></div></div></div><div class="formfield-container lower-container"><p class="label-spacer"></p><div class="lower-content"><div class="field-tip">What is your stream about today?</div><span class="status-container empty"></span><div class="update-button-container"><button disabled="" type="button" class="ant-btn ant-btn-primary ant-btn-sm submit-button"><span>Update</span></button></div></div></div></div></div><div class="ant-space ant-space-horizontal ant-space-align-center"><div class="ant-space-item"><div class="online-status-indicator"><span class="status-label">Offline</span><span class="status-icon"><span role="img" aria-label="minus-square" class="anticon anticon-minus-square"><svg viewBox="64 64 896 896" focusable="false" data-icon="minus-square" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z"></path></svg></span></span></div></div></div></header><main class="ant-layout-content main-content-container"><div class="config-server-details-form"><h1 class="ant-typography">Server Settings</h1><p class="description">You should change your stream key from the default and keep it safe. For most people it&#x27;s likely the other settings will not need to be changed.</p><div class="form-module config-server-details-container"></div></div></main><footer class="ant-layout-footer footer-container"><a href="https://owncast.online/?source=admin" target="_blank" rel="noopener noreferrer">About Owncast v<!-- -->0.0.0</a></footer></section></section></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/config-server-details","query":{},"buildId":"S0l4GknIl5ifWnPqwFnrr","assetPrefix":"/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html> \ No newline at end of file
diff --git a/static/admin/config-social-items/index.html b/static/admin/config-social-items/index.html
index 077e5ad25..747b104f2 100644
--- a/static/admin/config-social-items/index.html
+++ b/static/admin/config-social-items/index.html
@@ -1 +1 @@
-<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width"/><meta charSet="utf-8"/><title>Owncast Admin</title><link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png"/><meta name="next-head-count" content="4"/><link rel="preload" href="/admin/_next/static/css/ba0ae6285080d7f0.css" as="style"/><link rel="stylesheet" href="/admin/_next/static/css/ba0ae6285080d7f0.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/admin/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/admin/_next/static/chunks/webpack-32f373d36961f088.js" defer=""></script><script src="/admin/_next/static/chunks/framework-4975f770e34de116.js" defer=""></script><script src="/admin/_next/static/chunks/main-6bdb99735697720d.js" defer=""></script><script src="/admin/_next/static/chunks/pages/_app-4f17b8df12d0e919.js" defer=""></script><script src="/admin/_next/static/chunks/919-5396b8f9fccff000.js" defer=""></script><script src="/admin/_next/static/chunks/516-b015193bc0d6919e.js" defer=""></script><script src="/admin/_next/static/chunks/17-7e60474a0bf727db.js" defer=""></script><script src="/admin/_next/static/chunks/pages/config-social-items-f1ffbab8bc62dd1e.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_buildManifest.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_ssgManifest.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_middlewareManifest.js" defer=""></script></head><body><div id="__next" data-reactroot=""><section class="ant-layout app-container"><aside class="ant-layout-sider ant-layout-sider-dark side-nav" style="flex:0 0 240px;max-width:240px;min-width:240px;width:240px"><div class="ant-layout-sider-children"><ul class="ant-menu ant-menu-root ant-menu-inline ant-menu-light menu-container" role="menu" tabindex="0" data-menu-list="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1><li class="ant-menu-item" style="padding-left:24px" role="menuitem" tabindex="-1"><span role="img" aria-label="home" class="anticon anticon-home ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="home" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/">Home</a></span></li><li class="ant-menu-item" style="padding-left:24px" title="Current stream" role="menuitem" tabindex="-1"><span role="img" aria-label="line-chart" class="anticon anticon-line-chart ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="line-chart" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/viewer-info/">Viewers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" style="display:block" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="message" class="anticon anticon-message ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="message" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"></path></svg></span><span class="ant-menu-title-content">Chat &amp; Users</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="setting" class="anticon anticon-setting ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="setting" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"></path></svg></span><span class="ant-menu-title-content">Configuration</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="tool" class="anticon anticon-tool ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="tool" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"></path></svg></span><span class="ant-menu-title-content">Utilities</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="experiment" class="anticon anticon-experiment ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="experiment" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z"></path></svg></span><span class="ant-menu-title-content">Integrations</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px" title="Help" role="menuitem" tabindex="-1"><span role="img" aria-label="question-circle" class="anticon anticon-question-circle ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/help/">Help</a></span></li></ul><div style="display:none" aria-hidden="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1></div></div></aside><section class="ant-layout layout-main"><header class="ant-layout-header layout-header"><div class="global-stream-title-container"><div class="textfield-with-submit-container"><div class="textfield-component"><div class="formfield-container textfield-container type-default"><div class="label-side"><label for="field-streamTitle" class="formfield-label">Stream Title</label></div><div class="input-side"><div class="input-group"><span class="ant-input-affix-wrapper field field-streamTitle"><input type="text" id="field-streamTitle" class="ant-input" placeholder="What are you streaming now" maxLength="100" value=""/><span class="ant-input-suffix"><span role="button" aria-label="close-circle" tabindex="-1" class="anticon anticon-close-circle ant-input-clear-icon-hidden ant-input-clear-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"></path></svg></span></span></span></div><span class="status-container empty"></span><p class="field-tip">What is your stream about today?</p></div></div></div><div class="formfield-container lower-container"><p class="label-spacer"></p><div class="lower-content"><div class="field-tip">What is your stream about today?</div><span class="status-container empty"></span><div class="update-button-container"><button disabled="" type="button" class="ant-btn ant-btn-primary ant-btn-sm submit-button"><span>Update</span></button></div></div></div></div></div><div class="online-status-indicator"><span class="status-label">Offline</span><span class="status-icon"><span role="img" aria-label="minus-square" class="anticon anticon-minus-square"><svg viewBox="64 64 896 896" focusable="false" data-icon="minus-square" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z"></path></svg></span></span></div></header><main class="ant-layout-content main-content-container"><div class="config-social-items"><h1 class="ant-typography">Social Items</h1><div class="social-links-edit-container"><h3 class="ant-typography section-title">Your Social Handles</h3><p class="description">Add all your social media handles and links to your other profiles here.</p><span class="status-container empty"></span><div class="ant-table-wrapper social-handles-table"><div class="ant-spin-nested-loading"><div class="ant-spin-container"><div class="ant-table ant-table-small ant-table-empty"><div class="ant-table-container"><div class="ant-table-content"><table style="table-layout:auto"><colgroup></colgroup><thead class="ant-table-thead"><tr><th class="ant-table-cell">Social Link</th><th class="ant-table-cell"></th></tr></thead><tbody class="ant-table-tbody"><tr class="ant-table-placeholder"><td colSpan="2" class="ant-table-cell"><div class="ant-empty ant-empty-normal"><div class="ant-empty-image"><svg class="ant-empty-img-simple" width="64" height="41" viewBox="0 0 64 41" xmlns="http://www.w3.org/2000/svg"><g transform="translate(0 1)" fill="none" fill-rule="evenodd"><ellipse class="ant-empty-img-simple-ellipse" cx="32" cy="33" rx="32" ry="7"></ellipse><g class="ant-empty-img-simple-g" fill-rule="nonzero"><path d="M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z"></path><path d="M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z" class="ant-empty-img-simple-path"></path></g></g></svg></div><div class="ant-empty-description">No Data</div></div></td></tr></tbody></table></div></div></div></div></div></div><br/><button type="button" class="ant-btn ant-btn-primary"><span>Add a new social link</span></button></div></div></main><footer class="ant-layout-footer footer-container"><a href="https://owncast.online/?source=admin" target="_blank" rel="noopener noreferrer">About Owncast v<!-- -->0.0.0</a></footer></section></section></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/config-social-items","query":{},"buildId":"7a6totYv41sSc3NmR-l5-","assetPrefix":"/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html> \ No newline at end of file
+<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width"/><meta charSet="utf-8"/><title>Owncast Admin</title><link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png"/><meta name="next-head-count" content="4"/><link rel="preload" href="/admin/_next/static/css/8f06007bcaf49272.css" as="style"/><link rel="stylesheet" href="/admin/_next/static/css/8f06007bcaf49272.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/admin/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/admin/_next/static/chunks/webpack-d3dfca19c7a5e28c.js" defer=""></script><script src="/admin/_next/static/chunks/framework-4975f770e34de116.js" defer=""></script><script src="/admin/_next/static/chunks/main-6bdb99735697720d.js" defer=""></script><script src="/admin/_next/static/chunks/pages/_app-31024cc89d3736f1.js" defer=""></script><script src="/admin/_next/static/chunks/829-c8d1f3db438c210b.js" defer=""></script><script src="/admin/_next/static/chunks/17-8c3836887f4f3962.js" defer=""></script><script src="/admin/_next/static/chunks/pages/config-social-items-9ecbdce4f557ac9b.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_buildManifest.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_ssgManifest.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_middlewareManifest.js" defer=""></script></head><body><div id="__next" data-reactroot=""><section class="ant-layout app-container"><aside class="ant-layout-sider ant-layout-sider-dark side-nav" style="flex:0 0 240px;max-width:240px;min-width:240px;width:240px"><div class="ant-layout-sider-children"><ul class="ant-menu ant-menu-root ant-menu-inline ant-menu-light menu-container" role="menu" tabindex="0" data-menu-list="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1><li class="ant-menu-item" style="padding-left:24px" role="menuitem" tabindex="-1"><span role="img" aria-label="home" class="anticon anticon-home ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="home" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/">Home</a></span></li><li class="ant-menu-item" style="padding-left:24px" title="Current stream" role="menuitem" tabindex="-1"><span role="img" aria-label="line-chart" class="anticon anticon-line-chart ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="line-chart" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/viewer-info/">Viewers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" style="display:block" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="message" class="anticon anticon-message ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="message" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"></path></svg></span><span class="ant-menu-title-content">Chat &amp; Users</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px;display:none" title="Fediverse followers" role="menuitem" tabindex="-1"><img alt="fediverse icon" src="/admin/fediverse-white.png" width="15rem" style="opacity:0.6;position:relative;top:-1px" class="ant-menu-item-icon"/><span class="ant-menu-title-content"><a href="/admin/federation/followers/">Followers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="setting" class="anticon anticon-setting ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="setting" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"></path></svg></span><span class="ant-menu-title-content">Configuration</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="tool" class="anticon anticon-tool ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="tool" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"></path></svg></span><span class="ant-menu-title-content">Utilities</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="experiment" class="anticon anticon-experiment ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="experiment" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z"></path></svg></span><span class="ant-menu-title-content">Integrations</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px" title="Help" role="menuitem" tabindex="-1"><span role="img" aria-label="question-circle" class="anticon anticon-question-circle ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/help/">Help</a></span></li></ul><div style="display:none" aria-hidden="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1></div></div></aside><section class="ant-layout layout-main"><header class="ant-layout-header layout-header"><div class="ant-space ant-space-horizontal ant-space-align-center"><div class="ant-space-item"><button style="display:none" type="button" class="ant-btn ant-btn-primary ant-btn-circle ant-btn-lg ant-btn-icon-only"><span role="img" aria-label="edit" class="anticon anticon-edit"><svg viewBox="64 64 896 896" focusable="false" data-icon="edit" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z"></path></svg></span></button></div></div><div class="global-stream-title-container"><div class="textfield-with-submit-container"><div class="textfield-component"><div class="formfield-container textfield-container type-default"><div class="label-side"><label for="field-streamTitle" class="formfield-label">Stream Title</label></div><div class="input-side"><div class="input-group"><span class="ant-input-affix-wrapper field field-streamTitle"><input type="text" id="field-streamTitle" class="ant-input" placeholder="What are you streaming now" maxLength="100" value=""/><span class="ant-input-suffix"><span role="button" aria-label="close-circle" tabindex="-1" class="anticon anticon-close-circle ant-input-clear-icon-hidden ant-input-clear-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"></path></svg></span></span></span></div><span class="status-container empty"></span><p class="field-tip">What is your stream about today?</p></div></div></div><div class="formfield-container lower-container"><p class="label-spacer"></p><div class="lower-content"><div class="field-tip">What is your stream about today?</div><span class="status-container empty"></span><div class="update-button-container"><button disabled="" type="button" class="ant-btn ant-btn-primary ant-btn-sm submit-button"><span>Update</span></button></div></div></div></div></div><div class="ant-space ant-space-horizontal ant-space-align-center"><div class="ant-space-item"><div class="online-status-indicator"><span class="status-label">Offline</span><span class="status-icon"><span role="img" aria-label="minus-square" class="anticon anticon-minus-square"><svg viewBox="64 64 896 896" focusable="false" data-icon="minus-square" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z"></path></svg></span></span></div></div></div></header><main class="ant-layout-content main-content-container"><div class="config-social-items"><h1 class="ant-typography">Social Items</h1><div class="social-links-edit-container"><h3 class="ant-typography section-title">Your Social Handles</h3><p class="description">Add all your social media handles and links to your other profiles here.</p><span class="status-container empty"></span><div class="ant-table-wrapper social-handles-table"><div class="ant-spin-nested-loading"><div class="ant-spin-container"><div class="ant-table ant-table-small ant-table-empty"><div class="ant-table-container"><div class="ant-table-content"><table style="table-layout:auto"><colgroup></colgroup><thead class="ant-table-thead"><tr><th class="ant-table-cell">Social Link</th><th class="ant-table-cell"></th></tr></thead><tbody class="ant-table-tbody"><tr class="ant-table-placeholder"><td colSpan="2" class="ant-table-cell"><div class="ant-empty ant-empty-normal"><div class="ant-empty-image"><svg class="ant-empty-img-simple" width="64" height="41" viewBox="0 0 64 41" xmlns="http://www.w3.org/2000/svg"><g transform="translate(0 1)" fill="none" fill-rule="evenodd"><ellipse class="ant-empty-img-simple-ellipse" cx="32" cy="33" rx="32" ry="7"></ellipse><g class="ant-empty-img-simple-g" fill-rule="nonzero"><path d="M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z"></path><path d="M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z" class="ant-empty-img-simple-path"></path></g></g></svg></div><div class="ant-empty-description">No Data</div></div></td></tr></tbody></table></div></div></div></div></div></div><br/><button type="button" class="ant-btn ant-btn-primary"><span>Add a new social link</span></button></div></div></main><footer class="ant-layout-footer footer-container"><a href="https://owncast.online/?source=admin" target="_blank" rel="noopener noreferrer">About Owncast v<!-- -->0.0.0</a></footer></section></section></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/config-social-items","query":{},"buildId":"S0l4GknIl5ifWnPqwFnrr","assetPrefix":"/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html> \ No newline at end of file
diff --git a/static/admin/config-storage/index.html b/static/admin/config-storage/index.html
index 21b79475e..32d0e9ca3 100644
--- a/static/admin/config-storage/index.html
+++ b/static/admin/config-storage/index.html
@@ -1 +1 @@
-<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width"/><meta charSet="utf-8"/><title>Owncast Admin</title><link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png"/><meta name="next-head-count" content="4"/><link rel="preload" href="/admin/_next/static/css/ba0ae6285080d7f0.css" as="style"/><link rel="stylesheet" href="/admin/_next/static/css/ba0ae6285080d7f0.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/admin/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/admin/_next/static/chunks/webpack-32f373d36961f088.js" defer=""></script><script src="/admin/_next/static/chunks/framework-4975f770e34de116.js" defer=""></script><script src="/admin/_next/static/chunks/main-6bdb99735697720d.js" defer=""></script><script src="/admin/_next/static/chunks/pages/_app-4f17b8df12d0e919.js" defer=""></script><script src="/admin/_next/static/chunks/473-2f8a49a631089460.js" defer=""></script><script src="/admin/_next/static/chunks/pages/config-storage-7ff1038872a3ca18.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_buildManifest.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_ssgManifest.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_middlewareManifest.js" defer=""></script></head><body><div id="__next" data-reactroot=""><section class="ant-layout app-container"><aside class="ant-layout-sider ant-layout-sider-dark side-nav" style="flex:0 0 240px;max-width:240px;min-width:240px;width:240px"><div class="ant-layout-sider-children"><ul class="ant-menu ant-menu-root ant-menu-inline ant-menu-light menu-container" role="menu" tabindex="0" data-menu-list="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1><li class="ant-menu-item" style="padding-left:24px" role="menuitem" tabindex="-1"><span role="img" aria-label="home" class="anticon anticon-home ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="home" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/">Home</a></span></li><li class="ant-menu-item" style="padding-left:24px" title="Current stream" role="menuitem" tabindex="-1"><span role="img" aria-label="line-chart" class="anticon anticon-line-chart ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="line-chart" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/viewer-info/">Viewers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" style="display:block" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="message" class="anticon anticon-message ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="message" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"></path></svg></span><span class="ant-menu-title-content">Chat &amp; Users</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="setting" class="anticon anticon-setting ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="setting" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"></path></svg></span><span class="ant-menu-title-content">Configuration</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="tool" class="anticon anticon-tool ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="tool" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"></path></svg></span><span class="ant-menu-title-content">Utilities</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="experiment" class="anticon anticon-experiment ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="experiment" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z"></path></svg></span><span class="ant-menu-title-content">Integrations</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px" title="Help" role="menuitem" tabindex="-1"><span role="img" aria-label="question-circle" class="anticon anticon-question-circle ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/help/">Help</a></span></li></ul><div style="display:none" aria-hidden="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1></div></div></aside><section class="ant-layout layout-main"><header class="ant-layout-header layout-header"><div class="global-stream-title-container"><div class="textfield-with-submit-container"><div class="textfield-component"><div class="formfield-container textfield-container type-default"><div class="label-side"><label for="field-streamTitle" class="formfield-label">Stream Title</label></div><div class="input-side"><div class="input-group"><span class="ant-input-affix-wrapper field field-streamTitle"><input type="text" id="field-streamTitle" class="ant-input" placeholder="What are you streaming now" maxLength="100" value=""/><span class="ant-input-suffix"><span role="button" aria-label="close-circle" tabindex="-1" class="anticon anticon-close-circle ant-input-clear-icon-hidden ant-input-clear-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"></path></svg></span></span></span></div><span class="status-container empty"></span><p class="field-tip">What is your stream about today?</p></div></div></div><div class="formfield-container lower-container"><p class="label-spacer"></p><div class="lower-content"><div class="field-tip">What is your stream about today?</div><span class="status-container empty"></span><div class="update-button-container"><button disabled="" type="button" class="ant-btn ant-btn-primary ant-btn-sm submit-button"><span>Update</span></button></div></div></div></div></div><div class="online-status-indicator"><span class="status-label">Offline</span><span class="status-icon"><span role="img" aria-label="minus-square" class="anticon anticon-minus-square"><svg viewBox="64 64 896 896" focusable="false" data-icon="minus-square" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z"></path></svg></span></span></div></header><main class="ant-layout-content main-content-container"><h1 class="ant-typography">Storage</h1><p class="description">Owncast supports optionally using external storage providers to stream your video. Learn more about this by visiting our<!-- --> <a href="https://owncast.online/docs/storage/?source=admin" target="_blank" rel="noopener noreferrer">Storage Documentation</a>.</p><p class="description">Configuring this incorrectly will likely cause your video to be unplayable. Double check the documentation for your storage provider on how to configure the bucket you created for Owncast.</p><p class="description">Keep in mind this is for live streaming, not for archival, recording or VOD purposes.</p></main><footer class="ant-layout-footer footer-container"><a href="https://owncast.online/?source=admin" target="_blank" rel="noopener noreferrer">About Owncast v<!-- -->0.0.0</a></footer></section></section></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/config-storage","query":{},"buildId":"7a6totYv41sSc3NmR-l5-","assetPrefix":"/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html> \ No newline at end of file
+<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width"/><meta charSet="utf-8"/><title>Owncast Admin</title><link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png"/><meta name="next-head-count" content="4"/><link rel="preload" href="/admin/_next/static/css/8f06007bcaf49272.css" as="style"/><link rel="stylesheet" href="/admin/_next/static/css/8f06007bcaf49272.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/admin/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/admin/_next/static/chunks/webpack-d3dfca19c7a5e28c.js" defer=""></script><script src="/admin/_next/static/chunks/framework-4975f770e34de116.js" defer=""></script><script src="/admin/_next/static/chunks/main-6bdb99735697720d.js" defer=""></script><script src="/admin/_next/static/chunks/pages/_app-31024cc89d3736f1.js" defer=""></script><script src="/admin/_next/static/chunks/473-2f8a49a631089460.js" defer=""></script><script src="/admin/_next/static/chunks/pages/config-storage-4b8f9ff84ca4aa30.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_buildManifest.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_ssgManifest.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_middlewareManifest.js" defer=""></script></head><body><div id="__next" data-reactroot=""><section class="ant-layout app-container"><aside class="ant-layout-sider ant-layout-sider-dark side-nav" style="flex:0 0 240px;max-width:240px;min-width:240px;width:240px"><div class="ant-layout-sider-children"><ul class="ant-menu ant-menu-root ant-menu-inline ant-menu-light menu-container" role="menu" tabindex="0" data-menu-list="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1><li class="ant-menu-item" style="padding-left:24px" role="menuitem" tabindex="-1"><span role="img" aria-label="home" class="anticon anticon-home ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="home" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/">Home</a></span></li><li class="ant-menu-item" style="padding-left:24px" title="Current stream" role="menuitem" tabindex="-1"><span role="img" aria-label="line-chart" class="anticon anticon-line-chart ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="line-chart" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/viewer-info/">Viewers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" style="display:block" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="message" class="anticon anticon-message ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="message" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"></path></svg></span><span class="ant-menu-title-content">Chat &amp; Users</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px;display:none" title="Fediverse followers" role="menuitem" tabindex="-1"><img alt="fediverse icon" src="/admin/fediverse-white.png" width="15rem" style="opacity:0.6;position:relative;top:-1px" class="ant-menu-item-icon"/><span class="ant-menu-title-content"><a href="/admin/federation/followers/">Followers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="setting" class="anticon anticon-setting ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="setting" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"></path></svg></span><span class="ant-menu-title-content">Configuration</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="tool" class="anticon anticon-tool ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="tool" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"></path></svg></span><span class="ant-menu-title-content">Utilities</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="experiment" class="anticon anticon-experiment ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="experiment" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z"></path></svg></span><span class="ant-menu-title-content">Integrations</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px" title="Help" role="menuitem" tabindex="-1"><span role="img" aria-label="question-circle" class="anticon anticon-question-circle ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/help/">Help</a></span></li></ul><div style="display:none" aria-hidden="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1></div></div></aside><section class="ant-layout layout-main"><header class="ant-layout-header layout-header"><div class="ant-space ant-space-horizontal ant-space-align-center"><div class="ant-space-item"><button style="display:none" type="button" class="ant-btn ant-btn-primary ant-btn-circle ant-btn-lg ant-btn-icon-only"><span role="img" aria-label="edit" class="anticon anticon-edit"><svg viewBox="64 64 896 896" focusable="false" data-icon="edit" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z"></path></svg></span></button></div></div><div class="global-stream-title-container"><div class="textfield-with-submit-container"><div class="textfield-component"><div class="formfield-container textfield-container type-default"><div class="label-side"><label for="field-streamTitle" class="formfield-label">Stream Title</label></div><div class="input-side"><div class="input-group"><span class="ant-input-affix-wrapper field field-streamTitle"><input type="text" id="field-streamTitle" class="ant-input" placeholder="What are you streaming now" maxLength="100" value=""/><span class="ant-input-suffix"><span role="button" aria-label="close-circle" tabindex="-1" class="anticon anticon-close-circle ant-input-clear-icon-hidden ant-input-clear-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"></path></svg></span></span></span></div><span class="status-container empty"></span><p class="field-tip">What is your stream about today?</p></div></div></div><div class="formfield-container lower-container"><p class="label-spacer"></p><div class="lower-content"><div class="field-tip">What is your stream about today?</div><span class="status-container empty"></span><div class="update-button-container"><button disabled="" type="button" class="ant-btn ant-btn-primary ant-btn-sm submit-button"><span>Update</span></button></div></div></div></div></div><div class="ant-space ant-space-horizontal ant-space-align-center"><div class="ant-space-item"><div class="online-status-indicator"><span class="status-label">Offline</span><span class="status-icon"><span role="img" aria-label="minus-square" class="anticon anticon-minus-square"><svg viewBox="64 64 896 896" focusable="false" data-icon="minus-square" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z"></path></svg></span></span></div></div></div></header><main class="ant-layout-content main-content-container"><h1 class="ant-typography">Storage</h1><p class="description">Owncast supports optionally using external storage providers to stream your video. Learn more about this by visiting our<!-- --> <a href="https://owncast.online/docs/storage/?source=admin" target="_blank" rel="noopener noreferrer">Storage Documentation</a>.</p><p class="description">Configuring this incorrectly will likely cause your video to be unplayable. Double check the documentation for your storage provider on how to configure the bucket you created for Owncast.</p><p class="description">Keep in mind this is for live streaming, not for archival, recording or VOD purposes.</p></main><footer class="ant-layout-footer footer-container"><a href="https://owncast.online/?source=admin" target="_blank" rel="noopener noreferrer">About Owncast v<!-- -->0.0.0</a></footer></section></section></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/config-storage","query":{},"buildId":"S0l4GknIl5ifWnPqwFnrr","assetPrefix":"/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html> \ No newline at end of file
diff --git a/static/admin/config-video/index.html b/static/admin/config-video/index.html
index 666c29aee..340551b48 100644
--- a/static/admin/config-video/index.html
+++ b/static/admin/config-video/index.html
@@ -1 +1 @@
-<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width"/><meta charSet="utf-8"/><title>Owncast Admin</title><link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png"/><meta name="next-head-count" content="4"/><link rel="preload" href="/admin/_next/static/css/ba0ae6285080d7f0.css" as="style"/><link rel="stylesheet" href="/admin/_next/static/css/ba0ae6285080d7f0.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/admin/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/admin/_next/static/chunks/webpack-32f373d36961f088.js" defer=""></script><script src="/admin/_next/static/chunks/framework-4975f770e34de116.js" defer=""></script><script src="/admin/_next/static/chunks/main-6bdb99735697720d.js" defer=""></script><script src="/admin/_next/static/chunks/pages/_app-4f17b8df12d0e919.js" defer=""></script><script src="/admin/_next/static/chunks/919-5396b8f9fccff000.js" defer=""></script><script src="/admin/_next/static/chunks/516-b015193bc0d6919e.js" defer=""></script><script src="/admin/_next/static/chunks/578-b2fdca9619a3031e.js" defer=""></script><script src="/admin/_next/static/chunks/556-bbfb134a84808c78.js" defer=""></script><script src="/admin/_next/static/chunks/pages/config-video-a76d6520c0f44ced.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_buildManifest.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_ssgManifest.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_middlewareManifest.js" defer=""></script></head><body><div id="__next" data-reactroot=""><section class="ant-layout app-container"><aside class="ant-layout-sider ant-layout-sider-dark side-nav" style="flex:0 0 240px;max-width:240px;min-width:240px;width:240px"><div class="ant-layout-sider-children"><ul class="ant-menu ant-menu-root ant-menu-inline ant-menu-light menu-container" role="menu" tabindex="0" data-menu-list="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1><li class="ant-menu-item" style="padding-left:24px" role="menuitem" tabindex="-1"><span role="img" aria-label="home" class="anticon anticon-home ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="home" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/">Home</a></span></li><li class="ant-menu-item" style="padding-left:24px" title="Current stream" role="menuitem" tabindex="-1"><span role="img" aria-label="line-chart" class="anticon anticon-line-chart ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="line-chart" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/viewer-info/">Viewers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" style="display:block" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="message" class="anticon anticon-message ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="message" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"></path></svg></span><span class="ant-menu-title-content">Chat &amp; Users</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="setting" class="anticon anticon-setting ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="setting" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"></path></svg></span><span class="ant-menu-title-content">Configuration</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="tool" class="anticon anticon-tool ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="tool" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"></path></svg></span><span class="ant-menu-title-content">Utilities</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="experiment" class="anticon anticon-experiment ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="experiment" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z"></path></svg></span><span class="ant-menu-title-content">Integrations</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px" title="Help" role="menuitem" tabindex="-1"><span role="img" aria-label="question-circle" class="anticon anticon-question-circle ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/help/">Help</a></span></li></ul><div style="display:none" aria-hidden="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1></div></div></aside><section class="ant-layout layout-main"><header class="ant-layout-header layout-header"><div class="global-stream-title-container"><div class="textfield-with-submit-container"><div class="textfield-component"><div class="formfield-container textfield-container type-default"><div class="label-side"><label for="field-streamTitle" class="formfield-label">Stream Title</label></div><div class="input-side"><div class="input-group"><span class="ant-input-affix-wrapper field field-streamTitle"><input type="text" id="field-streamTitle" class="ant-input" placeholder="What are you streaming now" maxLength="100" value=""/><span class="ant-input-suffix"><span role="button" aria-label="close-circle" tabindex="-1" class="anticon anticon-close-circle ant-input-clear-icon-hidden ant-input-clear-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"></path></svg></span></span></span></div><span class="status-container empty"></span><p class="field-tip">What is your stream about today?</p></div></div></div><div class="formfield-container lower-container"><p class="label-spacer"></p><div class="lower-content"><div class="field-tip">What is your stream about today?</div><span class="status-container empty"></span><div class="update-button-container"><button disabled="" type="button" class="ant-btn ant-btn-primary ant-btn-sm submit-button"><span>Update</span></button></div></div></div></div></div><div class="online-status-indicator"><span class="status-label">Offline</span><span class="status-icon"><span role="img" aria-label="minus-square" class="anticon anticon-minus-square"><svg viewBox="64 64 896 896" focusable="false" data-icon="minus-square" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z"></path></svg></span></span></div></header><main class="ant-layout-content main-content-container"><div class="config-video-variants"><h1 class="ant-typography">Video configuration</h1><p class="description">Before changing your video configuration<!-- --> <a href="https://owncast.online/docs/video?source=admin" target="_blank" rel="noopener noreferrer">visit the video documentation</a> <!-- -->to learn how it impacts your stream performance. The general rule is to start conservatively by having one middle quality stream output variant and experiment with adding more of varied qualities.</p><div class="ant-row" style="margin-left:-8px;margin-right:-8px;margin-top:-8px;margin-bottom:-8px"><div style="padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px" class="ant-col ant-col-md-24 ant-col-lg-12"><div class="form-module variants-table-module"><h3 class="ant-typography section-title">Stream output</h3><span class="status-container empty"></span><div class="ant-table-wrapper variants-table"><div class="ant-spin-nested-loading"><div class="ant-spin-container"><div class="ant-table ant-table-small"><div class="ant-table-container"><div class="ant-table-content"><table style="table-layout:auto"><colgroup></colgroup><thead class="ant-table-thead"><tr><th class="ant-table-cell">Name</th><th class="ant-table-cell">Video bitrate</th><th class="ant-table-cell">CPU Usage</th><th class="ant-table-cell"></th></tr></thead><tbody class="ant-table-tbody"><tr data-row-key="1" class="ant-table-row ant-table-row-level-0"><td class="ant-table-cell">No name</td><td class="ant-table-cell">800 kbps</td><td class="ant-table-cell">Medium</td><td class="ant-table-cell"><span class="actions"><button type="button" class="ant-btn ant-btn-sm"><span>Edit</span></button><button disabled="" type="button" class="ant-btn ant-btn-sm ant-btn-icon-only delete-button"><span role="img" aria-label="delete" class="anticon anticon-delete"><svg viewBox="64 64 896 896" focusable="false" data-icon="delete" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M360 184h-8c4.4 0 8-3.6 8-8v8h304v-8c0 4.4 3.6 8 8 8h-8v72h72v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80h72v-72zm504 72H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM731.3 840H292.7l-24.2-512h487l-24.2 512z"></path></svg></span></button></span></td></tr></tbody></table></div></div></div></div></div></div><br/><button type="button" class="ant-btn ant-btn-primary"><span>Add a new variant</span></button></div></div><div style="padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px" class="ant-col ant-col-md-24 ant-col-lg-12"><div class="form-module latency-module"><div class="config-video-latency-container"><h3 class="ant-typography section-title">Latency Buffer</h3><p class="description">While it&#x27;s natural to want to keep your latency as low as possible, you may experience reduced error tolerance and stability the lower you go. The lowest setting is not recommended.</p><p class="description">For interactive live streams you may want to experiment with a lower latency, for non-interactive broadcasts you may want to increase it.<!-- --> <a href="https://owncast.online/docs/encoding#latency-buffer?source=admin" target="_blank" rel="noopener noreferrer">Read to learn more.</a></p><div class="segment-slider-container"><div class="ant-slider ant-slider-with-marks"><div class="ant-slider-rail"></div><div class="ant-slider-track" style="left:0%;right:auto;width:0%"></div><div class="ant-slider-step"><span class="ant-slider-dot ant-slider-dot-active" style="left:0%"></span><span class="ant-slider-dot" style="left:25%"></span><span class="ant-slider-dot" style="left:50%"></span><span class="ant-slider-dot" style="left:75%"></span><span class="ant-slider-dot" style="left:100%"></span></div><div tabindex="0" class="ant-slider-handle" style="left:0%;right:auto;transform:translateX(-50%)" role="slider" aria-valuemin="0" aria-valuemax="4" aria-disabled="false"></div><div class="ant-slider-mark"><span class="ant-slider-mark-text ant-slider-mark-text-active" style="transform:translateX(-50%);-ms-transform:translateX(-50%);left:0%">Lowest</span><span class="ant-slider-mark-text" style="transform:translateX(-50%);-ms-transform:translateX(-50%);left:100%">Highest</span></div></div><p class="selected-value-note"></p><span class="status-container empty"></span></div></div></div><div class="ant-collapse ant-collapse-icon-position-left advanced-settings codec-module"><div class="ant-collapse-item"><div class="ant-collapse-header" role="button" tabindex="0" aria-expanded="false"><div><span role="img" aria-label="right" class="anticon anticon-right ant-collapse-arrow"><svg viewBox="64 64 896 896" focusable="false" data-icon="right" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M765.7 486.8L314.9 134.7A7.97 7.97 0 00302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 000-50.4z"></path></svg></span></div>Advanced Settings</div></div></div></div></div></div></main><footer class="ant-layout-footer footer-container"><a href="https://owncast.online/?source=admin" target="_blank" rel="noopener noreferrer">About Owncast v<!-- -->0.0.0</a></footer></section></section></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/config-video","query":{},"buildId":"7a6totYv41sSc3NmR-l5-","assetPrefix":"/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html> \ No newline at end of file
+<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width"/><meta charSet="utf-8"/><title>Owncast Admin</title><link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png"/><meta name="next-head-count" content="4"/><link rel="preload" href="/admin/_next/static/css/8f06007bcaf49272.css" as="style"/><link rel="stylesheet" href="/admin/_next/static/css/8f06007bcaf49272.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/admin/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/admin/_next/static/chunks/webpack-d3dfca19c7a5e28c.js" defer=""></script><script src="/admin/_next/static/chunks/framework-4975f770e34de116.js" defer=""></script><script src="/admin/_next/static/chunks/main-6bdb99735697720d.js" defer=""></script><script src="/admin/_next/static/chunks/pages/_app-31024cc89d3736f1.js" defer=""></script><script src="/admin/_next/static/chunks/829-c8d1f3db438c210b.js" defer=""></script><script src="/admin/_next/static/chunks/578-b2fdca9619a3031e.js" defer=""></script><script src="/admin/_next/static/chunks/556-4bf62bd783267914.js" defer=""></script><script src="/admin/_next/static/chunks/pages/config-video-c250bf8f88dd1d1b.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_buildManifest.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_ssgManifest.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_middlewareManifest.js" defer=""></script></head><body><div id="__next" data-reactroot=""><section class="ant-layout app-container"><aside class="ant-layout-sider ant-layout-sider-dark side-nav" style="flex:0 0 240px;max-width:240px;min-width:240px;width:240px"><div class="ant-layout-sider-children"><ul class="ant-menu ant-menu-root ant-menu-inline ant-menu-light menu-container" role="menu" tabindex="0" data-menu-list="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1><li class="ant-menu-item" style="padding-left:24px" role="menuitem" tabindex="-1"><span role="img" aria-label="home" class="anticon anticon-home ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="home" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/">Home</a></span></li><li class="ant-menu-item" style="padding-left:24px" title="Current stream" role="menuitem" tabindex="-1"><span role="img" aria-label="line-chart" class="anticon anticon-line-chart ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="line-chart" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/viewer-info/">Viewers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" style="display:block" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="message" class="anticon anticon-message ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="message" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"></path></svg></span><span class="ant-menu-title-content">Chat &amp; Users</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px;display:none" title="Fediverse followers" role="menuitem" tabindex="-1"><img alt="fediverse icon" src="/admin/fediverse-white.png" width="15rem" style="opacity:0.6;position:relative;top:-1px" class="ant-menu-item-icon"/><span class="ant-menu-title-content"><a href="/admin/federation/followers/">Followers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="setting" class="anticon anticon-setting ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="setting" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"></path></svg></span><span class="ant-menu-title-content">Configuration</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="tool" class="anticon anticon-tool ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="tool" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"></path></svg></span><span class="ant-menu-title-content">Utilities</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="experiment" class="anticon anticon-experiment ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="experiment" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z"></path></svg></span><span class="ant-menu-title-content">Integrations</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px" title="Help" role="menuitem" tabindex="-1"><span role="img" aria-label="question-circle" class="anticon anticon-question-circle ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/help/">Help</a></span></li></ul><div style="display:none" aria-hidden="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1></div></div></aside><section class="ant-layout layout-main"><header class="ant-layout-header layout-header"><div class="ant-space ant-space-horizontal ant-space-align-center"><div class="ant-space-item"><button style="display:none" type="button" class="ant-btn ant-btn-primary ant-btn-circle ant-btn-lg ant-btn-icon-only"><span role="img" aria-label="edit" class="anticon anticon-edit"><svg viewBox="64 64 896 896" focusable="false" data-icon="edit" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z"></path></svg></span></button></div></div><div class="global-stream-title-container"><div class="textfield-with-submit-container"><div class="textfield-component"><div class="formfield-container textfield-container type-default"><div class="label-side"><label for="field-streamTitle" class="formfield-label">Stream Title</label></div><div class="input-side"><div class="input-group"><span class="ant-input-affix-wrapper field field-streamTitle"><input type="text" id="field-streamTitle" class="ant-input" placeholder="What are you streaming now" maxLength="100" value=""/><span class="ant-input-suffix"><span role="button" aria-label="close-circle" tabindex="-1" class="anticon anticon-close-circle ant-input-clear-icon-hidden ant-input-clear-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"></path></svg></span></span></span></div><span class="status-container empty"></span><p class="field-tip">What is your stream about today?</p></div></div></div><div class="formfield-container lower-container"><p class="label-spacer"></p><div class="lower-content"><div class="field-tip">What is your stream about today?</div><span class="status-container empty"></span><div class="update-button-container"><button disabled="" type="button" class="ant-btn ant-btn-primary ant-btn-sm submit-button"><span>Update</span></button></div></div></div></div></div><div class="ant-space ant-space-horizontal ant-space-align-center"><div class="ant-space-item"><div class="online-status-indicator"><span class="status-label">Offline</span><span class="status-icon"><span role="img" aria-label="minus-square" class="anticon anticon-minus-square"><svg viewBox="64 64 896 896" focusable="false" data-icon="minus-square" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z"></path></svg></span></span></div></div></div></header><main class="ant-layout-content main-content-container"><div class="config-video-variants"><h1 class="ant-typography">Video configuration</h1><p class="description">Before changing your video configuration<!-- --> <a href="https://owncast.online/docs/video?source=admin" target="_blank" rel="noopener noreferrer">visit the video documentation</a> <!-- -->to learn how it impacts your stream performance. The general rule is to start conservatively by having one middle quality stream output variant and experiment with adding more of varied qualities.</p><div class="ant-row" style="margin-left:-8px;margin-right:-8px;margin-top:-8px;margin-bottom:-8px"><div style="padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px" class="ant-col ant-col-md-24 ant-col-lg-12"><div class="form-module variants-table-module"><h3 class="ant-typography section-title">Stream output</h3><span class="status-container empty"></span><div class="ant-table-wrapper variants-table"><div class="ant-spin-nested-loading"><div class="ant-spin-container"><div class="ant-table ant-table-small"><div class="ant-table-container"><div class="ant-table-content"><table style="table-layout:auto"><colgroup></colgroup><thead class="ant-table-thead"><tr><th class="ant-table-cell">Name</th><th class="ant-table-cell">Video bitrate</th><th class="ant-table-cell">CPU Usage</th><th class="ant-table-cell"></th></tr></thead><tbody class="ant-table-tbody"><tr data-row-key="1" class="ant-table-row ant-table-row-level-0"><td class="ant-table-cell">No name</td><td class="ant-table-cell">800 kbps</td><td class="ant-table-cell">Medium</td><td class="ant-table-cell"><span class="actions"><button type="button" class="ant-btn ant-btn-sm"><span>Edit</span></button><button disabled="" type="button" class="ant-btn ant-btn-sm ant-btn-icon-only delete-button"><span role="img" aria-label="delete" class="anticon anticon-delete"><svg viewBox="64 64 896 896" focusable="false" data-icon="delete" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M360 184h-8c4.4 0 8-3.6 8-8v8h304v-8c0 4.4 3.6 8 8 8h-8v72h72v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80h72v-72zm504 72H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM731.3 840H292.7l-24.2-512h487l-24.2 512z"></path></svg></span></button></span></td></tr></tbody></table></div></div></div></div></div></div><br/><button type="button" class="ant-btn ant-btn-primary"><span>Add a new variant</span></button></div></div><div style="padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px" class="ant-col ant-col-md-24 ant-col-lg-12"><div class="form-module latency-module"><div class="config-video-latency-container"><h3 class="ant-typography section-title">Latency Buffer</h3><p class="description">While it&#x27;s natural to want to keep your latency as low as possible, you may experience reduced error tolerance and stability the lower you go. The lowest setting is not recommended.</p><p class="description">For interactive live streams you may want to experiment with a lower latency, for non-interactive broadcasts you may want to increase it.<!-- --> <a href="https://owncast.online/docs/encoding#latency-buffer?source=admin" target="_blank" rel="noopener noreferrer">Read to learn more.</a></p><div class="segment-slider-container"><div class="ant-slider ant-slider-with-marks"><div class="ant-slider-rail"></div><div class="ant-slider-track" style="left:0%;right:auto;width:0%"></div><div class="ant-slider-step"><span class="ant-slider-dot ant-slider-dot-active" style="left:0%"></span><span class="ant-slider-dot" style="left:25%"></span><span class="ant-slider-dot" style="left:50%"></span><span class="ant-slider-dot" style="left:75%"></span><span class="ant-slider-dot" style="left:100%"></span></div><div tabindex="0" class="ant-slider-handle" style="left:0%;right:auto;transform:translateX(-50%)" role="slider" aria-valuemin="0" aria-valuemax="4" aria-disabled="false"></div><div class="ant-slider-mark"><span class="ant-slider-mark-text ant-slider-mark-text-active" style="transform:translateX(-50%);-ms-transform:translateX(-50%);left:0%">Lowest</span><span class="ant-slider-mark-text" style="transform:translateX(-50%);-ms-transform:translateX(-50%);left:100%">Highest</span></div></div><p class="selected-value-note"></p><span class="status-container empty"></span></div></div></div><div class="ant-collapse ant-collapse-icon-position-left advanced-settings codec-module"><div class="ant-collapse-item"><div class="ant-collapse-header" role="button" tabindex="0" aria-expanded="false"><div><span role="img" aria-label="right" class="anticon anticon-right ant-collapse-arrow"><svg viewBox="64 64 896 896" focusable="false" data-icon="right" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M765.7 486.8L314.9 134.7A7.97 7.97 0 00302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 000-50.4z"></path></svg></span></div>Advanced Settings</div></div></div></div></div></div></main><footer class="ant-layout-footer footer-container"><a href="https://owncast.online/?source=admin" target="_blank" rel="noopener noreferrer">About Owncast v<!-- -->0.0.0</a></footer></section></section></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/config-video","query":{},"buildId":"S0l4GknIl5ifWnPqwFnrr","assetPrefix":"/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html> \ No newline at end of file
diff --git a/static/admin/federation/actions/index.html b/static/admin/federation/actions/index.html
new file mode 100644
index 000000000..debe00f5a
--- /dev/null
+++ b/static/admin/federation/actions/index.html
@@ -0,0 +1 @@
+<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width"/><meta charSet="utf-8"/><title>Owncast Admin</title><link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png"/><meta name="next-head-count" content="4"/><link rel="preload" href="/admin/_next/static/css/8f06007bcaf49272.css" as="style"/><link rel="stylesheet" href="/admin/_next/static/css/8f06007bcaf49272.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/admin/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/admin/_next/static/chunks/webpack-d3dfca19c7a5e28c.js" defer=""></script><script src="/admin/_next/static/chunks/framework-4975f770e34de116.js" defer=""></script><script src="/admin/_next/static/chunks/main-6bdb99735697720d.js" defer=""></script><script src="/admin/_next/static/chunks/pages/_app-31024cc89d3736f1.js" defer=""></script><script src="/admin/_next/static/chunks/829-c8d1f3db438c210b.js" defer=""></script><script src="/admin/_next/static/chunks/91-5f5f536776e2d9c6.js" defer=""></script><script src="/admin/_next/static/chunks/pages/federation/actions-a817c8d84eb2e1bf.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_buildManifest.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_ssgManifest.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_middlewareManifest.js" defer=""></script></head><body><div id="__next" data-reactroot=""><section class="ant-layout app-container"><aside class="ant-layout-sider ant-layout-sider-dark side-nav" style="flex:0 0 240px;max-width:240px;min-width:240px;width:240px"><div class="ant-layout-sider-children"><ul class="ant-menu ant-menu-root ant-menu-inline ant-menu-light menu-container" role="menu" tabindex="0" data-menu-list="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1><li class="ant-menu-item" style="padding-left:24px" role="menuitem" tabindex="-1"><span role="img" aria-label="home" class="anticon anticon-home ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="home" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/">Home</a></span></li><li class="ant-menu-item" style="padding-left:24px" title="Current stream" role="menuitem" tabindex="-1"><span role="img" aria-label="line-chart" class="anticon anticon-line-chart ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="line-chart" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/viewer-info/">Viewers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" style="display:block" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="message" class="anticon anticon-message ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="message" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"></path></svg></span><span class="ant-menu-title-content">Chat &amp; Users</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px;display:none" title="Fediverse followers" role="menuitem" tabindex="-1"><img alt="fediverse icon" src="/admin/fediverse-white.png" width="15rem" style="opacity:0.6;position:relative;top:-1px" class="ant-menu-item-icon"/><span class="ant-menu-title-content"><a href="/admin/federation/followers/">Followers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="setting" class="anticon anticon-setting ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="setting" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"></path></svg></span><span class="ant-menu-title-content">Configuration</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="tool" class="anticon anticon-tool ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="tool" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"></path></svg></span><span class="ant-menu-title-content">Utilities</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="experiment" class="anticon anticon-experiment ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="experiment" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z"></path></svg></span><span class="ant-menu-title-content">Integrations</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px" title="Help" role="menuitem" tabindex="-1"><span role="img" aria-label="question-circle" class="anticon anticon-question-circle ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/help/">Help</a></span></li></ul><div style="display:none" aria-hidden="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1></div></div></aside><section class="ant-layout layout-main"><header class="ant-layout-header layout-header"><div class="ant-space ant-space-horizontal ant-space-align-center"><div class="ant-space-item"><button style="display:none" type="button" class="ant-btn ant-btn-primary ant-btn-circle ant-btn-lg ant-btn-icon-only"><span role="img" aria-label="edit" class="anticon anticon-edit"><svg viewBox="64 64 896 896" focusable="false" data-icon="edit" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z"></path></svg></span></button></div></div><div class="global-stream-title-container"><div class="textfield-with-submit-container"><div class="textfield-component"><div class="formfield-container textfield-container type-default"><div class="label-side"><label for="field-streamTitle" class="formfield-label">Stream Title</label></div><div class="input-side"><div class="input-group"><span class="ant-input-affix-wrapper field field-streamTitle"><input type="text" id="field-streamTitle" class="ant-input" placeholder="What are you streaming now" maxLength="100" value=""/><span class="ant-input-suffix"><span role="button" aria-label="close-circle" tabindex="-1" class="anticon anticon-close-circle ant-input-clear-icon-hidden ant-input-clear-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"></path></svg></span></span></span></div><span class="status-container empty"></span><p class="field-tip">What is your stream about today?</p></div></div></div><div class="formfield-container lower-container"><p class="label-spacer"></p><div class="lower-content"><div class="field-tip">What is your stream about today?</div><span class="status-container empty"></span><div class="update-button-container"><button disabled="" type="button" class="ant-btn ant-btn-primary ant-btn-sm submit-button"><span>Update</span></button></div></div></div></div></div><div class="ant-space ant-space-horizontal ant-space-align-center"><div class="ant-space-item"><div class="online-status-indicator"><span class="status-label">Offline</span><span class="status-icon"><span role="img" aria-label="minus-square" class="anticon anticon-minus-square"><svg viewBox="64 64 896 896" focusable="false" data-icon="minus-square" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z"></path></svg></span></span></div></div></div></header><main class="ant-layout-content main-content-container"><div><h3 class="ant-typography">Fediverse Actions</h3><div class="ant-typography">Below is a list of actions that were taken by others in response to your posts as well as people who requested to follow you.</div><div class="ant-table-wrapper"><div class="ant-spin-nested-loading"><div class="ant-spin-container"><div class="ant-table ant-table-small ant-table-empty"><div class="ant-table-container"><div class="ant-table-content"><table style="table-layout:auto"><colgroup><col style="width:50px"/></colgroup><thead class="ant-table-thead"><tr><th class="ant-table-cell">Action</th><th class="ant-table-cell">From</th><th class="ant-table-cell">When</th></tr></thead><tbody class="ant-table-tbody"><tr class="ant-table-placeholder"><td colSpan="3" class="ant-table-cell"><div class="ant-empty ant-empty-normal"><div class="ant-empty-image"><svg class="ant-empty-img-simple" width="64" height="41" viewBox="0 0 64 41" xmlns="http://www.w3.org/2000/svg"><g transform="translate(0 1)" fill="none" fill-rule="evenodd"><ellipse class="ant-empty-img-simple-ellipse" cx="32" cy="33" rx="32" ry="7"></ellipse><g class="ant-empty-img-simple-g" fill-rule="nonzero"><path d="M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z"></path><path d="M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z" class="ant-empty-img-simple-path"></path></g></g></svg></div><div class="ant-empty-description">No Data</div></div></td></tr></tbody></table></div></div></div></div></div></div></div></main><footer class="ant-layout-footer footer-container"><a href="https://owncast.online/?source=admin" target="_blank" rel="noopener noreferrer">About Owncast v<!-- -->0.0.0</a></footer></section></section></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/federation/actions","query":{},"buildId":"S0l4GknIl5ifWnPqwFnrr","assetPrefix":"/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html> \ No newline at end of file
diff --git a/static/admin/federation/followers/index.html b/static/admin/federation/followers/index.html
new file mode 100644
index 000000000..b3afa1fb3
--- /dev/null
+++ b/static/admin/federation/followers/index.html
@@ -0,0 +1 @@
+<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width"/><meta charSet="utf-8"/><title>Owncast Admin</title><link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png"/><meta name="next-head-count" content="4"/><link rel="preload" href="/admin/_next/static/css/8f06007bcaf49272.css" as="style"/><link rel="stylesheet" href="/admin/_next/static/css/8f06007bcaf49272.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/admin/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/admin/_next/static/chunks/webpack-d3dfca19c7a5e28c.js" defer=""></script><script src="/admin/_next/static/chunks/framework-4975f770e34de116.js" defer=""></script><script src="/admin/_next/static/chunks/main-6bdb99735697720d.js" defer=""></script><script src="/admin/_next/static/chunks/pages/_app-31024cc89d3736f1.js" defer=""></script><script src="/admin/_next/static/chunks/829-c8d1f3db438c210b.js" defer=""></script><script src="/admin/_next/static/chunks/91-5f5f536776e2d9c6.js" defer=""></script><script src="/admin/_next/static/chunks/961-1db4468ca0742ea4.js" defer=""></script><script src="/admin/_next/static/chunks/pages/federation/followers-73207b872f42b7a6.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_buildManifest.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_ssgManifest.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_middlewareManifest.js" defer=""></script></head><body><div id="__next" data-reactroot=""><section class="ant-layout app-container"><aside class="ant-layout-sider ant-layout-sider-dark side-nav" style="flex:0 0 240px;max-width:240px;min-width:240px;width:240px"><div class="ant-layout-sider-children"><ul class="ant-menu ant-menu-root ant-menu-inline ant-menu-light menu-container" role="menu" tabindex="0" data-menu-list="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1><li class="ant-menu-item" style="padding-left:24px" role="menuitem" tabindex="-1"><span role="img" aria-label="home" class="anticon anticon-home ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="home" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/">Home</a></span></li><li class="ant-menu-item" style="padding-left:24px" title="Current stream" role="menuitem" tabindex="-1"><span role="img" aria-label="line-chart" class="anticon anticon-line-chart ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="line-chart" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/viewer-info/">Viewers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" style="display:block" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="message" class="anticon anticon-message ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="message" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"></path></svg></span><span class="ant-menu-title-content">Chat &amp; Users</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px;display:none" title="Fediverse followers" role="menuitem" tabindex="-1"><img alt="fediverse icon" src="/admin/fediverse-white.png" width="15rem" style="opacity:0.6;position:relative;top:-1px" class="ant-menu-item-icon"/><span class="ant-menu-title-content"><a href="/admin/federation/followers/">Followers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="setting" class="anticon anticon-setting ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="setting" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"></path></svg></span><span class="ant-menu-title-content">Configuration</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="tool" class="anticon anticon-tool ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="tool" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"></path></svg></span><span class="ant-menu-title-content">Utilities</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="experiment" class="anticon anticon-experiment ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="experiment" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z"></path></svg></span><span class="ant-menu-title-content">Integrations</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px" title="Help" role="menuitem" tabindex="-1"><span role="img" aria-label="question-circle" class="anticon anticon-question-circle ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/help/">Help</a></span></li></ul><div style="display:none" aria-hidden="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1></div></div></aside><section class="ant-layout layout-main"><header class="ant-layout-header layout-header"><div class="ant-space ant-space-horizontal ant-space-align-center"><div class="ant-space-item"><button style="display:none" type="button" class="ant-btn ant-btn-primary ant-btn-circle ant-btn-lg ant-btn-icon-only"><span role="img" aria-label="edit" class="anticon anticon-edit"><svg viewBox="64 64 896 896" focusable="false" data-icon="edit" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z"></path></svg></span></button></div></div><div class="global-stream-title-container"><div class="textfield-with-submit-container"><div class="textfield-component"><div class="formfield-container textfield-container type-default"><div class="label-side"><label for="field-streamTitle" class="formfield-label">Stream Title</label></div><div class="input-side"><div class="input-group"><span class="ant-input-affix-wrapper field field-streamTitle"><input type="text" id="field-streamTitle" class="ant-input" placeholder="What are you streaming now" maxLength="100" value=""/><span class="ant-input-suffix"><span role="button" aria-label="close-circle" tabindex="-1" class="anticon anticon-close-circle ant-input-clear-icon-hidden ant-input-clear-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"></path></svg></span></span></span></div><span class="status-container empty"></span><p class="field-tip">What is your stream about today?</p></div></div></div><div class="formfield-container lower-container"><p class="label-spacer"></p><div class="lower-content"><div class="field-tip">What is your stream about today?</div><span class="status-container empty"></span><div class="update-button-container"><button disabled="" type="button" class="ant-btn ant-btn-primary ant-btn-sm submit-button"><span>Update</span></button></div></div></div></div></div><div class="ant-space ant-space-horizontal ant-space-align-center"><div class="ant-space-item"><div class="online-status-indicator"><span class="status-label">Offline</span><span class="status-icon"><span role="img" aria-label="minus-square" class="anticon anticon-minus-square"><svg viewBox="64 64 896 896" focusable="false" data-icon="minus-square" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z"></path></svg></span></span></div></div></div></header><main class="ant-layout-content main-content-container"><div class="followers-section"><div class="ant-tabs ant-tabs-top"><div role="tablist" class="ant-tabs-nav"><div class="ant-tabs-nav-wrap"><div class="ant-tabs-nav-list" style="transform:translate(0px, 0px)"><div class="ant-tabs-tab ant-tabs-tab-active"><div role="tab" aria-selected="true" class="ant-tabs-tab-btn" tabindex="0"><span>Followers </span></div></div><div class="ant-tabs-tab"><div role="tab" aria-selected="false" class="ant-tabs-tab-btn" tabindex="0"><span>Blocked </span></div></div><div class="ant-tabs-ink-bar ant-tabs-ink-bar-animated"></div></div></div><div class="ant-tabs-nav-operations ant-tabs-nav-operations-hidden"><button type="button" class="ant-tabs-nav-more" style="visibility:hidden;order:1" tabindex="-1" aria-hidden="true" aria-haspopup="listbox" aria-controls="null-more-popup" id="null-more" aria-expanded="false"><span role="img" aria-label="ellipsis" class="anticon anticon-ellipsis"><svg viewBox="64 64 896 896" focusable="false" data-icon="ellipsis" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M176 511a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0z"></path></svg></span></button></div></div><div class="ant-tabs-content-holder"><div class="ant-tabs-content ant-tabs-content-top"><div role="tabpanel" tabindex="0" aria-hidden="false" class="ant-tabs-tabpane ant-tabs-tabpane-active"><p>The following accounts get notified when you go live or send a post.</p><div class="ant-table-wrapper"><div class="ant-spin-nested-loading"><div class="ant-spin-container"><div class="ant-table ant-table-small ant-table-empty"><div class="ant-table-container"><div class="ant-table-content"><table style="table-layout:auto"><colgroup><col style="width:90px"/><col/><col/><col style="width:200px"/><col style="width:50px"/></colgroup><thead class="ant-table-thead"><tr><th class="ant-table-cell"></th><th class="ant-table-cell">Name</th><th class="ant-table-cell">URL</th><th class="ant-table-cell ant-table-column-sort ant-table-column-has-sorters"><div class="ant-table-column-sorters"><span class="ant-table-column-title">Added</span><span class="ant-table-column-sorter ant-table-column-sorter-full"><span class="ant-table-column-sorter-inner"><span role="img" aria-label="caret-up" class="anticon anticon-caret-up ant-table-column-sorter-up"><svg viewBox="0 0 1024 1024" focusable="false" data-icon="caret-up" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M858.9 689L530.5 308.2c-9.4-10.9-27.5-10.9-37 0L165.1 689c-12.2 14.2-1.2 35 18.5 35h656.8c19.7 0 30.7-20.8 18.5-35z"></path></svg></span><span role="img" aria-label="caret-down" class="anticon anticon-caret-down ant-table-column-sorter-down active"><svg viewBox="0 0 1024 1024" focusable="false" data-icon="caret-down" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z"></path></svg></span></span></span></div></th><th class="ant-table-cell">Remove</th></tr></thead><tbody class="ant-table-tbody"><tr class="ant-table-placeholder"><td colSpan="5" class="ant-table-cell"><div class="ant-empty ant-empty-normal"><div class="ant-empty-image"><svg class="ant-empty-img-simple" width="64" height="41" viewBox="0 0 64 41" xmlns="http://www.w3.org/2000/svg"><g transform="translate(0 1)" fill="none" fill-rule="evenodd"><ellipse class="ant-empty-img-simple-ellipse" cx="32" cy="33" rx="32" ry="7"></ellipse><g class="ant-empty-img-simple-g" fill-rule="nonzero"><path d="M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z"></path><path d="M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z" class="ant-empty-img-simple-path"></path></g></g></svg></div><div class="ant-empty-description">No Data</div></div></td></tr></tbody></table></div></div></div></div></div></div> </div><div role="tabpanel" tabindex="-1" aria-hidden="true" style="display:none" class="ant-tabs-tabpane"></div></div></div></div></div></main><footer class="ant-layout-footer footer-container"><a href="https://owncast.online/?source=admin" target="_blank" rel="noopener noreferrer">About Owncast v<!-- -->0.0.0</a></footer></section></section></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/federation/followers","query":{},"buildId":"S0l4GknIl5ifWnPqwFnrr","assetPrefix":"/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html> \ No newline at end of file
diff --git a/static/admin/fediverse-white.png b/static/admin/fediverse-white.png
new file mode 100644
index 000000000..a63a7acbd
--- /dev/null
+++ b/static/admin/fediverse-white.png
Binary files differ
diff --git a/static/admin/hardware-info/index.html b/static/admin/hardware-info/index.html
index cb2fcf36d..b1f432072 100644
--- a/static/admin/hardware-info/index.html
+++ b/static/admin/hardware-info/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width"/><meta charSet="utf-8"/><title>Owncast Admin</title><link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png"/><meta name="next-head-count" content="4"/><link rel="preload" href="/admin/_next/static/css/ba0ae6285080d7f0.css" as="style"/><link rel="stylesheet" href="/admin/_next/static/css/ba0ae6285080d7f0.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/admin/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/admin/_next/static/chunks/webpack-32f373d36961f088.js" defer=""></script><script src="/admin/_next/static/chunks/framework-4975f770e34de116.js" defer=""></script><script src="/admin/_next/static/chunks/main-6bdb99735697720d.js" defer=""></script><script src="/admin/_next/static/chunks/pages/_app-4f17b8df12d0e919.js" defer=""></script><script src="/admin/_next/static/chunks/36bcf0ca-c1f70baa5cd8cbbf.js" defer=""></script><script src="/admin/_next/static/chunks/91-5f5f536776e2d9c6.js" defer=""></script><script src="/admin/_next/static/chunks/903-27a123d85f49824b.js" defer=""></script><script src="/admin/_next/static/chunks/102-c27fe0fc093d5628.js" defer=""></script><script src="/admin/_next/static/chunks/910-ed07ccf32f311d03.js" defer=""></script><script src="/admin/_next/static/chunks/958-d85597c88a5651f8.js" defer=""></script><script src="/admin/_next/static/chunks/pages/hardware-info-4094e416071b6cb5.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_buildManifest.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_ssgManifest.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_middlewareManifest.js" defer=""></script></head><body><div id="__next" data-reactroot=""><section class="ant-layout app-container"><aside class="ant-layout-sider ant-layout-sider-dark side-nav" style="flex:0 0 240px;max-width:240px;min-width:240px;width:240px"><div class="ant-layout-sider-children"><ul class="ant-menu ant-menu-root ant-menu-inline ant-menu-light menu-container" role="menu" tabindex="0" data-menu-list="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1><li class="ant-menu-item" style="padding-left:24px" role="menuitem" tabindex="-1"><span role="img" aria-label="home" class="anticon anticon-home ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="home" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/">Home</a></span></li><li class="ant-menu-item" style="padding-left:24px" title="Current stream" role="menuitem" tabindex="-1"><span role="img" aria-label="line-chart" class="anticon anticon-line-chart ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="line-chart" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/viewer-info/">Viewers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" style="display:block" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="message" class="anticon anticon-message ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="message" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"></path></svg></span><span class="ant-menu-title-content">Chat &amp; Users</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="setting" class="anticon anticon-setting ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="setting" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"></path></svg></span><span class="ant-menu-title-content">Configuration</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="tool" class="anticon anticon-tool ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="tool" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"></path></svg></span><span class="ant-menu-title-content">Utilities</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="experiment" class="anticon anticon-experiment ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="experiment" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z"></path></svg></span><span class="ant-menu-title-content">Integrations</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px" title="Help" role="menuitem" tabindex="-1"><span role="img" aria-label="question-circle" class="anticon anticon-question-circle ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/help/">Help</a></span></li></ul><div style="display:none" aria-hidden="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1></div></div></aside><section class="ant-layout layout-main"><header class="ant-layout-header layout-header"><div class="global-stream-title-container"><div class="textfield-with-submit-container"><div class="textfield-component"><div class="formfield-container textfield-container type-default"><div class="label-side"><label for="field-streamTitle" class="formfield-label">Stream Title</label></div><div class="input-side"><div class="input-group"><span class="ant-input-affix-wrapper field field-streamTitle"><input type="text" id="field-streamTitle" class="ant-input" placeholder="What are you streaming now" maxLength="100" value=""/><span class="ant-input-suffix"><span role="button" aria-label="close-circle" tabindex="-1" class="anticon anticon-close-circle ant-input-clear-icon-hidden ant-input-clear-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"></path></svg></span></span></span></div><span class="status-container empty"></span><p class="field-tip">What is your stream about today?</p></div></div></div><div class="formfield-container lower-container"><p class="label-spacer"></p><div class="lower-content"><div class="field-tip">What is your stream about today?</div><span class="status-container empty"></span><div class="update-button-container"><button disabled="" type="button" class="ant-btn ant-btn-primary ant-btn-sm submit-button"><span>Update</span></button></div></div></div></div></div><div class="online-status-indicator"><span class="status-label">Offline</span><span class="status-icon"><span role="img" aria-label="minus-square" class="anticon anticon-minus-square"><svg viewBox="64 64 896 896" focusable="false" data-icon="minus-square" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z"></path></svg></span></span></div></header><main class="ant-layout-content main-content-container"><h1 class="ant-typography">Hardware Info</h1><br/><div><div class="ant-row ant-row-space-around" style="margin-left:-8px;margin-right:-8px;margin-top:-8px;margin-bottom:-8px"><div style="padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px" class="ant-col"><div class="ant-card ant-card-bordered ant-card-type-inner"><div class="ant-card-body"><div style="display:flex;align-items:center;justify-content:center"><div class="ant-progress ant-progress-circle ant-progress-status-normal ant-progress-show-info ant-progress-default"><div class="ant-progress-inner ant-progress-circle-gradient" style="width:120px;height:120px;font-size:24px"><svg class="ant-progress-circle" viewBox="0 0 100 100"><defs><linearGradient id="undefined-gradient" x1="100%" y1="0%" x2="0%" y2="0%"><stop offset="0%" stop-color="#B63FFF"></stop><stop offset="90%" stop-color="#B63FFF"></stop></linearGradient></defs><path class="ant-progress-circle-trail" d="M 50,50 m 0,47
+<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width"/><meta charSet="utf-8"/><title>Owncast Admin</title><link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png"/><meta name="next-head-count" content="4"/><link rel="preload" href="/admin/_next/static/css/8f06007bcaf49272.css" as="style"/><link rel="stylesheet" href="/admin/_next/static/css/8f06007bcaf49272.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/admin/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/admin/_next/static/chunks/webpack-d3dfca19c7a5e28c.js" defer=""></script><script src="/admin/_next/static/chunks/framework-4975f770e34de116.js" defer=""></script><script src="/admin/_next/static/chunks/main-6bdb99735697720d.js" defer=""></script><script src="/admin/_next/static/chunks/pages/_app-31024cc89d3736f1.js" defer=""></script><script src="/admin/_next/static/chunks/36bcf0ca-c1f70baa5cd8cbbf.js" defer=""></script><script src="/admin/_next/static/chunks/91-5f5f536776e2d9c6.js" defer=""></script><script src="/admin/_next/static/chunks/961-1db4468ca0742ea4.js" defer=""></script><script src="/admin/_next/static/chunks/751-f932ff7ec3e1342a.js" defer=""></script><script src="/admin/_next/static/chunks/763-6084d4b3c149b8f4.js" defer=""></script><script src="/admin/_next/static/chunks/910-ed07ccf32f311d03.js" defer=""></script><script src="/admin/_next/static/chunks/958-d85597c88a5651f8.js" defer=""></script><script src="/admin/_next/static/chunks/pages/hardware-info-4dcdf4aa6510006e.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_buildManifest.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_ssgManifest.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_middlewareManifest.js" defer=""></script></head><body><div id="__next" data-reactroot=""><section class="ant-layout app-container"><aside class="ant-layout-sider ant-layout-sider-dark side-nav" style="flex:0 0 240px;max-width:240px;min-width:240px;width:240px"><div class="ant-layout-sider-children"><ul class="ant-menu ant-menu-root ant-menu-inline ant-menu-light menu-container" role="menu" tabindex="0" data-menu-list="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1><li class="ant-menu-item" style="padding-left:24px" role="menuitem" tabindex="-1"><span role="img" aria-label="home" class="anticon anticon-home ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="home" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/">Home</a></span></li><li class="ant-menu-item" style="padding-left:24px" title="Current stream" role="menuitem" tabindex="-1"><span role="img" aria-label="line-chart" class="anticon anticon-line-chart ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="line-chart" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/viewer-info/">Viewers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" style="display:block" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="message" class="anticon anticon-message ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="message" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"></path></svg></span><span class="ant-menu-title-content">Chat &amp; Users</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px;display:none" title="Fediverse followers" role="menuitem" tabindex="-1"><img alt="fediverse icon" src="/admin/fediverse-white.png" width="15rem" style="opacity:0.6;position:relative;top:-1px" class="ant-menu-item-icon"/><span class="ant-menu-title-content"><a href="/admin/federation/followers/">Followers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="setting" class="anticon anticon-setting ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="setting" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"></path></svg></span><span class="ant-menu-title-content">Configuration</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="tool" class="anticon anticon-tool ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="tool" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"></path></svg></span><span class="ant-menu-title-content">Utilities</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="experiment" class="anticon anticon-experiment ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="experiment" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z"></path></svg></span><span class="ant-menu-title-content">Integrations</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px" title="Help" role="menuitem" tabindex="-1"><span role="img" aria-label="question-circle" class="anticon anticon-question-circle ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/help/">Help</a></span></li></ul><div style="display:none" aria-hidden="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1></div></div></aside><section class="ant-layout layout-main"><header class="ant-layout-header layout-header"><div class="ant-space ant-space-horizontal ant-space-align-center"><div class="ant-space-item"><button style="display:none" type="button" class="ant-btn ant-btn-primary ant-btn-circle ant-btn-lg ant-btn-icon-only"><span role="img" aria-label="edit" class="anticon anticon-edit"><svg viewBox="64 64 896 896" focusable="false" data-icon="edit" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z"></path></svg></span></button></div></div><div class="global-stream-title-container"><div class="textfield-with-submit-container"><div class="textfield-component"><div class="formfield-container textfield-container type-default"><div class="label-side"><label for="field-streamTitle" class="formfield-label">Stream Title</label></div><div class="input-side"><div class="input-group"><span class="ant-input-affix-wrapper field field-streamTitle"><input type="text" id="field-streamTitle" class="ant-input" placeholder="What are you streaming now" maxLength="100" value=""/><span class="ant-input-suffix"><span role="button" aria-label="close-circle" tabindex="-1" class="anticon anticon-close-circle ant-input-clear-icon-hidden ant-input-clear-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"></path></svg></span></span></span></div><span class="status-container empty"></span><p class="field-tip">What is your stream about today?</p></div></div></div><div class="formfield-container lower-container"><p class="label-spacer"></p><div class="lower-content"><div class="field-tip">What is your stream about today?</div><span class="status-container empty"></span><div class="update-button-container"><button disabled="" type="button" class="ant-btn ant-btn-primary ant-btn-sm submit-button"><span>Update</span></button></div></div></div></div></div><div class="ant-space ant-space-horizontal ant-space-align-center"><div class="ant-space-item"><div class="online-status-indicator"><span class="status-label">Offline</span><span class="status-icon"><span role="img" aria-label="minus-square" class="anticon anticon-minus-square"><svg viewBox="64 64 896 896" focusable="false" data-icon="minus-square" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z"></path></svg></span></span></div></div></div></header><main class="ant-layout-content main-content-container"><h1 class="ant-typography">Hardware Info</h1><br/><div><div class="ant-row ant-row-space-around" style="margin-left:-8px;margin-right:-8px;margin-top:-8px;margin-bottom:-8px"><div style="padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px" class="ant-col"><div class="ant-card ant-card-bordered ant-card-type-inner"><div class="ant-card-body"><div style="display:flex;align-items:center;justify-content:center"><div class="ant-progress ant-progress-circle ant-progress-status-normal ant-progress-show-info ant-progress-default"><div class="ant-progress-inner ant-progress-circle-gradient" style="width:120px;height:120px;font-size:24px"><svg class="ant-progress-circle" viewBox="0 0 100 100"><defs><linearGradient id="undefined-gradient" x1="100%" y1="0%" x2="0%" y2="0%"><stop offset="0%" stop-color="#B63FFF"></stop><stop offset="90%" stop-color="#B63FFF"></stop></linearGradient></defs><path class="ant-progress-circle-trail" d="M 50,50 m 0,47
a 47,47 0 1 1 0,-94
a 47,47 0 1 1 0,94" stroke-linecap="round" stroke-width="6" fill-opacity="0" style="stroke-dasharray:220.30970943744057px 295.3097094374406px;stroke-dashoffset:-37.5px;transition:stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s, stroke-width .06s ease .3s, opacity .3s ease 0s"></path><path class="ant-progress-circle-path" d="M 50,50 m 0,47
a 47,47 0 1 1 0,-94
@@ -16,4 +16,4 @@
a 47,47 0 1 1 0,-94
a 47,47 0 1 1 0,94" stroke="url(#undefined-gradient)" stroke-linecap="round" stroke-width="6" opacity="0" fill-opacity="0" style="stroke-dasharray:0px 295.3097094374406px;stroke-dashoffset:-37.5px;transition:stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s, stroke-width .06s ease .3s, opacity .3s ease 0s"></path><path class="ant-progress-circle-path" d="M 50,50 m 0,47
a 47,47 0 1 1 0,-94
- a 47,47 0 1 1 0,94" stroke="" stroke-linecap="round" stroke-width="6" opacity="0" fill-opacity="0" style="stroke:#52C41A;stroke-dasharray:0px 295.3097094374406px;stroke-dashoffset:-37.5px;transition:stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s, stroke-width .06s ease .3s, opacity .3s ease 0s"></path></svg><span class="ant-progress-text"><div><span role="img" aria-label="save" style="color:#FF7700" class="anticon anticon-save"><svg viewBox="64 64 896 896" focusable="false" data-icon="save" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M893.3 293.3L730.7 130.7c-7.5-7.5-16.7-13-26.7-16V112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 184h256v104H384V184zm456 656H184V184h136v136c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V205.8l136 136V840zM512 442c-79.5 0-144 64.5-144 144s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144zm0 224c-44.2 0-80-35.8-80-80s35.8-80 80-80 80 35.8 80 80-35.8 80-80 80z"></path></svg></span><div><span class="ant-typography ant-typography-secondary">Disk</span></div><div><span class="ant-typography ant-typography-secondary">0<!-- -->%</span></div></div></span></div></div></div></div></div></div></div><div class="line-chart-container"><div id="chart-1" style="height:300px;line-height:300px;width:100%;text-align:center;color:#999;font-size:14px;font-family:&#x27;Lucida Grande&#x27;, &#x27;Lucida Sans Unicode&#x27;, Verdana, Arial, Helvetica, sans-serif">Loading...</div></div></div></main><footer class="ant-layout-footer footer-container"><a href="https://owncast.online/?source=admin" target="_blank" rel="noopener noreferrer">About Owncast v<!-- -->0.0.0</a></footer></section></section></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/hardware-info","query":{},"buildId":"7a6totYv41sSc3NmR-l5-","assetPrefix":"/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html> \ No newline at end of file
+ a 47,47 0 1 1 0,94" stroke="" stroke-linecap="round" stroke-width="6" opacity="0" fill-opacity="0" style="stroke:#52C41A;stroke-dasharray:0px 295.3097094374406px;stroke-dashoffset:-37.5px;transition:stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s, stroke-width .06s ease .3s, opacity .3s ease 0s"></path></svg><span class="ant-progress-text"><div><span role="img" aria-label="save" style="color:#FF7700" class="anticon anticon-save"><svg viewBox="64 64 896 896" focusable="false" data-icon="save" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M893.3 293.3L730.7 130.7c-7.5-7.5-16.7-13-26.7-16V112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 184h256v104H384V184zm456 656H184V184h136v136c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V205.8l136 136V840zM512 442c-79.5 0-144 64.5-144 144s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144zm0 224c-44.2 0-80-35.8-80-80s35.8-80 80-80 80 35.8 80 80-35.8 80-80 80z"></path></svg></span><div><span class="ant-typography ant-typography-secondary">Disk</span></div><div><span class="ant-typography ant-typography-secondary">0<!-- -->%</span></div></div></span></div></div></div></div></div></div></div><div class="line-chart-container"><div id="chart-1" style="height:300px;line-height:300px;width:100%;text-align:center;color:#999;font-size:14px;font-family:&#x27;Lucida Grande&#x27;, &#x27;Lucida Sans Unicode&#x27;, Verdana, Arial, Helvetica, sans-serif">Loading...</div></div></div></main><footer class="ant-layout-footer footer-container"><a href="https://owncast.online/?source=admin" target="_blank" rel="noopener noreferrer">About Owncast v<!-- -->0.0.0</a></footer></section></section></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/hardware-info","query":{},"buildId":"S0l4GknIl5ifWnPqwFnrr","assetPrefix":"/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html> \ No newline at end of file
diff --git a/static/admin/help/index.html b/static/admin/help/index.html
index 45b4aad42..e978704c0 100644
--- a/static/admin/help/index.html
+++ b/static/admin/help/index.html
@@ -1 +1 @@
-<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width"/><meta charSet="utf-8"/><title>Owncast Admin</title><link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png"/><meta name="next-head-count" content="4"/><link rel="preload" href="/admin/_next/static/css/ba0ae6285080d7f0.css" as="style"/><link rel="stylesheet" href="/admin/_next/static/css/ba0ae6285080d7f0.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/admin/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/admin/_next/static/chunks/webpack-32f373d36961f088.js" defer=""></script><script src="/admin/_next/static/chunks/framework-4975f770e34de116.js" defer=""></script><script src="/admin/_next/static/chunks/main-6bdb99735697720d.js" defer=""></script><script src="/admin/_next/static/chunks/pages/_app-4f17b8df12d0e919.js" defer=""></script><script src="/admin/_next/static/chunks/903-27a123d85f49824b.js" defer=""></script><script src="/admin/_next/static/chunks/92-7d96a291c7a815bb.js" defer=""></script><script src="/admin/_next/static/chunks/pages/help-c7fc342e125a5d6b.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_buildManifest.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_ssgManifest.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_middlewareManifest.js" defer=""></script></head><body><div id="__next" data-reactroot=""><section class="ant-layout app-container"><aside class="ant-layout-sider ant-layout-sider-dark side-nav" style="flex:0 0 240px;max-width:240px;min-width:240px;width:240px"><div class="ant-layout-sider-children"><ul class="ant-menu ant-menu-root ant-menu-inline ant-menu-light menu-container" role="menu" tabindex="0" data-menu-list="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1><li class="ant-menu-item" style="padding-left:24px" role="menuitem" tabindex="-1"><span role="img" aria-label="home" class="anticon anticon-home ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="home" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/">Home</a></span></li><li class="ant-menu-item" style="padding-left:24px" title="Current stream" role="menuitem" tabindex="-1"><span role="img" aria-label="line-chart" class="anticon anticon-line-chart ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="line-chart" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/viewer-info/">Viewers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" style="display:block" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="message" class="anticon anticon-message ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="message" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"></path></svg></span><span class="ant-menu-title-content">Chat &amp; Users</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="setting" class="anticon anticon-setting ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="setting" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"></path></svg></span><span class="ant-menu-title-content">Configuration</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="tool" class="anticon anticon-tool ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="tool" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"></path></svg></span><span class="ant-menu-title-content">Utilities</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="experiment" class="anticon anticon-experiment ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="experiment" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z"></path></svg></span><span class="ant-menu-title-content">Integrations</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item ant-menu-item-selected" style="padding-left:24px" title="Help" role="menuitem" tabindex="-1"><span role="img" aria-label="question-circle" class="anticon anticon-question-circle ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/help/">Help</a></span></li></ul><div style="display:none" aria-hidden="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1></div></div></aside><section class="ant-layout layout-main"><header class="ant-layout-header layout-header"><div class="global-stream-title-container"><div class="textfield-with-submit-container"><div class="textfield-component"><div class="formfield-container textfield-container type-default"><div class="label-side"><label for="field-streamTitle" class="formfield-label">Stream Title</label></div><div class="input-side"><div class="input-group"><span class="ant-input-affix-wrapper field field-streamTitle"><input type="text" id="field-streamTitle" class="ant-input" placeholder="What are you streaming now" maxLength="100" value=""/><span class="ant-input-suffix"><span role="button" aria-label="close-circle" tabindex="-1" class="anticon anticon-close-circle ant-input-clear-icon-hidden ant-input-clear-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"></path></svg></span></span></span></div><span class="status-container empty"></span><p class="field-tip">What is your stream about today?</p></div></div></div><div class="formfield-container lower-container"><p class="label-spacer"></p><div class="lower-content"><div class="field-tip">What is your stream about today?</div><span class="status-container empty"></span><div class="update-button-container"><button disabled="" type="button" class="ant-btn ant-btn-primary ant-btn-sm submit-button"><span>Update</span></button></div></div></div></div></div><div class="online-status-indicator"><span class="status-label">Offline</span><span class="status-icon"><span role="img" aria-label="minus-square" class="anticon anticon-minus-square"><svg viewBox="64 64 896 896" focusable="false" data-icon="minus-square" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z"></path></svg></span></span></div></header><main class="ant-layout-content main-content-container"><div class="help-page"><h1 class="ant-typography" style="text-align:center">How can we help you?</h1><div class="ant-row ant-row-space-around ant-row-middle" style="margin-left:-8px;margin-right:-8px;margin-top:-8px;margin-bottom:-8px"><div style="padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px;text-align:center" class="ant-col ant-col-xs-24 ant-col-lg-12"><div class="ant-result ant-result-500"><div class="ant-result-icon ant-result-image"><svg width="254" height="294"><defs><path d="M0 .335h253.49v253.49H0z"></path><path d="M0 293.665h253.49V.401H0z"></path></defs><g fill="none" fill-rule="evenodd"><g transform="translate(0 .067)"><mask fill="#fff"></mask><path d="M0 128.134v-2.11C0 56.608 56.273.334 125.69.334h2.11c69.416 0 125.69 56.274 125.69 125.69v2.11c0 69.417-56.274 125.69-125.69 125.69h-2.11C56.273 253.824 0 197.551 0 128.134" fill="#E4EBF7" mask="url(#b)"></path></g><path d="M39.989 132.108a8.332 8.332 0 1 1-16.581-1.671 8.332 8.332 0 0 1 16.58 1.671" fill="#FFF"></path><path d="M37.19 135.59l10.553 5.983M48.665 147.884l-12.734 10.861" stroke="#FFF" stroke-width="2"></path><path d="M40.11 160.816a5.706 5.706 0 1 1-11.354-1.145 5.706 5.706 0 0 1 11.354 1.145M57.943 144.6a5.747 5.747 0 1 1-11.436-1.152 5.747 5.747 0 0 1 11.436 1.153M99.656 27.434l30.024-.013a4.619 4.619 0 1 0-.004-9.238l-30.024.013a4.62 4.62 0 0 0 .004 9.238M111.14 45.896l30.023-.013a4.62 4.62 0 1 0-.004-9.238l-30.024.013a4.619 4.619 0 1 0 .004 9.238" fill="#FFF"></path><path d="M113.53 27.421v-.002l15.89-.007a4.619 4.619 0 1 0 .005 9.238l-15.892.007v-.002a4.618 4.618 0 0 0-.004-9.234M150.167 70.091h-3.979a4.789 4.789 0 0 1-4.774-4.775 4.788 4.788 0 0 1 4.774-4.774h3.979a4.789 4.789 0 0 1 4.775 4.774 4.789 4.789 0 0 1-4.775 4.775" fill="#FFF"></path><path d="M171.687 30.234c0-16.392 13.289-29.68 29.681-29.68 16.392 0 29.68 13.288 29.68 29.68 0 16.393-13.288 29.681-29.68 29.681s-29.68-13.288-29.68-29.68" fill="#FF603B"></path><path d="M203.557 19.435l-.676 15.035a1.514 1.514 0 0 1-3.026 0l-.675-15.035a2.19 2.19 0 1 1 4.377 0m-.264 19.378c.513.477.77 1.1.77 1.87s-.257 1.393-.77 1.907c-.55.476-1.21.733-1.943.733a2.545 2.545 0 0 1-1.87-.77c-.55-.514-.806-1.136-.806-1.87 0-.77.256-1.393.806-1.87.513-.513 1.137-.733 1.87-.733.77 0 1.43.22 1.943.733" fill="#FFF"></path><path d="M119.3 133.275c4.426-.598 3.612-1.204 4.079-4.778.675-5.18-3.108-16.935-8.262-25.118-1.088-10.72-12.598-11.24-12.598-11.24s4.312 4.895 4.196 16.199c1.398 5.243.804 14.45.804 14.45s5.255 11.369 11.78 10.487" fill="#FFB594"></path><path d="M100.944 91.61s1.463-.583 3.211.582c8.08 1.398 10.368 6.706 11.3 11.368 1.864 1.282 1.864 2.33 1.864 3.496.365.777 1.515 3.03 1.515 3.03s-7.225 1.748-10.954 6.758c-1.399-6.41-6.936-25.235-6.936-25.235" fill="#FFF"></path><path d="M94.008 90.5l1.019-5.815-9.23-11.874-5.233 5.581-2.593 9.863s8.39 5.128 16.037 2.246" fill="#FFB594"></path><path d="M82.931 78.216s-4.557-2.868-2.445-6.892c1.632-3.107 4.537 1.139 4.537 1.139s.524-3.662 3.139-3.662c.523-1.046 1.569-4.184 1.569-4.184s11.507 2.615 13.6 3.138c-.001 5.23-2.317 19.529-7.884 19.969-8.94.706-12.516-9.508-12.516-9.508" fill="#FFC6A0"></path><path d="M102.971 72.243c2.616-2.093 3.489-9.775 3.489-9.775s-2.492-.492-6.676-2.062c-4.708-2.092-12.867-4.771-17.575.982-9.54 4.41-2.062 19.93-2.062 19.93l2.729-3.037s-3.956-3.304-2.092-6.277c2.183-3.48 3.943 1.08 3.943 1.08s.64-2.4 3.6-3.36c.356-.714 1.04-2.69 1.44-3.872a1.08 1.08 0 0 1 1.27-.707c2.41.56 8.723 2.03 11.417 2.676.524.126.876.619.825 1.156l-.308 3.266z" fill="#520038"></path><path d="M101.22 76.514c-.104.613-.585 1.044-1.076.96-.49-.082-.805-.646-.702-1.26.104-.613.585-1.044 1.076-.961.491.083.805.647.702 1.26M94.26 75.074c-.104.613-.585 1.044-1.076.96-.49-.082-.805-.646-.702-1.26.104-.613.585-1.044 1.076-.96.491.082.805.646.702 1.26" fill="#552950"></path><path stroke="#DB836E" stroke-width="1.063" stroke-linecap="round" stroke-linejoin="round" d="M99.206 73.644l-.9 1.62-.3 4.38h-2.24"></path><path d="M99.926 73.284s1.8-.72 2.52.54" stroke="#5C2552" stroke-width="1.117" stroke-linecap="round" stroke-linejoin="round"></path><path d="M81.367 73.084s.48-1.12 1.12-.72c.64.4 1.28 1.44.56 2s.16 1.68.16 1.68" stroke="#DB836E" stroke-width="1.117" stroke-linecap="round" stroke-linejoin="round"></path><path d="M92.326 71.724s1.84 1.12 4.16.96" stroke="#5C2552" stroke-width="1.117" stroke-linecap="round" stroke-linejoin="round"></path><path d="M92.726 80.604s2.24 1.2 4.4 1.2M93.686 83.164s.96.4 1.52.32M83.687 80.044s1.786 6.547 9.262 7.954" stroke="#DB836E" stroke-width="1.063" stroke-linecap="round" stroke-linejoin="round"></path><path d="M95.548 91.663s-1.068 2.821-8.298 2.105c-7.23-.717-10.29-5.044-10.29-5.044" stroke="#E4EBF7" stroke-width="1.136" stroke-linecap="round" stroke-linejoin="round"></path><path d="M78.126 87.478s6.526 4.972 16.47 2.486c0 0 9.577 1.02 11.536 5.322 5.36 11.77.543 36.835 0 39.962 3.496 4.055-.466 8.483-.466 8.483-15.624-3.548-35.81-.6-35.81-.6-4.849-3.546-1.223-9.044-1.223-9.044L62.38 110.32c-2.485-15.227.833-19.803 3.549-20.743 3.03-1.049 8.04-1.282 8.04-1.282.496-.058 1.08-.076 1.37-.233 2.36-1.282 2.787-.583 2.787-.583" fill="#FFF"></path><path d="M65.828 89.81s-6.875.465-7.59 8.156c-.466 8.857 3.03 10.954 3.03 10.954s6.075 22.102 16.796 22.957c8.39-2.176 4.758-6.702 4.661-11.42-.233-11.304-7.108-16.897-7.108-16.897s-4.212-13.75-9.789-13.75" fill="#FFC6A0"></path><path d="M71.716 124.225s.855 11.264 9.828 6.486c4.765-2.536 7.581-13.828 9.789-22.568 1.456-5.768 2.58-12.197 2.58-12.197l-4.973-1.709s-2.408 5.516-7.769 12.275c-4.335 5.467-9.144 11.11-9.455 17.713" fill="#FFC6A0"></path><path d="M108.463 105.191s1.747 2.724-2.331 30.535c2.376 2.216 1.053 6.012-.233 7.51" stroke="#E4EBF7" stroke-width="1.085" stroke-linecap="round" stroke-linejoin="round"></path><path d="M123.262 131.527s-.427 2.732-11.77 1.981c-15.187-1.006-25.326-3.25-25.326-3.25l.933-5.8s.723.215 9.71-.068c11.887-.373 18.714-6.07 24.964-1.022 4.039 3.263 1.489 8.16 1.489 8.16" fill="#FFC6A0"></path><path d="M70.24 90.974s-5.593-4.739-11.054 2.68c-3.318 7.223.517 15.284 2.664 19.578-.31 3.729 2.33 4.311 2.33 4.311s.108.895 1.516 2.68c4.078-7.03 6.72-9.166 13.711-12.546-.328-.656-1.877-3.265-1.825-3.767.175-1.69-1.282-2.623-1.282-2.623s-.286-.156-1.165-2.738c-.788-2.313-2.036-5.177-4.895-7.575" fill="#FFF"></path><path d="M90.232 288.027s4.855 2.308 8.313 1.155c3.188-1.063 5.12.755 8.002 1.331 2.881.577 7.769 1.243 13.207-1.424-.117-6.228-7.786-4.499-13.518-7.588-2.895-1.56-4.276-5.336-4.066-9.944H91.544s-1.573 11.89-1.312 16.47" fill="#CBD1D1"></path><path d="M90.207 287.833s2.745 1.437 7.639.738c3.456-.494 3.223.66 7.418 1.282 4.195.621 13.092-.194 14.334-1.126.466 1.242-.388 2.33-.388 2.33s-1.709.682-5.438.932c-2.295.154-8.098.276-10.14-.621-2.02-1.554-4.894-1.515-6.06-.234-4.427 1.075-7.184-.31-7.184-.31l-.181-2.991z" fill="#2B0849"></path><path d="M98.429 272.257h3.496s-.117 7.574 5.127 9.671c-5.244.7-9.672-2.602-8.623-9.671" fill="#A4AABA"></path><path d="M44.425 272.046s-2.208 7.774-4.702 12.899c-1.884 3.874-4.428 7.854 5.729 7.854 6.97 0 9.385-.503 7.782-6.917-1.604-6.415.279-13.836.279-13.836h-9.088z" fill="#CBD1D1"></path><path d="M38.066 290.277s2.198 1.225 6.954 1.225c6.376 0 8.646-1.73 8.646-1.73s.63 1.168-.649 2.27c-1.04.897-3.77 1.668-7.745 1.621-4.347-.05-6.115-.593-7.062-1.224-.864-.577-.72-1.657-.144-2.162" fill="#2B0849"></path><path d="M45.344 274.041s.035 1.592-.329 3.07c-.365 1.49-1.13 3.255-1.184 4.34-.061 1.206 4.755 1.657 5.403.036.65-1.622 1.357-6.737 2.006-7.602.648-.865-5.14-2.222-5.896.156" fill="#A4AABA"></path><path d="M89.476 277.57l13.899.095s1.349-56.643 1.925-66.909c.576-10.267 3.923-45.052 1.042-65.585l-13.037-.669-23.737.81s-.452 4.12-1.243 10.365c-.065.515-.708.874-.777 1.417-.078.608.439 1.407.332 2.044-2.455 14.627-5.797 32.736-8.256 46.837-.121.693-1.282 1.048-1.515 2.796-.042.314.22 1.584.116 1.865-7.14 19.473-12.202 52.601-15.66 67.19l15.176-.015s2.282-10.145 4.185-18.871c2.922-13.389 24.012-88.32 24.012-88.32l3.133-.954-.158 48.568s-.233 1.282.35 2.098c.583.815-.581 1.167-.408 2.331l.408 1.864s-.466 7.458-.932 12.352c-.467 4.895 1.145 40.69 1.145 40.69" fill="#7BB2F9"></path><path d="M64.57 218.881c1.197.099 4.195-2.097 7.225-5.127M96.024 222.534s2.881-1.152 6.34-4.034" stroke="#648BD8" stroke-width="1.085" stroke-linecap="round" stroke-linejoin="round"></path><path d="M96.973 219.373s2.882-1.153 6.34-4.034" stroke="#648BD8" stroke-width="1.032" stroke-linecap="round" stroke-linejoin="round"></path><path d="M63.172 222.144s2.724-.614 6.759-3.496M74.903 146.166c-.281 3.226.31 8.856-4.506 9.478M93.182 144.344s.115 14.557-1.344 15.65c-2.305 1.73-3.107 2.02-3.107 2.02M89.197 144.923s.269 13.144-1.01 25.088M83.525 170.71s6.81-1.051 9.116-1.051M46.026 270.045l-.892 4.538M46.937 263.289l-.815 4.157M62.725 202.503c-.33 1.618-.102 1.904-.449 3.438 0 0-2.756 1.903-2.29 3.923.466 2.02-.31 3.424-4.505 17.252-1.762 5.807-4.233 18.922-6.165 28.278-.03.144-.521 2.646-1.14 5.8M64.158 194.136c-.295 1.658-.6 3.31-.917 4.938M71.33 146.787l-1.244 10.877s-1.14.155-.519 2.33c.117 1.399-2.778 16.39-5.382 31.615M44.242 273.727H58.07" stroke="#648BD8" stroke-width="1.085" stroke-linecap="round" stroke-linejoin="round"></path><path d="M106.18 142.117c-3.028-.489-18.825-2.744-36.219.2a.625.625 0 0 0-.518.644c.063 1.307.044 2.343.015 2.995a.617.617 0 0 0 .716.636c3.303-.534 17.037-2.412 35.664-.266.347.04.66-.214.692-.56.124-1.347.16-2.425.17-3.029a.616.616 0 0 0-.52-.62" fill="#192064"></path><path d="M96.398 145.264l.003-5.102a.843.843 0 0 0-.809-.847 114.104 114.104 0 0 0-8.141-.014.85.85 0 0 0-.82.847l-.003 5.097c0 .476.388.857.864.845 2.478-.064 5.166-.067 8.03.017a.848.848 0 0 0 .876-.843" fill="#FFF"></path><path d="M95.239 144.296l.002-3.195a.667.667 0 0 0-.643-.672c-1.9-.061-3.941-.073-6.094-.01a.675.675 0 0 0-.654.672l-.002 3.192c0 .376.305.677.68.669 1.859-.042 3.874-.043 6.02.012.376.01.69-.291.691-.668" fill="#192064"></path><path d="M90.102 273.522h12.819M91.216 269.761c.006 3.519-.072 5.55 0 6.292M90.923 263.474c-.009 1.599-.016 2.558-.016 4.505M90.44 170.404l.932 46.38s.7 1.631-.233 2.796c-.932 1.166 2.564.7.932 2.33-1.63 1.633.933 1.166 0 3.497-.618 1.546-1.031 21.921-1.138 36.513" stroke="#648BD8" stroke-width="1.085" stroke-linecap="round" stroke-linejoin="round"></path><path d="M73.736 98.665l2.214 4.312s2.098.816 1.865 2.68l.816 2.214M64.297 116.611c.233-.932 2.176-7.147 12.585-10.488M77.598 90.042s7.691 6.137 16.547 2.72" stroke="#E4EBF7" stroke-width="1.085" stroke-linecap="round" stroke-linejoin="round"></path><path d="M91.974 86.954s5.476-.816 7.574-4.545c1.297-.345.72 2.212-.33 3.671-.7.971-1.01 1.554-1.01 1.554s.194.31.155.816c-.053.697-.175.653-.272 1.048-.081.335.108.657 0 1.049-.046.17-.198.5-.382.878-.12.249-.072.687-.2.948-.231.469-1.562 1.87-2.622 2.855-3.826 3.554-5.018 1.644-6.001-.408-.894-1.865-.661-5.127-.874-6.875-.35-2.914-2.622-3.03-1.923-4.429.343-.685 2.87.69 3.263 1.748.757 2.04 2.952 1.807 2.622 1.69" fill="#FFC6A0"></path><path d="M99.8 82.429c-.465.077-.35.272-.97 1.243-.622.971-4.817 2.932-6.39 3.224-2.589.48-2.278-1.56-4.254-2.855-1.69-1.107-3.562-.638-1.398 1.398.99.932.932 1.107 1.398 3.205.335 1.506-.64 3.67.7 5.593" stroke="#DB836E" stroke-width=".774" stroke-linecap="round" stroke-linejoin="round"></path><path d="M79.543 108.673c-2.1 2.926-4.266 6.175-5.557 8.762" stroke="#E59788" stroke-width=".774" stroke-linecap="round" stroke-linejoin="round"></path><path d="M87.72 124.768s-2.098-1.942-5.127-2.719c-3.03-.777-3.574-.155-5.516.078-1.942.233-3.885-.932-3.652.7.233 1.63 5.05 1.01 5.206 2.097.155 1.087-6.37 2.796-8.313 2.175-.777.777.466 1.864 2.02 2.175.233 1.554 2.253 1.554 2.253 1.554s.699 1.01 2.641 1.088c2.486 1.32 8.934-.7 10.954-1.554 2.02-.855-.466-5.594-.466-5.594" fill="#FFC6A0"></path><path d="M73.425 122.826s.66 1.127 3.167 1.418c2.315.27 2.563.583 2.563.583s-2.545 2.894-9.07 2.272M72.416 129.274s3.826.097 4.933-.718M74.98 130.75s1.961.136 3.36-.505M77.232 131.916s1.748.019 2.914-.505M73.328 122.321s-.595-1.032 1.262-.427c1.671.544 2.833.055 5.128.155 1.389.061 3.067-.297 3.982.15 1.606.784 3.632 2.181 3.632 2.181s10.526 1.204 19.033-1.127M78.864 108.104s-8.39 2.758-13.168 12.12" stroke="#E59788" stroke-width=".774" stroke-linecap="round" stroke-linejoin="round"></path><path d="M109.278 112.533s3.38-3.613 7.575-4.662" stroke="#E4EBF7" stroke-width="1.085" stroke-linecap="round" stroke-linejoin="round"></path><path d="M107.375 123.006s9.697-2.745 11.445-.88" stroke="#E59788" stroke-width=".774" stroke-linecap="round" stroke-linejoin="round"></path><path d="M194.605 83.656l3.971-3.886M187.166 90.933l3.736-3.655M191.752 84.207l-4.462-4.56M198.453 91.057l-4.133-4.225M129.256 163.074l3.718-3.718M122.291 170.039l3.498-3.498M126.561 163.626l-4.27-4.27M132.975 170.039l-3.955-3.955" stroke="#BFCDDD" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path><path d="M190.156 211.779h-1.604a4.023 4.023 0 0 1-4.011-4.011V175.68a4.023 4.023 0 0 1 4.01-4.01h1.605a4.023 4.023 0 0 1 4.011 4.01v32.088a4.023 4.023 0 0 1-4.01 4.01" fill="#A3B4C6"></path><path d="M237.824 212.977a4.813 4.813 0 0 1-4.813 4.813h-86.636a4.813 4.813 0 0 1 0-9.626h86.636a4.813 4.813 0 0 1 4.813 4.813" fill="#A3B4C6"></path><mask fill="#fff"></mask><path fill="#A3B4C6" mask="url(#d)" d="M154.098 190.096h70.513v-84.617h-70.513z"></path><path d="M224.928 190.096H153.78a3.219 3.219 0 0 1-3.208-3.209V167.92a3.219 3.219 0 0 1 3.208-3.21h71.148a3.219 3.219 0 0 1 3.209 3.21v18.967a3.219 3.219 0 0 1-3.21 3.209M224.928 130.832H153.78a3.218 3.218 0 0 1-3.208-3.208v-18.968a3.219 3.219 0 0 1 3.208-3.209h71.148a3.219 3.219 0 0 1 3.209 3.21v18.967a3.218 3.218 0 0 1-3.21 3.208" fill="#BFCDDD" mask="url(#d)"></path><path d="M159.563 120.546a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M166.98 120.546a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M174.397 120.546a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M222.539 120.546h-22.461a.802.802 0 0 1-.802-.802v-3.208c0-.443.359-.803.802-.803h22.46c.444 0 .803.36.803.803v3.208c0 .443-.36.802-.802.802" fill="#FFF" mask="url(#d)"></path><path d="M224.928 160.464H153.78a3.218 3.218 0 0 1-3.208-3.209v-18.967a3.219 3.219 0 0 1 3.208-3.209h71.148a3.219 3.219 0 0 1 3.209 3.209v18.967a3.218 3.218 0 0 1-3.21 3.209" fill="#BFCDDD" mask="url(#d)"></path><path d="M173.455 130.832h49.301M164.984 130.832h6.089M155.952 130.832h6.75M173.837 160.613h49.3M165.365 160.613h6.089M155.57 160.613h6.751" stroke="#7C90A5" stroke-width="1.124" stroke-linecap="round" stroke-linejoin="round" mask="url(#d)"></path><path d="M159.563 151.038a2.407 2.407 0 1 1 0-4.814 2.407 2.407 0 0 1 0 4.814M166.98 151.038a2.407 2.407 0 1 1 0-4.814 2.407 2.407 0 0 1 0 4.814M174.397 151.038a2.407 2.407 0 1 1 .001-4.814 2.407 2.407 0 0 1 0 4.814M222.539 151.038h-22.461a.802.802 0 0 1-.802-.802v-3.209c0-.443.359-.802.802-.802h22.46c.444 0 .803.36.803.802v3.209c0 .443-.36.802-.802.802M159.563 179.987a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M166.98 179.987a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M174.397 179.987a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M222.539 179.987h-22.461a.802.802 0 0 1-.802-.802v-3.209c0-.443.359-.802.802-.802h22.46c.444 0 .803.36.803.802v3.209c0 .443-.36.802-.802.802" fill="#FFF" mask="url(#d)"></path><path d="M203.04 221.108h-27.372a2.413 2.413 0 0 1-2.406-2.407v-11.448a2.414 2.414 0 0 1 2.406-2.407h27.372a2.414 2.414 0 0 1 2.407 2.407V218.7a2.413 2.413 0 0 1-2.407 2.407" fill="#BFCDDD" mask="url(#d)"></path><path d="M177.259 207.217v11.52M201.05 207.217v11.52" stroke="#A3B4C6" stroke-width="1.124" stroke-linecap="round" stroke-linejoin="round" mask="url(#d)"></path><path d="M162.873 267.894a9.422 9.422 0 0 1-9.422-9.422v-14.82a9.423 9.423 0 0 1 18.845 0v14.82a9.423 9.423 0 0 1-9.423 9.422" fill="#5BA02E" mask="url(#d)"></path><path d="M171.22 267.83a9.422 9.422 0 0 1-9.422-9.423v-3.438a9.423 9.423 0 0 1 18.845 0v3.438a9.423 9.423 0 0 1-9.422 9.423" fill="#92C110" mask="url(#d)"></path><path d="M181.31 293.666h-27.712a3.209 3.209 0 0 1-3.209-3.21V269.79a3.209 3.209 0 0 1 3.209-3.21h27.711a3.209 3.209 0 0 1 3.209 3.21v20.668a3.209 3.209 0 0 1-3.209 3.209" fill="#F2D7AD" mask="url(#d)"></path></g></svg></div><div class="ant-result-title"></div></div><h2 class="ant-typography">Troubleshooting</h2><a target="_blank" rel="noopener noreferrer" href="https://owncast.online/docs/troubleshooting/?source=admin" class="ant-btn ant-btn-primary"><span role="img" aria-label="link" class="anticon anticon-link"><svg viewBox="64 64 896 896" focusable="false" data-icon="link" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z"></path></svg></span><span>Fix your problems</span></a></div><div style="padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px;text-align:center" class="ant-col ant-col-xs-24 ant-col-lg-12"><div class="ant-result ant-result-404"><div class="ant-result-icon ant-result-image"><svg width="252" height="294"><defs><path d="M0 .387h251.772v251.772H0z"></path></defs><g fill="none" fill-rule="evenodd"><g transform="translate(0 .012)"><mask fill="#fff"></mask><path d="M0 127.32v-2.095C0 56.279 55.892.387 124.838.387h2.096c68.946 0 124.838 55.892 124.838 124.838v2.096c0 68.946-55.892 124.838-124.838 124.838h-2.096C55.892 252.16 0 196.267 0 127.321" fill="#E4EBF7" mask="url(#b)"></path></g><path d="M39.755 130.84a8.276 8.276 0 1 1-16.468-1.66 8.276 8.276 0 0 1 16.468 1.66" fill="#FFF"></path><path d="M36.975 134.297l10.482 5.943M48.373 146.508l-12.648 10.788" stroke="#FFF" stroke-width="2"></path><path d="M39.875 159.352a5.667 5.667 0 1 1-11.277-1.136 5.667 5.667 0 0 1 11.277 1.136M57.588 143.247a5.708 5.708 0 1 1-11.358-1.145 5.708 5.708 0 0 1 11.358 1.145M99.018 26.875l29.82-.014a4.587 4.587 0 1 0-.003-9.175l-29.82.013a4.587 4.587 0 1 0 .003 9.176M110.424 45.211l29.82-.013a4.588 4.588 0 0 0-.004-9.175l-29.82.013a4.587 4.587 0 1 0 .004 9.175" fill="#FFF"></path><path d="M112.798 26.861v-.002l15.784-.006a4.588 4.588 0 1 0 .003 9.175l-15.783.007v-.002a4.586 4.586 0 0 0-.004-9.172M184.523 135.668c-.553 5.485-5.447 9.483-10.931 8.93-5.485-.553-9.483-5.448-8.93-10.932.552-5.485 5.447-9.483 10.932-8.93 5.485.553 9.483 5.447 8.93 10.932" fill="#FFF"></path><path d="M179.26 141.75l12.64 7.167M193.006 156.477l-15.255 13.011" stroke="#FFF" stroke-width="2"></path><path d="M184.668 170.057a6.835 6.835 0 1 1-13.6-1.372 6.835 6.835 0 0 1 13.6 1.372M203.34 153.325a6.885 6.885 0 1 1-13.7-1.382 6.885 6.885 0 0 1 13.7 1.382" fill="#FFF"></path><path d="M151.931 192.324a2.222 2.222 0 1 1-4.444 0 2.222 2.222 0 0 1 4.444 0zM225.27 116.056a2.222 2.222 0 1 1-4.445 0 2.222 2.222 0 0 1 4.444 0zM216.38 151.08a2.223 2.223 0 1 1-4.446-.001 2.223 2.223 0 0 1 4.446 0zM176.917 107.636a2.223 2.223 0 1 1-4.445 0 2.223 2.223 0 0 1 4.445 0zM195.291 92.165a2.223 2.223 0 1 1-4.445 0 2.223 2.223 0 0 1 4.445 0zM202.058 180.711a2.223 2.223 0 1 1-4.446 0 2.223 2.223 0 0 1 4.446 0z" stroke="#FFF" stroke-width="2"></path><path stroke="#FFF" stroke-width="2" d="M214.404 153.302l-1.912 20.184-10.928 5.99M173.661 174.792l-6.356 9.814h-11.36l-4.508 6.484M174.941 125.168v-15.804M220.824 117.25l-12.84 7.901-15.31-7.902V94.39"></path><path d="M166.588 65.936h-3.951a4.756 4.756 0 0 1-4.743-4.742 4.756 4.756 0 0 1 4.743-4.743h3.951a4.756 4.756 0 0 1 4.743 4.743 4.756 4.756 0 0 1-4.743 4.742" fill="#FFF"></path><path d="M174.823 30.03c0-16.281 13.198-29.48 29.48-29.48 16.28 0 29.48 13.199 29.48 29.48 0 16.28-13.2 29.48-29.48 29.48-16.282 0-29.48-13.2-29.48-29.48" fill="#1890FF"></path><path d="M205.952 38.387c.5.5.785 1.142.785 1.928s-.286 1.465-.785 1.964c-.572.5-1.214.75-2 .75-.785 0-1.429-.285-1.929-.785-.572-.5-.82-1.143-.82-1.929s.248-1.428.82-1.928c.5-.5 1.144-.75 1.93-.75.785 0 1.462.25 1.999.75m4.285-19.463c1.428 1.249 2.143 2.963 2.143 5.142 0 1.712-.427 3.13-1.219 4.25-.067.096-.137.18-.218.265-.416.429-1.41 1.346-2.956 2.699a5.07 5.07 0 0 0-1.428 1.75 5.207 5.207 0 0 0-.536 2.357v.5h-4.107v-.5c0-1.357.215-2.536.714-3.5.464-.964 1.857-2.464 4.178-4.536l.43-.5c.643-.785.964-1.643.964-2.535 0-1.18-.358-2.108-1-2.785-.678-.68-1.643-1.001-2.858-1.001-1.536 0-2.642.464-3.357 1.43-.37.5-.621 1.135-.76 1.904a1.999 1.999 0 0 1-1.971 1.63h-.004c-1.277 0-2.257-1.183-1.98-2.43.337-1.518 1.02-2.78 2.073-3.784 1.536-1.5 3.607-2.25 6.25-2.25 2.32 0 4.214.607 5.642 1.894" fill="#FFF"></path><path d="M52.04 76.131s21.81 5.36 27.307 15.945c5.575 10.74-6.352 9.26-15.73 4.935-10.86-5.008-24.7-11.822-11.577-20.88" fill="#FFB594"></path><path d="M90.483 67.504l-.449 2.893c-.753.49-4.748-2.663-4.748-2.663l-1.645.748-1.346-5.684s6.815-4.589 8.917-5.018c2.452-.501 9.884.94 10.7 2.278 0 0 1.32.486-2.227.69-3.548.203-5.043.447-6.79 3.132-1.747 2.686-2.412 3.624-2.412 3.624" fill="#FFC6A0"></path><path d="M128.055 111.367c-2.627-7.724-6.15-13.18-8.917-15.478-3.5-2.906-9.34-2.225-11.366-4.187-1.27-1.231-3.215-1.197-3.215-1.197s-14.98-3.158-16.828-3.479c-2.37-.41-2.124-.714-6.054-1.405-1.57-1.907-2.917-1.122-2.917-1.122l-7.11-1.383c-.853-1.472-2.423-1.023-2.423-1.023l-2.468-.897c-1.645 9.976-7.74 13.796-7.74 13.796 1.795 1.122 15.703 8.3 15.703 8.3l5.107 37.11s-3.321 5.694 1.346 9.109c0 0 19.883-3.743 34.921-.329 0 0 3.047-2.546.972-8.806.523-3.01 1.394-8.263 1.736-11.622.385.772 2.019 1.918 3.14 3.477 0 0 9.407-7.365 11.052-14.012-.832-.723-1.598-1.585-2.267-2.453-.567-.736-.358-2.056-.765-2.717-.669-1.084-1.804-1.378-1.907-1.682" fill="#FFF"></path><path d="M101.09 289.998s4.295 2.041 7.354 1.021c2.821-.94 4.53.668 7.08 1.178 2.55.51 6.874 1.1 11.686-1.26-.103-5.51-6.889-3.98-11.96-6.713-2.563-1.38-3.784-4.722-3.598-8.799h-9.402s-1.392 10.52-1.16 14.573" fill="#CBD1D1"></path><path d="M101.067 289.826s2.428 1.271 6.759.653c3.058-.437 3.712.481 7.423 1.031 3.712.55 10.724-.069 11.823-.894.413 1.1-.343 2.063-.343 2.063s-1.512.603-4.812.824c-2.03.136-5.8.291-7.607-.503-1.787-1.375-5.247-1.903-5.728-.241-3.918.95-7.355-.286-7.355-.286l-.16-2.647z" fill="#2B0849"></path><path d="M108.341 276.044h3.094s-.103 6.702 4.536 8.558c-4.64.618-8.558-2.303-7.63-8.558" fill="#A4AABA"></path><path d="M57.542 272.401s-2.107 7.416-4.485 12.306c-1.798 3.695-4.225 7.492 5.465 7.492 6.648 0 8.953-.48 7.423-6.599-1.53-6.12.266-13.199.266-13.199h-8.669z" fill="#CBD1D1"></path><path d="M51.476 289.793s2.097 1.169 6.633 1.169c6.083 0 8.249-1.65 8.249-1.65s.602 1.114-.619 2.165c-.993.855-3.597 1.591-7.39 1.546-4.145-.048-5.832-.566-6.736-1.168-.825-.55-.687-1.58-.137-2.062" fill="#2B0849"></path><path d="M58.419 274.304s.033 1.519-.314 2.93c-.349 1.42-1.078 3.104-1.13 4.139-.058 1.151 4.537 1.58 5.155.034.62-1.547 1.294-6.427 1.913-7.252.619-.825-4.903-2.119-5.624.15" fill="#A4AABA"></path><path d="M99.66 278.514l13.378.092s1.298-54.52 1.853-64.403c.554-9.882 3.776-43.364 1.002-63.128l-12.547-.644-22.849.78s-.434 3.966-1.195 9.976c-.063.496-.682.843-.749 1.365-.075.585.423 1.354.32 1.966-2.364 14.08-6.377 33.104-8.744 46.677-.116.666-1.234 1.009-1.458 2.691-.04.302.211 1.525.112 1.795-6.873 18.744-10.949 47.842-14.277 61.885l14.607-.014s2.197-8.57 4.03-16.97c2.811-12.886 23.111-85.01 23.111-85.01l3.016-.521 1.043 46.35s-.224 1.234.337 2.02c.56.785-.56 1.123-.392 2.244l.392 1.794s-.449 7.178-.898 11.89c-.448 4.71-.092 39.165-.092 39.165" fill="#7BB2F9"></path><path d="M76.085 221.626c1.153.094 4.038-2.019 6.955-4.935M106.36 225.142s2.774-1.11 6.103-3.883" stroke="#648BD8" stroke-width="1.051" stroke-linecap="round" stroke-linejoin="round"></path><path d="M107.275 222.1s2.773-1.11 6.102-3.884" stroke="#648BD8" stroke-linecap="round" stroke-linejoin="round"></path><path d="M74.74 224.767s2.622-.591 6.505-3.365M86.03 151.634c-.27 3.106.3 8.525-4.336 9.123M103.625 149.88s.11 14.012-1.293 15.065c-2.219 1.664-2.99 1.944-2.99 1.944M99.79 150.438s.035 12.88-1.196 24.377M93.673 175.911s7.212-1.664 9.431-1.664M74.31 205.861a212.013 212.013 0 0 1-.979 4.56s-1.458 1.832-1.009 3.776c.449 1.944-.947 2.045-4.985 15.355-1.696 5.59-4.49 18.591-6.348 27.597l-.231 1.12M75.689 197.807a320.934 320.934 0 0 1-.882 4.754M82.591 152.233L81.395 162.7s-1.097.15-.5 2.244c.113 1.346-2.674 15.775-5.18 30.43M56.12 274.418h13.31" stroke="#648BD8" stroke-width="1.051" stroke-linecap="round" stroke-linejoin="round"></path><path d="M116.241 148.22s-17.047-3.104-35.893.2c.158 2.514-.003 4.15-.003 4.15s14.687-2.818 35.67-.312c.252-2.355.226-4.038.226-4.038" fill="#192064"></path><path d="M106.322 151.165l.003-4.911a.81.81 0 0 0-.778-.815c-2.44-.091-5.066-.108-7.836-.014a.818.818 0 0 0-.789.815l-.003 4.906a.81.81 0 0 0 .831.813c2.385-.06 4.973-.064 7.73.017a.815.815 0 0 0 .842-.81" fill="#FFF"></path><path d="M105.207 150.233l.002-3.076a.642.642 0 0 0-.619-.646 94.321 94.321 0 0 0-5.866-.01.65.65 0 0 0-.63.647v3.072a.64.64 0 0 0 .654.644 121.12 121.12 0 0 1 5.794.011c.362.01.665-.28.665-.642" fill="#192064"></path><path d="M100.263 275.415h12.338M101.436 270.53c.006 3.387.042 5.79.111 6.506M101.451 264.548a915.75 915.75 0 0 0-.015 4.337M100.986 174.965l.898 44.642s.673 1.57-.225 2.692c-.897 1.122 2.468.673.898 2.243-1.57 1.57.897 1.122 0 3.365-.596 1.489-.994 21.1-1.096 35.146" stroke="#648BD8" stroke-width="1.051" stroke-linecap="round" stroke-linejoin="round"></path><path d="M46.876 83.427s-.516 6.045 7.223 5.552c11.2-.712 9.218-9.345 31.54-21.655-.786-2.708-2.447-4.744-2.447-4.744s-11.068 3.11-22.584 8.046c-6.766 2.9-13.395 6.352-13.732 12.801M104.46 91.057l.941-5.372-8.884-11.43-5.037 5.372-1.74 7.834a.321.321 0 0 0 .108.32c.965.8 6.5 5.013 14.347 3.544a.332.332 0 0 0 .264-.268" fill="#FFC6A0"></path><path d="M93.942 79.387s-4.533-2.853-2.432-6.855c1.623-3.09 4.513 1.133 4.513 1.133s.52-3.642 3.121-3.642c.52-1.04 1.561-4.162 1.561-4.162s11.445 2.601 13.526 3.121c0 5.203-2.304 19.424-7.84 19.861-8.892.703-12.449-9.456-12.449-9.456" fill="#FFC6A0"></path><path d="M113.874 73.446c2.601-2.081 3.47-9.722 3.47-9.722s-2.479-.49-6.64-2.05c-4.683-2.081-12.798-4.747-17.48.976-9.668 3.223-2.05 19.823-2.05 19.823l2.713-3.021s-3.935-3.287-2.08-6.243c2.17-3.462 3.92 1.073 3.92 1.073s.637-2.387 3.581-3.342c.355-.71 1.036-2.674 1.432-3.85a1.073 1.073 0 0 1 1.263-.704c2.4.558 8.677 2.019 11.356 2.662.522.125.871.615.82 1.15l-.305 3.248z" fill="#520038"></path><path d="M104.977 76.064c-.103.61-.582 1.038-1.07.956-.489-.083-.801-.644-.698-1.254.103-.61.582-1.038 1.07-.956.488.082.8.644.698 1.254M112.132 77.694c-.103.61-.582 1.038-1.07.956-.488-.083-.8-.644-.698-1.254.103-.61.582-1.038 1.07-.956.488.082.8.643.698 1.254" fill="#552950"></path><path stroke="#DB836E" stroke-width="1.118" stroke-linecap="round" stroke-linejoin="round" d="M110.13 74.84l-.896 1.61-.298 4.357h-2.228"></path><path d="M110.846 74.481s1.79-.716 2.506.537" stroke="#5C2552" stroke-width="1.118" stroke-linecap="round" stroke-linejoin="round"></path><path d="M92.386 74.282s.477-1.114 1.113-.716c.637.398 1.274 1.433.558 1.99-.717.556.159 1.67.159 1.67" stroke="#DB836E" stroke-width="1.118" stroke-linecap="round" stroke-linejoin="round"></path><path d="M103.287 72.93s1.83 1.113 4.137.954" stroke="#5C2552" stroke-width="1.118" stroke-linecap="round" stroke-linejoin="round"></path><path d="M103.685 81.762s2.227 1.193 4.376 1.193M104.64 84.308s.954.398 1.511.318M94.693 81.205s2.308 7.4 10.424 7.639" stroke="#DB836E" stroke-width="1.118" stroke-linecap="round" stroke-linejoin="round"></path><path d="M81.45 89.384s.45 5.647-4.935 12.787M69 82.654s-.726 9.282-8.204 14.206" stroke="#E4EBF7" stroke-width="1.101" stroke-linecap="round" stroke-linejoin="round"></path><path d="M129.405 122.865s-5.272 7.403-9.422 10.768" stroke="#E4EBF7" stroke-width="1.051" stroke-linecap="round" stroke-linejoin="round"></path><path d="M119.306 107.329s.452 4.366-2.127 32.062" stroke="#E4EBF7" stroke-width="1.101" stroke-linecap="round" stroke-linejoin="round"></path><path d="M150.028 151.232h-49.837a1.01 1.01 0 0 1-1.01-1.01v-31.688c0-.557.452-1.01 1.01-1.01h49.837c.558 0 1.01.453 1.01 1.01v31.688a1.01 1.01 0 0 1-1.01 1.01" fill="#F2D7AD"></path><path d="M150.29 151.232h-19.863v-33.707h20.784v32.786a.92.92 0 0 1-.92.92" fill="#F4D19D"></path><path d="M123.554 127.896H92.917a.518.518 0 0 1-.425-.816l6.38-9.113c.193-.277.51-.442.85-.442h31.092l-7.26 10.371z" fill="#F2D7AD"></path><path fill="#CC9B6E" d="M123.689 128.447H99.25v-.519h24.169l7.183-10.26.424.298z"></path><path d="M158.298 127.896h-18.669a2.073 2.073 0 0 1-1.659-.83l-7.156-9.541h19.965c.49 0 .95.23 1.244.622l6.69 8.92a.519.519 0 0 1-.415.83" fill="#F4D19D"></path><path fill="#CC9B6E" d="M157.847 128.479h-19.384l-7.857-10.475.415-.31 7.7 10.266h19.126zM130.554 150.685l-.032-8.177.519-.002.032 8.177z"></path><path fill="#CC9B6E" d="M130.511 139.783l-.08-21.414.519-.002.08 21.414zM111.876 140.932l-.498-.143 1.479-5.167.498.143zM108.437 141.06l-2.679-2.935 2.665-3.434.41.318-2.397 3.089 2.384 2.612zM116.607 141.06l-.383-.35 2.383-2.612-2.397-3.089.41-.318 2.665 3.434z"></path><path d="M154.316 131.892l-3.114-1.96.038 3.514-1.043.092c-1.682.115-3.634.23-4.789.23-1.902 0-2.693 2.258 2.23 2.648l-2.645-.596s-2.168 1.317.504 2.3c0 0-1.58 1.217.561 2.58-.584 3.504 5.247 4.058 7.122 3.59 1.876-.47 4.233-2.359 4.487-5.16.28-3.085-.89-5.432-3.35-7.238" fill="#FFC6A0"></path><path d="M153.686 133.577s-6.522.47-8.36.372c-1.836-.098-1.904 2.19 2.359 2.264 3.739.15 5.451-.044 5.451-.044" stroke="#DB836E" stroke-width="1.051" stroke-linecap="round" stroke-linejoin="round"></path><path d="M145.16 135.877c-1.85 1.346.561 2.355.561 2.355s3.478.898 6.73.617" stroke="#DB836E" stroke-width="1.051" stroke-linecap="round" stroke-linejoin="round"></path><path d="M151.89 141.71s-6.28.111-6.73-2.132c-.223-1.346.45-1.402.45-1.402M146.114 140.868s-1.103 3.16 5.44 3.533M151.202 129.932v3.477M52.838 89.286c3.533-.337 8.423-1.248 13.582-7.754" stroke="#DB836E" stroke-width="1.051" stroke-linecap="round" stroke-linejoin="round"></path><path d="M168.567 248.318a6.647 6.647 0 0 1-6.647-6.647v-66.466a6.647 6.647 0 1 1 13.294 0v66.466a6.647 6.647 0 0 1-6.647 6.647" fill="#5BA02E"></path><path d="M176.543 247.653a6.647 6.647 0 0 1-6.646-6.647v-33.232a6.647 6.647 0 1 1 13.293 0v33.232a6.647 6.647 0 0 1-6.647 6.647" fill="#92C110"></path><path d="M186.443 293.613H158.92a3.187 3.187 0 0 1-3.187-3.187v-46.134a3.187 3.187 0 0 1 3.187-3.187h27.524a3.187 3.187 0 0 1 3.187 3.187v46.134a3.187 3.187 0 0 1-3.187 3.187" fill="#F2D7AD"></path><path d="M88.979 89.48s7.776 5.384 16.6 2.842" stroke="#E4EBF7" stroke-width="1.101" stroke-linecap="round" stroke-linejoin="round"></path></g></svg></div><div class="ant-result-title"></div></div><h2 class="ant-typography">Documentation</h2><a target="_blank" rel="noopener noreferrer" href="https://owncast.online/docs?source=admin" class="ant-btn ant-btn-primary"><span role="img" aria-label="link" class="anticon anticon-link"><svg viewBox="64 64 896 896" focusable="false" data-icon="link" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z"></path></svg></span><span>Read the Docs</span></a></div></div><div class="ant-divider ant-divider-horizontal" role="separator"></div><h2 class="ant-typography">Common tasks</h2><div class="ant-row" style="margin-left:-8px;margin-right:-8px;margin-top:-8px;margin-bottom:-8px"><div style="padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px" class="ant-col ant-col-xs-24 ant-col-lg-12"><div class="ant-card ant-card-bordered"><div class="ant-card-body"><div class="ant-card-meta"><div class="ant-card-meta-avatar"><span role="img" aria-label="setting" style="font-size:24px" class="anticon anticon-setting"><svg viewBox="64 64 896 896" focusable="false" data-icon="setting" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M859.3 569.7l.2.1c3.1-18.9 4.6-38.2 4.6-57.3 0-17.1-1.3-34.3-3.7-51.1 2.4 16.7 3.6 33.6 3.6 50.5 0 19.4-1.6 38.8-4.7 57.8zM99 398.1c-.5-.4-.9-.8-1.4-1.3.7.7 1.4 1.4 2.2 2.1l65.5 55.9v-.1L99 398.1zm536.6-216h.1l-15.5-83.8c-.2-1-.4-1.9-.7-2.8.1.5.3 1.1.4 1.6l15.7 85zm54 546.5l31.4-25.8 92.8 32.9c17-22.9 31.3-47.5 42.6-73.6l-74.7-63.9 6.6-40.1c2.5-15.1 3.8-30.6 3.8-46.1s-1.3-31-3.8-46.1l-6.5-39.9 74.7-63.9c-11.4-26-25.6-50.7-42.6-73.6l-92.8 32.9-31.4-25.8c-23.9-19.6-50.6-35-79.3-45.8l-38.1-14.3-17.9-97a377.5 377.5 0 00-85 0l-17.9 97.2-37.9 14.3c-28.5 10.8-55 26.2-78.7 45.7l-31.4 25.9-93.4-33.2c-17 22.9-31.3 47.5-42.6 73.6l75.5 64.5-6.5 40c-2.5 14.9-3.7 30.2-3.7 45.5 0 15.2 1.3 30.6 3.7 45.5l6.5 40-75.5 64.5c11.4 26 25.6 50.7 42.6 73.6l93.4-33.2 31.4 25.9c23.7 19.5 50.2 34.9 78.7 45.7l37.8 14.5 17.9 97.2c28.2 3.2 56.9 3.2 85 0l17.9-97 38.1-14.3c28.8-10.8 55.4-26.2 79.3-45.8zm-177.1-50.3c-30.5 0-59.2-7.8-84.3-21.5C373.3 627 336 568.9 336 502c0-97.2 78.8-176 176-176 66.9 0 125 37.3 154.8 92.2 13.7 25 21.5 53.7 21.5 84.3 0 97.1-78.7 175.8-175.8 175.8zM207.2 812.8c-5.5 1.9-11.2 2.3-16.6 1.2 5.7 1.2 11.7 1 17.5-1l81.4-29c-.1-.1-.3-.2-.4-.3l-81.9 29.1zm717.6-414.7l-65.5 56c0 .2.1.5.1.7l65.4-55.9c7.1-6.1 11.1-14.9 11.2-24-.3 8.8-4.3 17.3-11.2 23.2z" fill="#e6f7ff"></path><path d="M935.8 646.6c.5 4.7 0 9.5-1.7 14.1l-.9 2.6a446.02 446.02 0 01-79.7 137.9l-1.8 2.1a32 32 0 01-35.1 9.5l-81.3-28.9a350 350 0 01-99.7 57.6l-15.7 85a32.05 32.05 0 01-25.8 25.7l-2.7.5a445.2 445.2 0 01-79.2 7.1h.3c26.7 0 53.4-2.4 79.4-7.1l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-84.9c36.2-13.6 69.6-32.9 99.6-57.5l81.2 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.5-87.4 79.6-137.7l.9-2.6c1.6-4.7 2.1-9.7 1.5-14.5z" fill="#e6f7ff"></path><path d="M688 502c0-30.3-7.7-58.9-21.2-83.8C637 363.3 578.9 326 512 326c-97.2 0-176 78.8-176 176 0 66.9 37.3 125 92.2 154.8 24.9 13.5 53.4 21.2 83.8 21.2 97.2 0 176-78.8 176-176zm-288 0c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502z" fill="#1890ff"></path><path d="M594.1 952.2a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c1.7-4.6 2.2-9.4 1.7-14.1-.9-7.9-4.7-15.4-11-20.9l-65.3-55.9-.2-.1c3.1-19 4.7-38.4 4.7-57.8 0-16.9-1.2-33.9-3.6-50.5-.3-2.2-.7-4.4-1-6.6 0-.2-.1-.5-.1-.7l65.5-56c6.9-5.9 10.9-14.4 11.2-23.2.1-4-.5-8.1-1.9-12l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.4-44-99.6-57.6h-.1l-15.7-85c-.1-.5-.2-1.1-.4-1.6a32.08 32.08 0 00-25.4-24.1l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6a32.09 32.09 0 007.9 33.9c.5.4.9.9 1.4 1.3l66.3 56.6v.1c-3.1 18.8-4.6 37.9-4.6 57 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1c4.9 5.7 11.4 9.4 18.5 10.7 5.4 1 11.1.7 16.6-1.2l81.9-29.1c.1.1.3.2.4.3 29.7 24.3 62.8 43.6 98.6 57.1l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5c26.1 4.7 52.8 7.1 79.5 7.1h.3c26.6 0 53.3-2.4 79.2-7.1l2.7-.5zm-39.8-66.5a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97z" fill="#1890ff"></path></svg></span></div><div class="ant-card-meta-detail"><div class="ant-card-meta-title">I want to configure my owncast instance</div><div class="ant-card-meta-description"><div><a href="https://owncast.online/docs/configuration/?source=admin" target="_blank" rel="noopener noreferrer"><span role="img" aria-label="link" class="anticon anticon-link"><svg viewBox="64 64 896 896" focusable="false" data-icon="link" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z"></path></svg></span> Learn more</a></div></div></div></div></div></div></div><div style="padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px" class="ant-col ant-col-xs-24 ant-col-lg-12"><div class="ant-card ant-card-bordered"><div class="ant-card-body"><div class="ant-card-meta"><div class="ant-card-meta-avatar"><span role="img" aria-label="camera" style="font-size:24px" class="anticon anticon-camera"><svg viewBox="64 64 896 896" focusable="false" data-icon="camera" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M864 320H677.2l-17.1-47.8-22.9-64.2H386.7l-22.9 64.2-17.1 47.8H160c-4.4 0-8 3.6-8 8v456c0 4.4 3.6 8 8 8h704c4.4 0 8-3.6 8-8V328c0-4.4-3.6-8-8-8zM512 704c-88.4 0-160-71.6-160-160s71.6-160 160-160 160 71.6 160 160-71.6 160-160 160z" fill="#e6f7ff"></path><path d="M512 384c-88.4 0-160 71.6-160 160s71.6 160 160 160 160-71.6 160-160-71.6-160-160-160zm0 256c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z" fill="#1890ff"></path><path d="M864 248H728l-32.4-90.8a32.07 32.07 0 00-30.2-21.2H358.6c-13.5 0-25.6 8.5-30.1 21.2L296 248H160c-44.2 0-80 35.8-80 80v456c0 44.2 35.8 80 80 80h704c44.2 0 80-35.8 80-80V328c0-44.2-35.8-80-80-80zm8 536c0 4.4-3.6 8-8 8H160c-4.4 0-8-3.6-8-8V328c0-4.4 3.6-8 8-8h186.7l17.1-47.8 22.9-64.2h250.5l22.9 64.2 17.1 47.8H864c4.4 0 8 3.6 8 8v456z" fill="#1890ff"></path></svg></span></div><div class="ant-card-meta-detail"><div class="ant-card-meta-title">Help configuring my broadcasting software</div><div class="ant-card-meta-description"><div><a href="https://owncast.online/docs/broadcasting/?source=admin" target="_blank" rel="noopener noreferrer"><span role="img" aria-label="link" class="anticon anticon-link"><svg viewBox="64 64 896 896" focusable="false" data-icon="link" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z"></path></svg></span> Learn more</a></div></div></div></div></div></div></div><div style="padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px" class="ant-col ant-col-xs-24 ant-col-lg-12"><div class="ant-card ant-card-bordered"><div class="ant-card-body"><div class="ant-card-meta"><div class="ant-card-meta-avatar"><span role="img" aria-label="html5" style="font-size:24px" class="anticon anticon-html5"><svg viewBox="64 64 896 896" focusable="false" data-icon="html5" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M145 96l66 746.6L511.8 928l299.6-85.4L878.7 96H145zm610.9 700.6l-244.1 69.6-245.2-69.6-56.7-641.2h603.8l-57.8 641.2z" fill="#1890ff"></path><path d="M209.9 155.4l56.7 641.2 245.2 69.6 244.1-69.6 57.8-641.2H209.9zm530.4 117.9l-4.8 47.2-1.7 19.5H381.7l8.2 94.2H511v-.2h214.7l-3.2 24.3-21.2 242.2-1.7 16.3-187.7 51.7v.4h-1.7l-188.6-52-11.3-144.7h91l6.5 73.2 102.4 27.7h.8v-.2l102.4-27.7 11.4-118.5H511.9v.1H305.4l-22.7-253.5L281 249h461l-1.7 24.3z" fill="#e6f7ff"></path><path d="M281 249l1.7 24.3 22.7 253.5h206.5v-.1h112.9l-11.4 118.5L511 672.9v.2h-.8l-102.4-27.7-6.5-73.2h-91l11.3 144.7 188.6 52h1.7v-.4l187.7-51.7 1.7-16.3 21.2-242.2 3.2-24.3H511v.2H389.9l-8.2-94.2h352.1l1.7-19.5 4.8-47.2L742 249H511z" fill="#1890ff"></path></svg></span></div><div class="ant-card-meta-detail"><div class="ant-card-meta-title">I want to embed my stream into another site</div><div class="ant-card-meta-description"><div><a href="https://owncast.online/docs/embed/?source=admin" target="_blank" rel="noopener noreferrer"><span role="img" aria-label="link" class="anticon anticon-link"><svg viewBox="64 64 896 896" focusable="false" data-icon="link" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z"></path></svg></span> Learn more</a></div></div></div></div></div></div></div><div style="padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px" class="ant-col ant-col-xs-24 ant-col-lg-12"><div class="ant-card ant-card-bordered"><div class="ant-card-body"><div class="ant-card-meta"><div class="ant-card-meta-avatar"><span role="img" aria-label="edit" style="font-size:24px" class="anticon anticon-edit"><svg viewBox="64 64 896 896" focusable="false" data-icon="edit" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M761.1 288.3L687.8 215 325.1 577.6l-15.6 89 88.9-15.7z" fill="#e6f7ff"></path><path d="M880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32zm-622.3-84c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89z" fill="#1890ff"></path></svg></span></div><div class="ant-card-meta-detail"><div class="ant-card-meta-title">I want to customize my website</div><div class="ant-card-meta-description"><div><a href="https://owncast.online/docs/website/?source=admin" target="_blank" rel="noopener noreferrer"><span role="img" aria-label="link" class="anticon anticon-link"><svg viewBox="64 64 896 896" focusable="false" data-icon="link" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z"></path></svg></span> Learn more</a></div></div></div></div></div></div></div><div style="padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px" class="ant-col ant-col-xs-24 ant-col-lg-12"><div class="ant-card ant-card-bordered"><div class="ant-card-body"><div class="ant-card-meta"><div class="ant-card-meta-avatar"><span role="img" aria-label="sliders" style="font-size:24px" class="anticon anticon-sliders"><svg viewBox="64 64 896 896" focusable="false" data-icon="sliders" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M180 292h80v440h-80zm369 180h-74a3 3 0 00-3 3v74a3 3 0 003 3h74a3 3 0 003-3v-74a3 3 0 00-3-3zm215-108h80v296h-80z" fill="#e6f7ff"></path><path d="M904 296h-66v-96c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v96h-66c-4.4 0-8 3.6-8 8v416c0 4.4 3.6 8 8 8h66v96c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-96h66c4.4 0 8-3.6 8-8V304c0-4.4-3.6-8-8-8zm-60 364h-80V364h80v296zM612 404h-66V232c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v172h-66c-4.4 0-8 3.6-8 8v200c0 4.4 3.6 8 8 8h66v172c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V620h66c4.4 0 8-3.6 8-8V412c0-4.4-3.6-8-8-8zm-60 145a3 3 0 01-3 3h-74a3 3 0 01-3-3v-74a3 3 0 013-3h74a3 3 0 013 3v74zM320 224h-66v-56c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v56h-66c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h66v56c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-56h66c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zm-60 508h-80V292h80v440z" fill="#1890ff"></path></svg></span></div><div class="ant-card-meta-detail"><div class="ant-card-meta-title">I want to tweak my video output</div><div class="ant-card-meta-description"><div><a href="https://owncast.online/docs/encoding/?source=admin" target="_blank" rel="noopener noreferrer"><span role="img" aria-label="link" class="anticon anticon-link"><svg viewBox="64 64 896 896" focusable="false" data-icon="link" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z"></path></svg></span> Learn more</a></div></div></div></div></div></div></div><div style="padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px" class="ant-col ant-col-xs-24 ant-col-lg-12"><div class="ant-card ant-card-bordered"><div class="ant-card-body"><div class="ant-card-meta"><div class="ant-card-meta-avatar"><span role="img" aria-label="database" style="font-size:24px" class="anticon anticon-database"><svg viewBox="64 64 896 896" focusable="false" data-icon="database" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M232 616h560V408H232v208zm112-144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zM232 888h560V680H232v208zm112-144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zM232 344h560V136H232v208zm112-144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z" fill="#e6f7ff"></path><path d="M304 512a40 40 0 1080 0 40 40 0 10-80 0zm0 272a40 40 0 1080 0 40 40 0 10-80 0zm0-544a40 40 0 1080 0 40 40 0 10-80 0z" fill="#1890ff"></path><path d="M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-40 824H232V680h560v208zm0-272H232V408h560v208zm0-272H232V136h560v208z" fill="#1890ff"></path></svg></span></div><div class="ant-card-meta-detail"><div class="ant-card-meta-title">I want to use an external storage provider</div><div class="ant-card-meta-description"><div><a href="https://owncast.online/docs/storage/?source=admin" target="_blank" rel="noopener noreferrer"><span role="img" aria-label="link" class="anticon anticon-link"><svg viewBox="64 64 896 896" focusable="false" data-icon="link" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z"></path></svg></span> Learn more</a></div></div></div></div></div></div></div></div><div class="ant-divider ant-divider-horizontal" role="separator"></div><h2 class="ant-typography">Other</h2><div class="ant-row" style="margin-left:-8px;margin-right:-8px;margin-top:-8px;margin-bottom:-8px"><div style="padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px" class="ant-col ant-col-xs-24 ant-col-lg-12"><div class="ant-card ant-card-bordered"><div class="ant-card-body"><div class="ant-card-meta"><div class="ant-card-meta-avatar"><span role="img" aria-label="bug" style="font-size:24px" class="anticon anticon-bug"><svg viewBox="64 64 896 896" focusable="false" data-icon="bug" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M308 412v268c0 36.78 9.68 71.96 27.8 102.9a205.39 205.39 0 0073.3 73.3A202.68 202.68 0 00512 884c36.78 0 71.96-9.68 102.9-27.8a205.39 205.39 0 0073.3-73.3A202.68 202.68 0 00716 680V412H308zm484 172v96c0 6.5-.22 12.95-.66 19.35C859.94 728.64 908 796.7 908 876a8 8 0 01-8 8h-56a8 8 0 01-8-8c0-44.24-23.94-82.89-59.57-103.7a278.63 278.63 0 01-22.66 49.02 281.39 281.39 0 01-100.45 100.45C611.84 946.07 563.55 960 512 960s-99.84-13.93-141.32-38.23a281.39 281.39 0 01-100.45-100.45 278.63 278.63 0 01-22.66-49.02A119.95 119.95 0 00188 876a8 8 0 01-8 8h-56a8 8 0 01-8-8c0-79.3 48.07-147.36 116.66-176.65A284.12 284.12 0 01232 680v-96H84a8 8 0 01-8-8v-56a8 8 0 018-8h148V412c-76.77 0-139-62.23-139-139a8 8 0 018-8h60a8 8 0 018 8 63 63 0 0063 63h560a63 63 0 0063-63 8 8 0 018-8h60a8 8 0 018 8c0 76.77-62.23 139-139 139v100h148a8 8 0 018 8v56a8 8 0 01-8 8H792zM368 272a8 8 0 01-8 8h-56a8 8 0 01-8-8c0-40.04 8.78-76.75 25.9-108.07a184.57 184.57 0 0174.03-74.03C427.25 72.78 463.96 64 504 64h16c40.04 0 76.75 8.78 108.07 25.9a184.57 184.57 0 0174.03 74.03C719.22 195.25 728 231.96 728 272a8 8 0 01-8 8h-56a8 8 0 01-8-8c0-28.33-5.94-53.15-17.08-73.53a112.56 112.56 0 00-45.39-45.4C573.15 141.95 548.33 136 520 136h-16c-28.33 0-53.15 5.94-73.53 17.08a112.56 112.56 0 00-45.4 45.39C373.95 218.85 368 243.67 368 272z" fill="#1890ff"></path><path d="M308 412v268c0 36.78 9.68 71.96 27.8 102.9a205.39 205.39 0 0073.3 73.3A202.68 202.68 0 00512 884c36.78 0 71.96-9.68 102.9-27.8a205.39 205.39 0 0073.3-73.3A202.68 202.68 0 00716 680V412H308z" fill="#e6f7ff"></path></svg></span></div><div class="ant-card-meta-detail"><div class="ant-card-meta-title">I found a bug</div><div class="ant-card-meta-description"><div>If you found a bug, then please<a href="https://github.com/owncast/owncast/issues/new/choose" target="_blank" rel="noopener noreferrer"> <!-- -->let us know</a></div></div></div></div></div></div></div><div style="padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px" class="ant-col ant-col-xs-24 ant-col-lg-12"><div class="ant-card ant-card-bordered"><div class="ant-card-body"><div class="ant-card-meta"><div class="ant-card-meta-avatar"><span role="img" aria-label="question-circle" style="font-size:24px" class="anticon anticon-question-circle"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#1890ff"></path><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm0 632c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm62.9-219.5a48.3 48.3 0 00-30.9 44.8V620c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-21.5c0-23.1 6.7-45.9 19.9-64.9 12.9-18.6 30.9-32.8 52.1-40.9 34-13.1 56-41.6 56-72.7 0-44.1-43.1-80-96-80s-96 35.9-96 80v7.6c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V420c0-39.3 17.2-76 48.4-103.3C430.4 290.4 470 276 512 276s81.6 14.5 111.6 40.7C654.8 344 672 380.7 672 420c0 57.8-38.1 109.8-97.1 132.5z" fill="#e6f7ff"></path><path d="M472 732a40 40 0 1080 0 40 40 0 10-80 0zm151.6-415.3C593.6 290.5 554 276 512 276s-81.6 14.4-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.2 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5 0-39.3-17.2-76-48.4-103.3z" fill="#1890ff"></path></svg></span></div><div class="ant-card-meta-detail"><div class="ant-card-meta-title">I have a general question</div><div class="ant-card-meta-description"><div>Most general questions are answered in our<a href="https://owncast.online/docs/faq/?source=admin" target="_blank" rel="noopener noreferrer"> <!-- -->FAQ</a> <!-- -->or exist in our<!-- --> <a href="https://github.com/owncast/owncast/discussions" target="_blank" rel="noopener noreferrer">discussions</a></div></div></div></div></div></div></div><div style="padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px" class="ant-col ant-col-xs-24 ant-col-lg-12"><div class="ant-card ant-card-bordered"><div class="ant-card-body"><div class="ant-card-meta"><div class="ant-card-meta-avatar"><span role="img" aria-label="api" style="font-size:24px" class="anticon anticon-api"><svg viewBox="64 64 896 896" focusable="false" data-icon="api" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M148.2 674.6zm106.7-92.3c-25 25-38.7 58.1-38.7 93.4s13.8 68.5 38.7 93.4c25 25 58.1 38.7 93.4 38.7 35.3 0 68.5-13.8 93.4-38.7l59.4-59.4-186.8-186.8-59.4 59.4zm420.8-366.1c-35.3 0-68.5 13.8-93.4 38.7l-59.4 59.4 186.8 186.8 59.4-59.4c24.9-25 38.7-58.1 38.7-93.4s-13.8-68.5-38.7-93.4c-25-25-58.1-38.7-93.4-38.7z" fill="#e6f7ff"></path><path d="M578.9 546.7a8.03 8.03 0 00-11.3 0L501 613.3 410.7 523l66.7-66.7c3.1-3.1 3.1-8.2 0-11.3L441 408.6a8.03 8.03 0 00-11.3 0L363 475.3l-43-43a7.85 7.85 0 00-5.7-2.3c-2 0-4.1.8-5.7 2.3L206.8 534.2a199.45 199.45 0 00-58.6 140.4c-.2 39.5 11.2 79.1 34.3 113.1l-76.1 76.1a8.03 8.03 0 000 11.3l42.4 42.4c1.6 1.6 3.6 2.3 5.7 2.3s4.1-.8 5.7-2.3l76.1-76.1c33.7 22.9 72.9 34.3 112.1 34.3 51.2 0 102.4-19.5 141.5-58.6l101.9-101.9c3.1-3.1 3.1-8.2 0-11.3l-43-43 66.7-66.7c3.1-3.1 3.1-8.2 0-11.3l-36.6-36.2zM441.7 769.1a131.32 131.32 0 01-93.4 38.7c-35.3 0-68.4-13.7-93.4-38.7-24.9-24.9-38.7-58.1-38.7-93.4s13.7-68.4 38.7-93.4l59.4-59.4 186.8 186.8-59.4 59.4zm476-620.3l-42.4-42.4c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-76.1 76.1a199.27 199.27 0 00-112.1-34.3c-51.2 0-102.4 19.5-141.5 58.6L432.3 308.7a8.03 8.03 0 000 11.3L704 591.7c1.6 1.6 3.6 2.3 5.7 2.3 2 0 4.1-.8 5.7-2.3l101.9-101.9c68.9-69 77-175.7 24.3-253.5l76.1-76.1c3.1-3.2 3.1-8.3 0-11.4zM769.1 441.7l-59.4 59.4-186.8-186.8 59.4-59.4c24.9-24.9 58.1-38.7 93.4-38.7s68.4 13.7 93.4 38.7c24.9 24.9 38.7 58.1 38.7 93.4s-13.8 68.4-38.7 93.4z" fill="#1890ff"></path></svg></span></div><div class="ant-card-meta-detail"><div class="ant-card-meta-title">I want to build add-ons for Owncast</div><div class="ant-card-meta-description"><div>You can build your own bots, overlays, tools and add-ons with our<a href="https://owncast.online/thirdparty?source=admin" target="_blank" rel="noopener noreferrer"> developer APIs. </a></div></div></div></div></div></div></div></div></div></main><footer class="ant-layout-footer footer-container"><a href="https://owncast.online/?source=admin" target="_blank" rel="noopener noreferrer">About Owncast v<!-- -->0.0.0</a></footer></section></section></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/help","query":{},"buildId":"7a6totYv41sSc3NmR-l5-","assetPrefix":"/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html> \ No newline at end of file
+<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width"/><meta charSet="utf-8"/><title>Owncast Admin</title><link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png"/><meta name="next-head-count" content="4"/><link rel="preload" href="/admin/_next/static/css/8f06007bcaf49272.css" as="style"/><link rel="stylesheet" href="/admin/_next/static/css/8f06007bcaf49272.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/admin/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/admin/_next/static/chunks/webpack-d3dfca19c7a5e28c.js" defer=""></script><script src="/admin/_next/static/chunks/framework-4975f770e34de116.js" defer=""></script><script src="/admin/_next/static/chunks/main-6bdb99735697720d.js" defer=""></script><script src="/admin/_next/static/chunks/pages/_app-31024cc89d3736f1.js" defer=""></script><script src="/admin/_next/static/chunks/961-1db4468ca0742ea4.js" defer=""></script><script src="/admin/_next/static/chunks/751-f932ff7ec3e1342a.js" defer=""></script><script src="/admin/_next/static/chunks/132-69ec1de6a8e27de6.js" defer=""></script><script src="/admin/_next/static/chunks/pages/help-3dd6da50dde27e48.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_buildManifest.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_ssgManifest.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_middlewareManifest.js" defer=""></script></head><body><div id="__next" data-reactroot=""><section class="ant-layout app-container"><aside class="ant-layout-sider ant-layout-sider-dark side-nav" style="flex:0 0 240px;max-width:240px;min-width:240px;width:240px"><div class="ant-layout-sider-children"><ul class="ant-menu ant-menu-root ant-menu-inline ant-menu-light menu-container" role="menu" tabindex="0" data-menu-list="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1><li class="ant-menu-item" style="padding-left:24px" role="menuitem" tabindex="-1"><span role="img" aria-label="home" class="anticon anticon-home ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="home" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/">Home</a></span></li><li class="ant-menu-item" style="padding-left:24px" title="Current stream" role="menuitem" tabindex="-1"><span role="img" aria-label="line-chart" class="anticon anticon-line-chart ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="line-chart" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/viewer-info/">Viewers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" style="display:block" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="message" class="anticon anticon-message ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="message" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"></path></svg></span><span class="ant-menu-title-content">Chat &amp; Users</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px;display:none" title="Fediverse followers" role="menuitem" tabindex="-1"><img alt="fediverse icon" src="/admin/fediverse-white.png" width="15rem" style="opacity:0.6;position:relative;top:-1px" class="ant-menu-item-icon"/><span class="ant-menu-title-content"><a href="/admin/federation/followers/">Followers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="setting" class="anticon anticon-setting ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="setting" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"></path></svg></span><span class="ant-menu-title-content">Configuration</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="tool" class="anticon anticon-tool ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="tool" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"></path></svg></span><span class="ant-menu-title-content">Utilities</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="experiment" class="anticon anticon-experiment ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="experiment" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z"></path></svg></span><span class="ant-menu-title-content">Integrations</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item ant-menu-item-selected" style="padding-left:24px" title="Help" role="menuitem" tabindex="-1"><span role="img" aria-label="question-circle" class="anticon anticon-question-circle ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/help/">Help</a></span></li></ul><div style="display:none" aria-hidden="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1></div></div></aside><section class="ant-layout layout-main"><header class="ant-layout-header layout-header"><div class="ant-space ant-space-horizontal ant-space-align-center"><div class="ant-space-item"><button style="display:none" type="button" class="ant-btn ant-btn-primary ant-btn-circle ant-btn-lg ant-btn-icon-only"><span role="img" aria-label="edit" class="anticon anticon-edit"><svg viewBox="64 64 896 896" focusable="false" data-icon="edit" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z"></path></svg></span></button></div></div><div class="global-stream-title-container"><div class="textfield-with-submit-container"><div class="textfield-component"><div class="formfield-container textfield-container type-default"><div class="label-side"><label for="field-streamTitle" class="formfield-label">Stream Title</label></div><div class="input-side"><div class="input-group"><span class="ant-input-affix-wrapper field field-streamTitle"><input type="text" id="field-streamTitle" class="ant-input" placeholder="What are you streaming now" maxLength="100" value=""/><span class="ant-input-suffix"><span role="button" aria-label="close-circle" tabindex="-1" class="anticon anticon-close-circle ant-input-clear-icon-hidden ant-input-clear-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"></path></svg></span></span></span></div><span class="status-container empty"></span><p class="field-tip">What is your stream about today?</p></div></div></div><div class="formfield-container lower-container"><p class="label-spacer"></p><div class="lower-content"><div class="field-tip">What is your stream about today?</div><span class="status-container empty"></span><div class="update-button-container"><button disabled="" type="button" class="ant-btn ant-btn-primary ant-btn-sm submit-button"><span>Update</span></button></div></div></div></div></div><div class="ant-space ant-space-horizontal ant-space-align-center"><div class="ant-space-item"><div class="online-status-indicator"><span class="status-label">Offline</span><span class="status-icon"><span role="img" aria-label="minus-square" class="anticon anticon-minus-square"><svg viewBox="64 64 896 896" focusable="false" data-icon="minus-square" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z"></path></svg></span></span></div></div></div></header><main class="ant-layout-content main-content-container"><div class="help-page"><h1 class="ant-typography" style="text-align:center">How can we help you?</h1><div class="ant-row ant-row-space-around ant-row-middle" style="margin-left:-8px;margin-right:-8px;margin-top:-8px;margin-bottom:-8px"><div style="padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px;text-align:center" class="ant-col ant-col-xs-24 ant-col-lg-12"><div class="ant-result ant-result-500"><div class="ant-result-icon ant-result-image"><svg width="254" height="294"><defs><path d="M0 .335h253.49v253.49H0z"></path><path d="M0 293.665h253.49V.401H0z"></path></defs><g fill="none" fill-rule="evenodd"><g transform="translate(0 .067)"><mask fill="#fff"></mask><path d="M0 128.134v-2.11C0 56.608 56.273.334 125.69.334h2.11c69.416 0 125.69 56.274 125.69 125.69v2.11c0 69.417-56.274 125.69-125.69 125.69h-2.11C56.273 253.824 0 197.551 0 128.134" fill="#E4EBF7" mask="url(#b)"></path></g><path d="M39.989 132.108a8.332 8.332 0 1 1-16.581-1.671 8.332 8.332 0 0 1 16.58 1.671" fill="#FFF"></path><path d="M37.19 135.59l10.553 5.983M48.665 147.884l-12.734 10.861" stroke="#FFF" stroke-width="2"></path><path d="M40.11 160.816a5.706 5.706 0 1 1-11.354-1.145 5.706 5.706 0 0 1 11.354 1.145M57.943 144.6a5.747 5.747 0 1 1-11.436-1.152 5.747 5.747 0 0 1 11.436 1.153M99.656 27.434l30.024-.013a4.619 4.619 0 1 0-.004-9.238l-30.024.013a4.62 4.62 0 0 0 .004 9.238M111.14 45.896l30.023-.013a4.62 4.62 0 1 0-.004-9.238l-30.024.013a4.619 4.619 0 1 0 .004 9.238" fill="#FFF"></path><path d="M113.53 27.421v-.002l15.89-.007a4.619 4.619 0 1 0 .005 9.238l-15.892.007v-.002a4.618 4.618 0 0 0-.004-9.234M150.167 70.091h-3.979a4.789 4.789 0 0 1-4.774-4.775 4.788 4.788 0 0 1 4.774-4.774h3.979a4.789 4.789 0 0 1 4.775 4.774 4.789 4.789 0 0 1-4.775 4.775" fill="#FFF"></path><path d="M171.687 30.234c0-16.392 13.289-29.68 29.681-29.68 16.392 0 29.68 13.288 29.68 29.68 0 16.393-13.288 29.681-29.68 29.681s-29.68-13.288-29.68-29.68" fill="#FF603B"></path><path d="M203.557 19.435l-.676 15.035a1.514 1.514 0 0 1-3.026 0l-.675-15.035a2.19 2.19 0 1 1 4.377 0m-.264 19.378c.513.477.77 1.1.77 1.87s-.257 1.393-.77 1.907c-.55.476-1.21.733-1.943.733a2.545 2.545 0 0 1-1.87-.77c-.55-.514-.806-1.136-.806-1.87 0-.77.256-1.393.806-1.87.513-.513 1.137-.733 1.87-.733.77 0 1.43.22 1.943.733" fill="#FFF"></path><path d="M119.3 133.275c4.426-.598 3.612-1.204 4.079-4.778.675-5.18-3.108-16.935-8.262-25.118-1.088-10.72-12.598-11.24-12.598-11.24s4.312 4.895 4.196 16.199c1.398 5.243.804 14.45.804 14.45s5.255 11.369 11.78 10.487" fill="#FFB594"></path><path d="M100.944 91.61s1.463-.583 3.211.582c8.08 1.398 10.368 6.706 11.3 11.368 1.864 1.282 1.864 2.33 1.864 3.496.365.777 1.515 3.03 1.515 3.03s-7.225 1.748-10.954 6.758c-1.399-6.41-6.936-25.235-6.936-25.235" fill="#FFF"></path><path d="M94.008 90.5l1.019-5.815-9.23-11.874-5.233 5.581-2.593 9.863s8.39 5.128 16.037 2.246" fill="#FFB594"></path><path d="M82.931 78.216s-4.557-2.868-2.445-6.892c1.632-3.107 4.537 1.139 4.537 1.139s.524-3.662 3.139-3.662c.523-1.046 1.569-4.184 1.569-4.184s11.507 2.615 13.6 3.138c-.001 5.23-2.317 19.529-7.884 19.969-8.94.706-12.516-9.508-12.516-9.508" fill="#FFC6A0"></path><path d="M102.971 72.243c2.616-2.093 3.489-9.775 3.489-9.775s-2.492-.492-6.676-2.062c-4.708-2.092-12.867-4.771-17.575.982-9.54 4.41-2.062 19.93-2.062 19.93l2.729-3.037s-3.956-3.304-2.092-6.277c2.183-3.48 3.943 1.08 3.943 1.08s.64-2.4 3.6-3.36c.356-.714 1.04-2.69 1.44-3.872a1.08 1.08 0 0 1 1.27-.707c2.41.56 8.723 2.03 11.417 2.676.524.126.876.619.825 1.156l-.308 3.266z" fill="#520038"></path><path d="M101.22 76.514c-.104.613-.585 1.044-1.076.96-.49-.082-.805-.646-.702-1.26.104-.613.585-1.044 1.076-.961.491.083.805.647.702 1.26M94.26 75.074c-.104.613-.585 1.044-1.076.96-.49-.082-.805-.646-.702-1.26.104-.613.585-1.044 1.076-.96.491.082.805.646.702 1.26" fill="#552950"></path><path stroke="#DB836E" stroke-width="1.063" stroke-linecap="round" stroke-linejoin="round" d="M99.206 73.644l-.9 1.62-.3 4.38h-2.24"></path><path d="M99.926 73.284s1.8-.72 2.52.54" stroke="#5C2552" stroke-width="1.117" stroke-linecap="round" stroke-linejoin="round"></path><path d="M81.367 73.084s.48-1.12 1.12-.72c.64.4 1.28 1.44.56 2s.16 1.68.16 1.68" stroke="#DB836E" stroke-width="1.117" stroke-linecap="round" stroke-linejoin="round"></path><path d="M92.326 71.724s1.84 1.12 4.16.96" stroke="#5C2552" stroke-width="1.117" stroke-linecap="round" stroke-linejoin="round"></path><path d="M92.726 80.604s2.24 1.2 4.4 1.2M93.686 83.164s.96.4 1.52.32M83.687 80.044s1.786 6.547 9.262 7.954" stroke="#DB836E" stroke-width="1.063" stroke-linecap="round" stroke-linejoin="round"></path><path d="M95.548 91.663s-1.068 2.821-8.298 2.105c-7.23-.717-10.29-5.044-10.29-5.044" stroke="#E4EBF7" stroke-width="1.136" stroke-linecap="round" stroke-linejoin="round"></path><path d="M78.126 87.478s6.526 4.972 16.47 2.486c0 0 9.577 1.02 11.536 5.322 5.36 11.77.543 36.835 0 39.962 3.496 4.055-.466 8.483-.466 8.483-15.624-3.548-35.81-.6-35.81-.6-4.849-3.546-1.223-9.044-1.223-9.044L62.38 110.32c-2.485-15.227.833-19.803 3.549-20.743 3.03-1.049 8.04-1.282 8.04-1.282.496-.058 1.08-.076 1.37-.233 2.36-1.282 2.787-.583 2.787-.583" fill="#FFF"></path><path d="M65.828 89.81s-6.875.465-7.59 8.156c-.466 8.857 3.03 10.954 3.03 10.954s6.075 22.102 16.796 22.957c8.39-2.176 4.758-6.702 4.661-11.42-.233-11.304-7.108-16.897-7.108-16.897s-4.212-13.75-9.789-13.75" fill="#FFC6A0"></path><path d="M71.716 124.225s.855 11.264 9.828 6.486c4.765-2.536 7.581-13.828 9.789-22.568 1.456-5.768 2.58-12.197 2.58-12.197l-4.973-1.709s-2.408 5.516-7.769 12.275c-4.335 5.467-9.144 11.11-9.455 17.713" fill="#FFC6A0"></path><path d="M108.463 105.191s1.747 2.724-2.331 30.535c2.376 2.216 1.053 6.012-.233 7.51" stroke="#E4EBF7" stroke-width="1.085" stroke-linecap="round" stroke-linejoin="round"></path><path d="M123.262 131.527s-.427 2.732-11.77 1.981c-15.187-1.006-25.326-3.25-25.326-3.25l.933-5.8s.723.215 9.71-.068c11.887-.373 18.714-6.07 24.964-1.022 4.039 3.263 1.489 8.16 1.489 8.16" fill="#FFC6A0"></path><path d="M70.24 90.974s-5.593-4.739-11.054 2.68c-3.318 7.223.517 15.284 2.664 19.578-.31 3.729 2.33 4.311 2.33 4.311s.108.895 1.516 2.68c4.078-7.03 6.72-9.166 13.711-12.546-.328-.656-1.877-3.265-1.825-3.767.175-1.69-1.282-2.623-1.282-2.623s-.286-.156-1.165-2.738c-.788-2.313-2.036-5.177-4.895-7.575" fill="#FFF"></path><path d="M90.232 288.027s4.855 2.308 8.313 1.155c3.188-1.063 5.12.755 8.002 1.331 2.881.577 7.769 1.243 13.207-1.424-.117-6.228-7.786-4.499-13.518-7.588-2.895-1.56-4.276-5.336-4.066-9.944H91.544s-1.573 11.89-1.312 16.47" fill="#CBD1D1"></path><path d="M90.207 287.833s2.745 1.437 7.639.738c3.456-.494 3.223.66 7.418 1.282 4.195.621 13.092-.194 14.334-1.126.466 1.242-.388 2.33-.388 2.33s-1.709.682-5.438.932c-2.295.154-8.098.276-10.14-.621-2.02-1.554-4.894-1.515-6.06-.234-4.427 1.075-7.184-.31-7.184-.31l-.181-2.991z" fill="#2B0849"></path><path d="M98.429 272.257h3.496s-.117 7.574 5.127 9.671c-5.244.7-9.672-2.602-8.623-9.671" fill="#A4AABA"></path><path d="M44.425 272.046s-2.208 7.774-4.702 12.899c-1.884 3.874-4.428 7.854 5.729 7.854 6.97 0 9.385-.503 7.782-6.917-1.604-6.415.279-13.836.279-13.836h-9.088z" fill="#CBD1D1"></path><path d="M38.066 290.277s2.198 1.225 6.954 1.225c6.376 0 8.646-1.73 8.646-1.73s.63 1.168-.649 2.27c-1.04.897-3.77 1.668-7.745 1.621-4.347-.05-6.115-.593-7.062-1.224-.864-.577-.72-1.657-.144-2.162" fill="#2B0849"></path><path d="M45.344 274.041s.035 1.592-.329 3.07c-.365 1.49-1.13 3.255-1.184 4.34-.061 1.206 4.755 1.657 5.403.036.65-1.622 1.357-6.737 2.006-7.602.648-.865-5.14-2.222-5.896.156" fill="#A4AABA"></path><path d="M89.476 277.57l13.899.095s1.349-56.643 1.925-66.909c.576-10.267 3.923-45.052 1.042-65.585l-13.037-.669-23.737.81s-.452 4.12-1.243 10.365c-.065.515-.708.874-.777 1.417-.078.608.439 1.407.332 2.044-2.455 14.627-5.797 32.736-8.256 46.837-.121.693-1.282 1.048-1.515 2.796-.042.314.22 1.584.116 1.865-7.14 19.473-12.202 52.601-15.66 67.19l15.176-.015s2.282-10.145 4.185-18.871c2.922-13.389 24.012-88.32 24.012-88.32l3.133-.954-.158 48.568s-.233 1.282.35 2.098c.583.815-.581 1.167-.408 2.331l.408 1.864s-.466 7.458-.932 12.352c-.467 4.895 1.145 40.69 1.145 40.69" fill="#7BB2F9"></path><path d="M64.57 218.881c1.197.099 4.195-2.097 7.225-5.127M96.024 222.534s2.881-1.152 6.34-4.034" stroke="#648BD8" stroke-width="1.085" stroke-linecap="round" stroke-linejoin="round"></path><path d="M96.973 219.373s2.882-1.153 6.34-4.034" stroke="#648BD8" stroke-width="1.032" stroke-linecap="round" stroke-linejoin="round"></path><path d="M63.172 222.144s2.724-.614 6.759-3.496M74.903 146.166c-.281 3.226.31 8.856-4.506 9.478M93.182 144.344s.115 14.557-1.344 15.65c-2.305 1.73-3.107 2.02-3.107 2.02M89.197 144.923s.269 13.144-1.01 25.088M83.525 170.71s6.81-1.051 9.116-1.051M46.026 270.045l-.892 4.538M46.937 263.289l-.815 4.157M62.725 202.503c-.33 1.618-.102 1.904-.449 3.438 0 0-2.756 1.903-2.29 3.923.466 2.02-.31 3.424-4.505 17.252-1.762 5.807-4.233 18.922-6.165 28.278-.03.144-.521 2.646-1.14 5.8M64.158 194.136c-.295 1.658-.6 3.31-.917 4.938M71.33 146.787l-1.244 10.877s-1.14.155-.519 2.33c.117 1.399-2.778 16.39-5.382 31.615M44.242 273.727H58.07" stroke="#648BD8" stroke-width="1.085" stroke-linecap="round" stroke-linejoin="round"></path><path d="M106.18 142.117c-3.028-.489-18.825-2.744-36.219.2a.625.625 0 0 0-.518.644c.063 1.307.044 2.343.015 2.995a.617.617 0 0 0 .716.636c3.303-.534 17.037-2.412 35.664-.266.347.04.66-.214.692-.56.124-1.347.16-2.425.17-3.029a.616.616 0 0 0-.52-.62" fill="#192064"></path><path d="M96.398 145.264l.003-5.102a.843.843 0 0 0-.809-.847 114.104 114.104 0 0 0-8.141-.014.85.85 0 0 0-.82.847l-.003 5.097c0 .476.388.857.864.845 2.478-.064 5.166-.067 8.03.017a.848.848 0 0 0 .876-.843" fill="#FFF"></path><path d="M95.239 144.296l.002-3.195a.667.667 0 0 0-.643-.672c-1.9-.061-3.941-.073-6.094-.01a.675.675 0 0 0-.654.672l-.002 3.192c0 .376.305.677.68.669 1.859-.042 3.874-.043 6.02.012.376.01.69-.291.691-.668" fill="#192064"></path><path d="M90.102 273.522h12.819M91.216 269.761c.006 3.519-.072 5.55 0 6.292M90.923 263.474c-.009 1.599-.016 2.558-.016 4.505M90.44 170.404l.932 46.38s.7 1.631-.233 2.796c-.932 1.166 2.564.7.932 2.33-1.63 1.633.933 1.166 0 3.497-.618 1.546-1.031 21.921-1.138 36.513" stroke="#648BD8" stroke-width="1.085" stroke-linecap="round" stroke-linejoin="round"></path><path d="M73.736 98.665l2.214 4.312s2.098.816 1.865 2.68l.816 2.214M64.297 116.611c.233-.932 2.176-7.147 12.585-10.488M77.598 90.042s7.691 6.137 16.547 2.72" stroke="#E4EBF7" stroke-width="1.085" stroke-linecap="round" stroke-linejoin="round"></path><path d="M91.974 86.954s5.476-.816 7.574-4.545c1.297-.345.72 2.212-.33 3.671-.7.971-1.01 1.554-1.01 1.554s.194.31.155.816c-.053.697-.175.653-.272 1.048-.081.335.108.657 0 1.049-.046.17-.198.5-.382.878-.12.249-.072.687-.2.948-.231.469-1.562 1.87-2.622 2.855-3.826 3.554-5.018 1.644-6.001-.408-.894-1.865-.661-5.127-.874-6.875-.35-2.914-2.622-3.03-1.923-4.429.343-.685 2.87.69 3.263 1.748.757 2.04 2.952 1.807 2.622 1.69" fill="#FFC6A0"></path><path d="M99.8 82.429c-.465.077-.35.272-.97 1.243-.622.971-4.817 2.932-6.39 3.224-2.589.48-2.278-1.56-4.254-2.855-1.69-1.107-3.562-.638-1.398 1.398.99.932.932 1.107 1.398 3.205.335 1.506-.64 3.67.7 5.593" stroke="#DB836E" stroke-width=".774" stroke-linecap="round" stroke-linejoin="round"></path><path d="M79.543 108.673c-2.1 2.926-4.266 6.175-5.557 8.762" stroke="#E59788" stroke-width=".774" stroke-linecap="round" stroke-linejoin="round"></path><path d="M87.72 124.768s-2.098-1.942-5.127-2.719c-3.03-.777-3.574-.155-5.516.078-1.942.233-3.885-.932-3.652.7.233 1.63 5.05 1.01 5.206 2.097.155 1.087-6.37 2.796-8.313 2.175-.777.777.466 1.864 2.02 2.175.233 1.554 2.253 1.554 2.253 1.554s.699 1.01 2.641 1.088c2.486 1.32 8.934-.7 10.954-1.554 2.02-.855-.466-5.594-.466-5.594" fill="#FFC6A0"></path><path d="M73.425 122.826s.66 1.127 3.167 1.418c2.315.27 2.563.583 2.563.583s-2.545 2.894-9.07 2.272M72.416 129.274s3.826.097 4.933-.718M74.98 130.75s1.961.136 3.36-.505M77.232 131.916s1.748.019 2.914-.505M73.328 122.321s-.595-1.032 1.262-.427c1.671.544 2.833.055 5.128.155 1.389.061 3.067-.297 3.982.15 1.606.784 3.632 2.181 3.632 2.181s10.526 1.204 19.033-1.127M78.864 108.104s-8.39 2.758-13.168 12.12" stroke="#E59788" stroke-width=".774" stroke-linecap="round" stroke-linejoin="round"></path><path d="M109.278 112.533s3.38-3.613 7.575-4.662" stroke="#E4EBF7" stroke-width="1.085" stroke-linecap="round" stroke-linejoin="round"></path><path d="M107.375 123.006s9.697-2.745 11.445-.88" stroke="#E59788" stroke-width=".774" stroke-linecap="round" stroke-linejoin="round"></path><path d="M194.605 83.656l3.971-3.886M187.166 90.933l3.736-3.655M191.752 84.207l-4.462-4.56M198.453 91.057l-4.133-4.225M129.256 163.074l3.718-3.718M122.291 170.039l3.498-3.498M126.561 163.626l-4.27-4.27M132.975 170.039l-3.955-3.955" stroke="#BFCDDD" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path><path d="M190.156 211.779h-1.604a4.023 4.023 0 0 1-4.011-4.011V175.68a4.023 4.023 0 0 1 4.01-4.01h1.605a4.023 4.023 0 0 1 4.011 4.01v32.088a4.023 4.023 0 0 1-4.01 4.01" fill="#A3B4C6"></path><path d="M237.824 212.977a4.813 4.813 0 0 1-4.813 4.813h-86.636a4.813 4.813 0 0 1 0-9.626h86.636a4.813 4.813 0 0 1 4.813 4.813" fill="#A3B4C6"></path><mask fill="#fff"></mask><path fill="#A3B4C6" mask="url(#d)" d="M154.098 190.096h70.513v-84.617h-70.513z"></path><path d="M224.928 190.096H153.78a3.219 3.219 0 0 1-3.208-3.209V167.92a3.219 3.219 0 0 1 3.208-3.21h71.148a3.219 3.219 0 0 1 3.209 3.21v18.967a3.219 3.219 0 0 1-3.21 3.209M224.928 130.832H153.78a3.218 3.218 0 0 1-3.208-3.208v-18.968a3.219 3.219 0 0 1 3.208-3.209h71.148a3.219 3.219 0 0 1 3.209 3.21v18.967a3.218 3.218 0 0 1-3.21 3.208" fill="#BFCDDD" mask="url(#d)"></path><path d="M159.563 120.546a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M166.98 120.546a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M174.397 120.546a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M222.539 120.546h-22.461a.802.802 0 0 1-.802-.802v-3.208c0-.443.359-.803.802-.803h22.46c.444 0 .803.36.803.803v3.208c0 .443-.36.802-.802.802" fill="#FFF" mask="url(#d)"></path><path d="M224.928 160.464H153.78a3.218 3.218 0 0 1-3.208-3.209v-18.967a3.219 3.219 0 0 1 3.208-3.209h71.148a3.219 3.219 0 0 1 3.209 3.209v18.967a3.218 3.218 0 0 1-3.21 3.209" fill="#BFCDDD" mask="url(#d)"></path><path d="M173.455 130.832h49.301M164.984 130.832h6.089M155.952 130.832h6.75M173.837 160.613h49.3M165.365 160.613h6.089M155.57 160.613h6.751" stroke="#7C90A5" stroke-width="1.124" stroke-linecap="round" stroke-linejoin="round" mask="url(#d)"></path><path d="M159.563 151.038a2.407 2.407 0 1 1 0-4.814 2.407 2.407 0 0 1 0 4.814M166.98 151.038a2.407 2.407 0 1 1 0-4.814 2.407 2.407 0 0 1 0 4.814M174.397 151.038a2.407 2.407 0 1 1 .001-4.814 2.407 2.407 0 0 1 0 4.814M222.539 151.038h-22.461a.802.802 0 0 1-.802-.802v-3.209c0-.443.359-.802.802-.802h22.46c.444 0 .803.36.803.802v3.209c0 .443-.36.802-.802.802M159.563 179.987a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M166.98 179.987a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M174.397 179.987a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M222.539 179.987h-22.461a.802.802 0 0 1-.802-.802v-3.209c0-.443.359-.802.802-.802h22.46c.444 0 .803.36.803.802v3.209c0 .443-.36.802-.802.802" fill="#FFF" mask="url(#d)"></path><path d="M203.04 221.108h-27.372a2.413 2.413 0 0 1-2.406-2.407v-11.448a2.414 2.414 0 0 1 2.406-2.407h27.372a2.414 2.414 0 0 1 2.407 2.407V218.7a2.413 2.413 0 0 1-2.407 2.407" fill="#BFCDDD" mask="url(#d)"></path><path d="M177.259 207.217v11.52M201.05 207.217v11.52" stroke="#A3B4C6" stroke-width="1.124" stroke-linecap="round" stroke-linejoin="round" mask="url(#d)"></path><path d="M162.873 267.894a9.422 9.422 0 0 1-9.422-9.422v-14.82a9.423 9.423 0 0 1 18.845 0v14.82a9.423 9.423 0 0 1-9.423 9.422" fill="#5BA02E" mask="url(#d)"></path><path d="M171.22 267.83a9.422 9.422 0 0 1-9.422-9.423v-3.438a9.423 9.423 0 0 1 18.845 0v3.438a9.423 9.423 0 0 1-9.422 9.423" fill="#92C110" mask="url(#d)"></path><path d="M181.31 293.666h-27.712a3.209 3.209 0 0 1-3.209-3.21V269.79a3.209 3.209 0 0 1 3.209-3.21h27.711a3.209 3.209 0 0 1 3.209 3.21v20.668a3.209 3.209 0 0 1-3.209 3.209" fill="#F2D7AD" mask="url(#d)"></path></g></svg></div><div class="ant-result-title"></div></div><h2 class="ant-typography">Troubleshooting</h2><a target="_blank" rel="noopener noreferrer" href="https://owncast.online/docs/troubleshooting/?source=admin" class="ant-btn ant-btn-primary"><span role="img" aria-label="link" class="anticon anticon-link"><svg viewBox="64 64 896 896" focusable="false" data-icon="link" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z"></path></svg></span><span>Fix your problems</span></a></div><div style="padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px;text-align:center" class="ant-col ant-col-xs-24 ant-col-lg-12"><div class="ant-result ant-result-404"><div class="ant-result-icon ant-result-image"><svg width="252" height="294"><defs><path d="M0 .387h251.772v251.772H0z"></path></defs><g fill="none" fill-rule="evenodd"><g transform="translate(0 .012)"><mask fill="#fff"></mask><path d="M0 127.32v-2.095C0 56.279 55.892.387 124.838.387h2.096c68.946 0 124.838 55.892 124.838 124.838v2.096c0 68.946-55.892 124.838-124.838 124.838h-2.096C55.892 252.16 0 196.267 0 127.321" fill="#E4EBF7" mask="url(#b)"></path></g><path d="M39.755 130.84a8.276 8.276 0 1 1-16.468-1.66 8.276 8.276 0 0 1 16.468 1.66" fill="#FFF"></path><path d="M36.975 134.297l10.482 5.943M48.373 146.508l-12.648 10.788" stroke="#FFF" stroke-width="2"></path><path d="M39.875 159.352a5.667 5.667 0 1 1-11.277-1.136 5.667 5.667 0 0 1 11.277 1.136M57.588 143.247a5.708 5.708 0 1 1-11.358-1.145 5.708 5.708 0 0 1 11.358 1.145M99.018 26.875l29.82-.014a4.587 4.587 0 1 0-.003-9.175l-29.82.013a4.587 4.587 0 1 0 .003 9.176M110.424 45.211l29.82-.013a4.588 4.588 0 0 0-.004-9.175l-29.82.013a4.587 4.587 0 1 0 .004 9.175" fill="#FFF"></path><path d="M112.798 26.861v-.002l15.784-.006a4.588 4.588 0 1 0 .003 9.175l-15.783.007v-.002a4.586 4.586 0 0 0-.004-9.172M184.523 135.668c-.553 5.485-5.447 9.483-10.931 8.93-5.485-.553-9.483-5.448-8.93-10.932.552-5.485 5.447-9.483 10.932-8.93 5.485.553 9.483 5.447 8.93 10.932" fill="#FFF"></path><path d="M179.26 141.75l12.64 7.167M193.006 156.477l-15.255 13.011" stroke="#FFF" stroke-width="2"></path><path d="M184.668 170.057a6.835 6.835 0 1 1-13.6-1.372 6.835 6.835 0 0 1 13.6 1.372M203.34 153.325a6.885 6.885 0 1 1-13.7-1.382 6.885 6.885 0 0 1 13.7 1.382" fill="#FFF"></path><path d="M151.931 192.324a2.222 2.222 0 1 1-4.444 0 2.222 2.222 0 0 1 4.444 0zM225.27 116.056a2.222 2.222 0 1 1-4.445 0 2.222 2.222 0 0 1 4.444 0zM216.38 151.08a2.223 2.223 0 1 1-4.446-.001 2.223 2.223 0 0 1 4.446 0zM176.917 107.636a2.223 2.223 0 1 1-4.445 0 2.223 2.223 0 0 1 4.445 0zM195.291 92.165a2.223 2.223 0 1 1-4.445 0 2.223 2.223 0 0 1 4.445 0zM202.058 180.711a2.223 2.223 0 1 1-4.446 0 2.223 2.223 0 0 1 4.446 0z" stroke="#FFF" stroke-width="2"></path><path stroke="#FFF" stroke-width="2" d="M214.404 153.302l-1.912 20.184-10.928 5.99M173.661 174.792l-6.356 9.814h-11.36l-4.508 6.484M174.941 125.168v-15.804M220.824 117.25l-12.84 7.901-15.31-7.902V94.39"></path><path d="M166.588 65.936h-3.951a4.756 4.756 0 0 1-4.743-4.742 4.756 4.756 0 0 1 4.743-4.743h3.951a4.756 4.756 0 0 1 4.743 4.743 4.756 4.756 0 0 1-4.743 4.742" fill="#FFF"></path><path d="M174.823 30.03c0-16.281 13.198-29.48 29.48-29.48 16.28 0 29.48 13.199 29.48 29.48 0 16.28-13.2 29.48-29.48 29.48-16.282 0-29.48-13.2-29.48-29.48" fill="#1890FF"></path><path d="M205.952 38.387c.5.5.785 1.142.785 1.928s-.286 1.465-.785 1.964c-.572.5-1.214.75-2 .75-.785 0-1.429-.285-1.929-.785-.572-.5-.82-1.143-.82-1.929s.248-1.428.82-1.928c.5-.5 1.144-.75 1.93-.75.785 0 1.462.25 1.999.75m4.285-19.463c1.428 1.249 2.143 2.963 2.143 5.142 0 1.712-.427 3.13-1.219 4.25-.067.096-.137.18-.218.265-.416.429-1.41 1.346-2.956 2.699a5.07 5.07 0 0 0-1.428 1.75 5.207 5.207 0 0 0-.536 2.357v.5h-4.107v-.5c0-1.357.215-2.536.714-3.5.464-.964 1.857-2.464 4.178-4.536l.43-.5c.643-.785.964-1.643.964-2.535 0-1.18-.358-2.108-1-2.785-.678-.68-1.643-1.001-2.858-1.001-1.536 0-2.642.464-3.357 1.43-.37.5-.621 1.135-.76 1.904a1.999 1.999 0 0 1-1.971 1.63h-.004c-1.277 0-2.257-1.183-1.98-2.43.337-1.518 1.02-2.78 2.073-3.784 1.536-1.5 3.607-2.25 6.25-2.25 2.32 0 4.214.607 5.642 1.894" fill="#FFF"></path><path d="M52.04 76.131s21.81 5.36 27.307 15.945c5.575 10.74-6.352 9.26-15.73 4.935-10.86-5.008-24.7-11.822-11.577-20.88" fill="#FFB594"></path><path d="M90.483 67.504l-.449 2.893c-.753.49-4.748-2.663-4.748-2.663l-1.645.748-1.346-5.684s6.815-4.589 8.917-5.018c2.452-.501 9.884.94 10.7 2.278 0 0 1.32.486-2.227.69-3.548.203-5.043.447-6.79 3.132-1.747 2.686-2.412 3.624-2.412 3.624" fill="#FFC6A0"></path><path d="M128.055 111.367c-2.627-7.724-6.15-13.18-8.917-15.478-3.5-2.906-9.34-2.225-11.366-4.187-1.27-1.231-3.215-1.197-3.215-1.197s-14.98-3.158-16.828-3.479c-2.37-.41-2.124-.714-6.054-1.405-1.57-1.907-2.917-1.122-2.917-1.122l-7.11-1.383c-.853-1.472-2.423-1.023-2.423-1.023l-2.468-.897c-1.645 9.976-7.74 13.796-7.74 13.796 1.795 1.122 15.703 8.3 15.703 8.3l5.107 37.11s-3.321 5.694 1.346 9.109c0 0 19.883-3.743 34.921-.329 0 0 3.047-2.546.972-8.806.523-3.01 1.394-8.263 1.736-11.622.385.772 2.019 1.918 3.14 3.477 0 0 9.407-7.365 11.052-14.012-.832-.723-1.598-1.585-2.267-2.453-.567-.736-.358-2.056-.765-2.717-.669-1.084-1.804-1.378-1.907-1.682" fill="#FFF"></path><path d="M101.09 289.998s4.295 2.041 7.354 1.021c2.821-.94 4.53.668 7.08 1.178 2.55.51 6.874 1.1 11.686-1.26-.103-5.51-6.889-3.98-11.96-6.713-2.563-1.38-3.784-4.722-3.598-8.799h-9.402s-1.392 10.52-1.16 14.573" fill="#CBD1D1"></path><path d="M101.067 289.826s2.428 1.271 6.759.653c3.058-.437 3.712.481 7.423 1.031 3.712.55 10.724-.069 11.823-.894.413 1.1-.343 2.063-.343 2.063s-1.512.603-4.812.824c-2.03.136-5.8.291-7.607-.503-1.787-1.375-5.247-1.903-5.728-.241-3.918.95-7.355-.286-7.355-.286l-.16-2.647z" fill="#2B0849"></path><path d="M108.341 276.044h3.094s-.103 6.702 4.536 8.558c-4.64.618-8.558-2.303-7.63-8.558" fill="#A4AABA"></path><path d="M57.542 272.401s-2.107 7.416-4.485 12.306c-1.798 3.695-4.225 7.492 5.465 7.492 6.648 0 8.953-.48 7.423-6.599-1.53-6.12.266-13.199.266-13.199h-8.669z" fill="#CBD1D1"></path><path d="M51.476 289.793s2.097 1.169 6.633 1.169c6.083 0 8.249-1.65 8.249-1.65s.602 1.114-.619 2.165c-.993.855-3.597 1.591-7.39 1.546-4.145-.048-5.832-.566-6.736-1.168-.825-.55-.687-1.58-.137-2.062" fill="#2B0849"></path><path d="M58.419 274.304s.033 1.519-.314 2.93c-.349 1.42-1.078 3.104-1.13 4.139-.058 1.151 4.537 1.58 5.155.034.62-1.547 1.294-6.427 1.913-7.252.619-.825-4.903-2.119-5.624.15" fill="#A4AABA"></path><path d="M99.66 278.514l13.378.092s1.298-54.52 1.853-64.403c.554-9.882 3.776-43.364 1.002-63.128l-12.547-.644-22.849.78s-.434 3.966-1.195 9.976c-.063.496-.682.843-.749 1.365-.075.585.423 1.354.32 1.966-2.364 14.08-6.377 33.104-8.744 46.677-.116.666-1.234 1.009-1.458 2.691-.04.302.211 1.525.112 1.795-6.873 18.744-10.949 47.842-14.277 61.885l14.607-.014s2.197-8.57 4.03-16.97c2.811-12.886 23.111-85.01 23.111-85.01l3.016-.521 1.043 46.35s-.224 1.234.337 2.02c.56.785-.56 1.123-.392 2.244l.392 1.794s-.449 7.178-.898 11.89c-.448 4.71-.092 39.165-.092 39.165" fill="#7BB2F9"></path><path d="M76.085 221.626c1.153.094 4.038-2.019 6.955-4.935M106.36 225.142s2.774-1.11 6.103-3.883" stroke="#648BD8" stroke-width="1.051" stroke-linecap="round" stroke-linejoin="round"></path><path d="M107.275 222.1s2.773-1.11 6.102-3.884" stroke="#648BD8" stroke-linecap="round" stroke-linejoin="round"></path><path d="M74.74 224.767s2.622-.591 6.505-3.365M86.03 151.634c-.27 3.106.3 8.525-4.336 9.123M103.625 149.88s.11 14.012-1.293 15.065c-2.219 1.664-2.99 1.944-2.99 1.944M99.79 150.438s.035 12.88-1.196 24.377M93.673 175.911s7.212-1.664 9.431-1.664M74.31 205.861a212.013 212.013 0 0 1-.979 4.56s-1.458 1.832-1.009 3.776c.449 1.944-.947 2.045-4.985 15.355-1.696 5.59-4.49 18.591-6.348 27.597l-.231 1.12M75.689 197.807a320.934 320.934 0 0 1-.882 4.754M82.591 152.233L81.395 162.7s-1.097.15-.5 2.244c.113 1.346-2.674 15.775-5.18 30.43M56.12 274.418h13.31" stroke="#648BD8" stroke-width="1.051" stroke-linecap="round" stroke-linejoin="round"></path><path d="M116.241 148.22s-17.047-3.104-35.893.2c.158 2.514-.003 4.15-.003 4.15s14.687-2.818 35.67-.312c.252-2.355.226-4.038.226-4.038" fill="#192064"></path><path d="M106.322 151.165l.003-4.911a.81.81 0 0 0-.778-.815c-2.44-.091-5.066-.108-7.836-.014a.818.818 0 0 0-.789.815l-.003 4.906a.81.81 0 0 0 .831.813c2.385-.06 4.973-.064 7.73.017a.815.815 0 0 0 .842-.81" fill="#FFF"></path><path d="M105.207 150.233l.002-3.076a.642.642 0 0 0-.619-.646 94.321 94.321 0 0 0-5.866-.01.65.65 0 0 0-.63.647v3.072a.64.64 0 0 0 .654.644 121.12 121.12 0 0 1 5.794.011c.362.01.665-.28.665-.642" fill="#192064"></path><path d="M100.263 275.415h12.338M101.436 270.53c.006 3.387.042 5.79.111 6.506M101.451 264.548a915.75 915.75 0 0 0-.015 4.337M100.986 174.965l.898 44.642s.673 1.57-.225 2.692c-.897 1.122 2.468.673.898 2.243-1.57 1.57.897 1.122 0 3.365-.596 1.489-.994 21.1-1.096 35.146" stroke="#648BD8" stroke-width="1.051" stroke-linecap="round" stroke-linejoin="round"></path><path d="M46.876 83.427s-.516 6.045 7.223 5.552c11.2-.712 9.218-9.345 31.54-21.655-.786-2.708-2.447-4.744-2.447-4.744s-11.068 3.11-22.584 8.046c-6.766 2.9-13.395 6.352-13.732 12.801M104.46 91.057l.941-5.372-8.884-11.43-5.037 5.372-1.74 7.834a.321.321 0 0 0 .108.32c.965.8 6.5 5.013 14.347 3.544a.332.332 0 0 0 .264-.268" fill="#FFC6A0"></path><path d="M93.942 79.387s-4.533-2.853-2.432-6.855c1.623-3.09 4.513 1.133 4.513 1.133s.52-3.642 3.121-3.642c.52-1.04 1.561-4.162 1.561-4.162s11.445 2.601 13.526 3.121c0 5.203-2.304 19.424-7.84 19.861-8.892.703-12.449-9.456-12.449-9.456" fill="#FFC6A0"></path><path d="M113.874 73.446c2.601-2.081 3.47-9.722 3.47-9.722s-2.479-.49-6.64-2.05c-4.683-2.081-12.798-4.747-17.48.976-9.668 3.223-2.05 19.823-2.05 19.823l2.713-3.021s-3.935-3.287-2.08-6.243c2.17-3.462 3.92 1.073 3.92 1.073s.637-2.387 3.581-3.342c.355-.71 1.036-2.674 1.432-3.85a1.073 1.073 0 0 1 1.263-.704c2.4.558 8.677 2.019 11.356 2.662.522.125.871.615.82 1.15l-.305 3.248z" fill="#520038"></path><path d="M104.977 76.064c-.103.61-.582 1.038-1.07.956-.489-.083-.801-.644-.698-1.254.103-.61.582-1.038 1.07-.956.488.082.8.644.698 1.254M112.132 77.694c-.103.61-.582 1.038-1.07.956-.488-.083-.8-.644-.698-1.254.103-.61.582-1.038 1.07-.956.488.082.8.643.698 1.254" fill="#552950"></path><path stroke="#DB836E" stroke-width="1.118" stroke-linecap="round" stroke-linejoin="round" d="M110.13 74.84l-.896 1.61-.298 4.357h-2.228"></path><path d="M110.846 74.481s1.79-.716 2.506.537" stroke="#5C2552" stroke-width="1.118" stroke-linecap="round" stroke-linejoin="round"></path><path d="M92.386 74.282s.477-1.114 1.113-.716c.637.398 1.274 1.433.558 1.99-.717.556.159 1.67.159 1.67" stroke="#DB836E" stroke-width="1.118" stroke-linecap="round" stroke-linejoin="round"></path><path d="M103.287 72.93s1.83 1.113 4.137.954" stroke="#5C2552" stroke-width="1.118" stroke-linecap="round" stroke-linejoin="round"></path><path d="M103.685 81.762s2.227 1.193 4.376 1.193M104.64 84.308s.954.398 1.511.318M94.693 81.205s2.308 7.4 10.424 7.639" stroke="#DB836E" stroke-width="1.118" stroke-linecap="round" stroke-linejoin="round"></path><path d="M81.45 89.384s.45 5.647-4.935 12.787M69 82.654s-.726 9.282-8.204 14.206" stroke="#E4EBF7" stroke-width="1.101" stroke-linecap="round" stroke-linejoin="round"></path><path d="M129.405 122.865s-5.272 7.403-9.422 10.768" stroke="#E4EBF7" stroke-width="1.051" stroke-linecap="round" stroke-linejoin="round"></path><path d="M119.306 107.329s.452 4.366-2.127 32.062" stroke="#E4EBF7" stroke-width="1.101" stroke-linecap="round" stroke-linejoin="round"></path><path d="M150.028 151.232h-49.837a1.01 1.01 0 0 1-1.01-1.01v-31.688c0-.557.452-1.01 1.01-1.01h49.837c.558 0 1.01.453 1.01 1.01v31.688a1.01 1.01 0 0 1-1.01 1.01" fill="#F2D7AD"></path><path d="M150.29 151.232h-19.863v-33.707h20.784v32.786a.92.92 0 0 1-.92.92" fill="#F4D19D"></path><path d="M123.554 127.896H92.917a.518.518 0 0 1-.425-.816l6.38-9.113c.193-.277.51-.442.85-.442h31.092l-7.26 10.371z" fill="#F2D7AD"></path><path fill="#CC9B6E" d="M123.689 128.447H99.25v-.519h24.169l7.183-10.26.424.298z"></path><path d="M158.298 127.896h-18.669a2.073 2.073 0 0 1-1.659-.83l-7.156-9.541h19.965c.49 0 .95.23 1.244.622l6.69 8.92a.519.519 0 0 1-.415.83" fill="#F4D19D"></path><path fill="#CC9B6E" d="M157.847 128.479h-19.384l-7.857-10.475.415-.31 7.7 10.266h19.126zM130.554 150.685l-.032-8.177.519-.002.032 8.177z"></path><path fill="#CC9B6E" d="M130.511 139.783l-.08-21.414.519-.002.08 21.414zM111.876 140.932l-.498-.143 1.479-5.167.498.143zM108.437 141.06l-2.679-2.935 2.665-3.434.41.318-2.397 3.089 2.384 2.612zM116.607 141.06l-.383-.35 2.383-2.612-2.397-3.089.41-.318 2.665 3.434z"></path><path d="M154.316 131.892l-3.114-1.96.038 3.514-1.043.092c-1.682.115-3.634.23-4.789.23-1.902 0-2.693 2.258 2.23 2.648l-2.645-.596s-2.168 1.317.504 2.3c0 0-1.58 1.217.561 2.58-.584 3.504 5.247 4.058 7.122 3.59 1.876-.47 4.233-2.359 4.487-5.16.28-3.085-.89-5.432-3.35-7.238" fill="#FFC6A0"></path><path d="M153.686 133.577s-6.522.47-8.36.372c-1.836-.098-1.904 2.19 2.359 2.264 3.739.15 5.451-.044 5.451-.044" stroke="#DB836E" stroke-width="1.051" stroke-linecap="round" stroke-linejoin="round"></path><path d="M145.16 135.877c-1.85 1.346.561 2.355.561 2.355s3.478.898 6.73.617" stroke="#DB836E" stroke-width="1.051" stroke-linecap="round" stroke-linejoin="round"></path><path d="M151.89 141.71s-6.28.111-6.73-2.132c-.223-1.346.45-1.402.45-1.402M146.114 140.868s-1.103 3.16 5.44 3.533M151.202 129.932v3.477M52.838 89.286c3.533-.337 8.423-1.248 13.582-7.754" stroke="#DB836E" stroke-width="1.051" stroke-linecap="round" stroke-linejoin="round"></path><path d="M168.567 248.318a6.647 6.647 0 0 1-6.647-6.647v-66.466a6.647 6.647 0 1 1 13.294 0v66.466a6.647 6.647 0 0 1-6.647 6.647" fill="#5BA02E"></path><path d="M176.543 247.653a6.647 6.647 0 0 1-6.646-6.647v-33.232a6.647 6.647 0 1 1 13.293 0v33.232a6.647 6.647 0 0 1-6.647 6.647" fill="#92C110"></path><path d="M186.443 293.613H158.92a3.187 3.187 0 0 1-3.187-3.187v-46.134a3.187 3.187 0 0 1 3.187-3.187h27.524a3.187 3.187 0 0 1 3.187 3.187v46.134a3.187 3.187 0 0 1-3.187 3.187" fill="#F2D7AD"></path><path d="M88.979 89.48s7.776 5.384 16.6 2.842" stroke="#E4EBF7" stroke-width="1.101" stroke-linecap="round" stroke-linejoin="round"></path></g></svg></div><div class="ant-result-title"></div></div><h2 class="ant-typography">Documentation</h2><a target="_blank" rel="noopener noreferrer" href="https://owncast.online/docs?source=admin" class="ant-btn ant-btn-primary"><span role="img" aria-label="link" class="anticon anticon-link"><svg viewBox="64 64 896 896" focusable="false" data-icon="link" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z"></path></svg></span><span>Read the Docs</span></a></div></div><div class="ant-divider ant-divider-horizontal" role="separator"></div><h2 class="ant-typography">Common tasks</h2><div class="ant-row" style="margin-left:-8px;margin-right:-8px;margin-top:-8px;margin-bottom:-8px"><div style="padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px" class="ant-col ant-col-xs-24 ant-col-lg-12"><div class="ant-card ant-card-bordered"><div class="ant-card-body"><div class="ant-card-meta"><div class="ant-card-meta-avatar"><span role="img" aria-label="setting" style="font-size:24px" class="anticon anticon-setting"><svg viewBox="64 64 896 896" focusable="false" data-icon="setting" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M859.3 569.7l.2.1c3.1-18.9 4.6-38.2 4.6-57.3 0-17.1-1.3-34.3-3.7-51.1 2.4 16.7 3.6 33.6 3.6 50.5 0 19.4-1.6 38.8-4.7 57.8zM99 398.1c-.5-.4-.9-.8-1.4-1.3.7.7 1.4 1.4 2.2 2.1l65.5 55.9v-.1L99 398.1zm536.6-216h.1l-15.5-83.8c-.2-1-.4-1.9-.7-2.8.1.5.3 1.1.4 1.6l15.7 85zm54 546.5l31.4-25.8 92.8 32.9c17-22.9 31.3-47.5 42.6-73.6l-74.7-63.9 6.6-40.1c2.5-15.1 3.8-30.6 3.8-46.1s-1.3-31-3.8-46.1l-6.5-39.9 74.7-63.9c-11.4-26-25.6-50.7-42.6-73.6l-92.8 32.9-31.4-25.8c-23.9-19.6-50.6-35-79.3-45.8l-38.1-14.3-17.9-97a377.5 377.5 0 00-85 0l-17.9 97.2-37.9 14.3c-28.5 10.8-55 26.2-78.7 45.7l-31.4 25.9-93.4-33.2c-17 22.9-31.3 47.5-42.6 73.6l75.5 64.5-6.5 40c-2.5 14.9-3.7 30.2-3.7 45.5 0 15.2 1.3 30.6 3.7 45.5l6.5 40-75.5 64.5c11.4 26 25.6 50.7 42.6 73.6l93.4-33.2 31.4 25.9c23.7 19.5 50.2 34.9 78.7 45.7l37.8 14.5 17.9 97.2c28.2 3.2 56.9 3.2 85 0l17.9-97 38.1-14.3c28.8-10.8 55.4-26.2 79.3-45.8zm-177.1-50.3c-30.5 0-59.2-7.8-84.3-21.5C373.3 627 336 568.9 336 502c0-97.2 78.8-176 176-176 66.9 0 125 37.3 154.8 92.2 13.7 25 21.5 53.7 21.5 84.3 0 97.1-78.7 175.8-175.8 175.8zM207.2 812.8c-5.5 1.9-11.2 2.3-16.6 1.2 5.7 1.2 11.7 1 17.5-1l81.4-29c-.1-.1-.3-.2-.4-.3l-81.9 29.1zm717.6-414.7l-65.5 56c0 .2.1.5.1.7l65.4-55.9c7.1-6.1 11.1-14.9 11.2-24-.3 8.8-4.3 17.3-11.2 23.2z" fill="#e6f7ff"></path><path d="M935.8 646.6c.5 4.7 0 9.5-1.7 14.1l-.9 2.6a446.02 446.02 0 01-79.7 137.9l-1.8 2.1a32 32 0 01-35.1 9.5l-81.3-28.9a350 350 0 01-99.7 57.6l-15.7 85a32.05 32.05 0 01-25.8 25.7l-2.7.5a445.2 445.2 0 01-79.2 7.1h.3c26.7 0 53.4-2.4 79.4-7.1l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-84.9c36.2-13.6 69.6-32.9 99.6-57.5l81.2 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.5-87.4 79.6-137.7l.9-2.6c1.6-4.7 2.1-9.7 1.5-14.5z" fill="#e6f7ff"></path><path d="M688 502c0-30.3-7.7-58.9-21.2-83.8C637 363.3 578.9 326 512 326c-97.2 0-176 78.8-176 176 0 66.9 37.3 125 92.2 154.8 24.9 13.5 53.4 21.2 83.8 21.2 97.2 0 176-78.8 176-176zm-288 0c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502z" fill="#1890ff"></path><path d="M594.1 952.2a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c1.7-4.6 2.2-9.4 1.7-14.1-.9-7.9-4.7-15.4-11-20.9l-65.3-55.9-.2-.1c3.1-19 4.7-38.4 4.7-57.8 0-16.9-1.2-33.9-3.6-50.5-.3-2.2-.7-4.4-1-6.6 0-.2-.1-.5-.1-.7l65.5-56c6.9-5.9 10.9-14.4 11.2-23.2.1-4-.5-8.1-1.9-12l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.4-44-99.6-57.6h-.1l-15.7-85c-.1-.5-.2-1.1-.4-1.6a32.08 32.08 0 00-25.4-24.1l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6a32.09 32.09 0 007.9 33.9c.5.4.9.9 1.4 1.3l66.3 56.6v.1c-3.1 18.8-4.6 37.9-4.6 57 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1c4.9 5.7 11.4 9.4 18.5 10.7 5.4 1 11.1.7 16.6-1.2l81.9-29.1c.1.1.3.2.4.3 29.7 24.3 62.8 43.6 98.6 57.1l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5c26.1 4.7 52.8 7.1 79.5 7.1h.3c26.6 0 53.3-2.4 79.2-7.1l2.7-.5zm-39.8-66.5a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97z" fill="#1890ff"></path></svg></span></div><div class="ant-card-meta-detail"><div class="ant-card-meta-title">I want to configure my owncast instance</div><div class="ant-card-meta-description"><div><a href="https://owncast.online/docs/configuration/?source=admin" target="_blank" rel="noopener noreferrer"><span role="img" aria-label="link" class="anticon anticon-link"><svg viewBox="64 64 896 896" focusable="false" data-icon="link" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z"></path></svg></span> Learn more</a></div></div></div></div></div></div></div><div style="padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px" class="ant-col ant-col-xs-24 ant-col-lg-12"><div class="ant-card ant-card-bordered"><div class="ant-card-body"><div class="ant-card-meta"><div class="ant-card-meta-avatar"><span role="img" aria-label="camera" style="font-size:24px" class="anticon anticon-camera"><svg viewBox="64 64 896 896" focusable="false" data-icon="camera" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M864 320H677.2l-17.1-47.8-22.9-64.2H386.7l-22.9 64.2-17.1 47.8H160c-4.4 0-8 3.6-8 8v456c0 4.4 3.6 8 8 8h704c4.4 0 8-3.6 8-8V328c0-4.4-3.6-8-8-8zM512 704c-88.4 0-160-71.6-160-160s71.6-160 160-160 160 71.6 160 160-71.6 160-160 160z" fill="#e6f7ff"></path><path d="M512 384c-88.4 0-160 71.6-160 160s71.6 160 160 160 160-71.6 160-160-71.6-160-160-160zm0 256c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z" fill="#1890ff"></path><path d="M864 248H728l-32.4-90.8a32.07 32.07 0 00-30.2-21.2H358.6c-13.5 0-25.6 8.5-30.1 21.2L296 248H160c-44.2 0-80 35.8-80 80v456c0 44.2 35.8 80 80 80h704c44.2 0 80-35.8 80-80V328c0-44.2-35.8-80-80-80zm8 536c0 4.4-3.6 8-8 8H160c-4.4 0-8-3.6-8-8V328c0-4.4 3.6-8 8-8h186.7l17.1-47.8 22.9-64.2h250.5l22.9 64.2 17.1 47.8H864c4.4 0 8 3.6 8 8v456z" fill="#1890ff"></path></svg></span></div><div class="ant-card-meta-detail"><div class="ant-card-meta-title">Help configuring my broadcasting software</div><div class="ant-card-meta-description"><div><a href="https://owncast.online/docs/broadcasting/?source=admin" target="_blank" rel="noopener noreferrer"><span role="img" aria-label="link" class="anticon anticon-link"><svg viewBox="64 64 896 896" focusable="false" data-icon="link" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z"></path></svg></span> Learn more</a></div></div></div></div></div></div></div><div style="padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px" class="ant-col ant-col-xs-24 ant-col-lg-12"><div class="ant-card ant-card-bordered"><div class="ant-card-body"><div class="ant-card-meta"><div class="ant-card-meta-avatar"><span role="img" aria-label="html5" style="font-size:24px" class="anticon anticon-html5"><svg viewBox="64 64 896 896" focusable="false" data-icon="html5" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M145 96l66 746.6L511.8 928l299.6-85.4L878.7 96H145zm610.9 700.6l-244.1 69.6-245.2-69.6-56.7-641.2h603.8l-57.8 641.2z" fill="#1890ff"></path><path d="M209.9 155.4l56.7 641.2 245.2 69.6 244.1-69.6 57.8-641.2H209.9zm530.4 117.9l-4.8 47.2-1.7 19.5H381.7l8.2 94.2H511v-.2h214.7l-3.2 24.3-21.2 242.2-1.7 16.3-187.7 51.7v.4h-1.7l-188.6-52-11.3-144.7h91l6.5 73.2 102.4 27.7h.8v-.2l102.4-27.7 11.4-118.5H511.9v.1H305.4l-22.7-253.5L281 249h461l-1.7 24.3z" fill="#e6f7ff"></path><path d="M281 249l1.7 24.3 22.7 253.5h206.5v-.1h112.9l-11.4 118.5L511 672.9v.2h-.8l-102.4-27.7-6.5-73.2h-91l11.3 144.7 188.6 52h1.7v-.4l187.7-51.7 1.7-16.3 21.2-242.2 3.2-24.3H511v.2H389.9l-8.2-94.2h352.1l1.7-19.5 4.8-47.2L742 249H511z" fill="#1890ff"></path></svg></span></div><div class="ant-card-meta-detail"><div class="ant-card-meta-title">I want to embed my stream into another site</div><div class="ant-card-meta-description"><div><a href="https://owncast.online/docs/embed/?source=admin" target="_blank" rel="noopener noreferrer"><span role="img" aria-label="link" class="anticon anticon-link"><svg viewBox="64 64 896 896" focusable="false" data-icon="link" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z"></path></svg></span> Learn more</a></div></div></div></div></div></div></div><div style="padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px" class="ant-col ant-col-xs-24 ant-col-lg-12"><div class="ant-card ant-card-bordered"><div class="ant-card-body"><div class="ant-card-meta"><div class="ant-card-meta-avatar"><span role="img" aria-label="edit" style="font-size:24px" class="anticon anticon-edit"><svg viewBox="64 64 896 896" focusable="false" data-icon="edit" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M761.1 288.3L687.8 215 325.1 577.6l-15.6 89 88.9-15.7z" fill="#e6f7ff"></path><path d="M880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32zm-622.3-84c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89z" fill="#1890ff"></path></svg></span></div><div class="ant-card-meta-detail"><div class="ant-card-meta-title">I want to customize my website</div><div class="ant-card-meta-description"><div><a href="https://owncast.online/docs/website/?source=admin" target="_blank" rel="noopener noreferrer"><span role="img" aria-label="link" class="anticon anticon-link"><svg viewBox="64 64 896 896" focusable="false" data-icon="link" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z"></path></svg></span> Learn more</a></div></div></div></div></div></div></div><div style="padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px" class="ant-col ant-col-xs-24 ant-col-lg-12"><div class="ant-card ant-card-bordered"><div class="ant-card-body"><div class="ant-card-meta"><div class="ant-card-meta-avatar"><span role="img" aria-label="sliders" style="font-size:24px" class="anticon anticon-sliders"><svg viewBox="64 64 896 896" focusable="false" data-icon="sliders" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M180 292h80v440h-80zm369 180h-74a3 3 0 00-3 3v74a3 3 0 003 3h74a3 3 0 003-3v-74a3 3 0 00-3-3zm215-108h80v296h-80z" fill="#e6f7ff"></path><path d="M904 296h-66v-96c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v96h-66c-4.4 0-8 3.6-8 8v416c0 4.4 3.6 8 8 8h66v96c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-96h66c4.4 0 8-3.6 8-8V304c0-4.4-3.6-8-8-8zm-60 364h-80V364h80v296zM612 404h-66V232c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v172h-66c-4.4 0-8 3.6-8 8v200c0 4.4 3.6 8 8 8h66v172c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V620h66c4.4 0 8-3.6 8-8V412c0-4.4-3.6-8-8-8zm-60 145a3 3 0 01-3 3h-74a3 3 0 01-3-3v-74a3 3 0 013-3h74a3 3 0 013 3v74zM320 224h-66v-56c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v56h-66c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h66v56c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-56h66c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zm-60 508h-80V292h80v440z" fill="#1890ff"></path></svg></span></div><div class="ant-card-meta-detail"><div class="ant-card-meta-title">I want to tweak my video output</div><div class="ant-card-meta-description"><div><a href="https://owncast.online/docs/encoding/?source=admin" target="_blank" rel="noopener noreferrer"><span role="img" aria-label="link" class="anticon anticon-link"><svg viewBox="64 64 896 896" focusable="false" data-icon="link" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z"></path></svg></span> Learn more</a></div></div></div></div></div></div></div><div style="padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px" class="ant-col ant-col-xs-24 ant-col-lg-12"><div class="ant-card ant-card-bordered"><div class="ant-card-body"><div class="ant-card-meta"><div class="ant-card-meta-avatar"><span role="img" aria-label="database" style="font-size:24px" class="anticon anticon-database"><svg viewBox="64 64 896 896" focusable="false" data-icon="database" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M232 616h560V408H232v208zm112-144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zM232 888h560V680H232v208zm112-144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zM232 344h560V136H232v208zm112-144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z" fill="#e6f7ff"></path><path d="M304 512a40 40 0 1080 0 40 40 0 10-80 0zm0 272a40 40 0 1080 0 40 40 0 10-80 0zm0-544a40 40 0 1080 0 40 40 0 10-80 0z" fill="#1890ff"></path><path d="M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-40 824H232V680h560v208zm0-272H232V408h560v208zm0-272H232V136h560v208z" fill="#1890ff"></path></svg></span></div><div class="ant-card-meta-detail"><div class="ant-card-meta-title">I want to use an external storage provider</div><div class="ant-card-meta-description"><div><a href="https://owncast.online/docs/storage/?source=admin" target="_blank" rel="noopener noreferrer"><span role="img" aria-label="link" class="anticon anticon-link"><svg viewBox="64 64 896 896" focusable="false" data-icon="link" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z"></path></svg></span> Learn more</a></div></div></div></div></div></div></div></div><div class="ant-divider ant-divider-horizontal" role="separator"></div><h2 class="ant-typography">Other</h2><div class="ant-row" style="margin-left:-8px;margin-right:-8px;margin-top:-8px;margin-bottom:-8px"><div style="padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px" class="ant-col ant-col-xs-24 ant-col-lg-12"><div class="ant-card ant-card-bordered"><div class="ant-card-body"><div class="ant-card-meta"><div class="ant-card-meta-avatar"><span role="img" aria-label="bug" style="font-size:24px" class="anticon anticon-bug"><svg viewBox="64 64 896 896" focusable="false" data-icon="bug" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M308 412v268c0 36.78 9.68 71.96 27.8 102.9a205.39 205.39 0 0073.3 73.3A202.68 202.68 0 00512 884c36.78 0 71.96-9.68 102.9-27.8a205.39 205.39 0 0073.3-73.3A202.68 202.68 0 00716 680V412H308zm484 172v96c0 6.5-.22 12.95-.66 19.35C859.94 728.64 908 796.7 908 876a8 8 0 01-8 8h-56a8 8 0 01-8-8c0-44.24-23.94-82.89-59.57-103.7a278.63 278.63 0 01-22.66 49.02 281.39 281.39 0 01-100.45 100.45C611.84 946.07 563.55 960 512 960s-99.84-13.93-141.32-38.23a281.39 281.39 0 01-100.45-100.45 278.63 278.63 0 01-22.66-49.02A119.95 119.95 0 00188 876a8 8 0 01-8 8h-56a8 8 0 01-8-8c0-79.3 48.07-147.36 116.66-176.65A284.12 284.12 0 01232 680v-96H84a8 8 0 01-8-8v-56a8 8 0 018-8h148V412c-76.77 0-139-62.23-139-139a8 8 0 018-8h60a8 8 0 018 8 63 63 0 0063 63h560a63 63 0 0063-63 8 8 0 018-8h60a8 8 0 018 8c0 76.77-62.23 139-139 139v100h148a8 8 0 018 8v56a8 8 0 01-8 8H792zM368 272a8 8 0 01-8 8h-56a8 8 0 01-8-8c0-40.04 8.78-76.75 25.9-108.07a184.57 184.57 0 0174.03-74.03C427.25 72.78 463.96 64 504 64h16c40.04 0 76.75 8.78 108.07 25.9a184.57 184.57 0 0174.03 74.03C719.22 195.25 728 231.96 728 272a8 8 0 01-8 8h-56a8 8 0 01-8-8c0-28.33-5.94-53.15-17.08-73.53a112.56 112.56 0 00-45.39-45.4C573.15 141.95 548.33 136 520 136h-16c-28.33 0-53.15 5.94-73.53 17.08a112.56 112.56 0 00-45.4 45.39C373.95 218.85 368 243.67 368 272z" fill="#1890ff"></path><path d="M308 412v268c0 36.78 9.68 71.96 27.8 102.9a205.39 205.39 0 0073.3 73.3A202.68 202.68 0 00512 884c36.78 0 71.96-9.68 102.9-27.8a205.39 205.39 0 0073.3-73.3A202.68 202.68 0 00716 680V412H308z" fill="#e6f7ff"></path></svg></span></div><div class="ant-card-meta-detail"><div class="ant-card-meta-title">I found a bug</div><div class="ant-card-meta-description"><div>If you found a bug, then please<a href="https://github.com/owncast/owncast/issues/new/choose" target="_blank" rel="noopener noreferrer"> <!-- -->let us know</a></div></div></div></div></div></div></div><div style="padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px" class="ant-col ant-col-xs-24 ant-col-lg-12"><div class="ant-card ant-card-bordered"><div class="ant-card-body"><div class="ant-card-meta"><div class="ant-card-meta-avatar"><span role="img" aria-label="question-circle" style="font-size:24px" class="anticon anticon-question-circle"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#1890ff"></path><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm0 632c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm62.9-219.5a48.3 48.3 0 00-30.9 44.8V620c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-21.5c0-23.1 6.7-45.9 19.9-64.9 12.9-18.6 30.9-32.8 52.1-40.9 34-13.1 56-41.6 56-72.7 0-44.1-43.1-80-96-80s-96 35.9-96 80v7.6c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V420c0-39.3 17.2-76 48.4-103.3C430.4 290.4 470 276 512 276s81.6 14.5 111.6 40.7C654.8 344 672 380.7 672 420c0 57.8-38.1 109.8-97.1 132.5z" fill="#e6f7ff"></path><path d="M472 732a40 40 0 1080 0 40 40 0 10-80 0zm151.6-415.3C593.6 290.5 554 276 512 276s-81.6 14.4-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.2 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5 0-39.3-17.2-76-48.4-103.3z" fill="#1890ff"></path></svg></span></div><div class="ant-card-meta-detail"><div class="ant-card-meta-title">I have a general question</div><div class="ant-card-meta-description"><div>Most general questions are answered in our<a href="https://owncast.online/docs/faq/?source=admin" target="_blank" rel="noopener noreferrer"> <!-- -->FAQ</a> <!-- -->or exist in our<!-- --> <a href="https://github.com/owncast/owncast/discussions" target="_blank" rel="noopener noreferrer">discussions</a></div></div></div></div></div></div></div><div style="padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px" class="ant-col ant-col-xs-24 ant-col-lg-12"><div class="ant-card ant-card-bordered"><div class="ant-card-body"><div class="ant-card-meta"><div class="ant-card-meta-avatar"><span role="img" aria-label="api" style="font-size:24px" class="anticon anticon-api"><svg viewBox="64 64 896 896" focusable="false" data-icon="api" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M148.2 674.6zm106.7-92.3c-25 25-38.7 58.1-38.7 93.4s13.8 68.5 38.7 93.4c25 25 58.1 38.7 93.4 38.7 35.3 0 68.5-13.8 93.4-38.7l59.4-59.4-186.8-186.8-59.4 59.4zm420.8-366.1c-35.3 0-68.5 13.8-93.4 38.7l-59.4 59.4 186.8 186.8 59.4-59.4c24.9-25 38.7-58.1 38.7-93.4s-13.8-68.5-38.7-93.4c-25-25-58.1-38.7-93.4-38.7z" fill="#e6f7ff"></path><path d="M578.9 546.7a8.03 8.03 0 00-11.3 0L501 613.3 410.7 523l66.7-66.7c3.1-3.1 3.1-8.2 0-11.3L441 408.6a8.03 8.03 0 00-11.3 0L363 475.3l-43-43a7.85 7.85 0 00-5.7-2.3c-2 0-4.1.8-5.7 2.3L206.8 534.2a199.45 199.45 0 00-58.6 140.4c-.2 39.5 11.2 79.1 34.3 113.1l-76.1 76.1a8.03 8.03 0 000 11.3l42.4 42.4c1.6 1.6 3.6 2.3 5.7 2.3s4.1-.8 5.7-2.3l76.1-76.1c33.7 22.9 72.9 34.3 112.1 34.3 51.2 0 102.4-19.5 141.5-58.6l101.9-101.9c3.1-3.1 3.1-8.2 0-11.3l-43-43 66.7-66.7c3.1-3.1 3.1-8.2 0-11.3l-36.6-36.2zM441.7 769.1a131.32 131.32 0 01-93.4 38.7c-35.3 0-68.4-13.7-93.4-38.7-24.9-24.9-38.7-58.1-38.7-93.4s13.7-68.4 38.7-93.4l59.4-59.4 186.8 186.8-59.4 59.4zm476-620.3l-42.4-42.4c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-76.1 76.1a199.27 199.27 0 00-112.1-34.3c-51.2 0-102.4 19.5-141.5 58.6L432.3 308.7a8.03 8.03 0 000 11.3L704 591.7c1.6 1.6 3.6 2.3 5.7 2.3 2 0 4.1-.8 5.7-2.3l101.9-101.9c68.9-69 77-175.7 24.3-253.5l76.1-76.1c3.1-3.2 3.1-8.3 0-11.4zM769.1 441.7l-59.4 59.4-186.8-186.8 59.4-59.4c24.9-24.9 58.1-38.7 93.4-38.7s68.4 13.7 93.4 38.7c24.9 24.9 38.7 58.1 38.7 93.4s-13.8 68.4-38.7 93.4z" fill="#1890ff"></path></svg></span></div><div class="ant-card-meta-detail"><div class="ant-card-meta-title">I want to build add-ons for Owncast</div><div class="ant-card-meta-description"><div>You can build your own bots, overlays, tools and add-ons with our<a href="https://owncast.online/thirdparty?source=admin" target="_blank" rel="noopener noreferrer"> developer APIs. </a></div></div></div></div></div></div></div></div></div></main><footer class="ant-layout-footer footer-container"><a href="https://owncast.online/?source=admin" target="_blank" rel="noopener noreferrer">About Owncast v<!-- -->0.0.0</a></footer></section></section></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/help","query":{},"buildId":"S0l4GknIl5ifWnPqwFnrr","assetPrefix":"/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html> \ No newline at end of file
diff --git a/static/admin/index.html b/static/admin/index.html
index 6e59169d4..c481bea66 100644
--- a/static/admin/index.html
+++ b/static/admin/index.html
@@ -1 +1 @@
-<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width"/><meta charSet="utf-8"/><title>Owncast Admin</title><link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png"/><meta name="next-head-count" content="4"/><link rel="preload" href="/admin/_next/static/css/ba0ae6285080d7f0.css" as="style"/><link rel="stylesheet" href="/admin/_next/static/css/ba0ae6285080d7f0.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/admin/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/admin/_next/static/chunks/webpack-32f373d36961f088.js" defer=""></script><script src="/admin/_next/static/chunks/framework-4975f770e34de116.js" defer=""></script><script src="/admin/_next/static/chunks/main-6bdb99735697720d.js" defer=""></script><script src="/admin/_next/static/chunks/pages/_app-4f17b8df12d0e919.js" defer=""></script><script src="/admin/_next/static/chunks/919-5396b8f9fccff000.js" defer=""></script><script src="/admin/_next/static/chunks/91-5f5f536776e2d9c6.js" defer=""></script><script src="/admin/_next/static/chunks/903-27a123d85f49824b.js" defer=""></script><script src="/admin/_next/static/chunks/102-c27fe0fc093d5628.js" defer=""></script><script src="/admin/_next/static/chunks/533-2f63c37b8986cca1.js" defer=""></script><script src="/admin/_next/static/chunks/429-613793ce22468b22.js" defer=""></script><script src="/admin/_next/static/chunks/59-bb3486f7473684cf.js" defer=""></script><script src="/admin/_next/static/chunks/pages/index-ceca52ff7a46f409.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_buildManifest.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_ssgManifest.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_middlewareManifest.js" defer=""></script></head><body><div id="__next" data-reactroot=""><section class="ant-layout app-container"><aside class="ant-layout-sider ant-layout-sider-dark side-nav" style="flex:0 0 240px;max-width:240px;min-width:240px;width:240px"><div class="ant-layout-sider-children"><ul class="ant-menu ant-menu-root ant-menu-inline ant-menu-light menu-container" role="menu" tabindex="0" data-menu-list="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1><li class="ant-menu-item ant-menu-item-selected" style="padding-left:24px" role="menuitem" tabindex="-1"><span role="img" aria-label="home" class="anticon anticon-home ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="home" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/">Home</a></span></li><li class="ant-menu-item" style="padding-left:24px" title="Current stream" role="menuitem" tabindex="-1"><span role="img" aria-label="line-chart" class="anticon anticon-line-chart ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="line-chart" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/viewer-info/">Viewers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" style="display:block" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="message" class="anticon anticon-message ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="message" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"></path></svg></span><span class="ant-menu-title-content">Chat &amp; Users</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="setting" class="anticon anticon-setting ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="setting" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"></path></svg></span><span class="ant-menu-title-content">Configuration</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="tool" class="anticon anticon-tool ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="tool" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"></path></svg></span><span class="ant-menu-title-content">Utilities</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="experiment" class="anticon anticon-experiment ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="experiment" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z"></path></svg></span><span class="ant-menu-title-content">Integrations</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px" title="Help" role="menuitem" tabindex="-1"><span role="img" aria-label="question-circle" class="anticon anticon-question-circle ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/help/">Help</a></span></li></ul><div style="display:none" aria-hidden="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1></div></div></aside><section class="ant-layout layout-main"><header class="ant-layout-header layout-header"><div class="global-stream-title-container"><div class="textfield-with-submit-container"><div class="textfield-component"><div class="formfield-container textfield-container type-default"><div class="label-side"><label for="field-streamTitle" class="formfield-label">Stream Title</label></div><div class="input-side"><div class="input-group"><span class="ant-input-affix-wrapper field field-streamTitle"><input type="text" id="field-streamTitle" class="ant-input" placeholder="What are you streaming now" maxLength="100" value=""/><span class="ant-input-suffix"><span role="button" aria-label="close-circle" tabindex="-1" class="anticon anticon-close-circle ant-input-clear-icon-hidden ant-input-clear-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"></path></svg></span></span></span></div><span class="status-container empty"></span><p class="field-tip">What is your stream about today?</p></div></div></div><div class="formfield-container lower-container"><p class="label-spacer"></p><div class="lower-content"><div class="field-tip">What is your stream about today?</div><span class="status-container empty"></span><div class="update-button-container"><button disabled="" type="button" class="ant-btn ant-btn-primary ant-btn-sm submit-button"><span>Update</span></button></div></div></div></div></div><div class="online-status-indicator"><span class="status-label">Offline</span><span class="status-icon"><span role="img" aria-label="minus-square" class="anticon anticon-minus-square"><svg viewBox="64 64 896 896" focusable="false" data-icon="minus-square" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z"></path></svg></span></span></div></header><main class="ant-layout-content main-content-container"><div class="ant-row"><div class="ant-col ant-col-12 ant-col-offset-6"><div class="offline-intro"><span class="logo"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><div><h2 class="ant-typography">No stream is active</h2><p>You should start one.</p></div></div></div></div><div class="ant-row offline-content" style="margin-left:-8px;margin-right:-8px;margin-top:-8px;margin-bottom:-8px"><div style="padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px" class="ant-col ant-col-12 list-section ant-col-xs-24 ant-col-sm-24 ant-col-md-24 ant-col-lg-12"><div class="ant-card ant-card-small"><div class="ant-card-body"><div class="ant-card-meta"><div class="ant-card-meta-avatar"><span role="img" aria-label="book" class="anticon anticon-book"><svg viewBox="64 64 896 896" focusable="false" data-icon="book" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-260 72h96v209.9L621.5 312 572 347.4V136zM232 888V136h280v296.9c0 3.3 1 6.6 3 9.3a15.9 15.9 0 0022.3 3.7l83.8-59.9 81.4 59.4c2.7 2 6 3.1 9.4 3.1 8.8 0 16-7.2 16-16V136h64v752H232z" fill="#6f42c1"></path><path d="M668 345.9V136h-96v211.4l49.5-35.4z" fill="#f8f0ff"></path><path d="M727.9 136v296.5c0 8.8-7.2 16-16 16-3.4 0-6.7-1.1-9.4-3.1L621.1 386l-83.8 59.9a15.9 15.9 0 01-22.3-3.7c-2-2.7-3-6-3-9.3V136H232v752h559.9V136h-64z" fill="#f8f0ff"></path></svg></span></div><div class="ant-card-meta-detail"><div class="ant-card-meta-title">Use your broadcasting software</div><div class="ant-card-meta-description"><div><a href="https://owncast.online/docs/broadcasting/?source=admin" target="_blank" rel="noopener noreferrer">Learn how to point your existing software to your new server and start streaming your content.</a><div class="stream-info-container"><span class="ant-typography stream-info-label"><strong>Streaming URL:</strong></span><div class="ant-typography stream-info-box">rtmp://:/live/<div role="button" tabindex="0" class="ant-typography-copy" aria-label="Copy" style="border:0;background:transparent;padding:0;line-height:inherit;display:inline-block"><span role="img" aria-label="copy" class="anticon anticon-copy"><svg viewBox="64 64 896 896" focusable="false" data-icon="copy" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z"></path></svg></span></div></div><span class="ant-typography stream-info-label"><strong>Stream Key:</strong></span><div class="ant-typography stream-info-box">*********************<div role="button" tabindex="0" class="ant-typography-copy" aria-label="Copy" style="border:0;background:transparent;padding:0;line-height:inherit;display:inline-block"><span role="img" aria-label="copy" class="anticon anticon-copy"><svg viewBox="64 64 896 896" focusable="false" data-icon="copy" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z"></path></svg></span></div></div></div></div></div></div></div></div></div><div class="ant-card ant-card-small"><div class="ant-card-body"><div class="ant-card-meta"><div class="ant-card-meta-avatar"><span role="img" aria-label="play-square" class="anticon anticon-play-square"><svg viewBox="64 64 896 896" focusable="false" data-icon="play-square" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" fill="#f9826c"></path><path d="M184 840h656V184H184v656zm240-484.7c0-9.4 10.9-14.7 18.3-8.8l199.4 156.7a11.2 11.2 0 010 17.6L442.3 677.6c-7.4 5.8-18.3.6-18.3-8.8V355.3z" fill="#fff5f0"></path><path d="M442.3 677.6l199.4-156.8a11.2 11.2 0 000-17.6L442.3 346.5c-7.4-5.9-18.3-.6-18.3 8.8v313.5c0 9.4 10.9 14.6 18.3 8.8z" fill="#f9826c"></path></svg></span></div><div class="ant-card-meta-detail"><div class="ant-card-meta-title">Embed your video onto other sites</div><div class="ant-card-meta-description"><div><a href="https://owncast.online/docs/embed?source=admin" target="_blank" rel="noopener noreferrer">Learn how you can add your Owncast stream to other sites you control.</a></div></div></div></div></div></div><div class="ant-card ant-card-small"><div class="ant-card-body"><div class="ant-card-meta"><div class="ant-card-meta-avatar"><span role="img" aria-label="message" class="anticon anticon-message"><svg viewBox="64 64 896 896" focusable="false" data-icon="message" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M775.3 248.9a369.62 369.62 0 00-119-80A370.2 370.2 0 00512.1 140h-1.7c-99.7.4-193 39.4-262.8 109.9-69.9 70.5-108 164.1-107.6 263.8.3 60.3 15.3 120.2 43.5 173.1l4.5 8.4V836h140.8l8.4 4.5c52.9 28.2 112.8 43.2 173.1 43.5h1.7c99 0 192-38.2 262.1-107.6 70.4-69.8 109.5-163.1 110.1-262.7.2-50.6-9.5-99.6-28.9-145.8a370.15 370.15 0 00-80-119zM312 560a48.01 48.01 0 010-96 48.01 48.01 0 010 96zm200 0a48.01 48.01 0 010-96 48.01 48.01 0 010 96zm200 0a48.01 48.01 0 010-96 48.01 48.01 0 010 96z" fill="#e6f6ff"></path><path d="M664 512a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0z" fill="#0366d6"></path><path d="M925.2 338.4c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z" fill="#0366d6"></path><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0z" fill="#0366d6"></path></svg></span></div><div class="ant-card-meta-detail"><div class="ant-card-meta-title">Chat is disabled</div><div class="ant-card-meta-description"><span>Chat will continue to be disabled until you begin a live stream.</span></div></div></div></div></div><div class="ant-card ant-card-small"><div class="ant-card-body"><div class="ant-card-meta"><div class="ant-card-meta-avatar"><span role="img" aria-label="profile" class="anticon anticon-profile"><svg viewBox="64 64 896 896" focusable="false" data-icon="profile" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" fill="#D18BFE"></path><path d="M184 840h656V184H184v656zm300-496c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48zm0 144c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48zm0 144c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48zM380 328c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zm0 144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zm0 144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z" fill="#fcf0ff"></path><path d="M340 656a40 40 0 1080 0 40 40 0 10-80 0zm0-144a40 40 0 1080 0 40 40 0 10-80 0zm0-144a40 40 0 1080 0 40 40 0 10-80 0zm152 320h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0-144h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0-144h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z" fill="#D18BFE"></path></svg></span></div><div class="ant-card-meta-detail"><div class="ant-card-meta-title">Find an audience on the Owncast Directory</div><div class="ant-card-meta-description"><div>List yourself in the Owncast Directory and show off your stream. Enable it in<!-- --> <a href="/admin/config-public-details/">settings.</a></div></div></div></div></div></div><div class="ant-card ant-card-small"><div class="ant-card-body"><div class="ant-card-meta"><div class="ant-card-meta-avatar"><span role="img" aria-label="question-circle" class="anticon anticon-question-circle"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#ffd33d"></path><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm0 632c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm62.9-219.5a48.3 48.3 0 00-30.9 44.8V620c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-21.5c0-23.1 6.7-45.9 19.9-64.9 12.9-18.6 30.9-32.8 52.1-40.9 34-13.1 56-41.6 56-72.7 0-44.1-43.1-80-96-80s-96 35.9-96 80v7.6c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V420c0-39.3 17.2-76 48.4-103.3C430.4 290.4 470 276 512 276s81.6 14.5 111.6 40.7C654.8 344 672 380.7 672 420c0 57.8-38.1 109.8-97.1 132.5z" fill="#fffef0"></path><path d="M472 732a40 40 0 1080 0 40 40 0 10-80 0zm151.6-415.3C593.6 290.5 554 276 512 276s-81.6 14.4-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.2 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5 0-39.3-17.2-76-48.4-103.3z" fill="#ffd33d"></path></svg></span></div><div class="ant-card-meta-detail"><div class="ant-card-meta-title">Not sure what to do next?</div><div class="ant-card-meta-description"><div>If you&#x27;re having issues or would like to know how to customize and configure your Owncast server visit <a href="/admin/help/">the help page.</a></div></div></div></div></div></div></div><div style="padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px" class="ant-col ant-col-12 ant-col-xs-24 ant-col-sm-24 ant-col-md-24 ant-col-lg-12"><section class="news-feed form-module"><h2 class="ant-typography">News &amp; Updates from Owncast</h2><div class="ant-skeleton ant-skeleton-active"><div class="ant-skeleton-content"><h3 class="ant-skeleton-title" style="width:38%"></h3><ul class="ant-skeleton-paragraph"><li></li><li></li><li style="width:61%"></li></ul></div></div></section></div></div></main><footer class="ant-layout-footer footer-container"><a href="https://owncast.online/?source=admin" target="_blank" rel="noopener noreferrer">About Owncast v<!-- -->0.0.0</a></footer></section></section></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/","query":{},"buildId":"7a6totYv41sSc3NmR-l5-","assetPrefix":"/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html> \ No newline at end of file
+<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width"/><meta charSet="utf-8"/><title>Owncast Admin</title><link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png"/><meta name="next-head-count" content="4"/><link rel="preload" href="/admin/_next/static/css/8f06007bcaf49272.css" as="style"/><link rel="stylesheet" href="/admin/_next/static/css/8f06007bcaf49272.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/admin/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/admin/_next/static/chunks/webpack-d3dfca19c7a5e28c.js" defer=""></script><script src="/admin/_next/static/chunks/framework-4975f770e34de116.js" defer=""></script><script src="/admin/_next/static/chunks/main-6bdb99735697720d.js" defer=""></script><script src="/admin/_next/static/chunks/pages/_app-31024cc89d3736f1.js" defer=""></script><script src="/admin/_next/static/chunks/829-c8d1f3db438c210b.js" defer=""></script><script src="/admin/_next/static/chunks/91-5f5f536776e2d9c6.js" defer=""></script><script src="/admin/_next/static/chunks/961-1db4468ca0742ea4.js" defer=""></script><script src="/admin/_next/static/chunks/751-f932ff7ec3e1342a.js" defer=""></script><script src="/admin/_next/static/chunks/763-6084d4b3c149b8f4.js" defer=""></script><script src="/admin/_next/static/chunks/533-2f63c37b8986cca1.js" defer=""></script><script src="/admin/_next/static/chunks/429-613793ce22468b22.js" defer=""></script><script src="/admin/_next/static/chunks/59-bb3486f7473684cf.js" defer=""></script><script src="/admin/_next/static/chunks/pages/index-e81f0bed001d207c.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_buildManifest.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_ssgManifest.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_middlewareManifest.js" defer=""></script></head><body><div id="__next" data-reactroot=""><section class="ant-layout app-container"><aside class="ant-layout-sider ant-layout-sider-dark side-nav" style="flex:0 0 240px;max-width:240px;min-width:240px;width:240px"><div class="ant-layout-sider-children"><ul class="ant-menu ant-menu-root ant-menu-inline ant-menu-light menu-container" role="menu" tabindex="0" data-menu-list="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1><li class="ant-menu-item ant-menu-item-selected" style="padding-left:24px" role="menuitem" tabindex="-1"><span role="img" aria-label="home" class="anticon anticon-home ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="home" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/">Home</a></span></li><li class="ant-menu-item" style="padding-left:24px" title="Current stream" role="menuitem" tabindex="-1"><span role="img" aria-label="line-chart" class="anticon anticon-line-chart ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="line-chart" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/viewer-info/">Viewers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" style="display:block" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="message" class="anticon anticon-message ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="message" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"></path></svg></span><span class="ant-menu-title-content">Chat &amp; Users</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px;display:none" title="Fediverse followers" role="menuitem" tabindex="-1"><img alt="fediverse icon" src="/admin/fediverse-white.png" width="15rem" style="opacity:0.6;position:relative;top:-1px" class="ant-menu-item-icon"/><span class="ant-menu-title-content"><a href="/admin/federation/followers/">Followers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="setting" class="anticon anticon-setting ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="setting" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"></path></svg></span><span class="ant-menu-title-content">Configuration</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="tool" class="anticon anticon-tool ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="tool" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"></path></svg></span><span class="ant-menu-title-content">Utilities</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="experiment" class="anticon anticon-experiment ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="experiment" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z"></path></svg></span><span class="ant-menu-title-content">Integrations</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px" title="Help" role="menuitem" tabindex="-1"><span role="img" aria-label="question-circle" class="anticon anticon-question-circle ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/help/">Help</a></span></li></ul><div style="display:none" aria-hidden="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1></div></div></aside><section class="ant-layout layout-main"><header class="ant-layout-header layout-header"><div class="ant-space ant-space-horizontal ant-space-align-center"><div class="ant-space-item"><button style="display:none" type="button" class="ant-btn ant-btn-primary ant-btn-circle ant-btn-lg ant-btn-icon-only"><span role="img" aria-label="edit" class="anticon anticon-edit"><svg viewBox="64 64 896 896" focusable="false" data-icon="edit" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z"></path></svg></span></button></div></div><div class="global-stream-title-container"><div class="textfield-with-submit-container"><div class="textfield-component"><div class="formfield-container textfield-container type-default"><div class="label-side"><label for="field-streamTitle" class="formfield-label">Stream Title</label></div><div class="input-side"><div class="input-group"><span class="ant-input-affix-wrapper field field-streamTitle"><input type="text" id="field-streamTitle" class="ant-input" placeholder="What are you streaming now" maxLength="100" value=""/><span class="ant-input-suffix"><span role="button" aria-label="close-circle" tabindex="-1" class="anticon anticon-close-circle ant-input-clear-icon-hidden ant-input-clear-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"></path></svg></span></span></span></div><span class="status-container empty"></span><p class="field-tip">What is your stream about today?</p></div></div></div><div class="formfield-container lower-container"><p class="label-spacer"></p><div class="lower-content"><div class="field-tip">What is your stream about today?</div><span class="status-container empty"></span><div class="update-button-container"><button disabled="" type="button" class="ant-btn ant-btn-primary ant-btn-sm submit-button"><span>Update</span></button></div></div></div></div></div><div class="ant-space ant-space-horizontal ant-space-align-center"><div class="ant-space-item"><div class="online-status-indicator"><span class="status-label">Offline</span><span class="status-icon"><span role="img" aria-label="minus-square" class="anticon anticon-minus-square"><svg viewBox="64 64 896 896" focusable="false" data-icon="minus-square" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z"></path></svg></span></span></div></div></div></header><main class="ant-layout-content main-content-container"><div class="ant-row"><div class="ant-col ant-col-12 ant-col-offset-6"><div class="offline-intro"><span class="logo"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><div><h2 class="ant-typography">No stream is active</h2><p>You should start one.</p></div></div></div></div><div class="ant-row offline-content" style="margin-left:-8px;margin-right:-8px;margin-top:-8px;margin-bottom:-8px"><div style="padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px" class="ant-col ant-col-12 list-section ant-col-xs-24 ant-col-sm-24 ant-col-md-24 ant-col-lg-12"><div class="ant-card ant-card-small"><div class="ant-card-body"><div class="ant-card-meta"><div class="ant-card-meta-avatar"><span role="img" aria-label="book" class="anticon anticon-book"><svg viewBox="64 64 896 896" focusable="false" data-icon="book" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-260 72h96v209.9L621.5 312 572 347.4V136zM232 888V136h280v296.9c0 3.3 1 6.6 3 9.3a15.9 15.9 0 0022.3 3.7l83.8-59.9 81.4 59.4c2.7 2 6 3.1 9.4 3.1 8.8 0 16-7.2 16-16V136h64v752H232z" fill="#6f42c1"></path><path d="M668 345.9V136h-96v211.4l49.5-35.4z" fill="#f8f0ff"></path><path d="M727.9 136v296.5c0 8.8-7.2 16-16 16-3.4 0-6.7-1.1-9.4-3.1L621.1 386l-83.8 59.9a15.9 15.9 0 01-22.3-3.7c-2-2.7-3-6-3-9.3V136H232v752h559.9V136h-64z" fill="#f8f0ff"></path></svg></span></div><div class="ant-card-meta-detail"><div class="ant-card-meta-title">Use your broadcasting software</div><div class="ant-card-meta-description"><div><a href="https://owncast.online/docs/broadcasting/?source=admin" target="_blank" rel="noopener noreferrer">Learn how to point your existing software to your new server and start streaming your content.</a><div class="stream-info-container"><span class="ant-typography stream-info-label"><strong>Streaming URL:</strong></span><div class="ant-typography stream-info-box">rtmp://:/live/<div role="button" tabindex="0" class="ant-typography-copy" aria-label="Copy" style="border:0;background:transparent;padding:0;line-height:inherit;display:inline-block"><span role="img" aria-label="copy" class="anticon anticon-copy"><svg viewBox="64 64 896 896" focusable="false" data-icon="copy" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z"></path></svg></span></div></div><span class="ant-typography stream-info-label"><strong>Stream Key:</strong></span><div class="ant-typography stream-info-box">*********************<div role="button" tabindex="0" class="ant-typography-copy" aria-label="Copy" style="border:0;background:transparent;padding:0;line-height:inherit;display:inline-block"><span role="img" aria-label="copy" class="anticon anticon-copy"><svg viewBox="64 64 896 896" focusable="false" data-icon="copy" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z"></path></svg></span></div></div></div></div></div></div></div></div></div><div class="ant-card ant-card-small"><div class="ant-card-body"><div class="ant-card-meta"><div class="ant-card-meta-avatar"><span role="img" aria-label="play-square" class="anticon anticon-play-square"><svg viewBox="64 64 896 896" focusable="false" data-icon="play-square" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" fill="#f9826c"></path><path d="M184 840h656V184H184v656zm240-484.7c0-9.4 10.9-14.7 18.3-8.8l199.4 156.7a11.2 11.2 0 010 17.6L442.3 677.6c-7.4 5.8-18.3.6-18.3-8.8V355.3z" fill="#fff5f0"></path><path d="M442.3 677.6l199.4-156.8a11.2 11.2 0 000-17.6L442.3 346.5c-7.4-5.9-18.3-.6-18.3 8.8v313.5c0 9.4 10.9 14.6 18.3 8.8z" fill="#f9826c"></path></svg></span></div><div class="ant-card-meta-detail"><div class="ant-card-meta-title">Embed your video onto other sites</div><div class="ant-card-meta-description"><div><a href="https://owncast.online/docs/embed?source=admin" target="_blank" rel="noopener noreferrer">Learn how you can add your Owncast stream to other sites you control.</a></div></div></div></div></div></div><div class="ant-card ant-card-small"><div class="ant-card-body"><div class="ant-card-meta"><div class="ant-card-meta-avatar"><span role="img" aria-label="message" class="anticon anticon-message"><svg viewBox="64 64 896 896" focusable="false" data-icon="message" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M775.3 248.9a369.62 369.62 0 00-119-80A370.2 370.2 0 00512.1 140h-1.7c-99.7.4-193 39.4-262.8 109.9-69.9 70.5-108 164.1-107.6 263.8.3 60.3 15.3 120.2 43.5 173.1l4.5 8.4V836h140.8l8.4 4.5c52.9 28.2 112.8 43.2 173.1 43.5h1.7c99 0 192-38.2 262.1-107.6 70.4-69.8 109.5-163.1 110.1-262.7.2-50.6-9.5-99.6-28.9-145.8a370.15 370.15 0 00-80-119zM312 560a48.01 48.01 0 010-96 48.01 48.01 0 010 96zm200 0a48.01 48.01 0 010-96 48.01 48.01 0 010 96zm200 0a48.01 48.01 0 010-96 48.01 48.01 0 010 96z" fill="#e6f6ff"></path><path d="M664 512a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0z" fill="#0366d6"></path><path d="M925.2 338.4c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z" fill="#0366d6"></path><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0z" fill="#0366d6"></path></svg></span></div><div class="ant-card-meta-detail"><div class="ant-card-meta-title">Chat is disabled</div><div class="ant-card-meta-description"><span>Chat will continue to be disabled until you begin a live stream.</span></div></div></div></div></div><div class="ant-card ant-card-small"><div class="ant-card-body"><div class="ant-card-meta"><div class="ant-card-meta-avatar"><span role="img" aria-label="profile" class="anticon anticon-profile"><svg viewBox="64 64 896 896" focusable="false" data-icon="profile" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" fill="#D18BFE"></path><path d="M184 840h656V184H184v656zm300-496c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48zm0 144c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48zm0 144c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48zM380 328c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zm0 144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zm0 144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z" fill="#fcf0ff"></path><path d="M340 656a40 40 0 1080 0 40 40 0 10-80 0zm0-144a40 40 0 1080 0 40 40 0 10-80 0zm0-144a40 40 0 1080 0 40 40 0 10-80 0zm152 320h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0-144h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0-144h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z" fill="#D18BFE"></path></svg></span></div><div class="ant-card-meta-detail"><div class="ant-card-meta-title">Find an audience on the Owncast Directory</div><div class="ant-card-meta-description"><div>List yourself in the Owncast Directory and show off your stream. Enable it in<!-- --> <a href="/admin/config-public-details/">settings.</a></div></div></div></div></div></div><div class="ant-card ant-card-small"><div class="ant-card-body"><div class="ant-card-meta"><div class="ant-card-meta-avatar"><span role="img" aria-label="question-circle" class="anticon anticon-question-circle"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#ffd33d"></path><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm0 632c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm62.9-219.5a48.3 48.3 0 00-30.9 44.8V620c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-21.5c0-23.1 6.7-45.9 19.9-64.9 12.9-18.6 30.9-32.8 52.1-40.9 34-13.1 56-41.6 56-72.7 0-44.1-43.1-80-96-80s-96 35.9-96 80v7.6c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V420c0-39.3 17.2-76 48.4-103.3C430.4 290.4 470 276 512 276s81.6 14.5 111.6 40.7C654.8 344 672 380.7 672 420c0 57.8-38.1 109.8-97.1 132.5z" fill="#fffef0"></path><path d="M472 732a40 40 0 1080 0 40 40 0 10-80 0zm151.6-415.3C593.6 290.5 554 276 512 276s-81.6 14.4-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.2 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5 0-39.3-17.2-76-48.4-103.3z" fill="#ffd33d"></path></svg></span></div><div class="ant-card-meta-detail"><div class="ant-card-meta-title">Not sure what to do next?</div><div class="ant-card-meta-description"><div>If you&#x27;re having issues or would like to know how to customize and configure your Owncast server visit <a href="/admin/help/">the help page.</a></div></div></div></div></div></div></div><div style="padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px" class="ant-col ant-col-12 ant-col-xs-24 ant-col-sm-24 ant-col-md-24 ant-col-lg-12"><section class="news-feed form-module"><h2 class="ant-typography">News &amp; Updates from Owncast</h2><div class="ant-skeleton ant-skeleton-active"><div class="ant-skeleton-content"><h3 class="ant-skeleton-title" style="width:38%"></h3><ul class="ant-skeleton-paragraph"><li></li><li></li><li style="width:61%"></li></ul></div></div></section></div></div></main><footer class="ant-layout-footer footer-container"><a href="https://owncast.online/?source=admin" target="_blank" rel="noopener noreferrer">About Owncast v<!-- -->0.0.0</a></footer></section></section></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/","query":{},"buildId":"S0l4GknIl5ifWnPqwFnrr","assetPrefix":"/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html> \ No newline at end of file
diff --git a/static/admin/logs/index.html b/static/admin/logs/index.html
index a45be8a98..10d9beb6b 100644
--- a/static/admin/logs/index.html
+++ b/static/admin/logs/index.html
@@ -1 +1 @@
-<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width"/><meta charSet="utf-8"/><title>Owncast Admin</title><link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png"/><meta name="next-head-count" content="4"/><link rel="preload" href="/admin/_next/static/css/ba0ae6285080d7f0.css" as="style"/><link rel="stylesheet" href="/admin/_next/static/css/ba0ae6285080d7f0.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/admin/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/admin/_next/static/chunks/webpack-32f373d36961f088.js" defer=""></script><script src="/admin/_next/static/chunks/framework-4975f770e34de116.js" defer=""></script><script src="/admin/_next/static/chunks/main-6bdb99735697720d.js" defer=""></script><script src="/admin/_next/static/chunks/pages/_app-4f17b8df12d0e919.js" defer=""></script><script src="/admin/_next/static/chunks/919-5396b8f9fccff000.js" defer=""></script><script src="/admin/_next/static/chunks/91-5f5f536776e2d9c6.js" defer=""></script><script src="/admin/_next/static/chunks/429-613793ce22468b22.js" defer=""></script><script src="/admin/_next/static/chunks/pages/logs-1ee721766d61c558.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_buildManifest.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_ssgManifest.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_middlewareManifest.js" defer=""></script></head><body><div id="__next" data-reactroot=""><section class="ant-layout app-container"><aside class="ant-layout-sider ant-layout-sider-dark side-nav" style="flex:0 0 240px;max-width:240px;min-width:240px;width:240px"><div class="ant-layout-sider-children"><ul class="ant-menu ant-menu-root ant-menu-inline ant-menu-light menu-container" role="menu" tabindex="0" data-menu-list="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1><li class="ant-menu-item" style="padding-left:24px" role="menuitem" tabindex="-1"><span role="img" aria-label="home" class="anticon anticon-home ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="home" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/">Home</a></span></li><li class="ant-menu-item" style="padding-left:24px" title="Current stream" role="menuitem" tabindex="-1"><span role="img" aria-label="line-chart" class="anticon anticon-line-chart ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="line-chart" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/viewer-info/">Viewers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" style="display:block" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="message" class="anticon anticon-message ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="message" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"></path></svg></span><span class="ant-menu-title-content">Chat &amp; Users</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="setting" class="anticon anticon-setting ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="setting" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"></path></svg></span><span class="ant-menu-title-content">Configuration</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="tool" class="anticon anticon-tool ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="tool" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"></path></svg></span><span class="ant-menu-title-content">Utilities</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="experiment" class="anticon anticon-experiment ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="experiment" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z"></path></svg></span><span class="ant-menu-title-content">Integrations</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px" title="Help" role="menuitem" tabindex="-1"><span role="img" aria-label="question-circle" class="anticon anticon-question-circle ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/help/">Help</a></span></li></ul><div style="display:none" aria-hidden="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1></div></div></aside><section class="ant-layout layout-main"><header class="ant-layout-header layout-header"><div class="global-stream-title-container"><div class="textfield-with-submit-container"><div class="textfield-component"><div class="formfield-container textfield-container type-default"><div class="label-side"><label for="field-streamTitle" class="formfield-label">Stream Title</label></div><div class="input-side"><div class="input-group"><span class="ant-input-affix-wrapper field field-streamTitle"><input type="text" id="field-streamTitle" class="ant-input" placeholder="What are you streaming now" maxLength="100" value=""/><span class="ant-input-suffix"><span role="button" aria-label="close-circle" tabindex="-1" class="anticon anticon-close-circle ant-input-clear-icon-hidden ant-input-clear-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"></path></svg></span></span></span></div><span class="status-container empty"></span><p class="field-tip">What is your stream about today?</p></div></div></div><div class="formfield-container lower-container"><p class="label-spacer"></p><div class="lower-content"><div class="field-tip">What is your stream about today?</div><span class="status-container empty"></span><div class="update-button-container"><button disabled="" type="button" class="ant-btn ant-btn-primary ant-btn-sm submit-button"><span>Update</span></button></div></div></div></div></div><div class="online-status-indicator"><span class="status-label">Offline</span><span class="status-icon"><span role="img" aria-label="minus-square" class="anticon anticon-minus-square"><svg viewBox="64 64 896 896" focusable="false" data-icon="minus-square" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z"></path></svg></span></span></div></header><main class="ant-layout-content main-content-container"></main><footer class="ant-layout-footer footer-container"><a href="https://owncast.online/?source=admin" target="_blank" rel="noopener noreferrer">About Owncast v<!-- -->0.0.0</a></footer></section></section></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/logs","query":{},"buildId":"7a6totYv41sSc3NmR-l5-","assetPrefix":"/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html> \ No newline at end of file
+<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width"/><meta charSet="utf-8"/><title>Owncast Admin</title><link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png"/><meta name="next-head-count" content="4"/><link rel="preload" href="/admin/_next/static/css/8f06007bcaf49272.css" as="style"/><link rel="stylesheet" href="/admin/_next/static/css/8f06007bcaf49272.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/admin/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/admin/_next/static/chunks/webpack-d3dfca19c7a5e28c.js" defer=""></script><script src="/admin/_next/static/chunks/framework-4975f770e34de116.js" defer=""></script><script src="/admin/_next/static/chunks/main-6bdb99735697720d.js" defer=""></script><script src="/admin/_next/static/chunks/pages/_app-31024cc89d3736f1.js" defer=""></script><script src="/admin/_next/static/chunks/829-c8d1f3db438c210b.js" defer=""></script><script src="/admin/_next/static/chunks/91-5f5f536776e2d9c6.js" defer=""></script><script src="/admin/_next/static/chunks/429-613793ce22468b22.js" defer=""></script><script src="/admin/_next/static/chunks/pages/logs-d10676db469afea0.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_buildManifest.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_ssgManifest.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_middlewareManifest.js" defer=""></script></head><body><div id="__next" data-reactroot=""><section class="ant-layout app-container"><aside class="ant-layout-sider ant-layout-sider-dark side-nav" style="flex:0 0 240px;max-width:240px;min-width:240px;width:240px"><div class="ant-layout-sider-children"><ul class="ant-menu ant-menu-root ant-menu-inline ant-menu-light menu-container" role="menu" tabindex="0" data-menu-list="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1><li class="ant-menu-item" style="padding-left:24px" role="menuitem" tabindex="-1"><span role="img" aria-label="home" class="anticon anticon-home ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="home" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/">Home</a></span></li><li class="ant-menu-item" style="padding-left:24px" title="Current stream" role="menuitem" tabindex="-1"><span role="img" aria-label="line-chart" class="anticon anticon-line-chart ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="line-chart" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/viewer-info/">Viewers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" style="display:block" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="message" class="anticon anticon-message ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="message" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"></path></svg></span><span class="ant-menu-title-content">Chat &amp; Users</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px;display:none" title="Fediverse followers" role="menuitem" tabindex="-1"><img alt="fediverse icon" src="/admin/fediverse-white.png" width="15rem" style="opacity:0.6;position:relative;top:-1px" class="ant-menu-item-icon"/><span class="ant-menu-title-content"><a href="/admin/federation/followers/">Followers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="setting" class="anticon anticon-setting ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="setting" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"></path></svg></span><span class="ant-menu-title-content">Configuration</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="tool" class="anticon anticon-tool ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="tool" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"></path></svg></span><span class="ant-menu-title-content">Utilities</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="experiment" class="anticon anticon-experiment ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="experiment" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z"></path></svg></span><span class="ant-menu-title-content">Integrations</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px" title="Help" role="menuitem" tabindex="-1"><span role="img" aria-label="question-circle" class="anticon anticon-question-circle ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/help/">Help</a></span></li></ul><div style="display:none" aria-hidden="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1></div></div></aside><section class="ant-layout layout-main"><header class="ant-layout-header layout-header"><div class="ant-space ant-space-horizontal ant-space-align-center"><div class="ant-space-item"><button style="display:none" type="button" class="ant-btn ant-btn-primary ant-btn-circle ant-btn-lg ant-btn-icon-only"><span role="img" aria-label="edit" class="anticon anticon-edit"><svg viewBox="64 64 896 896" focusable="false" data-icon="edit" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z"></path></svg></span></button></div></div><div class="global-stream-title-container"><div class="textfield-with-submit-container"><div class="textfield-component"><div class="formfield-container textfield-container type-default"><div class="label-side"><label for="field-streamTitle" class="formfield-label">Stream Title</label></div><div class="input-side"><div class="input-group"><span class="ant-input-affix-wrapper field field-streamTitle"><input type="text" id="field-streamTitle" class="ant-input" placeholder="What are you streaming now" maxLength="100" value=""/><span class="ant-input-suffix"><span role="button" aria-label="close-circle" tabindex="-1" class="anticon anticon-close-circle ant-input-clear-icon-hidden ant-input-clear-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"></path></svg></span></span></span></div><span class="status-container empty"></span><p class="field-tip">What is your stream about today?</p></div></div></div><div class="formfield-container lower-container"><p class="label-spacer"></p><div class="lower-content"><div class="field-tip">What is your stream about today?</div><span class="status-container empty"></span><div class="update-button-container"><button disabled="" type="button" class="ant-btn ant-btn-primary ant-btn-sm submit-button"><span>Update</span></button></div></div></div></div></div><div class="ant-space ant-space-horizontal ant-space-align-center"><div class="ant-space-item"><div class="online-status-indicator"><span class="status-label">Offline</span><span class="status-icon"><span role="img" aria-label="minus-square" class="anticon anticon-minus-square"><svg viewBox="64 64 896 896" focusable="false" data-icon="minus-square" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z"></path></svg></span></span></div></div></div></header><main class="ant-layout-content main-content-container"></main><footer class="ant-layout-footer footer-container"><a href="https://owncast.online/?source=admin" target="_blank" rel="noopener noreferrer">About Owncast v<!-- -->0.0.0</a></footer></section></section></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/logs","query":{},"buildId":"S0l4GknIl5ifWnPqwFnrr","assetPrefix":"/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html> \ No newline at end of file
diff --git a/static/admin/upgrade/index.html b/static/admin/upgrade/index.html
index 9cf1a9abe..660f07a98 100644
--- a/static/admin/upgrade/index.html
+++ b/static/admin/upgrade/index.html
@@ -1 +1 @@
-<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width"/><meta charSet="utf-8"/><title>Owncast Admin</title><link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png"/><meta name="next-head-count" content="4"/><link rel="preload" href="/admin/_next/static/css/ba0ae6285080d7f0.css" as="style"/><link rel="stylesheet" href="/admin/_next/static/css/ba0ae6285080d7f0.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/admin/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/admin/_next/static/chunks/webpack-32f373d36961f088.js" defer=""></script><script src="/admin/_next/static/chunks/framework-4975f770e34de116.js" defer=""></script><script src="/admin/_next/static/chunks/main-6bdb99735697720d.js" defer=""></script><script src="/admin/_next/static/chunks/pages/_app-4f17b8df12d0e919.js" defer=""></script><script src="/admin/_next/static/chunks/919-5396b8f9fccff000.js" defer=""></script><script src="/admin/_next/static/chunks/275-35d1a6aef8ecf26a.js" defer=""></script><script src="/admin/_next/static/chunks/pages/upgrade-3990d29ea930f50e.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_buildManifest.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_ssgManifest.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_middlewareManifest.js" defer=""></script></head><body><div id="__next" data-reactroot=""><section class="ant-layout app-container"><aside class="ant-layout-sider ant-layout-sider-dark side-nav" style="flex:0 0 240px;max-width:240px;min-width:240px;width:240px"><div class="ant-layout-sider-children"><ul class="ant-menu ant-menu-root ant-menu-inline ant-menu-light menu-container" role="menu" tabindex="0" data-menu-list="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1><li class="ant-menu-item" style="padding-left:24px" role="menuitem" tabindex="-1"><span role="img" aria-label="home" class="anticon anticon-home ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="home" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/">Home</a></span></li><li class="ant-menu-item" style="padding-left:24px" title="Current stream" role="menuitem" tabindex="-1"><span role="img" aria-label="line-chart" class="anticon anticon-line-chart ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="line-chart" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/viewer-info/">Viewers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" style="display:block" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="message" class="anticon anticon-message ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="message" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"></path></svg></span><span class="ant-menu-title-content">Chat &amp; Users</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="setting" class="anticon anticon-setting ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="setting" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"></path></svg></span><span class="ant-menu-title-content">Configuration</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="tool" class="anticon anticon-tool ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="tool" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"></path></svg></span><span class="ant-menu-title-content">Utilities</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="experiment" class="anticon anticon-experiment ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="experiment" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z"></path></svg></span><span class="ant-menu-title-content">Integrations</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px" title="Help" role="menuitem" tabindex="-1"><span role="img" aria-label="question-circle" class="anticon anticon-question-circle ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/help/">Help</a></span></li></ul><div style="display:none" aria-hidden="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1></div></div></aside><section class="ant-layout layout-main"><header class="ant-layout-header layout-header"><div class="global-stream-title-container"><div class="textfield-with-submit-container"><div class="textfield-component"><div class="formfield-container textfield-container type-default"><div class="label-side"><label for="field-streamTitle" class="formfield-label">Stream Title</label></div><div class="input-side"><div class="input-group"><span class="ant-input-affix-wrapper field field-streamTitle"><input type="text" id="field-streamTitle" class="ant-input" placeholder="What are you streaming now" maxLength="100" value=""/><span class="ant-input-suffix"><span role="button" aria-label="close-circle" tabindex="-1" class="anticon anticon-close-circle ant-input-clear-icon-hidden ant-input-clear-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"></path></svg></span></span></span></div><span class="status-container empty"></span><p class="field-tip">What is your stream about today?</p></div></div></div><div class="formfield-container lower-container"><p class="label-spacer"></p><div class="lower-content"><div class="field-tip">What is your stream about today?</div><span class="status-container empty"></span><div class="update-button-container"><button disabled="" type="button" class="ant-btn ant-btn-primary ant-btn-sm submit-button"><span>Update</span></button></div></div></div></div></div><div class="online-status-indicator"><span class="status-label">Offline</span><span class="status-icon"><span role="img" aria-label="minus-square" class="anticon anticon-minus-square"><svg viewBox="64 64 896 896" focusable="false" data-icon="minus-square" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z"></path></svg></span></span></div></header><main class="ant-layout-content main-content-container"><div class="upgrade-page"><h2 class="ant-typography"><a href=""></a></h2><h5 class="ant-typography">Thu Jan 01 1970</h5><h3>Downloads</h3><div class="ant-table-wrapper"><div class="ant-spin-nested-loading"><div class="ant-spin-container"><div class="ant-table ant-table-empty"><div class="ant-table-container"><div class="ant-table-content"><table style="table-layout:auto"><colgroup></colgroup><thead class="ant-table-thead"><tr><th class="ant-table-cell">Name</th><th class="ant-table-cell">Size</th></tr></thead><tbody class="ant-table-tbody"><tr class="ant-table-placeholder"><td colSpan="2" class="ant-table-cell"><div class="ant-empty ant-empty-normal"><div class="ant-empty-image"><svg class="ant-empty-img-simple" width="64" height="41" viewBox="0 0 64 41" xmlns="http://www.w3.org/2000/svg"><g transform="translate(0 1)" fill="none" fill-rule="evenodd"><ellipse class="ant-empty-img-simple-ellipse" cx="32" cy="33" rx="32" ry="7"></ellipse><g class="ant-empty-img-simple-g" fill-rule="nonzero"><path d="M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z"></path><path d="M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z" class="ant-empty-img-simple-path"></path></g></g></svg></div><div class="ant-empty-description">No Data</div></div></td></tr></tbody></table></div></div></div></div></div></div></div></main><footer class="ant-layout-footer footer-container"><a href="https://owncast.online/?source=admin" target="_blank" rel="noopener noreferrer">About Owncast v<!-- -->0.0.0</a></footer></section></section></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/upgrade","query":{},"buildId":"7a6totYv41sSc3NmR-l5-","assetPrefix":"/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html> \ No newline at end of file
+<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width"/><meta charSet="utf-8"/><title>Owncast Admin</title><link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png"/><meta name="next-head-count" content="4"/><link rel="preload" href="/admin/_next/static/css/8f06007bcaf49272.css" as="style"/><link rel="stylesheet" href="/admin/_next/static/css/8f06007bcaf49272.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/admin/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/admin/_next/static/chunks/webpack-d3dfca19c7a5e28c.js" defer=""></script><script src="/admin/_next/static/chunks/framework-4975f770e34de116.js" defer=""></script><script src="/admin/_next/static/chunks/main-6bdb99735697720d.js" defer=""></script><script src="/admin/_next/static/chunks/pages/_app-31024cc89d3736f1.js" defer=""></script><script src="/admin/_next/static/chunks/829-c8d1f3db438c210b.js" defer=""></script><script src="/admin/_next/static/chunks/275-35d1a6aef8ecf26a.js" defer=""></script><script src="/admin/_next/static/chunks/pages/upgrade-6c4ec4a032ab7232.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_buildManifest.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_ssgManifest.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_middlewareManifest.js" defer=""></script></head><body><div id="__next" data-reactroot=""><section class="ant-layout app-container"><aside class="ant-layout-sider ant-layout-sider-dark side-nav" style="flex:0 0 240px;max-width:240px;min-width:240px;width:240px"><div class="ant-layout-sider-children"><ul class="ant-menu ant-menu-root ant-menu-inline ant-menu-light menu-container" role="menu" tabindex="0" data-menu-list="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1><li class="ant-menu-item" style="padding-left:24px" role="menuitem" tabindex="-1"><span role="img" aria-label="home" class="anticon anticon-home ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="home" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/">Home</a></span></li><li class="ant-menu-item" style="padding-left:24px" title="Current stream" role="menuitem" tabindex="-1"><span role="img" aria-label="line-chart" class="anticon anticon-line-chart ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="line-chart" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/viewer-info/">Viewers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" style="display:block" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="message" class="anticon anticon-message ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="message" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"></path></svg></span><span class="ant-menu-title-content">Chat &amp; Users</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px;display:none" title="Fediverse followers" role="menuitem" tabindex="-1"><img alt="fediverse icon" src="/admin/fediverse-white.png" width="15rem" style="opacity:0.6;position:relative;top:-1px" class="ant-menu-item-icon"/><span class="ant-menu-title-content"><a href="/admin/federation/followers/">Followers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="setting" class="anticon anticon-setting ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="setting" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"></path></svg></span><span class="ant-menu-title-content">Configuration</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="tool" class="anticon anticon-tool ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="tool" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"></path></svg></span><span class="ant-menu-title-content">Utilities</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="experiment" class="anticon anticon-experiment ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="experiment" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z"></path></svg></span><span class="ant-menu-title-content">Integrations</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px" title="Help" role="menuitem" tabindex="-1"><span role="img" aria-label="question-circle" class="anticon anticon-question-circle ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/help/">Help</a></span></li></ul><div style="display:none" aria-hidden="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1></div></div></aside><section class="ant-layout layout-main"><header class="ant-layout-header layout-header"><div class="ant-space ant-space-horizontal ant-space-align-center"><div class="ant-space-item"><button style="display:none" type="button" class="ant-btn ant-btn-primary ant-btn-circle ant-btn-lg ant-btn-icon-only"><span role="img" aria-label="edit" class="anticon anticon-edit"><svg viewBox="64 64 896 896" focusable="false" data-icon="edit" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z"></path></svg></span></button></div></div><div class="global-stream-title-container"><div class="textfield-with-submit-container"><div class="textfield-component"><div class="formfield-container textfield-container type-default"><div class="label-side"><label for="field-streamTitle" class="formfield-label">Stream Title</label></div><div class="input-side"><div class="input-group"><span class="ant-input-affix-wrapper field field-streamTitle"><input type="text" id="field-streamTitle" class="ant-input" placeholder="What are you streaming now" maxLength="100" value=""/><span class="ant-input-suffix"><span role="button" aria-label="close-circle" tabindex="-1" class="anticon anticon-close-circle ant-input-clear-icon-hidden ant-input-clear-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"></path></svg></span></span></span></div><span class="status-container empty"></span><p class="field-tip">What is your stream about today?</p></div></div></div><div class="formfield-container lower-container"><p class="label-spacer"></p><div class="lower-content"><div class="field-tip">What is your stream about today?</div><span class="status-container empty"></span><div class="update-button-container"><button disabled="" type="button" class="ant-btn ant-btn-primary ant-btn-sm submit-button"><span>Update</span></button></div></div></div></div></div><div class="ant-space ant-space-horizontal ant-space-align-center"><div class="ant-space-item"><div class="online-status-indicator"><span class="status-label">Offline</span><span class="status-icon"><span role="img" aria-label="minus-square" class="anticon anticon-minus-square"><svg viewBox="64 64 896 896" focusable="false" data-icon="minus-square" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z"></path></svg></span></span></div></div></div></header><main class="ant-layout-content main-content-container"><div class="upgrade-page"><h2 class="ant-typography"><a href=""></a></h2><h5 class="ant-typography">Wed Dec 31 1969</h5><h3>Downloads</h3><div class="ant-table-wrapper"><div class="ant-spin-nested-loading"><div class="ant-spin-container"><div class="ant-table ant-table-empty"><div class="ant-table-container"><div class="ant-table-content"><table style="table-layout:auto"><colgroup></colgroup><thead class="ant-table-thead"><tr><th class="ant-table-cell">Name</th><th class="ant-table-cell">Size</th></tr></thead><tbody class="ant-table-tbody"><tr class="ant-table-placeholder"><td colSpan="2" class="ant-table-cell"><div class="ant-empty ant-empty-normal"><div class="ant-empty-image"><svg class="ant-empty-img-simple" width="64" height="41" viewBox="0 0 64 41" xmlns="http://www.w3.org/2000/svg"><g transform="translate(0 1)" fill="none" fill-rule="evenodd"><ellipse class="ant-empty-img-simple-ellipse" cx="32" cy="33" rx="32" ry="7"></ellipse><g class="ant-empty-img-simple-g" fill-rule="nonzero"><path d="M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z"></path><path d="M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z" class="ant-empty-img-simple-path"></path></g></g></svg></div><div class="ant-empty-description">No Data</div></div></td></tr></tbody></table></div></div></div></div></div></div></div></main><footer class="ant-layout-footer footer-container"><a href="https://owncast.online/?source=admin" target="_blank" rel="noopener noreferrer">About Owncast v<!-- -->0.0.0</a></footer></section></section></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/upgrade","query":{},"buildId":"S0l4GknIl5ifWnPqwFnrr","assetPrefix":"/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html> \ No newline at end of file
diff --git a/static/admin/viewer-info/index.html b/static/admin/viewer-info/index.html
index e46ab4417..79f893e0a 100644
--- a/static/admin/viewer-info/index.html
+++ b/static/admin/viewer-info/index.html
@@ -1 +1 @@
-<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width"/><meta charSet="utf-8"/><title>Owncast Admin</title><link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png"/><meta name="next-head-count" content="4"/><link rel="preload" href="/admin/_next/static/css/ba0ae6285080d7f0.css" as="style"/><link rel="stylesheet" href="/admin/_next/static/css/ba0ae6285080d7f0.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/admin/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/admin/_next/static/chunks/webpack-32f373d36961f088.js" defer=""></script><script src="/admin/_next/static/chunks/framework-4975f770e34de116.js" defer=""></script><script src="/admin/_next/static/chunks/main-6bdb99735697720d.js" defer=""></script><script src="/admin/_next/static/chunks/pages/_app-4f17b8df12d0e919.js" defer=""></script><script src="/admin/_next/static/chunks/36bcf0ca-c1f70baa5cd8cbbf.js" defer=""></script><script src="/admin/_next/static/chunks/91-5f5f536776e2d9c6.js" defer=""></script><script src="/admin/_next/static/chunks/903-27a123d85f49824b.js" defer=""></script><script src="/admin/_next/static/chunks/102-c27fe0fc093d5628.js" defer=""></script><script src="/admin/_next/static/chunks/910-ed07ccf32f311d03.js" defer=""></script><script src="/admin/_next/static/chunks/958-d85597c88a5651f8.js" defer=""></script><script src="/admin/_next/static/chunks/pages/viewer-info-19c2b57872fa4f5f.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_buildManifest.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_ssgManifest.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_middlewareManifest.js" defer=""></script></head><body><div id="__next" data-reactroot=""><section class="ant-layout app-container"><aside class="ant-layout-sider ant-layout-sider-dark side-nav" style="flex:0 0 240px;max-width:240px;min-width:240px;width:240px"><div class="ant-layout-sider-children"><ul class="ant-menu ant-menu-root ant-menu-inline ant-menu-light menu-container" role="menu" tabindex="0" data-menu-list="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1><li class="ant-menu-item" style="padding-left:24px" role="menuitem" tabindex="-1"><span role="img" aria-label="home" class="anticon anticon-home ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="home" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/">Home</a></span></li><li class="ant-menu-item ant-menu-item-selected" style="padding-left:24px" title="Current stream" role="menuitem" tabindex="-1"><span role="img" aria-label="line-chart" class="anticon anticon-line-chart ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="line-chart" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/viewer-info/">Viewers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" style="display:block" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="message" class="anticon anticon-message ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="message" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"></path></svg></span><span class="ant-menu-title-content">Chat &amp; Users</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="setting" class="anticon anticon-setting ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="setting" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"></path></svg></span><span class="ant-menu-title-content">Configuration</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="tool" class="anticon anticon-tool ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="tool" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"></path></svg></span><span class="ant-menu-title-content">Utilities</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="experiment" class="anticon anticon-experiment ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="experiment" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z"></path></svg></span><span class="ant-menu-title-content">Integrations</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px" title="Help" role="menuitem" tabindex="-1"><span role="img" aria-label="question-circle" class="anticon anticon-question-circle ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/help/">Help</a></span></li></ul><div style="display:none" aria-hidden="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1></div></div></aside><section class="ant-layout layout-main"><header class="ant-layout-header layout-header"><div class="global-stream-title-container"><div class="textfield-with-submit-container"><div class="textfield-component"><div class="formfield-container textfield-container type-default"><div class="label-side"><label for="field-streamTitle" class="formfield-label">Stream Title</label></div><div class="input-side"><div class="input-group"><span class="ant-input-affix-wrapper field field-streamTitle"><input type="text" id="field-streamTitle" class="ant-input" placeholder="What are you streaming now" maxLength="100" value=""/><span class="ant-input-suffix"><span role="button" aria-label="close-circle" tabindex="-1" class="anticon anticon-close-circle ant-input-clear-icon-hidden ant-input-clear-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"></path></svg></span></span></span></div><span class="status-container empty"></span><p class="field-tip">What is your stream about today?</p></div></div></div><div class="formfield-container lower-container"><p class="label-spacer"></p><div class="lower-content"><div class="field-tip">What is your stream about today?</div><span class="status-container empty"></span><div class="update-button-container"><button disabled="" type="button" class="ant-btn ant-btn-primary ant-btn-sm submit-button"><span>Update</span></button></div></div></div></div></div><div class="online-status-indicator"><span class="status-label">Offline</span><span class="status-icon"><span role="img" aria-label="minus-square" class="anticon anticon-minus-square"><svg viewBox="64 64 896 896" focusable="false" data-icon="minus-square" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z"></path></svg></span></span></div></header><main class="ant-layout-content main-content-container">no info</main><footer class="ant-layout-footer footer-container"><a href="https://owncast.online/?source=admin" target="_blank" rel="noopener noreferrer">About Owncast v<!-- -->0.0.0</a></footer></section></section></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/viewer-info","query":{},"buildId":"7a6totYv41sSc3NmR-l5-","assetPrefix":"/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html> \ No newline at end of file
+<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width"/><meta charSet="utf-8"/><title>Owncast Admin</title><link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png"/><meta name="next-head-count" content="4"/><link rel="preload" href="/admin/_next/static/css/8f06007bcaf49272.css" as="style"/><link rel="stylesheet" href="/admin/_next/static/css/8f06007bcaf49272.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/admin/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/admin/_next/static/chunks/webpack-d3dfca19c7a5e28c.js" defer=""></script><script src="/admin/_next/static/chunks/framework-4975f770e34de116.js" defer=""></script><script src="/admin/_next/static/chunks/main-6bdb99735697720d.js" defer=""></script><script src="/admin/_next/static/chunks/pages/_app-31024cc89d3736f1.js" defer=""></script><script src="/admin/_next/static/chunks/36bcf0ca-c1f70baa5cd8cbbf.js" defer=""></script><script src="/admin/_next/static/chunks/91-5f5f536776e2d9c6.js" defer=""></script><script src="/admin/_next/static/chunks/961-1db4468ca0742ea4.js" defer=""></script><script src="/admin/_next/static/chunks/751-f932ff7ec3e1342a.js" defer=""></script><script src="/admin/_next/static/chunks/763-6084d4b3c149b8f4.js" defer=""></script><script src="/admin/_next/static/chunks/910-ed07ccf32f311d03.js" defer=""></script><script src="/admin/_next/static/chunks/958-d85597c88a5651f8.js" defer=""></script><script src="/admin/_next/static/chunks/pages/viewer-info-a9586b5d2ecea7e8.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_buildManifest.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_ssgManifest.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_middlewareManifest.js" defer=""></script></head><body><div id="__next" data-reactroot=""><section class="ant-layout app-container"><aside class="ant-layout-sider ant-layout-sider-dark side-nav" style="flex:0 0 240px;max-width:240px;min-width:240px;width:240px"><div class="ant-layout-sider-children"><ul class="ant-menu ant-menu-root ant-menu-inline ant-menu-light menu-container" role="menu" tabindex="0" data-menu-list="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1><li class="ant-menu-item" style="padding-left:24px" role="menuitem" tabindex="-1"><span role="img" aria-label="home" class="anticon anticon-home ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="home" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/">Home</a></span></li><li class="ant-menu-item ant-menu-item-selected" style="padding-left:24px" title="Current stream" role="menuitem" tabindex="-1"><span role="img" aria-label="line-chart" class="anticon anticon-line-chart ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="line-chart" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/viewer-info/">Viewers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" style="display:block" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="message" class="anticon anticon-message ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="message" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"></path></svg></span><span class="ant-menu-title-content">Chat &amp; Users</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px;display:none" title="Fediverse followers" role="menuitem" tabindex="-1"><img alt="fediverse icon" src="/admin/fediverse-white.png" width="15rem" style="opacity:0.6;position:relative;top:-1px" class="ant-menu-item-icon"/><span class="ant-menu-title-content"><a href="/admin/federation/followers/">Followers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="setting" class="anticon anticon-setting ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="setting" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"></path></svg></span><span class="ant-menu-title-content">Configuration</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="tool" class="anticon anticon-tool ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="tool" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"></path></svg></span><span class="ant-menu-title-content">Utilities</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="experiment" class="anticon anticon-experiment ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="experiment" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z"></path></svg></span><span class="ant-menu-title-content">Integrations</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px" title="Help" role="menuitem" tabindex="-1"><span role="img" aria-label="question-circle" class="anticon anticon-question-circle ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/help/">Help</a></span></li></ul><div style="display:none" aria-hidden="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1></div></div></aside><section class="ant-layout layout-main"><header class="ant-layout-header layout-header"><div class="ant-space ant-space-horizontal ant-space-align-center"><div class="ant-space-item"><button style="display:none" type="button" class="ant-btn ant-btn-primary ant-btn-circle ant-btn-lg ant-btn-icon-only"><span role="img" aria-label="edit" class="anticon anticon-edit"><svg viewBox="64 64 896 896" focusable="false" data-icon="edit" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z"></path></svg></span></button></div></div><div class="global-stream-title-container"><div class="textfield-with-submit-container"><div class="textfield-component"><div class="formfield-container textfield-container type-default"><div class="label-side"><label for="field-streamTitle" class="formfield-label">Stream Title</label></div><div class="input-side"><div class="input-group"><span class="ant-input-affix-wrapper field field-streamTitle"><input type="text" id="field-streamTitle" class="ant-input" placeholder="What are you streaming now" maxLength="100" value=""/><span class="ant-input-suffix"><span role="button" aria-label="close-circle" tabindex="-1" class="anticon anticon-close-circle ant-input-clear-icon-hidden ant-input-clear-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"></path></svg></span></span></span></div><span class="status-container empty"></span><p class="field-tip">What is your stream about today?</p></div></div></div><div class="formfield-container lower-container"><p class="label-spacer"></p><div class="lower-content"><div class="field-tip">What is your stream about today?</div><span class="status-container empty"></span><div class="update-button-container"><button disabled="" type="button" class="ant-btn ant-btn-primary ant-btn-sm submit-button"><span>Update</span></button></div></div></div></div></div><div class="ant-space ant-space-horizontal ant-space-align-center"><div class="ant-space-item"><div class="online-status-indicator"><span class="status-label">Offline</span><span class="status-icon"><span role="img" aria-label="minus-square" class="anticon anticon-minus-square"><svg viewBox="64 64 896 896" focusable="false" data-icon="minus-square" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z"></path></svg></span></span></div></div></div></header><main class="ant-layout-content main-content-container">no info</main><footer class="ant-layout-footer footer-container"><a href="https://owncast.online/?source=admin" target="_blank" rel="noopener noreferrer">About Owncast v<!-- -->0.0.0</a></footer></section></section></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/viewer-info","query":{},"buildId":"S0l4GknIl5ifWnPqwFnrr","assetPrefix":"/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html> \ No newline at end of file
diff --git a/static/admin/webhooks/index.html b/static/admin/webhooks/index.html
index c6124262c..f5b49ffcd 100644
--- a/static/admin/webhooks/index.html
+++ b/static/admin/webhooks/index.html
@@ -1 +1 @@
-<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width"/><meta charSet="utf-8"/><title>Owncast Admin</title><link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png"/><meta name="next-head-count" content="4"/><link rel="preload" href="/admin/_next/static/css/ba0ae6285080d7f0.css" as="style"/><link rel="stylesheet" href="/admin/_next/static/css/ba0ae6285080d7f0.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/admin/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/admin/_next/static/chunks/webpack-32f373d36961f088.js" defer=""></script><script src="/admin/_next/static/chunks/framework-4975f770e34de116.js" defer=""></script><script src="/admin/_next/static/chunks/main-6bdb99735697720d.js" defer=""></script><script src="/admin/_next/static/chunks/pages/_app-4f17b8df12d0e919.js" defer=""></script><script src="/admin/_next/static/chunks/919-5396b8f9fccff000.js" defer=""></script><script src="/admin/_next/static/chunks/516-b015193bc0d6919e.js" defer=""></script><script src="/admin/_next/static/chunks/pages/webhooks-f0ab34a6aedf78cb.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_buildManifest.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_ssgManifest.js" defer=""></script><script src="/admin/_next/static/7a6totYv41sSc3NmR-l5-/_middlewareManifest.js" defer=""></script></head><body><div id="__next" data-reactroot=""><section class="ant-layout app-container"><aside class="ant-layout-sider ant-layout-sider-dark side-nav" style="flex:0 0 240px;max-width:240px;min-width:240px;width:240px"><div class="ant-layout-sider-children"><ul class="ant-menu ant-menu-root ant-menu-inline ant-menu-light menu-container" role="menu" tabindex="0" data-menu-list="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1><li class="ant-menu-item" style="padding-left:24px" role="menuitem" tabindex="-1"><span role="img" aria-label="home" class="anticon anticon-home ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="home" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/">Home</a></span></li><li class="ant-menu-item" style="padding-left:24px" title="Current stream" role="menuitem" tabindex="-1"><span role="img" aria-label="line-chart" class="anticon anticon-line-chart ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="line-chart" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/viewer-info/">Viewers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" style="display:block" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="message" class="anticon anticon-message ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="message" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"></path></svg></span><span class="ant-menu-title-content">Chat &amp; Users</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="setting" class="anticon anticon-setting ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="setting" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"></path></svg></span><span class="ant-menu-title-content">Configuration</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="tool" class="anticon anticon-tool ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="tool" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"></path></svg></span><span class="ant-menu-title-content">Utilities</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="experiment" class="anticon anticon-experiment ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="experiment" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z"></path></svg></span><span class="ant-menu-title-content">Integrations</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px" title="Help" role="menuitem" tabindex="-1"><span role="img" aria-label="question-circle" class="anticon anticon-question-circle ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/help/">Help</a></span></li></ul><div style="display:none" aria-hidden="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1></div></div></aside><section class="ant-layout layout-main"><header class="ant-layout-header layout-header"><div class="global-stream-title-container"><div class="textfield-with-submit-container"><div class="textfield-component"><div class="formfield-container textfield-container type-default"><div class="label-side"><label for="field-streamTitle" class="formfield-label">Stream Title</label></div><div class="input-side"><div class="input-group"><span class="ant-input-affix-wrapper field field-streamTitle"><input type="text" id="field-streamTitle" class="ant-input" placeholder="What are you streaming now" maxLength="100" value=""/><span class="ant-input-suffix"><span role="button" aria-label="close-circle" tabindex="-1" class="anticon anticon-close-circle ant-input-clear-icon-hidden ant-input-clear-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"></path></svg></span></span></span></div><span class="status-container empty"></span><p class="field-tip">What is your stream about today?</p></div></div></div><div class="formfield-container lower-container"><p class="label-spacer"></p><div class="lower-content"><div class="field-tip">What is your stream about today?</div><span class="status-container empty"></span><div class="update-button-container"><button disabled="" type="button" class="ant-btn ant-btn-primary ant-btn-sm submit-button"><span>Update</span></button></div></div></div></div></div><div class="online-status-indicator"><span class="status-label">Offline</span><span class="status-icon"><span role="img" aria-label="minus-square" class="anticon anticon-minus-square"><svg viewBox="64 64 896 896" focusable="false" data-icon="minus-square" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z"></path></svg></span></span></div></header><main class="ant-layout-content main-content-container"><div><h1 class="ant-typography">Webhooks</h1><div class="ant-typography">A webhook is a callback made to an external API in response to an event that takes place within Owncast. This can be used to build chat bots or sending automatic notifications that you&#x27;ve started streaming.</div><div class="ant-typography">Read more about how to use webhooks, with examples, at<!-- --> <a href="https://owncast.online/docs/integrations/?source=admin" target="_blank" rel="noopener noreferrer">our documentation</a>.</div><div class="ant-table-wrapper"><div class="ant-spin-nested-loading"><div class="ant-spin-container"><div class="ant-table ant-table-empty"><div class="ant-table-container"><div class="ant-table-content"><table style="table-layout:auto"><colgroup></colgroup><thead class="ant-table-thead"><tr><th class="ant-table-cell"></th><th class="ant-table-cell">URL</th><th class="ant-table-cell">Events</th></tr></thead><tbody class="ant-table-tbody"><tr class="ant-table-placeholder"><td colSpan="3" class="ant-table-cell"><div class="ant-empty ant-empty-normal"><div class="ant-empty-image"><svg class="ant-empty-img-simple" width="64" height="41" viewBox="0 0 64 41" xmlns="http://www.w3.org/2000/svg"><g transform="translate(0 1)" fill="none" fill-rule="evenodd"><ellipse class="ant-empty-img-simple-ellipse" cx="32" cy="33" rx="32" ry="7"></ellipse><g class="ant-empty-img-simple-g" fill-rule="nonzero"><path d="M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z"></path><path d="M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z" class="ant-empty-img-simple-path"></path></g></g></svg></div><div class="ant-empty-description">No Data</div></div></td></tr></tbody></table></div></div></div></div></div></div><br/><button type="button" class="ant-btn ant-btn-primary"><span>Create Webhook</span></button></div></main><footer class="ant-layout-footer footer-container"><a href="https://owncast.online/?source=admin" target="_blank" rel="noopener noreferrer">About Owncast v<!-- -->0.0.0</a></footer></section></section></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/webhooks","query":{},"buildId":"7a6totYv41sSc3NmR-l5-","assetPrefix":"/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html> \ No newline at end of file
+<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width"/><meta charSet="utf-8"/><title>Owncast Admin</title><link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png"/><meta name="next-head-count" content="4"/><link rel="preload" href="/admin/_next/static/css/8f06007bcaf49272.css" as="style"/><link rel="stylesheet" href="/admin/_next/static/css/8f06007bcaf49272.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/admin/_next/static/chunks/polyfills-5cd94c89d3acac5f.js"></script><script src="/admin/_next/static/chunks/webpack-d3dfca19c7a5e28c.js" defer=""></script><script src="/admin/_next/static/chunks/framework-4975f770e34de116.js" defer=""></script><script src="/admin/_next/static/chunks/main-6bdb99735697720d.js" defer=""></script><script src="/admin/_next/static/chunks/pages/_app-31024cc89d3736f1.js" defer=""></script><script src="/admin/_next/static/chunks/829-c8d1f3db438c210b.js" defer=""></script><script src="/admin/_next/static/chunks/pages/webhooks-8b96f4afcc72aba4.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_buildManifest.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_ssgManifest.js" defer=""></script><script src="/admin/_next/static/S0l4GknIl5ifWnPqwFnrr/_middlewareManifest.js" defer=""></script></head><body><div id="__next" data-reactroot=""><section class="ant-layout app-container"><aside class="ant-layout-sider ant-layout-sider-dark side-nav" style="flex:0 0 240px;max-width:240px;min-width:240px;width:240px"><div class="ant-layout-sider-children"><ul class="ant-menu ant-menu-root ant-menu-inline ant-menu-light menu-container" role="menu" tabindex="0" data-menu-list="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1><li class="ant-menu-item" style="padding-left:24px" role="menuitem" tabindex="-1"><span role="img" aria-label="home" class="anticon anticon-home ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="home" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/">Home</a></span></li><li class="ant-menu-item" style="padding-left:24px" title="Current stream" role="menuitem" tabindex="-1"><span role="img" aria-label="line-chart" class="anticon anticon-line-chart ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="line-chart" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/viewer-info/">Viewers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" style="display:block" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="message" class="anticon anticon-message ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="message" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"></path></svg></span><span class="ant-menu-title-content">Chat &amp; Users</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px;display:none" title="Fediverse followers" role="menuitem" tabindex="-1"><img alt="fediverse icon" src="/admin/fediverse-white.png" width="15rem" style="opacity:0.6;position:relative;top:-1px" class="ant-menu-item-icon"/><span class="ant-menu-title-content"><a href="/admin/federation/followers/">Followers</a></span></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="setting" class="anticon anticon-setting ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="setting" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z"></path></svg></span><span class="ant-menu-title-content">Configuration</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="tool" class="anticon anticon-tool ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="tool" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"></path></svg></span><span class="ant-menu-title-content">Utilities</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-submenu ant-menu-submenu-inline" role="none"><div role="menuitem" style="padding-left:24px" class="ant-menu-submenu-title" tabindex="-1" aria-expanded="false" aria-haspopup="true"><span role="img" aria-label="experiment" class="anticon anticon-experiment ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="experiment" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z"></path></svg></span><span class="ant-menu-title-content">Integrations</span><i class="ant-menu-submenu-arrow"></i></div></li><li class="ant-menu-item" style="padding-left:24px" title="Help" role="menuitem" tabindex="-1"><span role="img" aria-label="question-circle" class="anticon anticon-question-circle ant-menu-item-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="question-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"></path><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"></path></svg></span><span class="ant-menu-title-content"><a href="/admin/help/">Help</a></span></li></ul><div style="display:none" aria-hidden="true"><h1 class="owncast-title" eventKey="tmp_key-0"><span class="logo-container"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.68623352050781 104.46271514892578" class="logo-svg"><g transform="matrix(1 0 0 1 -37.08803939819336 -18.940391540527344)"><g><g><g><g transform="matrix(1.0445680396949917 0 0 1.0445679172996596 36.34559138380523 18.877718021903796)"><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient120" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#1f2022" stop-opacity="1"></stop><stop offset="1" stop-color="#635e69" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient120)" d="M91.5 75.35Q93.05 71.15 91.65 67.7 90.35 64.5 86.65 62.3 83.2 60.3 78.3 59.4 73.85 58.6 68.6 58.7 63.55 58.85 58.8 59.8 54.25 60.75 50.8 62.2 47.4 63.65 45.5 65.35 43.6 67.15 43.5 69.05 43.35 71.3 45.8 73.9 48.05 76.3 52.1 78.6 56.15 80.9 61.05 82.55 66.3 84.3 71.4 84.8 74.7 85.1 77.55 84.9 80.65 84.6 83.3 83.6 86.15 82.5 88.15 80.55 90.4 78.4 91.5 75.35M70.6 67.5Q72.3 68.4 73.1 69.7 73.9 71.15 73.45 73 73.1 74.3 72.3 75.25 71.55 76.1 70.3 76.6 69.25 77.05 67.75 77.25 66.3 77.4 64.85 77.3 62.3 77.15 59.25 76.3 56.6 75.5 54.15 74.3 51.9 73.2 50.45 72 49.05 70.75 49.1 69.8 49.2 69 50.25 68.25 51.3 67.55 53.15 67 55 66.4 57.25 66.1 59.8 65.8 62.1 65.8 64.65 65.85 66.7 66.2 68.9 66.65 70.6 67.5Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient121" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#2087e2" stop-opacity="1"></stop><stop offset="1" stop-color="#b63fff" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient121)" d="M66.6 15.05Q66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.75 18.45 32.7 23.4 31.7 28.05 31.35 32.85 31.05 37.2 31.3 41.2 31.6 45.15 32.4 48.35 34 54.9 37.3 56.4 37.6 56.55 37.9 56.65L39.2 56.85Q39.45 56.85 39.95 56.8 42.05 56.6 44.7 55.05 47.25 53.5 50.05 50.8 53.05 47.9 55.85 44.05 58.8 40.05 61.1 35.6 63.8 30.35 65.25 25.3 66.75 19.75 66.6 15.05M47.55 23.15Q48.05 23.25 48.4 23.4 52.45 24.8 52.55 29.85 52.6 34 50 39.4 47.85 43.9 44.85 47.3 42.05 50.5 40.15 50.7L39.9 50.75 39.45 50.7 39.2 50.6Q37.8 49.95 37.25 46.35 36.7 42.7 37.3 38 37.95 32.75 39.75 28.8 41.9 24.1 45.05 23.25 45.6 23.1 45.85 23.1 46.25 23.05 46.65 23.05 47.05 23.05 47.55 23.15Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient122" gradientTransform="rotate(-90 .5 .5)"><stop offset="0" stop-color="#100f0f" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient122)" d="M2.7 33.6Q2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7 0 42.6 2.2 47.2 4 51 8 54.35 11.55 57.3 16 59.15 20.5 61 23.85 60.85 24.5 60.85 25.25 60.7 26 60.55 26.5 60.3 27 60.05 27.45 59.65 27.9 59.25 28.15 58.75 29.35 56.45 27.5 51.65 25.6 47 21.75 42.1 17.75 37 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6M10.1 43.55Q10.35 43.1 10.6 42.85 10.85 42.6 11.2 42.4 11.6 42.25 11.9 42.2 13.5 41.9 15.95 43.6 18.15 45.05 20.35 47.7 22.35 50.1 23.55 52.4 24.7 54.75 24.25 55.7 24.15 55.9 24 56 23.85 56.2 23.65 56.25 23.55 56.35 23.25 56.4L22.7 56.5Q21.1 56.6 18.55 55.6 16.05 54.6 13.85 52.95 11.5 51.2 10.35 49.15 9.05 46.8 9.75 44.45 9.9 43.95 10.1 43.55Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient123" gradientTransform="rotate(-180 .5 .5)"><stop offset="0" stop-color="#222020" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient123)" d="M34.95 74.2L34.75 74.2Q33.2 74.15 31.9 75.25 30.7 76.3 29.85 78.25 29.1 80 28.8 82.2 28.5 84.4 28.7 86.65 29.1 91.4 31.5 94.7 34.3 98.5 39.3 99.7L39.4 99.7 39.7 99.8 39.85 99.8Q45.3 100.85 47.15 97.75 48 96.3 48 94.05 47.95 91.9 47.2 89.35 46.45 86.75 45.1 84.15 43.75 81.5 42.05 79.35 40.25 77.1 38.45 75.75 36.55 74.35 34.95 74.2M33.55 80.4Q34.35 78.2 35.6 78.3L35.65 78.3Q36.9 78.45 38.6 80.9 40.3 83.35 41.15 86.05 42.1 89 41.55 90.75 40.9 92.6 38.35 92.25L38.3 92.25 38.25 92.2 38.1 92.2Q35.6 91.7 34.25 89.6 33.1 87.7 32.95 85 32.8 82.35 33.55 80.4Z"></path></g><g transform="matrix(0.9999999999999999 0 0 1 0 5.684341886080802e-14)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient124" gradientTransform="rotate(-180 .5 .5)"> <stop offset="0" stop-color="#1e1c1c" stop-opacity="1"></stop><stop offset="1" stop-color="#49261F" stop-opacity="1"></stop></linearGradient></defs><path fill="url(#gradient124)" d="M22.7 69.65Q22.25 69.3 21.6 69.05 20.95 68.8 20.25 68.7 19.6 68.55 18.85 68.5 16.7 68.45 14.65 69.15 12.65 69.8 11.4 71.1 10.15 72.5 10.2 74.2 10.25 76.05 11.95 78.2 12.4 78.75 13.05 79.4 13.55 79.9 14.2 80.3 14.7 80.6 15.3 80.85 16 81.1 16.4 81.1 18.2 81.35 19.9 80.35 21.55 79.4 22.75 77.65 24 75.85 24.3 73.95 24.6 71.85 23.55 70.5 23.15 70 22.7 69.65M21.7 71.7Q22.15 72.3 21.9 73.3 21.7 74.25 21 75.25 20.3 76.2 19.4 76.75 18.45 77.35 17.55 77.25L17 77.15Q16.7 77.05 16.45 76.85 16.25 76.75 15.9 76.45 15.7 76.25 15.4 75.9 14.5 74.75 14.7 73.8 14.8 72.95 15.75 72.3 16.6 71.7 17.8 71.4 19 71.1 20.1 71.15L20.65 71.2 21.1 71.3Q21.3 71.4 21.45 71.5L21.7 71.7Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient125" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient125)" d="M52.6 19.25Q59.6 19.25 66.2 20.95 66.7 17.8 66.6 15.05 66.4 9.65 63.9 6.05 61.25 2.1 56.1 0.65 54.95 0.3 53.65 0.15 52.5 0 51.3 0.1 50.2 0.1 49.1 0.35 48.15 0.55 47 1 43.3 2.45 40.3 6.1 37.5 9.4 35.5 14.3 33.85 18.3 32.8 22.85 42.25 19.25 52.6 19.25Z"></path></g><g transform="matrix(1 0 0 1 0 0)"><defs><linearGradient x1="0" y1="0" x2="0" y2="1" id="gradient126" gradientTransform="rotate(-360 .5 .5)"><stop offset="0" stop-color="#FFFFFF" stop-opacity="0.5"></stop><stop offset="1" stop-color="#FFFFFF" stop-opacity="0.2"></stop></linearGradient></defs><path fill="url(#gradient126)" d="M1.05 37.7Q0 42.6 2.2 47.2 2.95 48.8 4.05 50.25 7.55 41.65 14.4 34.75 14 34.45 13.4 34.05 8.7 30.9 5.45 31.7 4.65 31.9 3.95 32.4 3.25 32.85 2.7 33.6 2.1 34.4 1.7 35.35 1.25 36.5 1.05 37.7Z"></path></g></g></g><g transform="matrix(1.219512230276127 0 0 1.2195122143630526 32.82519274395008 88.56945194723018)"><path fill="#000000" fill-opacity="1" d=""></path></g></g></g></g></svg></span><span class="title-label">Owncast Admin</span></h1></div></div></aside><section class="ant-layout layout-main"><header class="ant-layout-header layout-header"><div class="ant-space ant-space-horizontal ant-space-align-center"><div class="ant-space-item"><button style="display:none" type="button" class="ant-btn ant-btn-primary ant-btn-circle ant-btn-lg ant-btn-icon-only"><span role="img" aria-label="edit" class="anticon anticon-edit"><svg viewBox="64 64 896 896" focusable="false" data-icon="edit" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z"></path></svg></span></button></div></div><div class="global-stream-title-container"><div class="textfield-with-submit-container"><div class="textfield-component"><div class="formfield-container textfield-container type-default"><div class="label-side"><label for="field-streamTitle" class="formfield-label">Stream Title</label></div><div class="input-side"><div class="input-group"><span class="ant-input-affix-wrapper field field-streamTitle"><input type="text" id="field-streamTitle" class="ant-input" placeholder="What are you streaming now" maxLength="100" value=""/><span class="ant-input-suffix"><span role="button" aria-label="close-circle" tabindex="-1" class="anticon anticon-close-circle ant-input-clear-icon-hidden ant-input-clear-icon"><svg viewBox="64 64 896 896" focusable="false" data-icon="close-circle" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"></path></svg></span></span></span></div><span class="status-container empty"></span><p class="field-tip">What is your stream about today?</p></div></div></div><div class="formfield-container lower-container"><p class="label-spacer"></p><div class="lower-content"><div class="field-tip">What is your stream about today?</div><span class="status-container empty"></span><div class="update-button-container"><button disabled="" type="button" class="ant-btn ant-btn-primary ant-btn-sm submit-button"><span>Update</span></button></div></div></div></div></div><div class="ant-space ant-space-horizontal ant-space-align-center"><div class="ant-space-item"><div class="online-status-indicator"><span class="status-label">Offline</span><span class="status-icon"><span role="img" aria-label="minus-square" class="anticon anticon-minus-square"><svg viewBox="64 64 896 896" focusable="false" data-icon="minus-square" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z"></path></svg></span></span></div></div></div></header><main class="ant-layout-content main-content-container"><div><h1 class="ant-typography">Webhooks</h1><div class="ant-typography">A webhook is a callback made to an external API in response to an event that takes place within Owncast. This can be used to build chat bots or sending automatic notifications that you&#x27;ve started streaming.</div><div class="ant-typography">Read more about how to use webhooks, with examples, at<!-- --> <a href="https://owncast.online/docs/integrations/?source=admin" target="_blank" rel="noopener noreferrer">our documentation</a>.</div><div class="ant-table-wrapper"><div class="ant-spin-nested-loading"><div class="ant-spin-container"><div class="ant-table ant-table-empty"><div class="ant-table-container"><div class="ant-table-content"><table style="table-layout:auto"><colgroup></colgroup><thead class="ant-table-thead"><tr><th class="ant-table-cell"></th><th class="ant-table-cell">URL</th><th class="ant-table-cell">Events</th></tr></thead><tbody class="ant-table-tbody"><tr class="ant-table-placeholder"><td colSpan="3" class="ant-table-cell"><div class="ant-empty ant-empty-normal"><div class="ant-empty-image"><svg class="ant-empty-img-simple" width="64" height="41" viewBox="0 0 64 41" xmlns="http://www.w3.org/2000/svg"><g transform="translate(0 1)" fill="none" fill-rule="evenodd"><ellipse class="ant-empty-img-simple-ellipse" cx="32" cy="33" rx="32" ry="7"></ellipse><g class="ant-empty-img-simple-g" fill-rule="nonzero"><path d="M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z"></path><path d="M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z" class="ant-empty-img-simple-path"></path></g></g></svg></div><div class="ant-empty-description">No Data</div></div></td></tr></tbody></table></div></div></div></div></div></div><br/><button type="button" class="ant-btn ant-btn-primary"><span>Create Webhook</span></button></div></main><footer class="ant-layout-footer footer-container"><a href="https://owncast.online/?source=admin" target="_blank" rel="noopener noreferrer">About Owncast v<!-- -->0.0.0</a></footer></section></section></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/webhooks","query":{},"buildId":"S0l4GknIl5ifWnPqwFnrr","assetPrefix":"/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html> \ No newline at end of file
diff --git a/test/automated/api/chatusers.test.js b/test/automated/api/chatusers.test.js
index e509bfb9e..0cb991338 100644
--- a/test/automated/api/chatusers.test.js
+++ b/test/automated/api/chatusers.test.js
@@ -56,7 +56,7 @@ test('verify messages from user are hidden', async (done) => {
const message = response.body.filter((obj) => {
return obj.user.id === userId;
});
- expect(message[0].hiddenAt).toBeTruthy();
+ expect(message[0].user.disabledAt).toBeTruthy();
done();
});
diff --git a/utils/utils.go b/utils/utils.go
index 77c2474d3..e4610c97c 100644
--- a/utils/utils.go
+++ b/utils/utils.go
@@ -231,7 +231,7 @@ func ValidatedFfmpegPath(ffmpegPath string) string {
cmd := exec.Command("which", "ffmpeg")
out, err := cmd.CombinedOutput()
if err != nil {
- log.Fatalln("Unable to determine path to ffmpeg. Please make sure it is installed either globally or a copy exists in the owncast directory.")
+ log.Fatalln("Unable to determine path to ffmpeg. Please specify it in the config file.")
}
path := strings.TrimSpace(string(out))
@@ -312,3 +312,19 @@ func GenerateRandomDisplayColor() int {
rangeUpper := 360
return rangeLower + rand.Intn(rangeUpper-rangeLower+1) //nolint
}
+
+// GetHostnameFromURL will return the hostname component from a URL string.
+func GetHostnameFromURL(u url.URL) string {
+ return u.Host
+}
+
+// GetHostnameFromURLString will return the hostname component from a URL object.
+func GetHostnameFromURLString(s string) string {
+ u, err := url.Parse(s)
+
+ if err != nil {
+ return ""
+ }
+
+ return u.Host
+}
diff --git a/webroot/img/fediverse-black.png b/webroot/img/fediverse-black.png
new file mode 100644
index 000000000..60179e17c
--- /dev/null
+++ b/webroot/img/fediverse-black.png
Binary files differ
diff --git a/webroot/img/fediverse-color.png b/webroot/img/fediverse-color.png
new file mode 100644
index 000000000..534b2be9a
--- /dev/null
+++ b/webroot/img/fediverse-color.png
Binary files differ
diff --git a/webroot/img/fediverse-white.png b/webroot/img/fediverse-white.png
new file mode 100644
index 000000000..a63a7acbd
--- /dev/null
+++ b/webroot/img/fediverse-white.png
Binary files differ
diff --git a/webroot/img/follow.svg b/webroot/img/follow.svg
new file mode 100644
index 000000000..dc116d3b7
--- /dev/null
+++ b/webroot/img/follow.svg
@@ -0,0 +1,312 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ sodipodi:docname="Follow.svg"
+ inkscape:version="1.1.1 (c3084ef, 2021-09-22)"
+ id="svg1314"
+ version="1.1"
+ viewBox="0 0 132.29166 132.29167"
+ height="500"
+ width="500"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:dc="http://purl.org/dc/elements/1.1/">
+ <defs
+ id="defs1308">
+ <inkscape:path-effect
+ hide_knots="false"
+ only_selected="false"
+ apply_with_radius="true"
+ apply_no_radius="true"
+ use_knot_distance="true"
+ flexible="false"
+ chamfer_steps="1"
+ radius="22"
+ mode="F"
+ method="auto"
+ unit="px"
+ satellites_param="F,0,0,1,0,5.8208333,0,1 @ F,0,0,1,0,5.8208333,0,1 @ F,0,0,1,0,5.8208333,0,1 @ F,0,0,1,0,5.8208333,0,1"
+ lpeversion="1"
+ is_visible="true"
+ id="path-effect2100"
+ effect="fillet_chamfer" />
+ <inkscape:path-effect
+ effect="fillet_chamfer"
+ id="path-effect2018"
+ is_visible="true"
+ lpeversion="1"
+ satellites_param="F,0,0,1,0,5.8208333,0,1 @ F,0,0,1,0,5.8208333,0,1 @ F,0,0,1,0,5.8208333,0,1 @ F,0,0,1,0,5.8208333,0,1"
+ unit="px"
+ method="auto"
+ mode="F"
+ radius="22"
+ chamfer_steps="1"
+ flexible="false"
+ use_knot_distance="true"
+ apply_no_radius="true"
+ apply_with_radius="true"
+ only_selected="false"
+ hide_knots="false" />
+ <linearGradient
+ x1="39.48497"
+ y1="0.047389723"
+ x2="39.48497"
+ y2="44.901764"
+ id="linearGradient2278"
+ gradientTransform="scale(0.78982873,1.2660973)"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ offset="0"
+ stop-color="#2087e2"
+ stop-opacity="1"
+ id="stop2026" />
+ <stop
+ offset="1"
+ stop-color="#b63fff"
+ stop-opacity="1"
+ id="stop2028" />
+ </linearGradient>
+ <inkscape:path-effect
+ hide_knots="false"
+ only_selected="false"
+ apply_with_radius="true"
+ apply_no_radius="true"
+ use_knot_distance="true"
+ flexible="false"
+ chamfer_steps="1"
+ radius="22"
+ mode="F"
+ method="auto"
+ unit="px"
+ satellites_param="F,0,0,1,0,5.8208333,0,1 @ F,0,0,1,0,5.8208333,0,1 @ F,0,0,1,0,5.8208333,0,1 @ F,0,0,1,0,5.8208333,0,1"
+ lpeversion="1"
+ is_visible="true"
+ id="path-effect1458"
+ effect="fillet_chamfer" />
+ <linearGradient
+ y2="71.171745"
+ x2="132.77428"
+ y1="71.171745"
+ x1="37.088039"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1584"
+ xlink:href="#RESERVED_FOR_INKSCAPE_DUPLICATE_DEF_000000000"
+ inkscape:collect="always" />
+ <linearGradient
+ x1="0.83099705"
+ y1="26.975092"
+ x2="0.83099705"
+ y2="42.979877"
+ id="linearGradient1915"
+ gradientTransform="scale(0.85532098,1.1691517)"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ offset="0"
+ stop-color="#FFFFFF"
+ stop-opacity="0.5"
+ id="stop2071" />
+ <stop
+ offset="1"
+ stop-color="#FFFFFF"
+ stop-opacity="0.2"
+ id="stop2073" />
+ </linearGradient>
+ <rect
+ id="rect1590"
+ height="155.13683"
+ width="136.01654"
+ y="26.752991"
+ x="44.191872" />
+ <rect
+ id="rect1281"
+ height="155.13683"
+ width="136.01654"
+ y="26.752991"
+ x="44.191872" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#RESERVED_FOR_INKSCAPE_DUPLICATE_DEF_000000000"
+ id="linearGradient1584-5"
+ gradientUnits="userSpaceOnUse"
+ x1="37.088039"
+ y1="71.171745"
+ x2="132.77428"
+ y2="71.171745" />
+ <rect
+ x="44.191872"
+ y="26.752991"
+ width="136.01654"
+ height="155.13683"
+ id="rect1590-2" />
+ <rect
+ x="44.191872"
+ y="26.752991"
+ width="136.01654"
+ height="155.13683"
+ id="rect2032" />
+ <rect
+ id="rect1590-2-9"
+ height="155.13683"
+ width="136.01654"
+ y="26.752991"
+ x="44.191872" />
+ <rect
+ id="rect2130"
+ height="155.13683"
+ width="136.01654"
+ y="26.752991"
+ x="44.191872" />
+ <inkscape:path-effect
+ hide_knots="false"
+ only_selected="false"
+ apply_with_radius="true"
+ apply_no_radius="true"
+ use_knot_distance="true"
+ flexible="false"
+ chamfer_steps="1"
+ radius="22"
+ mode="F"
+ method="auto"
+ unit="px"
+ satellites_param="F,0,0,1,0,5.8208333,0,1 @ F,0,0,1,0,5.8208333,0,1 @ F,0,0,1,0,5.8208333,0,1 @ F,0,0,1,0,5.8208333,0,1"
+ lpeversion="1"
+ is_visible="true"
+ id="path-effect1148"
+ effect="fillet_chamfer" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2278"
+ id="linearGradient1150"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(155.92963)"
+ x1="276.92184"
+ y1="49.976803"
+ x2="308.71417"
+ y2="49.976803" />
+ </defs>
+ <sodipodi:namedview
+ inkscape:window-maximized="0"
+ inkscape:window-y="23"
+ inkscape:window-x="1280"
+ inkscape:window-height="1035"
+ inkscape:window-width="1920"
+ inkscape:guide-bbox="true"
+ showguides="false"
+ units="px"
+ showgrid="false"
+ inkscape:document-rotation="0"
+ inkscape:current-layer="layer6"
+ inkscape:document-units="mm"
+ inkscape:cy="275.39497"
+ inkscape:cx="289.69028"
+ inkscape:zoom="1.1892011"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ inkscape:pagecheckerboard="0">
+ <sodipodi:guide
+ id="guide2200"
+ orientation="1,0"
+ position="44.558367,13.027415" />
+ <sodipodi:guide
+ id="guide2202"
+ orientation="1,0"
+ position="88.02151,12.912128" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata1311">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ style="display:inline"
+ inkscape:label="Background"
+ id="layer2"
+ inkscape:groupmode="layer">
+ <path
+ transform="matrix(4.161118,0,0,4.1611093,-1801.1461,-141.81325)"
+ inkscape:path-effect="#path-effect1148"
+ style="display:inline;fill:url(#linearGradient1150);fill-opacity:1;stroke:none;stroke-width:0.207662;stroke-opacity:1"
+ id="path1086"
+ width="31.792337"
+ height="31.792337"
+ x="432.85147"
+ y="34.080635"
+ sodipodi:type="rect"
+ inkscape:export-filename="/Users/don/Desktop/Draft-01.png"
+ inkscape:export-xdpi="115.64"
+ inkscape:export-ydpi="115.64"
+ d="m 438.6723,34.080635 h 20.15068 a 5.8208333,5.8208333 45 0 1 5.82083,5.820833 v 20.150671 a 5.8208333,5.8208333 135 0 1 -5.82083,5.820833 H 438.6723 a 5.8208333,5.8208333 45 0 1 -5.82083,-5.820833 V 39.901468 a 5.8208333,5.8208333 135 0 1 5.82083,-5.820833 z" />
+ </g>
+ <g
+ style="display:inline"
+ inkscape:label="Shadow"
+ id="layer6"
+ inkscape:groupmode="layer">
+ <path
+ sodipodi:nodetypes="cccccccc"
+ id="path1843"
+ style="display:inline;opacity:0.85;fill:#8842da;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 906.37607,136.92939 -1.16908,21.51397 -21.18682,0.9402 23.86651,33.56761 h 6.78711 c 12.63935,-7.7e-4 22.88508,-10.24737 22.88476,-22.88672 v -17.37304 z"
+ transform="matrix(1.0583333,0,0,1.0583314,-859.95885,-71.914618)"
+ inkscape:export-filename="/Users/don/Desktop/Draft-01.png"
+ inkscape:export-xdpi="115.64"
+ inkscape:export-ydpi="115.64" />
+ </g>
+ <g
+ style="display:inline"
+ inkscape:label="Outline"
+ id="layer3"
+ inkscape:groupmode="layer">
+ <circle
+ style="display:inline;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:8.78842;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path1797"
+ cx="876.2179"
+ cy="118.02967"
+ r="21.553619"
+ transform="matrix(0.90817292,0,0,0.91240816,-737.0168,-65.427926)"
+ inkscape:export-filename="/Users/don/Desktop/Draft-01.png"
+ inkscape:export-xdpi="115.64"
+ inkscape:export-ydpi="115.64" />
+ <path
+ id="path1831"
+ style="display:inline;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:6.64064;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 845.10701,163.99555 c 0,-16.54233 13.41021,-29.95253 29.95254,-29.95253 7.21351,0 14.1847,2.60326 19.63258,7.3314"
+ transform="matrix(1.1474324,0,0,1.2648307,-944.18797,-103.00395)"
+ sodipodi:nodetypes="csc"
+ inkscape:export-filename="/Users/don/Desktop/Draft-01.png"
+ inkscape:export-xdpi="115.64"
+ inkscape:export-ydpi="115.64" />
+ <path
+ style="display:inline;fill:#ffffff;stroke:#ffffff;stroke-width:7.55906;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 881.64121,159.87402 34.92069,0.27968"
+ id="path1839"
+ transform="matrix(1.0583333,0,0,1.0583314,-853.60885,-74.031283)"
+ sodipodi:nodetypes="cc"
+ inkscape:export-filename="/Users/don/Desktop/Draft-01.png"
+ inkscape:export-xdpi="115.64"
+ inkscape:export-ydpi="115.64" />
+ <path
+ sodipodi:nodetypes="cc"
+ transform="matrix(0,1.0583314,-1.0583333,0,267.28831,-856.231)"
+ id="path1841"
+ d="m 881.64121,159.87402 34.92069,0.27968"
+ style="display:inline;fill:#ffffff;stroke:#ffffff;stroke-width:7.55906;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ inkscape:export-filename="/Users/don/Desktop/Draft-01.png"
+ inkscape:export-xdpi="115.64"
+ inkscape:export-ydpi="115.64" />
+ </g>
+</svg>
diff --git a/webroot/img/like.svg b/webroot/img/like.svg
new file mode 100644
index 000000000..4e022fe4b
--- /dev/null
+++ b/webroot/img/like.svg
@@ -0,0 +1,315 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ sodipodi:docname="Heart.svg"
+ inkscape:version="1.1.1 (c3084ef, 2021-09-22)"
+ id="svg1314"
+ version="1.1"
+ viewBox="0 0 132.29166 132.29167"
+ height="500"
+ width="500"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:dc="http://purl.org/dc/elements/1.1/">
+ <defs
+ id="defs1308">
+ <inkscape:path-effect
+ effect="fillet_chamfer"
+ id="path-effect1810"
+ is_visible="true"
+ lpeversion="1"
+ satellites_param="F,0,0,1,0,5.8208333,0,1 @ F,0,0,1,0,5.8208333,0,1 @ F,0,0,1,0,5.8208333,0,1 @ F,0,0,1,0,5.8208333,0,1"
+ unit="px"
+ method="auto"
+ mode="F"
+ radius="22"
+ chamfer_steps="1"
+ flexible="false"
+ use_knot_distance="true"
+ apply_no_radius="true"
+ apply_with_radius="true"
+ only_selected="false"
+ hide_knots="false" />
+ <inkscape:path-effect
+ hide_knots="false"
+ only_selected="false"
+ apply_with_radius="true"
+ apply_no_radius="true"
+ use_knot_distance="true"
+ flexible="false"
+ chamfer_steps="1"
+ radius="22"
+ mode="F"
+ method="auto"
+ unit="px"
+ satellites_param="F,0,0,1,0,5.8208333,0,1 @ F,0,0,1,0,5.8208333,0,1 @ F,0,0,1,0,5.8208333,0,1 @ F,0,0,1,0,5.8208333,0,1"
+ lpeversion="1"
+ is_visible="true"
+ id="path-effect2100"
+ effect="fillet_chamfer" />
+ <inkscape:path-effect
+ effect="fillet_chamfer"
+ id="path-effect2018"
+ is_visible="true"
+ lpeversion="1"
+ satellites_param="F,0,0,1,0,5.8208333,0,1 @ F,0,0,1,0,5.8208333,0,1 @ F,0,0,1,0,5.8208333,0,1 @ F,0,0,1,0,5.8208333,0,1"
+ unit="px"
+ method="auto"
+ mode="F"
+ radius="22"
+ chamfer_steps="1"
+ flexible="false"
+ use_knot_distance="true"
+ apply_no_radius="true"
+ apply_with_radius="true"
+ only_selected="false"
+ hide_knots="false" />
+ <linearGradient
+ x1="39.48497"
+ y1="0.047389723"
+ x2="39.48497"
+ y2="44.901764"
+ id="linearGradient2278"
+ gradientTransform="scale(0.78982873,1.2660973)"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ offset="0"
+ stop-color="#2087e2"
+ stop-opacity="1"
+ id="stop2026" />
+ <stop
+ offset="1"
+ stop-color="#b63fff"
+ stop-opacity="1"
+ id="stop2028" />
+ </linearGradient>
+ <inkscape:path-effect
+ hide_knots="false"
+ only_selected="false"
+ apply_with_radius="true"
+ apply_no_radius="true"
+ use_knot_distance="true"
+ flexible="false"
+ chamfer_steps="1"
+ radius="22"
+ mode="F"
+ method="auto"
+ unit="px"
+ satellites_param="F,0,0,1,0,5.8208333,0,1 @ F,0,0,1,0,5.8208333,0,1 @ F,0,0,1,0,5.8208333,0,1 @ F,0,0,1,0,5.8208333,0,1"
+ lpeversion="1"
+ is_visible="true"
+ id="path-effect1458"
+ effect="fillet_chamfer" />
+ <linearGradient
+ y2="71.171745"
+ x2="132.77428"
+ y1="71.171745"
+ x1="37.088039"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1584"
+ xlink:href="#RESERVED_FOR_INKSCAPE_DUPLICATE_DEF_000000000"
+ inkscape:collect="always" />
+ <linearGradient
+ x1="0.83099705"
+ y1="26.975092"
+ x2="0.83099705"
+ y2="42.979877"
+ id="linearGradient1915"
+ gradientTransform="scale(0.85532098,1.1691517)"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ offset="0"
+ stop-color="#FFFFFF"
+ stop-opacity="0.5"
+ id="stop2071" />
+ <stop
+ offset="1"
+ stop-color="#FFFFFF"
+ stop-opacity="0.2"
+ id="stop2073" />
+ </linearGradient>
+ <rect
+ id="rect1590"
+ height="155.13683"
+ width="136.01654"
+ y="26.752991"
+ x="44.191872" />
+ <rect
+ id="rect1281"
+ height="155.13683"
+ width="136.01654"
+ y="26.752991"
+ x="44.191872" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#RESERVED_FOR_INKSCAPE_DUPLICATE_DEF_000000000"
+ id="linearGradient1584-5"
+ gradientUnits="userSpaceOnUse"
+ x1="37.088039"
+ y1="71.171745"
+ x2="132.77428"
+ y2="71.171745" />
+ <rect
+ x="44.191872"
+ y="26.752991"
+ width="136.01654"
+ height="155.13683"
+ id="rect1590-2" />
+ <rect
+ x="44.191872"
+ y="26.752991"
+ width="136.01654"
+ height="155.13683"
+ id="rect2032" />
+ <rect
+ id="rect1590-2-9"
+ height="155.13683"
+ width="136.01654"
+ y="26.752991"
+ x="44.191872" />
+ <rect
+ id="rect2130"
+ height="155.13683"
+ width="136.01654"
+ y="26.752991"
+ x="44.191872" />
+ <inkscape:path-effect
+ effect="fillet_chamfer"
+ id="path-effect2337"
+ is_visible="true"
+ lpeversion="1"
+ satellites_param="F,0,0,1,0,5.8208333,0,1 @ F,0,0,1,0,5.8208333,0,1 @ F,0,0,1,0,5.8208333,0,1 @ F,0,0,1,0,5.8208333,0,1"
+ unit="px"
+ method="auto"
+ mode="F"
+ radius="22"
+ chamfer_steps="1"
+ flexible="false"
+ use_knot_distance="true"
+ apply_no_radius="true"
+ apply_with_radius="true"
+ only_selected="false"
+ hide_knots="false" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2278"
+ id="linearGradient1812"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(155.92963)"
+ x1="276.92184"
+ y1="49.976803"
+ x2="308.71417"
+ y2="49.976803" />
+ </defs>
+ <sodipodi:namedview
+ inkscape:window-maximized="0"
+ inkscape:window-y="23"
+ inkscape:window-x="1280"
+ inkscape:window-height="1035"
+ inkscape:window-width="1920"
+ inkscape:guide-bbox="true"
+ showguides="false"
+ units="px"
+ showgrid="false"
+ inkscape:document-rotation="0"
+ inkscape:current-layer="layer2"
+ inkscape:document-units="mm"
+ inkscape:cy="275.39497"
+ inkscape:cx="289.69028"
+ inkscape:zoom="1.1892011"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ inkscape:pagecheckerboard="0">
+ <sodipodi:guide
+ id="guide2200"
+ orientation="1,0"
+ position="44.558367,13.027415" />
+ <sodipodi:guide
+ id="guide2202"
+ orientation="1,0"
+ position="88.02151,12.912128" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata1311">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ style="display:inline"
+ inkscape:label="Background"
+ id="layer2"
+ inkscape:groupmode="layer">
+ <path
+ sodipodi:type="rect"
+ y="34.080635"
+ x="432.85147"
+ height="31.792337"
+ width="31.792337"
+ id="path2238-5"
+ style="display:inline;fill:url(#linearGradient1812);fill-opacity:1;stroke:none;stroke-width:0.207662;stroke-opacity:1"
+ inkscape:path-effect="#path-effect1810"
+ transform="matrix(4.1611053,0,0,4.1611038,-1801.1405,-141.81306)"
+ inkscape:export-filename="/Users/don/Desktop/Draft-01.png"
+ inkscape:export-xdpi="115.64"
+ inkscape:export-ydpi="115.64"
+ d="m 438.6723,34.080635 h 20.15068 a 5.8208333,5.8208333 45 0 1 5.82083,5.820833 v 20.150671 a 5.8208333,5.8208333 135 0 1 -5.82083,5.820833 H 438.6723 a 5.8208333,5.8208333 45 0 1 -5.82083,-5.820833 V 39.901468 a 5.8208333,5.8208333 135 0 1 5.82083,-5.820833 z" />
+ </g>
+ <g
+ style="display:inline"
+ inkscape:label="Shadow"
+ id="layer6"
+ inkscape:groupmode="layer">
+ <path
+ id="path2341"
+ style="display:inline;opacity:0.75;fill:#853dd0;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 604.31641,64.029297 3.55078,7.783203 5.08203,22.791016 -19.42383,28.058594 -27.0957,19.52148 -33.69531,-23.11914 46.80664,46.15625 h 26.50195 a 22.886149,22.886142 0 0 0 22.88672,-22.88672 V 81.951172 Z"
+ transform="matrix(1.0583301,0,0,1.05833,-533.32357,-42.566358)"
+ inkscape:export-filename="/Users/don/Desktop/Draft-01.png"
+ inkscape:export-xdpi="115.64"
+ inkscape:export-ydpi="115.64" />
+ </g>
+ <g
+ style="display:inline"
+ inkscape:label="Reflection"
+ id="layer5"
+ inkscape:groupmode="layer">
+ <path
+ style="display:inline;fill:#8392ee;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 552.91873,75.535789 c 0,0 -38.26097,-7.735196 -18.92593,27.162051 14.58324,26.32085 31.11511,24.28058 31.11511,24.28058 0,0 -16.14602,-23.38507 -12.18918,-51.442631 z"
+ id="path2351"
+ transform="matrix(0.95099105,0,0,0.95099098,-474.54607,-32.694089)"
+ sodipodi:nodetypes="cscc"
+ inkscape:export-filename="/Users/don/Desktop/Draft-01.png"
+ inkscape:export-xdpi="115.64"
+ inkscape:export-ydpi="115.64" />
+ </g>
+ <g
+ style="display:inline"
+ inkscape:label="Outline"
+ id="layer3"
+ inkscape:groupmode="layer">
+ <path
+ sodipodi:nodetypes="zczcz"
+ transform="matrix(0.95454696,0,0,0.95454689,-533.57025,-33.626074)"
+ id="path2289"
+ d="m 674.2158,70.253529 c -21.05563,-22.862132 -45.94323,2.215859 -45.94323,2.215859 0,0 -24.88738,-25.078069 -45.94281,-2.215937 -21.05544,22.862132 16.8893,64.132949 45.94281,78.022769 29.05377,-13.88974 66.99886,-55.160559 45.94323,-78.022691 z"
+ style="display:inline;fill:none;stroke:#ffffff;stroke-width:7.8652;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ inkscape:export-filename="/Users/don/Desktop/Draft-01.png"
+ inkscape:export-xdpi="115.64"
+ inkscape:export-ydpi="115.64" />
+ </g>
+</svg>
diff --git a/webroot/img/repost.svg b/webroot/img/repost.svg
new file mode 100644
index 000000000..0e574199c
--- /dev/null
+++ b/webroot/img/repost.svg
@@ -0,0 +1,311 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ sodipodi:docname="Boost.svg"
+ inkscape:version="1.1.1 (c3084ef, 2021-09-22)"
+ id="svg1314"
+ version="1.1"
+ viewBox="0 0 132.29166 132.29167"
+ height="500"
+ width="500"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:dc="http://purl.org/dc/elements/1.1/">
+ <defs
+ id="defs1308">
+ <inkscape:path-effect
+ hide_knots="false"
+ only_selected="false"
+ apply_with_radius="true"
+ apply_no_radius="true"
+ use_knot_distance="true"
+ flexible="false"
+ chamfer_steps="1"
+ radius="22"
+ mode="F"
+ method="auto"
+ unit="px"
+ satellites_param="F,0,0,1,0,5.8208333,0,1 @ F,0,0,1,0,5.8208333,0,1 @ F,0,0,1,0,5.8208333,0,1 @ F,0,0,1,0,5.8208333,0,1"
+ lpeversion="1"
+ is_visible="true"
+ id="path-effect2100"
+ effect="fillet_chamfer" />
+ <inkscape:path-effect
+ effect="fillet_chamfer"
+ id="path-effect2018"
+ is_visible="true"
+ lpeversion="1"
+ satellites_param="F,0,0,1,0,5.8208333,0,1 @ F,0,0,1,0,5.8208333,0,1 @ F,0,0,1,0,5.8208333,0,1 @ F,0,0,1,0,5.8208333,0,1"
+ unit="px"
+ method="auto"
+ mode="F"
+ radius="22"
+ chamfer_steps="1"
+ flexible="false"
+ use_knot_distance="true"
+ apply_no_radius="true"
+ apply_with_radius="true"
+ only_selected="false"
+ hide_knots="false" />
+ <linearGradient
+ x1="39.48497"
+ y1="0.047389723"
+ x2="39.48497"
+ y2="44.901764"
+ id="linearGradient2278"
+ gradientTransform="scale(0.78982873,1.2660973)"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ offset="0"
+ stop-color="#2087e2"
+ stop-opacity="1"
+ id="stop2026" />
+ <stop
+ offset="1"
+ stop-color="#b63fff"
+ stop-opacity="1"
+ id="stop2028" />
+ </linearGradient>
+ <inkscape:path-effect
+ hide_knots="false"
+ only_selected="false"
+ apply_with_radius="true"
+ apply_no_radius="true"
+ use_knot_distance="true"
+ flexible="false"
+ chamfer_steps="1"
+ radius="22"
+ mode="F"
+ method="auto"
+ unit="px"
+ satellites_param="F,0,0,1,0,5.8208333,0,1 @ F,0,0,1,0,5.8208333,0,1 @ F,0,0,1,0,5.8208333,0,1 @ F,0,0,1,0,5.8208333,0,1"
+ lpeversion="1"
+ is_visible="true"
+ id="path-effect1458"
+ effect="fillet_chamfer" />
+ <linearGradient
+ y2="71.171745"
+ x2="132.77428"
+ y1="71.171745"
+ x1="37.088039"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1584"
+ xlink:href="#RESERVED_FOR_INKSCAPE_DUPLICATE_DEF_000000000"
+ inkscape:collect="always" />
+ <linearGradient
+ x1="0.83099705"
+ y1="26.975092"
+ x2="0.83099705"
+ y2="42.979877"
+ id="linearGradient1915"
+ gradientTransform="scale(0.85532098,1.1691517)"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ offset="0"
+ stop-color="#FFFFFF"
+ stop-opacity="0.5"
+ id="stop2071" />
+ <stop
+ offset="1"
+ stop-color="#FFFFFF"
+ stop-opacity="0.2"
+ id="stop2073" />
+ </linearGradient>
+ <rect
+ id="rect1590"
+ height="155.13683"
+ width="136.01654"
+ y="26.752991"
+ x="44.191872" />
+ <rect
+ id="rect1281"
+ height="155.13683"
+ width="136.01654"
+ y="26.752991"
+ x="44.191872" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#RESERVED_FOR_INKSCAPE_DUPLICATE_DEF_000000000"
+ id="linearGradient1584-5"
+ gradientUnits="userSpaceOnUse"
+ x1="37.088039"
+ y1="71.171745"
+ x2="132.77428"
+ y2="71.171745" />
+ <rect
+ x="44.191872"
+ y="26.752991"
+ width="136.01654"
+ height="155.13683"
+ id="rect1590-2" />
+ <rect
+ x="44.191872"
+ y="26.752991"
+ width="136.01654"
+ height="155.13683"
+ id="rect2032" />
+ <linearGradient
+ y2="71.171745"
+ x2="132.77428"
+ y1="71.171745"
+ x1="37.088039"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1584-5-0"
+ xlink:href="#RESERVED_FOR_INKSCAPE_DUPLICATE_DEF_000000000"
+ inkscape:collect="always" />
+ <rect
+ id="rect1590-2-9"
+ height="155.13683"
+ width="136.01654"
+ y="26.752991"
+ x="44.191872" />
+ <rect
+ id="rect2130"
+ height="155.13683"
+ width="136.01654"
+ y="26.752991"
+ x="44.191872" />
+ <inkscape:path-effect
+ hide_knots="false"
+ only_selected="false"
+ apply_with_radius="true"
+ apply_no_radius="true"
+ use_knot_distance="true"
+ flexible="false"
+ chamfer_steps="1"
+ radius="22"
+ mode="F"
+ method="auto"
+ unit="px"
+ satellites_param="F,0,0,1,0,5.8208333,0,1 @ F,0,0,1,0,5.8208333,0,1 @ F,0,0,1,0,5.8208333,0,1 @ F,0,0,1,0,5.8208333,0,1"
+ lpeversion="1"
+ is_visible="true"
+ id="path-effect1080"
+ effect="fillet_chamfer" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2278"
+ id="linearGradient1084"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(155.92963)"
+ x1="276.92184"
+ y1="49.976803"
+ x2="308.71417"
+ y2="49.976803" />
+ </defs>
+ <sodipodi:namedview
+ inkscape:window-maximized="0"
+ inkscape:window-y="23"
+ inkscape:window-x="1280"
+ inkscape:window-height="1035"
+ inkscape:window-width="1920"
+ inkscape:guide-bbox="true"
+ showguides="false"
+ units="px"
+ showgrid="false"
+ inkscape:document-rotation="0"
+ inkscape:current-layer="layer6"
+ inkscape:document-units="mm"
+ inkscape:cy="275.39497"
+ inkscape:cx="289.69028"
+ inkscape:zoom="1.1892011"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ inkscape:pagecheckerboard="0">
+ <sodipodi:guide
+ id="guide2200"
+ orientation="1,0"
+ position="44.558367,13.027415" />
+ <sodipodi:guide
+ id="guide2202"
+ orientation="1,0"
+ position="88.02151,12.912128" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata1311">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ style="display:inline"
+ inkscape:label="Background"
+ id="layer2"
+ inkscape:groupmode="layer">
+ <path
+ transform="matrix(4.161118,0,0,4.1611093,-1801.146,-141.81325)"
+ inkscape:path-effect="#path-effect1080"
+ style="display:inline;fill:url(#linearGradient1084);fill-opacity:1;stroke:none;stroke-width:0.207662;stroke-opacity:1"
+ id="path1070"
+ width="31.792337"
+ height="31.792337"
+ x="432.85147"
+ y="34.080635"
+ sodipodi:type="rect"
+ inkscape:export-filename="/Users/don/Desktop/Draft-01.png"
+ inkscape:export-xdpi="115.64"
+ inkscape:export-ydpi="115.64"
+ d="m 438.6723,34.080635 h 20.15068 a 5.8208333,5.8208333 45 0 1 5.82083,5.820833 v 20.150671 a 5.8208333,5.8208333 135 0 1 -5.82083,5.820833 H 438.6723 a 5.8208333,5.8208333 45 0 1 -5.82083,-5.820833 V 39.901468 a 5.8208333,5.8208333 135 0 1 5.82083,-5.820833 z" />
+ </g>
+ <g
+ style="display:inline"
+ inkscape:label="Shadow"
+ id="layer6"
+ inkscape:groupmode="layer">
+ <path
+ id="path1744"
+ style="display:inline;opacity:0.75;fill:#7f40cf;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 755.59375,115.26367 -0.75,38.77149 -9.61914,12.17187 -46.68854,3.28589 24.59284,23.45825 h 37.22851 c 12.64012,3.2e-4 22.88704,-10.2466 22.88672,-22.88672 v -37.61133 l -9.31641,-11.63085 z"
+ transform="matrix(1.0583333,0,0,1.0583314,-696.64204,-71.914618)"
+ sodipodi:nodetypes="cccccccccc"
+ inkscape:export-filename="/Users/don/Desktop/Draft-01.png"
+ inkscape:export-xdpi="115.64"
+ inkscape:export-ydpi="115.64" />
+ </g>
+ <g
+ style="display:inline"
+ inkscape:label="Outline"
+ id="layer3"
+ inkscape:groupmode="layer">
+ <path
+ id="rect1704"
+ style="display:inline;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:7.8652;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 741.45312,94.964844 h -41.41796 c -8.18705,0 -14.77735,6.590276 -14.77735,14.777346 v 41.41797 m 14.77735,14.77734 h 41.41796 c 8.18706,0 14.77735,-6.59028 14.77735,-14.77734 v -41.41797"
+ transform="matrix(1.0583333,0,0,1.0583314,-696.64204,-71.914618)"
+ sodipodi:nodetypes="cssccssc"
+ inkscape:export-filename="/Users/don/Desktop/Draft-01.png"
+ inkscape:export-xdpi="115.64"
+ inkscape:export-ydpi="115.64" />
+ <path
+ style="display:inline;fill:none;stroke:#ffffff;stroke-width:7.8652;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 670.07576,143.37121 15.18204,13.78895 15.49978,-13.59955"
+ id="path1725"
+ transform="matrix(1.0583333,0,0,1.0583314,-696.64204,-71.914618)"
+ sodipodi:nodetypes="ccc"
+ inkscape:export-filename="/Users/don/Desktop/Draft-01.png"
+ inkscape:export-xdpi="115.64"
+ inkscape:export-ydpi="115.64" />
+ <path
+ sodipodi:nodetypes="ccc"
+ id="path1725-7"
+ d="m 670.07576,143.37121 15.18204,13.78895 15.49978,-13.59955"
+ style="display:inline;fill:none;stroke:#ffffff;stroke-width:7.8652;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ transform="matrix(-1.0583333,0,0,-1.0583314,828.93303,210.55653)"
+ inkscape:export-filename="/Users/don/Desktop/Draft-01.png"
+ inkscape:export-xdpi="115.64"
+ inkscape:export-ydpi="115.64" />
+ </g>
+</svg>
diff --git a/webroot/index.html b/webroot/index.html
index bd18b9dec..469c1818c 100644
--- a/webroot/index.html
+++ b/webroot/index.html
@@ -31,10 +31,10 @@
<link href="/js/web_modules/videojs/video-js.min.css" rel="stylesheet" />
<link href="/js/web_modules/@videojs/themes/fantasy/index.css" rel="stylesheet" />
- <link href="./styles/video.css" rel="stylesheet" />
- <link href="./styles/chat.css" rel="stylesheet" />
- <link href="./styles/user-content.css" rel="stylesheet" />
- <link href="./styles/app.css" rel="stylesheet" />
+ <link href="/styles/video.css" rel="stylesheet" />
+ <link href="/styles/chat.css" rel="stylesheet" />
+ <link href="/styles/user-content.css" rel="stylesheet" />
+ <link href="/styles/app.css" rel="stylesheet" />
<!-- The following script tags are not required for the app to run,
however they will make it load a lot faster (fewer round trips) when HTTP/2 is used.
@@ -72,7 +72,7 @@
</head>
-<body class="scrollbar-hidden bg-gray-300 text-gray-800">
+<body id="app-body" class="scrollbar-hidden bg-gray-300 text-gray-800">
<div id="app">
<div id="loading-logo-container">
<img id="loading-logo" src="/logo">
@@ -84,7 +84,7 @@
import htm from '/js/web_modules/htm.js';
const html = htm.bind(h);
- import App from './js/app.js';
+ import App from '/js/app.js';
render(html`<${App} />`, document.getElementById("app"), document.getElementById("loading-logo-container"));
</script>
diff --git a/webroot/js/TEMP-TODO.md b/webroot/js/TEMP-TODO.md
new file mode 100644
index 000000000..ef70c043c
--- /dev/null
+++ b/webroot/js/TEMP-TODO.md
@@ -0,0 +1,77 @@
+# TEMP TODO FILE
+
+# ~~Mockup for Recordings and Scheduling~~
+# Mockup for Fediverse Social, Tabbed User Content
+This used to be setting up to display Recordings, but the progress can be used towards Fediverse work.
+
+- Rearranges some logic around when to display the chat panel vs when video is playing
+- Improves user content styling for improved positioning across screen sizes.
+- Add accessible Tab Bar navigation
+
+## Move some things around
+
+- [x] move social icons under Profile image
+- [x] move External Actions to top right, below video element
+- [x] disable/hide chat panel + chat icon when there is no Recording, nor Live video playing
+- [ ] add tab bar below tags list
+- [ ] style Follow on Fediverse Modal
+
+### Add more local React States
+- [ ] add offline / no-video state (? what was this again?)
+- [ ] add tab states
+- [ ] **DEFER** add route states
+- [ ] **DEFER** add recordings[] when comes in from config
+- [ ] **DEFER** add schedule[] when comes in from config
+
+## Add Tab bar
+Tab bar includes:
+- `About` - User custom info
+- `Followers` - display tab if schedule info exists
+- **DEFER** `Videos` - display if user has Recordings
+- **DEFER** `Schedule` - display tab if schedule info exists
+
+
+## **DEFER?** Routing, Url Handling
+- do we need it for Followers?
+ #### Recording urls
+ - `server.com/recordings`
+ - `server.com/recordings/id123`
+
+ #### Schedule urls
+ - `server.com/schedule`
+ - `server.com/schedule/id123`
+
+ #### Followers Url?
+
+ ### Todo
+ - [ ] modify server side go to just load up index.html/app.js when url routes to /recording or /schedule
+ - [ ] update app js to detect url route and display appropriate tab content
+
+
+## **DEFER** Recordings
+
+### `server.com/recordings`
+- [ ] don't show chat elements
+- [ ] list avilable recordings, display list similar to directory.owncast.
+- [ ] display recording length
+- [ ] display num views?
+
+
+### `server.com/recordings/id123`
+- [ ] display video, full size with recording loaded
+- [ ] display chat
+- [ ] do not enable chat message input
+- [ ] render chat messages as they came in relative to video timestamp
+
+
+## Schedule
+- [ ] don't show chat elements
+
+### `server.com/schedule`
+- [ ] list items ASC
+
+
+### `server.com/schedule/id123`
+- [ ] display info
+
+
diff --git a/webroot/js/app.js b/webroot/js/app.js
index 2f3475090..4ad2dacc8 100644
--- a/webroot/js/app.js
+++ b/webroot/js/app.js
@@ -6,6 +6,8 @@ import { OwncastPlayer } from './components/player.js';
import SocialIconsList from './components/platform-logos-list.js';
import UsernameForm from './components/chat/username.js';
import VideoPoster from './components/video-poster.js';
+import Followers from './components/federation/followers.js';
+
import Chat from './components/chat/chat.js';
import Websocket, {
CALLBACKS,
@@ -17,10 +19,14 @@ import ExternalActionModal, {
ExternalActionButton,
} from './components/external-action-modal.js';
+import FediverseFollowModal, {
+ FediverseFollowButton,
+} from './components/fediverse-follow-modal.js';
+
import {
addNewlines,
+ checkUrlPathForDisplay,
classNames,
- clearLocalStorage,
debounce,
getLocalStorage,
getOrientation,
@@ -28,6 +34,7 @@ import {
makeLastOnlineString,
parseSecondsToDurationString,
pluralize,
+ ROUTE_RECORDINGS,
setLocalStorage,
} from './utils/helpers.js';
import {
@@ -52,6 +59,7 @@ import {
WIDTH_SINGLE_COL,
} from './utils/constants.js';
import { checkIsModerator } from './utils/chat.js';
+import TabBar from './components/tab-bar.js';
export default class App extends Component {
constructor(props, context) {
@@ -92,7 +100,13 @@ export default class App extends Component {
windowHeight: window.innerHeight,
orientation: getOrientation(this.hasTouchScreen),
- externalAction: null,
+ // modals
+ externalActionModalData: null,
+ fediverseModalData: null,
+
+ // routing & tabbing
+ section: '',
+ sectionId: '',
};
// timers
@@ -119,6 +133,9 @@ export default class App extends Component {
this.handleKeyPressed = this.handleKeyPressed.bind(this);
this.displayExternalAction = this.displayExternalAction.bind(this);
this.closeExternalActionModal = this.closeExternalActionModal.bind(this);
+ this.displayFediverseFollowModal =
+ this.displayFediverseFollowModal.bind(this);
+ this.closeFediverseFollowModal = this.closeFediverseFollowModal.bind(this);
// player events
this.handlePlayerReady = this.handlePlayerReady.bind(this);
@@ -158,6 +175,9 @@ export default class App extends Component {
onError: this.handlePlayerError,
});
this.player.init();
+
+ // check routing
+ this.getRoute();
}
componentWillUnmount() {
@@ -176,6 +196,13 @@ export default class App extends Component {
}
}
+ getRoute() {
+ const routeInfo = checkUrlPathForDisplay();
+ this.setState({
+ ...routeInfo,
+ });
+ }
+
// fetch /config data
getConfig() {
fetch(URL_CONFIG)
@@ -478,12 +505,13 @@ export default class App extends Component {
}
handleKeyPressed(e) {
- if (
- e.target !== document.getElementById('message-input') &&
- e.target !== document.getElementById('username-change-input') &&
- e.target !== document.getElementsByClassName('emoji-picker__search')[0] &&
- this.state.streamOnline
- ) {
+ // Only handle shortcuts if the focus is on the general page body,
+ // not a specific input field.
+ if (e.target !== document.getElementById('app-body')) {
+ return;
+ }
+
+ if (this.state.streamOnline) {
switch (e.code) {
case 'MediaPlayPause':
case 'KeyP':
@@ -527,7 +555,7 @@ export default class App extends Component {
return;
}
this.setState({
- externalAction: {
+ externalActionModalData: {
...action,
url: fullUrl,
},
@@ -535,10 +563,17 @@ export default class App extends Component {
}
closeExternalActionModal() {
this.setState({
- externalAction: null,
+ externalActionModalData: null,
});
}
+ displayFediverseFollowModal(data) {
+ this.setState({ fediverseModalData: data });
+ }
+ closeFediverseFollowModal() {
+ this.setState({ fediverseModalData: null });
+ }
+
handleWebsocketMessage(e) {
if (e.type === SOCKET_MESSAGE_TYPES.ERROR_USER_DISABLED) {
// User has been actively disabled on the backend. Turn off chat for them.
@@ -645,9 +680,13 @@ export default class App extends Component {
websocket,
windowHeight,
windowWidth,
- externalAction,
+ fediverseModalData,
+ externalActionModalData,
lastDisconnectTime,
+ section,
+ sectionId,
} = state;
+
const {
version: appVersion,
logo = TEMP_IMAGE,
@@ -660,6 +699,7 @@ export default class App extends Component {
externalActions,
customStyles,
maxSocketPayloadSize,
+ federation = {},
} = configData;
const bgUserLogo = { backgroundImage: `url(${logo})` };
@@ -680,11 +720,19 @@ export default class App extends Component {
const shortHeight = windowHeight <= HEIGHT_SHORT_WIDE && !isPortrait;
const singleColMode = windowWidth <= WIDTH_SINGLE_COL && !shortHeight;
- const shouldDisplayChat = displayChatPanel && canChat && !chatDisabled;
+ const noVideoContent =
+ !playerActive || (section === ROUTE_RECORDINGS && sectionId !== '');
+ const shouldDisplayChat =
+ displayChatPanel && !chatDisabled && !noVideoContent;
+ const usernameStyle = chatDisabled ? 'none' : 'flex';
+ // const shouldDisplayChat = displayChatPanel && canChat && !chatDisabled;
const extraAppClasses = classNames({
'config-loading': configData.loading,
+
chat: shouldDisplayChat,
+ 'no-chat': !shouldDisplayChat,
+ 'no-video': noVideoContent,
'chat-hidden': !displayChatPanel && canChat && !chatDisabled, // hide panel
'chat-disabled': !canChat || chatDisabled,
'single-col': singleColMode,
@@ -699,31 +747,53 @@ export default class App extends Component {
: html` <${VideoPoster} offlineImage=${logo} active=${streamOnline} /> `;
// modal buttons
- const externalActionButtons =
- externalActions &&
- externalActions.length > 0 &&
- html`<div
- id="external-actions-container"
- class="flex flex-row align-center"
- >
- ${externalActions.map(
- function (action) {
- return html`<${ExternalActionButton}
- onClick=${this.displayExternalAction}
- action=${action}
- />`;
- }.bind(this)
- )}
- </div>`;
+ const externalActionButtons = html`<div
+ id="external-actions-container"
+ class="flex flex-row flex-wrap justify-end"
+ >
+ ${externalActions &&
+ externalActions.map(
+ function (action) {
+ return html`<${ExternalActionButton}
+ onClick=${this.displayExternalAction}
+ action=${action}
+ />`;
+ }.bind(this)
+ )}
+
+ <!-- fediverse follow button -->
+ ${federation.enabled &&
+ html`<${FediverseFollowButton}
+ onClick=${this.displayFediverseFollowModal}
+ federationInfo=${federation}
+ serverName=${name}
+ />`}
+ </div>`;
// modal component
const externalActionModal =
- externalAction &&
+ externalActionModalData &&
html`<${ExternalActionModal}
- action=${externalAction}
+ action=${externalActionModalData}
onClose=${this.closeExternalActionModal}
/>`;
+ const fediverseFollowModal =
+ fediverseModalData &&
+ html`
+ <${ExternalActionModal}
+ onClose=${this.closeFediverseFollowModal}
+ action=${fediverseModalData}
+ useIframe=${false}
+ customContent=${html`<${FediverseFollowModal}
+ name=${name}
+ logo=${logo}
+ federationInfo=${federation}
+ onClose=${this.closeFediverseFollowModal}
+ />`}
+ />
+ `;
+
const chat = this.state.websocket
? html`
<${Chat}
@@ -738,6 +808,36 @@ export default class App extends Component {
`
: null;
+ const TAB_CONTENT = [
+ {
+ label: 'About',
+ content: html`
+ <div>
+ <div
+ id="stream-summary"
+ class="stream-summary my-4"
+ dangerouslySetInnerHTML=${{ __html: summary }}
+ ></div>
+ <div id="tag-list" class="tag-list text-gray-600 mb-3">
+ ${tagList && `#${tagList}`}
+ </div>
+ <div
+ id="extra-user-content"
+ class="extra-user-content"
+ dangerouslySetInnerHTML=${{ __html: extraPageContent }}
+ ></div>
+ </div>
+ `,
+ },
+ ];
+
+ if (federation.enabled) {
+ TAB_CONTENT.push({
+ label: 'Followers',
+ content: html`<${Followers} />`,
+ });
+ }
+
return html`
<div
id="app-container"
@@ -784,7 +884,9 @@ export default class App extends Component {
id="chat-toggle"
onClick=${this.handleChatPanelToggle}
class="flex cursor-pointer text-center justify-center items-center min-w-12 h-full bg-gray-800 hover:bg-gray-700"
- style=${{ display: chatDisabled ? 'none' : 'block' }}
+ style=${{
+ display: chatDisabled || noVideoContent ? 'none' : 'block',
+ }}
>
💬
</button>
@@ -819,41 +921,42 @@ export default class App extends Component {
</section>
</main>
- <section id="user-content" aria-label="User information" class="p-8">
+ <section
+ id="user-content"
+ aria-label="Owncast server information"
+ class="p-2"
+ >
+ ${externalActionButtons && html`${externalActionButtons}`}
+
<div class="user-content flex flex-row p-8">
<div
- class="user-image rounded-full bg-white p-4 mr-8 bg-no-repeat bg-center"
- style=${bgUserLogo}
+ class="user-logo-icons flex flex-col items-center justify-start mr-8"
>
- <img class="logo visually-hidden" alt="" src=${logo} />
+ <div
+ class="user-image rounded-full bg-white p-4 bg-no-repeat bg-center"
+ style=${bgUserLogo}
+ >
+ <img class="logo visually-hidden" alt="" src=${logo} />
+ </div>
+ <div class="social-actions">
+ <${SocialIconsList} handles=${socialHandles} />
+ </div>
</div>
- <div
- class="user-content-header border-b border-gray-500 border-solid"
- >
- <h2 class="font-semibold text-5xl">
+
+ <div class="user-content-header">
+ <h2 class="server-name font-semibold text-5xl">
<span class="streamer-name text-indigo-600">${name}</span>
</h2>
- ${externalActionButtons &&
- html`<div>${externalActionButtons}</div>`}
<h3 class="font-semibold text-3xl">
${streamOnline && streamTitle}
</h3>
- <${SocialIconsList} handles=${socialHandles} />
- <div
- id="stream-summary"
- class="stream-summary my-4"
- dangerouslySetInnerHTML=${{ __html: summary }}
- ></div>
- <div id="tag-list" class="tag-list text-gray-600 mb-3">
- ${tagList && `#${tagList}`}
+
+ <!-- tab bar -->
+ <div class="${TAB_CONTENT.length > 1 ? 'my-8' : 'my-3'}">
+ <${TabBar} tabs=${TAB_CONTENT} ariaLabel="User Content" />
</div>
</div>
</div>
- <div
- id="extra-user-content"
- class="extra-user-content px-8"
- dangerouslySetInnerHTML=${{ __html: extraPageContent }}
- ></div>
</section>
<footer class="flex flex-row justify-start p-8 opacity-50 text-xs">
@@ -864,7 +967,7 @@ export default class App extends Component {
</span>
</footer>
- ${chat} ${externalActionModal}
+ ${chat} ${externalActionModal} ${fediverseFollowModal}
</div>
`;
}
diff --git a/webroot/js/components/chat/chat.js b/webroot/js/components/chat/chat.js
index 1d978d30e..244ed5e29 100644
--- a/webroot/js/components/chat/chat.js
+++ b/webroot/js/components/chat/chat.js
@@ -25,6 +25,9 @@ const renderableChatStyleMessages = [
SOCKET_MESSAGE_TYPES.CHAT_ACTION,
SOCKET_MESSAGE_TYPES.SYSTEM,
SOCKET_MESSAGE_TYPES.CHAT,
+ SOCKET_MESSAGE_TYPES.FEDIVERSE_ENGAGEMENT_FOLLOW,
+ SOCKET_MESSAGE_TYPES.FEDIVERSE_ENGAGEMENT_LIKE,
+ SOCKET_MESSAGE_TYPES.FEDIVERSE_ENGAGEMENT_REPOST,
];
export default class Chat extends Component {
constructor(props, context) {
@@ -47,10 +50,6 @@ export default class Chat extends Component {
this.receivedMessageUpdate = false;
this.hasFetchedHistory = false;
- // Force render is a state to force the messages to re-render when visibility
- // changes for messages. This overrides componentShouldUpdate logic.
- this.forceRender = false;
-
// Unordered dictionary of messages keyed by ID.
this.messages = {};
@@ -98,10 +97,6 @@ export default class Chat extends Component {
sortedMessages,
} = this.state;
- if (this.forceRender) {
- return true;
- }
-
const {
webSocketConnected: nextSocket,
chatUserNames: nextUserNames,
@@ -224,7 +219,8 @@ export default class Chat extends Component {
};
this.messages = updatedMessagesList;
- this.forceRender = true;
+
+ this.resortAndRenderMessages();
}
handleChangeModeratorStatus(isModerator) {
@@ -261,12 +257,16 @@ export default class Chat extends Component {
};
this.messages = updatedMessagesList;
+ this.resortAndRenderMessages();
+ }
+
+ resortAndRenderMessages() {
// Convert the unordered dictionary of messages to an ordered array.
// NOTE: This sorts the entire collection of messages on every new message
// because the order a message comes in cannot be trusted that it's the order
// it was sent, you need to sort by timestamp. I don't know if there
// is a performance problem waiting to occur here for larger chat feeds.
- var sortedMessages = Object.values(updatedMessagesList)
+ var sortedMessages = Object.values(this.messages)
// Filter out messages set to not be visible
.filter((message) => message.visible !== false)
.sort((a, b) => {
diff --git a/webroot/js/components/chat/message.js b/webroot/js/components/chat/message.js
index 41c3a4556..6018df119 100644
--- a/webroot/js/components/chat/message.js
+++ b/webroot/js/components/chat/message.js
@@ -26,6 +26,62 @@ function SystemMessage(props) {
`;
}
+function SingleFederatedUser(props) {
+ const { message } = props;
+ const { type, body, title, image, link } = message;
+
+ let icon = null;
+ switch (type) {
+ case SOCKET_MESSAGE_TYPES.FEDIVERSE_ENGAGEMENT_FOLLOW:
+ icon = '/img/follow.svg';
+ break;
+ case SOCKET_MESSAGE_TYPES.FEDIVERSE_ENGAGEMENT_LIKE:
+ icon = '/img/like.svg';
+ break;
+ case SOCKET_MESSAGE_TYPES.FEDIVERSE_ENGAGEMENT_REPOST:
+ icon = '/img/repost.svg';
+ break;
+ default:
+ break;
+ }
+
+ return html`
+ <a
+ href=${link}
+ target="_blank"
+ class="hover:no-underline"
+ title="Visit profile"
+ >
+ <div
+ class="federated-action m-2 mt-3 bg-white flex items-center px-2 rounded-xl shadow border"
+ >
+ <div class="relative" style="top: -6px">
+ <img
+ src="${image || '/img/logo.svg'}"
+ style="max-width: unset"
+ class="rounded-full border border-slate-500 w-16"
+ />
+ <span
+ style=${{
+ backgroundImage: `url(${icon})`,
+ }}
+ class="absolute h-6 w-6 rounded-full border-2 border-white action-icon"
+ ></span>
+ </div>
+ <div class="px-4 py-2">
+ <span class=" text-gray-500 text-sm hover:no-underline truncate">
+ ${title}
+ </span>
+ <p
+ class=" text-gray-700 w-full text-base leading-6"
+ dangerouslySetInnerHTML=${{ __html: body }}
+ ></p>
+ </div>
+ </div>
+ </a>
+ `;
+}
+
export default function Message(props) {
const { message } = props;
const { type, oldName, user, body } = message;
@@ -46,8 +102,18 @@ export default function Message(props) {
return html`<${SystemMessage} contents=${contents} />`;
} else if (type === SOCKET_MESSAGE_TYPES.USER_JOINED) {
const { displayName } = user;
- const contents = html`<span class="font-bold">${displayName}</span> joined
- the chat.`;
+ const isAuthorModerator = checkIsModerator(message);
+ const messageAuthorFlair = isAuthorModerator
+ ? html`<img
+ title="Moderator"
+ class="inline-block mr-1 w-3 h-3"
+ src="/img/moderator-nobackground.svg"
+ />`
+ : null;
+ const contents = html`<div>
+ <span class="font-bold">${messageAuthorFlair}${displayName}</span>
+ ${' '}joined the chat.
+ </div>`;
return html`<${SystemMessage} contents=${contents} />`;
} else if (type === SOCKET_MESSAGE_TYPES.CHAT_ACTION) {
const contents = html`<span
@@ -64,6 +130,12 @@ export default function Message(props) {
</div>`;
return html`<${SystemMessage} contents=${contents} />`;
}
+ } else if (
+ type === SOCKET_MESSAGE_TYPES.FEDIVERSE_ENGAGEMENT_FOLLOW ||
+ SOCKET_MESSAGE_TYPES.FEDIVERSE_ENGAGEMENT_LIKE ||
+ SOCKET_MESSAGE_TYPES.FEDIVERSE_ENGAGEMENT_REPOST
+ ) {
+ return html` <${SingleFederatedUser} message=${message} /> `;
} else {
console.log('Unknown message type:', type);
}
diff --git a/webroot/js/components/chat/moderator-actions.js b/webroot/js/components/chat/moderator-actions.js
index a271fe1f8..d90939e33 100644
--- a/webroot/js/components/chat/moderator-actions.js
+++ b/webroot/js/components/chat/moderator-actions.js
@@ -237,7 +237,7 @@ function ModeratorMoreInfoContainer({
}) {
const { user, timestamp, body } = message;
const { displayName, createdAt, previousNames, displayColor } = user;
- const isAuthorModerator = user.scopes && user.scopes.contains('MODERATOR');
+ const isAuthorModerator = user.scopes && user.scopes.includes('MODERATOR');
const authorTextColor = { color: textColorForHue(displayColor) };
const createDate = new Date(createdAt);
diff --git a/webroot/js/components/external-action-modal.js b/webroot/js/components/external-action-modal.js
index 1d90f0fd8..111ebd8ec 100644
--- a/webroot/js/components/external-action-modal.js
+++ b/webroot/js/components/external-action-modal.js
@@ -35,14 +35,13 @@ export default class ExternalActionModal extends Component {
}
render() {
- const { action } = this.props;
+ const { action, useIframe = true, customContent = null } = this.props;
const { url, title, description } = action;
const { iframeLoaded } = this.state;
const iframeStyle = iframeLoaded
? null
- : {
- backgroundImage: 'url(/img/loading.gif)',
- };
+ : { backgroundImage: 'url(/img/loading.gif)' };
+
return html`
<div
class="modal micromodal-slide"
@@ -61,7 +60,10 @@ export default class ExternalActionModal extends Component {
id="modal-header"
class="modal__header flex flex-row justify-between items-center bg-gray-300 p-3 rounded-t-md"
>
- <h2 class="modal__title text-indigo-600 font-semibold">
+ <h2
+ id="external-action-modal-header"
+ class="modal__title text-indigo-600 font-semibold"
+ >
${title || description}
</h2>
<button
@@ -70,23 +72,30 @@ export default class ExternalActionModal extends Component {
data-micromodal-close
></button>
</header>
- <div id="modal-content-content" class="modal-content-content">
- <div
- id="modal-content"
- class="modal__content text-gray-600 rounded-b-md overflow-y-auto overflow-x-hidden"
- >
- <iframe
- id="external-modal-iframe"
- style=${iframeStyle}
- class="bg-gray-100 bg-center bg-no-repeat"
- width="100%"
- allowpaymentrequest="true"
- allowfullscreen="false"
- sandbox="allow-same-origin allow-scripts allow-popups allow-forms"
- src=${url}
- onload=${this.setIframeLoaded}
- />
- </div>
+ <div
+ id="modal-content-content"
+ class="modal-content-content rounded-b-md"
+ >
+ ${useIframe
+ ? html`
+ <div
+ id="modal-content"
+ class="modal__content text-gray-600 overflow-y-auto overflow-x-hidden"
+ >
+ <iframe
+ id="external-modal-iframe"
+ style=${iframeStyle}
+ class="bg-gray-100 bg-center bg-no-repeat"
+ width="100%"
+ allowpaymentrequest="true"
+ allowfullscreen="false"
+ sandbox="allow-same-origin allow-scripts allow-popups allow-forms"
+ src=${url}
+ onload=${this.setIframeLoaded}
+ />
+ </div>
+ `
+ : customContent}
</div>
</div>
</div>
@@ -95,8 +104,8 @@ export default class ExternalActionModal extends Component {
}
}
-export function ExternalActionButton({ action, onClick }) {
- const { title, icon, color = undefined } = action;
+export function ExternalActionButton({ action, onClick, label = '' }) {
+ const { title, icon, color = undefined, description } = action;
const logo =
icon &&
html`
@@ -106,12 +115,14 @@ export function ExternalActionButton({ action, onClick }) {
const handleClick = () => onClick(action);
return html`
<button
- class="external-action-button rounded-sm flex flex-row justify-center items-center overflow-hidden bg-gray-800"
+ class="external-action-button rounded-sm flex flex-row justify-center items-center overflow-hidden m-1 px-3 py-1 text-base text-white bg-gray-800 rounded"
onClick=${handleClick}
style=${bgcolor}
+ aria-label=${description}
+ title=${description || title}
>
${logo}
- <span class="external-action-label">${title}</span>
+ <span class="external-action-label">${label || title}</span>
</button>
`;
}
diff --git a/webroot/js/components/federation/followers.js b/webroot/js/components/federation/followers.js
new file mode 100644
index 000000000..522899f82
--- /dev/null
+++ b/webroot/js/components/federation/followers.js
@@ -0,0 +1,91 @@
+import { h, Component } from '/js/web_modules/preact.js';
+import htm from '/js/web_modules/htm.js';
+import { URL_FOLLOWERS } from '/js/utils/constants.js';
+const html = htm.bind(h);
+
+export default class FollowerList extends Component {
+ constructor(props) {
+ super(props);
+
+ this.state = {
+ followers: [],
+ };
+ }
+
+ componentDidMount() {
+ try {
+ this.getFollowers();
+ } catch (e) {
+ console.error('followers error: ', e);
+ }
+ }
+
+ async getFollowers() {
+ const response = await fetch(URL_FOLLOWERS);
+ const followers = await response.json();
+
+ this.setState({ followers: followers });
+ }
+
+ render() {
+ const { followers } = this.state;
+ if (!followers) {
+ return null;
+ }
+
+ const noFollowersInfo = html`<div>
+ <p class="mb-5 text-2xl">Be the first to follow this live stream.</p>
+ <p class="text-md">
+ By following this stream you'll get updates when it goes live, receive
+ posts from the streamer, and be featured here as a follower.
+ </p>
+ <p class="text-md mt-5">
+ Learn more about ${' '}
+ <a class="underline" href="https://en.wikipedia.org/wiki/Fediverse"
+ >The Fediverse</a
+ >, where you can follow this server as well as so much more.
+ </p>
+ </div>`;
+
+ return html`
+ <div class="flex flex-wrap">
+ ${followers.length === 0 && noFollowersInfo}
+ ${followers.map((follower) => {
+ return html` <${SingleFollower} user=${follower} /> `;
+ })}
+ </div>
+ `;
+ }
+}
+
+function SingleFollower(props) {
+ const { user } = props;
+ const { name, username, link, image } = user;
+
+ var displayName = name;
+ var displayUsername = username;
+
+ if (!displayName) {
+ displayName = displayUsername.split('@', 1)[0];
+ }
+ return html`
+ <a
+ href=${link}
+ class="following-list-follower block bg-white flex p-2 rounded-xl shadow border hover:no-underline m-4"
+ target="_blank"
+ >
+ <img
+ src="${image || '/img/logo.svg'}"
+ class="w-16 h-16 rounded-full"
+ onError=${({ currentTarget }) => {
+ currentTarget.onerror = null;
+ currentTarget.src = '/img/logo.svg';
+ }}
+ />
+ <div class="p-3 truncate flex-grow">
+ <p class="font-semibold text-gray-700 truncate">${displayName}</p>
+ <p class="text-sm text-gray-500 truncate">${displayUsername}</p>
+ </div>
+ </a>
+ `;
+}
diff --git a/webroot/js/components/fediverse-follow-modal.js b/webroot/js/components/fediverse-follow-modal.js
new file mode 100644
index 000000000..f601d0b18
--- /dev/null
+++ b/webroot/js/components/fediverse-follow-modal.js
@@ -0,0 +1,196 @@
+import { h, Component } from '/js/web_modules/preact.js';
+import htm from '/js/web_modules/htm.js';
+import { ExternalActionButton } from './external-action-modal.js';
+
+const html = htm.bind(h);
+
+function validateAccount(account) {
+ account = account.replace(/^@+/, '');
+ var regex =
+ /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
+ return regex.test(String(account).toLowerCase());
+}
+
+export default class FediverseFollowModal extends Component {
+ constructor(props) {
+ super(props);
+
+ this.remoteFollowButtonPressed = this.remoteFollowButtonPressed.bind(this);
+
+ this.state = {
+ errorMessage: null,
+ value: '',
+ loading: false,
+ valid: false,
+ };
+ }
+
+ async remoteFollowButtonPressed() {
+ if (!this.state.valid) {
+ return;
+ }
+
+ this.setState({ loading: true, errorMessage: null });
+ const { value } = this.state;
+ const { onClose } = this.props;
+
+ const account = value.replace(/^@+/, '');
+ const request = { account: account };
+ const requestURL = '/api/remotefollow';
+ const rawResponse = await fetch(requestURL, {
+ method: 'POST',
+ body: JSON.stringify(request),
+ });
+ const result = await rawResponse.json();
+
+ if (!result.redirectUrl) {
+ this.setState({ errorMessage: result.message, loading: false });
+ return;
+ }
+
+ window.open(result.redirectUrl, '_blank');
+ onClose();
+ }
+
+ navigateToFediverseJoinPage() {
+ window.open('https://owncast.online/join-fediverse', '_blank');
+ }
+
+ onInput = (e) => {
+ const { value } = e.target;
+ const valid = validateAccount(value);
+ this.setState({ value, valid });
+ };
+
+ render() {
+ const { name, federationInfo = {}, logo } = this.props;
+ const { account } = federationInfo;
+ const { errorMessage, value, valid, loading } = this.state;
+ const buttonState = valid ? '' : 'cursor-not-allowed opacity-50';
+
+ const error = errorMessage
+ ? html`
+ <div
+ class="bg-red-100 border border-red-400 text-red-700 px-4 py-3 rounded relative"
+ role="alert"
+ >
+ <div class="font-bold mb-2">
+ There was an error following this Owncast server.
+ </div>
+ <span class="block">
+ Please verify you entered the correct user account. It's also
+ possible your server may not support remote following, so you may
+ want to manually follow ${' '}
+ <span class="font-semibold">${account}</span> using your service's
+ own interface.
+ </span>
+ <div class="block mt-2">
+ Server error: <span class="">${errorMessage}</span>
+ </div>
+ </div>
+ `
+ : null;
+
+ const loaderStyle = loading ? 'flex' : 'none';
+
+ return html`
+ <div class="bg-gray-100 bg-center bg-no-repeat p-4">
+ <p class="text-gray-700 text-md">
+ By following this stream you'll get posts and notifications such as
+ when it goes live.
+ </p>
+
+ <div
+ class="p-4 my-2 rounded bg-gray-300 border border-indigo-400 border-solid flex items-center justify-start"
+ >
+ <img src=${logo} style=${{ height: '3em', width: '3em' }} />
+ <p class="ml-4">
+ <span class="font-bold">${name}</span>
+ <br />
+ <span class="">${account}</span>
+ </p>
+ </div>
+
+ ${error}
+
+ <div class="mb34">
+ <label
+ class="block text-gray-700 text-sm font-semibold mt-6"
+ for="username"
+ >
+ Enter your username@server to follow:
+ </label>
+ <input
+ onInput=${this.onInput}
+ value="${value}"
+ class="border bg-white rounded w-full py-2 px-3 mb-2 mt-2 text-indigo-700 leading-tight focus:outline-none focus:shadow-outline"
+ id="username"
+ type="text"
+ placeholder="Fediverse account@instance.tld"
+ />
+ </div>
+
+ <p class="text-gray-600 text-xs italic">
+ You'll be redirected to your Fediverse server and asked to confirm
+ this action. ${' '}
+ <a
+ class=" text-blue-500"
+ href="https://owncast.online/join-fediverse"
+ target="_blank"
+ rel="noopener noreferrer"
+ >Join the Fediverse if you haven't.</a
+ >
+ </p>
+
+ <button
+ class="bg-indigo-500 hover:bg-indigo-600 text-white font-bold py-2 mt-6 px-4 rounded focus:outline-none focus:shadow-outline ${buttonState}"
+ type="button"
+ onClick=${this.remoteFollowButtonPressed}
+ >
+ Follow
+ </button>
+ <button
+ class="bg-blue-500 hover:bg-blue-600 text-white font-bold py-2 ml-4 mt-6 px-4 rounded focus:outline-none focus:shadow-outline"
+ type="button"
+ onClick=${this.navigateToFediverseJoinPage}
+ >
+ Join the Fediverse
+ </button>
+ <div
+ id="follow-loading-spinner-container"
+ style="display: ${loaderStyle}"
+ >
+ <img id="follow-loading-spinner" src="/img/loading.gif" />
+ <p class="text-gray-700 text-lg">Contacting your server.</p>
+ <p class="text-gray-600 text-lg">Please wait...</p>
+ </div>
+ </div>
+ `;
+ }
+}
+
+export function FediverseFollowButton({ serverName, federationInfo, onClick }) {
+ const fediverseFollowAction = {
+ color: 'rgba(28, 26, 59, 1)',
+ description: `Follow ${serverName} at ${federationInfo.account}`,
+ icon: '/img/fediverse-color.png',
+ openExternally: false,
+ title: `Follow ${serverName}`,
+ url: '',
+ };
+
+ const handleClick = () => onClick(fediverseFollowAction);
+ return html`
+ <span id="fediverse-follow-button-container">
+ <${ExternalActionButton}
+ onClick=${handleClick}
+ action=${fediverseFollowAction}
+ label=${`Follow ${
+ federationInfo.followerCount > 10
+ ? ` (${federationInfo.followerCount})`
+ : ''
+ }`}
+ />
+ </span>
+ `;
+}
diff --git a/webroot/js/components/platform-logos-list.js b/webroot/js/components/platform-logos-list.js
index 51fa3e604..d5c051e56 100644
--- a/webroot/js/components/platform-logos-list.js
+++ b/webroot/js/components/platform-logos-list.js
@@ -1,64 +1,70 @@
-import {h} from '/js/web_modules/preact.js';
+import { h } from '/js/web_modules/preact.js';
import htm from '/js/web_modules/htm.js';
-import {classNames} from '../utils/helpers.js';
+import { classNames } from '../utils/helpers.js';
const html = htm.bind(h);
function SocialIcon(props) {
- const {platform, icon, url} = props;
- const iconSupplied = !!icon
+ const { platform, icon, url } = props;
+ const iconSupplied = !!icon;
const name = platform;
const finalIcon = iconSupplied ? icon : '/img/platformlogos/default.svg';
- const style = `background-image: url(${finalIcon});`
+ const style = `background-image: url(${finalIcon});`;
const itemClass = classNames({
- "user-social-item": true,
- "flex": true,
- "justify-start": true,
- "items-center": true,
- "-mr-1": true,
+ 'user-social-item': true,
+ flex: true,
+ 'justify-start': true,
+ 'items-center': true,
+ 'm-1': true,
});
const labelClass = classNames({
- "platform-label": true,
- "visually-hidden": !!finalIcon,
- "text-indigo-800": true,
- "text-xs": true,
- "uppercase": true,
- "max-w-xs": true,
- "inline-block": true,
+ 'platform-label': true,
+ 'visually-hidden': !!finalIcon,
+ 'text-indigo-800': true,
+ 'text-xs': true,
+ uppercase: true,
+ 'max-w-xs': true,
+ 'inline-block': true,
});
- return (
- html`
- <a class=${itemClass} target="_blank" rel="me" href=${url}>
- <span class="platform-icon rounded-lg bg-no-repeat"
- style=${style} title="Find me on ${name}"></span>
- <span class=${labelClass}>Find me on ${name}</span>
- </a>
- `);
+ return html`
+ <a class=${itemClass} target="_blank" rel="me" href=${url}>
+ <span
+ class="platform-icon rounded-lg bg-no-repeat"
+ style=${style}
+ title="Find me on ${name}"
+ ></span>
+ <span class=${labelClass}>Find me on ${name}</span>
+ </a>
+ `;
}
export default function (props) {
- const {handles} = props;
+ const { handles } = props;
if (handles == null) {
return null;
}
- const list = handles.map((item, index) => html`
- <li key="social${index}">
- <${SocialIcon} platform=${item.platform} icon=${item.icon}
- url=${item.url}/>
- </li>
- `);
+ const list = handles.map(
+ (item, index) => html`
+ <li key="social${index}">
+ <${SocialIcon}
+ platform=${item.platform}
+ icon=${item.icon}
+ url=${item.url}
+ />
+ </li>
+ `
+ );
- return html`
- <ul
- id="social-list"
- class="social-list flex flex-row items-center justify-start flex-wrap">
- <span
- class="follow-label text-xs font-bold mr-2 uppercase">Follow me:</span>
+ return html` <ul id="social-list" class="social-list m-2 text-center">
+ <p
+ class="follow-icon-list flex flex-row items-center justify-center flex-wrap"
+ >
${list}
- </ul>`;
+ </p>
+ </ul>`;
}
diff --git a/webroot/js/components/tab-bar.js b/webroot/js/components/tab-bar.js
new file mode 100644
index 000000000..742bb9d5c
--- /dev/null
+++ b/webroot/js/components/tab-bar.js
@@ -0,0 +1,70 @@
+import { h, Component } from '/js/web_modules/preact.js';
+
+import htm from '/js/web_modules/htm.js';
+
+const html = htm.bind(h);
+
+export default class TabBar extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ activeIndex: 0,
+ };
+
+ this.handleTabClick = this.handleTabClick.bind(this);
+ }
+
+ handleTabClick(index) {
+ this.setState({ activeIndex: index });
+ }
+
+ render() {
+ const { tabs, ariaLabel } = this.props;
+ if (!tabs.length) {
+ return null;
+ }
+
+ if (tabs.length === 1) {
+ return html`
+ ${tabs[0].content}
+ `;
+
+ } else {
+ return html`
+ <div class="tab-bar">
+ <div role="tablist" aria-label=${ariaLabel}>
+ ${
+ tabs.map((tabItem, index) => {
+ const handleClick = () => this.handleTabClick(index);
+ return html`
+ <button
+ role="tab"
+ aria-selected=${index === this.state.activeIndex}
+ aria-controls=${`tabContent${index}`}
+ id=${`tab-${tabItem.label}`}
+ onclick=${handleClick}
+ >${tabItem.label}</button>
+ `;
+ })
+ }
+ </div>
+ ${
+ tabs.map((tabItem, index) => {
+ return html`
+ <div
+ tabindex="0"
+ role="tabpanel"
+ id=${`tabContent${index}`}
+ aria-labelledby=${`tab-${tabItem.label}`}
+ hidden=${index !== this.state.activeIndex}
+ >
+ ${tabItem.content}
+ </div>
+ `;
+ })
+ }
+ </div>
+ `;
+ }
+ }
+}
diff --git a/webroot/js/utils/chat.js b/webroot/js/utils/chat.js
index 0cfd821b1..51e44348f 100644
--- a/webroot/js/utils/chat.js
+++ b/webroot/js/utils/chat.js
@@ -43,11 +43,13 @@ export function generatePlaceholderText(isEnabled, hasSentFirstChatMessage) {
export function extraUserNamesFromMessageHistory(messages) {
const list = [];
if (messages) {
- messages.forEach(function (message) {
- if (!list.includes(message.user.displayName)) {
- list.push(message.user.displayName);
- }
- });
+ messages
+ .filter((m) => m.user && m.user.displayName)
+ .forEach(function (message) {
+ if (!list.includes(message.user.displayName)) {
+ list.push(message.user.displayName);
+ }
+ });
}
return list;
}
diff --git a/webroot/js/utils/constants.js b/webroot/js/utils/constants.js
index 355784110..adb59e04e 100644
--- a/webroot/js/utils/constants.js
+++ b/webroot/js/utils/constants.js
@@ -16,6 +16,7 @@ export const URL_WEBSOCKET = `${
location.protocol === 'https:' ? 'wss' : 'ws'
}://${location.host}/ws`;
export const URL_CHAT_REGISTRATION = `/api/chat/register`;
+export const URL_FOLLOWERS = `/api/followers`;
export const TIMER_STATUS_UPDATE = 5000; // ms
export const TIMER_DISABLE_CHAT_AFTER_OFFLINE = 5 * 60 * 1000; // 5 mins
diff --git a/webroot/js/utils/helpers.js b/webroot/js/utils/helpers.js
index d5283c84a..cfe653bb0 100644
--- a/webroot/js/utils/helpers.js
+++ b/webroot/js/utils/helpers.js
@@ -177,3 +177,24 @@ export function makeLastOnlineString(timestamp) {
return `Last live: ${string}`;
}
+
+
+// Routing & Tabs
+export const ROUTE_RECORDINGS = 'recordings';
+export const ROUTE_SCHEDULE = 'schedule';
+// looks for `/recording|schedule/id` pattern to determine what to display from the tab view
+export function checkUrlPathForDisplay() {
+ const pathTest = [ROUTE_RECORDINGS, ROUTE_SCHEDULE];
+ const pathParts = window.location.pathname.split('/');
+
+ if (pathParts.length >= 2) {
+ const part = pathParts[1].toLowerCase();
+ if (pathTest.includes(part)) {
+ return {
+ section: part,
+ sectionId: pathParts[2] || '',
+ };
+ }
+ }
+ return null;
+}
diff --git a/webroot/js/utils/websocket.js b/webroot/js/utils/websocket.js
index 7a52b4b89..e1001fbf3 100644
--- a/webroot/js/utils/websocket.js
+++ b/webroot/js/utils/websocket.js
@@ -12,6 +12,9 @@ export const SOCKET_MESSAGE_TYPES = {
SYSTEM: 'SYSTEM',
USER_JOINED: 'USER_JOINED',
CHAT_ACTION: 'CHAT_ACTION',
+ FEDIVERSE_ENGAGEMENT_FOLLOW: 'FEDIVERSE_ENGAGEMENT_FOLLOW',
+ FEDIVERSE_ENGAGEMENT_LIKE: 'FEDIVERSE_ENGAGEMENT_LIKE',
+ FEDIVERSE_ENGAGEMENT_REPOST: 'FEDIVERSE_ENGAGEMENT_REPOST',
CONNECTED_USER_INFO: 'CONNECTED_USER_INFO',
ERROR_USER_DISABLED: 'ERROR_USER_DISABLED',
ERROR_NEEDS_REGISTRATION: 'ERROR_NEEDS_REGISTRATION',
diff --git a/webroot/styles/app.css b/webroot/styles/app.css
index 3357b47e3..c7c8aadfc 100644
--- a/webroot/styles/app.css
+++ b/webroot/styles/app.css
@@ -10,6 +10,15 @@ May have overrides for other components with own stylesheets.
--video-container-height: calc((9 / 16) * 100vw);
--header-bg-color: rgba(20,0,40,1);
--user-image-width: 10em;
+
+ --novideo-container-height: 16em;
+
+ --owncast-purple: rgba(120, 113, 255, 1);
+}
+
+.no-video,
+.single-col.no-video {
+ --video-container-height: var(--novideo-container-height);
}
html {
@@ -78,23 +87,11 @@ header {
display: none;
}
-#external-actions-container {
- margin: 1em 0;
-
-}
.external-action-button {
- border-radius: 4px;
- color: #fff;
- font-size: .88em;
- padding: .25em .75em;
- margin: .35em;
- margin-left: 0;
- display: flex;
max-width: 250px;
- padding-top: .3em;
}
.external-action-button:hover {
- text-decoration: underline;
+ box-shadow: var(--owncast-purple) 0px 0px 5px;
}
.external-action-icon {
margin: .25em .5em .25em 0;
@@ -108,7 +105,9 @@ header {
overflow: hidden;
}
-
+#fediverse-follow-button-container .external-action-button {
+ border: 2px solid var(--owncast-purple);
+}
/* ************************************************ */
@@ -170,6 +169,9 @@ header {
width: var(--content-width);
}
+.user-content-header {
+ width: 100%;
+}
.chat #video-container {
height: calc((9 / 16) * var(--content-width));
}
@@ -218,7 +220,7 @@ header {
}
.single-col #user-content .user-content {
flex-wrap: wrap;
- justify-content: center;
+ justify-content: flex-start;
}
.single-col.chat #user-content {
display: none;
@@ -243,6 +245,36 @@ header {
max-height: 3em;
}
+
+.single-col .user-logo-icons {
+ margin-right: 0;
+ margin-bottom: 1em;
+ flex-direction: row;
+ align-items: flex-end;
+ justify-content: center;
+}
+.single-col.use-fediverse-follow.user-logo-icons {
+ align-items: center;
+}
+
+.single-col .social-list {
+ text-align: left;
+}
+.single-col .social-actions {
+ margin-left: 1em;
+}
+.single-col .follow-icon-list {
+ justify-content: flex-start;
+}
+.single-col.use-fediverse-follow #fediverse-button-singlecol {
+ display: inline-block;
+}
+
+.single-col #external-actions-container {
+ justify-content: flex-start;
+}
+
+
@media screen and (max-height: 500px) {
.single-col.touch-screen:not(.touch-keyboard-active) {
--header-height: 0px;
@@ -251,15 +283,19 @@ header {
display: none;
}
}
+/* ************************************************ */
+.no-video #video-container {
+ min-height: var(--video-container-height);
+}
+
/* ************************************************ */
@media screen and (max-width: 860px) {
:root {
--right-col-width: 20em;
- --user-image-width: 6em;
}
#video-container {
min-height: 240px;
@@ -314,14 +350,14 @@ header {
}
.modal__container {
+ position: relative;
background-color: transparent;
padding: 0px;
max-width: 740px;
- height: 75vh;
width: 50%;
- border-radius: 0px;
overflow: hidden;
box-sizing: border-box;
+ top: -15%;
}
.modal__close {
background: transparent;
@@ -419,3 +455,52 @@ header {
-webkit-overflow-scrolling: touch;
}
}
+
+
+/**************************
+ Tab Bar Base Styles
+**************************/
+.tab-bar [role="tab"] {
+ padding: .5rem 1rem;
+ border-radius: .25rem .25rem 0 0;
+ font-weight: bold;
+}
+.tab-bar [role="tab"]:hover {
+ background-color: rgba(255,255,255,.35);
+}
+.tab-bar [role="tab"][aria-selected="true"] {
+ color: var(--owncast-purple);
+ background-color: white;
+}
+.tab-bar [role="tabpanel"] {
+ padding: 1rem 0;
+ border-top: 1px solid var(--header-bg-color);
+ min-height: 15rem;
+}
+
+.follower {
+ width: 20vw;
+ max-width: 300px
+}
+
+.following-list-follower {
+ max-width: 280px;
+}
+
+#follow-loading-spinner-container {
+ position: absolute;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ top: 0px;
+ left: 0px;
+ width: 100%;
+ height: 100%;
+ opacity: 0.7;
+}
+
+#follow-loading-spinner {
+ width: 100px;
+ height: 100px;
+}
diff --git a/webroot/styles/chat.css b/webroot/styles/chat.css
index a32d6f671..1d575463b 100644
--- a/webroot/styles/chat.css
+++ b/webroot/styles/chat.css
@@ -342,3 +342,16 @@
/* MODERATOR STYLES */
/* MODERATOR STYLES */
/* MODERATOR STYLES */
+
+.action-icon {
+ bottom: -5px;
+ right: -2px;
+ animation: spin 0.4s ease 1.0;
+ animation-fill-mode: forwards;
+ background-color: white;
+ background-size: cover;
+}
+
+.federated-action {
+ min-height: 76px;
+}
diff --git a/webroot/styles/user-content.css b/webroot/styles/user-content.css
index 21960cf78..410c1b564 100644
--- a/webroot/styles/user-content.css
+++ b/webroot/styles/user-content.css
@@ -6,9 +6,9 @@
background-size: cover;
}
-.user-social-item {
+/* .user-social-item {
margin-right: .85rem;
-}
+} */
.user-social-item .platform-icon {
--icon-width: 28px;