diff --git a/dashboard/dist/css/app.ea4656d8.css b/dashboard/dist/css/app.ce470878.css similarity index 50% rename from dashboard/dist/css/app.ea4656d8.css rename to dashboard/dist/css/app.ce470878.css index e703323..8126905 100644 --- a/dashboard/dist/css/app.ea4656d8.css +++ b/dashboard/dist/css/app.ce470878.css @@ -1 +1 @@ -#app,body,html{height:100%}#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-align:center;color:#184c18;position:relative}#app>div:first-child{position:absolute;top:10px;left:30px;font-size:x-large}.content{padding-top:60px}.feature-title[data-v-54efad41]{color:#eb5e46;font-weight:700;font-size:larger}p[data-v-54efad41]{margin:30px;font-size:20px}img[data-v-54efad41]{margin:20px}.root[data-v-e34eab40]{background:#d3d3d3}.root>img[data-v-e34eab40]{width:300px;margin:30px}.records[data-v-4eee1624]{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:0 15px}.records>[data-v-4eee1624]{width:200px}.log-container{overflow-y:auto;max-height:500px}@-webkit-keyframes recording-data-v-f6113870{0%{opacity:.2}50%{opacity:1}to{opacity:.2}}@keyframes recording-data-v-f6113870{0%{opacity:.2}50%{opacity:1}to{opacity:.2}}.recording[data-v-f6113870]{-webkit-animation:recording-data-v-f6113870 1s infinite;animation:recording-data-v-f6113870 1s infinite}.layout[data-v-f6113870]{padding-bottom:30px;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.room[data-v-f6113870]{width:250px;margin:10px;text-align:left}.empty[data-v-f6113870]{color:#eb5e46;width:100%;min-height:500px;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.empty[data-v-f6113870],.status[data-v-f6113870]{display:-webkit-box;display:-ms-flexbox;display:flex}.status[data-v-f6113870]{position:fixed;left:5px;bottom:10px}.status>div[data-v-f6113870]{margin:0 5px} \ No newline at end of file +#app,body,html{height:100%}#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-align:center;color:#184c18;position:relative}#app>div:first-child{position:absolute;top:10px;left:30px;font-size:x-large}.content{padding-top:60px}.feature-title[data-v-54efad41]{color:#eb5e46;font-weight:700;font-size:larger}p[data-v-54efad41]{margin:30px;font-size:20px}img[data-v-54efad41]{margin:20px}.root[data-v-e34eab40]{background:#d3d3d3}.root>img[data-v-e34eab40]{width:300px;margin:30px}.records[data-v-7d5ab110]{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:0 15px}.records>[data-v-7d5ab110]{width:200px}.log-container{overflow-y:auto;max-height:500px}@-webkit-keyframes recording-data-v-65ac4b48{0%{opacity:.2}50%{opacity:1}to{opacity:.2}}@keyframes recording-data-v-65ac4b48{0%{opacity:.2}50%{opacity:1}to{opacity:.2}}.recording[data-v-65ac4b48]{-webkit-animation:recording-data-v-65ac4b48 1s infinite;animation:recording-data-v-65ac4b48 1s infinite}.layout[data-v-65ac4b48]{padding-bottom:30px;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.room[data-v-65ac4b48]{width:250px;margin:10px;text-align:left}.empty[data-v-65ac4b48]{color:#eb5e46;width:100%;min-height:500px;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.empty[data-v-65ac4b48],.status[data-v-65ac4b48]{display:-webkit-box;display:-ms-flexbox;display:flex}.status[data-v-65ac4b48]{position:fixed;left:5px;bottom:10px}.status>div[data-v-65ac4b48]{margin:0 5px} \ No newline at end of file diff --git a/dashboard/dist/index.html b/dashboard/dist/index.html index 59bbc07..9264629 100644 --- a/dashboard/dist/index.html +++ b/dashboard/dist/index.html @@ -1 +1 @@ -Monibuca
\ No newline at end of file +Monibuca
\ No newline at end of file diff --git a/dashboard/dist/js/app.017fb959.js b/dashboard/dist/js/app.017fb959.js new file mode 100644 index 0000000..fe9d21b --- /dev/null +++ b/dashboard/dist/js/app.017fb959.js @@ -0,0 +1,2 @@ +(function(t){function e(e){for(var r,n,i=e[0],l=e[1],u=e[2],d=0,m=[];d{"success"==t?(this.onVisible(!0),this.$Message.success("开始发布")):this.$Message.error(t)})},deleteFlv(t){this.$Modal.confirm({title:"提示",content:"

是否删除Flv文件

",onOk:()=>{window.ajax.get("//"+location.host+"/api/record/flv/delete",{streamPath:t.Path.replace(".flv","")},t=>{"success"==t?this.$Message.success("删除成功"):this.$Message.error(t)})},onCancel:()=>{}})},toSizeStr(t,e=""){return t>1024&&B[e]?this.toSizeStr(t/1024,B[e]):t.toFixed(2).replace(".00","")+e+"B"},toDurationStr(t){if(t>1e3){let e=t/1e3;if(e>60){e|=0;let t=e/60>>0;if(t>60){let e=t/60>>0;return e+"hour"+t%60+"min"}return t+"min"+e%60+"s"}return e.toFixed(3)+"s"}return t+"ms"},onVisible(t){t&&window.ajax.getJSON("//"+location.host+"/api/record/flv/list",{},t=>{this.data=t})}}},E=R,H=(a("2464"),Object(l["a"])(E,F,D,!1,null,"7d5ab110",null)),A=H.exports,G=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticStyle:{padding:"0 15px"}},[a("div",[t._v(" 自动滚动 "),a("i-switch",{model:{value:t.autoScroll,callback:function(e){t.autoScroll=e},expression:"autoScroll"}})],1),a("div",{ref:"logContainer",staticClass:"log-container"},[a("pre",[t._l(t.$store.state.logs,(function(e){return[t._v(t._s(e+"\n"))]}))],2)])])},L=[],N={data(){return{autoScroll:!0}},mounted(){this.fetchLogs()},destroyed(){this.stopFetchLogs()},methods:{...Object(_["b"])(["fetchLogs","stopFetchLogs"])},updated(){this.autoScroll&&(this.$refs.logContainer.scrollTop=this.$refs.logContainer.offsetHeight)}},z=N,V=(a("ac96"),Object(l["a"])(z,G,L,!1,null,null,null)),J=V.exports,W=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticStyle:{padding:"0 15px"}},[a("pre",[t._v(t._s(t.config))])])},K=[],Q={data(){return{config:""}},methods:{onVisible(t){t&&window.ajax.get("//"+location.host+"/api/config",{},t=>this.config=t)}}},q=Q,X=Object(l["a"])(q,W,K,!1,null,null,null),Y=X.exports,Z=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("Modal",t._g(t._b({attrs:{draggable:"",title:"查看订阅者"}},"Modal",t.$attrs,!1),t.$listeners),[a("Table",{attrs:{columns:t.subtableColumns,data:t.data}})],1)},tt=[],et={props:{data:Array},data(){return{subtableColumns:[{title:"类型",key:"Type"},{title:"Name",key:"ID"},{title:"订阅时间",render(t,{row:e}){return t("StartTime",{props:{value:e.SubscribeTime}})}},{title:"丢帧",render(t,{row:e}){return t("span",e.TotalPacket?e.TotalDrop+"/"+e.TotalPacket:"")}},{title:"Buffer",render(t,{row:e}){return t("Progress",{props:{percent:Math.floor(99*e.BufferLength/1024),"text-inside":!0,"stroke-width":20,"stroke-color":["#87d068","#ff0000"]}})}}]}}},at=et,rt=Object(l["a"])(at,Z,tt,!1,null,null,null),ot=rt.exports,st=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[t._v(" 自动更新 "),a("i-switch",{model:{value:t.autoUpdate,callback:function(e){t.autoUpdate=e},expression:"autoUpdate"}}),a("div",{attrs:{id:"mountNode"}})],1)},nt=[],it=a("07cd"),lt=a.n(it),ut=null,ct={data(){return{autoUpdate:!0}},computed:{...Object(_["c"])({data(t){let e=this.addServer(t.summary);return e.label="🏠"+e.label,e}})},methods:{addServer(t){let e={id:t.Address,label:t.Address,description:`cpu:${t.CPUUsage>>0}% mem:${t.Memory.Usage>>0}%`,shape:"modelRect",logoIcon:{show:!1},children:[]};if(t.Rooms)for(let a=0;at.summary.Rooms||[],Memory:t=>t.summary.Memory,CPUUsage:t=>t.summary.CPUUsage,HardDisk:t=>t.summary.HardDisk,cpuStatus:t=>t.summary.CPUUsage>99?"error":t.summary.CPUUsage>50?"warning":"success",memoryStatus(t){return t.summary.CPUUsage>99?"error":t.summary.CPUUsage>50?"warning":"success"},hardDiskStatus(t){return t.summary.CPUUsage>99?"error":t.summary.CPUUsage>50?"warning":"success"},totalInNetSpeed(t){return this.networkFormat(t.summary.NetWork?t.summary.NetWork.reduce((t,e)=>t+e.ReceiveSpeed,0):0)+"/S"},totalOutNetSpeed(t){return this.networkFormat(t.summary.NetWork?t.summary.NetWork.reduce((t,e)=>t+e.SentSpeed,0):0)+"/S"}})},methods:{...Object(_["b"])(["fetchSummary","stopFetchSummary"]),getSubscriberCount(t){return this.currentStream&&this.currentStream.StreamPath==t.StreamPath&&(this.currentStream=t),t.SubscriberInfo?t.SubscriberInfo.length:0},preview(t){this.$refs.jessibuca.play("ws://"+location.hostname+":8080/"+t.StreamPath),this.showPreview=!0},onShowDetail(t){this.showSubscribers=!0,this.currentStream=t},networkFormat(t,e=""){return t>1024&&pt[e]?this.networkFormat(t/1024,pt[e]):t.toFixed(2).replace(".00","")+e+"B"},SoundFormat(t){return ht[t]},CodecID(t){return bt[t]},SoundRate(t){return t>1e3?t/1e3+"kHz":t+"Hz"},record(t){this.$Modal.confirm({title:"提示",content:"

是否使用追加模式

选择取消将覆盖已有文件",onOk:()=>{window.ajax.get("//"+location.host+"/api/record/flv?append=true",{streamPath:t.StreamPath},t=>{"success"==t?this.$Message.success("开始录制(追加模式)"):this.$Message.error(t)})},onCancel:()=>{window.ajax.get("//"+location.host+"/api/record/flv",{streamPath:t.StreamPath},t=>{"success"==t?this.$Message.success("开始录制"):this.$Message.error(t)})}})},stopRecord(t){window.ajax.get("//"+location.host+"/api/record/flv/stop",{streamPath:t.StreamPath},t=>{"success"==t?this.$Message.success("停止录制"):this.$Message.error(t)})},isRecording(t){return t.SubscriberInfo&&t.SubscriberInfo.find(t=>"FlvRecord"==t.Type)},onChangeTab(t){switch(t){case"recordsPanel":this.$refs.recordsPanel.onVisible(!0);break;case"configPanel":this.$refs.configPanel.onVisible(!0)}}},mounted(){this.fetchSummary()},destroyed(){this.stopFetchSummary()}},gt=vt,St=(a("185b"),Object(l["a"])(gt,g,S,!1,null,"65ac4b48",null)),_t=St.exports;r["default"].use(d["a"]);const yt=[{path:"/",name:"home",component:m["default"]},{path:"/about",name:"about",component:v},{path:"/console",name:"console",component:_t}],wt=new d["a"]({mode:"history",base:"/",routes:yt});var Pt=wt;r["default"].use(_["a"]);let Ct=null,Mt=null;var kt=new _["a"].Store({state:{summary:{Address:location.hostname,NetWork:[],Rooms:[],Memory:{Used:0,Usage:0},CPUUsage:0,HardDisk:{Used:0,Usage:0},Children:{}},logs:[]},mutations:{update(t,e){Object.assign(t,e)},addLog(t,e){t.logs.push(e)}},actions:{fetchSummary({commit:t}){Ct=new EventSource("//"+location.host+"/api/summary"),Ct.onmessage=e=>{if(!e.data)return;let a=JSON.parse(e.data);a.Address=location.hostname,t("update",{summary:a})}},fetchLogs({commit:t}){Mt=new EventSource("//"+location.host+"/api/logs"),Mt.onmessage=e=>{e.data&&t("addLog",e.data)}},stopFetchLogs(){Mt.close()},stopFetchSummary(){Ct.close()}},modules:{}}),xt=a("f825"),It=a.n(xt);a("f8ce");r["default"].use(It.a),r["default"].config.productionTip=!1,new r["default"]({router:Pt,store:kt,render:t=>t(c)}).$mount("#app")},5775:function(t,e,a){"use strict";var r=a("f706"),o=a.n(r);o.a},"7ad4":function(t,e,a){"use strict";var r=a("0c3e"),o=a.n(r);e["default"]=o.a},"7c5e":function(t,e,a){},"850a":function(t,e,a){"use strict";var r=a("7c5e"),o=a.n(r);o.a},8920:function(t,e,a){},9953:function(t,e,a){},ac96:function(t,e,a){"use strict";var r=a("9953"),o=a.n(r);o.a},bb51:function(t,e,a){"use strict";var r=a("470c"),o=a("7ad4"),s=(a("850a"),a("2877")),n=Object(s["a"])(o["default"],r["a"],r["b"],!1,null,"54efad41",null);e["default"]=n.exports},cf05:function(t,e,a){t.exports=a.p+"img/logo.b5357057.png"},e660:function(t,e,a){t.exports=a.p+"img/wechat.ff453262.jpg"},f195:function(t,e,a){},f706:function(t,e,a){}}); +//# sourceMappingURL=app.017fb959.js.map \ No newline at end of file diff --git a/dashboard/dist/js/app.017fb959.js.map b/dashboard/dist/js/app.017fb959.js.map new file mode 100644 index 0000000..be128fb --- /dev/null +++ b/dashboard/dist/js/app.017fb959.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?7139","webpack:///./src/assets/alipay.png","webpack:///./src/views/Console.vue?d090","webpack:///./src/components/Records.vue?99df","webpack:///./src/views/Home.vue?6039","webpack:///./src/views/Home.vue?45bf","webpack:///./src/App.vue?b7bc","webpack:///src/App.vue","webpack:///./src/App.vue?1a79","webpack:///./src/App.vue?42b4","webpack:///./src/views/About.vue?395e","webpack:///./src/views/About.vue?890d","webpack:///./src/views/Console.vue?b51e","webpack:///./src/components/Jessibuca.vue?af5d","webpack:///src/components/Jessibuca.vue","webpack:///./src/components/Jessibuca.vue?b76e","webpack:///./src/components/Jessibuca.vue","webpack:///./src/components/StartTime.vue?93cf","webpack:///src/components/StartTime.vue","webpack:///./src/components/StartTime.vue?eb9e","webpack:///./src/components/StartTime.vue","webpack:///./src/components/Records.vue?3ab0","webpack:///src/components/Records.vue","webpack:///./src/components/Records.vue?b643","webpack:///./src/components/Records.vue?cb81","webpack:///./src/components/Logs.vue?317e","webpack:///src/components/Logs.vue","webpack:///./src/components/Logs.vue?b91d","webpack:///./src/components/Logs.vue?1fed","webpack:///./src/components/Config.vue?904e","webpack:///src/components/Config.vue","webpack:///./src/components/Config.vue?d5e3","webpack:///./src/components/Config.vue","webpack:///./src/components/Subscribers.vue?7de9","webpack:///src/components/Subscribers.vue","webpack:///./src/components/Subscribers.vue?8094","webpack:///./src/components/Subscribers.vue","webpack:///./src/components/Cluster.vue?83fe","webpack:///src/components/Cluster.vue","webpack:///./src/components/Cluster.vue?8670","webpack:///./src/components/Cluster.vue","webpack:///src/views/Console.vue","webpack:///./src/views/Console.vue?2ccf","webpack:///./src/views/Console.vue?8615","webpack:///./src/router/index.js","webpack:///./src/store/index.js","webpack:///./src/plugins/iview.js","webpack:///./src/main.js","webpack:///./src/views/About.vue?c42f","webpack:///./src/views/Home.vue?126c","webpack:///./src/views/Home.vue?274a","webpack:///./src/components/Logs.vue?3bfc","webpack:///./src/views/Home.vue?3062","webpack:///./src/assets/logo.png","webpack:///./src/assets/wechat.jpg"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","render","_vm","this","_h","$createElement","_c","_self","attrs","_v","staticStyle","staticClass","slot","staticRenderFns","selectedMenu","component","_m","script","on","onChangeTab","model","callback","$$v","currentTab","expression","_l","item","StreamPath","_s","typeMap","Type","StartTime","SoundFormat","AudioInfo","PacketCount","SoundRate","SoundType","CodecID","VideoInfo","SPSInfo","Width","Height","$event","onShowDetail","getSubscriberCount","preview","_e","isRecording","stopRecord","record","Rooms","ref","totalInNetSpeed","totalOutNetSpeed","memoryStatus","networkFormat","Memory","Used","Usage","toFixed","cpuStatus","CPUUsage","hardDiskStatus","HardDisk","showPreview","currentStream","SubscriberInfo","showSubscribers","_g","_b","url","onClosePreview","$attrs","$listeners","audioBuffer","turnOff","turnOn","h5lc","audioEnabled","watch","v","Jessibuca","canvas","document","getElementById","decoder","destroy","methods","play","close","Date","toLocaleString","Path","deleteFlv","toSizeStr","Size","toDurationStr","Duration","uintInc","K","M","G","ajax","$Modal","confirm","title","content","onOk","onCancel","unit","replace","min","hour","visible","getJSON","autoScroll","$store","state","fetchLogs","stopFetchLogs","$refs","logContainer","scrollTop","offsetHeight","config","subtableColumns","props","Array","autoUpdate","graph","computed","addServer","summary","label","node","id","Address","description","shape","logoIcon","show","children","room","roomId","roomData","subId","ID","Children","childId","changeData","fitView","linkCenter","container","width","height","modes","default","animate","layout","direction","read","0","1","2","3","4","5","6","7","8","9","10","11","14","15","12","components","Records","Logs","Subscribers","Config","Cluster","Receiver","FlvFile","TS","HLS","Match365","RTMP","jessibuca","soundFormat","codec","rate","recordsPanel","onVisible","configPanel","fetchSummary","stopFetchSummary","Vue","use","VueRouter","routes","path","Home","About","Console","router","base","process","Vuex","summaryES","logsES","Store","location","hostname","NetWork","logs","mutations","update","payload","assign","addLog","actions","commit","EventSource","host","onmessage","evt","JSON","parse","ViewUI","productionTip","store","h","App","$mount"],"mappings":"aACE,SAASA,EAAqBC,GAQ7B,IAPA,IAMIC,EAAUC,EANVC,EAAWH,EAAK,GAChBI,EAAcJ,EAAK,GACnBK,EAAiBL,EAAK,GAIHM,EAAI,EAAGC,EAAW,GACpCD,EAAIH,EAASK,OAAQF,IACzBJ,EAAUC,EAASG,GAChBG,OAAOC,UAAUC,eAAeC,KAAKC,EAAiBX,IAAYW,EAAgBX,IACpFK,EAASO,KAAKD,EAAgBX,GAAS,IAExCW,EAAgBX,GAAW,EAE5B,IAAID,KAAYG,EACZK,OAAOC,UAAUC,eAAeC,KAAKR,EAAaH,KACpDc,EAAQd,GAAYG,EAAYH,IAG/Be,GAAqBA,EAAoBhB,GAE5C,MAAMO,EAASC,OACdD,EAASU,OAATV,GAOD,OAHAW,EAAgBJ,KAAKK,MAAMD,EAAiBb,GAAkB,IAGvDe,IAER,SAASA,IAER,IADA,IAAIC,EACIf,EAAI,EAAGA,EAAIY,EAAgBV,OAAQF,IAAK,CAG/C,IAFA,IAAIgB,EAAiBJ,EAAgBZ,GACjCiB,GAAY,EACRC,EAAI,EAAGA,EAAIF,EAAed,OAAQgB,IAAK,CAC9C,IAAIC,EAAQH,EAAeE,GACG,IAA3BX,EAAgBY,KAAcF,GAAY,GAE3CA,IACFL,EAAgBQ,OAAOpB,IAAK,GAC5Be,EAASM,EAAoBA,EAAoBC,EAAIN,EAAe,KAItE,OAAOD,EAIR,IAAIQ,EAAmB,GAKnBhB,EAAkB,CACrB,IAAO,GAGJK,EAAkB,GAGtB,SAASS,EAAoB1B,GAG5B,GAAG4B,EAAiB5B,GACnB,OAAO4B,EAAiB5B,GAAU6B,QAGnC,IAAIC,EAASF,EAAiB5B,GAAY,CACzCK,EAAGL,EACH+B,GAAG,EACHF,QAAS,IAUV,OANAf,EAAQd,GAAUW,KAAKmB,EAAOD,QAASC,EAAQA,EAAOD,QAASH,GAG/DI,EAAOC,GAAI,EAGJD,EAAOD,QAKfH,EAAoBM,EAAIlB,EAGxBY,EAAoBO,EAAIL,EAGxBF,EAAoBQ,EAAI,SAASL,EAASM,EAAMC,GAC3CV,EAAoBW,EAAER,EAASM,IAClC3B,OAAO8B,eAAeT,EAASM,EAAM,CAAEI,YAAY,EAAMC,IAAKJ,KAKhEV,EAAoBe,EAAI,SAASZ,GACX,qBAAXa,QAA0BA,OAAOC,aAC1CnC,OAAO8B,eAAeT,EAASa,OAAOC,YAAa,CAAEC,MAAO,WAE7DpC,OAAO8B,eAAeT,EAAS,aAAc,CAAEe,OAAO,KAQvDlB,EAAoBmB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQlB,EAAoBkB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,kBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKxC,OAAOyC,OAAO,MAGvB,GAFAvB,EAAoBe,EAAEO,GACtBxC,OAAO8B,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOlB,EAAoBQ,EAAEc,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRtB,EAAoB0B,EAAI,SAAStB,GAChC,IAAIM,EAASN,GAAUA,EAAOiB,WAC7B,WAAwB,OAAOjB,EAAO,YACtC,WAA8B,OAAOA,GAEtC,OADAJ,EAAoBQ,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRV,EAAoBW,EAAI,SAASgB,EAAQC,GAAY,OAAO9C,OAAOC,UAAUC,eAAeC,KAAK0C,EAAQC,IAGzG5B,EAAoB6B,EAAI,IAExB,IAAIC,EAAaC,OAAO,gBAAkBA,OAAO,iBAAmB,GAChEC,EAAmBF,EAAW3C,KAAKsC,KAAKK,GAC5CA,EAAW3C,KAAOf,EAClB0D,EAAaA,EAAWG,QACxB,IAAI,IAAItD,EAAI,EAAGA,EAAImD,EAAWjD,OAAQF,IAAKP,EAAqB0D,EAAWnD,IAC3E,IAAIU,EAAsB2C,EAI1BzC,EAAgBJ,KAAK,CAAC,EAAE,kBAEjBM,K,6ECvJT,yBAAwe,EAAG,G,uBCA3eW,EAAOD,QAAU,IAA0B,2B,2DCA3C,yBAAyhB,EAAG,G,kCCA5hB,yBAAyhB,EAAG,G,oCCA5hB,IAAI+B,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,MAAM,CAACE,MAAM,CAAC,IAAM,EAAQ,WAAyBF,EAAG,MAAM,CAACA,EAAG,IAAI,CAACJ,EAAIO,GAAG,wCAAwCH,EAAG,SAAS,CAACE,MAAM,CAAC,KAAO,UAAU,GAAK,QAAQ,OAAS,WAAW,CAACN,EAAIO,GAAG,aAAaH,EAAG,OAAO,CAACI,YAAY,CAAC,OAAS,YAAYJ,EAAG,SAAS,CAACE,MAAM,CAAC,KAAO,UAAU,OAAS,SAAS,GAAK,2CAA2C,CAACF,EAAG,MAAM,CAACI,YAAY,CAAC,iBAAiB,YAAYF,MAAM,CAAC,MAAQ,KAAK,OAAS,KAAK,kBAAkB,+BAA+B,KAAO,GAAG,KAAO,MAAM,QAAU,YAAY,MAAQ,+BAA+B,CAACF,EAAG,QAAQ,CAACE,MAAM,CAAC,GAAK,+BAA+B,KAAO,OAAO,CAACN,EAAIO,GAAG,sBAAsBH,EAAG,OAAO,CAACE,MAAM,CAAC,KAAO,UAAU,EAAI,gtBAAgtBN,EAAIO,GAAG,cAAc,GAAGH,EAAG,MAAM,CAACI,YAAY,CAAC,OAAS,SAAS,CAACJ,EAAG,MAAM,CAACE,MAAM,CAAC,KAAO,MAAM,CAACF,EAAG,OAAO,CAACI,YAAY,CAAC,OAAS,QAAQF,MAAM,CAAC,UAAW,IAAQ,CAACF,EAAG,MAAM,CAACK,YAAY,gBAAgBH,MAAM,CAAC,KAAO,SAASI,KAAK,SAAS,CAACV,EAAIO,GAAG,UAAUH,EAAG,MAAM,CAACJ,EAAIO,GAAG,4GAA4G,GAAGH,EAAG,MAAM,CAACE,MAAM,CAAC,KAAO,MAAM,CAACF,EAAG,OAAO,CAACI,YAAY,CAAC,OAAS,QAAQF,MAAM,CAAC,UAAW,IAAQ,CAACF,EAAG,MAAM,CAACK,YAAY,gBAAgBH,MAAM,CAAC,KAAO,SAASI,KAAK,SAAS,CAACV,EAAIO,GAAG,WAAWH,EAAG,MAAM,CAACJ,EAAIO,GAAG,mFAAmF,GAAGH,EAAG,MAAM,CAACE,MAAM,CAAC,KAAO,MAAM,CAACF,EAAG,OAAO,CAACI,YAAY,CAAC,OAAS,QAAQF,MAAM,CAAC,UAAW,IAAQ,CAACF,EAAG,MAAM,CAACK,YAAY,gBAAgBH,MAAM,CAAC,KAAO,SAASI,KAAK,SAAS,CAACV,EAAIO,GAAG,WAAWH,EAAG,MAAM,CAACJ,EAAIO,GAAG,2FAA2F,IAAI,IAAI,IACp+EI,EAAkB,GCDtB,qE,kFCAIZ,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,MAAM,CAAC,GAAK,QAAQ,CAACF,EAAG,MAAM,CAACJ,EAAIO,GAAG,cAAcH,EAAG,OAAO,CAACI,YAAY,CAAC,SAAW,WAAW,IAAM,IAAI,MAAQ,KAAKF,MAAM,CAAC,KAAO,aAAa,cAAcN,EAAIY,eAAe,CAACR,EAAG,WAAW,CAACE,MAAM,CAAC,KAAO,OAAO,GAAK,MAAM,CAACN,EAAIO,GAAG,QAAQH,EAAG,WAAW,CAACE,MAAM,CAAC,KAAO,OAAO,GAAK,QAAQ,OAAS,WAAW,CAACN,EAAIO,GAAG,QAAQH,EAAG,WAAW,CAACE,MAAM,CAAC,KAAO,UAAU,GAAK,YAAY,CAACN,EAAIO,GAAG,SAASH,EAAG,UAAU,CAACE,MAAM,CAAC,KAAO,YAAY,CAACF,EAAG,WAAW,CAACM,KAAK,SAAS,CAACV,EAAIO,GAAG,UAAUH,EAAG,YAAY,CAACE,MAAM,CAAC,MAAQ,YAAY,CAACF,EAAG,WAAW,CAACE,MAAM,CAAC,KAAO,UAAU,OAAS,SAAS,GAAK,iCAAiC,CAACN,EAAIO,GAAG,QAAQH,EAAG,WAAW,CAACE,MAAM,CAAC,KAAO,OAAO,OAAS,SAAS,GAAK,8BAA8B,CAACN,EAAIO,GAAG,WAAW,GAAGH,EAAG,YAAY,CAACE,MAAM,CAAC,MAAQ,QAAQ,CAACF,EAAG,WAAW,CAACE,MAAM,CAAC,KAAO,UAAU,OAAS,SAAS,GAAK,iCAAiC,CAACN,EAAIO,GAAG,aAAaH,EAAG,WAAW,CAACE,MAAM,CAAC,KAAO,MAAM,OAAS,SAAS,GAAK,kCAAkC,CAACN,EAAIO,GAAG,cAAcH,EAAG,WAAW,CAACE,MAAM,CAAC,KAAO,SAAS,OAAS,SAAS,GAAK,mCAAmC,CAACN,EAAIO,GAAG,YAAY,GAAGH,EAAG,YAAY,CAACE,MAAM,CAAC,MAAQ,QAAQ,CAACF,EAAG,WAAW,CAACE,MAAM,CAAC,KAAO,MAAM,OAAS,SAAS,GAAK,6BAA6B,CAACN,EAAIO,GAAG,SAASH,EAAG,WAAW,CAACE,MAAM,CAAC,KAAO,KAAK,OAAS,SAAS,GAAK,6BAA6B,CAACN,EAAIO,GAAG,SAAS,GAAGH,EAAG,YAAY,CAACE,MAAM,CAAC,MAAQ,OAAO,CAACF,EAAG,WAAW,CAACE,MAAM,CAAC,KAAO,OAAO,OAAS,SAAS,GAAK,4BAA4B,CAACN,EAAIO,GAAG,QAAQH,EAAG,WAAW,CAACE,MAAM,CAAC,KAAO,QAAQ,CAACN,EAAIO,GAAG,SAASH,EAAG,WAAW,CAACE,MAAM,CAAC,KAAO,UAAU,OAAS,SAAS,GAAK,4BAA4B,CAACN,EAAIO,GAAG,SAAS,IAAI,GAAGH,EAAG,WAAW,CAACE,MAAM,CAAC,KAAO,IAAI,GAAK,UAAU,CAACN,EAAIO,GAAG,SAAS,GAAGH,EAAG,cAAc,CAACK,YAAY,YAAYL,EAAG,MAAM,CAACJ,EAAIO,GAAG,kDAAkD,IACj8DI,EAAkB,GCmCtB,GACErC,KAAM,MACN,OACE,MAAO,CACLsC,aAAc,UCxC0V,I,wBCQ1WC,EAAY,eACd,EACAd,EACAY,GACA,EACA,KACA,KACA,MAIa,EAAAE,E,gCCnBX,EAAS,WAAa,IAAIb,EAAIC,KAASC,EAAGF,EAAIG,eAAsBH,EAAIK,MAAMD,GAAO,OAAOJ,EAAIc,GAAG,IACnG,EAAkB,CAAC,WAAa,IAAId,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACK,YAAY,QAAQ,CAACL,EAAG,KAAK,CAACJ,EAAIO,GAAG,uBAAuBH,EAAG,IAAI,CAACJ,EAAIO,GAAG,wGAAwGH,EAAG,MAAM,CAACE,MAAM,CAAC,IAAM,EAAQ,WAA2BF,EAAG,MAAM,CAACE,MAAM,CAAC,IAAM,EAAQ,eCA5XS,G,UAAS,IAMT,EAAY,eACdA,EACA,EACA,GACA,EACA,KACA,WACA,MAIa,I,QClBX,EAAS,WAAa,IAAIf,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACI,YAAY,CAAC,aAAa,SAAS,CAACJ,EAAG,OAAO,CAACY,GAAG,CAAC,WAAWhB,EAAIiB,aAAaC,MAAM,CAACnC,MAAOiB,EAAc,WAAEmB,SAAS,SAAUC,GAAMpB,EAAIqB,WAAWD,GAAKE,WAAW,eAAe,CAAClB,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQ,MAAM,KAAO,gBAAgB,CAACF,EAAG,MAAM,CAACK,YAAY,UAAU,CAACT,EAAIuB,GAAIvB,EAAS,OAAE,SAASwB,GAAM,OAAOpB,EAAG,OAAO,CAACf,IAAImC,EAAKC,WAAWhB,YAAY,QAAQ,CAACL,EAAG,IAAI,CAACE,MAAM,CAAC,KAAO,SAASI,KAAK,SAAS,CAACV,EAAIO,GAAGP,EAAI0B,GAAG1B,EAAI2B,QAAQH,EAAKI,OAAOJ,EAAKI,MAAM5B,EAAI0B,GAAGF,EAAKC,eAAerB,EAAG,YAAY,CAACE,MAAM,CAAC,KAAO,QAAQ,MAAQkB,EAAKK,WAAWnB,KAAK,UAAUN,EAAG,IAAI,CAACJ,EAAIO,GAAG,IAAIP,EAAI0B,GAAG1B,EAAI8B,YAAYN,EAAKO,UAAUD,cAAc,IAAI9B,EAAI0B,GAAGF,EAAKO,UAAUC,aAAa,IAAIhC,EAAI0B,GAAG1B,EAAIiC,UAAUT,EAAKO,UAAUE,YAAY,OAAOjC,EAAI0B,GAAGF,EAAKO,UAAUG,WAAW,OAAO9B,EAAG,IAAI,CAACJ,EAAIO,GAAG,IAAIP,EAAI0B,GAAG1B,EAAImC,QAAQX,EAAKY,UAAUD,UAAU,IAAInC,EAAI0B,GAAGF,EAAKY,UAAUJ,aAAa,IAAIhC,EAAI0B,GAAGF,EAAKY,UAAUC,QAAQC,OAAO,IAAItC,EAAI0B,GAAGF,EAAKY,UAAUC,QAAQE,QAAQ,OAAOnC,EAAG,cAAc,CAACE,MAAM,CAAC,KAAO,UAAU,CAACF,EAAG,SAAS,CAACE,MAAM,CAAC,KAAO,cAAcU,GAAG,CAAC,MAAQ,SAASwB,GAAQ,OAAOxC,EAAIyC,aAAajB,MAAS,CAACxB,EAAIO,GAAGP,EAAI0B,GAAG1B,EAAI0C,mBAAmBlB,OAAWA,EAAS,KAAEpB,EAAG,SAAS,CAACE,MAAM,CAAC,KAAO,UAAUU,GAAG,CAAC,MAAQ,SAASwB,GAAQ,OAAOxC,EAAI2C,QAAQnB,OAAUxB,EAAI4C,KAAM5C,EAAI6C,YAAYrB,GAAOpB,EAAG,SAAS,CAACK,YAAY,YAAYH,MAAM,CAAC,KAAO,uBAAuBU,GAAG,CAAC,MAAQ,SAASwB,GAAQ,OAAOxC,EAAI8C,WAAWtB,OAAUpB,EAAG,SAAS,CAACE,MAAM,CAAC,KAAO,uBAAuBU,GAAG,CAAC,MAAQ,SAASwB,GAAQ,OAAOxC,EAAI+C,OAAOvB,QAAW,IAAI,MAAwB,GAAlBxB,EAAIgD,MAAMtG,OAAW0D,EAAG,MAAM,CAACK,YAAY,SAAS,CAACL,EAAG,OAAO,CAACE,MAAM,CAAC,KAAO,UAAU,KAAO,QAAQN,EAAIO,GAAG,YAAY,GAAGP,EAAI4C,MAAM,KAAKxC,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQ,OAAO,KAAO,cAAc,CAACF,EAAG,YAAY,GAAGA,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQ,QAAQ,KAAO,aAAa,KAAO,iBAAiB,CAACF,EAAG,UAAU,CAAC6C,IAAI,kBAAkB,GAAG7C,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQ,OAAO,KAAO,WAAW,CAACF,EAAG,SAAS,GAAGA,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQ,OAAO,KAAO,cAAc,KAAO,gBAAgB,CAACF,EAAG,SAAS,CAAC6C,IAAI,iBAAiB,IAAI,GAAG7C,EAAG,MAAM,CAACK,YAAY,UAAU,CAACL,EAAG,QAAQ,CAACJ,EAAIO,GAAG,WAAWP,EAAI0B,GAAG1B,EAAIkD,iBAAiB,OAAOlD,EAAI0B,GAAG1B,EAAImD,qBAAqB/C,EAAG,QAAQ,CAACE,MAAM,CAAC,KAAON,EAAIoD,eAAe,CAACpD,EAAIO,GAAG,QAAQP,EAAI0B,GAAG1B,EAAIqD,cAAcrD,EAAIsD,OAAOC,KAAK,MAAM,OAAOvD,EAAI0B,GAAG1B,EAAIsD,OAAOE,MAAMC,QAAQ,IAAI,OAAOrD,EAAG,QAAQ,CAACE,MAAM,CAAC,KAAON,EAAI0D,YAAY,CAAC1D,EAAIO,GAAG,SAASP,EAAI0B,GAAG1B,EAAI2D,SAASF,QAAQ,IAAI,OAAOrD,EAAG,QAAQ,CAACE,MAAM,CAAC,KAAON,EAAI4D,iBAAiB,CAAC5D,EAAIO,GAAG,QAAQP,EAAI0B,GAAG1B,EAAIqD,cAAcrD,EAAI6D,SAASN,KAAK,MAAM,OAAOvD,EAAI0B,GAAG1B,EAAI6D,SAASL,MAAMC,QAAQ,IAAI,QAAQ,GAAGrD,EAAG,YAAY,CAAC6C,IAAI,YAAY/B,MAAM,CAACnC,MAAOiB,EAAe,YAAEmB,SAAS,SAAUC,GAAMpB,EAAI8D,YAAY1C,GAAKE,WAAW,iBAAiBlB,EAAG,cAAc,CAACE,MAAM,CAAC,KAAON,EAAI+D,eAAiB/D,EAAI+D,cAAcC,gBAAgB9C,MAAM,CAACnC,MAAOiB,EAAmB,gBAAEmB,SAAS,SAAUC,GAAMpB,EAAIiE,gBAAgB7C,GAAKE,WAAW,sBAAsB,IACxgG,EAAkB,G,YCDlB,EAAS,WAAa,IAAItB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,QAAQJ,EAAIkE,GAAGlE,EAAImE,GAAG,CAAC7D,MAAM,CAAC,UAAY,GAAG,MAAQN,EAAIoE,KAAKpD,GAAG,CAAC,QAAQhB,EAAIqE,eAAe,YAAYrE,EAAIqE,iBAAiB,QAAQrE,EAAIsE,QAAO,GAAOtE,EAAIuE,YAAY,CAACnE,EAAG,SAAS,CAACI,YAAY,CAAC,WAAa,SAASF,MAAM,CAAC,GAAK,SAAS,MAAQ,MAAM,OAAS,SAASF,EAAG,MAAM,CAACE,MAAM,CAAC,KAAO,UAAUI,KAAK,UAAU,CAACV,EAAIO,GAAG,WAAWH,EAAG,cAAc,CAACE,MAAM,CAAC,KAAO,SAASY,MAAM,CAACnC,MAAOiB,EAAe,YAAEmB,SAAS,SAAUC,GAAMpB,EAAIwE,YAAYpD,GAAKE,WAAW,iBAAkBtB,EAAgB,aAAEI,EAAG,SAAS,CAACE,MAAM,CAAC,KAAO,iBAAiBU,GAAG,CAAC,MAAQhB,EAAIyE,WAAWrE,EAAG,SAAS,CAACE,MAAM,CAAC,KAAO,gBAAgBU,GAAG,CAAC,MAAQhB,EAAI0E,WAAW,MACnuB,EAAkB,GCmBtB,IAAIC,EAAO,KACX,OACErG,KAAM,YACN,OACE,MAAO,CACLsG,cAAc,EACdJ,YAAa,GACbJ,IAAK,KAGTS,MAAO,CACL,aAAa9F,GACX4F,EAAKC,aAAa7F,IAEpB,YAAY+F,GACVH,EAAKH,YAAcM,IAGvB,UACEH,EAAO,IAAI/E,OAAOmF,UAAU,CAC1BC,OAAQC,SAASC,eAAe,UAChCC,QAAS,kBACTX,YAAavE,KAAKuE,eAGtB,YACEvE,KAAKoE,iBACLM,EAAKS,WAEPC,QAAS,CACP,KAAKjB,GACHnE,KAAKmE,IAAMA,EACXO,EAAKW,KAAKlB,IAEZ,iBACEO,EAAKY,SAEP,SACEtF,KAAK2E,cAAe,GAEtB,UACE3E,KAAK2E,cAAe,KC7D4W,ICOlY,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,I,QClBX,EAAS,WAAa,IAAI5E,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,SAAS,CAACE,MAAM,CAAC,QAAU,QAAQ,QAAU,KAAM,IAAIkF,KAAKxF,EAAIjB,OAAO0G,mBAAmB,CAACrF,EAAG,OAAO,CAACE,MAAM,CAAC,KAAO,IAAIkF,KAAKxF,EAAIjB,WAAW,IAC3O,EAAkB,GCMtB,GACE,KAAF,YACE,MAAF,CACI,MAAJ,SCVsY,ICOlY,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIa,I,QClBX,EAAS,WAAa,IAAIiB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACK,YAAY,WAAWT,EAAIuB,GAAIvB,EAAQ,MAAE,SAASwB,GAAM,OAAOpB,EAAG,OAAO,CAACf,IAAImC,GAAM,CAACpB,EAAG,IAAI,CAACE,MAAM,CAAC,KAAO,SAASI,KAAK,SAAS,CAACV,EAAIO,GAAGP,EAAI0B,GAAGF,EAAKkE,SAAStF,EAAG,MAAM,CAACE,MAAM,CAAC,KAAO,SAASI,KAAK,SAAS,CAACN,EAAG,SAAS,CAACE,MAAM,CAAC,KAAO,UAAU,KAAO,SAASU,GAAG,CAAC,MAAQ,SAASwB,GAAQ,OAAOxC,EAAIsF,KAAK9D,OAAUpB,EAAG,SAAS,CAACE,MAAM,CAAC,KAAO,YAAY,KAAO,SAASU,GAAG,CAAC,MAAQ,SAASwB,GAAQ,OAAOxC,EAAI2F,UAAUnE,QAAW,GAAGxB,EAAIO,GAAG,IAAIP,EAAI0B,GAAG1B,EAAI4F,UAAUpE,EAAKqE,OAAO,IAAI7F,EAAI0B,GAAG1B,EAAI8F,cAActE,EAAKuE,WAAW,UAAS,IAC1nB,EAAkB,GCatB,MAAMC,EAAU,CACd,GAAI,IACJC,EAAG,IACHC,EAAG,IACHC,EAAG,MAGL,OACE,OACE,MAAO,CACLjK,KAAM,KAGVmJ,QAAS,CACP,KAAK7D,GACH5B,OAAOwG,KAAKzH,IAClB,0CACA,CAAQ,WAAR,2BACA,IACA,cACU,KAAV,cACU,KAAV,0BAEU,KAAV,qBAKI,UAAU6C,GACRvB,KAAKoG,OAAOC,QAAQ,CAClBC,MAAO,KACPC,QAAS,mBACTC,KAAM,KACJ7G,OAAOwG,KAAKzH,IACtB,4CACA,CAAY,WAAZ,2BACA,IACA,aACc,KAAd,yBAEc,KAAd,qBAKQ+H,SAAU,UAGd,UAAU3H,EAAO4H,EAAO,IACtB,OAAI5H,EAAQ,MAAQiH,EAAQW,GACnB1G,KAAK2F,UAAU7G,EAAQ,KAAMiH,EAAQW,IAEvC5H,EAAM0E,QAAQ,GAAGmD,QAAQ,MAAO,IAAMD,EAAO,KAEtD,cAAc5H,GACZ,GAAIA,EAAQ,IAAM,CAChB,IAAIjB,EAAIiB,EAAQ,IAChB,GAAIjB,EAAI,GAAI,CACVA,GAAQ,EACR,IAAI+I,EAAM,EAApB,MACU,GAAIA,EAAM,GAAI,CACZ,IAAIC,EAAO,EAAvB,MACY,OAAOA,EAAO,OAAS,EAAnC,SAEY,OAAOD,EAAM,MAAQ,EAAjC,OAGU,OAAO/I,EAAE2F,QAAQ,GAAK,IAGxB,OAAO1E,EAAQ,MAGnB,UAAUgI,GACJA,GACFnH,OAAOwG,KAAKY,QACpB,0CACA,GACA,IACU,KAAV,YC7FoY,ICQhY,G,UAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,OAIa,I,QCnBX,EAAS,WAAa,IAAIhH,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACI,YAAY,CAAC,QAAU,WAAW,CAACJ,EAAG,MAAM,CAACJ,EAAIO,GAAG,UAAUH,EAAG,WAAW,CAACc,MAAM,CAACnC,MAAOiB,EAAc,WAAEmB,SAAS,SAAUC,GAAMpB,EAAIiH,WAAW7F,GAAKE,WAAW,iBAAiB,GAAGlB,EAAG,MAAM,CAAC6C,IAAI,eAAexC,YAAY,iBAAiB,CAACL,EAAG,MAAM,CAACJ,EAAIuB,GAAIvB,EAAIkH,OAAOC,MAAU,MAAE,SAAS3F,GAAM,MAAO,CAACxB,EAAIO,GAAGP,EAAI0B,GAAGF,EAAK,YAAW,QACtb,EAAkB,GCatB,GACE,OACE,MAAO,CACLyF,YAAY,IAGhB,UACEhH,KAAKmH,aAEP,YACEnH,KAAKoH,iBAEPhC,QAAS,IACX,+CAEE,UACMpF,KAAKgH,aACPhH,KAAKqH,MAAMC,aAAaC,UAAYvH,KAAKqH,MAAMC,aAAaE,gBC/B+T,ICQ7X,G,UAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,OAIa,I,QCnBX,EAAS,WAAa,IAAIzH,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACI,YAAY,CAAC,QAAU,WAAW,CAACJ,EAAG,MAAM,CAACJ,EAAIO,GAAGP,EAAI0B,GAAG1B,EAAI0H,cACrK,EAAkB,GCMtB,GACE,OACE,MAAO,CACLA,OAAQ,KAGZrC,QAAS,CACP,UAAU0B,GACJA,GACFnH,OAAOwG,KAAKzH,IACpB,iCACA,GACA,qBCnBmY,ICO/X,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,I,QClBX,EAAS,WAAa,IAAIqB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,QAAQJ,EAAIkE,GAAGlE,EAAImE,GAAG,CAAC7D,MAAM,CAAC,UAAY,GAAG,MAAQ,UAAU,QAAQN,EAAIsE,QAAO,GAAOtE,EAAIuE,YAAY,CAACnE,EAAG,QAAQ,CAACE,MAAM,CAAC,QAAUN,EAAI2H,gBAAgB,KAAO3H,EAAI9D,SAAS,IAC9Q,GAAkB,GCMtB,IACE0L,MAAO,CACL1L,KAAM2L,OAER,OACE,MAAO,CACLF,gBAAiB,CACvB,CACQ,MAAR,KACQ,IAAR,QAEA,CACQ,MAAR,OACQ,IAAR,MAEA,CACQ,MAAR,OACQ,OAAR,OAAU,IACA,OAAV,eACY,MAAZ,CACc,MAAd,qBAKA,CACQ,MAAR,KACQ,OAAR,OAAU,IACA,OAAV,EACA,OACA,kDAIA,CACQ,MAAR,SACQ,OAAR,OAAU,IACA,OAAV,cACY,MAAZ,CACc,QAAd,mCACc,eAAd,EACc,eAAd,GACc,eAAd,+BCjDwY,MCOpY,GAAY,eACd,GACA,EACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAI3H,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACJ,EAAIO,GAAG,UAAUH,EAAG,WAAW,CAACc,MAAM,CAACnC,MAAOiB,EAAc,WAAEmB,SAAS,SAAUC,GAAMpB,EAAI8H,WAAW1G,GAAKE,WAAW,gBAAgBlB,EAAG,MAAM,CAACE,MAAM,CAAC,GAAK,gBAAgB,IAClR,GAAkB,G,wBCUlByH,GAAQ,KACZ,IACE,OACE,MAAO,CACLD,YAAY,IAGhBE,SAAU,IACZ,gBACM,KAAKb,GACH,IAAI9I,EAAI4B,KAAKgI,UAAUd,EAAMe,SAE7B,OADA7J,EAAE8J,MAAQ,KAAO9J,EAAE8J,MACZ9J,MAIbgH,QAAS,CACP,UAAU+C,GACR,IAAI7K,EAAS,CACX8K,GAAID,EAAKE,QACTH,MAAOC,EAAKE,QACZC,YAAa,OAAOH,EAAKzE,UAAY,UAAUyE,EAAK9E,OAAOE,OACnE,KACQgF,MAAO,YACPC,SAAU,CACRC,MAAM,GAERC,SAAU,IAGZ,GAAIP,EAAKpF,MACP,IAAK,IAAIxG,EAAI,EAAGA,EAAI4L,EAAKpF,MAAMtG,OAAQF,IAAK,CAC1C,IAAIoM,EAAOR,EAAKpF,MAAMxG,GAClBqM,EAASD,EAAKnH,WACdqH,EAAW,CACbT,GAAIQ,EACJV,MAAOS,EAAKnH,WACZ+G,MAAO,OACPG,SAAU,IAGZ,GADApL,EAAOoL,SAAS3L,KAAK8L,GACjBF,EAAK5E,eACP,IAAK,IAAItG,EAAI,EAAGA,EAAIkL,EAAK5E,eAAetH,OAAQgB,IAAK,CACnD,IAAIqL,EAAQF,EAASD,EAAK5E,eAAetG,GAAGsL,GAC5CF,EAASH,SAAS3L,KAAK,CACrBqL,GAAIU,EACJZ,MAAOS,EAAK5E,eAAetG,GAAGsL,MAMxC,GAAIZ,EAAKa,SACP,IAAK,IAAIC,KAAWd,EAAKa,SACvB1L,EAAOoL,SAAS3L,KAAKiD,KAAKgI,UAAUG,EAAKa,SAASC,KAGtD,OAAO3L,IAGXsH,MAAO,CACL,KAAKC,GACCiD,IAAS9H,KAAK6H,aAEhBC,GAAMoB,WAAWrE,GACjBiD,GAAMqB,aAKZ,UACErB,GAAQ,IAAI,GAAhB,aACMsB,YAAY,EAEZC,UAAW,YACXC,MAAO,IACPC,OAAQ,IACRC,MAAO,CACLC,QAAS,CAAC,cAAe,cAAe,eAAgB,cAE1DC,SAAS,EACTC,OAAQ,CAENC,UAAW,OAIf9B,GAAM+B,KAAK7J,KAAK/D,MAChB6L,GAAMqB,YCnG0X,MCOhY,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QCoDf,MAAM,GAAN,CACE,GAAI,IACJnD,EAAG,IACHC,EAAG,IACHC,EAAG,MAECrE,GAAc,CAClBiI,EAAG,8BACHC,EAAG,QACHC,EAAG,MACHC,EAAG,4BACHC,EAAG,wBACHC,EAAG,uBACHC,EAAG,aACHC,EAAG,8BACHC,EAAG,+BACHC,EAAG,WACHC,GAAI,MACJC,GAAI,QACJC,GAAI,WACJC,GAAI,yBAEAzI,GAAU,CACd6H,EAAG,0BACHC,EAAG,iBACHC,EAAG,eACHC,EAAG,UACHC,EAAG,6BACHC,EAAG,yBACHC,EAAG,MACHO,GAAI,QAEN,QACEvM,KAAM,UACNwM,WAAY,CACV/F,UAAJ,EACIlD,UAAJ,EACIkJ,QAAJ,EACIC,KAAJ,EACIC,YAAJ,GACIC,OAAJ,EACIC,QAAJ,IAEE,OACE,MAAO,CACLrH,aAAa,EACbG,iBAAiB,EACjB5C,WAAY,GACZ0C,cAAe,GACfpC,QAAS,CACPyJ,SAAU,KACVC,QAAS,KACTC,GAAI,KACJC,IAAK,KACL,GAAI,IACJC,SAAU,KACVC,KAAM,QAIZzD,SAAU,IACZ,gBACMhF,MAAOmE,GAASA,EAAMe,QAAQlF,OAAS,GACvCM,OAAQ6D,GAASA,EAAMe,QAAQ5E,OAC/BK,SAAUwD,GAASA,EAAMe,QAAQvE,SACjCE,SAAUsD,GAASA,EAAMe,QAAQrE,SACjCH,UAAWyD,GACLA,EAAMe,QAAQvE,SAAW,GAAW,QACjCwD,EAAMe,QAAQvE,SAAW,GAAK,UAAY,UAEnD,aAAawD,GACX,OAAIA,EAAMe,QAAQvE,SAAW,GAAW,QACjCwD,EAAMe,QAAQvE,SAAW,GAAK,UAAY,WAEnD,eAAewD,GACb,OAAIA,EAAMe,QAAQvE,SAAW,GAAW,QACjCwD,EAAMe,QAAQvE,SAAW,GAAK,UAAY,WAEnD,gBAAgBwD,GACd,OACR,mBACA,kBACA,yBACA,wBACA,GAEA,GACA,MAGM,iBAAiBA,GACf,OACR,mBACA,kBACA,iDACA,GACA,SAKE9B,QAAS,IACX,oDACI,mBAAmB7D,GAOjB,OALN,oBACA,8CAEQvB,KAAK8D,cAAgBvC,GAEhBA,EAAKwC,eAAiBxC,EAAKwC,eAAetH,OAAS,GAE5D,QAAQ8E,GACNvB,KAAKqH,MAAMoE,UAAUpG,KAC3B,iDAEMrF,KAAK6D,aAAc,GAErB,aAAatC,GACXvB,KAAKgE,iBAAkB,EACvBhE,KAAK8D,cAAgBvC,GAEvB,cAAczC,EAAO4H,EAAO,IAC1B,OAAI5H,EAAQ,MAAQ,GAA1B,GACekB,KAAKoD,cAActE,EAAQ,KAAM,GAAhD,IAEaA,EAAM0E,QAAQ,GAAGmD,QAAQ,MAAO,IAAMD,EAAO,KAEtD,YAAYgF,GACV,OAAO7J,GAAY6J,IAErB,QAAQC,GACN,OAAOzJ,GAAQyJ,IAEjB,UAAUC,GACR,OAAOA,EAAO,IAAOA,EAAO,IAAO,MAAQA,EAAO,MAEpD,OAAOrK,GACLvB,KAAKoG,OAAOC,QAAQ,CAClBC,MAAO,KACPC,QAAS,4CACTC,KAAM,KACJ7G,OAAOwG,KAAKzH,IACtB,iDACA,CAAY,WAAZ,cACA,IACA,aACc,KAAd,+BAEc,KAAd,qBAKQ+H,SAAU,KACR9G,OAAOwG,KAAKzH,IACtB,qCACA,CAAY,WAAZ,cACA,IACA,aACc,KAAd,yBAEc,KAAd,wBAOI,WAAW6C,GACT5B,OAAOwG,KAAKzH,IAClB,0CACA,CAAQ,WAAR,cACA,IACA,aACU,KAAV,yBAEU,KAAV,qBAKI,YAAY6C,GACV,OACN,kBACA,+CAGI,YAAYlD,GACV,OAAQA,GACN,IAAK,eACH2B,KAAKqH,MAAMwE,aAAaC,WAAU,GAClC,MACF,IAAK,cACH9L,KAAKqH,MAAM0E,YAAYD,WAAU,MAIzC,UACE9L,KAAKgM,gBAEP,YACEhM,KAAKiM,qBChR2X,MCQhY,I,UAAY,eACd,GACA,EACA,GACA,EACA,KACA,WACA,OAIa,M,QCbfC,aAAIC,IAAIC,QAER,MAAMC,GAAS,CACX,CACIC,KAAM,IACNjO,KAAM,OACNuC,UAAW2L,cAEf,CACID,KAAM,SACNjO,KAAM,QACNuC,UAAW4L,GACZ,CACCF,KAAM,WACNjO,KAAM,UACNuC,UAAW6L,KAIbC,GAAS,IAAIN,OAAU,CACzBpN,KAAM,UACN2N,KAAMC,IACNP,YAGWK,UC5BfR,aAAIC,IAAIU,QACR,IAAIC,GAAY,KACZC,GAAS,KACE,WAAIF,OAAKG,MAAM,CAC5B9F,MAAO,CACLe,QAAS,CACPI,QAAS4E,SAASC,SAClBC,QAAS,GACTpK,MAAO,GACPM,OAAQ,CACNC,KAAM,EACNC,MAAO,GAETG,SAAU,EACVE,SAAU,CACRN,KAAM,EACNC,MAAO,GAETyF,SAAU,IACToE,KAAM,IAEXC,UAAW,CACTC,OAAOpG,EAAOqG,GACZ7Q,OAAO8Q,OAAOtG,EAAOqG,IAEvBE,OAAOvG,EAAOqG,GACZrG,EAAMkG,KAAKrQ,KAAKwQ,KAGpBG,QAAS,CACP1B,cAAa,OAAE2B,IACbb,GAAY,IAAIc,YACd,KAAOX,SAASY,KAAO,gBAEzBf,GAAUgB,UAAYC,IACpB,IAAKA,EAAI9R,KAAM,OACf,IAAIgM,EAAU+F,KAAKC,MAAMF,EAAI9R,MAC7BgM,EAAQI,QAAU4E,SAASC,SAC3BS,EAAO,SAAU,CAAE1F,cAGvBd,WAAU,OAAEwG,IACVZ,GAAS,IAAIa,YACX,KAAOX,SAASY,KAAO,aAEzBd,GAAOe,UAAYC,IACZA,EAAI9R,MACT0R,EAAO,SAAUI,EAAI9R,QAGzBmL,gBACE2F,GAAOzH,SAET2G,mBACEa,GAAUxH,UAGdtI,QAAS,K,kCCzDXkP,aAAIC,IAAI+B,MCGRhC,aAAIzE,OAAO0G,eAAgB,EAE3B,IAAIjC,aAAI,CACNQ,UACA0B,SACAtO,OAAQuO,GAAKA,EAAEC,KACdC,OAAO,S,kCCZV,yBAAuhB,EAAG,G,oCCA1hB,yBAAiY,eAAG,G,6DCApY,yBAAshB,EAAG,G,gFCAzhB,yBAA8f,EAAG,G,kCCAjgB,oDAQI3N,EAAY,eACd,aACA,OACA,QACA,EACA,KACA,WACA,MAIa,aAAAA,E,8BCnBf5C,EAAOD,QAAU,IAA0B,yB,qBCA3CC,EAAOD,QAAU,IAA0B,2B","file":"js/app.017fb959.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import mod from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!../node_modules/iview-loader/index.js??ref--0-2!./App.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!../node_modules/iview-loader/index.js??ref--0-2!./App.vue?vue&type=style&index=0&lang=css&\"","module.exports = __webpack_public_path__ + \"img/alipay.e872ea78.png\";","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Console.vue?vue&type=style&index=0&id=65ac4b48&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Console.vue?vue&type=style&index=0&id=65ac4b48&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Records.vue?vue&type=style&index=0&id=7d5ab110&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Records.vue?vue&type=style&index=0&id=7d5ab110&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('img',{attrs:{\"src\":require(\"../assets/logo.png\")}}),_c('div',[_c('p',[_vm._v(\" Monibuca 是一个开源的Go语言实现的流媒体服务器开发框架 \")]),_c('Button',{attrs:{\"type\":\"success\",\"to\":\"/docs\",\"target\":\"_blank\"}},[_vm._v(\"🚀START\")]),_c('span',{staticStyle:{\"margin\":\"0 10px\"}}),_c('Button',{attrs:{\"type\":\"default\",\"target\":\"_blank\",\"to\":\"https://github.com/langhuihui/monibuca\"}},[_c('svg',{staticStyle:{\"vertical-align\":\"text-top\"},attrs:{\"width\":\"16\",\"height\":\"16\",\"aria-labelledby\":\"simpleicons-github-dark-icon\",\"lang\":\"\",\"role\":\"img\",\"viewBox\":\"0 0 24 24\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('title',{attrs:{\"id\":\"simpleicons-github-dark-icon\",\"lang\":\"en\"}},[_vm._v(\"GitHub Dark icon\")]),_c('path',{attrs:{\"fill\":\"#7F8C8D\",\"d\":\"M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12\"}})]),_vm._v(\" GITHUB\")])],1),_c('Row',{staticStyle:{\"margin\":\"30px\"}},[_c('Col',{attrs:{\"span\":\"8\"}},[_c('Card',{staticStyle:{\"margin\":\"30px\"},attrs:{\"bordered\":false}},[_c('div',{staticClass:\"feature-title\",attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(\"⚡高性能\")]),_c('div',[_vm._v(\"针对流媒体服务器独特的性质进行的优化,充分利用Golang的goroutine的性质对大量的连接的读写进行合理的分配计算资源,以及尽可能的减少内存Copy操作。使用对象池减少Golang的GC时间。\")])])],1),_c('Col',{attrs:{\"span\":\"8\"}},[_c('Card',{staticStyle:{\"margin\":\"30px\"},attrs:{\"bordered\":false}},[_c('div',{staticClass:\"feature-title\",attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(\"🔧可扩展\")]),_c('div',[_vm._v(\"流媒体服务器的个性化定制变的更简单,基于Golang语言,开发效率更高,独创的插件机制,可以方便用户定制个性化的功能组合,更高效率的利用服务器资源。\")])])],1),_c('Col',{attrs:{\"span\":\"8\"}},[_c('Card',{staticStyle:{\"margin\":\"30px\"},attrs:{\"bordered\":false}},[_c('div',{staticClass:\"feature-title\",attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(\"📈可视化\")]),_c('div',[_vm._v(\"功能强大的仪表盘可以直观的看到服务器运行的状态、消耗的资源、以及其他统计信息。用户可以利用控制台对服务器进行配置和控制。点击右上角菜单栏里面的控制台,可以看到演示。\")])])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export * from \"-!../../node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"1c1fcec7-vue-loader-template\\\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Home.vue?vue&type=template&id=54efad41&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('div',[_vm._v(\"Monibuca\")]),_c('Menu',{staticStyle:{\"position\":\"absolute\",\"top\":\"0\",\"right\":\"0\"},attrs:{\"mode\":\"horizontal\",\"active-name\":_vm.selectedMenu}},[_c('MenuItem',{attrs:{\"name\":\"home\",\"to\":\"/\"}},[_vm._v(\"首页\")]),_c('MenuItem',{attrs:{\"name\":\"docs\",\"to\":\"/docs\",\"target\":\"_blank\"}},[_vm._v(\"文档\")]),_c('MenuItem',{attrs:{\"name\":\"console\",\"to\":\"console\"}},[_vm._v(\"控制台\")]),_c('Submenu',{attrs:{\"name\":\"plugins\"}},[_c('template',{slot:\"title\"},[_vm._v(\"内置插件\")]),_c('MenuGroup',{attrs:{\"title\":\"发布者/订阅者\"}},[_c('MenuItem',{attrs:{\"name\":\"cluster\",\"target\":\"_blank\",\"to\":\"/docs/plugins.html#cluster插件\"}},[_vm._v(\"集群\")]),_c('MenuItem',{attrs:{\"name\":\"rtmp\",\"target\":\"_blank\",\"to\":\"/docs/plugins.html#rtmp插件\"}},[_vm._v(\"RTMP\")])],1),_c('MenuGroup',{attrs:{\"title\":\"订阅者\"}},[_c('MenuItem',{attrs:{\"name\":\"jessica\",\"target\":\"_blank\",\"to\":\"/docs/plugins.html#jessica插件\"}},[_vm._v(\"Jessica\")]),_c('MenuItem',{attrs:{\"name\":\"HDL\",\"target\":\"_blank\",\"to\":\"/docs/plugins.html#http-flv插件\"}},[_vm._v(\"Http-Flv\")]),_c('MenuItem',{attrs:{\"name\":\"record\",\"target\":\"_blank\",\"to\":\"/docs/plugins.html#recordflv插件\"}},[_vm._v(\"录制Flv\")])],1),_c('MenuGroup',{attrs:{\"title\":\"发布者\"}},[_c('MenuItem',{attrs:{\"name\":\"HLS\",\"target\":\"_blank\",\"to\":\"/docs/plugins.html#hls插件\"}},[_vm._v(\"HLS\")]),_c('MenuItem',{attrs:{\"name\":\"TS\",\"target\":\"_blank\",\"to\":\"/docs/plugins.html#hls插件\"}},[_vm._v(\"TS\")])],1),_c('MenuGroup',{attrs:{\"title\":\"钩子\"}},[_c('MenuItem',{attrs:{\"name\":\"Auth\",\"target\":\"_blank\",\"to\":\"/docs/plugins.html#校验插件\"}},[_vm._v(\"验证\")]),_c('MenuItem',{attrs:{\"name\":\"QoS\"}},[_vm._v(\"QoS\")]),_c('MenuItem',{attrs:{\"name\":\"gateway\",\"target\":\"_blank\",\"to\":\"/docs/plugins.html#网关插件\"}},[_vm._v(\"网关\")])],1)],2),_c('MenuItem',{attrs:{\"name\":\"4\",\"to\":\"about\"}},[_vm._v(\"支持\")])],1),_c('router-view',{staticClass:\"content\"}),_c('div',[_vm._v(\"Copyright © 2019-2020 dexter 苏ICP备20001212号\")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!../node_modules/iview-loader/index.js??ref--0-2!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!../node_modules/iview-loader/index.js??ref--0-2!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=00477a3c&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"root\"},[_c('h1',[_vm._v(\" 赞助 Monibuca 的研发 \")]),_c('p',[_vm._v(\" Monibuca 是采用 MIT 许可的开源项目,使用完全免费。 但是随着项目规模的增长,也需要有相应的资金支持才能持续项目的维护的开发。你可以通过下列的方法来赞助 Monibuca 的开发。 \")]),_c('img',{attrs:{\"src\":require(\"../assets/alipay.png\")}}),_c('img',{attrs:{\"src\":require(\"../assets/wechat.jpg\")}})])}]\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./About.vue?vue&type=template&id=e34eab40&scoped=true&\"\nvar script = {}\nimport style0 from \"./About.vue?vue&type=style&index=0&id=e34eab40&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e34eab40\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"text-align\":\"left\"}},[_c('Tabs',{on:{\"on-click\":_vm.onChangeTab},model:{value:(_vm.currentTab),callback:function ($$v) {_vm.currentTab=$$v},expression:\"currentTab\"}},[_c('TabPane',{attrs:{\"label\":\"直播流\",\"icon\":\"md-videocam\"}},[_c('div',{staticClass:\"layout\"},[_vm._l((_vm.Rooms),function(item){return _c('Card',{key:item.StreamPath,staticClass:\"room\"},[_c('p',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(_vm._s(_vm.typeMap[item.Type]||item.Type)+_vm._s(item.StreamPath))]),_c('StartTime',{attrs:{\"slot\":\"extra\",\"value\":item.StartTime},slot:\"extra\"}),_c('p',[_vm._v(\" \"+_vm._s(_vm.SoundFormat(item.AudioInfo.SoundFormat))+\" \"+_vm._s(item.AudioInfo.PacketCount)+\" \"+_vm._s(_vm.SoundRate(item.AudioInfo.SoundRate))+\" 声道:\"+_vm._s(item.AudioInfo.SoundType)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(_vm.CodecID(item.VideoInfo.CodecID))+\" \"+_vm._s(item.VideoInfo.PacketCount)+\" \"+_vm._s(item.VideoInfo.SPSInfo.Width)+\"x\"+_vm._s(item.VideoInfo.SPSInfo.Height)+\" \")]),_c('ButtonGroup',{attrs:{\"size\":\"small\"}},[_c('Button',{attrs:{\"icon\":\"ios-people\"},on:{\"click\":function($event){return _vm.onShowDetail(item)}}},[_vm._v(_vm._s(_vm.getSubscriberCount(item)))]),(item.Type)?_c('Button',{attrs:{\"icon\":\"md-eye\"},on:{\"click\":function($event){return _vm.preview(item)}}}):_vm._e(),(_vm.isRecording(item))?_c('Button',{staticClass:\"recording\",attrs:{\"icon\":\"ios-radio-button-on\"},on:{\"click\":function($event){return _vm.stopRecord(item)}}}):_c('Button',{attrs:{\"icon\":\"ios-radio-button-on\"},on:{\"click\":function($event){return _vm.record(item)}}})],1)],1)}),(_vm.Rooms.length==0)?_c('div',{staticClass:\"empty\"},[_c('Icon',{attrs:{\"type\":\"md-wine\",\"size\":\"50\"}}),_vm._v(\"没有任何房间 \")],1):_vm._e()],2)]),_c('TabPane',{attrs:{\"label\":\"集群总览\",\"icon\":\"ios-cloud\"}},[_c('Cluster')],1),_c('TabPane',{attrs:{\"label\":\"录制的视频\",\"icon\":\"ios-folder\",\"name\":\"recordsPanel\"}},[_c('Records',{ref:\"recordsPanel\"})],1),_c('TabPane',{attrs:{\"label\":\"日志跟踪\",\"icon\":\"md-bug\"}},[_c('Logs')],1),_c('TabPane',{attrs:{\"label\":\"查看配置\",\"icon\":\"md-settings\",\"name\":\"configPanel\"}},[_c('Config',{ref:\"configPanel\"})],1)],1),_c('div',{staticClass:\"status\"},[_c('Alert',[_vm._v(\"带宽消耗 📥:\"+_vm._s(_vm.totalInNetSpeed)+\" 📤:\"+_vm._s(_vm.totalOutNetSpeed))]),_c('Alert',{attrs:{\"type\":_vm.memoryStatus}},[_vm._v(\"内存使用:\"+_vm._s(_vm.networkFormat(_vm.Memory.Used,\"M\"))+\" 占比:\"+_vm._s(_vm.Memory.Usage.toFixed(2))+\"%\")]),_c('Alert',{attrs:{\"type\":_vm.cpuStatus}},[_vm._v(\"CPU使用:\"+_vm._s(_vm.CPUUsage.toFixed(2))+\"%\")]),_c('Alert',{attrs:{\"type\":_vm.hardDiskStatus}},[_vm._v(\"磁盘使用:\"+_vm._s(_vm.networkFormat(_vm.HardDisk.Used,\"M\"))+\" 占比:\"+_vm._s(_vm.HardDisk.Usage.toFixed(2))+\"%\")])],1),_c('Jessibuca',{ref:\"jessibuca\",model:{value:(_vm.showPreview),callback:function ($$v) {_vm.showPreview=$$v},expression:\"showPreview\"}}),_c('Subscribers',{attrs:{\"data\":_vm.currentStream && _vm.currentStream.SubscriberInfo},model:{value:(_vm.showSubscribers),callback:function ($$v) {_vm.showSubscribers=$$v},expression:\"showSubscribers\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Modal',_vm._g(_vm._b({attrs:{\"draggable\":\"\",\"title\":_vm.url},on:{\"on-ok\":_vm.onClosePreview,\"on-cancel\":_vm.onClosePreview}},'Modal',_vm.$attrs,false),_vm.$listeners),[_c('canvas',{staticStyle:{\"background\":\"black\"},attrs:{\"id\":\"canvas\",\"width\":\"488\",\"height\":\"275\"}}),_c('div',{attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_vm._v(\" 音频缓冲: \"),_c('InputNumber',{attrs:{\"size\":\"small\"},model:{value:(_vm.audioBuffer),callback:function ($$v) {_vm.audioBuffer=$$v},expression:\"audioBuffer\"}}),(_vm.audioEnabled)?_c('Button',{attrs:{\"icon\":\"md-volume-off\"},on:{\"click\":_vm.turnOff}}):_c('Button',{attrs:{\"icon\":\"md-volume-up\"},on:{\"click\":_vm.turnOn}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Jessibuca.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Jessibuca.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Jessibuca.vue?vue&type=template&id=49a8d1fa&\"\nimport script from \"./Jessibuca.vue?vue&type=script&lang=js&\"\nexport * from \"./Jessibuca.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Poptip',{attrs:{\"trigger\":\"hover\",\"content\":'⌚️'+ new Date(_vm.value).toLocaleString()}},[_c('Time',{attrs:{\"time\":new Date(_vm.value)}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./StartTime.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./StartTime.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./StartTime.vue?vue&type=template&id=062b9730&scoped=true&\"\nimport script from \"./StartTime.vue?vue&type=script&lang=js&\"\nexport * from \"./StartTime.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"062b9730\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"records\"},_vm._l((_vm.data),function(item){return _c('Card',{key:item},[_c('p',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(_vm._s(item.Path))]),_c('div',{attrs:{\"slot\":\"extra\"},slot:\"extra\"},[_c('Button',{attrs:{\"icon\":\"md-play\",\"size\":\"small\"},on:{\"click\":function($event){return _vm.play(item)}}}),_c('Button',{attrs:{\"icon\":\"ios-trash\",\"size\":\"small\"},on:{\"click\":function($event){return _vm.deleteFlv(item)}}})],1),_vm._v(\" \"+_vm._s(_vm.toSizeStr(item.Size))+\" \"+_vm._s(_vm.toDurationStr(item.Duration))+\" \")])}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Records.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Records.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Records.vue?vue&type=template&id=7d5ab110&scoped=true&\"\nimport script from \"./Records.vue?vue&type=script&lang=js&\"\nexport * from \"./Records.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Records.vue?vue&type=style&index=0&id=7d5ab110&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7d5ab110\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"padding\":\"0 15px\"}},[_c('div',[_vm._v(\" 自动滚动 \"),_c('i-switch',{model:{value:(_vm.autoScroll),callback:function ($$v) {_vm.autoScroll=$$v},expression:\"autoScroll\"}})],1),_c('div',{ref:\"logContainer\",staticClass:\"log-container\"},[_c('pre',[_vm._l((_vm.$store.state.logs),function(item){return [_vm._v(_vm._s(item+\"\\n\"))]})],2)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Logs.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Logs.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Logs.vue?vue&type=template&id=1a609f26&\"\nimport script from \"./Logs.vue?vue&type=script&lang=js&\"\nexport * from \"./Logs.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Logs.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"padding\":\"0 15px\"}},[_c('pre',[_vm._v(_vm._s(_vm.config))])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Config.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Config.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Config.vue?vue&type=template&id=15fbfd50&\"\nimport script from \"./Config.vue?vue&type=script&lang=js&\"\nexport * from \"./Config.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Modal',_vm._g(_vm._b({attrs:{\"draggable\":\"\",\"title\":\"查看订阅者\"}},'Modal',_vm.$attrs,false),_vm.$listeners),[_c('Table',{attrs:{\"columns\":_vm.subtableColumns,\"data\":_vm.data}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Subscribers.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Subscribers.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Subscribers.vue?vue&type=template&id=a0df3126&\"\nimport script from \"./Subscribers.vue?vue&type=script&lang=js&\"\nexport * from \"./Subscribers.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_vm._v(\" 自动更新 \"),_c('i-switch',{model:{value:(_vm.autoUpdate),callback:function ($$v) {_vm.autoUpdate=$$v},expression:\"autoUpdate\"}}),_c('div',{attrs:{\"id\":\"mountNode\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Cluster.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Cluster.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Cluster.vue?vue&type=template&id=0530a174&\"\nimport script from \"./Cluster.vue?vue&type=script&lang=js&\"\nexport * from \"./Cluster.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Console.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Console.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Console.vue?vue&type=template&id=65ac4b48&scoped=true&\"\nimport script from \"./Console.vue?vue&type=script&lang=js&\"\nexport * from \"./Console.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Console.vue?vue&type=style&index=0&id=65ac4b48&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"65ac4b48\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\nimport VueRouter from 'vue-router'\nimport Home from '../views/Home.vue'\nimport About from '../views/About'\nimport Console from '../views/Console'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'home',\n component: Home\n },\n {\n path: '/about',\n name: 'about',\n component: About\n }, {\n path: '/console',\n name: 'console',\n component: Console\n }\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport Vuex from 'vuex'\n\nVue.use(Vuex)\nlet summaryES = null\nlet logsES = null\nexport default new Vuex.Store({\n state: {\n summary: {\n Address: location.hostname,\n NetWork: [],\n Rooms: [],\n Memory: {\n Used: 0,\n Usage: 0\n },\n CPUUsage: 0,\n HardDisk: {\n Used: 0,\n Usage: 0\n },\n Children: {}\n }, logs: []\n },\n mutations: {\n update(state, payload) {\n Object.assign(state, payload)\n },\n addLog(state, payload) {\n state.logs.push(payload)\n }\n },\n actions: {\n fetchSummary({ commit }) {\n summaryES = new EventSource(\n \"//\" + location.host + \"/api/summary\"\n );\n summaryES.onmessage = evt => {\n if (!evt.data) return\n let summary = JSON.parse(evt.data)\n summary.Address = location.hostname\n commit(\"update\", { summary })\n }\n },\n fetchLogs({ commit }) {\n logsES = new EventSource(\n \"//\" + location.host + \"/api/logs\"\n )\n logsES.onmessage = evt => {\n if (!evt.data) return\n commit(\"addLog\", evt.data)\n }\n },\n stopFetchLogs() {\n logsES.close()\n },\n stopFetchSummary() {\n summaryES.close()\n }\n },\n modules: {\n }\n})\n","import Vue from 'vue'\nimport ViewUI from 'view-design'\n\nVue.use(ViewUI)\n\nimport 'view-design/dist/styles/iview.css'\n","import Vue from 'vue'\r\nimport App from './App.vue'\r\nimport router from './router'\r\nimport store from './store'\r\nimport './plugins/iview.js'\r\n\r\nVue.config.productionTip = false\r\n\r\nnew Vue({\r\n router,\r\n store,\r\n render: h => h(App)\r\n}).$mount('#app')\r\n","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./About.vue?vue&type=style&index=0&id=e34eab40&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./About.vue?vue&type=style&index=0&id=e34eab40&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Home.vue?vue&type=script&lang=js&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Home.vue?vue&type=style&index=0&id=54efad41&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Home.vue?vue&type=style&index=0&id=54efad41&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Logs.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Logs.vue?vue&type=style&index=0&lang=css&\"","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=54efad41&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=54efad41&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"54efad41\",\n null\n \n)\n\nexport default component.exports","module.exports = __webpack_public_path__ + \"img/logo.b5357057.png\";","module.exports = __webpack_public_path__ + \"img/wechat.ff453262.jpg\";"],"sourceRoot":""} \ No newline at end of file diff --git a/dashboard/dist/js/app.0267da57.js b/dashboard/dist/js/app.0267da57.js deleted file mode 100644 index 5a4ab4c..0000000 --- a/dashboard/dist/js/app.0267da57.js +++ /dev/null @@ -1,2 +0,0 @@ -(function(t){function e(e){for(var a,n,i=e[0],l=e[1],c=e[2],d=0,m=[];d{"success"==t?(this.onVisible(!0),this.$Message.success("删除成功")):this.$Message.error(t)})},deleteFlv(t){this.$Modal.confirm({title:"提示",content:"

是否删除Flv文件

",onOk:()=>{window.ajax.get("//"+location.host+"/api/record/flv/delete",{streamPath:t.Path.replace(".flv","")},t=>{"success"==t?this.$Message.success("开始发布"):this.$Message.error(t)})},onCancel:()=>{}})},toSizeStr(t,e=""){return t>1024&&R[e]?this.toSizeStr(t/1024,R[e]):t.toFixed(2).replace(".00","")+e+"B"},toDurationStr(t){if(t>1e3){let e=t/1e3;if(e>60){e|=0;let t=e/60>>0;if(t>60){let e=t/60>>0;return e+"hour"+t%60+"min"}return t+"min"+e%60+"s"}return e.toFixed(3)+"s"}return t+"ms"},onVisible(t){t&&window.ajax.getJSON("//"+location.host+"/api/record/flv/list",{},t=>{this.data=t})}}},A=E,G=(r("e74f"),Object(l["a"])(A,F,D,!1,null,"4eee1624",null)),H=G.exports,B=function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("div",{staticStyle:{padding:"0 15px"}},[r("div",[t._v(" 自动滚动 "),r("i-switch",{model:{value:t.autoScroll,callback:function(e){t.autoScroll=e},expression:"autoScroll"}})],1),r("div",{ref:"logContainer",staticClass:"log-container"},[r("pre",[t._l(t.$store.state.logs,(function(e){return[t._v(t._s(e+"\n"))]}))],2)])])},L=[],N={data(){return{autoScroll:!0}},mounted(){this.fetchLogs()},destroyed(){this.stopFetchLogs()},methods:{...Object(_["b"])(["fetchLogs","stopFetchLogs"])},updated(){this.autoScroll&&(this.$refs.logContainer.scrollTop=this.$refs.logContainer.offsetHeight)}},z=N,V=(r("ac96"),Object(l["a"])(z,B,L,!1,null,null,null)),J=V.exports,W=function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("div",{staticStyle:{padding:"0 15px"}},[r("pre",[t._v(t._s(t.config))])])},K=[],Q={data(){return{config:""}},methods:{onVisible(t){t&&window.ajax.get("//"+location.host+"/api/config",{},t=>this.config=t)}}},q=Q,X=Object(l["a"])(q,W,K,!1,null,null,null),Y=X.exports,Z=function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("Modal",t._g(t._b({attrs:{draggable:"",title:"查看订阅者"}},"Modal",t.$attrs,!1),t.$listeners),[r("Table",{attrs:{columns:t.subtableColumns,data:t.data}})],1)},tt=[],et={props:{data:Array},data(){return{subtableColumns:[{title:"类型",key:"Type"},{title:"Name",key:"ID"},{title:"订阅时间",render(t,{row:e}){return t("StartTime",{props:{value:e.SubscribeTime}})}},{title:"丢帧",render(t,{row:e}){return t("span",e.TotalPacket?e.TotalDrop+"/"+e.TotalPacket:"")}},{title:"Buffer",render(t,{row:e}){return t("Progress",{props:{percent:Math.floor(99*e.BufferLength/1024),"text-inside":!0,"stroke-width":20,"stroke-color":["#87d068","#ff0000"]}})}}]}}},rt=et,at=Object(l["a"])(rt,Z,tt,!1,null,null,null),st=at.exports,ot=function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("div",{attrs:{id:"mountNode"}})},nt=[],it=r("07cd"),lt=r.n(it),ct=null,ut={computed:{...Object(_["c"])({data(t){let e=t.summary,r=[],a=[];return this.addServer(e,r,a),{nodes:r,edges:a}}})},methods:{addServer(t,e,r){let a={id:t.Address,label:t.Address,description:`cpu:${t.CPUUsage>>0}% mem:${t.Memory.Usage>>0}%`,shape:"modelRect",logoIcon:{show:!1}};if(e.push(a),t.Rooms)for(let s=0;st.summary.Rooms||[],Memory:t=>t.summary.Memory,CPUUsage:t=>t.summary.CPUUsage,HardDisk:t=>t.summary.HardDisk,cpuStatus:t=>t.summary.CPUUsage>99?"error":t.summary.CPUUsage>50?"warning":"success",memoryStatus(t){return t.summary.CPUUsage>99?"error":t.summary.CPUUsage>50?"warning":"success"},hardDiskStatus(t){return t.summary.CPUUsage>99?"error":t.summary.CPUUsage>50?"warning":"success"},totalInNetSpeed(t){return this.networkFormat(t.summary.NetWork?t.summary.NetWork.reduce((t,e)=>t+e.ReceiveSpeed,0):0)+"/S"},totalOutNetSpeed(t){return this.networkFormat(t.summary.NetWork?t.summary.NetWork.reduce((t,e)=>t+e.SentSpeed,0):0)+"/S"}})},methods:{...Object(_["b"])(["fetchSummary","stopFetchSummary"]),getSubscriberCount(t){return this.currentStream&&this.currentStream.StreamPath==t.StreamPath&&(this.currentStream=t),t.SubscriberInfo?t.SubscriberInfo.length:0},preview(t){this.$refs.jessibuca.play("ws://"+location.hostname+":8080/"+t.StreamPath),this.showPreview=!0},onShowDetail(t){this.showSubscribers=!0,this.currentStream=t},networkFormat(t,e=""){return t>1024&&ft[e]?this.networkFormat(t/1024,ft[e]):t.toFixed(2).replace(".00","")+e+"B"},SoundFormat(t){return ht[t]},CodecID(t){return gt[t]},SoundRate(t){return t>1e3?t/1e3+"kHz":t+"Hz"},record(t){this.$Modal.confirm({title:"提示",content:"

是否使用追加模式

选择取消将覆盖已有文件",onOk:()=>{window.ajax.get("//"+location.host+"/api/record/flv?append=true",{streamPath:t.StreamPath},t=>{"success"==t?this.$Message.success("开始录制(追加模式)"):this.$Message.error(t)})},onCancel:()=>{window.ajax.get("//"+location.host+"/api/record/flv",{streamPath:t.StreamPath},t=>{"success"==t?this.$Message.success("开始录制"):this.$Message.error(t)})}})},stopRecord(t){window.ajax.get("//"+location.host+"/api/record/flv/stop",{streamPath:t.StreamPath},t=>{"success"==t?this.$Message.success("停止录制"):this.$Message.error(t)})},isRecording(t){return t.SubscriberInfo&&t.SubscriberInfo.find(t=>"FlvRecord"==t.Type)},onChangeTab(t){switch(t){case"recordsPanel":this.$refs.recordsPanel.onVisible(!0);break;case"configPanel":this.$refs.configPanel.onVisible(!0)}}},mounted(){this.fetchSummary()},destroyed(){this.stopFetchSummary()}},vt=bt,St=(r("9756"),Object(l["a"])(vt,v,S,!1,null,"f6113870",null)),_t=St.exports;a["default"].use(d["a"]);const yt=[{path:"/",name:"home",component:m["default"]},{path:"/about",name:"about",component:b},{path:"/console",name:"console",component:_t}],wt=new d["a"]({mode:"history",base:"/",routes:yt});var Pt=wt;a["default"].use(_["a"]);let Ct=null,Mt=null;var kt=new _["a"].Store({state:{summary:{Address:location.hostname,NetWork:[],Rooms:[],Memory:{Used:0,Usage:0},CPUUsage:0,HardDisk:{Used:0,Usage:0},Children:{}},logs:[]},mutations:{update(t,e){Object.assign(t,e)},addLog(t,e){t.logs.push(e)}},actions:{fetchSummary({commit:t}){Ct=new EventSource("//"+location.host+"/api/summary"),Ct.onmessage=e=>{if(!e.data)return;let r=JSON.parse(e.data);r.Address=location.hostname,t("update",{summary:r})}},fetchLogs({commit:t}){Mt=new EventSource("//"+location.host+"/api/logs"),Mt.onmessage=e=>{e.data&&t("addLog",e.data)}},stopFetchLogs(){Mt.close()},stopFetchSummary(){Ct.close()}},modules:{}}),xt=r("f825"),It=r.n(xt);r("f8ce");a["default"].use(It.a),a["default"].config.productionTip=!1,new a["default"]({router:Pt,store:kt,render:t=>t(u)}).$mount("#app")},5775:function(t,e,r){"use strict";var a=r("f706"),s=r.n(a);s.a},"7ad4":function(t,e,r){"use strict";var a=r("0c3e"),s=r.n(a);e["default"]=s.a},"7c5e":function(t,e,r){},"850a":function(t,e,r){"use strict";var a=r("7c5e"),s=r.n(a);s.a},9756:function(t,e,r){"use strict";var a=r("3d2c"),s=r.n(a);s.a},9953:function(t,e,r){},ac96:function(t,e,r){"use strict";var a=r("9953"),s=r.n(a);s.a},bb51:function(t,e,r){"use strict";var a=r("470c"),s=r("7ad4"),o=(r("850a"),r("2877")),n=Object(o["a"])(s["default"],a["a"],a["b"],!1,null,"54efad41",null);e["default"]=n.exports},cf05:function(t,e,r){t.exports=r.p+"img/logo.b5357057.png"},e660:function(t,e,r){t.exports=r.p+"img/wechat.ff453262.jpg"},e74f:function(t,e,r){"use strict";var a=r("22d2"),s=r.n(a);s.a},f195:function(t,e,r){},f706:function(t,e,r){}}); -//# sourceMappingURL=app.0267da57.js.map \ No newline at end of file diff --git a/dashboard/dist/js/app.0267da57.js.map b/dashboard/dist/js/app.0267da57.js.map deleted file mode 100644 index 01198a0..0000000 --- a/dashboard/dist/js/app.0267da57.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?7139","webpack:///./src/assets/alipay.png","webpack:///./src/views/Home.vue?6039","webpack:///./src/views/Home.vue?45bf","webpack:///./src/App.vue?b7bc","webpack:///src/App.vue","webpack:///./src/App.vue?1a79","webpack:///./src/App.vue?42b4","webpack:///./src/views/About.vue?395e","webpack:///./src/views/About.vue?890d","webpack:///./src/views/Console.vue?3319","webpack:///./src/components/Jessibuca.vue?3783","webpack:///src/components/Jessibuca.vue","webpack:///./src/components/Jessibuca.vue?b76e","webpack:///./src/components/Jessibuca.vue","webpack:///./src/components/StartTime.vue?93cf","webpack:///src/components/StartTime.vue","webpack:///./src/components/StartTime.vue?eb9e","webpack:///./src/components/StartTime.vue","webpack:///./src/components/Records.vue?dbc3","webpack:///src/components/Records.vue","webpack:///./src/components/Records.vue?b643","webpack:///./src/components/Records.vue?cb81","webpack:///./src/components/Logs.vue?317e","webpack:///src/components/Logs.vue","webpack:///./src/components/Logs.vue?b91d","webpack:///./src/components/Logs.vue?1fed","webpack:///./src/components/Config.vue?904e","webpack:///src/components/Config.vue","webpack:///./src/components/Config.vue?d5e3","webpack:///./src/components/Config.vue","webpack:///./src/components/Subscribers.vue?7de9","webpack:///src/components/Subscribers.vue","webpack:///./src/components/Subscribers.vue?8094","webpack:///./src/components/Subscribers.vue","webpack:///./src/components/Cluster.vue?5bc7","webpack:///src/components/Cluster.vue","webpack:///./src/components/Cluster.vue?8670","webpack:///./src/components/Cluster.vue","webpack:///src/views/Console.vue","webpack:///./src/views/Console.vue?2ccf","webpack:///./src/views/Console.vue?8615","webpack:///./src/router/index.js","webpack:///./src/store/index.js","webpack:///./src/plugins/iview.js","webpack:///./src/main.js","webpack:///./src/views/About.vue?c42f","webpack:///./src/views/Home.vue?126c","webpack:///./src/views/Home.vue?274a","webpack:///./src/views/Console.vue?e15b","webpack:///./src/components/Logs.vue?3bfc","webpack:///./src/views/Home.vue?3062","webpack:///./src/assets/logo.png","webpack:///./src/assets/wechat.jpg","webpack:///./src/components/Records.vue?e774"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","render","_vm","this","_h","$createElement","_c","_self","attrs","_v","staticStyle","staticClass","slot","staticRenderFns","selectedMenu","component","_m","script","on","onChangeTab","model","callback","$$v","currentTab","expression","_l","item","StreamPath","_s","typeMap","Type","StartTime","SoundFormat","AudioInfo","PacketCount","SoundRate","SoundType","CodecID","VideoInfo","SPSInfo","Width","Height","$event","onShowDetail","getSubscriberCount","preview","_e","isRecording","stopRecord","record","Rooms","ref","totalInNetSpeed","totalOutNetSpeed","memoryStatus","networkFormat","Memory","Used","Usage","toFixed","cpuStatus","CPUUsage","hardDiskStatus","HardDisk","showPreview","currentStream","SubscriberInfo","showSubscribers","_g","_b","url","onClosePreview","$attrs","$listeners","turnOff","turnOn","h5lc","audioEnabled","watch","Jessibuca","canvas","document","getElementById","decoder","destroy","methods","play","close","Date","toLocaleString","Path","deleteFlv","toSizeStr","Size","toDurationStr","Duration","uintInc","K","M","G","ajax","$Modal","confirm","title","content","onOk","onCancel","unit","replace","min","hour","visible","getJSON","autoScroll","$store","state","fetchLogs","stopFetchLogs","$refs","logContainer","scrollTop","offsetHeight","config","subtableColumns","props","Array","graph","computed","summary","nodes","edges","addServer","node","id","Address","label","description","shape","logoIcon","show","room","roomId","subId","ID","Children","childId","source","target","v","read","renderer","container","width","height","layout","type","defaultNode","0","1","2","3","4","5","6","7","8","9","10","11","14","15","12","components","Records","Logs","Subscribers","Config","Cluster","FlvFile","TS","HLS","Match365","RTMP","jessibuca","soundFormat","codec","rate","recordsPanel","onVisible","configPanel","fetchSummary","stopFetchSummary","Vue","use","VueRouter","routes","path","Home","About","Console","router","base","process","Vuex","summaryES","logsES","Store","location","hostname","NetWork","logs","mutations","update","payload","assign","addLog","actions","commit","EventSource","host","onmessage","evt","JSON","parse","ViewUI","productionTip","store","h","App","$mount"],"mappings":"aACE,SAASA,EAAqBC,GAQ7B,IAPA,IAMIC,EAAUC,EANVC,EAAWH,EAAK,GAChBI,EAAcJ,EAAK,GACnBK,EAAiBL,EAAK,GAIHM,EAAI,EAAGC,EAAW,GACpCD,EAAIH,EAASK,OAAQF,IACzBJ,EAAUC,EAASG,GAChBG,OAAOC,UAAUC,eAAeC,KAAKC,EAAiBX,IAAYW,EAAgBX,IACpFK,EAASO,KAAKD,EAAgBX,GAAS,IAExCW,EAAgBX,GAAW,EAE5B,IAAID,KAAYG,EACZK,OAAOC,UAAUC,eAAeC,KAAKR,EAAaH,KACpDc,EAAQd,GAAYG,EAAYH,IAG/Be,GAAqBA,EAAoBhB,GAE5C,MAAMO,EAASC,OACdD,EAASU,OAATV,GAOD,OAHAW,EAAgBJ,KAAKK,MAAMD,EAAiBb,GAAkB,IAGvDe,IAER,SAASA,IAER,IADA,IAAIC,EACIf,EAAI,EAAGA,EAAIY,EAAgBV,OAAQF,IAAK,CAG/C,IAFA,IAAIgB,EAAiBJ,EAAgBZ,GACjCiB,GAAY,EACRC,EAAI,EAAGA,EAAIF,EAAed,OAAQgB,IAAK,CAC9C,IAAIC,EAAQH,EAAeE,GACG,IAA3BX,EAAgBY,KAAcF,GAAY,GAE3CA,IACFL,EAAgBQ,OAAOpB,IAAK,GAC5Be,EAASM,EAAoBA,EAAoBC,EAAIN,EAAe,KAItE,OAAOD,EAIR,IAAIQ,EAAmB,GAKnBhB,EAAkB,CACrB,IAAO,GAGJK,EAAkB,GAGtB,SAASS,EAAoB1B,GAG5B,GAAG4B,EAAiB5B,GACnB,OAAO4B,EAAiB5B,GAAU6B,QAGnC,IAAIC,EAASF,EAAiB5B,GAAY,CACzCK,EAAGL,EACH+B,GAAG,EACHF,QAAS,IAUV,OANAf,EAAQd,GAAUW,KAAKmB,EAAOD,QAASC,EAAQA,EAAOD,QAASH,GAG/DI,EAAOC,GAAI,EAGJD,EAAOD,QAKfH,EAAoBM,EAAIlB,EAGxBY,EAAoBO,EAAIL,EAGxBF,EAAoBQ,EAAI,SAASL,EAASM,EAAMC,GAC3CV,EAAoBW,EAAER,EAASM,IAClC3B,OAAO8B,eAAeT,EAASM,EAAM,CAAEI,YAAY,EAAMC,IAAKJ,KAKhEV,EAAoBe,EAAI,SAASZ,GACX,qBAAXa,QAA0BA,OAAOC,aAC1CnC,OAAO8B,eAAeT,EAASa,OAAOC,YAAa,CAAEC,MAAO,WAE7DpC,OAAO8B,eAAeT,EAAS,aAAc,CAAEe,OAAO,KAQvDlB,EAAoBmB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQlB,EAAoBkB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,kBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKxC,OAAOyC,OAAO,MAGvB,GAFAvB,EAAoBe,EAAEO,GACtBxC,OAAO8B,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOlB,EAAoBQ,EAAEc,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRtB,EAAoB0B,EAAI,SAAStB,GAChC,IAAIM,EAASN,GAAUA,EAAOiB,WAC7B,WAAwB,OAAOjB,EAAO,YACtC,WAA8B,OAAOA,GAEtC,OADAJ,EAAoBQ,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRV,EAAoBW,EAAI,SAASgB,EAAQC,GAAY,OAAO9C,OAAOC,UAAUC,eAAeC,KAAK0C,EAAQC,IAGzG5B,EAAoB6B,EAAI,IAExB,IAAIC,EAAaC,OAAO,gBAAkBA,OAAO,iBAAmB,GAChEC,EAAmBF,EAAW3C,KAAKsC,KAAKK,GAC5CA,EAAW3C,KAAOf,EAClB0D,EAAaA,EAAWG,QACxB,IAAI,IAAItD,EAAI,EAAGA,EAAImD,EAAWjD,OAAQF,IAAKP,EAAqB0D,EAAWnD,IAC3E,IAAIU,EAAsB2C,EAI1BzC,EAAgBJ,KAAK,CAAC,EAAE,kBAEjBM,K,6ECvJT,yBAAwe,EAAG,G,uBCA3eW,EAAOD,QAAU,IAA0B,2B,6GCA3C,IAAI+B,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,MAAM,CAACE,MAAM,CAAC,IAAM,EAAQ,WAAyBF,EAAG,MAAM,CAACA,EAAG,IAAI,CAACJ,EAAIO,GAAG,wCAAwCH,EAAG,SAAS,CAACE,MAAM,CAAC,KAAO,UAAU,GAAK,QAAQ,OAAS,WAAW,CAACN,EAAIO,GAAG,aAAaH,EAAG,OAAO,CAACI,YAAY,CAAC,OAAS,YAAYJ,EAAG,SAAS,CAACE,MAAM,CAAC,KAAO,UAAU,OAAS,SAAS,GAAK,2CAA2C,CAACF,EAAG,MAAM,CAACI,YAAY,CAAC,iBAAiB,YAAYF,MAAM,CAAC,MAAQ,KAAK,OAAS,KAAK,kBAAkB,+BAA+B,KAAO,GAAG,KAAO,MAAM,QAAU,YAAY,MAAQ,+BAA+B,CAACF,EAAG,QAAQ,CAACE,MAAM,CAAC,GAAK,+BAA+B,KAAO,OAAO,CAACN,EAAIO,GAAG,sBAAsBH,EAAG,OAAO,CAACE,MAAM,CAAC,KAAO,UAAU,EAAI,gtBAAgtBN,EAAIO,GAAG,cAAc,GAAGH,EAAG,MAAM,CAACI,YAAY,CAAC,OAAS,SAAS,CAACJ,EAAG,MAAM,CAACE,MAAM,CAAC,KAAO,MAAM,CAACF,EAAG,OAAO,CAACI,YAAY,CAAC,OAAS,QAAQF,MAAM,CAAC,UAAW,IAAQ,CAACF,EAAG,MAAM,CAACK,YAAY,gBAAgBH,MAAM,CAAC,KAAO,SAASI,KAAK,SAAS,CAACV,EAAIO,GAAG,UAAUH,EAAG,MAAM,CAACJ,EAAIO,GAAG,4GAA4G,GAAGH,EAAG,MAAM,CAACE,MAAM,CAAC,KAAO,MAAM,CAACF,EAAG,OAAO,CAACI,YAAY,CAAC,OAAS,QAAQF,MAAM,CAAC,UAAW,IAAQ,CAACF,EAAG,MAAM,CAACK,YAAY,gBAAgBH,MAAM,CAAC,KAAO,SAASI,KAAK,SAAS,CAACV,EAAIO,GAAG,WAAWH,EAAG,MAAM,CAACJ,EAAIO,GAAG,mFAAmF,GAAGH,EAAG,MAAM,CAACE,MAAM,CAAC,KAAO,MAAM,CAACF,EAAG,OAAO,CAACI,YAAY,CAAC,OAAS,QAAQF,MAAM,CAAC,UAAW,IAAQ,CAACF,EAAG,MAAM,CAACK,YAAY,gBAAgBH,MAAM,CAAC,KAAO,SAASI,KAAK,SAAS,CAACV,EAAIO,GAAG,WAAWH,EAAG,MAAM,CAACJ,EAAIO,GAAG,2FAA2F,IAAI,IAAI,IACp+EI,EAAkB,GCDtB,qE,2DCAIZ,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,MAAM,CAAC,GAAK,QAAQ,CAACF,EAAG,MAAM,CAACJ,EAAIO,GAAG,cAAcH,EAAG,OAAO,CAACI,YAAY,CAAC,SAAW,WAAW,IAAM,IAAI,MAAQ,KAAKF,MAAM,CAAC,KAAO,aAAa,cAAcN,EAAIY,eAAe,CAACR,EAAG,WAAW,CAACE,MAAM,CAAC,KAAO,OAAO,GAAK,MAAM,CAACN,EAAIO,GAAG,QAAQH,EAAG,WAAW,CAACE,MAAM,CAAC,KAAO,OAAO,GAAK,QAAQ,OAAS,WAAW,CAACN,EAAIO,GAAG,QAAQH,EAAG,WAAW,CAACE,MAAM,CAAC,KAAO,UAAU,GAAK,YAAY,CAACN,EAAIO,GAAG,SAASH,EAAG,UAAU,CAACE,MAAM,CAAC,KAAO,YAAY,CAACF,EAAG,WAAW,CAACM,KAAK,SAAS,CAACV,EAAIO,GAAG,UAAUH,EAAG,YAAY,CAACE,MAAM,CAAC,MAAQ,YAAY,CAACF,EAAG,WAAW,CAACE,MAAM,CAAC,KAAO,UAAU,OAAS,SAAS,GAAK,iCAAiC,CAACN,EAAIO,GAAG,QAAQH,EAAG,WAAW,CAACE,MAAM,CAAC,KAAO,OAAO,OAAS,SAAS,GAAK,8BAA8B,CAACN,EAAIO,GAAG,WAAW,GAAGH,EAAG,YAAY,CAACE,MAAM,CAAC,MAAQ,QAAQ,CAACF,EAAG,WAAW,CAACE,MAAM,CAAC,KAAO,UAAU,OAAS,SAAS,GAAK,iCAAiC,CAACN,EAAIO,GAAG,aAAaH,EAAG,WAAW,CAACE,MAAM,CAAC,KAAO,MAAM,OAAS,SAAS,GAAK,kCAAkC,CAACN,EAAIO,GAAG,cAAcH,EAAG,WAAW,CAACE,MAAM,CAAC,KAAO,SAAS,OAAS,SAAS,GAAK,mCAAmC,CAACN,EAAIO,GAAG,YAAY,GAAGH,EAAG,YAAY,CAACE,MAAM,CAAC,MAAQ,QAAQ,CAACF,EAAG,WAAW,CAACE,MAAM,CAAC,KAAO,MAAM,OAAS,SAAS,GAAK,6BAA6B,CAACN,EAAIO,GAAG,SAASH,EAAG,WAAW,CAACE,MAAM,CAAC,KAAO,KAAK,OAAS,SAAS,GAAK,6BAA6B,CAACN,EAAIO,GAAG,SAAS,GAAGH,EAAG,YAAY,CAACE,MAAM,CAAC,MAAQ,OAAO,CAACF,EAAG,WAAW,CAACE,MAAM,CAAC,KAAO,OAAO,OAAS,SAAS,GAAK,4BAA4B,CAACN,EAAIO,GAAG,QAAQH,EAAG,WAAW,CAACE,MAAM,CAAC,KAAO,QAAQ,CAACN,EAAIO,GAAG,SAASH,EAAG,WAAW,CAACE,MAAM,CAAC,KAAO,UAAU,OAAS,SAAS,GAAK,4BAA4B,CAACN,EAAIO,GAAG,SAAS,IAAI,GAAGH,EAAG,WAAW,CAACE,MAAM,CAAC,KAAO,IAAI,GAAK,UAAU,CAACN,EAAIO,GAAG,SAAS,GAAGH,EAAG,cAAc,CAACK,YAAY,YAAYL,EAAG,MAAM,CAACJ,EAAIO,GAAG,kDAAkD,IACj8DI,EAAkB,GCmCtB,GACErC,KAAM,MACN,OACE,MAAO,CACLsC,aAAc,UCxC0V,I,wBCQ1WC,EAAY,eACd,EACAd,EACAY,GACA,EACA,KACA,KACA,MAIa,EAAAE,E,gCCnBX,EAAS,WAAa,IAAIb,EAAIC,KAASC,EAAGF,EAAIG,eAAsBH,EAAIK,MAAMD,GAAO,OAAOJ,EAAIc,GAAG,IACnG,EAAkB,CAAC,WAAa,IAAId,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACK,YAAY,QAAQ,CAACL,EAAG,KAAK,CAACJ,EAAIO,GAAG,uBAAuBH,EAAG,IAAI,CAACJ,EAAIO,GAAG,wGAAwGH,EAAG,MAAM,CAACE,MAAM,CAAC,IAAM,EAAQ,WAA2BF,EAAG,MAAM,CAACE,MAAM,CAAC,IAAM,EAAQ,eCA5XS,G,UAAS,IAMT,EAAY,eACdA,EACA,EACA,GACA,EACA,KACA,WACA,MAIa,I,QClBX,EAAS,WAAa,IAAIf,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACI,YAAY,CAAC,aAAa,SAAS,CAACJ,EAAG,OAAO,CAACY,GAAG,CAAC,WAAWhB,EAAIiB,aAAaC,MAAM,CAACnC,MAAOiB,EAAc,WAAEmB,SAAS,SAAUC,GAAMpB,EAAIqB,WAAWD,GAAKE,WAAW,eAAe,CAAClB,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQ,MAAM,KAAO,gBAAgB,CAACF,EAAG,MAAM,CAACK,YAAY,UAAU,CAACT,EAAIuB,GAAIvB,EAAS,OAAE,SAASwB,GAAM,OAAOpB,EAAG,OAAO,CAACf,IAAImC,EAAKC,WAAWhB,YAAY,QAAQ,CAACL,EAAG,IAAI,CAACE,MAAM,CAAC,KAAO,SAASI,KAAK,SAAS,CAACV,EAAIO,GAAGP,EAAI0B,GAAG1B,EAAI2B,QAAQH,EAAKI,OAAOJ,EAAKI,MAAM5B,EAAI0B,GAAGF,EAAKC,eAAerB,EAAG,YAAY,CAACE,MAAM,CAAC,KAAO,QAAQ,MAAQkB,EAAKK,WAAWnB,KAAK,UAAUN,EAAG,IAAI,CAACJ,EAAIO,GAAG,IAAIP,EAAI0B,GAAG1B,EAAI8B,YAAYN,EAAKO,UAAUD,cAAc,IAAI9B,EAAI0B,GAAGF,EAAKO,UAAUC,aAAa,IAAIhC,EAAI0B,GAAG1B,EAAIiC,UAAUT,EAAKO,UAAUE,YAAY,OAAOjC,EAAI0B,GAAGF,EAAKO,UAAUG,WAAW,OAAO9B,EAAG,IAAI,CAACJ,EAAIO,GAAG,IAAIP,EAAI0B,GAAG1B,EAAImC,QAAQX,EAAKY,UAAUD,UAAU,IAAInC,EAAI0B,GAAGF,EAAKY,UAAUJ,aAAa,IAAIhC,EAAI0B,GAAGF,EAAKY,UAAUC,QAAQC,OAAO,IAAItC,EAAI0B,GAAGF,EAAKY,UAAUC,QAAQE,QAAQ,OAAOnC,EAAG,cAAc,CAACE,MAAM,CAAC,KAAO,UAAU,CAACF,EAAG,SAAS,CAACE,MAAM,CAAC,KAAO,cAAcU,GAAG,CAAC,MAAQ,SAASwB,GAAQ,OAAOxC,EAAIyC,aAAajB,MAAS,CAACxB,EAAIO,GAAGP,EAAI0B,GAAG1B,EAAI0C,mBAAmBlB,OAAWA,EAAS,KAAEpB,EAAG,SAAS,CAACE,MAAM,CAAC,KAAO,UAAUU,GAAG,CAAC,MAAQ,SAASwB,GAAQ,OAAOxC,EAAI2C,QAAQnB,OAAUxB,EAAI4C,KAAM5C,EAAI6C,YAAYrB,GAAOpB,EAAG,SAAS,CAACK,YAAY,YAAYH,MAAM,CAAC,KAAO,uBAAuBU,GAAG,CAAC,MAAQ,SAASwB,GAAQ,OAAOxC,EAAI8C,WAAWtB,OAAUpB,EAAG,SAAS,CAACE,MAAM,CAAC,KAAO,uBAAuBU,GAAG,CAAC,MAAQ,SAASwB,GAAQ,OAAOxC,EAAI+C,OAAOvB,QAAW,IAAI,MAAwB,GAAlBxB,EAAIgD,MAAMtG,OAAW0D,EAAG,MAAM,CAACK,YAAY,SAAS,CAACL,EAAG,OAAO,CAACE,MAAM,CAAC,KAAO,UAAU,KAAO,QAAQN,EAAIO,GAAG,YAAY,GAAGP,EAAI4C,MAAM,KAAKxC,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQ,OAAO,KAAO,cAAc,CAACF,EAAG,YAAY,GAAGA,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQ,QAAQ,KAAO,aAAa,KAAO,iBAAiB,CAACF,EAAG,UAAU,CAAC6C,IAAI,kBAAkB,GAAG7C,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQ,OAAO,KAAO,WAAW,CAACF,EAAG,SAAS,GAAGA,EAAG,UAAU,CAACE,MAAM,CAAC,MAAQ,OAAO,KAAO,cAAc,KAAO,gBAAgB,CAACF,EAAG,SAAS,CAAC6C,IAAI,iBAAiB,IAAI,GAAG7C,EAAG,MAAM,CAACK,YAAY,UAAU,CAACL,EAAG,QAAQ,CAACJ,EAAIO,GAAG,WAAWP,EAAI0B,GAAG1B,EAAIkD,iBAAiB,OAAOlD,EAAI0B,GAAG1B,EAAImD,qBAAqB/C,EAAG,QAAQ,CAACE,MAAM,CAAC,KAAON,EAAIoD,eAAe,CAACpD,EAAIO,GAAG,QAAQP,EAAI0B,GAAG1B,EAAIqD,cAAcrD,EAAIsD,OAAOC,KAAK,MAAM,OAAOvD,EAAI0B,GAAG1B,EAAIsD,OAAOE,MAAMC,QAAQ,IAAI,OAAOrD,EAAG,QAAQ,CAACE,MAAM,CAAC,KAAON,EAAI0D,YAAY,CAAC1D,EAAIO,GAAG,SAASP,EAAI0B,GAAG1B,EAAI2D,SAASF,QAAQ,IAAI,OAAOrD,EAAG,QAAQ,CAACE,MAAM,CAAC,KAAON,EAAI4D,iBAAiB,CAAC5D,EAAIO,GAAG,QAAQP,EAAI0B,GAAG1B,EAAIqD,cAAcrD,EAAI6D,SAASN,KAAK,MAAM,OAAOvD,EAAI0B,GAAG1B,EAAI6D,SAASL,MAAMC,QAAQ,IAAI,QAAQ,GAAGrD,EAAG,YAAY,CAAC6C,IAAI,YAAY/B,MAAM,CAACnC,MAAOiB,EAAe,YAAEmB,SAAS,SAAUC,GAAMpB,EAAI8D,YAAY1C,GAAKE,WAAW,iBAAiBlB,EAAG,cAAc,CAACE,MAAM,CAAC,KAAON,EAAI+D,eAAiB/D,EAAI+D,cAAcC,gBAAgB9C,MAAM,CAACnC,MAAOiB,EAAmB,gBAAEmB,SAAS,SAAUC,GAAMpB,EAAIiE,gBAAgB7C,GAAKE,WAAW,sBAAsB,IACxgG,EAAkB,G,YCDlB,EAAS,WAAa,IAAItB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,QAAQJ,EAAIkE,GAAGlE,EAAImE,GAAG,CAAC7D,MAAM,CAAC,UAAY,GAAG,MAAQN,EAAIoE,KAAKpD,GAAG,CAAC,QAAQhB,EAAIqE,eAAe,YAAYrE,EAAIqE,iBAAiB,QAAQrE,EAAIsE,QAAO,GAAOtE,EAAIuE,YAAY,CAACnE,EAAG,SAAS,CAACI,YAAY,CAAC,WAAa,SAASF,MAAM,CAAC,GAAK,SAAS,MAAQ,MAAM,OAAS,SAASF,EAAG,MAAM,CAACE,MAAM,CAAC,KAAO,UAAUI,KAAK,UAAU,CAAEV,EAAgB,aAAEI,EAAG,SAAS,CAACE,MAAM,CAAC,KAAO,iBAAiBU,GAAG,CAAC,MAAQhB,EAAIwE,WAAWpE,EAAG,SAAS,CAACE,MAAM,CAAC,KAAO,gBAAgBU,GAAG,CAAC,MAAQhB,EAAIyE,WAAW,MAC/jB,EAAkB,GCiBtB,IAAIC,EAAO,KACX,OACEpG,KAAM,YACN,OACE,MAAO,CACLqG,cAAc,EACdP,IAAK,KAGTQ,MAAO,CACL,aAAa7F,GACX2F,EAAKC,aAAa5F,KAGtB,UACE2F,EAAO,IAAI9E,OAAOiF,UAAU,CAC1BC,OAAQC,SAASC,eAAe,UAChCC,QAAS,qBAGb,YACEhF,KAAKoE,iBACLK,EAAKQ,WAEPC,QAAS,CACP,KAAKf,GACHnE,KAAKmE,IAAMA,EACXM,EAAKU,KAAKhB,IAEZ,iBACEM,EAAKW,SAEP,SACEpF,KAAK0E,cAAe,GAEtB,UACE1E,KAAK0E,cAAe,KCtD4W,ICOlY,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,I,QClBX,EAAS,WAAa,IAAI3E,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,SAAS,CAACE,MAAM,CAAC,QAAU,QAAQ,QAAU,KAAM,IAAIgF,KAAKtF,EAAIjB,OAAOwG,mBAAmB,CAACnF,EAAG,OAAO,CAACE,MAAM,CAAC,KAAO,IAAIgF,KAAKtF,EAAIjB,WAAW,IAC3O,EAAkB,GCMtB,GACE,KAAF,YACE,MAAF,CACI,MAAJ,SCVsY,ICOlY,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIa,I,QClBX,EAAS,WAAa,IAAIiB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACK,YAAY,WAAWT,EAAIuB,GAAIvB,EAAQ,MAAE,SAASwB,GAAM,OAAOpB,EAAG,OAAO,CAACf,IAAImC,GAAM,CAACpB,EAAG,IAAI,CAACE,MAAM,CAAC,KAAO,SAASI,KAAK,SAAS,CAACV,EAAIO,GAAGP,EAAI0B,GAAGF,EAAKgE,SAASpF,EAAG,MAAM,CAACE,MAAM,CAAC,KAAO,SAASI,KAAK,SAAS,CAACN,EAAG,SAAS,CAACE,MAAM,CAAC,KAAO,UAAU,KAAO,SAASU,GAAG,CAAC,MAAQ,SAASwB,GAAQ,OAAOxC,EAAIoF,KAAK5D,OAAUpB,EAAG,SAAS,CAACE,MAAM,CAAC,KAAO,YAAY,KAAO,SAASU,GAAG,CAAC,MAAQ,SAASwB,GAAQ,OAAOxC,EAAIyF,UAAUjE,QAAW,GAAGxB,EAAIO,GAAG,IAAIP,EAAI0B,GAAG1B,EAAI0F,UAAUlE,EAAKmE,OAAO,IAAI3F,EAAI0B,GAAG1B,EAAI4F,cAAcpE,EAAKqE,WAAW,UAAS,IAC1nB,EAAkB,GCatB,MAAMC,EAAU,CACd,GAAI,IACJC,EAAG,IACHC,EAAG,IACHC,EAAG,MAGL,OACE,OACE,MAAO,CACL/J,KAAM,KAGViJ,QAAS,CACP,KAAK3D,GACH5B,OAAOsG,KAAKvH,IAClB,0CACA,CAAQ,WAAR,2BACA,IACA,cACU,KAAV,cACU,KAAV,0BAEU,KAAV,qBAKI,UAAU6C,GACRvB,KAAKkG,OAAOC,QAAQ,CAClBC,MAAO,KACPC,QAAS,mBACTC,KAAM,KACJ3G,OAAOsG,KAAKvH,IACtB,4CACA,CAAY,WAAZ,2BACA,IACA,aACc,KAAd,yBAEc,KAAd,qBAKQ6H,SAAU,UAGd,UAAUzH,EAAO0H,EAAO,IACtB,OAAI1H,EAAQ,MAAQ+G,EAAQW,GACnBxG,KAAKyF,UAAU3G,EAAQ,KAAM+G,EAAQW,IAEvC1H,EAAM0E,QAAQ,GAAGiD,QAAQ,MAAO,IAAMD,EAAO,KAEtD,cAAc1H,GACZ,GAAIA,EAAQ,IAAM,CAChB,IAAIjB,EAAIiB,EAAQ,IAChB,GAAIjB,EAAI,GAAI,CACVA,GAAQ,EACR,IAAI6I,EAAM,EAApB,MACU,GAAIA,EAAM,GAAI,CACZ,IAAIC,EAAO,EAAvB,MACY,OAAOA,EAAO,OAAS,EAAnC,SAEY,OAAOD,EAAM,MAAQ,EAAjC,OAGU,OAAO7I,EAAE2F,QAAQ,GAAK,IAGxB,OAAO1E,EAAQ,MAGnB,UAAU8H,GACJA,GACFjH,OAAOsG,KAAKY,QACpB,0CACA,GACA,IACU,KAAV,YC7FoY,ICQhY,G,UAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,OAIa,I,QCnBX,EAAS,WAAa,IAAI9G,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACI,YAAY,CAAC,QAAU,WAAW,CAACJ,EAAG,MAAM,CAACJ,EAAIO,GAAG,UAAUH,EAAG,WAAW,CAACc,MAAM,CAACnC,MAAOiB,EAAc,WAAEmB,SAAS,SAAUC,GAAMpB,EAAI+G,WAAW3F,GAAKE,WAAW,iBAAiB,GAAGlB,EAAG,MAAM,CAAC6C,IAAI,eAAexC,YAAY,iBAAiB,CAACL,EAAG,MAAM,CAACJ,EAAIuB,GAAIvB,EAAIgH,OAAOC,MAAU,MAAE,SAASzF,GAAM,MAAO,CAACxB,EAAIO,GAAGP,EAAI0B,GAAGF,EAAK,YAAW,QACtb,EAAkB,GCatB,GACE,OACE,MAAO,CACLuF,YAAY,IAGhB,UACE9G,KAAKiH,aAEP,YACEjH,KAAKkH,iBAEPhC,QAAS,IACX,+CAEE,UACMlF,KAAK8G,aACP9G,KAAKmH,MAAMC,aAAaC,UAAYrH,KAAKmH,MAAMC,aAAaE,gBC/B+T,ICQ7X,G,UAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,OAIa,I,QCnBX,EAAS,WAAa,IAAIvH,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACI,YAAY,CAAC,QAAU,WAAW,CAACJ,EAAG,MAAM,CAACJ,EAAIO,GAAGP,EAAI0B,GAAG1B,EAAIwH,cACrK,EAAkB,GCMtB,GACE,OACE,MAAO,CACLA,OAAQ,KAGZrC,QAAS,CACP,UAAU0B,GACJA,GACFjH,OAAOsG,KAAKvH,IACpB,iCACA,GACA,qBCnBmY,ICO/X,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,I,QClBX,EAAS,WAAa,IAAIqB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,QAAQJ,EAAIkE,GAAGlE,EAAImE,GAAG,CAAC7D,MAAM,CAAC,UAAY,GAAG,MAAQ,UAAU,QAAQN,EAAIsE,QAAO,GAAOtE,EAAIuE,YAAY,CAACnE,EAAG,QAAQ,CAACE,MAAM,CAAC,QAAUN,EAAIyH,gBAAgB,KAAOzH,EAAI9D,SAAS,IAC9Q,GAAkB,GCMtB,IACEwL,MAAO,CACLxL,KAAMyL,OAER,OACE,MAAO,CACLF,gBAAiB,CACvB,CACQ,MAAR,KACQ,IAAR,QAEA,CACQ,MAAR,OACQ,IAAR,MAEA,CACQ,MAAR,OACQ,OAAR,OAAU,IACA,OAAV,eACY,MAAZ,CACc,MAAd,qBAKA,CACQ,MAAR,KACQ,OAAR,OAAU,IACA,OAAV,EACA,OACA,kDAIA,CACQ,MAAR,SACQ,OAAR,OAAU,IACA,OAAV,cACY,MAAZ,CACc,QAAd,mCACc,eAAd,EACc,eAAd,GACc,eAAd,+BCjDwY,MCOpY,GAAY,eACd,GACA,EACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAIzH,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,MAAM,CAAC,GAAK,gBAClH,GAAkB,G,wBCMlBsH,GAAQ,KACZ,IACEC,SAAU,IACZ,gBACM,KAAKZ,GACH,IAAIa,EAAUb,EAAMa,QAEhBC,EAAQ,GAERC,EAAQ,GAEZ,OADA/H,KAAKgI,UAAUH,EAASC,EAAOC,GACxB,CACLD,QACAC,aAKR7C,QAAS,CACP,UAAU+C,EAAMH,EAAOC,GACrB,IAAIzK,EAAS,CACX4K,GAAID,EAAKE,QACTC,MAAOH,EAAKE,QACZE,YAAa,OAAOJ,EAAKvE,UAAY,UAAUuE,EAAK5E,OAAOE,OACnE,KACQ+E,MAAO,YACPC,SAAU,CACRC,MAAM,IAIV,GADAV,EAAM/K,KAAKO,GACP2K,EAAKlF,MACP,IAAK,IAAIxG,EAAI,EAAGA,EAAI0L,EAAKlF,MAAMtG,OAAQF,IAAK,CAC1C,IAAIkM,EAAOR,EAAKlF,MAAMxG,GAClBmM,EAASpL,EAAO4K,GAAKO,EAAKjH,WAO9B,GANAsG,EAAM/K,KAAK,CACTmL,GAAIQ,EACJN,MAAOK,EAAKjH,WACZ8G,MAAO,SAETP,EAAMhL,KAAK,CAArB,uBACc0L,EAAK1E,eACP,IAAK,IAAItG,EAAI,EAAGA,EAAIgL,EAAK1E,eAAetH,OAAQgB,IAAK,CACnD,IAAIkL,EAAQD,EAASD,EAAK1E,eAAetG,GAAGmL,GAC5Cd,EAAM/K,KAAK,CACTmL,GAAIS,EACJP,MAAOK,EAAK1E,eAAetG,GAAGmL,KAEhCb,EAAMhL,KAAK,CAAzB,qBAKM,GAAIkL,EAAKY,SACP,IAAK,IAAIC,KAAWb,EAAKY,SACvB7I,KAAKgI,UAAUC,EAAKY,SAASC,GAAUhB,EAAOC,GAC9CA,EAAMhL,KAAK,CACTgM,OAAQzL,EAAO4K,GACfc,OAAQF,MAMlBnE,MAAO,CACL,KAAKsE,GACCtB,IACFA,GAAMuB,KAAKD,KAIjB,UACEtB,GAAQ,IAAI,GAAhB,SACMwB,SAAU,MACVC,UAAW,YACXC,MAAO,IACPC,OAAQ,IACRC,OAAQ,CACNC,KAAM,UAERC,YAAa,KAEf9B,GAAMuB,KAAKlJ,KAAK/D,QCzFgX,MCOhY,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QCoDf,MAAM,GAAN,CACE,GAAI,IACJ6J,EAAG,IACHC,EAAG,IACHC,EAAG,MAECnE,GAAc,CAClB6H,EAAG,8BACHC,EAAG,QACHC,EAAG,MACHC,EAAG,4BACHC,EAAG,wBACHC,EAAG,uBACHC,EAAG,aACHC,EAAG,8BACHC,EAAG,+BACHC,EAAG,WACHC,GAAI,MACJC,GAAI,QACJC,GAAI,WACJC,GAAI,yBAEArI,GAAU,CACdyH,EAAG,0BACHC,EAAG,iBACHC,EAAG,eACHC,EAAG,UACHC,EAAG,6BACHC,EAAG,yBACHC,EAAG,MACHO,GAAI,QAEN,QACEnM,KAAM,UACNoM,WAAY,CACV7F,UAAJ,EACIhD,UAAJ,EACI8I,QAAJ,EACIC,KAAJ,EACIC,YAAJ,GACIC,OAAJ,EACIC,QAAJ,IAEE,OACE,MAAO,CACLjH,aAAa,EACbG,iBAAiB,EACjB5C,WAAY,GACZ0C,cAAe,GACfpC,QAAS,CACPqJ,QAAS,KACTC,GAAI,KACJC,IAAK,KACL,GAAI,IACJC,SAAU,KACVC,KAAM,QAIZvD,SAAU,IACZ,gBACM7E,MAAOiE,GAASA,EAAMa,QAAQ9E,OAAS,GACvCM,OAAQ2D,GAASA,EAAMa,QAAQxE,OAC/BK,SAAUsD,GAASA,EAAMa,QAAQnE,SACjCE,SAAUoD,GAASA,EAAMa,QAAQjE,SACjCH,UAAWuD,GACLA,EAAMa,QAAQnE,SAAW,GAAW,QACjCsD,EAAMa,QAAQnE,SAAW,GAAK,UAAY,UAEnD,aAAasD,GACX,OAAIA,EAAMa,QAAQnE,SAAW,GAAW,QACjCsD,EAAMa,QAAQnE,SAAW,GAAK,UAAY,WAEnD,eAAesD,GACb,OAAIA,EAAMa,QAAQnE,SAAW,GAAW,QACjCsD,EAAMa,QAAQnE,SAAW,GAAK,UAAY,WAEnD,gBAAgBsD,GACd,OACR,mBACA,kBACA,yBACA,wBACA,GAEA,GACA,MAGM,iBAAiBA,GACf,OACR,mBACA,kBACA,iDACA,GACA,SAKE9B,QAAS,IACX,oDACI,mBAAmB3D,GAOjB,OALN,oBACA,8CAEQvB,KAAK8D,cAAgBvC,GAEhBA,EAAKwC,eAAiBxC,EAAKwC,eAAetH,OAAS,GAE5D,QAAQ8E,GACNvB,KAAKmH,MAAMiE,UAAUjG,KAC3B,iDAEMnF,KAAK6D,aAAc,GAErB,aAAatC,GACXvB,KAAKgE,iBAAkB,EACvBhE,KAAK8D,cAAgBvC,GAEvB,cAAczC,EAAO0H,EAAO,IAC1B,OAAI1H,EAAQ,MAAQ,GAA1B,GACekB,KAAKoD,cAActE,EAAQ,KAAM,GAAhD,IAEaA,EAAM0E,QAAQ,GAAGiD,QAAQ,MAAO,IAAMD,EAAO,KAEtD,YAAY6E,GACV,OAAOxJ,GAAYwJ,IAErB,QAAQC,GACN,OAAOpJ,GAAQoJ,IAEjB,UAAUC,GACR,OAAOA,EAAO,IAAOA,EAAO,IAAO,MAAQA,EAAO,MAEpD,OAAOhK,GACLvB,KAAKkG,OAAOC,QAAQ,CAClBC,MAAO,KACPC,QAAS,4CACTC,KAAM,KACJ3G,OAAOsG,KAAKvH,IACtB,iDACA,CAAY,WAAZ,cACA,IACA,aACc,KAAd,+BAEc,KAAd,qBAKQ6H,SAAU,KACR5G,OAAOsG,KAAKvH,IACtB,qCACA,CAAY,WAAZ,cACA,IACA,aACc,KAAd,yBAEc,KAAd,wBAOI,WAAW6C,GACT5B,OAAOsG,KAAKvH,IAClB,0CACA,CAAQ,WAAR,cACA,IACA,aACU,KAAV,yBAEU,KAAV,qBAKI,YAAY6C,GACV,OACN,kBACA,+CAGI,YAAYlD,GACV,OAAQA,GACN,IAAK,eACH2B,KAAKmH,MAAMqE,aAAaC,WAAU,GAClC,MACF,IAAK,cACHzL,KAAKmH,MAAMuE,YAAYD,WAAU,MAIzC,UACEzL,KAAK2L,gBAEP,YACE3L,KAAK4L,qBC/Q2X,MCQhY,I,UAAY,eACd,GACA,EACA,GACA,EACA,KACA,WACA,OAIa,M,QCbfC,aAAIC,IAAIC,QAER,MAAMC,GAAS,CACX,CACIC,KAAM,IACN5N,KAAM,OACNuC,UAAWsL,cAEf,CACID,KAAM,SACN5N,KAAM,QACNuC,UAAWuL,GACZ,CACCF,KAAM,WACN5N,KAAM,UACNuC,UAAWwL,KAIbC,GAAS,IAAIN,OAAU,CACzB/M,KAAM,UACNsN,KAAMC,IACNP,YAGWK,UC5BfR,aAAIC,IAAIU,QACR,IAAIC,GAAY,KACZC,GAAS,KACE,WAAIF,OAAKG,MAAM,CAC5B3F,MAAO,CACLa,QAAS,CACPM,QAASyE,SAASC,SAClBC,QAAS,GACT/J,MAAO,GACPM,OAAQ,CACNC,KAAM,EACNC,MAAO,GAETG,SAAU,EACVE,SAAU,CACRN,KAAM,EACNC,MAAO,GAETsF,SAAU,IACTkE,KAAM,IAEXC,UAAW,CACTC,OAAOjG,EAAOkG,GACZxQ,OAAOyQ,OAAOnG,EAAOkG,IAEvBE,OAAOpG,EAAOkG,GACZlG,EAAM+F,KAAKhQ,KAAKmQ,KAGpBG,QAAS,CACP1B,cAAa,OAAE2B,IACbb,GAAY,IAAIc,YACd,KAAOX,SAASY,KAAO,gBAEzBf,GAAUgB,UAAYC,IACpB,IAAKA,EAAIzR,KAAM,OACf,IAAI4L,EAAU8F,KAAKC,MAAMF,EAAIzR,MAC7B4L,EAAQM,QAAUyE,SAASC,SAC3BS,EAAO,SAAU,CAAEzF,cAGvBZ,WAAU,OAAEqG,IACVZ,GAAS,IAAIa,YACX,KAAOX,SAASY,KAAO,aAEzBd,GAAOe,UAAYC,IACZA,EAAIzR,MACTqR,EAAO,SAAUI,EAAIzR,QAGzBiL,gBACEwF,GAAOtH,SAETwG,mBACEa,GAAUrH,UAGdpI,QAAS,K,kCCzDX6O,aAAIC,IAAI+B,MCGRhC,aAAItE,OAAOuG,eAAgB,EAE3B,IAAIjC,aAAI,CACNQ,UACA0B,SACAjO,OAAQkO,GAAKA,EAAEC,KACdC,OAAO,S,kCCZV,yBAAuhB,EAAG,G,oCCA1hB,yBAAiY,eAAG,G,6DCApY,yBAAshB,EAAG,G,kCCAzhB,yBAAyhB,EAAG,G,yDCA5hB,yBAA8f,EAAG,G,kCCAjgB,oDAQItN,EAAY,eACd,aACA,OACA,QACA,EACA,KACA,WACA,MAIa,aAAAA,E,8BCnBf5C,EAAOD,QAAU,IAA0B,yB,qBCA3CC,EAAOD,QAAU,IAA0B,2B,kCCA3C,yBAAyhB,EAAG,G","file":"js/app.0267da57.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import mod from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!../node_modules/iview-loader/index.js??ref--0-2!./App.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!../node_modules/iview-loader/index.js??ref--0-2!./App.vue?vue&type=style&index=0&lang=css&\"","module.exports = __webpack_public_path__ + \"img/alipay.e872ea78.png\";","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('img',{attrs:{\"src\":require(\"../assets/logo.png\")}}),_c('div',[_c('p',[_vm._v(\" Monibuca 是一个开源的Go语言实现的流媒体服务器开发框架 \")]),_c('Button',{attrs:{\"type\":\"success\",\"to\":\"/docs\",\"target\":\"_blank\"}},[_vm._v(\"🚀START\")]),_c('span',{staticStyle:{\"margin\":\"0 10px\"}}),_c('Button',{attrs:{\"type\":\"default\",\"target\":\"_blank\",\"to\":\"https://github.com/langhuihui/monibuca\"}},[_c('svg',{staticStyle:{\"vertical-align\":\"text-top\"},attrs:{\"width\":\"16\",\"height\":\"16\",\"aria-labelledby\":\"simpleicons-github-dark-icon\",\"lang\":\"\",\"role\":\"img\",\"viewBox\":\"0 0 24 24\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('title',{attrs:{\"id\":\"simpleicons-github-dark-icon\",\"lang\":\"en\"}},[_vm._v(\"GitHub Dark icon\")]),_c('path',{attrs:{\"fill\":\"#7F8C8D\",\"d\":\"M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12\"}})]),_vm._v(\" GITHUB\")])],1),_c('Row',{staticStyle:{\"margin\":\"30px\"}},[_c('Col',{attrs:{\"span\":\"8\"}},[_c('Card',{staticStyle:{\"margin\":\"30px\"},attrs:{\"bordered\":false}},[_c('div',{staticClass:\"feature-title\",attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(\"⚡高性能\")]),_c('div',[_vm._v(\"针对流媒体服务器独特的性质进行的优化,充分利用Golang的goroutine的性质对大量的连接的读写进行合理的分配计算资源,以及尽可能的减少内存Copy操作。使用对象池减少Golang的GC时间。\")])])],1),_c('Col',{attrs:{\"span\":\"8\"}},[_c('Card',{staticStyle:{\"margin\":\"30px\"},attrs:{\"bordered\":false}},[_c('div',{staticClass:\"feature-title\",attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(\"🔧可扩展\")]),_c('div',[_vm._v(\"流媒体服务器的个性化定制变的更简单,基于Golang语言,开发效率更高,独创的插件机制,可以方便用户定制个性化的功能组合,更高效率的利用服务器资源。\")])])],1),_c('Col',{attrs:{\"span\":\"8\"}},[_c('Card',{staticStyle:{\"margin\":\"30px\"},attrs:{\"bordered\":false}},[_c('div',{staticClass:\"feature-title\",attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(\"📈可视化\")]),_c('div',[_vm._v(\"功能强大的仪表盘可以直观的看到服务器运行的状态、消耗的资源、以及其他统计信息。用户可以利用控制台对服务器进行配置和控制。点击右上角菜单栏里面的控制台,可以看到演示。\")])])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export * from \"-!../../node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"1c1fcec7-vue-loader-template\\\"}!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Home.vue?vue&type=template&id=54efad41&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('div',[_vm._v(\"Monibuca\")]),_c('Menu',{staticStyle:{\"position\":\"absolute\",\"top\":\"0\",\"right\":\"0\"},attrs:{\"mode\":\"horizontal\",\"active-name\":_vm.selectedMenu}},[_c('MenuItem',{attrs:{\"name\":\"home\",\"to\":\"/\"}},[_vm._v(\"首页\")]),_c('MenuItem',{attrs:{\"name\":\"docs\",\"to\":\"/docs\",\"target\":\"_blank\"}},[_vm._v(\"文档\")]),_c('MenuItem',{attrs:{\"name\":\"console\",\"to\":\"console\"}},[_vm._v(\"控制台\")]),_c('Submenu',{attrs:{\"name\":\"plugins\"}},[_c('template',{slot:\"title\"},[_vm._v(\"内置插件\")]),_c('MenuGroup',{attrs:{\"title\":\"发布者/订阅者\"}},[_c('MenuItem',{attrs:{\"name\":\"cluster\",\"target\":\"_blank\",\"to\":\"/docs/plugins.html#cluster插件\"}},[_vm._v(\"集群\")]),_c('MenuItem',{attrs:{\"name\":\"rtmp\",\"target\":\"_blank\",\"to\":\"/docs/plugins.html#rtmp插件\"}},[_vm._v(\"RTMP\")])],1),_c('MenuGroup',{attrs:{\"title\":\"订阅者\"}},[_c('MenuItem',{attrs:{\"name\":\"jessica\",\"target\":\"_blank\",\"to\":\"/docs/plugins.html#jessica插件\"}},[_vm._v(\"Jessica\")]),_c('MenuItem',{attrs:{\"name\":\"HDL\",\"target\":\"_blank\",\"to\":\"/docs/plugins.html#http-flv插件\"}},[_vm._v(\"Http-Flv\")]),_c('MenuItem',{attrs:{\"name\":\"record\",\"target\":\"_blank\",\"to\":\"/docs/plugins.html#recordflv插件\"}},[_vm._v(\"录制Flv\")])],1),_c('MenuGroup',{attrs:{\"title\":\"发布者\"}},[_c('MenuItem',{attrs:{\"name\":\"HLS\",\"target\":\"_blank\",\"to\":\"/docs/plugins.html#hls插件\"}},[_vm._v(\"HLS\")]),_c('MenuItem',{attrs:{\"name\":\"TS\",\"target\":\"_blank\",\"to\":\"/docs/plugins.html#hls插件\"}},[_vm._v(\"TS\")])],1),_c('MenuGroup',{attrs:{\"title\":\"钩子\"}},[_c('MenuItem',{attrs:{\"name\":\"Auth\",\"target\":\"_blank\",\"to\":\"/docs/plugins.html#校验插件\"}},[_vm._v(\"验证\")]),_c('MenuItem',{attrs:{\"name\":\"QoS\"}},[_vm._v(\"QoS\")]),_c('MenuItem',{attrs:{\"name\":\"gateway\",\"target\":\"_blank\",\"to\":\"/docs/plugins.html#网关插件\"}},[_vm._v(\"网关\")])],1)],2),_c('MenuItem',{attrs:{\"name\":\"4\",\"to\":\"about\"}},[_vm._v(\"支持\")])],1),_c('router-view',{staticClass:\"content\"}),_c('div',[_vm._v(\"Copyright © 2019-2020 dexter 苏ICP备20001212号\")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!../node_modules/iview-loader/index.js??ref--0-2!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!../node_modules/iview-loader/index.js??ref--0-2!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=00477a3c&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"root\"},[_c('h1',[_vm._v(\" 赞助 Monibuca 的研发 \")]),_c('p',[_vm._v(\" Monibuca 是采用 MIT 许可的开源项目,使用完全免费。 但是随着项目规模的增长,也需要有相应的资金支持才能持续项目的维护的开发。你可以通过下列的方法来赞助 Monibuca 的开发。 \")]),_c('img',{attrs:{\"src\":require(\"../assets/alipay.png\")}}),_c('img',{attrs:{\"src\":require(\"../assets/wechat.jpg\")}})])}]\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./About.vue?vue&type=template&id=e34eab40&scoped=true&\"\nvar script = {}\nimport style0 from \"./About.vue?vue&type=style&index=0&id=e34eab40&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e34eab40\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"text-align\":\"left\"}},[_c('Tabs',{on:{\"on-click\":_vm.onChangeTab},model:{value:(_vm.currentTab),callback:function ($$v) {_vm.currentTab=$$v},expression:\"currentTab\"}},[_c('TabPane',{attrs:{\"label\":\"直播流\",\"icon\":\"md-videocam\"}},[_c('div',{staticClass:\"layout\"},[_vm._l((_vm.Rooms),function(item){return _c('Card',{key:item.StreamPath,staticClass:\"room\"},[_c('p',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(_vm._s(_vm.typeMap[item.Type]||item.Type)+_vm._s(item.StreamPath))]),_c('StartTime',{attrs:{\"slot\":\"extra\",\"value\":item.StartTime},slot:\"extra\"}),_c('p',[_vm._v(\" \"+_vm._s(_vm.SoundFormat(item.AudioInfo.SoundFormat))+\" \"+_vm._s(item.AudioInfo.PacketCount)+\" \"+_vm._s(_vm.SoundRate(item.AudioInfo.SoundRate))+\" 声道:\"+_vm._s(item.AudioInfo.SoundType)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(_vm.CodecID(item.VideoInfo.CodecID))+\" \"+_vm._s(item.VideoInfo.PacketCount)+\" \"+_vm._s(item.VideoInfo.SPSInfo.Width)+\"x\"+_vm._s(item.VideoInfo.SPSInfo.Height)+\" \")]),_c('ButtonGroup',{attrs:{\"size\":\"small\"}},[_c('Button',{attrs:{\"icon\":\"ios-people\"},on:{\"click\":function($event){return _vm.onShowDetail(item)}}},[_vm._v(_vm._s(_vm.getSubscriberCount(item)))]),(item.Type)?_c('Button',{attrs:{\"icon\":\"md-eye\"},on:{\"click\":function($event){return _vm.preview(item)}}}):_vm._e(),(_vm.isRecording(item))?_c('Button',{staticClass:\"recording\",attrs:{\"icon\":\"ios-radio-button-on\"},on:{\"click\":function($event){return _vm.stopRecord(item)}}}):_c('Button',{attrs:{\"icon\":\"ios-radio-button-on\"},on:{\"click\":function($event){return _vm.record(item)}}})],1)],1)}),(_vm.Rooms.length==0)?_c('div',{staticClass:\"empty\"},[_c('Icon',{attrs:{\"type\":\"md-wine\",\"size\":\"50\"}}),_vm._v(\"没有任何房间 \")],1):_vm._e()],2)]),_c('TabPane',{attrs:{\"label\":\"集群总览\",\"icon\":\"ios-cloud\"}},[_c('Cluster')],1),_c('TabPane',{attrs:{\"label\":\"录制的视频\",\"icon\":\"ios-folder\",\"name\":\"recordsPanel\"}},[_c('Records',{ref:\"recordsPanel\"})],1),_c('TabPane',{attrs:{\"label\":\"日志跟踪\",\"icon\":\"md-bug\"}},[_c('Logs')],1),_c('TabPane',{attrs:{\"label\":\"查看配置\",\"icon\":\"md-settings\",\"name\":\"configPanel\"}},[_c('Config',{ref:\"configPanel\"})],1)],1),_c('div',{staticClass:\"status\"},[_c('Alert',[_vm._v(\"带宽消耗 📥:\"+_vm._s(_vm.totalInNetSpeed)+\" 📤:\"+_vm._s(_vm.totalOutNetSpeed))]),_c('Alert',{attrs:{\"type\":_vm.memoryStatus}},[_vm._v(\"内存使用:\"+_vm._s(_vm.networkFormat(_vm.Memory.Used,\"M\"))+\" 占比:\"+_vm._s(_vm.Memory.Usage.toFixed(2))+\"%\")]),_c('Alert',{attrs:{\"type\":_vm.cpuStatus}},[_vm._v(\"CPU使用:\"+_vm._s(_vm.CPUUsage.toFixed(2))+\"%\")]),_c('Alert',{attrs:{\"type\":_vm.hardDiskStatus}},[_vm._v(\"磁盘使用:\"+_vm._s(_vm.networkFormat(_vm.HardDisk.Used,\"M\"))+\" 占比:\"+_vm._s(_vm.HardDisk.Usage.toFixed(2))+\"%\")])],1),_c('Jessibuca',{ref:\"jessibuca\",model:{value:(_vm.showPreview),callback:function ($$v) {_vm.showPreview=$$v},expression:\"showPreview\"}}),_c('Subscribers',{attrs:{\"data\":_vm.currentStream && _vm.currentStream.SubscriberInfo},model:{value:(_vm.showSubscribers),callback:function ($$v) {_vm.showSubscribers=$$v},expression:\"showSubscribers\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Modal',_vm._g(_vm._b({attrs:{\"draggable\":\"\",\"title\":_vm.url},on:{\"on-ok\":_vm.onClosePreview,\"on-cancel\":_vm.onClosePreview}},'Modal',_vm.$attrs,false),_vm.$listeners),[_c('canvas',{staticStyle:{\"background\":\"black\"},attrs:{\"id\":\"canvas\",\"width\":\"488\",\"height\":\"275\"}}),_c('div',{attrs:{\"slot\":\"footer\"},slot:\"footer\"},[(_vm.audioEnabled)?_c('Button',{attrs:{\"icon\":\"md-volume-off\"},on:{\"click\":_vm.turnOff}}):_c('Button',{attrs:{\"icon\":\"md-volume-up\"},on:{\"click\":_vm.turnOn}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Jessibuca.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Jessibuca.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Jessibuca.vue?vue&type=template&id=ca669c44&\"\nimport script from \"./Jessibuca.vue?vue&type=script&lang=js&\"\nexport * from \"./Jessibuca.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Poptip',{attrs:{\"trigger\":\"hover\",\"content\":'⌚️'+ new Date(_vm.value).toLocaleString()}},[_c('Time',{attrs:{\"time\":new Date(_vm.value)}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./StartTime.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./StartTime.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./StartTime.vue?vue&type=template&id=062b9730&scoped=true&\"\nimport script from \"./StartTime.vue?vue&type=script&lang=js&\"\nexport * from \"./StartTime.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"062b9730\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"records\"},_vm._l((_vm.data),function(item){return _c('Card',{key:item},[_c('p',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(_vm._s(item.Path))]),_c('div',{attrs:{\"slot\":\"extra\"},slot:\"extra\"},[_c('Button',{attrs:{\"icon\":\"md-play\",\"size\":\"small\"},on:{\"click\":function($event){return _vm.play(item)}}}),_c('Button',{attrs:{\"icon\":\"ios-trash\",\"size\":\"small\"},on:{\"click\":function($event){return _vm.deleteFlv(item)}}})],1),_vm._v(\" \"+_vm._s(_vm.toSizeStr(item.Size))+\" \"+_vm._s(_vm.toDurationStr(item.Duration))+\" \")])}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Records.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Records.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Records.vue?vue&type=template&id=4eee1624&scoped=true&\"\nimport script from \"./Records.vue?vue&type=script&lang=js&\"\nexport * from \"./Records.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Records.vue?vue&type=style&index=0&id=4eee1624&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4eee1624\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"padding\":\"0 15px\"}},[_c('div',[_vm._v(\" 自动滚动 \"),_c('i-switch',{model:{value:(_vm.autoScroll),callback:function ($$v) {_vm.autoScroll=$$v},expression:\"autoScroll\"}})],1),_c('div',{ref:\"logContainer\",staticClass:\"log-container\"},[_c('pre',[_vm._l((_vm.$store.state.logs),function(item){return [_vm._v(_vm._s(item+\"\\n\"))]})],2)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Logs.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Logs.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Logs.vue?vue&type=template&id=1a609f26&\"\nimport script from \"./Logs.vue?vue&type=script&lang=js&\"\nexport * from \"./Logs.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Logs.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"padding\":\"0 15px\"}},[_c('pre',[_vm._v(_vm._s(_vm.config))])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Config.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Config.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Config.vue?vue&type=template&id=15fbfd50&\"\nimport script from \"./Config.vue?vue&type=script&lang=js&\"\nexport * from \"./Config.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Modal',_vm._g(_vm._b({attrs:{\"draggable\":\"\",\"title\":\"查看订阅者\"}},'Modal',_vm.$attrs,false),_vm.$listeners),[_c('Table',{attrs:{\"columns\":_vm.subtableColumns,\"data\":_vm.data}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Subscribers.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Subscribers.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Subscribers.vue?vue&type=template&id=a0df3126&\"\nimport script from \"./Subscribers.vue?vue&type=script&lang=js&\"\nexport * from \"./Subscribers.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"mountNode\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Cluster.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Cluster.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Cluster.vue?vue&type=template&id=b4e158c8&\"\nimport script from \"./Cluster.vue?vue&type=script&lang=js&\"\nexport * from \"./Cluster.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Console.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Console.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Console.vue?vue&type=template&id=f6113870&scoped=true&\"\nimport script from \"./Console.vue?vue&type=script&lang=js&\"\nexport * from \"./Console.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Console.vue?vue&type=style&index=0&id=f6113870&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f6113870\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\nimport VueRouter from 'vue-router'\nimport Home from '../views/Home.vue'\nimport About from '../views/About'\nimport Console from '../views/Console'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: '/',\n name: 'home',\n component: Home\n },\n {\n path: '/about',\n name: 'about',\n component: About\n }, {\n path: '/console',\n name: 'console',\n component: Console\n }\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","import Vue from 'vue'\nimport Vuex from 'vuex'\n\nVue.use(Vuex)\nlet summaryES = null\nlet logsES = null\nexport default new Vuex.Store({\n state: {\n summary: {\n Address: location.hostname,\n NetWork: [],\n Rooms: [],\n Memory: {\n Used: 0,\n Usage: 0\n },\n CPUUsage: 0,\n HardDisk: {\n Used: 0,\n Usage: 0\n },\n Children: {}\n }, logs: []\n },\n mutations: {\n update(state, payload) {\n Object.assign(state, payload)\n },\n addLog(state, payload) {\n state.logs.push(payload)\n }\n },\n actions: {\n fetchSummary({ commit }) {\n summaryES = new EventSource(\n \"//\" + location.host + \"/api/summary\"\n );\n summaryES.onmessage = evt => {\n if (!evt.data) return\n let summary = JSON.parse(evt.data)\n summary.Address = location.hostname\n commit(\"update\", { summary })\n }\n },\n fetchLogs({ commit }) {\n logsES = new EventSource(\n \"//\" + location.host + \"/api/logs\"\n )\n logsES.onmessage = evt => {\n if (!evt.data) return\n commit(\"addLog\", evt.data)\n }\n },\n stopFetchLogs() {\n logsES.close()\n },\n stopFetchSummary() {\n summaryES.close()\n }\n },\n modules: {\n }\n})\n","import Vue from 'vue'\nimport ViewUI from 'view-design'\n\nVue.use(ViewUI)\n\nimport 'view-design/dist/styles/iview.css'\n","import Vue from 'vue'\r\nimport App from './App.vue'\r\nimport router from './router'\r\nimport store from './store'\r\nimport './plugins/iview.js'\r\n\r\nVue.config.productionTip = false\r\n\r\nnew Vue({\r\n router,\r\n store,\r\n render: h => h(App)\r\n}).$mount('#app')\r\n","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./About.vue?vue&type=style&index=0&id=e34eab40&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./About.vue?vue&type=style&index=0&id=e34eab40&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Home.vue?vue&type=script&lang=js&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Home.vue?vue&type=style&index=0&id=54efad41&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Home.vue?vue&type=style&index=0&id=54efad41&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Console.vue?vue&type=style&index=0&id=f6113870&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Console.vue?vue&type=style&index=0&id=f6113870&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Logs.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Logs.vue?vue&type=style&index=0&lang=css&\"","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=54efad41&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=54efad41&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"54efad41\",\n null\n \n)\n\nexport default component.exports","module.exports = __webpack_public_path__ + \"img/logo.b5357057.png\";","module.exports = __webpack_public_path__ + \"img/wechat.ff453262.jpg\";","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Records.vue?vue&type=style&index=0&id=4eee1624&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!../../node_modules/iview-loader/index.js??ref--0-2!./Records.vue?vue&type=style&index=0&id=4eee1624&scoped=true&lang=css&\""],"sourceRoot":""} \ No newline at end of file diff --git a/dashboard/src/components/Cluster.vue b/dashboard/src/components/Cluster.vue index 6ea0358..9e577eb 100644 --- a/dashboard/src/components/Cluster.vue +++ b/dashboard/src/components/Cluster.vue @@ -1,5 +1,9 @@ diff --git a/dashboard/src/components/Records.vue b/dashboard/src/components/Records.vue index c1a99d1..11eb890 100644 --- a/dashboard/src/components/Records.vue +++ b/dashboard/src/components/Records.vue @@ -33,7 +33,7 @@ export default { x => { if (x == "success") { this.onVisible(true); - this.$Message.success("删除成功"); + this.$Message.success("开始发布"); } else { this.$Message.error(x); } @@ -50,7 +50,7 @@ export default { { streamPath: item.Path.replace(".flv", "") }, x => { if (x == "success") { - this.$Message.success("开始发布"); + this.$Message.success("删除成功"); } else { this.$Message.error(x); } diff --git a/dashboard/src/views/Console.vue b/dashboard/src/views/Console.vue index 906a7c8..c533ed3 100644 --- a/dashboard/src/views/Console.vue +++ b/dashboard/src/views/Console.vue @@ -118,6 +118,7 @@ export default { currentTab: "", currentStream: [], typeMap: { + Receiver: "📡", FlvFile: "🎥", TS: "🎬", HLS: "🍎", diff --git a/plugins/cluster/publisher.go b/plugins/cluster/publisher.go index e2133a9..bd2a734 100644 --- a/plugins/cluster/publisher.go +++ b/plugins/cluster/publisher.go @@ -3,12 +3,14 @@ package cluster import ( "bufio" "encoding/binary" + "io" + "log" + "net" + "strings" + . "github.com/langhuihui/monibuca/monica" "github.com/langhuihui/monibuca/monica/avformat" "github.com/langhuihui/monibuca/monica/pool" - "io" - "net" - "strings" ) type Receiver struct { @@ -26,6 +28,7 @@ func (p *Receiver) Auth(authSub *OutputStream) { func (p *Receiver) readAVPacket(avType byte) (av *pool.AVPacket, err error) { buf := pool.GetSlice(4) + defer pool.RecycleSlice(buf) _, err = io.ReadFull(p, buf) if err != nil { println(err.Error()) @@ -39,10 +42,7 @@ func (p *Receiver) readAVPacket(avType byte) (av *pool.AVPacket, err error) { } av.Payload = pool.GetSlice(int(binary.BigEndian.Uint32(buf))) _, err = io.ReadFull(p, av.Payload) - if MayBeError(err) { - return - } - pool.RecycleSlice(buf) + MayBeError(err) return } @@ -57,7 +57,7 @@ func PullUpStream(streamPath string) { } brw := bufio.NewReadWriter(bufio.NewReader(conn), bufio.NewWriter(conn)) p := &Receiver{ - Reader: conn, + Reader: brw.Reader, Writer: brw.Writer, } if p.Publish(streamPath, p) { @@ -72,11 +72,7 @@ func PullUpStream(streamPath string) { return } defer p.Cancel() - for { - cmd, err := brw.ReadByte() - if MayBeError(err) { - return - } + for cmd, err := brw.ReadByte(); !MayBeError(err); cmd, err = brw.ReadByte() { switch cmd { case MSG_AUDIO: if audio, err := p.readAVPacket(avformat.FLV_TAG_TYPE_AUDIO); err == nil { @@ -103,6 +99,8 @@ func PullUpStream(streamPath string) { v.Cancel() } } + default: + log.Printf("unknown cmd:%v", cmd) } } } diff --git a/plugins/jessica/subscriber.go b/plugins/jessica/subscriber.go index 5aad588..9e9ee06 100644 --- a/plugins/jessica/subscriber.go +++ b/plugins/jessica/subscriber.go @@ -2,12 +2,13 @@ package jessica import ( "encoding/binary" + "net/http" + "strings" + "github.com/gobwas/ws" . "github.com/langhuihui/monibuca/monica" "github.com/langhuihui/monibuca/monica/avformat" "github.com/langhuihui/monibuca/monica/pool" - "net/http" - "strings" ) func WsHandler(w http.ResponseWriter, r *http.Request) { diff --git a/slave.toml b/slave.toml index 06fa48f..bd7193b 100644 --- a/slave.toml +++ b/slave.toml @@ -1,11 +1,11 @@ # [Plugins.HDL] # ListenAddr = ":2020" -# [Plugins.Jessica] -# ListenAddr = ":8080" -# [Plugins.RTMP] -# ListenAddr = ":1935" -# [Plugins.GateWay] -# ListenAddr = ":8081" +[Plugins.Jessica] +ListenAddr = ":8082" +[Plugins.RTMP] +ListenAddr = ":1936" +[Plugins.GateWay] +ListenAddr = ":8083" [Plugins.Cluster] Master = "localhost:2019" #ListenAddr = ":2019"