diff --git a/dist/fansubid/browser/common.0413597e2255e937.js b/dist/fansubid/browser/common.0413597e2255e937.js
deleted file mode 100644
index 5531f8cad..000000000
--- a/dist/fansubid/browser/common.0413597e2255e937.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunkfansubid=self.webpackChunkfansubid||[]).push([[592],{3331:(y,E,r)=>{"use strict";r.d(E,{B:()=>l});var e=r(5934),u=r(5e3),S=r(8696);let l=(()=>{class h{constructor(a){this.gs=a}get GS(){return this.gs}ngOnInit(){}get discordUrl(){return e.N.discord.join_url}get discordGuildId(){return e.N.discord.guild_id}}return h.\u0275fac=function(a){return new(a||h)(u.Y36(S.U))},h.\u0275cmp=u.Xpm({type:h,selectors:[["app-banner-discord"]],decls:9,vars:3,consts:[[1,"row"],[1,"col-12","sticky-top","bg-bifeldy"],[1,"pt-3","border-bottom-dotted"],[1,"text-bifeldy"],[1,"col-12"],[1,"gradient-border","rgb-border","mx-2","mb-2"],["target","_blank",3,"href"],[1,"w-100",3,"src"]],template:function(a,f){1&a&&(u.TgZ(0,"div",0)(1,"div",1)(2,"h2",2)(3,"b",3),u._uU(4,"Yuk Gabung Obrolan!"),u.qZA()()(),u.TgZ(5,"div",4)(6,"p",5)(7,"a",6),u._UZ(8,"img",7),u.qZA()()()()),2&a&&(u.xp6(7),u.s9C("href",f.discordUrl,u.LSH),u.xp6(1),u.hYB("src","https://discord.com/api/guilds/",f.discordGuildId,"/widget.png?style=banner",f.GS.gridListBreakpoint,"",u.LSH))},styles:[""]}),h})()},4854:(y,E,r)=>{"use strict";r.d(E,{R:()=>S});var e=r(9808),u=r(5e3);let S=(()=>{class l{}return l.\u0275fac=function(d){return new(d||l)},l.\u0275mod=u.oAB({type:l}),l.\u0275inj=u.cJS({imports:[[e.ez]]}),l})()},913:(y,E,r)=>{"use strict";r.d(E,{g:()=>h});var e=r(9808),u=r(8406),S=r(210),l=r(5e3);let h=(()=>{class d{}return d.\u0275fac=function(f){return new(f||d)},d.\u0275mod=l.oAB({type:d}),d.\u0275inj=l.cJS({imports:[[e.ez,u.Bz,S.m]]}),d})()},8921:(y,E,r)=>{"use strict";r.d(E,{X:()=>b});var e=r(5e3),u=r(8696),S=r(8381),l=r(9808);function h(t,_){if(1&t&&(e.TgZ(0,"p",6),e._uU(1," Portal :: "),e.TgZ(2,"span",8),e._uU(3),e.qZA()()),2&t){const i=e.oxw();e.xp6(3),e.hij(" ",null==i.SS.github?null:i.SS.github.sha," ")}}function d(t,_){if(1&t&&(e.TgZ(0,"p",6),e._uU(1," Date :: "),e.TgZ(2,"span",8),e._uU(3),e.ALo(4,"date"),e.qZA()()),2&t){const i=e.oxw();e.xp6(3),e.hij(" ",e.xi3(4,1,null==i.SS.github||null==i.SS.github.commit||null==i.SS.github.commit.author?null:i.SS.github.commit.author.date,"d MMM y, hh:mm:ss a z")," ")}}function a(t,_){if(1&t&&(e.TgZ(0,"p",6),e._uU(1," Commiter :: "),e.TgZ(2,"span",7)(3,"a",9),e._uU(4),e.qZA()()()),2&t){const i=e.oxw();e.xp6(3),e.MGl("href","https://github.com/",null==i.SS.github||null==i.SS.github.commit||null==i.SS.github.commit.author?null:i.SS.github.commit.author.name,"",e.LSH),e.xp6(1),e.hij(" ",null==i.SS.github||null==i.SS.github.commit||null==i.SS.github.commit.author?null:i.SS.github.commit.author.name," ")}}function f(t,_){if(1&t&&(e.TgZ(0,"p",6),e._uU(1," Message :: "),e.TgZ(2,"span",7),e._uU(3),e.qZA()()),2&t){const i=e.oxw();e.xp6(3),e.hij(" ",null==i.SS.github||null==i.SS.github.commit?null:i.SS.github.commit.message," ")}}function M(t,_){if(1&t&&(e.TgZ(0,"p",6),e._uU(1," Socket :: "),e.TgZ(2,"span",8),e._uU(3),e.qZA()()),2&t){const i=e.oxw();e.xp6(3),e.hij(" ",null!=i.SS.mySocket&&i.SS.mySocket.id?i.SS.mySocket.id:"Sambungan Terputus"," ")}}function s(t,_){if(1&t&&(e.TgZ(0,"p",6),e._uU(1," Latency :: "),e.TgZ(2,"span",8),e._uU(3),e.qZA()()),2&t){const i=e.oxw();e.xp6(3),e.hij(" ",i.SS.latency," ms ")}}function c(t,_){if(1&t&&(e.TgZ(0,"p",6),e._uU(1," Nodes :: "),e.TgZ(2,"span",8),e._uU(3),e.qZA()()),2&t){const i=e.oxw();e.xp6(3),e.hij(" ",i.SS.visitor," Koneksi ")}}let b=(()=>{class t{constructor(i,p){this.gs=i,this.ss=p,this.currentServer=null,this.subsServer=null}get SS(){return this.ss}ngOnInit(){this.gs.isBrowser&&(this.subsServer=this.ss.currentServer.subscribe({next:i=>this.currentServer=i}))}ngOnDestroy(){var i;null===(i=this.subsServer)||void 0===i||i.unsubscribe()}}return t.\u0275fac=function(i){return new(i||t)(e.Y36(u.U),e.Y36(S.R))},t.\u0275cmp=e.Xpm({type:t,selectors:[["app-stats-server"]],decls:17,vars:8,consts:[[1,"row"],[1,"col-12","sticky-top","bg-bifeldy"],[1,"pt-3","border-bottom-dotted"],[1,"text-bifeldy"],[1,"col-12"],["class","px-2 text-truncate",4,"ngIf"],[1,"px-2","text-truncate"],[1,"text-warning"],[1,"text-success"],["target","_blank",1,"text-warning","text-decoration-none",3,"href"]],template:function(i,p){1&i&&(e.TgZ(0,"div",0)(1,"div",1)(2,"h2",2)(3,"b",3),e._uU(4,"Statistik Server"),e.qZA()()(),e.TgZ(5,"div",4),e.YNc(6,h,4,1,"p",5),e.YNc(7,d,5,4,"p",5),e.YNc(8,a,5,2,"p",5),e.YNc(9,f,4,1,"p",5),e.TgZ(10,"p",6),e._uU(11," Server :: "),e.TgZ(12,"span",7),e._uU(13),e.qZA()(),e.YNc(14,M,4,1,"p",5),e.YNc(15,s,4,1,"p",5),e.YNc(16,c,4,1,"p",5),e.qZA()()),2&i&&(e.xp6(6),e.Q6J("ngIf",null==p.SS.github?null:p.SS.github.sha),e.xp6(1),e.Q6J("ngIf",null==p.SS.github||null==p.SS.github.commit||null==p.SS.github.commit.author?null:p.SS.github.commit.author.date),e.xp6(1),e.Q6J("ngIf",null==p.SS.github||null==p.SS.github.commit||null==p.SS.github.commit.author?null:p.SS.github.commit.author.name),e.xp6(1),e.Q6J("ngIf",null==p.SS.github||null==p.SS.github.commit?null:p.SS.github.commit.message),e.xp6(4),e.hij(" ",null!=p.currentServer&&p.currentServer.isMaintenance?"Dalam Perbaikan":"Berjalan Normal"," "),e.xp6(1),e.Q6J("ngIf",p.SS.mySocket),e.xp6(1),e.Q6J("ngIf",p.SS.latency),e.xp6(1),e.Q6J("ngIf",p.SS.visitor))},directives:[l.O5],pipes:[l.uU],styles:[""]}),t})()},669:(y,E,r)=>{"use strict";r.d(E,{A:()=>S});var e=r(9808),u=r(5e3);let S=(()=>{class l{}return l.\u0275fac=function(d){return new(d||l)},l.\u0275mod=u.oAB({type:l}),l.\u0275inj=u.cJS({imports:[[e.ez]]}),l})()},7358:(y,E,r)=>{"use strict";r.d(E,{Y:()=>l});var e=r(5e3),u=r(9731),S=r(8696);let l=(()=>{class h{constructor(a,f){this.api=a,this.gs=f}getMailbox(a="inbox",f="",M=1,s=10,c="",b=""){return this.api.getData(`/mail-${a}?q=${f}&page=${M}&row=${s}&sort=${c}&order=${b}`)}getAllMail(a="",f=1,M=10,s="",c=""){return this.api.getData(`/mail?q=${a}&page=${f}&row=${M}&sort=${s}&order=${c}`)}getMail(a){return this.api.getData(`/mail/${a}`)}sendMail(a){return this.api.postData("/mail",a)}}return h.\u0275fac=function(a){return new(a||h)(e.LFG(u.s),e.LFG(S.U))},h.\u0275prov=e.Yz7({token:h,factory:h.\u0275fac,providedIn:"root"}),h})()},5679:(y,E,r)=>{"use strict";r.d(E,{Y:()=>l});var e=r(5e3),u=r(9731),S=r(8696);let l=(()=>{class h{constructor(a,f){this.api=a,this.gs=f}getProject(){return this.api.getData("/project-type")}createProject(a){return this.api.postData("/project-type",a)}deleteProject(a){return this.api.deleteData(`/project-type/${a}`)}}return h.\u0275fac=function(a){return new(a||h)(e.LFG(u.s),e.LFG(S.U))},h.\u0275prov=e.Yz7({token:h,factory:h.\u0275fac,providedIn:"root"}),h})()},4327:function(y,E){var u;void 0!==(u=function(){"use strict";function l(s,c,b){var t=new XMLHttpRequest;t.open("GET",s),t.responseType="blob",t.onload=function(){M(t.response,c,b)},t.onerror=function(){console.error("could not download file")},t.send()}function h(s){var c=new XMLHttpRequest;c.open("HEAD",s,!1);try{c.send()}catch(b){}return 200<=c.status&&299>=c.status}function d(s){try{s.dispatchEvent(new MouseEvent("click"))}catch(b){var c=document.createEvent("MouseEvents");c.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),s.dispatchEvent(c)}}var a="object"==typeof window&&window.window===window?window:"object"==typeof self&&self.self===self?self:"object"==typeof global&&global.global===global?global:void 0,f=a.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),M=a.saveAs||("object"!=typeof window||window!==a?function(){}:"download"in HTMLAnchorElement.prototype&&!f?function(s,c,b){var t=a.URL||a.webkitURL,_=document.createElement("a");_.download=c=c||s.name||"download",_.rel="noopener","string"==typeof s?(_.href=s,_.origin===location.origin?d(_):h(_.href)?l(s,c,b):d(_,_.target="_blank")):(_.href=t.createObjectURL(s),setTimeout(function(){t.revokeObjectURL(_.href)},4e4),setTimeout(function(){d(_)},0))}:"msSaveOrOpenBlob"in navigator?function(s,c,b){if(c=c||s.name||"download","string"!=typeof s)navigator.msSaveOrOpenBlob(function S(s,c){return void 0===c?c={autoBom:!1}:"object"!=typeof c&&(console.warn("Deprecated: Expected third argument to be a object"),c={autoBom:!c}),c.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(s.type)?new Blob(["\ufeff",s],{type:s.type}):s}(s,b),c);else if(h(s))l(s,c,b);else{var t=document.createElement("a");t.href=s,t.target="_blank",setTimeout(function(){d(t)})}}:function(s,c,b,t){if((t=t||open("","_blank"))&&(t.document.title=t.document.body.innerText="downloading..."),"string"==typeof s)return l(s,c,b);var _="application/octet-stream"===s.type,i=/constructor/i.test(a.HTMLElement)||a.safari,p=/CriOS\/[\d]+/.test(navigator.userAgent);if((p||_&&i||f)&&"undefined"!=typeof FileReader){var A=new FileReader;A.onloadend=function(){var C=A.result;C=p?C:C.replace(/^data:[^;]*;/,"data:attachment/file;"),t?t.location.href=C:location=C,t=null},A.readAsDataURL(s)}else{var w=a.URL||a.webkitURL,D=w.createObjectURL(s);t?t.location=D:location.href=D,t=null,setTimeout(function(){w.revokeObjectURL(D)},4e4)}});a.saveAs=M.saveAs=M,y.exports=M}.apply(E,[]))&&(y.exports=u)},3290:(y,E,r)=>{"use strict";r.d(E,{Vd:()=>C,a:()=>A,lQ:()=>T,wT:()=>i});var e=r(5e3),u=r(9808),S=r(9646),l=r(1135),h=r(3075);const d=new e.OlP("recaptcha-language"),a=new e.OlP("recaptcha-base-url"),f=new e.OlP("recaptcha-nonce-tag"),M=new e.OlP("recaptcha-settings"),s=new e.OlP("recaptcha-v3-site-key"),b_loadScript=function c(o,m,n,v,R){window.ng2recaptchaloaded=()=>{m(grecaptcha)};const g=document.createElement("script");g.innerHTML="",g.src=`${v||"https://www.google.com/recaptcha/api.js"}?render=${o}&onload=ng2recaptchaloaded${n}`,R&&(g.nonce=R),g.async=!0,g.defer=!0,document.head.appendChild(g)};let t=(()=>{class o{constructor(n,v,R,g,O){this.platformId=n,this.language=v,this.baseUrl=R,this.nonce=g,this.v3SiteKey=O,this.init(),this.ready=(0,u.NF)(this.platformId)?o.ready.asObservable():(0,S.of)()}init(){if(!o.ready&&(0,u.NF)(this.platformId)){const n=new l.X(null);o.ready=n,b_loadScript(this.v3SiteKey||"explicit",g=>n.next(g),this.language?"&hl="+this.language:"",this.baseUrl,this.nonce)}}}return o.ready=null,o.\u0275fac=function(n){return new(n||o)(e.LFG(e.Lbi),e.LFG(d,8),e.LFG(a,8),e.LFG(f,8),e.LFG(s,8))},o.\u0275prov=e.Yz7({token:o,factory:o.\u0275fac}),o})(),_=0,i=(()=>{class o{constructor(n,v,R,g){this.elementRef=n,this.loader=v,this.zone=R,this.id="ngrecaptcha-"+_++,this.errorMode="default",this.resolved=new e.vpe,this.error=new e.vpe,g&&(this.siteKey=g.siteKey,this.theme=g.theme,this.type=g.type,this.size=g.size,this.badge=g.badge)}ngAfterViewInit(){this.subscription=this.loader.ready.subscribe(n=>{null!=n&&n.render instanceof Function&&(this.grecaptcha=n,this.renderRecaptcha())})}ngOnDestroy(){this.grecaptchaReset(),this.subscription&&this.subscription.unsubscribe()}execute(){"invisible"===this.size&&(null!=this.widget?this.grecaptcha.execute(this.widget):this.executeRequested=!0)}reset(){null!=this.widget&&(this.grecaptcha.getResponse(this.widget)&&this.resolved.emit(null),this.grecaptchaReset())}get __unsafe_widgetValue(){return null!=this.widget?this.grecaptcha.getResponse(this.widget):null}expired(){this.resolved.emit(null)}errored(n){this.error.emit(n)}captchaResponseCallback(n){this.resolved.emit(n)}grecaptchaReset(){null!=this.widget&&this.zone.runOutsideAngular(()=>this.grecaptcha.reset(this.widget))}renderRecaptcha(){const n={badge:this.badge,callback:v=>{this.zone.run(()=>this.captchaResponseCallback(v))},"expired-callback":()=>{this.zone.run(()=>this.expired())},sitekey:this.siteKey,size:this.size,tabindex:this.tabIndex,theme:this.theme,type:this.type};"handled"===this.errorMode&&(n["error-callback"]=(...v)=>{this.zone.run(()=>this.errored(v))}),this.widget=this.grecaptcha.render(this.elementRef.nativeElement,n),!0===this.executeRequested&&(this.executeRequested=!1,this.execute())}}return o.\u0275fac=function(n){return new(n||o)(e.Y36(e.SBq),e.Y36(t),e.Y36(e.R0b),e.Y36(M,8))},o.\u0275cmp=e.Xpm({type:o,selectors:[["re-captcha"]],hostVars:1,hostBindings:function(n,v){2&n&&e.uIk("id",v.id)},inputs:{id:"id",siteKey:"siteKey",theme:"theme",type:"type",size:"size",tabIndex:"tabIndex",badge:"badge",errorMode:"errorMode"},outputs:{resolved:"resolved",error:"error"},exportAs:["reCaptcha"],decls:0,vars:0,template:function(n,v){},encapsulation:2}),o})(),p=(()=>{class o{}return o.\u0275fac=function(n){return new(n||o)},o.\u0275mod=e.oAB({type:o}),o.\u0275inj=e.cJS({}),o})(),A=(()=>{class o{}return o.\u0275fac=function(n){return new(n||o)},o.\u0275mod=e.oAB({type:o}),o.\u0275inj=e.cJS({providers:[t],imports:[[p]]}),o})(),C=(()=>{class o{constructor(n){this.host=n,this.requiresControllerReset=!1}writeValue(n){n?this.host.__unsafe_widgetValue!==n&&!1===Boolean(this.host.__unsafe_widgetValue)&&(this.requiresControllerReset=!0):this.host.reset()}registerOnChange(n){this.onChange=n,this.requiresControllerReset&&(this.requiresControllerReset=!1,this.onChange(null))}registerOnTouched(n){this.onTouched=n}onResolve(n){this.onChange&&this.onChange(n),this.onTouched&&this.onTouched()}}return o.\u0275fac=function(n){return new(n||o)(e.Y36(i))},o.\u0275dir=e.lG2({type:o,selectors:[["re-captcha","formControlName",""],["re-captcha","formControl",""],["re-captcha","ngModel",""]],hostBindings:function(n,v){1&n&&e.NdJ("resolved",function(g){return v.onResolve(g)})},features:[e._Bn([{multi:!0,provide:h.JU,useExisting:(0,e.Gpc)(()=>o)}])]}),o})(),T=(()=>{class o{}return o.\u0275fac=function(n){return new(n||o)},o.\u0275mod=e.oAB({type:o}),o.\u0275inj=e.cJS({imports:[[h.u5,p]]}),o})()}}]);
\ No newline at end of file
diff --git a/dist/fansubid/browser/common.ec9ef4839de19b37.js b/dist/fansubid/browser/common.ec9ef4839de19b37.js
new file mode 100644
index 000000000..2edc1b163
--- /dev/null
+++ b/dist/fansubid/browser/common.ec9ef4839de19b37.js
@@ -0,0 +1 @@
+(self.webpackChunkfansubid=self.webpackChunkfansubid||[]).push([[592],{3331:(R,E,r)=>{"use strict";r.d(E,{B:()=>d});var e=r(5934),l=r(5e3),S=r(8696);let d=(()=>{class h{constructor(i){this.gs=i}get GS(){return this.gs}ngOnInit(){}get discordUrl(){return e.N.discord.join_url}get discordGuildId(){return e.N.discord.guild_id}}return h.\u0275fac=function(i){return new(i||h)(l.Y36(S.U))},h.\u0275cmp=l.Xpm({type:h,selectors:[["app-banner-discord"]],decls:9,vars:3,consts:[[1,"row"],[1,"col-12","sticky-top","bg-bifeldy"],[1,"pt-3","border-bottom-dotted"],[1,"text-bifeldy"],[1,"col-12"],[1,"gradient-border","rgb-border","mx-2","mb-2"],["target","_blank",3,"href"],[1,"w-100",3,"src"]],template:function(i,f){1&i&&(l.TgZ(0,"div",0)(1,"div",1)(2,"h2",2)(3,"b",3),l._uU(4,"Yuk Gabung Obrolan!"),l.qZA()()(),l.TgZ(5,"div",4)(6,"p",5)(7,"a",6),l._UZ(8,"img",7),l.qZA()()()()),2&i&&(l.xp6(7),l.s9C("href",f.discordUrl,l.LSH),l.xp6(1),l.hYB("src","https://discord.com/api/guilds/",f.discordGuildId,"/widget.png?style=banner",f.GS.gridListBreakpoint,"",l.LSH))},styles:[""]}),h})()},4854:(R,E,r)=>{"use strict";r.d(E,{R:()=>S});var e=r(9808),l=r(5e3);let S=(()=>{class d{}return d.\u0275fac=function(p){return new(p||d)},d.\u0275mod=l.oAB({type:d}),d.\u0275inj=l.cJS({imports:[[e.ez]]}),d})()},913:(R,E,r)=>{"use strict";r.d(E,{g:()=>h});var e=r(9808),l=r(8406),S=r(210),d=r(5e3);let h=(()=>{class p{}return p.\u0275fac=function(f){return new(f||p)},p.\u0275mod=d.oAB({type:p}),p.\u0275inj=d.cJS({imports:[[e.ez,l.Bz,S.m]]}),p})()},8921:(R,E,r)=>{"use strict";r.d(E,{X:()=>u});var e=r(5e3),l=r(8696),S=r(8381),d=r(9808);function h(a,c){if(1&a&&(e.TgZ(0,"p",6),e._uU(1," Portal :: "),e.TgZ(2,"span",8),e._uU(3),e.qZA()()),2&a){const n=e.oxw();e.xp6(3),e.hij(" ",null==n.SS.github?null:n.SS.github.sha," ")}}function p(a,c){if(1&a&&(e.TgZ(0,"p",6),e._uU(1," Date :: "),e.TgZ(2,"span",8),e._uU(3),e.ALo(4,"date"),e.qZA()()),2&a){const n=e.oxw();e.xp6(3),e.hij(" ",e.xi3(4,1,null==n.SS.github||null==n.SS.github.commit||null==n.SS.github.commit.author?null:n.SS.github.commit.author.date,"d MMM y, hh:mm:ss a z")," ")}}function i(a,c){if(1&a&&(e.TgZ(0,"p",6),e._uU(1," Message :: "),e.TgZ(2,"span",7),e._uU(3),e.qZA()()),2&a){const n=e.oxw();e.xp6(3),e.hij(" ",null==n.SS.github||null==n.SS.github.commit?null:n.SS.github.commit.message," ")}}function f(a,c){if(1&a&&(e.TgZ(0,"p",6),e._uU(1," Socket :: "),e.TgZ(2,"span",8),e._uU(3),e.qZA()()),2&a){const n=e.oxw();e.xp6(3),e.hij(" ",null!=n.SS.mySocket&&n.SS.mySocket.id?n.SS.mySocket.id:"Sambungan Terputus"," ")}}function b(a,c){if(1&a&&(e.TgZ(0,"p",6),e._uU(1," Latency :: "),e.TgZ(2,"span"),e._uU(3),e.qZA()()),2&a){const n=e.oxw();e.xp6(2),e.Gre("text-",n.SS.latency>75?"warning":"success",""),e.xp6(1),e.hij(" ",n.SS.latency," ms ")}}function s(a,c){if(1&a&&(e.TgZ(0,"p",6),e._uU(1," Nodes :: "),e.TgZ(2,"span",8),e._uU(3),e.qZA()()),2&a){const n=e.oxw();e.xp6(3),e.hij(" ",n.SS.visitor," Koneksi ")}}let u=(()=>{class a{constructor(n,g){this.gs=n,this.ss=g,this.currentServer=null,this.subsServer=null}get SS(){return this.ss}ngOnInit(){this.gs.isBrowser&&(this.subsServer=this.ss.currentServer.subscribe({next:n=>this.currentServer=n}))}ngOnDestroy(){var n;null===(n=this.subsServer)||void 0===n||n.unsubscribe()}}return a.\u0275fac=function(n){return new(n||a)(e.Y36(l.U),e.Y36(S.R))},a.\u0275cmp=e.Xpm({type:a,selectors:[["app-stats-server"]],decls:16,vars:7,consts:[[1,"row"],[1,"col-12","sticky-top","bg-bifeldy"],[1,"pt-3","border-bottom-dotted"],[1,"text-bifeldy"],[1,"col-12"],["class","px-2 text-truncate",4,"ngIf"],[1,"px-2","text-truncate"],[1,"text-warning"],[1,"text-success"]],template:function(n,g){1&n&&(e.TgZ(0,"div",0)(1,"div",1)(2,"h2",2)(3,"b",3),e._uU(4,"Statistik Server"),e.qZA()()(),e.TgZ(5,"div",4),e.YNc(6,h,4,1,"p",5),e.YNc(7,p,5,4,"p",5),e.YNc(8,i,4,1,"p",5),e.TgZ(9,"p",6),e._uU(10," Server :: "),e.TgZ(11,"span",7),e._uU(12),e.qZA()(),e.YNc(13,f,4,1,"p",5),e.YNc(14,b,4,4,"p",5),e.YNc(15,s,4,1,"p",5),e.qZA()()),2&n&&(e.xp6(6),e.Q6J("ngIf",null==g.SS.github?null:g.SS.github.sha),e.xp6(1),e.Q6J("ngIf",null==g.SS.github||null==g.SS.github.commit||null==g.SS.github.commit.author?null:g.SS.github.commit.author.date),e.xp6(1),e.Q6J("ngIf",null==g.SS.github||null==g.SS.github.commit?null:g.SS.github.commit.message),e.xp6(4),e.hij(" ",null!=g.currentServer&&g.currentServer.isMaintenance?"Dalam Perbaikan":"Berjalan Normal"," "),e.xp6(1),e.Q6J("ngIf",g.SS.mySocket),e.xp6(1),e.Q6J("ngIf",g.SS.latency),e.xp6(1),e.Q6J("ngIf",g.SS.visitor))},directives:[d.O5],pipes:[d.uU],styles:[""]}),a})()},669:(R,E,r)=>{"use strict";r.d(E,{A:()=>S});var e=r(9808),l=r(5e3);let S=(()=>{class d{}return d.\u0275fac=function(p){return new(p||d)},d.\u0275mod=l.oAB({type:d}),d.\u0275inj=l.cJS({imports:[[e.ez]]}),d})()},7358:(R,E,r)=>{"use strict";r.d(E,{Y:()=>d});var e=r(5e3),l=r(9731),S=r(8696);let d=(()=>{class h{constructor(i,f){this.api=i,this.gs=f}getMailbox(i="inbox",f="",b=1,s=10,u="",a=""){return this.api.getData(`/mail-${i}?q=${f}&page=${b}&row=${s}&sort=${u}&order=${a}`)}getAllMail(i="",f=1,b=10,s="",u=""){return this.api.getData(`/mail?q=${i}&page=${f}&row=${b}&sort=${s}&order=${u}`)}getMail(i){return this.api.getData(`/mail/${i}`)}sendMail(i){return this.api.postData("/mail",i)}}return h.\u0275fac=function(i){return new(i||h)(e.LFG(l.s),e.LFG(S.U))},h.\u0275prov=e.Yz7({token:h,factory:h.\u0275fac,providedIn:"root"}),h})()},5679:(R,E,r)=>{"use strict";r.d(E,{Y:()=>d});var e=r(5e3),l=r(9731),S=r(8696);let d=(()=>{class h{constructor(i,f){this.api=i,this.gs=f}getProject(){return this.api.getData("/project-type")}createProject(i){return this.api.postData("/project-type",i)}deleteProject(i){return this.api.deleteData(`/project-type/${i}`)}}return h.\u0275fac=function(i){return new(i||h)(e.LFG(l.s),e.LFG(S.U))},h.\u0275prov=e.Yz7({token:h,factory:h.\u0275fac,providedIn:"root"}),h})()},4327:function(R,E){var l;void 0!==(l=function(){"use strict";function d(s,u,a){var c=new XMLHttpRequest;c.open("GET",s),c.responseType="blob",c.onload=function(){b(c.response,u,a)},c.onerror=function(){console.error("could not download file")},c.send()}function h(s){var u=new XMLHttpRequest;u.open("HEAD",s,!1);try{u.send()}catch(a){}return 200<=u.status&&299>=u.status}function p(s){try{s.dispatchEvent(new MouseEvent("click"))}catch(a){var u=document.createEvent("MouseEvents");u.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),s.dispatchEvent(u)}}var i="object"==typeof window&&window.window===window?window:"object"==typeof self&&self.self===self?self:"object"==typeof global&&global.global===global?global:void 0,f=i.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),b=i.saveAs||("object"!=typeof window||window!==i?function(){}:"download"in HTMLAnchorElement.prototype&&!f?function(s,u,a){var c=i.URL||i.webkitURL,n=document.createElement("a");n.download=u=u||s.name||"download",n.rel="noopener","string"==typeof s?(n.href=s,n.origin===location.origin?p(n):h(n.href)?d(s,u,a):p(n,n.target="_blank")):(n.href=c.createObjectURL(s),setTimeout(function(){c.revokeObjectURL(n.href)},4e4),setTimeout(function(){p(n)},0))}:"msSaveOrOpenBlob"in navigator?function(s,u,a){if(u=u||s.name||"download","string"!=typeof s)navigator.msSaveOrOpenBlob(function S(s,u){return void 0===u?u={autoBom:!1}:"object"!=typeof u&&(console.warn("Deprecated: Expected third argument to be a object"),u={autoBom:!u}),u.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(s.type)?new Blob(["\ufeff",s],{type:s.type}):s}(s,a),u);else if(h(s))d(s,u,a);else{var c=document.createElement("a");c.href=s,c.target="_blank",setTimeout(function(){p(c)})}}:function(s,u,a,c){if((c=c||open("","_blank"))&&(c.document.title=c.document.body.innerText="downloading..."),"string"==typeof s)return d(s,u,a);var n="application/octet-stream"===s.type,g=/constructor/i.test(i.HTMLElement)||i.safari,A=/CriOS\/[\d]+/.test(navigator.userAgent);if((A||n&&g||f)&&"undefined"!=typeof FileReader){var C=new FileReader;C.onloadend=function(){var y=C.result;y=A?y:y.replace(/^data:[^;]*;/,"data:attachment/file;"),c?c.location.href=y:location=y,c=null},C.readAsDataURL(s)}else{var w=i.URL||i.webkitURL,D=w.createObjectURL(s);c?c.location=D:location.href=D,c=null,setTimeout(function(){w.revokeObjectURL(D)},4e4)}});i.saveAs=b.saveAs=b,R.exports=b}.apply(E,[]))&&(R.exports=l)},3290:(R,E,r)=>{"use strict";r.d(E,{Vd:()=>y,a:()=>C,lQ:()=>x,wT:()=>g});var e=r(5e3),l=r(9808),S=r(9646),d=r(1135),h=r(3075);const p=new e.OlP("recaptcha-language"),i=new e.OlP("recaptcha-base-url"),f=new e.OlP("recaptcha-nonce-tag"),b=new e.OlP("recaptcha-settings"),s=new e.OlP("recaptcha-v3-site-key"),a_loadScript=function u(o,v,t,m,M){window.ng2recaptchaloaded=()=>{v(grecaptcha)};const _=document.createElement("script");_.innerHTML="",_.src=`${m||"https://www.google.com/recaptcha/api.js"}?render=${o}&onload=ng2recaptchaloaded${t}`,M&&(_.nonce=M),_.async=!0,_.defer=!0,document.head.appendChild(_)};let c=(()=>{class o{constructor(t,m,M,_,O){this.platformId=t,this.language=m,this.baseUrl=M,this.nonce=_,this.v3SiteKey=O,this.init(),this.ready=(0,l.NF)(this.platformId)?o.ready.asObservable():(0,S.of)()}init(){if(!o.ready&&(0,l.NF)(this.platformId)){const t=new d.X(null);o.ready=t,a_loadScript(this.v3SiteKey||"explicit",_=>t.next(_),this.language?"&hl="+this.language:"",this.baseUrl,this.nonce)}}}return o.ready=null,o.\u0275fac=function(t){return new(t||o)(e.LFG(e.Lbi),e.LFG(p,8),e.LFG(i,8),e.LFG(f,8),e.LFG(s,8))},o.\u0275prov=e.Yz7({token:o,factory:o.\u0275fac}),o})(),n=0,g=(()=>{class o{constructor(t,m,M,_){this.elementRef=t,this.loader=m,this.zone=M,this.id="ngrecaptcha-"+n++,this.errorMode="default",this.resolved=new e.vpe,this.error=new e.vpe,_&&(this.siteKey=_.siteKey,this.theme=_.theme,this.type=_.type,this.size=_.size,this.badge=_.badge)}ngAfterViewInit(){this.subscription=this.loader.ready.subscribe(t=>{null!=t&&t.render instanceof Function&&(this.grecaptcha=t,this.renderRecaptcha())})}ngOnDestroy(){this.grecaptchaReset(),this.subscription&&this.subscription.unsubscribe()}execute(){"invisible"===this.size&&(null!=this.widget?this.grecaptcha.execute(this.widget):this.executeRequested=!0)}reset(){null!=this.widget&&(this.grecaptcha.getResponse(this.widget)&&this.resolved.emit(null),this.grecaptchaReset())}get __unsafe_widgetValue(){return null!=this.widget?this.grecaptcha.getResponse(this.widget):null}expired(){this.resolved.emit(null)}errored(t){this.error.emit(t)}captchaResponseCallback(t){this.resolved.emit(t)}grecaptchaReset(){null!=this.widget&&this.zone.runOutsideAngular(()=>this.grecaptcha.reset(this.widget))}renderRecaptcha(){const t={badge:this.badge,callback:m=>{this.zone.run(()=>this.captchaResponseCallback(m))},"expired-callback":()=>{this.zone.run(()=>this.expired())},sitekey:this.siteKey,size:this.size,tabindex:this.tabIndex,theme:this.theme,type:this.type};"handled"===this.errorMode&&(t["error-callback"]=(...m)=>{this.zone.run(()=>this.errored(m))}),this.widget=this.grecaptcha.render(this.elementRef.nativeElement,t),!0===this.executeRequested&&(this.executeRequested=!1,this.execute())}}return o.\u0275fac=function(t){return new(t||o)(e.Y36(e.SBq),e.Y36(c),e.Y36(e.R0b),e.Y36(b,8))},o.\u0275cmp=e.Xpm({type:o,selectors:[["re-captcha"]],hostVars:1,hostBindings:function(t,m){2&t&&e.uIk("id",m.id)},inputs:{id:"id",siteKey:"siteKey",theme:"theme",type:"type",size:"size",tabIndex:"tabIndex",badge:"badge",errorMode:"errorMode"},outputs:{resolved:"resolved",error:"error"},exportAs:["reCaptcha"],decls:0,vars:0,template:function(t,m){},encapsulation:2}),o})(),A=(()=>{class o{}return o.\u0275fac=function(t){return new(t||o)},o.\u0275mod=e.oAB({type:o}),o.\u0275inj=e.cJS({}),o})(),C=(()=>{class o{}return o.\u0275fac=function(t){return new(t||o)},o.\u0275mod=e.oAB({type:o}),o.\u0275inj=e.cJS({providers:[c],imports:[[A]]}),o})(),y=(()=>{class o{constructor(t){this.host=t,this.requiresControllerReset=!1}writeValue(t){t?this.host.__unsafe_widgetValue!==t&&!1===Boolean(this.host.__unsafe_widgetValue)&&(this.requiresControllerReset=!0):this.host.reset()}registerOnChange(t){this.onChange=t,this.requiresControllerReset&&(this.requiresControllerReset=!1,this.onChange(null))}registerOnTouched(t){this.onTouched=t}onResolve(t){this.onChange&&this.onChange(t),this.onTouched&&this.onTouched()}}return o.\u0275fac=function(t){return new(t||o)(e.Y36(g))},o.\u0275dir=e.lG2({type:o,selectors:[["re-captcha","formControlName",""],["re-captcha","formControl",""],["re-captcha","ngModel",""]],hostBindings:function(t,m){1&t&&e.NdJ("resolved",function(_){return m.onResolve(_)})},features:[e._Bn([{multi:!0,provide:h.JU,useExisting:(0,e.Gpc)(()=>o)}])]}),o})(),x=(()=>{class o{}return o.\u0275fac=function(t){return new(t||o)},o.\u0275mod=e.oAB({type:o}),o.\u0275inj=e.cJS({imports:[[h.u5,A]]}),o})()}}]);
\ No newline at end of file
diff --git a/dist/fansubid/browser/index.html b/dist/fansubid/browser/index.html
index 035929bbc..3cbd8b44e 100644
--- a/dist/fansubid/browser/index.html
+++ b/dist/fansubid/browser/index.html
@@ -63,7 +63,7 @@
-
+