From 4fb86693c352d3b31544438b6ab6e75715d721ea Mon Sep 17 00:00:00 2001 From: Zack Rauen Date: Thu, 18 Oct 2018 23:59:27 -0400 Subject: [PATCH] switch to datastore and contentmanager --- .eslintrc | 3 +- css/main.css | 23 + css/main.min.css | 2 +- data/serverlist.json | 1 - data/serverlist_archive.json | 1040 ---------------------------------- data/updater.json | 2 +- js/main.js | 756 ++++++++++++++++++++---- js/main.min.js | 23 +- 8 files changed, 672 insertions(+), 1178 deletions(-) delete mode 100644 data/serverlist.json delete mode 100644 data/serverlist_archive.json diff --git a/.eslintrc b/.eslintrc index d89726af..30ce44fe 100644 --- a/.eslintrc +++ b/.eslintrc @@ -35,6 +35,7 @@ "bdVersion": false, "version": false, "_bdhash": true, - "ace": false + "ace": false, + "Reflect": false } } \ No newline at end of file diff --git a/css/main.css b/css/main.css index 9227a27d..bd7dd6a3 100644 --- a/css/main.css +++ b/css/main.css @@ -17,6 +17,29 @@ 50% { opacity: 0.6; } 100% { opacity: 0.05; } } +/* // */ + +.bd-reload { + cursor: pointer; + vertical-align: top; + fill: #dcddde; +} + +.bd-reload:hover { + fill: #fff; +} + +.bd-reload-header { + margin-left: 5px; +} + +.bd-reload-card { + margin-right: 5px; +} + +.bda-controls { + display: flex; +} .ui-standard-sidebar-view .bd-psm { background-color: #292b2f; diff --git a/css/main.min.css b/css/main.min.css index 96e93849..30d00406 100644 --- a/css/main.min.css +++ b/css/main.min.css @@ -1 +1 @@ -.bd-loaderv2{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iQ2FscXVlXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMjAwMCAyMDAwIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAyMDAwIDIwMDAiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxnPjxwYXRoIGZpbGw9IiMzRTgyRTUiIGQ9Ik0xNDAyLjIsNjMxLjdjLTkuNy0zNTMuNC0yODYuMi00OTYtNjQyLjYtNDk2SDY4LjR2NzE0LjFsNDQyLDM5OFY0OTAuN2gyNTdjMjc0LjUsMCwyNzQuNSwzNDQuOSwwLDM0NC45ICAgSDU5Ny42djMyOS41aDE2OS44YzI3NC41LDAsMjc0LjUsMzQ0LjgsMCwzNDQuOGgtNjk5djM1NC45aDY5MS4yYzM1Ni4zLDAsNjMyLjgtMTQyLjYsNjQyLjYtNDk2YzAtMTYyLjYtNDQuNS0yODQuMS0xMjIuOS0zNjguNiAgIEMxMzU3LjcsOTE1LjgsMTQwMi4yLDc5NC4zLDE0MDIuMiw2MzEuN3oiLz48cGF0aCBmaWxsPSIjRkZGRkZGIiBkPSJNMTI2Mi41LDEzNS4yTDEyNjIuNSwxMzUuMmwtNzYuOCwwYzI2LjYsMTMuMyw1MS43LDI4LjEsNzUsNDQuM2M3MC43LDQ5LjEsMTI2LjEsMTExLjUsMTY0LjYsMTg1LjMgICBjMzkuOSw3Ni42LDYxLjUsMTY1LjYsNjQuMywyNjQuNmwwLDEuMnYxLjJjMCwxNDEuMSwwLDU5Ni4xLDAsNzM3LjF2MS4ybDAsMS4yYy0yLjcsOTktMjQuMywxODgtNjQuMywyNjQuNiAgIGMtMzguNSw3My44LTkzLjgsMTM2LjItMTY0LjYsMTg1LjNjLTIyLjYsMTUuNy00Ni45LDMwLjEtNzIuNiw0My4xaDcyLjVjMzQ2LjIsMS45LDY3MS0xNzEuMiw2NzEtNTY3LjlWNzE2LjcgICBDMTkzMy41LDMxMi4yLDE2MDguNywxMzUuMiwxMjYyLjUsMTM1LjJ6Ii8+PC9nPjwvc3ZnPg==);position:fixed;bottom:5px;right:5px;z-index:2147483647;display:block;width:20px;height:20px;background-size:100% 100%;-webkit-animation:bd-loaderv2-animation 1.5s ease-in-out infinite}@-webkit-keyframes bd-loaderv2-animation{0%{opacity:.05}50%{opacity:.6}100%{opacity:.05}}.ui-standard-sidebar-view .bd-psm{background-color:#292b2f;box-shadow:0 0 12px 6px rgba(31,31,31,0.32);border:1px solid #3f4146;width:60vw;height:80vh;border-radius:6px}.ui-standard-sidebar-view #bd-customcss-attach-controls button,.bd-detached-css-editor #bd-customcss-attach-controls button{margin:0;width:100px;background:#31332b;color:#FFF;height:26px;font-weight:600;margin-top:5px;border-radius:3px}.ui-standard-sidebar-view #bd-customcss-attach-controls button:hover,.bd-detached-css-editor #bd-customcss-attach-controls button:hover{background:#3b3e44}.cm-s-neat span.cm-comment{color:#a86}.cm-s-neat span.cm-keyword{line-height:1em;font-weight:700;color:#00f}.cm-s-neat span.cm-string{color:#a22}.cm-s-neat span.cm-builtin{line-height:1em;font-weight:700;color:#077}.cm-s-neat span.cm-special{line-height:1em;font-weight:700;color:#0aa}.cm-s-neat span.cm-variable{color:#000}.cm-s-neat span.cm-atom,.cm-s-neat span.cm-number{color:#3a3}.cm-s-neat span.cm-meta{color:#555}.cm-s-neat span.cm-link{color:#3a3}.cm-s-neat .CodeMirror-activeline-background{background:#e8f2ff}.cm-s-neat .CodeMirror-matchingbracket{outline:grey solid 1px;color:#000 !important}#custom-css-ta{background:#d8d8d8;height:200px;font-family:"Consolas"}.content-region .CodeMirror,.content-region .cm-s-material .CodeMirror-gutters,#bd-customcss-detach-container .CodeMirror,#bd-customcss-detach-container .cm-s-material .CodeMirror-gutters{background:#292b2f !important}.content-region #bd-customcss-attach-controls,#bd-customcss-detach-container #bd-customcss-attach-controls{background:#272822;color:#FFF;border:0;box-shadow:0 1px 0 0 #2f3129 inset}.content-region #bd-customcss-pane,.content-region #bd-customcss-innerpane,#bd-customcss-detach-container #bd-customcss-pane,#bd-customcss-detach-container #bd-customcss-innerpane{min-height:calc(80vh - 165px)}.content-region .CodeMirror,.content-region .CodeMirror-scroll{max-height:calc(95vh - 165px);min-height:calc(95vh - 165px);height:auto}.content-region .CodeMirror-simplescroll-vertical,.content-region .CodeMirror-simplescroll-horizontal,#bd-customcss-detach-container .CodeMirror-simplescroll-vertical,#bd-customcss-detach-container .CodeMirror-simplescroll-horizontal{background:transparent !important}.content-region .CodeMirror-simplescroll-vertical,#bd-customcss-detach-container .CodeMirror-simplescroll-vertical{margin-right:3px !important}.content-region .CodeMirror-simplescroll-horizontal,#bd-customcss-detach-container .CodeMirror-simplescroll-horizontal{margin-bottom:3px !important}.content-region .CodeMirror-simplescroll-vertical div,.content-region .CodeMirror-simplescroll-horizontal div,#bd-customcss-detach-container .CodeMirror-simplescroll-vertical div,#bd-customcss-detach-container .CodeMirror-simplescroll-horizontal div{background:#18191c !important;border:none !important;border-radius:5px !important}.content-region .CodeMirror-scrollbar-filler,#bd-customcss-detach-container .CodeMirror-scrollbar-filler{display:none !important}.ui-standard-sidebar-view #editor-detached h3{color:#87909c;font-weight:600;font-size:22px}.ui-standard-sidebar-view #editor-detached button{margin:auto;margin-left:calc(50% - 100px);margin-top:20px;background:#7289da;color:#FFF;font-weight:600;border-radius:5px;font-size:20px}.bd-blue .ui-standard-sidebar-view #editor-detached button{background:#3a71c1}.ui-standard-sidebar-view .bd-versioninfo-wrapper{bottom:0;left:0;position:fixed;background:inherit;right:0;padding:5px}.ui-standard-sidebar-view .bd-versioninfo-wrapper span{color:#b9bbbe;font-weight:600;font-size:11px}.ui-standard-sidebar-view .bd-versioninfo-wrapper a{font-size:11px}.bd-server-card .bd-server-tags{flex:1 1 auto;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:0;line-height:24px;font-size:12px;color:#b9bbbe;font-weight:700;margin-right:10px}.ui-card.ui-card-primary.bd-server-card:first-child{margin-bottom:13px}.ui-card.ui-card-primary.bd-server-card:first-child:after{border:3px solid #7289da;content:"";display:block;position:absolute;left:0;right:0;margin-top:4px}.bd-server-card.bd-server-card-pinned{margin-bottom:15px}.bd-server-card.bd-server-card-pinned:after{background:#3a71c1;content:"";height:3px;width:100%;display:block;margin-top:7px;position:absolute;top:100%}.bd-server-description-container{color:#b9bbbe;min-height:65px;max-height:65px;border-top:1px solid #3f4146;border-bottom:1px solid #3f4146;padding-top:5px;font-size:13px}.bd-server-header{justify-content:space-between;font-weight:600}.bd-server-card{display:flex}.bd-server-content{padding:5px 10px;flex:1}.bd-server-image{min-width:115px;min-height:115px;max-width:115px;max-height:115px}.bd-server-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;padding-right:15px;max-width:330px;flex:1 1 50%}.bd-layer{-ms-flex-direction:column;-webkit-box-direction:normal;-webkit-box-orient:vertical;bottom:0;display:-webkit-box;display:-ms-flexbox;display:flex;flex-direction:column;left:0;position:absolute;right:0;top:0}.spoiler{color:transparent !important}.spoiler img{display:none}.spoiler:before{content:"Spoiler";display:block;background:#1d1d1d;color:#adadad !important;min-height:30px;text-align:center;line-height:100%;font-family:"Consolas";padding-top:5px}.emotemenu-enabled .channel-textarea-inner textarea{margin-right:45px !important}#bdbeta{background:red}.editor-wrapper{display:flex}.line-numbers,.editor{line-height:normal;font-family:Consolas,monospace;box-sizing:border-box;height:calc(100vh - 250px);font-size:14px}.line-numbers{white-space:pre;color:gray;padding:10px 5px 0 5px;background:#24262a;overflow:hidden}.editor{width:100%;background:#292b2f;outline:0;color:white;padding:10px;resize:none}#bd-customcss-detach-container .editor-wrapper,#bd-customcss-detach-container .line-numbers,#bd-customcss-detach-container .editor{height:100%}#emote-menu{background:#36393e;height:0;width:300px;position:absolute;bottom:45px;right:0;border:1px solid #000;border-radius:5px 0 0 0;overflow:hidden;visibility:hidden;transition:all 1s;-webkit-transition:all 1s}.emotemenu-open{height:450px !important;visibility:visible !important}#emote-menu-header{width:100%;height:30px;background-color:#36393e}.emote-menu-tab{float:left;width:130px;text-align:center;padding:7px;color:#adadad;background-color:#424549;cursor:pointer}.emote-menu-tab:hover{background-color:#45484c}#emote-menu-inner,#emote-menu-inner-fav{height:412px}.emote-menu-tab-selected{background-color:#36393e}.emote-menu-tab-selected:hover{background-color:#36393e}#emote-container{padding:10px}.emote-container{display:inline-block;padding:2px;border-radius:5px;width:30px;height:30px;position:relative}.emote-icon{max-width:100%;max-height:100%;position:absolute;margin:auto;top:0;right:0;bottom:0;left:0;cursor:pointer}.emote.stop-animation{animation:none !important}.emote-container:hover{background:rgba(123,123,123,0.37)}.emoteflip,.emotespinflip{transform:scaleX(-1)}.emotespin{animation:1s emote-spin infinite linear}.emote1spin{animation:1s emote-spin-reverse infinite linear}.emotespin2{animation:.5s emote-spin infinite linear}.emote2spin{animation:.5s emote-spin-reverse infinite linear}.emotespin3{animation:.2s emote-spin infinite linear}.emote3spin{animation:.2s emote-spin-reverse infinite linear}.emotepulse{animation:1s emote-pulse infinite linear}.emotetr{transform:translateX(-3px)}.emotebl{transform:translateY(-3px)}.emotebr{transform:translate(-3px,-3px)}.emoteshake{animation:1s emote-shake infinite linear}.emoteflap{transform:scaleY(-1) !important}.emoteshake2{animation:emote-shake2 .3s linear infinite}.emoteshake3{animation:emote-shake3 .1s linear infinite}@keyframes emote-shake2{25%{transform:translate(-1px,-1px)}50%{transform:translate(-1px,1px)}75%{transform:translate(1px,1px)}75%{transform:translate(1px,-1px)}}@keyframes emote-shake3{25%{transform:translate(-1px,-1px)}50%{transform:translate(-1px,1px)}75%{transform:translate(1px,1px)}75%{transform:translate(1px,-1px)}}@keyframes emote-spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes emote-spin-reverse{from{transform:rotate(0)}to{transform:rotate(-360deg)}}@keyframes emote-pulse{0%{-webkit-transform:scale(1,1)}50%{-webkit-transform:scale(1.2,1.2)}100%{-webkit-transform:scale(1,1)}}@keyframes emote-shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}#tc-settings-panel{position:fixed;width:50%;height:75%;background:#2e3136;display:block;z-index:9001;margin-left:25%;margin-top:5%;border:1px solid #000;box-shadow:0 0 20px 0 #000;max-height:800px;min-width:750px}#tc-settings-panel-header{background:#36393e;height:60px;border-bottom:1px solid #000;box-shadow:0 1px 0 0 #4e4e4e}#tc-settings-panel-header h2{margin:0;line-height:60px;margin-left:10px;color:#adadad;display:inline-block;float:left}#tc-settings-panel-header span{float:right;display:inline;line-height:50px;margin-right:15px;font-size:29px;font-weight:bold;color:#adadad}#rmenu{width:auto;background:#505050;position:absolute;z-index:999999;display:none;box-shadow:0 0 2px #000;padding:2px}#rmenu ul a{text-decoration:none;color:#FFF;padding:3px}#tc-settings-panel-body{overflow:auto}#tc-settings-panel-body ul{overflow:auto;position:absolute;padding:0;margin-top:0;border-bottom:1px solid #000;left:0;right:0;bottom:40px;top:61px}#tc-settings-panel-body ul li{padding:15px;color:#adadad;background:#2e3136;border-bottom:1px solid #000;box-shadow:0 1px 0 #404040 inset}#tc-settings-panel-body ul li:nth-child(odd){background:#33363b}#tc-settings-panel-body ul li h2{display:inline}#tc-links a{color:#FFF}#tc-settings-panel-footer{background:#36393e;height:40px;position:absolute;bottom:0;right:0;left:0;border-top:1px solid #000;box-shadow:0 1px 0 #505050 inset;line-height:40px;padding-left:10px;color:#adadad !important}#tc-links{float:right;margin-right:10px}.tc-switch{background:#2e3136;width:100px;height:24px;display:inline-block;float:right;margin:-7px;border:1px solid #000;outline:1px solid #404040;cursor:pointer}.tc-switch.disabled{background:gray;cursor:default}.tc-switch.disabled span{background:gray !important}.tc-switch.disabled .tc-switch-on{border-left:1px gray !important}.tc-switch span{line-height:24px;display:inline-block;width:49px;text-align:center;height:24px}.tc-switch-off{border-right:1px solid #000}.tc-switch-on{border-left:1px solid #404040}.tc-switch-on.active{background:green;border-left:1px solid #00ae08}.tc-switch-off.active{background:#860606}.bd-minimal .divider-32i8lo{opacity:0}.bd-minimal .large-3ChYtB{max-width:20px;max-height:20px;background-size:100%;margin-right:2px;margin-top:0;border-radius:0}.bd-minimal .content-3dzVd8{border-left:2px solid #ebebeb;padding-left:2px}.bd-minimal .theme-dark .content-3dzVd8{border-left:2px solid #303030}.bd-minimal .username-_4ZSMR{font-size:small}.bd-minimal.bd-minimal-chan .channels-Ie2l6A{display:none}.bd-minimal .container-1YxwTf{padding:5px}.bd-minimal .embed{padding:2px}.bd-minimal .members-1998pB .small-5Os1Bb{max-width:15px;max-height:15px;background-size:15px 15px}.bd-minimal .members-1998pB .small-5Os1Bb .status-oxiHuE{height:5px;width:5px}.bd-minimal .members-1998pB .member-3W1lQa{padding:5px}.bd-minimal .members-1998pB .memberInner-2CPc3V{transform:scale(0.9)}.bd-minimal .membersWrap-2h-GB4{min-width:0}.bd-minimal .members-1998pB .membersGroup-v9BXpm{margin-top:3px;transform:scale(0.9)}.bd-minimal .channels-Ie2l6A header span{font-size:12px}.bd-minimal .channels-Ie2l6A .channels-Ie2l6A{padding:0}.bd-minimal .guildsWrapper-5TJh6A .guilds-1q_RqH .guild-1EfMGQ{width:20px;height:20px;background-size:100%;font-size:15px;line-height:20px}.bd-minimal .guildsWrapper-5TJh6A .guilds-1q_RqH .guild-1EfMGQ .guildInner-3DSoA4 a,.bd-minimal .guild-1EfMGQ .guildInner-3DSoA4 .guildIcon-CT-ZDq{width:20px;height:20px;background-size:100%;font-size:15px;line-height:20px}.bd-minimal .guild-1EfMGQ .guildInner-3DSoA4{width:20px;height:20px;background-size:100%;font-size:15px;line-height:20px}.bd-minimal .guilds-1q_RqH .homeIcon-1FoKUJ{width:10px;height:10px;background-size:100%;font-size:15px;line-height:20px}.bd-minimal .guilds-1q_RqH .friendsOnline-_wi_fM{margin-left:-15px;font-size:7px}.bd-minimal .guildsWrapper-5TJh6A{width:45px}.bd-minimal .guildsWrapper-5TJh6A .guildSeparator-1X4GQ1{margin-left:-15px}.bd-minimal .guildsWrapper-5TJh6A .guilds-1q_RqH .guild-1EfMGQ.selected-ML3OIq:before{height:20px;margin-top:-10px}.bd-minimal .guildsAdd-21_IdK{font-size:20px;line-height:14px}.bd-minimal .guilds-1q_RqH .audio-3vVhBi .guildInner-3DSoA4:after{width:12px;height:12px;background-size:12px}.bd-minimal .guild-header header span{margin-left:-20px}.bd-minimal .btn-hamburger{margin-right:-30px}.bd-minimal .container-2Thooq .avatar-small{width:15px;height:15px;background-size:15px 15px}.bd-minimal .container-2Thooq .avatar-small .status-oxiHuE{height:5px;width:5px}.bd-minimal .container-2Thooq .accountDetails-3k9g4n{transform:scale(0.8)}.bd-minimal .container-2Thooq .button-2b6hmh{height:14px;width:14px;background-size:14px 14px;margin-left:3px}.bd-minimal .container-2Thooq .button-2b6hmh svg{height:14px;width:14px}.bd-minimal .channels-Ie2l6A{width:160px}.bd-minimal .content-20Aix8{transform:scale(0.9)}.bd-minimal .containerDefault-3GGEv_{transform:scale(0.9)}.bd-minimal .icon-sxakjD{width:14px;height:14px}.emotewrapper{position:relative;display:inline-flex;object-fit:contain;margin:-.1em .05em -.2em .1em;vertical-align:top}.emotewrapper.jumboable{margin-bottom:0;margin-top:.2em;vertical-align:-.3em}.emote{height:1.45em}.emote.jumboable{height:2rem}.emotewrapper:hover .fav{display:block}#bd-changelog h2{font-size:150%;padding-bottom:10px;border-bottom:1px solid rgba(0,0,0,0.5)}.fav{display:none;position:absolute;width:15px;height:15px;right:-7px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAzFBMVEUAAABQUFBMTExLS0tNTU1MTExNTU1NTU1MTExMTExNTU1LS0tEREBEREBEREBEREBJSUhLS0tLS0tEREBNTU1NTU1NTU1EREArKyhNTU1NTU0AAABMTExKSklMTExNTU1NTU1NTU1KSkpMTExKSkhNTU1KSkpISEZNTU1LS0tAQDxOTk5KSkpLS0tNTU1MTExMTEx/f39MTExMTExLS0pLS0tMTExNTU1NTU1LS0pNTU1NTU1NTU1NTU1NTU1NTUxNTU1NTU1NTUxMTEzB8C/5AAAAOnRSTlMAI8X96oWAgYSF68QBAg0PMCb9BIuLgQUD4N0Bh0mKhZSOQ4gcrKscaW8QRE6fmJyjAshASceG7cIpqQOxTQAAALVJREFUGFddx6FOA0EYAOGZvd07Qm6vVCAAgUUgQEDfX/YZMAigqaFN7iC5tsmPqGPUN/AvUVeoEbGOCElJz08Uzeixqu4AqomVVSNngOVjTqDGZSl3UFtPGV2ot2zaq96YM9p5Ddzcf/nTTAlj+/sNtNu8OcwkIsbPBtrUfMQeEhGQmHbmGIFMwLPzu6UMIwBNgToshgq8Nr2ki+Oy7ebDHp70LRPWB6OZgfWLWei7fJonOOsPCGA9kVlssOoAAAAASUVORK5CYII=");border:0;background-size:100% 100%;background-repeat:no-repeat;background-color:#303030;border-radius:5px;top:-7px;cursor:pointer}.fav.active{background-color:yellow}#bd-ps-container{position:fixed;width:50%;height:75%;background:#2e3136;display:block;z-index:9001;margin-left:25%;margin-top:5%;border:1px solid #000;box-shadow:0 0 20px 0 #000;max-height:800px;min-width:750px}#bd-ps-header{background:#36393e;height:60px;border-bottom:1px solid #000;box-shadow:0 1px 0 0 #4e4e4e}#bd-ps-header h2{margin:0;line-height:60px;margin-left:10px;color:#adadad;display:inline-block;float:left}#bd-ps-header span{float:right;display:inline;line-height:50px;margin-right:15px;font-size:29px;font-weight:bold;color:#adadad}#bd-ps-body{position:absolute;padding:0;margin-top:0;left:0;right:0;bottom:0;top:61px;overflow:auto}.bd-ps-server{width:100%;height:200px}.bd-ps-server-header{height:50px;width:100%;margin-top:1px;background:#202020;color:#aeaeae;line-height:50px;font-size:20px}.bd-ps-server-header span{margin-left:10px}.bd-ps-server-body{padding:5px}.bd-ps-server-icon{width:90px;height:90px;background:#202020;display:inline-block}.bd-ps-server-info{position:absolute;height:190px;display:inline-block;left:100px;right:5px;color:#aeaeae;overflow:auto}#bd-ps-body table{width:100%;margin:0;padding:0;border-color:red;border-collapse:collapse;text-align:left}#bd-ps-body table th{background-color:#202020;color:#ededed;height:50px;padding-left:5px}#bd-ps-body table tr{margin:0;padding:0;height:50px;background-color:#33363b;border-bottom:1px solid #000;box-shadow:0 1px 0 #404040 inset}#bd-ps-body table tr td{padding-left:5px;color:#ededed;min-width:100px}#bd-ps-body .description{overflow:auto;max-height:60px;word-wrap:break-word}#bd-ps-body table tr:nth-child(odd){background-color:#2e3136}#bd-show-channels{display:none;width:12px;height:18px;background:#2e3136;position:absolute;left:33px;top:79px;text-align:left !important;padding:0 !important;padding-left:3px !important;color:#ebebeb;z-index:90000}.bd-minimal-chan #bd-show-channels{display:block !important}.tipsy{z-index:9000000001 !important;position:fixed;padding:5px;display:block;visibility:visible;opacity:.8}.tipsy-arrow{position:absolute;width:0;height:0;border:5px solid transparent;bottom:0;right:10px;border-bottom:0;border-top-color:black}.tipsy-inner{background-color:black;color:white;max-width:300px;padding:5px 8px 4px;text-align:center;overflow:hidden !important;text-overflow:ellipsis}#bd-psd-container{position:fixed;width:50%;height:75%;display:block;margin-left:25%;margin-top:5%;box-shadow:0 0 20px 0 #000;background:#2e3135;border:1px solid #25282c;min-width:750px;min-height:800px}#bd-psd-header{width:100%;height:40px;border-bottom:1px solid #25282c;line-height:40px;color:#adadad}#bd-psd-header span{margin-left:10px}#bd-psd-body{height:100%;width:100%}#bd-psd-table{width:100%;margin:0;padding:0;text-align:left;color:#adadad}#bd-psd-table thead th{background:#1d1d1d;padding:5px}#bd-psd-table tbody td{padding:5px}#bd-psd-table tbody tr{background:#292c30}#bd-psd-table tbody tr:nth-child(odd){background:#2e3135}#bd-psd-table button{background:#292c30;border:1px solid #1d1d1d;width:60px;height:30px;color:#adadad;cursor:pointer}#bd-psd-table button:hover{background:#2e3135}#bd-psd-header a{float:right;margin-right:10px;font-size:30px;color:#adadad;text-decoration:none;margin-top:-7px}.bd-g-table{text-align:left;width:520px;white-space:nowrap}.bd-g-table thead th{background:#ebebeb !important;color:#87909c !important;padding:5px !important}.bd-g-table tbody tr{background:#e0e0e0 !important}.bd-g-table tbody tr:nth-child(odd){background:#ececec !important}.bd-g-table tbody td{color:#87909c !important;padding:5px !important;font-size:small}.bd-g-table textarea{width:100% !important;background:#e0e0e0 !important;border:none !important;resize:none !important;font-size:small !important;margin:0 !important;padding:0 !important}.bd-g-table input{margin:0 !important;padding:0 !important}.message-group.compact .message .markup .message-content{text-indent:0}.bd-psb{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAG6ElEQVR4XtWZS0xTWRjHP54+H+WhQRO0GAQxxikxmhhMKBu2upLoTDKsaupmcGVYVTdjxhUrG9kMG0OYTDKSuGIzZQHGUQNEowaJ4lt8UXwBPuf7kV5ycrmXW26bVP/JlxR6zvc63+uc5n379k1+ZOTLD45CPnR2dkoWcUgpqhS2LUgoxZX+kiwgEolYBmSGlpYWsdDT0xMoLi7uaW5ulk2bNomJJ0+ehPv6+sIfP37s0z1JY893FUKt27ZtQ3n58OGDTE1NQXyWiooKqa6uFtZkN4QyhK0IHFi/fr3MzMyIelos8DkvL09Wr17Nmp/Yk4skDimdNGPbREFBAR+Cq1atki9fvogdGFBSUiLwYa0L4I2MULYNOFtWVja0e/fumIbHvyLyj1KzpLBs2TLp7u6OrFmzJrhx40b5+vWr2PH582fZsmWL6JoQa9ljoBme8EYGspApaYA+4FWFztbU1ETD4bBYGB8fl0QiQWicJkKUfg0qVLiocJmcnBQncAKvXr2Sa9euwWM8VZVI/Hb4KwuxAP/R0VG+P+a7CpnK48G3b9/ibQTJkSNHUKRdhYuuwbMCWOMG9mOgVik+B2/cuPEHCzAcPiT77OwsvCTlsKgaIRjhJ4nDGg7RxsZG+fTpk6XYfIIS6/v27RPA91QbYn8xsO7169fky4L9yWRyPvTevHmDEaKykRt9+vQpvSOx1BA6uWPHjpiS5BI3b96ETqHPUkNo/P3795LrWQkd0MVPCHXdv3//N20+oXXr1kk6IE9IUsKJMEM4IFyIcfiQA4WFiPXGixcvRHVIoIvfMhq/dOkSMSqLgdjVOJWRkREEEs8kJLUf4jP/4zvWsJY9nvlCtUKHTDpxpwqv04rXpifhKujOnTuWtz1Boj98+JBkFsaOoqIicYLKxPAOhr+sjBKUT0qcCcLk9u3b86PCUsCp3Lp1S7Zv3054iQH+zuos1FpbW4uCZkLzWe7evUvcS36+v5mQvfCgj5gOgB+95vr16wdF5HgmBkS2bt0aWL58udgr0vPnz2V6etoS7BvwgNeGDRvEAidN166srAxquEUI5XQNCChhdaNSiLmlvr4exUk6M46pEG6ex8rzSr1KA0qggUlV6Wd6j1O1oTrR4Cz+yNu7dy/Jf45mJiLDSv1KF5SSTgYc4jLC0THPwxCCGbON4X2rKzsZwKJTKTLxd4rGlGJORlB68bqZI/x9+PBhSnMI0ktRqyb3n5pzLSS33YCodZNCWZTEM8SpDbR6t9A5j/LiDr6jnP0iNrx7904CgYBZ3QgtegYFhIpFrnCzk4sXL0btBgRXrlwZZjFKs9mjRruFT694o9fBACoZjnOSBWGgWXLDAkwDVqxYYXrbq3G5GTAg3hhw4+kBDFk0idOaezglwifLgCe8UdLXnTjJxjQHN47S7bQaSFaP7Q0uPJEP+TJgWBMTCq1du9ZrFCCp3Gb/A54GsMYBdN90vE8BQV+nEIpfvnz5HDMPRmgPwCuOBlAtuNg4gDo/tkgliqXW2IFMV+9bFyqUHxuDvcTdLjQ1qVe1EFRaWhqgkdkNoTM/ePAAgVlpZMT/5s2bccqCLj00NITiSbwOpZQfdbvQjBqzBxPj7zqste/cuXNByeP95+XLl475SJmEJD3Ay6mM4m2UPyEiZ/zOQmcmJibamRipEGYYad8QSi9zSybgNOFD57UPeo8fP05ayvs1IKmMOh49etTGm479eHkupDMizA9wCt6nSdmhMvnQlbWnRfKAYzZPgcTCCC4nGLQU4HXNMXPKNSuS5ZTpTA1oVsXb6urqUNipe6IAVYn7LmOIV0elg+N1Epe9rHc8mV27dlEo2rUCcSfu82tAdM+ePXiEsdax6mAYIcAozEyPgvxNblgnxn56B5d7eHBa7HMD3+MUZA8ODkb9GhDWcfpgeXk5Cnl61jIEYAwv0SgOMMR62Ut31oIXstFBR+mwr4ctvY3FqqqqJJe4d+8e105fD1sJvcjEuODkENZDccLPuxAGdPGG43Ih53kE8iqjfvfzaoEBcXTxm8RxmChaKZfG7YkXA1p/R+qY24hXbk0er27sYT1dHMXZz0MXlY68MZWXZ8+eGc/r/l7m/ksZ0YXCPDbB+MqVK8OqyFHGjqampuOqSIkKO83c4gXW6NoT7GEvPNQhR+EJb2Qgy1t5exJ742BqyBs3OiTv+OaPEpP79+8PuJ0CJ3f16tVh3VNv7BEDrUrB1NB2IZ2fWfMlfcDwpEd7H0ZJ4GYAa8QdXchAVq5+Zu2n4XkYMPI9/8wa1yGMH+lISLvyxLXgZfbkwABP8JPQRH9//1F9Fo/qKBAySiYGDGOgrkmKD/hPYv8IG5+tG1XWQBLPG/Aj439gf0WR+WMvWwAAAABJRU5ErkJggg==");width:25px;height:25px;background-color:transparent;background-size:100%}.bd-psm{position:fixed;pointer-events:auto;width:490px;height:460px;background-color:white;z-index:900000;margin:auto;right:0;left:170px;top:-60px;bottom:0;box-shadow:0 0 10px 5px rgba(193,193,193,0.75);border:1px solid #ebebeb}.bd-alert{position:absolute;width:600px;height:200px;left:0;right:0;top:300px;background-color:#2e3136;margin:auto;border:1px solid #323232;box-shadow:0 0 5px 3px rgba(30,30,30,0.5);color:#ebebeb}.bd-alert-header{height:25px;background:#36393e}.bd-alert-header span{line-height:25px;margin-left:5px}.bd-alert-closebtn{cursor:pointer;float:right;margin-right:5px;margin-top:2px}.bd-alert-closebtn:hover{color:#adadad}.bd-alert-body{height:178px}.bd-alert-body a{color:#FFF !important}.bd-alert-body .scroller-wrap{height:178px}.bd-alert-body .scroller-wrap .scroller{padding:5px;word-wrap:break-word}.channel-textarea-inner textarea{margin-right:40px}.servericon{width:64px;display:inline-block;background-size:100% auto;height:64px}.serverinfo{display:inline-block}#pubs-container{width:800px;position:fixed;top:50%;left:50%;margin-top:-284.5px;margin-left:-400px;background:#FFF;z-index:9000000}#pubs-container .scroller-wrap{height:500px}#pubs-header{background:#7289da;padding:5px 12px 5px 5px}#pubs-header h2{display:inline-block;font-weight:600;color:#FFF}#pubs-header input,#pubs-header button{float:right}#pubs-sterm{outline:none !important;padding-left:3px}.bd-dropdown{position:absolute;display:inline-block;width:150px;right:225px}.bd-dropdown button{width:150px}.bd-dropdown .bd-dropdown-list ul{height:0}.bd-dropdown.open .bd-dropdown-list ul{height:140px}.bd-dropdown-list{position:absolute;right:0;top:32px;z-index:90001;width:150px;background:#f3f3f3}.bd-dropdown-list ul{height:0;overflow-y:auto;overflow-x:hidden;transition:all .5s ease-in-out}.bd-dropdown-list ul li{padding:5px;background:#e6e6e6;cursor:pointer;color:#87909c;font-weight:600}.bd-dropdown-list ul li:nth-child(odd){background:#e2e1e1}.bd-dropdown-list ul li:hover{background:#f9f5f5}#pubs-header input{border:0;height:30px;width:150px;color:#555;background-color:#fff;-webkit-transition:width 1s ease-in-out;-moz-transition:width 1s ease-in-out;-o-transition:width 1s ease-in-out;transition:width 1s ease-in-out}#pubs-header button{height:32px;background-color:#f9f9f9;color:#949494}#pubs-footer{height:25px;line-height:25px;background:#7289da}#pubs-footer div{float:right;margin-right:5px;font-weight:600px;color:#FFF}#pubs-footer a{color:#FFF;text-decoration:none;font-weight:800}#pubs-container .scroller-wrap{margin-top:75px}.server-row{padding:5px;display:flex;background-color:#FFF}.server-row:nth-child(odd){background-color:#f3f3f3}.server-icon{width:64px;height:64px;background-size:100% auto}.server-info{display:flex;flex-flow:column;line-height:64px;margin-left:20px}.server-info span{font-size:16px;color:#000;font-weight:600}.server-info a{color:#4056a2;text-decoration:none;font-weight:800;margin-left:5px}.server-info button{width:90px;height:48px;margin-top:8px;background-color:#738bd7;color:#fff;font-size:19px}.server-info button:hover{background-color:#697ec4}.server-information{flex-grow:1;position:relative}.server-name,.server-desription{flex-grow:100}.server-name span{overflow:hidden;text-overflow:ellipsis;max-width:300px;white-space:nowrap}.server-name-span,.server-description{position:absolute;top:0;transition:visibility 0s,opacity .8s linear}.server-official,.server-tags{visibility:visible;opacity:1;transition:visibility 0s,opacity .8s linear}.server-information:hover .server-description{visibility:visible;opacity:1}.server-information:hover .server-name-span{visibility:hidden;opacity:0}.server-information:hover .server-tags{visibility:hidden;opacity:0}.server-information:hover .server-official{visibility:hidden;opacity:0}.server-tags{position:absolute !important;bottom:0 !important;height:38px !important;font-size:10px !important;visibility:visible;opacity:1}.server-official{position:absolute !important;top:0 !important;height:20px !important;font-size:14px !important;line-height:14px !important;color:#7289da !important;font-weight:700 !important;text-shadow:0 0 4px #7289da;visibility:visible;opacity:1;padding-left:2px;padding-right:2px}.server-description{visibility:hidden;opacity:0;font-size:12px !important;line-height:12px !important;text-overflow:initial !important;white-space:inherit !important;overflow-y:auto !important;height:64px !important}.server-region{min-width:85px}.server-pinned{position:absolute;width:777px;padding-right:-10px;padding-right:17px;border-bottom:2px solid #272727}#server-bd-tag{position:absolute !important;bottom:0 !important;height:20px !important;line-height:20px !important;font-size:13px !important;font-weight:600 !important}#pubs-spinner{position:fixed;top:50%;left:50%;margin-left:-16px;margin-top:-16px}#pubs-container .scroller::-webkit-scrollbar-track-piece,#pubs-container .scroller::-webkit-scrollbar-thumb{border-radius:0}.bd-hide-bd .callout-backdrop{display:none}.bd-detached-editor .app{width:70%}.bd-detached-editor #bd-customcss-detach-container{display:block}#bd-customcss-detach-container{display:none;position:absolute;width:30%;top:0;right:0;bottom:0;background-color:#36393e}#bd-customcss-detach-editor{height:calc(100% - 87px)}#bd-customcss-detach-editor #bd-customcss-innerpane,#bd-customcss-detach-editor .CodeMirror{height:100%}#bd-customcss-detach-controls{background:#e8e8e8;border-top:1px solid #adadad;-webkit-box-shadow:inset 0 1px 0 0 white;height:100%;padding:5px}#bd-customcss-detach-controls .checkbox-group li{margin-top:5px;display:inline-block}#bd-customcss-detach-controls button{width:90px;height:30px;margin-top:8px;background-color:#738bd7;color:#fff;font-size:19px}#bd-customcss-detach-controls-buttons{bottom:5px}#editor-detached{margin-top:50px}#editor-detached h3{text-align:center;font-size:30px}#editor-detached .btn{left:50%;margin-left:-100px;margin-top:10px;width:200px;height:60px}#bd-customcss-attach-controls{background:#e8e8e8;border:1px solid #FFF;border-top:1px solid #adadad;-webkit-box-shadow:inset 0 1px 0 0 white;height:100%;padding:5px;height:75px}#bd-customcss-attach-controls .checkbox-group{margin-bottom:0}#bd-customcss-attach-controls .checkbox-group li{margin-top:5px;display:inline-block}#bd-customcss-attach-controls button{margin:0;width:100px}#bd-customcss-detach-container #bd-customcss-detach-controls-buttons button{width:90px;height:30px;margin-top:8px;background-color:#738bd7;color:#fff;font-size:19px}.emoji-picker,.emojiPicker-3m1S-j{box-shadow:none;border-top:0;border-radius:0 0 5px 5px}#bda-qem{border-radius:5px 5px 0 0;background:#FFF;border-bottom:1px solid rgba(0,0,0,0.1) !important;height:30px;display:flex;flex-direction:row;padding-right:1px !important}#bda-qem button{border-left:1px solid #efefef;background:transparent;box-shadow:#cecece 1px 0 0 0;flex-grow:1}#bda-qem button:hover{background:#ececec}#bda-qem-twitch{border-radius:5px 0 0 0;order:2}#bda-qem-emojis{border-radius:0 5px 0 0;order:3}#bda-qem-favourite{order:3}#bda-qem button.active{background-color:#e2e2e2}#bda-qem-twitch-container,#bda-qem-favourite-container{width:346px;height:327px;background-color:#FFF;border-radius:0 0 5px 5px}#bda-qem-twitch-container .scroller-wrap,#bda-qem-favourite-container .scroller-wrap{height:100%}.emote-menu-inner{padding:5px 0 0 15px}#rmenu{left:25px;display:block !important;cursor:pointer;color:#FFF;position:fixed}.bda-qme-hidden #bda-qem-emojis{display:none}.bd-select select{width:100%;margin:0;outline:0;padding:.6em .8em .5em .8em;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:14px;padding-right:2em;background:0;border:1px solid transparent !important;-webkit-appearance:none;appearance:none;color:#404040;outline:none !important}.bd-select::after{content:" ";position:absolute;top:50%;right:1em;z-index:2;pointer-events:none;display:none}.bd-select select:focus{border-color:#aaa}.bd-select:focus::after{display:block}.bd-select{position:absolute;right:220px;height:32px;top:5px;border-radius:0;display:inline-block;border:0;border-radius:0;box-shadow:0 1px 0 1px rgba(0,0,0,.04);background:#fff;outline:none !important}.bd-select:before{content:"Category";color:#FFF;position:absolute;right:100%;margin-right:5px;line-height:32px}#bd-pane .tab-bar.TOP{margin-bottom:0}#bd-settings-pane{margin-top:18px}#bd-themes-pane .bda-plugin-reload{margin-top:70px}.bda-backdrop{position:absolute;top:0;left:0;right:0;bottom:0;z-index:1000;background:rgba(0,0,0,0.5)}.bd-settings{max-width:516px}.bda-dark #bda-qem-favourite-container,.bda-dark #bda-qem-twitch-container{background-color:#353535}.bda-dark #bda-qem{border-bottom:1px solid #464646 !important;background:#353535}.bda-dark #bda-qem button{background:#353535;border-left:1px solid #242424;box-shadow:#424242 1px 0 0 0;color:#FFF}.bda-dark #bda-qem button.active{background-color:#292929}.bda-dark #bda-qem button:hover{background-color:#303030}.bda-dark #bda-qem-favourite-container,.bda-dark #bda-qem-twitch-container{background-color:#353535}.bda-dark .emoji-picker,.bda-dark .emojiPicker-3m1S-j{background-color:#353535}.bda-dark .emoji-picker .category,.bda-dark .emojiPicker-3m1S-j .category-2U57w6{background-color:#353535}.bda-dark .emoji-picker .header .search-bar,.bda-dark .emojiPicker-3m1S-j .header-1nkwgG .search-bar{background-color:#2b2b2b}.bda-dark .emoji-picker .search-bar input,.bda-dark .emojiPicker-3m1S-j .search-bar input{color:#FFF}.bda-dark .emoji-picker .search-bar input::-webkit-input-placeholder,.bda-dark .emojiPicker-3m1S-j .search-bar input::-webkit-input-placeholder{color:#FFF}.bda-dark .emoji-picker .scroller .emoji-item.selected,.bda-dark .emojiPicker-3m1S-j .scroller-3vODG7 .emojiItem-109bjA.selected-39BZ4S{background-color:rgba(123,123,123,0.37)}.bda-dark .emoji-picker .dimmer.visible,.bda-dark .emojiPicker-3m1S-j .dimmer-3iH-5D.visible-3k45bQ{background-color:rgba(62,62,62,0.65)}.bda-dark .emoji-picker .diversity-selector .popout-3sVMXz,.bda-dark .emojiPicker-3m1S-j .diversitySelector-tmmMv0 .popout-2nUePc{background:#353535;border-color:#202020}.bda-dark #bda-qem-twitch-container .scroller::-webkit-scrollbar,.bda-dark #bda-qem-twitch-container .scroller::-webkit-scrollbar-track,.bda-dark #bda-qem-twitch-container .scroller::-webkit-scrollbar-track-piece,.bda-dark #pubs-container .scroller::-webkit-scrollbar,.bda-dark #pubs-container .scroller::-webkit-scrollbar-track,.bda-dark #pubs-container .scroller::-webkit-scrollbar-track-piece{background-color:#303030 !important;border-color:#303030 !important}.bda-dark #bda-qem-favourite-container .scroller::-webkit-scrollbar,.bda-dark #bda-qem-favourite-container .scroller::-webkit-scrollbar-track,.bda-dark #bda-qem-favourite-container .scroller::-webkit-scrollbar-track-piece{background-color:#303030 !important;border-color:#303030 !important}.bda-dark .emoji-picker .scroller::-webkit-scrollbar,.bda-dark .emoji-picker .scroller::-webkit-scrollbar-track,.bda-dark .emoji-picker .scroller::-webkit-scrollbar-track-piece,.bda-dark .emojiPicker-3m1S-j .scroller-3vODG7::-webkit-scrollbar,.bda-dark .emojiPicker-3m1S-j .scroller-3vODG7::-webkit-scrollbar-track,.bda-dark .emojiPicker-3m1S-j .scroller-3vODG7::-webkit-scrollbar-track-piece{background-color:#303030 !important;border-color:#303030 !important}.bda-dark #bda-qem-twitch-container .scroller::-webkit-scrollbar-thumb,.bda-dark #bda-qem-favourite-container .scroller::-webkit-scrollbar-thumb,.bda-dark .emoji-picker .scroller::-webkit-scrollbar-thumb,.bda-dark emojiPicker-3g68GS .scroller-3vODG7::-webkit-scrollbar-thumb,.bda-dark #pubs-container .scroller::-webkit-scrollbar-thumb{border-color:#202020 !important;background-color:#202020 !important}.bda-dark .server-row{background-color:#36393e}.bda-dark .server-row:nth-child(odd),.bda-dark #pubs-container{background-color:#2e3136}.bda-dark .server-info span{color:#d6d6d6}.bda-dark #pubs-header,.bda-dark #pubs-footer{background:#202020}.bda-dark #pubs-sterm{background:#36393e;color:#FFF}.bda-dark #pubs-searchbtn{background:#2e3136}.bda-dark .bd-select{background:#36393e}.bda-dark .server-info button{background-color:#202020}.bda-dark #pubs-cat{color:#FFF}.bda-dark .bd-dropdown-select{background-color:#2e3136}.bda-dark .bd-dropdown-list ul li:nth-child(odd){background:#36393e}.bda-dark .bd-dropdown-list ul li{background:#3d4046}.bda-dark .bd-dropdown-list ul li:hover{background:#2d2f33}.bda-dark #pubs-header button{background-color:#2e3136}.bda-dark .bd-dropdown .bd-dropdown-list ul::-webkit-scrollbar,.server-description::-webkit-scrollbar{width:12px}.bda-dark .bd-dropdown .bd-dropdown-list ul::-webkit-scrollbar-track,.server-description::-webkit-scrollbar-track{background:#303030}.bda-dark .bd-dropdown .bd-dropdown-list ul::-webkit-scrollbar-thumb,.server-description::-webkit-scrollbar-thumb{background:#202020}.bd-pfbtn{background:#7289da;color:#FFF;border-radius:5px;margin-left:10px}#bd-settings-sidebar .ui-tab-bar-item{font-size:16px;font-weight:500;line-height:20px;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;flex-shrink:0;padding:6px 10px;border-radius:3px;position:relative;overflow:hidden}#bd-settings-sidebar .ui-tab-bar-item.selected{cursor:default}.theme-dark #bd-settings-sidebar .ui-tab-bar-item{color:#b9bbbe}.theme-dark #bd-settings-sidebar .ui-tab-bar-item:hover{background-color:rgba(185,187,190,.1);color:#f6f6f7}.theme-dark #bd-settings-sidebar .ui-tab-bar-item.selected{background-color:#7289da;color:#fff}.theme-light #bd-settings-sidebar .ui-tab-bar-item{color:#72767d}.theme-light #bd-settings-sidebar .ui-tab-bar-item:hover{background-color:rgba(79,84,92,.1);color:#4f545c}.theme-light #bd-settings-sidebar .ui-tab-bar-item.selected{background-color:#7289da;color:#fff}#bd-settings-sidebar .ui-tab-bar-header{font-size:12px;font-weight:700;line-height:16px;text-transform:uppercase;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;padding:6px 10px;overflow:hidden}.theme-dark #bd-settings-sidebar .ui-tab-bar-header{color:#72767d}.theme-light #bd-settings-sidebar .ui-tab-bar-header{color:#b9bbbe}#bd-settings-sidebar .ui-tab-bar-separator{height:1px;margin:8px 10px}.theme-dark #bd-settings-sidebar .ui-tab-bar-separator{background-color:rgba(114,118,125,.3)}.theme-light #bd-settings-sidebar .ui-tab-bar-separator{background-color:rgba(185,187,190,.3)}#bd-settingspane-container h2.ui-form-title{font-size:16px;font-weight:600;line-height:20px;text-transform:uppercase;display:inline-block;margin-bottom:20px}.theme-dark #bd-settingspane-container h2.ui-form-title{color:#f6f6f7}.theme-light #bd-settingspane-container h2.ui-form-title{color:#4f545c}#bd-settingspane-container .ui-switch-item{flex-direction:column;margin-top:8px}#bd-settingspane-container .ui-switch-item h3{font-size:16px;font-weight:500;line-height:24px;flex:1}.theme-dark #bd-settingspane-container .ui-switch-item h3{color:#f6f6f7}.theme-light #bd-settingspane-container .ui-switch-item h3{color:#4f545c}#bd-settingspane-container .ui-switch-item .style-description{font-size:14px;font-weight:500;line-height:20px;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid hsla(218,5%,47%,.3)}.theme-dark #bd-settingspane-container .ui-switch-item .style-description{color:#72767d}.theme-light #bd-settingspane-container .ui-switch-item .style-description{color:rgba(114,118,125,.6)}#bd-settingspane-container .ui-switch-item .ui-switch-wrapper{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;width:44px;height:24px;display:block;flex:0 0 auto}#bd-settingspane-container .ui-switch-item .ui-switch-wrapper input{position:absolute;opacity:0;cursor:pointer;width:100%;height:100%;z-index:1}#bd-settingspane-container .ui-switch-item .ui-switch-wrapper .ui-switch{background:#7289da;position:absolute;top:0;right:0;bottom:0;left:0;background:#72767d;border-radius:14px;transition:background .15s ease-in-out,box-shadow .15s ease-in-out,border .15s ease-in-out}#bd-settingspane-container .ui-switch-item .ui-switch-wrapper .ui-switch:before{content:"";display:block;width:18px;height:18px;position:absolute;top:3px;left:3px;bottom:3px;background:#f6f6f7;border-radius:10px;transition:all .15s ease;box-shadow:0 3px 1px 0 rgba(0,0,0,.05),0 2px 2px 0 rgba(0,0,0,.1),0 3px 3px 0 rgba(0,0,0,.05)}#bd-settingspane-container .ui-switch-item .ui-switch-wrapper .ui-switch.checked{background:#7289da}#bd-settingspane-container .ui-switch-item .ui-switch-wrapper .ui-switch.checked:before{transform:translateX(20px)}#pubslayer .ui-tab-bar-item{color:#b9bbbe;padding-top:6px;padding-bottom:6px;margin-bottom:2px;padding:6px 10px;position:relative;font-size:16px;line-height:20px;border-radius:3px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex-shrink:0;font-weight:500;cursor:pointer}#pubslayer .ui-tab-bar-item:hover{color:#f6f6f7;background-color:hsla(216,4%,74%,.1)}#pubslayer .ui-tab-bar-item.selected{color:#fff;background-color:#7289da}#pubslayer .ui-tab-bar-header{color:#72767d;padding:6px 10px;font-size:12px;line-height:16px;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex-shrink:0;font-weight:500}#pubslayer #bd-settings-sidebar .ui-tab-bar-separator{background-color:hsla(218,5%,47%,.3);margin-left:10px;margin-right:10px;height:1px;margin-bottom:8px;margin-top:8px}#pubslayer h2.ui-form-title{color:#f6f6f7;text-transform:uppercase;font-weight:600}#pubslayer h5.ui-form-title{color:#f6f6f7}#pubslayer button{background:#7289da;color:#FFF;font-size:14px;font-weight:500;line-height:16px;padding:2px 16px;border:0;border-radius:3px;transition:background-color .17s ease}#pubslayer button:hover{background-color:#677bc4}#pubslayer input{color:#f6f6f7;background-color:rgba(0,0,0,.1);border-color:rgba(0,0,0,.3);padding:10px;height:30px;border-width:1px;border-style:solid;border-radius:3px;outline:0;transition:background-color .15s ease,border .15s ease}#bd-settingspane-container .scroller-wrap{height:100%}#bd-settingspane-container .scroller-wrap .scroller{display:flex}.bda-slist{user-select:text}.bda-slist li{max-height:175px;margin-bottom:20px;padding:5px 8px;border:1px solid transparent;border-radius:5px;overflow:hidden}.theme-dark .bda-slist li{background-color:rgba(32,34,37,.6);color:#f6f6f7;border-color:#202225}.theme-light .bda-slist li{background-color:#f8f9f9;color:#4f545c;border-color:#dcddde}.bda-slist li.settings-open{max-height:800px;overflow-y:auto}.bda-slist .bda-header{font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:space-between;padding-bottom:5px;border-bottom:1px solid transparent;overflow:hidden}.theme-dark .bda-slist .bda-header{color:#f6f6f7;border-bottom-color:rgba(114,118,125,.3)}.theme-light .bda-slist .bda-header{color:#4f545c;border-bottom-color:rgba(185,187,190,.3)}.bda-slist .bda-description{word-break:break-word;max-height:100px;margin:5px 0;padding:5px 0;overflow-y:auto}.theme-dark .bda-slist .bda-description{color:#b9bbbe}.theme-light .bda-slist .bda-description{color:#72767d}.bda-slist .scroller::-webkit-scrollbar-track-piece,.bda-slist .scroller::-webkit-scrollbar-thumb{border-radius:0 !important;border-color:transparent}.bda-slist .bda-footer{font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:space-between;padding-top:5px;border-top:1px solid transparent;overflow:hidden}.theme-dark .bda-slist .bda-footer{border-top-color:rgba(114,118,125,.3)}.theme-light .bda-slist .bda-footer{border-top-color:rgba(185,187,190,.3)}.bda-slist .bda-footer button{background:#7289da;color:#FFF;border-radius:5px;display:block;margin-left:auto;padding:2px 16px;transition:opacity 250ms ease}.bda-slist .bda-footer button:disabled{opacity:.4}.bda-slist .bda-footer a{color:#7289da}.bda-slist .bda-footer a:hover{text-decoration:underline}@keyframes bd-backdrop{to{opacity:.85}}@keyframes bd-modal-wrapper{to{transform:scale(1);opacity:1}}@keyframes bd-backdrop-closing{to{opacity:0}}@keyframes bd-modal-wrapper-closing{to{transform:scale(0.7);opacity:0}}.bd-backdrop{animation:bd-backdrop 250ms ease;animation-fill-mode:forwards;opacity:0;background-color:#000;transform:translateZ(0)}.bd-modal-wrapper.closing .bd-backdrop{animation:bd-backdrop-closing 200ms linear;animation-fill-mode:forwards;animation-delay:50ms;opacity:.85}.bd-modal-wrapper.closing .bd-modal{animation:bd-modal-wrapper-closing 250ms cubic-bezier(0.19,1,0.22,1);animation-fill-mode:forwards;opacity:1;transform:scale(1)}.bd-modal-wrapper .bd-modal{animation:bd-modal-wrapper 250ms cubic-bezier(0.175,0.885,0.32,1.275);animation-fill-mode:forwards;transform:scale(0.7);transform-origin:50% 50%;display:flex;align-items:center;box-sizing:border-box;contain:content;justify-content:center;top:0;left:0;bottom:0;right:0;opacity:0;pointer-events:none;position:absolute;z-index:1000}.bd-modal-wrapper .bd-modal-inner{display:flex;contain:layout;flex-direction:column;pointer-events:auto;border:1px solid rgba(28,36,43,.6);border-radius:5px;box-shadow:0 2px 10px 0 rgba(0,0,0,.2);overflow:hidden;max-height:660px;min-height:200px;width:440px;user-select:text}.bd-modal-wrapper .bd-startup-modal .bd-modal-inner{height:500px;width:700px}.bd-modal-wrapper .header{background-color:#35393e;box-shadow:0 2px 3px 0 rgba(0,0,0,.2);padding:12px 20px;z-index:1;color:#fff;font-size:16px;font-weight:700;line-height:19px}.bd-modal-wrapper .bd-modal-body{background-color:#36393f;color:#fff;flex-direction:row;overflow:hidden;display:flex;flex-direction:column;flex:1;contain:layout;position:relative}.bd-modal-wrapper .scroller{padding:10px}.bd-modal-wrapper .bd-startup-modal .bd-modal-body{padding:0}.bd-modal-wrapper .scroller{overflow-y:auto}.bd-modal-wrapper .footer{display:flex;justify-content:flex-end;padding:10px 20px}.bd-modal-wrapper .footer button{background-color:#7289da;color:#fff;min-height:32px;min-width:60px;align-items:center;border-radius:3px;display:flex;font-size:14px;font-weight:500;justify-content:center;line-height:16px;padding:2px 16px;user-select:none}.bd-modal-wrapper .footer button:hover{background-color:#677bc4}.bd-modal-wrapper .footer button:active{background-color:#5f6fb9}.bd-modal-wrapper .tab-bar-container{align-items:center;border-bottom:0;background:rgba(0,0,0,0.2);box-shadow:0 2px 3px 0 rgba(0,0,0,.1);display:flex;flex-direction:row;justify-content:space-between;margin-bottom:15px}.bd-modal-wrapper .tab-bar.TOP{margin:0;border:0}.bd-modal-wrapper .tab-bar-container .tab-bar-item{margin:0 15px;padding:15px 0;color:#fff !important;opacity:.5;transition:opacity 200ms ease}.bd-modal-wrapper .tab-bar-container .tab-bar-item:hover{border-color:#fff}.bd-modal-wrapper .tab-bar-container .tab-bar-item.selected{opacity:1;border-color:#fff}.bd-modal-wrapper .tab-bar.TOP .tab-bar-item+.tab-bar-item{margin:0}.bd-modal-wrapper .table-header{display:flex;justify-content:space-between;color:#fff;font-weight:700;padding-bottom:10px;margin:3px 15px 0 15px;border-bottom:1px solid #fff;font-size:14px}.bd-modal-wrapper .table-column{width:25%}.bd-modal-wrapper .table-column.column-error{width:50%}.bd-modal-wrapper .table-column{word-wrap:break-word}.bd-modal-wrapper .errors{display:flex;flex-direction:column;padding:0;font-size:14px;padding:0 5px}.bd-modal-wrapper .error{display:flex;color:#fff;border-bottom:1px solid rgba(255,255,255,0.25);padding:15px 0;align-items:center}.bd-modal-wrapper .bd-startup-modal .scroller{padding-top:0}.bd-toasts{position:fixed;display:flex;top:0;flex-direction:column;align-items:center;justify-content:flex-end;pointer-events:none;z-index:4000}@keyframes bd-toast-up{from{transform:translateY(0);opacity:0}}.bd-toast{animation:bd-toast-up 300ms ease;transform:translateY(-10px);background:#36393f;padding:10px;border-radius:5px;box-shadow:0 0 0 1px rgba(32,34,37,.6),0 2px 10px 0 rgba(0,0,0,.2);font-weight:500;color:#fff;user-select:text;font-size:14px;opacity:1;margin-top:10px;pointer-events:none;user-select:none}@keyframes bd-toast-down{to{transform:translateY(0);opacity:0}}.bd-toast.closing{animation:bd-toast-down 200ms ease;animation-fill-mode:forwards;opacity:1;transform:translateY(-10px)}.bd-toast.icon{padding-left:30px;background-size:20px 20px;background-repeat:no-repeat;background-position:6px 50%}.bd-toast.toast-info{background-color:#4a90e2}.bd-toast.toast-info.icon{background-image:url(data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPiAgICA8cGF0aCBkPSJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMSAxNWgtMnYtNmgydjZ6bTAtOGgtMlY3aDJ2MnoiLz48L3N2Zz4=)}.bd-toast.toast-success{background-color:#43b581}.bd-toast.toast-success.icon{background-image:url(data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPiAgICA8cGF0aCBkPSJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptLTIgMTVsLTUtNSAxLjQxLTEuNDFMMTAgMTQuMTdsNy41OS03LjU5TDE5IDhsLTkgOXoiLz48L3N2Zz4=)}.bd-toast.toast-danger,.bd-toast.toast-error{background-color:#f04747}.bd-toast.toast-danger.icon,.bd-toast.toast-error.icon{background-image:url(data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gICAgPHBhdGggZD0iTTEyIDJDNi40NyAyIDIgNi40NyAyIDEyczQuNDcgMTAgMTAgMTAgMTAtNC40NyAxMC0xMFMxNy41MyAyIDEyIDJ6bTUgMTMuNTlMMTUuNTkgMTcgMTIgMTMuNDEgOC40MSAxNyA3IDE1LjU5IDEwLjU5IDEyIDcgOC40MSA4LjQxIDcgMTIgMTAuNTkgMTUuNTkgNyAxNyA4LjQxIDEzLjQxIDEyIDE3IDE1LjU5eiIvPiAgICA8cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PC9zdmc+)}.bd-toast.toast-warning,.bd-toast.toast-warn{background-color:#ffa600;color:white}.bd-toast.toast-warning.icon,.bd-toast.toast-warn.icon{background-image:url(data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPiAgICA8cGF0aCBkPSJNMSAyMWgyMkwxMiAyIDEgMjF6bTEyLTNoLTJ2LTJoMnYyem0wLTRoLTJ2LTRoMnY0eiIvPjwvc3ZnPg==)}.bd-blue .bd-pfbtn{background:#3a71c1}.bd-blue .bot-tag{background:#3a71c1}.bd-blue .bot-tag.bot-tag-invert{color:#3a71c1 !important}.bd-blue .spinner-wandering-cubes .spinner-item{background-color:#3a71c1}.bd-blue .spinner-chasing-dots .spinner-item{background-color:#3a71c1}.bd-blue .spinner.spinner-spinning-circle .path{stroke:#3a71c1}.bd-blue .note textarea::-moz-selection{background:#3a71c1}.bd-blue .note textarea::selection{background:#3a71c1}.bd-blue .scroller-wrap .scrollbar .thumb:after{background-color:#3a71c1}.bd-blue #autocomplete-popout .empty h4{color:#3a71c1}.bd-blue .user-popout .header{background:#3a71c1 url(/assets/8cd2f31a12333149b89ef3931626ab83.png)}.bd-blue .checkbox .checkbox-inner input[type=checkbox]:checked+span{background-color:#3a71c1;border-color:#3a71c1}.bd-blue .checkbox .checkbox-inner.alt input[type=checkbox]:checked+span:after{border-color:#3a71c1}.bd-blue .download-apps .footer a{color:#3a71c1}.bd-blue .download-apps .platforms .platform.active{border-color:#3a71c1}.bd-blue .download-apps .platforms .platform.active .download-button{background-color:#3a71c1}.bd-blue .radio .radio-inner span:after{background:#3a71c1}.bd-blue .radio:hover span:after{background:#3a71c1}.bd-blue .radio-image .radio-inner span:after{border:2px solid #3a71c1}.bd-blue .radio-image:hover span:after{border-color:#3a71c1}.bd-blue #overlay-wrapper .overlay .guild-panel .guild-panel-header{background-color:#3a71c1}.bd-blue #overlay-wrapper .overlay .guild-panel .btn-call{color:#3a71c1}.bd-blue .overlay-user-popout .user-popout-options .btn{background-color:#3a71c1}.bd-blue .clipboard-input-inner input::-moz-selection{background:#3a71c1}.bd-blue .clipboard-input-inner input::selection{background:#3a71c1}.bd-blue .btn-help:hover{background:#3a71c1}.bd-blue .popout-3sVMXz.popoutLeft-30WmrD header:before{border-left-color:#3a71c1}.bd-blue .popout-3sVMXz.popout-right header:before{border-right-color:#3a71c1}.bd-blue .popout-3sVMXz.popoutBottom-1YbShG header:before{border-bottom-color:#3a71c1}.bd-blue .popout-3sVMXz.popoutInvert-3UdKhn:not(.popoutBottom-1YbShG).popoutTop-3uu9vG header:before{border-top-color:#3a71c1}.bd-blue .guild-channels .channel-text.selected:before{border-left:2px solid #3a71c1}.bd-blue .guild-channels .channel-text:hover:not(.unread):before{border-left:2px solid #3a71c1}.bd-blue .guild-channels .channel-text.unread:not(.selected):not(.channel-muted).selected:before{background-color:#3a71c1}.bd-blue .guild-channels .channel-voice-states li.speaking .avatar-small{background-color:#3a71c1}.bd-blue .tooltip{background-color:#3a71c1}.bd-blue .tooltip.tooltip-top:after{border-top-color:#3a71c1}.bd-blue .tooltip.tooltip-bottom:after{border-bottom-color:#3a71c1}.bd-blue .tooltip.tooltip-left:after{border-left-color:#3a71c1}.bd-blue .tooltip.tooltip-right:after{border-right-color:#3a71c1}.bd-blue .button{background-color:#3a71c1}.bd-blue .tutorial-popout .button-area .skip-tips a{color:#3a71c1}.bd-blue .chat .has-more button{color:#3a71c1}.bd-blue .chat .new-messages-bar:hover{background-color:#3a71c1}.bd-blue .message-group .edit-message .edit-operation>a{color:#3a71c1}.bd-blue .message-group .edit-message .channel-textarea-inner{border-color:#3a71c1}.bd-blue .mention{color:#3a71c1}.bd-blue .mention:hover{background-color:#3a71c1}.bd-blue .mentioned .mention:hover{color:#3a71c1}.bd-blue .markdown-modal .markdown-modal-header b{color:#3a71c1}.bd-blue .change-log .changelog-fixed{background-color:#3a71c1}.bd-blue .change-log .changelog-button .cta{background-color:#3a71c1}.bd-blue .form .form-header{color:#3a71c1}.bd-blue .form header{color:#3a71c1}.bd-blue .form .control-group textarea:focus{border-bottom:2px solid #3a71c1}.bd-blue .form .btn-primary{background-color:#3a71c1}.bd-blue .region-select button{color:#3a71c1}.bd-blue .region-select:hover button{border-color:#3a71c1}.bd-blue .region-select:hover button{background-color:#3a71c1}.bd-blue .region-select-flag{background-color:#3a71c1}.bd-blue .region-select-flag.vip:after{background:#3a71c1}.bd-blue .region-select-modal .region-select-modal-header{color:#3a71c1}.bd-blue .region-select-modal .region-select-modal-option:hover{border-color:#3a71c1}.bd-blue .upload-drop-modal .bgScale{background:#3a71c1}.bd-blue .upload-modal{background-color:#3a71c1}.bd-blue .upload-modal .inner .file .icon.image{border:2px solid #3a71c1}.bd-blue .avatar-uploader-inner{background-color:#3a71c1}.bd-blue .create-guild-container h5{color:#3a71c1}.bd-blue .create-guild-container .join-server .sample-link{color:#3a71c1}.bd-blue .create-guild-container .action.create .action-header{color:#3a71c1}.bd-blue .tab-bar.TOP .tab-bar-item.selected{border-bottom:2px solid #3a71c1;color:#3a71c1}.bd-blue .tab-bar.SIDE .tab-bar-item:before{border-left:4px solid #3a71c1}.bd-blue .color-picker-popout input:focus{border-color:#3a71c1}.bd-blue #settings-roles .roles li.selected:before{color:#3a71c1;background-color:#3a71c1}.bd-blue #settings-roles .roles li.sorting:after{border:2px solid #3a71c1}.bd-blue .guild-settings-modal-overview a{color:#3a71c1}.bd-blue .need-help-modal .header{background-color:#3a71c1}.bd-blue .search-popout .date-picker .date-picker-hint .hint-value{background-color:#3a71c1}.bd-blue .react-datepicker .react-datepicker__day:hover{background-color:#3a71c1}.bd-blue .react-datepicker .react-datepicker__day.react-datepicker__day--today:after{background-color:#3a71c1}.bd-blue .messages-popout-wrap .has-more button{color:#3a71c1}.bd-blue .btn-filled{background-color:#3a71c1}.bd-blue .btn-filled.white{color:#3a71c1}.bd-blue .emoji-picker .premium-promo .btn{background-color:#3a71c1}.bd-blue .emojiPicker-3m1S-j .premium-promo .btn{background-color:#3a71c1}.bd-blue .channel-textarea.has-results .channel-textarea-inner{border-color:#3a71c1}.bd-blue .channel-textarea-autocomplete-inner{border:2px solid #3a71c1}.bd-blue .channel-textarea-autocomplete-inner header{background-color:#3a71c1}.bd-blue .channel-textarea-autocomplete-inner ul.images li.active{border-color:#3a71c1}.bd-blue .reaction.reaction-me .reaction-count{color:#3a71c1}.bd-blue .theme-dark .reaction.reaction-me .reaction-count{color:#3a71c1}.bd-blue .spinner-wandering-cubes .ui-spinner-item{background-color:#3a71c1}.bd-blue .spinner-chasing-dots .ui-spinner-item{background-color:#3a71c1}.bd-blue .theme-light .ui-spinner.spinner-spinning-circle .path{stroke:#3a71c1}.bd-blue .theme-dark .ui-spinner.spinner-spinning-circle .path{stroke:#3a71c1}.bd-blue .theme-dark .ui-spinner.spinner-spinning-circle .path-2{stroke:#3a71c1}.bd-blue .ui-button.brand.filled{background-color:#3a71c1}.bd-blue .ui-button.brand.filled:disabled{background-color:#3a71c1}.bd-blue .ui-button.brand.inverted{color:#3a71c1}.bd-blue .ui-button.brand.outlined{color:#3a71c1}.bd-blue .ui-button.brand.outlined:active{background-color:#3a71c1;border-color:#3a71c1}.bd-blue .ui-button.brand.outlined:disabled{color:#3a71c1}.bd-blue .ui-button.brand.link{color:#3a71c1}.bd-blue .ui-button.brand.link:not(:disabled):hover .ui-button-contents{background-image:-webkit-linear-gradient(bottom,transparent,transparent 1px,#3a71c1 0,#3a71c1 2px,transparent 0);background-image:linear-gradient(to top,transparent,transparent 1px,#3a71c1 1px,#3a71c1 2px,transparent 2px)}.bd-blue .ui-button.brand.ghost{color:#3a71c1}.bd-blue .ui-button.brand .ui-spinner-item{background-color:#3a71c1}.bd-blue .theme-blurple .ui-button.primary.filled{color:#3a71c1}.bd-blue .theme-blurple .ui-form-title.h5{color:#3a71c1}.bd-blue .btn-filled{background-color:#3a71c1}.bd-blue .btn-filled.white{color:#3a71c1}.bd-blue .progress .progress-bar{background-color:#3a71c1}.bd-blue .radio-theme input[type=radio]:checked~label{border-color:#3a71c1}.bd-blue .now-playing{background:#3a71c1}.bd-blue .user-settings-modal-account .discord-tag{color:#3a71c1}.bd-blue .modal-new-user>.steps .step-3 .instant-invite input{color:#3a71c1}.bd-blue .modal-new-user h5{color:#3a71c1}.bd-blue .modal-new-user .steps-wrap .steps li.on:before{background-color:#3a71c1}.bd-blue .modal-new-user .steps-wrap .steps li.active{background-color:#3a71c1}.bd-blue .ui-tab-bar.SIDE .ui-tab-bar-item.selected{background-color:#3a71c1}.bd-blue .ui-tab-bar.SIDE .ui-tab-bar-item:active{background-color:#3a71c1}.bd-blue .ui-tab-bar.SIDE .ui-tab-bar-item.brand{color:#3a71c1}.bd-blue .theme-light .ui-text-input .input:focus{border-color:#3a71c1}.bd-blue .theme-dark .ui-text-input .input:focus{border-color:#3a71c1}.bd-blue .theme-blurple .ui-text-input .input{color:#3a71c1}.bd-blue .theme-blurple .ui-text-input .input:hover{border-color:#3a71c1}.bd-blue .theme-blurple .ui-select:hover .Select .Select-control{border-color:#3a71c1}.bd-blue .theme-blurple .ui-select:hover .Select .Select-control .Select-arrow{border-color:#3a71c1 transparent transparent}.bd-blue .theme-blurple .ui-select .Select.is-open .Select-control{border-color:#3a71c1}.bd-blue .theme-blurple .ui-select .Select-menu-outer{border-color:#3a71c1}.bd-blue .theme-blurple .ui-select .Select-menu-outer .Select-option{color:#3a71c1}.bd-blue .theme-blurple .ui-select .Select-value-label{color:#3a71c1}.bd-blue .ui-card-brand{background:#3a71c1;border-color:#3a71c1}.bd-blue .ui-checkbox-wrapper .ui-checkbox.checked polyline{stroke:#3a71c1}.bd-blue .ui-checkbox-wrapper .ui-checkbox.checked.inverted{background:#3a71c1}.bd-blue .ui-region-flag.vip:after{background:#3a71c1}.bd-blue .ui-scroller-wrap .scrollbar .thumb:after{background-color:#3a71c1}.bd-blue .ui-quick-select-popout-option .ui-icon-check-mark .ui-icon-fg{stroke:#3a71c1}.bd-blue .ui-switch-checkbox:checked+.ui-switch{background:#3a71c1}.bd-blue #instant-invite-modal .clipboard-input-inner input{color:#3a71c1}.bd-blue #instant-invite-modal .copy{background-color:#3a71c1}.bd-blue .color-brand{color:#3a71c1}.bd-blue .webkhook-modal-header.ui-form-title.h5{color:#3a71c1}.bd-blue .ui-bot-tag{background:#3a71c1}.bd-blue .ui-bot-tag.invert{color:#3a71c1}.bd-blue #user-profile-modal .btn{background-color:#3a71c1}.bd-blue #user-profile-modal .guilds .avatar-large{background-color:#3a71c1}.bd-blue .premium-payment-modal{background-color:#3a71c1}.bd-blue .premium-payment-modal .premium-payment-button{color:#3a71c1}.bd-blue .premium-payment-modal .premium-payment-button .spinner .spinner-item{background-color:#3a71c1}.bd-blue .invite-modal .avatar-xxxlarge{background-color:#3a71c1}.bd-blue .ui-screenshare-modal-tile .image-container img.selected{border-color:#3a71c1}.bd-blue .detected-platform-accounts-modal .btn-group .btn-primary{background-color:#3a71c1}.bd-blue .ui-new-terms-modal .title{color:#3a71c1}.bd-blue #oauth2-authorize .authorize-inner header{background:#3a71c1}.bd-blue #oauth2-authorize .authorize-inner footer button.primary{background:#3a71c1}.bd-blue #oauth2-authorize .select select:focus{border-color:#3a71c1}.bd-blue #oauth2-authorize .select.focus:after{border-top-color:#3a71c1}.bd-blue #oauth2-authorize .scope-bot .avatar-large{background-color:#3a71c1}.bd-blue .invite-header .invite-guild-icon{background-color:#3a71c1}.bd-blue .invite-marketing .invite-marketing-header{color:#3a71c1}.bd-blue .invite-marketing .invite-marketing-button{color:#3a71c1;border:2px solid #3a71c1}.bd-blue .invite-mobile .top{background-color:#3a71c1}.bd-blue .invite-mobile .link.purple{background-color:#3a71c1}.bd-blue .verify-connected-account .btn{background-color:#3a71c1}.bd-blue #unsupported-browser li:hover{border-color:#3a71c1}.bd-blue #unsupported-browser li:hover .btn{background-color:#3a71c1;border-color:#3a71c1}.bd-blue .ui-slider .slider-bar-fill{background:#3a71c1}.bd-blue .popout-menu .popout-menu-item.invite{color:#3a71c1}.bd-blue .channel-members .invite-btn{background-color:#3a71c1}.bd-blue .chat .welcome-message h1{color:#3a71c1}.bd-blue .channel-textarea-guard button{background-color:#3a71c1}.bd-blue .private-channel-recipients-invite .footer button{background-color:#3a71c1}.bd-blue .private-channel-recipients-invite .footer button:disabled:hover{background-color:#3a71c1}.bd-blue .private-channel-recipients-invite .error-state.not-friends .btn{background:#3a71c1}.bd-blue .ui-call-avatar-border.voice.video.selected{box-shadow:inset 0 0 0 2px #3a71c1}.bd-blue .ui-call-avatar-border.video.selected:not(.speaking){box-shadow:inset 0 0 0 2px #3a71c1}.bd-blue .invite-banner{background-color:#3a71c1}.bd-blue .invite-banner .instant-invite:not(.clipboard-input-copied) .clipboard-input-inner button{color:#3a71c1}.bd-blue .invite-banner.invite-banner-1 .instant-invite .clipboard-input-inner button:before{background:-webkit-linear-gradient(left,hsla(0,0%,100%,0),#3a71c1);background:linear-gradient(to right,hsla(0,0%,100%,0),#3a71c1)}.bd-blue .add-friend-input-wrapper .btn:disabled{background-color:#3a71c1}.bd-blue #friends .btn{background-color:#3a71c1}.bd-blue #friends .friends-header .tab-bar .tab-bar-item.tab-bar-item-primary{background-color:#3a71c1}.bd-blue #friends .friends-header .tab-bar .tab-bar-item.tab-bar-item-primary .badge{color:#3a71c1}.bd-blue #friends .friends-table .friends-row .friends-column-guilds .avatar-small{background-color:#3a71c1}.bd-blue .theme-dark #friends .friends-header .tab-bar .tab-bar-item.selected .badge{background-color:#3a71c1}.bd-blue .theme-dark #friends .friends-header .tab-bar .tab-bar-item.tab-bar-item-primary{background-color:#3a71c1}.bd-blue .theme-dark #friends .friends-header .tab-bar .tab-bar-item.tab-bar-item-primary .badge{color:#3a71c1}.bd-blue .theme-dark #friends .friends-header .tab-bar .tab-bar-item.tab-bar-item-primary.selected{color:#3a71c1;background-color:#fff}.bd-blue .theme-dark #friends .friends-header .tab-bar .tab-bar-item.tab-bar-item-primary.selected .badge{background-color:#3a71c1}.bd-blue .private-channels .search-result:hover:before{border-left:2px solid #3a71c1}.bd-blue .private-channels .channel.selected .icon-friends{background-color:#3a71c1}.bd-blue .private-channels .channel.selected:before{border-left:2px solid #3a71c1}.bd-blue #rtc-debug-modal #users-section .user-list li.selected:before{color:#3a71c1;background-color:#3a71c1}.bd-blue .notice.notice-brand{background-color:#3a71c1}.bd-blue .notice.notice-brand .btn:hover{color:#3a71c1}.bd-blue .theme-light .ui-text-input .input:focus{border-color:#3a71c1}.bd-blue .theme-dark .ui-text-input .input:focus{border-color:#3a71c1}.bd-blue .theme-blurple .ui-text-input .input{color:#3a71c1}.bd-blue .theme-blurple .ui-text-input .input:hover{border-color:#3a71c1}.bd-blue .onboarding-slide textarea:focus{box-shadow:0 2px 0 #3a71c1}.bd-blue .nuf-page .button.filled{background-color:#3a71c1}.bd-blue .onboarding-navigation .button{color:#3a71c1}.bd-blue .onboarding-navigation .step-status .step.current{background-color:#3a71c1}.bd-blue .onboarding-slide textarea:focus{box-shadow:0 2px 0 #3a71c1}.bd-blue .nuf-page .button.filled{background-color:#3a71c1}.bd-blue .onboarding-slide textarea:focus{box-shadow:0 2px 0 #3a71c1}.bd-blue .nuf-page .button.filled{background-color:#3a71c1}.bd-blue .onboarding-slide textarea:focus{box-shadow:0 2px 0 #3a71c1}.bd-blue .nuf-page .button.filled{background-color:#3a71c1}.bd-blue .onboarding-slide textarea:focus{box-shadow:0 2px 0 #3a71c1}.bd-blue .nuf-page .button.filled{background-color:#3a71c1}.bd-blue .onboarding-slide textarea:focus{box-shadow:0 2px 0 #3a71c1}.bd-blue .nuf-page .button.filled{background-color:#3a71c1}.bd-blue .onboarding-slide textarea:focus{box-shadow:0 2px 0 #3a71c1}.bd-blue .nuf-page .button.filled{background-color:#3a71c1}.bd-blue .onboarding-slide.mic-test .content.waiting .button{color:#3a71c1}.bd-blue .onboarding-slide textarea:focus{box-shadow:0 2px 0 #3a71c1}.bd-blue .nuf-page .button.filled{background-color:#3a71c1}.bd-blue .onboarding-slide textarea:focus{box-shadow:0 2px 0 #3a71c1}.bd-blue .nuf-page .button.filled{background-color:#3a71c1}.bd-blue .onboarding-slide textarea:focus{box-shadow:0 2px 0 #3a71c1}.bd-blue .nuf-page .button.filled{background-color:#3a71c1}.bd-blue .ui-switch-wrapper:not(.disabled):not(.clear):hover .ui-switch-checkbox:checked+.ui-switch{background:#3f79ce}.bd-blue *[style*="border-color: rgb(114, 137, 218)"]{border-color:#3a71c1 !important}.bd-blue *[style*="background-color: rgb(114, 137, 218)"]{background-color:#3a71c1 !important}.bd-blue .bda-slist .bda-footer button{background-color:#3a71c1}.bd-blue .bda-slist .bda-footer a{color:#3a71c1}.bd-blue .bd-modal-wrapper .footer button{background-color:#3a71c1}.bd-blue .bd-modal-wrapper .footer button:hover{background-color:#356bbb}.bd-blue .bd-modal-wrapper .footer button:active{background-color:#2a61b1} \ No newline at end of file +.bd-loaderv2{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iQ2FscXVlXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMjAwMCAyMDAwIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAyMDAwIDIwMDAiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxnPjxwYXRoIGZpbGw9IiMzRTgyRTUiIGQ9Ik0xNDAyLjIsNjMxLjdjLTkuNy0zNTMuNC0yODYuMi00OTYtNjQyLjYtNDk2SDY4LjR2NzE0LjFsNDQyLDM5OFY0OTAuN2gyNTdjMjc0LjUsMCwyNzQuNSwzNDQuOSwwLDM0NC45ICAgSDU5Ny42djMyOS41aDE2OS44YzI3NC41LDAsMjc0LjUsMzQ0LjgsMCwzNDQuOGgtNjk5djM1NC45aDY5MS4yYzM1Ni4zLDAsNjMyLjgtMTQyLjYsNjQyLjYtNDk2YzAtMTYyLjYtNDQuNS0yODQuMS0xMjIuOS0zNjguNiAgIEMxMzU3LjcsOTE1LjgsMTQwMi4yLDc5NC4zLDE0MDIuMiw2MzEuN3oiLz48cGF0aCBmaWxsPSIjRkZGRkZGIiBkPSJNMTI2Mi41LDEzNS4yTDEyNjIuNSwxMzUuMmwtNzYuOCwwYzI2LjYsMTMuMyw1MS43LDI4LjEsNzUsNDQuM2M3MC43LDQ5LjEsMTI2LjEsMTExLjUsMTY0LjYsMTg1LjMgICBjMzkuOSw3Ni42LDYxLjUsMTY1LjYsNjQuMywyNjQuNmwwLDEuMnYxLjJjMCwxNDEuMSwwLDU5Ni4xLDAsNzM3LjF2MS4ybDAsMS4yYy0yLjcsOTktMjQuMywxODgtNjQuMywyNjQuNiAgIGMtMzguNSw3My44LTkzLjgsMTM2LjItMTY0LjYsMTg1LjNjLTIyLjYsMTUuNy00Ni45LDMwLjEtNzIuNiw0My4xaDcyLjVjMzQ2LjIsMS45LDY3MS0xNzEuMiw2NzEtNTY3LjlWNzE2LjcgICBDMTkzMy41LDMxMi4yLDE2MDguNywxMzUuMiwxMjYyLjUsMTM1LjJ6Ii8+PC9nPjwvc3ZnPg==);position:fixed;bottom:5px;right:5px;z-index:2147483647;display:block;width:20px;height:20px;background-size:100% 100%;-webkit-animation:bd-loaderv2-animation 1.5s ease-in-out infinite}@-webkit-keyframes bd-loaderv2-animation{0%{opacity:.05}50%{opacity:.6}100%{opacity:.05}}.bd-reload{cursor:pointer;vertical-align:top;fill:#dcddde}.bd-reload:hover{fill:#fff}.bd-reload-header{margin-left:5px}.bd-reload-card{margin-right:5px}.bda-controls{display:flex}.ui-standard-sidebar-view .bd-psm{background-color:#292b2f;box-shadow:0 0 12px 6px rgba(31,31,31,0.32);border:1px solid #3f4146;width:60vw;height:80vh;border-radius:6px}.ui-standard-sidebar-view #bd-customcss-attach-controls button,.bd-detached-css-editor #bd-customcss-attach-controls button{margin:0;width:100px;background:#31332b;color:#FFF;height:26px;font-weight:600;margin-top:5px;border-radius:3px}.ui-standard-sidebar-view #bd-customcss-attach-controls button:hover,.bd-detached-css-editor #bd-customcss-attach-controls button:hover{background:#3b3e44}.cm-s-neat span.cm-comment{color:#a86}.cm-s-neat span.cm-keyword{line-height:1em;font-weight:700;color:#00f}.cm-s-neat span.cm-string{color:#a22}.cm-s-neat span.cm-builtin{line-height:1em;font-weight:700;color:#077}.cm-s-neat span.cm-special{line-height:1em;font-weight:700;color:#0aa}.cm-s-neat span.cm-variable{color:#000}.cm-s-neat span.cm-atom,.cm-s-neat span.cm-number{color:#3a3}.cm-s-neat span.cm-meta{color:#555}.cm-s-neat span.cm-link{color:#3a3}.cm-s-neat .CodeMirror-activeline-background{background:#e8f2ff}.cm-s-neat .CodeMirror-matchingbracket{outline:grey solid 1px;color:#000 !important}#custom-css-ta{background:#d8d8d8;height:200px;font-family:"Consolas"}.content-region .CodeMirror,.content-region .cm-s-material .CodeMirror-gutters,#bd-customcss-detach-container .CodeMirror,#bd-customcss-detach-container .cm-s-material .CodeMirror-gutters{background:#292b2f !important}.content-region #bd-customcss-attach-controls,#bd-customcss-detach-container #bd-customcss-attach-controls{background:#272822;color:#FFF;border:0;box-shadow:0 1px 0 0 #2f3129 inset}.content-region #bd-customcss-pane,.content-region #bd-customcss-innerpane,#bd-customcss-detach-container #bd-customcss-pane,#bd-customcss-detach-container #bd-customcss-innerpane{min-height:calc(80vh - 165px)}.content-region .CodeMirror,.content-region .CodeMirror-scroll{max-height:calc(95vh - 165px);min-height:calc(95vh - 165px);height:auto}.content-region .CodeMirror-simplescroll-vertical,.content-region .CodeMirror-simplescroll-horizontal,#bd-customcss-detach-container .CodeMirror-simplescroll-vertical,#bd-customcss-detach-container .CodeMirror-simplescroll-horizontal{background:transparent !important}.content-region .CodeMirror-simplescroll-vertical,#bd-customcss-detach-container .CodeMirror-simplescroll-vertical{margin-right:3px !important}.content-region .CodeMirror-simplescroll-horizontal,#bd-customcss-detach-container .CodeMirror-simplescroll-horizontal{margin-bottom:3px !important}.content-region .CodeMirror-simplescroll-vertical div,.content-region .CodeMirror-simplescroll-horizontal div,#bd-customcss-detach-container .CodeMirror-simplescroll-vertical div,#bd-customcss-detach-container .CodeMirror-simplescroll-horizontal div{background:#18191c !important;border:none !important;border-radius:5px !important}.content-region .CodeMirror-scrollbar-filler,#bd-customcss-detach-container .CodeMirror-scrollbar-filler{display:none !important}.ui-standard-sidebar-view #editor-detached h3{color:#87909c;font-weight:600;font-size:22px}.ui-standard-sidebar-view #editor-detached button{margin:auto;margin-left:calc(50% - 100px);margin-top:20px;background:#7289da;color:#FFF;font-weight:600;border-radius:5px;font-size:20px}.bd-blue .ui-standard-sidebar-view #editor-detached button{background:#3a71c1}.ui-standard-sidebar-view .bd-versioninfo-wrapper{bottom:0;left:0;position:fixed;background:inherit;right:0;padding:5px}.ui-standard-sidebar-view .bd-versioninfo-wrapper span{color:#b9bbbe;font-weight:600;font-size:11px}.ui-standard-sidebar-view .bd-versioninfo-wrapper a{font-size:11px}.bd-server-card .bd-server-tags{flex:1 1 auto;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:0;line-height:24px;font-size:12px;color:#b9bbbe;font-weight:700;margin-right:10px}.ui-card.ui-card-primary.bd-server-card:first-child{margin-bottom:13px}.ui-card.ui-card-primary.bd-server-card:first-child:after{border:3px solid #7289da;content:"";display:block;position:absolute;left:0;right:0;margin-top:4px}.bd-server-card.bd-server-card-pinned{margin-bottom:15px}.bd-server-card.bd-server-card-pinned:after{background:#3a71c1;content:"";height:3px;width:100%;display:block;margin-top:7px;position:absolute;top:100%}.bd-server-description-container{color:#b9bbbe;min-height:65px;max-height:65px;border-top:1px solid #3f4146;border-bottom:1px solid #3f4146;padding-top:5px;font-size:13px}.bd-server-header{justify-content:space-between;font-weight:600}.bd-server-card{display:flex}.bd-server-content{padding:5px 10px;flex:1}.bd-server-image{min-width:115px;min-height:115px;max-width:115px;max-height:115px}.bd-server-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;padding-right:15px;max-width:330px;flex:1 1 50%}.bd-layer{-ms-flex-direction:column;-webkit-box-direction:normal;-webkit-box-orient:vertical;bottom:0;display:-webkit-box;display:-ms-flexbox;display:flex;flex-direction:column;left:0;position:absolute;right:0;top:0}.spoiler{color:transparent !important}.spoiler img{display:none}.spoiler:before{content:"Spoiler";display:block;background:#1d1d1d;color:#adadad !important;min-height:30px;text-align:center;line-height:100%;font-family:"Consolas";padding-top:5px}.emotemenu-enabled .channel-textarea-inner textarea{margin-right:45px !important}#bdbeta{background:red}.editor-wrapper{display:flex}.line-numbers,.editor{line-height:normal;font-family:Consolas,monospace;box-sizing:border-box;height:calc(100vh - 250px);font-size:14px}.line-numbers{white-space:pre;color:gray;padding:10px 5px 0 5px;background:#24262a;overflow:hidden}.editor{width:100%;background:#292b2f;outline:0;color:white;padding:10px;resize:none}#bd-customcss-detach-container .editor-wrapper,#bd-customcss-detach-container .line-numbers,#bd-customcss-detach-container .editor{height:100%}#emote-menu{background:#36393e;height:0;width:300px;position:absolute;bottom:45px;right:0;border:1px solid #000;border-radius:5px 0 0 0;overflow:hidden;visibility:hidden;transition:all 1s;-webkit-transition:all 1s}.emotemenu-open{height:450px !important;visibility:visible !important}#emote-menu-header{width:100%;height:30px;background-color:#36393e}.emote-menu-tab{float:left;width:130px;text-align:center;padding:7px;color:#adadad;background-color:#424549;cursor:pointer}.emote-menu-tab:hover{background-color:#45484c}#emote-menu-inner,#emote-menu-inner-fav{height:412px}.emote-menu-tab-selected{background-color:#36393e}.emote-menu-tab-selected:hover{background-color:#36393e}#emote-container{padding:10px}.emote-container{display:inline-block;padding:2px;border-radius:5px;width:30px;height:30px;position:relative}.emote-icon{max-width:100%;max-height:100%;position:absolute;margin:auto;top:0;right:0;bottom:0;left:0;cursor:pointer}.emote.stop-animation{animation:none !important}.emote-container:hover{background:rgba(123,123,123,0.37)}.emoteflip,.emotespinflip{transform:scaleX(-1)}.emotespin{animation:1s emote-spin infinite linear}.emote1spin{animation:1s emote-spin-reverse infinite linear}.emotespin2{animation:.5s emote-spin infinite linear}.emote2spin{animation:.5s emote-spin-reverse infinite linear}.emotespin3{animation:.2s emote-spin infinite linear}.emote3spin{animation:.2s emote-spin-reverse infinite linear}.emotepulse{animation:1s emote-pulse infinite linear}.emotetr{transform:translateX(-3px)}.emotebl{transform:translateY(-3px)}.emotebr{transform:translate(-3px,-3px)}.emoteshake{animation:1s emote-shake infinite linear}.emoteflap{transform:scaleY(-1) !important}.emoteshake2{animation:emote-shake2 .3s linear infinite}.emoteshake3{animation:emote-shake3 .1s linear infinite}@keyframes emote-shake2{25%{transform:translate(-1px,-1px)}50%{transform:translate(-1px,1px)}75%{transform:translate(1px,1px)}75%{transform:translate(1px,-1px)}}@keyframes emote-shake3{25%{transform:translate(-1px,-1px)}50%{transform:translate(-1px,1px)}75%{transform:translate(1px,1px)}75%{transform:translate(1px,-1px)}}@keyframes emote-spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes emote-spin-reverse{from{transform:rotate(0)}to{transform:rotate(-360deg)}}@keyframes emote-pulse{0%{-webkit-transform:scale(1,1)}50%{-webkit-transform:scale(1.2,1.2)}100%{-webkit-transform:scale(1,1)}}@keyframes emote-shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}#tc-settings-panel{position:fixed;width:50%;height:75%;background:#2e3136;display:block;z-index:9001;margin-left:25%;margin-top:5%;border:1px solid #000;box-shadow:0 0 20px 0 #000;max-height:800px;min-width:750px}#tc-settings-panel-header{background:#36393e;height:60px;border-bottom:1px solid #000;box-shadow:0 1px 0 0 #4e4e4e}#tc-settings-panel-header h2{margin:0;line-height:60px;margin-left:10px;color:#adadad;display:inline-block;float:left}#tc-settings-panel-header span{float:right;display:inline;line-height:50px;margin-right:15px;font-size:29px;font-weight:bold;color:#adadad}#rmenu{width:auto;background:#505050;position:absolute;z-index:999999;display:none;box-shadow:0 0 2px #000;padding:2px}#rmenu ul a{text-decoration:none;color:#FFF;padding:3px}#tc-settings-panel-body{overflow:auto}#tc-settings-panel-body ul{overflow:auto;position:absolute;padding:0;margin-top:0;border-bottom:1px solid #000;left:0;right:0;bottom:40px;top:61px}#tc-settings-panel-body ul li{padding:15px;color:#adadad;background:#2e3136;border-bottom:1px solid #000;box-shadow:0 1px 0 #404040 inset}#tc-settings-panel-body ul li:nth-child(odd){background:#33363b}#tc-settings-panel-body ul li h2{display:inline}#tc-links a{color:#FFF}#tc-settings-panel-footer{background:#36393e;height:40px;position:absolute;bottom:0;right:0;left:0;border-top:1px solid #000;box-shadow:0 1px 0 #505050 inset;line-height:40px;padding-left:10px;color:#adadad !important}#tc-links{float:right;margin-right:10px}.tc-switch{background:#2e3136;width:100px;height:24px;display:inline-block;float:right;margin:-7px;border:1px solid #000;outline:1px solid #404040;cursor:pointer}.tc-switch.disabled{background:gray;cursor:default}.tc-switch.disabled span{background:gray !important}.tc-switch.disabled .tc-switch-on{border-left:1px gray !important}.tc-switch span{line-height:24px;display:inline-block;width:49px;text-align:center;height:24px}.tc-switch-off{border-right:1px solid #000}.tc-switch-on{border-left:1px solid #404040}.tc-switch-on.active{background:green;border-left:1px solid #00ae08}.tc-switch-off.active{background:#860606}.bd-minimal .divider-32i8lo{opacity:0}.bd-minimal .large-3ChYtB{max-width:20px;max-height:20px;background-size:100%;margin-right:2px;margin-top:0;border-radius:0}.bd-minimal .content-3dzVd8{border-left:2px solid #ebebeb;padding-left:2px}.bd-minimal .theme-dark .content-3dzVd8{border-left:2px solid #303030}.bd-minimal .username-_4ZSMR{font-size:small}.bd-minimal.bd-minimal-chan .channels-Ie2l6A{display:none}.bd-minimal .container-1YxwTf{padding:5px}.bd-minimal .embed{padding:2px}.bd-minimal .members-1998pB .small-5Os1Bb{max-width:15px;max-height:15px;background-size:15px 15px}.bd-minimal .members-1998pB .small-5Os1Bb .status-oxiHuE{height:5px;width:5px}.bd-minimal .members-1998pB .member-3W1lQa{padding:5px}.bd-minimal .members-1998pB .memberInner-2CPc3V{transform:scale(0.9)}.bd-minimal .membersWrap-2h-GB4{min-width:0}.bd-minimal .members-1998pB .membersGroup-v9BXpm{margin-top:3px;transform:scale(0.9)}.bd-minimal .channels-Ie2l6A header span{font-size:12px}.bd-minimal .channels-Ie2l6A .channels-Ie2l6A{padding:0}.bd-minimal .guildsWrapper-5TJh6A .guilds-1q_RqH .guild-1EfMGQ{width:20px;height:20px;background-size:100%;font-size:15px;line-height:20px}.bd-minimal .guildsWrapper-5TJh6A .guilds-1q_RqH .guild-1EfMGQ .guildInner-3DSoA4 a,.bd-minimal .guild-1EfMGQ .guildInner-3DSoA4 .guildIcon-CT-ZDq{width:20px;height:20px;background-size:100%;font-size:15px;line-height:20px}.bd-minimal .guild-1EfMGQ .guildInner-3DSoA4{width:20px;height:20px;background-size:100%;font-size:15px;line-height:20px}.bd-minimal .guilds-1q_RqH .homeIcon-1FoKUJ{width:10px;height:10px;background-size:100%;font-size:15px;line-height:20px}.bd-minimal .guilds-1q_RqH .friendsOnline-_wi_fM{margin-left:-15px;font-size:7px}.bd-minimal .guildsWrapper-5TJh6A{width:45px}.bd-minimal .guildsWrapper-5TJh6A .guildSeparator-1X4GQ1{margin-left:-15px}.bd-minimal .guildsWrapper-5TJh6A .guilds-1q_RqH .guild-1EfMGQ.selected-ML3OIq:before{height:20px;margin-top:-10px}.bd-minimal .guildsAdd-21_IdK{font-size:20px;line-height:14px}.bd-minimal .guilds-1q_RqH .audio-3vVhBi .guildInner-3DSoA4:after{width:12px;height:12px;background-size:12px}.bd-minimal .guild-header header span{margin-left:-20px}.bd-minimal .btn-hamburger{margin-right:-30px}.bd-minimal .container-2Thooq .avatar-small{width:15px;height:15px;background-size:15px 15px}.bd-minimal .container-2Thooq .avatar-small .status-oxiHuE{height:5px;width:5px}.bd-minimal .container-2Thooq .accountDetails-3k9g4n{transform:scale(0.8)}.bd-minimal .container-2Thooq .button-2b6hmh{height:14px;width:14px;background-size:14px 14px;margin-left:3px}.bd-minimal .container-2Thooq .button-2b6hmh svg{height:14px;width:14px}.bd-minimal .channels-Ie2l6A{width:160px}.bd-minimal .content-20Aix8{transform:scale(0.9)}.bd-minimal .containerDefault-3GGEv_{transform:scale(0.9)}.bd-minimal .icon-sxakjD{width:14px;height:14px}.emotewrapper{position:relative;display:inline-flex;object-fit:contain;margin:-.1em .05em -.2em .1em;vertical-align:top}.emotewrapper.jumboable{margin-bottom:0;margin-top:.2em;vertical-align:-.3em}.emote{height:1.45em}.emote.jumboable{height:2rem}.emotewrapper:hover .fav{display:block}#bd-changelog h2{font-size:150%;padding-bottom:10px;border-bottom:1px solid rgba(0,0,0,0.5)}.fav{display:none;position:absolute;width:15px;height:15px;right:-7px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAzFBMVEUAAABQUFBMTExLS0tNTU1MTExNTU1NTU1MTExMTExNTU1LS0tEREBEREBEREBEREBJSUhLS0tLS0tEREBNTU1NTU1NTU1EREArKyhNTU1NTU0AAABMTExKSklMTExNTU1NTU1NTU1KSkpMTExKSkhNTU1KSkpISEZNTU1LS0tAQDxOTk5KSkpLS0tNTU1MTExMTEx/f39MTExMTExLS0pLS0tMTExNTU1NTU1LS0pNTU1NTU1NTU1NTU1NTU1NTUxNTU1NTU1NTUxMTEzB8C/5AAAAOnRSTlMAI8X96oWAgYSF68QBAg0PMCb9BIuLgQUD4N0Bh0mKhZSOQ4gcrKscaW8QRE6fmJyjAshASceG7cIpqQOxTQAAALVJREFUGFddx6FOA0EYAOGZvd07Qm6vVCAAgUUgQEDfX/YZMAigqaFN7iC5tsmPqGPUN/AvUVeoEbGOCElJz08Uzeixqu4AqomVVSNngOVjTqDGZSl3UFtPGV2ot2zaq96YM9p5Ddzcf/nTTAlj+/sNtNu8OcwkIsbPBtrUfMQeEhGQmHbmGIFMwLPzu6UMIwBNgToshgq8Nr2ki+Oy7ebDHp70LRPWB6OZgfWLWei7fJonOOsPCGA9kVlssOoAAAAASUVORK5CYII=");border:0;background-size:100% 100%;background-repeat:no-repeat;background-color:#303030;border-radius:5px;top:-7px;cursor:pointer}.fav.active{background-color:yellow}#bd-ps-container{position:fixed;width:50%;height:75%;background:#2e3136;display:block;z-index:9001;margin-left:25%;margin-top:5%;border:1px solid #000;box-shadow:0 0 20px 0 #000;max-height:800px;min-width:750px}#bd-ps-header{background:#36393e;height:60px;border-bottom:1px solid #000;box-shadow:0 1px 0 0 #4e4e4e}#bd-ps-header h2{margin:0;line-height:60px;margin-left:10px;color:#adadad;display:inline-block;float:left}#bd-ps-header span{float:right;display:inline;line-height:50px;margin-right:15px;font-size:29px;font-weight:bold;color:#adadad}#bd-ps-body{position:absolute;padding:0;margin-top:0;left:0;right:0;bottom:0;top:61px;overflow:auto}.bd-ps-server{width:100%;height:200px}.bd-ps-server-header{height:50px;width:100%;margin-top:1px;background:#202020;color:#aeaeae;line-height:50px;font-size:20px}.bd-ps-server-header span{margin-left:10px}.bd-ps-server-body{padding:5px}.bd-ps-server-icon{width:90px;height:90px;background:#202020;display:inline-block}.bd-ps-server-info{position:absolute;height:190px;display:inline-block;left:100px;right:5px;color:#aeaeae;overflow:auto}#bd-ps-body table{width:100%;margin:0;padding:0;border-color:red;border-collapse:collapse;text-align:left}#bd-ps-body table th{background-color:#202020;color:#ededed;height:50px;padding-left:5px}#bd-ps-body table tr{margin:0;padding:0;height:50px;background-color:#33363b;border-bottom:1px solid #000;box-shadow:0 1px 0 #404040 inset}#bd-ps-body table tr td{padding-left:5px;color:#ededed;min-width:100px}#bd-ps-body .description{overflow:auto;max-height:60px;word-wrap:break-word}#bd-ps-body table tr:nth-child(odd){background-color:#2e3136}#bd-show-channels{display:none;width:12px;height:18px;background:#2e3136;position:absolute;left:33px;top:79px;text-align:left !important;padding:0 !important;padding-left:3px !important;color:#ebebeb;z-index:90000}.bd-minimal-chan #bd-show-channels{display:block !important}.tipsy{z-index:9000000001 !important;position:fixed;padding:5px;display:block;visibility:visible;opacity:.8}.tipsy-arrow{position:absolute;width:0;height:0;border:5px solid transparent;bottom:0;right:10px;border-bottom:0;border-top-color:black}.tipsy-inner{background-color:black;color:white;max-width:300px;padding:5px 8px 4px;text-align:center;overflow:hidden !important;text-overflow:ellipsis}#bd-psd-container{position:fixed;width:50%;height:75%;display:block;margin-left:25%;margin-top:5%;box-shadow:0 0 20px 0 #000;background:#2e3135;border:1px solid #25282c;min-width:750px;min-height:800px}#bd-psd-header{width:100%;height:40px;border-bottom:1px solid #25282c;line-height:40px;color:#adadad}#bd-psd-header span{margin-left:10px}#bd-psd-body{height:100%;width:100%}#bd-psd-table{width:100%;margin:0;padding:0;text-align:left;color:#adadad}#bd-psd-table thead th{background:#1d1d1d;padding:5px}#bd-psd-table tbody td{padding:5px}#bd-psd-table tbody tr{background:#292c30}#bd-psd-table tbody tr:nth-child(odd){background:#2e3135}#bd-psd-table button{background:#292c30;border:1px solid #1d1d1d;width:60px;height:30px;color:#adadad;cursor:pointer}#bd-psd-table button:hover{background:#2e3135}#bd-psd-header a{float:right;margin-right:10px;font-size:30px;color:#adadad;text-decoration:none;margin-top:-7px}.bd-g-table{text-align:left;width:520px;white-space:nowrap}.bd-g-table thead th{background:#ebebeb !important;color:#87909c !important;padding:5px !important}.bd-g-table tbody tr{background:#e0e0e0 !important}.bd-g-table tbody tr:nth-child(odd){background:#ececec !important}.bd-g-table tbody td{color:#87909c !important;padding:5px !important;font-size:small}.bd-g-table textarea{width:100% !important;background:#e0e0e0 !important;border:none !important;resize:none !important;font-size:small !important;margin:0 !important;padding:0 !important}.bd-g-table input{margin:0 !important;padding:0 !important}.message-group.compact .message .markup .message-content{text-indent:0}.bd-psb{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAG6ElEQVR4XtWZS0xTWRjHP54+H+WhQRO0GAQxxikxmhhMKBu2upLoTDKsaupmcGVYVTdjxhUrG9kMG0OYTDKSuGIzZQHGUQNEowaJ4lt8UXwBPuf7kV5ycrmXW26bVP/JlxR6zvc63+uc5n379k1+ZOTLD45CPnR2dkoWcUgpqhS2LUgoxZX+kiwgEolYBmSGlpYWsdDT0xMoLi7uaW5ulk2bNomJJ0+ehPv6+sIfP37s0z1JY893FUKt27ZtQ3n58OGDTE1NQXyWiooKqa6uFtZkN4QyhK0IHFi/fr3MzMyIelos8DkvL09Wr17Nmp/Yk4skDimdNGPbREFBAR+Cq1atki9fvogdGFBSUiLwYa0L4I2MULYNOFtWVja0e/fumIbHvyLyj1KzpLBs2TLp7u6OrFmzJrhx40b5+vWr2PH582fZsmWL6JoQa9ljoBme8EYGspApaYA+4FWFztbU1ETD4bBYGB8fl0QiQWicJkKUfg0qVLiocJmcnBQncAKvXr2Sa9euwWM8VZVI/Hb4KwuxAP/R0VG+P+a7CpnK48G3b9/ibQTJkSNHUKRdhYuuwbMCWOMG9mOgVik+B2/cuPEHCzAcPiT77OwsvCTlsKgaIRjhJ4nDGg7RxsZG+fTpk6XYfIIS6/v27RPA91QbYn8xsO7169fky4L9yWRyPvTevHmDEaKykRt9+vQpvSOx1BA6uWPHjpiS5BI3b96ETqHPUkNo/P3795LrWQkd0MVPCHXdv3//N20+oXXr1kk6IE9IUsKJMEM4IFyIcfiQA4WFiPXGixcvRHVIoIvfMhq/dOkSMSqLgdjVOJWRkREEEs8kJLUf4jP/4zvWsJY9nvlCtUKHTDpxpwqv04rXpifhKujOnTuWtz1Boj98+JBkFsaOoqIicYLKxPAOhr+sjBKUT0qcCcLk9u3b86PCUsCp3Lp1S7Zv3054iQH+zuos1FpbW4uCZkLzWe7evUvcS36+v5mQvfCgj5gOgB+95vr16wdF5HgmBkS2bt0aWL58udgr0vPnz2V6etoS7BvwgNeGDRvEAidN166srAxquEUI5XQNCChhdaNSiLmlvr4exUk6M46pEG6ex8rzSr1KA0qggUlV6Wd6j1O1oTrR4Cz+yNu7dy/Jf45mJiLDSv1KF5SSTgYc4jLC0THPwxCCGbON4X2rKzsZwKJTKTLxd4rGlGJORlB68bqZI/x9+PBhSnMI0ktRqyb3n5pzLSS33YCodZNCWZTEM8SpDbR6t9A5j/LiDr6jnP0iNrx7904CgYBZ3QgtegYFhIpFrnCzk4sXL0btBgRXrlwZZjFKs9mjRruFT694o9fBACoZjnOSBWGgWXLDAkwDVqxYYXrbq3G5GTAg3hhw4+kBDFk0idOaezglwifLgCe8UdLXnTjJxjQHN47S7bQaSFaP7Q0uPJEP+TJgWBMTCq1du9ZrFCCp3Gb/A54GsMYBdN90vE8BQV+nEIpfvnz5HDMPRmgPwCuOBlAtuNg4gDo/tkgliqXW2IFMV+9bFyqUHxuDvcTdLjQ1qVe1EFRaWhqgkdkNoTM/ePAAgVlpZMT/5s2bccqCLj00NITiSbwOpZQfdbvQjBqzBxPj7zqste/cuXNByeP95+XLl475SJmEJD3Ay6mM4m2UPyEiZ/zOQmcmJibamRipEGYYad8QSi9zSybgNOFD57UPeo8fP05ayvs1IKmMOh49etTGm479eHkupDMizA9wCt6nSdmhMvnQlbWnRfKAYzZPgcTCCC4nGLQU4HXNMXPKNSuS5ZTpTA1oVsXb6urqUNipe6IAVYn7LmOIV0elg+N1Epe9rHc8mV27dlEo2rUCcSfu82tAdM+ePXiEsdax6mAYIcAozEyPgvxNblgnxn56B5d7eHBa7HMD3+MUZA8ODkb9GhDWcfpgeXk5Cnl61jIEYAwv0SgOMMR62Ut31oIXstFBR+mwr4ctvY3FqqqqJJe4d+8e105fD1sJvcjEuODkENZDccLPuxAGdPGG43Ih53kE8iqjfvfzaoEBcXTxm8RxmChaKZfG7YkXA1p/R+qY24hXbk0er27sYT1dHMXZz0MXlY68MZWXZ8+eGc/r/l7m/ksZ0YXCPDbB+MqVK8OqyFHGjqampuOqSIkKO83c4gXW6NoT7GEvPNQhR+EJb2Qgy1t5exJ742BqyBs3OiTv+OaPEpP79+8PuJ0CJ3f16tVh3VNv7BEDrUrB1NB2IZ2fWfMlfcDwpEd7H0ZJ4GYAa8QdXchAVq5+Zu2n4XkYMPI9/8wa1yGMH+lISLvyxLXgZfbkwABP8JPQRH9//1F9Fo/qKBAySiYGDGOgrkmKD/hPYv8IG5+tG1XWQBLPG/Aj439gf0WR+WMvWwAAAABJRU5ErkJggg==");width:25px;height:25px;background-color:transparent;background-size:100%}.bd-psm{position:fixed;pointer-events:auto;width:490px;height:460px;background-color:white;z-index:900000;margin:auto;right:0;left:170px;top:-60px;bottom:0;box-shadow:0 0 10px 5px rgba(193,193,193,0.75);border:1px solid #ebebeb}.bd-alert{position:absolute;width:600px;height:200px;left:0;right:0;top:300px;background-color:#2e3136;margin:auto;border:1px solid #323232;box-shadow:0 0 5px 3px rgba(30,30,30,0.5);color:#ebebeb}.bd-alert-header{height:25px;background:#36393e}.bd-alert-header span{line-height:25px;margin-left:5px}.bd-alert-closebtn{cursor:pointer;float:right;margin-right:5px;margin-top:2px}.bd-alert-closebtn:hover{color:#adadad}.bd-alert-body{height:178px}.bd-alert-body a{color:#FFF !important}.bd-alert-body .scroller-wrap{height:178px}.bd-alert-body .scroller-wrap .scroller{padding:5px;word-wrap:break-word}.channel-textarea-inner textarea{margin-right:40px}.servericon{width:64px;display:inline-block;background-size:100% auto;height:64px}.serverinfo{display:inline-block}#pubs-container{width:800px;position:fixed;top:50%;left:50%;margin-top:-284.5px;margin-left:-400px;background:#FFF;z-index:9000000}#pubs-container .scroller-wrap{height:500px}#pubs-header{background:#7289da;padding:5px 12px 5px 5px}#pubs-header h2{display:inline-block;font-weight:600;color:#FFF}#pubs-header input,#pubs-header button{float:right}#pubs-sterm{outline:none !important;padding-left:3px}.bd-dropdown{position:absolute;display:inline-block;width:150px;right:225px}.bd-dropdown button{width:150px}.bd-dropdown .bd-dropdown-list ul{height:0}.bd-dropdown.open .bd-dropdown-list ul{height:140px}.bd-dropdown-list{position:absolute;right:0;top:32px;z-index:90001;width:150px;background:#f3f3f3}.bd-dropdown-list ul{height:0;overflow-y:auto;overflow-x:hidden;transition:all .5s ease-in-out}.bd-dropdown-list ul li{padding:5px;background:#e6e6e6;cursor:pointer;color:#87909c;font-weight:600}.bd-dropdown-list ul li:nth-child(odd){background:#e2e1e1}.bd-dropdown-list ul li:hover{background:#f9f5f5}#pubs-header input{border:0;height:30px;width:150px;color:#555;background-color:#fff;-webkit-transition:width 1s ease-in-out;-moz-transition:width 1s ease-in-out;-o-transition:width 1s ease-in-out;transition:width 1s ease-in-out}#pubs-header button{height:32px;background-color:#f9f9f9;color:#949494}#pubs-footer{height:25px;line-height:25px;background:#7289da}#pubs-footer div{float:right;margin-right:5px;font-weight:600px;color:#FFF}#pubs-footer a{color:#FFF;text-decoration:none;font-weight:800}#pubs-container .scroller-wrap{margin-top:75px}.server-row{padding:5px;display:flex;background-color:#FFF}.server-row:nth-child(odd){background-color:#f3f3f3}.server-icon{width:64px;height:64px;background-size:100% auto}.server-info{display:flex;flex-flow:column;line-height:64px;margin-left:20px}.server-info span{font-size:16px;color:#000;font-weight:600}.server-info a{color:#4056a2;text-decoration:none;font-weight:800;margin-left:5px}.server-info button{width:90px;height:48px;margin-top:8px;background-color:#738bd7;color:#fff;font-size:19px}.server-info button:hover{background-color:#697ec4}.server-information{flex-grow:1;position:relative}.server-name,.server-desription{flex-grow:100}.server-name span{overflow:hidden;text-overflow:ellipsis;max-width:300px;white-space:nowrap}.server-name-span,.server-description{position:absolute;top:0;transition:visibility 0s,opacity .8s linear}.server-official,.server-tags{visibility:visible;opacity:1;transition:visibility 0s,opacity .8s linear}.server-information:hover .server-description{visibility:visible;opacity:1}.server-information:hover .server-name-span{visibility:hidden;opacity:0}.server-information:hover .server-tags{visibility:hidden;opacity:0}.server-information:hover .server-official{visibility:hidden;opacity:0}.server-tags{position:absolute !important;bottom:0 !important;height:38px !important;font-size:10px !important;visibility:visible;opacity:1}.server-official{position:absolute !important;top:0 !important;height:20px !important;font-size:14px !important;line-height:14px !important;color:#7289da !important;font-weight:700 !important;text-shadow:0 0 4px #7289da;visibility:visible;opacity:1;padding-left:2px;padding-right:2px}.server-description{visibility:hidden;opacity:0;font-size:12px !important;line-height:12px !important;text-overflow:initial !important;white-space:inherit !important;overflow-y:auto !important;height:64px !important}.server-region{min-width:85px}.server-pinned{position:absolute;width:777px;padding-right:-10px;padding-right:17px;border-bottom:2px solid #272727}#server-bd-tag{position:absolute !important;bottom:0 !important;height:20px !important;line-height:20px !important;font-size:13px !important;font-weight:600 !important}#pubs-spinner{position:fixed;top:50%;left:50%;margin-left:-16px;margin-top:-16px}#pubs-container .scroller::-webkit-scrollbar-track-piece,#pubs-container .scroller::-webkit-scrollbar-thumb{border-radius:0}.bd-hide-bd .callout-backdrop{display:none}.bd-detached-editor .app{width:70%}.bd-detached-editor #bd-customcss-detach-container{display:block}#bd-customcss-detach-container{display:none;position:absolute;width:30%;top:0;right:0;bottom:0;background-color:#36393e}#bd-customcss-detach-editor{height:calc(100% - 87px)}#bd-customcss-detach-editor #bd-customcss-innerpane,#bd-customcss-detach-editor .CodeMirror{height:100%}#bd-customcss-detach-controls{background:#e8e8e8;border-top:1px solid #adadad;-webkit-box-shadow:inset 0 1px 0 0 white;height:100%;padding:5px}#bd-customcss-detach-controls .checkbox-group li{margin-top:5px;display:inline-block}#bd-customcss-detach-controls button{width:90px;height:30px;margin-top:8px;background-color:#738bd7;color:#fff;font-size:19px}#bd-customcss-detach-controls-buttons{bottom:5px}#editor-detached{margin-top:50px}#editor-detached h3{text-align:center;font-size:30px}#editor-detached .btn{left:50%;margin-left:-100px;margin-top:10px;width:200px;height:60px}#bd-customcss-attach-controls{background:#e8e8e8;border:1px solid #FFF;border-top:1px solid #adadad;-webkit-box-shadow:inset 0 1px 0 0 white;height:100%;padding:5px;height:75px}#bd-customcss-attach-controls .checkbox-group{margin-bottom:0}#bd-customcss-attach-controls .checkbox-group li{margin-top:5px;display:inline-block}#bd-customcss-attach-controls button{margin:0;width:100px}#bd-customcss-detach-container #bd-customcss-detach-controls-buttons button{width:90px;height:30px;margin-top:8px;background-color:#738bd7;color:#fff;font-size:19px}.emoji-picker,.emojiPicker-3m1S-j{box-shadow:none;border-top:0;border-radius:0 0 5px 5px}#bda-qem{border-radius:5px 5px 0 0;background:#FFF;border-bottom:1px solid rgba(0,0,0,0.1) !important;height:30px;display:flex;flex-direction:row;padding-right:1px !important}#bda-qem button{border-left:1px solid #efefef;background:transparent;box-shadow:#cecece 1px 0 0 0;flex-grow:1}#bda-qem button:hover{background:#ececec}#bda-qem-twitch{border-radius:5px 0 0 0;order:2}#bda-qem-emojis{border-radius:0 5px 0 0;order:3}#bda-qem-favourite{order:3}#bda-qem button.active{background-color:#e2e2e2}#bda-qem-twitch-container,#bda-qem-favourite-container{width:346px;height:327px;background-color:#FFF;border-radius:0 0 5px 5px}#bda-qem-twitch-container .scroller-wrap,#bda-qem-favourite-container .scroller-wrap{height:100%}.emote-menu-inner{padding:5px 0 0 15px}#rmenu{left:25px;display:block !important;cursor:pointer;color:#FFF;position:fixed}.bda-qme-hidden #bda-qem-emojis{display:none}.bd-select select{width:100%;margin:0;outline:0;padding:.6em .8em .5em .8em;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:14px;padding-right:2em;background:0;border:1px solid transparent !important;-webkit-appearance:none;appearance:none;color:#404040;outline:none !important}.bd-select::after{content:" ";position:absolute;top:50%;right:1em;z-index:2;pointer-events:none;display:none}.bd-select select:focus{border-color:#aaa}.bd-select:focus::after{display:block}.bd-select{position:absolute;right:220px;height:32px;top:5px;border-radius:0;display:inline-block;border:0;border-radius:0;box-shadow:0 1px 0 1px rgba(0,0,0,.04);background:#fff;outline:none !important}.bd-select:before{content:"Category";color:#FFF;position:absolute;right:100%;margin-right:5px;line-height:32px}#bd-pane .tab-bar.TOP{margin-bottom:0}#bd-settings-pane{margin-top:18px}#bd-themes-pane .bda-plugin-reload{margin-top:70px}.bda-backdrop{position:absolute;top:0;left:0;right:0;bottom:0;z-index:1000;background:rgba(0,0,0,0.5)}.bd-settings{max-width:516px}.bda-dark #bda-qem-favourite-container,.bda-dark #bda-qem-twitch-container{background-color:#353535}.bda-dark #bda-qem{border-bottom:1px solid #464646 !important;background:#353535}.bda-dark #bda-qem button{background:#353535;border-left:1px solid #242424;box-shadow:#424242 1px 0 0 0;color:#FFF}.bda-dark #bda-qem button.active{background-color:#292929}.bda-dark #bda-qem button:hover{background-color:#303030}.bda-dark #bda-qem-favourite-container,.bda-dark #bda-qem-twitch-container{background-color:#353535}.bda-dark .emoji-picker,.bda-dark .emojiPicker-3m1S-j{background-color:#353535}.bda-dark .emoji-picker .category,.bda-dark .emojiPicker-3m1S-j .category-2U57w6{background-color:#353535}.bda-dark .emoji-picker .header .search-bar,.bda-dark .emojiPicker-3m1S-j .header-1nkwgG .search-bar{background-color:#2b2b2b}.bda-dark .emoji-picker .search-bar input,.bda-dark .emojiPicker-3m1S-j .search-bar input{color:#FFF}.bda-dark .emoji-picker .search-bar input::-webkit-input-placeholder,.bda-dark .emojiPicker-3m1S-j .search-bar input::-webkit-input-placeholder{color:#FFF}.bda-dark .emoji-picker .scroller .emoji-item.selected,.bda-dark .emojiPicker-3m1S-j .scroller-3vODG7 .emojiItem-109bjA.selected-39BZ4S{background-color:rgba(123,123,123,0.37)}.bda-dark .emoji-picker .dimmer.visible,.bda-dark .emojiPicker-3m1S-j .dimmer-3iH-5D.visible-3k45bQ{background-color:rgba(62,62,62,0.65)}.bda-dark .emoji-picker .diversity-selector .popout-3sVMXz,.bda-dark .emojiPicker-3m1S-j .diversitySelector-tmmMv0 .popout-2nUePc{background:#353535;border-color:#202020}.bda-dark #bda-qem-twitch-container .scroller::-webkit-scrollbar,.bda-dark #bda-qem-twitch-container .scroller::-webkit-scrollbar-track,.bda-dark #bda-qem-twitch-container .scroller::-webkit-scrollbar-track-piece,.bda-dark #pubs-container .scroller::-webkit-scrollbar,.bda-dark #pubs-container .scroller::-webkit-scrollbar-track,.bda-dark #pubs-container .scroller::-webkit-scrollbar-track-piece{background-color:#303030 !important;border-color:#303030 !important}.bda-dark #bda-qem-favourite-container .scroller::-webkit-scrollbar,.bda-dark #bda-qem-favourite-container .scroller::-webkit-scrollbar-track,.bda-dark #bda-qem-favourite-container .scroller::-webkit-scrollbar-track-piece{background-color:#303030 !important;border-color:#303030 !important}.bda-dark .emoji-picker .scroller::-webkit-scrollbar,.bda-dark .emoji-picker .scroller::-webkit-scrollbar-track,.bda-dark .emoji-picker .scroller::-webkit-scrollbar-track-piece,.bda-dark .emojiPicker-3m1S-j .scroller-3vODG7::-webkit-scrollbar,.bda-dark .emojiPicker-3m1S-j .scroller-3vODG7::-webkit-scrollbar-track,.bda-dark .emojiPicker-3m1S-j .scroller-3vODG7::-webkit-scrollbar-track-piece{background-color:#303030 !important;border-color:#303030 !important}.bda-dark #bda-qem-twitch-container .scroller::-webkit-scrollbar-thumb,.bda-dark #bda-qem-favourite-container .scroller::-webkit-scrollbar-thumb,.bda-dark .emoji-picker .scroller::-webkit-scrollbar-thumb,.bda-dark emojiPicker-3g68GS .scroller-3vODG7::-webkit-scrollbar-thumb,.bda-dark #pubs-container .scroller::-webkit-scrollbar-thumb{border-color:#202020 !important;background-color:#202020 !important}.bda-dark .server-row{background-color:#36393e}.bda-dark .server-row:nth-child(odd),.bda-dark #pubs-container{background-color:#2e3136}.bda-dark .server-info span{color:#d6d6d6}.bda-dark #pubs-header,.bda-dark #pubs-footer{background:#202020}.bda-dark #pubs-sterm{background:#36393e;color:#FFF}.bda-dark #pubs-searchbtn{background:#2e3136}.bda-dark .bd-select{background:#36393e}.bda-dark .server-info button{background-color:#202020}.bda-dark #pubs-cat{color:#FFF}.bda-dark .bd-dropdown-select{background-color:#2e3136}.bda-dark .bd-dropdown-list ul li:nth-child(odd){background:#36393e}.bda-dark .bd-dropdown-list ul li{background:#3d4046}.bda-dark .bd-dropdown-list ul li:hover{background:#2d2f33}.bda-dark #pubs-header button{background-color:#2e3136}.bda-dark .bd-dropdown .bd-dropdown-list ul::-webkit-scrollbar,.server-description::-webkit-scrollbar{width:12px}.bda-dark .bd-dropdown .bd-dropdown-list ul::-webkit-scrollbar-track,.server-description::-webkit-scrollbar-track{background:#303030}.bda-dark .bd-dropdown .bd-dropdown-list ul::-webkit-scrollbar-thumb,.server-description::-webkit-scrollbar-thumb{background:#202020}.bd-pfbtn{background:#7289da;color:#FFF;border-radius:5px;margin-left:10px}#bd-settings-sidebar .ui-tab-bar-item{font-size:16px;font-weight:500;line-height:20px;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;flex-shrink:0;padding:6px 10px;border-radius:3px;position:relative;overflow:hidden}#bd-settings-sidebar .ui-tab-bar-item.selected{cursor:default}.theme-dark #bd-settings-sidebar .ui-tab-bar-item{color:#b9bbbe}.theme-dark #bd-settings-sidebar .ui-tab-bar-item:hover{background-color:rgba(185,187,190,.1);color:#f6f6f7}.theme-dark #bd-settings-sidebar .ui-tab-bar-item.selected{background-color:#7289da;color:#fff}.theme-light #bd-settings-sidebar .ui-tab-bar-item{color:#72767d}.theme-light #bd-settings-sidebar .ui-tab-bar-item:hover{background-color:rgba(79,84,92,.1);color:#4f545c}.theme-light #bd-settings-sidebar .ui-tab-bar-item.selected{background-color:#7289da;color:#fff}#bd-settings-sidebar .ui-tab-bar-header{font-size:12px;font-weight:700;line-height:16px;text-transform:uppercase;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;padding:6px 10px;overflow:hidden}.theme-dark #bd-settings-sidebar .ui-tab-bar-header{color:#72767d}.theme-light #bd-settings-sidebar .ui-tab-bar-header{color:#b9bbbe}#bd-settings-sidebar .ui-tab-bar-separator{height:1px;margin:8px 10px}.theme-dark #bd-settings-sidebar .ui-tab-bar-separator{background-color:rgba(114,118,125,.3)}.theme-light #bd-settings-sidebar .ui-tab-bar-separator{background-color:rgba(185,187,190,.3)}#bd-settingspane-container h2.ui-form-title{font-size:16px;font-weight:600;line-height:20px;text-transform:uppercase;display:inline-block;margin-bottom:20px}.theme-dark #bd-settingspane-container h2.ui-form-title{color:#f6f6f7}.theme-light #bd-settingspane-container h2.ui-form-title{color:#4f545c}#bd-settingspane-container .ui-switch-item{flex-direction:column;margin-top:8px}#bd-settingspane-container .ui-switch-item h3{font-size:16px;font-weight:500;line-height:24px;flex:1}.theme-dark #bd-settingspane-container .ui-switch-item h3{color:#f6f6f7}.theme-light #bd-settingspane-container .ui-switch-item h3{color:#4f545c}#bd-settingspane-container .ui-switch-item .style-description{font-size:14px;font-weight:500;line-height:20px;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid hsla(218,5%,47%,.3)}.theme-dark #bd-settingspane-container .ui-switch-item .style-description{color:#72767d}.theme-light #bd-settingspane-container .ui-switch-item .style-description{color:rgba(114,118,125,.6)}#bd-settingspane-container .ui-switch-item .ui-switch-wrapper{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;width:44px;height:24px;display:block;flex:0 0 auto}#bd-settingspane-container .ui-switch-item .ui-switch-wrapper input{position:absolute;opacity:0;cursor:pointer;width:100%;height:100%;z-index:1}#bd-settingspane-container .ui-switch-item .ui-switch-wrapper .ui-switch{background:#7289da;position:absolute;top:0;right:0;bottom:0;left:0;background:#72767d;border-radius:14px;transition:background .15s ease-in-out,box-shadow .15s ease-in-out,border .15s ease-in-out}#bd-settingspane-container .ui-switch-item .ui-switch-wrapper .ui-switch:before{content:"";display:block;width:18px;height:18px;position:absolute;top:3px;left:3px;bottom:3px;background:#f6f6f7;border-radius:10px;transition:all .15s ease;box-shadow:0 3px 1px 0 rgba(0,0,0,.05),0 2px 2px 0 rgba(0,0,0,.1),0 3px 3px 0 rgba(0,0,0,.05)}#bd-settingspane-container .ui-switch-item .ui-switch-wrapper .ui-switch.checked{background:#7289da}#bd-settingspane-container .ui-switch-item .ui-switch-wrapper .ui-switch.checked:before{transform:translateX(20px)}#pubslayer .ui-tab-bar-item{color:#b9bbbe;padding-top:6px;padding-bottom:6px;margin-bottom:2px;padding:6px 10px;position:relative;font-size:16px;line-height:20px;border-radius:3px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex-shrink:0;font-weight:500;cursor:pointer}#pubslayer .ui-tab-bar-item:hover{color:#f6f6f7;background-color:hsla(216,4%,74%,.1)}#pubslayer .ui-tab-bar-item.selected{color:#fff;background-color:#7289da}#pubslayer .ui-tab-bar-header{color:#72767d;padding:6px 10px;font-size:12px;line-height:16px;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex-shrink:0;font-weight:500}#pubslayer #bd-settings-sidebar .ui-tab-bar-separator{background-color:hsla(218,5%,47%,.3);margin-left:10px;margin-right:10px;height:1px;margin-bottom:8px;margin-top:8px}#pubslayer h2.ui-form-title{color:#f6f6f7;text-transform:uppercase;font-weight:600}#pubslayer h5.ui-form-title{color:#f6f6f7}#pubslayer button{background:#7289da;color:#FFF;font-size:14px;font-weight:500;line-height:16px;padding:2px 16px;border:0;border-radius:3px;transition:background-color .17s ease}#pubslayer button:hover{background-color:#677bc4}#pubslayer input{color:#f6f6f7;background-color:rgba(0,0,0,.1);border-color:rgba(0,0,0,.3);padding:10px;height:30px;border-width:1px;border-style:solid;border-radius:3px;outline:0;transition:background-color .15s ease,border .15s ease}#bd-settingspane-container .scroller-wrap{height:100%}#bd-settingspane-container .scroller-wrap .scroller{display:flex}.bda-slist{user-select:text}.bda-slist li{max-height:175px;margin-bottom:20px;padding:5px 8px;border:1px solid transparent;border-radius:5px;overflow:hidden}.theme-dark .bda-slist li{background-color:rgba(32,34,37,.6);color:#f6f6f7;border-color:#202225}.theme-light .bda-slist li{background-color:#f8f9f9;color:#4f545c;border-color:#dcddde}.bda-slist li.settings-open{max-height:800px;overflow-y:auto}.bda-slist .bda-header{font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:space-between;padding-bottom:5px;border-bottom:1px solid transparent;overflow:hidden}.theme-dark .bda-slist .bda-header{color:#f6f6f7;border-bottom-color:rgba(114,118,125,.3)}.theme-light .bda-slist .bda-header{color:#4f545c;border-bottom-color:rgba(185,187,190,.3)}.bda-slist .bda-description{word-break:break-word;max-height:100px;margin:5px 0;padding:5px 0;overflow-y:auto}.theme-dark .bda-slist .bda-description{color:#b9bbbe}.theme-light .bda-slist .bda-description{color:#72767d}.bda-slist .scroller::-webkit-scrollbar-track-piece,.bda-slist .scroller::-webkit-scrollbar-thumb{border-radius:0 !important;border-color:transparent}.bda-slist .bda-footer{font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:space-between;padding-top:5px;border-top:1px solid transparent;overflow:hidden}.theme-dark .bda-slist .bda-footer{border-top-color:rgba(114,118,125,.3)}.theme-light .bda-slist .bda-footer{border-top-color:rgba(185,187,190,.3)}.bda-slist .bda-footer button{background:#7289da;color:#FFF;border-radius:5px;display:block;margin-left:auto;padding:2px 16px;transition:opacity 250ms ease}.bda-slist .bda-footer button:disabled{opacity:.4}.bda-slist .bda-footer a{color:#7289da}.bda-slist .bda-footer a:hover{text-decoration:underline}@keyframes bd-backdrop{to{opacity:.85}}@keyframes bd-modal-wrapper{to{transform:scale(1);opacity:1}}@keyframes bd-backdrop-closing{to{opacity:0}}@keyframes bd-modal-wrapper-closing{to{transform:scale(0.7);opacity:0}}.bd-backdrop{animation:bd-backdrop 250ms ease;animation-fill-mode:forwards;opacity:0;background-color:#000;transform:translateZ(0)}.bd-modal-wrapper.closing .bd-backdrop{animation:bd-backdrop-closing 200ms linear;animation-fill-mode:forwards;animation-delay:50ms;opacity:.85}.bd-modal-wrapper.closing .bd-modal{animation:bd-modal-wrapper-closing 250ms cubic-bezier(0.19,1,0.22,1);animation-fill-mode:forwards;opacity:1;transform:scale(1)}.bd-modal-wrapper .bd-modal{animation:bd-modal-wrapper 250ms cubic-bezier(0.175,0.885,0.32,1.275);animation-fill-mode:forwards;transform:scale(0.7);transform-origin:50% 50%;display:flex;align-items:center;box-sizing:border-box;contain:content;justify-content:center;top:0;left:0;bottom:0;right:0;opacity:0;pointer-events:none;position:absolute;z-index:1000}.bd-modal-wrapper .bd-modal-inner{display:flex;contain:layout;flex-direction:column;pointer-events:auto;border:1px solid rgba(28,36,43,.6);border-radius:5px;box-shadow:0 2px 10px 0 rgba(0,0,0,.2);overflow:hidden;max-height:660px;min-height:200px;width:440px;user-select:text}.bd-modal-wrapper .bd-startup-modal .bd-modal-inner{height:500px;width:700px}.bd-modal-wrapper .header{background-color:#35393e;box-shadow:0 2px 3px 0 rgba(0,0,0,.2);padding:12px 20px;z-index:1;color:#fff;font-size:16px;font-weight:700;line-height:19px}.bd-modal-wrapper .bd-modal-body{background-color:#36393f;color:#fff;flex-direction:row;overflow:hidden;display:flex;flex-direction:column;flex:1;contain:layout;position:relative}.bd-modal-wrapper .scroller{padding:10px}.bd-modal-wrapper .bd-startup-modal .bd-modal-body{padding:0}.bd-modal-wrapper .scroller{overflow-y:auto}.bd-modal-wrapper .footer{display:flex;justify-content:flex-end;padding:10px 20px}.bd-modal-wrapper .footer button{background-color:#7289da;color:#fff;min-height:32px;min-width:60px;align-items:center;border-radius:3px;display:flex;font-size:14px;font-weight:500;justify-content:center;line-height:16px;padding:2px 16px;user-select:none}.bd-modal-wrapper .footer button:hover{background-color:#677bc4}.bd-modal-wrapper .footer button:active{background-color:#5f6fb9}.bd-modal-wrapper .tab-bar-container{align-items:center;border-bottom:0;background:rgba(0,0,0,0.2);box-shadow:0 2px 3px 0 rgba(0,0,0,.1);display:flex;flex-direction:row;justify-content:space-between;margin-bottom:15px}.bd-modal-wrapper .tab-bar.TOP{margin:0;border:0}.bd-modal-wrapper .tab-bar-container .tab-bar-item{margin:0 15px;padding:15px 0;color:#fff !important;opacity:.5;transition:opacity 200ms ease}.bd-modal-wrapper .tab-bar-container .tab-bar-item:hover{border-color:#fff}.bd-modal-wrapper .tab-bar-container .tab-bar-item.selected{opacity:1;border-color:#fff}.bd-modal-wrapper .tab-bar.TOP .tab-bar-item+.tab-bar-item{margin:0}.bd-modal-wrapper .table-header{display:flex;justify-content:space-between;color:#fff;font-weight:700;padding-bottom:10px;margin:3px 15px 0 15px;border-bottom:1px solid #fff;font-size:14px}.bd-modal-wrapper .table-column{width:25%}.bd-modal-wrapper .table-column.column-error{width:50%}.bd-modal-wrapper .table-column{word-wrap:break-word}.bd-modal-wrapper .errors{display:flex;flex-direction:column;padding:0;font-size:14px;padding:0 5px}.bd-modal-wrapper .error{display:flex;color:#fff;border-bottom:1px solid rgba(255,255,255,0.25);padding:15px 0;align-items:center}.bd-modal-wrapper .bd-startup-modal .scroller{padding-top:0}.bd-toasts{position:fixed;display:flex;top:0;flex-direction:column;align-items:center;justify-content:flex-end;pointer-events:none;z-index:4000}@keyframes bd-toast-up{from{transform:translateY(0);opacity:0}}.bd-toast{animation:bd-toast-up 300ms ease;transform:translateY(-10px);background:#36393f;padding:10px;border-radius:5px;box-shadow:0 0 0 1px rgba(32,34,37,.6),0 2px 10px 0 rgba(0,0,0,.2);font-weight:500;color:#fff;user-select:text;font-size:14px;opacity:1;margin-top:10px;pointer-events:none;user-select:none}@keyframes bd-toast-down{to{transform:translateY(0);opacity:0}}.bd-toast.closing{animation:bd-toast-down 200ms ease;animation-fill-mode:forwards;opacity:1;transform:translateY(-10px)}.bd-toast.icon{padding-left:30px;background-size:20px 20px;background-repeat:no-repeat;background-position:6px 50%}.bd-toast.toast-info{background-color:#4a90e2}.bd-toast.toast-info.icon{background-image:url(data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPiAgICA8cGF0aCBkPSJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMSAxNWgtMnYtNmgydjZ6bTAtOGgtMlY3aDJ2MnoiLz48L3N2Zz4=)}.bd-toast.toast-success{background-color:#43b581}.bd-toast.toast-success.icon{background-image:url(data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPiAgICA8cGF0aCBkPSJNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptLTIgMTVsLTUtNSAxLjQxLTEuNDFMMTAgMTQuMTdsNy41OS03LjU5TDE5IDhsLTkgOXoiLz48L3N2Zz4=)}.bd-toast.toast-danger,.bd-toast.toast-error{background-color:#f04747}.bd-toast.toast-danger.icon,.bd-toast.toast-error.icon{background-image:url(data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gICAgPHBhdGggZD0iTTEyIDJDNi40NyAyIDIgNi40NyAyIDEyczQuNDcgMTAgMTAgMTAgMTAtNC40NyAxMC0xMFMxNy41MyAyIDEyIDJ6bTUgMTMuNTlMMTUuNTkgMTcgMTIgMTMuNDEgOC40MSAxNyA3IDE1LjU5IDEwLjU5IDEyIDcgOC40MSA4LjQxIDcgMTIgMTAuNTkgMTUuNTkgNyAxNyA4LjQxIDEzLjQxIDEyIDE3IDE1LjU5eiIvPiAgICA8cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PC9zdmc+)}.bd-toast.toast-warning,.bd-toast.toast-warn{background-color:#ffa600;color:white}.bd-toast.toast-warning.icon,.bd-toast.toast-warn.icon{background-image:url(data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPiAgICA8cGF0aCBkPSJNMSAyMWgyMkwxMiAyIDEgMjF6bTEyLTNoLTJ2LTJoMnYyem0wLTRoLTJ2LTRoMnY0eiIvPjwvc3ZnPg==)}.bd-blue .bd-pfbtn{background:#3a71c1}.bd-blue .bot-tag{background:#3a71c1}.bd-blue .bot-tag.bot-tag-invert{color:#3a71c1 !important}.bd-blue .spinner-wandering-cubes .spinner-item{background-color:#3a71c1}.bd-blue .spinner-chasing-dots .spinner-item{background-color:#3a71c1}.bd-blue .spinner.spinner-spinning-circle .path{stroke:#3a71c1}.bd-blue .note textarea::-moz-selection{background:#3a71c1}.bd-blue .note textarea::selection{background:#3a71c1}.bd-blue .scroller-wrap .scrollbar .thumb:after{background-color:#3a71c1}.bd-blue #autocomplete-popout .empty h4{color:#3a71c1}.bd-blue .user-popout .header{background:#3a71c1 url(/assets/8cd2f31a12333149b89ef3931626ab83.png)}.bd-blue .checkbox .checkbox-inner input[type=checkbox]:checked+span{background-color:#3a71c1;border-color:#3a71c1}.bd-blue .checkbox .checkbox-inner.alt input[type=checkbox]:checked+span:after{border-color:#3a71c1}.bd-blue .download-apps .footer a{color:#3a71c1}.bd-blue .download-apps .platforms .platform.active{border-color:#3a71c1}.bd-blue .download-apps .platforms .platform.active .download-button{background-color:#3a71c1}.bd-blue .radio .radio-inner span:after{background:#3a71c1}.bd-blue .radio:hover span:after{background:#3a71c1}.bd-blue .radio-image .radio-inner span:after{border:2px solid #3a71c1}.bd-blue .radio-image:hover span:after{border-color:#3a71c1}.bd-blue #overlay-wrapper .overlay .guild-panel .guild-panel-header{background-color:#3a71c1}.bd-blue #overlay-wrapper .overlay .guild-panel .btn-call{color:#3a71c1}.bd-blue .overlay-user-popout .user-popout-options .btn{background-color:#3a71c1}.bd-blue .clipboard-input-inner input::-moz-selection{background:#3a71c1}.bd-blue .clipboard-input-inner input::selection{background:#3a71c1}.bd-blue .btn-help:hover{background:#3a71c1}.bd-blue .popout-3sVMXz.popoutLeft-30WmrD header:before{border-left-color:#3a71c1}.bd-blue .popout-3sVMXz.popout-right header:before{border-right-color:#3a71c1}.bd-blue .popout-3sVMXz.popoutBottom-1YbShG header:before{border-bottom-color:#3a71c1}.bd-blue .popout-3sVMXz.popoutInvert-3UdKhn:not(.popoutBottom-1YbShG).popoutTop-3uu9vG header:before{border-top-color:#3a71c1}.bd-blue .guild-channels .channel-text.selected:before{border-left:2px solid #3a71c1}.bd-blue .guild-channels .channel-text:hover:not(.unread):before{border-left:2px solid #3a71c1}.bd-blue .guild-channels .channel-text.unread:not(.selected):not(.channel-muted).selected:before{background-color:#3a71c1}.bd-blue .guild-channels .channel-voice-states li.speaking .avatar-small{background-color:#3a71c1}.bd-blue .tooltip{background-color:#3a71c1}.bd-blue .tooltip.tooltip-top:after{border-top-color:#3a71c1}.bd-blue .tooltip.tooltip-bottom:after{border-bottom-color:#3a71c1}.bd-blue .tooltip.tooltip-left:after{border-left-color:#3a71c1}.bd-blue .tooltip.tooltip-right:after{border-right-color:#3a71c1}.bd-blue .button{background-color:#3a71c1}.bd-blue .tutorial-popout .button-area .skip-tips a{color:#3a71c1}.bd-blue .chat .has-more button{color:#3a71c1}.bd-blue .chat .new-messages-bar:hover{background-color:#3a71c1}.bd-blue .message-group .edit-message .edit-operation>a{color:#3a71c1}.bd-blue .message-group .edit-message .channel-textarea-inner{border-color:#3a71c1}.bd-blue .mention{color:#3a71c1}.bd-blue .mention:hover{background-color:#3a71c1}.bd-blue .mentioned .mention:hover{color:#3a71c1}.bd-blue .markdown-modal .markdown-modal-header b{color:#3a71c1}.bd-blue .change-log .changelog-fixed{background-color:#3a71c1}.bd-blue .change-log .changelog-button .cta{background-color:#3a71c1}.bd-blue .form .form-header{color:#3a71c1}.bd-blue .form header{color:#3a71c1}.bd-blue .form .control-group textarea:focus{border-bottom:2px solid #3a71c1}.bd-blue .form .btn-primary{background-color:#3a71c1}.bd-blue .region-select button{color:#3a71c1}.bd-blue .region-select:hover button{border-color:#3a71c1}.bd-blue .region-select:hover button{background-color:#3a71c1}.bd-blue .region-select-flag{background-color:#3a71c1}.bd-blue .region-select-flag.vip:after{background:#3a71c1}.bd-blue .region-select-modal .region-select-modal-header{color:#3a71c1}.bd-blue .region-select-modal .region-select-modal-option:hover{border-color:#3a71c1}.bd-blue .upload-drop-modal .bgScale{background:#3a71c1}.bd-blue .upload-modal{background-color:#3a71c1}.bd-blue .upload-modal .inner .file .icon.image{border:2px solid #3a71c1}.bd-blue .avatar-uploader-inner{background-color:#3a71c1}.bd-blue .create-guild-container h5{color:#3a71c1}.bd-blue .create-guild-container .join-server .sample-link{color:#3a71c1}.bd-blue .create-guild-container .action.create .action-header{color:#3a71c1}.bd-blue .tab-bar.TOP .tab-bar-item.selected{border-bottom:2px solid #3a71c1;color:#3a71c1}.bd-blue .tab-bar.SIDE .tab-bar-item:before{border-left:4px solid #3a71c1}.bd-blue .color-picker-popout input:focus{border-color:#3a71c1}.bd-blue #settings-roles .roles li.selected:before{color:#3a71c1;background-color:#3a71c1}.bd-blue #settings-roles .roles li.sorting:after{border:2px solid #3a71c1}.bd-blue .guild-settings-modal-overview a{color:#3a71c1}.bd-blue .need-help-modal .header{background-color:#3a71c1}.bd-blue .search-popout .date-picker .date-picker-hint .hint-value{background-color:#3a71c1}.bd-blue .react-datepicker .react-datepicker__day:hover{background-color:#3a71c1}.bd-blue .react-datepicker .react-datepicker__day.react-datepicker__day--today:after{background-color:#3a71c1}.bd-blue .messages-popout-wrap .has-more button{color:#3a71c1}.bd-blue .btn-filled{background-color:#3a71c1}.bd-blue .btn-filled.white{color:#3a71c1}.bd-blue .emoji-picker .premium-promo .btn{background-color:#3a71c1}.bd-blue .emojiPicker-3m1S-j .premium-promo .btn{background-color:#3a71c1}.bd-blue .channel-textarea.has-results .channel-textarea-inner{border-color:#3a71c1}.bd-blue .channel-textarea-autocomplete-inner{border:2px solid #3a71c1}.bd-blue .channel-textarea-autocomplete-inner header{background-color:#3a71c1}.bd-blue .channel-textarea-autocomplete-inner ul.images li.active{border-color:#3a71c1}.bd-blue .reaction.reaction-me .reaction-count{color:#3a71c1}.bd-blue .theme-dark .reaction.reaction-me .reaction-count{color:#3a71c1}.bd-blue .spinner-wandering-cubes .ui-spinner-item{background-color:#3a71c1}.bd-blue .spinner-chasing-dots .ui-spinner-item{background-color:#3a71c1}.bd-blue .theme-light .ui-spinner.spinner-spinning-circle .path{stroke:#3a71c1}.bd-blue .theme-dark .ui-spinner.spinner-spinning-circle .path{stroke:#3a71c1}.bd-blue .theme-dark .ui-spinner.spinner-spinning-circle .path-2{stroke:#3a71c1}.bd-blue .ui-button.brand.filled{background-color:#3a71c1}.bd-blue .ui-button.brand.filled:disabled{background-color:#3a71c1}.bd-blue .ui-button.brand.inverted{color:#3a71c1}.bd-blue .ui-button.brand.outlined{color:#3a71c1}.bd-blue .ui-button.brand.outlined:active{background-color:#3a71c1;border-color:#3a71c1}.bd-blue .ui-button.brand.outlined:disabled{color:#3a71c1}.bd-blue .ui-button.brand.link{color:#3a71c1}.bd-blue .ui-button.brand.link:not(:disabled):hover .ui-button-contents{background-image:-webkit-linear-gradient(bottom,transparent,transparent 1px,#3a71c1 0,#3a71c1 2px,transparent 0);background-image:linear-gradient(to top,transparent,transparent 1px,#3a71c1 1px,#3a71c1 2px,transparent 2px)}.bd-blue .ui-button.brand.ghost{color:#3a71c1}.bd-blue .ui-button.brand .ui-spinner-item{background-color:#3a71c1}.bd-blue .theme-blurple .ui-button.primary.filled{color:#3a71c1}.bd-blue .theme-blurple .ui-form-title.h5{color:#3a71c1}.bd-blue .btn-filled{background-color:#3a71c1}.bd-blue .btn-filled.white{color:#3a71c1}.bd-blue .progress .progress-bar{background-color:#3a71c1}.bd-blue .radio-theme input[type=radio]:checked~label{border-color:#3a71c1}.bd-blue .now-playing{background:#3a71c1}.bd-blue .user-settings-modal-account .discord-tag{color:#3a71c1}.bd-blue .modal-new-user>.steps .step-3 .instant-invite input{color:#3a71c1}.bd-blue .modal-new-user h5{color:#3a71c1}.bd-blue .modal-new-user .steps-wrap .steps li.on:before{background-color:#3a71c1}.bd-blue .modal-new-user .steps-wrap .steps li.active{background-color:#3a71c1}.bd-blue .ui-tab-bar.SIDE .ui-tab-bar-item.selected{background-color:#3a71c1}.bd-blue .ui-tab-bar.SIDE .ui-tab-bar-item:active{background-color:#3a71c1}.bd-blue .ui-tab-bar.SIDE .ui-tab-bar-item.brand{color:#3a71c1}.bd-blue .theme-light .ui-text-input .input:focus{border-color:#3a71c1}.bd-blue .theme-dark .ui-text-input .input:focus{border-color:#3a71c1}.bd-blue .theme-blurple .ui-text-input .input{color:#3a71c1}.bd-blue .theme-blurple .ui-text-input .input:hover{border-color:#3a71c1}.bd-blue .theme-blurple .ui-select:hover .Select .Select-control{border-color:#3a71c1}.bd-blue .theme-blurple .ui-select:hover .Select .Select-control .Select-arrow{border-color:#3a71c1 transparent transparent}.bd-blue .theme-blurple .ui-select .Select.is-open .Select-control{border-color:#3a71c1}.bd-blue .theme-blurple .ui-select .Select-menu-outer{border-color:#3a71c1}.bd-blue .theme-blurple .ui-select .Select-menu-outer .Select-option{color:#3a71c1}.bd-blue .theme-blurple .ui-select .Select-value-label{color:#3a71c1}.bd-blue .ui-card-brand{background:#3a71c1;border-color:#3a71c1}.bd-blue .ui-checkbox-wrapper .ui-checkbox.checked polyline{stroke:#3a71c1}.bd-blue .ui-checkbox-wrapper .ui-checkbox.checked.inverted{background:#3a71c1}.bd-blue .ui-region-flag.vip:after{background:#3a71c1}.bd-blue .ui-scroller-wrap .scrollbar .thumb:after{background-color:#3a71c1}.bd-blue .ui-quick-select-popout-option .ui-icon-check-mark .ui-icon-fg{stroke:#3a71c1}.bd-blue .ui-switch-checkbox:checked+.ui-switch{background:#3a71c1}.bd-blue #instant-invite-modal .clipboard-input-inner input{color:#3a71c1}.bd-blue #instant-invite-modal .copy{background-color:#3a71c1}.bd-blue .color-brand{color:#3a71c1}.bd-blue .webkhook-modal-header.ui-form-title.h5{color:#3a71c1}.bd-blue .ui-bot-tag{background:#3a71c1}.bd-blue .ui-bot-tag.invert{color:#3a71c1}.bd-blue #user-profile-modal .btn{background-color:#3a71c1}.bd-blue #user-profile-modal .guilds .avatar-large{background-color:#3a71c1}.bd-blue .premium-payment-modal{background-color:#3a71c1}.bd-blue .premium-payment-modal .premium-payment-button{color:#3a71c1}.bd-blue .premium-payment-modal .premium-payment-button .spinner .spinner-item{background-color:#3a71c1}.bd-blue .invite-modal .avatar-xxxlarge{background-color:#3a71c1}.bd-blue .ui-screenshare-modal-tile .image-container img.selected{border-color:#3a71c1}.bd-blue .detected-platform-accounts-modal .btn-group .btn-primary{background-color:#3a71c1}.bd-blue .ui-new-terms-modal .title{color:#3a71c1}.bd-blue #oauth2-authorize .authorize-inner header{background:#3a71c1}.bd-blue #oauth2-authorize .authorize-inner footer button.primary{background:#3a71c1}.bd-blue #oauth2-authorize .select select:focus{border-color:#3a71c1}.bd-blue #oauth2-authorize .select.focus:after{border-top-color:#3a71c1}.bd-blue #oauth2-authorize .scope-bot .avatar-large{background-color:#3a71c1}.bd-blue .invite-header .invite-guild-icon{background-color:#3a71c1}.bd-blue .invite-marketing .invite-marketing-header{color:#3a71c1}.bd-blue .invite-marketing .invite-marketing-button{color:#3a71c1;border:2px solid #3a71c1}.bd-blue .invite-mobile .top{background-color:#3a71c1}.bd-blue .invite-mobile .link.purple{background-color:#3a71c1}.bd-blue .verify-connected-account .btn{background-color:#3a71c1}.bd-blue #unsupported-browser li:hover{border-color:#3a71c1}.bd-blue #unsupported-browser li:hover .btn{background-color:#3a71c1;border-color:#3a71c1}.bd-blue .ui-slider .slider-bar-fill{background:#3a71c1}.bd-blue .popout-menu .popout-menu-item.invite{color:#3a71c1}.bd-blue .channel-members .invite-btn{background-color:#3a71c1}.bd-blue .chat .welcome-message h1{color:#3a71c1}.bd-blue .channel-textarea-guard button{background-color:#3a71c1}.bd-blue .private-channel-recipients-invite .footer button{background-color:#3a71c1}.bd-blue .private-channel-recipients-invite .footer button:disabled:hover{background-color:#3a71c1}.bd-blue .private-channel-recipients-invite .error-state.not-friends .btn{background:#3a71c1}.bd-blue .ui-call-avatar-border.voice.video.selected{box-shadow:inset 0 0 0 2px #3a71c1}.bd-blue .ui-call-avatar-border.video.selected:not(.speaking){box-shadow:inset 0 0 0 2px #3a71c1}.bd-blue .invite-banner{background-color:#3a71c1}.bd-blue .invite-banner .instant-invite:not(.clipboard-input-copied) .clipboard-input-inner button{color:#3a71c1}.bd-blue .invite-banner.invite-banner-1 .instant-invite .clipboard-input-inner button:before{background:-webkit-linear-gradient(left,hsla(0,0%,100%,0),#3a71c1);background:linear-gradient(to right,hsla(0,0%,100%,0),#3a71c1)}.bd-blue .add-friend-input-wrapper .btn:disabled{background-color:#3a71c1}.bd-blue #friends .btn{background-color:#3a71c1}.bd-blue #friends .friends-header .tab-bar .tab-bar-item.tab-bar-item-primary{background-color:#3a71c1}.bd-blue #friends .friends-header .tab-bar .tab-bar-item.tab-bar-item-primary .badge{color:#3a71c1}.bd-blue #friends .friends-table .friends-row .friends-column-guilds .avatar-small{background-color:#3a71c1}.bd-blue .theme-dark #friends .friends-header .tab-bar .tab-bar-item.selected .badge{background-color:#3a71c1}.bd-blue .theme-dark #friends .friends-header .tab-bar .tab-bar-item.tab-bar-item-primary{background-color:#3a71c1}.bd-blue .theme-dark #friends .friends-header .tab-bar .tab-bar-item.tab-bar-item-primary .badge{color:#3a71c1}.bd-blue .theme-dark #friends .friends-header .tab-bar .tab-bar-item.tab-bar-item-primary.selected{color:#3a71c1;background-color:#fff}.bd-blue .theme-dark #friends .friends-header .tab-bar .tab-bar-item.tab-bar-item-primary.selected .badge{background-color:#3a71c1}.bd-blue .private-channels .search-result:hover:before{border-left:2px solid #3a71c1}.bd-blue .private-channels .channel.selected .icon-friends{background-color:#3a71c1}.bd-blue .private-channels .channel.selected:before{border-left:2px solid #3a71c1}.bd-blue #rtc-debug-modal #users-section .user-list li.selected:before{color:#3a71c1;background-color:#3a71c1}.bd-blue .notice.notice-brand{background-color:#3a71c1}.bd-blue .notice.notice-brand .btn:hover{color:#3a71c1}.bd-blue .theme-light .ui-text-input .input:focus{border-color:#3a71c1}.bd-blue .theme-dark .ui-text-input .input:focus{border-color:#3a71c1}.bd-blue .theme-blurple .ui-text-input .input{color:#3a71c1}.bd-blue .theme-blurple .ui-text-input .input:hover{border-color:#3a71c1}.bd-blue .onboarding-slide textarea:focus{box-shadow:0 2px 0 #3a71c1}.bd-blue .nuf-page .button.filled{background-color:#3a71c1}.bd-blue .onboarding-navigation .button{color:#3a71c1}.bd-blue .onboarding-navigation .step-status .step.current{background-color:#3a71c1}.bd-blue .onboarding-slide textarea:focus{box-shadow:0 2px 0 #3a71c1}.bd-blue .nuf-page .button.filled{background-color:#3a71c1}.bd-blue .onboarding-slide textarea:focus{box-shadow:0 2px 0 #3a71c1}.bd-blue .nuf-page .button.filled{background-color:#3a71c1}.bd-blue .onboarding-slide textarea:focus{box-shadow:0 2px 0 #3a71c1}.bd-blue .nuf-page .button.filled{background-color:#3a71c1}.bd-blue .onboarding-slide textarea:focus{box-shadow:0 2px 0 #3a71c1}.bd-blue .nuf-page .button.filled{background-color:#3a71c1}.bd-blue .onboarding-slide textarea:focus{box-shadow:0 2px 0 #3a71c1}.bd-blue .nuf-page .button.filled{background-color:#3a71c1}.bd-blue .onboarding-slide textarea:focus{box-shadow:0 2px 0 #3a71c1}.bd-blue .nuf-page .button.filled{background-color:#3a71c1}.bd-blue .onboarding-slide.mic-test .content.waiting .button{color:#3a71c1}.bd-blue .onboarding-slide textarea:focus{box-shadow:0 2px 0 #3a71c1}.bd-blue .nuf-page .button.filled{background-color:#3a71c1}.bd-blue .onboarding-slide textarea:focus{box-shadow:0 2px 0 #3a71c1}.bd-blue .nuf-page .button.filled{background-color:#3a71c1}.bd-blue .onboarding-slide textarea:focus{box-shadow:0 2px 0 #3a71c1}.bd-blue .nuf-page .button.filled{background-color:#3a71c1}.bd-blue .ui-switch-wrapper:not(.disabled):not(.clear):hover .ui-switch-checkbox:checked+.ui-switch{background:#3f79ce}.bd-blue *[style*="border-color: rgb(114, 137, 218)"]{border-color:#3a71c1 !important}.bd-blue *[style*="background-color: rgb(114, 137, 218)"]{background-color:#3a71c1 !important}.bd-blue .bda-slist .bda-footer button{background-color:#3a71c1}.bd-blue .bda-slist .bda-footer a{color:#3a71c1}.bd-blue .bd-modal-wrapper .footer button{background-color:#3a71c1}.bd-blue .bd-modal-wrapper .footer button:hover{background-color:#356bbb}.bd-blue .bd-modal-wrapper .footer button:active{background-color:#2a61b1} \ No newline at end of file diff --git a/data/serverlist.json b/data/serverlist.json deleted file mode 100644 index 4aa01ca3..00000000 --- a/data/serverlist.json +++ /dev/null @@ -1 +0,0 @@ -{ "servers": { } } \ No newline at end of file diff --git a/data/serverlist_archive.json b/data/serverlist_archive.json deleted file mode 100644 index 833bfc2a..00000000 --- a/data/serverlist_archive.json +++ /dev/null @@ -1,1040 +0,0 @@ -{ - "servers": { - "BetterDiscord": { - "code": "0Tmfo5ZbORCRqbAd", - "description": "BetterDiscord Server", - "icon": null, - "language": "EN", - "title": "BetterDiscord" - }, - "3DS": { - "code": "0UFdpe0x69ZguQw8", - "description": "3DS", - "icon": null, - "language": "EN", - "title": "3DS" - }, - "4chan": { - "code": "0jTw4blvTy1p64eL", - "description": "4chan Discord", - "icon": null, - "language": "EN", - "title": "4chan" - }, - "American truck simulator multiplayer": { - "code": "0dFHyDoIgbSUXSpX", - "description": "a gamming server that allows 18+ content and plays ats mp", - "icon": null, - "language": "EN", - "title": "American Truck Simulator" - }, - "a RinkuTalk's chat for ALL gamers": { - "code": "0c2ds5wYPS0qMqF5", - "description": "A new community for ALL gamers", - "icon": null, - "language": "EN", - "title": "a RinkuTalk's chat for ALL gamers" - }, - "Bacon_Space": { - "code": "0X6sQJODTVdEYwL0", - "description": "The official Server For Bacon_Space", - "icon": null, - "language": "EN", - "title": "Bacon_Space" - }, - "Black Desert Online": { - "code": "0hpSA0xzUj07ABop", - "description": "BDO", - "icon": null, - "language": "EN", - "title": "Black Desert Online" - }, - "ALTEDM": { - "code": "0Y6Is461Ze5ae0w1", - "description": "ALTEDM", - "icon": null, - "language": "EN", - "title": "ALTEDM" - }, - "ARMA": { - "code": "0aGPuCZqmGNA7xiu", - "description": "ARMA", - "icon": null, - "language": "EN", - "title": "ARMA" - }, - "Abusement Park": { - "code": "0YEnlwRYgAEvNz98", - "description": "Abusement Park", - "icon": null, - "language": "EN", - "title": "Abusement Park" - }, - "Adventurer's Guild": { - "code": "0MRCBg85iz6XrZu2", - "description": "Adventurer's Guild", - "icon": null, - "language": "EN", - "title": "Adventurer's Guild" - }, - "Animu and Mango": { - "code": "0TrxVUwZsSuz9S4j", - "description": "Animu and Mango", - "icon": null, - "language": "EN", - "title": "Animu and Mango" - }, - "Anime-Discuss": { - "code": "0ccNdvWBCEuw87eD", - "description": "Anime-Discuss", - "icon": null, - "language": "EN", - "title": "Anime-Discuss" - }, - "Anime Discord": { - "code": "0jsnS27eGHesxVRA", - "description": "General Anime Server", - "icon": null, - "language": "EN", - "title": "Anime Discord" - }, - "Binding of Isaac": { - "code": "0gonaBVBNISU8zhS", - "description": "For all Isaac talk", - "icon": null, - "language": "EN", - "title": "Binding of Isaac" - }, - "Blade and Soul": { - "code": "0TaItTx9qrQce4iU", - "description": "Blade and Soul", - "icon": null, - "language": "EN", - "title": "Blade and Soul" - }, - "Blade Symphony": { - "code": "0gaDaXebgoD4CJ3a", - "description": "Blade Symphony", - "icon": null, - "language": "EN", - "title": "Blade Symphony" - }, - "BloodBorne": { - "code": "0rWbfWTmpUVHaC9Z", - "description": "BloodBorne", - "icon": null, - "language": "EN", - "title": "BloodBorne" - }, - "Borderlands": { - "code": "0mxtC2FGDw7JkCyb", - "description": "Everything Borderlands", - "icon": null, - "language": "EN", - "title": "Borderlands" - }, - "Cell Geek House": { - "code": "0eMZO3uY2Gk15xD7", - "description": "Cell Geek House / Cell Cyber Arena", - "icon": null, - "language": "EN", - "title": "Cell Geek House" - }, - "CS:GO": { - "code": "0TIJM4joeU3XmRWO", - "description": "CS:GO", - "icon": null, - "language": "EN", - "title": "CS:GO" - }, - "ChristOutreachOnline": { - "code": "0aFmfZpsrBo0bD1d", - "description": "ChristOutreachOnline", - "icon": null, - "language": "EN", - "title": "ChristOutreachOnline" - }, - "Closers Dimension Conflict": { - "code": "0S3aWQEkIlWcA2CD", - "description": "Closers Dimension Conflict", - "icon": null, - "language": "EN", - "title": "Closers Dimension Conflict" - }, - "Comic Book General": { - "code": "0aNAiNnGVDNURGbI", - "description": "Comic Book General", - "icon": null, - "language": "EN", - "title": "Comic Book General" - }, - "Crowfall MMO": { - "code": "0MDCm6IEmg1BF8Ui", - "description": "Crowfall MMO", - "icon": null, - "language": "EN", - "title": "Crowfall MMO" - }, - "Dark souls": { - "code": "0rmIDReRI5pRvVwL", - "description": "Souls games in general", - "icon": null, - "language": "EN", - "title": "Dark souls" - }, - "Don't Panic Gaming": { - "code": "0bXgOt3dBY4skhqx", - "description": "Community for Esports, Competitive, Co-Op, & MMO games. Everyone is welcome!", - "icon": null, - "language": "EN", - "title": "Don't Panic Gaming" - }, - "DOTA2": { - "code": "0Pj5D1QKnYAR4GQ7", - "description": "DOTA 2", - "icon": null, - "language": "EN", - "title": "DOTA 2" - }, - "DUTCH": { - "code": "0Vb7szHL7DblhTFt", - "description": "[NL] FPS/MOBA", - "icon": null, - "language": "NL", - "title": "DUTCH" - }, - "Devilion MMO": { - "code": "0Mgy9tqnN39ctFsm", - "description": "Devilion MMO", - "icon": null, - "language": "EN", - "title": "Devilion MMO" - }, - "Diablo 3": { - "code": "0aOBBxGmOoM5IJ25", - "description": "Diablo 3", - "icon": null, - "language": "EN", - "title": "Diablo 3" - }, - "Diablo": { - "code": "0TAtzhBDJhJiC9Ie", - "description": "Diablo", - "icon": null, - "language": "EN", - "title": "Diablo" - }, - "Discord & Chill": { - "code": "0kXd4CnI26mZzkun", - "description": "Discord & Chill", - "icon": null, - "language": "EN", - "title": "Discord & Chill" - }, - "DiscordDevs": { - "code": "0ESuwoZe4M2Xcpeu", - "description": "DiscordDevs", - "icon": null, - "language": "EN", - "title": "DiscordDevs" - }, - "DiscordLinux": { - "code": "0XKEBLSe6ccP5uYT", - "description": "DiscordLinux", - "icon": null, - "language": "EN", - "title": "DiscordLinux" - }, - "Distance": { - "code": "0SlqqvzfIbgVqJB6", - "description": "Distance", - "icon": null, - "language": "EN", - "title": "Distance" - }, - "Dofus": { - "code": "0RDH0dqUoTRFbwy9", - "description": "Dofus", - "icon": null, - "language": "EN", - "title": "Dofus" - }, - "Dragon Nest DNSWorld": { - "code": "0VcwAnzwc0KNfgML", - "description": "Dragon Nest DNSWorld", - "icon": null, - "language": "EN", - "title": "Dragon Nest DNSWorld" - }, - "Dragon Nest NA": { - "code": "0aoJVkoXoNwFEUea", - "description": "Dragon Nest NA", - "icon": null, - "language": "EN", - "title": "Dragon Nest NA" - }, - "E-Sports India": { - "code": "0YlFAx7vf5bUixZQ", - "description": "E-Sports India", - "icon": null, - "language": "EN", - "title": "E-Sports India" - }, - "ElDewrito": { - "code": "0TKY0SDEUHBum0w3", - "description": "Halo Online ElDewrito", - "icon": null, - "language": "EN", - "title": "ElDewrito" - }, - "Elite Dangerous": { - "code": "0V5hfT4eO8fN9Q6K", - "description": "Elite Dangerous", - "icon": null, - "language": "EN", - "title": "Elite Dangerous" - }, - "Enter The Gungeon": { - "code": "0ryTXuSfkjkPnJzG", - "description": "The Official Enter The Gungeon Discord server!", - "icon": null, - "language": "EN", - "title": "Enter The Gungeon" - }, - "Evolve": { - "code": "0UqXI9nyH0aVU7rr", - "description": "Evolve", - "icon": null, - "language": "EN", - "title": "Evolve" - }, - "FIFA": { - "code": "0npfNGZdJzQwQWfH", - "description": "FIFA Community", - "icon": null, - "language": "EN", - "title": "FIFA" - }, - "FFXIV (chaos)XIV Cerberus": { - "code": "0ZxYbZOJBFGPHFCA", - "description": "FFXIV (chaos)XIV Cerberus", - "icon": null, - "language": "EN", - "title": "FFXIV (chaos)XIV Cerberus" - }, - "FFXIV - Adamantoise": { - "code": "0a7yOKD02XGkhkX1", - "description": "FFXIV - Adamantoise", - "icon": null, - "language": "EN", - "title": "FFXIV - Adamantoise" - }, - "FFXIV - Leviathan": { - "code": "0aBJkEDJGsBMDNON", - "description": "FFXIV - Leviathan", - "icon": null, - "language": "EN", - "title": "FFXIV - Leviathan" - }, - "FFXIV - Odin": { - "code": "0aBuERD9ZVV8BFqq", - "description": "FFXIV - Odin", - "icon": null, - "language": "EN", - "title": "FFXIV - Odin" - }, - "FFXIV - Siren": { - "code": "0MZiEDmQueFAGTmV", - "description": "FFXIV - Siren", - "icon": null, - "language": "EN", - "title": "FFXIV - Siren" - }, - "FFXIV - Ultros": { - "code": "0alCJcRuekEnn3Ha", - "description": "FFXIV - Ultros", - "icon": null, - "language": "EN", - "title": "FFXIV - Ultros" - }, - "FFXIV Heavensward": { - "code": "0HCCgO4RbqVjgShp", - "description": "FFXIV Heavensward", - "icon": null, - "language": "EN", - "title": "FFXIV Heavensward" - }, - "Fuckboii squad #1": { - "code": "0V2bHFWgHEZt0GsE", - "description": "Fuckboii squad #1", - "icon": null, - "language": "EN", - "title": "Fuckboii squad #1" - }, - "Fucking with Tay": { - "code": "0vY6JKyk35uHI0yE", - "description": "Dumb robots.", - "icon": null, - "language": "EN", - "title": "Fucking with Tay" - }, - "Games are Magic": { - "code": "0THXqgmFNlha7B6g", - "description": "Games are Magic", - "icon": null, - "language": "EN", - "title": "Games are Magic" - }, - "GamerLust": { - "code": "0cvtNUFEng8cC0M5", - "description": "SG-based Gaming Group for Asia", - "icon": null, - "language": "EN", - "title": "GamerLust" - }, - "General General": { - "code": "0qZKIRAMiW6SCVyH", - "description": "Just chill people playing games and talking", - "icon": null, - "language": "EN", - "title": "General General" - }, - "Guild Wars 2": { - "code": "0b5yVCmhcVt4C6mr", - "description": "Guild Wars 2", - "icon": null, - "language": "EN", - "title": "Guild Wars 2" - }, - "Hearthstone": { - "code": "0TwrUZr5zGyFd7HX", - "description": "Hearthstone", - "icon": null, - "language": "EN", - "title": "Hearthstone" - }, - "Heroes of the Storm": { - "code": "0SLRrvrOn5DdcrHU", - "description": "Heroes of the Storm", - "icon": null, - "language": "EN", - "title": "Heores of the Storm" - }, - "Highschool DxD": { - "code": "0guT1EI9HilMr4dg", - "description": "Highschool DxD", - "icon": null, - "language": "EN", - "title": "Highschool DxD" - }, - "Hip Slick & Geek": { - "code": "0Uk8GIZtbNLEbhaP", - "description": "Hip Slick & Geek", - "icon": null, - "language": "EN", - "title": "Hip Slick & Geek" - }, - "HiT KiLL": { - "code": "0fKc5put2GOk7Ha1", - "description": "Clã Profissional Brasileiro", - "icon": null, - "language": "BR", - "title": "HiT KiLL" - }, - "Insurgency": { - "code": "0YOLsfWWZSvS0jHe", - "description": "Insurgency", - "icon": null, - "language": "EN", - "title": "Insurgency" - }, - "Japanese Media Management": { - "code": "0XKJW7TObKLajoKc", - "description": "Japanese Media Management", - "icon": null, - "language": "EN", - "title": "Japanese Media Management" - }, - "Kantai Collection": { - "code": "0eyxqn2G56wtSSlx", - "description": "Kantai Collection", - "icon": null, - "language": "EN", - "title": "Kantai Collection" - }, - "KappaPride": { - "code": "0ijf4nNsflGI8zYR", - "description": "#Kappa", - "icon": null, - "language": "EN", - "title": "KappaPride" - }, - "Keep Talking and Nobody Explodes": { - "code": "0mq6FkTuEuF2i7Gc", - "description": "Don't Explode!", - "icon": null, - "language": "EN", - "title": "Keep Talking and Nobody Explodes" - }, - "Killing Floor 2": { - "code": "0YmeWp0IqRUndLXx", - "description": "Killing Floor 2", - "icon": null, - "language": "EN", - "title": "Killing Floor 2" - }, - "Kiri's Bubble": { - "code": "0pnEgYqTNP4MlRam", - "description": "Anime, games & weebyness!", - "icon": null, - "language": "EN", - "title": "Kiri's Bubble" - }, - "LeagueConnect": { - "code": "0rZblC446P2ivDcq", - "description": "/r/leagueconnect ~ Find summoners to play with!", - "icon": null, - "language": "EN", - "title": "LeagueConnect" - }, - "League of Legends": { - "code": "0T8zCRzGTxbLjlhw", - "description": "League of Legends", - "icon": null, - "language": "EN", - "title": "League of Legends" - }, - "Left 4 Dead 2": { - "code": "0YmpIAl4WCls4SLK", - "description": "Left 4 Dead 2", - "icon": null, - "language": "EN", - "title": "Left 4 Dead 2" - }, - "Let's Play": { - "code": "0jPHFPiVA2lxKFvN", - "description": "For all kind of Let's Players and viewers.", - "icon": null, - "language": "ALL", - "title": "Let's Play" - }, - "Lost Saga": { - "code": "0XVkwnDAeKgT2Cbv", - "description": "Lost Saga", - "icon": null, - "language": "EN", - "title": "Lost Saga" - }, - "Mario Kart": { - "code": "0TtGzmNdU5ZxCkgv", - "description": "Mario Kart", - "icon": null, - "language": "EN", - "title": "Mario Kart" - }, - "Meebo and Friends": { - "code": "0ZP2BxUIC1eQSp4K", - "description": "Meebo and Friends", - "icon": null, - "language": "EN", - "title": "Meebo and Friends" - }, - "Minecraft": { - "code": "0VAzP14IRxYaC97V", - "description": "Minecraft", - "icon": null, - "language": "EN", - "title": "Minecraft" - }, - "MovieClub": { - "code": "0Tx4H0SMzT5Qv46T", - "description": "MovieClub", - "icon": null, - "language": "EN", - "title": "MovieClub" - }, - "NadekoLog": { - "code": "0ehQwTK2RBjAxzEY", - "description": "Server for NadekoBot", - "icon": null, - "language": "EN", - "title": "NadekoLog" - }, - "NerdChat": { - "code": "0Z83mQOMvdEpNbBg", - "description": "NerdChat", - "icon": null, - "language": "EN", - "title": "NerdChat" - }, - "Osu!": { - "code": "0Y1676AR4QQfPn4x", - "description": "Osu!", - "icon": null, - "language": "EN", - "title": "Osu!" - }, - "Overwatch": { - "code": "0aP2XiSkO7ekjro4", - "description": "Overwatch", - "icon": null, - "language": "EN", - "title": "Overwatch" - }, - "PKA/Painkiller": { - "code": "0Ud6KT05Ly2NMd3f", - "description": "PKA/Painkiller", - "icon": null, - "language": "EN", - "title": "PKA/Painkiller" - }, - "PSO": { - "code": "0tj67PFj37QfKumq", - "description": "Discord Server for Phantasy Star Online.", - "icon": null, - "language": "EN", - "title": "PSO" - }, - "PSO2": { - "code": "0tj67PFj37QfKumq", - "description": "Discord Server for Phantasy Star Online 2.", - "icon": null, - "language": "EN", - "title": "PSO2" - }, - "PORTUGUESE": { - "code": "", - "description": "PORTUGUESE", - "icon": null, - "language": "PT", - "title": "PORTUGUESE" - }, - "Path of Exile": { - "code": "0aPhfOWXrsfz4wk2", - "description": "Path of Exile", - "icon": null, - "language": "EN", - "title": "Path of Exile" - }, - "Project Zomboid": { - "code": "0OjlJ7zhCLhDTCti", - "description": "Project Zomboid", - "icon": null, - "language": "EN", - "title": "Project Zomboid" - }, - "R6:Siege Community": { - "code": "0eyCK2wAW2LziLem", - "description": "Rainbow 6: Siege Community", - "icon": null, - "language": "EN", - "title": "R6: Siege Community" - }, - "Ragnarok Online": { - "code": "0hr7izZb0BhnyN8L", - "description": "Ragnarok Online", - "icon": null, - "language": "EN", - "title": "Ragnarok Online" - }, - "Reflex": { - "code": "0SrnNbgr3f6Mz9kt", - "description": "Reflex", - "icon": null, - "language": "EN", - "title": "Reflex" - }, - "Rampage Knights": { - "code": "0q1Yv1bYDsRYK3TH", - "description": "Rampage Knights", - "icon": null, - "language": "EN", - "title": "Rampage Knights" - }, - "RepZ": { - "code": "0gAFLYLhoOvyeqBA", - "description": "RepZ Clan Discord Server", - "icon": null, - "language": "EN", - "title": "RepZ" - }, - "Rhythm Games Community": { - "code": "0SrIUyiiarDafGL2", - "description": "Rhythm Games Community", - "icon": null, - "language": "EN", - "title": "Rhythm Games Community" - }, - "Rising Thunder": { - "code": "0WTdWwnuayUuFQYH", - "description": "Rising Thunder", - "icon": null, - "language": "EN", - "title": "Rising Thunder" - }, - "Rocket League": { - "code": "0TDkiRRfZwNBNfA5", - "description": "Rocket League", - "icon": null, - "language": "EN", - "title": "Rocket League" - }, - "SWEDISH": { - "code": "0VnT8iwVFHLNARyZ", - "description": "SWEDISH", - "icon": null, - "language": "SWE", - "title": "SWEDISH" - }, - "Secrets of Grindea": { - "code": "0OKNQ4xrrE0PRQQM", - "description": "Secrets of Grindea", - "icon": null, - "language": "EN", - "title": "Secrets of Grindea" - }, - "Smash Brothers /r/ssbm": { - "code": "0Xeas8JqXwdpX0lR", - "description": "Smash Brothers /r/ssbm", - "icon": null, - "language": "EN", - "title": "Smash Brothers" - }, - "Smash Brothers": { - "code": "0PAW8nxQx9UbYVTq", - "description": "Smash Brothers - Australian Smash", - "icon": null, - "language": "EN", - "title": "Smash Brothers" - }, - "Smite": { - "code": "0U54RVEbDtnOU2wa", - "description": "Smite", - "icon": null, - "language": "EN", - "title": "Smite" - }, - "Social Hub": { - "code": "0VIWePEAZcdNDQM5", - "description": "Social Hub", - "icon": null, - "language": "EN", - "title": "Social Hub" - }, - "SoulsBorne": { - "code": "0gzazVW6NC6TCIJC", - "description": "All things soulsborne", - "icon": null, - "language": "EN", - "title": "SoulsBorne" - }, - "Splatoon Central": { - "code": "0d2oP2Iw3a4HmOvT", - "description": "Casual and Competitive Splatoon", - "icon": null, - "language": "EN", - "title": "Splatoon" - }, - "Starcraft": { - "code": "0Vjzi81e7LFaUhPR", - "description": "Starcraft", - "icon": null, - "language": "EN", - "title": "Starcraft" - }, - "Sword of Vermilion": { - "code": "0b0ZitR25ZeGGiLT", - "description": "Sword of Vermilion", - "icon": null, - "language": "EN", - "title": "Sword of Vermilion" - }, - "TCG": { - "code": "0aGuULuB9C2JbHs4", - "description": "TCG Central", - "icon": null, - "language": "EN", - "title": "TCG" - }, - "TheWinggas": { - "code": "0agnV89C8NpXnJbl", - "description": "Winggas for days", - "icon": null, - "language": "EN", - "title": "TheWinggas" - }, - "Team Fortress 2": { - "code": "0jpmB1FuxD21gXAK", - "description": "Team Fortress 2", - "icon": null, - "language": "EN", - "title": "Team Fortress 2" - }, - "Terraria": { - "code": "0U4zNFIJpDCL7GQs", - "description": "Terraria", - "icon": null, - "language": "EN", - "title": "Terraria" - }, - "The Fierce Force": { - "code": "0Yr48oAoyY3TSdcE", - "description": "League of Legends, Tree of Savior, and other various games!", - "icon": null, - "language": "EN", - "title": "The Fierce Force" - }, - "The MKW Wiimm-fi Chats": { - "code": "0SdlpwUtv7ozFqXg", - "description": "The MKW Wiimm-fi Chats", - "icon": null, - "language": "EN", - "title": "The MKW Wiimm-fi Chats" - }, - "The Music Bar": { - "code": "0TBYxuT95eWrk9RI", - "description": "The Music Bar", - "icon": null, - "language": "EN", - "title": "The Music Bar" - }, - "The Prickly Cactus": { - "code": "0nkHMl1nnNymyVju", - "description": "Social Interaction", - "icon": null, - "language": "EN", - "title": "The Prickly Cactus" - }, - "The Sims": { - "code": "0YjcYngtdfkBMAxn", - "description": "The Sims", - "icon": null, - "language": "EN", - "title": "The Sims" - }, - "The Deviant Network": { - "code": "0inuUAPt3Wrsfplv", - "description": "The Deviant Network", - "icon": null, - "language": "EN", - "title": "The Deviant Network" - }, - "The Division Community": { - "code": "0lh5FmzP4CG785uV", - "description": "The Division Community", - "icon": null, - "language": "EN", - "title": "The Division Community" - }, - "Torture Room": { - "code": "0cjW7fqk1DDiV0VQ", - "description": "The Official Torture Room :D", - "icon": null, - "language": "EN", - "title": "Torture Room" - }, - "Touhou": { - "code": "0U6KAap475vPWss7", - "description": "Touhou", - "icon": null, - "language": "EN", - "title": "Touhou" - }, - "Tree Of Savior": { - "code": "0QFW9NDirWiV9RZh", - "description": "Tree Of Savior", - "icon": null, - "language": "EN", - "title": "Tree Of Savior" - }, - "Tripulse Community": { - "code": "0RfRA4njAeYbZAdl", - "description": "Tripulse Community", - "icon": null, - "language": "EN", - "title": "Tripulse Community" - }, - "The Witness": { - "code": "0nLAMjaMh2VgCrSS", - "description": "The Witness", - "icon": null, - "language": "EN", - "title": "The Witness" - }, - "Unofficial Gearbox Discord": { - "code": "0Ut1Gt2sJo6GTFXa", - "description": "Unofficial Gearbox Discord", - "icon": null, - "language": "EN", - "title": "Unofficial Gearbox Discord" - }, - "Unofficial Monstercat": { - "code": "0XzWvesV0VyuKDXW", - "description": "Unofficial Monstercat", - "icon": null, - "language": "EN", - "title": "Unofficial Monstercat" - }, - "Unofficial Nintendo": { - "code": "0VUyTH6zFt3zU3QW", - "description": "Unofficial Nintendo", - "icon": null, - "language": "EN", - "title": "Unofficial Nintendo" - }, - "Unofficial PC Master Race": { - "code": "0VEW0OVOGMjjSmzP", - "description": "Unofficial PC Master Race", - "icon": null, - "language": "EN", - "title": "Unofficial PC Master Race" - }, - "Unreal Tournament 4": { - "code": "0UgVfEa2r2CwcjJg", - "description": "Unreal Tournament 4", - "icon": null, - "language": "EN", - "title": "Unreal Tournament 4" - }, - "Wakfu": { - "code": "0WL9EEf55J99YJJX", - "description": "Wakfu", - "icon": null, - "language": "EN", - "title": "Wakfu" - }, - "Warframe": { - "code": "0Qj6myIvIZgVf5zr", - "description": "Warframe", - "icon": null, - "language": "EN", - "title": "Warframe" - }, - "Wildstar": { - "code": "0TrMr9NtcKujZXLh", - "description": "Wildstar", - "icon": null, - "language": "EN", - "title": "Wildstar" - }, - "World of Tanks": { - "code": "0tm6LMVPkok6gKP8", - "description": "World of Tanks community server", - "icon": null, - "language": "EN", - "title": "World of Tanks" - }, - "[EU]Rocket League": { - "code": "0W70FqxbCli27BfR", - "description": "[EU]Rocket League", - "icon": null, - "language": "EN", - "title": "[EU]Rocket League" - }, - "[UK] FPS/RTS/RPG": { - "code": "0TzxyhJax4nDbITe", - "description": "[UK] FPS/RTS/RPG", - "icon": null, - "language": "EN", - "title": "[UK] FPS/RTS/RPG" - }, - "Game Development": { - "code": "0dlKnYoTVkWaLYOd", - "description": "Game Development", - "icon": null, - "language": "EN", - "title": "Game Development" - }, - "9D Awaken": { - "code": "0lQg5MHMLN5dV7F7", - "description": "9dragons awaken beta group", - "icon": null, - "language": "EN", - "title": "9dragons awaken beta group" - }, - "Rivals of Aether": { - "code": "0M4F1870WAbAPTbg", - "description": "Rivals of Aether", - "icon": null, - "language": "EN", - "title": "Rivals of Aether" - }, - "BOUNDARIES UNDERTALE": { - "code": "0kOFr0tF9gwI5I4d", - "description": "An Undertale RP server", - "icon": null, - "language": "EN", - "title": "=||BOUNDARIES UNDERTALE||=" - }, - "WE DIDNT NAME THIS SERVER AT ALL": { - "code": "0VdAmanOQSBH5Jbs", - "description": "a voice server for fans and hosts of the new podcast youtube channel we didnt name this podcast at all", - "icon": null, - "language": "EN", - "title": "We didnt name this server at all" - }, - "Metal Gear Network": { - "code": "0PsGOLmD8akgwIB0", - "description": "Metal Gear Network // Metal Gear Series as well as games in the Konami/Kojima universe", - "icon": null, - "language": "EN", - "title": "Metal Gear Network" - }, - "All the games!": { - "code": "0qKvbnYBZO1Vb4cB", - "description": "This server is for people who wanna play games together or just talk about anime or whatever!", - "icon": null, - "language": "EN", - "title": "All the games!" - }, - "League of Legends (España)": { - "code": "0pQ5IG864BvI4MZp", - "description": "Servidor de League of Legends para la comunidad española.", - "icon": null, - "language": "SP", - "title": "League of Legends (España)" - }, - "Dirty Bomb": { - "code": "0gP8aNVcec8Og5Tm", - "description": "Official Dirty Bomb Discord!", - "icon": null, - "language": "EN", - "title": "Dirty Bomb" - }, - "[Division]": { - "code": "0ZuJtFPiGu0YtDjO", - "description": "Void Elsword Guild Server.", - "icon": null, - "language": "EN", - "title": "Division" - }, - "Space Enthusiasts": { - "code": "0rD4Ubh43S6q4asm", - "description": "The Place for Space on Discord!", - "icon": null, - "language": "EN", - "title": "Space Enthusiasts" - }, - "Unreal Gaming": { - "code": "0f5xriVNmIZ3fqqe", - "description": "A place where you can talk about a wide variety about games!", - "icon": null, - "language": "EN", - "title": "Unreal Gaming" - }, - "Tavern in the Sky": { - "code": "0mnxj1RcnMFeyOcN", - "description": "A gaming community/hub for gamers and content creators alike!", - "icon": null, - "language": "EN", - "title": "Tavern in the Sky" - }, - "LeagueSharp": { - "code": "0onTZpA5TLlg2hsC", - "description": "LeagueSharp - Easy, Efficient, Gamebreaking!", - "icon": null, - "language": "EN", - "title": "LeagueSharp" - } - } -} diff --git a/data/updater.json b/data/updater.json index cb18d445..f984ff47 100644 --- a/data/updater.json +++ b/data/updater.json @@ -1,4 +1,4 @@ { - "LatestVersion":"0.2.83", + "LatestVersion":"0.3.0", "CDN":"cdn.rawgit.com" } \ No newline at end of file diff --git a/js/main.js b/js/main.js index 07e57dfd..1357adfe 100644 --- a/js/main.js +++ b/js/main.js @@ -68,69 +68,107 @@ /* global DiscordNative:false */ -var betterDiscordIPC = require("electron").ipcRenderer; -window.bdStorage = {}; -window.bdStorage.get = function(i) { - return betterDiscordIPC.sendSync("synchronous-message", {"arg": "storage", "cmd": "get", "var": i}); -}; -window.bdStorage.set = function(i, v) { - betterDiscordIPC.sendSync("synchronous-message", {"arg": "storage", "cmd": "set", "var": i, "data": v}); -}; -window.bdPluginStorage = {}; -window.bdPluginStorage.get = function(pluginName, key) { - return betterDiscordIPC.sendSync("synchronous-message", {"arg": "pluginstorage", "cmd": "get", "pn": pluginName, "var": key}); -}; -window.bdPluginStorage.set = function(pluginName, key, value) { - if (typeof(value) === "undefined") return Utils.warn("Trying to set undefined value in plugin " + pluginName); - betterDiscordIPC.sendSync("synchronous-message", {"arg": "pluginstorage", "cmd": "set", "pn": pluginName, "var": key, "data": value}); -}; +var DataStore = (() => { + const fs = require("fs"); + const path = require("path"); + const releaseChannel = DiscordNative.globals.releaseChannel; -window.bdPluginStorage.delete = function(pluginName, key) { - betterDiscordIPC.sendSync("synchronous-message", {"arg": "pluginstorage", "cmd": "delete", "pn": pluginName, "var": key}); -}; - -var bdSettings = {}; -var bdSettingsStorage = {}; -var releaseChannel = DiscordNative.globals.releaseChannel; -bdSettingsStorage.initialize = function() { - let fs = require("fs"); - let data = {stable: {}, canary: {}, ptb: {}}; - if (fs.existsSync(bdConfig.dataPath + "/bdsettings.json")) { - try { - data = JSON.parse(fs.readFileSync(bdConfig.dataPath + "/bdsettings.json")); - - // Convert to new style. To be removed a month from 10/14/2018 - if (data.hasOwnProperty("settings")) data = {[releaseChannel]: data}; + return new class DataStore { + constructor() { + this.data = {settings: {stable: {}, canary: {}, ptb: {}}}; + this.pluginData = {}; } - catch (err) { - data = {stable: {}, canary: {}, ptb: {}}; + + initialize() { + if (!fs.existsSync(this.BDFile)) fs.writeFileSync(this.BDFile, JSON.stringify(this.data, null, 4)); + else this.data = require(this.BDFile); + if (!fs.existsSync(this.settingsFile)) return; + let settings = require(this.settingsFile); + fs.unlinkSync(this.settingsFile); + if (settings.hasOwnProperty("settings")) settings = Object.assign({stable: {}, canary: {}, ptb: {}}, {[releaseChannel]: settings}); + else settings = Object.assign({stable: {}, canary: {}, ptb: {}}, settings); + this.setBDData("settings", settings); } + + get BDFile() {return this._BDFile || (this._BDFile = path.resolve(bdConfig.dataPath, "bdstorage.json"));} + get settingsFile() {return this._settingsFile || (this._settingsFile = path.resolve(bdConfig.dataPath, "bdsettings.json"));} + getPluginFile(pluginName) {return path.resolve(ContentManager.pluginsFolder, pluginName + ".config.json");} + + getSettingGroup(key) { + return this.data.settings[releaseChannel][key] || null; + } + + setSettingGroup(key, data) { + this.data.settings[releaseChannel][key] = data; + fs.writeFileSync(this.BDFile, JSON.stringify(this.data, null, 4)); + } + + getBDData(key) { + return this.data[key] || ""; + } + + setBDData(key, value) { + this.data[key] = value; + fs.writeFileSync(this.BDFile, JSON.stringify(this.data, null, 4)); + } + + getPluginData(pluginName, key) { + if (this.pluginData[pluginName] !== undefined) return this.pluginData[pluginName][key] || undefined; + if (!fs.existsSync(this.getPluginFile(pluginName))) return undefined; + this.pluginData[pluginName] = JSON.parse(fs.readFileSync(this.getPluginFile(pluginName))); + return this.pluginData[pluginName][key] || undefined; + } + + setPluginData(pluginName, key, value) { + if (value === undefined) return; + if (this.pluginData[pluginName] === undefined) this.pluginData[pluginName] = {}; + this.pluginData[pluginName][key] = value; + fs.writeFileSync(this.getPluginFile(pluginName), JSON.stringify(this.pluginData[pluginName], null, 4)); + } + + deletePluginData(pluginName, key) { + if (this.pluginData[pluginName] === undefined) this.pluginData[pluginName] = {}; + delete this.pluginData[pluginName][key]; + fs.writeFileSync(this.getPluginFile(pluginName), JSON.stringify(this.pluginData[pluginName], null, 4)); + } + }; +})(); + + + +window.bdStorage = class bdPluginStorage { + static get(key) { + Utils.warn("[Deprecation Notice] Please use BdApi.getBDData(). bdStorage may be removed in future versions."); + return DataStore.getBDData(key); + } + + static set(key, data) { + Utils.warn("[Deprecation Notice] Please use BdApi.setBDData(). bdStorage may be removed in future versions."); + DataStore.setBDData(key, data); } - if (data) bdSettings = data; - else bdSettings = {stable: {}, canary: {}, ptb: {}}; }; -bdSettingsStorage.get = function(key) { - if (bdSettings[releaseChannel][key]) return bdSettings[releaseChannel][key]; - return null; -}; - -bdSettingsStorage.set = function(key, data) { - let fs = require("fs"); - bdSettings[releaseChannel][key] = data; - try { - fs.writeFileSync(bdConfig.dataPath + "/bdsettings.json", JSON.stringify(bdSettings, null, 4)); - return true; +window.bdPluginStorage = class bdPluginStorage { + static get(pluginName, key) { + Utils.warn(`[Deprecation Notice] Please use BdApi.loadData() or BdApi.getData(). bdPluginStorage may be removed in future versions.`); + return DataStore.getPluginData(pluginName, key) || null; } - catch (err) { - Utils.err(err); - return false; + + static set(pluginName, key, data) { + Utils.warn("[Deprecation Notice] Please use BdApi.saveData() or BdApi.setData(). bdPluginStorage may be removed in future versions."); + if (typeof(value) === "undefined") return Utils.warn("Trying to set undefined value in plugin " + pluginName); + DataStore.setPluginData(pluginName, key, data); + } + + static delete(pluginName, key) { + Utils.warn("[Deprecation Notice] Please use BdApi.deleteData(). bdPluginStorage may be removed in future versions."); + DataStore.deletePluginData(pluginName, key); } }; var settingsPanel, emoteModule, quickEmoteMenu, voiceMode, pluginModule, themeModule, dMode, publicServersModule; -var minSupportedVersion = "0.2.81"; -var bbdVersion = "0.1.2"; +var minSupportedVersion = "0.3.0"; +var bbdVersion = "0.2.2"; var mainCore; @@ -153,13 +191,14 @@ var settings = { "Startup Error Modal": {id: "fork-ps-1", info: "Show a modal with plugin/theme errors on startup", implemented: true, hidden: false, cat: "fork"}, - "Show Toasts": {id: "fork-ps-2", info: "Shows a small notification for starting and stopping plugins & themes", implemented: true, hidden: false, cat: "fork"}, + "Show Toasts": {id: "fork-ps-2", info: "Shows a small notification for important information", implemented: true, hidden: false, cat: "fork"}, "Scroll To Settings": {id: "fork-ps-3", info: "Auto-scrolls to a plugin's settings when the button is clicked (only if out of view)", implemented: true, hidden: false, cat: "fork"}, "Animate On Hover": {id: "fork-es-2", info: "Only animate the emote modifiers on hover", implemented: true, hidden: false, cat: "fork"}, "Copy Selector": {id: "fork-dm-1", info: "Adds a \"Copy Selector\" option to context menus when developer mode is active", implemented: true, hidden: false, cat: "fork"}, "Download Emotes": {id: "fork-es-3", info: "Download emotes when the cache is expired", implemented: true, hidden: false, cat: "fork"}, "Normalize Classes": {id: "fork-ps-4", info: "Adds stable classes to elements to help themes. (e.g. adds .da-channels to .channels-Ie2l6A)", implemented: true, hidden: false, cat: "fork"}, - + "Automatic Loading": {id: "fork-ps-5", info: "Automatically loads, reloads, and unloads plugins and themes", implemented: true, hidden: false, cat: "fork"}, + "Twitch Emotes": {id: "bda-es-7", info: "Show Twitch emotes", implemented: true, hidden: false, cat: "emote"}, "FrankerFaceZ Emotes": {id: "bda-es-1", info: "Show FrankerFaceZ Emotes", implemented: true, hidden: false, cat: "emote"}, @@ -192,7 +231,6 @@ var defaultCookie = { "bda-es-7": true, "bda-gs-b": false, "bda-es-8": true, - "bda-jd": true, "bda-dc-0": false, "bda-css-0": false, "bda-css-1": false, @@ -202,6 +240,7 @@ var defaultCookie = { "fork-ps-2": true, "fork-ps-3": true, "fork-ps-4": true, + "fork-ps-5": true, "fork-es-2": false, "fork-es-3": true }; @@ -209,7 +248,7 @@ var defaultCookie = { var settingsCookie = {}; -var bdpluginErrors, bdthemeErrors; // define for backwards compatibility +var bdpluginErrors = [], bdthemeErrors = []; // define for backwards compatibility var bdConfig = null; @@ -221,7 +260,7 @@ var classNormalizer; Core.prototype.init = async function() { if (bdConfig.version < minSupportedVersion) { - this.alert("Not Supported", "BetterDiscord v" + bdConfig.version + " (your version)" + " is not supported by the latest js (" + bbdVersion + ").

Please download the latest version from BetterDiscord.net"); + this.alert("Not Supported", "BetterDiscord v" + bdConfig.version + " (your version)" + " is not supported by the latest js (" + bbdVersion + ").

Please download the latest version from GitHub"); return; } @@ -255,10 +294,6 @@ Core.prototype.init = async function() { settingsPanel = new V2_SettingsPanel(); settingsPanel.updateSettings(); - // Add check for backwards compatibility - if (!bdpluginErrors) bdpluginErrors = []; - if (!bdthemeErrors) bdthemeErrors = []; - Utils.log("Loading Plugins"); pluginModule = new PluginModule(); pluginModule.loadPlugins(); @@ -285,7 +320,15 @@ Core.prototype.init = async function() { // Show loading errors if (settingsCookie["fork-ps-1"]) { Utils.log("Collecting Startup Errors"); - this.showStartupErrors(); + this.showStartupErrors({plugins: bdpluginErrors, themes: bdthemeErrors}); + } + + if (!DataStore.getBDData("RNMAnnouncement")) { + DataStore.setBDData("RNMAnnouncement", true); + this.alert("Significant Changes", ` + The lastest release of BBD has made a lot of improvements including being able to automatically load, unload, and reload plugins and themes.

+ If you had the RestartNoMore plugin, I suggest removing it (or turning off BBD's loader in settings) so things aren't being loaded multiple times. + `); } }; @@ -306,14 +349,14 @@ Core.prototype.injectExternals = function() { }; Core.prototype.initSettings = function () { - bdSettingsStorage.initialize(); - if (!bdSettingsStorage.get("settings")) { + DataStore.initialize(); + if (!DataStore.getSettingGroup("settings")) { settingsCookie = defaultCookie; this.saveSettings(); } else { this.loadSettings(); - $("`); - if (settingsCookie["fork-ps-2"]) mainCore.showToast(`${bdthemes[theme].name} v${bdthemes[theme].version} has been applied.`); + if (settingsCookie["fork-ps-2"] && !reload) mainCore.showToast(`${bdthemes[theme].name} v${bdthemes[theme].version} has been applied.`); }; -ThemeModule.prototype.disableTheme = function (theme) { +ThemeModule.prototype.disableTheme = function(theme, reload = false) { themeCookie[theme] = false; this.saveThemeData(); $(`#${Utils.escapeID(bdthemes[theme].name)}`).remove(); - if (settingsCookie["fork-ps-2"]) mainCore.showToast(`${bdthemes[theme].name} v${bdthemes[theme].version} has been removed.`); + if (settingsCookie["fork-ps-2"] && !reload) mainCore.showToast(`${bdthemes[theme].name} v${bdthemes[theme].version} has been disabled.`); }; -ThemeModule.prototype.toggleTheme = function (theme) { +ThemeModule.prototype.toggleTheme = function(theme) { if (themeCookie[theme]) this.disableTheme(theme); else this.enableTheme(theme); }; -ThemeModule.prototype.loadThemeData = function () { - let saved = bdSettingsStorage.get("themes"); +ThemeModule.prototype.loadTheme = function(filename) { + const error = ContentManager.loadContent(filename, "theme"); + if (error && settingsCookie["fork-ps-2"]) { + Utils.err(`${filename} could not be loaded.`, error); + return BdApi.showToast(`${filename} could not be loaded. It may not have been loaded.`, {type: "error"}); + } + + const theme = Object.values(bdthemes).find(p => p.filename == filename); + if (settingsCookie["fork-ps-2"]) BdApi.showToast(`${theme.name} v${theme.version} was loaded.`, {type: "success"}); +}; + +ThemeModule.prototype.unloadTheme = function(theme) { + if (themeCookie[theme]) this.disableTheme(theme, true); + const error = ContentManager.unloadContent(bdthemes[theme].filename, "theme"); + delete bdthemes[theme]; + if (error && settingsCookie["fork-ps-2"]) { + Utils.err(`${theme} could not be unloaded. It may have not been loaded yet.`, error); + return BdApi.showToast(`${theme} could not be unloaded. It may have not been loaded yet.`, {type: "error"}); + } + if (settingsCookie["fork-ps-2"]) BdApi.showToast(`${theme} was unloaded.`, {type: "success"}); +}; + +ThemeModule.prototype.reloadTheme = function(theme) { + const error = ContentManager.reloadContent(bdthemes[theme].filename, "theme"); + if (themeCookie[theme]) this.disableTheme(theme, true), this.enableTheme(theme, true); + if (error && settingsCookie["fork-ps-2"]) { + Utils.err(`${theme} could not be reloaded.`, error); + return BdApi.showToast(`${theme} could not be reloaded.`, {type: "error"}); + } + if (settingsCookie["fork-ps-2"]) BdApi.showToast(`${theme} v${bdthemes[theme].version} was reloaded.`, {type: "success"}); +}; + +ThemeModule.prototype.updateThemeList = function() { + const results = ContentManager.loadNewContent("theme"); + for (const filename of results.added) this.loadTheme(filename); + for (const name of results.removed) this.unloadTheme(name); +}; + +ThemeModule.prototype.loadThemeData = function() { + let saved = DataStore.getSettingGroup("themes"); if (saved) { themeCookie = saved; } }; ThemeModule.prototype.saveThemeData = function () { - bdSettingsStorage.set("themes", themeCookie); + DataStore.setSettingGroup("themes", themeCookie); }; @@ -1491,8 +1826,10 @@ BdApi.getPlugin = function (name) { return null; }; +var betterDiscordIPC = require("electron").ipcRenderer; //Get ipc for reason BdApi.getIpc = function () { + Utils.warn("[Deprecation Notice] BetterDiscord's IPC has been deprecated and may be removed in future versions."); return betterDiscordIPC; }; @@ -1535,17 +1872,21 @@ BdApi.getInternalInstance = function(node) { // Gets data BdApi.loadData = function(pluginName, key) { - return window.bdPluginStorage.get(pluginName, key); + return DataStore.getPluginData(pluginName, key); }; +BdApi.getData = BdApi.loadData; + // Sets data BdApi.saveData = function(pluginName, key, data) { - return window.bdPluginStorage.set(pluginName, key, data); + return DataStore.setPluginData(pluginName, key, data); }; +BdApi.setData = BdApi.saveData; + // Deletes data BdApi.deleteData = function(pluginName, key) { - return window.bdPluginStorage.delete(pluginName, key); + return DataStore.deletePluginData(pluginName, key); }; // Patches other functions @@ -1568,6 +1909,40 @@ BdApi.testJSON = function(data) { return Utils.testJSON(data); }; +BdApi.isPluginEnabled = function(name) { + return !!pluginCookie[name]; +}; + +BdApi.isThemeEnabled = function(name) { + return !!themeCookie[name]; +}; + +BdApi.isSettingEnabled = function(id) { + return !!settingsCookie[id]; +}; + +// Gets data +BdApi.getBDData = function(key) { + return DataStore.getBDData(key); +}; + +// Sets data +BdApi.setBDData = function(key, data) { + return DataStore.setBDData(key, data); +}; + + +/** + * + * @constructor + * @param {(HTMLElement|jQuery)} node - DOM node to monitor and show the tooltip on + * @param {string} tip - string to show in the tooltip + * @param {object} options - additional options for the tooltip + * @param {string} [options.style=black] - correlates to the discord styling + * @param {string} [options.side=top] - can be any of top, right, bottom, left + * @param {boolean} [options.preventFlip=false] - prevents moving the tooltip to the opposite side if it is too big or goes offscreen + * @param {boolean} [options.disabled=false] - whether the tooltip should be disabled from showing on hover + */ /* BetterDiscordApp DevMode JavaScript * Version: 1.0 @@ -1986,6 +2361,10 @@ class V2 { get NativeModule() {return BDV2.WebpackModules.findByUniqueProperties(["setBadge"]);} + get Tooltips() {return BDV2.WebpackModules.find(m => m.hide && m.show && !m.search && !m.submit && !m.search && !m.activateRagingDemon && !m.dismiss);} + + get KeyGenerator() {return BDV2.WebpackModules.find(m => m.toString && /"binary"/.test(m.toString()));} + get reactComponent() { return this.internal.react.Component; } @@ -2316,6 +2695,26 @@ class V2C_SideBar extends BDV2.reactComponent { } } +class V2C_ReloadIcon extends BDV2.reactComponent { + constructor(props) { + super(props); + } + + render() { + return BDV2.react.createElement("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24", + fill: "#dcddde", + className: "bd-reload " + this.props.className, + onClick: this.props.onClick, + style: {width: this.props.size || "24px", height: this.props.size || "24px"} + }, + BDV2.react.createElement("path", {d: "M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z"}), + BDV2.react.createElement("path", {fill: "none", d: "M0 0h24v24H0z"}) + ); + } +} + class V2C_XSvg extends BDV2.reactComponent { constructor(props) { super(props); @@ -2475,7 +2874,7 @@ class V2C_CssEditorDetached extends BDV2.reactComponent { } get css() { - let _ccss = window.bdStorage.get("bdcustomcss"); + let _ccss = DataStore.getBDData("bdcustomcss"); let ccss = ""; if (_ccss && _ccss !== "") { ccss = atob(_ccss); @@ -2588,7 +2987,7 @@ class V2C_CssEditorDetached extends BDV2.reactComponent { } saveCss() { - window.bdStorage.set("bdcustomcss", btoa(this.editor.session.getValue())); + DataStore.setBDData("bdcustomcss", btoa(this.editor.session.getValue())); } } @@ -2652,7 +3051,7 @@ class V2C_CssEditor extends BDV2.reactComponent { } get css() { - let _ccss = window.bdStorage.get("bdcustomcss"); + let _ccss = DataStore.getBDData("bdcustomcss"); let ccss = ""; if (_ccss && _ccss !== "") { ccss = atob(_ccss); @@ -2773,7 +3172,7 @@ class V2C_CssEditor extends BDV2.reactComponent { } saveCss() { - window.bdStorage.set("bdcustomcss", btoa(this.editor.session.getValue())); + DataStore.setBDData("bdcustomcss", btoa(this.editor.session.getValue())); } detach() { @@ -2857,12 +3256,15 @@ class V2C_PluginCard extends BDV2.reactComponent { self.setInitialState(); self.hasSettings = typeof self.props.plugin.getSettingsPanel === "function"; self.settingsPanel = ""; + + this.reload = this.reload.bind(this); } setInitialState() { this.state = { checked: pluginCookie[this.props.plugin.getName()], - settings: false + settings: false, + reloads: 0 }; } @@ -2892,6 +3294,13 @@ class V2C_PluginCard extends BDV2.reactComponent { }, 300); } } + + reload() { + const plugin = this.props.plugin.getName(); + pluginModule.reloadPlugin(plugin); + this.props.plugin = bdplugins[plugin].plugin; + this.setState({reloads: this.state.reloads + 1}); + } render() { let self = this; @@ -2902,7 +3311,6 @@ class V2C_PluginCard extends BDV2.reactComponent { let version = plugin.getVersion(); let website = bdplugins[name].website; let source = bdplugins[name].source; - //let { settingsPanel } = this; if (this.state.settings) { try { self.settingsPanel = plugin.getSettingsPanel(); } @@ -2929,9 +3337,12 @@ class V2C_PluginCard extends BDV2.reactComponent { " by ", BDV2.react.createElement("span", {className: "bda-author"}, author) ), - BDV2.react.createElement("label", {className: "ui-switch-wrapper ui-flex-child", style: {flex: "0 0 auto"}}, - BDV2.react.createElement("input", {checked: this.state.checked, onChange: this.onChange, className: "ui-switch-checkbox", type: "checkbox"}), - BDV2.react.createElement("div", {className: this.state.checked ? "ui-switch checked" : "ui-switch"}) + BDV2.react.createElement("div", {className: "bda-controls"}, + !settingsCookie["fork-ps-5"] && BDV2.react.createElement(V2Components.TooltipWrap(V2Components.ReloadIcon, {color: "black", side: "top", text: "Reload"}), {className: "bd-reload-card", onClick: this.reload}), + BDV2.react.createElement("label", {className: "ui-switch-wrapper ui-flex-child", style: {flex: "0 0 auto"}}, + BDV2.react.createElement("input", {checked: this.state.checked, onChange: this.onChange, className: "ui-switch-checkbox", type: "checkbox"}), + BDV2.react.createElement("div", {className: this.state.checked ? "ui-switch checked" : "ui-switch"}) + ) ) ), BDV2.react.createElement("div", {className: "bda-description-wrap scroller-wrap fade"}, @@ -2965,14 +3376,26 @@ class V2C_ThemeCard extends BDV2.reactComponent { super(props); this.setInitialState(); this.onChange = this.onChange.bind(this); + this.reload = this.reload.bind(this); } setInitialState() { this.state = { - checked: themeCookie[this.props.theme.name] + checked: themeCookie[this.props.theme.name], + reloads: 0 }; } + reload() { + const theme = this.props.theme.name; + const error = themeModule.reloadTheme(theme); + if (error) mainCore.showToast(`Could not reload ${bdthemes[theme].name}. Check console for details.`, {type: "error"}); + else mainCore.showToast(`${bdthemes[theme].name} v${bdthemes[theme].version} has been reloaded.`, {type: "success"}); + // this.setState(this.state); + this.props.theme = bdthemes[theme]; + this.setState({reloads: this.state.reloads + 1}); + } + render() { let {theme} = this.props; let name = theme.name; @@ -2991,9 +3414,12 @@ class V2C_ThemeCard extends BDV2.reactComponent { " by ", BDV2.react.createElement("span", {className: "bda-author"}, author) ), - BDV2.react.createElement("label", {className: "ui-switch-wrapper ui-flex-child", style: {flex: "0 0 auto"}}, - BDV2.react.createElement("input", {checked: this.state.checked, onChange: this.onChange, className: "ui-switch-checkbox", type: "checkbox"}), - BDV2.react.createElement("div", {className: this.state.checked ? "ui-switch checked" : "ui-switch"}) + BDV2.react.createElement("div", {className: "bda-controls"}, + !settingsCookie["fork-ps-5"] && BDV2.react.createElement(V2Components.TooltipWrap(V2Components.ReloadIcon, {color: "black", side: "top", text: "Reload"}), {className: "bd-reload-card", onClick: this.reload}), + BDV2.react.createElement("label", {className: "ui-switch-wrapper ui-flex-child", style: {flex: "0 0 auto"}}, + BDV2.react.createElement("input", {checked: this.state.checked, onChange: this.onChange, className: "ui-switch-checkbox", type: "checkbox"}), + BDV2.react.createElement("div", {className: this.state.checked ? "ui-switch checked" : "ui-switch"}) + ) ) ), BDV2.react.createElement("div", {className: "bda-description-wrap scroller-wrap fade"}, @@ -3068,6 +3494,9 @@ class V2Components { static get ContentColumn() { return V2C_ContentColumn; } + static get ReloadIcon() { + return V2C_ReloadIcon; + } static get XSvg() { return V2C_XSvg; } @@ -3080,6 +3509,68 @@ class V2Components { static get ServerCard() { return V2C_ServerCard; } + + static TooltipWrap(Component, options) { + + const {style = "black", side = "top", text = ""} = options; + const id = BDV2.KeyGenerator(); + + return class extends BDV2.reactComponent { + constructor(props) { + super(props); + this.onMouseEnter = this.onMouseEnter.bind(this); + this.onMouseLeave = this.onMouseLeave.bind(this); + } + + componentDidMount() { + this.node = BDV2.reactDom.findDOMNode(this); + this.node.addEventListener("mouseenter", this.onMouseEnter); + this.node.addEventListener("mouseleave", this.onMouseLeave); + } + + componentWillUnmount() { + this.node.removeEventListener("mouseenter", this.onMouseEnter); + this.node.removeEventListener("mouseleave", this.onMouseLeave); + } + + onMouseEnter() { + const {left, top, width, height} = this.node.getBoundingClientRect(); + BDV2.Tooltips.show(id, { + position: side, + text: text, + color: style, + targetWidth: width, + targetHeight: height, + windowWidth: Utils.screenWidth, + windowHeight: Utils.screenHeight, + x: left, + y: top + }); + + const observer = new MutationObserver((mutations) => { + mutations.forEach((mutation) => { + const nodes = Array.from(mutation.removedNodes); + const directMatch = nodes.indexOf(this.node) > -1; + const parentMatch = nodes.some(parent => parent.contains(this.node)); + if (directMatch || parentMatch) { + this.onMouseLeave(); + observer.disconnect(); + } + }); + }); + + observer.observe(document.body, {subtree: true, childList: true}); + } + + onMouseLeave() { + BDV2.Tooltips.hide(id); + } + + render() { + return BDV2.react.createElement(Component, this.props); + } + }; + } } class V2_SettingsPanel_Sidebar { @@ -3301,6 +3792,15 @@ class V2_SettingsPanel { if (_c["fork-ps-4"]) classNormalizer.start(); else classNormalizer.stop(); + + if (_c["fork-ps-5"]) { + ContentManager.watchContent("plugin"); + ContentManager.watchContent("theme"); + } + else { + ContentManager.unwatchContent("plugin"); + ContentManager.unwatchContent("theme"); + } if (_c["bda-gs-8"]) { @@ -3352,22 +3852,30 @@ class V2_SettingsPanel { } get pluginsComponent() { - let plugins = Object.keys(bdplugins).reduce((arr, key) => { + let plugins = Object.keys(bdplugins).sort((a, b) => a.toLowerCase().localeCompare(b.toLowerCase())).reduce((arr, key) => { arr.push(BDV2.react.createElement(V2Components.PluginCard, {key: key, plugin: bdplugins[key].plugin}));return arr; }, []); let list = BDV2.react.createElement(V2Components.List, {key: "plugin-list", className: "bda-slist", children: plugins}); - let pfBtn = BDV2.react.createElement("button", {key: "folder-button", className: "bd-pfbtn", onClick: () => { betterDiscordIPC.send("asynchronous-message", {arg: "opendir", path: "plugindir"}); }}, "Open Plugin Folder"); - let contentColumn = BDV2.react.createElement(V2Components.ContentColumn, {key: "pcolumn", title: "Plugins", children: [pfBtn, list]}); + let refreshIcon = !settingsCookie["fork-ps-5"] && BDV2.react.createElement(V2Components.TooltipWrap(V2Components.ReloadIcon, {color: "black", side: "top", text: "Reload Plugin List"}), {className: "bd-reload-header", size: "18px", onClick: async () => { + pluginModule.updatePluginList(); + this.sideBarOnClick("plugins"); + }}); + let pfBtn = BDV2.react.createElement("button", {key: "folder-button", className: "bd-pfbtn", onClick: () => { require("electron").shell.openItem(ContentManager.pluginsFolder); }}, "Open Plugin Folder"); + let contentColumn = BDV2.react.createElement(V2Components.ContentColumn, {key: "pcolumn", title: "Plugins", children: [refreshIcon, pfBtn, list]}); return BDV2.react.createElement(V2Components.Scroller, {contentColumn: true, fade: true, dark: true, children: [contentColumn, BDV2.react.createElement(V2Components.Tools, {key: "tools"})]}); } get themesComponent() { - let themes = Object.keys(bdthemes).reduce((arr, key) => { + let themes = Object.keys(bdthemes).sort((a, b) => a.toLowerCase().localeCompare(b.toLowerCase())).reduce((arr, key) => { arr.push(BDV2.react.createElement(V2Components.ThemeCard, {key: key, theme: bdthemes[key]}));return arr; }, []); let list = BDV2.react.createElement(V2Components.List, {key: "theme-list", className: "bda-slist", children: themes}); - let tfBtn = BDV2.react.createElement("button", {key: "folder-button", className: "bd-pfbtn", onClick: () => { betterDiscordIPC.send("asynchronous-message", {arg: "opendir", path: "themedir"}); }}, "Open Theme Folder"); - let contentColumn = BDV2.react.createElement(V2Components.ContentColumn, {key: "tcolumn", title: "Themes", children: [tfBtn, list]}); + let refreshIcon = !settingsCookie["fork-ps-5"] && BDV2.react.createElement(V2Components.TooltipWrap(V2Components.ReloadIcon, {color: "black", side: "top", text: "Reload Theme List"}), {className: "bd-reload-header", size: "18px", onClick: async () => { + themeModule.updateThemeList(); + this.sideBarOnClick("themes"); + }}); + let tfBtn = BDV2.react.createElement("button", {key: "folder-button", className: "bd-pfbtn", onClick: () => { require("electron").shell.openItem(ContentManager.themesFolder); }}, "Open Theme Folder"); + let contentColumn = BDV2.react.createElement(V2Components.ContentColumn, {key: "tcolumn", title: "Themes", children: [refreshIcon, tfBtn, list]}); return BDV2.react.createElement(V2Components.Scroller, {contentColumn: true, fade: true, dark: true, children: [contentColumn, BDV2.react.createElement(V2Components.Tools, {key: "tools"})]}); } diff --git a/js/main.min.js b/js/main.min.js index 8b8768c2..5be0924a 100644 --- a/js/main.min.js +++ b/js/main.min.js @@ -1,17 +1,20 @@ -(function(){let t=window.require("fs"),a=window.require("process"),o=a.platform,d=("win32"===o?a.env.APPDATA:"darwin"===o?a.env.HOME+"/Library/Preferences":process.env.HOME+"/.config")+"/BetterDiscord/",l="localStorage.json",u={};if(t.existsSync(`${d}${l}`))try{u=JSON.parse(t.readFileSync(`${d}${l}`))}catch(b){console.log(b)}else if(t.existsSync(l))try{u=JSON.parse(t.readFileSync(l))}catch(b){console.log(b)}var h=u;h.setItem=function(b,f){h[b]=f,this.save()},h.getItem=function(b){return h[b]||null},h.save=function(){t.writeFileSync(`${d}${l}`,JSON.stringify(this),null,4)};var g=new Proxy(h,{set:function(b,f,y){h[f]=y,h.save()},get:function(b,f){return h[f]||null}});window.localStorage=g})(),(()=>{let t=document.createElement("div");t.className="bd-loaderv2",t.title="BetterDiscord is loading...",document.body.appendChild(t)})();var betterDiscordIPC=require("electron").ipcRenderer;window.bdStorage={},window.bdStorage.get=function(t){return betterDiscordIPC.sendSync("synchronous-message",{arg:"storage",cmd:"get","var":t})},window.bdStorage.set=function(t,a){betterDiscordIPC.sendSync("synchronous-message",{arg:"storage",cmd:"set","var":t,data:a})},window.bdPluginStorage={},window.bdPluginStorage.get=function(t,a){return betterDiscordIPC.sendSync("synchronous-message",{arg:"pluginstorage",cmd:"get",pn:t,"var":a})},window.bdPluginStorage.set=function(t,a,o){return"undefined"==typeof o?Utils.warn("Trying to set undefined value in plugin "+t):void betterDiscordIPC.sendSync("synchronous-message",{arg:"pluginstorage",cmd:"set",pn:t,"var":a,data:o})},window.bdPluginStorage.delete=function(t,a){betterDiscordIPC.sendSync("synchronous-message",{arg:"pluginstorage",cmd:"delete",pn:t,"var":a})};var bdSettings={},bdSettingsStorage={},releaseChannel=DiscordNative.globals.releaseChannel;bdSettingsStorage.initialize=function(){let t=require("fs"),a={stable:{},canary:{},ptb:{}};if(t.existsSync(bdConfig.dataPath+"/bdsettings.json"))try{a=JSON.parse(t.readFileSync(bdConfig.dataPath+"/bdsettings.json")),a.hasOwnProperty("settings")&&(a={[releaseChannel]:a})}catch(o){a={stable:{},canary:{},ptb:{}}}bdSettings=a?a:{stable:{},canary:{},ptb:{}}},bdSettingsStorage.get=function(t){return bdSettings[releaseChannel][t]?bdSettings[releaseChannel][t]:null},bdSettingsStorage.set=function(t,a){let o=require("fs");bdSettings[releaseChannel][t]=a;try{return o.writeFileSync(bdConfig.dataPath+"/bdsettings.json",JSON.stringify(bdSettings,null,4)),!0}catch(d){return Utils.err(d),!1}};var settingsPanel,emoteModule,quickEmoteMenu,voiceMode,pluginModule,themeModule,dMode,publicServersModule,minSupportedVersion="0.2.81",bbdVersion="0.1.2",mainCore,settings={"Save logs locally":{id:"bda-gs-0",info:"Saves chat logs locally",implemented:!1,hidden:!1,cat:"core"},"Public Servers":{id:"bda-gs-1",info:"Display public servers button",implemented:!0,hidden:!1,cat:"core"},"Minimal Mode":{id:"bda-gs-2",info:"Hide elements and reduce the size of elements.",implemented:!0,hidden:!1,cat:"core"},"Voice Mode":{id:"bda-gs-4",info:"Only show voice chat",implemented:!0,hidden:!1,cat:"core"},"Hide Channels":{id:"bda-gs-3",info:"Hide channels in minimal mode",implemented:!0,hidden:!1,cat:"core"},"Dark Mode":{id:"bda-gs-5",info:"Make certain elements dark by default(wip)",implemented:!0,hidden:!1,cat:"core"},"Override Default Emotes":{id:"bda-es-5",info:"Override default emotes",implemented:!1,hidden:!1,cat:"core"},"Voice Disconnect":{id:"bda-dc-0",info:"Disconnect from voice server when closing Discord",implemented:!0,hidden:!1,cat:"core"},"Custom css live update":{id:"bda-css-0",info:"",implemented:!0,hidden:!0,cat:"core"},"Custom css auto udpate":{id:"bda-css-1",info:"",implemented:!0,hidden:!0,cat:"core"},"24 Hour Timestamps":{id:"bda-gs-6",info:"Replace 12hr timestamps with proper ones",implemented:!0,hidden:!1,cat:"core"},"Coloured Text":{id:"bda-gs-7",info:"Make text colour the same as role colour",implemented:!0,hidden:!1,cat:"core"},"BetterDiscord Blue":{id:"bda-gs-b",info:"Replace Discord blue with BD Blue",implemented:!0,hidden:!1,cat:"core"},"Developer Mode":{id:"bda-gs-8",info:"Developer Mode",implemented:!0,hidden:!1,cat:"core"},"Startup Error Modal":{id:"fork-ps-1",info:"Show a modal with plugin/theme errors on startup",implemented:!0,hidden:!1,cat:"fork"},"Show Toasts":{id:"fork-ps-2",info:"Shows a small notification for starting and stopping plugins & themes",implemented:!0,hidden:!1,cat:"fork"},"Scroll To Settings":{id:"fork-ps-3",info:"Auto-scrolls to a plugin's settings when the button is clicked (only if out of view)",implemented:!0,hidden:!1,cat:"fork"},"Animate On Hover":{id:"fork-es-2",info:"Only animate the emote modifiers on hover",implemented:!0,hidden:!1,cat:"fork"},"Copy Selector":{id:"fork-dm-1",info:"Adds a \"Copy Selector\" option to context menus when developer mode is active",implemented:!0,hidden:!1,cat:"fork"},"Download Emotes":{id:"fork-es-3",info:"Download emotes when the cache is expired",implemented:!0,hidden:!1,cat:"fork"},"Normalize Classes":{id:"fork-ps-4",info:"Adds stable classes to elements to help themes. (e.g. adds .da-channels to .channels-Ie2l6A)",implemented:!0,hidden:!1,cat:"fork"},"Twitch Emotes":{id:"bda-es-7",info:"Show Twitch emotes",implemented:!0,hidden:!1,cat:"emote"},"FrankerFaceZ Emotes":{id:"bda-es-1",info:"Show FrankerFaceZ Emotes",implemented:!0,hidden:!1,cat:"emote"},"BetterTTV Emotes":{id:"bda-es-2",info:"Show BetterTTV Emotes",implemented:!0,hidden:!1,cat:"emote"},"Emote Menu":{id:"bda-es-0",info:"Show Twitch/Favourite emotes in emote menu",implemented:!0,hidden:!1,cat:"emote"},"Emoji Menu":{id:"bda-es-9",info:"Show Discord emoji menu",implemented:!0,hidden:!1,cat:"emote"},"Emote Autocomplete":{id:"bda-es-3",info:"Autocomplete emote commands",implemented:!1,hidden:!1,cat:"emote"},"Emote Auto Capitalization":{id:"bda-es-4",info:"Autocapitalize emote commands",implemented:!0,hidden:!1,cat:"emote"},"Show Names":{id:"bda-es-6",info:"Show emote names on hover",implemented:!0,hidden:!1,cat:"emote"},"Show emote modifiers":{id:"bda-es-8",info:"Enable emote mods (flip, spin, pulse, spin2, spin3, 1spin, 2spin, 3spin, tr, bl, br, shake, shake2, shake3, flap)",implemented:!0,hidden:!1,cat:"emote"}},defaultCookie={"bda-gs-0":!1,"bda-gs-1":!0,"bda-gs-2":!1,"bda-gs-3":!1,"bda-gs-4":!1,"bda-gs-5":!0,"bda-gs-6":!1,"bda-gs-7":!1,"bda-gs-8":!1,"bda-es-0":!0,"bda-es-1":!0,"bda-es-2":!0,"bda-es-3":!1,"bda-es-4":!1,"bda-es-5":!0,"bda-es-6":!0,"bda-es-7":!0,"bda-gs-b":!1,"bda-es-8":!0,"bda-jd":!0,"bda-dc-0":!1,"bda-css-0":!1,"bda-css-1":!1,"bda-es-9":!0,"fork-dm-1":!1,"fork-ps-1":!0,"fork-ps-2":!0,"fork-ps-3":!0,"fork-ps-4":!0,"fork-es-2":!1,"fork-es-3":!0},settingsCookie={},bdpluginErrors,bdthemeErrors,bdConfig=null;function Core(t){window.bdConfig=t}var classNormalizer;Core.prototype.init=async function(){return bdConfig.version
Please download the latest version from BetterDiscord.net"):void(bdConfig.updater.LatestVersion>bdConfig.version&&this.alert("Update Available",` +(function(){let o=window.require("fs"),l=window.require("process"),d=l.platform,u=("win32"===d?l.env.APPDATA:"darwin"===d?l.env.HOME+"/Library/Preferences":process.env.HOME+"/.config")+"/BetterDiscord/",h="localStorage.json",g={};if(o.existsSync(`${u}${h}`))try{g=JSON.parse(o.readFileSync(`${u}${h}`))}catch(C){console.log(C)}else if(o.existsSync(h))try{g=JSON.parse(o.readFileSync(h))}catch(C){console.log(C)}var y=g;y.setItem=function(C,S){y[C]=S,this.save()},y.getItem=function(C){return y[C]||null},y.save=function(){o.writeFileSync(`${u}${h}`,JSON.stringify(this),null,4)};var E=new Proxy(y,{set:function(C,S,x){y[S]=x,y.save()},get:function(C,S){return y[S]||null}});window.localStorage=E})(),(()=>{let o=document.createElement("div");o.className="bd-loaderv2",o.title="BetterDiscord is loading...",document.body.appendChild(o)})();var DataStore=(()=>{const o=require("fs"),l=require("path"),d=DiscordNative.globals.releaseChannel;return new class{constructor(){this.data={settings:{stable:{},canary:{},ptb:{}}},this.pluginData={}}initialize(){if(o.existsSync(this.BDFile)?this.data=require(this.BDFile):o.writeFileSync(this.BDFile,JSON.stringify(this.data,null,4)),!!o.existsSync(this.settingsFile)){let h=require(this.settingsFile);o.unlinkSync(this.settingsFile),h=h.hasOwnProperty("settings")?Object.assign({stable:{},canary:{},ptb:{}},{[d]:h}):Object.assign({stable:{},canary:{},ptb:{}},h),this.setBDData("settings",h)}}get BDFile(){return this._BDFile||(this._BDFile=l.resolve(bdConfig.dataPath,"bdstorage.json"))}get settingsFile(){return this._settingsFile||(this._settingsFile=l.resolve(bdConfig.dataPath,"bdsettings.json"))}getPluginFile(h){return l.resolve(ContentManager.pluginsFolder,h+".config.json")}getSettingGroup(h){return this.data.settings[d][h]||null}setSettingGroup(h,g){this.data.settings[d][h]=g,o.writeFileSync(this.BDFile,JSON.stringify(this.data,null,4))}getBDData(h){return this.data[h]||""}setBDData(h,g){this.data[h]=g,o.writeFileSync(this.BDFile,JSON.stringify(this.data,null,4))}getPluginData(h,g){return void 0===this.pluginData[h]?o.existsSync(this.getPluginFile(h))?(this.pluginData[h]=JSON.parse(o.readFileSync(this.getPluginFile(h))),this.pluginData[h][g]||void 0):void 0:this.pluginData[h][g]||void 0}setPluginData(h,g,y){void 0===y||(this.pluginData[h]===void 0&&(this.pluginData[h]={}),this.pluginData[h][g]=y,o.writeFileSync(this.getPluginFile(h),JSON.stringify(this.pluginData[h],null,4)))}deletePluginData(h,g){this.pluginData[h]===void 0&&(this.pluginData[h]={}),delete this.pluginData[h][g],o.writeFileSync(this.getPluginFile(h),JSON.stringify(this.pluginData[h],null,4))}}})();window.bdStorage=class{static get(l){return Utils.warn("[Deprecation Notice] Please use BdApi.getBDData(). bdStorage may be removed in future versions."),DataStore.getBDData(l)}static set(l,d){Utils.warn("[Deprecation Notice] Please use BdApi.setBDData(). bdStorage may be removed in future versions."),DataStore.setBDData(l,d)}},window.bdPluginStorage=class{static get(l,d){return Utils.warn(`[Deprecation Notice] Please use BdApi.loadData() or BdApi.getData(). bdPluginStorage may be removed in future versions.`),DataStore.getPluginData(l,d)||null}static set(l,d,u){return Utils.warn("[Deprecation Notice] Please use BdApi.saveData() or BdApi.setData(). bdPluginStorage may be removed in future versions."),"undefined"==typeof value?Utils.warn("Trying to set undefined value in plugin "+l):void DataStore.setPluginData(l,d,u)}static delete(l,d){Utils.warn("[Deprecation Notice] Please use BdApi.deleteData(). bdPluginStorage may be removed in future versions."),DataStore.deletePluginData(l,d)}};var settingsPanel,emoteModule,quickEmoteMenu,voiceMode,pluginModule,themeModule,dMode,publicServersModule,minSupportedVersion="0.3.0",bbdVersion="0.2.2",mainCore,settings={"Save logs locally":{id:"bda-gs-0",info:"Saves chat logs locally",implemented:!1,hidden:!1,cat:"core"},"Public Servers":{id:"bda-gs-1",info:"Display public servers button",implemented:!0,hidden:!1,cat:"core"},"Minimal Mode":{id:"bda-gs-2",info:"Hide elements and reduce the size of elements.",implemented:!0,hidden:!1,cat:"core"},"Voice Mode":{id:"bda-gs-4",info:"Only show voice chat",implemented:!0,hidden:!1,cat:"core"},"Hide Channels":{id:"bda-gs-3",info:"Hide channels in minimal mode",implemented:!0,hidden:!1,cat:"core"},"Dark Mode":{id:"bda-gs-5",info:"Make certain elements dark by default(wip)",implemented:!0,hidden:!1,cat:"core"},"Override Default Emotes":{id:"bda-es-5",info:"Override default emotes",implemented:!1,hidden:!1,cat:"core"},"Voice Disconnect":{id:"bda-dc-0",info:"Disconnect from voice server when closing Discord",implemented:!0,hidden:!1,cat:"core"},"Custom css live update":{id:"bda-css-0",info:"",implemented:!0,hidden:!0,cat:"core"},"Custom css auto udpate":{id:"bda-css-1",info:"",implemented:!0,hidden:!0,cat:"core"},"24 Hour Timestamps":{id:"bda-gs-6",info:"Replace 12hr timestamps with proper ones",implemented:!0,hidden:!1,cat:"core"},"Coloured Text":{id:"bda-gs-7",info:"Make text colour the same as role colour",implemented:!0,hidden:!1,cat:"core"},"BetterDiscord Blue":{id:"bda-gs-b",info:"Replace Discord blue with BD Blue",implemented:!0,hidden:!1,cat:"core"},"Developer Mode":{id:"bda-gs-8",info:"Developer Mode",implemented:!0,hidden:!1,cat:"core"},"Startup Error Modal":{id:"fork-ps-1",info:"Show a modal with plugin/theme errors on startup",implemented:!0,hidden:!1,cat:"fork"},"Show Toasts":{id:"fork-ps-2",info:"Shows a small notification for important information",implemented:!0,hidden:!1,cat:"fork"},"Scroll To Settings":{id:"fork-ps-3",info:"Auto-scrolls to a plugin's settings when the button is clicked (only if out of view)",implemented:!0,hidden:!1,cat:"fork"},"Animate On Hover":{id:"fork-es-2",info:"Only animate the emote modifiers on hover",implemented:!0,hidden:!1,cat:"fork"},"Copy Selector":{id:"fork-dm-1",info:"Adds a \"Copy Selector\" option to context menus when developer mode is active",implemented:!0,hidden:!1,cat:"fork"},"Download Emotes":{id:"fork-es-3",info:"Download emotes when the cache is expired",implemented:!0,hidden:!1,cat:"fork"},"Normalize Classes":{id:"fork-ps-4",info:"Adds stable classes to elements to help themes. (e.g. adds .da-channels to .channels-Ie2l6A)",implemented:!0,hidden:!1,cat:"fork"},"Automatic Loading":{id:"fork-ps-5",info:"Automatically loads, reloads, and unloads plugins and themes",implemented:!0,hidden:!1,cat:"fork"},"Twitch Emotes":{id:"bda-es-7",info:"Show Twitch emotes",implemented:!0,hidden:!1,cat:"emote"},"FrankerFaceZ Emotes":{id:"bda-es-1",info:"Show FrankerFaceZ Emotes",implemented:!0,hidden:!1,cat:"emote"},"BetterTTV Emotes":{id:"bda-es-2",info:"Show BetterTTV Emotes",implemented:!0,hidden:!1,cat:"emote"},"Emote Menu":{id:"bda-es-0",info:"Show Twitch/Favourite emotes in emote menu",implemented:!0,hidden:!1,cat:"emote"},"Emoji Menu":{id:"bda-es-9",info:"Show Discord emoji menu",implemented:!0,hidden:!1,cat:"emote"},"Emote Autocomplete":{id:"bda-es-3",info:"Autocomplete emote commands",implemented:!1,hidden:!1,cat:"emote"},"Emote Auto Capitalization":{id:"bda-es-4",info:"Autocapitalize emote commands",implemented:!0,hidden:!1,cat:"emote"},"Show Names":{id:"bda-es-6",info:"Show emote names on hover",implemented:!0,hidden:!1,cat:"emote"},"Show emote modifiers":{id:"bda-es-8",info:"Enable emote mods (flip, spin, pulse, spin2, spin3, 1spin, 2spin, 3spin, tr, bl, br, shake, shake2, shake3, flap)",implemented:!0,hidden:!1,cat:"emote"}},defaultCookie={"bda-gs-0":!1,"bda-gs-1":!0,"bda-gs-2":!1,"bda-gs-3":!1,"bda-gs-4":!1,"bda-gs-5":!0,"bda-gs-6":!1,"bda-gs-7":!1,"bda-gs-8":!1,"bda-es-0":!0,"bda-es-1":!0,"bda-es-2":!0,"bda-es-3":!1,"bda-es-4":!1,"bda-es-5":!0,"bda-es-6":!0,"bda-es-7":!0,"bda-gs-b":!1,"bda-es-8":!0,"bda-dc-0":!1,"bda-css-0":!1,"bda-css-1":!1,"bda-es-9":!0,"fork-dm-1":!1,"fork-ps-1":!0,"fork-ps-2":!0,"fork-ps-3":!0,"fork-ps-4":!0,"fork-ps-5":!0,"fork-es-2":!1,"fork-es-3":!0},settingsCookie={},bdpluginErrors,bdthemeErrors,bdConfig=null;function Core(o){window.bdConfig=o}var classNormalizer;Core.prototype.init=async function(){return bdConfig.version
Please download the latest version from GitHub"):void(bdConfig.updater.LatestVersion>bdConfig.version&&this.alert("Update Available",` An update for BandagedBD is available (${bdConfig.updater.LatestVersion})! Please Reinstall!

Download Installer - `),Utils.log("Initializing Settings"),this.initSettings(),classNormalizer=new ClassNormalizer,emoteModule=new EmoteModule,quickEmoteMenu=new QuickEmoteMenu,Utils.log("Initializing EmoteModule"),window.emotePromise=emoteModule.init().then(()=>{emoteModule.initialized=!0,Utils.log("Initializing QuickEmoteMenu"),quickEmoteMenu.init()}),publicServersModule=new V2_PublicServers,voiceMode=new VoiceMode,dMode=new devMode,this.injectExternals(),await this.checkForGuilds(),Utils.log("Updating Settings"),settingsPanel=new V2_SettingsPanel,settingsPanel.updateSettings(),!bdpluginErrors&&(bdpluginErrors=[]),!bdthemeErrors&&(bdthemeErrors=[]),Utils.log("Loading Plugins"),pluginModule=new PluginModule,pluginModule.loadPlugins(),Utils.log("Loading Themes"),themeModule=new ThemeModule,themeModule.loadThemes(),$("#customcss").detach().appendTo(document.head),window.addEventListener("beforeunload",function(){settingsCookie["bda-dc-0"]&&document.querySelector(".btn.btn-disconnect").click()}),publicServersModule.initialize(),emoteModule.autoCapitalize(),Utils.log("Removing Loading Icon"),document.getElementsByClassName("bd-loaderv2")[0].remove(),Utils.log("Initializing Main Observer"),this.initObserver(),settingsCookie["fork-ps-1"]&&(Utils.log("Collecting Startup Errors"),this.showStartupErrors()))},Core.prototype.checkForGuilds=function(){return new Promise(t=>{const a=function(){return 0").html(atob(window.bdStorage.get("bdcustomcss"))).appendTo(document.head),defaultCookie)void 0==settingsCookie[t]&&(settingsCookie[t]=defaultCookie[t],this.saveSettings())},Core.prototype.saveSettings=function(){bdSettingsStorage.set("settings",settingsCookie)},Core.prototype.loadSettings=function(){settingsCookie=bdSettingsStorage.get("settings")},Core.prototype.initObserver=function(){const t=new MutationObserver(a=>{for(let l,o=0,d=a.length;o{if(settingsCookie["bda-gs-6"]){const o=a.returnValue.match(t);return o&&4===o.length?"AM"===o[3]?a.returnValue=a.returnValue.replace(o[0],`${"12"===o[1]?"00":o[1].padStart(2,"0")}:${o[2]}`):a.returnValue=a.returnValue.replace(o[0],`${parseInt(o[1])+12}:${o[2]}`):void 0}}})}},Core.prototype.injectColoredText=function(){this.cancelColoredText||(this.cancelColoredText=Utils.monkeyPatch(BDV2.MessageContentComponent.prototype,"render",{after:t=>{settingsCookie["bda-gs-7"]&&Utils.monkeyPatch(t.returnValue.props,"children",{silent:!0,after:({returnValue:a})=>{const o=a.props.children[1],d=t.thisObject.props.message.colorString;return o&&d&&(o.props.style={color:d}),a}})}}))},Core.prototype.removeColoredText=function(){document.querySelectorAll(".markup-2BOw-j").forEach(t=>{t.style.setProperty("color","")})},Core.prototype.alert=function(t,a){let o=$(`
+ `),Utils.log("Initializing Settings"),this.initSettings(),classNormalizer=new ClassNormalizer,emoteModule=new EmoteModule,quickEmoteMenu=new QuickEmoteMenu,Utils.log("Initializing EmoteModule"),window.emotePromise=emoteModule.init().then(()=>{emoteModule.initialized=!0,Utils.log("Initializing QuickEmoteMenu"),quickEmoteMenu.init()}),publicServersModule=new V2_PublicServers,voiceMode=new VoiceMode,dMode=new devMode,this.injectExternals(),await this.checkForGuilds(),Utils.log("Updating Settings"),settingsPanel=new V2_SettingsPanel,settingsPanel.updateSettings(),!bdpluginErrors&&(bdpluginErrors=[]),!bdthemeErrors&&(bdthemeErrors=[]),Utils.log("Loading Plugins"),pluginModule=new PluginModule,pluginModule.loadPlugins(),Utils.log("Loading Themes"),themeModule=new ThemeModule,themeModule.loadThemes(),$("#customcss").detach().appendTo(document.head),window.addEventListener("beforeunload",function(){settingsCookie["bda-dc-0"]&&document.querySelector(".btn.btn-disconnect").click()}),publicServersModule.initialize(),emoteModule.autoCapitalize(),Utils.log("Removing Loading Icon"),document.getElementsByClassName("bd-loaderv2")[0].remove(),Utils.log("Initializing Main Observer"),this.initObserver(),settingsCookie["fork-ps-1"]&&(Utils.log("Collecting Startup Errors"),this.showStartupErrors({plugins:bdpluginErrors,themes:bdthemeErrors})),!DataStore.getBDData("RNMAnnouncement")&&(DataStore.setBDData("RNMAnnouncement",!0),this.alert("Significant Changes",` + The lastest release of BBD has made a lot of improvements including being able to automatically load, unload, and reload plugins and themes.

+ If you had the RestartNoMore plugin, I suggest removing it (or turning off BBD's loader in settings) so things aren't being loaded multiple times. + `)))},Core.prototype.checkForGuilds=function(){return new Promise(o=>{const l=function(){return 0").html(atob(DataStore.getBDData("bdcustomcss"))).appendTo(document.head),defaultCookie)void 0==settingsCookie[o]&&(settingsCookie[o]=defaultCookie[o],this.saveSettings())},Core.prototype.saveSettings=function(){DataStore.setSettingGroup("settings",settingsCookie)},Core.prototype.loadSettings=function(){settingsCookie=DataStore.getSettingGroup("settings")},Core.prototype.initObserver=function(){const o=new MutationObserver(l=>{for(let h,d=0,u=l.length;d{if(settingsCookie["bda-gs-6"]){const d=l.returnValue.match(o);return d&&4===d.length?"AM"===d[3]?l.returnValue=l.returnValue.replace(d[0],`${"12"===d[1]?"00":d[1].padStart(2,"0")}:${d[2]}`):l.returnValue=l.returnValue.replace(d[0],`${"12"===d[1]?"12":parseInt(d[1])+12}:${d[2]}`):void 0}}})}},Core.prototype.injectColoredText=function(){this.cancelColoredText||(this.cancelColoredText=Utils.monkeyPatch(BDV2.MessageContentComponent.prototype,"render",{after:o=>{settingsCookie["bda-gs-7"]&&Utils.monkeyPatch(o.returnValue.props,"children",{silent:!0,after:({returnValue:l})=>{const d=l.props.children[1],u=o.thisObject.props.message.colorString;return d&&u&&(d.props.style={color:u}),l}})}}))},Core.prototype.removeColoredText=function(){document.querySelectorAll(".markup-2BOw-j").forEach(o=>{o.style.setProperty("color","")})},Core.prototype.alert=function(o,l){let d=$(`
-
`);o.find(".footer button").on("click",()=>{o.addClass("closing"),setTimeout(()=>{o.remove()},300)}),o.find(".bd-backdrop").on("click",()=>{o.addClass("closing"),setTimeout(()=>{o.remove()},300)}),o.appendTo("#app-mount")},Core.prototype.showStartupErrors=function(){function t(d){let l=$(`
`);for(let u of d){let h=$(`
-
${u.name?u.name:u.file}
-
${u.reason}
- -
`);l.append(h),u.error&&h.find("a").on("click",g=>{g.preventDefault(),Utils.err(`Error details for ${u.name?u.name:u.file}.`,u.error)})}return l}if(bdpluginErrors&&bdthemeErrors&&(bdpluginErrors.length||bdthemeErrors.length)){let a=$(`
+
`);d.find(".footer button").on("click",()=>{d.addClass("closing"),setTimeout(()=>{d.remove()},300)}),d.find(".bd-backdrop").on("click",()=>{d.addClass("closing"),setTimeout(()=>{d.remove()},300)}),d.appendTo("#app-mount")},Core.prototype.showStartupErrors=function({plugins:o,themes:l}){function d(g){let y=$(`
`);for(let E of g){let C=$(`
+
${E.name?E.name:E.file}
+
${E.reason}
+ +
`);y.append(C),E.error&&C.find("a").on("click",S=>{S.preventDefault(),Utils.err(`Error details for ${E.name?E.name:E.file}.`,E.error)})}return y}if(o&&l&&(o.length||l.length)){let u=$(`
-
`),o=[t(bdpluginErrors),t(bdthemeErrors)];a.find(".tab-bar-item").on("click",d=>{d.preventDefault(),a.find(".tab-bar-item").removeClass("selected"),$(d.target).addClass("selected"),a.find(".scroller").empty().append(o[$(d.target).index()])}),a.find(".footer button").on("click",()=>{a.addClass("closing"),setTimeout(()=>{a.remove()},300)}),a.find(".bd-backdrop").on("click",()=>{a.addClass("closing"),setTimeout(()=>{a.remove()},300)}),a.appendTo("#app-mount"),a.find(".tab-bar-item")[0].click()}},Core.prototype.showToast=function(t,a={}){if(bdConfig.deferLoaded){if(!document.querySelector(".bd-toasts")){let h=document.createElement("div");h.classList.add("bd-toasts");let g=document.querySelector(".chat-3bRxxu form, #friends, .noChannel-Z1DQK7, .activityFeed-28jde9");h.style.setProperty("left",g?g.getBoundingClientRect().left+"px":"0px"),h.style.setProperty("width",g?g.offsetWidth+"px":"100%"),h.style.setProperty("bottom",(document.querySelector(".chat-3bRxxu form")?document.querySelector(".chat-3bRxxu form").offsetHeight:80)+"px"),document.querySelector(".app").appendChild(h)}const{type:o="",icon:d=!0,timeout:l=3e3}=a;let u=document.createElement("div");u.classList.add("bd-toast"),o&&u.classList.add("toast-"+o),o&&d&&u.classList.add("icon"),u.innerText=t,document.querySelector(".bd-toasts").appendChild(u),setTimeout(()=>{u.classList.add("closing"),setTimeout(()=>{u.remove(),document.querySelectorAll(".bd-toasts .bd-toast").length||document.querySelector(".bd-toasts").remove()},300)},l)}},window.emotesFfz={},window.emotesBTTV={},window.emotesBTTV2={},window.emotesTwitch={},window.subEmotesTwitch={},window.bdEmotes={TwitchGlobal:{},TwitchSubscriber:{},BTTV:{},FrankerFaceZ:{},BTTV2:{}},window.bdEmoteSettingIDs={TwitchGlobal:"bda-es-7",TwitchSubscriber:"bda-es-7",BTTV:"bda-es-2",FrankerFaceZ:"bda-es-1",BTTV2:"bda-es-2"};function EmoteModule(){}EmoteModule.prototype.init=async function(){this.modifiers=["flip","spin","pulse","spin2","spin3","1spin","2spin","3spin","tr","bl","br","shake","shake2","shake3","flap"],this.overrides=["twitch","bttv","ffz"],this.categories=["TwitchGlobal","TwitchSubscriber","BTTV","BTTV2","FrankerFaceZ"];let t={TwitchGlobal:{url:"https://twitchemotes.com/api_cache/v3/global.json",backup:"https://cdn.staticaly.com/gh/rauenzi/BetterDiscordApp/master/data/emotedata_twitch_global.json",variable:"TwitchGlobal",oldVariable:"emotesTwitch",getEmoteURL:a=>`https://static-cdn.jtvnw.net/emoticons/v1/${a.id}/1.0`,getOldData:(a,o)=>{return{id:a.match(/\/([0-9]+)\//)[1],code:o,emoticon_set:0,description:null}}},TwitchSubscriber:{url:"https://twitchemotes.com/api_cache/v3/subscriber.json",backup:"https://cdn.staticaly.com/gh/rauenzi/BetterDiscordApp/master/data/emotedata_twitch_subscriber.json",variable:"TwitchSubscriber",oldVariable:"subEmotesTwitch",parser:a=>{let o={};for(let d in a){let l=a[d];for(let g,u=0,h=l.emotes.length;u{return a},getEmoteURL:a=>`https://static-cdn.jtvnw.net/emoticons/v1/${a}/1.0`,getOldData:a=>a.match(/\/([0-9]+)\//)[1]},FrankerFaceZ:{url:"https://cdn.staticaly.com/gh/rauenzi/BetterDiscordApp/master/data/emotedata_ffz.json",variable:"FrankerFaceZ",oldVariable:"emotesFfz",getEmoteURL:a=>`https://cdn.frankerfacez.com/emoticon/${a}/1`,getOldData:a=>a.match(/\/([0-9]+)\//)[1]},BTTV:{url:"https://api.betterttv.net/emotes",variable:"BTTV",oldVariable:"emotesBTTV",parser:a=>{let o={};for(let u,d=0,l=a.emotes.length;d`${a}`,getOldData:a=>a},BTTV2:{url:"https://cdn.staticaly.com/gh/rauenzi/BetterDiscordApp/master/data/emotedata_bttv.json",variable:"BTTV2",oldVariable:"emotesBTTV2",getEmoteURL:a=>`https://cdn.betterttv.net/emote/${a}/1x`,getOldData:a=>a.match(/emote\/(.+)\//)[1]}};for(await this.getBlacklist(),await this.loadEmoteData(t);!BDV2.MessageContentComponent;)await new Promise(a=>setTimeout(a,100));this.cancelEmoteRender||(this.cancelEmoteRender=Utils.monkeyPatch(BDV2.MessageContentComponent.prototype,"render",{after:({returnValue:a})=>{Utils.monkeyPatch(a.props,"children",{silent:!0,after:({returnValue:o})=>{const d=o.props.children[1];if(d.props.children){const l=d.props.children[1];if(l&&l.length){for(let h=0;hV.length)){this.modifiers.includes(z)&&settingsCookie["bda-es-8"]||(z=""),this.overrides.includes(U)?z=U:U="";let W=this.categories[O];if("twitch"===U?window.bdEmotes.TwitchGlobal[V]?W="TwitchGlobal":window.bdEmotes.TwitchSubscriber[V]&&(W="TwitchSubscriber"):"bttv"===U?window.bdEmotes.BTTV[V]?W="BTTV":window.bdEmotes.BTTV2[V]&&(W="BTTV2"):"ffz"==U&&window.bdEmotes.FrankerFaceZ[V]&&(W="FrankerFaceZ"),window.bdEmotes[W][V]&&settingsCookie[window.bdEmoteSettingIDs[W]]){const H=l[h].match(new RegExp(`([\\s]|^)${Utils.escape(z?V+":"+z:V)}([\\s]|$)`));if(H){const Z=l[h].substring(0,H.index+H[1].length),J=l[h].substring(H.index+H[0].length-H[2].length);l[h]=Z;const K=BDV2.react.createElement(BDEmote,{name:V,url:window.bdEmotes[W][V],modifier:z});l.splice(h+1,0,J),l.splice(h+1,0,K)}}}}}}const u=l.every(h=>{return"string"==typeof h&&""==h.replace(/\s*/,"")||h.type&&"BDEmote"==h.type.name||h.props&&h.props.children&&h.props.children.props&&h.props.children.props.emojiName});if(u)for(let h of l)"object"==typeof h&&("BDEmote"==h.type.name?h.props.jumboable=!0:h.props&&h.props.children&&h.props.children.props&&h.props.children.props.emojiName&&(h.props.children.props.jumboable=!0))}}}})}}))},EmoteModule.prototype.clearEmoteData=async function(){let t=require("fs"),o=bdConfig.dataPath+"emote_data.json",d=t.existsSync(o);d&&t.unlinkSync(o),window.bdStorage.set("emoteCacheDate",new Date().toJSON()),window.bdEmotes={TwitchGlobal:{},TwitchSubscriber:{},BTTV:{},FrankerFaceZ:{},BTTV2:{}}},EmoteModule.prototype.goBack=async function(t){for(let a in t)for(let o in window.bdEmotes[t[a].variable])window[t[a].oldVariable][o]=t[a].getOldData(window.bdEmotes[t[a].variable][o],o)},EmoteModule.prototype.isCacheValid=function(){const t=new Date(window.bdStorage.get("emoteCacheDate")||null),a=new Date,o=Math.round(Math.abs((a.getTime()-t.getTime())/86400000));return!(o>bdConfig.cache.days)||(window.bdStorage.set("emoteCacheDate",a.toJSON()),!1)},EmoteModule.prototype.loadEmoteData=async function(t){const a=require("fs"),d=bdConfig.dataPath+"emote_data.json",l=a.existsSync(d);if(l&&this.isCacheValid()){settingsCookie["fork-ps-2"]&&mainCore.showToast("Loading emotes from cache.",{type:"info"}),Utils.log("[Emotes] Loading emotes from local cache.");const u=await new Promise(g=>{a.readFile(d,"utf8",(b,f)=>{Utils.log("[Emotes] Emotes loaded from cache."),b&&(f={}),g(f)})});let h=Utils.testJSON(u);for(const g in h&&(window.bdEmotes=JSON.parse(u)),t)h=0setTimeout(g,1e3));let h=await this.downloadEmotes(t[u]);window.bdEmotes[t[u].variable]=h}settingsCookie["fork-ps-2"]&&mainCore.showToast("All emotes successfully downloaded.",{type:"success"});try{a.writeFileSync(d,JSON.stringify(window.bdEmotes),"utf8")}catch(u){Utils.err("[Emotes] Could not save emote data.",u)}quickEmoteMenu.init()},EmoteModule.prototype.downloadEmotes=function(t){let a=require("request"),o={url:t.url,timeout:t.timeout?t.timeout:5e3};return Utils.log("[Emotes] Downloading: "+t.variable),new Promise((d,l)=>{a(o,(u,h,g)=>{if(u)return Utils.err("[Emotes] Could not download "+t.variable,u),t.backup?(t.url=t.backup,t.backup=null,t.backupParser&&(t.parser=t.backupParser),d(this.downloadEmotes(t))):l({});let b={};try{b=JSON.parse(g)}catch(f){return Utils.err("[Emotes] Could not download "+t.variable,u),t.backup?(t.url=t.backup,t.backup=null,t.backupParser&&(t.parser=t.backupParser),d(this.downloadEmotes(t))):l({})}for(let f in"function"==typeof t.parser&&(b=t.parser(b)),b)b[f]=t.getEmoteURL(b[f]);d(b),Utils.log("[Emotes] Downloaded: "+t.variable)})})},EmoteModule.prototype.getBlacklist=function(){return new Promise(t=>{$.getJSON("https://cdn.staticaly.com/gh/rauenzi/BetterDiscordApp/master/data/emotefilter.json",function(a){t(bemotes=a.blacklist)})})};var bemotes=[];EmoteModule.prototype.autoCapitalize=function(){$("body").delegate($(".channelTextArea-1LDbYG textarea:first"),"keyup change paste",()=>{if(settingsCookie["bda-es-4"]){var t=$(".channelTextArea-1LDbYG textarea:first").val();if(void 0!=t){var a=t.split(" ").pop();if(3",a+=" ",a+=" ",a+="
",this.qmeHeader=a;var o="";o+="
",o+="
",o+="
",o+="
";var d="";for(let u in window.bdEmotes.TwitchGlobal)window.bdEmotes.TwitchGlobal.hasOwnProperty(u)&&(d=window.bdEmotes.TwitchGlobal[u],o+="
",o+=" \"\"",o+=" ",o+="
");o+="
",o+="
",o+="
",o+="
",this.teContainer=o;var l="";for(let u in l+="
",l+="
",l+="
",l+="
",this.favoriteEmotes)d=this.favoriteEmotes[u],l+="
",l+=" \"\"",l+=" ",l+="
";l+="
",l+="
",l+="
",l+="
",this.faContainer=l},QuickEmoteMenu.prototype.favContext=function(t,a){t.stopPropagation();var o=$("
",{id:"rmenu","data-emoteid":$(a).prop("title"),text:"Remove","class":"context-menu theme-dark"});return o.css({top:t.pageY-$("#bda-qem-favourite-container").offset().top,left:t.pageX-$("#bda-qem-favourite-container").offset().left}),$(a).parent().append(o),o.on("click",function(d){return d.preventDefault(),d.stopPropagation(),$(this).remove(),delete quickEmoteMenu.favoriteEmotes[$(this).data("emoteid")],quickEmoteMenu.updateFavorites(),!1}),!1},QuickEmoteMenu.prototype.switchHandler=function(t){this.switchQem($(t).attr("id"))},QuickEmoteMenu.prototype.switchQem=function(t){var a=$("#bda-qem-twitch"),o=$("#bda-qem-favourite"),d=$("#bda-qem-emojis");a.removeClass("active"),o.removeClass("active"),d.removeClass("active"),$(".emojiPicker-3m1S-j").hide(),$("#bda-qem-favourite-container").hide(),$("#bda-qem-twitch-container").hide();"bda-qem-twitch"===t?(a.addClass("active"),$("#bda-qem-twitch-container").show()):"bda-qem-favourite"===t?(o.addClass("active"),$("#bda-qem-favourite-container").show()):"bda-qem-emojis"===t?(d.addClass("active"),$(".emojiPicker-3m1S-j").show(),$(".emojiPicker-3m1S-j .search-bar-inner input, .emojiPicker-3m1S-j .search-bar-inner input").focus()):void 0;this.lastTab=t;var l=$(".emote-icon");l.off(),l.on("click",function(){var u=$(this).attr("title"),h=Utils.getTextArea();Utils.insertText(h[0]," "==h.val().slice(-1)?h.val()+u:h.val()+" "+u)})},QuickEmoteMenu.prototype.obsCallback=function(t){var a=$(t);settingsCookie["bda-es-9"]?a.removeClass("bda-qme-hidden"):a.addClass("bda-qme-hidden");settingsCookie["bda-es-0"]&&(a.prepend(this.qmeHeader),a.append(this.teContainer),a.append(this.faContainer),this.lastTab==void 0&&(this.lastTab="bda-qem-favourite"),this.switchQem(this.lastTab))},QuickEmoteMenu.prototype.favorite=function(t,a){this.favoriteEmotes.hasOwnProperty(t)||(this.favoriteEmotes[t]=a),this.updateFavorites()},QuickEmoteMenu.prototype.updateFavorites=function(){var t="";for(var a in t+="
",t+="
",t+="
",t+="
",this.favoriteEmotes){var o=this.favoriteEmotes[a];t+="
",t+=" \"\"",t+=" ",t+="
"}t+="
",t+="
",t+="
",t+="
",this.faContainer=t,$("#bda-qem-favourite-container").replaceWith(t),window.bdStorage.set("bdfavemotes",btoa(JSON.stringify(this.favoriteEmotes)))};var Utils=class{static getTextArea(){return $(".channelTextArea-1LDbYG textarea")}static insertText(t,a){t.focus(),t.selectionStart=0,t.selectionEnd=t.value.length,document.execCommand("insertText",!1,a)}static injectCss(t){$("",{type:"text/css",rel:"stylesheet",href:t}).appendTo($("head"))}static injectJs(t){$("